Allow GUI scripts to save some data across hotloads
This was SVN commit r7334.
This commit is contained in:
parent
48c871980e
commit
d1f53b9654
@ -103,6 +103,11 @@ void CGUIManager::PopPage()
|
||||
|
||||
void CGUIManager::LoadPage(SGUIPage& page)
|
||||
{
|
||||
// If we're hotloading then try to grab some data from the previous page
|
||||
CScriptValRooted hotloadData;
|
||||
if (page.gui)
|
||||
m_ScriptInterface.CallFunction(OBJECT_TO_JSVAL(page.gui->GetScriptObject()), "getHotloadData", hotloadData);
|
||||
|
||||
page.inputs.clear();
|
||||
page.gui.reset(new CGUI());
|
||||
page.gui->Initialize();
|
||||
@ -143,7 +148,7 @@ void CGUIManager::LoadPage(SGUIPage& page)
|
||||
page.gui->SendEventToAll("load");
|
||||
|
||||
// Call the init() function
|
||||
if (!m_ScriptInterface.CallFunctionVoid(OBJECT_TO_JSVAL(page.gui->GetScriptObject()), "init", page.initData))
|
||||
if (!m_ScriptInterface.CallFunctionVoid(OBJECT_TO_JSVAL(page.gui->GetScriptObject()), "init", page.initData, hotloadData))
|
||||
{
|
||||
LOGERROR(L"GUI page '%ls': Failed to call init() function", page.name.c_str());
|
||||
}
|
||||
|
@ -36,7 +36,6 @@
|
||||
#include "graphics/UnitManager.h"
|
||||
#include "graphics/scripting/JSInterface_Camera.h"
|
||||
#include "graphics/scripting/JSInterface_LightEnv.h"
|
||||
#include "gui/GUIManager.h"
|
||||
#include "lib/timer.h"
|
||||
#include "lib/svn_revision.h"
|
||||
#include "lib/frequency_filter.h"
|
||||
@ -74,8 +73,6 @@
|
||||
#include "simulation/TechnologyCollection.h"
|
||||
#include "simulation/TriggerManager.h"
|
||||
|
||||
#include "gui/scripting/JSInterface_IGUIObject.h"
|
||||
|
||||
#define LOG_CATEGORY L"script"
|
||||
extern bool g_TerrainModified;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user