Automatisch erzeugte Manpages.

Damit nicht jeder sphinx auf dem Rechner haben muss,
behalten wir bis auf weiteres die aus den .rst
erzeugten Manpoages auch im Repo.

Change-Id: Id556c0d11cf5f79659d8350952ce1c014d81ea44
diff --git a/doc/sphinx/man/props/P_AUTOLOADOBJ b/doc/sphinx/man/props/P_AUTOLOADOBJ
new file mode 100644
index 0000000..3184fff
--- /dev/null
+++ b/doc/sphinx/man/props/P_AUTOLOADOBJ
@@ -0,0 +1,141 @@
+
+P_AUTOLOADOBJ
+*************
+
+
+NAME
+====
+
+   P_AUTOLOADOBJ                 "autoloadobj"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Hiermit kann prinzipiell angegeben werden ob ein Objekt ueber das
+   Ausloggen eines Spielers (Reboot/ende) behalten werden soll.
+
+   Als Inhalt der Property koennen permanente Eigenschaften des Objektes
+   angegeben werden.
+   Beim Einloggen wird das Objekt neu erzeugt und P_AUTOLOADOBJ auf die
+   gespeicherten Werte gesetzt. Die Werte muessen allerdings selbst
+   verwaltet werden.
+
+   Bitte geht nicht davon aus, dass es waehrend des Setzens/Abfragens dieser
+   Prop einen this_player() oder ein this_interactive() geben muss.
+   Speziell ist this_interactive() nicht == /secure/login!
+   Ebenfalls muss das Objekt beim Setzen/Abfragen nicht in einem Spieler
+   sein.
+
+
+BEMERKUNGEN
+===========
+
+   Autoloadobjekte werden beim Ausloggen nicht fallengelassen!
+
+
+BEISPIELE
+=========
+
+   ## Variante 1: simples Objekt, bleibt einfach nur erhalten,
+   ##             Variablen werden nicht gesichert ##
+   void create() {
+    ...
+    SetProp(P_AUTOLOADOBJ,1);
+    ...
+   }
+
+
+   ## Variante 2: Speicherung mehrerer Variablen ueber
+   ##             P_AUTOLOADOBJ (elegante Verwaltung)
+
+   // ein paar #defines fuer die Plaetze in der Speichervariablen
+   #define MY_AL_SHORT    0
+   #define MY_AL_ATTRM    1
+   #define MY_AL_OWNER    2
+   #define MY_AL_DESTRUCT 3
+
+   // die Variablen, die erhalten bleiben sollen
+   static object owner;
+   static int destruct_time;
+
+   // diese hier wird gerufen, wenn der Spieler gespeichert wird,
+   // wir packen also alle aktuellen Variablen in eine und geben die
+   // zum Speichern heraus ... wir nehmen hier ein Array (statt
+   // zB eines Mappings), weil das am wenigsten Platz braucht
+   static mixed* _query_autoloadobj() {
+    mixed *ret;
+    ret=allocate(4);
+    ret[MY_AL_SHORT] = QueryProp(P_SHORT);      // SHORT merken
+    ret[MY_AL_ATTRM] = QueryProp(P_M_ATTR_MOD); // einen Modifikator merken
+    ret[MY_AL_OWNER] = getuid(owner);           // ah, ein Besitzer!
+    ret[MY_AL_DESTRUCT]=destruct_time-time();   // und eine Lebensdauer!
+
+    return ret;
+
+    /*
+    // normalerweise wuerde man das einfach so schreiben:
+    return (({QueryProp(P_SHORT),
+              QueryProp(P_M_ATTR_MOD),
+              getuid(owner),
+              destruct_time-time()}));
+    */
+   }
+
+   // diese hier wird gerufen, wenn das Objekt neu im Spieler
+   // erzeugt wurde (Login), also packen wir das Speicherarray wieder
+   // aus und in alle entsprechenden Variablen
+   static mixed* _set_autoloadobj(mixed *new) {
+    // wenn das Format nicht mit dem oben uebereinstimmt ist was
+    // schiefgelaufen
+    if(pointerp(new) && !owner && sizeof(new)>4 &&
+       (owner=find_player(new[MY_AL_OWNER]))) {
+     // los, zuweisen!
+
+     SetProp(P_SHORT,      new[MY_AL_SHORT]);
+     SetProp(P_M_ATTR_MOD, new[MY_AL_ATTRM]);
+     destruct_time=        time()+new[MY_AL_DESTRUCT];
+
+     call_out(#'remove,new[3]);
+    } else call_out(#'remove,0);
+
+    return new;
+   }
+
+
+   ## Variante 3: und das gleiche mit Set/Querymethoden ##
+   // Prototypen fuer Set und Query-Methoden -> man Set
+   static mixed *my_query_autoloadobj();
+   static mixed *my_set_autoloadobj(mixed *new);
+
+   void create() {
+    // Binden der Methoden
+    Set(P_AUTOLOADOBJ, #'my_query_autoloadobj, F_QUERY_METHOD);
+    Set(P_AUTOLOADOBJ, #'my_set_autoloadobj, F_SET_METHOD);
+
+    // die werden nur von mir veraendert!
+    Set(P_AUTOLOADOBJ, PROTECTED, F_MODE_AS);
+    ...
+   }
+
+   static mixed *my_query_autoloadobj () {
+     // s.o.
+   }
+
+   static mixed *my_set_autoloadobj (mixed *new) {
+     // s.o.
+   }
+
+
+SIEHE AUCH
+==========
+
+   P_AUTOLOAD, SetProp
+
+24.Aug.2006 Gloinson@MG