#include "transform_system.h" #include "game.h" void TransformSystem::initSprite(int spriteId, vec2i loc) { Sprite& sprite = game_.getSprite(spriteId); sprite.loc() = loc; spritesByY_.emplace(loc.y(), spriteId); } void TransformSystem::moveSprite(int spriteId, vec2i newLoc) { Sprite& sprite = game_.getSprite(spriteId); bool changedY = (sprite.loc().y() != newLoc.y()); if (changedY) { spritesByY_.erase(std::make_tuple(sprite.loc().y(), spriteId)); } sprite.loc() = newLoc; if (changedY) { spritesByY_.emplace(newLoc.y(), spriteId); } }