Mercurial > mm7
diff GUI/UI/UIMainMenu.cpp @ 2551:4008b2f34be0
MainMenu rendering moved from event loop to respective window class
author | a.parshin |
---|---|
date | Tue, 12 May 2015 12:03:30 +0200 |
parents | 87e5590d034b |
children | ac16f4a3a91e |
line wrap: on
line diff
--- a/GUI/UI/UIMainMenu.cpp Tue May 12 11:28:22 2015 +0200 +++ b/GUI/UI/UIMainMenu.cpp Tue May 12 12:03:30 2015 +0200 @@ -1,28 +1,106 @@ #define _CRTDBG_MAP_ALLOC +#define _CRT_SECURE_NO_WARNINGS #include <stdlib.h> #include <crtdbg.h> -#define _CRT_SECURE_NO_WARNINGS - #include "Engine/Engine.h" - -#include "..\../IO/Mouse.h" -#include "..\../IO/Keyboard.h" +#include "Engine/LOD.h" +#include "Engine/MMT.h" +#include "Engine/texts.h" +#include "Engine/Graphics/IRender.h" +#include "Engine/Graphics/Viewport.h" +#include "Engine/Graphics/PaletteManager.h" +#include "Engine/Tables/IconFrameTable.h" -#include "..\../GUI/GUIWindow.h" -#include "..\../GUI/GUIFont.h" -#include "..\../Media/Audio/AudioPlayer.h" -#include "..\../Engine/Graphics/Render.h" -#include "..\../Engine/LOD.h" -#include "..\../Engine/Graphics/PaletteManager.h" -#include "..\../Engine/Tables/IconFrameTable.h" -#include "..\../Engine/texts.h" -#include "..\../Engine/MMT.h" +#include "IO/Mouse.h" +#include "IO/Keyboard.h" + +#include "GUI/UI/UIMainMenu.h" +#include "GUI/GUIFont.h" + +#include "Media/Audio/AudioPlayer.h" #include "Game/Game.h" #include "Game/MainMenu.h" + +GUIButton *pMainMenu_BtnExit = nullptr; +GUIButton *pMainMenu_BtnCredits = nullptr; +GUIButton *pMainMenu_BtnLoad = nullptr; +GUIButton *pMainMenu_BtnNew = nullptr; + + + +GUIWindow_MainMenu::GUIWindow_MainMenu() : + GUIWindow(0, 0, window->GetWidth(), window->GetHeight(), 0, nullptr) +{ +// ----------------------------------- +// 004627B7 void MainMenu_Loop -- part + Texture *pNew = pIcons_LOD->LoadTexturePtr("title_new", TEXTURE_16BIT_PALETTE); + Texture *pLoad = pIcons_LOD->LoadTexturePtr("title_load", TEXTURE_16BIT_PALETTE); + Texture *pCredits = pIcons_LOD->LoadTexturePtr("title_cred", TEXTURE_16BIT_PALETTE); + Texture *pExit = pIcons_LOD->LoadTexturePtr("title_exit", TEXTURE_16BIT_PALETTE); + + pMainMenu_BtnNew = CreateButton(495, 172, pNew->uTextureWidth, pNew->uTextureHeight, 1, 0, UIMSG_MainMenu_ShowPartyCreationWnd, 0, 'N', "", pNew, 0); + pMainMenu_BtnLoad = CreateButton(495, 227, pLoad->uTextureWidth, pLoad->uTextureHeight, 1, 0, UIMSG_MainMenu_ShowLoadWindow, 1, 'L', "", pLoad, 0); + pMainMenu_BtnCredits = CreateButton(495, 282, pCredits->uTextureWidth, pCredits->uTextureHeight, 1, 0, UIMSG_ShowCredits, 2, 'C', "", pCredits, 0); + pMainMenu_BtnExit = CreateButton(495, 337, pExit->uTextureWidth, pExit->uTextureHeight, 1, 0, UIMSG_ExitToWindows, 3, 0, "", pExit, 0); +} + + +void GUIWindow_MainMenu::Update() +{ +// ----------------------------------- +// 004627B7 void MainMenu_Loop -- part + POINT pt; + pMouse->GetCursorPos(&pt); + GUIWindow *pWindow = this;//pWindow_MainMenu; + if (GetCurrentMenuID() == MENU_SAVELOAD) + pWindow = pGUIWindow_CurrentMenu; + + + if (GetCurrentMenuID() == MENU_MAIN) + { + Texture *pTexture = nullptr; + if (!pModalWindow)// ??? + { + auto pButton = pWindow->pControlsHead; + for (pButton = pWindow->pControlsHead; pButton; pButton = pButton->pNext) + { + if (pt.x >= (signed int)pButton->uX && pt.x <= (signed int)pButton->uZ + && pt.y >= (signed int)pButton->uY && pt.y <= (signed int)pButton->uW + && pWindow == pWindow_MainMenu) + { + auto pControlParam = pButton->msg_param; + int pY = 0; + switch (pControlParam) // backlight for buttons + { + case 0: + pTexture = pIcons_LOD->LoadTexturePtr("title_new", TEXTURE_16BIT_PALETTE); + pY = 172; + break; + case 1: + pTexture = pIcons_LOD->LoadTexturePtr("title_load", TEXTURE_16BIT_PALETTE); + pY = 227; + break; + case 2: + pTexture = pIcons_LOD->LoadTexturePtr("title_cred", TEXTURE_16BIT_PALETTE); + pY = 282; + break; + case 3: + pTexture = pIcons_LOD->LoadTexturePtr("title_exit", TEXTURE_16BIT_PALETTE); + pY = 337; + break; + } + pRenderer->DrawTextureIndexed(495, pY, pTexture); + } + } + } + } +} + + //----- (0041B578) -------------------------------------------------------- void MainMenuUI_LoadFontsAndSomeStuff() {