Mercurial > mm7
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 | 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 | 3 #include <stdlib.h> |
4 #include <crtdbg.h> | |
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 | 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 | 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 | 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 | 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 | 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 | 72 } |
73 | |
74 //----- (0041192C) -------------------------------------------------------- | |
2548
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
2541
diff
changeset
|
75 void InitializeSpellBookTextures() |
2501 | 76 { |
77 pAudioPlayer->StopChannels(-1, -1); | |
78 ++pIcons_LOD->uTexturePacksCount; | |
79 if ( !pIcons_LOD->uNumPrevLoadedFiles ) | |
80 pIcons_LOD->uNumPrevLoadedFiles = pIcons_LOD->uNumLoadedFiles; | |
2534 | 81 pAudioPlayer->PlaySound(SOUND_openbook, 0, 0, -1, 0, 0, 0, 0); |
2501 | 82 pSpellBookPagesTextr_9 = pIcons_LOD->LoadTexturePtr("book", TEXTURE_16BIT_PALETTE); |
83 pTexture_pagemask = pIcons_LOD->LoadTexturePtr("pagemask", TEXTURE_16BIT_PALETTE); | |
84 pSpellBookCloseBtnTextr = pIcons_LOD->LoadTexturePtr("ib-m5-u", TEXTURE_16BIT_PALETTE); | |
85 pSpellBookClickCloseBtnTextr = pIcons_LOD->LoadTexturePtr("ib-m5-d", TEXTURE_16BIT_PALETTE); | |
86 pSBQuickSpellBtnTextr = pIcons_LOD->LoadTexturePtr("ib-m6-u",TEXTURE_16BIT_PALETTE); | |
87 | |
88 static const char *texNames[9] = // 004E24EC | |
89 { | |
90 "SBFB00", "SBAB00", "SBWB00", "SBEB00", | |
91 "SBSB00", "SBMB00", "SBBB00", "SBLB00", "SBDB00" | |
92 }; | |
93 | |
94 pSBClickQuickSpellBtnTextr = pIcons_LOD->LoadTexturePtr("ib-m6-d",TEXTURE_16BIT_PALETTE); | |
95 for ( uint i = 0; i < 9; ++i ) | |
96 { | |
97 pSpellBookPagesTextr[i] = pIcons_LOD->LoadTexturePtr(texNames[i], TEXTURE_16BIT_PALETTE); | |
98 sprintf(pTmpBuf.data(), "tab%da", i + 1); | |
99 pTextures_tabs[i][0] = pIcons_LOD->LoadTexturePtr(pTmpBuf.data(), TEXTURE_16BIT_PALETTE); | |
100 sprintf(pTmpBuf.data(), "tab%db", i + 1); | |
101 pTextures_tabs[i][1] = pIcons_LOD->LoadTexturePtr(pTmpBuf.data(), TEXTURE_16BIT_PALETTE); | |
102 } | |
103 } | |
104 | |
105 //----- (0041140B) -------------------------------------------------------- | |
106 void OnCloseSpellBookPage() | |
107 { | |
108 GUIButton *pNextButton; // esi@4 | |
109 for ( uint i = 1; i <= 11; i++ ) | |
110 { | |
111 SBPageCSpellsTextureList[i]->Release(); | |
112 SBPageSSpellsTextureList[i]->Release(); | |
113 } | |
114 pIcons_LOD->SyncLoadedFilesCount(); | |
115 if ( pGUIWindow_CurrentMenu->pControlsHead ) | |
116 { | |
117 do | |
118 { | |
119 pNextButton = pGUIWindow_CurrentMenu->pControlsHead->pNext; | |
120 free(pGUIWindow_CurrentMenu->pControlsHead); | |
121 pGUIWindow_CurrentMenu->pControlsHead = pNextButton; | |
122 } | |
123 while ( pNextButton ); | |
124 } | |
125 pGUIWindow_CurrentMenu->pControlsHead = 0; | |
126 pGUIWindow_CurrentMenu->pControlsTail = 0; | |
127 pGUIWindow_CurrentMenu->uNumControls = 0; | |
128 } | |
129 | |
130 //----- (00411473) -------------------------------------------------------- | |
131 void OnCloseSpellBook() | |
132 { | |
133 pTexture_pagemask->Release(); | |
134 pSpellBookCloseBtnTextr->Release(); | |
135 pSBQuickSpellBtnTextr->Release(); | |
136 for ( uint i = 0; i < 9; ++i ) | |
137 { | |
138 pSpellBookPagesTextr[i]->Release(); | |
139 pTextures_tabs[i][0]->Release(); | |
140 pTextures_tabs[i][1]->Release(); | |
141 } | |
2534 | 142 pAudioPlayer->PlaySound(SOUND_openbook, 0, 0, -1, 0, 0, 0, 0); |
2501 | 143 pIcons_LOD->RemoveTexturesPackFromTextureList(); |
144 } |