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

Method Sprite_Handle_BuildingDoor3

Source/Fodder.cpp:13859–13917  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

13857}
13858
13859void cFodder::Sprite_Handle_BuildingDoor3(sSprite* pSprite) {
13860 int16 Data0, Data4;
13861 sSprite* Data2C = 0;
13862
13863 if (sub_1D92E(pSprite))
13864 return;
13865
13866 if (mTroops_Enemy_Count >= mParams->mSpawnEnemyMax) {
13867 pSprite->field_8 = 0xE0;
13868 return;
13869 }
13870
13871 pSprite->field_2C = eSprite_Draw_First;
13872 if (pSprite->field_43 < 0)
13873 goto loc_1D8DC;
13874
13875 pSprite->field_43 -= 1;
13876 if (pSprite->field_43 == 0x14 || pSprite->field_43 == 0x0A)
13877 goto loc_1D928;
13878
13879 if (pSprite->field_43 >= 0) {
13880 pSprite->field_8 = 0x7C;
13881 return;
13882 }
13883
13884 pSprite->field_8 = 0xE0;
13885 Sound_Play(pSprite, eSound_Effect_BuildingDoor2, 1);
13886
13887 Data0 = tool_RandomGet() & 0x0F;
13888 Data4 = 0x14 - mGame_Data.mGamePhase_Data.mSprite_Enemy_AggressionMax;
13889
13890 if (Data4 < 0)
13891 Data0 = 0;
13892
13893 Data4 <<= 3;
13894 Data4 += Data0;
13895 pSprite->field_12 = Data4;
13896
13897loc_1D8DC:;
13898
13899 pSprite->field_12 -= 1;
13900 if (pSprite->field_12 >= 0)
13901 return;
13902
13903 Data0 = tool_RandomGet() & 0x0F;
13904 Data0 += 6;
13905 pSprite->field_43 = static_cast<int8>(Data0);
13906 pSprite->field_8 = 0x7C;
13907
13908 if (!Sprite_Create_Enemy(pSprite, Data2C))
13909 return;
13910
13911 pSprite->field_12 = -1;
13912 pSprite->field_43 = -1;
13913 return;
13914
13915loc_1D928:;
13916 Sprite_Create_Enemy(pSprite, Data2C);

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected