Mercurial > mm7
annotate GUI/UI/Books/TownPortalBook.cpp @ 2556:91c75d202d30
Shooting bow sound & stats word wrap
(bugfix submitted by default8p)
author | a.parshin |
---|---|
date | Thu, 14 May 2015 11:03:14 +0200 |
parents | 87e5590d034b |
children | 0c67be4ec900 |
rev | line source |
---|---|
2548
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
1 #include "Engine/Engine.h" |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
2 #include "Engine/LOD.h" |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
3 #include "Engine/Party.h" |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
4 #include "Engine/texts.h" |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
5 #include "Engine/Graphics/IRender.h" |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
6 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
7 #include "GUI/GUIFont.h" |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
8 #include "GUI/UI/Books/TownPortalBook.h" |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
9 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
10 #include "IO/Mouse.h" |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
11 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
12 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
|
13 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
|
14 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
|
15 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
|
16 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
17 GUIWindow_TownPortalBook::GUIWindow_TownPortalBook(const char *a1) : |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
18 GUIWindow_Book() |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
19 { |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
20 this->Hint = a1; // inherited from GUIWindow::GUIWindow |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
21 this->ptr_1C = (void *)WINDOW_TownPortal; // 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 // 00411BFC GUIWindow::InitializeBookView -- part |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
26 pTexture_CurrentBook = pIcons_LOD->LoadTexturePtr("townport", TEXTURE_16BIT_PALETTE); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
27 pTexture_TownPortalIcons[0] = pIcons_LOD->LoadTexturePtr("tpharmndy", TEXTURE_16BIT_PALETTE); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
28 pTexture_TownPortalIcons[1] = pIcons_LOD->LoadTexturePtr("tpelf", TEXTURE_16BIT_PALETTE); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
29 pTexture_TownPortalIcons[2] = pIcons_LOD->LoadTexturePtr("tpwarlock", TEXTURE_16BIT_PALETTE); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
30 pTexture_TownPortalIcons[3] = pIcons_LOD->LoadTexturePtr("tpisland", TEXTURE_16BIT_PALETTE); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
31 pTexture_TownPortalIcons[4] = pIcons_LOD->LoadTexturePtr("tpheaven", TEXTURE_16BIT_PALETTE); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
32 pTexture_TownPortalIcons[5] = pIcons_LOD->LoadTexturePtr("tphell", TEXTURE_16BIT_PALETTE); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
33 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
34 for (uint i = 0; i < 6; ++i) |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
35 CreateButton( |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
36 pTownPortalBook_xs[i], |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
37 pTownPortalBook_ys[i], |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
38 pTownPortalBook_ws[i], |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
39 pTownPortalBook_hs[i], |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
40 1, 182, UIMSG_ClickTownInTP, i, 0, "", nullptr |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
41 ); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
42 } |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
43 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
44 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
45 void GUIWindow_TownPortalBook::Update() |
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 // ----------------------------------- |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
48 // 004156F0 GUI_UpdateWindows --- part |
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 // BookUI_Draw((WindowType)(int)ptr_1C); |
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 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
53 // ----- (00413CC6) -------------------------------------------------------- |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
54 // void BookUI_Draw(WindowType book) --- part |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
55 // { |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
56 pRenderer->DrawTextureIndexed(471, 445, pIcons_LOD->GetTexture(uExitCancelTextureId)); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
57 // BookUI_DrawTownPortalMap(); |
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 // ----- (00411150) -------------------------------------------------------- |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
60 // void BookUI_DrawTownPortalMap() |
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 int v3; // edi@17 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
63 GUIWindow TownPortalWindow; // [sp+Ch] [bp-64h]@1 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
64 POINT a2; // [sp+68h] [bp-8h]@17 |
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 pRenderer->ClearZBuffer(0, 479); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
67 pRenderer->DrawTextureIndexedAlpha(8, 8, pTexture_CurrentBook); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
68 pRenderer->DrawTextureIndexedAlpha(471, 445, pIcons_LOD->GetTexture(uExitCancelTextureId)); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
69 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
70 TownPortalWindow.uFrameX = game_viewport_x; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
71 TownPortalWindow.uFrameY = game_viewport_y; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
72 TownPortalWindow.uFrameWidth = game_viewport_width; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
73 TownPortalWindow.uFrameHeight = game_viewport_height; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
74 TownPortalWindow.uFrameZ = game_viewport_z; |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
75 TownPortalWindow.uFrameW = game_viewport_w; |
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 const uint fountain_bits_lut[] = |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
78 { |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
79 PARTY_QUEST_FOUNTAIN_HARMONDALE, |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
80 PARTY_QUEST_FOUNTAIN_PIERPONT, |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
81 PARTY_QUEST_FOUNTAIN_NIGHON, |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
82 PARTY_QUEST_FOUNTAIN_EVENMORN_ISLE, |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
83 PARTY_QUEST_FOUNTAIN_CELESTIA, |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
84 PARTY_QUEST_FOUNTAIN_THE_PIT |
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 for (uint i = 0; i < 6; ++i) |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
87 { |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
88 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
89 if (_449B57_test_bit(pParty->_quest_bits, fountain_bits_lut[i])) |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
90 pRenderer->DrawMaskToZBuffer( |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
91 pTownPortalBook_xs[i], |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
92 pTownPortalBook_ys[i], |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
93 pTexture_TownPortalIcons[i], i + 1 |
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 |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
97 pMouse->GetCursorPos(&a2); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
98 v3 = pRenderer->pActiveZBuffer[a2.x + pSRZBufferLineOffsets[a2.y]] & 0xFFFF; |
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 if (v3) |
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 if (_449B57_test_bit(pParty->_quest_bits, fountain_bits_lut[v3 - 1])) |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
103 pRenderer->DrawTextureIndexed(pTownPortalBook_xs[v3 - 1], pTownPortalBook_ys[v3 - 1], pTexture_TownPortalIcons[v3 - 1]); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
104 } |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
105 TownPortalWindow.DrawTitleText(pBook2Font, 0, 22, 0, pGlobalTXT_LocalizationStrings[10], 3); |
87e5590d034b
All Books windows are refactored into respective classes
a.parshin
parents:
diff
changeset
|
106 } |