diff options
Diffstat (limited to 'Minecraft.World')
| -rw-r--r-- | Minecraft.World/Zombie.cpp | 12 | ||||
| -rw-r--r-- | Minecraft.World/Zombie.h | 1 |
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(); |
