annotate GUI/UI/Spellbook.cpp @ 2575:a76d408c5132 tip

DrawTranslucent -> DrawTextureGrayShade Removed old texture drawing stuff
author a.parshin
date Wed, 09 Mar 2016 01:39:52 +0200
parents dd36326a9994
children
rev   line source
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
1 #include "Engine/Engine.h"
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
2 #include "Engine/AssetsManager.h"
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
3 #include "Engine/Party.h"
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
4 #include "Engine/LOD.h"
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
5 #include "Engine/Timer.h"
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
6 #include "Engine/texts.h"
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
7 #include "Engine/Graphics/Render.h"
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
8 #include "Engine/Graphics/Viewport.h"
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
9
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
10 #include "IO/Mouse.h"
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
11
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
12 #include "GUI/UI/Spellbook.h"
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
13 #include "GUI/GUIFont.h"
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
14
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
15 #include "Media/Audio/AudioPlayer.h"
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
16
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
17
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
18
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
19 void InitializeSpellBookTextures();
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
20 void OnCloseSpellBookPage();
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
21 void OnCloseSpellBook();
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
22 void LoadSpellbook(unsigned int spell_school);
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
23 void BookUI_Spellbook_DrawCurrentSchoolBackground();
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
24
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
25
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
26 std::array<char *, 9> spellbook_texture_filename_suffices = {{"f", "a", "w", "e", "s", "m", "b", "l", "d"}};
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
27
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
28 std::array<std::array<unsigned char, 12>, 9> pSpellbookSpellIndices = // 4E2430 from pSpellbookSpellIndices[9][12]
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
29 {
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
30 { //0 1 2 3 4 5 6 7 8 9 10 11
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
31 { 0, 3, 1, 8, 11, 7, 4, 10, 6, 2, 5, 9 },
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
32 { 0, 11, 2, 9, 6, 8, 5, 10, 3, 7, 1, 4 },
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
33 { 0, 4, 8, 9, 1, 10, 3, 11, 7, 6, 2, 5 },
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
34 { 0, 7, 10, 8, 2, 11, 1, 5, 3, 6, 4, 9 },
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
35 { 0, 5, 10, 11, 7, 2, 8, 1, 4, 9, 3, 6 },
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
36 { 0, 5, 9, 8, 3, 7, 6, 4, 1, 11, 2, 10 },
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
37 { 0, 1, 6, 9, 3, 5, 8, 11, 7, 10, 4, 2 },
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
38 { 0, 1, 10, 11, 9, 4, 3, 6, 5, 7, 8, 2 },
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
39 { 0, 9, 3, 7, 1, 5, 2, 10, 11, 8, 6, 4 }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
40 }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
41 };
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
42
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
43
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
44 Image *ui_spellbook_btn_quckspell = nullptr;
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
45 Image *ui_spellbook_btn_quckspell_click = nullptr;
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
46 Image *ui_spellbook_btn_close = nullptr;
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
47 Image *ui_spellbook_btn_close_click = nullptr;
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
48
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
49
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
50 std::array<Image *, 12> SBPageCSpellsTextureList;
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
51 std::array<Image *, 12> SBPageSSpellsTextureList;
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
52
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
53 std::array<Image *, 9> ui_spellbook_school_backgrounds;
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
54 std::array<std::array<Image *, 2>, 9> ui_spellbook_school_tabs;
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
55
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
56
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
57
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
58 GUIWindow_Spellbook::GUIWindow_Spellbook() :
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
59 GUIWindow(0, 0, window->GetWidth(), window->GetHeight(), 0, nullptr)
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
60 {
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
61 // ------------------------------------
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
62 // 004304E7 void Game_EventLoop -- part
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
63 current_screen_type = SCREEN_SPELL_BOOK;
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
64 pEventTimer->Pause();
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
65
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
66 InitializeSpellBookTextures();
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
67 OpenSpellbook();
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
68
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
69 // ------------------------------------
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
70 // 004304E7 void Game_EventLoop -- part
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
71 pAudioPlayer->PlaySound(SOUND_48, 0, 0, -1, 0, 0, 0, 0);
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
72 viewparams->field_48 = 1;
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
73 }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
74
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
75
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
76 void GUIWindow_Spellbook::OpenSpellbookPage(int page)
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
77 {
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
78 // ------------------------------------
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
79 // 004304E7 void Game_EventLoop -- part
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
80
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
81 OnCloseSpellBookPage();
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
82 pPlayers[uActiveCharacter]->lastOpenedSpellbookPage = page;
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
83 OpenSpellbook();
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
84 pAudioPlayer->PlaySound((SoundID)(SOUND_TurnPageU + rand() % 2), 0, 0, -1, 0, 0, 0, 0);
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
85 }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
86
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
87 //----- (00411621) --------------------------------------------------------
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
88 void GUIWindow_Spellbook::OpenSpellbook()
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
89 {
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
90 Player *pPlayer; // edi@1
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
91 //GUIWindow *pWindow; // esi@1
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
92 //unsigned int v3; // ebp@1
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
93 int v4; // eax@3
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
94 ///GUIButton *result; // eax@25
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
95 int a2; // [sp+10h] [bp-8h]@1
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
96 //int v7; // [sp+14h] [bp-4h]@1
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
97
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
98 pPlayer = pPlayers[uActiveCharacter];
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
99 //pWindow = this;
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
100 LoadSpellbook(pPlayer->lastOpenedSpellbookPage);
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
101 //v3 = 0;
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
102 a2 = 0;
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
103
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
104 PlayerSpellbookChapter* chapter = &pPlayer->spellbook.pChapters[pPlayer->lastOpenedSpellbookPage];
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
105 for (uint i = 0; i < 11; ++i)
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
106 {
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
107 if (!chapter->bIsSpellAvailable[i])
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
108 continue;
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
109 v4 = pPlayer->lastOpenedSpellbookPage;
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
110 //v4 = (12 * pPlayer->lastOpenedSpellbookPage + pSpellbookSpellIndices[pPlayer->lastOpenedSpellbookPage][i + 1]);
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
111 CreateButton(
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
112 pViewport->uViewportTL_X + pIconPos[v4][pSpellbookSpellIndices[v4][i + 1]].Xpos,
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
113 pViewport->uViewportTL_Y + pIconPos[v4][pSpellbookSpellIndices[v4][i + 1]].Ypos, //dword_4E20D0
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
114 SBPageSSpellsTextureList[i + 1]->GetWidth(),
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
115 SBPageSSpellsTextureList[i + 1]->GetHeight(),
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
116 1, 79, UIMSG_SelectSpell, i, 0, "", 0);
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
117 ++a2;
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
118 //++v3;
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
119 }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
120 //while ( (signed int)v3 < 11 );
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
121
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
122 CreateButton(0, 0, 0, 0, 1, 0, UIMSG_SpellBook_PressTab, 0, '\t', "", 0);
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
123 if (a2)
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
124 _41D08F_set_keyboard_control_group(a2, 0, 0, 0);
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
125
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
126 if (pPlayer->pActiveSkills[PLAYER_SKILL_FIRE]) CreateButton(399, 10, 50, 36, 1, 0, UIMSG_OpenSpellbookPage, 0, 0, aSpellSchoolNames[0], 0);
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
127 if (pPlayer->pActiveSkills[PLAYER_SKILL_AIR]) CreateButton(399, 46, 50, 36, 1, 0, UIMSG_OpenSpellbookPage, 1, 0, aSpellSchoolNames[1], 0);
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
128 if (pPlayer->pActiveSkills[PLAYER_SKILL_WATER]) CreateButton(399, 83, 50, 36, 1, 0, UIMSG_OpenSpellbookPage, 2, 0, aSpellSchoolNames[2], 0);
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
129 if (pPlayer->pActiveSkills[PLAYER_SKILL_EARTH]) CreateButton(399, 121, 50, 36, 1, 0, UIMSG_OpenSpellbookPage, 3, 0, aSpellSchoolNames[3], 0);
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
130 if (pPlayer->pActiveSkills[PLAYER_SKILL_SPIRIT]) CreateButton(399, 158, 50, 36, 1, 0, UIMSG_OpenSpellbookPage, 4, 0, aSpellSchoolNames[4], 0);
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
131 if (pPlayer->pActiveSkills[PLAYER_SKILL_MIND]) CreateButton(400, 196, 50, 36, 1, 0, UIMSG_OpenSpellbookPage, 5, 0, aSpellSchoolNames[5], 0);
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
132 if (pPlayer->pActiveSkills[PLAYER_SKILL_BODY]) CreateButton(400, 234, 50, 36, 1, 0, UIMSG_OpenSpellbookPage, 6, 0, aSpellSchoolNames[6], 0);
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
133 if (pPlayer->pActiveSkills[PLAYER_SKILL_LIGHT]) CreateButton(400, 271, 50, 36, 1, 0, UIMSG_OpenSpellbookPage, 7, 0, aSpellSchoolNames[7], 0);
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
134 if (pPlayer->pActiveSkills[PLAYER_SKILL_DARK]) CreateButton(400, 307, 50, 36, 1, 0, UIMSG_OpenSpellbookPage, 8, 0, aSpellSchoolNames[8], 0);
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
135
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
136 CreateButton(476, 450, ui_spellbook_btn_quckspell->GetWidth(), ui_spellbook_btn_quckspell->GetHeight(), 1, 78, UIMSG_ClickInstallRemoveQuickSpellBtn, 0, 0, "", 0);
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
137 pBtn_InstallRemoveSpell = CreateButton(476, 450, 48, 32, 1, 78, UIMSG_ClickInstallRemoveQuickSpellBtn, 0, 0, "", ui_spellbook_btn_quckspell_click, 0);
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
138 CreateButton(561, 450, ui_spellbook_btn_close->GetWidth(), ui_spellbook_btn_close->GetHeight(), 1, 0, UIMSG_Escape, 0, 0, pGlobalTXT_LocalizationStrings[79], 0);
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
139 pBtn_CloseBook = CreateButton(561, 450, 48, 32, 1, 0, UIMSG_Escape, 0, 0, pGlobalTXT_LocalizationStrings[79], ui_spellbook_btn_close_click, 0);
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
140 }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
141
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
142 void GUIWindow_Spellbook::Update()
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
143 {
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
144 // -----------------------------------
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
145 // 004156F0 GUI_UpdateWindows --- part
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
146 // {
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
147 // DrawSpellBookContent(pPlayers[uActiveCharacter]);
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
148 // }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
149 //
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
150 // --------------------------------------------------
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
151 // 00412B58 void DrawSpellBookContent(Player *player)
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
152 auto player = pPlayers[uActiveCharacter];
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
153
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
154 //Texture_MM7 *PendingTexture; // edi@1
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
155 Image *pTexture; // edx@5
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
156 int v10; // eax@13
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
157 unsigned int pX_coord; // esi@18
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
158 unsigned int pY_coord; // edi@18
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
159 //Texture_MM7 *pPageTexture; // eax@21
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
160 // signed int v22; // [sp-4h] [bp-24h]@22
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
161 POINT a2; // [sp+18h] [bp-8h]@13
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
162
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
163 static unsigned int texture_tab_coord1[9][2] =
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
164 { { 406, 9 }, { 406, 46 }, { 406, 84 }, { 406, 121 }, { 407, 158 }, { 405, 196 }, { 405, 234 }, { 405, 272 }, { 405, 309 } };
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
165
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
166 static unsigned int texture_tab_coord0[9][2] =
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
167 { { 415, 10 }, { 415, 46 }, { 415, 83 }, { 415, 121 }, { 415, 158 }, { 416, 196 }, { 416, 234 }, { 416, 271 }, { 416, 307 } };
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
168
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
169 BookUI_Spellbook_DrawCurrentSchoolBackground();
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
170
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
171 //PendingTexture = pIcons_LOD->GetTexture(pIcons_LOD->FindTextureByName("Pending"));
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
172 pRenderer->ClearZBuffer(0, 479);
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
173 if ((11 * player->lastOpenedSpellbookPage) || ((11 * player->lastOpenedSpellbookPage) + 11))//??? maybe structure need fix
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
174 {
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
175 for (uint i = 1; i <= 11; ++i)
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
176 {
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
177 if (player->_achieved_awards_bits[(11 * player->lastOpenedSpellbookPage) + i + 63])
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
178 {
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
179 if (SBPageSSpellsTextureList[i])
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
180 {
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
181 if (quick_spell_at_page == i)
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
182 pTexture = SBPageCSpellsTextureList[i];
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
183 else
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
184 pTexture = SBPageSSpellsTextureList[i];
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
185 if (pTexture)
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
186 {
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
187 pX_coord = pViewport->uViewportTL_X + pIconPos[player->lastOpenedSpellbookPage][pSpellbookSpellIndices[player->lastOpenedSpellbookPage][i]].Xpos;
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
188 pY_coord = pViewport->uViewportTL_Y + pIconPos[player->lastOpenedSpellbookPage][pSpellbookSpellIndices[player->lastOpenedSpellbookPage][i]].Ypos;
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
189
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
190 pRenderer->DrawTextureAlphaNew(pX_coord/640.0f, pY_coord/480.0f, pTexture);
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
191 pRenderer->ZDrawTextureAlpha(
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
192 pIconPos[player->lastOpenedSpellbookPage][pSpellbookSpellIndices[player->lastOpenedSpellbookPage][i]].Xpos/640.0f,
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
193 pIconPos[player->lastOpenedSpellbookPage][pSpellbookSpellIndices[player->lastOpenedSpellbookPage][i]].Ypos/480.0f,
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
194 pTexture, i);
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
195 }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
196 }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
197 }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
198 }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
199 }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
200
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
201 pMouse->GetCursorPos(&a2);
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
202 v10 = pRenderer->pActiveZBuffer[a2.x + pSRZBufferLineOffsets[a2.y]] & 0xFFFF;
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
203 if (v10)
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
204 {
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
205 if (SBPageCSpellsTextureList[v10])
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
206 {
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
207 pX_coord = pViewport->uViewportTL_X + pIconPos[player->lastOpenedSpellbookPage][pSpellbookSpellIndices[player->lastOpenedSpellbookPage][v10]].Xpos;
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
208 pY_coord = pViewport->uViewportTL_Y + pIconPos[player->lastOpenedSpellbookPage][pSpellbookSpellIndices[player->lastOpenedSpellbookPage][v10]].Ypos;
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
209
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
210 pRenderer->DrawTextureAlphaNew(pX_coord/640.0f, pY_coord/480.0f, SBPageCSpellsTextureList[v10]);
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
211 }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
212 }
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
213
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
214 for (uint i = 0; i < 9; i++)
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
215 {
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
216 if (player->pActiveSkills[PLAYER_SKILL_FIRE + i])
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
217 {
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
218 auto pPageTexture = ui_spellbook_school_tabs[i][0];
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
219 if (player->lastOpenedSpellbookPage == i)
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
220 {
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
221 pPageTexture = ui_spellbook_school_tabs[i][1];
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
222 pX_coord = texture_tab_coord1[i][0];
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
223 pY_coord = texture_tab_coord1[i][1];
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
224 }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
225 else
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
226 {
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
227 pPageTexture = ui_spellbook_school_tabs[i][0];
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
228 pX_coord = texture_tab_coord0[i][0];
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
229 pY_coord = texture_tab_coord0[i][1];
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
230 }
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
231
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
232 pRenderer->DrawTextureAlphaNew(pX_coord/640.0f, pY_coord/480.0f, pPageTexture);
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
233 }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
234 }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
235 }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
236
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
237
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
238 void GUIWindow_Spellbook::Release()
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
239 {
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
240 // -----------------------------------------
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
241 // 0041C26A void GUIWindow::Release --- part
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
242 OnCloseSpellBookPage();
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
243 OnCloseSpellBook();
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
244
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
245 GUIWindow::Release();
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
246 }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
247
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
248
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
249 //----- (00411300) --------------------------------------------------------
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
250 void LoadSpellbook(unsigned int spell_school)
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
251 {
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
252 char pContainer[20]; // [sp+Ch] [bp-1Ch]@7
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
253
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
254 byte_506550 = 0;
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
255 if ( pPlayers[uActiveCharacter]->uQuickSpell && (unsigned __int8)pPlayers[uActiveCharacter]->uQuickSpell / 11 == spell_school )
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
256 quick_spell_at_page = (unsigned __int8)pPlayers[uActiveCharacter]->uQuickSpell - 11 * spell_school;
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
257 else
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
258 quick_spell_at_page = 0;
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
259
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
260 for (uint i = 1; i <= 11; ++i)
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
261 {
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
262 if (pPlayers[uActiveCharacter]->spellbook.pChapters[spell_school].bIsSpellAvailable[i - 1])
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
263 {
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
264 sprintf(pContainer, "SB%sS%02d", spellbook_texture_filename_suffices[spell_school], pSpellbookSpellIndices[spell_school][i]);
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
265 SBPageSSpellsTextureList[i] = assets->GetImage_16BitAlpha(pContainer);
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
266
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
267 sprintf(pContainer, "SB%sC%02d", spellbook_texture_filename_suffices[spell_school], pSpellbookSpellIndices[spell_school][i]);
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
268 SBPageCSpellsTextureList[i] = assets->GetImage_16BitAlpha(pContainer);
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
269 }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
270 }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
271 }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
272
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
273 //----- (00412AF9) --------------------------------------------------------
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
274 static void BookUI_Spellbook_DrawCurrentSchoolBackground()
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
275 {
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
276 int pTexID = 0;
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
277 if ( uActiveCharacter )
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
278 pTexID = pParty->pPlayers[uActiveCharacter - 1].lastOpenedSpellbookPage;
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
279 pRenderer->DrawTextureAlphaNew(8/640.0f, 8/480.0f, ui_spellbook_school_backgrounds[pTexID]);
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
280
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
281 pRenderer->DrawTextureAlphaNew(476/640.0f, 450/480.0f, ui_spellbook_btn_quckspell);
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
282 pRenderer->DrawTextureAlphaNew(561/640.0f, 450/480.0f, ui_spellbook_btn_close);
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
283 }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
284
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
285
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
286
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
287
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
288
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
289 //----- (0041192C) --------------------------------------------------------
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
290 void InitializeSpellBookTextures()
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
291 {
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
292 pAudioPlayer->StopChannels(-1, -1);
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
293 ++pIcons_LOD->uTexturePacksCount;
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
294 if (!pIcons_LOD->uNumPrevLoadedFiles)
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
295 pIcons_LOD->uNumPrevLoadedFiles = pIcons_LOD->uNumLoadedFiles;
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
296 pAudioPlayer->PlaySound(SOUND_openbook, 0, 0, -1, 0, 0, 0, 0);
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
297
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
298 ui_spellbook_btn_close = assets->GetImage_16BitAlpha(L"ib-m5-u");
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
299 ui_spellbook_btn_close_click = assets->GetImage_16BitAlpha(L"ib-m5-d");
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
300 ui_spellbook_btn_quckspell = assets->GetImage_16BitAlpha(L"ib-m6-u");
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
301 ui_spellbook_btn_quckspell_click = assets->GetImage_16BitAlpha(L"ib-m6-d");
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
302
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
303 static const char *texNames[9] = // 004E24EC
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
304 {
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
305 "SBFB00", "SBAB00", "SBWB00", "SBEB00",
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
306 "SBSB00", "SBMB00", "SBBB00", "SBLB00", "SBDB00"
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
307 };
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
308
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
309 for (uint i = 0; i < 9; ++i)
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
310 {
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
311 ui_spellbook_school_backgrounds[i] = assets->GetImage_16BitColorKey(texNames[i], 0x7FF);
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
312
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
313 sprintf(pTmpBuf.data(), "tab%da", i + 1);
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
314 ui_spellbook_school_tabs[i][0] = assets->GetImage_16BitAlpha(pTmpBuf.data());
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
315
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
316 sprintf(pTmpBuf.data(), "tab%db", i + 1);
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
317 ui_spellbook_school_tabs[i][1] = assets->GetImage_16BitAlpha(pTmpBuf.data());
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
318 }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
319 }
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
320
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
321
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
322 //----- (00411473) --------------------------------------------------------
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
323 void OnCloseSpellBook()
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
324 {
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
325 if (ui_spellbook_btn_close)
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
326 {
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
327 ui_spellbook_btn_close->Release();
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
328 ui_spellbook_btn_close = nullptr;
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
329 }
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
330 if (ui_spellbook_btn_close_click)
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
331 {
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
332 ui_spellbook_btn_close_click->Release();
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
333 ui_spellbook_btn_close_click = nullptr;
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
334 }
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
335
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
336
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
337
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
338 if (ui_spellbook_btn_quckspell)
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
339 {
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
340 ui_spellbook_btn_quckspell->Release();
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
341 ui_spellbook_btn_quckspell = nullptr;
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
342 }
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
343 if (ui_spellbook_btn_quckspell_click)
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
344 {
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
345 ui_spellbook_btn_quckspell_click->Release();
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
346 ui_spellbook_btn_quckspell_click = nullptr;
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
347 }
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
348
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
349
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
350 for (uint i = 0; i < 9; ++i)
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
351 {
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
352 if (ui_spellbook_school_backgrounds[i])
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
353 {
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
354 ui_spellbook_school_backgrounds[i]->Release();
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
355 ui_spellbook_school_backgrounds[i] = nullptr;
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
356 }
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
357
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
358 if (ui_spellbook_school_tabs[i][0])
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
359 {
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
360 ui_spellbook_school_tabs[i][0]->Release();
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
361 ui_spellbook_school_tabs[i][0] = nullptr;
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
362 }
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
363 if (ui_spellbook_school_tabs[i][1])
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
364 {
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
365 ui_spellbook_school_tabs[i][1]->Release();
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
366 ui_spellbook_school_tabs[i][1] = nullptr;
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
367 }
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
368 }
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
369
2549
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
370 pAudioPlayer->PlaySound(SOUND_openbook, 0, 0, -1, 0, 0, 0, 0);
3121fb54a110 Rest & Spelbook refactored into class
a.parshin
parents:
diff changeset
371 }
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
372
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
373
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
374
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
375 //----- (0041140B) --------------------------------------------------------
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
376 void OnCloseSpellBookPage()
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
377 {
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
378 GUIButton *pNextButton; // esi@4
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
379 for ( uint i = 1; i <= 11; i++ )
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
380 {
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
381 if (SBPageCSpellsTextureList[i])
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
382 {
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
383 SBPageCSpellsTextureList[i]->Release();
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
384 SBPageCSpellsTextureList[i] = nullptr;
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
385 }
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
386 if (SBPageSSpellsTextureList[i])
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
387 {
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
388 SBPageSSpellsTextureList[i]->Release();
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
389 SBPageSSpellsTextureList[i] = nullptr;
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
390 }
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
391 }
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
392
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
393
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
394 pIcons_LOD->SyncLoadedFilesCount();
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
395 if ( pGUIWindow_CurrentMenu->pControlsHead )
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
396 {
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
397 do
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
398 {
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
399 pNextButton = pGUIWindow_CurrentMenu->pControlsHead->pNext;
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
400 free(pGUIWindow_CurrentMenu->pControlsHead);
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
401 pGUIWindow_CurrentMenu->pControlsHead = pNextButton;
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
402 }
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
403 while ( pNextButton );
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
404 }
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
405 pGUIWindow_CurrentMenu->pControlsHead = 0;
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
406 pGUIWindow_CurrentMenu->pControlsTail = 0;
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
407 pGUIWindow_CurrentMenu->uNumControls = 0;
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
408 }
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
409