summary refs log tree commit diff stats
path: root/src/game.cpp
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2021-01-30 11:50:30 -0500
committerKelly Rauchenberger <fefferburbia@gmail.com>2021-01-30 11:50:30 -0500
commit763bd80603dbace9f14c25309159ed07ec6e9a93 (patch)
tree8597c1ca9246ead9fae04e74e028665e3e406e9b /src/game.cpp
parentde0ac2927230ce44fb92f362bfa7e4b4cb29bdd1 (diff)
downloadtanetane-763bd80603dbace9f14c25309159ed07ec6e9a93.tar.gz
tanetane-763bd80603dbace9f14c25309159ed07ec6e9a93.tar.bz2
tanetane-763bd80603dbace9f14c25309159ed07ec6e9a93.zip
Added sprite Y sorting
Diffstat (limited to 'src/game.cpp')
-rw-r--r--src/game.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/game.cpp b/src/game.cpp new file mode 100644 index 0000000..ccca10f --- /dev/null +++ b/src/game.cpp
@@ -0,0 +1,20 @@
1#include "game.h"
2
3int Game::addSprite(Sprite sprite) {
4 int id = sprites_.size();
5 sprites_.push_back(std::move(sprite));
6 spritesByY_.emplace(sprite.loc().y(), id);
7 return id;
8}
9
10void Game::moveSprite(int id, vec2i newLoc) {
11 Sprite& sprite = sprites_.at(id);
12 bool changedY = (sprite.loc().y() != newLoc.y());
13 if (changedY) {
14 spritesByY_.erase(std::make_tuple(sprite.loc().y(), id));
15 }
16 sprite.loc() = newLoc;
17 if (changedY) {
18 spritesByY_.emplace(newLoc.y(), id);
19 }
20} \ No newline at end of file