jcc@axis.fr (Jean-Christophe Collet) (06/09/88)
Hi folks, Me again with one Bug fixed and one (maybe) misfunctionment of rings code... 1) The doggy bug, who never got the You stop to avoid hitting #$&^%. message. (sorry if this was fixed before). It comes from the test in fight.c, now it uses the mnamelth field (monster name length) which must be initialized to zero in makemon.c . 2) If you're blinded (blinfolded) the ring of conflict will not work anymore (can't see any reason for this, but who knows..) It comes from the 'cansee' test in mon.c. cansee is a function that tests if you can see a monster. So I wrote a 'cansee2' function that tests if you should see a monster... Happy hacking, jcc ------------------------------------------------------------------------------- jcc@axis.fr ! "An artificial intelligence is better than none !" ..!mcvax!inria!axis!jcc ! "Artificial intelligence matches natural stupidity !" Collet jean-christophe ! "Objets inanimes avez vous donc une ame ?" ------------------------------------------------------------------------------- Axis Digital | 135 rue d'aguesseau | <this space left intentionaly blank> 92100 Boulogne | France | ------------------------------------------------------------------------------- ------ CUT HERE --- CUT HERE --- CUT HERE --- CUT HERE --- CUT HERE ------ *** fight.c.orig Tue May 31 15:18:37 1988 --- fight.c Tue May 31 11:21:56 1988 *************** *** 571,577 char *dname; /* added by Janet Walz (walz@mimsy) */ mtmp->mflee = 1; mtmp->mfleetim = rnd(6); ! if(*(dname = NAME(mtmp))) pline("You stop to avoid hitting %s.",dname); else pline("You stop to avoid hitting your dog."); --- 571,578 ----- char *dname; /* added by Janet Walz (walz@mimsy) */ mtmp->mflee = 1; mtmp->mfleetim = rnd(6); ! dname = NAME(mtmp); ! if(mtmp->mnamelth && *dname) pline("You stop to avoid hitting %s.",dname); else pline("You stop to avoid hitting your dog."); *** hack.c.orig Thu Jun 9 14:40:15 1988 --- hack.c Thu Jun 9 14:43:27 1988 *************** *** 821,826 y <= seehy) return(1); return(0); } #endif /* QUEST /**/ sgn(a) register int a; { --- 821,834 ----- y <= seehy) return(1); return(0); } + + cansee2(x,y) xchar x,y; { + if(u.uswallow) return(0); + if(dist(x,y) < 3) return(1); + if(levl[x][y].lit && seelx <= x && x <= seehx && seely <= y && + y <= seehy) return(1); + return(0); + } #endif /* QUEST /**/ sgn(a) register int a; { *** makemon.c.orig Tue May 31 15:15:33 1988 --- makemon.c Wed Jun 8 16:16:51 1988 *************** *** 117,122 fmon = mtmp; mtmp->m_id = flags.ident++; mtmp->data = ptr; mtmp->mxlth = ptr->pxlth; if(ptr->mlet == 'D') mtmp->mhpmax = mtmp->mhp = 80; else if(!ptr->mlevel) mtmp->mhpmax = mtmp->mhp = rnd(4); --- 117,123 ----- fmon = mtmp; mtmp->m_id = flags.ident++; mtmp->data = ptr; + mtmp->mnamelth = 0; mtmp->mxlth = ptr->pxlth; if(ptr->mlet == 'D') mtmp->mhpmax = mtmp->mhp = 80; else if(!ptr->mlevel) mtmp->mhpmax = mtmp->mhp = rnd(4); *** mon.c.orig Mon Jun 6 11:56:04 1988 --- mon.c Thu Jun 9 14:43:48 1988 *************** *** 99,105 if(mtmp->mspeed != MSLOW || !(moves%2)){ /* continue if the monster died fighting */ fr = -1; ! if(Conflict && cansee(mtmp->mx,mtmp->my) && (fr = fightm(mtmp)) == 2) continue; #ifdef STOOGES --- 103,109 ----- if(mtmp->mspeed != MSLOW || !(moves%2)){ /* continue if the monster died fighting */ fr = -1; ! if(Conflict && cansee2(mtmp->mx,mtmp->my) && (fr = fightm(mtmp)) == 2) continue; #ifdef STOOGES