# HG changeset patch # User Grumpy7 # Date 1396781809 -7200 # Node ID d6407efaa4ea23ca07a31476256c2b41b5167c90 # Parent dc822157c98da6b8e0b86cf35a3fe54a4585ff76 Moving registry access stuff to Registry.h/cpp diff -r dc822157c98d -r d6407efaa4ea AudioPlayer.cpp --- a/AudioPlayer.cpp Sun Apr 06 12:50:35 2014 +0200 +++ b/AudioPlayer.cpp Sun Apr 06 12:56:49 2014 +0200 @@ -20,6 +20,7 @@ #include "Log.h" #include "ErrorHandling.h" #include "Level/Decoration.h" +#include "Registry.h" #include "Bink_Smacker.h" diff -r dc822157c98d -r d6407efaa4ea Build/Visual Studio 2012/World of Might and Magic.vcxproj --- a/Build/Visual Studio 2012/World of Might and Magic.vcxproj Sun Apr 06 12:50:35 2014 +0200 +++ b/Build/Visual Studio 2012/World of Might and Magic.vcxproj Sun Apr 06 12:56:49 2014 +0200 @@ -210,6 +210,7 @@ + @@ -453,6 +454,7 @@ + diff -r dc822157c98d -r d6407efaa4ea Build/Visual Studio 2012/World of Might and Magic.vcxproj.filters --- a/Build/Visual Studio 2012/World of Might and Magic.vcxproj.filters Sun Apr 06 12:50:35 2014 +0200 +++ b/Build/Visual Studio 2012/World of Might and Magic.vcxproj.filters Sun Apr 06 12:56:49 2014 +0200 @@ -386,6 +386,7 @@ + @@ -912,6 +913,7 @@ + diff -r dc822157c98d -r d6407efaa4ea Game.cpp --- a/Game.cpp Sun Apr 06 12:50:35 2014 +0200 +++ b/Game.cpp Sun Apr 06 12:56:49 2014 +0200 @@ -48,6 +48,7 @@ #include "SpriteObject.h" #include "mm7.h" #include "Sprites.h" +#include "Registry.h" diff -r dc822157c98d -r d6407efaa4ea Keyboard.cpp --- a/Keyboard.cpp Sun Apr 06 12:50:35 2014 +0200 +++ b/Keyboard.cpp Sun Apr 06 12:56:49 2014 +0200 @@ -17,6 +17,7 @@ #include "Indoor.h" #include "viewport.h" #include "AudioPlayer.h" +#include "Registry.h" #include "Level/Decoration.h" #include diff -r dc822157c98d -r d6407efaa4ea OSWindow.cpp --- a/OSWindow.cpp Sun Apr 06 12:50:35 2014 +0200 +++ b/OSWindow.cpp Sun Apr 06 12:56:49 2014 +0200 @@ -22,6 +22,7 @@ #include "Log.h" #include "LOD.h" #include "Outdoor_stuff.h" +#include "Registry.h" bool wizard_eye = false; //включить на постоянно око чародея diff -r dc822157c98d -r d6407efaa4ea Render.cpp --- a/Render.cpp Sun Apr 06 12:50:35 2014 +0200 +++ b/Render.cpp Sun Apr 06 12:56:49 2014 +0200 @@ -33,6 +33,7 @@ #include "Lights.h" #include "Level/Decoration.h" #include "Vis.h" +#include "Registry.h" //#pragma comment(lib, "lib\\legacy_dx\\lib\\ddraw.lib") //#pragma comment(lib, "lib\\legacy_dx\\lib\\dxguid.lib") diff -r dc822157c98d -r d6407efaa4ea mm7_2.cpp --- a/mm7_2.cpp Sun Apr 06 12:50:35 2014 +0200 +++ b/mm7_2.cpp Sun Apr 06 12:56:49 2014 +0200 @@ -60,6 +60,7 @@ #include "Level/Decoration.h" #include "LuaVM.h" #include "MMT.h" +#include "Registry.h" //#include "lib/lua/lua.h" @@ -2460,181 +2461,6 @@ _flushall(); } -//----- (004649EF) -------------------------------------------------------- -int __fastcall ReadWindowsRegistryInt(const char *pKey, int uDefValue) -{ - int v3; // [sp+4h] [bp-24h]@1 - DWORD cbData; // [sp+8h] [bp-20h]@1 - LPCSTR lpValueName; // [sp+Ch] [bp-1Ch]@1 - DWORD dwDisposition; // [sp+10h] [bp-18h]@2 - BYTE Data[4]; // [sp+14h] [bp-14h]@5 - HKEY hKey; // [sp+18h] [bp-10h]@1 - HKEY phkResult; // [sp+1Ch] [bp-Ch]@1 - HKEY v10; // [sp+20h] [bp-8h]@1 - HKEY v11; // [sp+24h] [bp-4h]@1 - - v3 = uDefValue; - lpValueName = pKey; - v11 = 0; - v10 = 0; - hKey = 0; - phkResult = 0; - cbData = 4; - if ( !RegOpenKeyExA(HKEY_LOCAL_MACHINE, "SOFTWARE", 0, KEY_READ|KEY_WOW64_32KEY, &hKey) )// for 64 bit - { - if ( !RegCreateKeyExA(hKey, "New World Computing", 0, "", 0, 0xF003Fu, 0, &phkResult, &dwDisposition) ) - { - if ( !RegCreateKeyExA(phkResult, "Might and Magic VII", 0, "", 0, 0xF003Fu, 0, &v10, &dwDisposition) ) - { - if ( !RegCreateKeyExA(v10, "1.0", 0, "", 0, 0xF003Fu, 0, &v11, &dwDisposition) ) - { - if ( RegQueryValueExA(v11, lpValueName, 0, 0, Data, &cbData) ) - { - *(int *)Data = v3; - RegSetValueExA(v11, lpValueName, 0, 4u, Data, 4u); - } - RegCloseKey(v11); - } - RegCloseKey(v10); - } - RegCloseKey(phkResult); - } - RegCloseKey(hKey); - } - return *(int *)Data; -} - -//----- (00464B02) -------------------------------------------------------- -void __fastcall WriteWindowsRegistryString(const char *pKey, const char *pString) -{ - size_t v2; // eax@5 - const char *lpValueName; // [sp+4h] [bp-1Ch]@1 - const char *Str; // [sp+8h] [bp-18h]@1 - DWORD dwDisposition; // [sp+Ch] [bp-14h]@2 - HKEY hKey; // [sp+10h] [bp-10h]@1 - HKEY phkResult; // [sp+14h] [bp-Ch]@1 - HKEY v8; // [sp+18h] [bp-8h]@1 - HKEY v9; // [sp+1Ch] [bp-4h]@1 - - Str = pString; - lpValueName = pKey; - v9 = 0; - v8 = 0; - hKey = 0; - phkResult = 0; - if ( !RegOpenKeyExA(HKEY_LOCAL_MACHINE, "SOFTWARE", 0, 0x2001Fu, &hKey) ) - { - if ( !RegCreateKeyExA(hKey, "New World Computing", 0, "", 0, 0xF003Fu, 0, &phkResult, &dwDisposition) ) - { - if ( !RegCreateKeyExA(phkResult, "Might and Magic VII", 0, "", 0, 0xF003Fu, 0, &v8, &dwDisposition) ) - { - if ( !RegCreateKeyExA(v8, "1.0", 0, "", 0, 0xF003Fu, 0, &v9, &dwDisposition) ) - { - v2 = strlen(Str); - RegSetValueExA(v9, lpValueName, 0, 1u, (const BYTE *)Str, v2 + 1); - RegCloseKey(v9); - } - RegCloseKey(v8); - } - RegCloseKey(phkResult); - } - RegCloseKey(hKey); - } -} - -//----- (00464BEF) -------------------------------------------------------- -void __fastcall ReadWindowsRegistryString(const char *pKeyName, char *pOutString, int uBufLen, const char *pDefaultValue) -{ - LSTATUS (__stdcall *v4)(HKEY); // esi@1 - LSTATUS result; // eax@7 - DWORD Type; // [sp+Ch] [bp-24h]@5 - LPCSTR lpValueName; // [sp+10h] [bp-20h]@1 - DWORD cbData; // [sp+14h] [bp-1Ch]@1 - LPBYTE Dest; // [sp+18h] [bp-18h]@1 - DWORD dwDisposition; // [sp+1Ch] [bp-14h]@2 - HKEY phkResult; // [sp+20h] [bp-10h]@1 - HKEY hKey; // [sp+24h] [bp-Ch]@1 - HKEY v13; // [sp+28h] [bp-8h]@1 - HKEY v14; // [sp+2Ch] [bp-4h]@1 - - cbData = uBufLen; - Dest = (LPBYTE)pOutString; - lpValueName = pKeyName; - v14 = 0; - v13 = 0; - hKey = 0; - phkResult = 0; - v4 = RegCloseKey; - if ( RegOpenKeyExA(HKEY_LOCAL_MACHINE, "SOFTWARE", 0, 0x2001Fu, &hKey) - || RegCreateKeyExA(hKey, "New World Computing", 0, "", 0, 0xF003Fu, 0, &phkResult, &dwDisposition) - || RegCreateKeyExA(phkResult, "Might and Magic VII", 0, "", 0, 0xF003Fu, 0, &v13, &dwDisposition) - || RegCreateKeyExA(v13, "1.0", 0, "", 0, 0xF003Fu, 0, &v14, &dwDisposition) ) - { - result = (LSTATUS)strncpy((char *)Dest, pDefaultValue, uBufLen); - } - else if ( RegQueryValueExA(v14, lpValueName, 0, &Type, Dest, &cbData) ) - { - RegCloseKey(v14); - v14 = 0; - result = (LSTATUS)strncpy((char *)Dest, pDefaultValue, uBufLen); - } - else - { - v4 = RegCloseKey; - RegCloseKey(v14); - v14 = 0; - RegCloseKey(v13); - v13 = 0; - RegCloseKey(phkResult); - phkResult = 0; - result = RegCloseKey(hKey); - hKey = 0; - } - if ( v14 ) - result = v4(v14); - if ( v13 ) - result = v4(v13); - if ( hKey ) - result = v4(hKey); - if ( phkResult ) - result = v4(phkResult); -} - -//----- (00464D32) -------------------------------------------------------- -void __fastcall WriteWindowsRegistryInt(const char *pKey, int val) -{ - const char *lpValueName; // [sp+4h] [bp-1Ch]@1 - BYTE Data[4]; // [sp+8h] [bp-18h]@1 - DWORD dwDisposition; // [sp+Ch] [bp-14h]@2 - HKEY hKey; // [sp+10h] [bp-10h]@1 - HKEY phkResult; // [sp+14h] [bp-Ch]@1 - HKEY v7; // [sp+18h] [bp-8h]@1 - HKEY v8; // [sp+1Ch] [bp-4h]@1 - - *(int *)Data = val; - lpValueName = pKey; - v8 = 0; - v7 = 0; - hKey = 0; - phkResult = 0; - if ( !RegOpenKeyExA(HKEY_LOCAL_MACHINE, "SOFTWARE", 0, 0x2001Fu, &hKey) ) - { - if ( !RegCreateKeyExA(hKey, "New World Computing", 0, "", 0, 0xF003Fu, 0, &phkResult, &dwDisposition) ) - { - if ( !RegCreateKeyExA(phkResult, "Might and Magic VII", 0, "", 0, 0xF003Fu, 0, &v7, &dwDisposition) ) - { - if ( !RegCreateKeyExA(v7, "1.0", 0, "", 0, 0xF003Fu, 0, &v8, &dwDisposition) ) - { - RegSetValueExA(v8, lpValueName, 0, 4, Data, 4); - RegCloseKey(v8); - } - RegCloseKey(v7); - } - RegCloseKey(phkResult); - } - RegCloseKey(hKey); - } -} //----- (00464E17) -------------------------------------------------------- bool __fastcall CheckMM7CD(char c) diff -r dc822157c98d -r d6407efaa4ea mm7_unsorted_subs.h --- a/mm7_unsorted_subs.h Sun Apr 06 12:50:35 2014 +0200 +++ b/mm7_unsorted_subs.h Sun Apr 06 12:56:49 2014 +0200 @@ -93,10 +93,6 @@ char Is_out15odm_underwater(); void SetUnderwaterFog(); void DoPrepareWorld(unsigned int bLoading, int _1_fullscreen_loading_2_box); -int __fastcall ReadWindowsRegistryInt(const char *pKey, int uDefValue); // idb -void __fastcall WriteWindowsRegistryString(const char *pKey, const char *pString); -void __fastcall ReadWindowsRegistryString(const char *pKeyName, char *pOutString, int uBufLen, const char *pDefaultValue); -void __fastcall WriteWindowsRegistryInt(const char *pKey, int val); bool __fastcall CheckMM7CD(char c); void SecondaryInitialization(); void CreateAsyncMouse();