Merge branch 'NetHack-3.6.2'

This commit is contained in:
nhmall
2018-11-18 14:21:33 -05:00
18 changed files with 115 additions and 120 deletions

View File

@@ -91,8 +91,9 @@ check_gold_symbol()
int goldch, goldoc;
unsigned int goldos;
int goldglyph = objnum_to_glyph(GOLD_PIECE);
(void) mapglyph(goldglyph, &goldch, &goldoc, &goldos, 0, 0);
iflags.invis_goldsym = ((char)goldch <= ' ');
iflags.invis_goldsym = ((char) goldch <= ' ');
}
char *
@@ -829,8 +830,7 @@ boolean *valsetlist;
* the display, call status_update() with BL_FLUSH.
*
*/
if (context.botlx &&
(windowprocs.wincap2 & WC2_RESET_STATUS) != 0L)
if (context.botlx && (windowprocs.wincap2 & WC2_RESET_STATUS) != 0L)
status_update(BL_RESET, (genericptr_t) 0, 0, 0,
NO_COLOR, &cond_hilites[0]);
else if ((windowprocs.wincap2 & WC2_FLUSH_STATUS) != 0L)
@@ -2091,33 +2091,33 @@ boolean from_configfile;
}
const struct condmap valid_conditions[] = {
{"stone", BL_MASK_STONE},
{"slime", BL_MASK_SLIME},
{"strngl", BL_MASK_STRNGL},
{"foodPois", BL_MASK_FOODPOIS},
{"termIll", BL_MASK_TERMILL},
{"blind", BL_MASK_BLIND},
{"deaf", BL_MASK_DEAF},
{"stun", BL_MASK_STUN},
{"conf", BL_MASK_CONF},
{"hallu", BL_MASK_HALLU},
{"lev", BL_MASK_LEV},
{"fly", BL_MASK_FLY},
{"ride", BL_MASK_RIDE},
{ "stone", BL_MASK_STONE },
{ "slime", BL_MASK_SLIME },
{ "strngl", BL_MASK_STRNGL },
{ "foodPois", BL_MASK_FOODPOIS },
{ "termIll", BL_MASK_TERMILL },
{ "blind", BL_MASK_BLIND },
{ "deaf", BL_MASK_DEAF },
{ "stun", BL_MASK_STUN },
{ "conf", BL_MASK_CONF },
{ "hallu", BL_MASK_HALLU },
{ "lev", BL_MASK_LEV },
{ "fly", BL_MASK_FLY },
{ "ride", BL_MASK_RIDE },
};
const struct condmap condition_aliases[] = {
{"strangled", BL_MASK_STRNGL},
{"all", BL_MASK_STONE | BL_MASK_SLIME | BL_MASK_STRNGL |
BL_MASK_FOODPOIS | BL_MASK_TERMILL |
BL_MASK_BLIND | BL_MASK_DEAF | BL_MASK_STUN |
BL_MASK_CONF | BL_MASK_HALLU |
BL_MASK_LEV | BL_MASK_FLY | BL_MASK_RIDE },
{"major_troubles", BL_MASK_STONE | BL_MASK_SLIME | BL_MASK_STRNGL |
BL_MASK_FOODPOIS | BL_MASK_TERMILL},
{"minor_troubles", BL_MASK_BLIND | BL_MASK_DEAF | BL_MASK_STUN |
BL_MASK_CONF | BL_MASK_HALLU},
{"movement", BL_MASK_LEV | BL_MASK_FLY | BL_MASK_RIDE}
{ "strangled", BL_MASK_STRNGL },
{ "all", BL_MASK_STONE | BL_MASK_SLIME | BL_MASK_STRNGL
| BL_MASK_FOODPOIS | BL_MASK_TERMILL
| BL_MASK_BLIND | BL_MASK_DEAF | BL_MASK_STUN
| BL_MASK_CONF | BL_MASK_HALLU
| BL_MASK_LEV | BL_MASK_FLY | BL_MASK_RIDE },
{ "major_troubles", BL_MASK_STONE | BL_MASK_SLIME | BL_MASK_STRNGL
| BL_MASK_FOODPOIS | BL_MASK_TERMILL },
{ "minor_troubles", BL_MASK_BLIND | BL_MASK_DEAF | BL_MASK_STUN
| BL_MASK_CONF | BL_MASK_HALLU },
{ "movement", BL_MASK_LEV | BL_MASK_FLY | BL_MASK_RIDE }
};
unsigned long

