diff --git a/lsteamclient/gen_wrapper.py b/lsteamclient/gen_wrapper.py index fb3948a0..b4bf22fb 100755 --- a/lsteamclient/gen_wrapper.py +++ b/lsteamclient/gen_wrapper.py @@ -607,6 +607,7 @@ class Struct: out(u'#if defined(__cplusplus) && (defined(__x86_64__) || defined(__aarch64__))\n') out(f' {prefix}{version}() = default;\n') out(f' {prefix}{version}( w32_{version} const& );\n') + out(f' {prefix}{version}( w64_{version} const& );\n') out(f' ~{prefix}{version}();\n') out(u'#endif /* __cplusplus */\n') diff --git a/lsteamclient/steamclient_structs_generated.h b/lsteamclient/steamclient_structs_generated.h index 7cecd87b..6b20d4e4 100644 --- a/lsteamclient/steamclient_structs_generated.h +++ b/lsteamclient/steamclient_structs_generated.h @@ -11007,6 +11007,7 @@ struct w64_SteamParamStringArray_t #if defined(__cplusplus) && (defined(__x86_64__) || defined(__aarch64__)) w64_SteamParamStringArray_t() = default; w64_SteamParamStringArray_t( w32_SteamParamStringArray_t const& ); + w64_SteamParamStringArray_t( w64_SteamParamStringArray_t const& ); ~w64_SteamParamStringArray_t(); #endif /* __cplusplus */ }; diff --git a/lsteamclient/unixlib.cpp b/lsteamclient/unixlib.cpp index 40f4a9a7..90309cf9 100644 --- a/lsteamclient/unixlib.cpp +++ b/lsteamclient/unixlib.cpp @@ -1545,6 +1545,13 @@ w64_SteamParamStringArray_t::w64_SteamParamStringArray_t( w32_SteamParamStringAr while (count--) m_ppStrings[count] = w32.m_ppStrings[count]; } +w64_SteamParamStringArray_t::w64_SteamParamStringArray_t( w64_SteamParamStringArray_t const& w64 ) + : m_nNumStrings(w64.m_nNumStrings) +{ + m_ppStrings = new const char *[m_nNumStrings]; + memcpy( m_ppStrings, w64.m_ppStrings, sizeof(*m_ppStrings) * m_nNumStrings ); +} + w64_SteamParamStringArray_t::~w64_SteamParamStringArray_t() { delete[] m_ppStrings;