diff --git a/desktop_version/src/Game.cpp b/desktop_version/src/Game.cpp index 3b0310f3..69ebafd3 100644 --- a/desktop_version/src/Game.cpp +++ b/desktop_version/src/Game.cpp @@ -363,6 +363,8 @@ void Game::init(void) disableaudiopause = false; disabletemporaryaudiopause = true; inputdelay = false; + + respawncolour = 0; } void Game::lifesequence(void) @@ -5198,6 +5200,10 @@ void Game::customloadquick(const std::string& savfile) { map.showtrinkets = help.Int(pText); } + else if (SDL_strcmp(pKey, "respawncolour") == 0) + { + respawncolour = help.Int(pText); + } } @@ -5670,6 +5676,8 @@ bool Game::customsavequick(const std::string& savfile) xml::update_tag(msgs, "showtrinkets", (int) map.showtrinkets); + xml::update_tag(msgs, "respawncolour", respawncolour); + std::string summary = savearea + ", " + timestring(); xml::update_tag(msgs, "summary", summary.c_str()); diff --git a/desktop_version/src/Game.h b/desktop_version/src/Game.h index 6a437ac7..e5d10fb8 100644 --- a/desktop_version/src/Game.h +++ b/desktop_version/src/Game.h @@ -481,6 +481,8 @@ public: bool disableaudiopause; bool disabletemporaryaudiopause; bool inputdelay; + + int respawncolour; }; #ifndef GAME_DEFINITION diff --git a/desktop_version/src/Map.cpp b/desktop_version/src/Map.cpp index 9c46d739..e11acc85 100644 --- a/desktop_version/src/Map.cpp +++ b/desktop_version/src/Map.cpp @@ -833,7 +833,7 @@ void mapclass::resetplayer(const bool player_died) obj.entities[i].newyp = obj.entities[i].yp; obj.entities[i].dir = game.savedir; - obj.entities[i].colour = 0; + obj.entities[i].colour = game.respawncolour; if (player_died) { game.lifeseq = 10; diff --git a/desktop_version/src/Script.cpp b/desktop_version/src/Script.cpp index 7e857afd..8a50465f 100644 --- a/desktop_version/src/Script.cpp +++ b/desktop_version/src/Script.cpp @@ -1672,6 +1672,10 @@ void scriptclass::run(void) obj.entities[i].colour = getcolorfromname(words[1]); } } + else if (words[0] == "changerespawncolour") + { + game.respawncolour = getcolorfromname(words[1]); + } else if (words[0] == "altstates") { obj.altstates = ss_toi(words[1]); @@ -3184,6 +3188,8 @@ void scriptclass::hardreset(void) game.disabletemporaryaudiopause = true; + game.respawncolour = 0; + //dwgraphicsclass graphics.backgrounddrawn = false; graphics.textbox.clear();