From e3f4322ae37e23883c6ba0c8b93993a1abbe10d7 Mon Sep 17 00:00:00 2001 From: fallenoak Date: Sun, 28 Dec 2025 19:07:55 -0600 Subject: [PATCH] feat(glue): implement Script_SetCharCustomizeFrame --- src/glue/CCharacterCreation.cpp | 3 +++ src/glue/CCharacterCreation.hpp | 12 ++++++++++++ src/glue/CCharacterCreationScript.cpp | 16 +++++++++++++++- 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 src/glue/CCharacterCreation.cpp create mode 100644 src/glue/CCharacterCreation.hpp diff --git a/src/glue/CCharacterCreation.cpp b/src/glue/CCharacterCreation.cpp new file mode 100644 index 0000000..f7625d4 --- /dev/null +++ b/src/glue/CCharacterCreation.cpp @@ -0,0 +1,3 @@ +#include "glue/CCharacterCreation.hpp" + +CSimpleModelFFX* CCharacterCreation::s_charCustomizeFrame; diff --git a/src/glue/CCharacterCreation.hpp b/src/glue/CCharacterCreation.hpp new file mode 100644 index 0000000..f0a058d --- /dev/null +++ b/src/glue/CCharacterCreation.hpp @@ -0,0 +1,12 @@ +#ifndef GLUE_C_CHARACTER_CREATION_HPP +#define GLUE_C_CHARACTER_CREATION_HPP + +class CSimpleModelFFX; + +class CCharacterCreation { + public: + // Static variables + static CSimpleModelFFX* s_charCustomizeFrame; +}; + +#endif diff --git a/src/glue/CCharacterCreationScript.cpp b/src/glue/CCharacterCreationScript.cpp index 35f77c0..b77efdc 100644 --- a/src/glue/CCharacterCreationScript.cpp +++ b/src/glue/CCharacterCreationScript.cpp @@ -1,12 +1,26 @@ #include "glue/CCharacterCreationScript.hpp" +#include "glue/CCharacterCreation.hpp" #include "ui/FrameScript.hpp" #include "ui/Types.hpp" +#include "ui/simple/CSimpleModelFFX.hpp" #include "util/Lua.hpp" #include "util/Unimplemented.hpp" #include int32_t Script_SetCharCustomizeFrame(lua_State* L) { - WHOA_UNIMPLEMENTED(0); + if (!lua_isstring(L, 1)) { + luaL_error(L, "Usage: SetCharCustomizeFrame(\"frameName\")"); + return 0; + } + + auto type = CSimpleModel::GetObjectType(); + auto frame = static_cast(CScriptObject::GetScriptObjectByName(lua_tostring(L, 1), type)); + + if (frame) { + CCharacterCreation::s_charCustomizeFrame = frame; + } + + return 0; } int32_t Script_SetCharCustomizeBackground(lua_State* L) {