diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2022-03-15 11:32:14 -0400 |
---|---|---|
committer | Star Rauchenberger <fefferburbia@gmail.com> | 2022-03-15 11:32:14 -0400 |
commit | 1e84e2d6ef9370a3443fcd8472779184f6319594 (patch) | |
tree | 246e555279b1f80a1f1321a60c04d4f1ca23f40c | |
parent | 5ab72bf802e7a79d6eacded4e985740324c4faa7 (diff) | |
download | ether-1e84e2d6ef9370a3443fcd8472779184f6319594.tar.gz ether-1e84e2d6ef9370a3443fcd8472779184f6319594.tar.bz2 ether-1e84e2d6ef9370a3443fcd8472779184f6319594.zip |
maybe made the slowdown when zoomed out much better
-rw-r--r-- | src/game.cpp | 12 | ||||
-rw-r--r-- | src/game.h | 1 |
2 files changed, 7 insertions, 6 deletions
diff --git a/src/game.cpp b/src/game.cpp index fc57acc..e9a9fbe 100644 --- a/src/game.cpp +++ b/src/game.cpp | |||
@@ -55,7 +55,7 @@ void Game::tick( | |||
55 | bool invert, | 55 | bool invert, |
56 | bool onlyDark) | 56 | bool onlyDark) |
57 | { | 57 | { |
58 | std::vector<MapData> temp(map.data()); | 58 | mapDoubleBuffer = map.data(); |
59 | 59 | ||
60 | for (int y = map.getTop(); y < map.getBottom(); y++) | 60 | for (int y = map.getTop(); y < map.getBottom(); y++) |
61 | { | 61 | { |
@@ -91,19 +91,19 @@ void Game::tick( | |||
91 | int tempIndex = map.getTrueX(x) + map.getTrueY(y) * map.getWidth(); | 91 | int tempIndex = map.getTrueX(x) + map.getTrueY(y) * map.getWidth(); |
92 | if (count >= 5) | 92 | if (count >= 5) |
93 | { | 93 | { |
94 | temp[tempIndex].tile = Tile::Wall; | 94 | mapDoubleBuffer[tempIndex].tile = Tile::Wall; |
95 | } else { | 95 | } else { |
96 | temp[tempIndex].tile = Tile::Floor; | 96 | mapDoubleBuffer[tempIndex].tile = Tile::Floor; |
97 | } | 97 | } |
98 | 98 | ||
99 | if (temp[tempIndex].tile != map.at(x,y).tile) { | 99 | if (mapDoubleBuffer[tempIndex].tile != map.at(x,y).tile) { |
100 | temp[tempIndex].dirtyRender = true; | 100 | mapDoubleBuffer[tempIndex].dirtyRender = true; |
101 | dirtyRender = true; | 101 | dirtyRender = true; |
102 | } | 102 | } |
103 | } | 103 | } |
104 | } | 104 | } |
105 | 105 | ||
106 | map.data() = std::move(temp); | 106 | std::swap(map.data(), mapDoubleBuffer); |
107 | } | 107 | } |
108 | 108 | ||
109 | void Game::tick(bool onlyDark) | 109 | void Game::tick(bool onlyDark) |
diff --git a/src/game.h b/src/game.h index 93ca81a..f307156 100644 --- a/src/game.h +++ b/src/game.h | |||
@@ -68,6 +68,7 @@ public: | |||
68 | bool dirtyRender = true; | 68 | bool dirtyRender = true; |
69 | size_t numLamps = 0; | 69 | size_t numLamps = 0; |
70 | size_t numDust = 0; | 70 | size_t numDust = 0; |
71 | std::vector<MapData> mapDoubleBuffer; | ||
71 | 72 | ||
72 | int player_x = 0; | 73 | int player_x = 0; |
73 | int player_y = 0; | 74 | int player_y = 0; |