| 15745 | } |
| 15746 | |
| 15747 | void cFodder::Sprite_Handle_Troop_Speed(sSprite* pSprite) { |
| 15748 | int16 Data0; |
| 15749 | |
| 15750 | pSprite->field_36 = 0x10; |
| 15751 | |
| 15752 | if (pSprite->field_18 == eSprite_Enemy) { |
| 15753 | Data0 = 0x0C; |
| 15754 | Data0 += pSprite->field_62; |
| 15755 | if (Data0 > 0x1A) |
| 15756 | Data0 = 0x1A; |
| 15757 | pSprite->field_36 = Data0; |
| 15758 | } |
| 15759 | else { |
| 15760 | |
| 15761 | //loc_1FD36 |
| 15762 | Data0 = word_3BED5[pSprite->field_32]; |
| 15763 | if (!Data0) |
| 15764 | pSprite->field_36 >>= 1; |
| 15765 | else { |
| 15766 | if (Data0 != 1) |
| 15767 | pSprite->field_36 = 0x18; |
| 15768 | } |
| 15769 | } |
| 15770 | |
| 15771 | if (pSprite->field_4F) |
| 15772 | goto loc_1FDDC; |
| 15773 | |
| 15774 | Data0 = pSprite->field_52; |
| 15775 | if (Data0 == pSprite->field_50) |
| 15776 | goto loc_1FDD5; |
| 15777 | if (Data0 < pSprite->field_50) |
| 15778 | goto loc_1FDC3; |
| 15779 | |
| 15780 | Data0--; |
| 15781 | if (Data0 == pSprite->field_50) |
| 15782 | goto loc_1FDD5; |
| 15783 | Data0--; |
| 15784 | goto loc_1FDC8; |
| 15785 | |
| 15786 | loc_1FDC3:; |
| 15787 | Data0++; |
| 15788 | loc_1FDC8:; |
| 15789 | pSprite->field_52 = Data0; |
| 15790 | loc_1FDD5:; |
| 15791 | if (!Data0) |
| 15792 | return; |
| 15793 | loc_1FDDC:; |
| 15794 | pSprite->field_36 = 6; |
| 15795 | } |
| 15796 | |
| 15797 | void cFodder::Sprite_Handle_Troop_Direct_TowardWeaponTarget_WithRestore(sSprite* pSprite) { |
| 15798 |
nothing calls this directly
no outgoing calls
no test coverage detected