diff --git a/doc/fixes3-7-0.txt b/doc/fixes3-7-0.txt index 268fcfadc..e1c8eccf3 100644 --- a/doc/fixes3-7-0.txt +++ b/doc/fixes3-7-0.txt @@ -1592,6 +1592,9 @@ the fuzzer could get stuck in a loop if hero died in a way where life-saving fix unicorn horn's ability to repair blindness quest nemesis and a few other special monsters are suppressed from bones; their death feedback could be given when they were removed +running the tutorial until completion and returning to normal play but left + the 'no followers' flag set; adjacent pets wouldn't tag along when + hero moved to other levels Fixes to 3.7.0-x Platform and/or Interface Problems Exposed Via git Repository diff --git a/include/flag.h b/include/flag.h index fea62efd3..590dc927a 100644 --- a/include/flag.h +++ b/include/flag.h @@ -197,6 +197,7 @@ struct instance_flags { boolean invis_goldsym; /* gold symbol is ' '? */ boolean in_lua; /* executing a lua script */ boolean lua_testing; /* doing lua tests */ + boolean nofollowers; /* level change ignores pets (for tutorial) */ boolean partly_eaten_hack; /* extra flag for xname() used when it's called * indirectly so we can't use xname_flags() */ boolean remember_getpos; /* save getpos() positioning in do-again queue */ diff --git a/include/patchlevel.h b/include/patchlevel.h index a74f49e97..85c96f87b 100644 --- a/include/patchlevel.h +++ b/include/patchlevel.h @@ -17,7 +17,7 @@ * Incrementing EDITLEVEL can be used to force invalidation of old bones * and save files. */ -#define EDITLEVEL 85 +#define EDITLEVEL 86 /* * Development status possibilities. diff --git a/include/you.h b/include/you.h index 7528199ba..08fe7cc0c 100644 --- a/include/you.h +++ b/include/you.h @@ -358,7 +358,6 @@ struct you { d_level utolev; /* level monster teleported you to, or uz */ uchar utotype; /* bitmask of goto_level() flags for utolev */ d_level ucamefrom; /* level where you came from; used for tutorial */ - boolean nofollowers; /* level change ignores monster followers/pets */ boolean umoved; /* changed map location (post-move) */ int last_str_turn; /* 0: none, 1: half turn, 2: full turn * +: turn right, -: turn left */ diff --git a/src/allmain.c b/src/allmain.c index 88f89aa0a..8fe7df980 100644 --- a/src/allmain.c +++ b/src/allmain.c @@ -519,12 +519,12 @@ maybe_do_tutorial(void) if (ask_do_tutorial()) { assign_level(&u.ucamefrom, &u.uz); - u.nofollowers = TRUE; + iflags.nofollowers = TRUE; schedule_goto(&sp->dlevel, UTOTYPE_NONE, (char *) 0, (char *) 0); deferred_goto(); vision_recalc(0); docrt(); - u.nofollowers = FALSE; + iflags.nofollowers = FALSE; } } diff --git a/src/do.c b/src/do.c index e2cdc6231..68999acd5 100644 --- a/src/do.c +++ b/src/do.c @@ -1522,7 +1522,7 @@ goto_level( set_ustuck((struct monst *) 0); /* clear u.ustuck and u.uswallow */ set_uinwater(0); /* u.uinwater = 0 */ u.uundetected = 0; /* not hidden, even if means are available */ - if (!u.nofollowers) + if (!iflags.nofollowers) keepdogs(FALSE); recalc_mapseen(); /* recalculate map overview before we leave the level */ /*