Subject: Umoria 5.0.13 disks mailed

From: Curtis McCauley <[email-masked]>
Date: 30 Jan 90 12:41:49 EST

To: >INTERNET:[email-masked]
I mailed you the sources either Monday or Tuesday of last week.  I can't
remember which day for sure.  I used regular mail, so it may take some time.
The mailing required two diskettes, one for the source, the other for a
compiled version of the game.  Do you have access to MPW 3.0?  You will need
it to compile.  I don't think that THINK C could be used very easily in place
of MPW.  I rely pretty heavily on the MPW environment to make the program.

While I'm thinking about it, there are a couple of principles which, if
observed in all parts of the code, would make the mac port easier and less
of a hack:

1)  Don't modify a variable which is initialized in its declaration (e.g.,
"int foo_flag = TRUE").  I had to try to find all of these in order to make
the game restartable.

2)  Don't rely on the value of a variable which is not initialized in its
declaration being zero.  For example, get_panel() forces the panel to be
redrawn the first time it is called in the course of a game because
panel_[row/col]_[min/max] are all zero.  In the mac version, when the game is
restarted, these variables have the values left over from the previous game.
I do with them what I do with the variables which fall under 1 above:  I keep
their "initialized" value in a resource and restore them each time a game is
restarted.

3)  (This follows a fortiori from 1 above.)  Don't modify a private variable
which is initialized in its declaration.  These I had to move from the source
files in which they were declared to variables.c and externs.h in order to
make them accessible for the routines which build the restart resource and
copy the saved data when a new game is started.

Admittedly, there is some inconvience involved in following these rules.  It's
a judgement call.

The version I have given you "hilights" the veins instead of using '%'.  I
didn't discover that you had given up on hilighting until after I had ported
io.c to allow it.  So I figured I'd leave it in.  I discovered after I had
sent you the game that this causes the map command to screw up because it
doesn't know how to handle -'#'.  What do you think?  Remove the hilighting
capability or fix the map command to handle it?

You might want to consider the possibility of having two mac file types for
save files:  one for living characters, another for dead characters' memories.
This way the two files will be distinguishable by their icons.  (Perhaps a
tombstone as the latter type of icon.)

Do we want to get a new application signature from Apple?  I'd prefer not to,
but there likely will be problems for people who try to keep the old version
around on their disks.  For example, I am not certain which program will come
up if the user double clicks on a save file from the finder when he has both
copies of the game on his disk.  Maybe this can be handled by simply telling
the player to throw away his old version in the mac help text.

I do not like the way the game "flows" at the end, particularly the standard
file dialog which prompts for saving the player's memories.  It seems kind of
intrusive.  I do not know how things will change when the top ten is added.
Also, there is a problem with the prompt in this dialog box.  In save_char() I
try to say "Save your memories as:" instead of "Save the game as:" when I
think the player has died or quit.  This doesn't always work right.  Sometimes
it says "memories" when it should say "game".  This always happens when ^X is
used to save the game.  I have fixed that problem since I sent you the source.
Another problem remains:  I rely upon the variable death to decide which
prompt to choose.  This will not work when the player quits the character.
Death is not set, yet only the memories will get saved, right?  In the version
you have, I have the two prompts switched in save_char().  So, you get the
"memories" prompt when you quit and the "game" prompt when you are killed.

Finally, do female dwarves really have beards?  Ugh.

-Curtis ([email-masked])