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

Method Sprite_Handle_UFO_Callpad

Source/Fodder.cpp:14229–14281  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

14227}
14228
14229void 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
14283void cFodder::Sprite_Handle_Turret_Cannon_Invulnerable(sSprite* pSprite) {
14284

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected