store.c-Dateireferenz

#include <properties.h>
#include <bank.h>
#include <defines.h>
Include-Abhängigkeitsdiagramm für store.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define ANZ   3

Funktionen

static int _set_store_percent_left ()
public void _register_shop (object ob)
protected void create ()
protected void create_super ()
public int MayAddObject (object ob)
protected varargs void remove_multiple (int limit, mixed fun)
static int _query_store_consume ()
static int _set_store_consume (int consum)
static int _query_min_stock ()
private void update_money ()
protected void RemoveObjectFromStore (object ob)
protected void aufraeumen ()
void reset ()
int clean_up (int refcount)
static int _query_current_money ()

Variablen

inherit std thing properties
inherit std room items
private nosave object * all
private nosave mapping all2
private nosave object shop
private nosave int sum
private nosave int store_percent_left

Makro-Dokumentation

#define ANZ   3

Definiert in Zeile 12 der Datei store.c.

Wird benutzt von aufraeumen().


Dokumentation der Funktionen

static int _query_current_money (  )  [static]

Definiert in Zeile 162 der Datei store.c.

00163 {
00164   return sum;
00165 }

static int _query_min_stock (  )  [static]

Definiert in Zeile 70 der Datei store.c.

Benutzt P_MIN_STOCK und Query().

00071 {
00072   int stock;
00073   stock=Query(P_MIN_STOCK);
00074   if (stock<0) return 0;
00075   return stock;
00076 }

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

static int _query_store_consume (  )  [static]

Definiert in Zeile 54 der Datei store.c.

Benutzt P_STORE_CONSUME und Query().

00056 {
00057   int consum;
00058   consum=100-Query(P_STORE_CONSUME);
00059   if (consum<0 || consum >=100) // consum = 100, wenn P_STORE_CONSUM = 0
00060     return 70;
00061   return consum;
00062 }

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

public void _register_shop ( object  ob  ) 

Definiert in Zeile 31 der Datei store.c.

Benutzt shop.

00032 {
00033   shop=ob;
00034 }

static int _set_store_consume ( int  consum  )  [static]

Definiert in Zeile 64 der Datei store.c.

Benutzt P_STORE_CONSUME und Set().

00065 {
00066   if (consum<1 || consum>100) return -1;
00067   return (100-(int)Set(P_STORE_CONSUME, consum));
00068 }

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

static int _set_store_percent_left (  )  [static]

Definiert in Zeile 26 der Datei store.c.

Benutzt store_percent_left und ZENTRALBANK.

Wird benutzt von create().

00027 {
00028   return store_percent_left=ZENTRALBANK->_query_store_percent_left();
00029 }

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

protected void aufraeumen (  ) 

Definiert in Zeile 95 der Datei store.c.

Benutzt all, all2, ANZ, BLUE_NAME, call_out(), i, ob(), RemoveObjectFromStore() und update_money().

