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

Method Sprite_Handle_BuildingDoor

Source/Fodder.cpp:11675–11732  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11673}
11674
11675void cFodder::Sprite_Handle_BuildingDoor(sSprite* pSprite) {
11676 int16 Data0, Data4;
11677 sSprite* Data2C = 0;
11678
11679 if (Sprite_Handle_BuildingDoor_Explode(pSprite))
11680 return;
11681
11682 if (mTroops_Enemy_Count >= mParams->mSpawnEnemyMax) {
11683 pSprite->field_8 = 0x99;
11684 return;
11685 }
11686
11687 //loc_1ACEC
11688 pSprite->field_2C = eSprite_Draw_First;
11689 if (pSprite->field_43 < 0)
11690 goto loc_1AD86;
11691
11692 pSprite->field_43 -= 1;
11693 if (pSprite->field_43 == 0x14 || pSprite->field_43 == 0x0A) {
11694
11695 Sprite_Create_Enemy(pSprite, Data2C);
11696 return;
11697 }
11698
11699 if (pSprite->field_43 >= 0) {
11700 pSprite->field_8 = 0x7C;
11701 return;
11702 }
11703
11704 pSprite->field_8 = 0x99;
11705 Sound_Play(pSprite, eSound_Effect_BuildingDoor2, 0x01);
11706 Data0 = tool_RandomGet() & 0x0F;
11707
11708 Data4 = 0x14 - mGame_Data.mGamePhase_Data.mSprite_Enemy_AggressionMax;
11709 if (Data4 < 0)
11710 Data4 = 0;
11711
11712 Data4 <<= 3;
11713
11714 Data4 += Data0;
11715 pSprite->field_12 = Data4;
11716
11717loc_1AD86:;
11718 pSprite->field_12 -= 1;
11719 if (pSprite->field_12 >= 0)
11720 return;
11721
11722 Data0 = tool_RandomGet() & 0x0F;
11723 Data0 += 6;
11724 pSprite->field_43 = static_cast<int8>(Data0);
11725 pSprite->field_8 = 0x7C;
11726
11727 if (!Sprite_Create_Enemy(pSprite, Data2C))
11728 return;
11729
11730 pSprite->field_12 = -1;
11731 pSprite->field_43 = -1;
11732}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected