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

Function zParPTankSteamCreate

src/SB/Game/zParPTank.cpp:617–659  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

615const RwV2d steam_size = { 0.4f, 0.4f };
616
617static void zParPTankSteamCreate(zParPTank* zp, U32 max_particles, zParPTankUpdateCallback update)
618{
619 zp->num_particles = 0;
620 zp->max_particles = max_particles;
621 zp->flags = 0;
622 zp->update = update;
623
624 RwTexture* tex = (RwTexture*)xSTFindAsset(xStrHash("particle_cloud"), NULL);
625 if (!tex)
626 {
627 return;
628 }
629
630 RwTextureSetFilterMode(tex, rwFILTERLINEAR);
631 RwRGBA defaultColor = { 0xFF, 0xFF, 0xFF, 0xFF };
632
633 zp->ptank = RpPTankAtomicCreate(
634 zp->max_particles, rpPTANKDFLAGPOSITION | rpPTANKDFLAGVTX2TEXCOORDS | rpPTANKDFLAGARRAY, 0);
635
636 RwFrame* frame = RwFrameCreate();
637 RwMatrixSetIdentity(&frame->modelling);
638 RpAtomicSetFrame(zp->ptank, frame);
639
640 RPATOMICPTANKPLUGINDATA(zp->ptank)->publicData.cColor = defaultColor;
641
642 if (zp->ptank->geometry->matList.materials[0])
643 {
644 zp->ptank->geometry->matList.materials[0]->color =
645 RPATOMICPTANKPLUGINDATA(zp->ptank)->publicData.cColor;
646 }
647 RPATOMICPTANKPLUGINDATA(zp->ptank)->instFlags |= rpPTANKIFLAGCNSCOLOR;
648 RPATOMICPTANKPLUGINDATA(zp->ptank)->publicData.cSize = steam_size;
649 RPATOMICPTANKPLUGINDATA(zp->ptank)->instFlags |= rpPTANKIFLAGCNSSIZE;
650
651 RpMaterialSetTexture(zp->ptank->geometry->matList.materials[0], tex);
652
653 RPATOMICPTANKPLUGINDATA(zp->ptank)->publicData.srcBlend = 5;
654 RPATOMICPTANKPLUGINDATA(zp->ptank)->publicData.dstBlend = 2;
655 RPATOMICPTANKPLUGINDATA(zp->ptank)->instFlags |= rpPTANKIFLAGALPHABLENDING;
656 RPATOMICPTANKPLUGINDATA(zp->ptank)->publicData.vertexAlphaBlend = 1;
657
658 sSteamAnimTime = 0.0f;
659}
660
661// Equivalent: float load optimization
662static void zParPTankSteamUpdate(zParPTank* zp, float dt)

Callers 1

zParPTankInitFunction · 0.70

Calls 2

xSTFindAssetFunction · 0.50
xStrHashFunction · 0.50

Tested by

no test coverage detected