#include "/sys/thing/properties.h"#include "/sys/living/put_and_get.h"#include "/sys/living/description.h"#include <container.h>#include <player.h>#include <rooms.h>#include <wizlevels.h>#include <defines.h>#include <moving.h>#include <new_skills.h>#include <ansi.h>#include <sys_debug.h>
gehe zum Quellcode dieser Datei
Makrodefinitionen | |
| #define | NEED_PROTOTYPES |
| #define | I_AUTOLOAD 1 |
| #define | I_KEEP 4 |
| #define | I_FORMATTED 16 |
| #define | I_ARMOUR 64 |
| #define | I_SORT 256 |
| #define | I_WEAPON 1024 |
| #define | I_FORCE_SORT 4096 |
| #define | I_NO_TABLE 16384 |
Funktionen | |
| varargs mixed | More (string str, int fflag, string returnto) |
| void | create () |
| int | _toggle_brief () |
| private int | sortinv (mixed a, mixed b) |
| private string | collectinv (mixed obj) |
| private string | getflags (string arg, int flags) |
| static int | _check_keep (object ob) |
| static int | _check_visible (object ob) |
| int | _inventory (string str) |
| varargs int | _examine (string str, int mode) |
| varargs int | _sense_exa (string str, int mode) |
| varargs int | look_into (string str, int mode) |
| varargs string | env_descr (int allow_short, int flags, int force_short) |
| int | _look (string str) |
| int | _equipment (string arg) |
| static string * | _query_localcmds () |
Variablen | |
| private nosave int | exa_cnt |
| private nosave int | exa_time |
| private nosave string * | exa |
| #define I_ARMOUR 64 |
Definiert in Zeile 67 der Datei viewcmd.c.
Wird benutzt von _inventory() und getflags().
| #define I_AUTOLOAD 1 |
Definiert in Zeile 64 der Datei viewcmd.c.
Wird benutzt von _inventory() und getflags().
| #define I_FORMATTED 16 |
Definiert in Zeile 66 der Datei viewcmd.c.
Wird benutzt von _inventory() und getflags().
| #define I_KEEP 4 |
Definiert in Zeile 65 der Datei viewcmd.c.
Wird benutzt von _inventory() und getflags().
| #define I_NO_TABLE 16384 |
Definiert in Zeile 71 der Datei viewcmd.c.
Wird benutzt von _inventory() und getflags().
| #define I_SORT 256 |
Definiert in Zeile 68 der Datei viewcmd.c.
Wird benutzt von _inventory() und getflags().
| #define I_WEAPON 1024 |
Definiert in Zeile 69 der Datei viewcmd.c.
Wird benutzt von _inventory() und getflags().
| static int _check_keep | ( | object | ob | ) | [static] |
Definiert in Zeile 102 der Datei viewcmd.c.
Benutzt ME und P_KEEP_ON_SELL.
Wird benutzt von _inventory().
00103 { 00104 return (ob->QueryProp(P_KEEP_ON_SELL))==geteuid(ME); 00105 }

