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