fix #3841 - steed and engulfer on same map spot
Reported five months ago, a save was performed while a mounted hero was engulfed. Restore issued a warning about the engulfer being placed on top of the steed (who shouldn't have been on the map). The report arrived at about the same time as engulfing a riding hero was changed to force a dismount instead of engulfing both hero and steed so nothing further was done about it. This changes restore to not put a steed on the map and then take it off again. It also attempts to simplify usteed and ustuck handling during save and restore. Testing so far indicates that things are still working correctly. Keep makeplural(body_part(FINGER)) crossed. Existing save and bones files are invalidated.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 decl.h $NHDT-Date: 1657918080 2022/07/15 20:48:00 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.303 $ */
|
||||
/* NetHack 3.7 decl.h $NHDT-Date: 1686726249 2023/06/14 07:04:09 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.333 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Michael Allison, 2007. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -968,8 +968,6 @@ struct instance_globals_u {
|
||||
struct Race urace; /* player's race. May be munged in role_init() */
|
||||
|
||||
/* save.c */
|
||||
unsigned ustuck_id; /* need to preserve during save */
|
||||
unsigned usteed_id; /* need to preserve during save */
|
||||
d_level uz_save;
|
||||
|
||||
/* new stuff */
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 patchlevel.h $NHDT-Date: 1651297020 2022/04/30 05:37:00 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.207 $ */
|
||||
/* NetHack 3.7 patchlevel.h $NHDT-Date: 1686726254 2023/06/14 07:04:14 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.241 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Michael Allison, 2012. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -17,7 +17,7 @@
|
||||
* Incrementing EDITLEVEL can be used to force invalidation of old bones
|
||||
* and save files.
|
||||
*/
|
||||
#define EDITLEVEL 86
|
||||
#define EDITLEVEL 87
|
||||
|
||||
/*
|
||||
* Development status possibilities.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 you.h $NHDT-Date: 1596498576 2020/08/03 23:49:36 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.48 $ */
|
||||
/* NetHack 3.7 you.h $NHDT-Date: 1686726254 2023/06/14 07:04:14 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.72 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Robert Patrick Rankin, 2016. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -471,6 +471,8 @@ struct you {
|
||||
int uinvault;
|
||||
struct monst *ustuck; /* engulfer or grabber, maybe grabbee if Upolyd */
|
||||
struct monst *usteed; /* mount when riding */
|
||||
unsigned ustuck_mid; /* u.ustuck->m_id, used during save/restore */
|
||||
unsigned usteed_mid; /* u.usteed->m_id, used during save/restore */
|
||||
long ugallop; /* turns steed will run after being kicked */
|
||||
int urideturns; /* time spent riding, for skill advancement */
|
||||
int umortality; /* how many times you died */
|
||||
|
||||
Reference in New Issue
Block a user