#pragma once #include #define BOOLEAN _BOOLEAN #define FLOAT _FLOAT using namespace Framework; enum VariableTyp { NICHTS, INTEGER, BOOLEAN, STRING, RICHTUNG, FLOAT, TASTE, SPIELER, TIMER, TEAM, BARIERE, SCHALTER, BASE, DROP, GEGENSTAND, GEGENSTAND_TYP, GESCHOSS, GESCHOSS_TYP, SCHIENE, TUNNEL, UMLENKUNG, TRIGGER, FEUERBALL_TREFFER, AKTION, GAME_OBJEKT, ALLE }; enum GeschossTyp { GESCHOSS_PFEIL, GESCHOSS_KUGEL, GESCHOSS_DRACHENAUGE, GESCHOSS_FEUERBALL, GESCHOSS_MINE }; GeschossTyp getGeschossTypFromString( Text str ); enum Richtung { OBEN, RECHTS, UNTEN, LINKS, MITTE, RICHTUNG_ANZAHL }; Richtung invert( Richtung r ); Richtung getRichtungFromString( Text str ); enum GegenstandTyp { KEIN_GEGENSTAND, PFEIL, LEBEN, SCHILD, SCHUH, GEIST, KUGEL, ROLLE, STURM, DRACHENAUGE, FEUERBALL, ENTERHAKEN, MINE, RWEISHEIT, RSTRENGTH, RBOSHEIT, RLEBEN, RTEMPO, ITEMANZAHL }; bool operator==( VariableTyp a, VariableTyp b ); bool operator!=( VariableTyp a, VariableTyp b ); class Variable { private: VariableTyp typ; int ref; public: Variable( VariableTyp typ ); virtual ~Variable(); VariableTyp getVariableTyp() const; Variable *getThis(); Variable *release(); }; bool isTrue( Variable *v ); class Integer : public Variable { private: int value; public: Integer( int value, bool taste = 0 ); void setValue( int value ); int getValue() const; }; class Boolean : public Variable { private: bool value; public: Boolean( bool value ); void setValue( bool value ); bool getValue() const; }; class String : public Variable { private: Text value; public: String( const char *value ); String( Richtung r ); String( GeschossTyp typ ); void setValue( Text value ); const Text &getValue() const; }; class Float : public Variable { private: float value; public: Float( float value ); void setValue( float value ); float getValue() const; };