#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>
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 |
| #define NEED_PROTOTYPES |
Definiert in Zeile 15 der Datei container_description.c.
| 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 }

| private string collect | ( | mixed | obj | ) |
Definiert in Zeile 115 der Datei container_description.c.
| 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 }

| 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 }

| 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 }

| 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 }

| 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 }

| inherit std thing description |
Definiert in Zeile 13 der Datei container_description.c.
1.6.3