  Changes from old NF to new NF -- by Mateese
-------------------------------------------------------------------------------
The introduction of the native mode caused a lot of changes, in the
LPC-language as well as in the mudlib.
The LPC changes are documented in the libs 'native' article.
This one concentrates on the changes in the mudlib. Most probably I'll
miss a lot of the small changes...

 - The most important change is the use of 'Properties' (see also
   /doc/concepts/properties). Properties may be thought of as 'public
   variables' of objects. In former times, access to the variables of
   objects needed to be done via uncountable query_/set_-funs. Nowadays
   the variables may be set via a single  SetProp(<name>, <value>) call, 
   or queried via a single  QueryProp(<name>). The <name> is given as
   a normal string.
   This makes it possible to give objects new variables on the fly.
   Imagine a worm which shall visit every accessible room, but only
   once. In old NF it would has to leave a marking object ('wormdirt')
   in every room it visited to find out where it has been before.
   Now, the worm can just 'room->SetProp("Worm", "was here")' to mark
   the room, and check it with 'if (room->QueryProp("Worm"))'.
   The gain is reduced memory usage and a greater flexibility.
   The price is a greater access time. Therefore, properties may be
   'builtin' the objects: to do this, define 'Query<name>()' and
   'Set<name>()' in the object (in the worm example this would mean
   'QueryWorm()' and 'SetWorm()'. It is rule, that most of the
   properties listed in /sys/properties.h HAS to be implemented as
   builtins, and may be accessed directly, since they are used often.

 - The mud's landscape is now diverted into 'domains': each domain is
   built around a defined 'theme' and administrated by a lord and some
   vice lords. It is no longer possible to create a castle and place
   it somewhere! If you want to create rooms for players, you have to
   join a domain! Of course you are free to join several domains,
   but... IF you join a domain, BUILD something for it!
   There are some details left to decide upon (connections between
   domains, starting domain for new players).

 - The player object has undergone substantial changes, though the
   most are under the surface. It is planned to implement races, but
   this has not gone beyond this wish.
   There are now two levels per player: the 'Game Level' and the 'Wizard
   Level'. The wizlevel determines the rights of a wizard: wizlevel 0 are 
   normal players, wizlevel > 20 learning wizards, wizards, domain mongers,
   arches and gods (see /sys/wizlevels or /doc/concepts/levels),
   wizlevel in 1..19 are 'Super-Players' who want to play on.
   The wizlevel can be queried with the efun 'query_wiz_level(player)',
   or by calling "/secure/master"->get_wiz_level(player_name)'.
   The 'Game Level' is given to normal players as part of the game, and
   just a property (P_LEVEL = "level") of the player object. Every
   domain and guild can freely decide on the player's level.
   The classification of players (new, advanced, nearly-wiz) is now
   done by the experience only.
   It'll be possible to die from hunger or thirst.
   
 - There are new wiz-features in the player. Try 'cat /doc/w/filealiases',
   'cat /doc/w/mv' and 'cat /doc/w/type'.

 - The mudlib-directories have changed a lot. The most important are:
   /secure : Everything sensitive (master, login) is placed here.
   /sys    : include files needed for the standard objects
   /std    : the new standard objects, ready for inheritance.
   /d      : all domain-directories are placed here
   /d/archwiz        : the archwiz domain, contains the admin tower and
                       NF-City
   /d/<domain>/common: the common objects/rooms of a domain.
   /d/<domain>/<wiz> : the special objects/rooms of a domain's wizard
   /players/<wiz> : a wizards private directory. You can store objects
                    and non-public-rooms here.
   /room     : all rooms for general use are stored here
   /obj      : all objects for general use are stored here
   /obj/tool : this dir contains wiztools for public use
   /obj/lib  : some function-libs for inheritance in your objects
   /doc          : the known documentation - mostly outdated :-(
   /doc/efun     : docs for all implemented efuns
   /doc/concepts : docs for the basic concepts
   /doc/std      : the docs for the /std-objects
   /doc/lib      : the docs for /obj/lib's

 - For those who want to run a test-NF at home: the necessary files
   can be found in /ftp/public/SERVER. Note that these are meant for
   test-NFs only.

 - There is a new boardsystem. Read /doc/concepts/news.
 - There is a new mailsystem. Read /doc/concepts/mail.

 - If you are back after long absence and want to return into
   creation, this is what you might want to do:
   - clone /obj/tool/xtool : this is Hyp's Wiztool. It's good and
       includes a quicktyper.
   - clone /mail/port_box  : the new portable mailbox, by Orcgrimm.
   - clone /obj/tool/newsmatrix : the portable newsreader, if you want it.
   - read /doc/*/*
   - wander through the tower and read the boards.
   - look at all dirs of interest for you.
   - join a domain.
   - start building.
   - don't hesitate to ask questions (though sometimes people are too
     busy to answer immediately).
   But please be aware that the /std-mudlib is not finished yet,
   though we made some great progresses these days, e.g. health, races
   and money (and all depending objects) are still missing. There may
   still be bugs in it. Some subtle changes may still happen
   (hopefully we don't need to do any more big changes).
   So if you stumble over one of these facts - write a bug report, and
   then carry on building.
