[comp.sources.games.bugs] Adventure is being REALLY dain-bramaged....

ameiba@reed.UUCP (Keith Steiger) (04/24/89)

Adventure had been doing silly things lately.  If you try to invoke it, it
prints lots of odd error messages.

First, to stderr, it says:
No adventure just now

Then to stdout it says:
Section 1
Section 2
Section 3
Section 4
Section 5
Section 6
Section 7
Section 8
Section 9
Section 10
Section 11
Section 12
Section 0
got the data.  save as "advent"? Couldn't open adventure

And, finally, to stderr, it says
Exit status 1

This is to be considered a Bad Thing.  Any ideas?

P.S. I'll post the Omega fixes after I've written my 8-12 page Humanities paper.
Ah, the joys of the freshman year at Reed College....

ag@cbmvax.UUCP (Keith Gabryelski) (04/25/89)

In article <12537@reed.UUCP> ameiba@reed.UUCP (Keith Steiger) writes:
>Adventure had been doing silly things lately.  If you try to invoke it, it
>prints lots of odd error messages.
>
>[explanation of odd stuff deleted]

The output you described happens the first time adventure is invoked:
From the makefile:

advent: ${OBJS} ${LIBC}
	${CC} -n ${CFLAGS} ${OBJS}
	rm -f $@
	echo y | ./a.out

This takes care of the first invocation of adventure (a.out) which
mungs itself to include (the default) glorkz `adventure scene'.

It actually seeks to the end of the file and tacks on glorkz,
then modifies itself to look for the text in the proper place.
Gag Barf.

The:
	echo y | ./a.out

invokes advent and replies `y' to the question "Save as advent? ".

You should have an actual adventure game after this has been done
called `advent'.

BTW, I have the diffs for the port of advent to SysV/COFF files.
Although adventure is not public domain, the diffs are.
Mostly they entail a COFF data segment dump which adventure uses
to save games.
-- 
This article is freely ditributable under the terms of the GNU License.
Keith Gabryelski                                   ag@cbmvax.commodore.com

brengle@hpcltjb.HP.COM (Tim Brengle) (04/26/89)

Keith Steiger wrote:
>Adventure had been doing silly things lately.  If you try to invoke it, it
>prints lots of odd error messages.
>
>First, to stderr, it says:
>No adventure just now

The first clue!

Talk about bringing back old memories!  I recall, in the good old days, when we
had a copy of the original source on our DecSystem 10 -- "borrowed" from
Stanford...

Advent has a bunch of interesting LOGICALs in it.  The one of interest here
tells whether the database has been read into core and "encrypted" (XORed with
"PHROG").  Once all has been prepared, advent then saved a copy of itself with
the LOGICAL set so that it won't reread the world.

>Then to stdout it says:
>Section 1
>Section 2
>Section 3
>Section 4
>Section 5
>Section 6
>Section 7
>Section 8
>Section 9
>Section 10
>Section 11
>Section 12
>Section 0
>got the data.  save as "advent"? Couldn't open adventure

Confirms the above conclusion.  There are 12 sections in the advent database,
and 0 was used as an ending sentinel.  Apparently, it did not have enough
permission to be able to write out the data files.

>And, finally, to stderr, it says
>Exit status 1

Indicating failure.  I suspect htat either someone purged the datafiles (which
substitute for in-core arrays in most implementations), or otherwise made them
unreadable to you.  Investigation is in order.

				Tim "that old advent hacker" Brengle

ralph@cc.brunel.ac.uk (Ralph Mitchell) (04/26/89)

In article <12537@reed.UUCP> ameiba@reed.UUCP (Keith Steiger) writes:
>Adventure had been doing silly things lately.  If you try to invoke it, it
>prints lots of odd error messages.
>
>First, to stderr, it says:
>No adventure just now
>
>Then to stdout it says:
>Section 1
>Section 2
>[...etc]
>got the data.  save as "advent"? Couldn't open adventure
>
>And, finally, to stderr, it says
>Exit status 1
>
>This is to be considered a Bad Thing.  Any ideas?


The original Crowther/Woods Colossal Cave adventure does that when it first
runs.  It reads the plain text database and then dumps out a compressed
database file that loads up very much faster for subsequent runs.  The idea
is that the games adminstrator runs the program to load the database, answers
a few questions as to cave opening hours, wizards magic word, time-override
word, motd, etc, and then he stores the compressed database along with the
executable.  The (rather large) plain text database can then be moved off
to some backup media, to save space.  This also has the side effect of making
the database unreadable, because of the way the text messages are compressed.

The sections are (I think):

  1 - Long description of each location
  2 - Short description of some locations
  3 - Travel table (which words to use to get from location M to locaction N)
  ?   Vocabulary
  ?   Inventory (all object including treasures)
  ?   Random messages
  ?   Special messages
  ?   Magic messages

I forget the rest, it's been a long time...  I think your problem is that
it is unable to open the file 'advent' to store the compressed database.
That never used to stop it from running, though.  Mind you, I'm going back
to the days of 150 locations, max score of 350 and the whole thing written
in Fortran IV :-)

Ralph Mitchell
-- 
 From:  Ralph Mitchell at Brunel University, Uxbridge, UB8, 3PH, UK
 JANET: ralph@uk.ac.brunel.cc	  ARPA:  ralph%cc.brunel.ac.uk@cwi.nl
 UUCP:  ...ukc!cc.brunel!ralph   PHONE: +44 895 74000 x2584
 "There's so many different worlds, so many different Suns" -- Dire Straits

pss@unh.UUCP (Paul S. Sawyer) (05/04/89)

In article <687@Terra.cc.brunel.ac.uk>, ralph@cc.brunel.ac.uk (Ralph Mitchell) writes:
> The original Crowther/Woods Colossal Cave adventure does that when it first
> runs.  It reads the plain text database and then dumps out a compressed
> database file that loads up very much faster for subsequent runs.  The idea
...
It seems to read everything into program arrays, then give you a chance
to interrupt and save the core image (ADVENT.EXE on a DEC-10, I think)


> The sections are (I think):
> 
>   1 - Long description of each location
>   2 - Short description of some locations
>   3 - Travel table (which words to use to get from location M to locaction N)
If I may fill in:
=   4   Vocabulary
    5   Object descriptions and
>   ?   Inventory (all object including treasures)

=   6   Random messages
    7   Object locations
    8   Action Defaults
    9   Liquid assets, etc.
   10   Class Messages (Your standing, from "rank amateur" to "adventurer
	grandmaster")
   11   Hint numbers

>   ?   Special messages
=  12   Magic messages
> 
> I forget the rest, it's been a long time...  I think your problem is that
> it is unable to open the file 'advent' to store the compressed database.
> That never used to stop it from running, though.  Mind you, I'm going back
> to the days of 150 locations, max score of 350 and the whole thing written
> in Fortran IV :-)
> 
> Ralph Mitchell


(And my dusty copy was FORTRAN-10 for a DEC-10, yet... B-)

So, who did the C port (keeping the run - save database load, etc), and
is it available somewhere by mail or anon. UUCP?  (I was always going
to port it myself RSN, but...  B-)

		Thanks, Paul (in a maze of twisty little passages...)

-- 
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Paul S. Sawyer              uunet!unh!unhtel!paul     paul@unhtel.UUCP
UNH Telecommunications
Durham, NH  03824-3523      VOX: 603-862-3262         FAX: 603-862-2030