| 14227 | } |
| 14228 | |
| 14229 | void cFodder::Sprite_Handle_UFO_Callpad(sSprite* pSprite) { |
| 14230 | |
| 14231 | if (mHelicopterCall_X > 0) { |
| 14232 | |
| 14233 | mSwitchesActivated = true; |
| 14234 | pSprite->field_8 = 0xE8; |
| 14235 | pSprite->field_A = 0; |
| 14236 | |
| 14237 | sSprite* Data24 = pSprite + 1; |
| 14238 | Data24->field_8 = 0x8D; |
| 14239 | Data24->field_A = 0x01; |
| 14240 | if (pSprite->field_20 >= 0x14) |
| 14241 | pSprite->field_1E_Big -= 0xC000; |
| 14242 | |
| 14243 | int16 Data0 = mHelicopterCall_X; |
| 14244 | int16 Data4 = mHelicopterCall_Y - 0x28; |
| 14245 | |
| 14246 | Sprite_Direction_Between_Points(pSprite, Data0, Data4); |
| 14247 | |
| 14248 | Data0 = mHelicopterCall_X; |
| 14249 | Data4 = mHelicopterCall_Y - 0x28; |
| 14250 | int16 Data8 = pSprite->field_0; |
| 14251 | int16 DataC = pSprite->field_4; |
| 14252 | int16 Data10 = 0x60; |
| 14253 | |
| 14254 | Data0 = Map_Get_Distance_BetweenPoints(Data0, Data4, Data8, Data10, DataC); |
| 14255 | Data0 >>= 3; |
| 14256 | Data0 += 1; |
| 14257 | if (Data0 < 8) |
| 14258 | Data0 = 8; |
| 14259 | |
| 14260 | pSprite->field_36 = Data0; |
| 14261 | Sprite_Movement_Calculate(pSprite); |
| 14262 | Sprite_PositionNext_AdjustByHeight(pSprite); |
| 14263 | } else { |
| 14264 | // loc_2DBE8 |
| 14265 | pSprite->field_8 = 0x7C; |
| 14266 | pSprite->field_A = 0; |
| 14267 | |
| 14268 | sSprite* Data24 = pSprite + 1; |
| 14269 | Data24->field_8 = 0x7C; |
| 14270 | Data24->field_A = 0; |
| 14271 | |
| 14272 | if (mSquad_Leader && mSquad_Leader != INVALID_SPRITE_PTR) { |
| 14273 | |
| 14274 | pSprite->field_0 = mSquad_Leader->field_0 + 0x190; |
| 14275 | pSprite->field_4 = mSquad_Leader->field_4; |
| 14276 | } |
| 14277 | |
| 14278 | pSprite->field_20 = 0x64; |
| 14279 | Sprite_PositionNext_AdjustByHeight(pSprite); |
| 14280 | } |
| 14281 | } |
| 14282 | |
| 14283 | void cFodder::Sprite_Handle_Turret_Cannon_Invulnerable(sSprite* pSprite) { |
| 14284 |
nothing calls this directly
no outgoing calls
no test coverage detected