[net.games.hack] SPOILERS++ and a bug report

jcn@aplvax.UUCP (John C. Noble) (02/22/85)

Games containing engravings can be saved but not restarted.  We have
never encountered an exception to this rule.  Have you?

Robbing the vault: If you teleport into a vault, a guard will appear and
demand that you drop all your gold and request that you follow him.  
Here's what to do: drop the gold and follow him one step (he will move
away).  Back up, retrieve the gold, and catch up to the guard.  Drop
the gold (the guard will move on).  Repeat this process until reaching
the end of the hallway where the guard disappears.
-- 

					John Noble
					JHU/APL
				...decvax!harpo!seismo!umcp-cs!aplvax!jcn
				...rlgvax!cvl!umcp-cs!aplvax!jcn

play@mcvax.UUCP (Andries Brouwer) (02/23/85)

In article <837@aplvax.UUCP> jcn@aplvax.UUCP (John C. Noble) writes:
>Games containing engravings can be saved but not restarted.  We have
>never encountered an exception to this rule.  Have you?

This problem was earlier reported by Andreas Bormann, who also gave the fix.
It was corrected in version 1.0.1. The fix is repeated below.
*** hack.engrave.c (version 1.0)
--- hack.engrave.c (version 1.0.1)
***************
... several differences; the one concerning save/restore follows ...
***************
*** 224,229
  		ep = (struct engr *) alloc(sizeof(struct engr) + lth);
  		mread(fd, (char *) ep, sizeof(struct engr) + lth);
  		ep->nxt_engr = head_engr;
  		head_engr = ep;
  	}
  }
--- 268,274 -----
  		ep = (struct engr *) alloc(sizeof(struct engr) + lth);
  		mread(fd, (char *) ep, sizeof(struct engr) + lth);
  		ep->nxt_engr = head_engr;
+ 		ep->engr_txt = (char *) (ep + 1);	/* Andreas Bormann */
  		head_engr = ep;
  	}
  }
***************

perry@hp-dcde.UUCP (perry) (03/10/85)

>Games containing engravings can be saved but not restarted.  We have
>never encountered an exception to this rule.  Have you?

Yes!!  The game core-dumps while trying to restore the engravings.  We got
around it once by using adb(1) to trap the bug and continue on.  It appears
to be caused by a nil-pointer dereference (at least that's what is looked like
in the disassembled 68000).  The commands which seem to work are:

adb hack.executable
:r   (run it)
:s1  (after the restore engravings trap)
:c   (you're on your way...)

What this does to the game is anyone's guess.

Perry Scott, HP-FSD
...{allegra|ihnp4|decvax|ucbvax}!hplabs!hpfcla!perry-s