From 6a1ad62b26698e2483a7ec692c60f6cc3fa76561 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Mon, 12 Feb 2018 19:31:00 +0100 Subject: Add Actor* member to tiles and implement Map::moveActor() --- src/main/cpp/Map.cpp | 3 ++- src/main/cpp/Tile.cpp | 11 +++++++++++ src/main/headers/Tile.hpp | 11 +++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 src/main/cpp/Tile.cpp diff --git a/src/main/cpp/Map.cpp b/src/main/cpp/Map.cpp index 6d3ee01..3cb1b9d 100644 --- a/src/main/cpp/Map.cpp +++ b/src/main/cpp/Map.cpp @@ -24,5 +24,6 @@ const std::vector& Map::tiles() const bool Map::moveActor(Tile &from, Tile &to) { - // TODO + to.actor(from.actor()); + from.clearActor(); } diff --git a/src/main/cpp/Tile.cpp b/src/main/cpp/Tile.cpp new file mode 100644 index 0000000..9fc436a --- /dev/null +++ b/src/main/cpp/Tile.cpp @@ -0,0 +1,11 @@ +#include "Tile.hpp" + +bool Tile::actor(Actor *actor) +{ + if (_actor != nullptr) { + return false; + } + + _actor = actor; + return true; +} diff --git a/src/main/headers/Tile.hpp b/src/main/headers/Tile.hpp index 7292fde..919badc 100644 --- a/src/main/headers/Tile.hpp +++ b/src/main/headers/Tile.hpp @@ -1,6 +1,8 @@ #ifndef TILE_HPP #define TILE_HPP +#include "Actor.hpp" + struct Tile { enum Type @@ -12,6 +14,15 @@ struct Tile const int x, y; Tile(Type _type, int _x, int _y) : type(_type), x(_x), y(_y) {} + + Actor* actor() { return _actor; } + bool actor(Actor *actor); + + void clearActor() { _actor = nullptr; } + +private: + Actor *_actor = nullptr; + }; #endif -- cgit v1.2.1