Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/items/buch/buch1.c b/items/buch/buch1.c
new file mode 100644
index 0000000..180c1c0
--- /dev/null
+++ b/items/buch/buch1.c
@@ -0,0 +1,99 @@
+#pragma strong_types,save_types,rtt_checks
+
+inherit "/std/thing";
+
+#include <properties.h>
+#include <language.h>
+#include <defines.h>
+#include <sys_debug.h>
+
+#define P_SEITENZAHL "seitenzahl"
+#define P_SEITE "buchseite"
+#define P_BUCH "buchdir"
+
+string *load(string file) { return explode(read_file(file), "@seite@\n"); }
+
+protected void create()
+{
+ if (!clonep(this_object())) return;
+ ::create();
+ SetProp(P_SHORT, "Ein Buch");
+ SetProp(P_SEITE, 0);
+ SetProp(P_BUCH, "/items/buch/buch.info");
+ SetProp(P_SEITENZAHL, sizeof(load(QueryProp(P_BUCH))));
+ SetProp(P_SHORT, "Wie man ein Buch schreibt!");
+ SetProp(P_LONG,
+ "Du haeltst ein leinengebundenes Buch in Deinen Haenden. Der Titel lautet:\n"
+ +QueryProp(P_SHORT)+"\n");
+ SetProp(P_NAME,"Buch");
+ AddId("buch");
+ SetProp(P_GENDER, NEUTER);
+ SetProp(P_WEIGHT,80);
+ SetProp(P_NOBUY, 1);
+ AddCmd(({"lies","lese"}), "lies");
+ AddCmd("oeffne","oeffne");
+ AddCmd("schliesse","schliesse");
+ AddCmd("blaettere","blaettere");
+}
+
+int oeffne(string str) {
+ if (!str || !id(str)) return 0;
+ if (QueryProp(P_SEITE)) write("Es ist schon geoeffnet.\n");
+ else {
+ SetProp(P_SEITE, 1);
+ write("Du oeffnest das Buch auf Seite 1.\n");
+ say(PL->name() + " oeffnet ein Buch.\n",PL);
+ }
+ return 1;
+}
+
+int schliesse(string str) {
+ string was;
+
+ if (!str || !id(str)) return 0;
+ if (!QueryProp(P_SEITE)) write("Es ist schon geschlossen.\n");
+ else {
+ SetProp(P_SEITE, 0);
+ write("Du schliesst das Buch wieder.\n");
+ say(PL->name() + " schliesst ein Buch wieder.\n",PL);
+ }
+ return 1;
+}
+
+int blaettere(string str) {
+ int seite;
+
+ notify_fail("Zu welcher Seite moechtest Du blaettern?\n");
+ if (!str || !(seite = QueryProp(P_SEITE))) return 0;
+ if (sscanf(str,"zu seite %d", seite)<1 &&
+ ((seite < 1) || (seite > sizeof(load(QueryProp(P_BUCH)))))) return 0;
+ write("Du blaetterst zu Seite "+seite+".\n");
+ say(PL->name() + "blaettert in einem Buch.\n");
+ SetProp(P_SEITE, seite);
+ return 1;
+}
+
+int lies(string str)
+{
+ string was;
+ int seite;
+
+ notify_fail("Was willst Du lesen ? Syntax: LIES <ETWAS>.\n");
+ if(!str || !id(str) || sscanf(str,"%s",was)!=1) return 0;
+ say(PL->name() + " liest in einem Buch.\n",PL);
+
+ seite = QueryProp(P_SEITE);
+ PL->More(load(QueryProp(P_BUCH))[seite++]);
+ if (!QueryProp(P_SEITE)) return 1;
+ if (seite >= sizeof(load(QueryProp(P_BUCH)))) {
+ SetProp(P_SEITE, 0);
+ write("Du hast das Buch ausgelesen und schliesst es.\n");
+ say(PL->name() + " hat ein Buch ausgelesen und schliesst es.\n",PL);
+ } else {
+ SetProp(P_SEITE, seite);
+ write("Du blaetterst um.\n");
+ say(PL->name() + " blaettert um.\n",PL);
+ }
+ return 1;
+}
+