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

Function elbowDropCB

src/SB/Game/zNPCTypeBossSandy.cpp:1206–1255  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1204}
1205
1206static S32 elbowDropCB(xGoal* rawgoal, void*, en_trantype* trantype, F32 dt, void*)
1207{
1208 zNPCGoalBossSandyElbowDrop* edrop = (zNPCGoalBossSandyElbowDrop*)rawgoal;
1209 zNPCBSandy* sandy = (zNPCBSandy*)edrop->psyche->clt_owner;
1210 S32 nextgoal = 0;
1211 xVec3 tempVector;
1212
1213 if (edrop->timeInGoal > 0.30000001192092896f) // 0.3
1214 {
1215 if (sandy->bossFlags & 0x400)
1216 {
1217 *trantype = GOAL_TRAN_SET;
1218 return 'NGB1';
1219 }
1220 }
1221
1222 xVec3Sub(&tempVector, (xVec3*)&globals.player.ent.model->Mat->pos,
1223 (xVec3*)&sandy->model->Mat->pos);
1224
1225 tempVector.y = 0.0f; // 0.0
1226
1227 F32 length = xVec3Length2(&tempVector);
1228
1229 if (sandy->AnimTimeRemain(NULL) < 1.7000000476837158f * dt) // 1.7
1230 {
1231 if (globals.player.ControlOff)
1232 {
1233 *trantype = GOAL_TRAN_SET;
1234 nextgoal = 'NGB1';
1235 }
1236 else if (sandy->bossFlags & 2)
1237 {
1238 sandy->bossFlags &= ~2; // clear bit 2
1239 *trantype = GOAL_TRAN_SET;
1240 nextgoal = 'NGB2';
1241 }
1242 else if (length < 12.0f) // 12.0
1243 {
1244 *trantype = GOAL_TRAN_SET;
1245 nextgoal = 'NGB4';
1246 }
1247 else
1248 {
1249 *trantype = GOAL_TRAN_SET;
1250 nextgoal = 'NGB3';
1251 }
1252 }
1253
1254 return nextgoal;
1255}
1256
1257static S32 leapCB(xGoal* rawgoal, void*, en_trantype* trantype, F32 dt, void*)
1258{

Callers

nothing calls this directly

Calls 3

xVec3SubFunction · 0.85
xVec3Length2Function · 0.85
AnimTimeRemainMethod · 0.80

Tested by

no test coverage detected