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

Function zParPTankBubbleCreate

src/SB/Game/zParPTank.cpp:230–262  ·  view source on GitHub ↗

Equivalent, float scheduling

Source from the content-addressed store, hash-verified

228
229// Equivalent, float scheduling
230static void zParPTankBubbleCreate(zParPTank* zp, U32 max_particles, zParPTankUpdateCallback update)
231{
232 zp->num_particles = 0;
233 zp->max_particles = max_particles;
234 zp->flags = 0;
235 zp->update = update;
236
237 RwTexture* tex = (RwTexture*)xSTFindAsset(xStrHash("partex0"), NULL);
238 if (!tex)
239 {
240 return;
241 }
242
243 RwTextureSetFilterMode(tex, rwFILTERLINEAR);
244
245 zp->ptank = RpPTankAtomicCreate(zp->max_particles,
246 rpPTANKDFLAGPOSITION | rpPTANKDFLAGCOLOR | rpPTANKDFLAGSIZE |
247 rpPTANKDFLAGVTX2TEXCOORDS | rpPTANKDFLAGARRAY,
248 0);
249
250 RwFrame* frame = RwFrameCreate();
251 RwMatrixSetIdentity(&frame->modelling);
252 RpAtomicSetFrame(zp->ptank, frame);
253
254 RpMaterialSetTexture(zp->ptank->geometry->matList.materials[0], tex);
255
256 RPATOMICPTANKPLUGINDATA(zp->ptank)->publicData.srcBlend = 5;
257 RPATOMICPTANKPLUGINDATA(zp->ptank)->publicData.dstBlend = 2;
258 RPATOMICPTANKPLUGINDATA(zp->ptank)->instFlags |= rpPTANKIFLAGALPHABLENDING;
259 RPATOMICPTANKPLUGINDATA(zp->ptank)->publicData.vertexAlphaBlend = 1;
260
261 sBubbleData = (BubbleData*)xMemPushTemp(zp->max_particles * sizeof(BubbleData));
262}
263
264static void zParPTankMenuBubbleCreate(zParPTank* zp, U32 max_particles,
265 zParPTankUpdateCallback update)

Callers 1

zParPTankInitFunction · 0.70

Calls 3

xSTFindAssetFunction · 0.50
xStrHashFunction · 0.50
xMemPushTempFunction · 0.50

Tested by

no test coverage detected