| 15540 | } |
| 15541 | |
| 15542 | void 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 | |
| 15570 | AlterAnimation:; |
| 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 | |
| 15583 | loc_1F7F9:; |
| 15584 | mSprite_Bumped_Into_SquadMember = -1; |
| 15585 | |
| 15586 | loc_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]; |
nothing calls this directly
no outgoing calls
no test coverage detected