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

Method Sprite_Find_In_Region

Source/Fodder.cpp:8973–9104  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8971}
8972
8973int16 cFodder::Sprite_Find_In_Region(sSprite* pSprite, sSprite*& pData24, int16 pData8, int16 pDataC, int16 pData10, int16 pData14) {
8974
8975 if (mPhase_Finished) {
8976 word_3AA45 = 0;
8977 return 0;
8978 }
8979
8980 mSprites_Found_Count = 0;
8981
8982 pData24 = mSprites.data();
8983
8984 for (int32 Data1C = mParams->getSpritesMax() - 2; Data1C >= 0; --Data1C, ++pData24) {
8985 int16 Data4 = pData24->field_18;
8986
8987 if (!mSprite_Can_Be_RunOver[Data4])
8988 continue;
8989
8990 if (pData24->field_0 < 0)
8991 continue;
8992
8993 if (pDataC < pData24->field_0)
8994 continue;
8995
8996 int16 Data0 = pData24->field_0;
8997 Data0 += mSprite_Width[Data4];
8998 if (pData8 > Data0)
8999 continue;
9000
9001 Data0 = pData24->field_4;
9002 Data0 -= mSprite_Height_Top[Data4];
9003 if (pData14 < Data0)
9004 continue;
9005
9006 //seg009:050C
9007 Data0 = pData24->field_4;
9008 Data0 += mSprite_Height_Bottom[Data4];
9009
9010 if (pData10 > Data0)
9011 continue;
9012
9013 int16 Data18 = pSprite->field_20;
9014 Data0 = mSprite_Height_Top[Data4];
9015 Data0 += 8;
9016
9017 Data0 += pData24->field_20;
9018
9019 if (Data18 > Data0)
9020 continue;
9021 Data18 += 0x0B;
9022
9023 if (Data18 < pData24->field_20)
9024 continue;
9025
9026 if (pData24->field_18 != eSprite_Player)
9027 goto loc_2D5FA;
9028
9029 if (pData24->field_38 != eSprite_Anim_Die5)
9030 continue;

Callers

nothing calls this directly

Calls 1

getSpritesMaxMethod · 0.80

Tested by

no test coverage detected