# HG changeset patch # User a.parshin # Date 1431166749 -7200 # Node ID 407263babde85179412022f2e22e84f32142e6d6 # Parent c9182a87095eecd3f5f5e0fda863804d3e70b6b0 Removed GammaControl diff -r c9182a87095e -r 407263babde8 Build/Visual Studio 2013/World of Might and Magic.vcxproj --- a/Build/Visual Studio 2013/World of Might and Magic.vcxproj Sat May 09 11:29:44 2015 +0200 +++ b/Build/Visual Studio 2013/World of Might and Magic.vcxproj Sat May 09 12:19:09 2015 +0200 @@ -98,7 +98,6 @@ - @@ -260,7 +259,6 @@ - diff -r c9182a87095e -r 407263babde8 Build/Visual Studio 2013/World of Might and Magic.vcxproj.filters --- a/Build/Visual Studio 2013/World of Might and Magic.vcxproj.filters Sat May 09 11:29:44 2015 +0200 +++ b/Build/Visual Studio 2013/World of Might and Magic.vcxproj.filters Sat May 09 12:19:09 2015 +0200 @@ -321,9 +321,6 @@ Engine\Graphics - - Engine\Graphics - Engine\Graphics @@ -1023,9 +1020,6 @@ Engine\Graphics - - Engine\Graphics - Engine\Graphics diff -r c9182a87095e -r 407263babde8 Engine/Game.cpp --- a/Engine/Game.cpp Sat May 09 11:29:44 2015 +0200 +++ b/Engine/Game.cpp Sat May 09 12:19:09 2015 +0200 @@ -671,7 +671,6 @@ uFlags2 |= 1; uNumStationaryLights_in_pStationaryLightsStack = pStationaryLightsStack->uNumLightsActive; } - _44E904(); return true; } @@ -873,11 +872,8 @@ field_E0C = 0; field_E10 = 0; uNumStationaryLights_in_pStationaryLightsStack = 0; - bGammaControlInitialized = false; uFlags = 0; uFlags2 = 0; - uSomeGammaStartTime = 0; - uSomeGammaDeltaTime = 0; //pThreadWardInstance = new ThreadWard; pThreadWardInstance = nullptr; @@ -896,7 +892,7 @@ //pCShow = new CShow; pCShow = nullptr; pKeyboardInstance = new Keyboard; - pGammaController = new GammaController; + //pGammaController = new GammaController; uFlags |= 0x0800; uFlags2 |= 0x24; @@ -907,7 +903,7 @@ //----- (0044E7F3) -------------------------------------------------------- Game::~Game() { - delete pGammaController; + //delete pGammaController; delete pKeyboardInstance; /*delete pCShow; delete pStru12Instance; @@ -923,83 +919,6 @@ //delete pThreadWardInstance; } -//----- (0044E904) -------------------------------------------------------- -void Game::_44E904() -{ - //Game *v1; // esi@1 - unsigned __int64 v2; // qax@1 - unsigned int v3; // ecx@1 - int v4; // edi@1 - unsigned __int8 v5; // cf@7 - double v6; // st7@13 - double v7; // st7@15 - signed __int64 v8; // [sp+Ch] [bp-8h]@1 - - //v1 = this; - v2 = pEventTimer->Time(); - v4 = (v2 - uSomeGammaStartTime) >> 32; - v3 = v2 - LODWORD(uSomeGammaStartTime); - v8 = v2 - uSomeGammaStartTime; - if ( v4 < 0 - || SHIDWORD(v2) < ((unsigned int)v2 < LODWORD(uSomeGammaStartTime)) + HIDWORD(uSomeGammaStartTime) | v4 == 0 - && v3 <= 0x80 ) - { - if ( v4 < 0 ) - { - v3 = 0; - v4 = 0; - uSomeGammaStartTime = v2; - v8 = __PAIR__(v4, v3); - } - } - else - { - if ( uSomeGammaDeltaTime ) - { - LODWORD(uSomeGammaDeltaTime) = 0; - HIDWORD(uSomeGammaDeltaTime) = 0; - } - else - { - LODWORD(uSomeGammaDeltaTime) = v3; - HIDWORD(uSomeGammaDeltaTime) = v4; - } - v5 = __CFADD__(v3, -128); - v3 -= 128; - v4 = v5 + v4 - 1; - uSomeGammaStartTime = v2; - v8 = __PAIR__(v4, v3); - } - if ( uSomeGammaDeltaTime ) - v6 = (double)(signed __int64)(uSomeGammaDeltaTime - __PAIR__(v4, v3)); - else - v6 = (double)v8; - v7 = v6 * 0.0078125; - if ( v7 < 0.0 || v7 <= 1.0 ) - { - if ( v7 < 0.0 ) - v7 = 0.0; - } - else - v7 = 1.0; - //if ( pRenderer->pRenderD3D ) - fSaturation = v7; - //else - // fSaturation = (1.0 - 0.5) * v7 + 0.5; -} - -//----- (0044EA17) -------------------------------------------------------- -bool Game::InitializeGammaController() -{ - //if (pVersion->pVersionInfo.dwPlatformId != VER_PLATFORM_WIN32_NT || - //pVersion->pVersionInfo.dwMajorVersion != 4 ) - pGammaController->InitializeFromSurface(pRenderer->pFrontBuffer4); - - bGammaControlInitialized = true; - uSomeGammaStartTime = pEventTimer->Time(); - return true; -} - //----- (0044EA5E) -------------------------------------------------------- bool Game::PickMouse(float fPickDepth, unsigned int uMouseX, unsigned int uMouseY, bool bOutline, Vis_SelectionFilter *sprite_filter, Vis_SelectionFilter *face_filter) { @@ -1675,7 +1594,7 @@ continue; } v19 = (double)(signed int)uGammaPos * 0.1 + 0.6; - pGame->pGammaController->Initialize(v19); + //pGame->pGammaController->Initialize(v19); GUIWindow::Create(21, 161, 0, 0, WINDOW_PressedButton2, (int)pBtn_SliderLeft, (char *)1); pAudioPlayer->PlaySound(SOUND_ClickMovingSelector, 0, 0, -1, 0, 0, 0, 0); continue; @@ -1686,7 +1605,7 @@ if ( (signed int)uGammaPos <= 9 ) { v21 = (double)(signed int)uGammaPos * 0.1 + 0.6; - pGame->pGammaController->Initialize(v21); + //pGame->pGammaController->Initialize(v21); GUIWindow::Create(213, 161, 0, 0, WINDOW_PressedButton2, (int)pBtn_SliderRight, (char *)1); pAudioPlayer->PlaySound(SOUND_ClickMovingSelector, 0, 0, -1, 0, 0, 0, 0); continue; @@ -1697,7 +1616,7 @@ { uGammaPos = (pMouse->GetCursorPos(&a2)->x - 42) / 17; v22 = (double)(signed int)uGammaPos * 0.1 + 0.6; - pGame->pGammaController->Initialize(v22); + //pGame->pGammaController->Initialize(v22); } pAudioPlayer->PlaySound(SOUND_ClickMovingSelector, 0, 0, -1, 0, 0, 0, 0); continue; @@ -2139,8 +2058,6 @@ WriteWindowsRegistryInt("Tinting", pRenderer->bTinting); WriteWindowsRegistryInt("Bloodsplats", (LOBYTE(pGame->uFlags2) >> 5) & 1); } - /*if ( !pRenderer->bWindowMode ) - WriteWindowsRegistryInt("GammaPos", uGammaPos);*/ stru_506E40.Release(); break; @@ -5263,7 +5180,7 @@ bShowDamage = ReadWindowsRegistryInt("ShowDamage", 1) != 0; uGammaPos = min(4, ReadWindowsRegistryInt("GammaPos", 4)); - pGame->pGammaController->Initialize(uGammaPos * 0.1 + 0.6); + //pGame->pGammaController->Initialize(uGammaPos * 0.1 + 0.6); if (ReadWindowsRegistryInt("Bloodsplats", 1)) pGame->uFlags2 |= GAME_FLAGS_2_DRAW_BLOODSPLATS; @@ -5284,7 +5201,7 @@ { case 0: // undefined turn option __debugbreak(); // really shouldn't use this mode - uTurnSpeed = (unsigned int)uCPUSpeed < 199 ? 128 : 64; // adjust turn speed to estimated fps + uTurnSpeed = 64; //(unsigned int)uCPUSpeed < 199/*MHz*/ ? 128 : 64; // adjust turn speed to estimated fps break; case 1: // 16x @@ -5394,7 +5311,6 @@ dword_576E28 = 9; } -bool new_sky = false; //new sky(need texture) int max_flight_height = 4000; //maximum altitude bool use_MMT = false; bool use_music_folder = true; @@ -5405,9 +5321,6 @@ { IntegrityTest(); - char test[1024]; - sprintfex(test, "^Pi[%s]: знахар^R[ь;ка;]", "Золтан"); - lua = new LuaVM; lua->Initialize(); @@ -5436,20 +5349,10 @@ } if (wcsstr(pCmdLine, L"-nocd")) bNoCD = true; - if (wcsstr(pCmdLine, L"-new_sky")) - new_sky = true; if (wcsstr(pCmdLine, L"-nomarg")) bNoMargareth = true; } - /*v8 = _4AC1C9_get_cpu_speed(0, (Vec4_int_ *)a2); - Rect.left = *(int *)v8; - Rect.top = *(int *)(v8 + 4); - Rect.right = *(int *)(v8 + 8); - Rect.bottom = *(int *)(v8 + 12); - uCPUSpeed = Rect.bottom;*/ - uCPUSpeed = 2048; // about 2GHz - //_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF | _CRTDBG_CHECK_ALWAYS_DF );//Ritor1: for memory test if (!MM7_Initialize(640, 480)) @@ -5467,7 +5370,6 @@ //ShowIntroVideo_and_LoadingScreen(); WriteWindowsRegistryInt("Ran once", 1); dword_6BE364_game_settings_1 |= GAME_SETTINGS_4000; - pGame->InitializeGammaController(); SecondaryInitialization(); //pRenderer->SetRasterClipRect(0, 0, window->GetWidth() - 1, window->GetHeight() - 1); FinalInitialization(); diff -r c9182a87095e -r 407263babde8 Engine/Game.h --- a/Engine/Game.h Sat May 09 11:29:44 2015 +0200 +++ b/Engine/Game.h Sat May 09 12:19:09 2015 +0200 @@ -95,8 +95,8 @@ public: - void _44E904(); - bool InitializeGammaController(); + //void _44E904_gamma_saturation_adjust(); + //bool InitializeGammaController(); bool PickMouse(float fPickDepth, unsigned int uMouseX, unsigned int uMouseY, bool bOutline, struct Vis_SelectionFilter *sprite_filter, struct Vis_SelectionFilter *face_filter); bool PickKeyboard(bool bOutline, struct Vis_SelectionFilter *sprite_filter, struct Vis_SelectionFilter *face_filter); void OutlineSelection(); @@ -151,12 +151,12 @@ int field_E0C; __int64 field_E10; int uNumStationaryLights_in_pStationaryLightsStack; - unsigned int bGammaControlInitialized; + unsigned int __depricated1;//unsigned int bGammaControlInitialized; unsigned int uFlags; unsigned int uFlags2; float fSaturation; - unsigned __int64 uSomeGammaStartTime; - __int64 uSomeGammaDeltaTime; + unsigned __int64 __depricated2;//unsigned __int64 uSomeGammaStartTime; + unsigned __int64 __depricated3;//__int64 uSomeGammaDeltaTime; void/*ThreadWard*/ *pThreadWardInstance; ParticleEngine *pParticleEngine; Mouse *pMouseInstance; @@ -170,7 +170,7 @@ void/*stru12*/ *pStru12Instance; void/*CShow*/ *pCShow; Keyboard *pKeyboardInstance; - GammaController *pGammaController; + void *__depricated_4;//GammaController *pGammaController; int field_E74; }; #pragma pack(pop) diff -r c9182a87095e -r 407263babde8 Engine/Graphics/GammaControl.cpp --- a/Engine/Graphics/GammaControl.cpp Sat May 09 11:29:44 2015 +0200 +++ b/Engine/Graphics/GammaControl.cpp Sat May 09 12:19:09 2015 +0200 @@ -1,138 +0,0 @@ -#define _CRTDBG_MAP_ALLOC -#include -#include - -#define _CRT_SECURE_NO_WARNINGS -#include - -#include "GammaControl.h" -#include "Render.h" - -#include "../mm7_data.h" - - - -//----- (0044F324) -------------------------------------------------------- -void GammaController::GetRamp() -{ - if (pGammaControl) - ErrD3D(pGammaControl->GetGammaRamp(0, &pDefaultRamp)); -} - -//----- (0044F377) -------------------------------------------------------- -double GammaController::_44F377(DDGAMMARAMP *a1) -{ - double v2; // st7@1 - unsigned __int16 *v3; // ecx@1 - double v4; // st6@2 - signed int v6; // [sp+0h] [bp-8h]@1 - signed int v7; // [sp+4h] [bp-4h]@1 - - v2 = 0.0; - v6 = 256; - v3 = a1->green; - for ( v7 = 0; v7 < 256; ++v7 ) - { - v4 = ((double)*(v3 - 256) + (double)v3[256] + (double)*v3) * 0.000015259022 * 0.33333334; - if ( v4 == 0.0 ) - --v6; - else - v2 = v2 + (double)v7 * 0.0039215689 / v4; - ++v3; - } - if ( v6 ) - return v2 / (double)v6; - else - return 1.0; -} - -//----- (0044F408) -------------------------------------------------------- -void GammaController::SetGammaRamp(DDGAMMARAMP *pRamp) -{ - if (pGammaControl) - ErrD3D(pGammaControl->SetGammaRamp(0, pRamp)); -} - -//----- (0044F45B) -------------------------------------------------------- -int GammaController::InitGammaRamp(DDGAMMARAMP *pRamp) -{ - unsigned __int16 *v2; // esi@1 - double v3; // st7@2 - signed __int64 v4; // qax@3 - signed int v6; // [sp+Ch] [bp-4h]@1 - - v2 = pRamp->green; - for ( v6 = 0; v6 < 256; ++v6 ) - { - v3 = (double)v6 * 0.0039215689 * this->fGamma; - if ( v3 >= 1.0 || (v4 = (signed __int64)(v3 * 65535.0), (signed int)v4 > 65535) ) - LODWORD(v4) = 65535; - else if ( (signed int)v4 < 0 ) - LODWORD(v4) = 0; - else - { - if ( (signed int)v4 > 65535 ) - LODWORD(v4) = 65535; - } - v2[256] = v4; - *v2 = v4; - *(v2 - 256) = v4; - ++v2; - } - return v4; -} - -//----- (0044F4D9) -------------------------------------------------------- -void GammaController::Initialize(float gamma) -{ - double v3; // st7@3 - double v4; // st6@4 - - //if (pVersion->pVersionInfo.dwPlatformId != VER_PLATFORM_WIN32_NT || - //pVersion->pVersionInfo.dwMajorVersion != 4) - { - InitializeFromSurface(pRenderer->pFrontBuffer4); - v3 = 2.8; - if ( gamma <= 2.8f ) - v4 = gamma; - else - v4 = 2.8; - if ( v4 >= 0.1f ) - { - if ( gamma <= 2.8f ) - v3 = gamma; - } - else - v3 = 0.1; - this->fGamma = v3; - InitGammaRamp(&this->field_60C); - SetGammaRamp(&this->field_60C); - } -} - -//----- (0044F215) -------------------------------------------------------- -GammaController::GammaController() -{ - static float flt_4D8670_default_gamma = 1.0f; - - pGammaControl = nullptr; - fGamma = flt_4D8670_default_gamma; -} - -//----- (0044F24B) -------------------------------------------------------- -void GammaController::InitializeFromSurface(IDirectDrawSurface4 *a2) -{ - this->pSurface = a2; - if ( this->pGammaControl ) - { - this->pGammaControl->Release(); - this->pGammaControl = 0; - } - if ( pRenderer->IsGammaSupported() ) - { - ErrD3D(a2->QueryInterface(IID_IDirectDrawGammaControl, (LPVOID *)&this->pGammaControl)); - GetRamp(); - memcpy(&this->field_60C, &this->pDefaultRamp, 0x600u); - fGamma = _44F377(&this->field_60C); - } -} \ No newline at end of file diff -r c9182a87095e -r 407263babde8 Engine/Graphics/GammaControl.h --- a/Engine/Graphics/GammaControl.h Sat May 09 11:29:44 2015 +0200 +++ b/Engine/Graphics/GammaControl.h Sat May 09 12:19:09 2015 +0200 @@ -1,29 +1,1 @@ -#pragma once -#include "lib\legacy_dx\d3d.h" -#pragma pack(push, 1) -class GammaController -{ -public: - GammaController(); - inline ~GammaController() {} //----- (0044F22E) - - void Initialize/*_44F4D9*/(float gamma); - - void GetRamp(); - double _44F377(DDGAMMARAMP *a1); - void SetGammaRamp(DDGAMMARAMP *pRamp); - int InitGammaRamp(DDGAMMARAMP *pRamp); - - /*protected*/void InitializeFromSurface(struct IDirectDrawSurface4 *a2); - - - - void ( ***vdestructor_ptr)(GammaController *, bool); - IDirectDrawSurface4 *pSurface; - IDirectDrawGammaControl *pGammaControl; - DDGAMMARAMP pDefaultRamp; - DDGAMMARAMP field_60C; - float fGamma;//field_C0C; -}; -#pragma pack(pop) diff -r c9182a87095e -r 407263babde8 Engine/Graphics/Render.cpp --- a/Engine/Graphics/Render.cpp Sat May 09 11:29:44 2015 +0200 +++ b/Engine/Graphics/Render.cpp Sat May 09 12:19:09 2015 +0200 @@ -7851,8 +7851,6 @@ //SetWindowLongA(hWnd, -16, 0x10000000u); window->SetFullscreenMode(); pRenderer->InitializeFullscreen(); - v0 = (double)(signed int)uGammaPos * 0.1 + 0.6; - pGame->pGammaController->Initialize(v0); } else { diff -r c9182a87095e -r 407263babde8 Engine/mm7_data.cpp --- a/Engine/mm7_data.cpp Sat May 09 11:29:44 2015 +0200 +++ b/Engine/mm7_data.cpp Sat May 09 12:19:09 2015 +0200 @@ -967,7 +967,6 @@ int pSaveListPosition; // weak unsigned int uLoadGameUI_SelectedSlot; HWND hInsertCDWindow; // idb -int uCPUSpeed; // weak char cMM7GameCDDriveLetter; // idb MENU_STATE sCurrentMenuID; unsigned int uGameState; diff -r c9182a87095e -r 407263babde8 Engine/mm7_data.h --- a/Engine/mm7_data.h Sat May 09 11:29:44 2015 +0200 +++ b/Engine/mm7_data.h Sat May 09 12:19:09 2015 +0200 @@ -630,7 +630,6 @@ extern int pSaveListPosition; // weak extern unsigned int uLoadGameUI_SelectedSlot; extern HWND hInsertCDWindow; // idb -extern int uCPUSpeed; // weak extern char cMM7GameCDDriveLetter; // idb extern enum MENU_STATE sCurrentMenuID; extern unsigned int uGameState; diff -r c9182a87095e -r 407263babde8 _deleted.cpp --- a/_deleted.cpp Sat May 09 11:29:44 2015 +0200 +++ b/_deleted.cpp Sat May 09 12:19:09 2015 +0200 @@ -14663,4 +14663,265 @@ bStopBeforeSchedule = 0; PlayFullscreenMovie(MOVIE_Death, true); } + + + + + + + + + + + + +#pragma once +#include "lib\legacy_dx\d3d.h" + +#pragma pack(push, 1) +class GammaController +{ +public: +GammaController(); +inline ~GammaController() {} //----- (0044F22E) + +void Initialize(float gamma); // 44F4D9 + +void GetRamp(); +double _44F377(DDGAMMARAMP *a1); +void SetGammaRamp(DDGAMMARAMP *pRamp); +int InitGammaRamp(DDGAMMARAMP *pRamp); + +void InitializeFromSurface(struct IDirectDrawSurface4 *a2); + + + +void(***vdestructor_ptr)(GammaController *, bool); +IDirectDrawSurface4 *pSurface; +IDirectDrawGammaControl *pGammaControl; +DDGAMMARAMP pDefaultRamp; +DDGAMMARAMP field_60C; +float fGamma;//field_C0C; +}; +#pragma pack(pop) + + + +#define _CRTDBG_MAP_ALLOC +#include +#include + +#define _CRT_SECURE_NO_WARNINGS +#include + +#include "GammaControl.h" +#include "Render.h" + +#include "../mm7_data.h" + + + +//----- (0044F324) -------------------------------------------------------- +void GammaController::GetRamp() +{ +if (pGammaControl) +ErrD3D(pGammaControl->GetGammaRamp(0, &pDefaultRamp)); +} + +//----- (0044F377) -------------------------------------------------------- +double GammaController::_44F377(DDGAMMARAMP *a1) +{ +double v2; // st7@1 +unsigned __int16 *v3; // ecx@1 +double v4; // st6@2 +signed int v6; // [sp+0h] [bp-8h]@1 +signed int v7; // [sp+4h] [bp-4h]@1 + +v2 = 0.0; +v6 = 256; +v3 = a1->green; +for ( v7 = 0; v7 < 256; ++v7 ) +{ +v4 = ((double)*(v3 - 256) + (double)v3[256] + (double)*v3) * 0.000015259022 * 0.33333334; +if ( v4 == 0.0 ) +--v6; +else +v2 = v2 + (double)v7 * 0.0039215689 / v4; +++v3; +} +if ( v6 ) +return v2 / (double)v6; +else +return 1.0; +} + +//----- (0044F408) -------------------------------------------------------- +void GammaController::SetGammaRamp(DDGAMMARAMP *pRamp) +{ +if (pGammaControl) +ErrD3D(pGammaControl->SetGammaRamp(0, pRamp)); +} + +//----- (0044F45B) -------------------------------------------------------- +int GammaController::InitGammaRamp(DDGAMMARAMP *pRamp) +{ +unsigned __int16 *v2; // esi@1 +double v3; // st7@2 +signed __int64 v4; // qax@3 +signed int v6; // [sp+Ch] [bp-4h]@1 + +v2 = pRamp->green; +for ( v6 = 0; v6 < 256; ++v6 ) +{ +v3 = (double)v6 * 0.0039215689 * this->fGamma; +if ( v3 >= 1.0 || (v4 = (signed __int64)(v3 * 65535.0), (signed int)v4 > 65535) ) +LODWORD(v4) = 65535; +else if ( (signed int)v4 < 0 ) +LODWORD(v4) = 0; +else +{ +if ( (signed int)v4 > 65535 ) +LODWORD(v4) = 65535; +} +v2[256] = v4; +*v2 = v4; +*(v2 - 256) = v4; +++v2; +} +return v4; +} + +//----- (0044F4D9) -------------------------------------------------------- +void GammaController::Initialize(float gamma) +{ +double v3; // st7@3 +double v4; // st6@4 + +//if (pVersion->pVersionInfo.dwPlatformId != VER_PLATFORM_WIN32_NT || +//pVersion->pVersionInfo.dwMajorVersion != 4) +{ +InitializeFromSurface(pRenderer->pFrontBuffer4); +v3 = 2.8; +if ( gamma <= 2.8f ) +v4 = gamma; +else +v4 = 2.8; +if ( v4 >= 0.1f ) +{ +if ( gamma <= 2.8f ) +v3 = gamma; +} +else +v3 = 0.1; +this->fGamma = v3; +InitGammaRamp(&this->field_60C); +SetGammaRamp(&this->field_60C); +} +} + +//----- (0044F215) -------------------------------------------------------- +GammaController::GammaController() +{ +static float flt_4D8670_default_gamma = 1.0f; + +pGammaControl = nullptr; +fGamma = flt_4D8670_default_gamma; +} + +//----- (0044F24B) -------------------------------------------------------- +void GammaController::InitializeFromSurface(IDirectDrawSurface4 *a2) +{ +this->pSurface = a2; +if ( this->pGammaControl ) +{ +this->pGammaControl->Release(); +this->pGammaControl = 0; +} +if ( pRenderer->IsGammaSupported() ) +{ +ErrD3D(a2->QueryInterface(IID_IDirectDrawGammaControl, (LPVOID *)&this->pGammaControl)); +GetRamp(); +memcpy(&this->field_60C, &this->pDefaultRamp, 0x600u); +fGamma = _44F377(&this->field_60C); +} +} + + + + + +//----- (0044E904) -------------------------------------------------------- +void Game::_44E904_gamma_saturation_adjust() +{ +//Game *v1; // esi@1 +unsigned __int64 v2; // qax@1 +unsigned int v3; // ecx@1 +int v4; // edi@1 +unsigned __int8 v5; // cf@7 +double v6; // st7@13 +double v7; // st7@15 +signed __int64 v8; // [sp+Ch] [bp-8h]@1 + +//v1 = this; +v2 = pEventTimer->Time(); +v4 = (v2 - uSomeGammaStartTime) >> 32; +v3 = v2 - LODWORD(uSomeGammaStartTime); +v8 = v2 - uSomeGammaStartTime; +if ( v4 < 0 +|| SHIDWORD(v2) < ((unsigned int)v2 < LODWORD(uSomeGammaStartTime)) + HIDWORD(uSomeGammaStartTime) | v4 == 0 +&& v3 <= 0x80 ) +{ +if ( v4 < 0 ) +{ +v3 = 0; +v4 = 0; +uSomeGammaStartTime = v2; +v8 = __PAIR__(v4, v3); +} +} +else +{ +if ( uSomeGammaDeltaTime ) +{ +uSomeGammaDeltaTime = 0; +} +else +{ +LODWORD(uSomeGammaDeltaTime) = v3; +HIDWORD(uSomeGammaDeltaTime) = v4; +} +v5 = __CFADD__(v3, -128); +v3 -= 128; +v4 = v5 + v4 - 1; +uSomeGammaStartTime = v2; +v8 = __PAIR__(v4, v3); +} +if ( uSomeGammaDeltaTime ) +v6 = (double)(signed __int64)(uSomeGammaDeltaTime - __PAIR__(v4, v3)); +else +v6 = (double)v8; +v7 = v6 * 0.0078125; +if ( v7 < 0.0 || v7 <= 1.0 ) +{ +if ( v7 < 0.0 ) +v7 = 0.0; +} +else +v7 = 1.0; +//if ( pRenderer->pRenderD3D ) +fSaturation = v7; +//else +// fSaturation = (1.0 - 0.5) * v7 + 0.5; +} + +//----- (0044EA17) -------------------------------------------------------- +bool Game::InitializeGammaController() +{ +//if (pVersion->pVersionInfo.dwPlatformId != VER_PLATFORM_WIN32_NT || +//pVersion->pVersionInfo.dwMajorVersion != 4 ) +pGammaController->InitializeFromSurface(pRenderer->pFrontBuffer4); + +uSomeGammaStartTime = pEventTimer->Time(); +return true; +} */ \ No newline at end of file