Skip to content

Commit 470fe85

Browse files
committed
(#1135) Lua: Fix sdk.set_native_field not functioning at all
1 parent d474aa0 commit 470fe85

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/mods/bindings/Sdk.cpp

+4-3
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ sol::object parse_data(lua_State* l, void* data, ::sdk::RETypeDefinition* data_t
330330
sol::object get_native_field(sol::object obj, ::sdk::RETypeDefinition* ty, const char* name);
331331
sol::object get_native_field_from_field(sol::object obj, ::sdk::RETypeDefinition* ty, ::sdk::REField* field);
332332
sol::object get_field_or_method(sol::object obj, const char* name);
333-
void set_native_field(lua_State* l, sol::object obj, ::sdk::RETypeDefinition* ty, const char* name, sol::object value);
333+
void set_native_field(sol::this_state s, sol::object obj, ::sdk::RETypeDefinition* ty, const char* name, sol::object value);
334334

335335
struct ValueType {
336336
std::vector<uint8_t> data{};
@@ -1055,9 +1055,10 @@ void set_native_field_from_field(sol::object obj, ::sdk::RETypeDefinition* ty, :
10551055
set_data(data, field_type, value);
10561056
}
10571057

1058-
void set_native_field(lua_State* l, sol::object obj, ::sdk::RETypeDefinition* ty, const char* name, sol::object value) {
1058+
void set_native_field(sol::this_state s, sol::object obj, ::sdk::RETypeDefinition* ty, const char* name, sol::object value) {
10591059
const auto field = ty->get_field(name);
10601060
if (field == nullptr) {
1061+
auto l = s.lua_state();
10611062
//throw sol::error("Attempted to set invalid REManagedObject field:" + std::string(name));
10621063
luaL_traceback(l, l, ("Attempted to set invalid REManagedObject field:" + std::string(name)).c_str(), 1);
10631064
std::string traceback_err = lua_tostring(l, -1);
@@ -1686,7 +1687,7 @@ void bindings::open_sdk(ScriptState* s) {
16861687
return;
16871688
}
16881689

1689-
return api::sdk::set_native_field(s->lua(), sol::make_object(s->lua(), obj), utility::re_managed_object::get_type_definition(obj), name, value);
1690+
return api::sdk::set_native_field(sol::this_state{s->lua()}, sol::make_object(s->lua(), obj), utility::re_managed_object::get_type_definition(obj), name, value);
16901691
},
16911692
"call", [s](REManagedObject* obj, const char* name, sol::variadic_args args) {
16921693
if (obj == nullptr) {

0 commit comments

Comments
 (0)