sp_lev.c private variables
Make a start at reducing the size of 'g' by removing some special level stuff that doesn't need to be there.
This commit is contained in:
+4
-12
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 decl.h $NHDT-Date: 1573869061 2019/11/16 01:51:01 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.165 $ */
|
/* NetHack 3.6 decl.h $NHDT-Date: 1580600478 2020/02/01 23:41:18 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.221 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/*-Copyright (c) Michael Allison, 2007. */
|
/*-Copyright (c) Michael Allison, 2007. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
@@ -1110,27 +1110,19 @@ struct instance_globals {
|
|||||||
/* auto-response flag for/from "sell foo?" 'a' => 'y', 'q' => 'n' */
|
/* auto-response flag for/from "sell foo?" 'a' => 'y', 'q' => 'n' */
|
||||||
char sell_response;
|
char sell_response;
|
||||||
int sell_how;
|
int sell_how;
|
||||||
/* can't just use sell_response='y' for auto_credit because the 'a' response
|
/* can't just use sell_response='y' for auto_credit because 'a' response
|
||||||
shouldn't carry over from ordinary selling to credit selling */
|
shouldn't carry over from ordinary selling to credit selling */
|
||||||
boolean auto_credit;
|
boolean auto_credit;
|
||||||
struct repo repo;
|
struct repo repo;
|
||||||
long int followmsg; /* last time of follow message */
|
long int followmsg; /* last time of follow message */
|
||||||
|
|
||||||
|
|
||||||
/* sp_lev.c */
|
/* sp_lev.c */
|
||||||
char *lev_message;
|
char *lev_message;
|
||||||
lev_region *lregions;
|
lev_region *lregions;
|
||||||
int num_lregions;
|
int num_lregions;
|
||||||
/* positions touched by level elements explicitly defined in des-file */
|
|
||||||
char SpLev_Map[COLNO][ROWNO];
|
|
||||||
struct sp_coder *coder;
|
struct sp_coder *coder;
|
||||||
xchar xstart, ystart;
|
xchar xstart, ystart;
|
||||||
char xsize, ysize;
|
xchar xsize, ysize;
|
||||||
boolean splev_init_present;
|
|
||||||
boolean icedpools;
|
|
||||||
struct obj *container_obj[MAX_CONTAINMENT];
|
|
||||||
int container_idx;
|
|
||||||
struct monst *invent_carrying_monster;
|
|
||||||
|
|
||||||
/* spells.c */
|
/* spells.c */
|
||||||
int spl_sortmode; /* index into spl_sortchoices[] */
|
int spl_sortmode; /* index into spl_sortchoices[] */
|
||||||
|
|||||||
+1
-4
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 hack.h $NHDT-Date: 1580252122 2020/01/28 22:55:22 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.127 $ */
|
/* NetHack 3.6 hack.h $NHDT-Date: 1580600495 2020/02/01 23:41:35 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.128 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/*-Copyright (c) Pasi Kallinen, 2017. */
|
/*-Copyright (c) Pasi Kallinen, 2017. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
@@ -169,9 +169,6 @@ typedef struct strbuf {
|
|||||||
char buf[256];
|
char buf[256];
|
||||||
} strbuf_t;
|
} strbuf_t;
|
||||||
|
|
||||||
/* max. layers of object containment from sp_lev.h */
|
|
||||||
#define MAX_CONTAINMENT 10
|
|
||||||
|
|
||||||
/* str_or_len from sp_lev.h */
|
/* str_or_len from sp_lev.h */
|
||||||
typedef union str_or_len {
|
typedef union str_or_len {
|
||||||
char *str;
|
char *str;
|
||||||
|
|||||||
+1
-7
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 decl.c $NHDT-Date: 1573869062 2019/11/16 01:51:02 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.149 $ */
|
/* NetHack 3.6 decl.c $NHDT-Date: 1580600496 2020/02/01 23:41:36 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.202 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/*-Copyright (c) Michael Allison, 2009. */
|
/*-Copyright (c) Michael Allison, 2009. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
@@ -630,17 +630,11 @@ const struct instance_globals g_init = {
|
|||||||
NULL, /* lev_message */
|
NULL, /* lev_message */
|
||||||
NULL, /* lregions */
|
NULL, /* lregions */
|
||||||
0, /* num_lregions */
|
0, /* num_lregions */
|
||||||
UNDEFINED_VALUES, /* SpLev_Map */
|
|
||||||
NULL, /* coder */
|
NULL, /* coder */
|
||||||
UNDEFINED_VALUE, /* xstart */
|
UNDEFINED_VALUE, /* xstart */
|
||||||
UNDEFINED_VALUE, /* ystart */
|
UNDEFINED_VALUE, /* ystart */
|
||||||
UNDEFINED_VALUE, /* xsize */
|
UNDEFINED_VALUE, /* xsize */
|
||||||
UNDEFINED_VALUE, /* ysize */
|
UNDEFINED_VALUE, /* ysize */
|
||||||
FALSE, /* splev_init_present */
|
|
||||||
FALSE, /* icedpools */
|
|
||||||
{ UNDEFINED_PTR }, /* container_obj */
|
|
||||||
0, /* container_idx */
|
|
||||||
NULL, /* invent_carrying_monster */
|
|
||||||
|
|
||||||
/* spells.c */
|
/* spells.c */
|
||||||
0, /* spl_sortmode */
|
0, /* spl_sortmode */
|
||||||
|
|||||||
+68
-48
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 sp_lev.c $NHDT-Date: 1580434524 2020/01/31 01:35:24 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.150 $ */
|
/* NetHack 3.6 sp_lev.c $NHDT-Date: 1580600499 2020/02/01 23:41:39 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.151 $ */
|
||||||
/* Copyright (c) 1989 by Jean-Christophe Collet */
|
/* Copyright (c) 1989 by Jean-Christophe Collet */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
@@ -142,12 +142,32 @@ int FDECL(lspo_wallify, (lua_State *));
|
|||||||
#define XLIM 4
|
#define XLIM 4
|
||||||
#define YLIM 3
|
#define YLIM 3
|
||||||
|
|
||||||
#define New(type) (type *) alloc(sizeof(type))
|
#define New(type) (type *) alloc(sizeof (type))
|
||||||
#define NewTab(type, size) (type **) alloc(sizeof(type *) * (unsigned) size)
|
#define NewTab(type, size) (type **) alloc(sizeof (type *) * (unsigned) size)
|
||||||
#define Free(ptr) if (ptr) free((genericptr_t) (ptr))
|
#define Free(ptr) \
|
||||||
|
do { \
|
||||||
|
if (ptr) \
|
||||||
|
free((genericptr_t) (ptr)); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
extern struct engr *head_engr;
|
extern struct engr *head_engr;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* No need for 'struct instance_globals g' to contain these.
|
||||||
|
* sp_level_coder_init() always re-initializes them prior to use.
|
||||||
|
*/
|
||||||
|
boolean splev_init_present,
|
||||||
|
icedpools;
|
||||||
|
/* positions touched by level elements explicitly defined in the level */
|
||||||
|
static char SpLev_Map[COLNO][ROWNO];
|
||||||
|
#define MAX_CONTAINMENT 10
|
||||||
|
static int container_idx = 0; /* next slot in container_obj[] to use */
|
||||||
|
static struct obj *container_obj[MAX_CONTAINMENT];
|
||||||
|
static struct monst *invent_carrying_monster = (struct monst *) 0;
|
||||||
|
/*
|
||||||
|
* end of no 'g.'
|
||||||
|
*/
|
||||||
|
|
||||||
static void
|
static void
|
||||||
solidify_map()
|
solidify_map()
|
||||||
{
|
{
|
||||||
@@ -155,7 +175,7 @@ solidify_map()
|
|||||||
|
|
||||||
for (x = 0; x < COLNO; x++)
|
for (x = 0; x < COLNO; x++)
|
||||||
for (y = 0; y < ROWNO; y++)
|
for (y = 0; y < ROWNO; y++)
|
||||||
if (IS_STWALL(levl[x][y].typ) && !g.SpLev_Map[x][y])
|
if (IS_STWALL(levl[x][y].typ) && !SpLev_Map[x][y])
|
||||||
levl[x][y].wall_info |= (W_NONDIGGABLE | W_NONPASSWALL);
|
levl[x][y].wall_info |= (W_NONDIGGABLE | W_NONPASSWALL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -267,7 +287,7 @@ remove_boundary_syms()
|
|||||||
if (has_bounds) {
|
if (has_bounds) {
|
||||||
for (x = 0; x < g.x_maze_max; x++)
|
for (x = 0; x < g.x_maze_max; x++)
|
||||||
for (y = 0; y < g.y_maze_max; y++)
|
for (y = 0; y < g.y_maze_max; y++)
|
||||||
if ((levl[x][y].typ == CROSSWALL) && g.SpLev_Map[x][y])
|
if ((levl[x][y].typ == CROSSWALL) && SpLev_Map[x][y])
|
||||||
levl[x][y].typ = ROOM;
|
levl[x][y].typ = ROOM;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1388,7 +1408,7 @@ struct mkroom *croom;
|
|||||||
|
|
||||||
if (m->has_invent) {
|
if (m->has_invent) {
|
||||||
discard_minvent(mtmp);
|
discard_minvent(mtmp);
|
||||||
g.invent_carrying_monster = mtmp;
|
invent_carrying_monster = mtmp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1502,9 +1522,9 @@ struct mkroom *croom;
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* contents (of a container or monster's inventory) */
|
/* contents (of a container or monster's inventory) */
|
||||||
if (o->containment & SP_OBJ_CONTENT || g.invent_carrying_monster) {
|
if (o->containment & SP_OBJ_CONTENT || invent_carrying_monster) {
|
||||||
if (!g.container_idx) {
|
if (!container_idx) {
|
||||||
if (!g.invent_carrying_monster) {
|
if (!invent_carrying_monster) {
|
||||||
/*impossible("create_object: no container");*/
|
/*impossible("create_object: no container");*/
|
||||||
/* don't complain, the monster may be gone legally
|
/* don't complain, the monster may be gone legally
|
||||||
(eg. unique demon already generated)
|
(eg. unique demon already generated)
|
||||||
@@ -1516,10 +1536,10 @@ struct mkroom *croom;
|
|||||||
; /* ['otmp' remains on floor] */
|
; /* ['otmp' remains on floor] */
|
||||||
} else {
|
} else {
|
||||||
remove_object(otmp);
|
remove_object(otmp);
|
||||||
(void) mpickobj(g.invent_carrying_monster, otmp);
|
(void) mpickobj(invent_carrying_monster, otmp);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
struct obj *cobj = g.container_obj[g.container_idx - 1];
|
struct obj *cobj = container_obj[container_idx - 1];
|
||||||
|
|
||||||
remove_object(otmp);
|
remove_object(otmp);
|
||||||
if (cobj) {
|
if (cobj) {
|
||||||
@@ -1535,9 +1555,9 @@ struct mkroom *croom;
|
|||||||
/* container */
|
/* container */
|
||||||
if (o->containment & SP_OBJ_CONTAINER) {
|
if (o->containment & SP_OBJ_CONTAINER) {
|
||||||
delete_contents(otmp);
|
delete_contents(otmp);
|
||||||
if (g.container_idx < MAX_CONTAINMENT) {
|
if (container_idx < MAX_CONTAINMENT) {
|
||||||
g.container_obj[g.container_idx] = otmp;
|
container_obj[container_idx] = otmp;
|
||||||
g.container_idx++;
|
container_idx++;
|
||||||
} else
|
} else
|
||||||
impossible("create_object: too deeply nested containers.");
|
impossible("create_object: too deeply nested containers.");
|
||||||
}
|
}
|
||||||
@@ -1618,8 +1638,8 @@ struct mkroom *croom;
|
|||||||
boolean dealloced;
|
boolean dealloced;
|
||||||
|
|
||||||
(void) bury_an_obj(otmp, &dealloced);
|
(void) bury_an_obj(otmp, &dealloced);
|
||||||
if (dealloced && g.container_idx) {
|
if (dealloced && container_idx) {
|
||||||
g.container_obj[g.container_idx - 1] = NULL;
|
container_obj[container_idx - 1] = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2162,7 +2182,7 @@ int humidity;
|
|||||||
y = rn1(g.y_maze_max - 3, 3);
|
y = rn1(g.y_maze_max - 3, 3);
|
||||||
if (--tryct < 0)
|
if (--tryct < 0)
|
||||||
break; /* give up */
|
break; /* give up */
|
||||||
} while (!(x % 2) || !(y % 2) || g.SpLev_Map[x][y]
|
} while (!(x % 2) || !(y % 2) || SpLev_Map[x][y]
|
||||||
|| !is_ok_location((schar) x, (schar) y, humidity));
|
|| !is_ok_location((schar) x, (schar) y, humidity));
|
||||||
|
|
||||||
m->x = (xchar) x, m->y = (xchar) y;
|
m->x = (xchar) x, m->y = (xchar) y;
|
||||||
@@ -2187,7 +2207,7 @@ fill_empty_maze()
|
|||||||
|
|
||||||
for (x = 2; x < g.x_maze_max; x++)
|
for (x = 2; x < g.x_maze_max; x++)
|
||||||
for (y = 0; y < g.y_maze_max; y++)
|
for (y = 0; y < g.y_maze_max; y++)
|
||||||
if (g.SpLev_Map[x][y])
|
if (SpLev_Map[x][y])
|
||||||
mapcount--;
|
mapcount--;
|
||||||
|
|
||||||
if ((mapcount > (int) (mapcountmax / 10))) {
|
if ((mapcount > (int) (mapcountmax / 10))) {
|
||||||
@@ -2252,7 +2272,7 @@ lev_init *linit;
|
|||||||
linit->lit = rn2(2);
|
linit->lit = rn2(2);
|
||||||
if (linit->filling > -1)
|
if (linit->filling > -1)
|
||||||
lvlfill_solid(linit->filling, 0);
|
lvlfill_solid(linit->filling, 0);
|
||||||
linit->icedpools = g.icedpools;
|
linit->icedpools = icedpools;
|
||||||
mkmap(linit);
|
mkmap(linit);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2272,18 +2292,18 @@ long curpos, jmpaddr;
|
|||||||
static void
|
static void
|
||||||
spo_end_moninvent()
|
spo_end_moninvent()
|
||||||
{
|
{
|
||||||
if (g.invent_carrying_monster)
|
if (invent_carrying_monster)
|
||||||
m_dowear(g.invent_carrying_monster, TRUE);
|
m_dowear(invent_carrying_monster, TRUE);
|
||||||
g.invent_carrying_monster = NULL;
|
invent_carrying_monster = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*ARGUSED*/
|
/*ARGUSED*/
|
||||||
static void
|
static void
|
||||||
spo_pop_container()
|
spo_pop_container()
|
||||||
{
|
{
|
||||||
if (g.container_idx > 0) {
|
if (container_idx > 0) {
|
||||||
g.container_idx--;
|
container_idx--;
|
||||||
g.container_obj[g.container_idx] = NULL;
|
container_obj[container_idx] = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2798,7 +2818,7 @@ lua_State *L;
|
|||||||
|
|
||||||
quancnt = (tmpobj.id > STRANGE_OBJECT) ? tmpobj.quan : 0;
|
quancnt = (tmpobj.id > STRANGE_OBJECT) ? tmpobj.quan : 0;
|
||||||
|
|
||||||
if (g.container_idx)
|
if (container_idx)
|
||||||
tmpobj.containment |= SP_OBJ_CONTENT;
|
tmpobj.containment |= SP_OBJ_CONTENT;
|
||||||
|
|
||||||
if (maybe_contents) {
|
if (maybe_contents) {
|
||||||
@@ -2860,7 +2880,7 @@ lua_State *L;
|
|||||||
else if (!strcmpi(s, "graveyard"))
|
else if (!strcmpi(s, "graveyard"))
|
||||||
g.level.flags.graveyard = 1;
|
g.level.flags.graveyard = 1;
|
||||||
else if (!strcmpi(s, "icedpools"))
|
else if (!strcmpi(s, "icedpools"))
|
||||||
g.icedpools = 1;
|
icedpools = 1;
|
||||||
else if (!strcmpi(s, "corrmaze"))
|
else if (!strcmpi(s, "corrmaze"))
|
||||||
g.level.flags.corrmaze = 1;
|
g.level.flags.corrmaze = 1;
|
||||||
else if (!strcmpi(s, "premapped"))
|
else if (!strcmpi(s, "premapped"))
|
||||||
@@ -2897,7 +2917,7 @@ lua_State *L;
|
|||||||
|
|
||||||
lcheck_param_table(L);
|
lcheck_param_table(L);
|
||||||
|
|
||||||
g.splev_init_present = TRUE;
|
splev_init_present = TRUE;
|
||||||
|
|
||||||
init_lev.init_style
|
init_lev.init_style
|
||||||
= initstyles2i[get_table_option(L, "style", "solidfill", initstyles)];
|
= initstyles2i[get_table_option(L, "style", "solidfill", initstyles)];
|
||||||
@@ -3192,7 +3212,7 @@ lua_State *L;
|
|||||||
if ((badtrap = t_at(x, y)) != 0)
|
if ((badtrap = t_at(x, y)) != 0)
|
||||||
deltrap(badtrap);
|
deltrap(badtrap);
|
||||||
mkstairs(x, y, (char) up, g.coder->croom);
|
mkstairs(x, y, (char) up, g.coder->croom);
|
||||||
g.SpLev_Map[x][y] = 1;
|
SpLev_Map[x][y] = 1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -3251,7 +3271,7 @@ lua_State *L;
|
|||||||
if ((badtrap = t_at(x, y)) != 0)
|
if ((badtrap = t_at(x, y)) != 0)
|
||||||
deltrap(badtrap);
|
deltrap(badtrap);
|
||||||
levl[x][y].typ = LADDER;
|
levl[x][y].typ = LADDER;
|
||||||
g.SpLev_Map[x][y] = 1;
|
SpLev_Map[x][y] = 1;
|
||||||
if (up) {
|
if (up) {
|
||||||
xupladder = x;
|
xupladder = x;
|
||||||
yupladder = y;
|
yupladder = y;
|
||||||
@@ -4264,7 +4284,7 @@ genericptr_t arg;
|
|||||||
}
|
}
|
||||||
set_door_orientation(x, y); /* set/clear levl[x][y].horizontal */
|
set_door_orientation(x, y); /* set/clear levl[x][y].horizontal */
|
||||||
levl[x][y].doormask = typ;
|
levl[x][y].doormask = typ;
|
||||||
g.SpLev_Map[x][y] = 1;
|
SpLev_Map[x][y] = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* door({ x = 1, y = 1, state = "nodoor" }); */
|
/* door({ x = 1, y = 1, state = "nodoor" }); */
|
||||||
@@ -5006,7 +5026,7 @@ lua_State *L;
|
|||||||
db_open = !rn2(2);
|
db_open = !rn2(2);
|
||||||
if (!create_drawbridge(x, y, dir, db_open ? TRUE : FALSE))
|
if (!create_drawbridge(x, y, dir, db_open ? TRUE : FALSE))
|
||||||
impossible("Cannot create drawbridge.");
|
impossible("Cannot create drawbridge.");
|
||||||
g.SpLev_Map[x][y] = 1;
|
SpLev_Map[x][y] = 1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -5336,8 +5356,8 @@ TODO: g.coder->croom needs to be updated
|
|||||||
maphei++;
|
maphei++;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* keepregion restricts the coordinates of the commands coming after the map
|
/* keepregion restricts the coordinates of the commands coming after
|
||||||
into the map region */
|
the map into the map region */
|
||||||
/* for keepregion */
|
/* for keepregion */
|
||||||
tmpxsize = g.xsize;
|
tmpxsize = g.xsize;
|
||||||
tmpysize = g.ysize;
|
tmpysize = g.ysize;
|
||||||
@@ -5375,7 +5395,7 @@ TODO: g.coder->croom needs to be updated
|
|||||||
/* place map starting at halign,valign */
|
/* place map starting at halign,valign */
|
||||||
switch (lr) {
|
switch (lr) {
|
||||||
case LEFT:
|
case LEFT:
|
||||||
g.xstart = g.splev_init_present ? 1 : 3;
|
g.xstart = splev_init_present ? 1 : 3;
|
||||||
break;
|
break;
|
||||||
case H_LEFT:
|
case H_LEFT:
|
||||||
g.xstart = 2 + ((g.x_maze_max - 2 - g.xsize) / 4);
|
g.xstart = 2 + ((g.x_maze_max - 2 - g.xsize) / 4);
|
||||||
@@ -5443,7 +5463,7 @@ TODO: g.coder->croom needs to be updated
|
|||||||
levl[x][y].horizontal = 0;
|
levl[x][y].horizontal = 0;
|
||||||
levl[x][y].roomno = 0;
|
levl[x][y].roomno = 0;
|
||||||
levl[x][y].edge = 0;
|
levl[x][y].edge = 0;
|
||||||
g.SpLev_Map[x][y] = 1;
|
SpLev_Map[x][y] = 1;
|
||||||
/*
|
/*
|
||||||
* Set secret doors to closed (why not trapped too?). Set
|
* Set secret doors to closed (why not trapped too?). Set
|
||||||
* the horizontal bit.
|
* the horizontal bit.
|
||||||
@@ -5464,8 +5484,8 @@ TODO: g.coder->croom needs to be updated
|
|||||||
levl[x][y].horizontal = 1;
|
levl[x][y].horizontal = 1;
|
||||||
else if (levl[x][y].typ == LAVAPOOL)
|
else if (levl[x][y].typ == LAVAPOOL)
|
||||||
levl[x][y].lit = 1;
|
levl[x][y].lit = 1;
|
||||||
else if (g.splev_init_present && levl[x][y].typ == ICE)
|
else if (splev_init_present && levl[x][y].typ == ICE)
|
||||||
levl[x][y].icedpool = g.icedpools ? ICED_POOL : ICED_MOAT;
|
levl[x][y].icedpool = icedpools ? ICED_POOL : ICED_MOAT;
|
||||||
}
|
}
|
||||||
if (g.coder->lvl_is_joined)
|
if (g.coder->lvl_is_joined)
|
||||||
remove_rooms(g.xstart, g.ystart,
|
remove_rooms(g.xstart, g.ystart,
|
||||||
@@ -5510,8 +5530,8 @@ sp_level_coder_init()
|
|||||||
coder->lvl_is_joined = 0;
|
coder->lvl_is_joined = 0;
|
||||||
coder->room_stack = 0;
|
coder->room_stack = 0;
|
||||||
|
|
||||||
g.splev_init_present = FALSE;
|
splev_init_present = FALSE;
|
||||||
g.icedpools = FALSE;
|
icedpools = FALSE;
|
||||||
|
|
||||||
for (tmpi = 0; tmpi <= MAX_NESTED_ROOMS; tmpi++) {
|
for (tmpi = 0; tmpi <= MAX_NESTED_ROOMS; tmpi++) {
|
||||||
coder->tmproomlist[tmpi] = (struct mkroom *) 0;
|
coder->tmproomlist[tmpi] = (struct mkroom *) 0;
|
||||||
@@ -5521,19 +5541,19 @@ sp_level_coder_init()
|
|||||||
update_croom();
|
update_croom();
|
||||||
|
|
||||||
for (tmpi = 0; tmpi < MAX_CONTAINMENT; tmpi++)
|
for (tmpi = 0; tmpi < MAX_CONTAINMENT; tmpi++)
|
||||||
g.container_obj[tmpi] = NULL;
|
container_obj[tmpi] = NULL;
|
||||||
g.container_idx = 0;
|
container_idx = 0;
|
||||||
|
|
||||||
g.invent_carrying_monster = NULL;
|
invent_carrying_monster = NULL;
|
||||||
|
|
||||||
(void) memset((genericptr_t) &g.SpLev_Map[0][0], 0, sizeof g.SpLev_Map);
|
(void) memset((genericptr_t) SpLev_Map, 0, sizeof SpLev_Map);
|
||||||
|
|
||||||
g.level.flags.is_maze_lev = 0;
|
g.level.flags.is_maze_lev = 0;
|
||||||
|
|
||||||
g.xstart = 1;
|
g.xstart = 1; /* column [0] is off limits */
|
||||||
g.ystart = 0;
|
g.ystart = 0;
|
||||||
g.xsize = COLNO - 1;
|
g.xsize = COLNO - 1; /* 1..COLNO-1 */
|
||||||
g.ysize = ROWNO;
|
g.ysize = ROWNO; /* 0..ROWNO-1 */
|
||||||
|
|
||||||
return coder;
|
return coder;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user