1
0

Don't remove items twice (#4524)

* Don't remove items twice
This commit is contained in:
Mat 2020-03-22 12:17:04 +02:00 committed by GitHub
parent 038194d2a6
commit 49dd645aa6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 16 additions and 19 deletions

View File

@ -306,7 +306,7 @@ Vector3d cDispenserEntity::GetShootVector(NIBBLETYPE a_Meta)
bool cDispenserEntity::ScoopUpLiquid(int a_SlotNum, short a_ResultingBucketItemType)
{
cItem LiquidBucket(a_ResultingBucketItemType, 1);
cItem LiquidBucket(a_ResultingBucketItemType);
if (m_Contents.GetSlot(a_SlotNum).m_ItemCount == 1)
{
// Special case: replacing one empty bucket with one full bucket

View File

@ -32,8 +32,7 @@ public:
if (!a_Player.IsGameModeCreative())
{
a_Player.GetInventory().RemoveOneEquippedItem();
cItem NewItem(E_ITEM_BUCKET, 1);
a_Player.GetInventory().AddItem(NewItem);
a_Player.GetInventory().AddItem(cItem(E_ITEM_BUCKET));
}
}
break;
@ -44,8 +43,7 @@ public:
{
a_ChunkInterface.SetBlockMeta(a_BlockX, a_BlockY, a_BlockZ, --Meta);
a_Player.GetInventory().RemoveOneEquippedItem();
cItem NewItem(E_ITEM_POTIONS, 1, 0);
a_Player.GetInventory().AddItem(NewItem);
a_Player.GetInventory().AddItem(cItem(E_ITEM_POTION));
}
break;
}

View File

@ -145,7 +145,7 @@ void cArrowEntity::CollectedBy(cPlayer & a_Dest)
// Do not add the arrow to the inventory when the player is in creative:
if (!a_Dest.IsGameModeCreative())
{
int NumAdded = a_Dest.GetInventory().AddItem(E_ITEM_ARROW);
int NumAdded = a_Dest.GetInventory().AddItem(cItem(E_ITEM_ARROW));
if (NumAdded == 0)
{
// No space in the inventory

View File

@ -712,10 +712,6 @@ void cPlayer::FinishEating(void)
{
return;
}
if (!IsGameModeCreative())
{
GetInventory().RemoveOneEquippedItem();
}
ItemHandler->OnFoodEaten(m_World, this, &Item);
}

View File

@ -84,8 +84,7 @@ public:
}
a_Player->GetInventory().RemoveOneEquippedItem();
cItem NewItem(E_ITEM_POTION, 1, 0);
a_Player->GetInventory().AddItem(NewItem);
a_Player->GetInventory().AddItem(cItem(E_ITEM_POTION));
return true;
}
} ;

View File

@ -163,8 +163,7 @@ public:
ASSERT(!"Inventory bucket mismatch");
return false;
}
cItem Item(E_ITEM_BUCKET, 1);
if (!a_Player->GetInventory().AddItem(Item))
if (!a_Player->GetInventory().AddItem(cItem(E_ITEM_BUCKET)))
{
return false;
}

View File

@ -103,6 +103,11 @@ public:
return false;
}
if (!a_Player->IsGameModeCreative())
{
a_Player->GetInventory().RemoveOneEquippedItem();
}
switch (m_ItemType)
{
case E_ITEM_BEETROOT_SOUP:

View File

@ -29,7 +29,7 @@ public:
if (!a_Player->IsGameModeCreative())
{
a_Player->GetInventory().RemoveOneEquippedItem();
a_Player->GetInventory().AddItem(E_ITEM_BUCKET);
a_Player->GetInventory().AddItem(cItem(E_ITEM_BUCKET));
}
return true;
}

View File

@ -75,7 +75,7 @@ public:
if (!a_Player->IsGameModeCreative())
{
a_Player->GetInventory().RemoveOneEquippedItem();
a_Player->GetInventory().AddItem(E_ITEM_GLASS_BOTTLE);
a_Player->GetInventory().AddItem(cItem(E_ITEM_GLASS_BOTTLE));
}
return true;
}

View File

@ -47,7 +47,7 @@ void cCow::OnRightClicked(cPlayer & a_Player)
if (!a_Player.IsGameModeCreative())
{
a_Player.GetInventory().RemoveOneEquippedItem();
a_Player.GetInventory().AddItem(E_ITEM_MILK);
a_Player.GetInventory().AddItem(cItem(E_ITEM_MILK));
}
}
}

View File

@ -46,7 +46,7 @@ void cMooshroom::OnRightClicked(cPlayer & a_Player)
if (!a_Player.IsGameModeCreative())
{
a_Player.GetInventory().RemoveOneEquippedItem();
a_Player.GetInventory().AddItem(E_ITEM_MILK);
a_Player.GetInventory().AddItem(cItem(E_ITEM_MILK));
}
} break;
case E_ITEM_BOWL:
@ -54,7 +54,7 @@ void cMooshroom::OnRightClicked(cPlayer & a_Player)
if (!a_Player.IsGameModeCreative())
{
a_Player.GetInventory().RemoveOneEquippedItem();
a_Player.GetInventory().AddItem(E_ITEM_MUSHROOM_SOUP);
a_Player.GetInventory().AddItem(cItem(E_ITEM_MUSHROOM_SOUP));
}
} break;
case E_ITEM_SHEARS: