billr@tekred.TEK.COM (Bill Randle) (09/18/87)
Several of you have reported a problem with moving in the recently posted dungeon game. I have finally tracked it down to a sign extension problem in the FINDXT routine. The following diff should fix this problem (it did for me). There will be an official patch posted to comp.sources.games pretty soon, so this is just to get you going early if you want. If you find any other problems, please let me know. Apparently there were some System V dependencies (unknown to me) in the code and Makefile. They will also be fixed in the official bugfix posting. -Bill Randle Tektronix, Inc. billr@tekred.TEK.COM P.S. Parts 11 & 12 that were truncated at many sites have been reposted to comp.sources.games. ---------------------------------------------- *** dso3.F.orig Thu Sep 17 13:15:28 1987 --- dso3.F Fri Sep 18 09:03:35 1987 *************** *** 23,29 **** 100 I=TRAVEL(XI) C !GET ENTRY. XROOM1=and(I,XRMASK) ! XTYPE=and((and(I,not(XLFLAG))/XFSHFT),XFMASK)+1 GO TO (110,120,130,130),XTYPE C !BRANCH ON ENTRY. CALL BUG(10,XTYPE) --- 23,31 ---- 100 I=TRAVEL(XI) C !GET ENTRY. XROOM1=and(I,XRMASK) ! c mask to 16-bits to get rid of sign extension problems with 32-bit ints ! XXXFLG = and(not(XLFLAG), 65535) ! XTYPE=and((and(I,XXXFLG)/XFSHFT),XFMASK)+1 GO TO (110,120,130,130),XTYPE C !BRANCH ON ENTRY. CALL BUGdbosed "s/g