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

Method Sprite_Direction_Between_Points

Source/Fodder.cpp:7714–7819  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7712}
7713
7714int16 cFodder::Sprite_Direction_Between_Points(sSprite* pSprite, int16& pData0, int16& pData4) {
7715 pData0 -= pSprite->field_0;
7716 pData4 -= pSprite->field_4;
7717
7718 int16 Data10 = 0;
7719 if (pData0 < 0)
7720 Data10 = 1;
7721 Data10 = -Data10;
7722
7723 if (pData0 < 0)
7724 pData0 = -pData0;
7725
7726 int16 Data14 = 0;
7727 if (pData4 < 0)
7728 Data14 = 1;
7729 Data14 = -Data14;
7730
7731 if (pData4 < 0)
7732 pData4 = -pData4;
7733
7734 int16 Data8 = 0x1F;
7735 int16 DataC = 0;
7736 if (pData0 <= Data8)
7737 if (pData4 <= Data8)
7738 goto loc_2A2F5;
7739
7740 //seg007:0755
7741 ++DataC;
7742 Data8 <<= 1;
7743 ++Data8;
7744
7745 //loc_2A283
7746 for (;;) {
7747 if (pData0 <= Data8)
7748 if (pData4 <= Data8)
7749 break;
7750 ++DataC;
7751 Data8 <<= 1;
7752 ++Data8;
7753 if (pData0 <= Data8)
7754 if (pData4 <= Data8)
7755 break;
7756
7757 ++DataC;
7758 Data8 <<= 1;
7759 ++Data8;
7760 if (pData0 <= Data8)
7761 if (pData4 <= Data8)
7762 break;
7763
7764 ++DataC;
7765 Data8 <<= 1;
7766 ++Data8;
7767 }
7768 //loc_2A2E5
7769 pData0 >>= DataC;
7770 pData4 >>= DataC;
7771

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected