davison@drivax.UUCP (Wayne Davison) (09/12/87)
[ You can feed this file directly to patch, if you like ] I've found a couple more minor problems in world. The first showed up when I was examining the various photographs when I got the message "Tomato" and "Black Cat" instead of the appropriate photo descriptions. The cause is an incorrect "+= 64" to the photograph's obimpr[ ] when the photo is produced. Here's a context diff of the three instances: *** verbs2.c.old Sat Sep 5 22:07:43 1987 --- verbs2.c Thu Sep 10 18:37:52 1987 *************** *** 737,743 else if (oextim >= 45) { spk = 320; obloc[OPHOTO] = loc; - obimpr[OPHOTO] += 64; oextim = 8192; } /* shot the pterodactyls */ --- 737,742 ----- else if (oextim >= 45) { spk = 320; obloc[OPHOTO] = loc; oextim = 8192; } /* shot the pterodactyls */ *************** *** 785,791 else { spk = 318; obloc[FPHOTO] = loc; - obimpr[FPHOTO] += 64; } } else if (loc == 100) { if (obloc[APHOTO] != 0) --- 784,789 ----- else { spk = 318; obloc[FPHOTO] = loc; } } else if (loc == 100) { if (obloc[APHOTO] != 0) *************** *** 793,799 else { spk = 319; obloc[APHOTO] = loc; - obimpr[APHOTO] += 64; } } else spk = 117; --- 791,796 ----- else { spk = 319; obloc[APHOTO] = loc; } } else spk = 117; I have also tracked down an interesting problem in the Turbo C version that did not show up in the Un*x version. It seemed that whenever morning would arrive, I would get the "morning twilight" message, but NO room description when I move. The problem is that the output array is ONE byte too short to hold the maximum decoded output line. Turbo C apparently juggles the order of the variables, and thus the overflow became apparent. Here's the fix: *** variab.h.old Sat Sep 5 22:02:01 1987 --- variab.h Fri Sep 11 15:11:33 1987 *************** *** 12,16 EXTERN int wwflag, kmax, xindnt, slflag, more, nomor, rmove, chgact; EXTERN int eastsc, cactsc, diesc, bonus, jackpo, lpill, pbstat, decset; EXTERN int raset, dcombi, chaset, chaser, guardl; ! EXTERN char outst2[66]; EXTERN char inbuf[128]; --- 12,16 ----- EXTERN int wwflag, kmax, xindnt, slflag, more, nomor, rmove, chgact; EXTERN int eastsc, cactsc, diesc, bonus, jackpo, lpill, pbstat, decset; EXTERN int raset, dcombi, chaset, chaser, guardl; ! EXTERN char outst2[67]; EXTERN char inbuf[128]; Happy adventuring! -- Wayne Davison ...amdahl!drivax!davison =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Ziol soft ol of egrt. Stz'l ltt oy ngx eqf rteohitk oz. Oy ngx rg, hstqlt rkgh dt q fgzt zg stz dt afgv.