Hey,

Die var Klasse ist bis auf "besseres" Multiplizieren und Dividieren fertig.
Das einzige Problem das ich noch habe ist, dass konstante (int/float) werte die ich Funktionen übergebe die ein long (nicht var!!) als Parameter akzeptierten nicht zu var konvertiert werden. Hier muss vor die Konstante (var) schreiben damit dies geschieht.

Wenn Sie den Code brauchen, bzw. als Grundlage nehmen wollen für einen eigenen Code, können Sie ihn gerne ohne jede Restriktion nehmen. (keine Ahnung wie gut die Qualität ist Ich kenn mich in C++ eher rudimentär aus )
Damit der Code funktioniert, muss die *.h Datei VOR der adll.h includiert werden. Typedef long var; muss gelöscht werden und alle EXT var .... in der afuncs.h müssen zu EXT long geändert werden (sonst gibts Millionen warnungen). Wenn EXT var bleiben soll die Warnungen über #pragma Befehl ausschalten, wobei ich nicht weiß wie gut der ist.

Endlich gehen auch bekloppte Rechnungen wie:
a = 12*b + 2*(3-34/2)*(a==b);
ohne extreme Benutzung von _VAR / _INT / _FLOAT im Quellcode

Code mit allen Funktionen: http://www.hawkgames.de/Var.h

Code der Klasse.
Code:


//the real class
class var {
private:
long value;
public:
//konstrukturs
var::var(int a) { value=_VAR2(a); }
var::var(float a) { value=_VAR2(a); }
var::var(double a) { value=_VAR2(a); }
var::var(long a) { value=a; }
var::var() { value=0; }

//getvalue functions
long getvalue() { return(value); }
long* getsource() { return(&value); }

//=functions
var operator=(var);
var operator=(long);
var operator=(int);
var operator=(double);
var operator=(float);
var operator=(DWORD);
var operator=(char*);
var operator=(MATERIAL*);
var operator=(ENTITY*);
var operator=(STRING*);
var operator=(SOUND*);
var operator=(BMAP*);
var operator=(TEXT*);
var operator=(PANEL*);
var operator=(void*);

//+functions
var operator+(var);
var operator+(long);
var operator+(int);
var operator+(double);
var operator+(float);

//-functions
var operator-(var);
var operator-(long);
var operator-(int);
var operator-(double);
var operator-(float);

//+functions
var operator+=(var);
var operator+=(long);
var operator+=(int);
var operator+=(double);
var operator+=(float);

//-functions
var operator-=(var);
var operator-=(long);
var operator-=(int);
var operator-=(double);
var operator-=(float);

//*functions
var operator*(var);
var operator*(long);
var operator*(int);
var operator*(double);
var operator*(float);

//\functions
var operator/(var);
var operator/(long);
var operator/(int);
var operator/(double);
var operator/(float);

//*functions
var operator*=(var);
var operator*=(long);
var operator*=(int);
var operator*=(double);
var operator*=(float);

//\functions
var operator/=(var);
var operator/=(long);
var operator/=(int);
var operator/=(double);
var operator/=(float);

//==functions
int operator==(var);
int operator==(long);
int operator==(int);
int operator==(double);
int operator==(float);

//<=functions
int operator<=(var);
int operator<=(long);
int operator<=(int);
int operator<=(double);
int operator<=(float);

//>=functions
int operator>=(var);
int operator>=(long);
int operator>=(int);
int operator>=(double);
int operator>=(float);

//<functions
int operator<(var);
int operator<(long);
int operator<(int);
int operator<(double);
int operator<(float);

//>functions
int operator>(var);
int operator>(long);
int operator>(int);
int operator>(double);
int operator>(float);

//!=functions
int operator!=(var);
int operator!=(long);
int operator!=(int);
int operator!=(double);
int operator!=(float);

//konverter
operator long();
operator int();
operator double();
operator float();
operator short();
operator DWORD();
operator void*();
operator MATERIAL*();
operator STRING*();
operator ENTITY*();
operator BMAP*();
operator TEXT*();
operator SOUND*();
operator PANEL*();
};



mfg,
Timo Stark