1
0
forked from 0ad/0ad

Allow GUI scripts to save some data across hotloads

This was SVN commit r7334.
This commit is contained in:
Ykkrosh 2010-02-28 21:28:09 +00:00
parent 48c871980e
commit d1f53b9654
2 changed files with 6 additions and 4 deletions

View File

@ -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());
}

View File

@ -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;