Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/p/daemon/teammaster.c b/p/daemon/teammaster.c
new file mode 100644
index 0000000..76e8ca0
--- /dev/null
+++ b/p/daemon/teammaster.c
@@ -0,0 +1,84 @@
+#pragma strong_types,save_types
+#pragma no_shadow,no_clone
+
+#include <living/team.h>
+#include <wizlevels.h>
+#define ME this_object()
+#define PO previous_object()
+
+static mapping team_names;
+static mapping team_names_reverse;
+
+void create() {
+
+  team_names=([]);         // Objekt -> Name
+  team_names_reverse=([]); // Name -> Objekt
+}
+
+static mixed DoRegisterTeam(object ob, string name) {
+  mixed old;
+
+  old=team_names[ob];
+  m_delete(team_names_reverse,old); // Namen Freigeben
+  if (!name) { // UnRegister
+    m_delete(team_names,ob);
+    return name;
+  }
+  team_names[ob]=name;
+  team_names_reverse[name]=ob;
+  return name;
+}
+
+varargs string RegisterTeam(string name) {
+  int i,min;
+
+  if (member(inherit_list(PO),TEAM_OBJECT+".c")<0)
+    return 0;
+  if (stringp(name)){
+    if (!team_names_reverse[name]) // Name noch nicht vergeben
+      return DoRegisterTeam(PO,name);
+    return 0;
+  }
+  min=sizeof(m_indices(team_names_reverse))+2;
+  for (i=1;i<min;i++)
+    if (!team_names_reverse[sprintf("%d",i)]) {
+      min=i;
+      break;
+    }
+  name=sprintf("%d",i);
+  return DoRegisterTeam(PO,name);
+}
+
+void UnregisterTeam() {
+  if (member(inherit_list(PO),TEAM_OBJECT+".c")>=0)
+    DoRegisterTeam(PO,0);
+}
+
+object *ListTeamObjects() {
+  return(m_indices(team_names)-({0}));
+}
+
+string *ListTeamNames() {
+  return(m_indices(team_names_reverse)-({0}));
+}
+
+string *SortedListTeamNames() {
+  return(sort_array(ListTeamNames(),#'<));
+}
+
+void ShowTeamInfos() {
+  object ob;
+  string *ind;
+  int i;
+  
+  write(" --- Teamliste: ---\n");
+  ind=SortedListTeamNames();
+  for (i=sizeof(ind)-1;i>=0;i--)
+    if (objectp(ob=team_names_reverse[ind[i]]))
+      ob->ShowTeamInfo();
+  write(" --- (Ende Teamliste) ---\n");
+}
+
+varargs int remove(int silent) {
+  return 0;
+}