diff --git a/src/gameui/IBrowser.cpp b/src/gameui/IBrowser.cpp index 4efe7f6a..c2141a81 100644 --- a/src/gameui/IBrowser.cpp +++ b/src/gameui/IBrowser.cpp @@ -48,6 +48,7 @@ CBrowser::CBrowser(void) : m_reclaimFocusOnTokenField(false) , m_queryNewListNonRecursive(false) , m_queryGlobalBanList(true) + , m_lockedIconShaderResource(nullptr) , m_hostMessageColor(1.00f, 1.00f, 1.00f, 1.00f) , m_hiddenServerMessageColor(0.00f, 1.00f, 0.00f, 1.00f) { @@ -57,8 +58,6 @@ CBrowser::CBrowser(void) memset(m_serverAddressTextBuf, '\0', sizeof(m_serverAddressTextBuf)); memset(m_serverNetKeyTextBuf, '\0', sizeof(m_serverNetKeyTextBuf)); - m_lockedIconDataResource = GetModuleResource(IDB_PNG2); - m_levelName = "mp_lobby"; m_gameMode = "dev_default"; } @@ -78,7 +77,10 @@ bool CBrowser::Init(void) { SetStyleVar(927.f, 524.f, -500.f, 50.f); - bool ret = LoadTextureBuffer(reinterpret_cast(m_lockedIconDataResource.m_pData), int(m_lockedIconDataResource.m_nSize), + HMODULE sdkModule = reinterpret_cast(g_SDKDll.GetModuleBase()); + m_lockedIconDataResource = GetModuleResource(sdkModule, IDB_PNG2); + + const bool ret = LoadTextureBuffer(reinterpret_cast(m_lockedIconDataResource.m_pData), int(m_lockedIconDataResource.m_nSize), &m_lockedIconShaderResource, &m_lockedIconDataResource.m_nWidth, &m_lockedIconDataResource.m_nHeight); IM_ASSERT(ret && m_lockedIconShaderResource); diff --git a/src/gameui/IConsole.cpp b/src/gameui/IConsole.cpp index 8d87ce5f..44eef1c9 100644 --- a/src/gameui/IConsole.cpp +++ b/src/gameui/IConsole.cpp @@ -912,22 +912,19 @@ void CConsole::DetermineAutoCompleteWindowRect(void) //----------------------------------------------------------------------------- bool CConsole::LoadFlagIcons(void) { + HMODULE sdkModule = reinterpret_cast(g_SDKDll.GetModuleBase()); bool ret = false; // Get all flag image resources for displaying flags. for (int i = IDB_PNG3, k = NULL; i <= IDB_PNG32; i++, k++) { - m_vecFlagIcons.push_back(MODULERESOURCE(GetModuleResource(i))); + m_vecFlagIcons.push_back(MODULERESOURCE(GetModuleResource(sdkModule, i))); MODULERESOURCE& rFlagIcon = m_vecFlagIcons[k]; ret = LoadTextureBuffer(reinterpret_cast(rFlagIcon.m_pData), // !TODO: Fall-back texture. static_cast(rFlagIcon.m_nSize), &rFlagIcon.m_idIcon, &rFlagIcon.m_nWidth, &rFlagIcon.m_nHeight); - if (!ret) - { - Assert(0, "Texture flags load failed for %i", i); - break; - } + Assert(ret, "Texture flags load failed for %i", i); } m_autoCompleteTexturesLoaded = ret; diff --git a/src/windows/resource.cpp b/src/windows/resource.cpp index 87a86239..3c4be7eb 100644 --- a/src/windows/resource.cpp +++ b/src/windows/resource.cpp @@ -9,27 +9,22 @@ //############################################################################# // //############################################################################# -MODULERESOURCE GetModuleResource(int iResource) +MODULERESOURCE GetModuleResource(HMODULE hModule, const int iResource) { - static HGLOBAL rcData = NULL; - HMODULE handle; - - GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | - GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, (LPCSTR)"unnamed", &handle); - - HRSRC rc = FindResource(handle, MAKEINTRESOURCE(iResource), MAKEINTRESOURCE(PNG)); + const HRSRC rc = FindResource(hModule, MAKEINTRESOURCE(iResource), MAKEINTRESOURCE(PNG)); if (!rc) { - assert(rc == NULL); + assert(0); return MODULERESOURCE(); } - rcData = LoadResource(handle, rc); + const HGLOBAL rcData = LoadResource(hModule, rc); if (!rcData) { - assert(rcData == NULL); + assert(0); return MODULERESOURCE(); } - return (MODULERESOURCE(LockResource(rcData), SizeofResource(handle, rc))); + + return (MODULERESOURCE(LockResource(rcData), SizeofResource(hModule, rc))); } /////////////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/src/windows/resource.h b/src/windows/resource.h index 5fa47639..d19cb98c 100644 --- a/src/windows/resource.h +++ b/src/windows/resource.h @@ -26,4 +26,4 @@ struct MODULERESOURCE int m_nHeight; }; -MODULERESOURCE GetModuleResource(int iResource); +MODULERESOURCE GetModuleResource(HMODULE hModule, const int iResource);