pile.c-Dateireferenz

#include <properties.h>
#include <moving.h>
Include-Abhängigkeitsdiagramm für pile.c:

gehe zum Quellcode dieser Datei

Funktionen

void create ()
mixed _query_short ()
protected int PreventMove (object dest, object oldenv, int method)
protected void NotifyMove (object dest, object oldenv, int method)
varargs void NotifyLeave (object ob)
varargs void NotifyRemove (object ob)
void merge_pile ()
void reset ()

Variablen

inherit std container
private nosave status spielerhaufen

Dokumentation der Funktionen

mixed _query_short (  ) 

Definiert in Zeile 44 der Datei pile.c.

Benutzt call_out().

00044                      {
00045                 int sz = sizeof(all_inventory());
00046                 if( sz==0 ) {
00047                                 call_out("remove",0,1); // fallback, wenn inhalt auf unerwartete weise verschwindet
00048                                 return 0;
00049                 } else if( sz<10 ) {
00050                                 return "Ein kleiner Haufen Krempel";
00051                 } else if( sz<30 ) {
00052                                 return "Ein Haufen Krempel";
00053                 } else {
00054                                 return "Ein grosser Haufen Krempel";
00055                 }
00056   return 0;
00057 }

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

void create (  ) 

Definiert in Zeile 19 der Datei pile.c.

Benutzt AddDetail(), AddId(), break_string(), call_out(), create(), MALE, P_GENDER, P_INFO, P_LONG, P_NAME, P_PILE_NAME, QueryProp(), set_next_reset(), SetProp() und spielerhaufen.

00019               {
00020                 string von;
00021                 if (object_name(this_object()) == __FILE__[0..<3]) {
00022                   set_next_reset(-1);
00023                   return;
00024                 }   
00025                 if( !clonep(this_object()) ) return;
00026 	::create();
00027                 von = (string)previous_object()->QueryProp(P_PILE_NAME);
00028                 SetProp( P_PILE_NAME, "\nhaufen "+von );
00029                 spielerhaufen = (int)previous_object()->IsPlayerCorpse();
00030 
00031                 AddId( ({"haufen","krempel","kluengel","gegenstaende"}) );
00032                 AddId( QueryProp(P_PILE_NAME) );
00033                 SetProp( P_NAME, "Haufen Krempel" );
00034                 SetProp( P_GENDER, MALE );
00035                 SetProp( P_INFO, "Diese Gegenstaende gehoerten einmal " + von + ".\n" );
00036                 SetProp( P_LONG, break_string("Du betrachtest einen Haufen, der aus einer von Leichenresten zusammengebackenen Menge diverser Gegenstaende besteht. Zum Glueck ist von der Leiche nicht mehr genug uebrig, um Ekelgefuehle zu wecken. Ganz im Gegenteil: Dir juckt es ein wenig in den Fingern, Dich an diesem Haufen zu bedienen. Aber man kann sich nie ganz sicher sein, ob nicht doch ein Fluch auf den Dingen lastet. Vielleicht hat der verschiedene Besitzer sie auch jemandem vererbt? Andererseits, wenn gerade niemand guckt ...\n" ) );
00037                 AddDetail( ({"fetzen","leiche","leichenteile"}), "Mit blossen Augen kann man nicht mehr viel erkennen, aber einige Fetzen deuten darauf hin, dass die Sachen von "+von+" stammen.\n" );
00038                 AddDetail( ({"ekel","ekelgefuehle"}), "Es ist nicht mehr genug da, um welche zu wecken.\n" );
00039                 AddDetail( "menge", "Viele kleine Fetzen, die an den Gegenstaenden kleben.\n" );
00040                 AddDetail( "fluch", "Dem Anschein nach lastet auf den Sachen kein Fluch, aber wer weiss ...?\n" );
00041                 call_out( "merge_pile", 1 );
00042 }

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

void merge_pile (  ) 

Definiert in Zeile 100 der Datei pile.c.

Benutzt M_NOCHECK, M_SILENT, P_PILE_NAME und QueryProp().

00100                   {
00101                 object* other = filter_objects(
00102                                 all_inventory(environment()) - ({ this_object() }),
00103                                 "id",
00104                                 QueryProp( P_PILE_NAME )
00105                 );
00106                 if( !sizeof(other) ) return;
00107                 filter_objects( all_inventory(), "move", other[0], M_SILENT | M_NOCHECK );
00108                 remove();
00109 }

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

varargs void NotifyLeave ( object  ob  ) 

Definiert in Zeile 88 der Datei pile.c.

Benutzt call_out().

Wird benutzt von NotifyRemove().

00088                                       {
00089                 if( sizeof(all_inventory())>1 ) return;
00090                 call_out( "remove", 0, 1 ); // verzoegern, um prepare_destruct gnaedig zu stimmen
00091 }

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

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

protected void NotifyMove ( object  dest,
object  oldenv,
int  method 
)

Definiert in Zeile 73 der Datei pile.c.

Benutzt call_out(), dtime(), log_file, M_NOCHECK, M_SILENT und NotifyMove().

00073                                                                   {
00074     if( query_once_interactive(dest)) {
00075                 log_file( "PILE.log", dtime(time()) + ": pile in " 
00076                     + dest->query_real_name() + " gelandet.\n" );
00077     }
00078     if( living(dest) ) {
00079                 filter_objects( all_inventory(), "move", dest, M_SILENT | M_NOCHECK );
00080                 // NPCs erwarten nicht, dass dinge im move verschwinden, deshalb
00081                 // abwarten
00082                 call_out( "remove", 0, 1 );
00083     }
00084     return ::NotifyMove(dest, oldenv, method);
00085 }

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

varargs void NotifyRemove ( object  ob  ) 

Definiert in Zeile 94 der Datei pile.c.

Benutzt NotifyLeave().

00094                                        {
00095                 NotifyLeave( ob );
00096 }

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

protected int PreventMove ( object  dest,
object  oldenv,
int  method 
)

Definiert in Zeile 61 der Datei pile.c.

Benutzt M_NOCHECK, ME_NOT_ALLOWED und PreventMove().

00061                                                                   {
00062     if( !objectp(dest) ) return 0;
00063     if( method & M_NOCHECK ) return 0;
00064     if( query_once_interactive(dest) ) {
00065                 return ME_NOT_ALLOWED;
00066                 // default meldung in put_and_get:pick
00067                 // IDEE: im spieler per hook eine andere meldung unterbringen
00068     }
00069     return ::PreventMove(dest, oldenv, method);
00070 }

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

void reset ( void   ) 

Definiert in Zeile 111 der Datei pile.c.

Benutzt remove_multiple(), reset() und spielerhaufen.

00111              {
00112   // wenn es ein NPC-Haufen ist, werden Gegenstaende, die oefter als 3mal
00113   // vorkommen, zerstoert. Schraenkt die Objektflut an Stellen ein, wo NPC
00114   // ihren Kram nicht mit AddItem clonen.
00115   if (!spielerhaufen)
00116     remove_multiple(3);
00117   ::reset();
00118   // wenn nur noch unsichtbare items im Haufen: aufloesen
00119   if (!sizeof(filter(all_inventory(), function int (object o)
00120           { return !o->QueryProp(P_INVIS);} )))
00121     remove(1);
00122 
00123 }

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


Variablen-Dokumentation

inherit std container

Definiert in Zeile 11 der Datei pile.c.

private nosave status spielerhaufen

Definiert in Zeile 14 der Datei pile.c.

Wird benutzt von create() und reset().

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