fix github issue #38 - indentation vs `if {}'

Fixes #38

In 3.6.1, some code in mfind0(detect.c) was mis-indented in a way
which suggested that the grouping within braces might not be what was
intended, and that was right--there was a pair of braces missing when
compared with older versions of the code involved.  A previous patch
(post-#38) had changed the indentation to match the surrounding braces
without really addressing the issue.  But it turned out not to make
any difference either way since mundetected is only used by hiders
and eels.  This reorganizes the relevant code to make it simpler to
understand, I hope.
This commit is contained in:
PatR
2018-10-18 17:15:42 -07:00
parent f856837335
commit d2ae45984e

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 detect.c $NHDT-Date: 1522891623 2018/04/05 01:27:03 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.81 $ */
/* NetHack 3.6 detect.c $NHDT-Date: 1539908137 2018/10/19 00:15:37 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.83 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2018. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1539,44 +1539,41 @@ mfind0(mtmp, via_warning)
struct monst *mtmp;
boolean via_warning;
{
xchar x = mtmp->mx,
y = mtmp->my;
int x = mtmp->mx, y = mtmp->my;
boolean found_something = FALSE;
if (via_warning && !warning_of(mtmp))
return -1;
if (mtmp->m_ap_type) {
seemimic(mtmp);
find:
exercise(A_WIS, TRUE);
if (!canspotmon(mtmp)) {
if (glyph_is_invisible(levl[x][y].glyph)) {
/* Found invisible monster in a square which already has
* an 'I' in it. Logically, this should still take time
* and lead to a return 1, but if we did that the player
* would keep finding the same monster every turn.
*/
return -1;
} else {
You_feel("an unseen monster!");
map_invisible(x, y);
}
} else if (!sensemon(mtmp))
You("find %s.",
mtmp->mtame ? y_monnam(mtmp) : a_monnam(mtmp));
return 1;
}
if (!canspotmon(mtmp)) {
if (mtmp->mundetected
&& (is_hider(mtmp->data) || mtmp->data->mlet == S_EEL))
if (via_warning) {
Your("warning senses cause you to take a second %s.",
Blind ? "to check nearby" : "look close by");
display_nhwindow(WIN_MESSAGE, FALSE); /* flush messages */
}
found_something = TRUE;
} else if (mtmp->mundetected
&& (is_hider(mtmp->data) || mtmp->data->mlet == S_EEL)) {
if (via_warning) {
Your("warning senses cause you to take a second %s.",
Blind ? "to check nearby" : "look close by");
display_nhwindow(WIN_MESSAGE, FALSE); /* flush messages */
}
mtmp->mundetected = 0;
newsym(x, y);
goto find;
found_something = TRUE;
}
if (found_something) {
if (!canspotmon(mtmp) && glyph_is_invisible(levl[x][y].glyph))
return -1; /* Found invisible monster in square which already has
* 'I' in it. Logically, this should still take time
* and lead to `return 1', but if we did that the hero
* would keep finding the same monster every turn. */
exercise(A_WIS, TRUE);
if (!canspotmon(mtmp)) {
map_invisible(x, y);
You_feel("an unseen monster!");
} else if (!sensemon(mtmp)) {
You("find %s.", mtmp->mtame ? y_monnam(mtmp) : a_monnam(mtmp));
}
return 1;
}
return 0;
}