language.c-Dateireferenz

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

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define NEED_PROTOTYPES

Funktionen

void create ()
static int _query_article ()
static int _set_article (int art)
private string query_c_article (int casus)
private varargs string query_g_suffix (int gen, int casus, int anzahl)
varargs int SuggestArticle (string id)
varargs string QueryArticle (int casus, int dem, int force)
varargs string QueryOwn (int casus)
varargs string QueryPossPronoun (mixed what, int casus, int number)
varargs string QueryPronoun (int casus)
varargs string QueryDu (int casus, int gender, int zahl)
string QueryGenderString ()
varargs string DeclAdj (mixed adj, int casus, int demon)
static int _set_gender (int i)

Makro-Dokumentation

#define NEED_PROTOTYPES

Definiert in Zeile 16 der Datei language.c.


Dokumentation der Funktionen

static int _query_article (  )  [static]

Definiert in Zeile 26 der Datei language.c.

Benutzt P_ARTICLE und Query().

00026 { return !Query(P_ARTICLE); }

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

static int _set_article ( int  art  )  [static]

Definiert in Zeile 28 der Datei language.c.

Benutzt P_ARTICLE und Set().

00028 { return !Set(P_ARTICLE,!art); }

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

static int _set_gender ( int  i  )  [static]

Definiert in Zeile 195 der Datei language.c.

Benutzt P_GENDER, Query() und Set().

00196 {
00197   if (i>-1&&i<3) return Set(P_GENDER,i);
00198   return Query(P_GENDER);
00199 }

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

void create (  ) 

Definiert in Zeile 20 der Datei language.c.

00021 {
00022   return;
00023 }

varargs string DeclAdj ( mixed  adj,
int  casus,
int  demon 
)

Definiert in Zeile 164 der Datei language.c.

Benutzt P_GENDER, P_PLURAL und QueryProp().

00165 {
00166                 // Unregelmaessige Adjektive
00167                 if( pointerp(adj) ) return adj[casus]+" ";
00168 
00169   // Falscher Typ? Und Tschuess ...
00170   if (!stringp(adj)) return "";
00171 
00172   // Plural ist einfach
00173   if (QueryProp(P_PLURAL))
00174   {
00175     // Bestimmt
00176     if (demon) return adj+"en ";
00177 
00178     // Unbestimmt
00179     return adj + ({ "e ", "er ", "en ", "e " })[casus];
00180   }
00181   
00182   if ( demon )
00183     return adj + ({ ({ "e " , "en ", "en ", "e "  }),
00184                                     ({ "e " , "en ", "en ", "en " }),
00185                                     ({ "e " , "en ", "en ", "e "  }) })
00186       [(int)QueryProp( P_GENDER )][casus];
00187   else
00188     return adj + ({ ({ "es ", "en ", "en ", "es " }),
00189                                     ({ "er ", "en ", "en ", "en " }),
00190                                     ({ "e " , "en ", "en ", "e "  }) })
00191       [(int)QueryProp( P_GENDER )][casus];
00192 }

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

private string query_c_article ( int  casus  ) 

Definiert in Zeile 31 der Datei language.c.

Benutzt P_GENDER, P_PLURAL und QueryProp().

Wird benutzt von QueryArticle().

00032 {
00033   if (QueryProp(P_PLURAL))
00034     return ({ "die ", "der ", "den ", "die "})[casus];
00035 
00036   return ({ ({ "das ", "des ", "dem ", "das " }),
00037             ({ "der ", "des ", "dem ", "den " }),
00038             ({ "die ", "der ", "der ", "die " }) })
00039     [(int)QueryProp(P_GENDER)][casus];
00040 }

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

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

private varargs string query_g_suffix ( int  gen,
int  casus,
int  anzahl 
)

Definiert in Zeile 43 der Datei language.c.

00044 {
00045   return ({ ({ ({ "","e"}), ({"es","er"}), ({"em","en"}), ({  "","e"}) }),
00046                     ({ ({ "","e"}), ({"es","er"}), ({"em","en"}), ({"en","e"}) }),
00047                     ({ ({"e","e"}), ({"er","er"}), ({"er","en"}), ({ "e","e"}) }) })
00048     [gen][casus][anzahl];
00049 }

varargs string QueryArticle ( int  casus,
int  dem,
int  force 
)

Definiert in Zeile 72 der Datei language.c.

Benutzt P_ARTICLE, P_GENDER, P_NAME, P_PLURAL, query_c_article(), query_g_suffix(), QueryProp() und SuggestArticle().

Wird benutzt von name() und short().

