00001 #ifndef CONFIG_H 00002 #define CONFIG_H 00003 00004 #include "irrlicht.h" 00005 00007 00016 class Config : public irr::IStringParameters 00017 { 00018 public: 00019 00022 Config(irr::IrrlichtDevice* d); 00023 00025 ~Config(); 00026 00029 void loadConfig(irr::c8* fileName); 00030 00035 void safeConfig(irr::c8* description, irr::c8* fileName); 00036 00041 void safeDefaultConfig(const irr::c8* fileName); 00042 00046 virtual void setParameter(const irr::c8* parameterName, const irr::c8* value); 00047 00052 virtual const irr::c8* getParameter(const irr::c8* parameterName); 00053 00055 virtual void setParameter(const irr::c8* parameterName, bool value); 00056 00061 virtual bool getParameterAsBool(const irr::c8* parameterName); 00062 00064 virtual void setParameter(const irr::c8* parameterName, irr::s32 value); 00065 00070 virtual irr::s32 getParameterAsInt(const irr::c8* parameterName); 00071 00073 virtual void setParameter(const irr::c8* parameterName, irr::f32 value); 00074 00079 virtual irr::f32 getParameterAsFloat(const irr::c8* parameterName); 00080 00082 virtual irr::s32 getParameterCount(); 00083 00086 virtual const irr::c8* getParameterName(irr::s32 index); 00087 00090 virtual const irr::c8* getParameterValue(irr::s32 index); 00091 00092 protected: 00093 00094 private: 00095 00096 struct SStringPair 00097 { 00098 irr::core::stringc Name; 00099 irr::core::stringc Value; 00100 }; 00101 00102 SStringPair* getParameterP(const irr::c8* parameterName); 00103 00104 irr::core::array<SStringPair> Parameters; 00105 irr::IrrlichtDevice* device; 00106 }; 00107 00108 #endif // CONFIG_H