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

Method Sprite_Handle_BuildingDoor2

Source/Fodder.cpp:11924–11985  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11922}
11923
11924void cFodder::Sprite_Handle_BuildingDoor2(sSprite* pSprite) {
11925 int16 Data0, Data4;
11926 sSprite* Data2C = 0;
11927
11928 if (sub_222A3(pSprite))
11929 return;
11930
11931 if (mTroops_Enemy_Count >= mParams->mSpawnEnemyMax) {
11932 pSprite->field_8 = 0x9B;
11933 return;
11934 }
11935
11936 pSprite->field_2C = eSprite_Draw_First;
11937 if (pSprite->field_43 < 0)
11938 goto loc_1B285;
11939
11940 pSprite->field_43 -= 1;
11941 if (pSprite->field_43 == 0x14)
11942 goto loc_1B2B6;
11943
11944 if (pSprite->field_43 == 0x0A)
11945 goto loc_1B2B6;
11946
11947 if (pSprite->field_43 >= 0) {
11948 pSprite->field_8 = 0x7C;
11949 return;
11950 }
11951
11952 pSprite->field_8 = 0x9B;
11953
11954 Sound_Play(pSprite, eSound_Effect_BuildingDoor2, 1);
11955 Data0 = tool_RandomGet() & 0x0F;
11956 Data4 = 0x14;
11957
11958 Data4 -= mGame_Data.mGamePhase_Data.mSprite_Enemy_AggressionMax;
11959 if (Data4 < 0)
11960 Data0 = 0;
11961
11962 Data4 <<= 3;
11963 Data4 += Data0;
11964 pSprite->field_12 = Data4;
11965
11966loc_1B285:;
11967 pSprite->field_12 -= 1;
11968 if (pSprite->field_12 >= 0)
11969 return;
11970
11971 Data0 = tool_RandomGet() & 0x0F;
11972 Data0 += 6;
11973 pSprite->field_43 = static_cast<int8>(Data0);
11974 pSprite->field_8 = 0x7C;
11975
11976loc_1B2B6:;
11977
11978 if (!Sprite_Create_Enemy(pSprite, Data2C)) {
11979 Data2C->field_4 -= 4;
11980 return;
11981 }

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected