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

Method Sprite_Handle_Tank_FireMissile

Source/Fodder.cpp:5371–5408  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5369}
5370
5371void cFodder::Sprite_Handle_Tank_FireMissile(sSprite* pSprite) {
5372 if (!pSprite->field_57)
5373 if (!pSprite->field_54)
5374 return;
5375
5376 pSprite->field_54 = 0;
5377 sSprite* Data24 = pSprite + 1;
5378
5379 Data24->field_2E = pSprite->field_2E;
5380 Data24->field_30 = pSprite->field_30;
5381
5382 int16 Data24_Field_0 = Data24->field_0;
5383 int16 Data24_Field_4 = Data24->field_4;
5384 int16 Data0 = Data24->field_A << 1;
5385
5386 Data24->field_0 += mSprite_Turret_Positions[Data0];
5387 Data24->field_4 += mSprite_Turret_Positions[Data0 + 1];
5388
5389 mSprite_Missile_LaunchDistance_X = 0;
5390 mSprite_Missile_LaunchDistance_Y = 0;
5391 sSprite* Data2C = 0;
5392
5393 if (!Sprite_Create_Missile(Data24, Data2C)) {
5394 Data24->field_4 = Data24_Field_4;
5395 Data24->field_0 = Data24_Field_0;
5396 pSprite->field_57 = -1;
5397 return;
5398 }
5399
5400 Data2C->field_20 += 0x11;
5401 Data2C->field_36 = 0x3C;
5402 Sound_Play(Data24, 5, 0x1E);
5403 Sprite_Create_Smoke(Data24, Data2C);
5404
5405 Data24->field_4 = Data24_Field_4;
5406 Data24->field_0 = Data24_Field_0;
5407 pSprite->field_57 = 0;
5408}
5409
5410int16 cFodder::Sprite_Create_Missile(sSprite* pSprite, sSprite*& pData2C) {
5411 if (mPhase_Completed_Timer)

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected