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

Method Sprite_Create_Native

Source/Fodder.cpp:7517–7557  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7515}
7516
7517int16 cFodder::Sprite_Create_Native(sSprite* pSprite, sSprite*& pData2C, sSprite*& pData30) {
7518 int16 Data4;
7519
7520 if (!pSprite->field_5C)
7521 return -1;
7522
7523 if (mPhase_Complete)
7524 return -1;
7525
7526 if (mTroops_Enemy_Count >= mParams->mSpawnEnemyMax)
7527 return -1;
7528
7529 int16 Data0 = 1;
7530
7531 Sprite_Get_Free_Max29(Data0, pData2C, pData30);
7532 if (Data0)
7533 return -1;
7534
7535 pData2C->Clear();
7536 pData2C->field_18 = mSpawnSpriteType;
7537 pData2C->field_0 = pSprite->field_0;
7538 pData2C->field_0 -= 6;
7539 pData2C->field_4 = pSprite->field_4;
7540 pData2C->field_4 += 4;
7541 pData2C->field_8 = 0x7C;
7542 pData2C->field_4A = 0;
7543 pData2C->field_22 = eSprite_PersonType_Native;
7544
7545 Data0 = tool_RandomGet();
7546 Data4 = Data0;
7547 Data0 &= 0x1E;
7548 if (Data4 < 0)
7549 Data0 = -Data0;
7550
7551 Data0 += 0x1C0;
7552 pData2C->field_10 = Data0;
7553 Data4 &= 0x0F;
7554 Data4 += 8;
7555 pData2C->field_44 = static_cast<int8>(Data4);
7556 return 0;
7557}
7558
7559int16 cFodder::Direction_Between_Points(int16& pData0, int16& pData4, int16& pData8, int16& pDataC) {
7560 int16 Data10 = 0, Data14 = 0;

Callers

nothing calls this directly

Calls 1

ClearMethod · 0.45

Tested by

no test coverage detected