diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 10645491..f185c578 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -3188,10 +3188,15 @@ void Creature::UpdateMove() } void Creature::ForwardMove(float distance) +{ + SpecDirMove(GetMoveDir(), distance); +} + +void Creature::SpecDirMove(glm::vec3 dir, float distance) { Position pos = GetPos(); glm::vec3 start = GetPos().ToGlmVec3(); - glm::vec3 end = pos.AddGlmVec3(GetMoveDir() * distance).ToGlmVec3(); + glm::vec3 end = pos.AddGlmVec3(dir * distance).ToGlmVec3(); glm::vec3 hit_point; room->map_instance->Scale(start); diff --git a/server/gameserver/creature.h b/server/gameserver/creature.h index ab75ddac..aeac7ae6 100644 --- a/server/gameserver/creature.h +++ b/server/gameserver/creature.h @@ -219,6 +219,7 @@ class Creature : public MoveableEntity std::array& GetInventoryData() { return inventory_; }; virtual void UpdateMove(); virtual void ForwardMove(float distance); + virtual void SpecDirMove(glm::vec3 dir, float distance); bool HasSpecMove(); void _UpdateSpecMove();