Merge branch 'NetHack-3.6'

This commit is contained in:
nhmall
2019-10-23 08:46:39 -04:00
4 changed files with 19 additions and 17 deletions

View File

@@ -151,6 +151,7 @@ Someone once said that what goes up < might come down >.
Someone's been spiking the pits! Someone's been spiking the pits!
Sometimes monsters are more likely to fight each other than attack you. Sometimes monsters are more likely to fight each other than attack you.
Spinach, carrot, and jelly -- a meal fit for a nurse! Spinach, carrot, and jelly -- a meal fit for a nurse!
Surviving the full extent of the mines could mean that your luck is changing.
Tainted meat is even more sickening than poison! Tainted meat is even more sickening than poison!
Telepathy is just a trick: once you know how to do it, it's easy. Telepathy is just a trick: once you know how to do it, it's easy.
The Leprechaun Gold Tru$t is no division of the Magic Memory Vault. The Leprechaun Gold Tru$t is no division of the Magic Memory Vault.

View File

@@ -225,6 +225,8 @@ monster throwing from stack of missiles (darts, daggers, spears) would cause
surviving death while polymorphed would yield "You are a <foo>" without surviving death while polymorphed would yield "You are a <foo>" without
terminating period terminating period
'mksobj failure' commit resulted in wrong corpse types for dying monsters 'mksobj failure' commit resulted in wrong corpse types for dying monsters
a recent intended sanity check fix inadvertently bypassed placing
a thrown chained ball back onto the floor
curses: sometimes the message window would show a blank line after a prompt curses: sometimes the message window would show a blank line after a prompt
curses: the change to show map in columns 1..79 instead of 2..80 made the curses: the change to show map in columns 1..79 instead of 2..80 made the
highlight for '@' show up in the wrong place if clipped map had been highlight for '@' show up in the wrong place if clipped map had been

View File

@@ -1292,7 +1292,7 @@ boolean twoweap; /* used to restore twoweapon mode if wielded weapon returns */
|| !index(in_rooms(mon->mx, mon->my, SHOPBASE), *u.ushops))) || !index(in_rooms(mon->mx, mon->my, SHOPBASE), *u.ushops)))
hot_pursuit(mon); hot_pursuit(mon);
if (obj_gone || obj == uball) if (obj_gone)
g.thrownobj = (struct obj *) 0; g.thrownobj = (struct obj *) 0;
} }
@@ -1304,6 +1304,8 @@ boolean twoweap; /* used to restore twoweapon mode if wielded weapon returns */
swallowit: swallowit:
if (obj != uball) if (obj != uball)
(void) mpickobj(u.ustuck, obj); /* clears 'g.thrownobj' */ (void) mpickobj(u.ustuck, obj); /* clears 'g.thrownobj' */
else
clear_thrownobj = TRUE;
goto throwit_return; goto throwit_return;
} else { } else {
/* Mjollnir must we wielded to be thrown--caller verifies this; /* Mjollnir must we wielded to be thrown--caller verifies this;

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 wintty.c $NHDT-Date: 1558400902 2019/05/21 01:08:22 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.209 $ */ /* NetHack 3.6 wintty.c $NHDT-Date: 1571787079 2019/10/22 23:31:19 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.223 $ */
/* Copyright (c) David Cohrs, 1991 */ /* Copyright (c) David Cohrs, 1991 */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -133,7 +133,6 @@ struct window_procs tty_procs = {
genl_can_suspend_yes, genl_can_suspend_yes,
}; };
static int maxwin = 0; /* number of windows in use */
winid BASE_WINDOW; winid BASE_WINDOW;
struct WinDesc *wins[MAXWIN]; struct WinDesc *wins[MAXWIN];
struct DisplayDesc *ttyDisplay; /* the tty display descriptor */ struct DisplayDesc *ttyDisplay; /* the tty display descriptor */
@@ -1418,10 +1417,18 @@ int type;
int i, rowoffset; int i, rowoffset;
int newid; int newid;
if (maxwin == MAXWIN) for (newid = 0; newid < MAXWIN; ++newid)
if (wins[newid] == 0)
break;
if (newid == MAXWIN) {
panic("No window slots!");
/*NOTREACHED*/
return WIN_ERR; return WIN_ERR;
}
newwin = (struct WinDesc *) alloc(sizeof (struct WinDesc));
wins[newid] = newwin;
newwin = (struct WinDesc *) alloc(sizeof(struct WinDesc));
newwin->type = type; newwin->type = type;
newwin->flags = 0; newwin->flags = 0;
newwin->active = FALSE; newwin->active = FALSE;
@@ -1488,17 +1495,7 @@ int type;
break; break;
default: default:
panic("Tried to create window type %d\n", (int) type); panic("Tried to create window type %d\n", (int) type);
return WIN_ERR; /*NOTREACHED*/
}
for (newid = 0; newid < MAXWIN; newid++) {
if (wins[newid] == 0) {
wins[newid] = newwin;
break;
}
}
if (newid == MAXWIN) {
panic("No window slots!");
return WIN_ERR; return WIN_ERR;
} }
@@ -2445,7 +2442,7 @@ winid window;
free_window_info(cw, TRUE); free_window_info(cw, TRUE);
free((genericptr_t) cw); free((genericptr_t) cw);
wins[window] = 0; wins[window] = 0; /* available for re-use */
} }
void void