| 11673 | } |
| 11674 | |
| 11675 | void 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 | |
| 11717 | loc_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 | } |
nothing calls this directly
no outgoing calls
no test coverage detected