Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/sys/thing/commands.h b/sys/thing/commands.h
new file mode 100644
index 0000000..2bb876d
--- /dev/null
+++ b/sys/thing/commands.h
@@ -0,0 +1,41 @@
+// MorgenGrauen MUDlib
+//
+// thing/commands.h -- command handling header
+//
+// $Id: commands.h 8707 2014-02-23 22:38:34Z Zesstra $
+
+#ifndef __THING_COMMANDS_H__
+#define __THING_COMMANDS_H__
+
+// properties
+
+#define P_COMMANDS "commands"
+
+#endif // __THING_COMMANDS_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __THING_COMMANDS_H_PROTO__
+#define __THING_COMMANDS_H_PROTO__
+
+// prototypes
+
+// add commands to the command list of the object
+varargs void AddCmd(mixed cmd, mixed func, mixed flag, mixed cmdid);
+
+// remove a command
+varargs int RemoveCmd(mixed cmd, int del_norule, mixed onlyid);
+// Set- und Query-Methoden
+static mapping _set_commands(mapping commands);
+static mapping _query_commands();
+
+
+// internal
+static int _execute(mixed fun, string str, mixed *parsed);
+static int _process_command(string str, string *noparsestr,mixed fun, mixed flag, mixed rule);
+
+public int _cl(string str);
+
+#endif // __THING_COMMANDS_H_PROTO__
+
+#endif // NEED_PROTOYPES
diff --git a/sys/thing/description.h b/sys/thing/description.h
new file mode 100644
index 0000000..029f445
--- /dev/null
+++ b/sys/thing/description.h
@@ -0,0 +1,128 @@
+// MorgenGrauen MUDlib
+//
+// thing/description.h -- header
+//
+// $Id: description.h 9208 2015-05-10 20:54:06Z Zesstra $
+// MorgenGrauen MUDlib
+//
+// thing/description.h -- header
+//
+// $Id: description.h 9208 2015-05-10 20:54:06Z Zesstra $
+
+#ifndef __THING_DESCRIPTION_H__
+#define __THING_DESCRIPTION_H__
+
+// properties
+#define P_NAME "name" // name of the object
+#define P_NAME_ADJ "name_adj" // adjective of the name
+#define P_SHORT "short" // short desciption of the object
+#define P_LONG "long" // long description of the object
+#define P_IDS "ids" // identifier of the object
+#define P_ADJECTIVES "adjectives" // adjectives of the object
+#define P_SHOW_INV "show_inv" // Show in inventory of player
+#define P_CLASS "class" // class, like undead or explosive
+
+#define P_KILL_MSG "kill_msg"
+#define P_KILL_NAME "kill_name"
+
+#define P_HEAL "heal"
+#define P_COMBATCMDS "combatcmds"
+
+#define P_VALUE "value"
+#define P_NOBUY "nobuy"
+#define P_NOSELL "nosell"
+#define P_MAGIC "magic"
+#define P_NOMAGIC "nomagic"
+
+#define P_LOG_FILE "log_file" // bugs in anderes repfile umleiten
+
+#define P_LIGHT "light"
+#define P_TOTAL_LIGHT "total_light"
+
+#define P_CURSED "cursed"
+#define P_KEEP_ON_SELL "keep_on_sell"
+
+#define P_CLONER "cloner"
+#define P_CLONE_TIME "clone_time"
+
+/* read_msg ist auch fuer nicht fernwest-kundige lesbar */
+#define P_READ_MSG "read_msg"
+#define P_FW_ALWAYS_READABLE "fw_always_readable"
+#define P_DETAILS "details"
+#define P_SPECIAL_DETAILS "special_details"
+#define P_READ_DETAILS "read_details"
+#define P_SMELLS "smell_details"
+#define P_SOUNDS "sound_details"
+#define P_TOUCH_DETAILS "p_lib_touch_details"
+#ifndef P_INVIS
+#define P_INVIS "invis"
+#endif
+
+#define SENSE_DEFAULT "\ndefault"
+#define SENSE_VIEW 0
+#define SENSE_SMELL 1
+#define SENSE_SOUND 2
+#define SENSE_TOUCH 3
+#define SENSE_READ 4
+
+#endif // __THING_DESCRIPTION_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __THING_DESCRIPTION_H_PROTO__
+#define __THING_DESCRIPTION_H_PROTO__
+
+// prototypes
+// check if the objects can by identified by str
+varargs int id(string str, int lvl);
+
+// check IDs vs. string*
+int match_ids(string *list);
+
+// add an id to the current object
+void AddId(string|string* str);
+
+// remove an id from the object
+void RemoveId(string|string* str);
+
+// add an adjective to describe the object
+void AddAdjective(string|string* str);
+
+// remove an adjective from the object
+void RemoveAdjective(string|string* str);
+
+// get the name with casus and demonstrative
+varargs string name(int casus, int demon);
+varargs string Name(int casus, int demon);
+
+// check if object is member of a class
+int is_class_member(string|string* str);
+
+// add object to a class
+void AddToClass(string str);
+
+// add a detail to object
+public void AddDetail( string|string* keys, string|string*|mapping|closure descr );
+public void AddReadDetail( string|string* keys, string|string*|mapping|closure descr );
+public void AddSmells( string|string* keys, string|string*|mapping|closure descr );
+public void AddSounds( string|string* keys, string|string*|mapping|closure descr );
+public void AddTouchDetail( string|string* keys, string|string*|mapping|closure descr );
+
+// remove a detail from object
+public varargs void RemoveDetail( string|string* keys );
+public varargs void RemoveSmells( string|string* keys );
+public varargs void RemoveSounds( string|string* keys );
+public varargs void RemoveReadDetail( string|string* keys );
+public varargs void RemoveTouchDetail( string|string* keys );
+
+// add a special detail to object
+void AddSpecialDetail(string|string* keys, string functionname );
+
+// remove a special detail to object
+void RemoveSpecialDetail( string|string* keys );
+
+static void GiveEP(int type, string key);
+
+#endif // __THING_DESCRIPTION_H_PROTO__
+
+#endif // NEED_PROTOYPES
diff --git a/sys/thing/language.h b/sys/thing/language.h
new file mode 100644
index 0000000..51afd86
--- /dev/null
+++ b/sys/thing/language.h
@@ -0,0 +1,79 @@
+// MorgenGrauen MUDlib
+//
+// thing/language.h -- language handling
+//
+// $Id: language.h 6330 2007-05-26 17:53:21Z Zesstra $
+
+#ifndef __THING_LANGUAGE_H__
+#define __THING_LANGUAGE_H__
+
+// properties
+#define P_ARTICLE "article"
+#define P_GENDER "gender"
+#define P_PLURAL "plural"
+
+// special defines
+
+#define WER 0
+#define WESSEN 1
+#define WEM 2
+#define WEN 3
+#define RAW 99 // name without article
+
+#define NEUTER 0
+#define MALE 1
+#define FEMALE 2
+
+#define SINGULAR 0
+#define PLURAL 1
+
+#endif // __THING_LANGUAGE_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __THING_LANGUAGE_H_PROTO__
+#define __THING_LANGUAGE_H_PROTO__
+
+// prototypes
+
+// Artikel im passenden Fall sowie demonst. bzw undemonst. zurueck-
+// geben. force ueberschreibt das SetArticle-Flag.
+public varargs string QueryArticle(int casus, int dem, int force);
+
+// Empfehle einen Artikel fuer das Objekt, getestet wird, ob ausser
+// diesem Objekt sich ein anderes Objekt mit der id im selben
+// Raum befindet.
+public varargs int SuggestArticle(string id);
+
+// Gib ein Pronomen zurueck, welches ausdrueckt, das ein Objekt diesem
+// Objekt gehoert. Dabei ist what das Geschlecht des Objektes.
+public varargs string QueryPossPronoun(mixed what, int casus, int number);
+
+// Er/Sie/Es u.ae. zurueckgeben.
+public varargs string QueryPronoun(int casus);
+
+// Du im passenden Fall zurueckgeben.
+public varargs string QueryDu(int casus,int gender, int zahl);
+
+// Geschlecht in Worten zurueckgeben (maennlich, weiblich, saechlich)
+public string QueryGenderString();
+
+// Deklination eines Adjektivs
+public varargs string DeclAdj(mixed adj, int casus, int demon);
+
+// Query- und Set-Methoden
+static int _set_article(int fl);
+static int _query_article();
+static int _set_gender(int i);
+
+// Interna
+static int QueryAFlag();
+
+#endif // __THING_LANGUAGE_H_PROTO__
+
+#endif // NEED_PROTOYPES
+
+
+
+
+
diff --git a/sys/thing/lighttypes.h b/sys/thing/lighttypes.h
new file mode 100644
index 0000000..dae95d5
--- /dev/null
+++ b/sys/thing/lighttypes.h
@@ -0,0 +1,83 @@
+// MorgenGrauen MUDlib
+//
+// lighttypes.h -- Welche Typen von Licht gibt es im MorgenGrauen?
+//
+// $Id: lighttypes.h,v 1.2 2004/06/12 14:00:48 Vanion Exp $
+
+#ifndef __THING_LIGHTTYPES_H__
+#define __THING_LIGHTTYPES_H__
+
+#define P_LIGHT_TYPE "light_type" // Welches Licht herrscht hier vor?
+
+// Mode-Parameter fuer CheckLightType
+#define LT_CHECK_ANY 0
+#define LT_CHECK_ALL 1
+#define LT_CHECK_MATCH 2
+#define LT_CHECK_NONE 3
+
+// Basislichttypen
+#define LT_MISC 0 // Unbestimmt
+
+// Natuerliche Lichtquellen (Tag)
+#define LT_SUN 1 // Sonnenschein
+#define LT_DIFFUSE 2 // Indirektes Tageslicht
+
+// Natuerliche Lichtquellen (Nacht)
+#define LT_MOON 4 // Mondlicht
+#define LT_STARS 8 // Sternenlicht
+
+// Drei besonders oft vorkommende Typen offenen Lichts
+#define LT_CANDLE 16 // Kerzenlicht
+#define LT_TORCH 32 // Fackelschein
+#define LT_OPEN_FIRE 64 // Lagerfeuer etc.
+
+// Magische erzeugtes Leuchten, wird nicht naeher definiert.
+#define LT_MAGIC 128 // Magische Lichtquelle
+
+// Alles was so gluehen kann: Von Gluehbirne bis zu Phosphor
+#define LT_GLOWING 256 // Selbstleuchtende Lichtquellen
+
+// Ein Raum kann auch explizit auf Dunkel gesetzt werden.
+// Eine Mischung mit anderen Typen scheint aber wenig sinnvoll.
+#define LT_DARKNESS 512 // Dunkelheit
+
+// Gemischte Typen, sie dienen dazu, komfortabel Abfragen auf Lichttypen
+// zu implementieren. Beim setzen sollte immer besser auf die genaueren
+// Lichttypen zurueckgegriffen werden.
+
+// Tageslicht im allgemeinen
+#define LT_DAYLIGHT (LT_SUN|LT_DIFFUSE)
+
+// Da es verschiedene Typen offenen Feuers gibt, wird hier
+// noch ein Abfragetyp definiert.
+#define LT_FIRE (LT_CANDLE|LT_TORCH|LT_OPEN_FIRE)
+
+// Natuerliches Licht
+#define LT_NATURAL (LT_DAYLIGHT|LT_STARS|LT_MOON)
+
+// Kuenstliches Licht
+#define LT_ARTIFICIAL (LT_MAGIC|LT_FIRE|LT_GLOWING)
+
+#endif // _THING_LIGHTTYPES_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __THING_LIGHTTYPES_H_PROTO__
+#define __THING_LIGHTTYPES_H_PROTO__
+
+// Diese Doku wird noch entfernt, wenn die Manpage erstellt worden ist.
+//
+// Eine Funktion, mit der das Abfagen eines oder mehrerer Lichttypen
+// moeglich ist, ist im std/thing/description definiert. Beispiel:
+//
+// thing->CheckLightType(LT_DAYLIGHT)
+// gibt true wenn ein Tageslichttyp gesetzt ist.
+//
+// thing->CheckLightType(LT_SUN|LT_MOON)
+// gibt true, wenn einer der beiden Himmelskoerper leuchtet.
+
+varargs int CheckLightType(int lighttype, int mode);
+
+#endif // __THING_LIGHTTYPES_H_PROTO__
+
+#endif // NEED_PROTOTYPES
diff --git a/sys/thing/material.h b/sys/thing/material.h
new file mode 100644
index 0000000..927969a
--- /dev/null
+++ b/sys/thing/material.h
@@ -0,0 +1,32 @@
+// MorgenGrauen MUDlib
+//
+// thing/material.h -- material handling header
+//
+// $Id: material.h 6930 2008-08-09 09:20:16Z Zesstra $
+
+#ifndef __THING_MATERIAL_H__
+#define __THING_MATERIAL_H__
+
+#define P_MATERIAL "material"
+#define MATERIALDB "/secure/materialdb"
+#define P_MATERIAL_KNOWLEDGE "material_knowledge"
+#define MATERIAL_SYMMETRIC_RECOGNIZABILITY "mat_sym_recoc"
+
+// Materialien nicht beim Laden durch MatDB includen
+// TODO: besser recoc-propertydefinitionen woanders rein und Materialien hier
+// immer includen
+#ifndef _SKIP_MATERIALS_
+#include <materials.h>
+#endif
+
+#ifdef NEED_PROTOTYPES
+#ifndef __THING_MATERIAL_H_PROTO__
+#define __THING_MATERIAL_H_PROTO__
+
+int QueryMaterial(string mat);
+int QueryMaterialGroup(string matgroup);
+string MaterialList(int casus, mixed idinf);
+
+#endif // __THING_MATERIAL_H_PROTO__
+#endif // NEED_PROTOTYPES
+#endif // __THING_MATERIAL_H__
diff --git a/sys/thing/moving.h b/sys/thing/moving.h
new file mode 100644
index 0000000..46e14a7
--- /dev/null
+++ b/sys/thing/moving.h
@@ -0,0 +1,43 @@
+// MorgenGrauen MUDlib
+//
+// thing/moving.h -- object moving
+//
+// $Id: moving.h 8892 2014-08-04 19:48:28Z Zesstra $
+
+#ifndef __THING_MOVING_H__
+#define __THING_MOVING_H__
+
+// properties
+#define P_NEVERDROP "neverdrop"
+#define P_NODROP "nodrop" // can't be dropped
+#define P_NOGET "noget" // can't be taken
+
+#define P_NOINSERT_MSG "noinsert_msg" // Fehlermeldung bei ME_CANT_BE_INSERTED
+#define P_NOLEAVE_MSG "noleave_msg" // Fehlermeldung bei ME_CANT_LEAVE_ENV
+#define P_ENV_TOO_HEAVY_MSG "env_too_heavy_msg" // Fehlermeldung bei ME_TOO_HEAVY_FOR_ENV
+#define P_TOO_MANY_MSG "too_many_msg" // Fehlermeldung bei ME_TOO_MANY_OBJECTS
+#define P_TOO_HEAVY_MSG "too_heavy_msg" // Fehlermeldung bei ME_TOO_HEAVY
+
+#define P_LAST_MOVE "last_move"
+#define P_LAST_CONTENT_CHANGE "last_content_change"
+
+#define P_SENSITIVE "sensitive" // should be registered as sensitive object
+
+
+#endif // __THING_MOVING_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __THING_MOVING_H_PROTO__
+#define __THING_MOVING_H_PROTO__
+
+// prototypes
+// move the object from current position to dest using the method
+public varargs int move(object|string dest, int method);
+
+// remove the object return 1 for successful destruction
+public varargs int remove(int silent);
+
+#endif // __THING_MOVING_H_PROTO__
+
+#endif // // NEED_PROTOYPES
diff --git a/sys/thing/properties.h b/sys/thing/properties.h
new file mode 100644
index 0000000..1a59522
--- /dev/null
+++ b/sys/thing/properties.h
@@ -0,0 +1,63 @@
+// MorgenGrauen MUDlib
+//
+// thing/properties.h -- contains property definitions and prototypes
+//
+// $Id: properties.h,v 3.5 2003/08/07 15:09:33 Rikus Exp $
+
+#ifndef __THING_PROPERTIES_H__
+#define __THING_PROPERTIES_H__
+
+// special defines
+
+#define F_VALUE 0
+#define F_MODE 1
+#define F_SET_METHOD 2
+#define F_QUERY_METHOD 3
+#define F_MODE_AS 4
+#define F_MODE_AD 5
+
+#define SAVE 64
+#define PROTECTED 128 // only this_object() can change the values
+#define SECURED 256 // like PROTECTED, but never resetable
+#define NOSETMETHOD 512 // Keine Set-Methode => Nicht mofifizierbar
+#define SETMNOTFOUND 1024 // Keine Set-Methode gefunden
+#define QUERYMNOTFOUND 2048 // Keine Query-Methode gefunden
+#define QUERYCACHED 4096
+#define SETCACHED 8192
+
+#endif // __THING_PROPERTIES_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __THING_PROPERTIES_H_PROTO__
+#define __THING_PROPERTIES_H_PROTO__
+
+// prototypes
+
+// (E)UID-Methods
+//static mixed _query_uid();
+//static mixed _query_euid();
+
+// Property-Initialisation
+protected void InitializeProperties();
+
+// direct property access
+public varargs mixed Set(string name, mixed Value, int Type, int extern);
+public varargs mixed Query(string name, int Type);
+
+// filtered property access
+public mixed SetProp(string name, mixed Value);
+public mixed QueryProp(string name);
+
+// global property handling
+public void SetProperties(mapping props);
+public mapping QueryProperties();
+
+// misc/interna
+public mixed *__query_properties();
+public void _set_save_data(mixed data);
+public mixed _get_save_data();
+
+#endif // __THING_PROPERTIES_H_PROTO__
+
+#endif // NEED_PROTOTYPES
diff --git a/sys/thing/restrictions.h b/sys/thing/restrictions.h
new file mode 100644
index 0000000..ea14401
--- /dev/null
+++ b/sys/thing/restrictions.h
@@ -0,0 +1,27 @@
+// MorgenGrauen MUDlib
+//
+// thing/restrictions.h -- restrictions of the object (weight)
+//
+// $Id: restrictions.h,v 3.3 2000/08/15 12:29:20 Paracelsus Exp $
+
+#ifndef __THING_RESTRICTIONS_H__
+#define __THING_RESTRICTIONS_H__
+
+// properties
+#define P_WEIGHT "weight" // weight of an object
+#define P_TOTAL_WEIGHT "total_weight" // weight with all objects inside
+
+#endif // __THING_RESTRICTIONS_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __THING_RESTRICTIONS_H_PROTO__
+#define __THING_RESTRICTIONS_H_PROTO__
+
+static void _set_weight(int weight);
+static mapping _set_extern_attributes_modifier(mapping xmod);
+static mapping _set_extern_health_modifier(mapping xmod);
+
+#endif // __THING_RESTRICTIONS_H_PROTO__
+
+#endif // NEED_PROTOYPES
diff --git a/sys/thing/sockets.h b/sys/thing/sockets.h
new file mode 100644
index 0000000..a5a9cbb
--- /dev/null
+++ b/sys/thing/sockets.h
@@ -0,0 +1,79 @@
+// MorgenGrauen MUDlib
+/** @file
+ Konstanten, Prototypen und Properties fuer sockelbare Items.
+* Langbeschreibung...
+* @author Zesstra + Arathorn
+* @date xx.05.2008
+* @version $Id$
+*/
+
+/* Changelog:
+*/
+
+#ifndef _SOCKETS_H_
+#define _SOCKETS_H_
+
+/** Speichert die Sockel und deren Inhalt, die ein Item hat.
+ ([ TYP1: ({ITEM1, ITEM2}),
+ TYP2: ({-1}) ]) \n
+ ITEM1 = ([ P_SOCKET_PROPS,
+ BLUE_NAME: load_name(),
+ DESCRIPTION: name(WER) ])
+ @internal
+ */
+#define P_SOCKETS "_sockets"
+
+/** Speichert ein Mapping von Prop-Modifikatoren.
+ Die in diesem Mapping enthaltenen Props werden beim Einsetzen im Item mit
+ dem Sockel um den angegebenen Wert modifiziert.
+ */
+#define P_SOCKET_PROPS "_socket_props"
+
+/** Sockeltyp, in den das Item eingesetzt werden kann.
+ Alle anderen Sockel sind inkompatibel.
+ */
+#define P_SOCKET_TYPE "_socket_type"
+
+/** Einschraenkungen, denen der gesockelte Gegenstand nach dem Einsetzen
+ zusaetzlich unterliegt.
+ Wird P_RESTRICTIONS hinzugefuegt. Mapping a la P_RESTRICTIONS.
+ */
+#define P_SOCKET_RESTR_USE "_socket_restr_use"
+
+/** Einschraenkungen, denen das Lebewesen unterliegt, welches das Item in
+ den Sockel einbauen soll/will.
+ Mapping a la P_RESTRICTIONS.
+ */
+#define P_SOCKET_RESTR_MOUNT "_socket_restr_mount"
+
+// Sockeltypen
+// TODO: gueltige Sockeltypen definieren festlegen, welche Props sie aendern
+// duerfen.
+#define VALID_SOCKET_TYPES ({})
+
+// Rueckgabewerte
+#define SOCKET_OK 1
+#define SOCKET_NO_OBJECT -1
+#define SOCKET_NO_DATA -2
+#define SOCKET_INVALID_TYPE -3
+#define SOCKET_NO_SOCKETS -4
+#define SOCKET_NONE_AVAILABLE -5
+#define SOCKET_NO_EXPERTISE -6
+#define SOCKET_ITEM_INUSE -7
+
+// sym. Konstante fuer freien Sockel
+#define SOCKET_FREE -1
+
+#endif // _SOCKETS_H_
+
+#ifdef NEED_PROTOTYPES
+#ifndef _SOCKETS_H_PROTOTYPES_
+#define _SOCKETS_H_PROTOTYPES_
+// public Interface
+public int MountSocketItem(object item);
+public int TestSocketItem(object item);
+public mixed GetSocketInfo();
+
+#endif // _SOCKETS_H_PROTOTYPES_
+#endif // NEED_PROTOTYPES
+
diff --git a/sys/thing/util.h b/sys/thing/util.h
new file mode 100644
index 0000000..053f499
--- /dev/null
+++ b/sys/thing/util.h
@@ -0,0 +1,25 @@
+// MorgenGrauen MUDlib
+//
+// sys/thing/util.h -- Headerfile fuer /std/thing/util.c
+//
+// $Id: util.h 4707 2006-09-23 10:18:15Z root $
+
+#ifndef __THING_UTIL_H__
+#define __THING_UTIL_H__
+
+#endif // __THING_UTIL_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __THING_UTIL_H_PROTO__
+#define __THING_UTIL_H_PROTO__
+
+public void ShowPropList(string *props);
+static void PrettyDump(mixed x);
+static void DumpArray(mixed *x);
+static void DumpMapping(mapping x);
+static void DumpKeyValPair(mapping x, mixed key, int size);
+
+#endif // __THING_UTIL_H_PROTO__
+
+#endif // NEED_PROTOTYPES
\ No newline at end of file