diff options
Diffstat (limited to 'src/transform_system.cpp')
-rw-r--r-- | src/transform_system.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
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 @@ | |||
1 | #include "transform_system.h" | ||
2 | #include "game.h" | ||
3 | |||
4 | void TransformSystem::initSprite(int spriteId, vec2i loc) { | ||
5 | Sprite& sprite = game_.getSprite(spriteId); | ||
6 | sprite.loc() = loc; | ||
7 | spritesByY_.emplace(loc.y(), spriteId); | ||
8 | } | ||
9 | |||
10 | void TransformSystem::moveSprite(int spriteId, vec2i newLoc) { | ||
11 | Sprite& sprite = game_.getSprite(spriteId); | ||
12 | bool changedY = (sprite.loc().y() != newLoc.y()); | ||
13 | if (changedY) { | ||
14 | spritesByY_.erase(std::make_tuple(sprite.loc().y(), spriteId)); | ||
15 | } | ||
16 | sprite.loc() = newLoc; | ||
17 | if (changedY) { | ||
18 | spritesByY_.emplace(newLoc.y(), spriteId); | ||
19 | } | ||
20 | } | ||