Mercurial > mm7
changeset 2290:d65414f65bd4
add MMT.cpp and MMT.h
author | Ritor1 |
---|---|
date | Sun, 16 Mar 2014 19:34:51 +0600 |
parents | 60293358b4b3 |
children | 815d9ecf9881 6fd03869f65c |
files | Build/Visual Studio 2012/World of Might and Magic.vcxproj Build/Visual Studio 2012/World of Might and Magic.vcxproj.filters Build/Visual Studio 2012/World of Might and Magic.vcxproj.user GUIWindow.cpp GUIWindow.h Game.cpp MMT.cpp MMT.h VideoPlayer.cpp VideoPlayer.h mm7_2.cpp mm7_unsorted_subs.h |
diffstat | 12 files changed, 279 insertions(+), 180 deletions(-) [+] |
line wrap: on
line diff
--- a/Build/Visual Studio 2012/World of Might and Magic.vcxproj Sun Mar 16 03:08:26 2014 +0100 +++ b/Build/Visual Studio 2012/World of Might and Magic.vcxproj Sun Mar 16 19:34:51 2014 +0600 @@ -177,6 +177,7 @@ <ClCompile Include="..\..\mm7_6.cpp" /> <ClCompile Include="..\..\mm7_7.cpp" /> <ClCompile Include="..\..\mm7_data.cpp" /> + <ClCompile Include="..\..\MMT.cpp" /> <ClCompile Include="..\..\Monsters.cpp" /> <ClCompile Include="..\..\Mouse.cpp" /> <ClCompile Include="..\..\NewUI\Core\UIControlModule_wrap.cxx" /> @@ -405,6 +406,7 @@ <ClInclude Include="..\..\MM7.h" /> <ClInclude Include="..\..\mm7_data.h" /> <ClInclude Include="..\..\mm7_unsorted_subs.h" /> + <ClInclude Include="..\..\MMT.h" /> <ClInclude Include="..\..\Monsters.h" /> <ClInclude Include="..\..\Mouse.h" /> <ClInclude Include="..\..\NewUI\Core\UIControl.h" />
--- a/Build/Visual Studio 2012/World of Might and Magic.vcxproj.filters Sun Mar 16 03:08:26 2014 +0100 +++ b/Build/Visual Studio 2012/World of Might and Magic.vcxproj.filters Sun Mar 16 19:34:51 2014 +0600 @@ -335,6 +335,7 @@ <Filter>UI\Books</Filter> </ClCompile> <ClCompile Include="..\..\MapInfo.cpp" /> + <ClCompile Include="..\..\MMT.cpp" /> </ItemGroup> <ItemGroup> <ClInclude Include="..\..\Level\Decoration.h" /> @@ -836,6 +837,7 @@ <Filter>UI</Filter> </ClInclude> <ClInclude Include="..\..\mm7_unsorted_subs.h" /> + <ClInclude Include="..\..\MMT.h" /> </ItemGroup> <ItemGroup> <None Include="..\..\Player.swig" />
--- a/Build/Visual Studio 2012/World of Might and Magic.vcxproj.user Sun Mar 16 03:08:26 2014 +0100 +++ b/Build/Visual Studio 2012/World of Might and Magic.vcxproj.user Sun Mar 16 19:34:51 2014 +0600 @@ -4,6 +4,6 @@ <LocalDebuggerCommand>$(OutDir)$(TargetName)$(TargetExt)</LocalDebuggerCommand> <LocalDebuggerWorkingDirectory>$(OutDir)</LocalDebuggerWorkingDirectory> <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor> - <LocalDebuggerCommandArguments>-novideo, -nomarg</LocalDebuggerCommandArguments> + <LocalDebuggerCommandArguments>-nomarg, -novideo</LocalDebuggerCommandArguments> </PropertyGroup> </Project> \ No newline at end of file
--- a/GUIWindow.cpp Sun Mar 16 03:08:26 2014 +0100 +++ b/GUIWindow.cpp Sun Mar 16 19:34:51 2014 +0600 @@ -2121,13 +2121,13 @@ if ( sub_4637E0_is_there_popup_onscreen() ) UI_OnMouseRightClick(0); } -void LoadFonts_and_DrawCopyrightWindow() -{ - MainMenuUI_LoadFontsAndSomeStuff(); - DrawCopyrightWindow(); -} +//void LoadFonts_and_DrawCopyrightWindow() +//{ + //MainMenuUI_LoadFontsAndSomeStuff(); + // DrawCopyrightWindow(); +//} //----- (00415485) -------------------------------------------------------- -void DrawCopyrightWindow() +void DrawMM7CopyrightWindow() { GUIWindow Dst; // [sp+8h] [bp-54h]@1
--- a/GUIWindow.h Sun Mar 16 03:08:26 2014 +0100 +++ b/GUIWindow.h Sun Mar 16 19:34:51 2014 +0600 @@ -591,8 +591,8 @@ void __fastcall DrawPopupWindow(unsigned int uX, unsigned int uY, unsigned int uWidth, unsigned int uHeight); // idb -void DrawCopyrightWindow(); -void LoadFonts_and_DrawCopyrightWindow(); +void DrawMM7CopyrightWindow(); +//void LoadFonts_and_DrawCopyrightWindow(); void GUI_UpdateWindows(); int GetConditionDrawColor(unsigned int uConditionIdx); // idb void FillAwardsData();
--- a/Game.cpp Sun Mar 16 03:08:26 2014 +0100 +++ b/Game.cpp Sun Mar 16 19:34:51 2014 +0600 @@ -4274,10 +4274,6 @@ switch (pUIMessageType) // For buttons of window MainMenu { - case UIMSG_MMT_MainMenu_MM7: - SetCurrentMenuID(MENU_MAIN); - break; - case UIMSG_MainMenu_ShowPartyCreationWnd: GUIWindow::Create(495, 172, 0, 0, WINDOW_PressedButton2, (int)pMainMenu_BtnNew, 0); SetCurrentMenuID(MENU_NEWGAME);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MMT.cpp Sun Mar 16 19:34:51 2014 +0600 @@ -0,0 +1,243 @@ +#define _CRT_SECURE_NO_WARNINGS + +#include "MMT.h" +#include "GUIWindow.h" +#include "mm7_unsorted_subs.h" +#include "mm7_data.h" +#include "AudioPlayer.h" +#include "Mouse.h" +#include "LOD.h" +#include "Render.h" +#include "VideoPlayer.h" +#include "CShow.h" +#include "GUIFont.h" + +void ShowLogoVideo() +{ + RGBTexture tex; // [sp+Ch] [bp-30h]@1 + //unsigned int uTrackStartMS; // [sp+34h] [bp-8h]@8 + //unsigned int uTrackEndMS; // [sp+38h] [bp-4h]@8 + + pVideoPlayer->bStopBeforeSchedule = false; + pVideoPlayer->pResetflag = 0; + bGameoverLoop = 1; + if (!bNoVideo) + { + pRenderer->PresentBlackScreen(); + PlayFullscreenMovie(MOVIE_3DOLogo, true); + if ( !pVideoPlayer->bStopBeforeSchedule ) + { + PlayFullscreenMovie(MOVIE_NWCLogo, true); + if ( !pVideoPlayer->bStopBeforeSchedule ) + PlayFullscreenMovie(MOVIE_JVC, true); + } + } + char pContainerName[64]; + + sprintf(pContainerName, "data\\New_Icons/%s", "MMTTITLE.pcx"); + tex.LoadPCXFile(pContainerName, 0); + + pRenderer->BeginScene(); + pRenderer->DrawTextureRGB(0, 0, &tex); + free(tex.pPixels); + tex.pPixels = 0; + MainMenuUI_LoadFontsAndSomeStuff(); + DrawMMTCopyrightWindow(); + + pRenderer->EndScene(); + pRenderer->Present(); + + #ifndef _DEBUG + Sleep(1500); // let the copyright window stay for a while + #endif + + /*if (!bNoSound && pAudioPlayer->hAILRedbook ) + { + pAudioPlayer->SetMusicVolume((signed __int64)(pSoundVolumeLevels[uMusicVolimeMultiplier] * 64.0)); + AIL_redbook_stop(pAudioPlayer->hAILRedbook); + AIL_redbook_track_info(pAudioPlayer->hAILRedbook, 14, &uTrackStartMS, &uTrackEndMS); + AIL_redbook_play(pAudioPlayer->hAILRedbook, uTrackStartMS + 1, uTrackEndMS); + } */ + bGameoverLoop = 0; +} + +void MMT_MainMenu_Loop() +{ + GUIButton *pButton; // eax@27 + unsigned int pControlParam; // ecx@35 + int v10; // ecx@36 + int v11; // ecx@37 + unsigned int pX; + unsigned int pY; // [sp-18h] [bp-54h]@39 + Texture *pTexture; // [sp-14h] [bp-50h]@39 + GUIButton *pButton2; // [sp+0h] [bp-3Ch]@27 + + pCurrentScreen = SCREEN_GAME; + + pGUIWindow2 = 0; + pAudioPlayer->StopChannels(-1, -1);//остановить/подготовить канал + pMouse->RemoveHoldingItem();//избавить курсор от вещи + + pIcons_LOD->_inlined_sub2(); + + pWindow_MMT_MainMenu = GUIWindow::Create(0, 0, window->GetWidth(), window->GetHeight(), WINDOW_MainMenu, 0, 0); + Texture* MMT_MM6 = pIcons_LOD->LoadTexturePtr("title_new", TEXTURE_16BIT_PALETTE); + Texture* MMT_MM7 = pIcons_LOD->LoadTexturePtr("title_load", TEXTURE_16BIT_PALETTE); + Texture* MMT_MM8 = pIcons_LOD->LoadTexturePtr("title_cred", TEXTURE_16BIT_PALETTE); + Texture* MMT_Continue = pIcons_LOD->LoadTexturePtr("title_exit", TEXTURE_16BIT_PALETTE); + Texture* MMT_Exit = pIcons_LOD->LoadTexturePtr("title_exit", TEXTURE_16BIT_PALETTE); + + pMMT_MainMenu_BtnMM6 = pWindow_MMT_MainMenu->CreateButton((window->GetWidth() / 4) - 100, window->GetHeight() / 4, MMT_MM6->uTextureWidth, MMT_MM6->uTextureHeight, 1, 0, UIMSG_MMT_MainMenu_MM6, 0, 0, "", MMT_MM6, 0); + pMMT_MainMenu_BtnMM7 = pWindow_MMT_MainMenu->CreateButton(window->GetWidth() - (window->GetWidth() / 4), window->GetHeight() / 4, MMT_MM7->uTextureWidth, MMT_MM7->uTextureHeight, 1, 0, UIMSG_MMT_MainMenu_MM7, 1, 0, "", MMT_MM7, 0); + pMMT_MainMenu_BtnMM8 = pWindow_MMT_MainMenu->CreateButton(window->GetWidth() - (window->GetWidth() / 4), window->GetHeight() - ((window->GetHeight() / 4) + 50), MMT_MM8->uTextureWidth, MMT_MM8->uTextureHeight, 1, 0, UIMSG_MMT_MainMenu_MM8, 2, 0, "", MMT_MM8, 0); + pMMT_MainMenu_BtnContinue = pWindow_MMT_MainMenu->CreateButton((window->GetWidth() / 4) - 100, window->GetHeight() - ((window->GetHeight() / 4) + 50), MMT_Continue->uTextureWidth, MMT_Continue->uTextureHeight, 1, 0, UIMSG_MMT_MainMenu_Continue, 3, 0, "", MMT_Continue, 0); + pMMT_MainMenu_BtnExit = pWindow_MMT_MainMenu->CreateButton(window->GetWidth() - 130, window->GetHeight() - 35, MMT_Exit->uTextureWidth, MMT_Exit->uTextureHeight, 1, 0, UIMSG_ExitToWindows, 4, 0, "", MMT_Exit, 0); + + pTexture_PCX.Release(); + + char pContainerName[64]; + + sprintf(pContainerName, "data\\New_Icons/%s", "MMTTITLE.pcx"); + pTexture_PCX.LoadPCXFile(pContainerName, 0); + SetCurrentMenuID(MENU_MMT_MAIN_MENU); + SetForegroundWindow(window->GetApiHandle()); + SendMessageW(window->GetApiHandle(), WM_ACTIVATEAPP, 1, 0); + while (GetCurrentMenuID() == MENU_MMT_MAIN_MENU ) + { + POINT cursor; + pMouse->GetCursorPos(&cursor); + + for (MSG msg; PeekMessageW(&msg, 0, 0, 0, PM_REMOVE);) + { + if (msg.message == WM_QUIT) + Game_DeinitializeAndTerminate(0); + TranslateMessage(&msg); + DispatchMessageW(&msg); + } + + if (dword_6BE364_game_settings_1 & GAME_SETTINGS_APP_INACTIVE) + { + WaitMessage(); + continue; + } + + pRenderer->BeginScene(); + pRenderer->DrawTextureRGB(0, 0, &pTexture_PCX); + + MMT_MenuMessageProc(); + GUI_UpdateWindows(); + + if ( !pModalWindow )// ??? + { + pButton = pWindow_MMT_MainMenu->pControlsHead; + for ( pButton = pWindow_MMT_MainMenu->pControlsHead; pButton; pButton = pButton->pNext ) + { + if ( cursor.x >= (signed int)pButton->uX && cursor.x <= (signed int)pButton->uZ + && cursor.y >= (signed int)pButton->uY && cursor.y <= (signed int)pButton->uW ) + { + pControlParam = pButton->msg_param; + switch (pControlParam) // подсветка кнопок + { + case 0: + pTexture = MMT_MM6; + pX = (window->GetWidth() / 4) - 100; + pY = window->GetHeight() / 4; + break; + case 1: + pTexture = MMT_MM7; + pX = window->GetWidth() - (window->GetWidth() / 4); + pY = window->GetHeight() / 4; + break; + case 2: + pTexture = MMT_MM8; + pX = window->GetWidth() - (window->GetWidth() / 4); + pY = window->GetHeight() - ((window->GetHeight() / 4) + 50); + break; + case 3: + pTexture = MMT_Continue; + pX = (window->GetWidth() / 4) - 100; + pY = window->GetHeight() - ((window->GetHeight() / 4) + 50); + break; + case 4: + pTexture = MMT_Exit; + pX = window->GetWidth() - 130; + pY = window->GetHeight() - 35; + break; + } + pRenderer->DrawTextureIndexed(pX, pY, pTexture); //подсветка кнопок + } + } + } + //} + pRenderer->EndScene(); + pRenderer->Present(); + } + MMT_MenuMessageProc(); + pRenderer->BeginScene(); + GUI_UpdateWindows(); + pRenderer->EndScene(); + pRenderer->Present(); + pTexture_PCX.Release(); + if ( pGUIWindow2 ) + { + pGUIWindow2->Release(); + pGUIWindow2 = 0; + } + pWindow_MMT_MainMenu->Release(); + pIcons_LOD->RemoveTexturesPackFromTextureList(); +} + +void MMT_MenuMessageProc() +{ + int pParam; + int pParam2; + UIMessageType pUIMessageType; + + if ( pMessageQueue_50CBD0->uNumMessages ) + { + do + { + + pMessageQueue_50CBD0->PopMessage(&pUIMessageType, &pParam, &pParam2); + + switch (pUIMessageType) + { + case UIMSG_MMT_MainMenu_MM7: //кнопка игры ММ7 + //GUIWindow::Create(495, 172, 0, 0, WINDOW_PressedButton2, (int)pMainMenu_BtnNew, 0); + ShowMM7IntroVideo_and_LoadingScreen(); + SetCurrentMenuID(MENU_MAIN); + break; + + default: + break; + } + } + while ( pMessageQueue_50CBD0->uNumMessages ); + } +} +void DrawMMTCopyrightWindow() +{ + GUIWindow Dst; // [sp+8h] [bp-54h]@1 + + memset(&Dst, 0, 0x54u); + Dst.uFrameWidth = 624; + Dst.uFrameHeight = 256; + Dst.uFrameX = 8; + Dst.uFrameY = 30; + Dst.uFrameHeight = pFontSmallnum->CalcTextHeight("Text Verification: Here we can write an explanation of the project", &Dst, 24, 0) + + 2 * LOBYTE(pFontSmallnum->uFontHeight) + + 24; + Dst.uFrameY = 470 - Dst.uFrameHeight; + Dst.uFrameZ = Dst.uFrameX + Dst.uFrameWidth - 1; + Dst.uFrameW = 469; + //Dst.Hint = "abcagfdsgsg ljsrengvlkjesnfkjwnef"; + Dst.DrawMessageBox(0); + + Dst.uFrameWidth -= 24; + Dst.uFrameX += 12; + Dst.uFrameY += 12; + Dst.uFrameHeight -= 12; + Dst.uFrameZ = Dst.uFrameX + Dst.uFrameWidth - 1; + Dst.uFrameW = Dst.uFrameY + Dst.uFrameHeight - 1; + Dst.DrawTitleText(pFontSmallnum, 0, 0xCu, ui_mainmenu_copyright_color, "Text Verification: Here we can write an explanation of the project", 3); +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MMT.h Sun Mar 16 19:34:51 2014 +0600 @@ -0,0 +1,7 @@ +#pragma once + +void ShowLogoVideo(); +void MMT_MainMenu_Loop(); +void MMT_MenuMessageProc(); +void DrawMMTCopyrightWindow(); +
--- a/VideoPlayer.cpp Sun Mar 16 03:08:26 2014 +0100 +++ b/VideoPlayer.cpp Sun Mar 16 19:34:51 2014 +0600 @@ -274,45 +274,31 @@ } } //----- (004BF794) -------------------------------------------------------- -void ShowIntroVideo_and_LoadingScreen() +void ShowMM7IntroVideo_and_LoadingScreen() { RGBTexture tex; // [sp+Ch] [bp-30h]@1 - //unsigned int uTrackStartMS; // [sp+34h] [bp-8h]@8 - //unsigned int uTrackEndMS; // [sp+38h] [bp-4h]@8 + unsigned int uTrackStartMS; // [sp+34h] [bp-8h]@8 + unsigned int uTrackEndMS; // [sp+38h] [bp-4h]@8 pVideoPlayer->bStopBeforeSchedule = false; pVideoPlayer->pResetflag = 0; - bGameoverLoop = 1; + bGameoverLoop = true; if (!bNoVideo) { pRenderer->PresentBlackScreen(); - PlayFullscreenMovie(MOVIE_3DOLogo, true); - //pGame->pCShow->PlayMovie(MOVIE_3DOLogo, 1); if ( !pVideoPlayer->bStopBeforeSchedule ) - { - PlayFullscreenMovie(MOVIE_NWCLogo, true); - //pGame->pCShow->PlayMovie(MOVIE_NWCLogo, 1); - if ( !pVideoPlayer->bStopBeforeSchedule ) - { - PlayFullscreenMovie(MOVIE_JVC, true); - //pGame->pCShow->PlayMovie(MOVIE_JVC, 1); - if ( !pVideoPlayer->bStopBeforeSchedule ) - PlayFullscreenMovie(MOVIE_Intro, true); - //pGame->pCShow->PlayMovie(MOVIE_Intro, 1); - } - } + PlayFullscreenMovie(MOVIE_Intro, true); } char pContainerName[64]; - sprintf(pContainerName, "data\\New_Icons/%s", "MMTTITLE.pcx"); - tex.LoadPCXFile(pContainerName, 0); - //tex.Load("MMTTITLE.pcx", 2); + tex.Load("mm6title.pcx", 2); pRenderer->BeginScene(); pRenderer->DrawTextureRGB(0, 0, &tex); free(tex.pPixels); tex.pPixels = 0; - LoadFonts_and_DrawCopyrightWindow(); + //LoadFonts_and_DrawCopyrightWindow(); + DrawMM7CopyrightWindow(); pRenderer->EndScene(); pRenderer->Present(); @@ -321,14 +307,14 @@ Sleep(1500); // let the copyright window stay for a while #endif - /*if (!bNoSound && pAudioPlayer->hAILRedbook ) + if (!bNoSound && pAudioPlayer->hAILRedbook ) { pAudioPlayer->SetMusicVolume((signed __int64)(pSoundVolumeLevels[uMusicVolimeMultiplier] * 64.0)); AIL_redbook_stop(pAudioPlayer->hAILRedbook); AIL_redbook_track_info(pAudioPlayer->hAILRedbook, 14, &uTrackStartMS, &uTrackEndMS); AIL_redbook_play(pAudioPlayer->hAILRedbook, uTrackStartMS + 1, uTrackEndMS); - } */ - bGameoverLoop = 0; + } + bGameoverLoop = false; } //----- (004BE70E) --------------------------------------------------------
--- a/VideoPlayer.h Sun Mar 16 03:08:26 2014 +0100 +++ b/VideoPlayer.h Sun Mar 16 19:34:51 2014 +0600 @@ -105,7 +105,7 @@ -void ShowIntroVideo_and_LoadingScreen(); +void ShowMM7IntroVideo_and_LoadingScreen(); extern "C" {
--- a/mm7_2.cpp Sun Mar 16 03:08:26 2014 +0100 +++ b/mm7_2.cpp Sun Mar 16 19:34:51 2014 +0600 @@ -66,6 +66,7 @@ #include "NewUI/MainMenu.h" #include "Level/Decoration.h" #include "LuaVM.h" +#include "MMT.h" //#include "lib/lua/lua.h" @@ -2356,132 +2357,6 @@ event_triggers[num_event_triggers++] = i; } -void MMT_MainMenu_Loop() -{ - GUIButton *pButton; // eax@27 - unsigned int pControlParam; // ecx@35 - int v10; // ecx@36 - int v11; // ecx@37 - unsigned int pX; - unsigned int pY; // [sp-18h] [bp-54h]@39 - Texture *pTexture; // [sp-14h] [bp-50h]@39 - GUIButton *pButton2; // [sp+0h] [bp-3Ch]@27 - - pCurrentScreen = SCREEN_GAME; - - pGUIWindow2 = 0; - pAudioPlayer->StopChannels(-1, -1);//остановить/подготовить канал - pMouse->RemoveHoldingItem();//избавить курсор от вещи - - pIcons_LOD->_inlined_sub2(); - - pWindow_MMT_MainMenu = GUIWindow::Create(0, 0, window->GetWidth(), window->GetHeight(), WINDOW_MainMenu, 0, 0); - Texture* MMT_MM6 = pIcons_LOD->LoadTexturePtr("title_new", TEXTURE_16BIT_PALETTE); - Texture* MMT_MM7 = pIcons_LOD->LoadTexturePtr("title_load", TEXTURE_16BIT_PALETTE); - Texture* MMT_MM8 = pIcons_LOD->LoadTexturePtr("title_cred", TEXTURE_16BIT_PALETTE); - Texture* MMT_Continue = pIcons_LOD->LoadTexturePtr("title_exit", TEXTURE_16BIT_PALETTE); - Texture* MMT_Exit = pIcons_LOD->LoadTexturePtr("title_exit", TEXTURE_16BIT_PALETTE); - - pMMT_MainMenu_BtnMM6 = pWindow_MMT_MainMenu->CreateButton((window->GetWidth() / 4) - 100, window->GetHeight() / 4, MMT_MM6->uTextureWidth, MMT_MM6->uTextureHeight, 1, 0, UIMSG_MMT_MainMenu_MM6, 0, 0, "", MMT_MM6, 0); - pMMT_MainMenu_BtnMM7 = pWindow_MMT_MainMenu->CreateButton(window->GetWidth() - (window->GetWidth() / 4), window->GetHeight() / 4, MMT_MM7->uTextureWidth, MMT_MM7->uTextureHeight, 1, 0, UIMSG_MMT_MainMenu_MM7, 1, 0, "", MMT_MM7, 0); - pMMT_MainMenu_BtnMM8 = pWindow_MMT_MainMenu->CreateButton(window->GetWidth() - (window->GetWidth() / 4), window->GetHeight() - ((window->GetHeight() / 4) + 50), MMT_MM8->uTextureWidth, MMT_MM8->uTextureHeight, 1, 0, UIMSG_MMT_MainMenu_MM8, 2, 0, "", MMT_MM8, 0); - pMMT_MainMenu_BtnContinue = pWindow_MMT_MainMenu->CreateButton((window->GetWidth() / 4) - 100, window->GetHeight() - ((window->GetHeight() / 4) + 50), MMT_Continue->uTextureWidth, MMT_Continue->uTextureHeight, 1, 0, UIMSG_MMT_MainMenu_Continue, 3, 0, "", MMT_Continue, 0); - pMMT_MainMenu_BtnExit = pWindow_MMT_MainMenu->CreateButton(window->GetWidth() - 130, window->GetHeight() - 35, MMT_Exit->uTextureWidth, MMT_Exit->uTextureHeight, 1, 0, UIMSG_ExitToWindows, 4, 0, "", MMT_Exit, 0); - - pTexture_PCX.Release(); - //pTexture_PCX.Load("MMTTITLE.pcx", 0); - char pContainerName[64]; - - sprintf(pContainerName, "data\\New_Icons/%s", "MMTTITLE.pcx"); - pTexture_PCX.LoadPCXFile(pContainerName, 0); - SetCurrentMenuID(MENU_MMT_MAIN_MENU); - SetForegroundWindow(window->GetApiHandle()); - SendMessageW(window->GetApiHandle(), WM_ACTIVATEAPP, 1, 0); - while (GetCurrentMenuID() == MENU_MMT_MAIN_MENU ) - { - POINT cursor; - pMouse->GetCursorPos(&cursor); - - for (MSG msg; PeekMessageW(&msg, 0, 0, 0, PM_REMOVE);) - { - if (msg.message == WM_QUIT) - Game_DeinitializeAndTerminate(0); - TranslateMessage(&msg); - DispatchMessageW(&msg); - } - - if (dword_6BE364_game_settings_1 & GAME_SETTINGS_APP_INACTIVE) - { - WaitMessage(); - continue; - } - - pRenderer->BeginScene(); - pRenderer->DrawTextureRGB(0, 0, &pTexture_PCX); - - GUI_MainMenuMessageProc(); - GUI_UpdateWindows(); - - if ( !pModalWindow )// ??? - { - pButton = pWindow_MMT_MainMenu->pControlsHead; - for ( pButton = pWindow_MMT_MainMenu->pControlsHead; pButton; pButton = pButton->pNext ) - { - if ( cursor.x >= (signed int)pButton->uX && cursor.x <= (signed int)pButton->uZ - && cursor.y >= (signed int)pButton->uY && cursor.y <= (signed int)pButton->uW ) - { - pControlParam = pButton->msg_param; - switch (pControlParam) // подсветка кнопок - { - case 0: - pTexture = MMT_MM6; - pX = (window->GetWidth() / 4) - 100; - pY = window->GetHeight() / 4; - break; - case 1: - pTexture = MMT_MM7; - pX = window->GetWidth() - (window->GetWidth() / 4); - pY = window->GetHeight() / 4; - break; - case 2: - pTexture = MMT_MM8; - pX = window->GetWidth() - (window->GetWidth() / 4); - pY = window->GetHeight() - ((window->GetHeight() / 4) + 50); - break; - case 3: - pTexture = MMT_Continue; - pX = (window->GetWidth() / 4) - 100; - pY = window->GetHeight() - ((window->GetHeight() / 4) + 50); - break; - case 4: - pTexture = MMT_Exit; - pX = window->GetWidth() - 130; - pY = window->GetHeight() - 35; - break; - } - pRenderer->DrawTextureIndexed(pX, pY, pTexture); //подсветка кнопок - } - } - } - //} - pRenderer->EndScene(); - pRenderer->Present(); - } - GUI_MainMenuMessageProc(); - pRenderer->BeginScene(); - GUI_UpdateWindows(); - pRenderer->EndScene(); - pRenderer->Present(); - pTexture_PCX.Release(); - if ( pGUIWindow2 ) - { - pGUIWindow2->Release(); - pGUIWindow2 = 0; - } - pWindow_MMT_MainMenu->Release(); - pIcons_LOD->RemoveTexturesPackFromTextureList(); -} - //----- (004627B7) -------------------------------------------------------- void MainMenu_Loop() { @@ -3794,7 +3669,8 @@ pEventTimer->Pause(); SetUserInterface(PartyAlignment_Neutral, false); - ShowIntroVideo_and_LoadingScreen(); + ShowLogoVideo(); + //ShowIntroVideo_and_LoadingScreen(); WriteWindowsRegistryInt("Ran once", 1); dword_6BE364_game_settings_1 |= GAME_SETTINGS_4000; pGame->InitializeGammaController(); @@ -3805,18 +3681,6 @@ //Ritor1: include MMT_MainMenu_Loop(); - unsigned int uTrackStartMS; - unsigned int uTrackEndMS; - - if (!bNoSound && pAudioPlayer->hAILRedbook ) - { - pAudioPlayer->SetMusicVolume((signed __int64)(pSoundVolumeLevels[uMusicVolimeMultiplier] * 64.0)); - AIL_redbook_stop(pAudioPlayer->hAILRedbook); - AIL_redbook_track_info(pAudioPlayer->hAILRedbook, 14, &uTrackStartMS, &uTrackEndMS); - AIL_redbook_play(pAudioPlayer->hAILRedbook, uTrackStartMS + 1, uTrackEndMS); - } - //-------- - Log::Warning(L"MM: entering main loop"); while ( 1 ) {
--- a/mm7_unsorted_subs.h Sun Mar 16 03:08:26 2014 +0100 +++ b/mm7_unsorted_subs.h Sun Mar 16 19:34:51 2014 +0600 @@ -12,7 +12,7 @@ -void ShowIntroVideo_and_LoadingScreen(); +//void ShowMM7IntroVideo_and_LoadingScreen(); unsigned int GameOverMenu(void *ecx0); int __fastcall SpawnRandomTreasure(struct MapInfo *a1, struct SpawnPointMM7 *a2); void DamageMonsterFromParty(signed int a1, unsigned int uActorID_Monster, struct Vec3_int_ *pVelocity); @@ -126,7 +126,6 @@ void PrepareToLoadBLV(unsigned int bLoading); void __fastcall PrepareToLoadODM(unsigned int bLoading, struct ODMRenderParams *a2); void _461103_load_level_sub(); -void MMT_MainMenu_Loop(); void MainMenu_Loop(); char sub_4637E0_is_there_popup_onscreen(); void ResetCursor_Palettes_LODs_Level_Audio_SFT_Windows();