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

Method Sprite_Handle_Helicopter_Enemy_Weapon

Source/Fodder.cpp:6329–6423  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6327}
6328
6329int16 cFodder::Sprite_Handle_Helicopter_Enemy_Weapon(sSprite* pSprite, sSprite*& pData30) {
6330 int16 Data0;
6331 sSprite* Data2C = 0, *Data34 = 0;
6332
6333 if (pSprite->field_6F == eVehicle_Helicopter_Grenade)
6334 goto loc_25344;
6335
6336 if (pSprite->field_6F == eVehicle_Helicopter_Missile)
6337 goto loc_253E7;
6338
6339 if (pSprite->field_6F == eVehicle_Helicopter_Homing)
6340 goto loc_253E7;
6341
6342loc_25344:;
6343 pSprite->field_26 = pData30->field_0;
6344 pSprite->field_26 += 0x14;
6345 pSprite->field_28 = pData30->field_4;
6346 pSprite->field_26 -= 0x1E;
6347 if (pSprite->field_26 < 0)
6348 pSprite->field_26 = 0;
6349
6350 pSprite->field_2E = pData30->field_0;
6351 pSprite->field_30 = pData30->field_4;
6352 if (pSprite->field_20 <= 0x1F)
6353 goto loc_253D2;
6354
6355 if (mMission_EngineTicks & 0x0F)
6356 goto loc_253D2;
6357
6358 Sprite_Create_Grenade2(pSprite);
6359 Data0 = tool_RandomGet() & 0x0F;
6360 if (!Data0)
6361 goto loc_253DE;
6362
6363loc_253D2:;
6364 return -1;
6365
6366loc_253DE:;
6367 return 0;
6368
6369loc_253E7:;
6370 pSprite->field_26 = pData30->field_0;
6371 pSprite->field_28 = pData30->field_4;
6372 pSprite->field_2E = pData30->field_0;
6373 pSprite->field_30 = pData30->field_4;
6374
6375 Data0 = mSprite_DistanceTo_Squad0;
6376 if (Data0 <= 0x3C)
6377 goto loc_254C7;
6378 if (Data0 >= 0x8C)
6379 goto loc_254E7;
6380
6381 if (pSprite->field_20 >= 0x19) {
6382 if (!(mMission_EngineTicks & 0x0F)) {
6383 mSprite_Missile_LaunchDistance_X = 0x0E;
6384 mSprite_Missile_LaunchDistance_Y = -12;
6385 if (pSprite->field_6F == eVehicle_Helicopter_Homing) {
6386

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected