comparison UI/Books/UINotesBooks.cpp @ 1453:dfc9484ed94c

GetDayPart and Journal_Draw
author Ritor1
date Thu, 08 Aug 2013 16:34:19 +0600
parents 0c462cc807a1
children 7ef4b64f6329
comparison
equal deleted inserted replaced
1452:9add223260ce 1453:dfc9484ed94c
2 #ifdef _MSC_VER 2 #ifdef _MSC_VER
3 #define _CRT_SECURE_NO_WARNINGS 3 #define _CRT_SECURE_NO_WARNINGS
4 #endif 4 #endif
5 5
6 #include <assert.h> 6 #include <assert.h>
7
8 #include "..\..\MM7.h" 7 #include "..\..\MM7.h"
9 #include "..\..\Render.h" 8 #include "..\..\Render.h"
10 #include "..\..\Mouse.h" 9 #include "..\..\Mouse.h"
11 #include "..\UIBooks.h" 10 #include "..\UIBooks.h"
12 #include "..\..\MapInfo.h" 11 #include "..\..\MapInfo.h"
13 #include "..\..\GUIWindow.h" 12 #include "..\..\GUIWindow.h"
14 #include "..\..\GUIFont.h" 13 #include "..\..\GUIFont.h"
15 #include "..\..\Party.h" 14 #include "..\..\Party.h"
16 #include "..\..\AudioPlayer.h" 15 #include "..\..\AudioPlayer.h"
17 //#include "..\Outdoor.h"
18 #include "..\..\LOD.h" 16 #include "..\..\LOD.h"
19 #include "..\..\Allocator.h" 17 #include "..\..\Allocator.h"
20 #include "..\..\Viewport.h" 18 #include "..\..\Viewport.h"
21 //#include "..\Math.h"
22 #include "..\..\Awards.h" 19 #include "..\..\Awards.h"
23 #include "..\..\Autonotes.h" 20 #include "..\..\Autonotes.h"
24 #include "..\..\StorylineTextTable.h" 21 #include "..\..\StorylineTextTable.h"
25 #include "..\..\texts.h" 22 #include "..\..\texts.h"
26 //
27 #include "..\..\mm7_data.h" 23 #include "..\..\mm7_data.h"
28
29
30
31 24
32 //----- (00413D3C) -------------------------------------------------------- 25 //----- (00413D3C) --------------------------------------------------------
33 static const char *GetDayPart() 26 static const char *GetDayPart()
34 { 27 {
35 if (pParty->uCurrentHour <= 4) 28 if ( pParty->uCurrentHour > 5 && pParty->uCurrentHour < 20 )
36 return pGlobalTXT_LocalizationStrings[567]; // "Night" 29 return pGlobalTXT_LocalizationStrings[56]; // "Day"
37 else if (pParty->uCurrentHour == 5) 30 else if ( pParty->uCurrentHour == 5 )
38 return pGlobalTXT_LocalizationStrings[55]; // "Dawn" 31 return pGlobalTXT_LocalizationStrings[55]; // "Dawn"
39 else if (pParty->uCurrentHour == 20) 32 else if ( pParty->uCurrentHour == 20 )
40 return pGlobalTXT_LocalizationStrings[566]; // "Dusk" 33 return pGlobalTXT_LocalizationStrings[566]; // "Dusk"
41 else 34 else
42 return pGlobalTXT_LocalizationStrings[56]; // "Day" 35 return pGlobalTXT_LocalizationStrings[567]; // "Night"
43 } 36 }
44 37
45 //----- (00413D6F) -------------------------------------------------------- 38 //----- (00413D6F) --------------------------------------------------------
46 void BookUI_Calendar_Draw() 39 void BookUI_Calendar_Draw()
47 { 40 {
48 int am; // ecx@5 41 int am; // ecx@5
116 int pTextHeight; // eax@19 109 int pTextHeight; // eax@19
117 GUIWindow questbook_window; // [sp+Ch] [bp-54h]@9 110 GUIWindow questbook_window; // [sp+Ch] [bp-54h]@9
118 111
119 pRenderer->DrawTextureIndexed(pViewport->uViewportTL_X, pViewport->uViewportTL_Y, pTexture_CurrentBook); 112 pRenderer->DrawTextureIndexed(pViewport->uViewportTL_X, pViewport->uViewportTL_Y, pTexture_CurrentBook);
120 if ( BtnUp_flag || !books_primary_item_per_page )//Bookmark Up(Закладка вверх) 113 if ( BtnUp_flag || !books_primary_item_per_page )//Bookmark Up(Закладка вверх)
121 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 407, pViewport->uViewportTL_Y + 2, pTex_tab_an_6a__zoom_off); 114 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 407, pViewport->uViewportTL_Y + 2, pTex_book_button1_off);
122 else 115 else
123 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 1, pTex_tab_an_6b__zoom_on); 116 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 1, pTex_book_button1_on);
124 117
125 if ( BtnDown_flag || books_primary_item_per_page + num_achieved_awards >= full_num_items_in_book )//Bookmark Down(Закладка вниз) 118 if ( BtnDown_flag || books_primary_item_per_page + num_achieved_awards >= full_num_items_in_book )//Bookmark Down(Закладка вниз)
126 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 407, pViewport->uViewportTL_Y + 38, pTex_tab_an_7a__zoot_off); 119 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 407, pViewport->uViewportTL_Y + 38, pTex_book_button2_off);
127 else 120 else
128 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 38, pTex_tab_an_7b__zoot_on); 121 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 38, pTex_book_button2_on);
129 122
123 //for title
130 questbook_window.uFrameWidth = game_viewport_width; 124 questbook_window.uFrameWidth = game_viewport_width;
131 questbook_window.uFrameHeight = game_viewport_height; 125 questbook_window.uFrameHeight = game_viewport_height;
132 questbook_window.uFrameX = game_viewport_x; 126 questbook_window.uFrameX = game_viewport_x;
133 questbook_window.uFrameY = game_viewport_y; 127 questbook_window.uFrameY = game_viewport_y;
134 questbook_window.uFrameZ = game_viewport_z; 128 questbook_window.uFrameZ = game_viewport_z;
135 questbook_window.uFrameW = game_viewport_w; 129 questbook_window.uFrameW = game_viewport_w;
136 questbook_window.DrawTitleText(pBook2Font, 0, 22, ui_book_quests_title_color, pGlobalTXT_LocalizationStrings[174], 3); //"Current Quests" 130 questbook_window.DrawTitleText(pBook2Font, 0, 22, ui_book_quests_title_color, pGlobalTXT_LocalizationStrings[174], 3); //"Current Quests"
137 131
132 //for other text
138 questbook_window.uFrameX = 48; 133 questbook_window.uFrameX = 48;
139 questbook_window.uFrameY = 70; 134 questbook_window.uFrameY = 70;
140 questbook_window.uFrameWidth = 360; 135 questbook_window.uFrameWidth = 360;
141 questbook_window.uFrameHeight = 264; 136 questbook_window.uFrameHeight = 264;
142 questbook_window.uFrameZ = 407; 137 questbook_window.uFrameZ = 407;
143 questbook_window.uFrameW = 333; 138 questbook_window.uFrameW = 333;
144 if ( BtnDown_flag && books_primary_item_per_page + num_achieved_awards < full_num_items_in_book )//Click Bookmark Down 139 if ( BtnDown_flag && books_primary_item_per_page + num_achieved_awards < full_num_items_in_book )//Click Bookmark Down(нажатие закладки вниз)
145 { 140 {
146 pAudioPlayer->PlaySound(SOUND_OpenBook, 0, 0, -1, 0, 0, 0, 0); 141 pAudioPlayer->PlaySound(SOUND_OpenBook, 0, 0, -1, 0, 0, 0, 0);
147 books_primary_item_per_page += num_achieved_awards; 142 books_primary_item_per_page += num_achieved_awards;
148 books_num_items_per_page[books_page_number++] = num_achieved_awards; 143 books_num_items_per_page[books_page_number++] = num_achieved_awards;
149 } 144 }
150 if ( BtnUp_flag && books_page_number )//Click Bookmark Up 145 if ( BtnUp_flag && books_page_number )//Click Bookmark Up(Нажатие закладки вверх)
151 { 146 {
152 pAudioPlayer->PlaySound(SOUND_OpenBook, 0, 0, -1, 0, 0, 0, 0); 147 pAudioPlayer->PlaySound(SOUND_OpenBook, 0, 0, -1, 0, 0, 0, 0);
153 --books_page_number; 148 --books_page_number;
154 books_primary_item_per_page -= (unsigned __int8)books_num_items_per_page[books_page_number]; 149 books_primary_item_per_page -= (unsigned __int8)books_num_items_per_page[books_page_number];
155 } 150 }
162 BtnUp_flag = 0; 157 BtnUp_flag = 0;
163 num_achieved_awards = 0; 158 num_achieved_awards = 0;
164 for ( uint i = books_primary_item_per_page; i < full_num_items_in_book; ++i ) 159 for ( uint i = books_primary_item_per_page; i < full_num_items_in_book; ++i )
165 { 160 {
166 ++num_achieved_awards; 161 ++num_achieved_awards;
167 //v5 = pQuestTable[achieved_awards[v3]];//(&dword_722F10)[4 * v4]; 162 questbook_window.DrawText(pAutonoteFont, 1, 0, ui_book_quests_text_color, pQuestTable[achieved_awards[i]], 0, 0, 0);
168 questbook_window.DrawText(pAutonoteFont, 1, 0, ui_book_quests_text_color, pQuestTable[achieved_awards[i]], 0, 0, 0);//(&dword_722F10)[4 * v4], 0, 0, 0);
169 pTextHeight = pAutonoteFont->CalcTextHeight(pQuestTable[achieved_awards[i]], &questbook_window, 1, 0); 163 pTextHeight = pAutonoteFont->CalcTextHeight(pQuestTable[achieved_awards[i]], &questbook_window, 1, 0);
170 if ( (signed int)(questbook_window.uFrameY + pTextHeight) > (signed int)questbook_window.uFrameHeight ) 164 if ( (signed int)(questbook_window.uFrameY + pTextHeight) > (signed int)questbook_window.uFrameHeight )
171 break; 165 break;
172 pRenderer->DrawTextureTransparent(100, (questbook_window.uFrameY + pTextHeight) + 12, pSpellBookPagesTextr_10); 166 pRenderer->DrawTextureTransparent(100, (questbook_window.uFrameY + pTextHeight) + 12, pSpellBookPagesTextr_10);
173 questbook_window.uFrameY = (questbook_window.uFrameY + pTextHeight) + 24; 167 questbook_window.uFrameY = (questbook_window.uFrameY + pTextHeight) + 24;
175 } 169 }
176 170
177 //----- (0041338E) -------------------------------------------------------- 171 //----- (0041338E) --------------------------------------------------------
178 void BookUI_Autonotes_Draw() 172 void BookUI_Autonotes_Draw()
179 { 173 {
180 unsigned int v3; // eax@18 174 int pTextHeight; // eax@65
181 unsigned int v4; // eax@24 175 bool change_flag; // [sp+10h] [bp-58h]@1
182 unsigned int v5; // eax@30
183 unsigned int v6; // eax@36
184 unsigned int v7; // eax@42
185 signed int v8; // ebp@47
186 int v9; // eax@52
187 int v10; // eax@56
188 int v11; // edx@57
189 int v12; // ebp@64
190 int v13; // eax@65
191 const char *v14; // edi@65
192 int v15; // eax@65
193 unsigned int v16; // edi@65
194 unsigned int v19; // [sp-8h] [bp-70h]@18
195 unsigned int v20; // [sp-8h] [bp-70h]@24
196 unsigned int v21; // [sp-8h] [bp-70h]@30
197 unsigned int v22; // [sp-8h] [bp-70h]@36
198 unsigned int v23; // [sp-8h] [bp-70h]@42
199 Texture *v26; // [sp-4h] [bp-6Ch]@18
200 Texture *v27; // [sp-4h] [bp-6Ch]@24
201 Texture *v28; // [sp-4h] [bp-6Ch]@30
202 Texture *v29; // [sp-4h] [bp-6Ch]@36
203 Texture *v30; // [sp-4h] [bp-6Ch]@42
204 signed __int16 v31; // [sp+10h] [bp-58h]@1
205 char *v32; // [sp+10h] [bp-58h]@49
206 GUIWindow autonotes_window; // [sp+14h] [bp-54h]@46 176 GUIWindow autonotes_window; // [sp+14h] [bp-54h]@46
207 177
208 v31 = 0; 178 change_flag = false;
209 pRenderer->DrawTextureIndexed(pViewport->uViewportTL_X, pViewport->uViewportTL_Y, pTexture_AutonotesBook); 179 pRenderer->DrawTextureIndexed(pViewport->uViewportTL_X, pViewport->uViewportTL_Y, pTexture_AutonotesBook);
210 if ( BtnUp_flag || !books_primary_item_per_page ) 180 if ( BtnUp_flag || !books_primary_item_per_page )
211 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 407, pViewport->uViewportTL_Y + 2, pTex_tab_an_6a__zoom_off); 181 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 407, pViewport->uViewportTL_Y + 2, pTex_book_button1_off);
212 else 182 else
213 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 1, pTex_tab_an_6b__zoom_on); 183 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 1, pTex_book_button1_on);
214 184
215 if ( BtnDown_flag || books_primary_item_per_page + num_achieved_awards >= full_num_items_in_book ) 185 if ( BtnDown_flag || books_primary_item_per_page + num_achieved_awards >= full_num_items_in_book )
216 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 407, pViewport->uViewportTL_Y + 38, pTex_tab_an_7a__zoot_off); 186 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 407, pViewport->uViewportTL_Y + 38, pTex_book_button2_off);
217 else 187 else
218 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 38, pTex_tab_an_7b__zoot_on); 188 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 38, pTex_book_button2_on);
219 189
220 if ( Book_PageBtn3_flag )//Potions_page_flag 190 if ( Book_PageBtn3_flag )//Potions_page_flag
221 { 191 {
222 if (_506568_autonote_type == AUTONOTE_POTION_RECEPIE)//press again(повторное нажатие) 192 if (_506568_autonote_type == AUTONOTE_POTION_RECEPIE)//press again(повторное нажатие)
223 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 113, pTexture_506394); 193 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 113, pTex_book_button3_on);
224 else//press(нажатие) 194 else//press(нажатие)
225 { 195 {
226 v31 = 1; 196 change_flag = true;
227 pAudioPlayer->PlaySound(SOUND_Button2, 0, 0, -1, 0, 0, 0, 0); 197 pAudioPlayer->PlaySound(SOUND_Button2, 0, 0, -1, 0, 0, 0, 0);
228 _506568_autonote_type = AUTONOTE_POTION_RECEPIE; 198 _506568_autonote_type = AUTONOTE_POTION_RECEPIE;
229 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 113, pTexture_506394); 199 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 113, pTex_book_button3_on);
230 } 200 }
231 } 201 }
232 else 202 else
233 { 203 {
234 if (_506568_autonote_type == AUTONOTE_POTION_RECEPIE)// default(по умолчанию при запуске окна) 204 if (_506568_autonote_type == AUTONOTE_POTION_RECEPIE)// default(по умолчанию при запуске окна)
235 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 113, pTexture_506394); 205 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 113, pTex_book_button3_on);
236 else//Potions_page not active(вкладка снадобья не активна) 206 else//Potions_page not active(вкладка снадобья не активна)
237 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 113, pTexture_506390); 207 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 113, pTex_book_button3_off);
238 } 208 }
239 209
240 if ( Book_PageBtn4_flag )//Fontains_page_flag 210 if ( Book_PageBtn4_flag )//Fontains_page_flag
241 { 211 {
242 if ( _506568_autonote_type == AUTONOTE_STAT_HINT ) 212 if ( _506568_autonote_type == AUTONOTE_STAT_HINT )
243 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 399, pViewport->uViewportTL_Y + 150, pTexture_50638C); 213 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 399, pViewport->uViewportTL_Y + 150, pTex_book_button4_on);
244 else 214 else
245 { 215 {
246 v31 = 1; 216 change_flag = true;
247 pAudioPlayer->PlaySound(SOUND_Button2, 0, 0, -1, 0, 0, 0, 0); 217 pAudioPlayer->PlaySound(SOUND_Button2, 0, 0, -1, 0, 0, 0, 0);
248 _506568_autonote_type = AUTONOTE_STAT_HINT; 218 _506568_autonote_type = AUTONOTE_STAT_HINT;
249 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 399, pViewport->uViewportTL_Y + 150, pTexture_50638C); 219 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 399, pViewport->uViewportTL_Y + 150, pTex_book_button4_on);
250 } 220 }
251 } 221 }
252 else 222 else
253 { 223 {
254 if ( _506568_autonote_type == AUTONOTE_STAT_HINT ) 224 if ( _506568_autonote_type == AUTONOTE_STAT_HINT )
255 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 399, pViewport->uViewportTL_Y + 150, pTexture_50638C); 225 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 399, pViewport->uViewportTL_Y + 150, pTex_book_button4_on);
256 else 226 else
257 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 150, pTexture_506388); 227 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 150, pTex_book_button4_off);
258 } 228 }
259 229
260 if ( Book_PageBtn5_flag )//Autonotes_Obelisks_page_flag 230 if ( Book_PageBtn5_flag )//Autonotes_Obelisks_page_flag
261 { 231 {
262 if ( _506568_autonote_type == AUTONOTE_OBELISK) 232 if ( _506568_autonote_type == AUTONOTE_OBELISK)
263 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 188, pTexture_506384); 233 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 188, pTex_book_button5_on);
264 else 234 else
265 { 235 {
266 v31 = 1; 236 change_flag = true;
267 pAudioPlayer->PlaySound(SOUND_Button2, 0, 0, -1, 0, 0, 0, 0); 237 pAudioPlayer->PlaySound(SOUND_Button2, 0, 0, -1, 0, 0, 0, 0);
268 _506568_autonote_type = AUTONOTE_OBELISK; 238 _506568_autonote_type = AUTONOTE_OBELISK;
269 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 188, pTexture_506384); 239 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 188, pTex_book_button5_on);
270 } 240 }
271 } 241 }
272 else 242 else
273 { 243 {
274 if ( _506568_autonote_type == AUTONOTE_OBELISK) 244 if ( _506568_autonote_type == AUTONOTE_OBELISK)
275 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 188, pTexture_506384); 245 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 188, pTex_book_button5_on);
276 else 246 else
277 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 188, pTexture_506380); 247 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 188, pTex_book_button5_off);
278 } 248 }
279 249
280 if ( Book_PageBtn6_flag )//Autonotes_Seer_page_flag 250 if ( Book_PageBtn6_flag )//Autonotes_Seer_page_flag
281 { 251 {
282 if ( _506568_autonote_type == AUTONOTE_SEER) 252 if ( _506568_autonote_type == AUTONOTE_SEER)
283 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 226, pTexture_50637C); 253 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 226, pTex_book_button6_on);
284 else 254 else
285 { 255 {
286 v31 = 1; 256 change_flag = true;
287 pAudioPlayer->PlaySound(SOUND_Button2, 0, 0, -1, 0, 0, 0, 0); 257 pAudioPlayer->PlaySound(SOUND_Button2, 0, 0, -1, 0, 0, 0, 0);
288 _506568_autonote_type = AUTONOTE_SEER; 258 _506568_autonote_type = AUTONOTE_SEER;
289 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 226, pTexture_50637C); 259 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 226, pTex_book_button6_on);
290 } 260 }
291 } 261 }
292 else 262 else
293 { 263 {
294 if ( _506568_autonote_type == AUTONOTE_SEER) 264 if ( _506568_autonote_type == AUTONOTE_SEER)
295 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 226, pTexture_50637C); 265 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 226, pTex_book_button6_on);
296 else 266 else
297 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 226, pTexture_506378); 267 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 226, pTex_book_button6_off);
298 } 268 }
299 269
300 if ( Autonotes_Misc_page_flag ) 270 if ( Autonotes_Misc_page_flag )
301 { 271 {
302 if ( _506568_autonote_type == AUTONOTE_MISC) 272 if ( _506568_autonote_type == AUTONOTE_MISC)
303 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 264, pTexture_506374); 273 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 264, pTex_book_button7_on);
304 else 274 else
305 { 275 {
306 v31 = 1; 276 change_flag = true;
307 pAudioPlayer->PlaySound(SOUND_Button2, 0, 0, -1, 0, 0, 0, 0); 277 pAudioPlayer->PlaySound(SOUND_Button2, 0, 0, -1, 0, 0, 0, 0);
308 _506568_autonote_type = AUTONOTE_MISC; 278 _506568_autonote_type = AUTONOTE_MISC;
309 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 264, pTexture_506374); 279 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 264, pTex_book_button7_on);
310 } 280 }
311 } 281 }
312 else 282 else
313 { 283 {
314 if ( _506568_autonote_type == AUTONOTE_MISC) 284 if ( _506568_autonote_type == AUTONOTE_MISC)
315 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 264, pTexture_506374); 285 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 264, pTex_book_button7_on);
316 else 286 else
317 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 263, pTexture_506370); 287 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 263, pTex_book_button7_off);
318 } 288 }
319 289
320 if ( Autonotes_Instructors_page_flag ) 290 if ( Autonotes_Instructors_page_flag )
321 { 291 {
322 if ( _506568_autonote_type == AUTONOTE_TEACHER) 292 if ( _506568_autonote_type == AUTONOTE_TEACHER)
323 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 302, pTexture_50636C); 293 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 302, pTex_book_button8_on);
324 else 294 else
325 { 295 {
326 v31 = 1; 296 change_flag = true;
327 pAudioPlayer->PlaySound(SOUND_Button2, 0, 0, -1, 0, 0, 0, 0); 297 pAudioPlayer->PlaySound(SOUND_Button2, 0, 0, -1, 0, 0, 0, 0);
328 _506568_autonote_type = AUTONOTE_TEACHER; 298 _506568_autonote_type = AUTONOTE_TEACHER;
329 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 302, pTexture_50636C); 299 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 302, pTex_book_button8_on);
330 } 300 }
331 } 301 }
332 else 302 else
333 { 303 {
334 if ( _506568_autonote_type == AUTONOTE_TEACHER) 304 if ( _506568_autonote_type == AUTONOTE_TEACHER)
335 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 302, pTexture_50636C); 305 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 302, pTex_book_button8_on);
336 else 306 else
337 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 302, pTexture_506368); 307 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 302, pTex_book_button8_off);
338 } 308 }
339 309
310 //for title
340 autonotes_window.uFrameWidth = game_viewport_width; 311 autonotes_window.uFrameWidth = game_viewport_width;
341 autonotes_window.uFrameHeight = game_viewport_height; 312 autonotes_window.uFrameHeight = game_viewport_height;
342 autonotes_window.uFrameX = game_viewport_x; 313 autonotes_window.uFrameX = game_viewport_x;
343 autonotes_window.uFrameY = game_viewport_y; 314 autonotes_window.uFrameY = game_viewport_y;
344 autonotes_window.uFrameZ = game_viewport_z; 315 autonotes_window.uFrameZ = game_viewport_z;
345 autonotes_window.uFrameW = game_viewport_w; 316 autonotes_window.uFrameW = game_viewport_w;
346 autonotes_window.DrawTitleText(pBook2Font, 0, 22, ui_book_autonotes_title_color, pGlobalTXT_LocalizationStrings[154], 3); // "Auto notes" 317 autonotes_window.DrawTitleText(pBook2Font, 0, 22, ui_book_autonotes_title_color, pGlobalTXT_LocalizationStrings[154], 3); // "Auto notes"
347 318
319 //for other text
348 autonotes_window.uFrameX = 48; 320 autonotes_window.uFrameX = 48;
349 autonotes_window.uFrameY = 70; 321 autonotes_window.uFrameY = 70;
350 autonotes_window.uFrameWidth = 360; 322 autonotes_window.uFrameWidth = 360;
351 autonotes_window.uFrameHeight = 264; 323 autonotes_window.uFrameHeight = 264;
352 autonotes_window.uFrameZ = 407; 324 autonotes_window.uFrameZ = 407;
353 autonotes_window.uFrameW = 333; 325 autonotes_window.uFrameW = 333;
354 if ( v31 ) 326 if ( change_flag )//change bookmark(смена закладки)
355 { 327 {
356 full_num_items_in_book = 0; 328 full_num_items_in_book = 0;
357 books_primary_item_per_page = 0; 329 books_primary_item_per_page = 0;
358 books_page_number = 0; 330 books_page_number = 0;
359 num_achieved_awards = 0; 331 num_achieved_awards = 0;
360 v8 = 0; 332 for ( uint i = 1; i <= 195; ++i )
361 do 333 {
362 { 334 if ( pAutonoteTxt[i].eType == _506568_autonote_type )
363 //if ( dword_72371C[2 * v8] == dword_506568 )
364 if ( pAutonoteTxt[v8].eType == _506568_autonote_type )
365 { 335 {
366 //v32 = (&dword_723718_autonote_related)[8 * (signed __int16)v8]; 336 if ( (unsigned __int16)_449B57_test_bit(pParty->_autonote_bits, i) && (char *)pAutonoteTxt[i].pText )
367 v32 = (char *)pAutonoteTxt[v8].pText; 337 achieved_awards[num_achieved_awards++] = (AwardType)i;
368 if ( (short)v8 )
369 {
370 if ( (unsigned __int16)_449B57_test_bit(pParty->_autonote_bits, v8) && v32 )
371 {
372 v9 = num_achieved_awards++;
373 achieved_awards[v9] = (AwardType)v8;
374 }
375 }
376 } 338 }
377 ++v8; 339 }
378 }
379 while ( v8 < 196 );
380 full_num_items_in_book = num_achieved_awards; 340 full_num_items_in_book = num_achieved_awards;
381 } 341 }
382 else 342 else//not change bookmark(не меняется закладка)
383 { 343 {
384 if ( BtnDown_flag ) 344 if ( BtnDown_flag )// press Down bookmark(нажатие закладки пролистать дальше)
385 { 345 {
386 v10 = num_achieved_awards + books_primary_item_per_page;
387 if ( num_achieved_awards + books_primary_item_per_page < full_num_items_in_book ) 346 if ( num_achieved_awards + books_primary_item_per_page < full_num_items_in_book )
388 { 347 {
389 v11 = books_page_number++; 348 books_num_items_per_page[books_page_number++] = num_achieved_awards;
390 books_num_items_per_page[v11] = num_achieved_awards; 349 books_primary_item_per_page = num_achieved_awards + books_primary_item_per_page;
391 books_primary_item_per_page = v10;
392 pAudioPlayer->PlaySound(SOUND_OpenBook, 0, 0, -1, 0, 0, 0, 0); 350 pAudioPlayer->PlaySound(SOUND_OpenBook, 0, 0, -1, 0, 0, 0, 0);
393 } 351 }
394 } 352 }
395 if ( BtnUp_flag && books_page_number ) 353 if ( BtnUp_flag && books_page_number )// press Up bookmark(нажатие закладки пролистать назад)
396 { 354 {
397 --books_page_number; 355 --books_page_number;
398 books_primary_item_per_page -= (unsigned __int8)books_num_items_per_page[books_page_number]; 356 books_primary_item_per_page -= (unsigned __int8)books_num_items_per_page[books_page_number];
399 pAudioPlayer->PlaySound(SOUND_OpenBook, 0, 0, -1, 0, 0, 0, 0); 357 pAudioPlayer->PlaySound(SOUND_OpenBook, 0, 0, -1, 0, 0, 0, 0);
400 } 358 }
401 if ( !num_achieved_awards || books_primary_item_per_page < 1 ) 359 if ( !num_achieved_awards || !books_primary_item_per_page )//количество записей 0 или номер первой страницы 0
402 { 360 {
403 books_primary_item_per_page = 0; 361 books_primary_item_per_page = 0;
404 books_page_number = 0; 362 books_page_number = 0;
405 } 363 }
406 } 364 }
407 v12 = books_primary_item_per_page; 365 BtnUp_flag = 0;
366 BtnDown_flag = 0;
367 Book_PageBtn3_flag = 0;//Potions_page_flag
368 Book_PageBtn4_flag = 0;//Fontains_page_flag
369 Book_PageBtn5_flag = 0;//Autonotes_Obelisks_page_flag
370 Book_PageBtn6_flag = 0;//Autonotes_Seer_page_flag
371 Autonotes_Misc_page_flag = 0;
408 Autonotes_Instructors_page_flag = 0; 372 Autonotes_Instructors_page_flag = 0;
373 num_achieved_awards = 0;
374 for ( uint i = books_primary_item_per_page; i < full_num_items_in_book; ++i )
375 {
376 ++num_achieved_awards;
377 autonotes_window.DrawText(pAutonoteFont, 1, 0, ui_book_autonotes_text_color, pAutonoteTxt[achieved_awards[i]].pText, 0, 0, 0);
378 pTextHeight = pAutonoteFont->CalcTextHeight(pAutonoteTxt[achieved_awards[i]].pText, &autonotes_window, 1, 0);
379 if ( (signed int)(autonotes_window.uFrameY + pTextHeight) > (signed int)autonotes_window.uFrameHeight )
380 break;
381 pRenderer->DrawTextureTransparent(100, (autonotes_window.uFrameY + pTextHeight) + 12, pSpellBookPagesTextr_10);
382 autonotes_window.uFrameY = (autonotes_window.uFrameY + pTextHeight) + 24;
383 }
384 }
385
386 //----- (00412E85) --------------------------------------------------------
387 void BookUI_Journal_Draw()
388 {
389 char *pDialogueString; // eax@21
390 char* pStringOnPage; // eax@22
391 GUIWindow journal_window; // [sp+8h] [bp-54h]@10
392
393 pRenderer->DrawTextureIndexed(pViewport->uViewportTL_X, pViewport->uViewportTL_Y, pSpellBookPagesTextr_11);
394 if ( BtnUp_flag || !books_primary_item_per_page )
395 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 407, pViewport->uViewportTL_Y + 2, pTex_book_button1_off);
396 else
397 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 1, pTex_book_button1_on);
398
399 if ( BtnDown_flag || books_primary_item_per_page + num_achieved_awards >= full_num_items_in_book )
400 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 407, pViewport->uViewportTL_Y + 38, pTex_book_button2_off);
401 else
402 pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 38, pTex_book_button2_on);
403
404 if ( !Journal_limitation_factor[books_primary_item_per_page] )//for title
405 {
406 journal_window.uFrameWidth = game_viewport_width;
407 journal_window.uFrameX = game_viewport_x;
408 journal_window.uFrameY = game_viewport_y;
409 journal_window.uFrameHeight = game_viewport_height;
410 journal_window.uFrameZ = game_viewport_z;
411 journal_window.uFrameW = game_viewport_w;
412 if ( pStorylineText->StoreLine[achieved_awards[books_primary_item_per_page]].pPageTitle )
413 journal_window.DrawTitleText(pBook2Font, 0, 22, ui_book_journal_title_color, (const char *)pStorylineText->StoreLine[achieved_awards[books_primary_item_per_page]].pPageTitle, 3);
414 }
415
416 //for other text
417 journal_window.uFrameX = 48;
418 journal_window.uFrameY = 70;
419 journal_window.uFrameWidth = 360;
420 journal_window.uFrameHeight = 264;
421 journal_window.uFrameZ = 407;
422 journal_window.uFrameW = journal_window.uFrameHeight + 69;
423 if ( BtnDown_flag && books_primary_item_per_page + num_achieved_awards < full_num_items_in_book )//Press bookmark next page
424 {
425 pAudioPlayer->PlaySound(SOUND_OpenBook, 0, 0, -1, 0, 0, 0, 0);
426 books_primary_item_per_page += num_achieved_awards;
427 books_num_items_per_page[books_page_number++] = num_achieved_awards;
428 }
429 if ( BtnUp_flag && books_page_number )//Press bookmark previous page
430 {
431 pAudioPlayer->PlaySound(SOUND_OpenBook, 0, 0, -1, 0, 0, 0, 0);
432 --books_page_number;
433 books_primary_item_per_page -= (unsigned __int8)books_num_items_per_page[books_page_number];
434 }
435 if ( !num_achieved_awards || books_primary_item_per_page < 1 )
436 {
437 books_primary_item_per_page = 0;
438 books_page_number = 0;
439 }
409 BtnDown_flag = 0; 440 BtnDown_flag = 0;
410 BtnUp_flag = 0; 441 BtnUp_flag = 0;
411 num_achieved_awards = 0; 442 num_achieved_awards = 0;
412 Autonotes_Misc_page_flag = 0; 443 pDialogueString = BuildDialogueString(pStorylineText->StoreLine[ achieved_awards[books_primary_item_per_page]].pText, uActiveCharacter - 1,
413 Book_PageBtn6_flag = 0;//Autonotes_Seer_page_flag 444 0, 0, 0, (__int64 *)&pParty->field_3C._s_times[achieved_awards[books_primary_item_per_page] + 21]);
414 Book_PageBtn5_flag = 0;//Autonotes_Obelisks_page_flag 445 if ( achieved_awards[books_primary_item_per_page] )
415 Book_PageBtn4_flag = 0;//Fontains_page_flag 446 {
416 Book_PageBtn3_flag = 0;//Potions_page_flag 447 pStringOnPage = pAutonoteFont->GetPageTop(pDialogueString, &journal_window, 1, (unsigned __int8)Journal_limitation_factor[books_primary_item_per_page]);
417 while ( v12 < full_num_items_in_book ) 448 journal_window.DrawText(pAutonoteFont, 1, 0, ui_book_journal_text_color, (const char *)pStringOnPage, 0,
418 { 449 journal_window.uFrameY + journal_window.uFrameHeight, ui_book_journal_text_shadow);
419 v13 = achieved_awards[v12];
420 ++num_achieved_awards; 450 ++num_achieved_awards;
421 //v14 = (&dword_723718_autonote_related)[8 * v13];
422 v14 = pAutonoteTxt[v13].pText;
423 //a1.DrawText(pAutonoteFont, 1, 0, 0, (&dword_723718_autonote_related)[8 * v13], 0, 0, 0);
424 autonotes_window.DrawText(pAutonoteFont, 1, 0, ui_book_autonotes_text_color, pAutonoteTxt[v13].pText, 0, 0, 0);
425 v15 = pAutonoteFont->CalcTextHeight(v14, &autonotes_window, 1, 0);
426 v16 = autonotes_window.uFrameY + v15;
427 if ( (signed int)(autonotes_window.uFrameY + v15) > (signed int)autonotes_window.uFrameHeight )
428 break;
429 pRenderer->DrawTextureTransparent(0x64u, v16 + 12, pSpellBookPagesTextr_10);
430 ++v12;
431 autonotes_window.uFrameY = v16 + 24;
432 } 451 }
433 } 452 }
434
435 //----- (00412E85) --------------------------------------------------------
436 void BookUI_Journal_Draw()
437 {
438 unsigned int v0; // eax@3
439 unsigned int v1; // eax@7
440 int v2; // eax@10
441 const char *v3; // eax@10
442 signed int v4; // ecx@12
443 int v5; // ecx@14
444 int v6; // eax@21
445 int v7; // esi@21
446 char *v8; // eax@21
447 char* v9; // eax@22
448 unsigned int v11; // [sp-8h] [bp-64h]@3
449 unsigned int v12; // [sp-8h] [bp-64h]@7
450 Texture *v13; // [sp-4h] [bp-60h]@3
451 Texture *v14; // [sp-4h] [bp-60h]@7
452 GUIWindow a1; // [sp+8h] [bp-54h]@10
453
454 pRenderer->DrawTextureIndexed(pViewport->uViewportTL_X, pViewport->uViewportTL_Y, pSpellBookPagesTextr_11);
455 if ( BtnUp_flag || !books_primary_item_per_page )
456 {
457 v13 = pTex_tab_an_6a__zoom_off;
458 v11 = pViewport->uViewportTL_Y + 2;
459 v0 = pViewport->uViewportTL_X + 407;
460 }
461 else
462 {
463 v13 = pTex_tab_an_6b__zoom_on;
464 v11 = pViewport->uViewportTL_Y + 1;
465 v0 = pViewport->uViewportTL_X + 398;
466 }
467 pRenderer->DrawTextureTransparent(v0, v11, v13);
468
469 if ( BtnDown_flag || books_primary_item_per_page + num_achieved_awards >= full_num_items_in_book )
470 {
471 v14 = pTex_tab_an_7a__zoot_off;
472 v12 = pViewport->uViewportTL_Y + 38;
473 v1 = pViewport->uViewportTL_X + 407;
474 }
475 else
476 {
477 v14 = pTex_tab_an_7b__zoot_on;
478 v12 = pViewport->uViewportTL_Y + 38;
479 v1 = pViewport->uViewportTL_X + 398;
480 }
481 pRenderer->DrawTextureTransparent(v1, v12, v14);
482
483 if ( !byte_5C6D50[books_primary_item_per_page] )
484 {
485 v2 = achieved_awards[books_primary_item_per_page];
486 a1.uFrameWidth = game_viewport_width;
487 a1.uFrameX = game_viewport_x;
488 a1.uFrameY = game_viewport_y;
489 a1.uFrameHeight = game_viewport_height;
490 v3 = (const char *)pStorylineText->StoreLine[v2].pPageTitle;//field_4[];
491 a1.uFrameZ = game_viewport_z;
492 a1.uFrameW = game_viewport_w;
493 if ( v3 )
494 a1.DrawTitleText(pBook2Font, 0, 22, ui_book_journal_title_color, v3, 3);
495 }
496
497 a1.uFrameX = 48;
498 a1.uFrameY = 70;
499 a1.uFrameWidth = 360;
500 a1.uFrameHeight = 264;
501 v4 = LOBYTE(pAutonoteFont->uFontHeight) - 3;
502 a1.uFrameZ = 407;
503 a1.uFrameHeight = v4 * 264 / v4;
504 a1.uFrameW = a1.uFrameHeight + 69;
505 if ( BtnDown_flag && books_primary_item_per_page + num_achieved_awards < full_num_items_in_book )
506 {
507 pAudioPlayer->PlaySound(SOUND_OpenBook, 0, 0, -1, 0, 0, 0, 0);
508 v5 = books_page_number++;
509 books_primary_item_per_page += num_achieved_awards;
510 books_num_items_per_page[v5] = num_achieved_awards;
511 }
512 if ( BtnUp_flag && books_page_number )
513 {
514 pAudioPlayer->PlaySound(SOUND_OpenBook, 0, 0, -1, 0, 0, 0, 0);
515 --books_page_number;
516 books_primary_item_per_page -= (unsigned __int8)books_num_items_per_page[books_page_number];
517 }
518 if ( !num_achieved_awards || books_primary_item_per_page < 1 )
519 {
520 books_primary_item_per_page = 0;
521 books_page_number = 0;
522 }
523 BtnDown_flag = 0;
524 v6 = achieved_awards[books_primary_item_per_page];
525 BtnUp_flag = 0;
526 num_achieved_awards = 0;
527 //v7 = *pStorylineText->StoreLine[v6].pText;//*(&pStorylineText->field_0 + 3 * v6);
528 v7 = (int)pStorylineText->StoreLine[v6].pText;//*(&pStorylineText->field_0 + 3 * v6);
529 v8 = BuildDialogueString(pStorylineText->StoreLine[v6].pText, uActiveCharacter - 1, 0, 0, 0, (__int64 *)&pParty->field_3C._s_times[ v6 + 21]);
530 if ( v7 )
531 {
532 v9 = pAutonoteFont->_44C6C2(v8, &a1, 1u, (unsigned __int8)byte_5C6D50[books_primary_item_per_page]);
533 a1.DrawText(pAutonoteFont, 1, 0, ui_book_journal_text_color, (const char *)v9, 0, a1.uFrameY + a1.uFrameHeight, ui_book_journal_text_shadow);
534 ++num_achieved_awards;
535 }
536 }
537