- 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* GenericCheat(int player, int cheat) = 0;
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 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) {}

View file

@ -197,7 +197,7 @@ static void GameTicker()
C_FlushDisplay();
gameaction = ga_level;
BackupSaveGame = "";
gi->NewGame(g_nextmap, g_nextskill);
gi->NewGame(g_nextmap, g_nextskill, ga == ga_newgamenostopsound);
break;
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;
cheatReset();

View file

@ -119,7 +119,7 @@ struct GameInterface : ::GameInterface
void Startup() override;
void Render() 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 LevelCompleted(MapRecord* map, int skill) 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* CheckCheatMode() 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;
bool DrawAutomapPlayer(int x, int y, int z, int a, double const smoothratio) override;
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?
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 Startup() 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 NextLevel(MapRecord *map, int skill) 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
InitNewGame();
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)

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;
ShadowWarrior::NewGame = true;

View file

@ -2246,7 +2246,7 @@ struct GameInterface : ::GameInterface
const char* GenericCheat(int player, int cheat) override;
void LevelCompleted(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;
int playerKeyMove() override { return 35; }
void WarpToCoords(int x, int y, int z, int a, int h) override;