This file contains the changes between the CD.01 and CD.02 gamedriver versions.
removed uid and euid.
added set_auth and query_auth.
# uid functionality is handled by a general, protected variable that is
accessed through the set_auth and query_auth functions. Calls to set_auth
are validated and modified by an apply to 'valid_set_auth' in the master
object.
valid_exec() is called with objects involved in exec.
removed cat
removed write.
removed tell_object.
# All player interaction is done through write_socket()
added set_screen_width and query_screen_width.
# Breaks lines automatically.
removed wizlist.
efun destruct() takes no arguments and destructs this_object().
efun debug("destruct", ob) destructs ob.
removed efuns interactive() and sort_array().
remove_interactive called in master.
# Is called every time a link is lost.
added efun commands() obsoletes get_localcmd().
You can no longer make local calls to undefined functions.
Socastic resets.
# The time to reset is no longer constant.
notify_fail returns 0.
super_snoop
# If you need this, read the code to find out how to use it.
create() not called in master of clones.
create() is the first function called in an object.
call_other(0, ...) is valid.
simul_efun_reload() called in master when simul_efun is updated.
Object variables will now be saved by efun save_object() and
restored with restore_object().
# 0 returned if the object no longer exists.
Added support for floats.
exec(0, ob) will kill the link to ob.
added efun object_clones().
virtual inheritance.
added #pragma no_inherit and #pragma no_clone.
added true varargs.
# func(a, b, ...) where ... = mixed *argv.
implemented call_otherv(ob, func, argarr)
argarr is treated as as many arguments as containing elements.
added the possibility to name an inherit.
inherit "foo" name;
Used as name::func(), name::var, name1::name2::var etc
previous_object takes an optional argument specifying how
far back to look.
# Note that the argument is a negative number.
call_other to array or mapping added.
arr->func(), mapping->func()
Values in mappings are used. Return values in array/mapping
default values to arguments of functions added.
# void fun(int a, int b = 3) { ....... }
Faster heart_beat
# Float in the config file.
New applies to the master object:
interpret.c: ret = apply_master_ob("valid_set_this_player", 2);
interpret.c: ret = apply_master_ob("valid_set_auth", 3);
interpret.c: ret = apply_master_ob("valid_query_ip", 3);
interpret.c: ret = apply_master_ob("valid_query_host_name", 1);
interpret.c: ret = apply_master_ob("valid_users", 1);
interpret.c: ret = apply_master_ob("valid_debug", num_arg + 1);
lex.c: ret = apply_master_ob("valid_compile_path", 3);
simulate.c: ret = apply_master_ob("valid_load", 2);
simulate.c: ret = apply_master_ob("valid_inherit", 2);
# May object A inherit object b?
simulate.c: ret = apply_master_ob("valid_resident", 1);
# Determines if #pragma RESIDENT is ok.
simulate.c: apply_master_ob("loaded_object", 2);
# Called when an object has been loaded, before create()
# Needed to give objects default uid/euid.
simulate.c: apply_master_ob("cloned_object", 2);
# Called when an object has been cloned, before create()
# Needed to give objects default uid/euid.
simulate.c: apply_master_ob("destructed_object", 1);
# Called just before object is to be destructed.
simulate.c: ret = apply_master_ob("valid_input_to", 2);
# May the object do an input_to?
simulate.c: ret = apply_master_ob("valid_commands", 2);
# May the object call the commands() efun?
simulate.c: v = apply_master_ob("modify_path", 2);
# All path parameters except compiletime paths are handled in this call.
swap.c: apply_master_ob("gamedriver_message",1);
# Passes messages from the gamedriver to the mud.