diff --git a/UE4SS/include/LuaType/LuaUClass.hpp b/UE4SS/include/LuaType/LuaUClass.hpp index f308eca92..fc72c3a5f 100644 --- a/UE4SS/include/LuaType/LuaUClass.hpp +++ b/UE4SS/include/LuaType/LuaUClass.hpp @@ -20,9 +20,6 @@ namespace RC::LuaType }; class UClass : public UObjectBase { - public: - using Super = LuaType::UStruct; - private: explicit UClass(Unreal::UClass* object); diff --git a/UE4SS/include/LuaType/LuaUFunction.hpp b/UE4SS/include/LuaType/LuaUFunction.hpp index fe19aeccf..a6d3b59fe 100644 --- a/UE4SS/include/LuaType/LuaUFunction.hpp +++ b/UE4SS/include/LuaType/LuaUFunction.hpp @@ -4,6 +4,7 @@ #include #include +#include namespace RC::Unreal { diff --git a/UE4SS/src/LuaType/LuaUClass.cpp b/UE4SS/src/LuaType/LuaUClass.cpp index cd36fbaee..ce9bf70e6 100644 --- a/UE4SS/src/LuaType/LuaUClass.cpp +++ b/UE4SS/src/LuaType/LuaUClass.cpp @@ -21,7 +21,7 @@ namespace RC::LuaType if (lua.is_nil(-1)) { lua.discard_value(-1); - LuaType::UObject::construct(lua, lua_object); + LuaType::UStruct::construct(lua, lua_object); setup_metamethods(lua_object); setup_member_functions(table); lua.new_metatable(metatable_name, lua_object.get_metamethods()); @@ -35,7 +35,7 @@ namespace RC::LuaType auto UClass::construct(const LuaMadeSimple::Lua& lua, BaseObject& construct_to) -> const LuaMadeSimple::Lua::Table { - LuaMadeSimple::Lua::Table table = UObject::construct(lua, construct_to); + LuaMadeSimple::Lua::Table table = UStruct::construct(lua, construct_to); setup_member_functions(table); @@ -52,8 +52,6 @@ namespace RC::LuaType template auto UClass::setup_member_functions(const LuaMadeSimple::Lua::Table& table) -> void { - Super::setup_member_functions(table); - // CDO = ClassDefaultObject table.add_pair("GetCDO", [](const LuaMadeSimple::Lua& lua) -> int { const auto& lua_object = lua.get_userdata(); diff --git a/UE4SS/src/LuaType/LuaUFunction.cpp b/UE4SS/src/LuaType/LuaUFunction.cpp index 63f1d6540..379e44383 100644 --- a/UE4SS/src/LuaType/LuaUFunction.cpp +++ b/UE4SS/src/LuaType/LuaUFunction.cpp @@ -42,7 +42,7 @@ namespace RC::LuaType if (lua.is_nil(-1)) { lua.discard_value(-1); - LuaType::UObject::construct(lua, lua_object); + LuaType::UStruct::construct(lua, lua_object); setup_metamethods(lua_object); setup_member_functions(table); lua.new_metatable(metatable_name, lua_object.get_metamethods()); @@ -56,7 +56,7 @@ namespace RC::LuaType auto UFunction::construct(const LuaMadeSimple::Lua& lua, BaseObject& construct_to) -> const LuaMadeSimple::Lua::Table { - LuaMadeSimple::Lua::Table table = UObject::construct(lua, construct_to); + LuaMadeSimple::Lua::Table table = UStruct::construct(lua, construct_to); setup_member_functions(table); diff --git a/assets/Changelog.md b/assets/Changelog.md index 70facc6f0..848f61abd 100644 --- a/assets/Changelog.md +++ b/assets/Changelog.md @@ -348,6 +348,9 @@ Types with `get` or `Get` functions now have both variants. ([UE4SS #877](https: Improved error messages when improperly indexing into `LocalUnrealParam`, and `RemoteUnrealParam` without first calling `Get`. ([UE4SS #1154](https://github.com/UE4SS-RE/RE-UE4SS/pull/1154)) +Fixed UFunction and UClass properly inheriting from UStruct in Lua. ([UE4SS #1154](https://github.com/UE4SS-RE/RE-UE4SS/pull/1158)) +Corporalwill123 + #### UEHelpers [UE4SS #650](https://github.com/UE4SS-RE/RE-UE4SS/pull/650) - Increased version to 3 diff --git a/docs/lua-api/classes/ufunction.md b/docs/lua-api/classes/ufunction.md index 94002d817..7fd0b31c6 100644 --- a/docs/lua-api/classes/ufunction.md +++ b/docs/lua-api/classes/ufunction.md @@ -1,7 +1,7 @@ # UFunction ## Inheritance -[UObject](./uobject.md) +[UStruct](./ustruct.md) ## Metamethods