summaryrefslogtreecommitdiffstats
path: root/source/cCreativeInventory.cpp
diff options
context:
space:
mode:
authormadmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2012-08-10 21:01:36 +0200
committermadmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2012-08-10 21:01:36 +0200
commit6711fcd6360a4a0a5efba95d51b1fd1cb456471c (patch)
treeb2be4dcafd474b5259e8db12daeb6339f1101975 /source/cCreativeInventory.cpp
parentTorch placement handling (contributed by l0udPL) (diff)
downloadcuberite-6711fcd6360a4a0a5efba95d51b1fd1cb456471c.tar
cuberite-6711fcd6360a4a0a5efba95d51b1fd1cb456471c.tar.gz
cuberite-6711fcd6360a4a0a5efba95d51b1fd1cb456471c.tar.bz2
cuberite-6711fcd6360a4a0a5efba95d51b1fd1cb456471c.tar.lz
cuberite-6711fcd6360a4a0a5efba95d51b1fd1cb456471c.tar.xz
cuberite-6711fcd6360a4a0a5efba95d51b1fd1cb456471c.tar.zst
cuberite-6711fcd6360a4a0a5efba95d51b1fd1cb456471c.zip
Diffstat (limited to 'source/cCreativeInventory.cpp')
-rw-r--r--source/cCreativeInventory.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/source/cCreativeInventory.cpp b/source/cCreativeInventory.cpp
index 7083adeb7..77b9107b7 100644
--- a/source/cCreativeInventory.cpp
+++ b/source/cCreativeInventory.cpp
@@ -28,8 +28,20 @@ void cCreativeInventory::Clicked( cPacket* a_ClickPacket )
{
cPacket_CreativeInventoryAction* Packet = reinterpret_cast<cPacket_CreativeInventoryAction *>(a_ClickPacket);
short Slot = Packet->m_Slot;
+ if (Slot == -1)
+ {
+ // object thrown out
+ m_Owner->TossItem(false, Packet->m_Quantity, Packet->m_ItemID, Packet->m_Damage);
+ return;
+ }
+
+ if ((Slot < c_HotOffset) || (Slot >= c_NumSlots))
+ {
+ LOG("%s: Invalid slot (%d) in CreativeInventoryAction packet. Ignoring...", m_Owner->GetName().c_str(), Slot);
+ return;
+ }
- cItem* SlotItem = &(this->m_Slots[Slot]);
+ cItem * SlotItem = &(this->m_Slots[Slot]);
SlotItem->m_ItemID = (ENUM_ITEM_ID) Packet->m_ItemID;
SlotItem->m_ItemHealth = Packet->m_Damage;