l2-unlegits/l2ooghelper/BotConfig.h
2012-02-01 05:25:08 +00:00

77 lines
2.4 KiB
C++

#ifndef H_BOT_CONFIG
#define H_BOT_CONFIG
#include "BotConfigIDList.h"
typedef enum eCFG_VALTYPE { CFG_TYPE_NONE, CFG_TYPE_INT, CFG_TYPE_FLT, CFG_TYPE_STR } CFG_VALTYPE;
class BotConfigValue
{
public:
BotConfigValue() { type = CFG_TYPE_NONE; clear(); }
~BotConfigValue() { clear(); }
BotConfigValue( const BotConfigValue& other );
BotConfigValue& operator=( const BotConfigValue& other );
public:
void clear();
void clearVal();
public:
void setStr( const char *stringValue );
void setInt( int iVal );
void setFlt( double dVal );
public:
const char *getStr() const;
int getInt() const { return i; }
double getFlt() const { return d; }
CFG_VALTYPE getType() const { return type; }
public:
const char *name() const { return (const char *)m_name; }
void setName( const char *valName );
protected:
char m_name[64];
CFG_VALTYPE type;
char *str;
double d;
int i;
};
class BotConfig
{
public:
BotConfig();
~BotConfig();
BotConfig( const BotConfig& other );
BotConfig& operator=( const BotConfig& other );
public:
void removeAllValues();
public:
static const int MAX_VALUES = 512;
public:
bool readConfig( const char *fileName, bool clearExistingConfig = true );
bool saveConfig( const char *fileName ) const;
// unicode
bool readConfig( const wchar_t *fileName, bool clearExistingConfig = true );
bool saveConfig( const wchar_t *fileName ) const;
public:
CFG_VALTYPE getValType( const char *valName ) const;
int getValInt( const char *valName ) const;
double getValFlt( const char *valName ) const;
const char *getValStr( const char *valName ) const;
BotConfigValue getVal( const char *valName ) const;
const BotConfigValue& getValByIdx( int idx ) const;
bool valExists( const char *valName ) const;
public:
void setValue( const char *valName, BotConfigValue &val );
void setValInt( const char *valName, int i );
void setValFlt( const char *valName, double d );
void setValStr( const char *valName, const char *str );
protected:
int findValueIndex( const char *valName ) const;
int findFreeIndex() const;
bool addValue( BotConfigValue& val );
protected:
BotConfigValue value[MAX_VALUES];
};
#endif