00095                             {
00096   int i, size;
00097   object ob;
00098   string element;
00099 
00100   if (!pointerp(all)) return;
00101   if (!mappingp(all2)) all2=([]);
00102   size=sizeof(all);
00103   for (i=(size<=50 ? 0 : size-50); i<size; i++) {
00104     if (!objectp(ob=all[i])) continue;
00105     if (object_name(ob)[0..2]=="/d/" || object_name(ob)[0..8]=="/players/")
00106       element=BLUE_NAME(ob);
00107     else
00108       catch(element=ob->short()+BLUE_NAME(ob); publish);
00109     if (all2[element]++>ANZ)
00110       RemoveObjectFromStore(ob);
00111   }
00112   if (size<=50) {
00113     all=0;  // Speicher freigeben...
00114     all2=0;
00115     update_money();
00116   } else {
00117     all=all[0..size-51];
00118     call_out(#'aufraeumen,2);
00119   }
00120 }

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

int clean_up ( int  refcount  ) 

Definiert in Zeile 160 der Datei store.c.

00160 { return 0; }

protected void create (  ) 

Definiert in Zeile 36 der Datei store.c.

Benutzt _set_store_percent_left(), create(), P_MIN_STOCK und SetProp().

00037 {
00038   seteuid(getuid());
00039   properties::create();
00040   items::create();
00041   _set_store_percent_left();
00042   SetProp(P_MIN_STOCK, 20); // immer eine Reserve fuer unsere Anfaenger...
00043 }

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

protected void create_super (  ) 

Definiert in Zeile 45 der Datei store.c.

Benutzt set_next_reset().

00045                               {
00046       set_next_reset(-1);
00047 }

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

public int MayAddObject ( object  ob  ) 

Definiert in Zeile 49 der Datei store.c.

00050 {   return 1;   }

protected varargs void remove_multiple ( int  limit,
mixed  fun 
)

Definiert in Zeile 52 der Datei store.c.

00052 {}

protected void RemoveObjectFromStore ( object  ob  ) 

Definiert in Zeile 88 der Datei store.c.

Benutzt destruct(), P_VALUE, store_percent_left und sum.

Wird benutzt von aufraeumen().

00088                                                 {
00089   // Alle Funktionen die ausserhalb aufgerufen werden, werden "gecatcht"
00090   catch(sum+=ob->QueryProp(P_VALUE)*store_percent_left/100; publish);
00091   catch(ob->remove(); publish);
00092   if (ob) destruct(ob);  // Objekt auf jeden Fall zerstoeren
00093 }

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

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

void reset ( void   ) 

Definiert in Zeile 122 der Datei store.c.

Benutzt all.

00122              {
00123   int i, to, stock;
00124   mixed *itemlist;
00125   
00126   items::reset();
00127   _set_store_percent_left();
00128 
00129   if (!(all=all_inventory()) || !sizeof(all)) {
00130     all=0; // Speicher freigeben
00131     return;
00132   }
00133   if (sizeof(itemlist=QueryProp(P_ITEMS))) {
00134     itemlist=filter(itemlist, #'[, 0);
00135     all-=itemlist;
00136     if (!sizeof(all)) {
00137       all=0; // Speicher freigeben
00138       return;
00139     }
00140   }
00141 
00142   i=sizeof(all)-1;
00143   to=i*QueryProp(P_STORE_CONSUME)/100;
00144   if ( to < (stock=QueryProp(P_MIN_STOCK)) )
00145     to=stock;
00146   else
00147     stock=0;
00148 
00149   // Hinterer Teil des Inventories wird zerstoert, also alle aelteren
00150   // und somit vermutlich selten gekaufte Objekte
00151   for (;i>=to;i--)
00152     RemoveObjectFromStore(all[i]);
00153   all2=([]);
00154   call_out(#'aufraeumen,random(10));
00155   update_money();
00156 }

private void update_money (  ) 

Definiert in Zeile 78 der Datei store.c.

Benutzt shop, sum und ZENTRALBANK.

Wird benutzt von aufraeumen().

00078                             {
00079   if (sum) {
00080     if (!shop)
00081       ZENTRALBANK->PayIn(sum);
00082     else
00083       shop->_add_money(sum);
00084   }
00085   sum=0;
00086 }

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


Variablen-Dokumentation

private nosave object* all

Definiert in Zeile 20 der Datei store.c.

Wird benutzt von aufraeumen(), auswertung(), do_unwear(), do_wear(), DoDrink(), reset(), updall() und ww().

private nosave mapping all2

Definiert in Zeile 21 der Datei store.c.

Wird benutzt von aufraeumen().

inherit std room items

Definiert in Zeile 18 der Datei store.c.

inherit std thing properties

Definiert in Zeile 17 der Datei store.c.

private nosave object shop

Definiert in Zeile 22 der Datei store.c.

private nosave int store_percent_left

Definiert in Zeile 24 der Datei store.c.

Wird benutzt von _set_store_percent_left() und RemoveObjectFromStore().

private nosave int sum

Definiert in Zeile 23 der Datei store.c.

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