Changes in TinyMUCK 2.0

- @prog -- see "forth.ref" and "technical.doc"
- MUCKER bit must be set to use the above.
- sanity has been updated to just ignore programs when checking.
  It should eventually be updated to check program owners and such.
- m/ directory has been added to distribution --- this directory is
  used to contain MUF programs.  Hence, restart also "backs up"
  that directory by moving it to m.old before starting.
  This directory may contain junk.
- Changes in look, examine to reflect program changes.
- Change to trigger to reflect it.
- Change to game.c to test for interactiveness and act accordingly.
- Rest of changes concentrated in edit.c, compile.c, interp.c, inst.h
- wiz.c changed to update @stat command.
- do_get had to be added.
- concentrator "added"  Note that conc.c has been slightly changed
  from the original to run on nyquist.
  Same thing applies to interface3.c (it differs from Robert's
  original distributions)  Especially note that writelog has become
  #defined to printf.  (I don't know where it was originally.)
- #ifdefs for MIPS (Dec3100) stations.
- TRUENAMES modifications no longer show names when you look at a
  linkable player.

Changes in TinyMUCK 2.0.1

- Countless changes, see RCS log for info.
- This is primarily a bug fix release, though it also does several
  design changes that should be hidden.

Changes in TinyMUCK 2.1

- New commands: @boot, @edit, @list, @recycle (with -DRECYCLE), @pcreate
  (with -DREGISTRATION)
- We now have true recycling of objects, courtesy of jmattson@ucsd.edu,
  adding a new type, TYPE_GARBAGE, which is considered first
  before @create makes a new object.
- Extended WHO list for Wizards.  Shows players' numbers, flags, times,
  IP address, and game location.
- Exits may be set DARK by Wizards, to suppress the standard `has arrived.'
  and `has left.' messages.  This should cut down on noise in areas with
  osucc'ed exits.
- interp.c got a major makeover, thanks to jmattson@ucsd.edu and
  russ@uokmax.ecn.uoknor.edu.  Many #ifdefs replaced with a single #def.
  Thanks much.
- Changes in MUF:
- Command line arguments from russ@uokmax.ecn.uoknor.edu.  Many changes
  for the exit/action matching algorithm, enabling replacement of system
  commands as well.
- TRIGGER variable.
- RMATCH primitive.
- OWNER primitive.
- Six flag-reading primitives, JUMPP, CHOWNP, LINKP, DARKP, TEMPLEP, and
  STICKYP.  See MUF.manual (formerly forth.ref) for complete details.

In the version of MUF used by Muck 2.1, two MUF program words were changed
which will make many old MUF programs incompatible.  While this is somewhat
inconvenient, the changes save a lot of code space and CPU time, and also
make the language easier to understand since there is less swapping.
We felt that it would be better to make this change now, while there aren't
too many MUF programs out there, than to live with MUF being much less
efficient than it easily could be.

Those changes were:

The order of arguments to the "!" word have been reversed.
The order of arguments to "explode" have been reversed.

The MUF documentation has been updated to reflect the changes.

Changes in TinyMUCK 2.2

- New command: @trace.
- New feature: environments.  Allows global commands and allows builders
  to create their own theme areas.
- Bugs fixed: @boot, a few memory leaks, problems with the COMPRESS
  option, many more...
- Property list strings are now compressed with the COMPRESS option.
- Player name and primitive hash tables added for speed.
- Wizard WHO list has been changed again.  Options are numeric IP
  addresses and all player flags displayed, or hostnames minus player flags.
- Improved logging: logfiles are created in a separate directory and commands
  are kept separate from important system messages.
- Concentrator version 2.0 added.
- Another makeover for interp.c, including many speed enhancements.
  Thanks once again to jmattson@ucsd.edu.
- Changes in MUF:
- Programs can be triggered via the text fields of objects: the desc, succ,
  fail, and drop may run programs rather than display text to the user.
- Macros may be added by MUCKERs to a global pool usable by all
  programmers.  See edit help; while in the editor type 'h'.
- COPYOBJ bug fixed; COPYOBJ now deletes the pointer to actions the new
  object inherits from the old.
- Changed primitives: RMATCH handles players and objects correctly, in
  addition to matching appropriate exits/actions.  The six flag primitives
  from 2.1.1, JUMPP, CHOWNP, LINKP, DARKP, TEMPLEP, and STICKYP have
  been replaced by one FLAG? primitive.  FLAG? is able to read any flag
  the MUCK site has been set up with.  All other P primitives, for
  example ROOMP, PLAYERP, have been changed to question marks:
  ROOM?, PLAYER?.  CONTENTS no longer returns a list of things but
  the dbref of the first thing in the object's contents.  This list
  is then traversed by NEXT.
