objectd.c-Dateireferenz

#include <rooms.h>
#include <properties.h>
#include <defines.h>
#include <daemon.h>
Include-Abhängigkeitsdiagramm für objectd.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define CLASS   0
#define DATA   1

Funktionen

void create ()
mixed AddObject (object obj, string env)
mixed RemoveObject (object obj, string env)
varargs void QueryObject (mixed env)
mixed QueryObjects (mixed env)
int clean_up (int arg)

Variablen

mapping objects

Makro-Dokumentation

#define CLASS   0

Definiert in Zeile 26 der Datei objectd.c.

#define DATA   1

Dokumentation der Funktionen

mixed AddObject ( object  obj,
string  env 
)

Definiert in Zeile 36 der Datei objectd.c.

Benutzt OBJECTD_SAVE, objects, P_AUTOLOAD und save_object().

Wird benutzt von compile_object().

00037 {
00038   if(!obj || !env || !objectp(obj) || !stringp(env)) return 0;
00039 
00040   // save information
00041   if(!member(objects, env))
00042     objects[env] = ({ ({  object_name(obj), obj->QueryProp(P_AUTOLOAD) }) });
00043   else
00044     objects[env] += ({ ({ object_name(obj), obj->QueryProp(P_AUTOLOAD) }) });
00045   save_object(OBJECTD_SAVE);
00046   return env;
00047 }

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

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

int clean_up ( int  arg  ) 

Definiert in Zeile 110 der Datei objectd.c.

00111 {
00112   if(arg>1) return 1;
00113   save_object(OBJECTD_SAVE);
00114   destruct(ME);
00115 }

void create (  ) 

Definiert in Zeile 29 der Datei objectd.c.

Benutzt ME, OBJECTD_SAVE, objects und restore_object().

00030 {
00031   seteuid(getuid(ME));
00032   objects = ([]);
00033   restore_object(OBJECTD_SAVE);
00034 }

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

varargs void QueryObject ( mixed  env  ) 

Definiert in Zeile 64 der Datei objectd.c.

Benutzt CLASS, DATA, i, IS_CLONE, OBJECTD_SAVE, objects, old_explode(), P_AUTOLOAD, REFRESH_DESTRUCT und save_object().

Wird benutzt von QueryInfo() und QueryObject().

00065 {
00066   mixed obj, oenv; int i;
00067 
00068   // take the caller as the questioning object
00069   if(!env || !stringp(env)) env = previous_object();
00070   else env = find_object(env);
00071 
00072   // target must be a blueprint
00073   if(IS_CLONE(env)) return 0;
00074 
00075   if(i = pointerp(obj = objects[env = object_name(oenv = env)])?sizeof(obj):0)
00076   {
00077     while(i--)
00078     {
00079        object o;
00080        string *n;
00081 
00082        n = old_explode(objects[env][i][CLASS], "#");
00083        if (sizeof(n) > 1)
00084          o = oenv->AddItem(n[0], REFRESH_DESTRUCT);
00085        else 
00086          o = oenv->AddItem(n[0], REFRESH_DESTRUCT, 1);
00087        o->SetProp(P_AUTOLOAD, objects[env][i][DATA]);
00088        objects[env][i][CLASS] = object_name(o);
00089     }
00090     save_object(OBJECTD_SAVE);
00091   }
00092 }

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

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

mixed QueryObjects ( mixed  env  ) 

Definiert in Zeile 94 der Datei objectd.c.

Benutzt IS_CLONE und objects.

Wird benutzt von remove().

00095 {
00096   mixed obj;
00097 
00098   // take the caller as the questioning object
00099   if(!env || !stringp(env)) env = previous_object();
00100   else env = find_object(env);
00101 
00102   // target must be a blueprint
00103   if(IS_CLONE(env)) return 0;
00104 
00105   if(obj = objects[object_name(env)])
00106     obj = map(obj, #'[, 0);
00107   return obj;
00108 }

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

mixed RemoveObject ( object  obj,
string  env 
)

Definiert in Zeile 49 der Datei objectd.c.

Benutzt CLASS, i, m_delete(), OBJECTD_SAVE, objects und save_object().

00050 {
00051   if(!obj || !env || !objectp(obj) || !stringp(env)) return 0;
00052 
00053   // save information
00054   if(member(objects, env))
00055   { int i;
00056     i = sizeof(objects[env]);
00057                 while(i && (objects[env][i-1][CLASS] != object_name(obj))) i--;
00058     if(i > 0) objects[env][i-1..i-1] = ({});
00059   }
00060   if(!sizeof(objects[env])) objects = m_delete(objects, env);
00061   save_object(OBJECTD_SAVE);
00062 }

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


Variablen-Dokumentation

mapping objects

Definiert in Zeile 24 der Datei objectd.c.

Wird benutzt von AddObject(), create(), QueryObject(), QueryObjects(), remove() und RemoveObject().

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