#include "world.h" World::World() : m_height(WORLD_HEIGHT), m_width(WORLD_WIDTH), m_c(WORLD_HEIGHT, std::vector(WORLD_WIDTH, DEFAULT_CHAR)) { init(); } void World::init() {} Object &World::createObject(Object &&o) { m_objects.push_front(o); return m_objects.front(); } void World::draw(Object &o) { double x = o.getPosition().X, y = o.getPosition().Y; int sz = o.getSize(); char c = o.getSymbol(); for (int i = -(sz + 1) / 2 + 1; i <= sz / 2; ++i) for (int j = -(sz + 1) / 2 + 1; j <= sz / 2; ++j) m_c[y + i][x + j] = c; } void World::update() { for (auto &i : m_c) for (auto &j : i) j = DEFAULT_CHAR; for (auto &it : m_objects) { draw(it); } } void World::print(std::ostream &out) { for (const auto &i : m_c) { for (const auto &j : i) out << j; out << '\n'; } } void World::destroy() {} World::~World() { destroy(); }