X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=actions1.c;h=252fa5bd9e56385b060b56b607e92beeb0a70dae;hb=1e2e24f4d51bfc2df43a10780b1e8f2acc5c8952;hp=280a4f79a99a56c428e8454c288cf2257fd58d38;hpb=c3add5c2066face7535108706bb86dc41971ad9f;p=open-adventure.git diff --git a/actions1.c b/actions1.c index 280a4f7..252fa5b 100644 --- a/actions1.c +++ b/actions1.c @@ -23,29 +23,49 @@ int action(FILE *input, long STARTAT) { BUG(99); L4000: VERB=K; - game.spk=ACTVERB[VERB]; + game.spk=ACTSPK[VERB]; if(WD2 > 0 && VERB != SAY) return(2800); if(VERB == SAY)OBJ=WD2; if(OBJ > 0) goto L4090; /* Analyse an intransitive verb (ie, no object given yet). */ - switch (VERB-1) { case 0: goto L8010; case 1: return(8000); case 2: - return(8000); case 3: goto L8040; case 4: return(2009); case 5: goto L8040; - case 6: goto L8070; case 7: goto L8080; case 8: return(8000); case - 9: return(8000); case 10: return(2011); case 11: goto L9120; case 12: - goto L9130; case 13: goto L8140; case 14: goto L9150; case 15: - return(8000); case 16: return(8000); case 17: goto L8180; case 18: - return(8000); case 19: goto L8200; case 20: return(8000); case 21: - goto L9220; case 22: goto L9230; case 23: goto L8240; case 24: - goto L8250; case 25: goto L8260; case 26: goto L8270; case 27: - return(8000); case 28: return(8000); case 29: goto L8300; case 30: - goto L8310; case 31: goto L8320; case 32: goto L8330; case 33: - goto L8340; } -/* TAKE DROP SAY OPEN NOTH LOCK ON OFF WAVE CALM - * WALK KILL POUR EAT DRNK RUB TOSS QUIT FIND INVN - * FEED FILL BLST SCOR FOO BRF READ BREK WAKE SUSP - * RESU FLY LSTN ZZZZ */ + switch (VERB-1) { + case 0: goto L8010; /* CARRY */ + case 1: return(8000); /* DROP */ + case 2: return(8000); /* SAY */ + case 3: goto L8040; /* UNLOC */ + case 4: return(2009); /* NOTHI */ + case 5: goto L8040; /* LOCK */ + case 6: goto L8070; /* LIGHT */ + case 7: goto L8080; /* EXTIN */ + case 8: return(8000); /* WAVE */ + case 9: return(8000); /* CALM */ + case 10: return(2011); /* WALK */ + case 11: goto L9120; /* ATTAC */ + case 12: goto L9130; /* POUR */ + case 13: goto L8140; /* EAT */ + case 14: goto L9150; /* DRINK */ + case 15: return(8000); /* RUB */ + case 16: return(8000); /* TOSS */ + case 17: goto L8180; /* QUIT */ + case 18: return(8000); /* FIND */ + case 19: goto L8200; /* INVEN */ + case 20: return(8000); /* FEED */ + case 21: goto L9220; /* FILL */ + case 22: goto L9230; /* BLAST */ + case 23: goto L8240; /* SCOR */ + case 24: goto L8250; /* FOO */ + case 25: goto L8260; /* BRIEF */ + case 26: goto L8270; /* READ */ + case 27: return(8000); /* BREAK */ + case 28: return(8000); /* WAKE */ + case 29: goto L8300; /* SUSP */ + case 30: goto L8310; /* RESU */ + case 31: goto L8320; /* FLY */ + case 32: goto L8330; /* LISTEN */ + case 33: goto L8340; /* ZZZZ */ + } BUG(23); /* Analyse a transitive verb. */ @@ -442,11 +462,11 @@ L8270: for (I=1; I<=100; I++) { L9270: if(DARK(0)) goto L5190; if(OBJTXT[OBJ] == 0 || PROP[OBJ] < 0) return(2011); - if(OBJ == OYSTER && !CLSHNT) goto L9275; + if(OBJ == OYSTER && !game.clshint) goto L9275; PSPEAK(OBJ,OBJTXT[OBJ]+PROP[OBJ]); return(2012); -L9275: CLSHNT=YES(input,192,193,54); +L9275: game.clshint=YES(input,192,193,54); return(2012); /* Break. Only works for mirror in repository and, of course, the vase. */ @@ -499,12 +519,12 @@ L8305: DATIME(I,K); SAVWDS(game.knfloc,game.limit,LL,game.lmwarn,LOC,game.newloc,game.numdie); SAVWDS(OBJ,game.oldlc2,game.oldloc,game.oldobj,game.panic,game.saved,game.setup); SAVWDS(game.spk,game.tally,game.thresh,game.trndex,game.trnluz,game.turns,OBJTXT[OYSTER]); - SAVWDS(VERB,WD1,WD1X,WD2,game.wzdark,ZZWORD,OBJSND[BIRD]); - SAVWDS(OBJTXT[SIGN],CLSHNT,game.novice,K,K,K,K); + SAVWDS(VERB,WD1,WD1X,WD2,game.wzdark,game.zzword,OBJSND[BIRD]); + SAVWDS(OBJTXT[SIGN],game.clshint,game.novice,K,K,K,K); SAVARR(ABB,LOCSIZ); SAVARR(ATLOC,LOCSIZ); SAVARR(DLOC,6); - SAVARR(DSEEN,6); + SAVARR(game.dseen,6); SAVARR(FIXED,100); SAVARR(HINTED,HNTSIZ); SAVARR(HINTLC,HNTSIZ); @@ -515,7 +535,7 @@ L8305: DATIME(I,K); SAVWRD(KK,K); if(K != 0) goto L8318; K=NUL; - ZZWORD=RNDVOC(3,ZZWORD-MESH*2)+MESH*2; + game.zzword=RNDVOC(3,game.zzword-MESH*2)+MESH*2; if(KK > 0) return(8); RSPEAK(266); exit(0); @@ -562,7 +582,7 @@ L8330: game.spk=228; RSPEAK(IABS(K)); if(K < 0) return(2012); game.spk=0; -L8332: SETPRM(1,ZZWORD-MESH*2,0); +L8332: SETPRM(1,game.zzword-MESH*2,0); /* 8335 */ for (I=1; I<=100; I++) { if(!HERE(I) || OBJSND[I] == 0 || PROP[I] < 0) goto L8335; PSPEAK(I,OBJSND[I]+PROP[I]);