View File

@@ -989,7 +989,7 @@ int x, y;
/* Erase (reset) from source to end */
for (i = 0; i < tglyph->sidx; i++)
newsym(tglyph->saved[i].x, tglyph->saved[i].y);
} else if (tglyph->style == DISP_TETHER) {
} else if (tglyph->style == DISP_TETHER) {
int i;
if (y == BACKTRACK && tglyph->sidx > 1) {
@@ -1028,7 +1028,7 @@ int x, y;
tglyph->saved[tglyph->sidx].x = x;
tglyph->saved[tglyph->sidx].y = y;
tglyph->sidx += 1;
} else if (tglyph->style == DISP_TETHER) {
} else if (tglyph->style == DISP_TETHER) {
if (tglyph->sidx >= TMP_AT_MAX_GLYPHS)
break; /* too many locations */
if (tglyph->sidx) {

View File

@@ -651,10 +651,8 @@ int maxdist;
if (targ) {
/* Is the monster visible to the pet? */
if ((!targ->minvis || perceives(mtmp->data)) &&
!targ->mundetected)
if ((!targ->minvis || perceives(mtmp->data)) && !targ->mundetected)
break;
/* If the pet can't see it, it assumes it aint there */
targ = 0;
}
@@ -1107,12 +1105,10 @@ int after; /* this is extra fast monster movement */
/* This causes unintended issues for pets trying to follow
the hero. Thus, only run it if not leashed and >5 tiles
away. */
if (!mtmp->mleashed &&
distmin(mtmp->mx, mtmp->my, u.ux, u.uy) > 5) {
if (!mtmp->mleashed && distmin(mtmp->mx, mtmp->my, u.ux, u.uy) > 5) {
k = has_edog ? uncursedcnt : cnt;
for (j = 0; j < MTSZ && j < k - 1; j++)
if (nx == mtmp->mtrack[j].x &&
ny == mtmp->mtrack[j].y)
if (nx == mtmp->mtrack[j].x && ny == mtmp->mtrack[j].y)
if (rn2(MTSZ * (k - j)))
goto nxti;
}

View File

@@ -495,13 +495,13 @@ xchar x, y;
return 0;
if ((trap = t_at(x, y)) != 0) {
if ((is_pit(trap->ttyp) && !Passes_walls)
|| trap->ttyp == WEB) {
if ((is_pit(trap->ttyp) && !Passes_walls) || trap->ttyp == WEB) {
if (!trap->tseen)
find_trap(trap);
You_cant("kick %s that's in a %s!", something,
Hallucination ? "tizzy" :
(trap->ttyp == WEB) ? "web" : "pit");
Hallucination ? "tizzy"
: (trap->ttyp == WEB) ? "web"
: "pit");
return 1;
}
if (trap->ttyp == STATUE_TRAP) {

View File

@@ -1287,9 +1287,10 @@ boolean twoweap; /* used to restore twoweapon mode if wielded weapon returns */
pline("%s returns to your hand!", The(xname(thrownobj)));
thrownobj = addinv(thrownobj);
(void) encumber_msg();
if (thrownobj->owornmask & W_QUIVER) /* in case addinv() autoquivered */
/* in case addinv() autoquivered */
if (thrownobj->owornmask & W_QUIVER)
setuqwep((struct obj *) 0);
setuwep(thrownobj);
setuwep(thrownobj);
} else {
/* ball is not picked up by monster */
if (obj != uball)

View File

@@ -646,7 +646,7 @@ char *s;
}
#define ORC_LEADER 1
static const char *orcfruit[] = {"paddle cactus", "dwarven root"};
static const char *orcfruit[] = { "paddle cactus", "dwarven root" };
void
migrate_orc(mtmp, mflags)
@@ -657,8 +657,8 @@ unsigned long mflags;
d_level dest;
cur_depth = (int) depth(&u.uz);
max_depth = dunlevs_in_dungeon(&u.uz) +
(dungeons[u.uz.dnum].depth_start - 1);
max_depth = dunlevs_in_dungeon(&u.uz)
+ (dungeons[u.uz.dnum].depth_start - 1);
if (mflags == ORC_LEADER) {
/* Note that the orc leader will take possession of any
* remaining stuff not already delivered to other
@@ -709,8 +709,7 @@ struct monst *mtmp;
}
if (is_captain || !rn2(8)) {
otyp = shiny_obj(RING_CLASS);
if ((otyp != STRANGE_OBJECT) &&
(otmp = mksobj(otyp, FALSE, FALSE)) != 0)
if (otyp != STRANGE_OBJECT && (otmp = mksobj(otyp, FALSE, FALSE)) != 0)
add_to_minv(mtmp, otmp);
}
}
@@ -768,11 +767,11 @@ stolen_booty(VOID_ARGS)
for (i = 0; i < cnt; ++i) {
/* Food items - but no lembas! (or some other weird things) */
otyp = rn2((TIN - TRIPE_RATION) + 1) + TRIPE_RATION;
if (otyp != LEMBAS_WAFER && otyp != GLOB_OF_GRAY_OOZE &&
otyp != GLOB_OF_BROWN_PUDDING && otyp != GLOB_OF_GREEN_SLIME &&
otyp != GLOB_OF_BLACK_PUDDING && otyp != MEAT_STICK &&
otyp != MEATBALL && otyp != MEAT_STICK && otyp != MEAT_RING &&
otyp != HUGE_CHUNK_OF_MEAT && otyp != CORPSE)
if (otyp != LEMBAS_WAFER && otyp != GLOB_OF_GRAY_OOZE
&& otyp != GLOB_OF_BROWN_PUDDING && otyp != GLOB_OF_GREEN_SLIME
&& otyp != GLOB_OF_BLACK_PUDDING && otyp != MEAT_STICK
&& otyp != MEATBALL && otyp != MEAT_STICK && otyp != MEAT_RING
&& otyp != HUGE_CHUNK_OF_MEAT && otyp != CORPSE)
migr_booty_item(otyp, gang);
}
migr_booty_item(rn2(2) ? LONG_SWORD : SILVER_SABER, gang);

View File

@@ -804,7 +804,7 @@ struct attack *mattk;
if ((typ >= AD_MAGM) && (typ <= AD_ACID)) {
if (canseemon(mtmp))
pline("%s breathes %s!", Monnam(mtmp), breathwep[typ - 1]);
dobuzz((int) (-20 - (typ - 1)), (int)mattk->damn,
dobuzz((int) (-20 - (typ - 1)), (int) mattk->damn,
mtmp->mx, mtmp->my, sgn(tbx), sgn(tby), FALSE);
nomul(0);
/* breath runs out sometimes. Also, give monster some

View File

@@ -2484,8 +2484,6 @@ badman(basestr, to_plural)
const char *basestr;
boolean to_plural; /* true => makeplural, false => makesingular */
{
int i, al;
char *endstr, *spot;
/* these are all the prefixes for *man that don't have a *men plural */
static const char *no_men[] = {
"albu", "antihu", "anti", "ata", "auto", "bildungsro", "cai", "cay",
@@ -2501,11 +2499,13 @@ boolean to_plural; /* true => makeplural, false => makesingular */
"tegu", "vela", "da", "hy", "lu", "no", "nu", "ra", "ru", "se", "vi",
"ya", "o", "a",
};
int i, al;
const char *endstr, *spot;
if (!basestr || strlen(basestr) < 4)
return FALSE;
endstr = eos((char *)basestr);
endstr = eos((char *) basestr);
if (to_plural) {
for (i = 0; i < SIZE(no_men); i++) {

View File

@@ -3293,8 +3293,8 @@ boolean tinitial, tfrom_file;
/* WINCAP
*
* map_mode:[tiles|ascii4x6|ascii6x8|ascii8x8|ascii16x8|ascii7x12|
* ascii8x12|ascii16x12|ascii12x16|ascii10x18|fit_to_screen]
* map_mode:[tiles|ascii4x6|ascii6x8|ascii8x8|ascii16x8|ascii7x12
* |ascii8x12|ascii16x12|ascii12x16|ascii10x18|fit_to_screen]
*/
fullname = "map_mode";
if (match_optname(opts, fullname, sizeof("map_mode") - 1, TRUE)) {

View File

@@ -18,7 +18,8 @@ STATIC_DCL struct permonst *FDECL(lookat, (int, int, char *, char *));
STATIC_DCL void FDECL(checkfile, (char *, struct permonst *,
BOOLEAN_P, BOOLEAN_P, char *));
STATIC_DCL void FDECL(look_all, (BOOLEAN_P,BOOLEAN_P));
STATIC_DCL void FDECL(do_supplemental_info, (char *, struct permonst *,BOOLEAN_P));
STATIC_DCL void FDECL(do_supplemental_info, (char *, struct permonst *,
BOOLEAN_P));
STATIC_DCL void NDECL(whatdoes_help);
STATIC_DCL void NDECL(docontact);
STATIC_DCL void NDECL(dispfile_help);
@@ -1352,9 +1353,8 @@ boolean without_asking;
* meant to support in-game mythology, and not
* available from data.base or other sources.
*/
if (name && pm && is_orc(pm) &&
(strlen(name) < (BUFSZ - 1)) &&
(bp = strstri(name, " of ")) != 0) {
if (name && pm && is_orc(pm) && (strlen(name) < (BUFSZ - 1))
&& (bp = strstri(name, " of ")) != 0) {
char fullname[BUFSZ];
Strcpy(fullname, name);
@@ -1780,7 +1780,7 @@ dowhatdoes()
}
STATIC_OVL void
docontact()
docontact(VOID_ARGS)
{
winid cwin = create_nhwindow(NHW_TEXT);
char buf[BUFSZ];
@@ -1810,67 +1810,67 @@ docontact()
}
void
dispfile_help()
dispfile_help(VOID_ARGS)
{
display_file(HELP, TRUE);
}
void
dispfile_shelp()
dispfile_shelp(VOID_ARGS)
{
display_file(SHELP, TRUE);
}
void
dispfile_optionfile()
dispfile_optionfile(VOID_ARGS)
{
display_file(OPTIONFILE, TRUE);
}
void
dispfile_license()
dispfile_license(VOID_ARGS)
{
display_file(LICENSE, TRUE);
}
void
dispfile_debughelp()
dispfile_debughelp(VOID_ARGS)
{
display_file(DEBUGHELP, TRUE);
}
void
hmenu_doextversion()
hmenu_doextversion(VOID_ARGS)
{
(void) doextversion();
}
void
hmenu_dohistory()
hmenu_dohistory(VOID_ARGS)
{
(void) dohistory();
}
void
hmenu_dowhatis()
hmenu_dowhatis(VOID_ARGS)
{
(void) dowhatis();
}
void
hmenu_dowhatdoes()
hmenu_dowhatdoes(VOID_ARGS)
{
(void) dowhatdoes();
}
void
hmenu_doextlist()
hmenu_doextlist(VOID_ARGS)
{
(void) doextlist();
}
void
domenucontrols()
domenucontrols(VOID_ARGS)
{
winid cwin = create_nhwindow(NHW_TEXT);
show_menu_controls(cwin, FALSE);
@@ -1880,7 +1880,7 @@ domenucontrols()
/* data for dohelp() */
static struct {
void (*f)();
void NDECL((*f));
const char *text;
} help_menu_items[] = {
{ hmenu_doextversion, "About NetHack (version information)." },
@@ -1900,7 +1900,7 @@ static struct {
{ port_help, "%s-specific help and commands." },
#endif
{ dispfile_debughelp, "List of wizard-mode commands." },
{ NULL, (char *) 0 }
{ (void NDECL((*))) 0, (char *) 0 }
};
/* the '?' command */
@@ -1913,7 +1913,6 @@ dohelp()
menu_item *selected;
anything any;
int sel;
char *bufptr;
any = zeroany; /* zero all bits */
start_menu(tmpwin);
@@ -1923,13 +1922,12 @@ dohelp()
continue;
if (help_menu_items[i].text[0] == '%') {
Sprintf(helpbuf, help_menu_items[i].text, PORT_ID);
bufptr = helpbuf;
} else {
bufptr = (char *)help_menu_items[i].text;
Strcpy(helpbuf, help_menu_items[i].text);
}
any.a_int = i + 1;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
bufptr, MENU_UNSELECTED);
helpbuf, MENU_UNSELECTED);
}
end_menu(tmpwin, "Select one item:");
n = select_menu(tmpwin, PICK_ONE, &selected);
@@ -1937,7 +1935,7 @@ dohelp()
if (n > 0) {
sel = selected[0].item.a_int - 1;
free((genericptr_t) selected);
(void)(*help_menu_items[sel].f)();
(void) (*help_menu_items[sel].f)();
}
return 0;
}

View File

@@ -597,8 +597,7 @@ register struct obj *otmp;
the spell or with a unihorn; this is better than full healing
in that it can restore all of them, not just half, and a
blessed potion restores them all at once */
if (otmp->otyp == POT_RESTORE_ABILITY &&
u.ulevel < u.ulevelmax) {
if (otmp->otyp == POT_RESTORE_ABILITY && u.ulevel < u.ulevelmax) {
do {
pluslvl(FALSE);
} while (u.ulevel < u.ulevelmax && otmp->blessed);
@@ -608,9 +607,9 @@ register struct obj *otmp;
case POT_HALLUCINATION:
if (Hallucination || Halluc_resistance)
nothing++;
(void) make_hallucinated(
itimeout_incr(HHallucination, rn1(200, 600 - 300 * bcsign(otmp))),
TRUE, 0L);
(void) make_hallucinated(itimeout_incr(HHallucination,
rn1(200, 600 - 300 * bcsign(otmp))),
TRUE, 0L);
break;
case POT_WATER:
if (!otmp->blessed && !otmp->cursed) {

View File

@@ -2370,8 +2370,8 @@ struct obj *sobj;
uball->spe = 1; /* special ball (see save) */
/*
* Place ball & chain if not swallowed. If swallowed, the ball &
* chain variables will be set at the next call to placebc().
* Place ball & chain if not swallowed. If swallowed, the ball & chain
* variables will be set at the next call to placebc().
*/
if (!u.uswallow) {
placebc();

View File

@@ -1703,14 +1703,15 @@ plnamesuffix()
/* some generic user names will be ignored in favor of prompting */
if (sysopt.genericusers) {
if (*sysopt.genericusers == '*') *plname = '\0';
else {
i = (int)strlen(plname);
if ((sptr = strstri(sysopt.genericusers, plname)) != 0
&& (sptr == sysopt.genericusers || sptr[-1] == ' ')
&& (sptr[i] == ' ' || sptr[i] == '\0'))
*plname = '\0'; /* call askname() */
}
if (*sysopt.genericusers == '*') {
*plname = '\0';
} else {
i = (int) strlen(plname);
if ((sptr = strstri(sysopt.genericusers, plname)) != 0
&& (sptr == sysopt.genericusers || sptr[-1] == ' ')
&& (sptr[i] == ' ' || sptr[i] == '\0'))
*plname = '\0'; /* call askname() */
}
}
do {

View File

@@ -231,7 +231,7 @@ struct splevstack *st;
st->depth = 0;
st->depth_alloc = SPLEV_STACK_RESERVE;
st->stackdata =
(struct opvar **) alloc(st->depth_alloc * sizeof(struct opvar *));
(struct opvar **) alloc(st->depth_alloc * sizeof (struct opvar *));
}
}
@@ -284,7 +284,7 @@ struct opvar *v;
if (st->depth >= st->depth_alloc) {
struct opvar **tmp = (struct opvar **) alloc(
(st->depth_alloc + SPLEV_STACK_RESERVE) * sizeof(struct opvar *));
(st->depth_alloc + SPLEV_STACK_RESERVE) * sizeof (struct opvar *));
(void) memcpy(tmp, st->stackdata,
st->depth_alloc * sizeof(struct opvar *));
@@ -352,7 +352,7 @@ struct opvar *
opvar_new_str(s)
char *s;
{
struct opvar *tmpov = (struct opvar *) alloc(sizeof(struct opvar));
struct opvar *tmpov = (struct opvar *) alloc(sizeof (struct opvar));
tmpov->spovartyp = SPOVAR_STRING;
if (s) {
@@ -370,7 +370,7 @@ struct opvar *
opvar_new_int(i)
long i;
{
struct opvar *tmpov = (struct opvar *) alloc(sizeof(struct opvar));
struct opvar *tmpov = (struct opvar *) alloc(sizeof (struct opvar));
tmpov->spovartyp = SPOVAR_INT;
tmpov->vardata.l = i;
@@ -381,7 +381,7 @@ struct opvar *
opvar_new_coord(x, y)
int x, y;
{
struct opvar *tmpov = (struct opvar *) alloc(sizeof(struct opvar));
struct opvar *tmpov = (struct opvar *) alloc(sizeof (struct opvar));
tmpov->spovartyp = SPOVAR_COORD;
tmpov->vardata.l = SP_COORD_PACK(x, y);
@@ -393,7 +393,7 @@ struct opvar *
opvar_new_region(x1,y1,x2,y2)
int x1,y1,x2,y2;
{
struct opvar *tmpov = (struct opvar *)alloc(sizeof (struct opvar));
struct opvar *tmpov = (struct opvar *) alloc(sizeof (struct opvar));
tmpov->spovartyp = SPOVAR_REGION;
tmpov->vardata.l = SP_REGION_PACK(x1,y1,x2,y2);

View File

@@ -5033,10 +5033,10 @@ struct trap *adjtrap;
{
struct trap *trap_with_u = t_at(u.ux0, u.uy0);
if (trap_with_u && adjtrap && u.utrap && u.utraptype == TT_PIT &&
is_pit(trap_with_u->ttyp) &&
is_pit(adjtrap->ttyp)) {
if (trap_with_u && adjtrap && u.utrap && u.utraptype == TT_PIT
&& is_pit(trap_with_u->ttyp) && is_pit(adjtrap->ttyp)) {
int idx;
for (idx = 0; idx < 8; idx++) {
if (xdir[idx] == u.dx && ydir[idx] == u.dy)
return TRUE;
@@ -5063,8 +5063,7 @@ struct trap *trap;
x = trap->tx + xdir[diridx];
y = trap->ty + ydir[diridx];
if (isok(x, y)) {
if ((t = t_at(x, y)) != 0
&& is_pit(t->ttyp)) {
if ((t = t_at(x, y)) != 0 && is_pit(t->ttyp)) {
trap->conjoined |= (1 << diridx);
join_adjacent_pits(t);
} else

View File

@@ -379,8 +379,8 @@ STATIC_DCL int FDECL(new_angle, (struct rm *, unsigned char *, int, int));
* @ <-- hero --> @
*
*
* We fake the above check by only checking if the horizontal &
* vertical positions adjacent to the crosswall and T wall are
* We fake the above check by only checking if the horizontal
* & vertical positions adjacent to the crosswall and T wall are
* unblocked. Then, _in general_ we can see beyond. Generally,
* this is good enough.
*
@@ -388,8 +388,8 @@ STATIC_DCL int FDECL(new_angle, (struct rm *, unsigned char *, int, int));
* information (we're doing a top down scan in vision_recalc).
* We would need to scan once to set all IN_SIGHT and COULD_SEE
* bits, then again to correctly set the seenv bits.
* + I'm trying to make this as cheap as possible. The display &
* vision eat up too much CPU time.
* + I'm trying to make this as cheap as possible. The display
* & vision eat up too much CPU time.
*
*
* Note: Even as I write this, I'm still not convinced. There are too
@@ -877,11 +877,11 @@ int x, y;
}
/*==========================================================================*\
| |
| Everything below this line uses (y,x) instead of (x,y) --- the |
| algorithms are faster if they are less recursive and can scan |
| on a row longer. |
| |
: :
: Everything below this line uses (y,x) instead of (x,y) --- the :
: algorithms are faster if they are less recursive and can scan :
: on a row longer. :
: :
\*==========================================================================*/
/* ======================================================================= *\

View File

@@ -587,7 +587,7 @@ struct monst *summoner;
} while (summoner
&& ((attacktype(&mons[makeindex], AT_MAGC)
&& mons[makeindex].difficulty
>= mons[summoner->mnum].difficulty)
>= mons[summoner->mnum].difficulty)
|| (s_cls == S_DEMON && m_cls == S_ANGEL)
|| (s_cls == S_ANGEL && m_cls == S_DEMON)));
/* do this after picking the monster to place */