@@ -407,12 +407,12 @@ namespace RC::LuaType
407407 auto_construct_object (params.lua , *property_value);
408408 break ;
409409 case Operation::Set: {
410- if (params.lua .is_userdata ())
410+ if (params.lua .is_userdata (params. stored_at_index ))
411411 {
412412 const auto & lua_object = params.lua .get_userdata <LuaType::UObject>(params.stored_at_index );
413413 *property_value = lua_object.get_remote_cpp_object ();
414414 }
415- else if (params.lua .is_nil ())
415+ else if (params.lua .is_nil (params. stored_at_index ))
416416 {
417417 params.lua .discard_value (params.stored_at_index );
418418 *property_value = nullptr ;
@@ -443,12 +443,12 @@ namespace RC::LuaType
443443 LuaType::UClass::construct (params.lua , *property_value);
444444 break ;
445445 case Operation::Set: {
446- if (params.lua .is_userdata ())
446+ if (params.lua .is_userdata (params. stored_at_index ))
447447 {
448448 const auto & lua_object = params.lua .get_userdata <LuaType::UClass>(params.stored_at_index );
449449 *property_value = lua_object.get_remote_cpp_object ();
450450 }
451- else if (params.lua .is_nil ())
451+ else if (params.lua .is_nil (params. stored_at_index ))
452452 {
453453 params.lua .discard_value (params.stored_at_index );
454454 }
@@ -719,19 +719,19 @@ namespace RC::LuaType
719719 };
720720
721721 auto lua_to_memory = [&]() {
722- if (params.lua .is_userdata ())
722+ if (params.lua .is_userdata (params. stored_at_index ))
723723 {
724724 // StructData as userdata
725725 params.throw_error (" push_structproperty::lua_to_memory" , " StructData as userdata is not yet implemented but there's userdata on the stack" );
726726 }
727- else if (params.lua .is_table ())
727+ else if (params.lua .is_table (params. stored_at_index ))
728728 {
729729 // StructData as table
730730 lua_table_to_memory ();
731731 }
732- else if (params.lua .is_nil ())
732+ else if (params.lua .is_nil (params. stored_at_index ))
733733 {
734- params.lua .discard_value ();
734+ params.lua .discard_value (params. stored_at_index );
735735 }
736736 else
737737 {
@@ -1788,12 +1788,12 @@ namespace RC::LuaType
17881788 auto_construct_object (params.lua , *property_value);
17891789 break ;
17901790 case Operation::Set: {
1791- if (params.lua .is_userdata ())
1791+ if (params.lua .is_userdata (params. stored_at_index ))
17921792 {
17931793 const auto & lua_object = params.lua .get_userdata <LuaType::UInterface>(params.stored_at_index );
17941794 *property_value = lua_object.get_remote_cpp_object ();
17951795 }
1796- else if (params.lua .is_nil ())
1796+ else if (params.lua .is_nil (params. stored_at_index ))
17971797 {
17981798 params.lua .discard_value (params.stored_at_index );
17991799 *property_value = nullptr ;
@@ -1841,7 +1841,7 @@ namespace RC::LuaType
18411841 break ;
18421842 }
18431843 case Operation::Set: {
1844- if (params.lua .is_table ())
1844+ if (params.lua .is_table (params. stored_at_index ))
18451845 {
18461846 lua_pushstring (params.lua .get_lua_state (), " Object" );
18471847 int adjusted_index = params.stored_at_index ;
@@ -1852,9 +1852,9 @@ namespace RC::LuaType
18521852 lua_rawget (params.lua .get_lua_state (), adjusted_index);
18531853
18541854 Unreal::UObject* obj = nullptr ;
1855- if (params.lua .is_userdata ())
1855+ if (params.lua .is_userdata (- 1 ))
18561856 {
1857- const auto & lua_object = params.lua .get_userdata <LuaType::UObject>();
1857+ const auto & lua_object = params.lua .get_userdata <LuaType::UObject>(- 1 );
18581858 obj = lua_object.get_remote_cpp_object ();
18591859 }
18601860 params.lua .discard_value ();
@@ -1863,9 +1863,9 @@ namespace RC::LuaType
18631863 lua_rawget (params.lua .get_lua_state (), adjusted_index);
18641864
18651865 Unreal::FName fname = NAME_None;
1866- if (params.lua .is_userdata ())
1866+ if (params.lua .is_userdata (- 1 ))
18671867 {
1868- auto & lua_fname = params.lua .get_userdata <LuaType::FName>();
1868+ auto & lua_fname = params.lua .get_userdata <LuaType::FName>(- 1 );
18691869 fname = lua_fname.get_local_cpp_object ();
18701870 }
18711871 params.lua .discard_value ();
@@ -1875,7 +1875,7 @@ namespace RC::LuaType
18751875 delegate_value->BindUFunction (obj, fname);
18761876 params.lua .discard_value (params.stored_at_index );
18771877 }
1878- else if (params.lua .is_nil ())
1878+ else if (params.lua .is_nil (params. stored_at_index ))
18791879 {
18801880 delegate_value->Clear ();
18811881 params.lua .discard_value (params.stored_at_index );
0 commit comments