kraeuterladen.c-Dateireferenz

#include <properties.h>
#include "../files.h"
#include "./plant.h"
Include-Abhängigkeitsdiagramm für kraeuterladen.c:
Dieser Graph zeigt, welche Datei direkt oder indirekt diese Datei enthält:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define NEED_PROTOTYPES

Funktionen

static string sell_obj_only_plants (object ob, int short)
void create ()
void reset ()
static string sell_obj (object ob, int short)
void UpdateCounter (object ob, int num)
static int realValue (object ob, object player)
static varargs int QueryValue (object ob, int value, object player)
static varargs int QueryBuyValue (mixed ob, object player)

Variablen

inherit std room shop
static int need_save
static int basisvalue
static int maxvalue
private int * count
private int sum

Makro-Dokumentation

#define NEED_PROTOTYPES

Definiert in Zeile 15 der Datei kraeuterladen.c.


Dokumentation der Funktionen

void create (  ) 

Definiert in Zeile 29 der Datei kraeuterladen.c.

Benutzt basisvalue, count, create(), maxvalue, need_save, PLANTCOUNT, restore_object(), set_next_reset(), SetStorageRoom() und sum.

00030 {
00031    int si;
00032    ::create();
00033    SetStorageRoom("/p/service/padreic/kraeuter/kraeuterstore");
00034    need_save=0;
00035    basisvalue=400;
00036    maxvalue=10000;
00037    seteuid(getuid()); // wird zum speichern benötigt
00038    if (!restore_object(object_name())) {
00039       count=({});
00040       sum=0;
00041    }
00042    // fuer jede PlantID einmal anlegen...
00043    si=sizeof(count);
00044    if (si<PLANTCOUNT) count=count+allocate(PLANTCOUNT-si);
00045 
00046    // reset in der BP abschalten
00047    if (load_name() == __FILE__[0..<3])
00048        set_next_reset(-1);
00049 }

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

static varargs int QueryBuyValue ( mixed  ob,
object  player 
) [static]

Definiert in Zeile 141 der Datei kraeuterladen.c.

Benutzt QueryBuyFact() und realValue().

Wird benutzt von buy(), GetList(), QueryBuyValue() und show_obj().

00143 {
00144    if (objectp(ob))
00145       return (realValue(ob, player)*QueryBuyFact(player) + 50)/100;
00146    // fixed Objekte...
00147    return ::QueryBuyValue(ob, player);
00148 }

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

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

static varargs int QueryValue ( object  ob,
int  value,
object  player 
) [static]

Definiert in Zeile 135 der Datei kraeuterladen.c.

Benutzt realValue().

Wird benutzt von QueryValue().

00137 {
00138    return ::QueryValue(ob, realValue(ob, player), player);
00139 }

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

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

static int realValue ( object  ob,
object  player 
) [static]

Definiert in Zeile 116 der Datei kraeuterladen.c.

Benutzt basisvalue, count, id(), is_plant, P_VALUE, PLANTCOUNT und sum.

Wird benutzt von QueryBuyValue() und QueryValue().

00120 {
00121    int id, val;
00122    // Preise fuer normale Gueter ganz normal...
00123    if (!is_plant(ob))
00124        return ob->QueryProp(P_VALUE);
00125    // jede Kraeuterkategorie bekommt den gleichen Wert zugewiesen.   
00126    val=(sum+PLANTCOUNT)*basisvalue/PLANTCOUNT;
00127    // aber dieser Wert verteilt sich auf unterschiedlich viele Kraeuter
00128    id=ob->QueryPlantId();
00129    if (id<=0) return 0; // illegal geclont -> wertlos
00130    if ((id-1)>sizeof(count)) count=count+allocate(id-1-sizeof(count));
00131    val=val/(count[id]+1);
00132    return val-val%10; // Wert runden...
00133 }

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 72 der Datei kraeuterladen.c.

Benutzt basisvalue, count, i, maxvalue, need_save, PLANTCOUNT, reset(), save_object() und sum.

00073 {
00074    ::reset();
00075    // Daten sind nicht sooo wichtig, als das bei jeder Aenderung
00076    // gesavet werden muesste. Daher nun im reset speichern.
00077    if (need_save) {
00078       if (((sum+PLANTCOUNT)*basisvalue/PLANTCOUNT)>maxvalue) {
00079          int i, newsum;
00080          for (i=sizeof(count)-1; i>=0; i--) {
00081             count[i] = count[i]*9/10;
00082             newsum+=count[i];
00083          }
00084          sum=newsum;
00085       }
00086       save_object(object_name());
00087       need_save=0;
00088    }
00089 }

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

static string sell_obj ( object  ob,
int  short 
) [static]

Definiert in Zeile 91 der Datei kraeuterladen.c.

Benutzt is_plant und WER.

Wird benutzt von sell_obj_only_plants().

00092 {
00093    // es werden nur Kraeuter angekauft, die legal geclont wurden,
00094    // d.h. im entsprechenden Master ordentlich eingetragen wurden!
00095    if (is_plant(ob) && ob->QueryPlantId()<=0)
00096       return ob->Name(WER, 2)+" wurde illegal geclont. Ich darf "
00097             +ob->QueryPronoun()+" leider nicht annehmen.";
00098    return ::sell_obj(ob, short);   
00099 }

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

static string sell_obj_only_plants ( object  ob,
int  short 
) [static]

Definiert in Zeile 51 der Datei kraeuterladen.c.

Benutzt is_plant, sell_obj() und WER.

00057                      :
00058 // string sell_obj(ob, short)
00059 // {
00060 //    return ::sell_obj_only_plants(ob, short);
00061 // }
00062 {
00063    if (!is_plant(ob))
00064       return "Tut mir leid, damit kann ich nichts anfangen.";
00065    // es werden nur Kraeuter angekauft, die legal geclont wurden,
00066    // d.h. im entsprechenden Master ordentlich eingetragen wurden!
00067    if (ob->QueryPlantId()<=0)
00068       return ob->Name(WER, 2)+" wurde illegal geclont. Ich darf "
00069             +ob->QueryPronoun()+" leider nicht annehmen.";
00070    return ::sell_obj(ob, short);
}

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

void UpdateCounter ( object  ob,
int  num 
)

Definiert in Zeile 101 der Datei kraeuterladen.c.

Benutzt count, id(), is_plant, need_save und sum.

Wird benutzt von buy(), make_to_money() und really_buy().

00102 {
00103    int id;
00104    id=ob->QueryPlantId();
00105    if (id>0 && is_plant(ob)) {
00106       // Kauf oder Verkauf von Kraeutern, veraendert den Wert der
00107       // Kraeuter
00108       count[id]+=num;
00109       if (count[id]<0) count[id]=0; // darf aber ansich nich passieren
00110       sum+=num;
00111       need_save=1;
00112    }
00113    ::UpdateCounter(ob, num);
00114 }

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

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


Variablen-Dokumentation

int basisvalue [static]

Definiert in Zeile 22 der Datei kraeuterladen.c.

Wird benutzt von create(), realValue() und reset().

private int* count
int maxvalue [static]

Definiert in Zeile 23 der Datei kraeuterladen.c.

Wird benutzt von create() und reset().

int need_save [static]

Definiert in Zeile 21 der Datei kraeuterladen.c.

Wird benutzt von create(), reset() und UpdateCounter().

inherit std room shop

Definiert in Zeile 13 der Datei kraeuterladen.c.

Wird benutzt von _register_shop() und update_money().

private int sum
Erzeugt am Thu Jun 3 14:40:53 2010 für MorgenGrauen Mudlib von  doxygen 1.6.3