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

Method Map_Terrain_Get_Moveable

Source/Fodder.cpp:8471–8513  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8469}
8470
8471int16 cFodder::Map_Terrain_Get_Moveable(const int8* pMovementData, int16& pX, int16& pY) {
8472 uint32 DataC = pY;
8473 uint32 Data8 = pX;
8474
8475 if (pY < 0)
8476 DataC = 0;
8477 if (pX < 0)
8478 Data8 = 0;
8479
8480 DataC >>= 4;
8481
8482 DataC *= mMapLoaded->getWidth();
8483 Data8 >>= 4;
8484
8485 DataC += Data8;
8486 DataC <<= 1;
8487
8488 if (mMap->data() + 0x60 + DataC >= mMap->data() + mMap->size())
8489 return pMovementData[0];
8490
8491 int16 Data0 = readLE<uint16>(mMap->data() + 0x60 + DataC);
8492 Data0 &= 0x1FF;
8493
8494 int16 Data4 = mTile_Hit[Data0];
8495
8496 if (Data4 >= 0) {
8497 Data4 &= 0x0F;
8498 return pMovementData[Data4];
8499 }
8500
8501 Data8 = Data4;
8502 Data4 &= 0x0F;
8503
8504 Data0 = pMovementData[Data4];
8505 Data8 >>= 4;
8506 Data8 &= 0x0F;
8507
8508 Data0 |= pMovementData[Data8];
8509
8510 pX = Data8;
8511 pY = DataC;
8512 return Data0;
8513}
8514
8515void cFodder::Map_Get_Distance_BetweenPoints_Within_640(int16& pX, int16& pY, int16& pX2, int16& pY2) {
8516 int16 Data10 = 0;

Callers

nothing calls this directly

Calls 2

getWidthMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected