From dff0dc42263e0b03c6b6bb5cb86a10d56884067a Mon Sep 17 00:00:00 2001 From: Robin Eklind Date: Wed, 31 Oct 2018 16:57:35 +0100 Subject: [PATCH] CreateThemeRooms bin exact --- Source/objects.cpp | 23 ++++---- Source/objects.h | 2 +- Source/themes.cpp | 130 ++++++++++++++++++++++----------------------- 3 files changed, 75 insertions(+), 80 deletions(-) diff --git a/Source/objects.cpp b/Source/objects.cpp index f40fae071..afc6d914c 100644 --- a/Source/objects.cpp +++ b/Source/objects.cpp @@ -11,7 +11,7 @@ int nobjects; // idb int leverid; // idb int objectavail[MAXOBJECTS]; ObjectStruct object[MAXOBJECTS]; -int InitObjFlag; // weak +BOOL InitObjFlag; int numobjfiles; // weak int ObjTypeConv[113] = { @@ -1049,7 +1049,7 @@ void __fastcall LoadMapObjects(unsigned char *pMap, int startx, int starty, int int y; // [esp+20h] [ebp+8h] v8 = pMap + 2; - InitObjFlag = 1; + InitObjFlag = TRUE; v9 = *pMap; v10 = pMap[2]; v11 = v10; @@ -1077,9 +1077,8 @@ void __fastcall LoadMapObjects(unsigned char *pMap, int startx, int starty, int ++y; } while (y + v21 < v12); } - InitObjFlag = 0; + InitObjFlag = FALSE; } -// 67D7C0: using guessed type int InitObjFlag; void __fastcall LoadMapObjs(unsigned char *pMap, int startx, int starty) { @@ -1097,7 +1096,7 @@ void __fastcall LoadMapObjs(unsigned char *pMap, int startx, int starty) int y; // [esp+18h] [ebp+8h] v3 = pMap + 2; - InitObjFlag = 1; + InitObjFlag = TRUE; v4 = pMap[2]; v5 = *pMap; v6 = v4; @@ -1119,9 +1118,8 @@ void __fastcall LoadMapObjs(unsigned char *pMap, int startx, int starty) --v13; } while (v13); } - InitObjFlag = 0; + InitObjFlag = FALSE; } -// 67D7C0: using guessed type int InitObjFlag; void __cdecl AddDiabObjs() { @@ -1333,7 +1331,7 @@ void __cdecl InitObjects() if (currlevel == 16) { AddDiabObjs(); } else { - InitObjFlag = 1; + InitObjFlag = TRUE; GetRndSeed(); if (currlevel == 9 && gbMaxPlayers == 1) AddSlainHero(); @@ -1431,13 +1429,12 @@ void __cdecl InitObjects() AddObjTraps(); if (leveltype > 1u) AddChestTraps(); - InitObjFlag = 0; + InitObjFlag = FALSE; } } // 5CF330: using guessed type int setpc_h; // 5CF334: using guessed type int setpc_w; // 679660: using guessed type char gbMaxPlayers; -// 67D7C0: using guessed type int InitObjFlag; void __fastcall SetMapObjects(unsigned char *pMap, int startx, int starty) { @@ -1467,7 +1464,7 @@ void __fastcall SetMapObjects(unsigned char *pMap, int startx, int starty) v3 = pMap; ClrAllObjects(); memset(fileload, 0, sizeof(fileload)); - InitObjFlag = 1; + InitObjFlag = TRUE; if (AllObjects[0].oload != -1) { i = 0; do { @@ -1525,9 +1522,8 @@ void __fastcall SetMapObjects(unsigned char *pMap, int startx, int starty) --v10; } while (v10); } - InitObjFlag = 0; + InitObjFlag = FALSE; } -// 67D7C0: using guessed type int InitObjFlag; // 67D7C4: using guessed type int numobjfiles; // 4427C5: using guessed type int var_10C[56]; @@ -1790,7 +1786,6 @@ void __fastcall AddObjLight(int i, int r) object[i]._oVar1 = 0; } } -// 67D7C0: using guessed type int InitObjFlag; void __fastcall AddBarrel(int i) { diff --git a/Source/objects.h b/Source/objects.h index c750ea394..c69828479 100644 --- a/Source/objects.h +++ b/Source/objects.h @@ -11,7 +11,7 @@ extern int nobjects; // idb extern int leverid; // idb extern int objectavail[MAXOBJECTS]; extern ObjectStruct object[MAXOBJECTS]; -extern int InitObjFlag; // weak +extern BOOL InitObjFlag; extern int numobjfiles; // weak void __cdecl InitObjectGFX(); diff --git a/Source/themes.cpp b/Source/themes.cpp index ca2098d83..199274bb0 100644 --- a/Source/themes.cpp +++ b/Source/themes.cpp @@ -1258,72 +1258,72 @@ void __cdecl UpdateL4Trans() void __cdecl CreateThemeRooms() { - int i; // esi + int i; - if (currlevel != 16) { - InitObjFlag = 1; - for (i = 0; i < numthemes; i++) { - themex = 0; - themey = 0; - switch (themes[i].ttype) { - case THEME_BARREL: - Theme_Barrel(i); - break; - case THEME_SHRINE: - Theme_Shrine(i); - break; - case THEME_MONSTPIT: - Theme_MonstPit(i); - break; - case THEME_SKELROOM: - Theme_SkelRoom(i); - break; - case THEME_TREASURE: - Theme_Treasure(i); - break; - case THEME_LIBRARY: - Theme_Library(i); - break; - case THEME_TORTURE: - Theme_Torture(i); - break; - case THEME_BLOODFOUNTAIN: - Theme_BloodFountain(i); - break; - case THEME_DECAPITATED: - Theme_Decap(i); - break; - case THEME_PURIFYINGFOUNTAIN: - Theme_PurifyingFountain(i); - break; - case THEME_ARMORSTAND: - Theme_ArmorStand(i); - break; - case THEME_GOATSHRINE: - Theme_GoatShrine(i); - break; - case THEME_CAULDRON: - Theme_Cauldron(i); - break; - case THEME_MURKYFOUNTAIN: - Theme_MurkyFountain(i); - break; - case THEME_TEARFOUNTAIN: - Theme_TearFountain(i); - break; - case THEME_BRNCROSS: - Theme_BrnCross(i); - break; - case THEME_WEAPONRACK: - Theme_WeaponRack(i); - break; - default: - continue; - } + if (currlevel == 16) { + return; + } + InitObjFlag = TRUE; + for (i = 0; i < numthemes; i++) { + themex = 0; + themey = 0; + switch (themes[i].ttype) { + case THEME_BARREL: + Theme_Barrel(i); + break; + case THEME_SHRINE: + Theme_Shrine(i); + break; + case THEME_MONSTPIT: + Theme_MonstPit(i); + break; + case THEME_SKELROOM: + Theme_SkelRoom(i); + break; + case THEME_TREASURE: + Theme_Treasure(i); + break; + case THEME_LIBRARY: + Theme_Library(i); + break; + case THEME_TORTURE: + Theme_Torture(i); + break; + case THEME_BLOODFOUNTAIN: + Theme_BloodFountain(i); + break; + case THEME_DECAPITATED: + Theme_Decap(i); + break; + case THEME_PURIFYINGFOUNTAIN: + Theme_PurifyingFountain(i); + break; + case THEME_ARMORSTAND: + Theme_ArmorStand(i); + break; + case THEME_GOATSHRINE: + Theme_GoatShrine(i); + break; + case THEME_CAULDRON: + Theme_Cauldron(i); + break; + case THEME_MURKYFOUNTAIN: + Theme_MurkyFountain(i); + break; + case THEME_TEARFOUNTAIN: + Theme_TearFountain(i); + break; + case THEME_BRNCROSS: + Theme_BrnCross(i); + break; + case THEME_WEAPONRACK: + Theme_WeaponRack(i); + break; + default: + continue; } - InitObjFlag = 0; - if (leveltype == DTYPE_HELL && themeCount > 0) - UpdateL4Trans(); } + InitObjFlag = FALSE; + if (leveltype == DTYPE_HELL && themeCount > 0) + UpdateL4Trans(); } -// 67D7C0: using guessed type int InitObjFlag;