Set victory conditions for autostart games.
Reviewed By: elexis Trac Tickets: #5016 Differential Revision: https://code.wildfiregames.com/D1278 This was SVN commit r21108.
This commit is contained in:
parent
7819ea434e
commit
22903b09a6
@ -1155,6 +1155,7 @@ CStr8 LoadSettingsOfScenarioMap(const VfsPath &mapPath)
|
|||||||
* -autostart-nonvisual disable any graphics and sounds
|
* -autostart-nonvisual disable any graphics and sounds
|
||||||
* -autostart-victory=SCRIPTNAME sets the victory conditions with SCRIPTNAME
|
* -autostart-victory=SCRIPTNAME sets the victory conditions with SCRIPTNAME
|
||||||
* located in simulation/data/settings/victory_conditions/
|
* located in simulation/data/settings/victory_conditions/
|
||||||
|
* (default conquest)
|
||||||
* -autostart-victoryduration=NUM sets the victory duration NUM for specific victory conditions
|
* -autostart-victoryduration=NUM sets the victory duration NUM for specific victory conditions
|
||||||
*
|
*
|
||||||
* Multiplayer:
|
* Multiplayer:
|
||||||
@ -1460,25 +1461,24 @@ bool Autostart(const CmdLineArgs& args)
|
|||||||
triggerScriptsVector.push_back(nonVisualScript.FromUTF8());
|
triggerScriptsVector.push_back(nonVisualScript.FromUTF8());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CStr victory = "conquest";
|
||||||
if (args.Has("autostart-victory"))
|
if (args.Has("autostart-victory"))
|
||||||
|
victory = args.Get("autostart-victory");
|
||||||
|
|
||||||
|
scriptInterface.SetProperty(settings, "GameType", std::string(victory));
|
||||||
|
|
||||||
|
CStrW scriptPath = L"simulation/data/settings/victory_conditions/" + victory.FromUTF8() + L".json";
|
||||||
|
JS::RootedValue scriptData(cx);
|
||||||
|
JS::RootedValue data(cx);
|
||||||
|
JS::RootedValue victoryScripts(cx);
|
||||||
|
scriptInterface.ReadJSONFile(scriptPath, &scriptData);
|
||||||
|
if (!scriptData.isUndefined() && scriptInterface.GetProperty(scriptData, "Data", &data) && !data.isUndefined()
|
||||||
|
&& scriptInterface.GetProperty(data, "Scripts", &victoryScripts) && !victoryScripts.isUndefined())
|
||||||
{
|
{
|
||||||
CStrW scriptName = args.Get("autostart-victory").FromUTF8();
|
std::vector<CStrW> victoryScriptsVector;
|
||||||
CStrW scriptPath = L"simulation/data/settings/victory_conditions/" + scriptName + L".json";
|
FromJSVal_vector(cx, victoryScripts, victoryScriptsVector);
|
||||||
JS::RootedValue scriptData(cx);
|
triggerScriptsVector.insert(triggerScriptsVector.end(), victoryScriptsVector.begin(), victoryScriptsVector.end());
|
||||||
JS::RootedValue data(cx);
|
|
||||||
JS::RootedValue victoryScripts(cx);
|
|
||||||
|
|
||||||
scriptInterface.ReadJSONFile(scriptPath, &scriptData);
|
|
||||||
|
|
||||||
if (!scriptData.isUndefined() && scriptInterface.GetProperty(scriptData, "Data", &data) && !data.isUndefined()
|
|
||||||
&& scriptInterface.GetProperty(data, "Scripts", &victoryScripts) && !victoryScripts.isUndefined())
|
|
||||||
{
|
|
||||||
std::vector<CStrW> victoryScriptsVector;
|
|
||||||
FromJSVal_vector(cx, victoryScripts, victoryScriptsVector);
|
|
||||||
triggerScriptsVector.insert(triggerScriptsVector.end(), victoryScriptsVector.begin(), victoryScriptsVector.end());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ToJSVal_vector(cx, &triggerScripts, triggerScriptsVector);
|
ToJSVal_vector(cx, &triggerScripts, triggerScriptsVector);
|
||||||
scriptInterface.SetProperty(settings, "TriggerScripts", triggerScripts);
|
scriptInterface.SetProperty(settings, "TriggerScripts", triggerScripts);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user