00073 {
00074   // Kein Artikel
00075   if (!force &&!(QueryProp(P_ARTICLE))) return "";
00076 
00077   // Artikelart aussuchen
00078   if ( dem==2 ) dem = SuggestArticle(QueryProp(P_NAME));
00079 
00080   // Bestimmter Artikel
00081   if (dem) return query_c_article(casus);
00082 
00083   // Unbestimmter Artikel
00084   if (QueryProp(P_PLURAL)) return "";
00085   
00086   return sprintf("ein%s ",query_g_suffix((int)QueryProp(P_GENDER),casus));
00087 }

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

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

varargs string QueryDu ( int  casus,
int  gender,
int  zahl 
)

Definiert in Zeile 141 der Datei language.c.

00142 {
00143   return
00144     ({ ({({    "du",   "ihr"}),({    "du",   "ihr"}),({    "du",   "ihr"})}),
00145        ({({"deiner",  "euer"}),({"deiner",  "euer"}),({"deiner",  "euer"})}),
00146        ({({   "dir",  "euch"}),({   "dir",  "euch"}),({   "dir",  "euch"})}),
00147        ({({  "dich",  "euch"}),({  "dich",  "euch"}),({  "dich",  "euch"})})
00148      })[casus][gender][zahl];
00149 }

string QueryGenderString (  ) 

Definiert in Zeile 152 der Datei language.c.

Benutzt FEMALE, MALE, P_GENDER und QueryProp().

00153 {
00154   switch( (int)QueryProp( P_GENDER ))
00155   {
00156     case MALE:   return "maennlich";
00157     case FEMALE: return "weiblich";
00158   }
00159   return("saechlich"); //fall-through
00160 }

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

varargs string QueryOwn ( int  casus  ) 

Definiert in Zeile 90 der Datei language.c.

Benutzt P_GENDER, query_g_suffix() und QueryProp().

00091 {
00092   return sprintf("Dein%s ",query_g_suffix(QueryProp(P_GENDER),casus));
00093 }

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

varargs string QueryPossPronoun ( mixed  what,
int  casus,
int  number 
)

Definiert in Zeile 96 der Datei language.c.

Benutzt FEMALE, P_GENDER, P_PLURAL, query_g_suffix() und QueryProp().

00097 {
00098   int gen2;
00099 
00100   // Geschlecht ermitteln
00101   gen2 = (objectp(what)?(int)what->QueryProp(P_GENDER):(int)what);
00102 
00103   // Plural ist schoen einfach
00104   if (QueryProp(P_PLURAL)) return "ihr"+query_g_suffix(gen2, casus, number);
00105 
00106   return (((((int)QueryProp( P_GENDER ))==FEMALE )? "ihr":"sein")+
00107           query_g_suffix(gen2%3, casus, number));
00108 }

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

varargs string QueryPronoun ( int  casus  ) 

Definiert in Zeile 111 der Datei language.c.

Benutzt FEMALE, gender, MALE, P_GENDER, P_PLURAL, QueryProp(), WEM, WER und WESSEN.

00112 {
00113   int gender;
00114 
00115   // Plural ist immer einfach ...
00116   if (QueryProp(P_PLURAL)) 
00117   {
00118      if (casus==WEM) return "ihnen";
00119      return "sie";
00120   }
00121 
00122   switch(QueryProp(P_GENDER))
00123   {
00124     case FEMALE:
00125       if (casus==WESSEN) return "ihrer";
00126       if (casus==WEM) return "ihr";
00127       return "sie";
00128 
00129     case MALE:
00130       if (casus==WER) return "er";
00131       if (casus==WESSEN) return "seiner";
00132       if (casus==WEM) return "ihm";
00133       return "ihn";
00134   }    
00135   if (casus==WESSEN) return "seiner";
00136   if (casus==WEM) return "ihm";
00137   return "es"; //fall-through
00138 }

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

varargs int SuggestArticle ( string  id  ) 

Definiert in Zeile 52 der Datei language.c.

Benutzt ob(), obs und P_NAME.

Wird benutzt von QueryArticle().

00053 {
00054   object ob,*obs;
00055 
00056   // Raum oder Master: Bestimmt.
00057   if (!environment()) return 1;
00058 
00059   // Keine id? Dann raus
00060   if (!id) return 1;
00061 
00062   // Objekt mit gleichem Namen im env? Dann unbestimmt
00063   for ( ob=first_inventory(environment()) ; ob ; ob=next_inventory(ob) )
00064     if ( ob!=this_object()&& id==(string)ob->QueryProp(P_NAME) )
00065       return 0;
00066 
00067   // sonst bestimmt
00068   return 1;
00069 }

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

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

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