Improve documentation if the *most* obscure span of code.
This commit is contained in:
parent
6150e3be1f
commit
7281c39807
2 changed files with 12 additions and 7 deletions
14
main.c
14
main.c
|
@ -625,19 +625,23 @@ static bool playermove(token_t verb, int motion)
|
|||
for (;;) { /* L12 loop */
|
||||
for (;;) {
|
||||
game.newloc = scratchloc / 1000;
|
||||
motion = MOD(game.newloc, 100);
|
||||
long arg = MOD(game.newloc, 100);
|
||||
if (!SPECIAL(game.newloc)) {
|
||||
/* YAML N and [pct N] conditionals */
|
||||
if (game.newloc <= 100) {
|
||||
if (game.newloc == 0 || PCT(game.newloc))
|
||||
break;
|
||||
/* else fall through */
|
||||
}
|
||||
/* handles the YAML "with" clause */
|
||||
if (TOTING(motion) || (game.newloc > 200 && AT(motion)))
|
||||
/* YAML [with OBJ] clause */
|
||||
if (TOTING(arg) || (game.newloc > 200 && AT(arg)))
|
||||
break;
|
||||
/* else fall through */
|
||||
} else if (game.prop[motion] != game.newloc / 100 - 3)
|
||||
/* else fall through to check [not OBJ STATE] */
|
||||
} else if (game.prop[arg] != game.newloc / 100 - 3)
|
||||
break;
|
||||
|
||||
/* We arrive here on conditional failure.
|
||||
* Skip to next non-matching destination */
|
||||
do {
|
||||
if (travel[kk].stop)
|
||||
BUG(CONDITIONAL_TRAVEL_ENTRY_WITH_NO_ALTERATION); // LCOV_EXCL_LINE
|
||||
|
|
|
@ -150,7 +150,8 @@ typedef struct {{
|
|||
* encoding description for travel.
|
||||
*/
|
||||
#define T_DESTINATION(entry) MOD((entry).dest, 1000)
|
||||
#define T_NODWARVES(entry) ((entry).dest / 1000 == 100)
|
||||
#define T_CONDITION(entry) ((entry).dest / 1000)
|
||||
#define T_NODWARVES(entry) (T_CONDITION(entry) == 100)
|
||||
#define T_HIGH(entry) ((entry).dest)
|
||||
#define T_TERMINATE(entry) ((entry).motion == 1)
|
||||
#define L_SPEAK(loc) ((loc) - 500)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue