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

Method Sprite_Troop_Dies

Source/Fodder.cpp:15077–15142  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

15075}
15076
15077int16 cFodder::Sprite_Troop_Dies(sSprite* pSprite) {
15078 sMission_Troop* Troop = 0;
15079
15080 // Is Player?
15081 if (pSprite->field_22 == eSprite_PersonType_Human) {
15082 //Yes, is player
15083
15084 ++mGame_Data.mScore_Kills_Away;
15085
15086 if (pSprite->field_46_mission_troop) {
15087
15088 mGame_Data.Soldier_Died(pSprite->field_46_mission_troop);
15089
15090 pSprite->field_46_mission_troop->mSprite = INVALID_SPRITE_PTR;
15091 pSprite->field_46_mission_troop->mRecruitID = -1;
15092 pSprite->field_46_mission_troop->mRank = 0;
15093 }
15094
15095 if (mSquad_Selected < 0) {
15096 mGUI_Sidebar_Setup = 0;
15097 mSquad_Select_Timer = 0;
15098 }
15099 else {
15100 mGUI_Sidebar_Setup = 0;
15101 }
15102
15103 //loc_1F03D
15104 return Sprite_Destroy_Wrapper(pSprite);
15105 }
15106
15107 if (pSprite->field_18 == eSprite_Enemy_Rocket || pSprite->field_18 == eSprite_Enemy) {
15108
15109 ++mGame_Data.mScore_Kills_Home;
15110 --mTroops_Enemy_Count;
15111 if (pSprite->field_5D) {
15112 pSprite->field_5D = 0;
15113
15114 // Default to first human soldier
15115 Troop = mGame_Data.mSoldiers_Allocated;
15116
15117 if (pSprite->field_5E_SoldierAllocated) {
15118 Troop = pSprite->field_5E_SoldierAllocated;
15119 goto loc_1F1E9;
15120 }
15121 }
15122
15123 // Sprite didnt have a soldier who killed it attached
15124 if (mSquad_Selected != -1) {
15125 //loc_1F13E
15126 // use the first squad member
15127 if (mSquads[mSquad_Selected][0] != INVALID_SPRITE_PTR && mSquads[mSquad_Selected][0] != 0)
15128 Troop = mSquads[mSquad_Selected][0]->field_46_mission_troop;
15129 }
15130 loc_1F1E9:;
15131
15132 if (Troop >= mGame_Data.mSoldiers_Allocated && Troop <= &mGame_Data.mSoldiers_Allocated[8]) {
15133
15134 if (Troop->mNumberOfKills >= 999)

Callers

nothing calls this directly

Calls 1

Soldier_DiedMethod · 0.80

Tested by

no test coverage detected