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

Method Sprite_Under_Vehicle

Source/Fodder.cpp:5031–5090  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5029}
5030
5031void cFodder::Sprite_Under_Vehicle(sSprite* pSprite, int16 pData8, int16 pDataC, int16 pData10, int16 pData14, int16 pData18, int16 pData1C) {
5032
5033 if (mPhase_Finished)
5034 return;
5035
5036 sSprite* Sprite = mSprites.data();
5037
5038 // TODO: Fix counter
5039 for (int16 Count = 0x1D; Count >= 0; --Count, ++Sprite) {
5040 if (Sprite->field_0 == -32768)
5041 continue;
5042
5043 if (Sprite == pSprite)
5044 continue;
5045
5046 if (!mSprite_Can_Be_RunOver[Sprite->field_18])
5047 continue;
5048
5049 if (pSprite->field_22 == Sprite->field_22)
5050 continue;
5051
5052 if (Sprite->field_18 == eSprite_Hostage)
5053 continue;
5054
5055 if (Sprite->field_18 == eSprite_Enemy_Leader)
5056 continue;
5057
5058 if (pData8 > Sprite->field_0)
5059 continue;
5060
5061 if (pDataC < Sprite->field_0)
5062 continue;
5063
5064 if (pData10 > Sprite->field_4)
5065 continue;
5066
5067 if (pData14 < Sprite->field_4)
5068 continue;
5069
5070 int16 Data0 = Sprite->field_20;
5071 if (pData1C < Data0)
5072 continue;
5073 Data0 += 0x0E;
5074 if (pData18 > Data0)
5075 continue;
5076
5077 if (Sprite->field_18 != eSprite_Player) {
5078 if (Sprite->field_6E)
5079 continue;
5080 }
5081
5082 // Run Over
5083 Sprite->field_38 = eSprite_Anim_Die1;
5084 if (!Sprite->field_65)
5085 return;
5086
5087 pSprite->field_38 = eSprite_Anim_Die1;
5088 return;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected