mirror of
https://gitea.wildfiregames.com/0ad/0ad.git
synced 2026-07-14 13:16:20 +00:00
Rework Mod into a class.
`Mod` currently modifies 4 global arrays, including some that are 'public'. The logic flow is easier to understand if this becomes a real class with const-correctness and public/private methods. Differential Revision: https://code.wildfiregames.com/D3981 This was SVN commit r25469.
This commit is contained in:
@@ -26,10 +26,15 @@ extern void RestartEngine();
|
||||
|
||||
namespace JSI_Mod
|
||||
{
|
||||
Mod* ModGetter(const ScriptRequest&, JS::CallArgs&)
|
||||
{
|
||||
return &g_Mods;
|
||||
}
|
||||
|
||||
bool SetModsAndRestartEngine(const ScriptInterface& scriptInterface, const std::vector<CStr>& mods)
|
||||
{
|
||||
Mod::ClearIncompatibleMods();
|
||||
if (!Mod::CheckAndEnableMods(scriptInterface, mods))
|
||||
g_Mods.ClearIncompatibleMods();
|
||||
if (!g_Mods.CheckAndEnableMods(scriptInterface, mods))
|
||||
return false;
|
||||
|
||||
RestartEngine();
|
||||
@@ -38,16 +43,16 @@ bool SetModsAndRestartEngine(const ScriptInterface& scriptInterface, const std::
|
||||
|
||||
bool HasFailedMods()
|
||||
{
|
||||
return Mod::GetFailedMods().size() > 0;
|
||||
return g_Mods.GetFailedMods().size() > 0;
|
||||
}
|
||||
|
||||
void RegisterScriptFunctions(const ScriptRequest& rq)
|
||||
{
|
||||
ScriptFunction::Register<&Mod::GetEngineInfo>(rq, "GetEngineInfo");
|
||||
ScriptFunction::Register<&Mod::GetAvailableMods>(rq, "GetAvailableMods");
|
||||
ScriptFunction::Register<&Mod::GetEnabledMods>(rq, "GetEnabledMods");
|
||||
ScriptFunction::Register<&Mod::GetEngineInfo, ModGetter>(rq, "GetEngineInfo");
|
||||
ScriptFunction::Register<&Mod::GetAvailableMods, ModGetter>(rq, "GetAvailableMods");
|
||||
ScriptFunction::Register<&Mod::GetEnabledMods, ModGetter>(rq, "GetEnabledMods");
|
||||
ScriptFunction::Register<HasFailedMods> (rq, "HasFailedMods");
|
||||
ScriptFunction::Register<&Mod::GetFailedMods>(rq, "GetFailedMods");
|
||||
ScriptFunction::Register<&Mod::GetFailedMods, ModGetter>(rq, "GetFailedMods");
|
||||
ScriptFunction::Register<&SetModsAndRestartEngine>(rq, "SetModsAndRestartEngine");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user