annotate GUI/UI/UIBooks.cpp @ 2548:87e5590d034b

All Books windows are refactored into respective classes
author a.parshin
date Tue, 12 May 2015 03:24:19 +0200
parents a902abdfc7f2
children 3121fb54a110
rev   line source
2501
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
1 #define _CRTDBG_MAP_ALLOC
2548
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
2 #define _CRT_SECURE_NO_WARNINGS
2501
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
3 #include <stdlib.h>
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
4 #include <crtdbg.h>
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
5
2548
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
6 #include "Engine/Engine.h"
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
7 #include "Engine/Graphics/Render.h"
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
8 #include "Engine/LOD.h"
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
9 #include "Engine/texts.h"
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
10 #include "Engine/Awards.h"
2541
a902abdfc7f2 1. Renamed class Game to class Engine.
a.parshin
parents: 2534
diff changeset
11
2548
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
12 #include "GUI/GUIFont.h"
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
13 #include "GUI/UI/UIBooks.h"
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
14
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
15 #include "Media/Audio/AudioPlayer.h"
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
16
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
17
2541
a902abdfc7f2 1. Renamed class Game to class Engine.
a.parshin
parents: 2534
diff changeset
18
2548
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
19 //----- (00411597) --------------------------------------------------------
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
20 void GUIWindow_Book::Release()
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
21 {
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
22 free(pSpellFont);
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
23 pSpellFont = nullptr;
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
24 free(pBookFont);
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
25 pBookFont = nullptr;
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
26 free(pBook2Font);
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
27 pBook2Font = nullptr;
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
28 free(pAutonoteFont);
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
29 pAutonoteFont = nullptr;
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
30 pTexture_mapbordr->Release();
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
31 pAudioPlayer->PlaySound(SOUND_closebook, 0, 0, -1, 0, 0, 0, 0);
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
32 pIcons_LOD->RemoveTexturesPackFromTextureList();
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
33 dword_506364 = 0;
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
34
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
35 GUIWindow::Release();
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
36 }
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
37
2501
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
38
2548
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
39 GUIWindow_Book::GUIWindow_Book() :
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
40 GUIWindow(0, 0, window->GetWidth(), window->GetHeight(), 0, nullptr)
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
41 {
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
42 }
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
43
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
44 void GUIWindow_Book::BasicBookInitialization()
2501
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
45 {
2548
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
46 // ----- (00411BFC) --------------------------------------------------------
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
47 // void GUIWindow::InitializeBookView() --- part
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
48 // {
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
49 pAudioPlayer->StopChannels(-1, -1);
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
50 InitializeFonts();
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
51 CreateButton(475, 445, 158, 34, 1, 0, UIMSG_Escape, 0, 0, pGlobalTXT_LocalizationStrings[79], 0); // Close
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
52 current_screen_type = SCREEN_BOOKS;
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
53 full_num_items_in_book = 0;
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
54 books_primary_item_per_page = 0;
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
55 books_page_number = 0;
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
56 num_achieved_awards = 0;
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
57 }
2501
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
58
2548
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
59 //----- (00411AAA) --------------------------------------------------------
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
60 void GUIWindow_Book::InitializeFonts()
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
61 {
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
62 pAudioPlayer->StopChannels(-1, -1);
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
63 ++pIcons_LOD->uTexturePacksCount;
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
64 if (!pIcons_LOD->uNumPrevLoadedFiles)
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
65 pIcons_LOD->uNumPrevLoadedFiles = pIcons_LOD->uNumLoadedFiles;
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
66 pAudioPlayer->PlaySound(SOUND_openbook, 0, 0, -1, 0, 0, 0, 0);
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
67 pTexture_mapbordr = pIcons_LOD->LoadTexturePtr("mapbordr", TEXTURE_16BIT_PALETTE);
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
68 pBookFont = LoadFont("book.fnt", "FONTPAL", NULL);
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
69 pBook2Font = LoadFont("book2.fnt", "FONTPAL", NULL);
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
70 pAutonoteFont = LoadFont("autonote.fnt", "FONTPAL", NULL);
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
71 pSpellFont = LoadFont("spell.fnt", "FONTPAL", NULL);
2501
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
72 }
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
73
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
74 //----- (0041192C) --------------------------------------------------------
2548
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents: 2541
diff changeset
75 void InitializeSpellBookTextures()
2501
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
76 {
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
77 pAudioPlayer->StopChannels(-1, -1);
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
78 ++pIcons_LOD->uTexturePacksCount;
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
79 if ( !pIcons_LOD->uNumPrevLoadedFiles )
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
80 pIcons_LOD->uNumPrevLoadedFiles = pIcons_LOD->uNumLoadedFiles;
2534
1bcadc6dd203 enum SOUND_
Ritor1
parents: 2502
diff changeset
81 pAudioPlayer->PlaySound(SOUND_openbook, 0, 0, -1, 0, 0, 0, 0);
2501
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
82 pSpellBookPagesTextr_9 = pIcons_LOD->LoadTexturePtr("book", TEXTURE_16BIT_PALETTE);
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
83 pTexture_pagemask = pIcons_LOD->LoadTexturePtr("pagemask", TEXTURE_16BIT_PALETTE);
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
84 pSpellBookCloseBtnTextr = pIcons_LOD->LoadTexturePtr("ib-m5-u", TEXTURE_16BIT_PALETTE);
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
85 pSpellBookClickCloseBtnTextr = pIcons_LOD->LoadTexturePtr("ib-m5-d", TEXTURE_16BIT_PALETTE);
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
86 pSBQuickSpellBtnTextr = pIcons_LOD->LoadTexturePtr("ib-m6-u",TEXTURE_16BIT_PALETTE);
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
87
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
88 static const char *texNames[9] = // 004E24EC
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
89 {
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
90 "SBFB00", "SBAB00", "SBWB00", "SBEB00",
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
91 "SBSB00", "SBMB00", "SBBB00", "SBLB00", "SBDB00"
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
92 };
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
93
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
94 pSBClickQuickSpellBtnTextr = pIcons_LOD->LoadTexturePtr("ib-m6-d",TEXTURE_16BIT_PALETTE);
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
95 for ( uint i = 0; i < 9; ++i )
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
96 {
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
97 pSpellBookPagesTextr[i] = pIcons_LOD->LoadTexturePtr(texNames[i], TEXTURE_16BIT_PALETTE);
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
98 sprintf(pTmpBuf.data(), "tab%da", i + 1);
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
99 pTextures_tabs[i][0] = pIcons_LOD->LoadTexturePtr(pTmpBuf.data(), TEXTURE_16BIT_PALETTE);
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
100 sprintf(pTmpBuf.data(), "tab%db", i + 1);
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
101 pTextures_tabs[i][1] = pIcons_LOD->LoadTexturePtr(pTmpBuf.data(), TEXTURE_16BIT_PALETTE);
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
102 }
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
103 }
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
104
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
105 //----- (0041140B) --------------------------------------------------------
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
106 void OnCloseSpellBookPage()
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
107 {
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
108 GUIButton *pNextButton; // esi@4
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
109 for ( uint i = 1; i <= 11; i++ )
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
110 {
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
111 SBPageCSpellsTextureList[i]->Release();
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
112 SBPageSSpellsTextureList[i]->Release();
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
113 }
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
114 pIcons_LOD->SyncLoadedFilesCount();
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
115 if ( pGUIWindow_CurrentMenu->pControlsHead )
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
116 {
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
117 do
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
118 {
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
119 pNextButton = pGUIWindow_CurrentMenu->pControlsHead->pNext;
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
120 free(pGUIWindow_CurrentMenu->pControlsHead);
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
121 pGUIWindow_CurrentMenu->pControlsHead = pNextButton;
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
122 }
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
123 while ( pNextButton );
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
124 }
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
125 pGUIWindow_CurrentMenu->pControlsHead = 0;
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
126 pGUIWindow_CurrentMenu->pControlsTail = 0;
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
127 pGUIWindow_CurrentMenu->uNumControls = 0;
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
128 }
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
129
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
130 //----- (00411473) --------------------------------------------------------
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
131 void OnCloseSpellBook()
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
132 {
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
133 pTexture_pagemask->Release();
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
134 pSpellBookCloseBtnTextr->Release();
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
135 pSBQuickSpellBtnTextr->Release();
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
136 for ( uint i = 0; i < 9; ++i )
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
137 {
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
138 pSpellBookPagesTextr[i]->Release();
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
139 pTextures_tabs[i][0]->Release();
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
140 pTextures_tabs[i][1]->Release();
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
141 }
2534
1bcadc6dd203 enum SOUND_
Ritor1
parents: 2502
diff changeset
142 pAudioPlayer->PlaySound(SOUND_openbook, 0, 0, -1, 0, 0, 0, 0);
2501
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
143 pIcons_LOD->RemoveTexturesPackFromTextureList();
0ff6a9e9bf7f GUI folger
Ritor1
parents:
diff changeset
144 }