From a6e6d36ac156331d65e5bc920dd8b1c97d6e5be5 Mon Sep 17 00:00:00 2001 From: fallenoak Date: Wed, 3 Dec 2025 00:16:54 -0600 Subject: [PATCH] feat(ui): implement CSimpleFrame_SetScale --- src/ui/CSimpleFrameScript.cpp | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/ui/CSimpleFrameScript.cpp b/src/ui/CSimpleFrameScript.cpp index efb53fa..7fded78 100644 --- a/src/ui/CSimpleFrameScript.cpp +++ b/src/ui/CSimpleFrameScript.cpp @@ -195,7 +195,29 @@ int32_t CSimpleFrame_GetScale(lua_State* L) { } int32_t CSimpleFrame_SetScale(lua_State* L) { - WHOA_UNIMPLEMENTED(0); + auto type = CSimpleFrame::GetObjectType(); + auto frame = static_cast(FrameScript_GetObjectThis(L, type)); + + if (!frame->ProtectedFunctionsAllowed()) { + // TODO + // - disallowed logic + + return 0; + } + + if (!lua_isnumber(L, 2)) { + return luaL_error(L, "Usage: %s:SetScale(scale)", frame->GetDisplayName()); + } + + auto scale = lua_tonumber(L, 2); + + if (scale <= 0.0) { + return luaL_error(L, "%s:SetScale(): Scale must be > 0", frame->GetDisplayName()); + } + + frame->SetFrameScale(scale, false); + + return 0; } int32_t CSimpleFrame_GetEffectiveAlpha(lua_State* L) {