blob: 52a46058b4649dc6c2dff584a0519d9543d5b813 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001SYNOPSIS
2 #include <sys/driver_hooks.h>
3
4 set_driver_hook(H_CREATE_OB, value)
5
6 <value> being:
7
Zesstra85136122021-05-08 20:32:01 +02008 void <name> ( void )
MG Mud User88f12472016-06-24 23:31:02 +02009 int <closure> ( void )
10 int <closure> (object obj_to_init)
11
12DESCRIPTION
Zesstradaf2c672025-08-02 15:59:17 +020013 Optional hooks to initialize an explicitly loaded object/blueprint
14 after creation. Hook setting can be any closure, or the name of
15 the function (static or public) to call in the object.
MG Mud User88f12472016-06-24 23:31:02 +020016
Zesstradaf2c672025-08-02 15:59:17 +020017 If the hook is an unbound lambda closure expecting an argument,
18 it is bound to the current object and called with the created
19 object as argument. If the hook is an unbound lambda closure
20 without arguments, it is bound to the object to be initalized
21 and called. If the hook is any other type of closure, it is called
22 with the created object as argument.
MG Mud User88f12472016-06-24 23:31:02 +020023
24 If the result of the closure call is a non-zero number, it is used
25 as the interval to wait before the first reset(), else the default
26 interval computed from TIME_TO_RESET is used.
27
28 If the hook is defined as the name of an lfun in the object,
Zesstra85136122021-05-08 20:32:01 +020029 it is called in the object with no argument and any result
MG Mud User88f12472016-06-24 23:31:02 +020030 is ignored.
31
32HISTORY
33 LDMud 3.2.10 allowed static functions to be given by name.
Zesstra85136122021-05-08 20:32:01 +020034 LDMud 3.6.5 removed the argument given for the lfun call.
MG Mud User88f12472016-06-24 23:31:02 +020035
36SEE ALSO
Zesstra85136122021-05-08 20:32:01 +020037 hooks(C), create_super(H), create_clone(H), create_lwobject(H)