-NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.400 $ $NHDT-Date: 1608749030 2020/12/23 18:43:50 $
+NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.401 $ $NHDT-Date: 1608846067 2020/12/24 21:41:07 $
General Fixes and Modified Features
-----------------------------------
warning: tail 'segement' at <0,some_y>, worm at <mx,my> if teleported
adding displacer beast inadvertently introduced a regression in swapping with
pets, allowing them to be pulled into water by hero on/over water
+splitting #if MAIL into #if MAIL_STRUCTURES and #if MAIL made it possible to
+ wish for and write scrolls of mail with MAIL disabled, but attempting
+ to read such a scroll issued impossible "What weird effect is this?"
curses: 'msg_window' option wasn't functional for curses unless the binary
also included tty support
-/* NetHack 3.7 invent.c $NHDT-Date: 1606765212 2020/11/30 19:40:12 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.308 $ */
+/* NetHack 3.7 invent.c $NHDT-Date: 1608846067 2020/12/24 21:41:07 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.310 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Derek S. Ray, 2015. */
/* NetHack may be freely redistributed. See license for details. */
: (!has_omailcmd(otmp) || strcmp(OMAILCMD(obj), OMAILCMD(otmp)) != 0))
return FALSE;
+#ifdef MAIL_STRUCTURES
+ if (obj->otyp == SCR_MAIL
+ /* wished or bones mail and hand written stamped scrolls
+ each have two flavors; spe keeps them separate from each
+ other but we want to keep their flavors separate too */
+ && obj->spe > 0 && (obj->o_id % 2) != (otmp->o_id % 2))
+ return FALSE;
+#endif
+
/* should be moot since matching artifacts wouldn't be unique */
if (obj->oartifact != otmp->oartifact)
return FALSE;
-/* NetHack 3.7 read.c $NHDT-Date: 1607945439 2020/12/14 11:30:39 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.205 $ */
+/* NetHack 3.7 read.c $NHDT-Date: 1608846072 2020/12/24 21:41:12 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.207 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2012. */
/* NetHack may be freely redistributed. See license for details. */
}
confused = (Confusion != 0);
-#ifdef MAIL
+#ifdef MAIL_STRUCTURES
if (otyp == SCR_MAIL) {
confused = FALSE; /* override */
/* reading mail is a convenience for the player and takes
|| objects[otyp].oc_name_known);
switch (otyp) {
-#ifdef MAIL
- case SCR_MAIL:
+#ifdef MAIL_STRUCTURES
+ case SCR_MAIL: {
+ boolean odd = (sobj->o_id % 2) == 1;
+
g.known = TRUE;
- if (sobj->spe == 2)
+ switch (sobj->spe) {
+ case 2:
/* "stamped scroll" created via magic marker--without a stamp */
- pline("This scroll is marked \"postage due\".");
- else if (sobj->spe)
+ pline("This scroll is marked \"%s\".",
+ odd ? "Postage Due" : "Return to Sender");
+ break;
+ case 1:
/* scroll of mail obtained from bones file or from wishing;
- * note to the puzzled: the game Larn actually sends you junk
- * mail if you win!
- */
- pline(
- "This seems to be junk mail addressed to the finder of the Eye of Larn.");
- else
+ note to the puzzled: the game Larn actually sends you junk
+ mail if you win! */
+ pline("This seems to be %s.",
+ odd ? "a chain letter threatening your luck"
+ : "junk mail addressed to the finder of the Eye of Larn");
+ break;
+ default:
+#ifdef MAIL
readmail(sobj);
+#else
+ /* unreachable since with MAIL undefined, sobj->spe won't be 0;
+ as a precaution, be prepared to give arbitrary feedback;
+ caller has already reported that it disappears upon reading */
+ pline("That was a scroll of mail?");
+#endif
+ break;
+ }
break;
+ }
#endif
case SCR_ENCHANT_ARMOR: {
register schar s;