# HG changeset patch # User Grumpy7 # Date 1406063244 -7200 # Node ID 1b6bf88f561b5597d8e5b2ef929a0899d299354c # Parent bb1273b1b9b61472f32cd6beace737c9703a05ad fixing some memory access errors diff -r bb1273b1b9b6 -r 1b6bf88f561b OSWindow.cpp --- a/OSWindow.cpp Wed Jul 23 01:18:24 2014 +0600 +++ b/OSWindow.cpp Tue Jul 22 23:07:24 2014 +0200 @@ -351,9 +351,12 @@ else pMiscTimer->Pause(); - pAudioPlayer->StopChannels(-1, -1);//приостановка воспроизведения звуков при неактивном окне игры - if ( pAudioPlayer->hAILRedbook ) - AIL_redbook_pause(pAudioPlayer->hAILRedbook); + if (pAudioPlayer != nullptr) + { + pAudioPlayer->StopChannels(-1, -1);//приостановка воспроизведения звуков при неактивном окне игры + if ( pAudioPlayer->hAILRedbook ) + AIL_redbook_pause(pAudioPlayer->hAILRedbook); + } } } return *result = 0, true; diff -r bb1273b1b9b6 -r 1b6bf88f561b PaletteManager.cpp --- a/PaletteManager.cpp Wed Jul 23 01:18:24 2014 +0600 +++ b/PaletteManager.cpp Tue Jul 22 23:07:24 2014 +0200 @@ -668,8 +668,10 @@ pBaseColors[0][i][2] = i; } + memset(pPaletteIDs, 0, sizeof(pPaletteIDs)); + memset(pPalette_tintColor, 0, sizeof(pPalette_tintColor)); + memset(pPalette_mistColor, 0, sizeof(pPalette_mistColor)); CalcPalettes_LUT(0); - memset(pPaletteIDs, 0, sizeof(pPaletteIDs)); } //----- (0048A336) -------------------------------------------------------- diff -r bb1273b1b9b6 -r 1b6bf88f561b mm7_2.cpp --- a/mm7_2.cpp Wed Jul 23 01:18:24 2014 +0600 +++ b/mm7_2.cpp Tue Jul 22 23:07:24 2014 +0200 @@ -1422,6 +1422,8 @@ srand(GetTickCount()); + pEventTimer = Timer::Create(); + pEventTimer->Initialize(); window = OSWindow::Create(L"Might and Magic® Trilogy", game_width, game_height); pRenderer = Render::Create(); @@ -1459,8 +1461,6 @@ pKeyActionMap = new KeyboardActionMapping; - pEventTimer = Timer::Create(); - pEventTimer->Initialize(); // _CrtDumpMemoryLeaks(); OnTimer(1); GameUI_StatusBar_UpdateTimedString(1); diff -r bb1273b1b9b6 -r 1b6bf88f561b texts.cpp --- a/texts.cpp Wed Jul 23 01:18:24 2014 +0600 +++ b/texts.cpp Tue Jul 22 23:07:24 2014 +0200 @@ -113,10 +113,10 @@ }*/ strtok((char *)pGlobalTXT_Raw, "\r"); //Carriage Return 0D 13 strtok(NULL, "\r"); //Carriage Return 0D 13 - test_string = strtok(NULL, "\r") + 1; //Carriage Return 0D 13 for (int i = 0; i < MAX_LOC_STRINGS; ++i) - { + { + test_string = strtok(NULL, "\r") + 1; //Carriage Return 0D 13 step = 0; string_end = false; do @@ -149,8 +149,6 @@ test_string=tmp_pos+1; } while ( step <= 2 && !string_end); - - test_string = strtok(NULL, "\r") + 1; //Carriage Return 0D 13 //Invalid memory access } SetSomeItemsNames();