diff --git a/server/gameserver/map.cc b/server/gameserver/map.cc deleted file mode 100644 index e69de29..0000000 diff --git a/server/gameserver/map.h b/server/gameserver/map.h deleted file mode 100644 index e69de29..0000000 diff --git a/server/gameserver/movement.cc b/server/gameserver/movement.cc index b0bc35b..560e13f 100644 --- a/server/gameserver/movement.cc +++ b/server/gameserver/movement.cc @@ -4,5 +4,26 @@ void MovementComponent::Update(int delta_time) { - + if (path_index_ < paths_.size()) { + } +} + +bool MovementComponent::GetMovePosition(int delta_time, Vector2D& out_pos) +{ + return false; +} + +void MovementComponent::AddPathPoint(Vector2D& pos, float distance, float speed) +{ + MovePathPoint& point = a8::FastAppend(paths_); + point.pos = pos; + point.distance = distance; + move_speed_ = speed; +} + +void MovementComponent::ClearPath() +{ + move_speed_ = 0.0f; + path_index_ = 0; + paths_.clear(); } diff --git a/server/gameserver/movement.h b/server/gameserver/movement.h index d40527d..f8fcbd7 100644 --- a/server/gameserver/movement.h +++ b/server/gameserver/movement.h @@ -1,11 +1,24 @@ #pragma once +struct MovePathPoint +{ + Vector2D pos; + float distance = 0.0; +}; + class Entity; class MovementComponent { public: Entity* owner = nullptr; - int elapsed_time_ = 0; virtual void Update(int delta_time); + bool GetMovePosition(int delta_time, Vector2D& out_pos); + void AddPathPoint(Vector2D& pos, float distance, float speed); + void ClearPath(); + +private: + float move_speed_ = 0.0f; + int path_index_ = 0; + std::vector paths_; };