| SYNOPSIS |
| #include <sys/driver_hooks.h> |
| |
| set_driver_hook(H_CREATE_CLONE, value) |
| |
| <value> being: |
| |
| void <name> (...) |
| int <closure> ( void ) |
| int <closure> (object obj_to_init, ...) |
| |
| DESCRIPTION |
| Optional hooks to initialize a cloned object after creation. |
| Hook setting can any closure, or the name of the function |
| (static or public) to call in the object. |
| |
| If the hook is an unbound lambda closure expecting arguments, |
| it is bound to the current object and called with the created |
| object as the first argument and any further arguments from |
| the clone_object() call. If the hook is an unbound lambda |
| closure without arguments, it is bound to the object to be |
| initalized and called. If the hook is any other type of closure, |
| it is called with the created object as the first argument and |
| any further arguments from the clone_object() call. |
| |
| If the result of the closure call is a non-zero number, it is used |
| as the interval to wait before the first reset(), else the default |
| interval computed from TIME_TO_RESET is used. |
| |
| If the hook is defined as the name of an lfun in the object, |
| it is called in the object with any further arguments from the |
| clone_object() call, and any result is ignored. |
| |
| HISTORY |
| LDMud 3.2.10 allowed static functions to be given by name. |
| LDMud 3.6.5 removed the argument given for the lfun call. |
| |
| SEE ALSO |
| hooks(C), create_ob(H), create_super(H), create_lwobject(H) |