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

Function tauntCB

src/SB/Game/zNPCTypeBossSandy.cpp:1140–1183  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1138}
1139
1140static S32 tauntCB(xGoal* rawgoal, void*, en_trantype* trantype, F32 dt, void*)
1141{
1142 zNPCGoalBossSandyTaunt* taunt = (zNPCGoalBossSandyTaunt*)rawgoal;
1143 zNPCBSandy* sandy = (zNPCBSandy*)taunt->psyche->clt_owner;
1144 S32 nextgoal = 0;
1145 xVec3 tempVector;
1146
1147 if (taunt->timeInGoal > 0.30000001192092896f) // 0.3
1148 {
1149 if (sandy->bossFlags & 0x400)
1150 {
1151 *trantype = GOAL_TRAN_SET;
1152 return 'NGB1';
1153 }
1154 }
1155
1156 xVec3Sub(&tempVector, (xVec3*)&globals.player.ent.model->Mat->pos,
1157 (xVec3*)&sandy->model->Mat->pos);
1158
1159 tempVector.y = 0.0f; // 0.0
1160
1161 F32 length = xVec3Length2(&tempVector);
1162
1163 if (sandy->AnimTimeRemain(NULL) < 1.100000023841858f * dt) // 1.1
1164 {
1165 if (globals.player.ControlOff)
1166 {
1167 *trantype = GOAL_TRAN_SET;
1168 nextgoal = 'NGB1';
1169 }
1170 else if (length > 12.0f) // 12.0
1171 {
1172 *trantype = GOAL_TRAN_SET;
1173 nextgoal = 'NGB3';
1174 }
1175 else
1176 {
1177 *trantype = GOAL_TRAN_SET;
1178 nextgoal = 'NGB4';
1179 }
1180 }
1181
1182 return nextgoal;
1183}
1184
1185static S32 chaseCB(xGoal* rawgoal, void*, en_trantype* trantype, F32 dt, void*);
1186static S32 meleeCB(xGoal* rawgoal, void*, en_trantype* trantype, F32 dt, void*);

Callers

nothing calls this directly

Calls 3

xVec3SubFunction · 0.85
xVec3Length2Function · 0.85
AnimTimeRemainMethod · 0.80

Tested by

no test coverage detected