[comp.archives] [mud...] LPmud 2.2

lars@myab.se (Lars Pensj|) (08/25/90)

Archive-name: lpmud/v2.2
Original-posting-by: lars@myab.se (Lars Pensj|)
Original-subject: LPmud 2.2
Archive-site: alcazar.cd.chalmers.se [129.16.48.100]
Archive-directory: /pub
Reposted-by: emv@math.lsa.umich.edu (Edward Vielmetti)

LPmud 2.2 is now available by anonymous ftp from alcazar.cd.chalmers.se
(129.16.48.100) in pub.

These are the changes to 2.2 from 2.1:

1.  Arrays: allocate(), sizeof(), wizlist

    An array of size n can be allocated with 'allocate(n)'. You can't declare
    arrays. The function sizeof() returns the size of an array. The array
    pointer can be stored in variables, and sent as arguments (as any
    type). They can then be used by indexing:
    'vec=allocate(3); vec[0] = 8; ...'
    You don't deallocate arrays explicitly, they are deallocated when the
    last reference is removed. An array element can have a value of any type,
    even pointer to array (thus enabling multidimensional arrays).

2.  query_ip_number() can now take an optional object as argument. It can
    then be used to find out if an object is interactive. Link dead players
    are not interactive.

3.  ctime() takes the value from time() and returns a nice string with the
    local time and date.

4.  disable_commands() Opposite to enable_commands().

5.  The monster.talk.c has been replaced with monster.c, which has
    the chat and talk functions replaced with arrays. The old monster.talk.c
    remains for compatibility. If you have problems with the game being too
    big, change monster.talk.c so that the old chat feature is disabled,
    and thus forcing wizards to use the new method with arrays. The new
    monster.c is not compatible with the old monster.talk.c.

6.  predicate functions for all types: int(), objectp(), stringp() and
    pointerp().

7.  Bug fixed in malloc.c as well as much better speed. The statistics given
    by the command 'malloc' is now correct.

8.  users() returns a vector of all interactive objects. The command 'who' and
    'people' use that.

9.  cat() returns success status and takes more optional arguments (start, end).


    been defined by using lot of good ideas from both Fizban and Anders Ripa.
    A problem is that wizards always want to make the "perfect" tool. Such a
    tool usually uses more than 50 Kbytes of memory, and if it is autoloaded,
    you won't need many wizards until 1 Mbyte has been "wasted". This new
    tool will hopefully satisfy wizards. It is also an attempt to standardize,
    so that players that have wizards on more than one mud have it more easy.

11. add_action() takes 2 arguments, and checks that the object defining the
    command is present.

12. New syntax: ob->fun(args), which is equivalent to
    'call_other(ob, "fun", args)'.

13. Fixed a bug in '::'. The bug was when the inheritance depth was bigger
    than 2, and one of the above bottom objects used '::'.

14. 'sell all' fixed in the shop.

15. String handling has been optimized, using a flag 'constant' in the
    value nodes. There are now two types of 'struct value', the new one
    being used by arrays and global variables in objects which don't need
    the pointer to next struct value, and thus reducing memeory need.

20. 'ls' is now builtin and much faster.

21. The call of combine_free_list() frequency is dependant on the length.
    It is important that it is called now and then. Normally, this is done
    from the church.

22. Aggregate initializations of arrays:
    ({ 1, 2, "apa", ob, 2 })
    Will construct an array of length 5, initialized.

23. file_name() gives the file name of an object.

24. extract() extracts strings out of strings.

25. tell_room() can now also take an object file name as argument.

26. command() has second optional argument, the object to execute the
    command. This object must be living. This new feature makes it possible
    to force any wizard to do anything, but abusements are of course illegal.
    The good things with this are big. It is now possible to have objects
    that defines abbreviations for you as example. It is also possible
    to construct a "team" object, that enables players to join with a leader
    into a team, and follow him automatically (not implemented yet).

27. A "graceful" shutdown when the game runs out of memory. The players will
    be given 4 minutes of warning by a monester called
    Armageddon (obj/shut.c). This is called automatically from malloc.c.

28. Swapping is "almost" bug free now :-)  We use it with Genesis.


With regards, Lars
lars@myab.se
-- 
    Lars Pensj|
    lars@myab.se