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

Function BoulderRollDoneCB

src/SB/Game/zEntPlayer.cpp:2563–2612  ·  view source on GitHub ↗

Equivalent: sda relocation and some float thing before info.rate.set

Source from the content-addressed store, hash-verified

2561
2562// Equivalent: sda relocation and some float thing before info.rate.set
2563static U32 BoulderRollDoneCB()
2564{
2565 xEntShow(&globals.player.ent);
2566 zEntPlayer_SNDPlay(ePlayerSnd_BoulderEnd, 0.0f);
2567
2568 xParEmitterCustomSettings info;
2569 if (gPTankDisable)
2570 {
2571 info.custom_flags = 0x35e;
2572 xVec3Copy(&info.pos, (xVec3*)&boulderVehicle->model->Mat->pos);
2573 xVec3Copy(&info.vel, (xVec3*)&boulderVehicle->vel);
2574
2575 if (xVec3Normalize(&info.vel, &info.vel) < 0.00001f)
2576 {
2577 info.vel.x = 0.0f;
2578 info.vel.y = 3.0f;
2579 info.vel.z = 0.0f;
2580 }
2581 else
2582 {
2583 xVec3SMulBy(&info.vel, 3.0f);
2584 }
2585
2586 info.vel_angle_variation = DEG2RAD(270);
2587 info.rate.set(3000.0f, 3000.0f, 1.0f, 0.0f);
2588 info.life.set(0.75f, 0.75f, 1.0f, 0.0f);
2589 info.size_birth.set(0.25f, 0.25f, 1.0f, 0.0f);
2590 info.size_death.set(0.5f, 0.5f, 1.0f, 0.0f);
2591
2592 xParEmitterEmitCustom(sEmitSpinBubbles, update_dt, &info);
2593 xVec3AddScaled(&info.pos, &boulderVehicle->vel, 10.0f * update_dt);
2594 xParEmitterEmitCustom(sEmitSpinBubbles, update_dt, &info);
2595 }
2596 else
2597 {
2598 zFX_SpawnBubbleHit((xVec3*)&boulderVehicle->model->Mat->pos, 50);
2599 }
2600
2601 globals.player.ent.update = zEntPlayer_Update;
2602 globals.player.ent.move = zEntPlayer_Move;
2603 globals.player.ent.render = zEntPlayer_Render;
2604
2605 xEntBoulder_Kill(boulderVehicle);
2606 boulderRollShouldStart = 0;
2607
2608 zEntEvent(&globals.player.ent, eEventSpongeballOff);
2609 idle_tmr = 0.0f;
2610
2611 return 0;
2612}
2613
2614static U32 SlideTrackCheck(xAnimTransition*, xAnimSingle*, void*)
2615{

Callers 1

zEntPlayer_DamageFunction · 0.70

Calls 11

xEntShowFunction · 0.85
zEntPlayer_SNDPlayFunction · 0.85
xVec3CopyFunction · 0.85
xVec3SMulByFunction · 0.85
xVec3AddScaledFunction · 0.85
xEntBoulder_KillFunction · 0.85
zFX_SpawnBubbleHitFunction · 0.70
xVec3NormalizeFunction · 0.50
xParEmitterEmitCustomFunction · 0.50
zEntEventFunction · 0.50
setMethod · 0.45

Tested by

no test coverage detected