Codebase list scottfree / HEAD
HEAD

Tree @HEAD (Download .tar.gz)

This is my second serious production edition of the Scott Adams game
player. It needs curses (or an equivalent - eg pccurses. A non-curses
port should be easy too), and an ANSI C compiler.

This code has been tested on a SUN3(SunOS 4.1.1) and on a Pyramid 9820 in
the att universe. 

Installation
------------

Type 'make'. You will need a system with curses and an ANSI C compiler (eg
gcc).

Operation
---------

ScottFree reads and executes TRS80 format Scott Adams datafiles. It is
possible to run other formats either by writing a loader for that format or
a convertor to TRS80 format. Remember the Scott Adams games are still
copyright - you need to buy or obtain the games legally for use with this
interpreter. Some Scott Adams material is available fairly freely . Dec 1980
Byte contains a game driver and also a program to write a version of Pirate
Adventure. A PC-SIG disk contains Adventureland in BASIC with a database in
DATA statements. The file 'Definition' in this archive explains the TRS80
format as I believe it exists. Much of this definition comes from P.D.Doherty
who provided a lot of information.

ScottFree should run all the Scott Adams, Brian Howarth and some other
Adventure International games. (Gremlins and Supergran have a compressed
action table,  Robin Of Sherwood and Seas Of Blood have both a compressed
action table and compressed text.  Seas Of Blood won't run straight off due
to the bizarre Fighting Fantasy (tm) combat system built into it.)

Command Options
---------------

ScottFree [flags] <databasename> [save-file]

Specifying save-file causes a restore of the save to take place.

The flags are

-d	Debugging info on load
-i	Generate 'I am' type messages (default)
-y	Generate 'You are', 'You are carrying' type messages for games that
	use these instead (eg Robin Of Sherwood)
-s	Generate authentic Scott Adams driver light messages rather than
	other driver style ones (Light goes out in %d turns..)
-t	Generate TRS80 style display (terminal width is 64 characters; a
	line <-----------------> is displayed after the top stuff; objects
	have periods after them instead of hyphens


Statement Of Copyright/License
------------------------------

This software is supplied subject to the GNU software copyleft (version 2)
available from GNU or for FTP from prep.ai.mit.edu. All material in this
program was developed by Swansea University Computer Society without
disassembly of any other game drivers, only of game databases as permitted
by EEC law (for purposes of compatibility). It is your responsibility not
to transfer this software to any country where such reverse engineering is
not permitted. This software license does not include any rights with
regards to the Scott Adams games themselves. These games are copyright and
you should obtain them from a legal source.

The following information sources were used to produce the game driver:

PC-SIG disk of Adventureland:
	This gives the Adventureland database as well as about 80% of the
full interpreter system. The core of the gamedriver was written using this
as a reference to the game code.

Byte Dec 1980:
	This contains a good article about Scott and his games, as well as
a TRS80 driver and datafile writer for the 'Pirate Adventure' game. This
filled in some more answers as well as bits of the TRS80 data format

P.D.Doherty:
	Many thanks go to him for figuring out a load more actions, testing,
hunting for games which used unknown actions and for writing a Scott Adams
database to readable text convertor. This helped resolve several other
actions.


Changes 1.14
------------

o	Bit flag 16 support
o	Lamp behaviour flag '-p' for prehistoric databases which don't use
	bit 16
o	Light out messages don't appear when the lamp is elsewhere.
o	Automatic get/drop has synonym support.

Changes 1.13
------------

o	Darkness is now done like the actual Scott driver seems to do it,
	using bit flag 15. Fixes problems in The Count
o	Display problem with 4.4BSD curses fixed (added a wmove() call)
o	Can't TAKE ALL in a dark room. 

Changes 1.12a
-------------

o	Merged in some fixes by Steve Rice <sarice@edaca.ingr.com>
	(Variables for terminal size, wrong wraparound due to bug in Look(),
	TRS80 style option)
o	Updated PC version.

Changes 1.12
------------

o	Merged in some fixes by Antoine Sabot-Durand <sabot@fr.dgac.stna7>
	(Redraw in dark rooms, darkness flag testing, Action 74 bug).
	'Pirate Adventure' should now work.
o	Added some comments
o	Added a makefile
o	Fixed several missing redraws.

Changes 1.11
------------

o	Major bug in file reading routines fixed. This should now read
	_ALL_ the Scott Adams files without you having to add spaces.
o	Knows about the use of // in item texts and correctly handles it.
o	Uses unsigned char for the location of an item so that it correctly
	behaves like the spectrum editions on wrapping. This makes a lot
	more of the Brian Howarth material work.
o	Rewrote the awful OutBuf() function to be a bit neater.
o	Messed up the neat OutBuf() function by supporting old BSD curses
	too. Linux people and 386BSD people should now be in luck, as
	should any old BSD4.x users.
o	TAKE ALL/DROP ALL. Emulates Brian Howarth driver including the
	number of moves bug. 
	NOTE:: TAKE ALL/DROP ALL count as one move. In some games that
	give limited moves for things this makes it easier or enables
	you to do things you should not be able to. The Brian Howarth
	games all have this feature and should be fine.
o	Started work on an Xview version - don't expect it just yet.
o	Fixed a major cockup in the execution rules for lines. Robin Of
	Sherwood lets you out of the cell without killing you at last.
o	Place item -> location failed with some compilers (most), now
	made portable.
o	WAIT action refreshes display first
o	Redraws any pending display changes before the status table 
o	Option flags tidied up.

Changes 1.10
------------

o	Action 75 added (dunno how it was missed)
o	Corrected second Byte year reference

Changes 1.9
-----------

o	Inventory short cut
o	Swap room flag/location now fixed. This should make Claymorgue work
	correctly (ha!).
o	Corrected Byte reference from 1990 to 1980.

Changes 1.8
-----------

o	Move location action sets the redraw flag
o	Driver ignored last line of table (now fixed)
o	Save/Load implemented.
o	N,E,S,W,U,D shortcuts added. I will add the item ones once I've
	loaded a few more fake saves into the genuine Brian Howarth driver
	to figure out how it works.

To Do
-----

o	Tidy up TAKE ALL/DROP ALL. They match the Spectrum version - 
	which appears to be buggy. Also note that using GET ALL / DROP ALL
	with older games _MAY_BREAK_THINGS_. Maybe this should be a flagged
	option.