Code: Alles auswählen
objekt schwert()
{
wert=100;
meshfile="Schwert.RPMesh";
schlagkraft=20;
name="Einfaches Schwert";
}
Code: Alles auswählen
class object
{
public:
variablenmanager instanzvariablen;
char objektname[256];
bool verbunden;
char abgl_von[256];
bool abgeleitet;
object::object();
void verbinden(char *obj_name);
void Func(const char *name);
};
Code: Alles auswählen
struct variable
{
char varname[256];
int typ;
float zahl;
int laenge;
char *str;
};
class variablenmanager
{
public:
int num_var;
variable *variablen;
variablenmanager();
~variablenmanager();
void set_str(char vname[256],char* str);
void set_zahl(char vname[256],float zahl);
int get_typ(char vname[256]);
char* get_str(char vname[256]);
float get_zahl(char vname[256]);
void get_all_var();
};
Code: Alles auswählen
class spieler
{
public:
[...]
void init();
void render();
RPMesh schwert;
object waffe;
[...]
};
Code: Alles auswählen
void spieler::init()
{
[...]
waffe.verbinden("schwert");
[...]
}
spieler character;
Also
Code: Alles auswählen
this->waffe.instanzvariablen.get_all_var(); //geht problemlos (1)
character.waffe.instanzvariablen.get_all_var(); //stürtz ab (2)
Code: Alles auswählen
void variablenmanager::get_all_var()
{
messageboxEx("Num_Var: %i",num_var);
[...]
}
Bei (1) liefert sie den korrekten Wert '4'. Bei (2) liefert sie (aus welchen Gründen auch immer) der Wert In der Grüßenordnung von '71270050' der sich jedoch bei jedem Funktionsaufruf ändert. Nun finde ich es absolut unlogisch, warum sich jetzt von der Art des Funktionsaufrufs der Wer von num_var ändert.