MCPcopy Create free account
hub / github.com/bfbbdecomp/bfbb / zParPTankMenuBubbleCreate

Function zParPTankMenuBubbleCreate

src/SB/Game/zParPTank.cpp:264–297  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

262}
263
264static void zParPTankMenuBubbleCreate(zParPTank* zp, U32 max_particles,
265 zParPTankUpdateCallback update)
266{
267 zp->num_particles = 0;
268 zp->max_particles = max_particles;
269 zp->flags = 0;
270 zp->update = update;
271
272 RwTexture* tex = (RwTexture*)xSTFindAsset(xStrHash("partex0"), NULL);
273 if (!tex)
274 {
275 return;
276 }
277
278 RwTextureSetFilterMode(tex, rwFILTERLINEAR);
279
280 zp->ptank = RpPTankAtomicCreate(zp->max_particles,
281 rpPTANKDFLAGPOSITION | rpPTANKDFLAGCOLOR | rpPTANKDFLAGSIZE |
282 rpPTANKDFLAGVTX2TEXCOORDS | rpPTANKDFLAGARRAY,
283 0);
284
285 RwFrame* frame = RwFrameCreate();
286 RwMatrixSetIdentity(&frame->modelling);
287 RpAtomicSetFrame(zp->ptank, frame);
288
289 RpMaterialSetTexture(zp->ptank->geometry->matList.materials[0], tex);
290
291 RPATOMICPTANKPLUGINDATA(zp->ptank)->publicData.srcBlend = 5;
292 RPATOMICPTANKPLUGINDATA(zp->ptank)->publicData.dstBlend = 2;
293 RPATOMICPTANKPLUGINDATA(zp->ptank)->instFlags |= rpPTANKIFLAGALPHABLENDING;
294 RPATOMICPTANKPLUGINDATA(zp->ptank)->publicData.vertexAlphaBlend = 1;
295
296 sMenuBubbleData = (BubbleData*)xMemPushTemp(zp->max_particles * sizeof(BubbleData));
297}
298
299// Equivalent
300static void zParPTankBubbleUpdate(zParPTank* zp, float dt)

Callers 1

zParPTankInitFunction · 0.70

Calls 3

xSTFindAssetFunction · 0.50
xStrHashFunction · 0.50
xMemPushTempFunction · 0.50

Tested by

no test coverage detected