diff --git a/Source/Contents/Actors/ActorPickNode.cpp b/Source/Contents/Actors/ActorPickNode.cpp index 0606e6b8b..07eb48fd1 100644 --- a/Source/Contents/Actors/ActorPickNode.cpp +++ b/Source/Contents/Actors/ActorPickNode.cpp @@ -16,6 +16,8 @@ #include #include "Utility/StdStringCompare.h" +extern template std::string::basic_string(const std::string&); + // OFFSET: 0x00AD9530 // FUNCTION: fn_17878 std::uint32_t MovementRouteInterpolation::Duration() const { diff --git a/Source/Contents/Emblems/EmblemDataUploadAsyncWork.cpp b/Source/Contents/Emblems/EmblemDataUploadAsyncWork.cpp index 2a3b4419c..c473be6dc 100644 --- a/Source/Contents/Emblems/EmblemDataUploadAsyncWork.cpp +++ b/Source/Contents/Emblems/EmblemDataUploadAsyncWork.cpp @@ -11,6 +11,8 @@ #include #include +extern template std::string& std::string::assign(const char*, std::string::size_type); + namespace { constexpr char sourceFile[] = "C:\\repositories\\RagnarokClient\\RagnarokClient\\Contents\\Emblem\\CEmblemDataUploadAsyncWork.cpp"; diff --git a/Source/Contents/Party/LoadPartyInfoAsyncWork.cpp b/Source/Contents/Party/LoadPartyInfoAsyncWork.cpp index ef5cf9c4e..d810d1722 100644 --- a/Source/Contents/Party/LoadPartyInfoAsyncWork.cpp +++ b/Source/Contents/Party/LoadPartyInfoAsyncWork.cpp @@ -11,6 +11,8 @@ #include #include +extern template std::string& std::string::assign(const char*, std::string::size_type); + namespace { constexpr char sourceFile[] = "C:\\repositories\\RagnarokClient\\RagnarokClient\\Contents\\AdventurerAgency\\CLoadPartyInfoAsyncWork.cpp"; diff --git a/Source/Contents/Party/LoadPartyListAsyncWork.cpp b/Source/Contents/Party/LoadPartyListAsyncWork.cpp index 1a5fe3309..7598094b7 100644 --- a/Source/Contents/Party/LoadPartyListAsyncWork.cpp +++ b/Source/Contents/Party/LoadPartyListAsyncWork.cpp @@ -11,6 +11,8 @@ #include #include +extern template std::string& std::string::assign(const char*, std::string::size_type); + namespace { constexpr char sourceFile[] = "C:\\repositories\\RagnarokClient\\RagnarokClient\\Contents\\AdventurerAgency\\CLoadPartyLIstAsyncWork.cpp"; diff --git a/Source/Contents/UserData/AccountLinkedUserDataSaveAsyncWork.cpp b/Source/Contents/UserData/AccountLinkedUserDataSaveAsyncWork.cpp index 6ce17262b..cba3836e7 100644 --- a/Source/Contents/UserData/AccountLinkedUserDataSaveAsyncWork.cpp +++ b/Source/Contents/UserData/AccountLinkedUserDataSaveAsyncWork.cpp @@ -11,6 +11,8 @@ #include #include +extern template std::string& std::string::assign(const char*, std::string::size_type); + namespace { constexpr char sourceFile[] = "C:" "\\repositories\\RagnarokClient\\RagnarokClient\\Contents\\AccountLinkedUserData\\CAcco" diff --git a/Source/Contents/UserData/CharacterLinkedUserDataLoadAsyncWork.cpp b/Source/Contents/UserData/CharacterLinkedUserDataLoadAsyncWork.cpp index f6a4cb28e..3620f0e7c 100644 --- a/Source/Contents/UserData/CharacterLinkedUserDataLoadAsyncWork.cpp +++ b/Source/Contents/UserData/CharacterLinkedUserDataLoadAsyncWork.cpp @@ -11,6 +11,8 @@ #include #include +extern template std::string& std::string::assign(const char*, std::string::size_type); + namespace { constexpr char sourceFile[] = "C:" "\\repositories\\RagnarokClient\\RagnarokClient\\Contents\\CharacterLinkedUserData\\CCh" diff --git a/Source/Contents/UserData/CharacterLinkedUserDataSaveAsyncWork.cpp b/Source/Contents/UserData/CharacterLinkedUserDataSaveAsyncWork.cpp index bfb894432..9ccb732cd 100644 --- a/Source/Contents/UserData/CharacterLinkedUserDataSaveAsyncWork.cpp +++ b/Source/Contents/UserData/CharacterLinkedUserDataSaveAsyncWork.cpp @@ -11,6 +11,8 @@ #include #include +extern template std::string& std::string::assign(const char*, std::string::size_type); + namespace { constexpr char sourceFile[] = "C:" "\\repositories\\RagnarokClient\\RagnarokClient\\Contents\\CharacterLinkedUserData\\CCh" diff --git a/Source/Network/Packets/ActorNamePacket.cpp b/Source/Network/Packets/ActorNamePacket.cpp index 558e2864a..f00bc26c1 100644 --- a/Source/Network/Packets/ActorNamePacket.cpp +++ b/Source/Network/Packets/ActorNamePacket.cpp @@ -10,6 +10,8 @@ #include #include +extern template std::string::basic_string(const std::string&); + // OFFSET: 0x00D1DFB0 // FUNCTION: fn_21632 void CGameMode::ReceiveActorNameAll(const ActorNameAllPacket* packet) { diff --git a/Source/Render/Device/RenderBackends.cpp b/Source/Render/Device/RenderBackends.cpp index c9ae7713b..a218043a8 100644 --- a/Source/Render/Device/RenderBackends.cpp +++ b/Source/Render/Device/RenderBackends.cpp @@ -1,5 +1,7 @@ #include "Render/Device/RenderBackends.h" +extern template std::string& std::string::assign(const char*, std::string::size_type); + // OFFSET: 0x0056A2A0 // FUNCTION: fn_02289 std::vector EnumerateRenderBackends() { diff --git a/Source/UI/Edit/UIEditCtrl3.cpp b/Source/UI/Edit/UIEditCtrl3.cpp index 3fd68765e..6ec754b65 100644 --- a/Source/UI/Edit/UIEditCtrl3.cpp +++ b/Source/UI/Edit/UIEditCtrl3.cpp @@ -5,6 +5,8 @@ #include "UI/Navigation/NavigationLink.h" #include "UI/Text/TextFitting.h" +extern template std::string::basic_string(const std::string&); + // OFFSET: 0x00861AB0 // FUNCTION: fn_10902 void UIEditCtrl3::UpdateScrollBar() { diff --git a/Source/UI/Edit/UIEditVariants.cpp b/Source/UI/Edit/UIEditVariants.cpp index 37e0cd1ba..ba8c835d6 100644 --- a/Source/UI/Edit/UIEditVariants.cpp +++ b/Source/UI/Edit/UIEditVariants.cpp @@ -1195,6 +1195,9 @@ UIShowAndEditTimeCtrl::UIShowAndEditTimeCtrl() : UIWindow(0) { #include "UI/Edit/UIItemTagCtrl.h" #include "UI/Edit/UIEditPaint.inl" +extern template void std::vector::_Tidy() noexcept; +extern template std::size_t std::_Traits_find>(const char* const, const std::size_t, const std::size_t, const char* const, const std::size_t) noexcept; + // OFFSET: 0x0085C4F0 // FUNCTION: fn_10801 void UIChatEditCtrl::Paint() { diff --git a/Source/UI/Lists/UIComboBoxDefWnd.cpp b/Source/UI/Lists/UIComboBoxDefWnd.cpp index cce6e46ee..184fa205e 100644 --- a/Source/UI/Lists/UIComboBoxDefWnd.cpp +++ b/Source/UI/Lists/UIComboBoxDefWnd.cpp @@ -33,6 +33,8 @@ #include "Resource/MSGSTRINGID.h" #include +extern template std::size_t std::_Traits_find>(const char* const, const std::size_t, const std::size_t, const char* const, const std::size_t) noexcept; + extern template std::string::basic_string(std::_String_constructor_concat_tag, const std::string&, const char*, std::size_t, const char*, std::size_t); namespace { diff --git a/Source/UI/Shop/UIMerchantShopTitle.cpp b/Source/UI/Shop/UIMerchantShopTitle.cpp index 9a387816d..e966b1b1a 100644 --- a/Source/UI/Shop/UIMerchantShopTitle.cpp +++ b/Source/UI/Shop/UIMerchantShopTitle.cpp @@ -14,6 +14,8 @@ #include "UI/Window/WindowBorder.h" #include "UI/Text/UIStaticText.h" +extern template std::string& std::string::operator=(std::string&&) noexcept; + // OFFSET: 0x0085ACE0 // FUNCTION: fn_10788 void UIMerchantShopTitle::OnCreate(int, int) { diff --git a/Source/UI/Window/UIWindow.cpp b/Source/UI/Window/UIWindow.cpp index ab1b6806f..eec43782f 100644 --- a/Source/UI/Window/UIWindow.cpp +++ b/Source/UI/Window/UIWindow.cpp @@ -85,6 +85,9 @@ #include #include +extern template bool std::_Traits_equal>(const char*, std::size_t, const char*, std::size_t) noexcept; +extern template std::vector::~vector(); + namespace { struct NavigationTargetLook { /* 0000 */ int job;