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

Function xParCmdOrbitLine_Update

src/SB/Core/x/xParCmd.cpp:188–218  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

186}
187
188void xParCmdOrbitLine_Update(xParCmd* c, xParGroup* ps, F32 dt)
189{
190 xPar* p = ps->m_root;
191 xParCmdOrbitLine* cmd = (xParCmdOrbitLine*)c->tasset;
192 F32 mdt = cmd->gravity * dt;
193
194 while (p)
195 {
196 xVec3 var_34, var_40, var_4C, var_58;
197
198 xVec3Sub(&var_34, &p->m_pos, &cmd->p);
199 xVec3Cross(&var_4C, &var_34, &cmd->axis);
200 xVec3Cross(&var_40, &cmd->axis, &var_4C);
201 xVec3Sub(&var_58, &var_40, &var_34);
202
203 F32 f31 = xVec3Length2(&var_58);
204
205 if (f31 < cmd->maxRadiusSqr)
206 {
207 F32 f1 = xVec3LengthFast(var_58.x, var_58.y, var_58.z);
208
209 F32 force = mdt / (f1 + (f31 + cmd->epsilon));
210
211 p->m_vel.x += var_58.x * force;
212 p->m_vel.y += var_58.y * force;
213 p->m_vel.z += var_58.z * force;
214 }
215
216 p = p->m_next;
217 }
218}
219
220void xParCmdAccelerate_Update(xParCmd* c, xParGroup* ps, F32 dt)
221{

Callers

nothing calls this directly

Calls 4

xVec3SubFunction · 0.85
xVec3CrossFunction · 0.85
xVec3Length2Function · 0.85
xVec3LengthFastFunction · 0.85

Tested by

no test coverage detected