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

Method Sprite_Create_MissileHoming

Source/Fodder.cpp:6246–6327  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6244}
6245
6246int16 cFodder::Sprite_Create_MissileHoming(sSprite* pSprite, sSprite*& pData2C, sSprite*& pData34) {
6247
6248 if (mPhase_Completed_Timer)
6249 return 0;
6250
6251 if (mSprite_Missile_Projectile_Counters[pSprite->field_22] == 2)
6252 return 0;
6253
6254 if (!pSprite->field_2E)
6255 return 0;
6256
6257 int16 Data0 = 2;
6258 sSprite *Data30 = 0;
6259 if (Sprite_Get_Free_Max42(Data0, pData2C, Data30))
6260 return 0;
6261
6262 ++mSprite_Missile_Projectile_Counters[pSprite->field_22];
6263
6264 Data30 = pData2C;
6265 ++Data30;
6266
6267 //seg005:55E0
6268 pData2C->field_0 = pSprite->field_0;
6269 pData2C->field_2 = pSprite->field_2;
6270 pData2C->field_4 = pSprite->field_4;
6271 pData2C->field_6 = pSprite->field_6;
6272
6273 Data30->field_0 = pSprite->field_0;
6274 Data30->field_2 = pSprite->field_2;
6275 Data30->field_4 = pSprite->field_4;
6276 Data30->field_6 = pSprite->field_6;
6277
6278 pData2C->field_0 += mSprite_Missile_LaunchDistance_X;
6279 Data30->field_0 += mSprite_Missile_LaunchDistance_X;
6280 if (Data30->field_0 < 0)
6281 return 0;
6282
6283 pData2C->field_4 += mSprite_Missile_LaunchDistance_Y;
6284 Data30->field_4 += mSprite_Missile_LaunchDistance_Y;
6285
6286 if (Data30->field_0 < 0)
6287 return 0;
6288
6289 //seg005:5672
6290 pData2C->field_1A_sprite = pData34;
6291 pData2C->field_1E = pSprite->field_1E;
6292 pData2C->field_20 = pSprite->field_20;
6293 pData2C->field_26 = pSprite->field_2E;
6294 pData2C->field_28 = pSprite->field_30;
6295 pData2C->field_28 += 0x10;
6296 pData2C->field_8 = 0xA3;
6297 Data30->field_8 = 0x7E;
6298 pData2C->field_A = 0;
6299 Data30->field_A = 1;
6300 pData2C->field_36 = 0;
6301 Data30->field_36 = 0;
6302 pData2C->field_6A = 0x10000;
6303 if (pSprite->field_22 != eSprite_PersonType_Human)

Callers

nothing calls this directly

Calls 1

isCoverDiskMethod · 0.80

Tested by

no test coverage detected