objects.c-Dateireferenz

#include <wizlevels.h>
#include <moving.h>
#include <thing/language.h>
#include <thing/properties.h>
#include <thing/description.h>
#include <living/put_and_get.h>
#include <player.h>
#include <magier.h>
Include-Abhängigkeitsdiagramm für objects.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define NEED_PROTOTYPES

Funktionen

static mixed * _query_localcmds ()
static int _clone (string cmdline)
static int _destruct (string cmdline)
static int _setcmsg (string str)
static int _setdmsg (string str)

Makro-Dokumentation

#define NEED_PROTOTYPES

Definiert in Zeile 10 der Datei objects.c.


Dokumentation der Funktionen

static int _clone ( string  cmdline  )  [static]

Definiert in Zeile 36 der Datei objects.c.

Benutzt _unparsed_args(), CLONE_F, CLONE_OPTS, destruct(), err, file_list(), FILESIZE, flags, FULLNAME, M_GET, M_NOCHECK, MODE_CLONE, Name(), ob(), P_CLONE_MSG, parseargs(), QueryProp(), USAGE und WER.

00037 {
00038   mixed *tmp;
00039   int flags;
00040   object ob;
00041   string *args,*args2,err;
00042   
00043   cmdline=_unparsed_args();
00044   args=parseargs(cmdline,&flags,CLONE_OPTS,1);
00045   if (flags==-1||sizeof(args)!=1)
00046     return USAGE("clone [-" CLONE_OPTS "] <objektname>");
00047   if (flags&CLONE_F)
00048     cmdline=args[0];
00049   else
00050   {
00051     // etwas umstaendlich, aber so kann man auch Dateien clonen,
00052     // wenn man keine Leserechte hat. Man muss aber im Verzeichnis
00053     // lesen koennen
00054     args2=explode(args[0],"/");
00055     if (args2[<1][<1]=='.') args2[<1]+="c";
00056     else if (args2[<1][<2..<1]!=".c") args2[<1]+=".c";
00057     tmp=file_list(({implode(args2[0..<2],"/")+"/*"}),MODE_CLONE,0,"",
00058                   args2[<1]);
00059     if (!sizeof(tmp)||tmp[0][FILESIZE]<0)
00060       return printf("clone: %s: Datei existiert nicht.\n",args[0]),1;
00061     cmdline=tmp[0][FULLNAME];
00062   }
00063 
00064   if (err=catch(ob=clone_object(cmdline))||!ob)
00065     return printf("clone: %s: Objekt konnte nicht erzeugt werden.\n"
00066                   "Grund: %O",
00067                   args[0],err||"unbekannt"),1;
00068   if (!objectp(ob))
00069     return printf("clone: %s: Objekt beim Erzeugen zerstoert.\n",
00070                   args[0]),1;
00071   if ((ob->move(this_object(),M_GET)>0) || 
00072       (!objectp(ob)||ob->move(environment(),M_NOCHECK)>0)||!objectp(ob))
00073   {
00074     if (!objectp(ob))
00075       return printf("clone: %s: Objekt beim Erzeugen zerstoert.\n",
00076                   args[0]),1;
00077     printf("Clone: %s erzeugt.\n",object_name(ob));
00078     tell_room(environment(this_object()),
00079               sprintf("%s %s.\n",Name(WER,1),QueryProp(P_CLONE_MSG)),
00080                       ({ this_object()}));
00081     return 1;
00082   }
00083   tell_room(environment(this_object()),
00084             sprintf("%s malt wilde Zeichen in die Luft und "
00085                     "murmelt vor sich hin, aber nichts "
00086                     "passiert...\n",Name(WER,1)),
00087             ({ this_object()}));
00088   destruct(ob);
00089   printf("Clone: %s: Objekt konnte nicht bewegt werden.",args[0]);
00090   return 1;
00091 }

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

static int _destruct ( string  cmdline  )  [static]

Definiert in Zeile 102 der Datei objects.c.

Benutzt _unparsed_args(), destruct(), find_obs(), flags, notify_fail(), ob(), P_DESTRUCT_MSG, P_PLURAL, PUT_GET_NONE, QueryProp(), USAGE und WER.

00103 {
00104   int flags;
00105   mixed *args;
00106   object ob;
00107 
00108   if (!strlen(cmdline=_unparsed_args()))
00109     return USAGE(query_verb()+" <objektname>");
00110   args=find_obs(lower_case(cmdline),PUT_GET_NONE);
00111   if (!args||!sizeof(args))
00112   {
00113     if (!(ob=find_object(cmdline)))
00114     {
00115       notify_fail(query_verb()+": Objekt \"" +cmdline+
00116                   "\" nicht gefunden.\n");
00117       return 0;
00118     }
00119   }
00120   else
00121     ob=args[0];
00122   cmdline=capitalize(to_string(ob->name(WER)));
00123   flags=(int)ob->QueryProp(P_PLURAL); // Missbrauch von flags :o)
00124   if (query_verb()=="destruct")
00125   {
00126     if (!ob->remove())
00127     {
00128       notify_fail(cmdline+" will nicht zerstoert werden!\n");
00129       return 0;
00130     }
00131   }
00132   else destruct(ob);
00133   if (!ob)
00134   {
00135     if (!QueryProp(P_INVIS))
00136     {
00137       tell_room(environment(this_object()),
00138                 sprintf("%s %s.\n",cmdline,QueryProp(P_DESTRUCT_MSG)),
00139                 ({ this_object() }));
00140     }
00141     printf("%s w%s von Dir zerstaeubt.\n",cmdline,(flags?"erden":"ird"));
00142   }
00143   else
00144     printf("%s kann nicht zerstoert werden.\n",cmdline);
00145   return 1;
00146 }

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

static mixed* _query_localcmds (  )  [static]

Definiert in Zeile 23 der Datei objects.c.

Benutzt WIZARD_LVL.

00024 {
00025   return ({({"clone","_clone",0,WIZARD_LVL}),
00026            ({"setcmsg","_setcmsg",0,WIZARD_LVL}),
00027            ({"setdmsg","_setdmsg",0,WIZARD_LVL}),
00028            ({"destruct","_destruct",0,WIZARD_LVL}),
00029            ({"Destruct","_destruct",0,WIZARD_LVL})});
00030 }

static int _setcmsg ( string  str  )  [static]

Definiert in Zeile 152 der Datei objects.c.

Benutzt _unparsed_args(), MALE, P_CLONE_MSG, QueryPossPronoun(), SetProp() und WEM.

00153 {
00154   printf("Beim Clonen von Objekten sehen die Anderen nun:\n"
00155          "<Dein Name> %s.\n",
00156          (SetProp(P_CLONE_MSG, _unparsed_args()||"zaubert etwas aus "
00157           + QueryPossPronoun(MALE,WEM) + " Aermel hervor")));
00158   return 1;
00159 }

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

static int _setdmsg ( string  str  )  [static]

Definiert in Zeile 161 der Datei objects.c.

Benutzt _unparsed_args(), name, P_DESTRUCT_MSG, SetProp() und WER.

00162 {
00163   printf("Beim Zerstoeren von Objekten sehen die Anderen nun:\n"
00164          "<Objekt> %s.\n",
00165          SetProp(P_DESTRUCT_MSG, _unparsed_args()||"wird von " + name(WER,1)
00166           + " zerstaeubt"));
00167   return 1;
00168 }

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

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