container_description.c-Dateireferenz

#include <thing/properties.h>
#include <thing/description.h>
#include <thing/language.h>
#include <container.h>
#include <combat.h>
#include <thing/material.h>
#include <defines.h>
#include <wizlevels.h>
#include <player/base.h>
Include-Abhängigkeitsdiagramm für container_description.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define NEED_PROTOTYPES

Funktionen

void create ()
string dam_descr ()
string short ()
varargs string long (int mode)
mapping _query_material ()
private void stringenize (mixed obj, int flags, mixed objs, mixed info)
private string collect (mixed obj)
varargs mixed make_invlist (object viewer, mixed inv, int flags)

Variablen

inherit std thing description

Makro-Dokumentation

#define NEED_PROTOTYPES

Definiert in Zeile 15 der Datei container_description.c.


Dokumentation der Funktionen

mapping _query_material (  ) 

Definiert in Zeile 72 der Datei container_description.c.

Benutzt AT_AMULET, AT_ARMOUR, AT_BOOT, AT_CLOAK, AT_GLOVE, AT_HELMET, AT_RING, AT_SHIELD, AT_TROUSERS, P_ARMOUR_TYPE, P_MATERIAL, Query() und QueryProp().

00072                           {
00073   mixed res,at;
00074 
00075   if (mappingp(res=Query(P_MATERIAL)))
00076     return res;
00077   at=QueryProp(P_ARMOUR_TYPE);
00078   switch(at) {
00079     case AT_ARMOUR:
00080     case AT_HELMET:
00081     case AT_RING:
00082     case AT_AMULET:
00083     case AT_SHIELD:
00084     return ([MAT_MISC_METAL:100]);
00085     case AT_CLOAK:
00086     case AT_TROUSERS:
00087     return ([MAT_CLOTH:100]);
00088     case AT_GLOVE:
00089     case AT_BOOT:
00090     return ([MAT_CLOTH:100]);
00091   }
00092   return ([MAT_CLOTH:100]);
00093 }

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

private string collect ( mixed  obj  ) 

Definiert in Zeile 115 der Datei container_description.c.

00116 {
00117   if(!strlen(obj[0])) return 0;
00118   return obj[0] + (obj[1] > 1 ? " ("+obj[1]+")" : "");
00119 }

void create (  ) 

Definiert in Zeile 27 der Datei container_description.c.

Benutzt AddId(), create(), P_TRANSPARENT und SetProp().

00028 {
00029   ::create();
00030   SetProp(P_TRANSPARENT, 1);
00031   AddId("Container");
00032 }

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

string dam_descr (  ) 

Definiert in Zeile 34 der Datei container_description.c.

Benutzt desc, name, P_AC, P_DAM_DESC, P_DAMAGED, P_NAME, P_SHORT, QueryProp() und WER.

00035 {   string re;
00036     mixed desc;
00037     int maximum,dam,pos;
00038 
00039     if (!QueryProp(P_NAME) || !QueryProp(P_DAMAGED) || !QueryProp(P_SHORT) ||
00040         !(desc=QueryProp(P_DAM_DESC)) || (!stringp(desc) && !pointerp(desc)))
00041         return "";
00042     re = capitalize(name(WER,2))+" ";
00043     maximum = QueryProp(P_AC)+(dam=QueryProp(P_DAMAGED));
00044     if (stringp(desc))
00045         return (dam>(maximum/2))?(re+desc+".\n"):"";
00046     pos = (sizeof(desc)*dam/maximum);
00047     if (stringp(desc[pos]))
00048         return (re+desc[pos]+".\n");
00049     return "";
00050 }

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

varargs string long ( int  mode  ) 

Definiert in Zeile 59 der Datei container_description.c.

Benutzt dam_descr(), make_invlist(), ME, P_LONG, P_TRANSPARENT, PL, process_string(), QueryPronoun(), QueryProp() und WER.

00060 {   string descr, inv_descr;
00061 
00062     descr=(process_string(QueryProp(P_LONG)||"") + (dam_descr()||""));
00063     if (!QueryProp(P_TRANSPARENT))
00064       return descr;
00065 
00066     inv_descr = make_invlist(PL, all_inventory(ME), mode );
00067     if ( inv_descr != "" )
00068         descr += capitalize(QueryPronoun(WER)) + " enthaelt:\n" + inv_descr;
00069     return descr;
00070 }

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

varargs mixed make_invlist ( object  viewer,
mixed  inv,
int  flags 
)

Definiert in Zeile 123 der Datei container_description.c.

Benutzt IS_LEARNER und P_WANTS_TO_LEARN.

00124 {
00125   int iswiz;
00126   mixed objs, info;
00127   string descr;
00128 
00129   iswiz = IS_LEARNER( viewer ) && viewer->QueryProp(P_WANTS_TO_LEARN);
00130   descr = ""; objs = ({}); info = ({});
00131   map(inv, #'stringenize/*'*/, iswiz | (flags & 2) | (flags & 4), &objs, &info);
00132   if(flags & 1) return info;
00133   inv = map(info, #'collect/*'*/) - ({ 0 });
00134   if(!sizeof(inv)) return "";
00135   return sprintf("%"+(sizeof(inv) > 6 ? "#" : "=")+"-78s",
00136                  implode(inv, "\n")) + "\n";
00137 }

string short (  ) 

Definiert in Zeile 52 der Datei container_description.c.

Benutzt P_SHORT, P_WORN, process_string() und QueryProp().

00053 {   string s;
00054     if(!(s=process_string(QueryProp(P_SHORT))))
00055         return 0;
00056     return s+(QueryProp(P_WORN)?" (angezogen).\n":".\n");
00057 }

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

private void stringenize ( mixed  obj,
int  flags,
mixed  objs,
mixed  info 
)

Definiert in Zeile 97 der Datei container_description.c.

Benutzt id().

00098 {
00099   string id, tmp;
00100   int idx;
00101   tmp = capitalize(obj->short()||"")[0..<2]
00102       + (!(flags & 4) && (flags & 1) ? " ["+object_name(obj)+"]" : "");
00103   if(flags & 3 || living(obj)) id = object_name(obj);
00104   else
00105     id = explode(object_name(obj), "#")[0] + tmp;
00106   if((idx = member(objs, id)) == -1)
00107   {
00108     objs += ({ id });
00109     info += ({ ({ tmp, 1, obj}) });
00110   }
00111   else
00112     info[idx][1]++;
00113 }

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


Variablen-Dokumentation

inherit std thing description

Definiert in Zeile 13 der Datei container_description.c.

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