void info_convertToStringValue(InfoItem* infoItem) { assert(infoItem != NULL); infoItem->valueTypeString = info_getValueAsString(infoItem); infoItem->valueType = INFO_VALUE_TYPE_STRING; }
std::string CArchiveScanner::ArchiveData::GetInfoValueString(const std::string& key) const { std::string valueString = ""; const InfoItem* infoItem = GetInfoItem(key); if (infoItem != NULL) { if (infoItem->valueType == INFO_VALUE_TYPE_STRING) { valueString = infoItem->valueTypeString; } else { valueString = info_getValueAsString(infoItem); } } return valueString; }
void SelectionWidget::UpdateAvailableScripts() { //FIXME: lua ai's should be handled in AIScriptHandler.cpp, too respecting the selected game and map // maybe also merge it with StartScriptGen.cpp availableScripts.clear(); // load selected archives to get lua ais AddArchive(userMod); AddArchive(userMap); std::vector< std::vector<InfoItem> > luaAIInfos = luaAIImplHandler.LoadInfos(); for(int i=0; i<luaAIInfos.size(); i++) { for (int j=0; j<luaAIInfos[i].size(); j++) { if (luaAIInfos[i][j].key==SKIRMISH_AI_PROPERTY_SHORT_NAME) availableScripts.push_back(info_getValueAsString(&luaAIInfos[i][j])); } } // close archives RemoveArchive(userMap); RemoveArchive(userMod); // add sandbox script to list availableScripts.push_back(SandboxAI); // add native ai's to the list, too (but second, lua ai's are prefered) CAIScriptHandler::ScriptList scriptList = CAIScriptHandler::Instance().GetScriptList(); for (CAIScriptHandler::ScriptList::iterator it = scriptList.begin(); it != scriptList.end(); ++it) { availableScripts.push_back(*it); } for (std::string &scriptName: availableScripts) { if (scriptName == userScript) { return; } } SelectScript(SelectionWidget::NoScriptSelect); }