mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-15 19:13:07 +01:00
Add Plugin API for storing data in .park files
This commit is contained in:
@@ -439,6 +439,7 @@ void ScriptEngine::Initialise()
|
||||
_pluginsStarted = false;
|
||||
|
||||
InitSharedStorage();
|
||||
ClearParkStorage();
|
||||
}
|
||||
|
||||
void ScriptEngine::LoadPlugins()
|
||||
@@ -1245,6 +1246,29 @@ void ScriptEngine::SaveSharedStorage()
|
||||
}
|
||||
}
|
||||
|
||||
void ScriptEngine::ClearParkStorage()
|
||||
{
|
||||
duk_push_object(_context);
|
||||
_parkStorage = std::move(DukValue::take_from_stack(_context));
|
||||
}
|
||||
|
||||
std::string ScriptEngine::GetParkStorageAsJSON()
|
||||
{
|
||||
_parkStorage.push();
|
||||
auto json = std::string(duk_json_encode(_context, -1));
|
||||
duk_pop(_context);
|
||||
return json;
|
||||
}
|
||||
|
||||
void ScriptEngine::SetParkStorageFromJSON(std::string_view value)
|
||||
{
|
||||
auto result = DuktapeTryParseJson(_context, value);
|
||||
if (result)
|
||||
{
|
||||
_parkStorage = std::move(*result);
|
||||
}
|
||||
}
|
||||
|
||||
IntervalHandle ScriptEngine::AllocateHandle()
|
||||
{
|
||||
for (size_t i = 0; i < _intervals.size(); i++)
|
||||
|
||||
Reference in New Issue
Block a user