forked from 0ad/0ad
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-victory=SCRIPTNAME sets the victory conditions with SCRIPTNAME
|
||||
* located in simulation/data/settings/victory_conditions/
|
||||
* (default conquest)
|
||||
* -autostart-victoryduration=NUM sets the victory duration NUM for specific victory conditions
|
||||
*
|
||||
* Multiplayer:
|
||||
@ -1460,25 +1461,24 @@ bool Autostart(const CmdLineArgs& args)
|
||||
triggerScriptsVector.push_back(nonVisualScript.FromUTF8());
|
||||
}
|
||||
|
||||
CStr victory = "conquest";
|
||||
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();
|
||||
CStrW scriptPath = L"simulation/data/settings/victory_conditions/" + scriptName + 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())
|
||||
{
|
||||
std::vector<CStrW> victoryScriptsVector;
|
||||
FromJSVal_vector(cx, victoryScripts, victoryScriptsVector);
|
||||
triggerScriptsVector.insert(triggerScriptsVector.end(), victoryScriptsVector.begin(), victoryScriptsVector.end());
|
||||
}
|
||||
std::vector<CStrW> victoryScriptsVector;
|
||||
FromJSVal_vector(cx, victoryScripts, victoryScriptsVector);
|
||||
triggerScriptsVector.insert(triggerScriptsVector.end(), victoryScriptsVector.begin(), victoryScriptsVector.end());
|
||||
}
|
||||
|
||||
ToJSVal_vector(cx, &triggerScripts, triggerScriptsVector);
|
||||
scriptInterface.SetProperty(settings, "TriggerScripts", triggerScripts);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user