Goto elimination.
This commit is contained in:
parent
14fee6b979
commit
78f606c879
1 changed files with 44 additions and 38 deletions
76
init.c
76
init.c
|
@ -179,40 +179,44 @@ void initialise(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static int finish_init(void) {
|
static int finish_init(void) {
|
||||||
for (I=1; I<=100; I++) {
|
int i;
|
||||||
game.place[I]=0;
|
for (i=1; i<=NOBJECTS; i++) {
|
||||||
game.prop[I]=0;
|
game.place[i]=0;
|
||||||
game.link[I]=0;
|
game.prop[i]=0;
|
||||||
{long x = I+NOBJECTS; game.link[x]=0;}
|
game.link[i]=0;
|
||||||
|
{long x = i+NOBJECTS; game.link[x]=0;}
|
||||||
} /* end loop */
|
} /* end loop */
|
||||||
|
|
||||||
/* 1102 */ for (I=1; I<=LOCSIZ; I++) {
|
for (i=1; i<=LOCSIZ; i++) {
|
||||||
game.abbrev[I]=0;
|
game.abbrev[i]=0;
|
||||||
if(LTEXT[I] == 0 || KEY[I] == 0) goto L1102;
|
if (!(LTEXT[i] == 0 || KEY[i] == 0)) {
|
||||||
K=KEY[I];
|
K=KEY[i];
|
||||||
if(MOD(labs(TRAVEL[K]),1000) == 1)COND[I]=2;
|
if(MOD(labs(TRAVEL[K]),1000) == 1)COND[i]=2;
|
||||||
L1102: game.atloc[I]=0;
|
}
|
||||||
|
game.atloc[i]=0;
|
||||||
} /* end loop */
|
} /* end loop */
|
||||||
|
|
||||||
/* Set up the game.atloc and game.link arrays as described above. We'll use the DROP
|
/* Set up the game.atloc and game.link arrays as described above.
|
||||||
* subroutine, which prefaces new objects on the lists. Since we want things
|
* We'll use the DROP subroutine, which prefaces new objects on the
|
||||||
* in the other order, we'll run the loop backwards. If the object is in two
|
* lists. Since we want things in the other order, we'll run the
|
||||||
* locs, we drop it twice. This also sets up "game.place" and "fixed" as copies of
|
* loop backwards. If the object is in two locs, we drop it twice.
|
||||||
* "PLAC" and "FIXD". Also, since two-placed objects are typically best
|
* This also sets up "game.place" and "fixed" as copies of "PLAC" and
|
||||||
|
* "FIXD". Also, since two-placed objects are typically best
|
||||||
* described last, we'll drop them first. */
|
* described last, we'll drop them first. */
|
||||||
|
|
||||||
/* 1106 */ for (I=1; I<=NOBJECTS; I++) {
|
for (i=1; i<=NOBJECTS; i++) {
|
||||||
K=NOBJECTS + 1 - I;
|
K=NOBJECTS + 1 - i;
|
||||||
if(FIXD[K] <= 0) goto L1106;
|
if(FIXD[K] > 0) {
|
||||||
DROP(K+NOBJECTS,FIXD[K]);
|
DROP(K+NOBJECTS,FIXD[K]);
|
||||||
DROP(K,PLAC[K]);
|
DROP(K,PLAC[K]);
|
||||||
L1106: /*etc*/ ;
|
}
|
||||||
} /* end loop */
|
} /* end loop */
|
||||||
|
|
||||||
for (I=1; I<=NOBJECTS; I++) {
|
for (i=1; i<=NOBJECTS; i++) {
|
||||||
K=NOBJECTS + 1 - I;
|
K=NOBJECTS + 1 - i;
|
||||||
game.fixed[K]=FIXD[K];
|
game.fixed[K]=FIXD[K];
|
||||||
if(PLAC[K] != 0 && FIXD[K] <= 0)DROP(K,PLAC[K]);
|
if(PLAC[K] != 0 && FIXD[K] <= 0)
|
||||||
|
DROP(K,PLAC[K]);
|
||||||
} /* end loop */
|
} /* end loop */
|
||||||
|
|
||||||
/* Treasures, as noted earlier, are objects MINTRS through MAXTRS
|
/* Treasures, as noted earlier, are objects MINTRS through MAXTRS
|
||||||
|
@ -221,17 +225,19 @@ L1106: /*etc*/ ;
|
||||||
* when to close the cave. */
|
* when to close the cave. */
|
||||||
|
|
||||||
game.tally=0;
|
game.tally=0;
|
||||||
for (I=MINTRS; I<=MAXTRS; I++) {
|
for (i=MINTRS; i<=MAXTRS; i++) {
|
||||||
if(PTEXT[I] != 0)game.prop[I]= -1;
|
if(PTEXT[i] != 0)
|
||||||
game.tally=game.tally-game.prop[I];
|
game.prop[i]= -1;
|
||||||
|
game.tally=game.tally-game.prop[i];
|
||||||
} /* end loop */
|
} /* end loop */
|
||||||
|
|
||||||
/* Clear the hint stuff. game.hintlc[I] is how long he's been at LOC with cond bit
|
/* Clear the hint stuff. game.hintlc[i] is how long he's been at LOC
|
||||||
* I. game.hinted[I] is true iff hint I has been used. */
|
* with cond bit i. game.hinted[i] is true iff hint i has been
|
||||||
|
* used. */
|
||||||
|
|
||||||
for (I=1; I<=HNTMAX; I++) {
|
for (i=1; i<=HNTMAX; i++) {
|
||||||
game.hinted[I]=false;
|
game.hinted[i]=false;
|
||||||
game.hintlc[I]=0;
|
game.hintlc[i]=0;
|
||||||
} /* end loop */
|
} /* end loop */
|
||||||
|
|
||||||
/* Define some handy mnemonics. These correspond to object numbers. */
|
/* Define some handy mnemonics. These correspond to object numbers. */
|
||||||
|
@ -330,8 +336,8 @@ L1106: /*etc*/ ;
|
||||||
|
|
||||||
game.chloc=114;
|
game.chloc=114;
|
||||||
game.chloc2=140;
|
game.chloc2=140;
|
||||||
for (I=1; I<=NDWARVES; I++) {
|
for (i=1; i<=NDWARVES; i++) {
|
||||||
game.dseen[I]=false;
|
game.dseen[i]=false;
|
||||||
} /* end loop */
|
} /* end loop */
|
||||||
game.dflag=0;
|
game.dflag=0;
|
||||||
game.dloc[1]=19;
|
game.dloc[1]=19;
|
||||||
|
@ -373,8 +379,8 @@ L1106: /*etc*/ ;
|
||||||
game.knfloc=0;
|
game.knfloc=0;
|
||||||
game.detail=0;
|
game.detail=0;
|
||||||
game.abbnum=5;
|
game.abbnum=5;
|
||||||
for (I=0; I<=4; I++) {
|
for (i=0; i<=4; i++) {
|
||||||
{long x = 2*I+81; if(RTEXT[x] != 0)MAXDIE=I+1;}
|
{long x = 2*i+81; if(RTEXT[x] != 0)MAXDIE=i+1;}
|
||||||
} /* end loop */
|
} /* end loop */
|
||||||
game.numdie=0;
|
game.numdie=0;
|
||||||
game.holdng=0;
|
game.holdng=0;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue