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

Method Sprite_Handle_Enemy

Source/Fodder.cpp:10920–10979  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

10918}
10919
10920void cFodder::Sprite_Handle_Enemy(sSprite* pSprite) {
10921
10922 if (Sprite_Handle_Soldier_Animation(pSprite))
10923 return;
10924
10925 if (pSprite->field_38)
10926 return;
10927
10928 mSprite_FaceWeaponTarget = 0;
10929 if (pSprite->field_44) {
10930 pSprite->field_44--;
10931 }
10932 else {
10933 sub_21CD1(pSprite);
10934 Sprite_Handle_Troop_Weapon(pSprite);
10935
10936 mTmp_FrameNumber = pSprite->field_A;
10937 int16 Data0 = pSprite->field_26;
10938 if (Data0 < 0)
10939 goto loc_19A89;
10940
10941 int16 Data4 = pSprite->field_28;
10942 if (Data4 < 0)
10943 goto loc_19A89;
10944
10945 if (Sprite_Direction_Between_Points(pSprite, Data0, Data4) < 0)
10946 goto loc_19A89;
10947 }
10948 //loc_19A5D
10949 Sprite_XY_Store(pSprite);
10950 sub_2A3D4(pSprite);
10951 Sprite_Handle_Troop_Speed(pSprite);
10952
10953 if (pSprite->field_45) {
10954 pSprite->field_45--;
10955 if (pSprite->field_45)
10956 return;
10957 }
10958 Sprite_Draw_Row_Update(pSprite);
10959 goto loc_19A96;
10960
10961loc_19A89:;
10962 word_3ABB1 = 0;
10963 Sprite_Handle_Troop_Direct_TowardWeaponTarget_WithRestore(pSprite);
10964 goto loc_19A9C;
10965
10966loc_19A96:;
10967 word_3ABB1 = -1;
10968
10969loc_19A9C:;
10970 pSprite->field_22 = eSprite_PersonType_AI;
10971 Sprite_Handle_Troop_Animation(pSprite);
10972
10973 if (word_3ABB1)
10974 return;
10975 if (mSprite_FaceWeaponTarget)
10976 return;
10977

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected