
NOTE:	you can run the simulator without a displayer just by not
	creating a displayer object

simulator/sim-obj*:	excl:ignore-errors
lisp-req.lisp:		defun neq
displayer/simple*:	defun make-window
			defun dm-redraw
everything about make-displayer:	redid - see below

******************** 
Changes made by John
********************

03/13 5:30pm 	change make-full-fuel-drum to have optional argument id
		on file truck-support.lisp

------------ DD 3/20
************ superceded 3/24 (i undid a lot of what i had did before :-(

    **	Moved over Steve's new defsystem file.
	Now the command (load-simulator &args)
		1) creates a new defsystem (based on args)
		2) loads (or compiles) this system

	With no arguments, it loads the system with the simple
	displayer.  Other arguments would be, e.g:

		(load-simulator :displayer 'graphic)
		(load-simulator :operation 'compile)
	
    **	Made make-displayer somewhat consistent, I hope.
	Both displayers export a make-displayer function,
	which looks like:

		(make-displayer truck world &rest info)

	in the simple displayer, info is ignored, in the graphic one,
	it is passed to make-dm-at-corner, and should be of the
	form:
		&key (x default-x) (y default-y) (display "")

	Note that make-displayer does *not* set the displayer
	of the truck.

    **	I turned around some of the dependencies to reflect what
	they really are (lisp's dependencies == imported class
	definitions, not imported code).  This allowed me to
	fix a problem which required that displayer use class truck.
	It should also fix the operations.fasl/XLIB problem
	(if it doesn't, you can always just delete operations.fasl,
	and retry the load).

    **	I've started on the interface & make-command-processor stuff.
	The file simulator/interface.lisp contains the beginnings of
	an interface to replace toplevel.lisp & manual.lisp.
	In command-processor/simple-command-processor.lisp, is a
	simple version to do approximately what process-commands
	did before; this can be loaded with the load-simulator
	option :command-processor 'simple  (it is not the default).

	One thing I've done differently is add the truck status
	commands to the interface (e.g. truck-time, truck-fuel).
	So I've changed (truck-speed fast) to (truck-set-speed fast)
	in order to have it not conflict with (truck-speed).

    **	So, current status:  both displayers compile, load, and
	at least minimally run.
	The new interface code gets loaded, but you don't have to
	use it (it is still quite buggy).

------------ DD 3/26

	The most obvious bugs in the new interface have been
	ironed out.  I've still left it not-default, and I still
	haven't removed any of the old interface code.

    **  I've changed one aspect of this interface, which is
	that (run-simulator ) does not create a displayer.
	The reason for this is that if an error occurs, it
	would be nice to be able to start (run-simualator)
	again without necessarily creating a new displayer.
	(indeed, this is almost necessary with the graphic
	displayer, since it is rather fussy about how it is
	started up).

    **	This means that you must again 1) create the displayer,
	and 2) assign the displayer to the truck.
	(Sorry to keep going back and forth about this.)

	Glitches and comments:

	There are two command interpreters in the old code; one
	updates the world by 1 if the result of attempting a
	command is nil, the other does not.  Which is correct?

	How are things like weather supposed to be determined?
	(Should they be added to the interface?)

	Truck-move is a little wierd, since it regards movement
	of 0 distance as "normal".  I think it ought to return
	'truck-cant-move in all such cases?

	In the category of general wierdness: an object changed its
	name?  a fuel drum, obj-1 (so displayed on displayer) was
	moved to a bay.  At a later point it was observed to be obj-3?

	And how are you supposed to see inside a box?

;********************************************************
;  Hanks 3/27

Working on making the refresh work, also lots of local 
rewrites and moving code around:
   -  moved generic method declarations for dm-* to the displayer
      directory & changed system file accordingly
   -  created new file for generic methods in graphic displayer & changed
      system file
   -  rewrote the whole truck displayer file.  was too ugly for words


;********************************************************
;  Denise 4/1

    **	I have now installed RCS directories in the main, displayer,
	graphic and simulator directories.  I have installed initial
	revisions of all lisp files in these directories, and put
	myself, steve and john on the list of those allowed to change
	the files.  So to modify a lisp file, you must first check it
	out:
		co -l <filename>

	When you have finished your changes, check it in again

		ci -u <filename>

	For more documentation, man rcsintro.  If you have a bound
	unix manual set, there is a complete guide in PS1 (the yellow
	one), chapter 13.

    **	I have removed the old interface code frop toplevel.lisp and
	manual.lisp -- these are now completely supplanted by
	interface.lisp  (the old code is still around in case
	someone wants to pull out one of the fance "report generators").
	I have also made the 'simple command-processor the default
	in simulator-system.lisp.

    **	I tried making lisp images again, but it didn't work
	====>	but I looked at the code, and I think I know what
	====>	is wrong!  it is building a table with *hostnames*
	====>	in it, so if you build the lisp on one pmax, and
	====>	then try to use it on another, it won't work.
	====>	so there may be a fix: manually build the hosttable
	====>	to contain all hosts?  (or modify pathnames code
	====>	itself to understand that hostnames are irrelevant?)

    **	current status: truck-move doesn't work; 
		fixed two more small bugs; now I get a "cannot highlight"
		error, and it doesn't seem that the truck is going
		anywhere?
	lots of graphics things don't work nicely.


