From: Pasi Kallinen Date: Tue, 2 Aug 2022 14:02:25 +0000 (+0300) Subject: Reset map x/y start/size in single place X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f4d0e99fadff954913d2f9cf64eee953983f82d8;p=nethack Reset map x/y start/size in single place --- diff --git a/include/extern.h b/include/extern.h index 3ed02577f..ce9f9e9cc 100644 --- a/include/extern.h +++ b/include/extern.h @@ -2538,6 +2538,7 @@ extern void release_sound_mappings(void); #if !defined(CROSSCOMPILE) || defined(CROSSCOMPILE_TARGET) extern void create_des_coder(void); +extern void reset_xystart_size(void); extern struct mapfragment *mapfrag_fromstr(char *); extern void mapfrag_free(struct mapfragment **); extern schar mapfrag_get(struct mapfragment *, int, int); diff --git a/src/mklev.c b/src/mklev.c index 0b647ffee..17db087e5 100644 --- a/src/mklev.c +++ b/src/mklev.c @@ -733,10 +733,7 @@ clear_level_structures(void) stairway_free_all(); g.made_branch = FALSE; clear_regions(); - g.xstart = 1; - g.ystart = 0; - g.xsize = COLNO - 1; - g.ysize = ROWNO; + reset_xystart_size(); if (g.lev_message) { free(g.lev_message); g.lev_message = (char *) 0; diff --git a/src/sp_lev.c b/src/sp_lev.c index da68519d6..4f4416a68 100644 --- a/src/sp_lev.c +++ b/src/sp_lev.c @@ -201,6 +201,15 @@ static struct monst *invent_carrying_monster = (struct monst *) 0; #define TYP_CANNOT_MATCH(typ) ((typ) == MAX_TYPE || (typ) == INVALID_TYPE) +void +reset_xystart_size(void) +{ + g.xstart = 1; /* column [0] is off limits */ + g.ystart = 0; + g.xsize = COLNO - 1; /* 1..COLNO-1 */ + g.ysize = ROWNO; /* 0..ROWNO-1 */ +} + /* Does typ match with levl[][].typ, considering special types MATCH_WALL and MAX_TYPE (aka transparency)? */ static boolean @@ -3923,12 +3932,8 @@ spo_endroom(struct sp_coder* coder UNUSED) /* Need to ensure xstart/ystart/xsize/ysize have something sensible, in case there's some stuff to be created outside the outermost room, and there's no MAP. */ - if (g.xsize <= 1 && g.ysize <= 1) { - g.xstart = 1; - g.ystart = 0; - g.xsize = COLNO - 1; - g.ysize = ROWNO; - } + if (g.xsize <= 1 && g.ysize <= 1) + reset_xystart_size(); } update_croom(); } @@ -6349,10 +6354,7 @@ TODO: g.coder->croom needs to be updated g.ystart = 0; } if (g.xsize <= 1 && g.ysize <= 1) { - g.xstart = 1; - g.ystart = 0; - g.xsize = COLNO - 1; - g.ysize = ROWNO; + reset_xystart_size(); } else { coordxy mptyp; @@ -6493,10 +6495,7 @@ sp_level_coder_init(void) g.level.flags.is_maze_lev = 0; - g.xstart = 1; /* column [0] is off limits */ - g.ystart = 0; - g.xsize = COLNO - 1; /* 1..COLNO-1 */ - g.ysize = ROWNO; /* 0..ROWNO-1 */ + reset_xystart_size(); return coder; }