Browse Source

♻️ Reuse 'AutoPlaceItemInInventory' inside 'StoreAutoPlace'

pull/1407/head
Juliano Leal Goncalves 5 years ago committed by Anders Jenbo
parent
commit
da18b0f97b
  1. 2
      Source/inv.cpp
  2. 1
      Source/inv.h
  3. 55
      Source/stores.cpp

2
Source/inv.cpp

@ -853,7 +853,7 @@ bool AutoEquipEnabled(const PlayerStruct &player, const ItemStruct &item)
* @param persistItem Pass 'True' to actually place the item in the inventory. The default is 'False'.
* @return 'True' in case the item can be placed on the player's inventory and 'False' otherwise.
*/
bool AutoPlaceItemInInventory(int playerNumber, const ItemStruct &item, bool persistItem = false)
bool AutoPlaceItemInInventory(int playerNumber, const ItemStruct &item, bool persistItem)
{
InvXY itemSize = GetInventorySize(item);
bool done = false;

1
Source/inv.h

@ -42,6 +42,7 @@ void DrawInv(CelOutputBuffer out);
void DrawInvBelt(CelOutputBuffer out);
bool AutoEquipEnabled(const PlayerStruct &player, const ItemStruct &item);
bool AutoEquip(int playerNumber, const ItemStruct &item, bool persistItem = true);
bool AutoPlaceItemInInventory(int playerNumber, const ItemStruct &item, bool persistItem = false);
bool AutoPlaceItemInInventorySlot(int playerNumber, int slotIndex, const ItemStruct &item, bool persistItem);
bool AutoPlaceItemInBelt(int playerNumber, const ItemStruct &item, bool persistItem = false);
BOOL GoldAutoPlace(int pnum);

55
Source/stores.cpp

@ -205,59 +205,8 @@ void StoreAutoPlace()
done = true;
}
if (w == 1 && h == 1 && !done) {
done = AutoPlaceItemInBelt(myplr, plr[myplr].HoldItem, true);
for (i = 30; i <= 39 && !done; i++) {
done = AutoPlaceItemInInventorySlot(myplr, i, plr[myplr].HoldItem, true);
}
for (i = 20; i <= 29 && !done; i++) {
done = AutoPlaceItemInInventorySlot(myplr, i, plr[myplr].HoldItem, true);
}
for (i = 10; i <= 19 && !done; i++) {
done = AutoPlaceItemInInventorySlot(myplr, i, plr[myplr].HoldItem, true);
}
for (i = 0; i <= 9 && !done; i++) {
done = AutoPlaceItemInInventorySlot(myplr, i, plr[myplr].HoldItem, true);
}
}
if (w == 1 && h == 2 && !done) {
for (i = 29; i >= 20 && !done; i--) {
done = AutoPlaceItemInInventorySlot(myplr, i, plr[myplr].HoldItem, true);
}
for (i = 9; i >= 0 && !done; i--) {
done = AutoPlaceItemInInventorySlot(myplr, i, plr[myplr].HoldItem, true);
}
for (i = 19; i >= 10 && !done; i--) {
done = AutoPlaceItemInInventorySlot(myplr, i, plr[myplr].HoldItem, true);
}
}
if (w == 1 && h == 3 && !done) {
for (i = 0; i < 20 && !done; i++) {
done = AutoPlaceItemInInventorySlot(myplr, i, plr[myplr].HoldItem, true);
}
}
if (w == 2 && h == 2 && !done) {
for (i = 0; i < 10 && !done; i++) {
done = AutoPlaceItemInInventorySlot(myplr, AP2x2Tbl[i], plr[myplr].HoldItem, true);
}
for (i = 21; i < 29 && !done; i += 2) {
done = AutoPlaceItemInInventorySlot(myplr, i, plr[myplr].HoldItem, true);
}
for (i = 1; i < 9 && !done; i += 2) {
done = AutoPlaceItemInInventorySlot(myplr, i, plr[myplr].HoldItem, true);
}
for (i = 10; i < 19 && !done; i++) {
done = AutoPlaceItemInInventorySlot(myplr, i, plr[myplr].HoldItem, true);
}
}
if (w == 2 && h == 3 && !done) {
for (i = 0; i < 9 && !done; i++) {
done = AutoPlaceItemInInventorySlot(myplr, i, plr[myplr].HoldItem, true);
}
for (i = 10; i < 19 && !done; i++) {
done = AutoPlaceItemInInventorySlot(myplr, i, plr[myplr].HoldItem, true);
}
if (!done) {
AutoPlaceItemInBelt(myplr, plr[myplr].HoldItem, true) || AutoPlaceItemInInventory(myplr, plr[myplr].HoldItem, true);
}
}

Loading…
Cancel
Save