(svn r15044) -Add [NoAI]: AIConfig::GetVersion(), to get the version of the current AI

This commit is contained in:
truebrain 2009-01-13 00:10:58 +00:00
parent 2462e8dc9d
commit e6883c5cc7
2 changed files with 15 additions and 3 deletions

View File

@ -14,6 +14,7 @@ void AIConfig::ChangeAI(const char *name)
free((void *)this->name);
this->name = (name == NULL) ? NULL : strdup(name);
this->info = (name == NULL) ? NULL : AI::GetCompanyInfo(this->name);
this->version = (info == NULL) ? -1 : info->GetVersion();
for (SettingValueList::iterator it = this->settings.begin(); it != this->settings.end(); it++) {
free((void*)(*it).first);
@ -21,12 +22,11 @@ void AIConfig::ChangeAI(const char *name)
this->settings.clear();
}
AIConfig::AIConfig(const AIConfig *config) :
name(NULL),
info(NULL)
AIConfig::AIConfig(const AIConfig *config)
{
this->name = (config->name == NULL) ? NULL : strdup(config->name);
this->info = config->info;
this->version = config->version;
for (SettingValueList::const_iterator it = config->settings.begin(); it != config->settings.end(); it++) {
this->settings[strdup((*it).first)] = (*it).second;
@ -96,6 +96,11 @@ const char *AIConfig::GetName()
return this->name;
}
int AIConfig::GetVersion()
{
return this->version;
}
void AIConfig::StringToSettings(const char *value)
{
char *value_copy = strdup(value);

View File

@ -18,6 +18,7 @@ private:
public:
AIConfig() :
name(NULL),
version(-1),
info(NULL)
{}
AIConfig(const AIConfig *config);
@ -70,6 +71,11 @@ public:
*/
const char *GetName();
/**
* Get the version of the AI.
*/
int GetVersion();
/**
* Convert a string which is stored in the config file or savegames to
* custom settings of this AI.
@ -84,6 +90,7 @@ public:
private:
const char *name;
int version;
class AIInfo *info;
SettingValueList settings;
};