- Exhumed: Change map command to start the level directly without going through the scrolling map.

This commit is contained in:
Christoph Oelckers 2021-04-15 18:50:48 +02:00
parent e79c6bacd3
commit 61a6321cd6
10 changed files with 12 additions and 11 deletions

View file

@ -87,7 +87,7 @@ struct GameInterface
virtual const char *CheckCheatMode() { return nullptr; } virtual const char *CheckCheatMode() { return nullptr; }
virtual const char* GenericCheat(int player, int cheat) = 0; virtual const char* GenericCheat(int player, int cheat) = 0;
virtual void NextLevel(MapRecord* map, int skill) {} virtual void NextLevel(MapRecord* map, int skill) {}
virtual void NewGame(MapRecord* map, int skill) {} virtual void NewGame(MapRecord* map, int skill, bool special = false) {}
virtual void LevelCompleted(MapRecord* map, int skill) {} virtual void LevelCompleted(MapRecord* map, int skill) {}
virtual bool DrawAutomapPlayer(int x, int y, int z, int a, double const smoothratio) { return false; } virtual bool DrawAutomapPlayer(int x, int y, int z, int a, double const smoothratio) { return false; }
virtual void SetTileProps(int tile, int surf, int vox, int shade) {} virtual void SetTileProps(int tile, int surf, int vox, int shade) {}

View file

@ -197,7 +197,7 @@ static void GameTicker()
C_FlushDisplay(); C_FlushDisplay();
gameaction = ga_level; gameaction = ga_level;
BackupSaveGame = ""; BackupSaveGame = "";
gi->NewGame(g_nextmap, g_nextskill); gi->NewGame(g_nextmap, g_nextskill, ga == ga_newgamenostopsound);
break; break;
case ga_startup: case ga_startup:

View file

@ -249,7 +249,7 @@ void NewLevel(MapRecord *sng, int skill)
} }
void GameInterface::NewGame(MapRecord *sng, int skill) void GameInterface::NewGame(MapRecord *sng, int skill, bool)
{ {
gGameOptions.uGameFlags = 0; gGameOptions.uGameFlags = 0;
cheatReset(); cheatReset();

View file

@ -119,7 +119,7 @@ struct GameInterface : ::GameInterface
void Startup() override; void Startup() override;
void Render() override; void Render() override;
const char* GenericCheat(int player, int cheat) override; const char* GenericCheat(int player, int cheat) override;
void NewGame(MapRecord *sng, int skill) override; void NewGame(MapRecord *sng, int skill, bool) override;
void NextLevel(MapRecord* map, int skill) override; void NextLevel(MapRecord* map, int skill) override;
void LevelCompleted(MapRecord* map, int skill) override; void LevelCompleted(MapRecord* map, int skill) override;
bool DrawAutomapPlayer(int x, int y, int z, int a, double const smoothratio) override; bool DrawAutomapPlayer(int x, int y, int z, int a, double const smoothratio) override;

View file

@ -54,7 +54,7 @@ struct GameInterface : public ::GameInterface
const char* GenericCheat(int player, int cheat) override; const char* GenericCheat(int player, int cheat) override;
const char* CheckCheatMode() override; const char* CheckCheatMode() override;
void NextLevel(MapRecord* map, int skill) override; void NextLevel(MapRecord* map, int skill) override;
void NewGame(MapRecord* map, int skill) override; void NewGame(MapRecord* map, int skill, bool) override;
void LevelCompleted(MapRecord* map, int skill) override; void LevelCompleted(MapRecord* map, int skill) override;
bool DrawAutomapPlayer(int x, int y, int z, int a, double const smoothratio) override; bool DrawAutomapPlayer(int x, int y, int z, int a, double const smoothratio) override;
int playerKeyMove() override { return 40; } int playerKeyMove() override { return 40; }

View file

@ -183,7 +183,7 @@ void GameInterface::NextLevel(MapRecord* map, int skill)
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void GameInterface::NewGame(MapRecord* map, int skill) void GameInterface::NewGame(MapRecord* map, int skill, bool)
{ {
// Hmm... What about the other players? // Hmm... What about the other players?
ps[0].last_extra = gs.max_player_health; ps[0].last_extra = gs.max_player_health;

View file

@ -243,7 +243,7 @@ struct GameInterface : ::GameInterface
void GetInput(InputPacket* packet, ControlInfo* const hidInput) override; void GetInput(InputPacket* packet, ControlInfo* const hidInput) override;
void Startup() override; void Startup() override;
const char* GenericCheat(int player, int cheat) override; const char* GenericCheat(int player, int cheat) override;
void NewGame(MapRecord *map, int skill) override; void NewGame(MapRecord *map, int skill, bool) override;
void LevelCompleted(MapRecord *map, int skill) override; void LevelCompleted(MapRecord *map, int skill) override;
void NextLevel(MapRecord *map, int skill) override; void NextLevel(MapRecord *map, int skill) override;
bool DrawAutomapPlayer(int x, int y, int z, int a, double const smoothratio) override; bool DrawAutomapPlayer(int x, int y, int z, int a, double const smoothratio) override;

View file

@ -212,12 +212,13 @@ void GameInterface::NextLevel(MapRecord *map, int skill)
} }
void GameInterface::NewGame(MapRecord *map, int skill) void GameInterface::NewGame(MapRecord *map, int skill, bool frommenu)
{ {
// start a new game on the given level // start a new game on the given level
InitNewGame(); InitNewGame();
if (map->levelNumber == 1) STAT_StartNewGame("Exhumed", 1); if (map->levelNumber == 1) STAT_StartNewGame("Exhumed", 1);
Intermission(nullptr, map); if (frommenu) Intermission(nullptr, map);
else NextLevel(map, skill);
} }
void GameInterface::LevelCompleted(MapRecord *map, int skill) void GameInterface::LevelCompleted(MapRecord *map, int skill)

View file

@ -607,7 +607,7 @@ void GameInterface::NextLevel(MapRecord *map, int skill)
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void GameInterface::NewGame(MapRecord *map, int skill) void GameInterface::NewGame(MapRecord *map, int skill, bool)
{ {
if (skill != -1) Skill = skill; if (skill != -1) Skill = skill;
ShadowWarrior::NewGame = true; ShadowWarrior::NewGame = true;

View file

@ -2246,7 +2246,7 @@ struct GameInterface : ::GameInterface
const char* GenericCheat(int player, int cheat) override; const char* GenericCheat(int player, int cheat) override;
void LevelCompleted(MapRecord *map, int skill) override; void LevelCompleted(MapRecord *map, int skill) override;
void NextLevel(MapRecord *map, int skill) override; void NextLevel(MapRecord *map, int skill) override;
void NewGame(MapRecord *map, int skill) override; void NewGame(MapRecord *map, int skill, bool) override;
bool DrawAutomapPlayer(int x, int y, int z, int a, double const smoothratio) override; bool DrawAutomapPlayer(int x, int y, int z, int a, double const smoothratio) override;
int playerKeyMove() override { return 35; } int playerKeyMove() override { return 35; }
void WarpToCoords(int x, int y, int z, int a, int h) override; void WarpToCoords(int x, int y, int z, int a, int h) override;