Changeset View
Changeset View
Standalone View
Standalone View
source/ps/scripting/JSInterface_Game.cpp
Show All 22 Lines | |||||
#include "network/NetClient.h" | #include "network/NetClient.h" | ||||
#include "network/NetServer.h" | #include "network/NetServer.h" | ||||
#include "ps/CLogger.h" | #include "ps/CLogger.h" | ||||
#include "ps/Game.h" | #include "ps/Game.h" | ||||
#include "ps/GameSetup/GameSetup.h" | #include "ps/GameSetup/GameSetup.h" | ||||
#include "ps/Replay.h" | #include "ps/Replay.h" | ||||
#include "ps/World.h" | #include "ps/World.h" | ||||
#include "scriptinterface/FunctionWrapper.h" | #include "scriptinterface/FunctionWrapper.h" | ||||
#include "scriptinterface/ScriptInterface.h" | #include "scriptinterface/StructuredClone.h" | ||||
#include "simulation2/system/TurnManager.h" | #include "simulation2/system/TurnManager.h" | ||||
#include "simulation2/Simulation2.h" | #include "simulation2/Simulation2.h" | ||||
#include "soundmanager/SoundManager.h" | #include "soundmanager/SoundManager.h" | ||||
namespace JSI_Game | namespace JSI_Game | ||||
{ | { | ||||
bool IsGameStarted() | bool IsGameStarted() | ||||
{ | { | ||||
return g_Game; | return g_Game; | ||||
} | } | ||||
void StartGame(ScriptInterface::CmptPrivate* pCmptPrivate, JS::HandleValue attribs, int playerID) | void StartGame(const ScriptInterface& guiInterface, JS::HandleValue attribs, int playerID) | ||||
{ | { | ||||
ENSURE(!g_NetServer); | ENSURE(!g_NetServer); | ||||
ENSURE(!g_NetClient); | ENSURE(!g_NetClient); | ||||
ENSURE(!g_Game); | ENSURE(!g_Game); | ||||
g_Game = new CGame(true); | g_Game = new CGame(true); | ||||
// Convert from GUI script context to sim script context | // Convert from GUI script context to sim script context/ | ||||
CSimulation2* sim = g_Game->GetSimulation2(); | CSimulation2* sim = g_Game->GetSimulation2(); | ||||
ScriptRequest rqSim(sim->GetScriptInterface()); | ScriptRequest rqSim(sim->GetScriptInterface()); | ||||
JS::RootedValue gameAttribs(rqSim.cx, | JS::RootedValue gameAttribs(rqSim.cx, Script::CloneValueFromOtherCompartment(sim->GetScriptInterface(), guiInterface, attribs)); | ||||
sim->GetScriptInterface().CloneValueFromOtherCompartment(*(pCmptPrivate->pScriptInterface), attribs)); | |||||
g_Game->SetPlayerID(playerID); | g_Game->SetPlayerID(playerID); | ||||
g_Game->StartGame(&gameAttribs, ""); | g_Game->StartGame(&gameAttribs, ""); | ||||
} | } | ||||
void Script_EndGame() | void Script_EndGame() | ||||
{ | { | ||||
EndGame(); | EndGame(); | ||||
▲ Show 20 Lines • Show All 135 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator