viewcmd.c-Dateireferenz

#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>
Include-Abhängigkeitsdiagramm für viewcmd.c:

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

Makro-Dokumentation

#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_FORCE_SORT   4096

Definiert in Zeile 70 der Datei viewcmd.c.

#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().

#define NEED_PROTOTYPES

Definiert in Zeile 13 der Datei viewcmd.c.


Dokumentation der Funktionen

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 }

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

static int _check_visible ( object  ob  )  [static]

Definiert in Zeile 107 der Datei viewcmd.c.

Benutzt P_SHORT.

00108 {
00109   return ( !(ob->QueryProp(P_INVIS)) && stringp(ob->QueryProp(P_SHORT)) );
00110 }

int _equipment ( string  arg  ) 

Definiert in Zeile 571 der Datei viewcmd.c.

Benutzt CannotSee() und ME.

00572 {
00573   if (CannotSee()) return 1;
00574   call_other("/std/player/invmaster/invmaster", "ShowInv", ME, arg);
00575   return 1;
00576 }

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

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 }

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

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

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 }

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

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 }

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

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 }

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

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 }

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

private string collectinv ( mixed  obj  ) 

Definiert in Zeile 56 der Datei viewcmd.c.

00057 {
00058   if(obj[0]=="") return 0;
00059   return (obj[2] ? " " : "")
00060        + obj[0]
00061        + (obj[1] > 1 ? " ("+obj[1]+")" : "");
00062 }

void create (  ) 

Definiert in Zeile 33 der Datei viewcmd.c.

Benutzt F_MODE, P_BLIND, P_BRIEF, SAVE und Set().

00034 {
00035   Set(P_BRIEF, SAVE, F_MODE);
00036   Set(P_BLIND, SAVE, F_MODE);
00037 }

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

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 }

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

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

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 }

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

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

varargs mixed More ( string  str,
int  fflag,
string  returnto 
)
private int sortinv ( mixed  a,
mixed  b 
)

Definiert in Zeile 54 der Datei viewcmd.c.

00054 { return a[0] > b[0]; }


Variablen-Dokumentation

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().

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