From 2f5c086ef9235c5a0a8730dd83d4557ff77ec910 Mon Sep 17 00:00:00 2001
From: Sulimov Igor Andreevich <igansulimov@edu.hse.ru>
Date: Mon, 24 Mar 2025 03:36:58 +0300
Subject: [PATCH] Start of Pacman entity

---
 CMakeLists.txt                                  | 2 +-
 include/MazeContent/{ => Buildings}/IRoomSide.h | 0
 include/MazeContent/{ => Buildings}/Maze.h      | 2 +-
 include/MazeContent/{ => Buildings}/Pass.h      | 0
 include/MazeContent/{ => Buildings}/Room.h      | 2 +-
 include/MazeContent/{ => Buildings}/Wall.h      | 2 +-
 include/MazeContent/Entities/IDynamicEntity.hpp | 1 +
 include/MazeContent/{ => Entities}/IEntity.h    | 6 +++---
 include/MazeContent/Entities/IStaticEntity.h    | 1 +
 include/MazeContent/Entities/Pacman.h           | 8 ++++++++
 source/Maze_Content/{ => Buildings}/Maze.cpp    | 2 +-
 source/Maze_Content/{ => Buildings}/Room.cpp    | 2 +-
 source/Maze_Content/{ => Buildings}/Wall.cpp    | 2 +-
 13 files changed, 20 insertions(+), 10 deletions(-)
 rename include/MazeContent/{ => Buildings}/IRoomSide.h (100%)
 rename include/MazeContent/{ => Buildings}/Maze.h (86%)
 rename include/MazeContent/{ => Buildings}/Pass.h (100%)
 rename include/MazeContent/{ => Buildings}/Room.h (92%)
 rename include/MazeContent/{ => Buildings}/Wall.h (88%)
 create mode 100644 include/MazeContent/Entities/IDynamicEntity.hpp
 rename include/MazeContent/{ => Entities}/IEntity.h (50%)
 create mode 100644 include/MazeContent/Entities/IStaticEntity.h
 create mode 100644 include/MazeContent/Entities/Pacman.h
 rename source/Maze_Content/{ => Buildings}/Maze.cpp (75%)
 rename source/Maze_Content/{ => Buildings}/Room.cpp (96%)
 rename source/Maze_Content/{ => Buildings}/Wall.cpp (98%)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index e3e750c..0cad6a0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -17,7 +17,7 @@ add_executable(pac-man
         "source/Draw/Button.cpp"
         "source/Draw/MyFont.cpp"
         "source/Commands/ExitCommand.cpp"
-        "source/Maze_Content/Room.cpp"
+        "source/Maze_Content/Buildings/Room.cpp"
 
 )
 
diff --git a/include/MazeContent/IRoomSide.h b/include/MazeContent/Buildings/IRoomSide.h
similarity index 100%
rename from include/MazeContent/IRoomSide.h
rename to include/MazeContent/Buildings/IRoomSide.h
diff --git a/include/MazeContent/Maze.h b/include/MazeContent/Buildings/Maze.h
similarity index 86%
rename from include/MazeContent/Maze.h
rename to include/MazeContent/Buildings/Maze.h
index a7f099c..83ace80 100644
--- a/include/MazeContent/Maze.h
+++ b/include/MazeContent/Buildings/Maze.h
@@ -1,6 +1,6 @@
 #pragma once
 
