Reformat actions.c, no code changes.
This commit is contained in:
parent
54d22714d9
commit
9ecbfa2ca8
1 changed files with 121 additions and 123 deletions
244
actions.c
244
actions.c
|
@ -174,7 +174,6 @@ static int vbreak(token_t obj)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int brief(void)
|
static int brief(void)
|
||||||
/* Brief. Intransitive only. Suppress long descriptions after first time. */
|
/* Brief. Intransitive only. Suppress long descriptions after first time. */
|
||||||
{
|
{
|
||||||
|
@ -970,10 +969,9 @@ static int wave(token_t obj)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This stuff was broken off as part of an effort to get the main program
|
/* We're called with a number that says what label the caller wanted
|
||||||
* to compile without running out of memory. We're called with a number
|
* to "goto", and we return a similar label number for the caller to
|
||||||
* that says what label the caller wanted to "goto", and we return a
|
* "goto".
|
||||||
* similar label number for the caller to "goto".
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int action(FILE *input, long STARTAT, long verb, long obj)
|
int action(FILE *input, long STARTAT, long verb, long obj)
|
||||||
|
@ -981,99 +979,99 @@ int action(FILE *input, long STARTAT, long verb, long obj)
|
||||||
* unless verb is "say", which snarfs arbitrary second word.
|
* unless verb is "say", which snarfs arbitrary second word.
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
int kk;
|
int kk;
|
||||||
switch(STARTAT) {
|
switch(STARTAT) {
|
||||||
case 4000: goto L4000;
|
case 4000: goto L4000;
|
||||||
case 4090: goto L4090;
|
case 4090: goto L4090;
|
||||||
case 5000: goto L5000;
|
case 5000: goto L5000;
|
||||||
}
|
}
|
||||||
BUG(99);
|
BUG(99);
|
||||||
|
|
||||||
L4000:
|
L4000:
|
||||||
SPK=ACTSPK[verb];
|
SPK=ACTSPK[verb];
|
||||||
if (WD2 > 0 && verb != SAY) return(2800);
|
if (WD2 > 0 && verb != SAY) return(2800);
|
||||||
if (verb == SAY)obj=WD2;
|
if (verb == SAY)obj=WD2;
|
||||||
if (obj > 0) goto L4090;
|
if (obj > 0) goto L4090;
|
||||||
|
|
||||||
/* Analyse an intransitive verb (ie, no object given yet). */
|
/* Analyse an intransitive verb (ie, no object given yet). */
|
||||||
|
|
||||||
switch (verb-1) {
|
switch (verb-1) {
|
||||||
case 0: /* CARRY */ return carry(INTRANSITIVE);
|
case 0: /* CARRY */ return carry(INTRANSITIVE);
|
||||||
case 1: /* DROP */ return(8000);
|
case 1: /* DROP */ return(8000);
|
||||||
case 2: /* SAY */ return(8000);
|
case 2: /* SAY */ return(8000);
|
||||||
case 3: /* UNLOC */ return lock(verb, INTRANSITIVE);
|
case 3: /* UNLOC */ return lock(verb, INTRANSITIVE);
|
||||||
case 4: /* NOTHI */ return(2009);
|
case 4: /* NOTHI */ return(2009);
|
||||||
case 5: /* LOCK */ return lock(verb, INTRANSITIVE);
|
case 5: /* LOCK */ return lock(verb, INTRANSITIVE);
|
||||||
case 6: /* LIGHT */ return light(INTRANSITIVE);
|
case 6: /* LIGHT */ return light(INTRANSITIVE);
|
||||||
case 7: /* EXTIN */ return extinguish(INTRANSITIVE);
|
case 7: /* EXTIN */ return extinguish(INTRANSITIVE);
|
||||||
case 8: /* WAVE */ return(8000);
|
case 8: /* WAVE */ return(8000);
|
||||||
case 9: /* CALM */ return(8000);
|
case 9: /* CALM */ return(8000);
|
||||||
case 10: /* WALK */ return(2011);
|
case 10: /* WALK */ return(2011);
|
||||||
case 11: /* ATTAC */ return attack(input, verb, obj);
|
case 11: /* ATTAC */ return attack(input, verb, obj);
|
||||||
case 12: /* POUR */ return pour(obj);
|
case 12: /* POUR */ return pour(obj);
|
||||||
case 13: /* EAT */ return eat(INTRANSITIVE);
|
case 13: /* EAT */ return eat(INTRANSITIVE);
|
||||||
case 14: /* DRINK */ return drink(obj);
|
case 14: /* DRINK */ return drink(obj);
|
||||||
case 15: /* RUB */ return(8000);
|
case 15: /* RUB */ return(8000);
|
||||||
case 16: /* TOSS */ return(8000);
|
case 16: /* TOSS */ return(8000);
|
||||||
case 17: /* QUIT */ return quit(input);
|
case 17: /* QUIT */ return quit(input);
|
||||||
case 18: /* FIND */ return(8000);
|
case 18: /* FIND */ return(8000);
|
||||||
case 19: /* INVEN */ return inven(obj);
|
case 19: /* INVEN */ return inven(obj);
|
||||||
case 20: /* FEED */ return(8000);
|
case 20: /* FEED */ return(8000);
|
||||||
case 21: /* FILL */ return fill(obj);
|
case 21: /* FILL */ return fill(obj);
|
||||||
case 22: /* BLAST */ return blast();
|
case 22: /* BLAST */ return blast();
|
||||||
case 23: /* SCOR */ return vscore();
|
case 23: /* SCOR */ return vscore();
|
||||||
case 24: /* FOO */ return bigwords(WD1);
|
case 24: /* FOO */ return bigwords(WD1);
|
||||||
case 25: /* BRIEF */ return brief();
|
case 25: /* BRIEF */ return brief();
|
||||||
case 26: /* READ */ return read(input, INTRANSITIVE);
|
case 26: /* READ */ return read(input, INTRANSITIVE);
|
||||||
case 27: /* BREAK */ return(8000);
|
case 27: /* BREAK */ return(8000);
|
||||||
case 28: /* WAKE */ return(8000);
|
case 28: /* WAKE */ return(8000);
|
||||||
case 29: /* SUSP */ return suspendresume(input, false);
|
case 29: /* SUSP */ return suspendresume(input, false);
|
||||||
case 30: /* RESU */ return suspendresume(input, true);
|
case 30: /* RESU */ return suspendresume(input, true);
|
||||||
case 31: /* FLY */ return fly(INTRANSITIVE);
|
case 31: /* FLY */ return fly(INTRANSITIVE);
|
||||||
case 32: /* LISTE */ return listen();
|
case 32: /* LISTE */ return listen();
|
||||||
case 33: /* ZZZZ */ return reservoir();
|
case 33: /* ZZZZ */ return reservoir();
|
||||||
}
|
}
|
||||||
BUG(23);
|
BUG(23);
|
||||||
|
|
||||||
/* Analyse a transitive verb. */
|
/* Analyse a transitive verb. */
|
||||||
|
|
||||||
L4090: switch (verb-1) {
|
L4090: switch (verb-1) {
|
||||||
case 0: /* CARRY */ return carry(obj);
|
case 0: /* CARRY */ return carry(obj);
|
||||||
case 1: /* DROP */ return discard(obj, false);
|
case 1: /* DROP */ return discard(obj, false);
|
||||||
case 2: /* SAY */ return say();
|
case 2: /* SAY */ return say();
|
||||||
case 3: /* UNLOC */ return lock(verb, obj);
|
case 3: /* UNLOC */ return lock(verb, obj);
|
||||||
case 4: /* NOTHI */ return(2009);
|
case 4: /* NOTHI */ return(2009);
|
||||||
case 5: /* LOCK */ return lock(verb, obj);
|
case 5: /* LOCK */ return lock(verb, obj);
|
||||||
case 6: /* LIGHT */ return light(obj);
|
case 6: /* LIGHT */ return light(obj);
|
||||||
case 7: /* EXTI */ return extinguish(obj);
|
case 7: /* EXTI */ return extinguish(obj);
|
||||||
case 8: /* WAVE */ return wave(obj);
|
case 8: /* WAVE */ return wave(obj);
|
||||||
case 9: /* CALM */ return(2011);
|
case 9: /* CALM */ return(2011);
|
||||||
case 10: /* WALK */ return(2011);
|
case 10: /* WALK */ return(2011);
|
||||||
case 11: /* ATTAC */ return attack(input, verb, obj);
|
case 11: /* ATTAC */ return attack(input, verb, obj);
|
||||||
case 12: /* POUR */ return pour(obj);
|
case 12: /* POUR */ return pour(obj);
|
||||||
case 13: /* EAT */ return eat(obj);
|
case 13: /* EAT */ return eat(obj);
|
||||||
case 14: /* DRINK */ return drink(obj);
|
case 14: /* DRINK */ return drink(obj);
|
||||||
case 15: /* RUB */ return rub(obj);
|
case 15: /* RUB */ return rub(obj);
|
||||||
case 16: /* TOSS */ return throw(input, verb, obj);
|
case 16: /* TOSS */ return throw(input, verb, obj);
|
||||||
case 17: /* QUIT */ return(2011);
|
case 17: /* QUIT */ return(2011);
|
||||||
case 18: /* FIND */ return find(obj);
|
case 18: /* FIND */ return find(obj);
|
||||||
case 19: /* INVEN */ return find(obj);
|
case 19: /* INVEN */ return find(obj);
|
||||||
case 20: /* FEED */ return feed(obj);
|
case 20: /* FEED */ return feed(obj);
|
||||||
case 21: /* FILL */ return fill(obj);
|
case 21: /* FILL */ return fill(obj);
|
||||||
case 22: /* BLAST */ return blast();
|
case 22: /* BLAST */ return blast();
|
||||||
case 23: /* SCOR */ return(2011);
|
case 23: /* SCOR */ return(2011);
|
||||||
case 24: /* FOO */ return(2011);
|
case 24: /* FOO */ return(2011);
|
||||||
case 25: /* BRIEF */ return(2011);
|
case 25: /* BRIEF */ return(2011);
|
||||||
case 26: /* READ */ return read(input, obj);
|
case 26: /* READ */ return read(input, obj);
|
||||||
case 27: /* BREAK */ return vbreak(obj);
|
case 27: /* BREAK */ return vbreak(obj);
|
||||||
case 28: /* WAKE */ return wake(obj);
|
case 28: /* WAKE */ return wake(obj);
|
||||||
case 29: /* SUSP */ return(2011);
|
case 29: /* SUSP */ return(2011);
|
||||||
case 30: /* RESU */ return(2011);
|
case 30: /* RESU */ return(2011);
|
||||||
case 31: /* FLY */ return fly(obj);
|
case 31: /* FLY */ return fly(obj);
|
||||||
case 32: /* LISTE */ return(2011);
|
case 32: /* LISTE */ return(2011);
|
||||||
case 33: /* ZZZZ */ return reservoir();
|
case 33: /* ZZZZ */ return reservoir();
|
||||||
}
|
}
|
||||||
BUG(24);
|
BUG(24);
|
||||||
|
|
||||||
/* Analyse an object word. See if the thing is here, whether we've got a verb
|
/* Analyse an object word. See if the thing is here, whether we've got a verb
|
||||||
* yet, and so on. Object must be here unless verb is "find" or "invent(ory)"
|
* yet, and so on. Object must be here unless verb is "find" or "invent(ory)"
|
||||||
|
@ -1082,40 +1080,40 @@ L4090: switch (verb-1) {
|
||||||
* the bottle or urn or as a feature of the location. */
|
* the bottle or urn or as a feature of the location. */
|
||||||
|
|
||||||
L5000: obj=K;
|
L5000: obj=K;
|
||||||
if (!HERE(K)) goto L5100;
|
if (!HERE(K)) goto L5100;
|
||||||
L5010: if (WD2 > 0) return(2800);
|
L5010: if (WD2 > 0) return(2800);
|
||||||
if (verb != 0) goto L4090;
|
if (verb != 0) goto L4090;
|
||||||
SETPRM(1,WD1,WD1X);
|
SETPRM(1,WD1,WD1X);
|
||||||
RSPEAK(255);
|
RSPEAK(255);
|
||||||
return(2600);
|
return(2600);
|
||||||
|
|
||||||
L5100: if (K != GRATE) goto L5110;
|
|
||||||
if (game.loc == 1 || game.loc == 4 || game.loc == 7)K=DPRSSN;
|
|
||||||
if (game.loc > 9 && game.loc < 15)K=ENTRNC;
|
|
||||||
if (K != GRATE) return(8);
|
|
||||||
L5110: if (K == DWARF && ATDWRF(game.loc) > 0) goto L5010;
|
|
||||||
if ((LIQ(0) == K && HERE(BOTTLE)) || K == LIQLOC(game.loc)) goto L5010;
|
|
||||||
if (obj != OIL || !HERE(URN) || game.prop[URN] == 0) goto L5120;
|
|
||||||
obj=URN;
|
|
||||||
goto L5010;
|
|
||||||
L5120: if (obj != PLANT || !AT(PLANT2) || game.prop[PLANT2] == 0) goto L5130;
|
|
||||||
obj=PLANT2;
|
|
||||||
goto L5010;
|
|
||||||
L5130: if (obj != KNIFE || game.knfloc != game.loc) goto L5140;
|
|
||||||
game.knfloc= -1;
|
|
||||||
SPK=116;
|
|
||||||
return(2011);
|
|
||||||
L5140: if (obj != ROD || !HERE(ROD2)) goto L5190;
|
|
||||||
obj=ROD2;
|
|
||||||
goto L5010;
|
|
||||||
L5190: if ((verb == FIND || verb == INVENT) && WD2 <= 0) goto L5010;
|
|
||||||
SETPRM(1,WD1,WD1X);
|
|
||||||
RSPEAK(256);
|
|
||||||
return(2012);
|
|
||||||
|
|
||||||
|
|
||||||
/* Statement numbers in this section are 8000 for intransitive verbs, 9000 for
|
|
||||||
* transitive, plus ten times the verb number. Many intransitive verbs use the
|
|
||||||
* transitive code, and some verbs use code for other verbs, as noted below. */
|
|
||||||
|
|
||||||
|
L5100:
|
||||||
|
if (K != GRATE) goto L5110;
|
||||||
|
if (game.loc == 1 || game.loc == 4 || game.loc == 7)K=DPRSSN;
|
||||||
|
if (game.loc > 9 && game.loc < 15)K=ENTRNC;
|
||||||
|
if (K != GRATE) return(8);
|
||||||
|
L5110:
|
||||||
|
if (K == DWARF && ATDWRF(game.loc) > 0) goto L5010;
|
||||||
|
if ((LIQ(0) == K && HERE(BOTTLE)) || K == LIQLOC(game.loc)) goto L5010;
|
||||||
|
if (obj != OIL || !HERE(URN) || game.prop[URN] == 0) goto L5120;
|
||||||
|
obj=URN;
|
||||||
|
goto L5010;
|
||||||
|
L5120:
|
||||||
|
if (obj != PLANT || !AT(PLANT2) || game.prop[PLANT2] == 0) goto L5130;
|
||||||
|
obj=PLANT2;
|
||||||
|
goto L5010;
|
||||||
|
L5130:
|
||||||
|
if (obj != KNIFE || game.knfloc != game.loc) goto L5140;
|
||||||
|
game.knfloc= -1;
|
||||||
|
SPK=116;
|
||||||
|
return(2011);
|
||||||
|
L5140:
|
||||||
|
if (obj != ROD || !HERE(ROD2)) goto L5190;
|
||||||
|
obj=ROD2;
|
||||||
|
goto L5010;
|
||||||
|
L5190:
|
||||||
|
if ((verb == FIND || verb == INVENT) && WD2 <= 0) goto L5010;
|
||||||
|
SETPRM(1,WD1,WD1X);
|
||||||
|
RSPEAK(256);
|
||||||
|
return(2012);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue