description.c-Dateireferenz

#include <thing/language.h>
#include <player/description.h>
#include <living/clothing.h>
#include <properties.h>
#include <wizlevels.h>
#include <defines.h>
#include <combat.h>
#include <sys_debug.h>
Include-Abhängigkeitsdiagramm für description.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define RassenString()

Funktionen

void create ()
string _query_info ()
int _query_size ()
string short ()
private string andlist (object *arr)
private string get_vis_name (object ob)
varargs string long ()
static mixed _query_presay ()
static string _query_name ()

Variablen

inherit std living description

Makro-Dokumentation

 
#define RassenString (  ) 
Wert:
((QueryProp(P_FROG) ? "en Frosch" :\
       (!QueryProp(P_GENDER)?" ":QueryProp(P_GENDER)==2?"e ":"en ")+\
       (pointerp(QueryProp(P_RACESTRING))?\
        QueryProp(P_RACESTRING)[WEN]:QueryProp(P_RACE))))

Wird benutzt von long().


Dokumentation der Funktionen

string _query_info (  ) 

Definiert in Zeile 36 der Datei description.c.

Benutzt info, IS_ARCH, IS_DOMAINMEMBER, IS_ELDER, IS_GOD, IS_LEARNER, IS_LORD, IS_SEER, IS_SPECIAL, IS_WIZARD, P_INFO, P_LEVEL, Query(), query_wiz_level() und QueryProp().

00037 {
00038   string info;
00039   info = Query(P_INFO);
00040   if(!info)info=="";
00041   info = (string)query_wiz_level(this_object());
00042   if(IS_GOD(this_object()))
00043     return info+" [Gott]\n";
00044   if(IS_ARCH(this_object()))
00045     return info+" [Erzmagier]\n";
00046   if(IS_ELDER(this_object()))
00047     return info+" [Weiser]\n";
00048   if(IS_LORD(this_object()))
00049     return info+" [Regionschef]\n";
00050   if(IS_SPECIAL(this_object()))
00051     return info+" [Special]\n";
00052   if(IS_DOMAINMEMBER(this_object()))
00053     return info+" [Regionsmitarbeiter]\n";
00054   if(IS_WIZARD(this_object()))
00055     return info+" [Magier]\n";
00056   if(IS_LEARNER(this_object()))
00057     return info+" [Magieranwaerter]\n";
00058   info = QueryProp(P_LEVEL);
00059   if(IS_SEER(this_object()))
00060     return info+" [Seher]\n";
00061   return info+" [Spieler]\n";
00062 }

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

static string _query_name (  )  [static]

Definiert in Zeile 251 der Datei description.c.

Benutzt P_NAME und Query().

00252 {
00253   return capitalize(Query(P_NAME) || "NoName");
00254 }

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

static mixed _query_presay (  )  [static]

Definiert in Zeile 244 der Datei description.c.

Benutzt P_PRESAY, presay() und Query().

00245 {
00246   string presay;
00247   if((presay = Query(P_PRESAY)) && (presay != "")) return presay + " ";
00248   return "";
00249 }

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

int _query_size (  ) 

Definiert in Zeile 64 der Datei description.c.

Benutzt P_FROG, P_SIZE, Query() und QueryProp().

00064                   {
00065   if (QueryProp(P_FROG))
00066     return 20;
00067   return Query(P_SIZE);
00068 }

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

private string andlist ( object *  arr  ) 

Definiert in Zeile 101 der Datei description.c.

Benutzt CountUp() und WEN.

00101                                     {
00102   string *tmp;
00103   if(!pointerp(arr)) return "";
00104   if(sizeof(tmp = map_objects(arr, "name", WEN)))
00105     return(CountUp(tmp));
00106   return "";
00107 }

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

void create (  ) 

Definiert in Zeile 24 der Datei description.c.

Benutzt create(), F_MODE_AS, F_SET_METHOD, NOSETMETHOD, P_EXTRA_LOOK, P_GENDER, P_INFO, P_NAME, P_PRESAY, P_SIZE, P_TITLE, SAVE und Set().

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

private string get_vis_name ( object  ob  ) 

Definiert in Zeile 110 der Datei description.c.

Benutzt WEN.

Wird benutzt von long().

