11#include < base/entries.hpp>
22
33#include < base/pointers.hpp>
4+ #include < base/utils.hpp>
45
56#include < Net/NetworkEngine.hpp>
67#include < Net/NetworkPlayerDataManager.hpp>
78
8- #include < codecvt>
9-
10- #pragma GCC diagnostic push
11- #pragma GCC diagnostic ignored "-Waddress-of-packed-member"
129namespace base
1310{
1411using namespace CTRPluginFramework ;
@@ -26,18 +23,10 @@ namespace base
2623
2724auto const &data = (*g_pointers->m_network_engine )->m_network_player_data_manager ->m_network_player_datas_connected ;
2825
29- auto converter = std::wstring_convert<std::codecvt_utf8_utf16<char16_t >,char16_t >();
30- auto const get_name = [&converter](auto const &player_data)
31- {
32- auto name =std::u16string (reinterpret_cast <char16_t const *>(player_data.m_store_data .mii_data .mii_name ),std::size (player_data.m_store_data .mii_data .mii_name ));
33- name.erase (std::find (name.begin (), name.end (),' \0 ' ), name.end ());
34- return converter.to_bytes (name);
35- };
36-
3726auto infos = std::vector<info>();
3827for (auto i = std::size_t {}; i <std::size (data); ++i)
3928if (data[i].m_loaded )
40- infos.push_back ({ i,get_name (data[i]) });
29+ infos.push_back ({ i,utils::mii_name (data[i]. m_store_data . mii_data ) });
4130
4231auto options = std::vector<std::string>();
4332std::for_each (infos.begin (), infos.end (), [&](auto const &i) { options.push_back (i.name ); });
@@ -56,7 +45,7 @@ namespace base
5645auto const &info = infos.at (choice);
5746auto const &player_data = data[info.index ];
5847
59- auto name =get_name (player_data);
48+ auto name =utils::mii_name (player_data. m_store_data . mii_data );
6049
6150 _open:
6251auto const path =std::format (" {}.3dsmii" , name);
@@ -85,5 +74,4 @@ namespace base
8574break ;
8675 }
8776 }
88- }
89- #pragma GCC diagnostic pop
77+ }