blob: 14725a60f087a55ad8ba8ce3632cd6e42cfef3f3 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001create_super()
2
3FUNKTION:
4 protected void create_super();
5
6DEFINIERT IN:
7 allen Standardobjekten
8
9ARGUMENTE:
10 keine
11
12BESCHREIBUNG:
13 Diese Funktion wird immer dann aufgerufen, wenn ein Objekt implizit durch
14 ein 'inherit' in einem erbenden Objekte geladen wird.
15 Normalweise muss man dieses so geladene Objekte nicht konfigurieren, weil
16 nur das Programm dieses Objektes fuer die erbenden Objekte interessant
17 ist, nicht seine Daten.
18 Was hier aber z.B. sinnvoll ist, ist das Abschalten des Resets, denn ein
19 Objekt, was nur dazu dient, dass es von anderen geerbt wird, braucht
20 keinen Reset, auch wenn es ein reset() definiert (was in erbenden Objekte
21 benutzt wird).
22 Die create_super() in den Standardobjekten tun momentan genau dieses.
23
24RUeCKGABEWERT:
25 keiner
26
27BEMERKUNGEN:
28 Wenn ihr von /std/ erbt, braucht ihr euch in aller Regel um diese
29 Funktion keine Gedanken machen.
30 Ihr koennt diese Funktion aber in Objekten selber definieren, die nur zum
31 Erben gedacht sind. Dies kann sinnvoll ein, wenn ihr nicht von /std/ erbt
32 und ein reset() im Objekt habt oder was machen wollt, was ueber das
33 Abschalten des Resets hinausgeht.
34
35BEISPIELE:
36 Gegeben sei folgende Vererbungskette:
37 /std/room -> /d/inseln/zesstra/stdraum -> /d/inseln/zesstra/raum
38
39 Wird nun 'raum' geladen und 'stdraum' ist noch nicht geladen, wird der
40 Driver implizit von selbst 'stdraum' laden (weil 'raum' das Programm von
41 'stdraum' braucht). Bei diesem Laden wird das create() in 'stdraum' nicht
42 ausgefuehrt, sondern stattdessen create_super().
43
44SIEHE AUCH:
45 create(L), reset(L)
46 hook(C), create(H), create_ob(H), create_super(H, reset(H)
47 create(A), reset(A)
48----------------------------------------------------------------------------
4922.10.2007, Zesstra