Fixed longstanding issue with slabs

Fixes FS#298
master
Tiger Wang 2013-08-20 23:17:49 +01:00
parent b35771ca0d
commit 8e153f6689
1 changed files with 12 additions and 1 deletions

View File

@ -35,7 +35,18 @@ public:
NIBBLETYPE Meta = (NIBBLETYPE)(a_Player->GetEquippedItem().m_ItemDamage & 0x07);
switch (a_BlockFace)
{
case BLOCK_FACE_TOP: a_BlockMeta = Meta & 0x7; break; // Always bottom half of the slab when placing on top of something
case BLOCK_FACE_TOP:
{
if (a_World->GetBlock(a_BlockX, a_BlockY - 1, a_BlockZ) == E_BLOCK_STONE_SLAB)
{
a_World->FastSetBlock(a_BlockX, a_BlockY - 1, a_BlockZ, E_BLOCK_DOUBLE_STONE_SLAB, Meta);
a_BlockType = E_BLOCK_AIR;
}
else
{
a_BlockMeta = Meta & 0x7; break; // Always bottom half of the slab when placing on top of something
}
}
case BLOCK_FACE_BOTTOM: a_BlockMeta = Meta | 0x8; break; // Always top half of the slab when placing on bottom of something
case BLOCK_FACE_EAST:
case BLOCK_FACE_NORTH: