Browse Source

CreateLevel & asserts

pull/88/head
galaxyhaxz 7 years ago committed by Anders Jenbo
parent
commit
d440da5dad
  1. 109
      Source/diablo.cpp

109
Source/diablo.cpp

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

Loading…
Cancel
Save