diff options
author | Fedja Beader <fedja@protonmail.ch> | 2025-02-20 22:02:00 +0000 |
---|---|---|
committer | Fedja Beader <fedja@protonmail.ch> | 2025-02-20 22:02:00 +0000 |
commit | bb5d5bef365c65fed4fa32c3ac2ce384b2ea4e52 (patch) | |
tree | 003b8a99a17f76592a89b72d9f007ceb6b626b55 /src/progs | |
parent | 530545589cdaf6d1664438e885d0b4e538684d9b (diff) | |
download | plus-bb5d5bef365c65fed4fa32c3ac2ce384b2ea4e52.tar.gz plus-bb5d5bef365c65fed4fa32c3ac2ce384b2ea4e52.tar.bz2 plus-bb5d5bef365c65fed4fa32c3ac2ce384b2ea4e52.tar.xz plus-bb5d5bef365c65fed4fa32c3ac2ce384b2ea4e52.zip |
Convert navigateTo to take a Position instead of two integers.
Tile coordinates dance in pairs, so let's pair them up.
also grows exe size by about 3K, hope this will go away when the rest is
converted to Position as well. Note: on my local debug build only. Not on gcc10 CI.
Squashed with:
* Should it be mNavigateDest or mNavigateTo? Hmm, the jury is still out
there ...
****
mana/plus!116
Diffstat (limited to 'src/progs')
-rw-r--r-- | src/progs/manaplus/actions/commands.cpp | 11 | ||||
-rw-r--r-- | src/progs/manaplus/gui/viewport.cpp | 24 |
2 files changed, 16 insertions, 19 deletions
diff --git a/src/progs/manaplus/actions/commands.cpp b/src/progs/manaplus/actions/commands.cpp index 53c0996ac..443217de2 100644 --- a/src/progs/manaplus/actions/commands.cpp +++ b/src/progs/manaplus/actions/commands.cpp @@ -483,11 +483,10 @@ impHandler(navigate) return false; } - int x = 0; - int y = 0; + Position dest {0, 0}; - if (parse2Int(event.args, x, y)) - localPlayer->navigateTo(x, y); + if (parse2Int(event.args, dest.x, dest.y)) + localPlayer->navigateTo(dest); else localPlayer->navigateClean(); return true; @@ -509,7 +508,7 @@ impHandler(navigateTo) ActorType::Unknown); if (being != nullptr) { - localPlayer->navigateTo(being->getTileX(), being->getTileY()); + localPlayer->navigateTo({being->getTileX(), being->getTileY()}); } else if (localPlayer->isInParty()) { @@ -523,7 +522,7 @@ impHandler(navigateTo) o != nullptr && m->getMap() == o->getMap()) { - localPlayer->navigateTo(m->getX(), m->getY()); + localPlayer->navigateTo({m->getX(), m->getY()}); } } } diff --git a/src/progs/manaplus/gui/viewport.cpp b/src/progs/manaplus/gui/viewport.cpp index 5483b3d0e..a091a2c75 100644 --- a/src/progs/manaplus/gui/viewport.cpp +++ b/src/progs/manaplus/gui/viewport.cpp @@ -724,7 +724,7 @@ void Viewport::walkByMouse(const MouseEvent &event) BlockMask::WATER | BlockMask::PLAYERWALL)) { - localPlayer->navigateTo(playerX + dx, playerY + dy); + localPlayer->navigateTo({playerX + dx, playerY + dy}); } else { @@ -810,29 +810,27 @@ void Viewport::walkByMouse(const MouseEvent &event) } } } - localPlayer->navigateTo(playerX + dx, playerY + dy); + localPlayer->navigateTo({playerX + dx, playerY + dy}); } } else { - int destX; - int destY; - getMouseTile(event.getX(), event.getY(), - destX, destY); - if (playerX != destX || playerY != destY) + Position dest {0, 0}; + getMouseTile(event.getX(), event.getY(), dest.x, dest.y); + if (playerX != dest.x || playerY != dest.y) { - if (!localPlayer->navigateTo(destX, destY)) + if (!localPlayer->navigateTo(dest)) { - if (playerX > destX) + if (playerX > dest.x) playerX --; - else if (playerX < destX) + else if (playerX < dest.x) playerX ++; - if (playerY > destY) + if (playerY > dest.y) playerY --; - else if (playerY < destY) + else if (playerY < dest.y) playerY ++; if (mMap->getWalk(playerX, playerY, 0)) - localPlayer->navigateTo(playerX, playerY); + localPlayer->navigateTo({playerX, playerY}); } } } |