00110                                        {
00111   if (ob->QueryProp(P_INVIS))
00112     return 0;
00113   return (ob->name(WEN));
00114 }

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

varargs string long (  ) 

Definiert in Zeile 116 der Datei description.c.

Benutzt break_string(), CountUp(), get_vis_name(), long(), ME, name, ob(), P_ARMOURS, P_AVERAGE_SIZE, P_CLOTHING, P_GHOST, P_LIGHT, P_LIGHTED, P_PARRY_WEAPON, P_SHOW_INV, P_SIZE, P_TRANSPARENT, P_WEAPON, QueryPronoun(), QueryProp(), RassenString, SetProp(), WEM und WER.

00117 {
00118   string exl, descr, tmp, size_descr;
00119   object ob;
00120   mixed trans, w, a, r;
00121   int per;
00122   string fill, fill2;
00123   /* fuer groessenvergleich */
00124   string comparesize, pers1, pers2;
00125   int relation;
00126 
00127   per=1000*QueryProp(P_SIZE)/QueryProp(P_AVERAGE_SIZE);
00128   switch(per)
00129   {
00130     case 0..800: size_descr="ziemlich winzig"; break;
00131     case 801..850: size_descr="eher winzig"; break;
00132     case 851..900: size_descr="recht klein"; break;
00133     case 901..950: size_descr="eher klein"; break;
00134     case 951..1050: size_descr="mittelgross"; break;
00135     case 1051..1100: size_descr="relativ gross"; break;
00136     case 1101..1150: size_descr="ziemlich gross"; break;
00137     case 1151..1200: size_descr="sehr gross"; break;
00138     default: size_descr="riesig"; break;
00139   }
00140 #define RassenString() ((QueryProp(P_FROG) ? "en Frosch" :\
00141        (!QueryProp(P_GENDER)?" ":QueryProp(P_GENDER)==2?"e ":"en ")+\
00142        (pointerp(QueryProp(P_RACESTRING))?\
00143         QueryProp(P_RACESTRING)[WEN]:QueryProp(P_RACE))))
00144   fill2=fill=0;
00145   if (QueryProp(P_AVERAGE_SIZE)<170)
00146   {
00147     if (per<950)
00148       fill="selbst fuer ein"+RassenString()+" ";
00149     else
00150       if (per>1050)
00151   fill2=", wenn auch nur fuer ein"+RassenString();
00152   }
00153   else
00154   {
00155     if (QueryProp(P_AVERAGE_SIZE)>170)
00156       if (per>1050)
00157   fill="sogar fuer ein"+RassenString()+" ";
00158       else
00159   if (per<950)
00160     fill2=", wenn auch nur fuer ein"+RassenString();
00161   }
00162   if (!fill&&!fill2) fill="fuer ein"+RassenString()+" ";
00163   descr = "Das ist "+name(WER,1)+". "+capitalize(QueryPronoun())+" ist "+
00164     (fill||"")+size_descr+(fill2||"")+".\n";
00165 
00166   if(this_player()) {
00167     /* groessenvergleich_anfang (NEU) */
00168     pers1 = QueryPronoun(WER);
00169     pers2 = QueryPronoun(WEM);
00170  
00171     // || falls TP keine Groesse gesetzt hat... Warum auch immer...
00172     relation = (QueryProp(P_SIZE)*100) / 
00173                   (this_player()->QueryProp(P_SIZE) || 1);
00174     switch (relation) 
00175      {
00176      case   0 ..  25 : comparesize = "Damit gibt "+pers1+" einen guten"
00177                                      " Fusschemel fuer Dich ab"; 
00178                                      break;
00179      case  26 ..  50 : comparesize = "Damit reicht "+pers1+" Dir nicht mal bis"
00180                                      " zur Huefte"; 
00181                                      break;
00182      case  51 ..  75 : comparesize = "Damit kannst Du "+pers2+" locker auf den"
00183                                      " Kopf spucken"; 
00184                                      break;
00185      case  76 ..  90 : comparesize = "Damit ist "+pers1+" einen Kopf kleiner"
00186                                      " als Du"; 
00187                                      break;
00188      case  91 .. 110 : comparesize = "Damit hat "+pers1+" etwa Deine Groesse";
00189                                      break;  
00190      case 111 .. 120 : comparesize = "Damit ist "+pers1+" einen Kopf groesser" 
00191                                      " als Du";
00192                                      break;
00193      case 121 .. 150 : comparesize = "Damit holst Du Dir einen steifen Nacken,"
00194                                      " wenn Du "+pers2+" in die Augen siehst";
00195                                      break;
00196      case 151 .. 200 : comparesize = "Damit versperrt "+pers1+" Dir absolut"
00197                                                      " die Sicht"; 
00198                                      break;
00199      case 201 .. 300 : comparesize = "Damit waere jeder Schlag von Dir ein" 
00200                                      " Tiefschlag";
00201                                      break;
00202      default         : comparesize = "Damit kannst Du "+pers2+" bequem zwischen"
00203                                      " den Beinen durchlaufen";
00204                                      break;
00205      }
00206   
00207      descr+=comparesize+".\n";
00208      /* groessenvergleich_ende (NEU) */
00209    }
00210 
00211   if(QueryProp(P_GHOST)) return descr;
00212 
00213   trans = QueryProp(P_TRANSPARENT); SetProp(P_TRANSPARENT, 0);
00214   descr += ::long(); SetProp(P_TRANSPARENT, trans);
00215 
00216   // Waffen, Ruestungen/Kleidung und Sonstiges ermitteln
00217   w = ({QueryProp(P_WEAPON), QueryProp(P_PARRY_WEAPON)}) - ({0});
00218   a = QueryProp(P_ARMOURS) + QueryProp(P_CLOTHING) - ({0});
00219   r = all_inventory(ME) - w - a; //Rest logischerweise
00220 
00221   // rest noch nach sichbarkeit von ausserhalb des SPielers filtern.
00222   r=map(r,function string (object ob) {
00223                   if(sizeof(all_inventory(ob)) || ob->QueryProp(P_LIGHT) || 
00224                      ob->QueryProp(P_LIGHTED) || ob->QueryProp(P_SHOW_INV))
00225                     return(get_vis_name(ob));
00226           return(0); } ) - ({0});
00227 
00228   // Invis-Objekte ausfiltern und Namen ermitteln, anschliessend sind in w, a
00229   // und r je ein Array von Strings
00230   w = map(w, #'get_vis_name) - ({0});
00231   a = map(a, #'get_vis_name) - ({0});
00232 
00233   return descr +
00234          (QueryProp(P_TRANSPARENT) ?
00235           break_string(capitalize(name(WER, 1))+" hat "
00236                       +(sizeof(a)?CountUp(a):"keine Ruestung")+" an"
00237                       +(sizeof(r)?", ":" und ")
00238                       +(sizeof(w)?CountUp(w):"keine Waffe")+" gezueckt"
00239           +(sizeof(r)?" und traegt "+CountUp(r):"")+".", 78): "");
00240 }

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

string short (  ) 

Definiert in Zeile 71 der Datei description.c.

Benutzt IS_LEARNING, ME, P_ARTICLE, P_FROG, P_GHOST, P_NAME, P_PRESAY, P_TITLE, QueryArticle() und QueryProp().

00072 {
00073   string answer;
00074   string title;
00075 
00076   if(QueryProp(P_INVIS))
00077     if(interactive(previous_object()) && IS_LEARNING(previous_object()))
00078       return "("+QueryProp(P_NAME)+") \n";
00079     else
00080       return (string)0;
00081 
00082   if(QueryProp(P_GHOST))
00083   {
00084     if (QueryProp(P_FROG))
00085       return "Der Geist eines kleinen Frosches namens "+QueryProp(P_NAME)+
00086        ".\n";
00087     else
00088       return "Der Geist von "+QueryProp(P_NAME)+".\n";
00089   }
00090 
00091   if (QueryProp(P_FROG))
00092     return "Ein kleiner Frosch namens "+QueryProp(P_NAME)+".\n";
00093 
00094   answer = QueryProp(P_PRESAY) + QueryProp(P_NAME);
00095   if (QueryProp(P_ARTICLE)) answer=QueryArticle(0,0)+answer;
00096   if((title=QueryProp(P_TITLE)) && title != "") answer += " " + title;
00097   if(!interactive(ME)) answer += " (netztot)";
00098   return answer+".\n";
00099 }

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


Variablen-Dokumentation

inherit std living description

Definiert in Zeile 12 der Datei description.c.

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