1
0

Shooting a bow kinda works.

The arrow is released, but sometimes hits wrong blocks or disappears completely.
This commit is contained in:
madmaxoft
2013-08-30 14:24:03 +02:00
parent 6677a5e8ca
commit 17ad4c2610
10 changed files with 221 additions and 15 deletions

View File

@@ -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);