blob: 5812b35fea7da326432416cece105e01806af130 [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
MG Mud User88f12472016-06-24 23:31:02 +02002P_COMMANDS
Zesstra953f9972017-02-18 15:37:36 +01003**********
MG Mud User88f12472016-06-24 23:31:02 +02004
MG Mud User88f12472016-06-24 23:31:02 +02005
Zesstra953f9972017-02-18 15:37:36 +01006NAME
7====
MG Mud User88f12472016-06-24 23:31:02 +02008
Zesstra953f9972017-02-18 15:37:36 +01009 P_COMMANDS "commands"
MG Mud User88f12472016-06-24 23:31:02 +020010
MG Mud User88f12472016-06-24 23:31:02 +020011
Zesstra953f9972017-02-18 15:37:36 +010012DEFINIERT IN
13============
MG Mud User88f12472016-06-24 23:31:02 +020014
Zesstra953f9972017-02-18 15:37:36 +010015 <thing/commands.h>
MG Mud User88f12472016-06-24 23:31:02 +020016
MG Mud User88f12472016-06-24 23:31:02 +020017
Zesstra953f9972017-02-18 15:37:36 +010018BESCHREIBUNG
19============
Zesstra16698ff2016-12-13 22:19:16 +010020
Zesstra953f9972017-02-18 15:37:36 +010021 Diese Property enthaelt ein Mapping mit den Befehlen, die dem Objekt
22 zugeordnet sind.
MG Mud User88f12472016-06-24 23:31:02 +020023
Zesstra953f9972017-02-18 15:37:36 +010024 Sie sollte nicht von Hand manipuliert werden, sondern nur ueber die
25 Funktionen AddCmd() und RemoveCmd().
MG Mud User88f12472016-06-24 23:31:02 +020026
Zesstra953f9972017-02-18 15:37:36 +010027 Das Mapping hat folgenden Aufbau:
28
29 ([ befehl : ({funktion1,...});
30 ({flag1,...});
31 ({regel1,...});
32 ({id1, ...}),
33 ({closure auf fun1, ...}),
34 ... ])
35
36 Die Eintraege entsprechen den Parametern des AddCmd()-Aufrufs, sind
37 aber in anderer Form. Als Beispiel:
38
39 AddCmd(verb,fun1,1);
40 AddCmd(verb+syn1a|syn1b&syn2a|syn2b|syn2c, fun2,
41 error1_notify|error2_notify^error2_write);
42 -->
43 ([verb:
44 ({fun1,fun2}); // funs
45 ({1,({error1_notify, error2_write^error2_say, 1})}); // flags
46 ({0,({({syn1a,syn1b}),({syn2a,syn2b,syn2c})})}); // rules
47 0; // IDs
48 ({closure auf fun1, closure auf fun2}) ]) // Cache
49
50 Funs: ({<fun1> ,...
51 'fun' kann sein: Closure
52 String: Methodenname - wird etwas geprueft
53 Objekt: wenn keine Methode, this_object() fuer
54 intern, previous_object() fuer extern
55 0 (erloschenes externes Objekt)
56 Rules: ({<Regelsatz fuer fun1>, ({<1. Synonymgruppe>,
57 <2. Synonymgruppe, ...}), ...})
58 Flags: ({<Flag fuer fun1>, ({<Fehlermeldung 1. Synonymgruppe>, ... ,
59 [, Index fuer write anstatt notify_fail]}),
60 ... })
61 IDs: 0 oder ({<ID fuer fun1>}) oder ({0, <ID fuer fun2>}) ...
62 Cache: ({<closure fuer fun1>, ...
63
64
65BEMERKUNGEN
66===========
67
68 Cache-Closures sind bei Export immer genullt
69
70
71SIEHE AUCH
72==========
73
74 /std/thing/commands.c, AddCmd(), RemoveCmd()
75
7616. Dez 2016 Gloinson