Browse Source

themes.cpp bin exact

pull/100/head
galaxyhaxz 7 years ago committed by Anders Jenbo
parent
commit
87d20ef4d6
  1. 82
      Source/themes.cpp

82
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`
}
}

Loading…
Cancel
Save