diff options
author | madmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2012-08-10 21:01:36 +0200 |
---|---|---|
committer | madmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2012-08-10 21:01:36 +0200 |
commit | 6711fcd6360a4a0a5efba95d51b1fd1cb456471c (patch) | |
tree | b2be4dcafd474b5259e8db12daeb6339f1101975 /source/cCreativeInventory.cpp | |
parent | Torch placement handling (contributed by l0udPL) (diff) | |
download | cuberite-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.cpp | 14 |
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; |