// // G A M E.O.N.E - LOW LEVEL LIB V1.0 // Copyright (C) 2001 LEVEL ONE ENTERTAINMENT, // Licensed under the terms of LGPL. //:--------------------------------------------------------------------------- //:Description // // FRAMEWORK game variables - a profile loader/saver // // CGamevars - container for CVariable // #ifndef _GAME_VARS_H #define _GAME_VARS_H #include "../lib_base.h" #include typedef const char * VCHAR; // Zeicher auf einen Variablen Namen /* * Diese Klasse enthält zwei Strings. * Den Namen einer Variablen und den Wert */ class CVariable { public: CVariable(); CVariable(VCHAR name, bool wert ); CVariable(VCHAR name, int wert ); CVariable(VCHAR name, float wert ); CVariable(VCHAR name, VCHAR string); ~CVariable(); bool GetVarB(); // liefert Bool Wert float GetVarF(); // liefert Float Wert int GetVarI(); // liefert Integer Wert VCHAR GetVarS(); // liefert String void SetVar(bool wert); void SetVar(float wert); void SetVar(int i); void SetVar(VCHAR string); void SetName(VCHAR name); // Setzt Namen der Variablen VCHAR GetName(); // Liefert Namen der Variablen bool Save(FILE * fd); bool Load(FILE * fd); void Init(); static int CompareNames( const void * left, const void * right ); #define GW_NAME 64 char m_name[GW_NAME]; private: char m_string[128]; float m_wert; int m_bool; #define GW_CRYPT true; }; /* * Containerklasse für CVariablen */ class CGamevars { public: CGamevars(); CGamevars(VCHAR ufilename); virtual ~CGamevars(); bool GetVarB(VCHAR name,bool defwert); float GetVarF(VCHAR name,float defwert); int GetVarI(VCHAR name,int defwert); VCHAR GetVarS(VCHAR name,VCHAR defwert); void SetVar(VCHAR name, float wert ); void SetVar(VCHAR name, VCHAR string ); void SetVar(VCHAR name, bool wert ); void SetVarB(VCHAR name, bool wert ); void SetVarF(VCHAR name, float wert ); void SetVarI(VCHAR name, int wert ); void SetVarS(VCHAR name, VCHAR string ); void SaveVars(VCHAR filename); void LoadVars(VCHAR filename); void Clear(); private: queue m_vars; char m_filename[128]; bool m_changed; }; #endif // _GAME_VARS_H