#include <properties.h>#include <language.h>#include <defines.h>#include <sys_debug.h>
gehe zum Quellcode dieser Datei
Makrodefinitionen | |
| #define | P_SEITENZAHL "seitenzahl" |
| #define | P_SEITE "buchseite" |
| #define | P_BUCH "buchdir" |
Funktionen | |
| load (file) | |
| create () | |
| oeffne (str) | |
| schliesse (str) | |
| blaettere (str) | |
| lies (str) | |
Variablen | |
| inherit std | thing |
| #define P_BUCH "buchdir" |
Definiert in Zeile 10 der Datei buch1.c.
Wird benutzt von blaettere(), create() und lies().
| #define P_SEITE "buchseite" |
Definiert in Zeile 9 der Datei buch1.c.
Wird benutzt von blaettere(), create(), lies(), oeffne() und schliesse().
| #define P_SEITENZAHL "seitenzahl" |
| blaettere | ( | str | ) |
Definiert in Zeile 61 der Datei buch1.c.
Benutzt load(), notify_fail(), P_BUCH, P_SEITE, PL, QueryProp(), seite und SetProp().
00061 { 00062 int seite; 00063 00064 notify_fail("Zu welcher Seite moechtest Du blaettern?\n"); 00065 if (!str || !(seite = QueryProp(P_SEITE))) return 0; 00066 if (sscanf(str,"zu seite %d", seite)<1 && 00067 ((seite < 1) || (seite > sizeof(load(QueryProp(P_BUCH)))))) return 0; 00068 write("Du blaetterst zu Seite "+seite+".\n"); 00069 say(PL->name() + "blaettert in einem Buch.\n"); 00070 SetProp(P_SEITE, seite); 00071 return 1; 00072 }

| create | ( | ) |
Definiert in Zeile 14 der Datei buch1.c.
Benutzt AddCmd(), AddId(), create(), load(), NEUTER, P_BUCH, P_GENDER, P_LONG, P_NAME, P_NOBUY, P_SEITE, P_SEITENZAHL, P_SHORT, P_WEIGHT, QueryProp() und SetProp().
00015 { 00016 if (!clonep(this_object())) return; 00017 ::create(); 00018 SetProp(P_SHORT, "Ein Buch"); 00019 SetProp(P_SEITE, 0); 00020 SetProp(P_BUCH, "/obj/buch.info"); 00021 SetProp(P_SEITENZAHL, sizeof(load(QueryProp(P_BUCH)))); 00022 SetProp(P_SHORT, "Wie man ein Buch schreibt!"); 00023 SetProp(P_LONG, 00024 "Du haelst ein leinengebundenes Buch in Deinen Haenden. Der Titel lautet:\n" 00025 +QueryProp(P_SHORT)+"\n"); 00026 SetProp(P_NAME,"Buch"); 00027 AddId("buch"); 00028 SetProp(P_GENDER, NEUTER); 00029 SetProp(P_WEIGHT,80); 00030 SetProp(P_NOBUY, 1); 00031 AddCmd(({"lies","lese"}), "lies"); 00032 AddCmd("oeffne","oeffne"); 00033 AddCmd("schliesse","schliesse"); 00034 AddCmd("blaettere","blaettere"); 00035 }

| lies | ( | str | ) |
Definiert in Zeile 74 der Datei buch1.c.
Benutzt load(), notify_fail(), P_BUCH, P_SEITE, PL, QueryProp(), seite und SetProp().
00075 { 00076 string was; 00077 int seite; 00078 00079 notify_fail("Was willst Du lesen ? Syntax: LIES <ETWAS>.\n"); 00080 if(!str || !id(str) || sscanf(str,"%s",was)!=1) return 0; 00081 say(PL->name() + " liest in einem Buch.\n",PL); 00082 00083 seite = QueryProp(P_SEITE); 00084 PL->More(load(QueryProp(P_BUCH))[seite++]); 00085 if (!QueryProp(P_SEITE)) return 1; 00086 if (seite >= sizeof(load(QueryProp(P_BUCH)))) { 00087 SetProp(P_SEITE, 0); 00088 write("Du hast das Buch ausgelesen und schliesst es.\n"); 00089 say(PL->name() + " hat ein Buch ausgelesen und schliesst es.\n",PL); 00090 } else { 00091 SetProp(P_SEITE, seite); 00092 write("Du blaetterst um.\n"); 00093 say(PL->name() + " blaettert um.\n",PL); 00094 } 00095 return 1; 00096 }

| load | ( | file | ) |
Definiert in Zeile 12 der Datei buch1.c.
Benutzt file() und old_explode().
Wird benutzt von blaettere(), create() und lies().
00012 { return old_explode(read_file(file), "@seite@\n"); }


| oeffne | ( | str | ) |
Definiert in Zeile 37 der Datei buch1.c.
Benutzt P_SEITE, PL, QueryProp() und SetProp().
00037 { 00038 if (!str || !id(str)) return 0; 00039 if (QueryProp(P_SEITE)) write("Es ist schon geoeffnet.\n"); 00040 else { 00041 SetProp(P_SEITE, 1); 00042 write("Du oeffnest das Buch auf Seite 1.\n"); 00043 say(PL->name() + " oeffnet ein Buch.\n",PL); 00044 } 00045 return 1; 00046 }

| schliesse | ( | str | ) |
Definiert in Zeile 48 der Datei buch1.c.
Benutzt P_SEITE, PL, QueryProp() und SetProp().
00048 { 00049 string was; 00050 00051 if (!str || !id(str)) return 0; 00052 if (!QueryProp(P_SEITE)) write("Es ist schon geschlossen.\n"); 00053 else { 00054 SetProp(P_SEITE, 0); 00055 write("Du schliesst das Buch wieder.\n"); 00056 say(PL->name() + " schliesst ein Buch wieder.\n",PL); 00057 } 00058 return 1; 00059 }

1.6.3