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

Method Map_Get_Distance_BetweenPoints

Source/Fodder.cpp:7998–8038  ·  view source on GitHub ↗

* Calculate the distance between two points on the map * * @return Distance between points */

Source from the content-addressed store, hash-verified

7996 * @return Distance between points
7997 */
7998int16 cFodder::Map_Get_Distance_BetweenPoints(int16& pPosX, int16& pPosY, int16& pPosX2, int16& pDistanceMax, int16& pPosY2) {
7999 const int8* Data24 = mMap_Distance_Calculations;
8000
8001 pPosX2 -= pPosX;
8002 if (pPosX2 < 0)
8003 pPosX2 = -pPosX2;
8004
8005 if (pPosX2 >= pDistanceMax)
8006 goto loc_2A7DB;
8007
8008 pPosY2 -= pPosY;
8009 if (pPosY2 < 0)
8010 pPosY2 = -pPosY2;
8011
8012 if (pPosY2 >= pDistanceMax)
8013 goto loc_2A7DB;
8014
8015 pDistanceMax = 0;
8016 for (;;) {
8017 if (pPosX2 <= 0x1F)
8018 if (pPosY2 <= 0x1F)
8019 break;
8020
8021 pPosX2 >>= 1;
8022 pPosY2 >>= 1;
8023 ++pDistanceMax;
8024 }
8025 //loc_2A7AD
8026 pPosY2 <<= 5;
8027 pPosY2 |= pPosX2;
8028 pPosX = 0;
8029
8030 pPosX = Data24[pPosY2];
8031 pPosX <<= pDistanceMax;
8032
8033 return pPosX;
8034
8035loc_2A7DB:;
8036 pPosX = 0x3E8;
8037 return 0x3E8;
8038}
8039
8040int32 cFodder::Map_Get_Distance_BetweenPositions(cPosition pPos1, cPosition pPos2, int32 pDistanceMax) {
8041

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected