| 13209 | } |
| 13210 | |
| 13211 | void 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; |
nothing calls this directly
no outgoing calls
no test coverage detected