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

Method Sprite_Get_Free_Max29

Source/Fodder.cpp:17559–17602  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

17557}
17558
17559int16 cFodder::Sprite_Get_Free_Max29(int16& pData0, sSprite*& pData2C, sSprite*& pData30) {
17560 if (mSprite_SpareUsed2)
17561 goto loc_21B4B;
17562
17563 if (pData0 == 2)
17564 goto loc_21B91;
17565
17566 pData2C = &mSprites[mParams->getSpritesMax() - 16];
17567 for (int32_t Data1C = mParams->getSpritesMax() - 16; Data1C >= 0; --Data1C, --pData2C) {
17568
17569 if (pData2C->field_0 == -32768) {
17570 pData2C->Clear();
17571 pData0 = 0;
17572 return 0;
17573 }
17574 }
17575
17576loc_21B4B:;
17577 pData2C = &mSprite_Spare;
17578 pData30 = &mSprite_Spare;
17579 pData0 = -1;
17580 mSprite_SpareUsed2 = pData0;
17581 return -1;
17582
17583loc_21B91:;
17584 pData2C = mSprites.data();
17585
17586 for (int32_t Data1C = mParams->getSpritesMax() - 17; Data1C >= 0; --Data1C, ++pData2C) {
17587
17588 if (pData2C->field_0 != -32768)
17589 continue;
17590
17591 if ((pData2C + 1)->field_0 == -32768) {
17592 pData30 = pData2C + 1;
17593 pData0 = 0;
17594 }
17595 }
17596
17597 pData2C = &mSprite_Spare;
17598 pData30 = &mSprite_Spare;
17599 pData0 = -1;
17600 mSprite_SpareUsed2 = pData0;
17601 return -1;
17602}
17603
17604void cFodder::Sprite_Handle_Exploidable(sSprite* pSprite) {
17605 int64 Dat0;

Callers

nothing calls this directly

Calls 2

getSpritesMaxMethod · 0.80
ClearMethod · 0.45

Tested by

no test coverage detected