Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/doc/lfun/obsolete/AddHpHook b/doc/lfun/obsolete/AddHpHook
new file mode 100644
index 0000000..e227951
--- /dev/null
+++ b/doc/lfun/obsolete/AddHpHook
@@ -0,0 +1,29 @@
+********************* OBSOLETE LFUN ***********************************
+* Diese Efun bitte nicht mehr benutzen, sondern stattdessen die *
+* Hooks (s. /doc/std/hooks). *
+***********************************************************************
+AddHpHook()
+FUNKTION:
+ int AddHpHook(object ob)
+
+DEFINIERT IN:
+ /std/player/life.c
+
+ARGUMENTE:
+ ob - das Objekt, das sich eintragen moechte.
+
+BESCHREIBUNG:
+ Traegt ein Objekt in P_HP_HOOKS ein, wenn es nicht schon darin steht.
+
+ Aendern sich beim Spieler dann HP oder KP (nicht durch Set()), wird
+ an allen eingetragenen Objekten NotifyHpChange() gerufen.
+
+RUECKGABEWERT:
+ 1, wenn Erfolg, 0 sonst
+
+SIEHE AUCH:
+ Gegenpart: RemoveHpHook()
+ Props: P_HP_HOOKS, P_HP
+ Verwandt: reduce_hit_points(), do_damage(), buffer_hp()
+
+23.Feb.2004 Gloinson
diff --git a/doc/lfun/obsolete/AddInsertHook b/doc/lfun/obsolete/AddInsertHook
new file mode 100644
index 0000000..5e80272
--- /dev/null
+++ b/doc/lfun/obsolete/AddInsertHook
@@ -0,0 +1,59 @@
+********************* OBSOLETE LFUN ***********************************
+* Diese Efun bitte nicht mehr benutzen, sondern stattdessen die *
+* Hooks (s. /doc/std/hooks). *
+***********************************************************************
+AddInsertHook()
+
+FUNKTION:
+ void AddInsertHook(object ob);
+
+DEFINIERT IN:
+ /std/player/restrictions.c
+
+ARGUMENTE:
+ ob - Das Objekt, das informiert werden soll, wenn ein Objekt dem
+ Spielerinventar hinzugefuegt wurde.
+
+BESCHREIBUNG:
+ (Diese Funktionalitaet wurde ersetzt durch den allgemeinen Hook
+ H_HOOK_INSERT und ist nur noch aus Gruenden der Kompatibilitaet
+ vorhanden.)
+
+ Diese Funktion wird im Spielerobjekt aufgerufen, um das Objekt ob als
+ Hook-Listener anzumelden. Auf diese Weise eingetragene Listener
+ werden informiert, wenn ein Objekt ins Spielerinventar bewegt wurde.
+ Technisch wird die Bewegung ueber NotifyInsert() im Spielerobjekt
+ detektiert, und im Listener-Objekt wird die Funktion InsertNotify()
+ gerufen, die als Parameter das neu ins Spielerinventar bewegte Objekt
+ uebergeben bekommt.
+
+RUeCKGABEWERT:
+ keiner
+
+BEMERKUNGEN:
+ Das Listener-Objekt muss sich ebenfalls im Spielerinventar befinden,
+ ansonsten wird der eingetragene Hook wieder geloescht.
+
+BEISPIEL:
+
+ a) Objekt "ob" wird im Spieler als Listener angemeldet:
+ this_player()->AddInsertHook(ob);
+
+ b) Objekt "new" wird ins Spielerinventar bewegt, das Spielerobjekt
+ informiert "ob" darueber:
+ ob->InsertNotify(new);
+
+ c) Das Listener-Objekt "ob" reagiert darauf, z.B. indem es die Fackel
+ loescht, sofern sie vorher brannte:
+ void InsertNotify(object new) {
+ if ( objectp(new) && new->id("\nfackel") &&
+ new->QueryProp(P_LIGHTED) )
+ new->unlight();
+ return;
+ }
+
+SIEHE AUCH:
+ NotifyInsert(), RemoveInsertHook(), QueryInsertHooks()
+
+----------------------------------------------------------------------------
+Last modified: 14.04.2010, Arathorn
diff --git a/doc/lfun/obsolete/ModifySkillAttributeOld b/doc/lfun/obsolete/ModifySkillAttributeOld
new file mode 100644
index 0000000..65d9afc
--- /dev/null
+++ b/doc/lfun/obsolete/ModifySkillAttributeOld
@@ -0,0 +1,90 @@
+ModifySkillAttributeOld()
+
+FUNKTION:
+ varargs int ModifySkillAttributeOld(object caster, string atrname,
+ int value, int duration, mixed fun)
+
+DEFINIERT IN:
+ /std/living/skill_attributes.c
+
+ARGUMENTE:
+ <caster> IGNORIERT
+ frueher Objekt, das die Modifikation vornimmt, heute ist
+ dieses Argument ohne Bedeutung und wird ignoriert.
+
+ <atrname> STRING
+ Name des zu veraendernden Attributes
+ (Definiert in /sys/living/skill_attributes.h)
+
+ <value> INT
+ Neuer Wert des Attributs (Standard: 100)
+
+ <duration> INT
+ Dauer in Sekunden
+
+ <fun> NICHT MEHR UNTERSTUETZT - ModifySkillAttribute() nutzen!!
+
+BESCHREIBUNG:
+ Diese Funktion existiert nur aus Kompatibilitaetsgruenden. Bitte in neuen
+ Objekten NICHT mehr verwenden und in alten nach Moeglichkeit ausbauen!
+
+ Aendert ein Skill-Attribut eines Living.
+
+ Fuer <value> ist folgendes zu beachten:
+ Frueher handelte es sich um einen multiplikativen Faktor. 100 hatte die
+ Bedeutung von 1 und veraenderte nichts. Heute sind die Modifikatoren
+ additiv. Diese Funktion macht eine einfache Umrechnung, indem sie vom hier
+ uebergeben Wert 100 abzieht. (In der Annahme, dass frueher meist eh nur
+ ein Modifikator zur gleichen Zeit aktiv war.)
+ Gibt man hier also hier eine 100 an, wird ein Modifikator von 0 einge-
+ tragen, der nichts aendert, bei 200 wird ein Modifikator von 100 einge-
+ tragen, bei 50 einer von -50, welcher das Skillattribute folglich
+ reduziert.
+
+ Es sind momentan max. 5 gleichzeitige Skillattribute-Modifikatoren pro SA
+ zulaessig.
+
+RUECKGABEWERT:
+ 0 wenn der Wert ungueltig ist oder aus sonstigem Grunde nicht gesetzt
+ werden konnte (fuer bessere Diagnostik -> ModifySkillAttribute()).
+ >0 wenn alles okay war
+
+BEMERKUNGEN:
+ Frueher musste ein setzendes Objekt ein groesseres P_LEVEL haben als das
+ Objekt, welches einen vorherigen Modifikator gesetzt hat, um diesen zu
+ ueberschreiben. Dies ist inzwischen ohne Bedeutung.
+
+BEISPIELE:
+ Ein NPC:
+
+ void
+ create() {
+ .
+ .
+ .
+ AddSpell(1, 1,
+ "Der fuerchterliche NPC haut Dir auf den Kopf.\n",
+ "Der fuerchterliche NPC haut @WEN auf den Kopf.\n",
+ DT_MAGIC, "schwaechen");
+ .
+ .
+ }
+
+ schwaechen(object enemy, int damage, mixed *dam_type) {
+ int ergebnis;
+ ergebnis = enemy->ModifySkillAttributeOld(this_object(), SA_QUALITY, 50, 5);
+ if (ergebnis > 0)
+ tell_object(enenmy, "Du fuehlst Dich ganz schwach.\n");
+ }
+
+ Der NPC schwaecht seinen Gegner erheblich! Alles wird fuer 5 Sekunden um
+ 50, d.h. 0.5 Skillattribute reduziert (50 - 100 => -50 als Modifikator).
+
+SIEHE AUCH:
+ P_SKILL_ATTRIBUTES, P_SKILL_ATTRIBUTE_OFFSETS,
+ ModifySkillAttribute, QuerySkillAttribute(),
+ RemoveSkillAttributeModifer(), QuerySkillAttributeModifier()
+
+-----------------------------------------------------------------------------
+07.08.2008 Zesstra
+
diff --git a/doc/lfun/obsolete/NotifyGiveQuest b/doc/lfun/obsolete/NotifyGiveQuest
new file mode 100644
index 0000000..7e29798
--- /dev/null
+++ b/doc/lfun/obsolete/NotifyGiveQuest
@@ -0,0 +1,37 @@
+********************* OBSOLETE LFUN ***********************************
+* Diese Efun bitte nicht mehr benutzen, sondern stattdessen die *
+* Events (siehe "man events"). *
+***********************************************************************
+
+NotifyGiveQuest()
+
+FUNKTION:
+ void NotifyGiveQuest(object pl, string key);
+
+DEFINIERT IN:
+ /std/gilden_ob.c
+
+ARGUMENTE:
+ pl Der Spieler, der eine Quest geloest hat.
+ key Name der geloesten Quest.
+
+BESCHREIBUNG:
+ Die Funktion wird in der Gilde des Spielers aufgerufen, wenn der
+ Spieler eine gueltige Quest besteht - und zwar unabhaengig davon,
+ ob er sie bereits geloest hat, oder nicht.
+
+RUECKGABEWERT:
+ keiner
+
+BEMERKUNGEN:
+ Die Funktion ist dafuer gedacht, von Gildenprogrammierern ueberschrieben
+ zu werden, wenn beispielsweise bestimmte Quests als Aufstiegsbedingung
+ verlangt werden, diese aber in der entsprechenden Gilde geloest sein
+ muessen (z.B. Obergladiator als Level-5-Zauberer).
+
+SIEHE AUCH:
+ /std/gilden_ob.c
+ /std/player/quests.c
+
+----------------------------------------------------------------------------
+Last modified: Fri Oct 4 10:17:00 1996 by Silvana
diff --git a/doc/lfun/obsolete/NotifyHpChange b/doc/lfun/obsolete/NotifyHpChange
new file mode 100644
index 0000000..6f82b03
--- /dev/null
+++ b/doc/lfun/obsolete/NotifyHpChange
@@ -0,0 +1,47 @@
+********************* OBSOLETE LFUN ***********************************
+* Diese Efun bitte nicht mehr benutzen, sondern stattdessen die *
+* Hooks (s. /doc/std/hooks). *
+***********************************************************************
+NotifyHpChange()
+
+FUNKTION:
+ void NotifyHpChange();
+
+DEFINIERT IN:
+ /std/player/life.c
+
+ARGUMENTE:
+ keine
+
+BESCHREIBUNG:
+ Wenn sich die Lebenspunkte eines Spielers aendern, so werden davon
+ auch andere Objekte unterrichtet, sofern diese mittels der Funktion
+ AddHpHook() bei eben diesem Spieler angemeldet wurden.
+ Fortan wird dann die Funktion NotifyHpChange() in diesen
+ angemeldeten Objekten aufgerufen, wenn sich die Property P_HP des
+ Spielers aendert. Es werden hierbei keine Argumente an
+ NotifyHpChange() uebergeben, die aktuellen Lebenspunkte kann man ja
+ auch ohne weiteres ueber die Property P_HP in Erfahrung bringen und
+ aeltere Werte muss man sich gesondert merken. Zu beachten ist, dass
+ die Property P_HP bei Aufruf der Funktion NotifyHpChange() bereits
+ den neuen Wert enthaelt.
+ Bei dem Spieler angemeldete Objekte, die von Lebenspunkteaenderungen
+ informiert werden sollen, werden automatisch aus der Liste entfernt,
+ wenn sie zerstoert wurden. Diese Liste ist in der Property
+ P_HP_HOOKS zu finden. Per Hand kann man sie auch explizit mittels
+ der Funktion RemoveHpHook() entfernen.
+ Stirbt ein Spieler, so wird die Funktion NotifyPlayerDeath()
+ aufgerufen und nicht NotifyHpChange()!
+
+RUeCKGABEWERT:
+ keiner
+
+BEISPIELE:
+ ist in Arbeit
+
+SIEHE AUCH:
+ P_HP, P_HP_HOOKS, AddHpHook(), RemoveHpHook(),
+ Defend(), do_damage(), NotifyPlayerDeath()
+
+----------------------------------------------------------------------------
+Last modified: Thu Nov 19 13:54:33 1998 by Patryn
diff --git a/doc/lfun/obsolete/QueryEnemy b/doc/lfun/obsolete/QueryEnemy
new file mode 100644
index 0000000..bf0b583
--- /dev/null
+++ b/doc/lfun/obsolete/QueryEnemy
@@ -0,0 +1,24 @@
+********************* OBSOLETE LFUN ***********************************
+FUNKTION:
+ object QueryEnemy();
+
+DEFINIERT IN:
+ /std/living/combat.c
+
+ARGUMENTE:
+ keine
+
+RUeCKGABEWERT:
+ gefundener Gegner
+
+BESCHREIBUNG:
+ Diese Funktion liefert zufaellig einen der anwesenden Gegner
+ zurueck, sofern keine Gegner bevorzugt ausgewaehlt werden.
+
+BEMERKUNGEN:
+ Diese Lfun existiert nicht mehr. Bitte SelectEnemy() benutzen.
+
+SIEHE AUCH:
+ SelectEnemy(), QueryPreferedEnemy(), P_PREFERED_ENEMY
+----------------------------------------------------------------------------
+07.02.2009, Zesstra
diff --git a/doc/lfun/obsolete/QueryInsertHooks b/doc/lfun/obsolete/QueryInsertHooks
new file mode 100644
index 0000000..c43d036
--- /dev/null
+++ b/doc/lfun/obsolete/QueryInsertHooks
@@ -0,0 +1,31 @@
+********************* OBSOLETE LFUN ***********************************
+* Diese Efun bitte nicht mehr benutzen, sondern stattdessen die *
+* Hooks (s. /doc/std/hooks). *
+***********************************************************************
+QueryInsertHooks()
+
+FUNKTION:
+ object *QueryInsertHooks();
+
+DEFINIERT IN:
+ /std/player/restrictions.c
+
+ARGUMENTE:
+ keine
+
+BESCHREIBUNG:
+ (Diese Funktionalitaet wurde ersetzt durch den allgemeinen Hook
+ H_HOOK_INSERT und ist nur noch aus Gruenden der Kompatibilitaet
+ vorhanden.)
+
+ Diese Funktion gibt die aktuell beim Spielerobjekt angemeldeten
+ Listener-Objekte zurueck.
+
+RUeCKGABEWERT:
+ Array aus Objektpointern oder leeres Array
+
+SIEHE AUCH:
+ NotifyInsert(), AddInsertHook(), RemoveInsertHook()
+
+----------------------------------------------------------------------------
+Last modified: 14.04.2010, Arathorn
diff --git a/doc/lfun/obsolete/QueryOptQP b/doc/lfun/obsolete/QueryOptQP
new file mode 100644
index 0000000..f6f72c5
--- /dev/null
+++ b/doc/lfun/obsolete/QueryOptQP
@@ -0,0 +1,25 @@
+QueryOptQP()
+
+FUNKTION:
+ int QueryOptQP()
+
+DEFINIERT IN:
+ /secure/questmaster.c
+
+ARGUMENTE:
+ keine
+
+RUECKGABEWERT:
+ Abenteuerpunkte der optionalen Quests
+
+BESCHREIBUNG:
+ Diese Funktion liefert die Abenteuerpunkte der optionalen
+ Abenteuer zurueck.
+
+SIEHE AUCH:
+ GiveQuest, QueryQuest, /secure/questmaster.h, QueryGroupedKeys,
+ QueryMaxQP, QueryTotalQP
+
+----------------------------------------------------------------------------
+Zuletzt geaendert: Sam, 25. Nov 2000, 14:04:28 von Zook.
+
diff --git a/doc/lfun/obsolete/RemoveHpHook b/doc/lfun/obsolete/RemoveHpHook
new file mode 100644
index 0000000..d3177f1
--- /dev/null
+++ b/doc/lfun/obsolete/RemoveHpHook
@@ -0,0 +1,25 @@
+********************* OBSOLETE LFUN ***********************************
+* Diese Efun bitte nicht mehr benutzen, sondern stattdessen die *
+* Hooks (s. /doc/std/hooks). *
+***********************************************************************
+RemoveHpHook()
+FUNKTION:
+ int RemoveHpHook(object ob)
+
+DEFINIERT IN:
+ /std/player/life.c
+
+ARGUMENTE:
+ ob - das Objekt, das sich austragen moechte.
+
+BESCHREIBUNG:
+ Entfernt den Eintrag fuer dieses Objekt in P_HP_HOOKS.
+
+RUECKGABEWERT:
+ 1, wenn Erfolg, 0 sonst
+
+SIEHE AUCH:
+ Gegenpart: AddHpHook()
+ Props: P_HP_HOOKS, P_HP
+
+23.Feb.2004 Gloinson
diff --git a/doc/lfun/obsolete/RemoveInsertHook b/doc/lfun/obsolete/RemoveInsertHook
new file mode 100644
index 0000000..f232eed
--- /dev/null
+++ b/doc/lfun/obsolete/RemoveInsertHook
@@ -0,0 +1,31 @@
+********************* OBSOLETE LFUN ***********************************
+* Diese Efun bitte nicht mehr benutzen, sondern stattdessen die *
+* Hooks (s. /doc/std/hooks). *
+***********************************************************************
+RemoveInsertHook()
+
+FUNKTION:
+ void RemoveInsertHook(object ob);
+
+DEFINIERT IN:
+ /std/player/restrictions.c
+
+ARGUMENTE:
+ ob - Das Objekt, das als Listener aus der Liste ausgetragen werden soll
+
+BESCHREIBUNG:
+ (Diese Funktionalitaet wurde ersetzt durch den allgemeinen Hook
+ H_HOOK_INSERT und ist nur noch aus Gruenden der Kompatibilitaet
+ vorhanden.)
+
+ Diese Funktion wird im Spielerobjekt aufgerufen, um ein als Listener
+ eingetragenes Hook-Objekt ob wieder auszutragen.
+
+RUeCKGABEWERT:
+ keiner
+
+SIEHE AUCH:
+ NotifyInsert(), AddInsertHook(), QueryInsertHooks()
+
+----------------------------------------------------------------------------
+Last modified: 14.04.2010, Arathorn
diff --git a/doc/lfun/obsolete/TestAttributeLock b/doc/lfun/obsolete/TestAttributeLock
new file mode 100644
index 0000000..126e931
--- /dev/null
+++ b/doc/lfun/obsolete/TestAttributeLock
@@ -0,0 +1,25 @@
+********************* OBSOLETE LFUN ***********************************
+TestAttributeLock()
+FUNKTION:
+ string TestAttributeLock(mapping check)
+
+DEFINIERT IN:
+ /std/living/attributes.c
+
+PARAMETER:
+ check - Mapping mit Attributen: ([<attr>:<wert>])
+
+BESCHREIBUNG:
+ Prueft, ob eines der im Mapping enthaltenen Attribute blockiert
+ ist (bereits durch einen anderen Modifier belegt wurde).
+
+ Da Modifier nicht mehr direkt blockieren ist diese Funktion obsolet
+ und in Livings inzwischen nicht mehr existent.
+
+SIEHE AUCH:
+ QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
+ SetAttr(), SetAttribute(), SetRealAttribute(), UpdateAttributes(),
+ P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS, P_ATTRIBUTES_MODIFIER,
+ P_X_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c
+
+11.05.2007, Zesstra
diff --git a/doc/lfun/obsolete/extra_look b/doc/lfun/obsolete/extra_look
new file mode 100644
index 0000000..753a8ed
--- /dev/null
+++ b/doc/lfun/obsolete/extra_look
@@ -0,0 +1,19 @@
+********************* VERALTETE LFUN ******************************
+* Diese LFUN ist veraltet. Bitte benutzt sie NICHT mehr, sondern *
+* stattdessden AddExtraLook(). *
+*******************************************************************
+
+extra_look()
+
+FUNKTION:
+ string extra_look();
+
+BESCHREIBUNG:
+ Kann in Objekt definiert sein. Wenn ein Living (std/living/description)
+ das Objekt enthaelt, wird zu dessen long() der zurueckgegebene String
+ hinzugefuegt.
+
+SIEHE AUCH:
+ AddExtraLook()
+
+25.Jan 2015 Gloinson
diff --git a/doc/lfun/obsolete/paramove b/doc/lfun/obsolete/paramove
new file mode 100644
index 0000000..96686a2
--- /dev/null
+++ b/doc/lfun/obsolete/paramove
@@ -0,0 +1,45 @@
+****************************************************************************
+************************* VERALTETE LFUN ***********************************
+************************* DO NOT USE! ***********************************
+****************************************************************************
+paramove()
+
+FUNKTION:
+ int paramove();
+
+DEFINIERT IN:
+ /std/room/para.c
+
+ARGUMENTE:
+ keine
+
+BESCHREIBUNG:
+ Bewegt den Spieler ggf. in eine Paralleldimension.
+
+RUeCKGABEWERT:
+ 1, wenn der Spieler die Dimension gewechselt hat.
+
+BEISPIEL:
+ init(){
+ if(!paramove()) ::init();
+ }
+
+BEMERKUNGEN:
+ DIESE FUNKTION NICHT MEHR BENUTZEN!
+
+ Diese Funktion sollte nur aus einem init() aufgerufen werden!
+
+ Fuer die Entscheidung, in welchem Raum ein Spieler in Abhaengigkeit
+ von P_PARA landet, ist die Funktion move() zustaendig. Als Magier
+ muss man sich darum nicht gesondert kuemmern. Das heisst aber auch,
+ dass beim Anschluss eines Normalweltraumes automatisch alle in dem
+ Verzeichnis mit gleichem Namen vorhandenen Parallelweltraeume mit
+ angeschlossen werden.
+
+ Deswegen ist paramove() veraltet und sollte nicht mehr genutzt werden.
+
+SIEHE AUCH:
+ /std/room/para.c, P_PARA, P_NO_PLAYERS, move
+
+----------------------------------------------------------------------------
+Last modified: 05.08.2007, Zesstra