[comp.sources.bugs] dungeon travel bug and fix

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