diff options
Diffstat (limited to 'src/game.cpp')
| -rw-r--r-- | src/game.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
| diff --git a/src/game.cpp b/src/game.cpp index dd8f956..6e79f75 100644 --- a/src/game.cpp +++ b/src/game.cpp | |||
| @@ -123,6 +123,8 @@ void Game::loadMap(const Map& map) | |||
| 123 | nextEntities.push_back(player); | 123 | nextEntities.push_back(player); |
| 124 | 124 | ||
| 125 | newWorld = true; | 125 | newWorld = true; |
| 126 | |||
| 127 | currentMap = ↦ | ||
| 126 | } | 128 | } |
| 127 | 129 | ||
| 128 | void Game::detectCollision(Entity& collider, std::pair<double, double> old_position) | 130 | void Game::detectCollision(Entity& collider, std::pair<double, double> old_position) |
| @@ -133,9 +135,9 @@ void Game::detectCollision(Entity& collider, std::pair<double, double> old_posit | |||
| 133 | } | 135 | } |
| 134 | } | 136 | } |
| 135 | 137 | ||
| 136 | void Game::saveGame(const Map& map, std::pair<double, double> position) | 138 | void Game::saveGame() |
| 137 | { | 139 | { |
| 138 | save = {&map, position}; | 140 | save = {currentMap, player->position}; |
| 139 | } | 141 | } |
| 140 | 142 | ||
| 141 | void Game::schedule(double time, std::function<void ()> callback) | 143 | void Game::schedule(double time, std::function<void ()> callback) |
| @@ -143,19 +145,19 @@ void Game::schedule(double time, std::function<void ()> callback) | |||
| 143 | scheduled.emplace_front(time, std::move(callback)); | 145 | scheduled.emplace_front(time, std::move(callback)); |
| 144 | } | 146 | } |
| 145 | 147 | ||
| 146 | void Game::playerDie(Entity& player, const Map& curMap) | 148 | void Game::playerDie() |
| 147 | { | 149 | { |
| 148 | player.send(*this, Message::Type::die); | 150 | player->send(*this, Message::Type::die); |
| 149 | 151 | ||
| 150 | playSound("../res/Hit_Hurt5.wav", 0.25); | 152 | playSound("../res/Hit_Hurt5.wav", 0.25); |
| 151 | 153 | ||
| 152 | schedule(0.75, [&] () { | 154 | schedule(0.75, [&] () { |
| 153 | if (curMap != *save.map) | 155 | if (*currentMap != *save.map) |
| 154 | { | 156 | { |
| 155 | loadMap(*save.map); | 157 | loadMap(*save.map); |
| 156 | } | 158 | } |
| 157 | 159 | ||
| 158 | player.position = save.position; | 160 | player->position = save.position; |
| 159 | player.send(*this, Message::Type::stopDying); | 161 | player->send(*this, Message::Type::stopDying); |
| 160 | }); | 162 | }); |
| 161 | } | 163 | } |