- New primitives: ELSE, OVER, PICK, PUT, ROT, ROTATE, GETLINK, PRONOUN_SUB,
  STRNCMP, STRCUT, STRLEN, INSTR, RINSTR, OK?, TIME, EXECUTE, EXITS,
  NEXT.

MUF primitives are described in detail in the MUF programmer's reference,
MUF.manual.  The quick reference should be available on-site as helpfile
forth.ref.

-- Tinymage version 0.9
- Tons of things added. TONS of things. anyways, it's *mostly* mush
  compatible. if you find anything that screws up, mail to
  mtymp01@ux.acs.umn.edu.
[ basically, alot of MUSH kludged on top of TinyMUCK 2.2 ]

Changes in TinyMAGE 1.1

- Bugs fixed: flags, @halt, @ps, overrun buffer in unparse_boolexp() and
  pronoun_subtitute(), MUF editor 'v' option, kill, give, and more...
- New commands: @aconnect, @aleave, @leave, @oconnect, @odisconnect,
  @odescribe, @oleave, @switch, @odesc
- Improved commands: @find and @owned now take optional additional optional
  arguments.
- New primitives: SYSTIME, STRFTIME, AWAKE?, ONLINE (was USERS in 1.0),
  SETPROP (was ADDPROP)
- Removed primitives: DESC, FAIL, OFAIL, SUCC, OSUCC, DROP, ODROP, SETDESC,
  SETFAIL, SETOFAIL, SETSUCC, SETOSUCC, SETDROP, SETODROP, ADDPROP.  These
  can all be taken care of with SETPROP now.
- New features: alphabetized properties, more informative MUF debugger,
  player macros
- Changed the rules on the MUF moveto primitive
- player?, exit?, etc. now return 0 if the object is garbage
- Desc, Fail, Succ, Drop, Ofail, Osucc, Odrop all converted to
  attributes (special properties)
- Changed permissions on the moveto primitive
- New attributes may only be added by Wizards.  Otherwise, they are treated
  as normal read-only properties.
- Changed configuration options in config.h.  Added a few to params.h.
- Reorganization of flags:  CONTROLLER changed to use the ARCHITECT (Abode)
  flag.  ENTER_OK and OPAQUE eliminated.  OPAQUE changed to MURKY, good only
  on rooms and things.
- Patched up security holes in 1.0.
- Property structure changed back to that of 2.2, except that properties
  can only hold strings now.  (No integer properties.)
- Players can be @chowned by wizards.
- @pcreate is available to any wizard regardless of registration.
- Changed the db format, partly due to the change related to attributes.
- Eliminated unused functions, cleaned up the code.
- Eliminated the reading of older db formats, except for TinyMUCK 2.2 and
  TinyMAGE 1.0.
- Added documentation lacking in 1.0.

Changes in TinyMAGE 1.1.1
- fixed several bugs in interp.c, including the pronoun_eval MUF prim
- fixed bug in @find
- corrected a coding error in config.h, added some typecasting in game.c
  and interface.c to supress compiler warnings
- added MUF primitives: connections, concount, condbref, conhost,
  conidle, contime, conboot, stringncmp, prog, depth
- made attributes writeable only by wizards
- cosmetic changes to the messages returned by @set, @field, @[attr]
- corrected some mistakes in the documentation

Changes in TinyMAGE 1.1.2
- added new parameter in params.h to allow setting of pennies for newly
  created players
- rooms no longer set Jump_Ok when built
- whenever a player creates an object, the player's "It" attribute gets
  set to the dbref of the new object
- added in Chupchup's compile-on-demand patch
- added Aconnect on #0 which affects all connecting players
- fixed a bug in the MUF primitive getpropval
- allow "me" and #<dbref> to be legitimate args to @owned, @find, @stats
- allow @link <object>=me
- changed parse_up to work with HP Apollo cc  :\
- fixed a bug in @set (removing all the properties of an object with
   @set <object>=:  would corrupt the db)
- HAVENED flag no longer applies to the built-in pager
- allow owners to @force objects they own
- took out the call to pronoun_sub in do_pose and do_say. Since all triggered
  actions already go through pronoun_sub once, it was redundant to call it
  again.
- changed the rules of control (controls() in predicates.c)