7#ifndef BABA_IS_AUTO_MAP_HPP
8#define BABA_IS_AUTO_MAP_HPP
20using Position = std::pair<std::size_t, std::size_t>;
36 Map(std::size_t width, std::size_t height);
52 void Load(std::string_view filename);
123 const Object&
At(std::size_t x, std::size_t y)
const;
138 void AddGeneratedObject(std::size_t x, std::size_t y,
ObjectType type,
142 void AssignMissingObjectIDs();
144 std::size_t m_width = 0;
145 std::size_t m_height = 0;
150 bool m_mayHaveMissingObjectIDs =
false;
152 std::vector<Object> m_initObjects;
153 std::vector<Object> m_objects;
Game class.
Definition Game.hpp:27
Map class.
Definition Map.hpp:28
void AddObject(std::size_t x, std::size_t y, ObjectType type, Direction direction)
void AddObject(std::size_t x, std::size_t y, ObjectType type)
void RemoveObject(std::size_t x, std::size_t y, ObjectType type)
std::optional< Position > GetPosition(ObjectID id) const
const ObjectInstance * GetInstance(ObjectID id) const
Map()=default
Default constructor.
std::size_t GetHeight() const
void Reset()
Resets map data.
Object & At(std::size_t x, std::size_t y)
std::size_t GetWidth() const
std::optional< Direction > GetDirection(ObjectID id) const
const Object & At(std::size_t x, std::size_t y) const
Map(std::size_t width, std::size_t height)
std::vector< Position > GetPositions(ObjectType type) const
bool RemoveObject(ObjectID id)
bool SetDirection(ObjectID id, Direction direction)
ObjectInstance * GetInstance(ObjectID id)
bool MoveObject(ObjectID id, std::size_t x, std::size_t y)
void Load(std::string_view filename)
Object class.
Definition Object.hpp:47
std::uint64_t ObjectID
Definition Object.hpp:17
ObjectType
An enumerator for identifying the object.
Definition GameEnums.hpp:14
Direction
An enumerator for identifying the direction.
Definition GameEnums.hpp:142
std::pair< std::size_t, std::size_t > Position
A zero-based (x, y) map position.
Definition Map.hpp:20
Object instance struct.
Definition Object.hpp:26