diff --git a/src/openrct2/scripting/bindings/game/ScContext.hpp b/src/openrct2/scripting/bindings/game/ScContext.hpp index 13beeb76c9dc..80f78e62bace 100644 --- a/src/openrct2/scripting/bindings/game/ScContext.hpp +++ b/src/openrct2/scripting/bindings/game/ScContext.hpp @@ -131,6 +131,20 @@ namespace OpenRCT2::Scripting return GameIsPaused(); } + void paused_set(const bool& value) + { +# ifndef DISABLE_NETWORK + if (NetworkGetMode() != NETWORK_MODE_NONE) + { + auto ctx = GetContext()->GetScriptEngine().GetContext(); + duk_error(ctx, DUK_ERR_ERROR, "Setting paused state is not network safe. Use the pausetoggle game action instead."); + return; + } +# endif + if (value != GameIsPaused()) + PauseToggle(); + } + void captureImage(const DukValue& options) { auto ctx = GetContext()->GetScriptEngine().GetContext(); @@ -438,7 +452,7 @@ namespace OpenRCT2::Scripting dukglue_register_property(ctx, &ScContext::sharedStorage_get, nullptr, "sharedStorage"); dukglue_register_method(ctx, &ScContext::getParkStorage, "getParkStorage"); dukglue_register_property(ctx, &ScContext::mode_get, nullptr, "mode"); - dukglue_register_property(ctx, &ScContext::paused_get, nullptr, "paused"); + dukglue_register_property(ctx, &ScContext::paused_get, &ScContext::paused_set, "paused"); dukglue_register_method(ctx, &ScContext::captureImage, "captureImage"); dukglue_register_method(ctx, &ScContext::getObject, "getObject"); dukglue_register_method(ctx, &ScContext::getAllObjects, "getAllObjects");