#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); } }