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 | } | 
