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

Method Sprite_Handle_Tank_Enemy

Source/Fodder.cpp:13211–13330  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

13209}
13210
13211void cFodder::Sprite_Handle_Tank_Enemy(sSprite* pSprite) {
13212 int16 Data0, Data4, Data8, DataC, Data10, Data14;
13213 sSprite* Data24 = 0, *Data30 = 0;
13214
13215 if (pSprite->field_38 == eSprite_Anim_Die1)
13216 pSprite->field_38 = eSprite_Anim_None;
13217
13218 if (pSprite->field_38) {
13219 pSprite->field_22 = eSprite_PersonType_AI;
13220 sub_23525(pSprite);
13221 pSprite->field_22 = eSprite_PersonType_AI;
13222
13223 Data24 = pSprite + 2;
13224 if (Data24->field_18 == eSprite_Flashing_Light)
13225 Sprite_Destroy(Data24);
13226
13227 return;
13228 }
13229
13230 if (pSprite->field_4C)
13231 pSprite->field_4C--;
13232
13233 int16 Data1C = pSprite->field_5E_Squad;
13234 if (mSquads[Data1C / 9] == (sSprite**)INVALID_SPRITE_PTR)
13235 goto NextSquadMember;
13236
13237 Data30 = mSquads[Data1C / 9][Data1C % 9];
13238 if (Data30 == INVALID_SPRITE_PTR)
13239 goto NextSquadMember;
13240
13241 if (Data30->field_52)
13242 goto NextSquadMember;
13243
13244 Data8 = Data30->field_0;
13245 Data8 += 8;
13246
13247 DataC = Data30->field_4;
13248 DataC += -5;
13249
13250 if (Map_Terrain_Get_Moveable_Wrapper(mTiles_NotDriveable, Data8, DataC, Data10, Data14))
13251 goto NextSquadMember;
13252
13253 Data0 = pSprite->field_0;
13254 Data4 = pSprite->field_4;
13255 Data8 = Data30->field_0;
13256 DataC = Data30->field_4;
13257
13258 mSprite_Tank_SpriteX = Data0;
13259 mSprite_Tank_SpriteY = Data4;
13260 mSprite_Tank_Squad0_X = Data8;
13261 mSprite_Tank_DistanceTo_Squad0 = DataC;
13262
13263 Map_Get_Distance_BetweenPoints_Within_Window(Data0, Data4, Data8, DataC);
13264 mSprite_DistanceTo_Squad0 = Data0;
13265 if (Data0 >= 250)
13266 goto NextSquadMember;
13267
13268 Data0 = mSprite_Tank_SpriteX;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected