summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJaume Aloy <hircine45@gmail.com>2014-08-30 00:27:33 +0200
committerJaume Aloy <hircine45@gmail.com>2014-08-30 00:27:33 +0200
commit4900645b2838b8a953fba298c5001b4e2d242931 (patch)
tree207c7975baee75fa1dfae196c72b74f7a288955f
parentMore Enchantments (diff)
downloadcuberite-4900645b2838b8a953fba298c5001b4e2d242931.tar
cuberite-4900645b2838b8a953fba298c5001b4e2d242931.tar.gz
cuberite-4900645b2838b8a953fba298c5001b4e2d242931.tar.bz2
cuberite-4900645b2838b8a953fba298c5001b4e2d242931.tar.lz
cuberite-4900645b2838b8a953fba298c5001b4e2d242931.tar.xz
cuberite-4900645b2838b8a953fba298c5001b4e2d242931.tar.zst
cuberite-4900645b2838b8a953fba298c5001b4e2d242931.zip
-rw-r--r--src/Blocks/BlockHandler.cpp59
-rw-r--r--src/Entities/Entity.cpp4
2 files changed, 33 insertions, 30 deletions
diff --git a/src/Blocks/BlockHandler.cpp b/src/Blocks/BlockHandler.cpp
index c8a57906f..feb024b7f 100644
--- a/src/Blocks/BlockHandler.cpp
+++ b/src/Blocks/BlockHandler.cpp
@@ -433,38 +433,41 @@ void cBlockHandler::DropBlock(cChunkInterface & a_ChunkInterface, cWorldInterfac
else
{
// TODO: Add a proper overridable function for this
- cEnchantments Enchantments = a_Digger->GetEquippedWeapon().m_Enchantments;
- if ((Enchantments.GetLevel(cEnchantments::enchSilkTouch) > 0) && a_Digger->IsPlayer())
+ if (a_Digger != NULL)
{
- switch (m_BlockType)
+ cEnchantments Enchantments = a_Digger->GetEquippedWeapon().m_Enchantments;
+ if ((Enchantments.GetLevel(cEnchantments::enchSilkTouch) > 0) && a_Digger->IsPlayer())
{
- case E_BLOCK_CAKE:
- case E_BLOCK_CARROTS:
- case E_BLOCK_COCOA_POD:
- case E_BLOCK_DOUBLE_STONE_SLAB:
- case E_BLOCK_DOUBLE_WOODEN_SLAB:
- case E_BLOCK_FIRE:
- case E_BLOCK_FARMLAND:
- case E_BLOCK_MELON_STEM:
- case E_BLOCK_MOB_SPAWNER:
- case E_BLOCK_NETHER_WART:
- case E_BLOCK_POTATOES:
- case E_BLOCK_PUMPKIN_STEM:
- case E_BLOCK_SNOW:
- case E_BLOCK_SUGARCANE:
- case E_BLOCK_TALL_GRASS:
- case E_BLOCK_CROPS:
+ switch (m_BlockType)
{
- // Silktouch can't be used for this blocks
- ConvertToPickups(Pickups, Meta);
- break;
- };
- default: Pickups.Add(m_BlockType, 1, Meta);
+ case E_BLOCK_CAKE:
+ case E_BLOCK_CARROTS:
+ case E_BLOCK_COCOA_POD:
+ case E_BLOCK_DOUBLE_STONE_SLAB:
+ case E_BLOCK_DOUBLE_WOODEN_SLAB:
+ case E_BLOCK_FIRE:
+ case E_BLOCK_FARMLAND:
+ case E_BLOCK_MELON_STEM:
+ case E_BLOCK_MOB_SPAWNER:
+ case E_BLOCK_NETHER_WART:
+ case E_BLOCK_POTATOES:
+ case E_BLOCK_PUMPKIN_STEM:
+ case E_BLOCK_SNOW:
+ case E_BLOCK_SUGARCANE:
+ case E_BLOCK_TALL_GRASS:
+ case E_BLOCK_CROPS:
+ {
+ // Silktouch can't be used for this blocks
+ ConvertToPickups(Pickups, Meta);
+ break;
+ };
+ default: Pickups.Add(m_BlockType, 1, Meta);
+ }
+ }
+ else
+ {
+ Pickups.Add(m_BlockType, 1, Meta);
}
- }
- else
- {
- Pickups.Add(m_BlockType, 1, Meta);
}
}
}
diff --git a/src/Entities/Entity.cpp b/src/Entities/Entity.cpp
index 760401cc2..10a0f8920 100644
--- a/src/Entities/Entity.cpp
+++ b/src/Entities/Entity.cpp
@@ -400,9 +400,9 @@ bool cEntity::DoTakeDamage(TakeDamageInfo & a_TDI)
for (size_t i = 0; i < ARRAYCOUNT(ArmorItems); i++)
{
cItem Item = ArmorItems[i];
- if (Item.m_Enchantments.GetLevel(cEnchantments::enchThorns) > ThornsLevel) ThornsLevel = Item.m_Enchantments.GetLevel(cEnchantments::enchThorns);
+ ThornsLevel = std::max(ThornsLevel, Item.m_Enchantments.GetLevel(cEnchantments::enchThorns));
}
-
+
if (ThornsLevel > 0)
{
int Chance = ThornsLevel * 15;