Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/std/player/exploration.c b/std/player/exploration.c
new file mode 100644
index 0000000..8a1976e
--- /dev/null
+++ b/std/player/exploration.c
@@ -0,0 +1,125 @@
+// MorgenGrauen MUDlib
+//
+// player/exploration.c -- exploration point management
+//
+// $Id: exploration.c 9142 2015-02-04 22:17:29Z Zesstra $
+#pragma strong_types
+#pragma save_types
+#pragma range_check
+#pragma no_clone
+#pragma pedantic
+
+#define NEED_PROTOTYPES
+#include <player/life.h>
+#include <player/base.h>
+#include <thing/properties.h>
+#undef NEED_PROTOTYPES
+
+#include <exploration.h>
+#include <scoremaster.h>
+#include <properties.h>
+#include <new_skills.h>
+
+private string given_scores;
+
+private nosave mixed epnum;
+
+void create() {
+ Set(P_LEP, SECURED|SAVE, F_MODE_AS);
+
+ given_scores = "";
+}
+
+string Forschung()
+{
+ return EPMASTER->QueryForschung();
+}
+
+static string _query_given_scores()
+{
+ return given_scores;
+}
+
+// Hier kommen Funktionen fuer die Levelpunkte
+
+#define XP_FAC ([1:10,2:40,3:150,4:600,5:2250,6:9000,7:35000,8:140000,9:500000])
+
+//#define DEBUG(x,y) printf(x,y)
+#define DEBUG(x,y)
+
+int AddScore(int contributor)
+{
+ mixed info;
+ object po;
+ int drin;
+
+ if (!pointerp(info = SCOREMASTER->QueryNPCbyNumber(contributor)))
+ return -1;
+
+ if ((po = previous_object()) && (object_name(po) == SCOREMASTER))
+ po = previous_object(1);
+
+ if (!po || old_explode(object_name(po),"#")[0] != info[SCORE_KEY])
+ return -2;
+
+ if (!stringp(given_scores))
+ given_scores = " ";
+
+ if (catch(drin = test_bit(given_scores, contributor);publish))
+ return -3;
+
+ if (!drin) {
+ given_scores = set_bit(given_scores, contributor);
+ Set(P_LEP, Query(P_LEP) + info[SCORE_SCORE]);
+ force_save();
+ return info[SCORE_SCORE];
+ }
+ return 0;
+}
+
+int TestScore(int contributor)
+{
+ int ret;
+
+ if (!previous_object() || (object_name(previous_object()) != SCOREMASTER))
+ return 0;
+
+ catch(ret = test_bit(given_scores, contributor);publish);
+
+ return ret;
+}
+
+int SetScoreBit(int contributor)
+{
+ int drin;
+
+ if (!previous_object() || (object_name(previous_object()) != SCOREMASTER))
+ return -1;
+
+ if (catch(drin = test_bit(given_scores, contributor);publish))
+ return -2;
+
+ if (drin) return -3;
+
+ given_scores = set_bit(given_scores, contributor);
+ force_save();
+ return 1;
+}
+
+int ClearScoreBit(int contributor)
+{
+ int drin;
+
+ if (!previous_object() || (object_name(previous_object()) != SCOREMASTER))
+ return -1;
+
+ if (catch(drin = test_bit(given_scores, contributor);publish))
+ return -2;
+
+ if (!drin) return -3;
+
+ given_scores = clear_bit(given_scores, contributor);
+ force_save();
+ return 1;
+}
+