diff --git a/doc/fixes36.4 b/doc/fixes36.4 index aada6c85f..8d1b2e240 100644 --- a/doc/fixes36.4 +++ b/doc/fixes36.4 @@ -1,4 +1,4 @@ -$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.0 $ $NHDT-Date: 1575665952 2019/12/06 20:59:12 $ +$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.4 $ $NHDT-Date: 1576287569 2019/12/14 01:39:29 $ This fixes36.4 file is here to capture information about updates in the 3.6.x lineage following the release of 3.6.3 in December 2019. Hypothetical version @@ -10,6 +10,10 @@ GDBPATH and GREPPATH from sysconf or -D... on compilation command line were being processed even if PANICTRACE was disabled but only being freed at end of game when that was enabled fix the article used in the message when your steed encounters a polymorph trap +allow teleporting onto the vibrating square +message "your knapsack can't accomodate any more items" when picking stuff up + or removing such from container was inaccurate if there was some gold + pending; vary the message rather than add more convoluted pickup code dozen-ish assorted spelling/typo fixes in messages and source comments fix potential buffer overflow when parsing run-time configuration file diff --git a/src/pickup.c b/src/pickup.c index cd0fd118b..76f35aa8b 100644 --- a/src/pickup.c +++ b/src/pickup.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 pickup.c $NHDT-Date: 1570566381 2019/10/08 20:26:21 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.235 $ */ +/* NetHack 3.6 pickup.c $NHDT-Date: 1576282488 2019/12/14 00:14:48 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.237 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Robert Patrick Rankin, 2012. */ /* NetHack may be freely redistributed. See license for details. */ @@ -1424,7 +1424,14 @@ boolean telekinesis; /* [exception for gold coins will have to change if silver/copper ones ever get implemented] */ && inv_cnt(FALSE) >= 52 && !merge_choice(invent, obj)) { - Your("knapsack cannot accommodate any more items."); + /* if there is some gold here (and we haven't already skipped it), + we aren't limited by the 52 item limit for it, but caller and + "grandcaller" aren't prepared to skip stuff and then pickup + just gold, so the best we can do here is vary the message */ + Your("knapsack cannot accommodate any more items%s.", + /* floor follows by nexthere, otherwise container so by nobj */ + nxtobj(obj, GOLD_PIECE, (boolean) (obj->where == OBJ_FLOOR)) + ? " (except gold)" : ""); result = -1; /* nothing lifted */ } else { result = 1; diff --git a/src/teleport.c b/src/teleport.c index ab1e67c65..23af60aa2 100644 --- a/src/teleport.c +++ b/src/teleport.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 teleport.c $NHDT-Date: 1575245091 2019/12/02 00:04:51 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.94 $ */ +/* NetHack 3.6 teleport.c $NHDT-Date: 1576281515 2019/12/13 23:58:35 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.95 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Robert Patrick Rankin, 2011. */ /* NetHack may be freely redistributed. See license for details. */ @@ -263,8 +263,13 @@ teleok(x, y, trapok) register int x, y; boolean trapok; { - if (!trapok && t_at(x, y)) - return FALSE; + if (!trapok) { + /* allow teleportation onto vibrating square, it's not a real trap */ + struct trap *trap = t_at(x, y); + + if (trap && trap->ttyp != VIBRATING_SQUARE) + return FALSE; + } if (!goodpos(x, y, &youmonst, 0)) return FALSE; if (!tele_jump_ok(u.ux, u.uy, x, y)) diff --git a/src/trap.c b/src/trap.c index 51436d47a..941025654 100644 --- a/src/trap.c +++ b/src/trap.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 trap.c $NHDT-Date: 1569189770 2019/09/22 22:02:50 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.317 $ */ +/* NetHack 3.6 trap.c $NHDT-Date: 1576274483 2019/12/13 22:01:23 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.325 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Robert Patrick Rankin, 2013. */ /* NetHack may be freely redistributed. See license for details. */ @@ -1639,7 +1639,7 @@ struct obj *otmp; SUPPRESS_SADDLE, FALSE)); if (mdat != steed->data) (void) strsubst(buf, "your ", "your new "); - You("have to adjust yourself in the saddle on %s.", buf); + You("adjust yourself in the saddle on %s.", buf); } } steedhit = TRUE;