1
0

Fixed Clang warnings in itemhandlers.

This commit is contained in:
madmaxoft 2014-04-04 09:56:57 +02:00
parent 446a651502
commit 402d85d896
6 changed files with 21 additions and 20 deletions

View File

@ -31,7 +31,7 @@ public:
} }
static char RotationToMetaData(double a_Rotation) static NIBBLETYPE RotationToMetaData(double a_Rotation)
{ {
a_Rotation += 180 + (180 / 16); // So it's not aligned with axis a_Rotation += 180 + (180 / 16); // So it's not aligned with axis
if (a_Rotation > 360) if (a_Rotation > 360)
@ -45,7 +45,7 @@ public:
} }
static char DirectionToMetaData(eBlockFace a_Direction) static NIBBLETYPE DirectionToMetaData(eBlockFace a_Direction)
{ {
switch (a_Direction) switch (a_Direction)
{ {

View File

@ -55,7 +55,7 @@ public:
return true; return true;
} }
a_Player->GetInventory().AddItem(cItem(E_ITEM_MAP, 1, NewMap->GetID()), true, true); a_Player->GetInventory().AddItem(cItem(E_ITEM_MAP, 1, (short)(NewMap->GetID() & 0x7fff)), true, true);
return true; return true;
} }

View File

@ -123,7 +123,7 @@ public:
} }
case 2: case 2:
{ {
Drops.Add(cItem(E_ITEM_FISHING_ROD, 1, a_World->GetTickRandomNumber(50))); // Fishing rod with durability. TODO: Enchantments on it Drops.Add(cItem(E_ITEM_FISHING_ROD, 1, (short)a_World->GetTickRandomNumber(50))); // Fishing rod with durability. TODO: Enchantments on it
break; break;
} }
case 3: case 3:
@ -152,7 +152,7 @@ public:
} }
else if (Junk <= 4) else if (Junk <= 4)
{ {
Drops.Add(cItem(E_ITEM_BOW, 1, a_World->GetTickRandomNumber(64))); Drops.Add(cItem(E_ITEM_BOW, 1, (short)a_World->GetTickRandomNumber(64)));
} }
else if (Junk <= 9) else if (Junk <= 9)
{ {

View File

@ -506,13 +506,13 @@ bool cItemHandler::GetPlacementBlockTypeMeta(
{ {
ASSERT(m_ItemType < 256); // Items with IDs above 255 should all be handled by specific handlers ASSERT(m_ItemType < 256); // Items with IDs above 255 should all be handled by specific handlers
if (m_ItemType > 256) if (m_ItemType >= 256)
{ {
LOGERROR("%s: Item %d has no valid block!", __FUNCTION__, m_ItemType); LOGERROR("%s: Item %d is not eligible for direct block placement!", __FUNCTION__, m_ItemType);
return false; return false;
} }
cBlockHandler * BlockH = BlockHandler(m_ItemType); cBlockHandler * BlockH = BlockHandler((BLOCKTYPE)m_ItemType);
cChunkInterface ChunkInterface(a_World->GetChunkMap()); cChunkInterface ChunkInterface(a_World->GetChunkMap());
return BlockH->GetPlacementBlockTypeMeta( return BlockH->GetPlacementBlockTypeMeta(
ChunkInterface, a_Player, ChunkInterface, a_Player,

View File

@ -16,17 +16,19 @@ class cItemLilypadHandler :
typedef cItemHandler super; typedef cItemHandler super;
public: public:
cItemLilypadHandler(BLOCKTYPE a_BlockType) cItemLilypadHandler(int a_ItemType):
: cItemHandler(a_BlockType) super(a_ItemType)
{ {
} }
virtual bool IsPlaceable(void) override virtual bool IsPlaceable(void) override
{ {
return false; // Set as not placeable so OnItemUse is called return false; // Set as not placeable so OnItemUse is called
} }
virtual bool OnItemUse(cWorld * a_World, cPlayer * a_Player, const cItem & a_Item, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace) override virtual bool OnItemUse(cWorld * a_World, cPlayer * a_Player, const cItem & a_Item, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace) override
{ {
if (a_BlockFace > BLOCK_FACE_NONE) if (a_BlockFace > BLOCK_FACE_NONE)
@ -45,23 +47,22 @@ public:
public cBlockTracer::cCallbacks public cBlockTracer::cCallbacks
{ {
public: public:
cCallbacks(cWorld * a_World) : cCallbacks(cWorld * a_CBWorld) :
m_HasHitFluid(false), m_HasHitFluid(false),
m_World(a_World) m_World(a_CBWorld)
{ {
} }
virtual bool OnNextBlock(int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, char a_EntryFace) override virtual bool OnNextBlock(int a_CBBlockX, int a_CBBlockY, int a_CBBlockZ, BLOCKTYPE a_CBBlockType, NIBBLETYPE a_CBBlockMeta, char a_CBEntryFace) override
{ {
if (IsBlockWater(a_BlockType)) if (IsBlockWater(a_CBBlockType))
{ {
if ((a_BlockMeta != 0) || (a_EntryFace == BLOCK_FACE_NONE)) // The hit block should be a source. The FACE_NONE check is clicking whilst submerged if ((a_CBBlockMeta != 0) || (a_CBEntryFace == BLOCK_FACE_NONE)) // The hit block should be a source. The FACE_NONE check is clicking whilst submerged
{ {
return false; return false;
} }
a_EntryFace = BLOCK_FACE_YP; // Always place pad at top of water block AddFaceDirection(a_CBBlockX, a_CBBlockY, a_CBBlockZ, BLOCK_FACE_YP); // Always place pad at top of water block
AddFaceDirection(a_BlockX, a_BlockY, a_BlockZ, (eBlockFace)a_EntryFace); BLOCKTYPE Block = m_World->GetBlock(a_CBBlockX, a_CBBlockY, a_CBBlockZ);
BLOCKTYPE Block = m_World->GetBlock(a_BlockX, a_BlockY, a_BlockZ);
if ( if (
!IsBlockWater(Block) && !IsBlockWater(Block) &&
cBlockInfo::FullyOccupiesVoxel(Block) cBlockInfo::FullyOccupiesVoxel(Block)
@ -71,7 +72,7 @@ public:
return true; return true;
} }
m_HasHitFluid = true; m_HasHitFluid = true;
m_Pos.Set(a_BlockX, a_BlockY, a_BlockZ); m_Pos.Set(a_CBBlockX, a_CBBlockY, a_CBBlockZ);
return true; return true;
} }
return false; return false;

View File

@ -29,7 +29,7 @@ public:
virtual void OnUpdate(cWorld * a_World, cPlayer * a_Player, const cItem & a_Item) virtual void OnUpdate(cWorld * a_World, cPlayer * a_Player, const cItem & a_Item)
{ {
cMap * Map = a_World->GetMapManager().GetMapData(a_Item.m_ItemDamage); cMap * Map = a_World->GetMapManager().GetMapData((unsigned)a_Item.m_ItemDamage);
if (Map == NULL) if (Map == NULL)
{ {