Mercurial > mm7
annotate GUI/UI/Books/QuestBook.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 |
---|---|
2548
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
1 #include "Engine/Engine.h" |
2574 | 2 #include "Engine/AssetsManager.h" |
2548
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
3 #include "Engine/LOD.h" |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
4 #include "Engine/Party.h" |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
5 #include "Engine/Timer.h" |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
6 #include "Engine/Awards.h" |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
7 #include "Engine/texts.h" |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
8 #include "Engine/Graphics/IRender.h" |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
9 #include "Engine/Graphics/Viewport.h" |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
10 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
11 #include "GUI/GUIFont.h" |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
12 #include "GUI/UI/Books/QuestBook.h" |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
13 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
14 #include "Media/Audio/AudioPlayer.h" |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
15 |
2574 | 16 Image *ui_book_quests_background = nullptr; |
17 | |
2548
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
18 GUIWindow_QuestBook::GUIWindow_QuestBook() : |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
19 GUIWindow_Book() |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
20 { |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
21 this->ptr_1C = (void *)WINDOW_QuestBook; // inherited from GUIWindow::GUIWindow |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
22 BasicBookInitialization(); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
23 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
24 // -------------------------------- |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
25 // 004304E7 Game_EventLoop --- part |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
26 pEventTimer->Pause(); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
27 pAudioPlayer->StopChannels(-1, -1); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
28 pBooksButtonOverlay = new GUIWindow_BooksButtonOverlay(493u, 355u, 0, 0, (int)pBtn_Quests, 0); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
29 bFlashQuestBook = 0; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
30 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
31 // ---------------------------------------------- |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
32 // 00411BFC GUIWindow::InitializeBookView -- part |
2574 | 33 ui_book_quests_background = assets->GetImage_16Bit(L"sbquiknot"); |
34 ui_book_quest_div_bar = assets->GetImage_16BitAlpha(L"divbar"); | |
35 | |
36 ui_book_button1_on = assets->GetImage_16BitAlpha(L"tab-an-6b"); | |
37 ui_book_button2_on = assets->GetImage_16BitAlpha(L"tab-an-7b"); | |
38 ui_book_button1_off = assets->GetImage_16BitAlpha(L"tab-an-6a"); | |
39 ui_book_button2_off = assets->GetImage_16BitAlpha(L"tab-an-7a"); | |
40 | |
2548
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
41 pBtn_Book_1 = CreateButton( |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
42 pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 1, |
2574 | 43 ui_book_button1_on->GetWidth(), ui_book_button1_on->GetWidth(), |
2548
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
44 1, 0, UIMSG_ClickBooksBtn, 0xBu, 0, pGlobalTXT_LocalizationStrings[192],// "Scroll Up" |
2574 | 45 ui_book_button1_on, 0 |
2548
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
46 ); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
47 pBtn_Book_2 = CreateButton( |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
48 pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 38, |
2574 | 49 ui_book_button2_on->GetWidth(), ui_book_button2_on->GetHeight(), |
2548
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
50 1, 0, UIMSG_ClickBooksBtn, 0xAu, 0, pGlobalTXT_LocalizationStrings[193],// "Scroll Down" |
2574 | 51 ui_book_button2_on, 0 |
2548
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
52 ); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
53 num_achieved_awards = 0; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
54 memset(achieved_awards.data(), 0, 4000); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
55 for (uint i = books_primary_item_per_page; i < 512; ++i) |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
56 { |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
57 if (_449B57_test_bit(pParty->_quest_bits, i) && pQuestTable[i]) |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
58 { |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
59 achieved_awards[num_achieved_awards] = (AwardType)i; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
60 ++num_achieved_awards; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
61 } |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
62 } |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
63 full_num_items_in_book = num_achieved_awards; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
64 num_achieved_awards = 0; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
65 } |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
66 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
67 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
68 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
69 void GUIWindow_QuestBook::Update() |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
70 { |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
71 // ----------------------------------- |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
72 // 004156F0 GUI_UpdateWindows --- part |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
73 // { |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
74 // BookUI_Draw((WindowType)(int)ptr_1C); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
75 // } |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
76 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
77 // ----- (00413CC6) -------------------------------------------------------- |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
78 // void BookUI_Draw(WindowType book) --- part |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
79 // { |
2573
0c67be4ec900
DrawTextureIndexed renamed to DrawTextureTransparentColorKey
a.parshin
parents:
2548
diff
changeset
|
80 pRenderer->DrawTextureAlphaNew(471/640.0f, 445/480.0f, ui_exit_cancel_button_background); |
2548
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
81 // BookUI_Questbook_Draw(); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
82 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
83 // ----- (00413126) -------------------------------------------------------- |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
84 // void BookUI_Questbook_Draw() |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
85 // { |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
86 int pTextHeight; // eax@19 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
87 GUIWindow questbook_window; // [sp+Ch] [bp-54h]@9 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
88 |
2574 | 89 pRenderer->DrawTextureNew(pViewport->uViewportTL_X/640.0f, pViewport->uViewportTL_Y/480.0f, ui_book_quests_background); |
2548
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
90 if (BtnUp_flag || !books_primary_item_per_page)//Bookmark Up(Закладка вверх) |
2574 | 91 pRenderer->DrawTextureAlphaNew((pViewport->uViewportTL_X + 407)/640.0f, (pViewport->uViewportTL_Y + 2)/480.0f, ui_book_button1_off); |
2548
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
92 else |
2574 | 93 pRenderer->DrawTextureAlphaNew((pViewport->uViewportTL_X + 398)/640.0f, (pViewport->uViewportTL_Y + 1)/480.0f, ui_book_button1_on); |
2548
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
94 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
95 if (BtnDown_flag || books_primary_item_per_page + num_achieved_awards >= full_num_items_in_book)//Bookmark Down(Закладка вниз) |
2574 | 96 pRenderer->DrawTextureAlphaNew((pViewport->uViewportTL_X + 407)/640.0f, (pViewport->uViewportTL_Y + 38)/480.0f, ui_book_button2_off); |
2548
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
97 else |
2574 | 98 pRenderer->DrawTextureAlphaNew((pViewport->uViewportTL_X + 398)/640.0f, (pViewport->uViewportTL_Y + 38)/480.0f, ui_book_button2_on); |
2548
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
99 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
100 //for title |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
101 questbook_window.uFrameWidth = game_viewport_width; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
102 questbook_window.uFrameHeight = game_viewport_height; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
103 questbook_window.uFrameX = game_viewport_x; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
104 questbook_window.uFrameY = game_viewport_y; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
105 questbook_window.uFrameZ = game_viewport_z; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
106 questbook_window.uFrameW = game_viewport_w; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
107 questbook_window.DrawTitleText(pBook2Font, 0, 22, ui_book_quests_title_color, pGlobalTXT_LocalizationStrings[174], 3); //"Current Quests" |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
108 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
109 //for other text |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
110 questbook_window.uFrameX = 48; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
111 questbook_window.uFrameY = 70; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
112 questbook_window.uFrameWidth = 360; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
113 questbook_window.uFrameHeight = 264; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
114 questbook_window.uFrameZ = 407; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
115 questbook_window.uFrameW = 333; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
116 if (BtnDown_flag && books_primary_item_per_page + num_achieved_awards < full_num_items_in_book)//Click Bookmark Down(нажатие закладки вниз) |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
117 { |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
118 pAudioPlayer->PlaySound(SOUND_openbook, 0, 0, -1, 0, 0, 0, 0); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
119 books_primary_item_per_page += num_achieved_awards; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
120 books_num_items_per_page[books_page_number++] = num_achieved_awards; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
121 } |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
122 if (BtnUp_flag && books_page_number)//Click Bookmark Up(Нажатие закладки вверх) |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
123 { |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
124 pAudioPlayer->PlaySound(SOUND_openbook, 0, 0, -1, 0, 0, 0, 0); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
125 --books_page_number; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
126 books_primary_item_per_page -= (unsigned __int8)books_num_items_per_page[books_page_number]; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
127 } |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
128 if (!num_achieved_awards || !books_primary_item_per_page) |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
129 { |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
130 books_page_number = 0; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
131 books_primary_item_per_page = 0; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
132 } |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
133 BtnDown_flag = 0; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
134 BtnUp_flag = 0; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
135 num_achieved_awards = 0; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
136 for (uint i = books_primary_item_per_page; i < full_num_items_in_book; ++i) |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
137 { |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
138 ++num_achieved_awards; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
139 questbook_window.DrawText(pAutonoteFont, 1, 0, ui_book_quests_text_color, pQuestTable[achieved_awards[i]], 0, 0, 0); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
140 pTextHeight = pAutonoteFont->CalcTextHeight(pQuestTable[achieved_awards[i]], &questbook_window, 1, 0); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
141 if ((signed int)(questbook_window.uFrameY + pTextHeight) > (signed int)questbook_window.uFrameHeight) |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
142 break; |
2574 | 143 |
144 pRenderer->DrawTextureAlphaNew(100/640.0f, ((questbook_window.uFrameY + pTextHeight) + 12)/480.0f, ui_book_quest_div_bar); | |
145 | |
2548
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
146 questbook_window.uFrameY = (questbook_window.uFrameY + pTextHeight) + 24; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
147 } |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
148 } |