Add level flag for plane of fire fumaroles
Also reduce the size of the gas clouds. Breaks saves and bones.
This commit is contained in:
@@ -333,7 +333,7 @@ moveloop_core(void)
|
||||
/* vision will be updated as bubbles move */
|
||||
if (Is_waterlevel(&u.uz) || Is_airlevel(&u.uz))
|
||||
movebubbles();
|
||||
else if (Is_firelevel(&u.uz))
|
||||
else if (gl.level.flags.fumaroles)
|
||||
fumaroles();
|
||||
|
||||
/* when immobile, count is in turns */
|
||||
|
||||
2
src/do.c
2
src/do.c
@@ -1730,7 +1730,7 @@ goto_level(
|
||||
/* initial movement of bubbles just before vision_recalc */
|
||||
if (Is_waterlevel(&u.uz) || Is_airlevel(&u.uz))
|
||||
movebubbles();
|
||||
else if (Is_firelevel(&u.uz))
|
||||
else if (gl.level.flags.fumaroles)
|
||||
fumaroles();
|
||||
|
||||
/* Reset the screen. */
|
||||
|
||||
16
src/mkmaze.c
16
src/mkmaze.c
@@ -1390,15 +1390,25 @@ mkportal(coordxy x, coordxy y, xint16 todnum, xint16 todlevel)
|
||||
void
|
||||
fumaroles(void)
|
||||
{
|
||||
xint16 n;
|
||||
xint16 n, nmax = rn2(3);
|
||||
int sizemin = 5;
|
||||
boolean snd = FALSE, loud = FALSE;
|
||||
|
||||
for (n = rn2(3) + 2; n; n--) {
|
||||
if (Is_firelevel(&u.uz)) {
|
||||
nmax++;
|
||||
sizemin += 5;
|
||||
}
|
||||
if (gl.level.flags.temperature > 0) {
|
||||
nmax++;
|
||||
sizemin += 5;
|
||||
}
|
||||
|
||||
for (n = nmax; n; n--) {
|
||||
coordxy x = rn1(COLNO - 4, 3);
|
||||
coordxy y = rn1(ROWNO - 4, 3);
|
||||
|
||||
if (levl[x][y].typ == LAVAPOOL) {
|
||||
NhRegion *r = create_gas_cloud(x, y, rn1(30, 20), rn1(10, 5));
|
||||
NhRegion *r = create_gas_cloud(x, y, rn1(10, sizemin), rn1(10, 5));
|
||||
|
||||
clear_heros_fault(r);
|
||||
snd = TRUE;
|
||||
|
||||
@@ -3747,6 +3747,8 @@ lspo_level_flags(lua_State *L)
|
||||
gl.level.flags.deathdrops = 0;
|
||||
else if (!strcmpi(s, "noautosearch"))
|
||||
gl.level.flags.noautosearch = 1;
|
||||
else if (!strcmpi(s, "fumaroles"))
|
||||
gl.level.flags.fumaroles = 1;
|
||||
else {
|
||||
char buf[BUFSZ];
|
||||
Sprintf(buf, "Unknown level flag %s", s);
|
||||
|
||||
Reference in New Issue
Block a user