Browse Source

Change InventoryMoveToBody side-effect to return value

This makes the call sites use the same pattern as every other inventory movement. See the next commit for why :D
pull/4459/head
ephphatha 4 years ago committed by Anders Jenbo
parent
commit
b2127d07dc
  1. 24
      Source/controls/plrctrls.cpp

24
Source/controls/plrctrls.cpp

@ -772,21 +772,17 @@ Point FindClosestStashSlot(Point mousePos)
/** /**
* @brief Figures out where on the body to move when on the first row * @brief Figures out where on the body to move when on the first row
*/ */
Point InventoryMoveToBody(int slot) inv_xy_slot InventoryMoveToBody(int slot)
{ {
PreviousInventoryColumn = slot - SLOTXY_INV_ROW1_FIRST; PreviousInventoryColumn = slot - SLOTXY_INV_ROW1_FIRST;
if (slot <= SLOTXY_INV_ROW1_FIRST + 2) { // first 3 general slots if (slot <= SLOTXY_INV_ROW1_FIRST + 2) { // first 3 general slots
Slot = SLOTXY_RING_LEFT; return SLOTXY_RING_LEFT;
return InvGetEquipSlotCoord(INVLOC_RING_LEFT);
} else if (slot <= SLOTXY_INV_ROW1_FIRST + 6) { // middle 4 general slots
Slot = SLOTXY_CHEST_FIRST;
return InvGetEquipSlotCoord(INVLOC_CHEST);
} else { // last 3 general slots
Slot = SLOTXY_RING_RIGHT;
return InvGetEquipSlotCoord(INVLOC_RING_RIGHT);
} }
if (slot <= SLOTXY_INV_ROW1_FIRST + 6) { // middle 4 general slots
return GetSlotCoord(0); return SLOTXY_CHEST_FIRST;
}
// last 3 general slots
return SLOTXY_RING_RIGHT;
} }
void InventoryMove(AxisDirection dir) void InventoryMove(AxisDirection dir)
@ -932,7 +928,8 @@ void InventoryMove(AxisDirection dir)
} }
} else { } else {
if (Slot >= SLOTXY_INV_ROW1_FIRST && Slot <= SLOTXY_INV_ROW1_LAST) { if (Slot >= SLOTXY_INV_ROW1_FIRST && Slot <= SLOTXY_INV_ROW1_LAST) {
mousePos = InventoryMoveToBody(Slot); Slot = InventoryMoveToBody(Slot);
mousePos = InvGetEquipSlotCoordFromInvSlot(Slot);
} else if (Slot == SLOTXY_CHEST_FIRST || Slot == SLOTXY_HAND_LEFT_FIRST) { } else if (Slot == SLOTXY_CHEST_FIRST || Slot == SLOTXY_HAND_LEFT_FIRST) {
Slot = SLOTXY_HEAD_FIRST; Slot = SLOTXY_HEAD_FIRST;
mousePos = InvGetEquipSlotCoord(INVLOC_HEAD); mousePos = InvGetEquipSlotCoord(INVLOC_HEAD);
@ -950,7 +947,8 @@ void InventoryMove(AxisDirection dir)
if (itemId != 0) { if (itemId != 0) {
for (int i = 1; i < 5; i++) { for (int i = 1; i < 5; i++) {
if (Slot - i * INV_ROW_SLOT_SIZE < SLOTXY_INV_ROW1_FIRST) { if (Slot - i * INV_ROW_SLOT_SIZE < SLOTXY_INV_ROW1_FIRST) {
mousePos = InventoryMoveToBody(Slot - (i - 1) * INV_ROW_SLOT_SIZE); Slot = InventoryMoveToBody(Slot - (i - 1) * INV_ROW_SLOT_SIZE);
mousePos = InvGetEquipSlotCoordFromInvSlot(Slot);
break; break;
} }
if (itemId != GetItemIdOnSlot(Slot - i * INV_ROW_SLOT_SIZE)) { if (itemId != GetItemIdOnSlot(Slot - i * INV_ROW_SLOT_SIZE)) {

Loading…
Cancel
Save