From d440da5dad7bdbe626ff77d9a882d54e37d65b2b Mon Sep 17 00:00:00 2001 From: galaxyhaxz Date: Thu, 18 Apr 2019 20:02:27 -0500 Subject: [PATCH] CreateLevel & asserts --- Source/diablo.cpp | 109 ++++++++++++++++++++++++---------------------- 1 file changed, 58 insertions(+), 51 deletions(-) diff --git a/Source/diablo.cpp b/Source/diablo.cpp index ee5ab733f..4e75da7f6 100644 --- a/Source/diablo.cpp +++ b/Source/diablo.cpp @@ -196,11 +196,12 @@ void run_game_loop(unsigned int uMsg) void start_game(unsigned int uMsg) { - cineflag = FALSE; zoomflag = 1; + cineflag = FALSE; InitCursor(); InitLightTable(); LoadDebugGFX(); + /// ASSERT: assert(ghMainWnd); music_stop(); ShowProgress(uMsg); gmenu_init_menu(); @@ -866,7 +867,9 @@ BOOL LeftMouseCmd(BOOL bShift) { BOOL bNear; - if (!leveltype) { + /// ASSERT: assert(MouseY < 352); + + if (leveltype == DTYPE_TOWN) { if (pcursitem != -1 && pcurs == CURSOR_HAND) NetSendCmdLocParam1(TRUE, invflag ? CMD_GOTOGETITEM : CMD_GOTOAGETITEM, cursmx, cursmy, pcursitem); if (pcursmonst != -1) @@ -1544,7 +1547,9 @@ void PressChar(int vkey) void LoadLvlGFX() { - switch (leveltype) { + /// ASSERT: assert(! pDungeonCels); + + switch((unsigned char)leveltype) { case DTYPE_TOWN: pDungeonCels = LoadFileInMem("Levels\\TownData\\Town.CEL", 0); pMegaTiles = LoadFileInMem("Levels\\TownData\\Town.TIL", 0); @@ -1577,12 +1582,13 @@ void LoadLvlGFX() break; default: app_fatal("LoadLvlGFX"); - return; + break; } } void LoadAllGFX() { + /// ASSERT: assert(! pSpeedCels); pSpeedCels = DiabloAllocPtr(0x100000); IncProgress(); IncProgress(); @@ -1594,44 +1600,40 @@ void LoadAllGFX() void CreateLevel(int lvldir) { - int hnd; // cl - - switch (leveltype) { + switch((unsigned char)leveltype) { case DTYPE_TOWN: CreateTown(lvldir); InitTownTriggers(); - hnd = 0; + LoadRndLvlPal(0); break; case DTYPE_CATHEDRAL: CreateL5Dungeon(glSeedTbl[currlevel], lvldir); InitL1Triggers(); Freeupstairs(); - hnd = 1; + LoadRndLvlPal(1); break; case DTYPE_CATACOMBS: CreateL2Dungeon(glSeedTbl[currlevel], lvldir); InitL2Triggers(); Freeupstairs(); - hnd = 2; + LoadRndLvlPal(2); break; case DTYPE_CAVES: CreateL3Dungeon(glSeedTbl[currlevel], lvldir); InitL3Triggers(); Freeupstairs(); - hnd = 3; + LoadRndLvlPal(3); break; case DTYPE_HELL: CreateL4Dungeon(glSeedTbl[currlevel], lvldir); InitL4Triggers(); Freeupstairs(); - hnd = 4; + LoadRndLvlPal(4); break; default: app_fatal("CreateLevel"); - return; + break; } - - LoadRndLvlPal(hnd); } void LoadGameLevel(BOOL firstflag, int lvldir) @@ -1873,44 +1875,49 @@ void game_loop(BOOL bStartup) void game_logic() { - if (PauseMode != 2) { - if (PauseMode == 1) - PauseMode = 2; - if (gbMaxPlayers == 1 && gmenu_exception()) { - drawpanflag |= 1u; - } else { - if (!gmenu_exception() && sgnTimeoutCurs == CURSOR_NONE) { - CheckCursMove(); - track_process(); - } - if (gbProcessPlayers) - ProcessPlayers(); - if (leveltype != DTYPE_TOWN) { - ProcessMonsters(); - ProcessObjects(); - ProcessMissiles(); - ProcessItems(); - ProcessLightList(); - ProcessVisionList(); - } else { - ProcessTowners(); - ProcessItems(); - ProcessMissiles(); - } + if(PauseMode == 2) { + return; + } + if(PauseMode == 1) { + PauseMode = 2; + } + if(gbMaxPlayers == 1 && gmenu_exception()) { + drawpanflag |= 1; + return; + } + + if(!gmenu_exception() && sgnTimeoutCurs == 0) { + CheckCursMove(); + track_process(); + } + if(gbProcessPlayers) { + ProcessPlayers(); + } + if(leveltype != DTYPE_TOWN) { + ProcessMonsters(); + ProcessObjects(); + ProcessMissiles(); + ProcessItems(); + ProcessLightList(); + ProcessVisionList(); + } else { + ProcessTowners(); + ProcessItems(); + ProcessMissiles(); + } + #ifdef _DEBUG - if (debug_mode_key_inverted_v) { - if (GetAsyncKeyState(VK_SHIFT) & 0x8000) - ScrollView(); - } -#endif - sound_update(); - ClearPlrMsg(); - CheckTriggers(); - CheckQuests(); - drawpanflag |= 1u; - pfile_update(0); - } + if(debug_mode_key_inverted_v && GetAsyncKeyState(VK_SHIFT) & 0x8000) { + ScrollView(); } +#endif + + sound_update(); + ClearPlrMsg(); + CheckTriggers(); + CheckQuests(); + drawpanflag |= 1; + pfile_update(FALSE); } // 525718: using guessed type char cineflag; // 52571C: using guessed type int drawpanflag;