#include "game.h" int Game::addSprite(Sprite sprite) { int id = sprites_.size(); sprites_.push_back(std::move(sprite)); spritesByY_.emplace(sprite.loc().y(), id); return id; } void Game::moveSprite(int id, vec2i newLoc) { Sprite& sprite = sprites_.at(id); bool changedY = (sprite.loc().y() != newLoc.y()); if (changedY) { spritesByY_.erase(std::make_tuple(sprite.loc().y(), id)); } sprite.loc() = newLoc; if (changedY) { spritesByY_.emplace(newLoc.y(), id); } }