Manpages als reStructuredText erstellt
Unsere Manpages wurden mit einem LPC-Tool in
reStructuredText konvertiert und liegen jetzt
in diesem Verzeichnis als Quelldaten.
Aus diesen reStructuredText sollen dann per
Script die ASCII-Manpages und per Sphinx HTML u.a.
erzeugt werden.
Change-Id: I75d659a7b3f9863aecb11dbeb0037e6cae227c36
diff --git a/doc/sphinx/lfun/AddSmells.rst b/doc/sphinx/lfun/AddSmells.rst
new file mode 100644
index 0000000..091d7d9
--- /dev/null
+++ b/doc/sphinx/lfun/AddSmells.rst
@@ -0,0 +1,92 @@
+AddSmells()
+===========
+
+FUNKTION
+--------
+::
+
+ void AddSmells(string|string* keys, string|string*|mapping|closure desc);
+
+DEFINIERT IN
+------------
+::
+
+ /std/thing/description.c
+
+ARGUMENTE
+---------
+::
+
+ keys
+ String oder Array von Strings mit den Namen der Details.
+ desc
+ String, Mapping, String-Array oder Closure mit/zur Beschreibung.
+
+BESCHREIBUNG
+------------
+::
+
+ Diese Funktion entspricht dem AddDetail() fuer Standarddetails, nur
+ koennen hiermit Gerueche realisiert werden:
+ Die Beschreibung der Details <keys> wird gesetzt. Wie die Details
+ bei der Untersuchung aussehen, haengt im wesentlichen vom Typ der
+ Beschreibung <desc> ab:
+ <desc> ist ein String.
+ Beim Untersuchen wird dieser String zurueckgegeben.
+ <desc> ist ein String-Array.
+ Beim Untersuchen wird zufaellig einer der Strings zurueckgegeben.
+ <desc> ist ein Mapping.
+ Das Mapping muss folgenden Aufbau haben:
+ ([0: "Defaulttext",
+ "rasse1": "r1text", ...]).
+
+ Falls fuer die Rasse des das Detail untersuchenden Spielers ein
+ Eintrag im Mapping existiert, wird der entsprechende Text
+ zurueckgegeben, ansonsten der Defaulttext. Auf diese Weise sind
+ rassenabhaengige Details moeglich. Siehe auch die Beispiele.
+ <desc> ist eine Closure.
+ In diesem Fall wird die Closure ausgefuehrt und das Ergebnis
+ zurueckgegeben. Die Closure bekommt dabei den Namen des Details
+ als Parameter uebergeben.
+
+ Fuer Geruchsdetails koennen Forscherpunkte eingetragen werden.
+
+ Gerueche koennen allgemein einen Raum oder Objekt zugeordnet werden:
+ dafuer muss man als <key> SENSE_DEFAULT uebergeben.
+
+
+
+ Spielerkommandos: "riech", "rieche", "schnupper", "schnuppere"
+
+BEISPIELE
+---------
+::
+
+ Ein kleines Beispiel fuer rassenabhaengige Gerueche mit Closures:
+ string strafe(string key);
+ ...
+ AddSmells(SENSE_DEFAULT,
+ "Der Geruch von Knoblauch ist ueberwaeltigend!\n");
+ AddSmells(({"knoblauch","geruch"}),
+ ([0: "Puhh, das stinkt!\n",
+ "vampir": #'strafe]));
+ ...
+ string strafe(string key) {
+ this_player()->reduce_hit_points(100);
+ return "Der Knoblauch schmerzt dich furchtbar!\n";
+ }
+
+SIEHE AUCH
+----------
+::
+
+ Setzen: AddDetail(), AddReadDetail(), AddSounds(),
+ AddTouchDetail()
+ Loeschen: RemoveDetail(), RemoveReadDetail(), RemoveSmells(),
+ RemoveSounds(), RemoveTouchDetail()
+ Daten: P_DETAILS, P_READ_DETAILS, P_SMELLS, P_SOUNDS, P_TOUCH_DETAILS
+ Veraltet: AddSpecialDetail(), RemoveSpecialDetail(), P_READ_MSG
+ Sonstiges: GetDetail(), break_string()
+
+20.01.2015, Zesstra
+