| static int _check_visible | ( | object | ob | ) | [static] |
| int _equipment | ( | string | arg | ) |
| varargs int _examine | ( | string | str, | |
| int | mode | |||
| ) |
Definiert in Zeile 239 der Datei viewcmd.c.
Benutzt _notify_fail(), base, CannotSee(), detail, done(), dtime(), env(), error(), exa, exa_cnt, exa_time, i, locate_objects(), log_file, ME, notify_fail(), ob(), old_explode(), P_REAL_RACE, P_REFERENCE_OBJECT, P_TRANSPARENT, QueryProp(), SENSE_VIEW, SetProp() und WEM.
Wird benutzt von _examine(), _look() und look_into().
00240 { 00241 object base, *objs, env; 00242 string what, detail, parent, out, error; 00243 int i, size, done; 00244 00245 if(CannotSee()) return 1; 00246 00247 _notify_fail("Was willst Du denn untersuchen?\n"); 00248 if (!str) return 0; 00249 00250 if (member(({"boden","decke","wand","waende"}),old_explode(str," ")[0]) == -1) { 00251 exa_cnt -= (time() - exa_time)/2; 00252 exa_time = time(); 00253 exa_cnt++; 00254 if (!exa) 00255 exa = ({ str }); 00256 else 00257 exa += ({ str }); 00258 if (exa_cnt > 10) { 00259 log_file("ARCH/LOOK", 00260 sprintf("%s: %s in %s\n%@O\n",dtime(time()),getuid(this_object()), 00261 environment() ? object_name(environment()) : "???",exa), 150000); 00262 exa_cnt = 0; 00263 exa = ({}); 00264 } 00265 else if (exa_cnt < 0) { 00266 exa_cnt = 0; 00267 exa = ({}); 00268 } 00269 } 00270 // do we look at an object in our environment ? 00271 if (sscanf(str,"%s in raum", what) || sscanf(str,"%s im raum", what)) 00272 base = environment(); 00273 // is the object inside of me (inventory) 00274 else if (sscanf(str,"%s in mir", what) || sscanf(str,"%s in dir", what)) 00275 base = this_object(); 00276 else { 00277 what = str; 00278 // get the last object we looked at 00279 base = QueryProp(P_REFERENCE_OBJECT); 00280 00281 // if a reference object exists, test for its existance in the room 00282 // or in our inventory 00283 if (objectp(base)) { 00284 if(member(deep_inventory(environment()), base) != -1) { 00285 // check if base is inside of a living or non-transparent object 00286 foreach(env : all_environment(base)) { 00287 // Living oder intransparenter Container? 00288 if (living(env) || !env->QueryProp(P_TRANSPARENT)) { 00289 // in dem Fall ist ende, aber wenn das gefundene Env nicht 00290 // dieses Living selber oder sein Env ist, wird das 00291 // Referenzobjekt zusaetzlich genullt. 00292 if (env != this_object() && env != environment()) 00293 base = 0; 00294 break; 00295 } 00296 } 00297 } 00298 else base = 0; // nicht im Raum oder Inventory 00299 } 00300 } 00301 00302 // scan input if we want a specific object to look at 00303 if(sscanf(what, "%s an %s", detail, parent) == 2 || 00304 sscanf(what, "%s am %s", detail, parent) == 2 || 00305 sscanf(what, "%s in %s", detail, parent) == 2 || 00306 sscanf(what, "%s im %s", detail, parent) == 2) 00307 { 00308 // if an ref object exists get its inventory, only if it is not a living 00309 if(base && !living(base)) 00310 objs = base->locate_objects(parent, 1); 00311 else { 00312 // else get our inv and env 00313 objs = environment()->locate_objects(parent, 1) 00314 + locate_objects(parent, 1); 00315 } 00316 if(sizeof(objs) > 1) 00317 return (notify_fail("Es gibt mehr als ein "+capitalize(parent)+".\n"), 0); 00318 else 00319 if(sizeof(objs)) base = objs[0]; 00320 else return (notify_fail("Hier ist kein "+capitalize(parent)+".\n"), 0); 00321 objs = 0; 00322 } 00323 else detail = what; 00324 00325 do { 00326 // if a base exists get its inventory, else get our inv and env 00327 if (base) { 00328 if (base == this_object() || base == environment() || 00329 (base->QueryProp(P_TRANSPARENT) && !living(base))) 00330 objs = base->locate_objects(detail, 1); 00331 } 00332 else { 00333 objs = environment()->locate_objects(detail, 1) 00334 + locate_objects(detail, 1); 00335 base = environment(); 00336 } 00337 00338 if(!pointerp(objs) || !sizeof(filter_objects(objs,"short"))) { 00339 if((out = base->GetDetail(detail, QueryProp(P_REAL_RACE),SENSE_VIEW)) || 00340 (out = base->GetDoorDesc(detail))) 00341 { 00342 SetProp(P_REFERENCE_OBJECT, base); 00343 return (write(out), 1); 00344 } 00345 else { 00346 if (base == environment()) { 00347 return (_notify_fail((error?error:"")+"Sowas siehst Du "+(error? 00348 "auch ":"") 00349 +"da nicht!\n"), 0); 00350 } 00351 else { 00352 error = "Du findest an "+base->name(WEM)+" kein \"" 00353 + capitalize(detail)+"\".\n" 00354 + "Dein Blick wendet sich der Umgebung zu.\n"; 00355 base = 0; 00356 } 00357 } 00358 } 00359 else done = 1; 00360 } while(!done); 00361 00362 // Examine all found objects 00363 _notify_fail("Sowas siehst Du nicht.\n"); 00364 foreach(object ob: objs) { 00365 if (ob->short()) { 00366 SetProp(P_REFERENCE_OBJECT, ob); 00367 tell_object(ME, ob->long(mode)); 00368 return 1; 00369 } 00370 } 00371 00372 return 0; 00373 }


| int _inventory | ( | string | str | ) |
Definiert in Zeile 112 der Datei viewcmd.c.
Benutzt _check_keep(), _notify_fail(), _unparsed_args(), ANSI_BOLD, ANSI_NORMAL, armours, CannotSee(), error(), flags, format(), i, I_ARMOUR, I_AUTOLOAD, I_FORMATTED, I_KEEP, I_NO_TABLE, I_SORT, I_WEAPON, inventory, IS_LEARNING, make_invlist(), ME, misc, More(), output, P_ARMOUR_TYPE, P_AUTOLOADOBJ, P_TTY, P_WEAPON_TYPE, QueryProp() und weapons.
00113 { 00114 mixed *args, output; 00115 int ansi, i, flags, minv; 00116 mixed inventory, weapons, armours, misc; 00117 string format; 00118 00119 if(CannotSee()) return 1; 00120 00121 if((str = _unparsed_args()) && str!="") 00122 { 00123 string error; 00124 error = "Benutzung: i[nventar] [-/+1abfrsvw]\n"; 00125 args = regexp(regexplode(str, "[-+][1abfrswv][1abfrswv]*"), 00126 "[-+][1abfrswv][1abfrswv]*"); 00127 if(!sizeof(args)) return (_notify_fail(error), 0); 00128 if(sizeof(args = map(args, #'getflags/*'*/, &flags) - ({ 0 }))) 00129 { 00130 printf("%s: Unbekanntes Argument.\n"+error, implode(args, ", ")); 00131 return 1; 00132 } 00133 } 00134 // Fuer Spieler gehen nur sichtbare Objekte in den Algorithmus 00135 if (IS_LEARNING(ME)) 00136 inventory = all_inventory(ME); 00137 else 00138 inventory = filter( all_inventory(ME), "_check_visible"); 00139 00140 ansi = member(({"vt100", "ansi"}), QueryProp(P_TTY)) != -1; 00141 minv = 1 | (flags & (I_FORMATTED | (I_FORMATTED << 1)) ? 2 : 0); 00142 format = (flags & I_NO_TABLE) ? "=" : "#"; 00143 00144 // if(flags & (I_FORCE_SORT | I_FORCE_SORT << 1)) 00145 // { 00146 // closure sf; 00147 // sf = flags & I_FORCE_SORT ? #'> : #'<; 00148 // s = sort_array(s, lambda(({'a, 'b}), 00149 // ({#'funcall, sf, 00150 // ({#'||,({#'call_other,'a,"short"}),""}), 00151 // ({#'||,({#'call_other,'b,"short"}),""})}))); 00152 // map_objects(s, "move", this_object()); 00153 // s = all_inventory(ME); 00154 // } 00155 00156 if (flags & I_AUTOLOAD) 00157 inventory = filter_objects(inventory,"QueryProp",P_AUTOLOADOBJ); 00158 else if (flags & (I_AUTOLOAD << 1)) 00159 inventory -= filter_objects(inventory,"QueryProp",P_AUTOLOADOBJ); 00160 00161 if(flags & I_KEEP) 00162 inventory = filter(inventory,#'_check_keep); 00163 else if(flags & (I_KEEP << 1)) 00164 inventory -= filter(inventory,#'_check_keep); 00165 00166 armours = filter_objects(inventory, "QueryProp", P_ARMOUR_TYPE); 00167 // Kleidung dazu addieren, vorher die erkannten Ruestungen abziehen, die 00168 // muessen nicht nochmal durchiteriert werden. 00169 armours += filter_objects(inventory-armours, "IsClothing"); 00170 // Ruestungen werden hier nicht abgezogen, weil es Kram gibt, welche sowohl 00171 // Ruestung als auch Waffe ist. 00172 weapons = filter_objects(inventory, "QueryProp", P_WEAPON_TYPE); 00173 misc = inventory - weapons - armours; // rest ;-) 00174 00175 if(flags & I_WEAPON) 00176 { 00177 inventory = weapons; misc = ({}); 00178 if(!(flags & (I_ARMOUR))) armours = ({}); 00179 } 00180 if(flags & I_ARMOUR) 00181 { 00182 inventory = armours; misc = ({}); 00183 if(!(flags & I_WEAPON)) weapons = ({}); 00184 } 00185 if(flags & (I_WEAPON << 1)) { weapons = ({}); inventory = armours + misc; } 00186 if(flags & (I_ARMOUR << 1)) { armours = ({}); inventory = weapons + misc; } 00187 00188 output = ""; 00189 if(flags & (I_FORMATTED | (I_FORMATTED << 1))) 00190 { 00191 inventory = make_invlist(this_player(), inventory, minv); 00192 if(flags & (I_SORT | (I_SORT << 1))) 00193 inventory = sort_array(inventory, #'sortinv/*'*/); 00194 output += sprintf("%"+format+"-78s\n", 00195 implode(map(inventory,#'collectinv/*'*/),"\n")); 00196 } 00197 else 00198 { 00199 if(weapons && sizeof(weapons)) 00200 { 00201 weapons = make_invlist(this_player(), weapons, minv); 00202 if(flags & (I_SORT | (I_SORT << 1))) 00203 weapons = sort_array(weapons, #'sortinv/*'*/); 00204 output += (ansi?ANSI_BOLD:"") + "Waffen:" + (ansi?ANSI_NORMAL:"")+"\n" 00205 + sprintf("%"+format+"-78s\n", 00206 implode(map(weapons, #'collectinv/*'*/), "\n")); 00207 } 00208 if(armours && sizeof(armours)) 00209 { 00210 armours = make_invlist(this_player(), armours, minv); 00211 if(flags & (I_SORT | (I_SORT << 1))) 00212 armours = sort_array(armours, #'sortinv/*'*/); 00213 output += (ansi?ANSI_BOLD:"") 00214 + "Kleidung & Ruestungen:" + (ansi?ANSI_NORMAL:"")+"\n" 00215 + sprintf("%"+format+"-78s\n", 00216 implode(map(armours, #'collectinv/*'*/), "\n")); 00217 } 00218 if(misc && sizeof(misc)) 00219 { 00220 misc = make_invlist(this_player(), misc, minv); 00221 if(flags & (I_SORT | (I_SORT << 1))) 00222 misc = sort_array(misc, #'sortinv/*'*/); 00223 output += (ansi?ANSI_BOLD:"") + "Verschiedenes:" + (ansi?ANSI_NORMAL:"")+"\n" 00224 + sprintf("%"+format+"-78s\n", 00225 implode(map(misc, #'collectinv/*'*/), "\n")); 00226 } 00227 } 00228 00229 if (output=="") 00230 output += (ansi?ANSI_BOLD:"")+"Die Liste ist leer."+(ansi?ANSI_NORMAL:""); 00231 More(output); 00232 return 1; 00233 }

| int _look | ( | string | str | ) |
Definiert in Zeile 531 der Datei viewcmd.c.
Benutzt _examine(), CannotSee(), env_descr(), flag, look_into(), P_REFERENCE_OBJECT und SetProp().
00532 { 00533 string s; 00534 int flag; 00535 00536 if(CannotSee()) return 1; 00537 00538 if(!str) 00539 { 00540 SetProp(P_REFERENCE_OBJECT, 0); 00541 write( env_descr() ); 00542 return 1; 00543 } 00544 if(str=="-f" || str=="genau") 00545 { 00546 SetProp(P_REFERENCE_OBJECT, 0); 00547 write( env_descr(0,2) ); 00548 return 1; 00549 } 00550 if(str=="-k" || str=="kurz") 00551 { 00552 SetProp(P_REFERENCE_OBJECT, 0); 00553 write( env_descr(1,2,1) ); 00554 return 1; 00555 } 00556 if(str[0..2]=="-f "){ 00557 flag=2; 00558 str=str[3..]; 00559 } 00560 else if(str[0..5]=="genau "){ 00561 flag=2; 00562 str=str[6..]; 00563 } 00564 else flag = 0; 00565 if (sscanf(str,"%s an",s)) str=s; 00566 if (sscanf(str,"%s in mir",s)||sscanf(str,"%s in dir",s)) return _examine(str,flag); 00567 if (sscanf(str,"in %s",s)) return look_into(s,flag); 00568 return _examine(str,flag); 00569 }

| static string* _query_localcmds | ( | ) | [static] |
Definiert in Zeile 578 der Datei viewcmd.c.
00579 { 00580 return 00581 ({({"ausruestung", "_equipment",0,0}), 00582 ({"i","_inventory",0,0}), 00583 ({"inv","_inventory",0,0}), 00584 ({"inventur","_inventory",0,0}), 00585 ({"schau","_look",0,0}), 00586 ({"schaue","_look",0,0}), 00587 ({"unt","_examine",0,0}), 00588 ({"untersuch","_examine",0,0}), 00589 ({"betracht","_examine",0,0}), 00590 ({"untersuche","_examine",0,0}), 00591 ({"betrachte","_examine",0,0}), 00592 ({"betr","_examine",0,0}), 00593 ({"lausche","_sense_exa",0,0}), 00594 ({"lausch","_sense_exa",0,0}), 00595 ({"hoer","_sense_exa",0,0}), 00596 ({"hoere","_sense_exa",0,0}), 00597 ({"schnupper","_sense_exa",0,0}), 00598 ({"schnuppere","_sense_exa",0,0}), 00599 ({"riech","_sense_exa",0,0}), 00600 ({"rieche","_sense_exa",0,0}), 00601 ({"kurz","_toggle_brief",0,0}), 00602 ({"lang","_toggle_brief",0,0}), 00603 ({"ultrakurz","_toggle_brief",0,0}) 00604 }); 00605 }
| varargs int _sense_exa | ( | string | str, | |
| int | mode | |||
| ) |
Definiert in Zeile 375 der Datei viewcmd.c.
Benutzt _notify_fail(), base, detail, done(), env(), error(), GetDetail(), i, locate_objects(), notify_fail(), P_DEAF, P_REAL_RACE, P_REFERENCE_OBJECT, P_TRANSPARENT, QueryProp(), SENSE_DEFAULT, SENSE_SMELL, SENSE_SOUND und SetProp().
00376 { 00377 object base, *objs, env; 00378 string what, detail, parent, out, error; 00379 int i, size, done, sense; 00380 00381 if(member(({"lausche","lausch","hoer","hoere"}),query_verb())==-1){ 00382 _notify_fail("Du kannst nichts Besonderes riechen.\n"); 00383 sense = SENSE_SMELL; 00384 }else{ 00385 if(QueryProp(P_DEAF)) 00386 return notify_fail("Du bist taub!\n"), 0; 00387 00388 _notify_fail("Du kannst nichts Besonderes hoeren.\n"); 00389 sense = SENSE_SOUND; 00390 } 00391 00392 if (!str){ 00393 if(!detail = 00394 environment()->GetDetail(SENSE_DEFAULT,QueryProp(P_REAL_RACE),sense)) 00395 return 0; 00396 write(detail); 00397 return 1; 00398 } 00399 else if(sscanf(str,"an %s",what)==1)str=what; 00400 00401 // do we look at an object in our environment ? 00402 if (sscanf(str,"%s in raum", what) || sscanf(str,"%s im raum", what)) 00403 base = environment(); 00404 else 00405 // is the object inside of me (inventory) 00406 if (sscanf(str,"%s in mir", what) || sscanf(str,"%s in dir", what)) 00407 base = this_object(); 00408 else 00409 { 00410 what = str; 00411 // get the last object we looked at 00412 base = QueryProp(P_REFERENCE_OBJECT); 00413 00414 // if a reference object exists, test for its existance in the room 00415 // or in our inventory 00416 if(base) 00417 if(member(deep_inventory(environment()), base) != -1) 00418 { 00419 env = base; 00420 // check if base is inside of a living or non-transparent object 00421 while((env = environment(env)) && 00422 !living(env) && env->QueryProp(P_TRANSPARENT)) 00423 /* do nothing */; 00424 if(env && env != this_object() && env != environment()) base = 0; 00425 } 00426 else base = 0; 00427 } 00428 00429 // scan input if we want a specific object to look at 00430 if(sscanf(what, "%s an %s", detail, parent) == 2 || 00431 sscanf(what, "%s am %s", detail, parent) == 2 || 00432 sscanf(what, "%s in %s", detail, parent) == 2 || 00433 sscanf(what, "%s im %s", detail, parent) == 2) 00434 { 00435 // if an ref object exists get its inventory, only if it is not a living 00436 if(base && !living(base)) 00437 objs = base->locate_objects(parent, 1); 00438 else 00439 // else get our inv and env 00440 objs = environment()->locate_objects(parent, 1) 00441 + locate_objects(parent, 1); 00442 if(sizeof(objs) > 1) 00443 return (notify_fail("Es gibt mehr als ein "+capitalize(parent)+".\n"), 0); 00444 else 00445 if(sizeof(objs)) base = objs[0]; 00446 else return (notify_fail("Hier ist kein "+capitalize(parent)+".\n"), 0); 00447 objs = 0; 00448 } 00449 else detail = what; 00450 00451 do { 00452 // if a base exists get its inventory, else get our inv and env 00453 if(base) 00454 if(base == this_object() || base == environment() || 00455 (base->QueryProp(P_TRANSPARENT) && !living(base))) 00456 objs = base->locate_objects(detail, 1); 00457 else ; 00458 else 00459 { 00460 objs = environment()->locate_objects(detail, 1) 00461 + locate_objects(detail, 1); 00462 base = environment(); 00463 } 00464 00465 if(!objs || !sizeof(objs)) 00466 if(out = base->GetDetail(detail, QueryProp(P_REAL_RACE),sense)) 00467 { 00468 SetProp(P_REFERENCE_OBJECT, base); 00469 return (write(out), 1); 00470 } 00471 else 00472 if(base == environment()) 00473 return 0; 00474 else 00475 { 00476 base = 0; 00477 } 00478 else done = 1; 00479 } while(!done); 00480 00481 // Examine all found objects 00482 size = sizeof(objs); 00483 for (i = 0; i < size; i++) 00484 if(objs[i]->short() && 00485 (out=objs[i]->GetDetail(SENSE_DEFAULT,QueryProp(P_REAL_RACE),sense))) 00486 { 00487 SetProp(P_REFERENCE_OBJECT, objs[i]); 00488 write(out); 00489 return 1; 00490 } 00491 00492 return 0; 00493 }

| int _toggle_brief | ( | ) |
Definiert in Zeile 39 der Datei viewcmd.c.
Benutzt P_BRIEF und SetProp().
00040 { 00041 int brief; 00042 00043 if (query_verb()=="kurz") 00044 brief=1; 00045 else if (query_verb()=="ultrakurz") 00046 brief=2; 00047 else brief=0; 00048 SetProp(P_BRIEF, brief); 00049 write("Du bist nun im \""+ 00050 (brief?(brief==1?"Kurz":"Ultrakurz"):"Lang")+"\"modus.\n"); 00051 return 1; 00052 }

| private string collectinv | ( | mixed | obj | ) |
| void create | ( | ) |
| varargs string env_descr | ( | int | allow_short, | |
| int | flags, | |||
| int | force_short | |||
| ) |
Definiert in Zeile 516 der Datei viewcmd.c.
Benutzt env(), ME, P_BRIEF und QueryProp().
Wird benutzt von _look().
00517 { 00518 object env; 00519 int brief; 00520 00521 env = environment(ME); 00522 00523 if(!env) 00524 return "Du schwebst im Nichts ... Du siehst nichts, rein gar nichts ...\n"; 00525 00526 if (!force_short && (!allow_short || !QueryProp(P_BRIEF))) return env->int_long(ME,ME,flags); 00527 if (!flags && ((brief=QueryProp(P_BRIEF))>=2)) return ""; 00528 return env->int_short(ME,ME); 00529 }


| private string getflags | ( | string | arg, | |
| int | flags | |||
| ) |
Definiert in Zeile 73 der Datei viewcmd.c.
Benutzt i, I_ARMOUR, I_AUTOLOAD, I_FORMATTED, I_KEEP, I_NO_TABLE, I_SORT und I_WEAPON.
00074 { 00075 int no, i; 00076 if(strlen(arg) < 2) return 0; 00077 no = (arg[0] == '-'); 00078 00079 for(i = 1; i < strlen(arg); i++) 00080 { 00081 switch(arg[i]) 00082 { 00083 case 'a': flags |= I_AUTOLOAD << no; break; 00084 case 'b': flags |= I_KEEP << no; break; 00085 case 'f': flags |= I_FORMATTED << no; break; 00086 case 'r': flags |= I_ARMOUR << no; break; 00087 case 's': flags |= I_SORT << no; break; 00088 case 'w': flags |= I_WEAPON << no; break; 00089 case 'v': flags |= (I_ARMOUR | I_WEAPON) << !no; break; 00090 case '1': flags |= I_NO_TABLE; break; 00091 // Die Option macht nur Aerger und kommentiert ist sie eh nicht. 00092 // Wer das dringend braucht, soll Wargons Schiebepuzzle benutzen. 00093 // 00094 // Tiamak, 15.10.2000 00095 // case 'S': flags |= I_FORCE_SORT << no; break; 00096 default : return arg[i..i]; // wird ausgegeben an Spieler als unbekannt. 00097 } 00098 } 00099 return 0; 00100 }
| varargs int look_into | ( | string | str, | |
| int | mode | |||
| ) |
Definiert in Zeile 495 der Datei viewcmd.c.
Benutzt _examine(), _notify_fail(), CannotSee(), find_obs(), GetDetail(), P_REAL_RACE, PUT_GET_NONE und QueryProp().
Wird benutzt von _look().
00496 { 00497 object *found_obs; 00498 00499 if( CannotSee() ) return 1; 00500 _notify_fail("Wo willst Du denn reinschauen ?\n"); 00501 found_obs=find_obs(str,PUT_GET_NONE); 00502 if (!found_obs) 00503 { 00504 if (environment() && 00505 (environment()->GetDetail(str,QueryProp(P_REAL_RACE))|| 00506 environment()->GetDoorDesc(str))) 00507 _notify_fail("Da kannst Du so nicht reinsehen.\n"); 00508 return 0; 00509 } 00510 return _examine(str, mode); 00511 }


| varargs mixed More | ( | string | str, | |
| int | fflag, | |||
| string | returnto | |||
| ) |
| private int sortinv | ( | mixed | a, | |
| mixed | b | |||
| ) |
| private nosave string* exa |
Definiert in Zeile 237 der Datei viewcmd.c.
Wird benutzt von _examine().
| private nosave int exa_cnt |
Definiert in Zeile 235 der Datei viewcmd.c.
Wird benutzt von _examine().
| private nosave int exa_time |
Definiert in Zeile 236 der Datei viewcmd.c.
Wird benutzt von _examine().
1.6.3