buch.c-Dateireferenz

#include <properties.h>
#include <language.h>
Include-Abhängigkeitsdiagramm für buch.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define TP   this_player()
#define TPN   this_player()->name()

Funktionen

int getseitzahl ()
void create ()
static int oeffne ()
static int schliesse ()
static int blaettere (string str)
string buchinfo ()
string buchdir ()
void zeige_seite (string file, status clear)
string find_file (string dir, string file, int page)
string find_page (string dir, string file, int page)
string find_page_noascii (string dir, string file, int page, status noascii)
void lesseite (int seite)
void lesbuch ()
void titel ()
static int lies (string str)

Variablen

inherit std thing
int offen = 0
int seite = 0

Makro-Dokumentation

#define TP   this_player()

Definiert in Zeile 11 der Datei buch.c.

#define TPN   this_player()->name()

Definiert in Zeile 12 der Datei buch.c.

Wird benutzt von blaettere(), lesbuch(), lies(), oeffne() und schliesse().


Dokumentation der Funktionen

static int blaettere ( string  str  )  [static]

Definiert in Zeile 61 der Datei buch.c.

Benutzt getseitzahl(), offen, seite und TPN.

00061                                  {
00062   if (!offen || !stringp(str)) return 0;
00063   int zu_seite;
00064   if (sscanf(str,"zu seite %d",zu_seite)!=1) return 0;
00065   int seitenzahl = getseitzahl();
00066   if (zu_seite < 1 || zu_seite > seitenzahl) return 0;
00067   write("Du blaetterst zu Seite "+zu_seite+".\n");
00068   say(TPN + "blaettert in einem Buch.\n");
00069   seite=zu_seite;
00070   return 1;
00071 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

string buchdir (  ) 

Definiert in Zeile 82 der Datei buch.c.

Wird benutzt von lesseite().

00082                  {
00083   return "/obj/buch/";
00084 }

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

string buchinfo (  ) 

Definiert in Zeile 74 der Datei buch.c.

00074                   {
00075   return "'Standardbuch oder Wie man ein standardisiertes Buch schreibt'";
00076 }

void create (  ) 

Definiert in Zeile 19 der Datei buch.c.

Benutzt AddCmd(), AddId(), create(), NEUTER, P_GENDER, P_LONG, P_NAME, P_NOBUY, P_SHORT, P_WEIGHT und SetProp().

00019               {
00020   if (!clonep(this_object())) return;
00021   ::create();
00022   SetProp(P_SHORT, "Ein Buch");
00023   SetProp(P_LONG,
00024                 "Du haelst ein leinengebundenes Buch in Deinen Haenden. Der Titel heisst:\n"+
00025                 "@@buchinfo@@.\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&@ID", "lies", "Was willst Du lesen ? Syntax: LIES <ETWAS>.\n");
00032   AddCmd("oeffne&@ID","oeffne","Was willst Du oeffnen?");
00033   AddCmd("schliesse|schliess@ID","schliesse","Was willst Du schliessen?");
00034   AddCmd("blaettere","blaettere");
00035 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

string find_file ( string  dir,
string  file,
int  page 
)

Definiert in Zeile 115 der Datei buch.c.

Wird benutzt von clone(), find_page(), load(), soft_update_object() und update_object().

00115                                                     {
00116   string filename=dir+file+(page? (page<10 ? "0"+page : page ) : "");
00117   if (file_size(filename)>=0) return filename;
00118   filename=dir+file+(page? page : "");
00119   if (file_size(filename)>=0) return filename;
00120   return 0;
00121 }

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

string find_page ( string  dir,
string  file,
int  page 
)

Definiert in Zeile 124 der Datei buch.c.

Benutzt find_file() und seite.

Wird benutzt von find_page_noascii().

00124                                                     {
00125   string filename=find_file(dir,file,page);
00126   // eigentlich nur ungerade seiten gefordert
00127   if (!filename && seite%2==0) {
00128     return find_file(dir,file,page+1);
00129   }
00130   return filename;
00131 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

string find_page_noascii ( string  dir,
string  file,
int  page,
status  noascii 
)

Definiert in Zeile 136 der Datei buch.c.

Benutzt find_page().

Wird benutzt von lesseite().

00136                                                                             {
00137   if (noascii) {
00138     string noascii_dir=dir[..<2]+"_noascii/";
00139     if (file_size(noascii_dir)==-2) {
00140       string filename=find_page(noascii_dir,file,page);
00141       if (stringp(filename)) {
00142                 noascii=0;
00143                 return filename;
00144       }
00145     }
00146   }
00147   return find_page(dir,file,page);
00148 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

int getseitzahl (  ) 

Definiert in Zeile 78 der Datei buch.c.

Wird benutzt von blaettere() und lesbuch().

00078                   {
00079   return 3;
00080 }

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

void lesbuch (  ) 

Definiert in Zeile 163 der Datei buch.c.

Benutzt getseitzahl(), lesseite(), offen, seite, TP und TPN.

Wird benutzt von lies().

00163                {
00164   lesseite(seite);
00165   seite+=2;
00166   if (seite > getseitzahl()) {
00167     offen=0;
00168     seite=0;
00169     write("Du hast das Buch ausgelesen und schliesst es.\n");
00170     say(TPN + " hat ein Buch ausgelesen und schliesst es.\n",TP);
00171   } else {
00172     write("Du blaetterst um.\n");
00173     say(TPN + " blaettert um.\n",TP);
00174   }
00175 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

void lesseite ( int  seite  ) 

Definiert in Zeile 150 der Datei buch.c.

Benutzt buchdir(), find_page_noascii(), P_NO_ASCII_ART, TP und zeige_seite().

Wird benutzt von lesbuch() und titel().

00150                          {
00151   string dir=buchdir();
00152   status noascii=0;
00153   if (TP->QueryProp(P_NO_ASCII_ART)) {
00154     noascii=1;
00155   }
00156   string buch_file=find_page_noascii(dir,seite ? "seite" : "titel",seite,&noascii);
00157   if (!buch_file) {
00158     write("Buchdaten nicht gefunden!\n");
00159     return;
00160   }
00161   zeige_seite(buch_file,noascii);
00162 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

static int lies ( string  str  )  [static]

Definiert in Zeile 181 der Datei buch.c.

Benutzt lesbuch(), notify_fail(), offen, titel(), TP und TPN.

00181                             {
00182   string was;
00183   notify_fail("Zu welcher Seite willst Du blaettern?\n");
00184   if(!str) return 0;
00185   if(sscanf(str,"%s",was)!=1) return 0;
00186   if (!id(str)) return 0;
00187   say(TPN + " liest in einem Buch.\n",TP);
00188   if (offen) {
00189     lesbuch();
00190   } else {
00191     titel();
00192   }
00193   return 1;
00194 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

static int oeffne (  )  [static]

Definiert in Zeile 37 der Datei buch.c.

Benutzt offen, seite, TP und TPN.

00037                     {
00038   if (offen) 
00039     write("Es ist schon geoeffnet.\n");
00040   else {
00041     offen=1;
00042     seite=1;
00043     write("Du oeffnest das Buch auf Seite 1.\n");
00044     say(TPN + " oeffnet ein Buch.\n",TP);
00045   }
00046   return 1;
00047 }

static int schliesse (  )  [static]

Definiert in Zeile 49 der Datei buch.c.

Benutzt offen, seite, TP und TPN.

00049                        {
00050   if (!offen) 
00051     write("Es ist schon geschlossen.\n");
00052   else {
00053     offen=0;
00054     seite=0;
00055     write("Du schliesst das Buch wieder.\n");
00056     say(TPN + " schliesst ein Buch wieder.\n",TP);
00057   }
00058   return 1;
00059 }

void titel (  ) 

Definiert in Zeile 177 der Datei buch.c.

Benutzt lesseite().

Wird benutzt von lies() und stat().

00177              {
00178   lesseite(0);
00179 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

void zeige_seite ( string  file,
status  clear 
)

Definiert in Zeile 88 der Datei buch.c.

Benutzt count, i, len, lines, pages, text() und TP.

Wird benutzt von lesseite().

00088                                             {
00089   if (!clear) {
00090     TP->more(file,1);
00091     return;
00092   }
00093   string text=read_file(file);
00094   if (!stringp(text)) return;
00095   
00096   string* pages=({"",""});
00097   string* lines=explode(text,"\n");
00098   int len, count=sizeof(lines)-1;
00099   string line;
00100 
00101   for (int i=1;i<count;i++) {
00102     line=lines[i];
00103     len=strlen(line);
00104     if (len>50) {
00105       pages[0]+=line[1..len/2-2]+"\n";
00106       pages[1]+=line[len/2+2..<2]+"\n";
00107     }
00108     else
00109       pages[0]+=line[1..<2]+"\n";
00110   }
00111   TP->More((pages[0]+pages[1]));
00112 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:


Variablen-Dokumentation

int offen = 0

Definiert in Zeile 14 der Datei buch.c.

Wird benutzt von blaettere(), lesbuch(), lies(), oeffne() und schliesse().

int seite = 0

Definiert in Zeile 15 der Datei buch.c.

Wird benutzt von blaettere(), find_page(), lesbuch(), lies(), oeffne() und schliesse().

inherit std thing

Definiert in Zeile 6 der Datei buch.c.

Erzeugt am Thu Jun 3 14:39:34 2010 für MorgenGrauen Mudlib von  doxygen 1.6.3