Fix autostart replays following a23884d79a
by grabbing g_GameAttributes from the simulation instead of the GUI. Patch by Imarok, refs #3143.
Don't remove attribs from the init attributes as that is still used by the loading screen to show the mapname. This was SVN commit r18510.
This commit is contained in:
parent
cab6a8c633
commit
4c0f12bce3
@ -225,12 +225,13 @@ function init(initData, hotloadData)
|
||||
return;
|
||||
}
|
||||
|
||||
g_GameAttributes = Engine.GetInitAttributes();
|
||||
|
||||
if (initData)
|
||||
{
|
||||
g_IsNetworked = initData.isNetworked;
|
||||
g_IsController = initData.isController;
|
||||
g_PlayerAssignments = initData.playerAssignments;
|
||||
g_GameAttributes = initData.attribs;
|
||||
g_ReplaySelectionData = initData.replaySelectionData;
|
||||
g_HasRejoined = initData.isRejoining;
|
||||
|
||||
|
@ -510,6 +510,21 @@ JS::Value LoadMapSettings(ScriptInterface::CxPrivate* pCxPrivate, const VfsPath&
|
||||
return settings;
|
||||
}
|
||||
|
||||
JS::Value GetInitAttributes(ScriptInterface::CxPrivate* pCxPrivate)
|
||||
{
|
||||
if (!g_Game)
|
||||
return JS::UndefinedValue();
|
||||
|
||||
JSContext* cx = g_Game->GetSimulation2()->GetScriptInterface().GetContext();
|
||||
JSAutoRequest rq(cx);
|
||||
|
||||
JS::RootedValue initAttribs(cx);
|
||||
g_Game->GetSimulation2()->GetInitAttributes(&initAttribs);
|
||||
return pCxPrivate->pScriptInterface->CloneValueFromOtherContext(
|
||||
g_Game->GetSimulation2()->GetScriptInterface(),
|
||||
initAttribs);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current X coordinate of the camera.
|
||||
*/
|
||||
@ -1055,6 +1070,7 @@ void GuiScriptingInit(ScriptInterface& scriptInterface)
|
||||
scriptInterface.RegisterFunction<bool, &AtlasIsAvailable>("AtlasIsAvailable");
|
||||
scriptInterface.RegisterFunction<bool, &IsAtlasRunning>("IsAtlasRunning");
|
||||
scriptInterface.RegisterFunction<JS::Value, VfsPath, &LoadMapSettings>("LoadMapSettings");
|
||||
scriptInterface.RegisterFunction<JS::Value, &GetInitAttributes>("GetInitAttributes");
|
||||
scriptInterface.RegisterFunction<float, &CameraGetX>("CameraGetX");
|
||||
scriptInterface.RegisterFunction<float, &CameraGetZ>("CameraGetZ");
|
||||
scriptInterface.RegisterFunction<void, entity_id_t, &CameraFollow>("CameraFollow");
|
||||
|
@ -748,6 +748,11 @@ JS::Value CSimulation2::GetInitAttributes()
|
||||
return m->m_InitAttributes.get();
|
||||
}
|
||||
|
||||
void CSimulation2::GetInitAttributes(JS::MutableHandleValue ret)
|
||||
{
|
||||
ret.set(m->m_InitAttributes);
|
||||
}
|
||||
|
||||
void CSimulation2::SetMapSettings(const std::string& settings)
|
||||
{
|
||||
m->m_ComponentManager.GetScriptInterface().ParseJSON(settings, &m->m_MapSettings);
|
||||
|
@ -103,6 +103,7 @@ public:
|
||||
* Get the data passed to SetInitAttributes.
|
||||
*/
|
||||
JS::Value GetInitAttributes();
|
||||
void GetInitAttributes(JS::MutableHandleValue ret);
|
||||
|
||||
/**
|
||||
* Set the initial map settings (as a UTF-8-encoded JSON string),
|
||||
|
Loading…
Reference in New Issue
Block a user