Beispiel #1
0
	static std::vector<SimulationCommand> CloneCommandsFromOtherContext(ScriptInterface& oldScript, ScriptInterface& newScript,
		const std::vector<SimulationCommand>& commands)
	{
		std::vector<SimulationCommand> newCommands = commands;
		for (size_t i = 0; i < newCommands.size(); ++i)
		{
			newCommands[i].data = CScriptValRooted(newScript.GetContext(),
				newScript.CloneValueFromOtherContext(oldScript, newCommands[i].data.get()));
		}
		return newCommands;
	}
Beispiel #2
0
	static std::vector<SimulationCommand> CloneCommandsFromOtherContext(ScriptInterface& oldScript, ScriptInterface& newScript,
		const std::vector<SimulationCommand>& commands)
	{
		JSContext* cxOld = oldScript.GetContext();
		JSAutoRequest rqOld(cxOld);
		
		std::vector<SimulationCommand> newCommands;
		newCommands.reserve(commands.size());
		for (const SimulationCommand& command : commands)
		{
			JSContext* cxNew = newScript.GetContext();
			JSAutoRequest rqNew(cxNew);
			JS::RootedValue tmpCommand(cxNew, newScript.CloneValueFromOtherContext(oldScript, command.data));
			SimulationCommand cmd(command.player, cxNew, tmpCommand);
			newCommands.emplace_back(std::move(cmd));
		}
		return newCommands;
	}