| 17557 | } |
| 17558 | |
| 17559 | int16 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 | |
| 17576 | loc_21B4B:; |
| 17577 | pData2C = &mSprite_Spare; |
| 17578 | pData30 = &mSprite_Spare; |
| 17579 | pData0 = -1; |
| 17580 | mSprite_SpareUsed2 = pData0; |
| 17581 | return -1; |
| 17582 | |
| 17583 | loc_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 | |
| 17604 | void cFodder::Sprite_Handle_Exploidable(sSprite* pSprite) { |
| 17605 | int64 Dat0; |
nothing calls this directly
no test coverage detected