-#include "Room.h"
+#include "MazeContent/Buildings/Room.h"
 
 class Maze: public IDrawable {
 public:
diff --git a/include/MazeContent/Pass.h b/include/MazeContent/Buildings/Pass.h
similarity index 100%
rename from include/MazeContent/Pass.h
rename to include/MazeContent/Buildings/Pass.h
diff --git a/include/MazeContent/Room.h b/include/MazeContent/Buildings/Room.h
similarity index 92%
rename from include/MazeContent/Room.h
rename to include/MazeContent/Buildings/Room.h
index 5362f54..df6c5b9 100644
--- a/include/MazeContent/Room.h
+++ b/include/MazeContent/Buildings/Room.h
@@ -1,6 +1,6 @@
 #pragma once
 
-#include "IRoomSide.h"
+#include "MazeContent/Buildings/IRoomSide.h"
 
 class Room: public IDrawable {
 public:
diff --git a/include/MazeContent/Wall.h b/include/MazeContent/Buildings/Wall.h
similarity index 88%
rename from include/MazeContent/Wall.h
rename to include/MazeContent/Buildings/Wall.h
index dd6a544..d4dbe70 100644
--- a/include/MazeContent/Wall.h
+++ b/include/MazeContent/Buildings/Wall.h
@@ -1,6 +1,6 @@
 #pragma once
 
-#include "Room.h"
+#include "MazeContent/Buildings/Room.h"
 
 class Wall : public IRoomSide {
 public:
diff --git a/include/MazeContent/Entities/IDynamicEntity.hpp b/include/MazeContent/Entities/IDynamicEntity.hpp
new file mode 100644
index 0000000..7b9637e
--- /dev/null
+++ b/include/MazeContent/Entities/IDynamicEntity.hpp
@@ -0,0 +1 @@
+#pragma once
\ No newline at end of file
diff --git a/include/MazeContent/IEntity.h b/include/MazeContent/Entities/IEntity.h
similarity index 50%
rename from include/MazeContent/IEntity.h
rename to include/MazeContent/Entities/IEntity.h
index 0f5725b..14e106d 100644
--- a/include/MazeContent/IEntity.h
+++ b/include/MazeContent/Entities/IEntity.h
@@ -1,11 +1,11 @@
 #pragma once
 
-#include "Draw/IPreparable.h"
+#include "MazeContent/Buildings/Room.h"
 
 class IEntity: public IPreparable {
 public:
-    virtual void set_location(Room ptr_room) = 0; ///@todo
-    virtual Room get_location() = 0; ///@todo
+    void set_location(Room* ptr_room); ///@todo
+    Room* get_location(); ///@todo
     virtual ~IEntity() = default;
 protected:
     Room* m_ptr_room{ nullptr };
diff --git a/include/MazeContent/Entities/IStaticEntity.h b/include/MazeContent/Entities/IStaticEntity.h
new file mode 100644
index 0000000..7b9637e
--- /dev/null
+++ b/include/MazeContent/Entities/IStaticEntity.h
@@ -0,0 +1 @@
+#pragma once
\ No newline at end of file
diff --git a/include/MazeContent/Entities/Pacman.h b/include/MazeContent/Entities/Pacman.h
new file mode 100644
index 0000000..719d931
--- /dev/null
+++ b/include/MazeContent/Entities/Pacman.h
@@ -0,0 +1,8 @@
+#pragma once
+
+#include "IEntity.h"
+
+class Pacman: public IEntity {
+public:
+    void move(Room::Direction direction); ///@todo
+};
\ No newline at end of file
diff --git a/source/Maze_Content/Maze.cpp b/source/Maze_Content/Buildings/Maze.cpp
similarity index 75%
rename from source/Maze_Content/Maze.cpp
rename to source/Maze_Content/Buildings/Maze.cpp
index 8f80fe6..eae381e 100644
--- a/source/Maze_Content/Maze.cpp
+++ b/source/Maze_Content/Buildings/Maze.cpp
@@ -1,4 +1,4 @@
-#include "MazeContent/Maze.h"
+#include "MazeContent/Buildings/Maze.h"
 
 void Maze::draw_into(sf::RenderWindow& window) const {
     for (const auto& room : m_rooms)
diff --git a/source/Maze_Content/Room.cpp b/source/Maze_Content/Buildings/Room.cpp
similarity index 96%
rename from source/Maze_Content/Room.cpp
rename to source/Maze_Content/Buildings/Room.cpp
index 78c3aad..7e105bc 100644
--- a/source/Maze_Content/Room.cpp
+++ b/source/Maze_Content/Buildings/Room.cpp
@@ -1,4 +1,4 @@
-#include "MazeContent/Room.h"
+#include "MazeContent/Buildings/Room.h"
 #include "Config.h"
 
 Room::Room(float size) : m_rectangle{ {size, size} } {
diff --git a/source/Maze_Content/Wall.cpp b/source/Maze_Content/Buildings/Wall.cpp
similarity index 98%
rename from source/Maze_Content/Wall.cpp
rename to source/Maze_Content/Buildings/Wall.cpp
index cfd3010..c015585 100644
--- a/source/Maze_Content/Wall.cpp
+++ b/source/Maze_Content/Buildings/Wall.cpp
@@ -1,4 +1,4 @@
-#include "MazeContent/Wall.h"
+#include "MazeContent/Buildings/Wall.h"
 #include "Config.h"
 
 //void Wall::prepare_for_drawing() {
-- 
GitLab