(svn r24537) -Feature: Scripts can be suspended even if the game is still progressing, thus break-on-log now works also for Game Scripts.

This commit is contained in:
zuu
2012-09-21 19:58:18 +00:00
parent fbdf2c3830
commit d0fdd1f8b5
7 changed files with 173 additions and 27 deletions

View File

@@ -46,6 +46,26 @@ public:
*/
static void Uninitialize(bool keepConfig);
/**
* Suspends the Game Script and then pause the execution of the script. The
* script will not be resumed from its suspended state until the script
* has been unpaused.
*/
static void Pause();
/**
* Resume execution of the Game Script. This function will not actually execute
* the script, but set a flag so that the script is executed my the usual
* mechanism that executes the script.
*/
static void Unpause();
/**
* Checks if the Game Script is paused.
* @return true if the Game Script is paused, otherwise false.
*/
static bool IsPaused();
/**
* Queue a new event for a Game Script.
*/

View File

@@ -117,6 +117,21 @@
}
}
/* static */ void Game::Pause()
{
if (Game::instance != NULL) Game::instance->Pause();
}
/* static */ void Game::Unpause()
{
if (Game::instance != NULL) Game::instance->Unpause();
}
/* static */ bool Game::IsPaused()
{
return Game::instance != NULL? Game::instance->IsPaused() : false;
}
/* static */ void Game::NewEvent(ScriptEvent *event)
{
/* AddRef() and Release() need to be called at least once, so do it here */