aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.World')
-rw-r--r--Minecraft.World/Zombie.cpp12
-rw-r--r--Minecraft.World/Zombie.h1
2 files changed, 13 insertions, 0 deletions
diff --git a/Minecraft.World/Zombie.cpp b/Minecraft.World/Zombie.cpp
index 7cdc3180..e923822c 100644
--- a/Minecraft.World/Zombie.cpp
+++ b/Minecraft.World/Zombie.cpp
@@ -93,6 +93,7 @@ bool Zombie::isBaby()
void Zombie::setBaby(bool baby)
{
getEntityData()->set(DATA_BABY_ID, (byte) (baby ? 1 : 0));
+ updateSize(baby);
if (level != NULL && !level->isClientSide)
{
@@ -209,6 +210,11 @@ void Zombie::tick()
}
Monster::tick();
+
+ if (level->isClientSide)
+ {
+ updateSize(isBaby());
+ }
}
bool Zombie::doHurtTarget(shared_ptr<Entity> target)
@@ -226,6 +232,12 @@ bool Zombie::doHurtTarget(shared_ptr<Entity> target)
return result;
}
+void Zombie::updateSize(bool isBaby)
+{
+ float scale = isBaby ? 0.5f : 1.0f;
+ setSize(0.6f, 1.8f * scale);
+}
+
int Zombie::getAmbientSound()
{
return eSoundType_MOB_ZOMBIE_AMBIENT;
diff --git a/Minecraft.World/Zombie.h b/Minecraft.World/Zombie.h
index d79df182..f788ea63 100644
--- a/Minecraft.World/Zombie.h
+++ b/Minecraft.World/Zombie.h
@@ -60,6 +60,7 @@ public:
virtual bool hurt(DamageSource *source, float dmg);
virtual void tick();
virtual bool doHurtTarget(shared_ptr<Entity> target);
+ virtual void updateSize(bool isBaby);
protected:
virtual int getAmbientSound();