MCPcopy Create free account
hub / github.com/TombEngine/TombEngine / GetStateDispatch

Function GetStateDispatch

TombEngine/Game/Animation/Animation.cpp:289–311  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

287 }
288
289 const StateDispatchData* GetStateDispatch(const ItemInfo& item, int targetStateID)
290 {
291 targetStateID = (targetStateID == NO_VALUE) ? item.Animation.TargetState : targetStateID;
292
293 // Prevent dispatch to same state ID.
294 if (item.Animation.ActiveState == targetStateID)
295 return nullptr;
296
297 // Run through state dispatches.
298 const auto& anim = GetAnimData(item);
299 for (const auto& dispatch : anim.Dispatches)
300 {
301 // State ID mismatch; continue.
302 if (dispatch.StateID != targetStateID)
303 continue;
304
305 // Test if current frame is within dispatch range.
306 if (TestAnimFrameRange(item, dispatch.FrameNumberRange.first, dispatch.FrameNumberRange.second))
307 return &dispatch;
308 }
309
310 return nullptr;
311 }
312
313 int GetNextAnimState(const ItemInfo& item)
314 {

Callers 10

lara_col_walk_forwardFunction · 0.85
lara_col_run_forwardFunction · 0.85
lara_col_step_rightFunction · 0.85
lara_col_step_leftFunction · 0.85
lara_col_wade_forwardFunction · 0.85
lara_col_sprintFunction · 0.85
lara_as_sprint_slideFunction · 0.85
AnimateItemFunction · 0.85
TestStateDispatchFunction · 0.85

Calls 1

TestAnimFrameRangeFunction · 0.85

Tested by 1

TestStateDispatchFunction · 0.68