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