- fixed some initialization issues with the new main loop.

Looks like all map starting cases are working now.
This commit is contained in:
Christoph Oelckers 2020-08-16 22:45:19 +02:00
parent 695d81f88c
commit 85538b467b
3 changed files with 46 additions and 38 deletions

View file

@ -745,6 +745,8 @@ void EndOfLevel()
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void GameTicker(void) void GameTicker(void)
{
if (!ExitLevel)
{ {
if (SavegameLoaded) if (SavegameLoaded)
{ {
@ -758,11 +760,13 @@ void GameTicker(void)
int SavePlayClock = PlayClock; int SavePlayClock = PlayClock;
InitTimingVars(); InitTimingVars();
PlayClock = SavePlayClock; PlayClock = SavePlayClock;
ExitLevel = false;
} }
else if (NextLevel) else if (NextLevel)
{ {
InitLevel(); InitLevel();
InitRunLevel(); InitRunLevel();
ExitLevel = false;
} }
ready2send = 1; ready2send = 1;
@ -788,6 +792,7 @@ void GameTicker(void)
drawscreen(Player + screenpeek); drawscreen(Player + screenpeek);
ready2send = 0; ready2send = 0;
}
if (ExitLevel) if (ExitLevel)
{ {
ExitLevel = false; ExitLevel = false;
@ -812,7 +817,7 @@ int32_t GameInterface::app_main()
try try
{ {
// if the menu initiazed a new game or loaded a savegame, switch to play mode. // if the menu initiazed a new game or loaded a savegame, switch to play mode.
if (NewGame || SavegameLoaded) gamestate = GS_LEVEL; if (SavegameLoaded || NextLevel) gamestate = GS_LEVEL;
handleevents(); handleevents();
updatePauseStatus(); updatePauseStatus();

View file

@ -2121,6 +2121,7 @@ void DoSoundSpotMatch(short match, short sound_num, short sound_type);
// //
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
extern SWBOOL NewGame;
extern SWBOOL ExitLevel, FinishedLevel; extern SWBOOL ExitLevel, FinishedLevel;
extern SWBOOL Warping; extern SWBOOL Warping;
extern uint8_t CommPlayers; extern uint8_t CommPlayers;

View file

@ -46,6 +46,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#include "mapinfo.h" #include "mapinfo.h"
#include "jsector.h" #include "jsector.h"
#include "network.h" #include "network.h"
#include "gamestate.h"
BEGIN_SW_NS BEGIN_SW_NS
@ -66,6 +67,7 @@ static void levelwarp(MapRecord *maprec)
NextLevel = maprec; NextLevel = maprec;
ExitLevel = TRUE; ExitLevel = TRUE;
if (gamestate == GS_MENUSCREEN || gamestate == GS_FULLCONSOLE) NewGame = true;
sprintf(ds, "%s %s", GStrings("TXT_ENTERING"), maprec->DisplayName()); sprintf(ds, "%s %s", GStrings("TXT_ENTERING"), maprec->DisplayName());
PutStringInfo(pp, ds); PutStringInfo(pp, ds);