diff options
author | madmaxoft <github@xoft.cz> | 2013-08-30 14:32:07 +0200 |
---|---|---|
committer | madmaxoft <github@xoft.cz> | 2013-08-30 14:32:07 +0200 |
commit | c28ccdc9d56497d42c2a97554a96de76e0d2ee68 (patch) | |
tree | f1a1f5629ae7e2565330580ab4e6fe76466acf6e /source/Items/ItemHandler.cpp | |
parent | Added the login sequence of a vanilla client to the docs. (diff) | |
parent | Shooting a bow kinda works. (diff) | |
download | cuberite-c28ccdc9d56497d42c2a97554a96de76e0d2ee68.tar cuberite-c28ccdc9d56497d42c2a97554a96de76e0d2ee68.tar.gz cuberite-c28ccdc9d56497d42c2a97554a96de76e0d2ee68.tar.bz2 cuberite-c28ccdc9d56497d42c2a97554a96de76e0d2ee68.tar.lz cuberite-c28ccdc9d56497d42c2a97554a96de76e0d2ee68.tar.xz cuberite-c28ccdc9d56497d42c2a97554a96de76e0d2ee68.tar.zst cuberite-c28ccdc9d56497d42c2a97554a96de76e0d2ee68.zip |
Diffstat (limited to 'source/Items/ItemHandler.cpp')
-rw-r--r-- | source/Items/ItemHandler.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/source/Items/ItemHandler.cpp b/source/Items/ItemHandler.cpp index 66d36e1a6..c0de4a6ec 100644 --- a/source/Items/ItemHandler.cpp +++ b/source/Items/ItemHandler.cpp @@ -8,6 +8,7 @@ // Handlers: #include "ItemBed.h" +#include "ItemBow.h" #include "ItemBrewingStand.h" #include "ItemBucket.h" #include "ItemCauldron.h" @@ -47,18 +48,24 @@ cItemHandler * cItemHandler::m_ItemHandler[2268]; -cItemHandler *cItemHandler::GetItemHandler(int a_ItemType) +cItemHandler * cItemHandler::GetItemHandler(int a_ItemType) { - if(a_ItemType < 0) a_ItemType = 0; + if (a_ItemType < 0) + { + ASSERT(!"Bad item type"); + a_ItemType = 0; + } - if(!m_HandlerInitialized) - { //We have to initialize + if (!m_HandlerInitialized) + { + // We need to initialize memset(m_ItemHandler, 0, sizeof(m_ItemHandler)); m_HandlerInitialized = true; } - if(m_ItemHandler[a_ItemType]) - return m_ItemHandler[a_ItemType]; - m_ItemHandler[a_ItemType] = CreateItemHandler(a_ItemType); + if (m_ItemHandler[a_ItemType] == NULL) + { + m_ItemHandler[a_ItemType] = CreateItemHandler(a_ItemType); + } return m_ItemHandler[a_ItemType]; } @@ -77,6 +84,7 @@ cItemHandler *cItemHandler::CreateItemHandler(int a_ItemType) case E_BLOCK_SAPLING: return new cItemSaplingHandler(a_ItemType); case E_BLOCK_WOOL: return new cItemClothHandler(a_ItemType); case E_ITEM_BED: return new cItemBedHandler(a_ItemType); + case E_ITEM_BOW: return new cItemBowHandler; case E_ITEM_BREWING_STAND: return new cItemBrewingStandHandler(a_ItemType); case E_ITEM_CAULDRON: return new cItemCauldronHandler(a_ItemType); case E_ITEM_DYE: return new cItemDyeHandler(a_ItemType); |