- Implemented function to check item category

- (Cobble-)stone don´t drop item anymore if mined without pickaxe
- FluidSimulator no longer causes compiler warning
- Glowstone drops fixed

git-svn-id: http://mc-server.googlecode.com/svn/trunk@109 0a769ca7-a7f5-676a-18bf-c427514a06d6
master
lapayo94@gmail.com 2011-12-25 17:47:01 +00:00
parent d6953a7ea2
commit 62abd8f29b
3 changed files with 43 additions and 2 deletions

View File

@ -140,3 +140,35 @@ inline float GetSpecialSignf( float a_Val )
{
return (a_Val <= 0.f)?-1.f:1.f;
}
namespace ItemCategory
{
inline bool IsPickaxe(ENUM_ITEM_ID a_ItemID)
{
return a_ItemID == E_ITEM_WOODEN_PICKAXE
|| a_ItemID == E_ITEM_STONE_PICKAXE
|| a_ItemID == E_ITEM_IRON_PICKAXE
|| a_ItemID == E_ITEM_GOLD_PICKAXE
|| a_ItemID == E_ITEM_DIAMOND_PICKAXE;
}
inline bool IsAxe(ENUM_ITEM_ID a_ItemID)
{
return a_ItemID == E_ITEM_WOODEN_AXE
|| a_ItemID == E_ITEM_STONE_AXE
|| a_ItemID == E_ITEM_IRON_AXE
|| a_ItemID == E_ITEM_GOLD_AXE
|| a_ItemID == E_ITEM_DIAMOND_AXE;
}
inline bool IsSword(ENUM_ITEM_ID a_ItemID)
{
return a_ItemID == E_ITEM_WOODEN_SWORD
|| a_ItemID == E_ITEM_STONE_SWORD
|| a_ItemID == E_ITEM_IRON_SWORD
|| a_ItemID == E_ITEM_GOLD_SWORD
|| a_ItemID == E_ITEM_DIAMOND_SWORD;
}
}

View File

@ -1,4 +1,5 @@
#include "cBlockToPickup.h"
#include "Defines.h"
#include "BlockID.h"
#include "stdlib.h"
@ -10,8 +11,11 @@ ENUM_ITEM_ID cBlockToPickup::ToPickup( unsigned char a_BlockID, ENUM_ITEM_ID a_U
{
case E_BLOCK_AIR:
return E_ITEM_EMPTY;
case E_BLOCK_COBBLESTONE:
case E_BLOCK_STONE:
return E_ITEM_COBBLESTONE;
if(ItemCategory::IsPickaxe(a_UsedItemID))
return E_ITEM_COBBLESTONE;
return E_ITEM_EMPTY;
case E_BLOCK_GRASS:
return E_ITEM_DIRT;
case E_BLOCK_GLASS:
@ -54,6 +58,8 @@ ENUM_ITEM_ID cBlockToPickup::ToPickup( unsigned char a_BlockID, ENUM_ITEM_ID a_U
return E_ITEM_WOODEN_DOOR;
case E_BLOCK_IRON_DOOR:
return E_ITEM_IRON_DOOR;
case E_BLOCK_GLOWSTONE:
return E_ITEM_GLOWSTONE_DUST;
default:
return (ENUM_ITEM_ID)a_BlockID;
}
@ -66,6 +72,8 @@ char cBlockToPickup::PickupCount(unsigned char a_BlockID)
case E_BLOCK_REDSTONE_ORE_GLOWING:
case E_BLOCK_REDSTONE_ORE:
return rand() % 2 + 4;
case E_BLOCK_GLOWSTONE:
return rand() % 3 + 2;
case E_BLOCK_MELON:
return rand() % 8 + 3;
case E_BLOCK_LAPIS_ORE:

View File

@ -73,8 +73,9 @@ public:
cFluidSimulator::cFluidSimulator( cWorld* a_World )
: m_World(a_World)
, m_Data(new FluidData(a_World, this))
, m_Data(0)
{
m_Data = new FluidData(a_World, this);
}
cFluidSimulator::~cFluidSimulator()