room_locator.c-Dateireferenz

#include <properties.h>
#include <moving.h>
#include "/secure/master.h"
Include-Abhängigkeitsdiagramm für room_locator.c:

gehe zum Quellcode dieser Datei

Funktionen

static private int allowed ()
 create ()
 make (ob)
 updall (all)
 doone (ob)
 doit ()

Variablen

object * obs

Dokumentation der Funktionen

static private int allowed (  )  [static]

Definiert in Zeile 7 der Datei room_locator.c.

Benutzt ARCH_SECURITY und process_call().

00008 {
00009   if (!process_call() && previous_object() && this_interactive() && ARCH_SECURITY)
00010     return 1;
00011   return 0;
00012 }

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

create (  ) 

Definiert in Zeile 14 der Datei room_locator.c.

00014 {}

doit (  ) 

Definiert in Zeile 99 der Datei room_locator.c.

Benutzt call_out(), debug_info(), doone(), ob() und obs.

00100 {
00101   object ob;
00102 
00103   obs=({});
00104   ob=debug_info(2,0);
00105 
00106   while (ob)
00107   {
00108     doone(ob);
00109     ob=debug_info(2,ob);
00110   }
00111   write("Done with "+sizeof(obs)+" obs ...\n");
00112   call_out("updall",1,obs);
00113 }

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

doone ( ob   ) 

Definiert in Zeile 93 der Datei room_locator.c.

Benutzt ob() und obs.

Wird benutzt von doit().

00094 {
00095   if (member(inherit_list(ob),"/std/room.c")!=-1)
00096     obs+=({ob});
00097 }

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

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

make ( ob   ) 

Definiert in Zeile 16 der Datei room_locator.c.

Benutzt allowed, destruct(), env(), err, file(), i, list, M_NO_SHOW, M_NOCHECK, M_SILENT, M_TPORT und ob().

00017 {
00018   object *list, env;
00019   string file,temp,dummy,err;
00020   int i,cloned;
00021 
00022   if (!allowed()) return -1;
00023   env=environment(ob);
00024   file=object_name(ob);
00025   write("Updating "+object_name(ob)+"...\n");
00026   if (sscanf(file,"%s#%s",temp,dummy)==2)
00027   {
00028     file=temp;
00029     cloned=1;
00030   }
00031   else
00032     cloned=0;
00033   list=all_inventory(ob);
00034   for (i=sizeof(list)-1;i>=0;i--)
00035     if (list[i] && query_once_interactive(list[i]))
00036     {
00037       list[i]->move("room/void",M_TPORT | M_SILENT | M_NO_SHOW | M_NOCHECK);
00038     } else
00039       list[i]=0;
00040   list-=({0});
00041   
00042   if (ob)
00043   {
00044     ob->remove();
00045     if( ob ) destruct(ob);
00046   }
00047   if (cloned)
00048   {
00049     if (ob=find_object(file))
00050     {
00051       ob->remove();
00052       if (ob)
00053                 destruct(ob);
00054     }
00055     err=catch(ob=clone_object(file));
00056     if (!err)
00057       ob->move(env,M_TPORT | M_SILENT | M_NO_SHOW | M_NOCHECK);
00058   }
00059   else
00060   {
00061     err=catch(call_other(file,"???"));
00062     if (!err)
00063       ob=find_object(file);
00064     else
00065       ob=0;
00066   }
00067 
00068   if (!ob)
00069   {
00070     write("Error in loaded object. Staying in void ...\n");
00071     return;
00072   }
00073   for (i=sizeof(list)-1;i>=0;i--)
00074     if (list[i])
00075       list[i]->move(ob,M_TPORT | M_SILENT | M_NO_SHOW | M_NOCHECK);
00076 }

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

updall ( all   ) 

Definiert in Zeile 78 der Datei room_locator.c.

Benutzt all, call_out(), find_player(), i und make().

00079 {
00080   mixed *todo;
00081   int i;
00082 
00083   tell_object(find_player("jof"),sprintf("%d left\n",sizeof(all)));
00084   if (sizeof(all)>25)
00085   {
00086     todo=all[0..24];
00087     call_out("updall",1,all[24..]);
00088   } else todo=all; 
00089   for (i=sizeof(todo)-1;i>=0;i--)
00090     make(todo[i]);
00091 }

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


Variablen-Dokumentation

object* obs

Definiert in Zeile 5 der Datei room_locator.c.

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