From 87d20ef4d672ade4b89496b5ab429971d2aed106 Mon Sep 17 00:00:00 2001 From: galaxyhaxz Date: Mon, 29 Apr 2019 19:48:44 -0500 Subject: [PATCH] themes.cpp bin exact --- Source/themes.cpp | 82 +++++++++++++++++++++++++++-------------------- 1 file changed, 48 insertions(+), 34 deletions(-) diff --git a/Source/themes.cpp b/Source/themes.cpp index 4ed8b4cb8..c90df1a6a 100644 --- a/Source/themes.cpp +++ b/Source/themes.cpp @@ -601,49 +601,65 @@ void Theme_MonstPit(int t) // - t: theme number (index into themes array). void Theme_SkelRoom(int t) { - int xp, yp; + int xp, yp, i; char monstrnd[4] = { 6, 7, 3, 9 }; TFit_SkelRoom(t); + xp = themex; yp = themey; + AddObject(OBJ_SKFIRE, xp, yp); - if (random(0, monstrnd[leveltype - 1]) != 0) { - SpawnSkeleton(PreSpawnSkeleton(), xp - 1, yp - 1); + + if(random(0, monstrnd[leveltype - 1]) != 0) { + i = PreSpawnSkeleton(); + SpawnSkeleton(i, xp - 1, yp - 1); } else { AddObject(OBJ_BANNERL, xp - 1, yp - 1); } - SpawnSkeleton(PreSpawnSkeleton(), xp, yp - 1); - if (random(0, monstrnd[leveltype - 1]) != 0) { - SpawnSkeleton(PreSpawnSkeleton(), xp + 1, yp - 1); + + i = PreSpawnSkeleton(); + SpawnSkeleton(i, xp, yp - 1); + + if(random(0, monstrnd[leveltype - 1]) != 0) { + i = PreSpawnSkeleton(); + SpawnSkeleton(i, xp + 1, yp - 1); } else { AddObject(OBJ_BANNERR, xp + 1, yp - 1); } - if (random(0, monstrnd[leveltype - 1]) != 0) { - SpawnSkeleton(PreSpawnSkeleton(), xp - 1, yp); + if(random(0, monstrnd[leveltype - 1]) != 0) { + i = PreSpawnSkeleton(); + SpawnSkeleton(i, xp - 1, yp); } else { AddObject(OBJ_BANNERM, xp - 1, yp); } - if (random(0, monstrnd[leveltype - 1]) != 0) { - SpawnSkeleton(PreSpawnSkeleton(), xp + 1, yp); + if(random(0, monstrnd[leveltype - 1]) != 0) { + i = PreSpawnSkeleton(); + SpawnSkeleton(i, xp + 1, yp); } else { AddObject(OBJ_BANNERM, xp + 1, yp); } - if (random(0, monstrnd[leveltype - 1]) != 0) { - SpawnSkeleton(PreSpawnSkeleton(), xp - 1, yp + 1); + if(random(0, monstrnd[leveltype - 1]) != 0) { + i = PreSpawnSkeleton(); + SpawnSkeleton(i, xp - 1, yp + 1); } else { AddObject(OBJ_BANNERR, xp - 1, yp + 1); } - SpawnSkeleton(PreSpawnSkeleton(), xp, yp + 1); - if (random(0, monstrnd[leveltype - 1]) != 0) { - SpawnSkeleton(PreSpawnSkeleton(), xp + 1, yp + 1); + + i = PreSpawnSkeleton(); + SpawnSkeleton(i, xp, yp + 1); + + if(random(0, monstrnd[leveltype - 1]) != 0) { + i = PreSpawnSkeleton(); + SpawnSkeleton(i, xp + 1, yp + 1); } else { AddObject(OBJ_BANNERL, xp + 1, yp + 1); } - if (dObject[xp][yp - 3] == 0) { + + if(dObject[xp][yp - 3] == 0) { AddObject(OBJ_SKELBOOK, xp, yp - 2); } - if (dObject[xp][yp + 3] == 0) { + if(dObject[xp][yp + 3] == 0) { AddObject(OBJ_SKELBOOK, xp, yp + 2); } } @@ -691,13 +707,13 @@ void Theme_Treasure(int t) // - t: theme number (index into themes array). void Theme_Library(int t) { - int xp, yp; - int oi; + int xp, yp, oi; char librnd[4] = { 1, 2, 2, 5 }; char monstrnd[4] = { 5, 7, 3, 9 }; TFit_Shrine(t); - if (themeVar1 == 1) { + + if(themeVar1 == 1) { AddObject(OBJ_BOOKCANDLE, themex - 1, themey); AddObject(OBJ_BOOKCASER, themex, themey); AddObject(OBJ_BOOKCANDLE, themex + 1, themey); @@ -707,25 +723,23 @@ void Theme_Library(int t) AddObject(OBJ_BOOKCANDLE, themex, themey + 1); } - for (yp = 1; yp < MAXDUNY - 1; yp++) { - for (xp = 1; xp < MAXDUNX - 1; xp++) { - if (CheckThemeObj3(xp, yp, t, -1)) { - if (dMonster[xp][yp] == 0) { - if (random(0, librnd[leveltype - 1]) == 0) { - AddObject(OBJ_BOOKSTAND, xp, yp); - if (random(0, 2 * librnd[leveltype - 1]) != 0) { - oi = dObject[xp][yp] - 1; - object[oi]._oSelFlag = 0; - object[oi]._oAnimFrame += 2; - } - } + for(yp = 1; yp < MAXDUNY - 1; yp++) { + for(xp = 1; xp < MAXDUNX - 1; xp++) { + if(CheckThemeObj3(xp, yp, t, -1) && dMonster[xp][yp] == 0 && random(0, librnd[leveltype - 1]) == 0) { + AddObject(OBJ_BOOKSTAND, xp, yp); + if(random(0, 2 * librnd[leveltype - 1]) != 0) { + oi = dObject[xp][yp] - 1; + object[oi]._oSelFlag = 0; + object[oi]._oAnimFrame += 2; } } } } - if (!QuestStatus(QTYPE_ZHAR) || t != zharlib) { - PlaceThemeMonsts(t, monstrnd[leveltype - 1]); + if(!QuestStatus(QTYPE_ZHAR)) { + PlaceThemeMonsts(t, monstrnd[leveltype]); /// BUGFIX: `leveltype - 1` + } else if(t != zharlib) { + PlaceThemeMonsts(t, monstrnd[leveltype]); /// BUGFIX: `leveltype - 1` } }