home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-387-Vol-3of3.iso
/
t
/
toaster.zip
/
Compat
/
COMPAT
< prev
next >
Wrap
Text File
|
1991-12-31
|
2KB
|
59 lines
This files documents what is incompatible between game driver 2.4.5 and 3.0.
If you find anything that is not listed here, then please mail me a note
(lars@cd.chalmers.se)
To have game driver 3.0 be (almost) compatible with game driver 2.4.5,
you have to compile it with the symbol COMPAT_MODE defined (found in
config.h).
Changes:
* The efun combine_free_list() is only defined when malloc.c (no longer
supported nor supplied) is used. It may be called from /room/church.c
in the 2.4.5 mudlib. Simply remove the call !
* The file /room/void.c is no longer loaded automatically used. The
result is that when a wizard destructs a room with players in it,
they will also be destructed.
* reset() is called in a different way. Always when the object is
loaded, but then also at irregular intervals. reset() will never be called
just when the object is referenced (by a call_other() or move_object() as
in 2.4.5). reset() will be called even if noone is there. That means that
more memory is used.
* clean_up() is a function that is called now and then (as specified
in config.h). The idea is that this function should destruct the object if
the object doesn't feel it is needed (empty rooms for example). This will
make the game use less memory.
* The LPC compiler is more restrictive. Functions are not allowed to be
double defined etc.
* A symbol LPC3 will always be defined, to be used by '#ifdef LPC3' in
LPC code. The idea is to make it possible to conditionally compile code
for the 2.4.5 game driver or 3.0 game driver.
* A symbol COMPAT_FLAG will be defined when in compatibility mode.
* New efuns: version(), member_array() ...
* A lot of hardcoded tests in the game driver has been moved to a new file,
/obj/master.c. An example of this file is provided. It may have to be
edited.
* A lot of new constants has to be defined correctly in config.h and Makefile.
However, there is a script, 'configure', that will help you configure
Makefile.
* call_out() now saves the value from this_player(). That means that a 'write'
will reach the correct person when done from call_out(). The problem is
that say() not will reach the player that initiated the call_out().
* In 2.4.5 you could move_object(this_object(), this_object()). Nothing would
actually be moved and no error was generated. In 3.0, an error will be
generated.
* The usage of the escape character '\' now works as expected.