MUD: - the 'Show Caches' menu entry now also shows the cached tiles - made the 'can't find tile' message print the correct tile number - added support for "MUDEDITOR" environment variable - added '-s' CLI flag and "EDITORSTACK" icon tooltype - bring screens to front if receive ^F signal - change icon code to use graphics.library blitter calls instead of reading/writing the bitmaps directly. This will likely slow down icon operations on basic 68000 machines, but should also make MUD more compatible with graphics boards. - added some verbose messages on startup, so that first-time MUD users have some positive feedback. - added Log Mode menu item and corresponding functionality - made the "GetString" code not set 'ok' to false if the user enters an empty string. That way scenario code can allow the explicit deletion of strings that way. - changed colour #26 from 0xf1f (magenta) to 0xf99 (flesh) - fixed a bug in the file cache code - fixed a minor bug in the sound playing code - it was opening "audio.device" repeatedly - increased the serial transmit/receive timeouts for data transfers - they were too short at 300 bps for the 'streets' effects. (As if anyone still uses 300 baud!) SMUD: - added support for "MUDEDITOR" environment variable - added '-s' CLI flag MUDServ, mud.library: - added the '~' (bitwise negation) operator (I don't know why I left it out in the first place - I needed it for the castle/tile code) - made MUDServ refuse to run if it detects an improperly flushed database - made 'ThingCharacter' work for inactive characters as well as active ones - fixed pretty-printing to indent properly when a continued line starts with a string constant - sped up the AmigaMUD programming language in the cases of passing a string constant or local variable to a builtin function - switched to ^E to abort execution, instead of ^F - added '-E' CLI flag and "IGNORECTRLE" tooltype - added '-M' CLI flag - the 'DestroyCharacter' builtin now does very little - it only removes the character from the 'Characters' table. Doing any more than that leaves dangling "owner" pointers in the database. Note that this change makes the database format of V1.0 incompatible with V0.9 - DO NOT TRY TO USE A V0.9 DATABASE WITH THE NEW V1.0 MUDSERV. - giving MUDServ a small memory limit didn't work when it was compiling the scenario - it would use nearly 2 Meg regardless of the limit given. This memory limiting now works as it should, but it will slow down MUDServ considerably. - turned off some internal consistency checks in both MUDServ and mud.library. This gives a noticeable speed increase. - fixed a wierd problem that very occasionally cancelled a character 'After' action when it shouldn't have. - fixed a tiny memory leak - the contents of a 'note' statement were not freed when an in-memory copy of a proc was freed. - fixed a rare problem that occurred only when MUDServ was forced to run with a very small cache and very little memory. - fixed small internal memory leaks in CreateTable and CreateGrammar - fixed an internal memory leak when adding string properties to things - fixed a small internal memory leak in Say and Pose - added 'SetParent' builtin - added the MUDServ message window, and the -Q/QUIET options to suppress it - append a '/' to the database path if it doesn't end in ':' or '/' - small changes to parsing, so that having both Verb0 and Verb1 with the same verb and separator word now works better. MUDAgent: - added the '-l' flag to log a bit of information - switched to ^E to abort run, instead of ^F - added the '-E' flag and "IGNORECTRLE" tooltype to ignore ^E signals - made MUDAgent allow the full international character set when in text mode. - fixed a small memory stomping bug - increased the data timeouts, as in MUD Scenario: - *lots* of cleanup - split util.m into util1.m and util2.m - used the 'replace' command to allow forward referencing of MUD functions, rather than storing a pointer to them in a thing - added the 'backup' command for the administrator to use to do one-shot or time scheduled safe backups of the database - got rid of the nested idle handlers - replaced them with a list of them, which is executed when a character goes idle - added the concept of a "reset handler". These can be registered with the TimeKeeper machine, so that they are executed when the MUD is restarted. The main use of these is to reset areas and characters left in an undesireable state in a backup taken when the system is running. These reset handlers do things like removing any character from SysAdmin's Office. - used the list of "active handlers", triggered when the character logs in, to do similar cleanup of the character required because the system is running from a backup made when the character was in the middle of doing something. Some of these handlers inform the character of what has happened (in others it is just an internal state-change that the user won't notice). - allow many verbs to operate better when the object is not directly present, but is for sale in a store - allow "look in" for things other than normal containers - add verbs "lock" and "empty" - improve handling of positions (stand in, sit on, etc.) - change the way monster names are output in many circumstances - add birds to the park - fixed check on PlayPen to not let any machines in - changed the way the "random" build-action conditional works - fixed a bug which caused the doors room to crash sometimes - use the new functionality of GetString to allow the user to delete lots of strings in the button-build code - add the use of images for directions, on characters, and on objects - allow the setting of images via the button-build code - renamed colour "magenta" to colour "flesh" - added routine "CancelAllDoAfters" and used it when dropping something in the Garbage Room. Don't want torches, lamps, etc. doing things after they have been destroyed. - added "colours" command to point to the colour-related commands MUDShut, MUDFlush - complain if cannot find MUDServ message port