#include <properties.h>#include <bank.h>#include <defines.h>
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 |
| #define ANZ 3 |
Definiert in Zeile 12 der Datei store.c.
Wird benutzt von aufraeumen().
| static int _query_current_money | ( | ) | [static] |
| 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 }

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

| public void _register_shop | ( | object | ob | ) |
| 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 }

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

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

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

| protected void create_super | ( | ) |
Definiert in Zeile 45 der Datei store.c.
Benutzt set_next_reset().
00045 { 00046 set_next_reset(-1); 00047 }

| protected varargs void remove_multiple | ( | int | limit, | |
| mixed | fun | |||
| ) |
| 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 }


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

| 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 thing properties |
| private nosave int store_percent_left |
Definiert in Zeile 24 der Datei store.c.
Wird benutzt von _set_store_percent_left() und RemoveObjectFromStore().
1.6.3