Yet more gotoectomy.
This commit is contained in:
parent
c9cc36c681
commit
d48001d64c
1 changed files with 38 additions and 37 deletions
71
main.c
71
main.c
|
@ -651,11 +651,40 @@ L8000: SETPRM(1,WD1,WD1X);
|
||||||
|
|
||||||
L8: KK=KEY[game.loc];
|
L8: KK=KEY[game.loc];
|
||||||
game.newloc=game.loc;
|
game.newloc=game.loc;
|
||||||
if(KK == 0)BUG(26);
|
if(KK == 0)
|
||||||
if(K == NUL) return true;
|
BUG(26);
|
||||||
if(K == BACK) goto L20;
|
if(K == NUL)
|
||||||
if(K == LOOK) goto L30;
|
return true;
|
||||||
if(K == CAVE) goto L40;
|
if(K == BACK) {
|
||||||
|
/* Handle "go back". Look for verb which goes from game.loc to
|
||||||
|
* game.oldloc, or to game.oldlc2 If game.oldloc has forced-motion.
|
||||||
|
* K2 saves entry -> forced loc -> previous loc. */
|
||||||
|
K=game.oldloc;
|
||||||
|
if(FORCED(K))K=game.oldlc2;
|
||||||
|
game.oldlc2=game.oldloc;
|
||||||
|
game.oldloc=game.loc;
|
||||||
|
K2=0;
|
||||||
|
if(K == game.loc)K2=91;
|
||||||
|
if(CNDBIT(game.loc,4))K2=274;
|
||||||
|
if(K2 == 0) goto L21;
|
||||||
|
RSPEAK(K2);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if(K == LOOK) {
|
||||||
|
/* Look. Can't give more detail. Pretend it wasn't dark
|
||||||
|
* (though it may "now" be dark) so he won't fall into a
|
||||||
|
* pit while staring into the gloom. */
|
||||||
|
if(game.detail < 3)RSPEAK(15);
|
||||||
|
game.detail=game.detail+1;
|
||||||
|
game.wzdark=false;
|
||||||
|
game.abbrev[game.loc]=0;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if(K == CAVE) {
|
||||||
|
/* Cave. Different messages depending on whether above ground. */
|
||||||
|
RSPEAK((OUTSID(game.loc) && game.loc != 8) ? 57 : 58);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
game.oldlc2=game.oldloc;
|
game.oldlc2=game.oldloc;
|
||||||
game.oldloc=game.loc;
|
game.oldloc=game.loc;
|
||||||
|
|
||||||
|
@ -745,20 +774,6 @@ L30310: game.newloc=PLAC[TROLL]+FIXD[TROLL]-game.loc;
|
||||||
|
|
||||||
/* End of specials. */
|
/* End of specials. */
|
||||||
|
|
||||||
/* Handle "go back". Look for verb which goes from game.loc to
|
|
||||||
* game.oldloc, or to game.oldlc2 If game.oldloc has forced-motion.
|
|
||||||
* K2 saves entry -> forced loc -> previous loc. */
|
|
||||||
|
|
||||||
L20: K=game.oldloc;
|
|
||||||
if(FORCED(K))K=game.oldlc2;
|
|
||||||
game.oldlc2=game.oldloc;
|
|
||||||
game.oldloc=game.loc;
|
|
||||||
K2=0;
|
|
||||||
if(K == game.loc)K2=91;
|
|
||||||
if(CNDBIT(game.loc,4))K2=274;
|
|
||||||
if(K2 == 0) goto L21;
|
|
||||||
RSPEAK(K2);
|
|
||||||
return true;
|
|
||||||
|
|
||||||
L21: LL=MOD((labs(TRAVEL[KK])/1000),1000);
|
L21: LL=MOD((labs(TRAVEL[KK])/1000),1000);
|
||||||
if(LL != K) {
|
if(LL != K) {
|
||||||
|
@ -767,7 +782,8 @@ L21: LL=MOD((labs(TRAVEL[KK])/1000),1000);
|
||||||
if(FORCED(LL) && MOD((labs(TRAVEL[J])/1000),1000) == K)
|
if(FORCED(LL) && MOD((labs(TRAVEL[J])/1000),1000) == K)
|
||||||
K2=KK;
|
K2=KK;
|
||||||
}
|
}
|
||||||
if(TRAVEL[KK] < 0) goto L23;
|
if(TRAVEL[KK] < 0)
|
||||||
|
goto L23;
|
||||||
KK=KK+1;
|
KK=KK+1;
|
||||||
goto L21;
|
goto L21;
|
||||||
|
|
||||||
|
@ -782,21 +798,6 @@ L23: KK=K2;
|
||||||
KK=KEY[game.loc];
|
KK=KEY[game.loc];
|
||||||
goto L9;
|
goto L9;
|
||||||
|
|
||||||
/* Look. Can't give more detail. Pretend it wasn't dark (though it may "now"
|
|
||||||
* be dark) so he won't fall into a pit while staring into the gloom. */
|
|
||||||
|
|
||||||
L30: if(game.detail < 3)RSPEAK(15);
|
|
||||||
game.detail=game.detail+1;
|
|
||||||
game.wzdark=false;
|
|
||||||
game.abbrev[game.loc]=0;
|
|
||||||
return true;
|
|
||||||
|
|
||||||
/* Cave. Different messages depending on whether above ground. */
|
|
||||||
|
|
||||||
L40: K=58;
|
|
||||||
if(OUTSID(game.loc) && game.loc != 8)K=57;
|
|
||||||
RSPEAK(K);
|
|
||||||
return true;
|
|
||||||
|
|
||||||
/* Non-applicable motion. Various messages depending on word given. */
|
/* Non-applicable motion. Various messages depending on word given. */
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue