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

Method Direction_Between_Points

Source/Fodder.cpp:7559–7640  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7557}
7558
7559int16 cFodder::Direction_Between_Points(int16& pData0, int16& pData4, int16& pData8, int16& pDataC) {
7560 int16 Data10 = 0, Data14 = 0;
7561
7562 pData0 -= pData8;
7563 pData4 -= pDataC;
7564 if (pData0 < 0)
7565 Data10 = 1;
7566
7567 Data10 = -Data10;
7568 if (pData0 < 0)
7569 pData0 = -pData0;
7570
7571 if (pData4 < 0)
7572 Data14 = 1;
7573
7574 Data14 = -Data14;
7575 if (pData4 < 0)
7576 pData4 = -pData4;
7577
7578 pData8 = 9;
7579 do {
7580 int32 eax = 1 << pData8;
7581
7582 if (pData0 & eax)
7583 break;
7584
7585 if (pData4 & eax)
7586 break;
7587
7588 } while (--pData8 >= 0);
7589
7590 pData8 -= 4;
7591 if (pData8 >= 0) {
7592 pData0 >>= pData8;
7593 pData4 >>= pData8;
7594 }
7595
7596 pData4 <<= 5;
7597 pData4 |= pData0;
7598 //pData4 <<= 1;
7599 pData4 = mMap_DirectionsBetweenPoints[pData4];
7600 if (pData4 < 0)
7601 return pData4;
7602
7603 pData4 <<= 1;
7604
7605 if (Data10 < 0)
7606 goto loc_29FC2;
7607
7608 if (Data14 < 0)
7609 goto loc_29FAD;
7610
7611 pData0 = 0x80;
7612 pData0 -= pData4;
7613 pData0 &= 0x1FE;
7614
7615 pData4 = pData0;
7616 pData0 = 0;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected