annotate GUI/UI/Books/TownPortalBook.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
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
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/texts.h"
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
6 #include "Engine/Graphics/IRender.h"
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
7
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
8 #include "GUI/GUIFont.h"
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
9 #include "GUI/UI/Books/TownPortalBook.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 "IO/Mouse.h"
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
12
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
13 static int pTownPortalBook_xs[6] = { 260, 324, 147, 385, 390, 19 };
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
14 static int pTownPortalBook_ys[6] = { 206, 84, 182, 239, 17, 283 };
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
15 static int pTownPortalBook_ws[6] = { 80, 66, 68, 72, 67, 74 };
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
16 static int pTownPortalBook_hs[6] = { 55, 56, 65, 67, 67, 59 };
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
17
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
18 static std::array<Image *, 6> ui_book_townportal_icons; // [0]Harmonale, [1]Pierpont, [2]Nighon, [3]Evenmorn Island, [4]Celestia, [5]The Pit
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
19
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
20 Image *ui_book_townportal_background = nullptr;
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
21
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
22
2548
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
23 GUIWindow_TownPortalBook::GUIWindow_TownPortalBook(const char *a1) :
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
24 GUIWindow_Book()
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
25 {
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
26 this->Hint = a1; // inherited from GUIWindow::GUIWindow
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
27 this->ptr_1C = (void *)WINDOW_TownPortal; // inherited from GUIWindow::GUIWindow
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
28 BasicBookInitialization();
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
29
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 // 00411BFC GUIWindow::InitializeBookView -- part
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
32 ui_book_townportal_background = assets->GetImage_16Bit(L"townport");
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
33
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
34 ui_book_townportal_icons[0] = assets->GetImage_16BitColorKey(L"tpharmndy", 0x7FF);
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
35 ui_book_townportal_icons[1] = assets->GetImage_16BitColorKey(L"tpelf", 0x7FF);
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
36 ui_book_townportal_icons[2] = assets->GetImage_16BitColorKey(L"tpwarlock", 0x7FF);
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
37 ui_book_townportal_icons[3] = assets->GetImage_16BitColorKey(L"tpisland", 0x7FF);
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
38 ui_book_townportal_icons[4] = assets->GetImage_16BitColorKey(L"tpheaven", 0x7FF);
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
39 ui_book_townportal_icons[5] = assets->GetImage_16BitColorKey(L"tphell", 0x7FF);
2548
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
40
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
41 for (uint i = 0; i < 6; ++i)
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
42 CreateButton(
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
43 pTownPortalBook_xs[i],
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
44 pTownPortalBook_ys[i],
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
45 pTownPortalBook_ws[i],
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
46 pTownPortalBook_hs[i],
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
47 1, 182, UIMSG_ClickTownInTP, i, 0, "", nullptr
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
48 );
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
49 }
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
50
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
51
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
52 void GUIWindow_TownPortalBook::Update()
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
53 {
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
54 // -----------------------------------
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
55 // 004156F0 GUI_UpdateWindows --- part
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 // BookUI_Draw((WindowType)(int)ptr_1C);
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
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
60 // ----- (00413CC6) --------------------------------------------------------
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
61 // void BookUI_Draw(WindowType book) --- part
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
62 // {
2573
0c67be4ec900 DrawTextureIndexed renamed to DrawTextureTransparentColorKey
a.parshin
parents: 2548
diff changeset
63 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
64 // BookUI_DrawTownPortalMap();
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 // ----- (00411150) --------------------------------------------------------
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
67 // void BookUI_DrawTownPortalMap()
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 int v3; // edi@17
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
70 GUIWindow TownPortalWindow; // [sp+Ch] [bp-64h]@1
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
71 POINT a2; // [sp+68h] [bp-8h]@17
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
72
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
73 pRenderer->ClearZBuffer(0, 479);
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
74 pRenderer->DrawTextureNew(8/640.0f, 8/480.0f, ui_book_townportal_background);
2573
0c67be4ec900 DrawTextureIndexed renamed to DrawTextureTransparentColorKey
a.parshin
parents: 2548
diff changeset
75 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
76
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
77 TownPortalWindow.uFrameX = game_viewport_x;
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
78 TownPortalWindow.uFrameY = game_viewport_y;
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
79 TownPortalWindow.uFrameWidth = game_viewport_width;
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
80 TownPortalWindow.uFrameHeight = game_viewport_height;
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
81 TownPortalWindow.uFrameZ = game_viewport_z;
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
82 TownPortalWindow.uFrameW = game_viewport_w;
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
83
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
84 const uint fountain_bits_lut[] =
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 PARTY_QUEST_FOUNTAIN_HARMONDALE,
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
87 PARTY_QUEST_FOUNTAIN_PIERPONT,
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
88 PARTY_QUEST_FOUNTAIN_NIGHON,
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
89 PARTY_QUEST_FOUNTAIN_EVENMORN_ISLE,
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
90 PARTY_QUEST_FOUNTAIN_CELESTIA,
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
91 PARTY_QUEST_FOUNTAIN_THE_PIT
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
92 };
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
93 for (uint i = 0; i < 6; ++i)
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
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
96 if (_449B57_test_bit(pParty->_quest_bits, fountain_bits_lut[i]))
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
97 pRenderer->ZDrawTextureAlpha(
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
98 pTownPortalBook_xs[i]/640.0f,
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
99 pTownPortalBook_ys[i]/480.0f,
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
100 ui_book_townportal_icons[i], i + 1
2548
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
101 );
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
102 }
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
103
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
104 pMouse->GetCursorPos(&a2);
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
105 v3 = pRenderer->pActiveZBuffer[a2.x + pSRZBufferLineOffsets[a2.y]] & 0xFFFF;
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
106
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
107 if (v3)
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 if (_449B57_test_bit(pParty->_quest_bits, fountain_bits_lut[v3 - 1]))
2574
dd36326a9994 More texture refactoring
a.parshin
parents: 2573
diff changeset
110 pRenderer->DrawTextureAlphaNew(pTownPortalBook_xs[v3 - 1]/640.0f, pTownPortalBook_ys[v3 - 1]/480.0f, ui_book_townportal_icons[v3 - 1]);
2548
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
111 }
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
112 TownPortalWindow.DrawTitleText(pBook2Font, 0, 22, 0, pGlobalTXT_LocalizationStrings[10], 3);
87e5590d034b All Books windows are refactored into respective classes
a.parshin
parents:
diff changeset
113 }