X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=main.c;h=27a7a090c8a0a05b51f3899d70f55aac16b1d471;hb=dc6a5751ed04ff15103c9852c8dc7427298b6945;hp=5a3f2002683de89e3c78aad525adb756b0a447a0;hpb=bd35d4713988825c8a244c9367734037d5655969;p=open-adventure.git diff --git a/main.c b/main.c index 5a3f200..27a7a09 100644 --- a/main.c +++ b/main.c @@ -171,7 +171,7 @@ static void checkhints(FILE *cmdin) for (int hint=1; hint<=HNTMAX; hint++) { if (game.hinted[hint]) continue; - if (!CNDBIT(game.loc,hint+10)) + if (!CNDBIT(game.loc,hint+HBASE)) game.hintlc[hint]= -1; ++game.hintlc[hint]; /* Come here if he's been long enough at required loc(s) for some @@ -334,7 +334,7 @@ static bool dwarfmove(void) * means dwarves won't follow him into dead end in maze, but * c'est la vie. They'll wait for him outside the dead * end. */ - if (game.loc == 0 || FORCED(game.loc) || CNDBIT(game.newloc,3)) + if (game.loc == 0 || FORCED(game.loc) || CNDBIT(game.newloc,NOARRR)) return true; /* Dwarf activity level ratchets up */ @@ -348,7 +348,7 @@ static bool dwarfmove(void) * the 5 dwarves. If any of the survivors is at loc, * replace him with the alternate. */ if (game.dflag == 1) { - if (!INDEEP(game.loc) || (PCT(95) && (!CNDBIT(game.loc,4) || PCT(85)))) + if (!INDEEP(game.loc) || (PCT(95) && (!CNDBIT(game.loc,NOBACK) || PCT(85)))) return true; game.dflag=2; for (int i=1; i<=2; i++) { @@ -384,15 +384,15 @@ static bool dwarfmove(void) if (kk != 0) do { game.newloc=MOD(labs(TRAVEL[kk])/1000,1000); - /* Have we avoided a dwarf enciounter? */ - bool avoided = (game.newloc > 300 || + /* Have we avoided a dwarf encounter? */ + bool avoided = (SPECIAL(game.newloc) || !INDEEP(game.newloc) || game.newloc == game.odloc[i] || (j > 1 && game.newloc == TK[j-1]) || j >= 20 || game.newloc == game.dloc[i] || FORCED(game.newloc) || - (i == PIRATE && CNDBIT(game.newloc,3)) || + (i == PIRATE && CNDBIT(game.newloc,NOARRR)) || labs(TRAVEL[kk])/1000000 == 100); if (!avoided) { TK[j++] = game.newloc; @@ -524,12 +524,12 @@ static bool playermove(FILE *cmdin, token_t verb, int motion) game.oldloc=game.loc; K2=0; if (motion == game.loc)K2=91; - if (CNDBIT(game.loc,4))K2=274; + if (CNDBIT(game.loc,NOBACK))K2=274; if (K2 == 0) { for (;;) { LL=MOD((labs(TRAVEL[KK])/1000),1000); if (LL != motion) { - if (LL <= 300) { + if (!SPECIAL(LL)) { if (FORCED(LL) && MOD((labs(TRAVEL[KEY[LL]])/1000),1000) == motion) K2=KK; } @@ -607,7 +607,7 @@ static bool playermove(FILE *cmdin, token_t verb, int motion) for (;;) { game.newloc=LL/1000; motion=MOD(game.newloc,100); - if (game.newloc <= 300) { + if (!SPECIAL(game.newloc)) { if (game.newloc <= 100) { if (game.newloc == 0 || PCT(game.newloc)) break; @@ -628,10 +628,10 @@ static bool playermove(FILE *cmdin, token_t verb, int motion) } game.newloc=MOD(LL,1000); - if (game.newloc <= 300) + if (!SPECIAL(game.newloc)) return true; if (game.newloc <= 500) { - game.newloc=game.newloc-300; + game.newloc=game.newloc-SPECIALBASE; switch (game.newloc) { case 1: @@ -919,7 +919,7 @@ static bool do_command(FILE *cmdin) * wants to go. If so, the dwarf's blocking his way. If * coming from place forbidden to pirate (dwarves rooted in * place) let him get out (and attacked). */ - if (game.newloc != game.loc && !FORCED(game.loc) && !CNDBIT(game.loc,3)) { + if (game.newloc != game.loc && !FORCED(game.loc) && !CNDBIT(game.loc,NOARRR)) { for (i=1; i<=NDWARVES-1; i++) { if (game.odloc[i] == game.newloc && game.dseen[i]) { game.newloc=game.loc;