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

Method Sprite_Create_Enemy

Source/Fodder.cpp:17931–17976  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

17929}
17930
17931int16 cFodder::Sprite_Create_Enemy(sSprite* pSprite, sSprite*& pData2C) {
17932
17933 if (mPhase_Complete || mTroops_Enemy_Count >= mParams->mSpawnEnemyMax)
17934 return -1;
17935 int16 Data0 = 1;
17936 sSprite* Data30 = 0;
17937
17938 if (Sprite_Get_Free_Max29(Data0, pData2C, Data30))
17939 return -1;
17940
17941 //loc_21A1C:;
17942 pData2C->Clear();
17943 pData2C->field_18 = eSprite_Enemy;
17944 pData2C->field_0 = pSprite->field_0;
17945 pData2C->field_0 -= 6;
17946 pData2C->field_4 = pSprite->field_4;
17947 pData2C->field_4 += 4;
17948 pData2C->field_8 = 0x7C;
17949 pData2C->field_4A = 0;
17950 pData2C->field_22 = eSprite_PersonType_AI;
17951
17952 Data0 = tool_RandomGet() & 0xFF;
17953 Data0 += 0x78;
17954 Data0 = -Data0;
17955 pData2C->field_5E = Data0;
17956 Data0 = tool_RandomGet();
17957 int16 Data4 = Data0;
17958 Data0 &= 0x1E;
17959 if (Data4 < 0)
17960 Data0 = -Data0;
17961
17962 Data0 += 0x1C0;
17963 pData2C->field_10 = Data0;
17964 Data4 &= 0x0F;
17965 Data4 += 8;
17966 pData2C->field_44 = (int8)Data4;
17967 Sprite_Enemy_Aggression_Update(pData2C);
17968
17969 mGame_Data.mGamePhase_Data.mSprite_Enemy_AggressionCreated_Count += 1;
17970 mGame_Data.mGamePhase_Data.mSprite_Enemy_AggressionCreated_Count &= 0x0F;
17971 if (!mGame_Data.mGamePhase_Data.mSprite_Enemy_AggressionCreated_Count && mGame_Data.mGamePhase_Data.mSprite_Enemy_AggressionMax < 0x1E)
17972 ++mGame_Data.mGamePhase_Data.mSprite_Enemy_AggressionMax;
17973
17974 ++mTroops_Enemy_Count;
17975 return 0;
17976}
17977
17978void cFodder::Sprite_Enemy_Aggression_Update(sSprite* pData2C) {
17979 int16 Data8 = mGame_Data.mGamePhase_Data.mSprite_Enemy_AggressionNext;

Callers

nothing calls this directly

Calls 1

ClearMethod · 0.45

Tested by

no test coverage detected