blob: 9b2dc8bb38f68052df88edc6166a8a7814ffaa17 [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_SUPER, 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
13 Optional hooks to initialize a blueprint which is loaded by
14 inheritance after creation.
Zesstra7ea4a032019-11-26 20:11:40 +010015
Zesstradaf2c672025-08-02 15:59:17 +020016 Hook setting can be any closure, or the name of the function
17 (static or public) to call in the object.
MG Mud User88f12472016-06-24 23:31:02 +020018
Zesstradaf2c672025-08-02 15:59:17 +020019 If the hook is an unbound lambda closure expecting an argument,
20 it is bound to the current object and called with the created
21 object as argument. If the hook is an unbound lambda closure
22 without arguments, it is bound to the object to be initialized
23 and called. If the hook is any other type of closure, it is
24 called with the created object as argument.
MG Mud User88f12472016-06-24 23:31:02 +020025
26 If the result of the closure call is a non-zero number, it is used
27 as the interval to wait before the first reset(), else the default
28 interval computed from TIME_TO_RESET is used.
29
30 If the hook is defined as the name of an lfun in the object,
Zesstra85136122021-05-08 20:32:01 +020031 it is called in the object with no argument and any result
MG Mud User88f12472016-06-24 23:31:02 +020032 is ignored.
33
34HISTORY
35 LDMud 3.2.10 allowed static functions to be given by name.
Zesstra85136122021-05-08 20:32:01 +020036 LDMud 3.6.5 removed the argument given for the lfun call.
MG Mud User88f12472016-06-24 23:31:02 +020037
38SEE ALSO
Zesstra85136122021-05-08 20:32:01 +020039 hooks(C), create_ob(H), create_clone(H), create_lwobject(H)