| 11922 | } |
| 11923 | |
| 11924 | void 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 | |
| 11966 | loc_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 | |
| 11976 | loc_1B2B6:; |
| 11977 | |
| 11978 | if (!Sprite_Create_Enemy(pSprite, Data2C)) { |
| 11979 | Data2C->field_4 -= 4; |
| 11980 | return; |
| 11981 | } |
nothing calls this directly
no outgoing calls
no test coverage detected