From f449345e3aeb599eb497dfeeac7027cf4d1de515 Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Wed, 3 Feb 2021 00:52:47 -0500 Subject: Pulled transform stuff into a system (starting to do ECS stuff) --- src/transform_system.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/transform_system.cpp (limited to 'src/transform_system.cpp') diff --git a/src/transform_system.cpp b/src/transform_system.cpp new file mode 100644 index 0000000..e53fb7d --- /dev/null +++ b/src/transform_system.cpp @@ -0,0 +1,20 @@ +#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); + } +} -- cgit 1.4.1