MCPcopy Create free account
hub / github.com/OpenFodder/openfodder / Sprite_Handle_Troop_Animation

Method Sprite_Handle_Troop_Animation

Source/Fodder.cpp:15542–15745  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

15540}
15541
15542void cFodder::Sprite_Handle_Troop_Animation(sSprite* pSprite) {
15543 int16 Data0, Data8;
15544 sSprite* Dataa30 = 0;
15545 sMapTarget* Data30 = 0;
15546 const int16* Data28 = 0;
15547
15548 // Is Human
15549 if (pSprite->field_22 == eSprite_PersonType_Human)
15550 goto AlterAnimation;
15551
15552 // Hostage Following Sprite?
15553 if (!pSprite->field_70)
15554 goto AlterAnimation;
15555
15556 // Hasnt Reached X Target
15557 if (pSprite->field_0 != pSprite->field_26)
15558 goto AlterAnimation;
15559
15560 // Hasnt Reached Y Target
15561 if (pSprite->field_4 != pSprite->field_28)
15562 goto AlterAnimation;
15563
15564 // Idle
15565 pSprite->field_8 = 0xDC;
15566 pSprite->field_A = 0;
15567 word_3ABB1 = -1;
15568 return;
15569
15570AlterAnimation:;
15571 if (word_3AA1D == 2)
15572 goto loc_1F7FF;
15573
15574 if (pSprite->field_5A)
15575 goto loc_1F7F9;
15576
15577 if (!pSprite->field_43)
15578 goto loc_1F7FF;
15579
15580 if (pSprite->field_4F)
15581 goto loc_1F7FF;
15582
15583loc_1F7F9:;
15584 mSprite_Bumped_Into_SquadMember = -1;
15585
15586loc_1F7FF:;
15587 Data8 = pSprite->field_3C;
15588 Data8 += mDirectionMod;
15589 Data8 &= 0x0E;
15590
15591 pSprite->field_3C = Data8;
15592 Data8 /= 2;
15593
15594 Data28 = mSprite_AnimationPtrs[pSprite->field_22];
15595 if (!mSprite_FaceWeaponTarget)
15596 goto loc_1F9C0;
15597
15598 if (pSprite->field_22 == eSprite_PersonType_Human) {
15599 Data30 = mSquad_WalkTargets[pSprite->field_32];

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected