| 7557 | } |
| 7558 | |
| 7559 | int16 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; |
nothing calls this directly
no outgoing calls
no test coverage detected