#include <properties.h>#include <moving.h>#include "/secure/master.h"
gehe zum Quellcode dieser Datei
Funktionen | |
| static private int | allowed () |
| create () | |
| make (ob) | |
| updall (all) | |
| doone (ob) | |
| doit () | |
Variablen | |
| object * | obs |
| 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 }

| create | ( | ) |
Definiert in Zeile 14 der Datei room_locator.c.
| 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 }

| doone | ( | ob | ) |
Definiert in Zeile 93 der Datei room_locator.c.
Wird benutzt von doit().


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

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

| object* obs |
Definiert in Zeile 5 der Datei room_locator.c.
1.6.3