Mercurial > mm7
annotate UI/UICharacter.cpp @ 1483:223605b325b3
Слияние
author | Ritor1 |
---|---|
date | Thu, 29 Aug 2013 12:04:55 +0600 |
parents | cfd99b6177a3 92b63e3dca90 |
children | 62c7f07bc05a |
rev | line source |
---|---|
1298 | 1 #ifdef _MSC_VER |
2 #define _CRT_SECURE_NO_WARNINGS | |
3 #endif | |
4 | |
5 #include <assert.h> | |
6 #include <algorithm> | |
1299 | 7 #include "..\MM7.h" |
8 #include "..\MapInfo.h" | |
9 #include "..\Game.h" | |
10 #include "..\GUIWindow.h" | |
11 #include "..\GUIFont.h" | |
12 #include "..\GUIProgressBar.h" | |
13 #include "..\Party.h" | |
14 #include "..\AudioPlayer.h" | |
15 #include "..\Render.h" | |
16 #include "..\IndoorCamera.h" | |
17 #include "..\LOD.h" | |
18 #include "..\Viewport.h" | |
19 #include "..\Time.h" | |
20 #include "..\Awards.h" | |
21 #include "..\CastSpellInfo.h" | |
22 #include "..\texts.h" | |
23 #include "..\mm7_data.h" | |
24 #include "..\Mouse.h" | |
25 #include "..\Allocator.h" | |
1298 | 26 |
27 | |
28 int bRingsShownInCharScreen; // 5118E0 | |
29 | |
30 unsigned int ui_mainmenu_copyright_color; | |
31 | |
1393 | 32 unsigned int ui_character_tooltip_header_default_color; |
1298 | 33 unsigned int ui_character_default_text_color; |
34 unsigned int ui_character_skill_highlight_color; | |
35 unsigned int ui_character_header_text_color; | |
36 unsigned int ui_character_bonus_text_color; | |
37 unsigned int ui_character_bonus_text_color_neg; | |
38 unsigned int ui_character_skill_upgradeable_color; | |
39 unsigned int ui_character_skill_default_color; | |
1393 | 40 unsigned int ui_character_stat_default_color; |
41 unsigned int ui_character_stat_buffed_color; | |
42 unsigned int ui_character_stat_debuffed_color; | |
43 unsigned int ui_character_skillinfo_can_learn; | |
44 unsigned int ui_character_skillinfo_can_learn_gm; | |
45 unsigned int ui_character_skillinfo_cant_learn; | |
1458 | 46 unsigned int ui_character_condition_normal_color; |
47 unsigned int ui_character_condition_light_color; | |
48 unsigned int ui_character_condition_moderate_color; | |
49 unsigned int ui_character_condition_severe_color; | |
1298 | 50 std::array<unsigned int, 6> ui_character_award_color; |
51 | |
52 unsigned int ui_game_minimap_outline_color; | |
53 unsigned int ui_game_minimap_actor_friendly_color; | |
54 unsigned int ui_game_minimap_actor_hostile_color; | |
55 unsigned int ui_game_minimap_actor_corpse_color; | |
56 unsigned int ui_game_minimap_decoration_color_1; | |
57 unsigned int ui_game_minimap_projectile_color; | |
58 unsigned int ui_game_minimap_treasure_color; | |
59 std::array<unsigned int, 24> ui_game_character_record_playerbuff_colors; | |
60 | |
61 unsigned int ui_gamemenu_video_gamma_title_color; | |
62 unsigned int ui_gamemenu_keys_action_name_color; | |
63 unsigned int ui_gamemenu_keys_key_selection_blink_color_1; | |
64 unsigned int ui_gamemenu_keys_key_selection_blink_color_2; | |
65 unsigned int ui_gamemenu_keys_key_default_color; | |
66 | |
67 unsigned int ui_book_quests_title_color; | |
68 unsigned int ui_book_quests_text_color; | |
69 unsigned int ui_book_autonotes_title_color; | |
70 unsigned int ui_book_autonotes_text_color; | |
71 unsigned int ui_book_map_title_color; | |
72 unsigned int ui_book_map_coordinates_color; | |
73 | |
74 unsigned int ui_book_calendar_title_color; | |
75 unsigned int ui_book_calendar_time_color; | |
76 unsigned int ui_book_calendar_day_color; | |
77 unsigned int ui_book_calendar_month_color; | |
78 unsigned int ui_book_calendar_year_color; | |
79 unsigned int ui_book_calendar_moon_color; | |
80 unsigned int ui_book_calendar_location_color; | |
81 | |
82 unsigned int ui_book_journal_title_color; | |
83 unsigned int ui_book_journal_text_color; | |
84 unsigned int ui_book_journal_text_shadow; | |
85 | |
1393 | 86 unsigned int ui_game_dialogue_npc_name_color; |
87 unsigned int ui_game_dialogue_option_highlight_color; | |
88 unsigned int ui_game_dialogue_option_normal_color; | |
89 | |
90 unsigned int ui_house_player_cant_interact_color; | |
91 | |
92 | |
93 void set_default_ui_skin() | |
94 { | |
95 ui_mainmenu_copyright_color = TargetColor(255, 255, 255); | |
96 | |
97 ui_character_tooltip_header_default_color = TargetColor(255, 255, 155); | |
98 ui_character_default_text_color = TargetColor(255, 255, 255); | |
99 ui_character_header_text_color = TargetColor(255, 255, 155); | |
100 ui_character_bonus_text_color = TargetColor(0, 255, 0); | |
101 ui_character_bonus_text_color_neg = TargetColor(255, 0, 0); | |
102 | |
103 ui_character_skill_upgradeable_color = TargetColor(0, 175, 255); | |
104 ui_character_skill_default_color = TargetColor(255, 0, 0); | |
105 ui_character_skill_highlight_color = TargetColor(255, 0, 0); | |
106 | |
107 ui_character_stat_default_color = TargetColor(255, 255, 255); | |
108 ui_character_stat_buffed_color = TargetColor(0, 255, 0); | |
109 ui_character_stat_debuffed_color = TargetColor(255, 35, 0); | |
110 | |
111 ui_character_skillinfo_can_learn = TargetColor(255, 255, 255); | |
112 ui_character_skillinfo_can_learn_gm = TargetColor(255, 255, 0); | |
113 ui_character_skillinfo_cant_learn = TargetColor(255, 0, 0); | |
1458 | 114 |
115 ui_character_condition_normal_color = TargetColor(255, 255, 255); | |
116 ui_character_condition_light_color = TargetColor(0, 255, 0); | |
117 ui_character_condition_moderate_color = TargetColor(225, 205, 35); | |
118 ui_character_condition_severe_color = TargetColor(255, 35, 0); | |
1393 | 119 |
120 ui_character_award_color[0] = TargetColor(248, 108, 160); | |
121 ui_character_award_color[1] = TargetColor(112, 220, 248); | |
122 ui_character_award_color[2] = TargetColor(192, 192, 240); | |
123 ui_character_award_color[3] = TargetColor( 64, 244, 96); | |
124 ui_character_award_color[4] = TargetColor(232, 244, 96); | |
125 ui_character_award_color[5] = TargetColor(240, 252, 192); | |
126 | |
127 ui_game_minimap_outline_color = TargetColor(0, 0, 255); | |
128 ui_game_minimap_actor_friendly_color = TargetColor(0, 255, 0); | |
129 ui_game_minimap_actor_hostile_color = TargetColor(255, 0, 0); | |
130 ui_game_minimap_actor_corpse_color = TargetColor(255, 255, 0); | |
131 ui_game_minimap_decoration_color_1 = TargetColor(255, 255, 255); | |
132 ui_game_minimap_projectile_color = TargetColor(255, 0, 0); | |
133 ui_game_minimap_treasure_color = TargetColor(0, 0, 255); | |
134 | |
135 ui_game_character_record_playerbuff_colors[0] = TargetColor(150, 212, 255); | |
136 ui_game_character_record_playerbuff_colors[1] = TargetColor(225, 225, 225); | |
137 ui_game_character_record_playerbuff_colors[2] = TargetColor(255, 128, 0); | |
138 ui_game_character_record_playerbuff_colors[3] = TargetColor(128, 128, 128); | |
139 ui_game_character_record_playerbuff_colors[4] = TargetColor(225, 225, 225); | |
140 ui_game_character_record_playerbuff_colors[5] = TargetColor(255, 85, 0); | |
141 ui_game_character_record_playerbuff_colors[6] = TargetColor(255, 128, 0); | |
142 ui_game_character_record_playerbuff_colors[7] = TargetColor(255, 85, 0); | |
143 ui_game_character_record_playerbuff_colors[8] = TargetColor(225, 225, 225); | |
144 ui_game_character_record_playerbuff_colors[9] = TargetColor(235, 15, 255); | |
145 ui_game_character_record_playerbuff_colors[10] = TargetColor(192, 192, 240); | |
146 ui_game_character_record_playerbuff_colors[11] = TargetColor(225, 225, 225); | |
147 ui_game_character_record_playerbuff_colors[12] = TargetColor(255, 128, 0); | |
148 ui_game_character_record_playerbuff_colors[13] = TargetColor(150, 212, 255); | |
149 ui_game_character_record_playerbuff_colors[14] = TargetColor(128, 128, 128); | |
150 ui_game_character_record_playerbuff_colors[15] = TargetColor(255, 255, 155); | |
151 ui_game_character_record_playerbuff_colors[16] = TargetColor(255, 255, 155); | |
152 ui_game_character_record_playerbuff_colors[17] = TargetColor(255, 255, 155); | |
153 ui_game_character_record_playerbuff_colors[18] = TargetColor(255, 255, 155); | |
154 ui_game_character_record_playerbuff_colors[19] = TargetColor(255, 255, 155); | |
155 ui_game_character_record_playerbuff_colors[20] = TargetColor(255, 255, 155); | |
156 ui_game_character_record_playerbuff_colors[21] = TargetColor(255, 255, 155); | |
157 ui_game_character_record_playerbuff_colors[22] = TargetColor(0, 128, 255); | |
158 ui_game_character_record_playerbuff_colors[23] = TargetColor(0, 128, 255); | |
159 | |
160 ui_gamemenu_video_gamma_title_color = TargetColor(255, 255, 155); | |
161 ui_gamemenu_keys_action_name_color = TargetColor(255, 255, 255); | |
162 ui_gamemenu_keys_key_selection_blink_color_1 = TargetColor(50, 0, 0); | |
163 ui_gamemenu_keys_key_selection_blink_color_2 = TargetColor(225, 205, 35); | |
164 ui_gamemenu_keys_key_default_color = TargetColor(255, 255, 255); | |
165 | |
166 ui_book_quests_title_color = TargetColor(255, 255, 255); | |
167 ui_book_quests_text_color = TargetColor(255, 255, 255); | |
168 ui_book_autonotes_title_color = TargetColor(255, 255, 255); | |
169 ui_book_autonotes_text_color = TargetColor(255, 255, 255); | |
170 ui_book_map_title_color = TargetColor(255, 255, 255); | |
171 ui_book_map_coordinates_color = TargetColor(255, 255, 255); | |
172 | |
173 ui_book_calendar_title_color = TargetColor(255, 255, 255); | |
174 ui_book_calendar_time_color = TargetColor(75, 75, 75); | |
175 ui_book_calendar_day_color = TargetColor(75, 75, 75); | |
176 ui_book_calendar_month_color = TargetColor(75, 75, 75); | |
177 ui_book_calendar_year_color = TargetColor(75, 75, 75); | |
178 ui_book_calendar_moon_color = TargetColor(75, 75, 75); | |
179 ui_book_calendar_location_color = TargetColor(75, 75, 75); | |
180 | |
181 ui_book_journal_title_color = TargetColor(255, 255, 255); | |
182 ui_book_journal_text_color = TargetColor(255, 255, 255); | |
183 ui_book_journal_text_shadow = TargetColor(0, 0, 0); | |
184 | |
185 ui_game_dialogue_npc_name_color = TargetColor(21, 153, 233); | |
186 ui_game_dialogue_option_highlight_color = TargetColor(225, 205, 35); | |
187 ui_game_dialogue_option_normal_color = TargetColor(255, 255, 255); | |
188 | |
189 ui_house_player_cant_interact_color = TargetColor(255, 255, 155); | |
190 } | |
191 | |
1298 | 192 std::array<unsigned int, 16> papredoll_dbrds; |
193 unsigned int papredoll_drhs[4]; | |
194 unsigned int papredoll_dlhus[4]; | |
195 unsigned int papredoll_dlhs[4]; | |
196 unsigned int papredoll_dbods[5]; | |
1464 | 197 int paperdoll_armor_texture[4][17][3];//0x511294 |
1298 | 198 //int paperdoll_array_51132C[165]; |
199 unsigned int papredoll_dlaus[5]; | |
200 unsigned int papredoll_dlads[4]; | |
201 int papredoll_flying_feet[777]; // idb | |
202 int paperdoll_boots_texture[4][6];//0x511638 | |
203 int paperdoll_cloak_collar_texture[4][10]; // weak | |
204 int paperdoll_cloak_texture[4][10]; | |
205 int paperdoll_helm_texture[2][16]; //511698 | |
206 int paperdoll_belt_texture[4][7]; //511718 | |
207 | |
208 const int paperdoll_Weapon[4][16][2] = {//4E4C30 | |
209 {{128, 205}, {30, 144}, {88, 85}, {0, 0}, {0, 0}, {0, 0}, {17, 104}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}, | |
210 {{131, 201}, {38, 158}, {98, 87}, {0, 0}, {0, 0}, {0, 0}, {21, 100}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}, | |
211 {{131, 216}, {29, 186}, {88, 119}, {0, 0}, {0, 0}, {0, 0}, { 0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}, | |
212 {{123, 216}, {35, 184}, {98, 119}, {0, 0}, {0, 0}, {0, 0}, { 0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}, | |
213 }; | |
214 | |
215 const int paperdoll_Boot[4][7][2] = //4E5490 | |
216 { | |
217 0xE, 0x11D, 0xD, 0x11D, 0xC, 0x10A, 0xA, 0xFF, 0xD, 0xF9, 0xD, 0x137, 0xC, 0x10E, | |
218 0x14, 0x125, 0x13, 0x122, 0x15, 0x120, 0x15, 0x114, 0x13, 0x10A, 0x11, 0x13E, 0x11, 0x116, | |
219 0x1D, 0x121, 0x1C, 0x11F, 0x1B, 0x11B, 0x1C, 0x117, 0x16, 0x116, 0x1B, 0x137, 0x1B, 0x11B, | |
220 0x1F, 0x127, 0x1F, 0x122, 0x1B, 0x11B, 0x1D, 0x117, 0x1D, 0x116, 0x1D, 0x137, 0x1B, 0x11F, | |
221 }; | |
222 const int paperdoll_Cloak[4][10][2] = //4E5570 | |
223 { | |
224 0x11, 0x68, 0xF, 0x68, 0x14, 0x71, 0x19, 0x6B, 0x21, 0x6F, 0x5, 0x68, 0x5, 0x68, 0x14, 0x71, 0x3, 0x6B, 0xF, 0x6F, | |
225 0x15, 0x64, 0xB, 0x6B, 0xE, 0x67, 0x15, 0x6B, 0x1B, 0x6F, 0x3, 0x6B, 0, 0x6B, 0xE, 0x67, 0, 0x6B, 0x3, 0x6F, | |
226 0x10, 0x8A, 0x9, 0x8B, 0x18, 0x98, 0x25, 0x91, 0x29, 0x90, 0x8, 0x8A, 0x9, 0x8B, 0x18, 0x98, 0x3, 0x91, 0x3, 0x90, | |
227 0x14, 0x92, 0x10, 0x92, 0x15, 0x98, 0x1F, 0x91, 0x22, 0x90, 0x8, 0x92, 0xC, 0x92, 0x15, 0x98, 0x3, 0x91, 0x3, 0x90, | |
228 }; | |
229 const int paperdoll_CloakCollar[4][10][2] = //4E56B0 | |
230 { | |
231 0x11, 0x68, 0x34, 0x64, 0x21, 0x69, 0x1D, 0x67, 0x20, 0x67, 0x21, 0x68, 0x34, 0x64, 0x21, 0x69, 0x1D, 0x67, 0x1F, 0x67, | |
232 0x13, 0x64, 0x35, 0x66, 0x29, 0x68, 0x1F, 0x68, 0x1F, 0x6A, 0x21, 0x6A, 0x2B, 0x66, 0x26, 0x68, 0x1F, 0x68, 0x1F, 0x6A, | |
233 0, 0, 0x30, 0x87, 0x1E, 0x86, 0x1B, 0x86, 0x1C, 0x8A, 0x21, 0x87, 0x30, 0x87, 0x1E, 0x86, 0x1B, 0x86, 0x1C, 0x8A, | |
234 0, 0, 0x38, 0x8A, 0x24, 0x8B, 0x1D, 0x8B, 0x21, 0x8C, 0x27, 0x8A, 0x34, 0x8A, 0x24, 0x8B, 0x25, 0x8B, 0x21, 0x8C, | |
235 }; | |
236 //int dword_4E56B4; // weak | |
237 const int paperdoll_Belt[4][7][2] = //4E57F0 | |
238 { | |
239 0x3A, 0xB6, 0x37, 0xB2, 0x34, 0xB9, 0x3A, 0xB9, 0x37, 0xB7, 0x38, 0xAC, 0x37, 0xB7, | |
240 0x3E, 0xAD, 0x3A, 0xAC, 0x37, 0xB0, 0x3A, 0xB1, 0x39, 0xB0, 0x3C, 0xA5, 0x39, 0xB0, | |
241 0x3B, 0xD5, 0x37, 0xD2, 0x31, 0xD5, 0x39, 0xD6, 0x37, 0xD8, 0x37, 0xD1, 0x37, 0xD8, | |
242 0x42, 0xD2, 0x3F, 0xD0, 0x3B, 0xD7, 0x3C, 0xD5, 0x3B, 0xD6, 0x3E, 0xCF, 0x36, 0xD6, | |
243 }; | |
244 const int paperdoll_Helm[4][16][2] = //4E58D0 | |
245 { | |
246 0x3E, 0x1F, 0x41, 0x2C, 0x37, 0x2F, 0x31, 0x32, 0x37, 0x2A, 0x39, 0x28, 0x36, 0x34, 0x41, 0x38, 0x40, 0x31, 0x40, 0x21, 0x40, 0x31, 0x3C, 0x33, 0x3D, 0x24, 0x3A, 0x1A, 0x37, 0x2A, 0x41, 0x48, | |
247 0x41, 0x1E, 0x42, 0x2B, 0x37, 0x2F, 0x34, 0x30, 0x39, 0x29, 0x3A, 0x26, 0x36, 0x34, 0x41, 0x37, 0x42, 0x32, 0x40, 0x21, 0x40, 0x31, 0x40, 0x2F, 0x3E, 0x22, 0x3B, 0x1A, 0x39, 0x29, 0x42, 0x47, | |
248 0x3F, 0x47, 0x41, 0x56, 0x37, 0x59, 0x32, 0x5E, 0x37, 0x58, 0x39, 0x54, 0x34, 0x61, 0x40, 0x61, 0x41, 0x5D, 0x3E, 0x4F, 0x3E, 0x5B, 0x3D, 0x5B, 0x3F, 0x4C, 0x3B, 0x45, 0x37, 0x58, 0x41, 0x74, | |
249 0x45, 0x45, 0x46, 0x54, 0x3A, 0x55, 0x38, 0x58, 0x3C, 0x54, 0x3F, 0x52, 0x39, 0x5B, 0x45, 0x5C, 0x47, 0x5C, 0x44, 0x4B, 0x44, 0x57, 0x43, 0x55, 0x44, 0x4A, 0x3E, 0x45, 0x3C, 0x54, 0x47, 0x70, | |
250 }; | |
251 const int pPaperdoll_Beards[4] = //4E5AD0 | |
252 { | |
253 52, 130, 56, 136, | |
254 }; | |
255 const int pPaperdoll_LeftHand[4][2] = //4E5AE0 | |
256 { | |
257 0x67, 0x6A, | |
258 0x65, 0x6C, | |
259 0x74, 0x8D, | |
260 0x74, 0x93, | |
261 }; | |
262 const int pPaperdoll_SecondLeftHand[4][2] = //4E5B00 | |
263 { | |
264 0x1A, 0x6B, | |
265 0x28, 0x6D, | |
266 0x19, 0x8D, | |
267 0x20, 0x92, | |
268 }; | |
269 const int pPaperdoll_RightHand[4][2] = //4E5B20 | |
270 { | |
271 0x1E, 0x90, | |
272 0x22, 0x9E, | |
273 0x19, 0xBA, | |
274 0x1F, 0xB8, | |
275 }; | |
276 const int pPaperdollLeftEmptyHand[4][2] = //4E5B40 | |
277 { | |
278 0x80, 0xCD, | |
279 0x83, 0xC9, | |
280 0x83, 0xD8, | |
281 0x7B, 0xD8, | |
282 }; | |
283 | |
284 int pPaperdoll_BodyX = 481; // 004E4C28 | |
285 int pPaperdoll_BodyY = 0; // 004E4C2C | |
1466 | 286 const int paperdoll_Armor_Coord[4][17][2] = //4E4E30 |
1298 | 287 { |
288 // X Y | |
289 0x2C, 0x67, 0x30, 0x69, 0x2D, 0x67, 0x2C, 0x64, 0x14, 0x66, 0x22, 0x67, 0x20, 0x66, 0x25, 0x66, 0x12, 0x66,//Human | |
290 0x0A, 0x66, 0x13, 0x64, 0x0E, 0x64, 0x0A, 0x63, 0x14, 0x66, 0x0A, 0x63, 0x0A, 0x66, 0x25, 0x66, | |
291 | |
292 0x32, 0x68, 0x32, 0x69, 0x35, 0x69, 0x33, 0x68, 0x24, 0x67, 0x30, 0x69, 0x33, 0x68, 0x31, 0x69, 0x19, 0x69, | |
293 0x19, 0x6A, 0x16, 0x66, 0x16, 0x65, 0x0F, 0x6B, 0x24, 0x67, 0x0F, 0x6B, 0x19, 0x6A, 0x31, 0x69, | |
294 | |
295 0x2A, 0x8C, 0x29, 0x8C, 0x2A, 0x89, 0x29, 0x86, 0x12, 0x87, 0x2D, 0x89, 0x2A, 0x88, 0x25, 0x87, 0x12, 0x8B, | |
296 0x12, 0x8B, 0x11, 0x8A, 0x15, 0x87, 0x09, 0x89, 0x12, 0x87, 0x09, 0x89, 0x12, 0x8B, 0x25, 0x87, | |
297 | |
298 0x33, 0x90, 0x32, 0x90, 0x34, 0x91, 0x32, 0x8E, 0x21, 0x8B, 0x31, 0x8B, 0x33, 0x8E, 0x2F, 0x8F, 0x16, 0x8D, | |
299 0x18, 0x8C, 0x19, 0x8C, 0x1B, 0x8E, 0x0C, 0x8C, 0x21, 0x8B, 0x0C, 0x8C, 0x18, 0x8C, 0x2F, 0x8F, | |
300 }; | |
1466 | 301 const int paperdoll_shoulder_coord[4][17][2] = //4E5050 |
1298 | 302 { |
303 0x64, 0x67, 0x61, 0x67, 0x65, 0x68, 0x6E, 0x74, 0x6C, 0x68, 0x61, 0x67, 0x66, 0x68, 0x6C, 0x6A, 0x6E, 0x6D, | |
304 0x67, 0x69, 0x70, 0x67, 0x6E, 0x6D, 0x6C, 0x6F, 0x6C, 0x68, 0x6C, 0x6F, 0x67, 0x69, 0x6C, 0x6A, | |
305 | |
306 0x60, 0x6B, 0x60, 0x6C, 0x60, 0x6B, 0x61, 0x6A, 0x60, 0x69, 0x60, 0x6A, 0x60, 0x6A, 0x61, 0x69, 0x63, 0x6A, | |
307 0x64, 0x6A, 0x61, 0x66, 0x66, 0x67, 0x64, 0x6C, 0x60, 0x69, 0x64, 0x6C, 0x64, 0x6A, 0x61, 0x69, | |
308 | |
309 0x6D, 0x8C, 0x75, 0x8C, 0, 0, 0x72, 0x8D, 0x6A, 0x89, 0, 0, 0x73, 0x8C, 0x69, 0x8C, 0x6E, 0x8D, | |
310 0x71, 0x8D, 0x70, 0x8D, 0x72, 0x8D, 0x74, 0x8E, 0x6A, 0x89, 0x74, 0x8E, 0x71, 0x8D, 0x69, 0x8C, | |
311 | |
312 0x72, 0x91, 0x72, 0x91, 0, 0, 0x6E, 0x92, 0x6F, 0x91, 0, 0, 0, 0, 0x6E, 0x91, 0x71, 0x90, | |
313 0x72, 0x8D, 0x72, 0x90, 0x73, 0x93, 0x73, 0x90, 0x6F, 0x91, 0x73, 0x90, 0x72, 0x8D, 0x6E, 0x91, | |
314 }; | |
1466 | 315 const int paperdoll_shoulder_second_coord[4][17][2] = //dword_4E5270 |
1298 | 316 { |
1466 | 317 0, 0, 0x61, 0x67, 0, 0, 0x64, 0x69, 0x64, 0x68, 0, 0, 0, 0, 0x5E, 0x66, 0x5F, 0x69, |
318 0x55, 0x69, 0x5F, 0x67, 0x5F, 0x68, 0x32, 0x69, 0x64, 0x68, 0x32, 0x69, 0x55, 0x69, 0x5E, 0x66, | |
319 | |
320 0, 0, 0x60, 0x6C, 0, 0, 0x60, 0x6C, 0x5E, 0x69, 0, 0, 0, 0, 0x5D, 0x6A, 0x5B, 0x6A, | |
321 0x5B, 0x6A, 0x59, 0x69, 0x56, 0x68, 0x38, 0x6E, 0x5E, 0x69, 0x38, 0x6E, 0x5B, 0x6A, 0x5D, 0x6A, | |
322 | |
323 0, 0, 0x75, 0x8C, 0, 0, 0x72, 0x8D, 0x62, 0x89, 0, 0, 0, 0, 0x69, 0x8C, 0x5E, 0x8D, | |
324 0x61, 0x8D, 0x5F, 0x8D, 0x60, 0x8D, 0x2E, 0x8C, 0x62, 0x89, 0x2E, 0x8C, 0x61, 0x8D, 0x69, 0x8C, | |
325 | |
326 0, 0, 0x72, 0x91, 0, 0, 0x72, 0x91, 0x67, 0x8F, 0, 0, 0, 0, 0x6E, 0x91, 0x64, 0x93, | |
327 0x65, 0x8C, 0x65, 0x91, 0x67, 0x91, 0x36, 0x90, 0x67, 0x8F, 0x36, 0x90, 0x65, 0x8C, 0x6E, 0x91, | |
1298 | 328 }; |
329 | |
330 const char *dlad_texnames_by_face[25] = | |
331 { | |
332 "pc01lad", "pc02lad", "pc03lad", "pc04lad", "pc05lad", "pc06lad", | |
333 "pc07lad", "pc08lad", "pc09lad", "pc10lad", "pc11lad", "pc12lad", | |
334 "pc13lad", "pc14lad", "pc15lad", "pc16lad", "pc17lad", "pc18lad", | |
335 "pc19lad", "pc20lad", "pc21lad", "pc22lad", "pc23lad", "pc24lad", | |
336 "pc25lad" | |
337 }; | |
338 const char *dlau_texnames_by_face[25] = | |
339 { | |
340 "pc01lau", "pc02lau", "pc03lau", "pc04lau", "pc05lau", "pc06lau", | |
341 "pc07lau", "pc08lau", "pc09lau", "pc10lau", "pc11lau", "pc12lau", | |
342 "pc13lau", "pc14lau", "pc15lau", "pc16lau", "pc17lau", "pc18lau", | |
343 "pc19lau", "pc20lau", "pc21lau", "pc22lau", "pc23lau", "pc24lau", | |
344 "pc25lau" | |
345 }; | |
346 const char *dbod_texnames_by_face[25] = | |
347 { | |
348 "pc01bod", "pc02bod", "pc03bod", "pc04bod", "pc05bod", "pc06bod", | |
349 "pc07bod", "pc08bod", "pc09bod", "pc10bod", "pc11bod", "pc12bod", | |
350 "pc13bod", "pc14bod", "pc15bod", "pc16bod", "pc17bod", "pc18bod", | |
351 "pc19bod", "pc20bod", "pc21bod", "pc22bod", "pc23bod", "pc24bod", | |
352 "pc25bod" | |
353 }; | |
354 const char *drh_texnames_by_face[25] = | |
355 { | |
356 | |
357 "pc01rh", "pc02rh", "pc03rh", "pc04rh", "pc05rh", "pc06rh", | |
358 "pc07rh", "pc08rh", "pc09rh", "pc10rh", "pc11rh", "pc12rh", | |
359 "pc13rh", "pc14rh", "pc15rh", "pc16rh", "pc17rh", "pc18rh", | |
360 "pc19rh", "pc20rh", "pc21rh", "pc22rh", "pc23rh", "pc24rh", | |
361 "pc25rh" | |
362 }; | |
363 const char *dlh_texnames_by_face[25] = | |
364 { | |
365 "pc01lh", "pc02lh", "pc03lh", "pc04lh", "pc05lh", "pc06lh", | |
366 "pc07lh", "pc08lh", "pc09lh", "pc10lh", "pc11lh", "pc12lh", | |
367 "pc13lh", "pc14lh", "pc15lh", "pc16lh", "pc17lh", "pc18lh", | |
368 "pc19lh", "pc20lh", "pc21lh", "pc22lh", "pc23lh", "pc24lh", | |
369 "pc25lh" | |
370 }; | |
371 const char *dlhu_texnames_by_face[25] = | |
372 { | |
373 "pc01lhu", "pc02lhu", "pc03lhu", "pc04lhu", "pc05lhu", "pc06lhu", | |
374 "pc07lhu", "pc08lhu", "pc09lhu", "pc10lhu", "pc11lhu", "pc12lhu", | |
375 "pc13lhu", "pc14lhu", "pc15lhu", "pc16lhu", "pc17lhu", "pc18lhu", | |
376 "pc19lhu", "pc20lhu", "pc21lhu", "pc22lhu", "pc23lhu", "pc24lhu", | |
377 "pc25lhu" | |
378 }; | |
379 | |
380 const int pArmorSkills[5] = {PLAYER_SKILL_LEATHER, PLAYER_SKILL_CHAIN, PLAYER_SKILL_PLATE, PLAYER_SKILL_SHIELD, PLAYER_SKILL_DODGE}; | |
381 const int pWeaponSkills[9] = {PLAYER_SKILL_AXE, PLAYER_SKILL_BOW, PLAYER_SKILL_DAGGER, PLAYER_SKILL_MACE, PLAYER_SKILL_SPEAR, | |
382 PLAYER_SKILL_STAFF, PLAYER_SKILL_SWORD, PLAYER_SKILL_UNARMED, PLAYER_SKILL_BLASTER}; | |
383 const int pMiscSkills[12] = {PLAYER_SKILL_ALCHEMY, PLAYER_SKILL_ARMSMASTER, PLAYER_SKILL_BODYBUILDING, PLAYER_SKILL_ITEM_ID, PLAYER_SKILL_MONSTER_ID, | |
384 PLAYER_SKILL_LEARNING, PLAYER_SKILL_TRAP_DISARM, PLAYER_SKILL_MEDITATION, PLAYER_SKILL_MERCHANT, PLAYER_SKILL_PERCEPTION, | |
385 PLAYER_SKILL_REPAIR, PLAYER_SKILL_STEALING}; | |
386 const int pMagicSkills[9] = {PLAYER_SKILL_FIRE, PLAYER_SKILL_AIR, PLAYER_SKILL_WATER, PLAYER_SKILL_EARTH, PLAYER_SKILL_SPIRIT, | |
387 PLAYER_SKILL_MIND, PLAYER_SKILL_BODY, PLAYER_SKILL_LIGHT, PLAYER_SKILL_DARK}; | |
388 | |
389 //----- (00421626) -------------------------------------------------------- | |
390 GUIWindow *CharacterUI_Initialize(unsigned int _this) | |
391 { | |
392 GUIWindow *pWindow; // edi@3 | |
393 | |
394 ++pIcons_LOD->uTexturePacksCount; | |
395 if ( !pIcons_LOD->uNumPrevLoadedFiles ) | |
396 pIcons_LOD->uNumPrevLoadedFiles = pIcons_LOD->uNumLoadedFiles; | |
397 | |
398 pEventTimer->Pause(); | |
399 pAudioPlayer->StopChannels(-1, -1); | |
400 bRingsShownInCharScreen = false; | |
401 CharacterUI_LoadPaperdollTextures(); | |
402 pCurrentScreen = _this; | |
403 | |
404 pWindow = GUIWindow::Create(0, 0, 640, 480, WINDOW_CharacterRecord, uActiveCharacter, 0); | |
405 pCharacterScreen_StatsBtn = pWindow->CreateButton(pViewport->uViewportTL_X + 12, pViewport->uViewportTL_Y + 308, | |
406 pIcons_LOD->GetTexture(papredoll_dbrds[9])->uTextureWidth, | |
407 pIcons_LOD->GetTexture(papredoll_dbrds[9])->uTextureHeight, | |
408 1, 0, UIMSG_ClickStatsBtn, 0, 'S', pGlobalTXT_LocalizationStrings[216],// Stats | |
409 pIcons_LOD->GetTexture(papredoll_dbrds[10]), | |
410 pIcons_LOD->GetTexture(papredoll_dbrds[9]), 0); | |
411 pCharacterScreen_SkillsBtn = pWindow->CreateButton(pViewport->uViewportTL_X + 102, pViewport->uViewportTL_Y + 308, | |
412 pIcons_LOD->GetTexture(papredoll_dbrds[7])->uTextureWidth, | |
413 pIcons_LOD->GetTexture(papredoll_dbrds[7])->uTextureHeight, | |
414 1, 0, UIMSG_ClickSkillsBtn, 0, 'K', pGlobalTXT_LocalizationStrings[205],//Skills | |
415 pIcons_LOD->GetTexture(papredoll_dbrds[8]), | |
416 pIcons_LOD->GetTexture(papredoll_dbrds[7]), 0); | |
417 pCharacterScreen_InventoryBtn = pWindow->CreateButton(pViewport->uViewportTL_X + 192, pViewport->uViewportTL_Y + 308, | |
418 pIcons_LOD->GetTexture(papredoll_dbrds[5])->uTextureWidth, | |
419 pIcons_LOD->GetTexture(papredoll_dbrds[5])->uTextureHeight, | |
420 1, 0, UIMSG_ClickInventoryBtn, 0, 'I', pGlobalTXT_LocalizationStrings[120], //Inventory | |
421 pIcons_LOD->GetTexture(papredoll_dbrds[6]), | |
422 pIcons_LOD->GetTexture(papredoll_dbrds[5]), 0); | |
423 pCharacterScreen_AwardsBtn = pWindow->CreateButton(pViewport->uViewportTL_X + 282, pViewport->uViewportTL_Y + 308, | |
424 pIcons_LOD->GetTexture(papredoll_dbrds[3])->uTextureWidth, | |
425 pIcons_LOD->GetTexture(papredoll_dbrds[3])->uTextureHeight, | |
426 1, 0, UIMSG_ClickAwardsBtn, 0, 'A', pGlobalTXT_LocalizationStrings[22], //Awards | |
427 pIcons_LOD->GetTexture(papredoll_dbrds[4]), | |
428 pIcons_LOD->GetTexture(papredoll_dbrds[3]), 0); | |
429 pCharacterScreen_ExitBtn = pWindow->CreateButton(pViewport->uViewportTL_X + 371, pViewport->uViewportTL_Y + 308, | |
430 pIcons_LOD->GetTexture(papredoll_dbrds[1])->uTextureWidth, | |
431 pIcons_LOD->GetTexture(papredoll_dbrds[1])->uTextureHeight, | |
432 1, 0, UIMSG_ClickExitCharacterWindowBtn, 0, 0, pGlobalTXT_LocalizationStrings[79],//Exit | |
433 pIcons_LOD->GetTexture(papredoll_dbrds[2]), | |
434 pIcons_LOD->GetTexture(papredoll_dbrds[1]), 0); | |
435 pWindow->CreateButton(0, 0, 0x1DCu, 0x159u, 1, 122, UIMSG_InventoryLeftClick, 0, 0, "", 0); | |
436 pCharacterScreen_DetalizBtn = pWindow->CreateButton(0x258u, 0x12Cu, 30, 30, 1, 0, UIMSG_ChangeDetaliz, 0, 0, pGlobalTXT_LocalizationStrings[64], 0); | |
437 pCharacterScreen_DollBtn = pWindow->CreateButton(0x1DCu, 0, 0xA4u, 0x159u, 1, 0, UIMSG_ClickPaperdoll, 0, 0, "", 0); | |
438 | |
439 pWindow->CreateButton( 61, 424, 31, 0, 2, 94, UIMSG_SelectCharacter, 1, '1', "", 0); | |
440 pWindow->CreateButton(177, 424, 31, 0, 2, 94, UIMSG_SelectCharacter, 2, '2', "", 0); | |
441 pWindow->CreateButton(292, 424, 31, 0, 2, 94, UIMSG_SelectCharacter, 3, '3', "", 0); | |
442 pWindow->CreateButton(407, 424, 31, 0, 2, 94, UIMSG_SelectCharacter, 4, '4', "", 0); | |
443 | |
444 pWindow->CreateButton(0, 0, 0, 0, 1, 0, UIMSG_CycleCharacters, 0, '\t', "", 0); | |
445 FillAwardsData(); | |
446 return pWindow; | |
447 } | |
448 | |
449 //----- (004219BE) -------------------------------------------------------- | |
1455 | 450 GUIWindow *CastSpellInfo::GetCastSpellInInventoryWindow() |
1298 | 451 { |
1455 | 452 GUIWindow *CS_inventory_window; // ebx@1 |
1298 | 453 |
454 pEventTimer->Pause(); | |
455 pAudioPlayer->StopChannels(-1, -1); | |
456 bRingsShownInCharScreen = 0; | |
457 CharacterUI_LoadPaperdollTextures(); | |
458 pCurrentScreen = SCREEN_CASTING; | |
1455 | 459 CS_inventory_window = GUIWindow::Create(0, 0, 640, 480, WINDOW_CastSpell_InInventory, (int)this, 0); |
460 pCharacterScreen_ExitBtn = CS_inventory_window->CreateButton(394, 318, 75, 33, 1, 0, UIMSG_ClickExitCharacterWindowBtn, 0, 0, | |
1298 | 461 pGlobalTXT_LocalizationStrings[79], // Close |
462 pIcons_LOD->GetTexture(papredoll_dbrds[2]), | |
463 pIcons_LOD->GetTexture(papredoll_dbrds[1]), 0); | |
1455 | 464 CS_inventory_window->CreateButton(0, 0, 0x1DCu, 0x159u, 1, 122, UIMSG_InventoryLeftClick, 0, 0, "", 0); |
465 pCharacterScreen_DollBtn = CS_inventory_window->CreateButton(0x1DCu, 0, 0xA4u, 0x159u, 1, 0, UIMSG_ClickPaperdoll, 0, 0, "", 0); | |
1298 | 466 |
1455 | 467 CS_inventory_window->CreateButton( 61, 424, 31, 0, 2, 94, UIMSG_SelectCharacter, 1, '1', "", 0); |
468 CS_inventory_window->CreateButton(177, 424, 31, 0, 2, 94, UIMSG_SelectCharacter, 2, '2', "", 0); | |
469 CS_inventory_window->CreateButton(292, 424, 31, 0, 2, 94, UIMSG_SelectCharacter, 3, '3', "", 0); | |
470 CS_inventory_window->CreateButton(407, 424, 31, 0, 2, 94, UIMSG_SelectCharacter, 4, '4', "", 0); | |
1298 | 471 |
1455 | 472 return CS_inventory_window; |
1298 | 473 } |
474 | |
475 static int CharacterUI_SkillsTab_Draw__DrawSkillTable(Player *player, int x, int y, const int *skill_list, int skill_list_size, int right_margin, const char *skill_group_name) | |
476 { | |
477 int y_offset = y; | |
478 | |
479 sprintf(pTmpBuf.data(), "%s\r%03d%s", skill_group_name, right_margin, pGlobalTXT_LocalizationStrings[131]); //"Level" | |
480 pGUIWindow_CurrentMenu->DrawText(pFontArrus, x, y, ui_character_header_text_color, pTmpBuf.data(), 0, 0, 0); | |
481 | |
482 int num_skills_drawn = 0; | |
1455 | 483 for (int i = 0; i < skill_list_size; ++i) |
1298 | 484 { |
485 auto skill = (PLAYER_SKILL_TYPE)skill_list[i]; | |
486 for (uint j = 0; j < pGUIWindow_CurrentMenu->uNumControls; ++j) | |
487 { | |
488 auto v8 = pGUIWindow_CurrentMenu->pControlsHead; | |
489 | |
490 for (int v7 = j; v7 > 0; --v7) | |
491 v8 = v8->pNext; | |
492 | |
493 auto v9 = v8->field_1C; | |
494 if ((short)(v8->field_1C) >= 0) | |
495 continue; | |
496 if ( (v9 & 0x7FFF) != skill ) | |
497 continue; | |
498 | |
499 ++num_skills_drawn; | |
500 y_offset = v8->uY; | |
501 | |
502 auto skill_value = player->pActiveSkills[skill]; | |
503 auto skill_level = skill_value & 0x3F; | |
504 | |
505 uint skill_color = 0; | |
506 uint skill_mastery_color = 0; | |
507 if (player->uSkillPoints > skill_level) | |
508 skill_color = ui_character_skill_upgradeable_color; | |
509 | |
510 if (pGUIWindow_CurrentMenu->pCurrentPosActiveItem == j) | |
511 { | |
512 if (player->uSkillPoints > skill_level) | |
513 skill_mastery_color = ui_character_bonus_text_color; | |
514 else | |
515 skill_mastery_color = ui_character_skill_default_color; | |
516 skill_color = skill_mastery_color; | |
517 } | |
518 | |
519 if (SkillToMastery(skill_value) == 1) | |
520 { | |
521 sprintfex(pTmpBuf.data(), "%s\r%03d%2d", pSkillNames[skill], right_margin, skill_level); | |
522 pGUIWindow_CurrentMenu->DrawText(pFontLucida, x, v8->uY, skill_color, pTmpBuf.data(), 0, 0, 0); | |
523 } | |
524 else | |
525 { | |
526 const char *skill_level_str = nullptr; | |
527 | |
528 switch (SkillToMastery(skill_value)) | |
529 { | |
530 case 4: skill_level_str = pGlobalTXT_LocalizationStrings[96]; break; // "Grand" | |
531 case 3: skill_level_str = pGlobalTXT_LocalizationStrings[432]; break; // Master | |
532 case 2: skill_level_str = pGlobalTXT_LocalizationStrings[433]; break; // Expert | |
533 } | |
534 | |
535 if (!skill_mastery_color) | |
536 skill_mastery_color = ui_character_header_text_color; | |
537 sprintfex(pTmpBuf.data(), "%s \f%05d%s\f%05d\r%03d%2d", pSkillNames[skill], skill_mastery_color, skill_level_str, skill_color, right_margin, skill_level); | |
538 pGUIWindow_CurrentMenu->DrawText(pFontLucida, x, v8->uY, skill_color, pTmpBuf.data(), 0, 0, 0); | |
539 } | |
540 } | |
541 } | |
542 | |
543 if (!num_skills_drawn) | |
544 { | |
545 y_offset += LOBYTE(pFontLucida->uFontHeight) - 3; | |
546 pGUIWindow_CurrentMenu->DrawText(pFontLucida, x, y_offset, 0, pGlobalTXT_LocalizationStrings[153], 0, 0, 0); //"None" | |
547 } | |
548 | |
549 return y_offset; | |
550 } | |
551 | |
552 //----- (00419719) -------------------------------------------------------- | |
553 void CharacterUI_SkillsTab_Draw(Player *player) | |
554 { | |
555 pRenderer->DrawTextureIndexed(8, 8, pIcons_LOD->LoadTexturePtr("fr_skill", TEXTURE_16BIT_PALETTE)); | |
556 | |
557 sprintfex(pTmpBuf.data(), "%s \f%05d^Pv[%s]\f00000\r177%s: \f%05d%d\f00000", | |
558 pGlobalTXT_LocalizationStrings[206], // Skills for | |
559 ui_character_header_text_color, | |
560 player->pName, | |
561 pGlobalTXT_LocalizationStrings[207], // Skill Points | |
562 player->uSkillPoints ? ui_character_bonus_text_color : ui_character_default_text_color, | |
563 player->uSkillPoints); | |
564 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 24, 18, 0, pTmpBuf.data(), 0, 0, 0); | |
565 | |
566 int y = 2 * LOBYTE(pFontLucida->uFontHeight) + 13; | |
567 y = CharacterUI_SkillsTab_Draw__DrawSkillTable(player, 24, y, pWeaponSkills, 9, 400, pGlobalTXT_LocalizationStrings[242]); // "Weapons" | |
568 | |
569 y += 2 * LOBYTE(pFontLucida->uFontHeight) - 10; | |
570 CharacterUI_SkillsTab_Draw__DrawSkillTable(player, 24, y, pMagicSkills, 9, 400, pGlobalTXT_LocalizationStrings[138]); // "Magic" | |
571 | |
572 y = 2 * LOBYTE(pFontLucida->uFontHeight) + 13; | |
573 y = CharacterUI_SkillsTab_Draw__DrawSkillTable(player, 248, y, pArmorSkills, 5, 177, pGlobalTXT_LocalizationStrings[11]); // "Armor" | |
574 | |
575 y += 2 * LOBYTE(pFontLucida->uFontHeight) - 10; | |
576 y = CharacterUI_SkillsTab_Draw__DrawSkillTable(player, 248, y, pMiscSkills, 12, 177, pGlobalTXT_LocalizationStrings[143]); //"Misc" | |
577 } | |
578 | |
579 //----- (0041A000) -------------------------------------------------------- | |
580 void CharacterUI_AwardsTab_Draw(Player *player) | |
581 { | |
1460
ff2118028c71
renaming _guilds_member_bits to _achieved_awards_bits
Gloval
parents:
1455
diff
changeset
|
582 int items_per_page; // eax@1 |
1455 | 583 char *v6; // ebx@15 |
584 char Source[100]; // [sp+Ch] [bp-C4h]@1 | |
585 GUIWindow awards_window; // [sp+70h] [bp-60h]@1 | |
1298 | 586 |
587 pRenderer->DrawTextureIndexed(8, 8, pIcons_LOD->LoadTexturePtr("fr_award", TEXTURE_16BIT_PALETTE)); | |
588 sprintfex(pTmpBuf.data(), "%s \f%05d", pGlobalTXT_LocalizationStrings[LOCSTR_AVARDS_FOR], ui_character_header_text_color); | |
589 sprintfex(Source, pGlobalTXT_LocalizationStrings[LOCSTR_S_THE_S], player->pName, pClassNames[player->classType]); | |
590 strcat(pTmpBuf.data(), Source); | |
591 strcat(pTmpBuf.data(), "\f00000"); | |
592 | |
593 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 24, 18, 0, pTmpBuf.data(), 0, 0, 0); | |
1460
ff2118028c71
renaming _guilds_member_bits to _achieved_awards_bits
Gloval
parents:
1455
diff
changeset
|
594 items_per_page = books_primary_item_per_page; |
1455 | 595 awards_window.uFrameX = 12; |
596 awards_window.uFrameY = 48; | |
597 awards_window.uFrameWidth = 424; | |
598 awards_window.uFrameHeight = 290; | |
599 awards_window.uFrameZ = 435; | |
600 awards_window.uFrameW = 337; | |
1446 | 601 if (BtnDown_flag && num_achieved_awards + books_primary_item_per_page < full_num_items_in_book) |
1460
ff2118028c71
renaming _guilds_member_bits to _achieved_awards_bits
Gloval
parents:
1455
diff
changeset
|
602 items_per_page = books_primary_item_per_page++ + 1; |
ff2118028c71
renaming _guilds_member_bits to _achieved_awards_bits
Gloval
parents:
1455
diff
changeset
|
603 if (BtnUp_flag && items_per_page) |
1298 | 604 { |
1460
ff2118028c71
renaming _guilds_member_bits to _achieved_awards_bits
Gloval
parents:
1455
diff
changeset
|
605 --items_per_page; |
ff2118028c71
renaming _guilds_member_bits to _achieved_awards_bits
Gloval
parents:
1455
diff
changeset
|
606 books_primary_item_per_page = items_per_page; |
1298 | 607 } |
608 | |
1455 | 609 if ( books_page_number < 0 ) |
610 { | |
1460
ff2118028c71
renaming _guilds_member_bits to _achieved_awards_bits
Gloval
parents:
1455
diff
changeset
|
611 items_per_page += num_achieved_awards; |
ff2118028c71
renaming _guilds_member_bits to _achieved_awards_bits
Gloval
parents:
1455
diff
changeset
|
612 books_primary_item_per_page = items_per_page; |
ff2118028c71
renaming _guilds_member_bits to _achieved_awards_bits
Gloval
parents:
1455
diff
changeset
|
613 if ( (signed int)(num_achieved_awards + items_per_page) > full_num_items_in_book ) |
1298 | 614 { |
1460
ff2118028c71
renaming _guilds_member_bits to _achieved_awards_bits
Gloval
parents:
1455
diff
changeset
|
615 items_per_page = full_num_items_in_book - num_achieved_awards; |
ff2118028c71
renaming _guilds_member_bits to _achieved_awards_bits
Gloval
parents:
1455
diff
changeset
|
616 books_primary_item_per_page = items_per_page; |
1455 | 617 } |
618 } | |
619 else if ( books_page_number > 0 ) | |
620 { | |
1460
ff2118028c71
renaming _guilds_member_bits to _achieved_awards_bits
Gloval
parents:
1455
diff
changeset
|
621 items_per_page -= num_achieved_awards; |
ff2118028c71
renaming _guilds_member_bits to _achieved_awards_bits
Gloval
parents:
1455
diff
changeset
|
622 books_primary_item_per_page = items_per_page; |
ff2118028c71
renaming _guilds_member_bits to _achieved_awards_bits
Gloval
parents:
1455
diff
changeset
|
623 if ( items_per_page < 0 ) |
1455 | 624 { |
1460
ff2118028c71
renaming _guilds_member_bits to _achieved_awards_bits
Gloval
parents:
1455
diff
changeset
|
625 items_per_page = 0; |
ff2118028c71
renaming _guilds_member_bits to _achieved_awards_bits
Gloval
parents:
1455
diff
changeset
|
626 books_primary_item_per_page = items_per_page; |
1455 | 627 } |
628 } | |
629 BtnDown_flag = 0; | |
630 BtnUp_flag = 0; | |
631 num_achieved_awards = 0; | |
632 books_page_number = 0; | |
1298 | 633 |
1460
ff2118028c71
renaming _guilds_member_bits to _achieved_awards_bits
Gloval
parents:
1455
diff
changeset
|
634 for ( int i = items_per_page; i < full_num_items_in_book; ++i) |
1455 | 635 { |
636 v6 = (char *)pAwards[achieved_awards[i]].pText;//(char *)dword_723E80_award_related[v20 / 4]; | |
637 pTmpBuf[0] = 0; | |
638 switch (achieved_awards[i]) | |
639 { | |
640 case Award_Arena_PageWins: sprintf(pTmpBuf.data(), v6, pParty->uNumArenaPageWins); break; | |
641 case Award_Arena_SquireWins: sprintf(pTmpBuf.data(), v6, pParty->uNumArenaSquireWins); break; | |
642 case Award_Arena_KnightWins: sprintf(pTmpBuf.data(), v6, pParty->uNumArenaKnightWins); break; | |
643 case Award_Arena_LordWins: sprintf(pTmpBuf.data(), v6, pParty->uNumArenaLordWins); break; | |
644 case Award_ArcomageWins: sprintf(pTmpBuf.data(), v6, pParty->uNumArcomageWins); break; | |
645 case Award_ArcomageLoses: sprintf(pTmpBuf.data(), v6, pParty->uNumArcomageLoses); break; | |
646 case Award_Deaths: sprintf(pTmpBuf.data(), v6, pParty->uNumDeaths); break; | |
647 case Award_BountiesCollected: sprintf(pTmpBuf.data(), v6, pParty->uNumBountiesCollected); break; | |
648 case Award_Fine: sprintf(pTmpBuf.data(), v6, pParty->uFine); break; | |
649 case Award_PrisonTerms: sprintf(pTmpBuf.data(), v6, pParty->uNumPrisonTerms); break; | |
650 } | |
1298 | 651 |
1455 | 652 if (*pTmpBuf.data()) |
653 v6 = pTmpBuf.data(); | |
1298 | 654 |
1455 | 655 awards_window.DrawText(pFontArrus, 0, 0, ui_character_award_color[pAwards[achieved_awards[i]].uPriority % 6], v6, 0, 0, 0); |
656 awards_window.uFrameY = pFontArrus->CalcTextHeight(v6, &awards_window, 0, 0) + awards_window.uFrameY + 8; | |
657 if (awards_window.uFrameY > awards_window.uFrameHeight) | |
658 break; | |
1298 | 659 |
1455 | 660 ++num_achieved_awards; |
661 } | |
662 } | |
1298 | 663 |
664 //----- (0041A2C1) -------------------------------------------------------- | |
665 unsigned int __fastcall GetSizeInInventorySlots(unsigned int uNumPixels) | |
666 { | |
667 if ( (signed int)uNumPixels < 14 ) | |
668 uNumPixels = 14; | |
669 return ((signed int)(uNumPixels - 14) >> 5) + 1; | |
670 } | |
671 | |
672 //----- (0041A556) -------------------------------------------------------- | |
673 void draw_leather() | |
674 { | |
675 pRenderer->DrawTextureIndexed(8, 8, pIcons_LOD->GetTexture(uTextureID_Leather)); | |
676 } | |
677 | |
678 //----- (0041ABFD) -------------------------------------------------------- | |
679 void CharacterUI_CharacterScreen_Draw(Player *player) | |
680 { | |
681 pRenderer->ClearZBuffer(0, 479); | |
682 switch (pWindowList_at_506F50_minus1_indexing_buttons____and_an_int_[0]) | |
683 { | |
684 case WINDOW_CharacterWindow_Stats: // stats | |
685 CharacterUI_ReleaseButtons(); | |
1458 | 686 ReleaseAwardsScrollBar(); |
1298 | 687 CharacterUI_StatsTab_Draw(player); |
688 pRenderer->DrawTextureIndexed(pCharacterScreen_StatsBtn->uX, | |
689 pCharacterScreen_StatsBtn->uY, | |
690 pIcons_LOD->LoadTexturePtr("ib-cd1-d", TEXTURE_16BIT_PALETTE)); | |
691 break; | |
692 | |
693 case WINDOW_CharacterWindow_Skills: // skills | |
694 if (dword_507CC0_activ_ch != uActiveCharacter) | |
695 { | |
696 CharacterUI_ReleaseButtons(); | |
697 CharacterUI_SkillsTab_CreateButtons(); | |
698 } | |
1458 | 699 ReleaseAwardsScrollBar(); |
1298 | 700 CharacterUI_SkillsTab_Draw(player); |
701 pRenderer->DrawTextureIndexed(pCharacterScreen_SkillsBtn->uX, | |
702 pCharacterScreen_SkillsBtn->uY, | |
703 pIcons_LOD->LoadTexturePtr("ib-cd2-d", TEXTURE_16BIT_PALETTE)); | |
704 break; | |
705 | |
706 case WINDOW_CharacterWindow_Awards: // awards | |
707 CharacterUI_ReleaseButtons(); | |
1458 | 708 ReleaseAwardsScrollBar(); |
1455 | 709 CreateAwardsScrollBar(); |
1298 | 710 CharacterUI_AwardsTab_Draw(player); |
711 pRenderer->DrawTextureIndexed(pCharacterScreen_AwardsBtn->uX, | |
712 pCharacterScreen_AwardsBtn->uY, | |
713 pIcons_LOD->LoadTexturePtr("ib-cd4-d", TEXTURE_16BIT_PALETTE)); | |
714 break; | |
715 | |
716 case WINDOW_CharacterWindow_Inventory: // inventory and other | |
717 CharacterUI_ReleaseButtons(); | |
1458 | 718 ReleaseAwardsScrollBar(); |
1298 | 719 CharacterUI_InventoryTab_Draw(player, false); |
720 pRenderer->DrawTextureIndexed(pCharacterScreen_InventoryBtn->uX, | |
721 pCharacterScreen_InventoryBtn->uY, | |
722 pIcons_LOD->LoadTexturePtr("ib-cd3-d", TEXTURE_16BIT_PALETTE)); | |
723 break; | |
724 | |
725 default: break; | |
726 } | |
727 | |
728 if (bRingsShownInCharScreen) | |
729 CharacterUI_DrawPaperdollWithRingOverlay(player); | |
730 else | |
731 CharacterUI_DrawPaperdoll(player); | |
732 } | |
733 | |
734 //----- (0043CC7C) -------------------------------------------------------- | |
735 void CharacterUI_DrawPaperdoll(Player *player) | |
736 { | |
1455 | 737 ItemGen *item; // edi@38 |
738 int item_X; // ebx@38 | |
739 int index; // eax@65 | |
1298 | 740 int v59; // ebx@129 |
741 unsigned int v75; // ebx@170 | |
742 int pArmorShoulderNum; // eax@197 | |
743 int v94; // ebx@214 | |
1455 | 744 unsigned int v127; // ebx@314 |
745 unsigned int v153; // eax@370 | |
746 char *v166; // [sp-8h] [bp-54h]@16 | |
747 const char *container; // [sp-8h] [bp-54h]@79 | |
748 char *v181; // [sp-8h] [bp-54h]@337 | |
749 int item_Y; // [sp+10h] [bp-3Ch]@38 | |
750 int pBodyComplection; // [sp+24h] [bp-28h]@6 | |
751 signed int v245; // [sp+34h] [bp-18h]@361 | |
752 signed int IsDwarf; // [sp+40h] [bp-Ch]@4 | |
1298 | 753 |
754 pIcons_LOD->LoadTexture("sptext01", TEXTURE_16BIT_PALETTE); | |
755 if (player->GetRace() == CHARACTER_RACE_DWARF) | |
756 { | |
757 IsDwarf = 1; | |
758 pBodyComplection = player->GetSexByVoice() == SEX_MALE ? 2 : 3; | |
759 } | |
760 else | |
761 { | |
762 IsDwarf = 0; | |
763 pBodyComplection = player->GetSexByVoice() == SEX_MALE ? 0 : 1; | |
764 } | |
765 | |
766 int uPlayerID = 0; | |
767 for (uint i = 0; i < 4; ++i) | |
768 if (pPlayers[i + 1] == player) | |
769 { | |
770 uPlayerID = i + 1; | |
771 break; | |
772 } | |
773 | |
774 pRenderer->ResetTextureClipRect(); | |
775 pRenderer->DrawTextureIndexed(467, 0, pIcons_LOD->GetTexture(uTextureID_BACKDOLL));// | |
776 if ( IsPlayerWearingWatersuit[uPlayerID] )// | |
777 { | |
778 pRenderer->DrawTextureTransparent(pPaperdoll_BodyX, pPaperdoll_BodyY, pIcons_LOD->GetTexture(papredoll_dbods[uPlayerID - 1])); | |
779 if ( !bRingsShownInCharScreen ) | |
780 pRenderer->DrawMaskToZBuffer(pPaperdoll_BodyX, pPaperdoll_BodyY, pIcons_LOD->GetTexture(papredoll_dbods[uPlayerID - 1]), player->pEquipment.uArmor); | |
1455 | 781 // ... |
782 if ( !player->pEquipment.uMainHand | |
783 || ( pItemsTable->pItems[pPlayers[uPlayerID]->pInventoryItemList[player->pEquipment.uMainHand - 1].uItemID].uEquipType != EQUIP_MAIN_HAND) | |
784 && (pItemsTable->pItems[pPlayers[uPlayerID]->pInventoryItemList[player->pEquipment.uMainHand - 1].uItemID].uSkillType != PLAYER_SKILL_SPEAR | |
785 || pPlayers[uPlayerID]->pEquipment.uShield) ) | |
786 pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_LeftHand[pBodyComplection][0], pPaperdoll_BodyY + pPaperdoll_LeftHand[pBodyComplection][1], | |
787 pIcons_LOD->GetTexture(papredoll_dlads[uPlayerID - 1])); | |
788 //-----------------------------------------------------(Hand/)--------------------------------------------------------------- | |
789 if ( pPlayers[uPlayerID]->pEquipment.uMainHand ) | |
1298 | 790 { |
1455 | 791 item = &pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uMainHand - 1]; |
792 item_X = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][1][0] - pItemsTable->pItems[item->uItemID].uEquipX; | |
793 item_Y = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][1][1] - pItemsTable->pItems[item->uItemID].uEquipY; | |
794 if ( item->uItemID == 64 ) //blaster | |
1298 | 795 v166 = "item64v1"; |
796 else | |
1455 | 797 v166 = pItemsTable->pItems[item->uItemID].pIconName; |
798 if ( !( item->uAttributes & 0xF0 ) ) | |
1298 | 799 { |
1455 | 800 if ( item->uAttributes & 2 ) |
801 pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v166, TEXTURE_16BIT_PALETTE))); | |
1298 | 802 else |
803 { | |
1455 | 804 if ( item->uAttributes & 1 ) |
805 pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v166, TEXTURE_16BIT_PALETTE))); | |
1298 | 806 else |
1455 | 807 pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v166, TEXTURE_16BIT_PALETTE))); |
1298 | 808 } |
809 } | |
1455 | 810 if ( item->uAttributes & 0xF0 ) |
1298 | 811 { |
1455 | 812 if ( ( item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) |
813 container = "sptext01"; | |
814 if ( ( item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) | |
815 container = "sp28a"; | |
816 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) | |
817 container = "sp30a"; | |
818 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) | |
819 container = "sp91a"; | |
1298 | 820 _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; |
821 if ( _50C9A8_item_enchantment_timer <= 0 ) | |
822 { | |
823 _50C9A8_item_enchantment_timer = 0; | |
1455 | 824 item->uAttributes &= 0xFFFFFF0Fu; |
1298 | 825 ptr_50C9A4 = 0; |
826 } | |
1455 | 827 pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v166, TEXTURE_16BIT_PALETTE)), |
828 pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); | |
1298 | 829 } |
830 if ( !bRingsShownInCharScreen ) | |
1455 | 831 pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v166, TEXTURE_16BIT_PALETTE)), pPlayers[uPlayerID]->pEquipment.uMainHand); |
1298 | 832 } |
833 } | |
834 else// | |
835 { | |
1455 | 836 //----------------(Bow/ )------------------------------------------------- |
837 if ( pPlayers[uPlayerID]->pEquipment.uBow ) | |
1298 | 838 { |
1455 | 839 item = &pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uBow - 1]; |
840 item_X = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][2][0] - pItemsTable->pItems[item->uItemID].uEquipX; | |
841 item_Y = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][2][1] - pItemsTable->pItems[item->uItemID].uEquipY; | |
842 if ( !(item->uAttributes & 0xF0) )// | |
1298 | 843 { |
1455 | 844 if ( item->uAttributes & 2 ) |
845 pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(pItemsTable->pItems[item->uItemID].pIconName, TEXTURE_16BIT_PALETTE))); | |
1298 | 846 else |
847 { | |
1455 | 848 if ( !(item->uAttributes & 1) )// |
849 pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(pItemsTable->pItems[item->uItemID].pIconName, TEXTURE_16BIT_PALETTE))); | |
1298 | 850 else // |
1455 | 851 pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(pItemsTable->pItems[item->uItemID].pIconName, TEXTURE_16BIT_PALETTE))); |
1298 | 852 } |
853 } | |
854 else | |
855 { | |
1455 | 856 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) |
857 container = "sptext01"; | |
858 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) | |
859 container = "sp28a"; | |
860 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) | |
861 container = "sp30a"; | |
862 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) | |
863 container = "sp91a"; | |
1298 | 864 _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; |
865 if ( _50C9A8_item_enchantment_timer <= 0 ) | |
866 { | |
867 _50C9A8_item_enchantment_timer = 0; | |
1455 | 868 item->uAttributes &= 0xFFFFFF0Fu; |
1298 | 869 ptr_50C9A4 = 0; |
870 } | |
1455 | 871 pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(pItemsTable->pItems[item->uItemID].pIconName, TEXTURE_16BIT_PALETTE)), |
872 pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), | |
873 GetTickCount() * 0.1, 0, 255); | |
1298 | 874 } |
875 if ( !bRingsShownInCharScreen ) | |
1455 | 876 pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(pItemsTable->pItems[item->uItemID].pIconName, TEXTURE_16BIT_PALETTE)), |
877 pPlayers[uPlayerID]->pEquipment.uBow); | |
1298 | 878 } |
1455 | 879 //-----------------------------(Cloak/)--------------------------------------------------------- |
880 if ( pPlayers[uPlayerID]->pEquipment.uCloak ) | |
1298 | 881 { |
1455 | 882 item = &pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uCloak - 1]; |
883 switch ( item->uItemID ) | |
1298 | 884 { |
885 case ITEM_RELIC_TWILIGHT: | |
1455 | 886 index = 5; |
1298 | 887 break; |
888 case ITEM_ARTIFACT_CLOAK_OF_THE_SHEEP: | |
1455 | 889 index = 6; |
1298 | 890 break; |
891 case ITEM_RARE_SUN_CLOAK: | |
1455 | 892 index = 7; |
1298 | 893 break; |
894 case ITEM_RARE_MOON_CLOAK: | |
1455 | 895 index = 8; |
1298 | 896 break; |
897 case ITEM_RARE_VAMPIRES_CAPE: | |
1455 | 898 index = 9; |
1298 | 899 break; |
900 default: | |
1455 | 901 index = item->uItemID - 105; |
1298 | 902 break; |
903 } | |
1455 | 904 if ( index >= 0 && index < 10 ) |
1298 | 905 { |
1455 | 906 item_X = pPaperdoll_BodyX + paperdoll_Cloak[pBodyComplection][index][0]; |
907 item_Y = pPaperdoll_BodyY + paperdoll_Cloak[pBodyComplection][index][1]; | |
908 if ( !(item->uAttributes & 0xF0) ) | |
1298 | 909 { |
1455 | 910 if ( item->uAttributes & 2 ) |
911 pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_texture[pBodyComplection][index])); | |
1298 | 912 else |
1455 | 913 pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_texture[pBodyComplection][index])); |
1298 | 914 } |
915 else | |
916 { | |
1455 | 917 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) |
918 container = "sptext01"; | |
919 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) | |
920 container = "sp28a"; | |
921 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) | |
922 container = "sp30a"; | |
923 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) | |
924 container = "sp91a"; | |
1298 | 925 _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; |
926 if ( _50C9A8_item_enchantment_timer <= 0 ) | |
927 { | |
928 _50C9A8_item_enchantment_timer = 0; | |
1455 | 929 item->uAttributes &= 0xFFFFFF0Fu; |
1298 | 930 ptr_50C9A4 = 0; |
931 } | |
1455 | 932 pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_texture[pBodyComplection][index]), |
933 pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); | |
1298 | 934 } |
935 if ( !bRingsShownInCharScreen ) | |
1455 | 936 pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_texture[pBodyComplection][index]), |
937 pPlayers[uPlayerID]->pEquipment.uCloak); | |
1298 | 938 } |
939 } | |
1455 | 940 //-------------------------------(Paperdoll/)------------------------------------------- |
941 pRenderer->DrawTextureTransparent(pPaperdoll_BodyX, pPaperdoll_BodyY, pIcons_LOD->GetTexture(papredoll_dbods[uPlayerID - 1])); | |
942 //-------------------------------(Armor/)----------------------------------------------- | |
943 if ( pPlayers[uPlayerID]->pEquipment.uArmor ) | |
1298 | 944 { |
1455 | 945 item = &pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uArmor - 1]; |
946 switch ( item->uItemID ) | |
1298 | 947 { |
1455 | 948 case ITEM_ARTICACT_GOVERNONS_ARMOR: |
949 index = 15; | |
1298 | 950 break; |
951 case ITEM_ARTIFACT_YORUBA: | |
1455 | 952 index = 14; |
1298 | 953 break; |
954 case ITEM_RELIC_HARECS_LEATHER: | |
1455 | 955 index = 13; |
1298 | 956 break; |
957 case ITEM_ELVEN_CHAINMAIL: | |
1455 | 958 index = 16; |
1298 | 959 break; |
960 default: | |
1455 | 961 index = item->uItemID - 66; |
1298 | 962 break; |
963 } | |
1455 | 964 if ( index >= 0 && index < 17 ) |
1298 | 965 { |
1466 | 966 item_X = pPaperdoll_BodyX + paperdoll_Armor_Coord[pBodyComplection][index][0]; |
967 item_Y = pPaperdoll_BodyY + paperdoll_Armor_Coord[pBodyComplection][index][1]; | |
1455 | 968 if ( !(item->uAttributes & 0xF0) ) |
1298 | 969 { |
1455 | 970 if ( item->uAttributes & 2 ) |
971 pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][0])); | |
1298 | 972 else |
973 { | |
1455 | 974 if ( !(item->uAttributes & 1) ) |
975 pRenderer->DrawTransparentGreenShade(item_X, item_Y, &pIcons_LOD->pTextures[paperdoll_armor_texture[pBodyComplection][index][0]]); | |
1298 | 976 else |
1455 | 977 pRenderer->DrawTextureTransparent(item_X, item_Y, &pIcons_LOD->pTextures[paperdoll_armor_texture[pBodyComplection][index][0]]); |
1298 | 978 } |
979 } | |
980 else | |
981 { | |
1455 | 982 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) |
983 container = "sptext01"; | |
984 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) | |
985 container = "sp28a"; | |
986 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) | |
987 container = "sp30a"; | |
988 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) | |
989 container = "sp91a"; | |
1298 | 990 _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; |
991 if ( _50C9A8_item_enchantment_timer <= 0 ) | |
992 { | |
993 _50C9A8_item_enchantment_timer = 0; | |
1455 | 994 item->uAttributes &= 0xFFFFFF0Fu; |
1298 | 995 ptr_50C9A4 = 0; |
996 } | |
1455 | 997 pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][0]), |
998 pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); | |
1298 | 999 } |
1455 | 1000 |
1298 | 1001 if ( !bRingsShownInCharScreen ) |
1455 | 1002 pRenderer->DrawMaskToZBuffer(item_X, item_Y, &pIcons_LOD->pTextures[paperdoll_armor_texture[pBodyComplection][index][0]], |
1003 pPlayers[uPlayerID]->pEquipment.uArmor); | |
1298 | 1004 } |
1005 } | |
1455 | 1006 //----------------------------------(End of Armor/ )------------------------------------------ |
1007 //----------------------------------(Boot/)-------------------------------------------------------- | |
1008 if ( pPlayers[uPlayerID]->pEquipment.uBoot ) | |
1298 | 1009 { |
1455 | 1010 item = &pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uBoot - 1]; |
1011 switch ( item->uItemID ) | |
1298 | 1012 { |
1455 | 1013 case ITEM_ARTIFACT_HERMES_SANDALS: |
1014 index = 5; | |
1298 | 1015 v59 = papredoll_flying_feet[pPlayers[uPlayerID]->uCurrentFace]; |
1016 break; | |
1455 | 1017 case ITEM_ARTIFACT_LEAGUE_BOOTS: |
1018 index = 6; | |
1298 | 1019 v59 = paperdoll_boots_texture[pBodyComplection][5]; |
1020 break; | |
1021 default: | |
1455 | 1022 index = item->uItemID - 115; |
1023 v59 = paperdoll_boots_texture[pBodyComplection][index]; | |
1298 | 1024 break; |
1025 } | |
1455 | 1026 if ( index >= 0 && index < 7 ) |
1298 | 1027 { |
1455 | 1028 item_X = pPaperdoll_BodyX + paperdoll_Boot[pBodyComplection][index][0]; |
1029 item_Y = pPaperdoll_BodyY + paperdoll_Boot[pBodyComplection][index][1]; | |
1030 if ( !(item->uAttributes & 0xF0) ) | |
1298 | 1031 { |
1455 | 1032 if ( item->uAttributes & 2 ) |
1033 pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(v59)); | |
1298 | 1034 else |
1035 { | |
1455 | 1036 if ( item->uAttributes & 1 ) |
1037 pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(v59)); | |
1298 | 1038 else |
1455 | 1039 pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v59)); |
1298 | 1040 } |
1041 } | |
1042 else | |
1043 { | |
1455 | 1044 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) |
1045 container = "sptext01"; | |
1046 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) | |
1047 container = "sp28a"; | |
1048 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) | |
1049 container = "sp30a"; | |
1050 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) | |
1051 container = "sp91a"; | |
1298 | 1052 _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; |
1053 if ( _50C9A8_item_enchantment_timer <= 0 ) | |
1054 { | |
1055 _50C9A8_item_enchantment_timer = 0; | |
1455 | 1056 item->uAttributes &= 0xFFFFFF0Fu; |
1298 | 1057 ptr_50C9A4 = 0; |
1058 } | |
1455 | 1059 pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(v59), pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), |
1060 GetTickCount() * 0.1, 0, 255); | |
1298 | 1061 } |
1062 if ( !bRingsShownInCharScreen ) | |
1455 | 1063 pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(v59), pPlayers[uPlayerID]->pEquipment.uBoot); |
1298 | 1064 } |
1065 } | |
1455 | 1066 //--------------------------------------------(Hand/)------------------------------------------------------ |
1067 if ( !pPlayers[uPlayerID]->pEquipment.uMainHand | |
1068 || ( pItemsTable->pItems[pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uMainHand -1].uItemID].uEquipType != EQUIP_MAIN_HAND) | |
1069 && (pItemsTable->pItems[pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uMainHand -1].uItemID].uSkillType != PLAYER_SKILL_SPEAR | |
1070 || pPlayers[uPlayerID]->pEquipment.uShield) ) | |
1071 pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_LeftHand[pBodyComplection][0], | |
1072 pPaperdoll_BodyY + pPaperdoll_LeftHand[pBodyComplection][1], pIcons_LOD->GetTexture(papredoll_dlads[uPlayerID - 1])); | |
1073 //--------------------------------------------(Belt/)------------------------------------------------------- | |
1074 if ( pPlayers[uPlayerID]->pEquipment.uBelt ) | |
1075 { | |
1076 item = &pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uBelt - 1]; | |
1077 switch ( item->uItemID ) | |
1298 | 1078 { |
1079 case ITEM_RILIC_TITANS_BELT: | |
1455 | 1080 index = 5; |
1298 | 1081 break; |
1082 case ITEM_ARTIFACT_HEROS_BELT: | |
1455 | 1083 index = 6; |
1298 | 1084 break; |
1085 default: | |
1455 | 1086 index = item->uItemID - 100; |
1298 | 1087 break; |
1088 } | |
1455 | 1089 if ( index >= 0 && index < 7 ) |
1298 | 1090 { |
1455 | 1091 item_X = pPaperdoll_BodyX + paperdoll_Belt[pBodyComplection][index][0]; |
1092 item_Y = pPaperdoll_BodyY + paperdoll_Belt[pBodyComplection][index][1]; | |
1093 if ( IsDwarf != 1 || index == 5 ) | |
1094 v75 = paperdoll_belt_texture[pBodyComplection][index]; | |
1298 | 1095 else |
1455 | 1096 v75 = paperdoll_belt_texture[pBodyComplection - 2][index]; |
1097 if ( !(item->uAttributes & 0xF0) ) | |
1298 | 1098 { |
1455 | 1099 if ( item->uAttributes & 2 ) |
1100 pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(v75)); | |
1298 | 1101 else |
1102 { | |
1455 | 1103 if ( item->uAttributes & 1 ) |
1104 pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(v75)); | |
1298 | 1105 else |
1455 | 1106 pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v75)); |
1298 | 1107 } |
1108 if ( !bRingsShownInCharScreen ) | |
1455 | 1109 pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(v75), pPlayers[uPlayerID]->pEquipment.uBelt); |
1298 | 1110 } |
1111 else | |
1112 { | |
1455 | 1113 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) |
1114 container = "sptext01"; | |
1115 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) | |
1116 container = "sp28a"; | |
1117 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) | |
1118 container = "sp30a"; | |
1119 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) | |
1120 container = "sp91a"; | |
1298 | 1121 _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; |
1122 if ( _50C9A8_item_enchantment_timer <= 0 ) | |
1123 { | |
1124 _50C9A8_item_enchantment_timer = 0; | |
1455 | 1125 item->uAttributes &= 0xFFFFFF0Fu; |
1298 | 1126 ptr_50C9A4 = 0; |
1127 } | |
1455 | 1128 pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(v75), pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), |
1129 GetTickCount() * 0.1, 0, 255); | |
1298 | 1130 } |
1131 } | |
1132 } | |
1455 | 1133 //---------------------------------------------(Hand2/2)-------------------------------------------------- |
1134 if ( pPlayers[uPlayerID]->pEquipment.uMainHand ) | |
1298 | 1135 { |
1455 | 1136 if ( pItemsTable->pItems[pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uMainHand - 1].uItemID].uEquipType == EQUIP_MAIN_HAND |
1137 || pItemsTable->pItems[pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uMainHand - 1].uItemID].uSkillType == PLAYER_SKILL_SPEAR | |
1138 && !pPlayers[uPlayerID]->pEquipment.uShield ) | |
1298 | 1139 pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_SecondLeftHand[pBodyComplection][0], |
1455 | 1140 pPaperdoll_BodyY + pPaperdoll_SecondLeftHand[pBodyComplection][1], pIcons_LOD->GetTexture(papredoll_dlaus[uPlayerID - 1])); |
1298 | 1141 } |
1466 | 1142 //--------------------------------(Shoulder/)--------------------------------------------- |
1143 item = &pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uArmor - 1]; | |
1144 switch ( item->uItemID ) | |
1145 { | |
1146 case ITEM_ARTICACT_GOVERNONS_ARMOR: | |
1147 index = 15; | |
1148 break; | |
1149 case ITEM_ARTIFACT_YORUBA: | |
1150 index = 14; | |
1151 break; | |
1152 case ITEM_RELIC_HARECS_LEATHER: | |
1153 index = 13; | |
1154 break; | |
1155 case ITEM_ELVEN_CHAINMAIL: | |
1156 index = 16; | |
1157 break; | |
1158 default: | |
1159 index = item->uItemID - 66; | |
1160 break; | |
1161 } | |
1162 if ( index >= 0 && index < 17 ) | |
1163 { | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1164 if ( pPlayers[uPlayerID]->pEquipment.uMainHand |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1165 && (pPlayers[uPlayerID]->GetEquippedItemEquipType(EQUIP_MAIN_HAND) == EQUIP_MAIN_HAND |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1166 || pPlayers[uPlayerID]->GetEquippedItemSkillType(EQUIP_MAIN_HAND) == EQUIP_SHIELD |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1167 && !pPlayers[uPlayerID]->pEquipment.uShield) )// |
1466 | 1168 { |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1169 v94 = paperdoll_armor_texture[pBodyComplection][index][2]; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1170 if ( paperdoll_armor_texture[pBodyComplection][index][2] == pIcons_LOD->FindTextureByName("pending") ) |
1466 | 1171 { |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1172 v94 = paperdoll_armor_texture[pBodyComplection][index][1]; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1173 item_X = pPaperdoll_BodyX + paperdoll_shoulder_coord[pBodyComplection][index][0]; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1174 item_Y = pPaperdoll_BodyY + paperdoll_shoulder_coord[pBodyComplection][index][1]; |
1466 | 1175 } |
1176 else | |
1177 { | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1178 item_X = pPaperdoll_BodyX + paperdoll_shoulder_second_coord[pBodyComplection][index][0]; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1179 item_Y = pPaperdoll_BodyY + paperdoll_shoulder_second_coord[pBodyComplection][index][1]; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1180 } |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1181 if ( v94 != pIcons_LOD->FindTextureByName("pending") ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1182 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1183 if ( !(item->uAttributes & 0xF0) ) |
1466 | 1184 { |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1185 if ( item->uAttributes & 2 ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1186 pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(v94)); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1187 else |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1188 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1189 if ( item->uAttributes & 1 ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1190 pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(v94)); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1191 else |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1192 pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v94)); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1193 } |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1194 } |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1195 else |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1196 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1197 if ( paperdoll_armor_texture[pBodyComplection][index][2] != pIcons_LOD->FindTextureByName("pending") ) |
1466 | 1198 { |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1199 if ( item->uAttributes & 0xF0 ) |
1466 | 1200 { |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1201 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1202 container = "sptext01"; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1203 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1204 container = "sp28a"; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1205 if ( ( item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1206 container = "sp30a"; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1207 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1208 container = "sp91a"; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1209 _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1210 if ( _50C9A8_item_enchantment_timer <= 0 ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1211 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1212 _50C9A8_item_enchantment_timer = 0; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1213 item->uAttributes &= 0xFFFFFF0Fu; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1214 ptr_50C9A4 = 0; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1215 } |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1216 pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(v94), pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1217 GetTickCount() * 0.1, 0, 255); |
1466 | 1218 } |
1219 } | |
1220 } | |
1221 } | |
1222 } | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1223 else// |
1466 | 1224 { |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1225 //v94 = paperdoll_armor_texture[pBodyComplection][index][1]; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1226 if ( paperdoll_armor_texture[pBodyComplection][index][1] != pIcons_LOD->FindTextureByName("pending") ) |
1466 | 1227 { |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1228 item_X = pPaperdoll_BodyX + paperdoll_shoulder_coord[pBodyComplection][index][0]; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1229 item_Y = pPaperdoll_BodyY + paperdoll_shoulder_coord[pBodyComplection][index][1]; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1230 if ( !(item->uAttributes & 0xF0) ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1231 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1232 if ( item->uAttributes & 2 ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1233 pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][1])); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1234 else |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1235 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1236 if ( item->uAttributes & 1 ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1237 pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][1])); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1238 else |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1239 pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][1])); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1240 } |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1241 } |
1466 | 1242 else |
1243 { | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1244 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1245 container = "sptext01"; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1246 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1247 container = "sp28a"; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1248 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1249 container = "sp30a"; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1250 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1251 container = "sp91a"; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1252 _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1253 if ( _50C9A8_item_enchantment_timer <= 0 ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1254 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1255 _50C9A8_item_enchantment_timer = 0; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1256 item->uAttributes &= 0xFFFFFF0Fu; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1257 ptr_50C9A4 = 0; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1258 } |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1259 pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][1]), |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1260 pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); |
1466 | 1261 } |
1262 } | |
1263 } | |
1264 } | |
1455 | 1265 //----------------------------------------------(Cloak collar/ )------------------------------------- |
1266 if ( pPlayers[uPlayerID]->pEquipment.uCloak ) | |
1298 | 1267 { |
1455 | 1268 item = &pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uCloak - 1]; |
1269 switch ( item->uItemID ) | |
1298 | 1270 { |
1455 | 1271 case ITEM_RELIC_TWILIGHT: |
1272 index = 5; | |
1298 | 1273 break; |
1455 | 1274 case ITEM_ARTIFACT_CLOAK_OF_THE_SHEEP: |
1275 index = 6; | |
1298 | 1276 break; |
1455 | 1277 case ITEM_RARE_SUN_CLOAK: |
1278 index = 7; | |
1298 | 1279 break; |
1455 | 1280 case ITEM_RARE_MOON_CLOAK: |
1281 index = 8; | |
1298 | 1282 break; |
1455 | 1283 case ITEM_RARE_VAMPIRES_CAPE: |
1284 index = 9; | |
1298 | 1285 break; |
1286 default: | |
1455 | 1287 index = item->uItemID - 105; |
1298 | 1288 } |
1455 | 1289 if ( index >= 0 && index < 10 ) |
1298 | 1290 { |
1455 | 1291 item_X = pPaperdoll_BodyX + paperdoll_CloakCollar[pBodyComplection][index][0]; |
1292 item_Y = pPaperdoll_BodyY + paperdoll_CloakCollar[pBodyComplection][index][1]; | |
1293 if ( paperdoll_cloak_collar_texture[pBodyComplection][index] != pIcons_LOD->FindTextureByName("pending") ) | |
1298 | 1294 { |
1455 | 1295 if ( !(item->uAttributes & 0xF0) ) |
1298 | 1296 { |
1455 | 1297 if ( item->uAttributes & 2 ) |
1298 pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_collar_texture[pBodyComplection][index])); | |
1298 | 1299 else |
1455 | 1300 pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_collar_texture[pBodyComplection][index])); |
1298 | 1301 if ( !bRingsShownInCharScreen ) |
1455 | 1302 pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_collar_texture[pBodyComplection][index]), |
1303 pPlayers[uPlayerID]->pEquipment.uCloak); | |
1298 | 1304 } |
1305 else | |
1306 { | |
1455 | 1307 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) |
1308 container = "sptext01"; | |
1309 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) | |
1310 container = "sp28a"; | |
1311 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) | |
1312 container = "sp30a"; | |
1313 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) | |
1314 container = "sp91a"; | |
1298 | 1315 _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; |
1316 if ( _50C9A8_item_enchantment_timer <= 0 ) | |
1317 { | |
1318 _50C9A8_item_enchantment_timer = 0; | |
1455 | 1319 item->uAttributes &= 0xFFFFFF0Fu; |
1298 | 1320 ptr_50C9A4 = 0; |
1321 } | |
1455 | 1322 pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_collar_texture[pBodyComplection][index]), |
1323 pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); | |
1298 | 1324 } |
1325 } | |
1326 } | |
1327 } | |
1455 | 1328 //--------------------------------------------(Beards/)------------------------------------------------------- |
1298 | 1329 if ( pPlayers[uPlayerID]->uCurrentFace == 12 || pPlayers[uPlayerID]->uCurrentFace == 13 ) |
1330 { | |
1455 | 1331 if ( papredoll_dbrds[pPlayers[uPlayerID]->uCurrentFace] != pIcons_LOD->FindTextureByName("Pending") ) |
1298 | 1332 pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_Beards[2 * pPlayers[uPlayerID]->uCurrentFace - 24], |
1333 pPaperdoll_BodyY + pPaperdoll_Beards[2 * pPlayers[uPlayerID]->uCurrentFace - 23], | |
1455 | 1334 pIcons_LOD->GetTexture(papredoll_dbrds[pPlayers[uPlayerID]->uCurrentFace])); |
1298 | 1335 } |
1455 | 1336 //--------------------------------------------(Helm/)------------------------------------------------------------ |
1337 if ( pPlayers[uPlayerID]->pEquipment.uHelm ) | |
1298 | 1338 { |
1455 | 1339 item = &pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uHelm - 1]; |
1340 switch ( item->uItemID ) | |
1298 | 1341 { |
1455 | 1342 case ITEM_RELIC_TALEDONS_HELM: |
1343 index = 11; | |
1298 | 1344 break; |
1455 | 1345 case ITEM_RELIC_SCHOLARS_CAP: |
1346 index = 12; | |
1298 | 1347 break; |
1455 | 1348 case ITEM_RELIC_PHYNAXIAN_CROWN: |
1349 index = 13; | |
1298 | 1350 break; |
1455 | 1351 case ITEM_ARTIFACT_MINDS_EYE: |
1352 index = 14; | |
1298 | 1353 break; |
1455 | 1354 case ITEM_RARE_SHADOWS_MASK: |
1355 index = 15; | |
1298 | 1356 break; |
1357 default: | |
1455 | 1358 index = item->uItemID - 89; |
1298 | 1359 } |
1455 | 1360 if ( index >= 0 && index < 16 ) |
1298 | 1361 { |
1455 | 1362 item_X = pPaperdoll_BodyX + paperdoll_Helm[pBodyComplection][index][0]; |
1363 item_Y = pPaperdoll_BodyY + paperdoll_Helm[pBodyComplection][index][1]; | |
1364 if ( IsDwarf != 1 || item->uItemID != 92 ) | |
1365 v127 = paperdoll_helm_texture[player->GetSexByVoice()][index]; | |
1298 | 1366 else |
1367 v127 = papredoll_dbrds[11]; | |
1455 | 1368 if ( item->uAttributes & 0xF0 ) |
1298 | 1369 { |
1455 | 1370 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) |
1371 container = "sptext01"; | |
1372 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) | |
1373 container = "sp28a"; | |
1374 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) | |
1375 container = "sp30a"; | |
1376 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) | |
1377 container = "sp91a"; | |
1298 | 1378 _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; |
1379 if ( _50C9A8_item_enchantment_timer <= 0 ) | |
1380 { | |
1381 _50C9A8_item_enchantment_timer = 0; | |
1455 | 1382 item->uAttributes &= 0xFFFFFF0Fu; |
1298 | 1383 ptr_50C9A4 = 0; |
1384 } | |
1455 | 1385 pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(v127), pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), |
1386 GetTickCount() * 0.1, 0, 255); | |
1298 | 1387 } |
1388 else | |
1389 { | |
1455 | 1390 if ( item->uAttributes & 2 ) |
1391 pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(v127)); | |
1298 | 1392 else |
1393 { | |
1455 | 1394 if ( item->uAttributes & 1 ) |
1395 pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(v127)); | |
1298 | 1396 else |
1455 | 1397 pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v127)); |
1298 | 1398 } |
1399 } | |
1400 if ( !bRingsShownInCharScreen ) | |
1455 | 1401 pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(v127), pPlayers[uPlayerID]->pEquipment.uHelm); |
1298 | 1402 } |
1403 } | |
1455 | 1404 //------------------------------------------------(Hand3/3)------------------------------------------- |
1405 if ( pPlayers[uPlayerID]->pEquipment.uMainHand ) | |
1298 | 1406 { |
1455 | 1407 item = &pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uMainHand - 1]; |
1408 item_X = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][1][0] - pItemsTable->pItems[item->uItemID].uEquipX; | |
1409 item_Y = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][1][1] - pItemsTable->pItems[item->uItemID].uEquipY; | |
1410 if ( item->uItemID == 64 ) | |
1298 | 1411 v181 = "item64v1"; |
1412 else | |
1455 | 1413 v181 = pItemsTable->pItems[item->uItemID].pIconName; |
1414 if ( !(item->uAttributes & 0xF0) ) | |
1298 | 1415 { |
1455 | 1416 if ( item->uAttributes & 2 ) |
1417 pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v181, TEXTURE_16BIT_PALETTE))); | |
1298 | 1418 else |
1419 { | |
1455 | 1420 if ( item->uAttributes & 1 ) |
1421 pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v181, TEXTURE_16BIT_PALETTE))); | |
1298 | 1422 else |
1455 | 1423 pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v181, TEXTURE_16BIT_PALETTE))); |
1298 | 1424 } |
1425 } | |
1426 else | |
1427 { | |
1455 | 1428 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) |
1429 container = "sptext01"; | |
1430 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) | |
1431 container = "sp28a"; | |
1432 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) | |
1433 container = "sp30a"; | |
1434 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) | |
1435 container = "sp91a"; | |
1298 | 1436 _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; |
1437 if ( _50C9A8_item_enchantment_timer <= 0 ) | |
1438 { | |
1439 _50C9A8_item_enchantment_timer = 0; | |
1455 | 1440 item->uAttributes &= 0xFFFFFF0Fu; |
1298 | 1441 ptr_50C9A4 = 0; |
1442 } | |
1455 | 1443 pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v181, TEXTURE_16BIT_PALETTE)), |
1444 pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), GetTickCount() * 0.1, 0, 255); | |
1298 | 1445 } |
1446 if ( !bRingsShownInCharScreen ) | |
1455 | 1447 pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v181, TEXTURE_16BIT_PALETTE)), |
1448 pPlayers[uPlayerID]->pEquipment.uMainHand); | |
1298 | 1449 } |
1455 | 1450 //--------------------------------------------------(Shield/)--------------------------------------------- |
1451 if ( pPlayers[uPlayerID]->pEquipment.uShield ) | |
1298 | 1452 { |
1455 | 1453 item = &pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uShield - 1]; |
1454 if ( pItemsTable->pItems[item->uItemID].uSkillType == PLAYER_SKILL_DAGGER | |
1455 || pItemsTable->pItems[item->uItemID].uSkillType == PLAYER_SKILL_SWORD ) | |
1298 | 1456 { |
1455 | 1457 //v151 = item->uItemID - 400; |
1458 item_X = 596; | |
1298 | 1459 v245 = 1; |
1455 | 1460 switch ( item->uItemID ) |
1298 | 1461 { |
1462 case 400: | |
1455 | 1463 item_Y = 86; |
1298 | 1464 break; |
1465 case 403: | |
1455 | 1466 item_Y = 28; |
1298 | 1467 break; |
1468 case 415: | |
1455 | 1469 item_X = 595; |
1470 item_Y = 33; | |
1298 | 1471 break; |
1472 default: | |
1455 | 1473 item_X = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][0][0] - pItemsTable->pItems[item->uItemID].uEquipX; |
1474 item_Y = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][0][1] - pItemsTable->pItems[item->uItemID].uEquipY; | |
1298 | 1475 break; |
1476 } | |
1477 } | |
1478 else | |
1479 { | |
1480 v245 = 0; | |
1455 | 1481 item_X = pPaperdoll_BodyX + paperdoll_Weapon[pBodyComplection][0][0] - pItemsTable->pItems[item->uItemID].uEquipX; |
1482 item_Y = pPaperdoll_BodyY + paperdoll_Weapon[pBodyComplection][0][1] - pItemsTable->pItems[item->uItemID].uEquipY; | |
1298 | 1483 } |
1455 | 1484 v153 = pIcons_LOD->LoadTexture(pItemsTable->pItems[item->uItemID].pIconName, TEXTURE_16BIT_PALETTE); |
1485 if ( !(item->uAttributes & 0xF0) ) | |
1298 | 1486 { |
1455 | 1487 if ( item->uAttributes & 2 ) |
1488 pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(v153)); | |
1298 | 1489 else |
1490 { | |
1455 | 1491 //v160 = (char *)pIcons_LOD->GetTexture(v153); |
1492 if ( !(item->uAttributes & 1) ) | |
1493 pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v153)); | |
1298 | 1494 else |
1455 | 1495 pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(v153)); |
1298 | 1496 } |
1497 } | |
1498 else | |
1499 { | |
1455 | 1500 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_RED ) |
1501 container = "sptext01"; | |
1502 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_BLUE ) | |
1503 container = "sp28a"; | |
1504 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_GREEN ) | |
1505 container = "sp30a"; | |
1506 if ( (item->uAttributes & 0xF0) == ITEM_AURA_EFFECT_PURPLE ) | |
1507 container = "sp91a"; | |
1298 | 1508 _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; |
1509 if ( _50C9A8_item_enchantment_timer <= 0 ) | |
1510 { | |
1511 _50C9A8_item_enchantment_timer = 0; | |
1455 | 1512 item->uAttributes &= 0xFFFFFF0Fu; |
1298 | 1513 ptr_50C9A4 = 0; |
1514 } | |
1455 | 1515 pRenderer->DrawAura(item_X, item_Y, pIcons_LOD->GetTexture(v153), pIcons_LOD->LoadTexturePtr(container, TEXTURE_16BIT_PALETTE), |
1516 GetTickCount() * 0.1, 0, 255); | |
1298 | 1517 if ( v245 ) |
1518 pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdollLeftEmptyHand[pBodyComplection][0], | |
1519 pPaperdoll_BodyY + pPaperdollLeftEmptyHand[pBodyComplection][1], pIcons_LOD->GetTexture(papredoll_dlhs[uPlayerID - 1])); | |
1520 } | |
1521 if ( !bRingsShownInCharScreen ) | |
1455 | 1522 pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(v153), pPlayers[uPlayerID]->pEquipment.uShield); |
1298 | 1523 } |
1524 } | |
1455 | 1525 //--------------------------------------------------------(RightHand/ )-------------------------------------------------- |
1298 | 1526 pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_RightHand[pBodyComplection][0], pPaperdoll_BodyY + pPaperdoll_RightHand[pBodyComplection][1], pIcons_LOD->GetTexture(papredoll_drhs[uPlayerID - 1])); |
1455 | 1527 //--------------------------------------------------------(LeftHand/ )---------------------------------------------------- |
1528 if ( pPlayers[uPlayerID]->pEquipment.uMainHand ) | |
1298 | 1529 { |
1455 | 1530 item = &pPlayers[uPlayerID]->pInventoryItemList[pPlayers[uPlayerID]->pEquipment.uMainHand - 1]; |
1531 if ( pItemsTable->pItems[item->uItemID].uEquipType == EQUIP_MAIN_HAND | |
1532 || pItemsTable->pItems[item->uItemID].uSkillType == PLAYER_SKILL_SPEAR | |
1533 && !pPlayers[uPlayerID]->pEquipment.uShield ) | |
1298 | 1534 pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_SecondLeftHand[pBodyComplection][0], |
1535 pPaperdoll_BodyY + pPaperdoll_SecondLeftHand[pBodyComplection][1], | |
1536 pIcons_LOD->GetTexture(papredoll_dlhus[uPlayerID - 1])); | |
1537 } | |
1538 if ( !bRingsShownInCharScreen )// | |
1539 pRenderer->DrawTextureTransparent(603, 299, pIcons_LOD->GetTexture(uTextureID_MAGNIF_B)); | |
1540 pRenderer->DrawTextureTransparent(468, 0, pIcons_LOD->GetTexture(uTextureID_right_panel_loop));// | |
1541 } | |
1542 | |
1543 //----- (0041A2D1) -------------------------------------------------------- | |
1544 void CharacterUI_InventoryTab_Draw(Player *player, bool a2) | |
1545 { | |
1466 | 1546 Texture *pTexture; // esi@6 |
1547 int v13; // eax@13 | |
1548 int v15; // eax@13 | |
1549 unsigned int v17; // edi@15 | |
1550 unsigned int uCellX; // [sp+30h] [bp-8h]@5 | |
1551 unsigned int uCellY; // [sp+34h] [bp-4h]@5 | |
1298 | 1552 |
1553 pRenderer->DrawTextureIndexed(8, 8, pIcons_LOD->GetTexture(uTextureID_CharacterUI_InventoryBackground)); | |
1554 if (a2) | |
1555 pRenderer->DrawTextureIndexed(8, 305, pIcons_LOD->LoadTexturePtr("fr_strip", TEXTURE_16BIT_PALETTE)); | |
1556 for (uint i = 0; i < 126; ++i) | |
1557 { | |
1466 | 1558 if ( player->pInventoryMatrix[i] <= 0 ) |
1298 | 1559 continue; |
1466 | 1560 if ( !player->pInventoryItemList[player->pInventoryMatrix[i] - 1].uItemID ) |
1298 | 1561 continue; |
1562 uCellY = 32 * (i / 14) + 17; | |
1563 uCellX = 32 * (i % 14) + 14; | |
1466 | 1564 uint item_texture_id = pIcons_LOD->LoadTexture(pItemsTable->pItems[player->pInventoryItemList[player->pInventoryMatrix[i] - 1].uItemID].pIconName, TEXTURE_16BIT_PALETTE); |
1565 pTexture = pIcons_LOD->GetTexture(item_texture_id); | |
1566 if (pTexture->uTextureWidth < 14) | |
1567 pTexture->uTextureWidth = 14; | |
1568 if ( (pTexture->uTextureWidth - 14) / 32 == 0 && pTexture->uTextureWidth < 32) | |
1569 uCellX += (32 - pTexture->uTextureWidth) / 2; | |
1570 v13 = pTexture->uTextureWidth - 14; | |
1571 LOBYTE(v13) = v13 & 0xE0; | |
1572 v15 = v13 + 32; | |
1573 if (pTexture->uTextureHeight < 14 ) | |
1574 pTexture->uTextureHeight = 14; | |
1575 v17 = uCellX + ((v15 - pTexture->uTextureWidth) >> 1) + pSRZBufferLineOffsets[uCellY + (( (int)((pTexture->uTextureHeight - 14) & 0xFFFFFFE0) - pTexture->uTextureHeight + 32) >> 1)]; //added typecast. without it the value in the brackets got cat to unsigned which messed stuff up | |
1576 if (player->pInventoryItemList[player->pInventoryMatrix[i] - 1].uAttributes & 0xF0) | |
1298 | 1577 { |
1466 | 1578 switch (player->pInventoryItemList[player->pInventoryMatrix[i] - 1].uAttributes & 0xF0) |
1298 | 1579 { |
1580 case ITEM_AURA_EFFECT_RED: pTexture = pIcons_LOD->LoadTexturePtr("sptext01", TEXTURE_16BIT_PALETTE); break; | |
1581 case ITEM_AURA_EFFECT_BLUE: pTexture = pIcons_LOD->LoadTexturePtr("sp28a", TEXTURE_16BIT_PALETTE); break; | |
1582 case ITEM_AURA_EFFECT_GREEN: pTexture = pIcons_LOD->LoadTexturePtr("sp30a", TEXTURE_16BIT_PALETTE); break; | |
1583 case ITEM_AURA_EFFECT_PURPLE: pTexture = pIcons_LOD->LoadTexturePtr("sp91a", TEXTURE_16BIT_PALETTE); break; | |
1584 } | |
1585 _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; | |
1586 if (_50C9A8_item_enchantment_timer <= 0) | |
1587 { | |
1588 _50C9A8_item_enchantment_timer = 0; | |
1466 | 1589 LOBYTE(player->pInventoryItemList[player->pInventoryMatrix[i] - 1].uAttributes) &= 0xF; |
1298 | 1590 ptr_50C9A4 = 0; |
1591 } | |
1466 | 1592 pRenderer->DrawAura(uCellX, uCellY, pTexture, pTexture, GetTickCount() * 0.1, 0, 255); |
1593 ZBuffer_Fill(&pRenderer->pActiveZBuffer[v17], item_texture_id, player->pInventoryMatrix[i]); | |
1298 | 1594 } |
1595 else | |
1596 { | |
1466 | 1597 if (player->pInventoryItemList[player->pInventoryMatrix[i] - 1].Identified() || pCurrentScreen != SCREEN_HOUSE) |
1298 | 1598 { |
1466 | 1599 if (player->pInventoryItemList[player->pInventoryMatrix[i] - 1].Broken()) |
1600 pRenderer->DrawTransparentRedShade(uCellX, uCellY, pTexture); | |
1298 | 1601 else |
1466 | 1602 pRenderer->DrawTextureTransparent(uCellX, uCellY, pTexture); |
1298 | 1603 } |
1604 else | |
1466 | 1605 pRenderer->DrawTransparentGreenShade(uCellX, uCellY, pTexture); |
1606 ZBuffer_Fill(&pRenderer->pActiveZBuffer[v17], item_texture_id, player->pInventoryMatrix[i]); | |
1298 | 1607 continue; |
1608 } | |
1609 } | |
1610 } | |
1611 | |
1612 static void CharacterUI_DrawItem(int x, int y, ItemGen *item, int id) | |
1613 { | |
1614 auto item_texture = pIcons_LOD->LoadTexturePtr(pItemsTable->pItems[item->uItemID].pIconName, TEXTURE_16BIT_PALETTE); | |
1615 | |
1616 if (item->uAttributes & 0xF0) // enchant animation | |
1617 { | |
1618 Texture *enchantment_texture = nullptr; | |
1619 switch (item->uAttributes & 0xF0) | |
1620 { | |
1621 case ITEM_AURA_EFFECT_RED: enchantment_texture = pIcons_LOD->LoadTexturePtr("sptext01", TEXTURE_16BIT_PALETTE); break; | |
1622 case ITEM_AURA_EFFECT_BLUE: enchantment_texture = pIcons_LOD->LoadTexturePtr("sp28a", TEXTURE_16BIT_PALETTE); break; | |
1623 case ITEM_AURA_EFFECT_GREEN: enchantment_texture = pIcons_LOD->LoadTexturePtr("sp30a", TEXTURE_16BIT_PALETTE); break; | |
1624 case ITEM_AURA_EFFECT_PURPLE: enchantment_texture = pIcons_LOD->LoadTexturePtr("sp91a", TEXTURE_16BIT_PALETTE); break; | |
1625 } | |
1626 | |
1627 _50C9A8_item_enchantment_timer -= pEventTimer->uTimeElapsed; | |
1628 if (_50C9A8_item_enchantment_timer <= 0) | |
1629 { | |
1630 _50C9A8_item_enchantment_timer = 0; | |
1631 item->uAttributes &= 0xFFFFFF0F; | |
1632 ptr_50C9A4 = 0; | |
1633 } | |
1455 | 1634 pRenderer->DrawAura(x, y, item_texture, enchantment_texture, GetTickCount() * 0.1, 0, 255); |
1298 | 1635 } |
1636 else | |
1637 { | |
1638 if (item->Broken()) | |
1639 pRenderer->DrawTransparentRedShade(x, y, item_texture); | |
1640 else if (!item->Identified()) | |
1641 pRenderer->DrawTransparentGreenShade(x, y, item_texture); | |
1642 else | |
1643 pRenderer->DrawTextureTransparent(x, y, item_texture); | |
1644 | |
1645 pRenderer->ZBuffer_Fill_2(x, y, item_texture, id); | |
1646 } | |
1647 } | |
1648 | |
1649 //----- (0043E825) -------------------------------------------------------- | |
1650 void CharacterUI_DrawPaperdollWithRingOverlay(Player *player) | |
1651 { | |
1652 CharacterUI_DrawPaperdoll(player); | |
1653 pRenderer->DrawTextureTransparent(0x1D9u, 0, pIcons_LOD->GetTexture(uTextureID_BACKHAND)); | |
1654 pRenderer->DrawTextureTransparent(0x1D4u, 0, pIcons_LOD->GetTexture(uTextureID_right_panel_loop)); | |
1466 | 1655 pRenderer->DrawTextureIndexed(pCharacterScreen_DetalizBtn->uX, pCharacterScreen_DetalizBtn->uY, |
1298 | 1656 pIcons_LOD->GetTexture(uTextureID_detaliz_close_button)); |
1657 for (uint i = 0; i < 6; ++i) | |
1658 { | |
1659 if (!player->pEquipment.uRings[i]) | |
1660 continue; | |
1661 static int pPaperdollRingsX[6] = {0x1EA, 0x21A, 0x248, 0x1EA, 0x21A, 0x248}; | |
1662 static int pPaperdollRingsY[6] = {0x0CA, 0x0CA, 0x0CA, 0x0FA, 0x0FA, 0x0FA}; | |
1466 | 1663 CharacterUI_DrawItem(pPaperdollRingsX[i], pPaperdollRingsY[i], &player->pInventoryItemList[player->pEquipment.uRings[i] - 1], |
1298 | 1664 player->pEquipment.uRings[i]); |
1665 } | |
1666 if (player->pEquipment.uAmulet) | |
1466 | 1667 CharacterUI_DrawItem(493, 91, &player->pInventoryItemList[player->pEquipment.uAmulet - 1], player->pEquipment.uAmulet); |
1298 | 1668 if (player->pEquipment.uGlove) |
1466 | 1669 CharacterUI_DrawItem(586, 88, &player->pInventoryItemList[player->pEquipment.uGlove - 1], player->pEquipment.uGlove); |
1298 | 1670 } |
1671 | |
1672 //----- (0043BCA7) -------------------------------------------------------- | |
1673 void CharacterUI_LoadPaperdollTextures() | |
1674 { | |
1675 int v3; // ebx@10 | |
1676 Player *pPlayer; // edi@12 | |
1677 int v6; // edi@16 | |
1678 unsigned int v7; // eax@16 | |
1679 Player *pPlayer2; // ebx@16 | |
1680 char *v9; // ebx@16 | |
1681 unsigned int v22; // eax@76 | |
1682 int v23; // ecx@76 | |
1683 unsigned int v24; // eax@78 | |
1684 int v25; // ecx@78 | |
1685 unsigned int v27; // eax@80 | |
1686 int v28; // ecx@80 | |
1687 signed int v32; // [sp+10h] [bp-28h]@75 | |
1688 signed int v33; // [sp+10h] [bp-28h]@77 | |
1689 int v34; // [sp+10h] [bp-28h]@79 | |
1690 int pItemTXTNum; // [sp+14h] [bp-24h]@75 | |
1691 int v37; // [sp+14h] [bp-24h]@77 | |
1692 signed int v38; // [sp+14h] [bp-24h]@79 | |
1693 char pContainer[128]; // [sp+24h] [bp-14h]@12 | |
1694 | |
1695 uTextureID_MAGNIF_B = pIcons_LOD->LoadTexture("MAGNIF-B", TEXTURE_16BIT_PALETTE); | |
1696 //if ( !pParty->uAlignment || pParty->uAlignment == 1 || pParty->uAlignment == 2 ) | |
1697 uTextureID_BACKDOLL = pIcons_LOD->LoadTexture("BACKDOLL", TEXTURE_16BIT_PALETTE); | |
1698 uTextureID_right_panel_loop = uTextureID_right_panel; | |
1699 uTextureID_BACKHAND = pIcons_LOD->LoadTexture("BACKHAND", TEXTURE_16BIT_PALETTE); | |
1700 uTextureID_detaliz_close_button = uExitCancelTextureId; | |
1466 | 1701 for ( uint i = 0; i < 4; ++i ) |
1298 | 1702 { |
1466 | 1703 if ( sub_43EE77_ProbablyIfUnderwaterSuitIsEquipped(i + 1) ) |
1298 | 1704 { |
1466 | 1705 if ( pPlayers[i + 1]->GetRace() == CHARACTER_RACE_DWARF ) |
1706 v3 = (pPlayers[i + 1]->GetSexByVoice() != 0) + 3; | |
1298 | 1707 else |
1466 | 1708 v3 = (pPlayers[i + 1]->GetSexByVoice() != 0) + 1; |
1298 | 1709 wsprintfA(pContainer, "pc23v%dBod", v3); |
1466 | 1710 papredoll_dbods[i] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);//Body texture |
1298 | 1711 wsprintfA(pContainer, "pc23v%dlad", v3); |
1466 | 1712 papredoll_dlads[i] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);// Left Hand |
1298 | 1713 wsprintfA(pContainer, "pc23v%dlau", v3); |
1466 | 1714 papredoll_dlaus[i] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);// Left Hand2 |
1298 | 1715 wsprintfA(pContainer, "pc23v%drh", v3); |
1466 | 1716 papredoll_drhs[i] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);// Right Hand |
1298 | 1717 wsprintfA(pContainer, "pc23v%dlh", v3); |
1466 | 1718 papredoll_dlhs[i] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);// Left Fist |
1298 | 1719 wsprintfA(pContainer, "pc23v%dlhu", v3); |
1466 | 1720 papredoll_dlhus[i] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); // Left Fist 2 |
1721 pPlayer = pPlayers[i + 1]; | |
1722 if ( pPlayer->uCurrentFace == 12 || pPlayer->uCurrentFace == 13 ) | |
1723 papredoll_dbrds[(char)pPlayer->uCurrentFace] = 0; | |
1298 | 1724 papredoll_flying_feet[pPlayer->uCurrentFace] = 0; |
1466 | 1725 IsPlayerWearingWatersuit[i + 1] = 1; |
1298 | 1726 } |
1727 else | |
1728 { | |
1466 | 1729 papredoll_dbods[i] = pIcons_LOD->LoadTexture(dbod_texnames_by_face[pPlayers[i + 1]->uCurrentFace], TEXTURE_16BIT_PALETTE); |
1730 papredoll_dlads[i] = pIcons_LOD->LoadTexture(dlad_texnames_by_face[pPlayers[i + 1]->uCurrentFace], TEXTURE_16BIT_PALETTE); | |
1731 papredoll_dlaus[i] = pIcons_LOD->LoadTexture(dlau_texnames_by_face[pPlayers[i + 1]->uCurrentFace], TEXTURE_16BIT_PALETTE); | |
1732 papredoll_drhs[i] = pIcons_LOD->LoadTexture(drh_texnames_by_face[pPlayers[i + 1]->uCurrentFace], TEXTURE_16BIT_PALETTE); | |
1733 papredoll_dlhs[i] = pIcons_LOD->LoadTexture(dlh_texnames_by_face[pPlayers[i + 1]->uCurrentFace], TEXTURE_16BIT_PALETTE); | |
1734 papredoll_dlhus[i] = pIcons_LOD->LoadTexture(dlhu_texnames_by_face[pPlayers[i + 1]->uCurrentFace], TEXTURE_16BIT_PALETTE); | |
1735 if ( pPlayers[i + 1]->uCurrentFace == 12 || pPlayers[i + 1]->uCurrentFace == 13 ) | |
1298 | 1736 { |
1466 | 1737 wsprintfA(pContainer, "pc%02dbrd", pPlayers[i + 1]->uCurrentFace + 1); |
1738 papredoll_dbrds[pPlayers[i + 1]->uCurrentFace] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1298 | 1739 } |
1466 | 1740 wsprintfA(pContainer, "item281pc%02d", pPlayers[i + 1]->uCurrentFace + 1); |
1741 papredoll_flying_feet[pPlayers[i + 1]->uCurrentFace] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1742 IsPlayerWearingWatersuit[i + 1] = 0; | |
1298 | 1743 } |
1744 } | |
1466 | 1745 |
1298 | 1746 uTextureID_ar_up_up = pIcons_LOD->LoadTexture("ar_up_up", TEXTURE_16BIT_PALETTE); |
1747 uTextureID_ar_up_dn = pIcons_LOD->LoadTexture("ar_up_dn", TEXTURE_16BIT_PALETTE); | |
1748 uTextureID_ar_dn_up = pIcons_LOD->LoadTexture("ar_dn_up", TEXTURE_16BIT_PALETTE); | |
1749 uTextureID_ar_dn_dn = pIcons_LOD->LoadTexture("ar_dn_dn", TEXTURE_16BIT_PALETTE); | |
1750 papredoll_dbrds[9] = pIcons_LOD->LoadTexture("ib-cd1-d", TEXTURE_16BIT_PALETTE); | |
1751 papredoll_dbrds[7] = pIcons_LOD->LoadTexture("ib-cd2-d", TEXTURE_16BIT_PALETTE); | |
1752 papredoll_dbrds[5] = pIcons_LOD->LoadTexture("ib-cd3-d", TEXTURE_16BIT_PALETTE); | |
1753 papredoll_dbrds[3] = pIcons_LOD->LoadTexture("ib-cd4-d", TEXTURE_16BIT_PALETTE); | |
1754 papredoll_dbrds[1] = pIcons_LOD->LoadTexture("ib-cd5-d", TEXTURE_16BIT_PALETTE); | |
1466 | 1755 for ( uint i = 0; i < 54; ++i )// test equipment |
1298 | 1756 { |
1466 | 1757 party_has_equipment[i] = 0; |
1758 if ( pParty->pPickedItem.uItemID != i + 66 ) | |
1298 | 1759 { |
1466 | 1760 for ( uint j = 0; j < 4; ++j) |
1298 | 1761 { |
1466 | 1762 if ( Player_has_item(i + 66, &pParty->pPlayers[j], 0) ) |
1763 party_has_equipment[i] = 1; | |
1298 | 1764 } |
1765 } | |
1766 } | |
1767 memset(byte_5111F6.data(), 0, 16); | |
1768 for (uint i = 0; i < 4; ++i) | |
1769 { | |
1770 auto player = pParty->pPlayers + i; | |
1771 | |
1772 if (Player_has_item(ITEM_ARTICACT_GOVERNONS_ARMOR, player, 1)) byte_5111F6[0] = 1; | |
1773 if (Player_has_item(ITEM_ARTIFACT_YORUBA, player, 1)) byte_5111F6[1] = 1; | |
1774 if (Player_has_item(ITEM_RELIC_HARECS_LEATHER, player, 1)) byte_5111F6[2] = 1; | |
1775 if (Player_has_item(ITEM_ARTIFACT_LEAGUE_BOOTS, player, 1)) byte_5111F6[3] = 1; | |
1776 if (Player_has_item(ITEM_RELIC_TALEDONS_HELM, player, 1)) byte_5111F6[4] = 1; | |
1777 if (Player_has_item(ITEM_RELIC_SCHOLARS_CAP, player, 1)) byte_5111F6[5] = 1; | |
1778 if (Player_has_item(ITEM_RELIC_PHYNAXIAN_CROWN, player, 1)) byte_5111F6[6] = 1; | |
1779 if (Player_has_item(ITEM_ARTIFACT_MINDS_EYE, player, 1)) byte_5111F6[7] = 1; | |
1780 if (Player_has_item(ITEM_RARE_SHADOWS_MASK, player, 1)) byte_5111F6[8] = 1; | |
1781 if (Player_has_item(ITEM_RILIC_TITANS_BELT, player, 1)) byte_5111F6[9] = 1; | |
1782 if (Player_has_item(ITEM_ARTIFACT_HEROS_BELT, player, 1)) byte_5111F6[10] = 1; | |
1783 if (Player_has_item(ITEM_RELIC_TWILIGHT, player, 1)) byte_5111F6[11] = 1; | |
1784 if (Player_has_item(ITEM_ARTIFACT_CLOAK_OF_THE_SHEEP, player, 1)) byte_5111F6[12] = 1; | |
1785 if (Player_has_item(ITEM_RARE_SUN_CLOAK, player, 1)) byte_5111F6[13] = 1; | |
1786 if (Player_has_item(ITEM_RARE_MOON_CLOAK, player, 1)) byte_5111F6[14] = 1; | |
1787 if (Player_has_item(ITEM_RARE_VAMPIRES_CAPE, player, 1)) byte_5111F6[15] = 1; | |
1788 if (Player_has_item(ITEM_ELVEN_CHAINMAIL, player, 1)) byte_5111F6[16] = 1; | |
1789 } | |
1790 | |
1791 for (uint i = 0; i < 2; ++i) | |
1792 { | |
1793 for ( uint j = 0; j < 5; ++j )//Belt | |
1794 { | |
1795 GetItemTextureFilename(pContainer, j + 100, i + 1, 0); | |
1796 paperdoll_belt_texture[i][j] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1797 } | |
1798 GetItemTextureFilename(pContainer, 535, i + 1, 0); | |
1799 paperdoll_belt_texture[i][6] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1800 for ( uint j = 0; j < 11; ++j )//Helm | |
1801 { | |
1802 GetItemTextureFilename(pContainer, j + 89, i + 1, 0); | |
1803 paperdoll_helm_texture[i][j] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1804 } | |
1805 GetItemTextureFilename(pContainer, 521, i + 1, 0); | |
1806 paperdoll_helm_texture[i][11] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1807 GetItemTextureFilename(pContainer, 522, i + 1, 0); | |
1808 paperdoll_helm_texture[i][12] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1809 GetItemTextureFilename(pContainer, 523, i + 1, 0); | |
1810 paperdoll_helm_texture[i][13] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1811 GetItemTextureFilename(pContainer, 532, i + 1, 0); | |
1812 paperdoll_helm_texture[i][14] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1813 GetItemTextureFilename(pContainer, 544, i + 1, 0); | |
1814 paperdoll_helm_texture[i][15] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1815 if ( _43ED6F_check_party_races(true) ) | |
1816 papredoll_dbrds[11] = pIcons_LOD->LoadTexture("item092v3", TEXTURE_16BIT_PALETTE); | |
1817 } | |
1466 | 1818 //v43 = 0; |
1298 | 1819 for (uint i = 0; i < 4; ++i) |
1820 { | |
1821 if ( sub_43EDB9_get_some_race_sex_relation_2(i) ) | |
1822 { | |
1823 GetItemTextureFilename(pContainer, 524, i + 1, 0); | |
1824 paperdoll_belt_texture[i][5] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);//Titans belt | |
1825 pItemTXTNum = 66; | |
1826 for ( v32 = 0; v32 < 13; ++v32 )//simple armor | |
1827 { | |
1828 GetItemTextureFilename(pContainer, pItemTXTNum, i + 1, 0); | |
1466 | 1829 paperdoll_armor_texture[i][v32][0] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);// armor |
1298 | 1830 GetItemTextureFilename(pContainer, pItemTXTNum, i + 1, 1); |
1466 | 1831 paperdoll_armor_texture[i][v32][1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);// shoulder 1 |
1298 | 1832 GetItemTextureFilename(pContainer, pItemTXTNum, i + 1, 2); |
1466 | 1833 paperdoll_armor_texture[i][v32][2] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE);// shoulder 2 |
1298 | 1834 pItemTXTNum++; |
1835 } | |
1836 GetItemTextureFilename(pContainer, 516, i + 1, 0);//artefacts | |
1837 paperdoll_armor_texture[i][v32][0] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1838 GetItemTextureFilename(pContainer, 516, i + 1, 1); | |
1839 paperdoll_armor_texture[i][v32][1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1840 GetItemTextureFilename(pContainer, 516, i + 1, 2); | |
1841 paperdoll_armor_texture[i][v32][2] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1842 GetItemTextureFilename(pContainer, 505, i + 1, 0); | |
1843 paperdoll_armor_texture[i][v32 + 1][0] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1844 GetItemTextureFilename(pContainer, 505, i + 1, 1); | |
1845 paperdoll_armor_texture[i][v32 + 1][1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1846 GetItemTextureFilename(pContainer, 505, i + 1, 2); | |
1847 paperdoll_armor_texture[i][v32 + 1][2] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1848 GetItemTextureFilename(pContainer, 504, i + 1, 0); | |
1849 paperdoll_armor_texture[i][v32 + 2][0] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1850 GetItemTextureFilename(pContainer, 504, i + 1, 1); | |
1851 paperdoll_armor_texture[i][v32 + 2][1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1852 GetItemTextureFilename(pContainer, 504, i + 1, 2); | |
1853 paperdoll_armor_texture[i][v32 + 2][2] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1854 GetItemTextureFilename(pContainer, 533, i + 1, 0); | |
1855 paperdoll_armor_texture[i][v32 + 3][0] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1856 GetItemTextureFilename(pContainer, 533, i + 1, 1); | |
1857 paperdoll_armor_texture[i][v32 + 3][1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1858 GetItemTextureFilename(pContainer, 533, i + 1, 2); | |
1859 paperdoll_armor_texture[i][v32 + 3][2] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1860 for ( v33 = 0; v33 < 5; ++v33 )//boots | |
1861 { | |
1862 GetItemTextureFilename(pContainer, v33 + 115, i + 1, 0); | |
1863 paperdoll_boots_texture[i][v33] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1864 } | |
1865 GetItemTextureFilename(pContainer, 512, i + 1, 0); | |
1866 paperdoll_boots_texture[i][v33] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1867 for ( v38 = 0; v38 < 5; ++v38 )//Cloak | |
1868 { | |
1869 GetItemTextureFilename(pContainer, v38 + 105, i + 1, 0); | |
1870 paperdoll_cloak_texture[i][v38] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1871 GetItemTextureFilename(pContainer, v38 + 105, i + 1, 1); | |
1872 paperdoll_cloak_collar_texture[i][v38] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1873 } | |
1874 GetItemTextureFilename(pContainer, 525, i + 1, 0); | |
1875 paperdoll_cloak_texture[i][5] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1876 GetItemTextureFilename(pContainer, 530, i + 1, 0); | |
1877 paperdoll_cloak_texture[i][6] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1878 GetItemTextureFilename(pContainer, 547, i + 1, 0); | |
1879 paperdoll_cloak_texture[i][7] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1880 GetItemTextureFilename(pContainer, 548, i + 1, 0); | |
1881 paperdoll_cloak_texture[i][8] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1882 GetItemTextureFilename(pContainer, 550, i + 1, 0); | |
1883 paperdoll_cloak_texture[i][9] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1884 GetItemTextureFilename(pContainer, 525, i + 1, 1); | |
1885 paperdoll_cloak_collar_texture[i][5] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1886 GetItemTextureFilename(pContainer, 530, i + 1, 1); | |
1887 paperdoll_cloak_collar_texture[i][6] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1888 GetItemTextureFilename(pContainer, 547, i + 1, 1); | |
1889 paperdoll_cloak_collar_texture[i][7] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1890 GetItemTextureFilename(pContainer, 548, i + 1, 1); | |
1891 paperdoll_cloak_collar_texture[i][8] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1892 GetItemTextureFilename(pContainer, 550, i + 1, 1); | |
1893 paperdoll_cloak_collar_texture[i][9] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); | |
1894 } | |
1466 | 1895 //else |
1896 //{ | |
1897 //v26 = v43; | |
1898 //} | |
1899 //v43 = v26 + 40; | |
1298 | 1900 } |
1901 } | |
1902 | |
1903 //----- (00419401) -------------------------------------------------------- | |
1904 void CharacterUI_SkillsTab_CreateButtons() | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1905 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1906 GUIButton *pButton; // eax@3 |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1907 unsigned int current_Y; // esi@8 |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1908 int buttons_count; // [sp+10h] [bp-14h]@1 |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1909 int first_rows; // [sp+14h] [bp-10h]@19 |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1910 int skill_id; // [sp+18h] [bp-Ch]@8 |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1911 Player *curr_player; // [sp+1Ch] [bp-8h]@8 |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1912 int i; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1913 int uCurrFontHeght; |
1298 | 1914 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1915 buttons_count = 0; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1916 if ( dword_507CC0_activ_ch ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1917 CharacterUI_ReleaseButtons(); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1918 dword_507CC0_activ_ch = uActiveCharacter; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1919 for ( pButton = pGUIWindow_CurrentMenu->pControlsHead; pButton; pButton = pButton->pNext ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1920 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1921 if ( pButton->msg == UIMSG_InventoryLeftClick ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1922 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1923 dword_50698C_uX = pButton->uX; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1924 dword_506988_uY = pButton->uY; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1925 dword_506984_uZ = pButton->uZ; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1926 dword_506980_uW = pButton->uW; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1927 pButton->uW = 0; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1928 pButton->uZ = 0; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1929 pButton->uY = 0; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1930 pButton->uX = 0; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1931 } |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1932 } |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1933 first_rows = 0; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1934 // a5 = pGUIWindow_CurrentMenu->uNumControls; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1935 curr_player = &pParty->pPlayers[uActiveCharacter-1]; |
1298 | 1936 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1937 uCurrFontHeght=pFontLucida->uFontHeight; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1938 current_Y = 2 *uCurrFontHeght + 13; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1939 for( i = 0; i < 9; ++i ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1940 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1941 skill_id = pWeaponSkills[i]; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1942 if ( curr_player->pActiveSkills[skill_id] & 0x3F ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1943 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1944 current_Y += uCurrFontHeght - 3; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1945 ++buttons_count; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1946 ++first_rows; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1947 pGUIWindow_CurrentMenu->CreateButton(24, current_Y, 204, uCurrFontHeght - 3, 3, skill_id | 0x8000, UIMSG_SkillUp, skill_id, 0, "", 0, 0); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1948 } |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1949 } |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1950 if ( !first_rows ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1951 current_Y += uCurrFontHeght - 3; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1952 current_Y += 2 * uCurrFontHeght - 6; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1953 for ( i = 0; i < 9; ++i ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1954 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1955 skill_id = pMagicSkills[i]; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1956 if ( curr_player->pActiveSkills[skill_id] & 0x3F && buttons_count < 15 ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1957 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1958 current_Y += uCurrFontHeght - 3; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1959 ++buttons_count; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1960 pGUIWindow_CurrentMenu->CreateButton(24, current_Y, 204, uCurrFontHeght - 3, 3, skill_id | 0x8000, UIMSG_SkillUp, skill_id, 0, "", 0, 0); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1961 } |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1962 } |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1963 first_rows = 0; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1964 current_Y = 2 * uCurrFontHeght + 13; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1965 for ( i = 0; i < 5; ++i ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1966 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1967 skill_id = pArmorSkills[i]; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1968 if ( curr_player->pActiveSkills[skill_id] & 0x3F ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1969 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1970 current_Y+= uCurrFontHeght - 3; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1971 ++buttons_count; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1972 ++first_rows; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1973 pGUIWindow_CurrentMenu->CreateButton(246, current_Y, 204, uCurrFontHeght - 3, 3, skill_id | 0x8000, UIMSG_SkillUp, skill_id, 0, "", 0, 0); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1974 } |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1975 } |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1976 if ( !first_rows ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1977 current_Y += uCurrFontHeght - 3; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1978 current_Y += 2 * uCurrFontHeght - 6; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1979 for ( i = 0; i < 12; ++i ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1980 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1981 skill_id = pMiscSkills[i]; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1982 if ( curr_player->pActiveSkills[skill_id] & 0x3F ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1983 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1984 current_Y += uCurrFontHeght - 3; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1985 ++buttons_count; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1986 pGUIWindow_CurrentMenu->CreateButton(246, current_Y, 204, uCurrFontHeght - 3, 3, skill_id | 0x8000, UIMSG_SkillUp, skill_id, 0, "", 0, 0); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1987 } |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1988 } |
1298 | 1989 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1990 if ( buttons_count ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1991 pGUIWindow_CurrentMenu->_41D08F_set_keyboard_control_group(buttons_count, 1, 0, pGUIWindow_CurrentMenu->uNumControls); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1992 } |
1298 | 1993 |
1994 //----- (00418511) -------------------------------------------------------- | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1995 void CharacterUI_StatsTab_Draw( Player *player ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1996 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1997 int pY; // ST34_4@4 |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1998 char *pText; // eax@9 |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
1999 const char *a2; // [sp+14h] [bp-Ch]@4 |
1298 | 2000 |
2001 pRenderer->DrawTextureIndexed(8, 8, pIcons_LOD->LoadTexturePtr("fr_stats", TEXTURE_16BIT_PALETTE)); | |
2002 sprintf(pTmpBuf.data(), "\f%05d", ui_character_header_text_color); | |
2003 sprintfex(pTmpBuf2.data(), pGlobalTXT_LocalizationStrings[429], player->pName, pClassNames[player->classType]);//"^Pi[%s] %s" / "%s the %s" | |
2004 strcat(pTmpBuf.data(), pTmpBuf2.data()); | |
2005 sprintfex(pTmpBuf2.data(), "\f00000\r180%s: \f%05d%d\f00000\n\n\n", | |
2006 pGlobalTXT_LocalizationStrings[207], // "Skill points" | |
2007 player->uSkillPoints ? ui_character_bonus_text_color : ui_character_default_text_color, | |
2008 player->uSkillPoints); | |
2009 strcat(pTmpBuf.data(), pTmpBuf2.data()); | |
2010 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, 18, 0, pTmpBuf.data(), 0, 0, 0); | |
2011 | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2012 //First column( ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2013 pY = 53; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2014 sprintf(pTmpBuf.data(), "%s\f%05u\r424%d\f00000 /\t185%d\n", pGlobalTXT_LocalizationStrings[144], |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2015 UI_GetHealthManaStringColor(player->GetActualMight(), player->GetBaseStrength()), |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2016 player->GetActualMight(), player->GetBaseStrength());//Might |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2017 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, pY, 0, pTmpBuf.data(), 0, 0, 0); |
1298 | 2018 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2019 pY += LOBYTE(pFontArrus->uFontHeight) - 2; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2020 sprintf(pTmpBuf.data(), "%s\f%05u\r424%d\f00000 /\t185%d\n", pGlobalTXT_LocalizationStrings[116], |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2021 UI_GetHealthManaStringColor(player->GetActualIntelligence(), player->GetBaseIntelligence()), |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2022 player->GetActualIntelligence(), player->GetBaseIntelligence());//Intellect |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2023 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, pY, 0, pTmpBuf.data(), 0, 0, 0); |
1298 | 2024 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2025 pY += LOBYTE(pFontArrus->uFontHeight) - 2; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2026 sprintf(pTmpBuf.data(), "%s\f%05u\r424%d\f00000 /\t185%d\n", pGlobalTXT_LocalizationStrings[163], |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2027 UI_GetHealthManaStringColor(player->GetActualWillpower(), player->GetBaseWillpower()), |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2028 player->GetActualWillpower(), player->GetBaseWillpower());// |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2029 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, pY, 0, pTmpBuf.data(), 0, 0, 0); |
1298 | 2030 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2031 pY += LOBYTE(pFontArrus->uFontHeight) - 2; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2032 sprintf(pTmpBuf.data(), "%s\f%05u\r424%d\f00000 /\t185%d\n", pGlobalTXT_LocalizationStrings[75], |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2033 UI_GetHealthManaStringColor(player->GetActualEndurance(), player->GetBaseEndurance()), |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2034 player->GetActualEndurance(), player->GetBaseEndurance());// |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2035 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, pY, 0, pTmpBuf.data(), 0, 0, 0); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2036 |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2037 pY += LOBYTE(pFontArrus->uFontHeight) - 2; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2038 sprintf(pTmpBuf.data(), "%s\f%05u\r424%d\f00000 /\t185%d\n", pGlobalTXT_LocalizationStrings[1], |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2039 UI_GetHealthManaStringColor(player->GetActualAccuracy(), player->GetBaseAccuracy()), |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2040 player->GetActualAccuracy(), player->GetBaseAccuracy()); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2041 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, pY, 0, pTmpBuf.data(), 0, 0, 0); |
1298 | 2042 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2043 pY += LOBYTE(pFontArrus->uFontHeight) - 2; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2044 sprintf(pTmpBuf.data(), "%s\f%05u\r424%d\f00000 /\t185%d\n", pGlobalTXT_LocalizationStrings[211], |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2045 UI_GetHealthManaStringColor(player->GetActualSpeed(), player->GetBaseSpeed()), |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2046 player->GetActualSpeed(), player->GetBaseSpeed()); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2047 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, pY, 0, pTmpBuf.data(), 0, 0, 0); |
1298 | 2048 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2049 pY += LOBYTE(pFontArrus->uFontHeight) - 2; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2050 sprintf(pTmpBuf.data(), "%s\f%05u\r424%d\f00000 /\t185%d\n\n", pGlobalTXT_LocalizationStrings[136], |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2051 UI_GetHealthManaStringColor(player->GetActualLuck(), player->GetBaseLuck()), |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2052 player->GetActualLuck(), player->GetBaseLuck()); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2053 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, pY, 0, pTmpBuf.data(), 0, 0, 0); |
1298 | 2054 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2055 a2 = "%s\f%05u\r424%d\f00000 /\t185%d\n"; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2056 if ( player->GetMaxHealth() >= 1000 ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2057 a2 = "%s\f%05u\r388%d\f00000 / %d\n"; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2058 pY += 2 * LOBYTE(pFontArrus->uFontHeight) + 5; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2059 sprintf(pTmpBuf.data(), a2, pGlobalTXT_LocalizationStrings[108], |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2060 UI_GetHealthManaStringColor(player->sHealth, player->GetMaxHealth()), |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2061 player->sHealth, player->GetMaxHealth()); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2062 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, pY, 0, pTmpBuf.data(), 0, 0, 0); |
1298 | 2063 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2064 a2 = "%s\f%05u\r424%d\f00000 /\t185%d\n"; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2065 if ( player->GetMaxMana() >= 1000 ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2066 a2 = "%s\f%05u\r388%d\f00000 / %d\n"; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2067 pY += LOBYTE(pFontArrus->uFontHeight) - 2; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2068 sprintf(pTmpBuf.data(), a2, pGlobalTXT_LocalizationStrings[212], |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2069 UI_GetHealthManaStringColor(player->sMana, player->GetMaxMana()), |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2070 player->sMana, player->GetMaxMana()); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2071 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, pY, 0, pTmpBuf.data(), 0, 0, 0); |
1298 | 2072 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2073 pY += LOBYTE(pFontArrus->uFontHeight) - 2; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2074 sprintf(pTmpBuf.data(), "%s\f%05u\r424%d\f00000 /\t185%d\n\n", pGlobalTXT_LocalizationStrings[12], |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2075 UI_GetHealthManaStringColor(player->GetActualAC(), player->GetBaseAC()), |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2076 player->GetActualAC(), player->GetBaseAC()); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2077 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 26, pY, 0, pTmpBuf.data(), 0, 0, 0); |
1298 | 2078 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2079 pY += 2 * LOBYTE(pFontArrus->uFontHeight) - 2; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2080 sprintf(pTmpBuf.data(), "%s: \f%05d%s\n", pGlobalTXT_LocalizationStrings[47], GetConditionDrawColor(player->GetMajorConditionIdx()), |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2081 aCharacterConditionNames[player->GetMajorConditionIdx()]);// |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2082 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 26, pY, 0, pTmpBuf.data(), 226, 0); |
1298 | 2083 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2084 pY += LOBYTE(pFontArrus->uFontHeight) + - 1; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2085 pText = pGlobalTXT_LocalizationStrings[153];// |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2086 if (player->uQuickSpell) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2087 pText = pSpellStats->pInfos[player->uQuickSpell].pShortName; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2088 sprintf(pTmpBuf.data(), "%s: %s", pGlobalTXT_LocalizationStrings[172], pText);//. |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2089 pGUIWindow_CurrentMenu->DrawTextInRect(pFontArrus, 26, pY, 0, pTmpBuf.data(), 226, 0); |
1298 | 2090 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2091 //Second column ( ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2092 pY = 50; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2093 sprintf(pTmpBuf.data(), "%s\f%05u\t100%d\f00000 / %d\n", pGlobalTXT_LocalizationStrings[5], |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2094 UI_GetHealthManaStringColor(player->GetActualAge(), player->GetBaseAge()), |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2095 player->GetActualAge(), player->GetBaseAge()); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2096 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, pY, 0, pTmpBuf.data(), 0, 0, 0); |
1298 | 2097 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2098 a2 = "%s\f%05u\t100%d\f00000 / %d\n"; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2099 if ( player->GetBaseLevel() > 99 ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2100 a2 = "%s\f%05u\t180%d\f00000 / %d\n"; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2101 pY += LOBYTE(pFontArrus->uFontHeight) - 2; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2102 sprintf(pTmpBuf.data(), a2, pGlobalTXT_LocalizationStrings[131],//. |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2103 UI_GetHealthManaStringColor(player->GetActualLevel(), player->GetBaseLevel()), |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2104 player->GetActualLevel(), player->GetBaseLevel()); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2105 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, pY, 0, pTmpBuf.data(), 0, 0, 0); |
1298 | 2106 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2107 pY += LOBYTE(pFontArrus->uFontHeight) - 2; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2108 pText = pGlobalTXT_LocalizationStrings[17]; // "Exp." |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2109 if (player->uExperience <= 9999999) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2110 pText = pGlobalTXT_LocalizationStrings[83]; // "Experience" |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2111 sprintf(pTmpBuf.data(), "%s\r180\f%05d%lu\f00000\n\n", pText, player->GetExperienceDisplayColor(), LODWORD(player->uExperience)); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2112 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, pY, 0, pTmpBuf.data(), 0, 0, 0); |
1298 | 2113 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2114 pY += 2 * LOBYTE(pFontArrus->uFontHeight); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2115 sprintf(pTmpBuf.data(), "%s\t100%+d\n", pGlobalTXT_LocalizationStrings[18], player->GetActualAttack(0)); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2116 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, pY, 0, pTmpBuf.data(), 0, 0, 0); |
1298 | 2117 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2118 pY += LOBYTE(pFontArrus->uFontHeight) - 2; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2119 sprintf(pTmpBuf.data(), "%s\t100 %s\n", pGlobalTXT_LocalizationStrings[53], player->GetMeleeDamageString()); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2120 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, pY, 0, pTmpBuf.data(), 0, 0, 0); |
1298 | 2121 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2122 pY += LOBYTE(pFontArrus->uFontHeight) - 2; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2123 sprintf(pTmpBuf.data(), "%s\t100%+d\n", pGlobalTXT_LocalizationStrings[203], player->GetRangedAttack()); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2124 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, pY, 0, pTmpBuf.data(), 0, 0, 0); |
1298 | 2125 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2126 pY += LOBYTE(pFontArrus->uFontHeight) - 2; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2127 sprintf(pTmpBuf.data(), "%s\t100 %s\n\n", pGlobalTXT_LocalizationStrings[53], player->GetRangedDamageString()); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2128 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, pY, 0, pTmpBuf.data(), 0, 0, 0); |
1298 | 2129 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2130 a2 = format_4E2E10; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2131 if ( player->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_FIRE) > 99 || player->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_FIRE) > 99 ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2132 a2 = "%s\f%05u\t180%d\f00000 / %d\n"; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2133 pY += 2 * LOBYTE(pFontArrus->uFontHeight) - 4; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2134 sprintf(pTmpBuf.data(), a2, pGlobalTXT_LocalizationStrings[87], |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2135 UI_GetHealthManaStringColor(player->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_FIRE), player->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_FIRE)), |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2136 player->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_FIRE), player->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_FIRE)); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2137 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, pY, 0, pTmpBuf.data(), 0, 0, 0); |
1298 | 2138 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2139 a2 = format_4E2E10; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2140 if ( player->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_AIR) > 99 || player->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_AIR) > 99 ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2141 a2 = "%s\f%05u\t180%d\f00000 / %d\n"; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2142 pY += LOBYTE(pFontArrus->uFontHeight) - 2; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2143 sprintf(pTmpBuf.data(), a2, pGlobalTXT_LocalizationStrings[6], |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2144 UI_GetHealthManaStringColor(player->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_AIR), player->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_AIR)), |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2145 player->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_AIR), player->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_AIR)); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2146 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, pY, 0, pTmpBuf.data(), 0, 0, 0); |
1298 | 2147 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2148 a2 = format_4E2E10; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2149 if ( player->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_WATER) > 99 || player->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_WATER) > 99 ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2150 a2 = "%s\f%05u\t180%d\f00000 / %d\n"; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2151 pY += LOBYTE(pFontArrus->uFontHeight) - 2; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2152 sprintf(pTmpBuf.data(), a2, pGlobalTXT_LocalizationStrings[240], |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2153 UI_GetHealthManaStringColor(player->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_WATER), player->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_WATER)), |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2154 player->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_WATER), player->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_WATER)); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2155 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, pY, 0, pTmpBuf.data(), 0, 0, 0); |
1298 | 2156 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2157 a2 = format_4E2E10; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2158 if ( player->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_EARTH) > 99 ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2159 a2 = "%s\f%05u\t180%d\f00000 / %d\n"; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2160 pY += LOBYTE(pFontArrus->uFontHeight) - 2; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2161 sprintf(pTmpBuf.data(), a2, pGlobalTXT_LocalizationStrings[70], |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2162 UI_GetHealthManaStringColor(player->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_EARTH), player->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_EARTH)), |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2163 player->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_EARTH), player->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_EARTH)); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2164 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, pY, 0, pTmpBuf.data(), 0, 0, 0); |
1298 | 2165 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2166 a2 = format_4E2E10; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2167 if ( player->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_MIND) > 99 || player->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_MIND) > 99 ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2168 a2 = "%s\f%05u\t180%d\f00000 / %d\n"; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2169 pY += LOBYTE(pFontArrus->uFontHeight) - 2; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2170 sprintf(pTmpBuf.data(), a2, pGlobalTXT_LocalizationStrings[142], |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2171 UI_GetHealthManaStringColor(player->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_MIND), player->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_MIND)), |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2172 player->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_MIND), player->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_MIND)); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2173 if ( player->classType == PLAYER_CLASS_LICH && player->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_MIND) == 200 ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2174 sprintf(pTmpBuf.data(), format_4E2E00, pGlobalTXT_LocalizationStrings[142], |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2175 UI_GetHealthManaStringColor(player->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_MIND), 200), pGlobalTXT_LocalizationStrings[625]); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2176 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, pY, 0, pTmpBuf.data(), 0, 0, 0); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2177 |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2178 a2 = format_4E2E10; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2179 if ( player->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_BODY) > 99 || player->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_BODY) > 99 ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2180 a2 = "%s\f%05u\t180%d\f00000 / %d\n"; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2181 pY += LOBYTE(pFontArrus->uFontHeight) - 2; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2182 sprintf(pTmpBuf.data(), a2, pGlobalTXT_LocalizationStrings[29], |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2183 UI_GetHealthManaStringColor(player->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_BODY), player->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_BODY)), |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2184 player->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_BODY), player->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_BODY)); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2185 if ( player->classType == PLAYER_CLASS_LICH && player->GetBaseResistance(CHARACTER_ATTRIBUTE_RESIST_BODY) == 200 ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2186 sprintf(pTmpBuf.data(), format_4E2E00, pGlobalTXT_LocalizationStrings[29], |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2187 UI_GetHealthManaStringColor(player->GetActualResistance(CHARACTER_ATTRIBUTE_RESIST_BODY), 200), pGlobalTXT_LocalizationStrings[625]); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2188 pGUIWindow_CurrentMenu->DrawText(pFontArrus, 266, pY, 0, pTmpBuf.data(), 0, 0, 0); |
1298 | 2189 } |
2190 | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2191 bool awardSort (int i, int j) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2192 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2193 if (pAwards[i].uPriority == 0) //none |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2194 return false; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2195 else if (pAwards[j].uPriority == 0) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2196 return true; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2197 else if(pAwards[i].uPriority == 1) //fines,arena stuff,etc |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2198 return false; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2199 else if(pAwards[j].uPriority == 1) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2200 return true; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2201 else if(pAwards[i].uPriority == 5) //joined guilds |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2202 return false; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2203 else if(pAwards[j].uPriority == 5) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2204 return true; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2205 else |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2206 return (pAwards[i].uPriority < pAwards[j].uPriority); |
1298 | 2207 } |
2208 | |
2209 //----- (00419100) -------------------------------------------------------- | |
2210 void FillAwardsData() | |
2211 { | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2212 Player* pPlayer = pPlayers[uActiveCharacter]; |
1298 | 2213 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2214 memset(achieved_awards.data(), 0, 4000); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2215 num_achieved_awards = 0; |
1298 | 2216 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2217 memset(pTmpBuf2.data(), 0, 0x7D0u); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2218 BtnDown_flag = 0; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2219 BtnUp_flag = 0; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2220 books_page_number = 0; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2221 books_primary_item_per_page = 0; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2222 for ( int i = 1; i < 105; ++i ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2223 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2224 if ( _449B57_test_bit(pPlayer->_achieved_awards_bits, i) && pAwards[i].pText ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2225 achieved_awards[num_achieved_awards++] = (AwardType)i; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2226 } |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2227 full_num_items_in_book = num_achieved_awards; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2228 num_achieved_awards = 0; |
1460
ff2118028c71
renaming _guilds_member_bits to _achieved_awards_bits
Gloval
parents:
1455
diff
changeset
|
2229 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2230 //sort awards index |
1298 | 2231 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2232 if (full_num_items_in_book>0) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2233 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2234 for (int i = 0; i< full_num_items_in_book; ++i) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2235 achieved_awards[full_num_items_in_book+i] = (AwardType)(rand()%16); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2236 for (int i = 1; i< full_num_items_in_book; ++i) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2237 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2238 for (int j = i; j< full_num_items_in_book; ++j) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2239 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2240 AwardType tmp; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2241 if (pAwards[achieved_awards[j]].uPriority < pAwards[achieved_awards[i]].uPriority) |
1298 | 2242 { |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2243 tmp= achieved_awards[j]; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2244 achieved_awards[j] = achieved_awards[i]; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2245 achieved_awards[i] = tmp; |
1298 | 2246 } |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2247 } |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2248 } |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2249 } |
1460
ff2118028c71
renaming _guilds_member_bits to _achieved_awards_bits
Gloval
parents:
1455
diff
changeset
|
2250 |
ff2118028c71
renaming _guilds_member_bits to _achieved_awards_bits
Gloval
parents:
1455
diff
changeset
|
2251 // if (full_num_items_in_book > 0) |
ff2118028c71
renaming _guilds_member_bits to _achieved_awards_bits
Gloval
parents:
1455
diff
changeset
|
2252 /* { |
ff2118028c71
renaming _guilds_member_bits to _achieved_awards_bits
Gloval
parents:
1455
diff
changeset
|
2253 std::stable_sort(achieved_awards.begin(), achieved_awards.end(), awardSort); |
ff2118028c71
renaming _guilds_member_bits to _achieved_awards_bits
Gloval
parents:
1455
diff
changeset
|
2254 }*/ |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2255 } |
1298 | 2256 |
2257 //----- (0043EF2B) -------------------------------------------------------- | |
2258 void WetsuitOn( unsigned int uPlayerID ) | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2259 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2260 CHARACTER_RACE player_race; // edi@2 |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2261 signed int player_sex; // eax@2 |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2262 int texture_num; // ecx@5 |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2263 char pContainer[20]; // [sp+4h] [bp-1Ch]@7 |
1298 | 2264 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2265 if ( uPlayerID> 0 ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2266 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2267 player_race = pPlayers[uPlayerID]->GetRace(); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2268 player_sex = pPlayers[uPlayerID]->GetSexByVoice(); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2269 if ( player_race == CHARACTER_RACE_DWARF ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2270 texture_num = (player_sex != 0) + 3; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2271 else |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2272 texture_num = (player_sex != 0) + 1; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2273 wsprintfA(pContainer, "pc23v%dBod", texture_num); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2274 papredoll_dbods[uPlayerID - 1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2275 wsprintfA(pContainer, "pc23v%dlad", texture_num); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2276 papredoll_dlads[uPlayerID - 1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2277 wsprintfA(pContainer, "pc23v%dlau", texture_num); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2278 papredoll_dlaus[uPlayerID - 1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2279 wsprintfA(pContainer, "pc23v%drh", texture_num); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2280 papredoll_drhs[uPlayerID - 1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2281 wsprintfA(pContainer, "pc23v%dlh", texture_num); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2282 papredoll_dlhs[uPlayerID - 1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2283 wsprintfA(pContainer, "pc23v%dlhu", texture_num); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2284 papredoll_dlhus[uPlayerID - 1] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); |
1298 | 2285 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2286 if ( pPlayers[uPlayerID]->uCurrentFace == 12 || pPlayers[uPlayerID]->uCurrentFace == 13 ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2287 papredoll_dbrds[pPlayers[uPlayerID]->uCurrentFace] = 0; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2288 papredoll_flying_feet[pPlayers[uPlayerID]->uCurrentFace] = 0; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2289 IsPlayerWearingWatersuit[uPlayerID] = 1; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2290 } |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2291 } |
1298 | 2292 |
2293 //----- (0043F0BD) -------------------------------------------------------- | |
2294 void WetsuitOff( unsigned int uPlayerID ) | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2295 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2296 char pContainer[20]; // [sp+0h] [bp-18h]@4 |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2297 |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2298 if (uPlayerID > 0 ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2299 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2300 papredoll_dbods[uPlayerID - 1] = pIcons_LOD->LoadTexture(dbod_texnames_by_face[pPlayers[uPlayerID]->uCurrentFace], TEXTURE_16BIT_PALETTE); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2301 papredoll_dlads[uPlayerID - 1] = pIcons_LOD->LoadTexture(dlad_texnames_by_face[pPlayers[uPlayerID]->uCurrentFace], TEXTURE_16BIT_PALETTE); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2302 papredoll_dlaus[uPlayerID - 1] = pIcons_LOD->LoadTexture(dlau_texnames_by_face[pPlayers[uPlayerID]->uCurrentFace], TEXTURE_16BIT_PALETTE); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2303 papredoll_drhs [uPlayerID - 1] = pIcons_LOD->LoadTexture(drh_texnames_by_face [pPlayers[uPlayerID]->uCurrentFace], TEXTURE_16BIT_PALETTE); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2304 papredoll_dlhs [uPlayerID - 1] = pIcons_LOD->LoadTexture(dlh_texnames_by_face [pPlayers[uPlayerID]->uCurrentFace], TEXTURE_16BIT_PALETTE); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2305 papredoll_dlhus[uPlayerID - 1] = pIcons_LOD->LoadTexture(dlhu_texnames_by_face[pPlayers[uPlayerID]->uCurrentFace], TEXTURE_16BIT_PALETTE); |
1298 | 2306 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2307 if ( pPlayers[uPlayerID]->uCurrentFace == 12 || pPlayers[uPlayerID]->uCurrentFace == 13 ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2308 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2309 wsprintfA(pContainer, "pc%02dbrd", pPlayers[uPlayerID]->uCurrentFace + 1); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2310 papredoll_dbrds[pPlayers[uPlayerID]->uCurrentFace] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2311 } |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2312 wsprintfA(pContainer, "item281pc%02d", pPlayers[uPlayerID]->uCurrentFace + 1); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2313 papredoll_flying_feet[pPlayers[uPlayerID]->uCurrentFace] = pIcons_LOD->LoadTexture(pContainer, TEXTURE_16BIT_PALETTE); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2314 IsPlayerWearingWatersuit[uPlayerID] = 0; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2315 } |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2316 } |
1298 | 2317 |
2318 //----- (00468F8A) -------------------------------------------------------- | |
1458 | 2319 void OnPaperdollLeftClick() |
1298 | 2320 { |
2321 int v1; // ecx@1 | |
2322 unsigned int v2; // edi@1 | |
2323 unsigned int v3; // edx@4 | |
2324 unsigned int pSkillType; // esi@5 | |
2325 unsigned __int16 v5; // ax@7 | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2326 //unsigned int v6; // edi@19 |
1298 | 2327 int v7; // esi@27 |
1365
b691c96d8e06
Player::FindFreeInventorySlot and Player::CreateItemInInventory refactoring
Grumpy7
parents:
1358
diff
changeset
|
2328 int v8; // eax@29 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2329 //int v9; // edx@32 |
1298 | 2330 int v10; // esi@34 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2331 //int v11; // eax@34 |
1298 | 2332 int v12; // esi@38 |
1476
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2333 //int v13; // eax@38 |
1298 | 2334 char v14; // zf@38 |
2335 int v15; // esi@42 | |
1476
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2336 //int v16; // eax@42 |
1298 | 2337 int v17; // eax@44 |
2338 unsigned int v18; // ecx@55 | |
2339 unsigned int v19; // eax@55 | |
2340 int v20; // esi@60 | |
1476
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2341 //int v21; // eax@60 |
1298 | 2342 unsigned int v22; // eax@61 |
1365
b691c96d8e06
Player::FindFreeInventorySlot and Player::CreateItemInInventory refactoring
Grumpy7
parents:
1358
diff
changeset
|
2343 int v23; // eax@62 |
1298 | 2344 int v24; // esi@65 |
2345 int v25; // eax@65 | |
1365
b691c96d8e06
Player::FindFreeInventorySlot and Player::CreateItemInInventory refactoring
Grumpy7
parents:
1358
diff
changeset
|
2346 int v26; // eax@69 |
1298 | 2347 int v27; // esi@81 |
2348 int v28; // eax@81 | |
2349 int v29; // esi@84 | |
2350 int v30; // eax@84 | |
2351 int v31; // eax@85 | |
2352 unsigned int v32; // ecx@88 | |
2353 unsigned int v33; // eax@88 | |
2354 int v34; // esi@90 | |
2355 unsigned int v35; // eax@91 | |
2356 int v36; // esi@93 | |
2357 int v37; // edi@93 | |
2358 ItemGen *v38; // edi@93 | |
2359 __int16 v39; // dx@99 | |
2360 ItemGen _this; // [sp+Ch] [bp-40h]@1 | |
2361 unsigned int v48; // [sp+30h] [bp-1Ch]@88 | |
2362 unsigned int v49; // [sp+34h] [bp-18h]@57 | |
2363 unsigned int v50; // [sp+38h] [bp-14h]@50 | |
2364 int v51; // [sp+3Ch] [bp-10h]@1 | |
1365
b691c96d8e06
Player::FindFreeInventorySlot and Player::CreateItemInInventory refactoring
Grumpy7
parents:
1358
diff
changeset
|
2365 int v52; // [sp+40h] [bp-Ch]@5 |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2366 ITEM_EQUIP_TYPE pEquipType; |
1298 | 2367 |
2368 v51 = 0; | |
2369 _this.Reset(); | |
2370 //v0 = pPlayers[uActiveCharacter]; | |
2371 v1 = pPlayers[uActiveCharacter]->pEquipment.uMainHand; | |
2372 v2 = pPlayers[uActiveCharacter]->pEquipment.uShield; | |
2373 //v54 = pPlayers[uActiveCharacter]->pEquipment.uShield; | |
2374 //v53 = v1; | |
1384
b51332ab228f
changed a few member variables in Player to slightly less confusing names
Grumpy7
parents:
1365
diff
changeset
|
2375 if ( v1 && pItemsTable->pItems[*(int *)&pPlayers[uActiveCharacter]->pInventoryItemList[v1 - 1]].uEquipType == 1 ) |
1298 | 2376 v51 = v1; |
2377 v3 = pParty->pPickedItem.uItemID; | |
2378 if ( pParty->pPickedItem.uItemID ) | |
2379 { | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2380 pEquipType = pItemsTable->pItems[pParty->pPickedItem.uItemID].uEquipType; |
1298 | 2381 pSkillType = pItemsTable->pItems[pParty->pPickedItem.uItemID].uSkillType; |
2382 if ( pSkillType == 4 ) | |
2383 { | |
2384 if ( v2 ) | |
2385 { | |
2386 LOBYTE(v5) = pPlayers[uActiveCharacter]->GetActualSkillLevel(PLAYER_SKILL_SPEAR); | |
2387 if ( (signed int)SkillToMastery(v5) < 3 ) | |
2388 { | |
2389 pPlayers[uActiveCharacter]->PlaySound(SPEECH_39, 0); | |
2390 return; | |
2391 } | |
2392 v3 = pParty->pPickedItem.uItemID; | |
2393 } | |
2394 } | |
2395 else | |
2396 { | |
2397 if ( (pSkillType == 8 || pSkillType == 1 || pSkillType == 2) | |
2398 && v1 | |
1384
b51332ab228f
changed a few member variables in Player to slightly less confusing names
Grumpy7
parents:
1365
diff
changeset
|
2399 && pItemsTable->pItems[*(int *)&pPlayers[uActiveCharacter]->pInventoryItemList[v1-1]].uSkillType == 4 ) |
1298 | 2400 { |
2401 LOBYTE(v5) = pPlayers[uActiveCharacter]->GetActualSkillLevel(PLAYER_SKILL_SPEAR); | |
2402 if ( (signed int)SkillToMastery(v5) < 3 ) | |
2403 { | |
2404 pPlayers[uActiveCharacter]->PlaySound(SPEECH_39, 0); | |
2405 return; | |
2406 } | |
2407 } | |
2408 } | |
2409 if ( !pPlayers[uActiveCharacter]->CanEquip_RaceAndAlignmentCheck(v3) ) | |
2410 { | |
2411 | |
2412 pPlayers[uActiveCharacter]->PlaySound(SPEECH_39, 0); | |
2413 return; | |
2414 } | |
1358
61010a655c94
a few itemID changed to their enum values + added a few new ones
Grumpy7
parents:
1299
diff
changeset
|
2415 if ( pParty->pPickedItem.uItemID == ITEM_WETSUIT ) |
1298 | 2416 { |
2417 pPlayers[uActiveCharacter]->EquipBody((ITEM_EQUIP_TYPE)3); | |
2418 WetsuitOn(uActiveCharacter); | |
2419 return; | |
2420 } | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2421 //v6 = v52; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2422 switch ( pEquipType ) |
1298 | 2423 { |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2424 case EQUIP_BOW: |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2425 case EQUIP_ARMOUR: |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2426 case EQUIP_HELMET: |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2427 case EQUIP_BELT: |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2428 case EQUIP_CLOAK: |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2429 case EQUIP_GAUNTLETS: |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2430 case EQUIP_BOOTS: |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2431 case EQUIP_AMULET: |
1298 | 2432 if ( !pPlayers[uActiveCharacter]->HasSkill(pSkillType) ) |
2433 { | |
2434 pPlayers[uActiveCharacter]->PlaySound(SPEECH_39, 0); | |
2435 return; | |
2436 } | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2437 if ( sub_43EE77_ProbablyIfUnderwaterSuitIsEquipped(uActiveCharacter) && (pEquipType != EQUIP_ARMOUR || bUnderwater) ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2438 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2439 pAudioPlayer->PlaySound(SOUND_27, 0, 0, -1, 0, 0, 0, 0); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2440 return; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2441 } |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2442 pPlayers[uActiveCharacter]->EquipBody(pEquipType); |
1358
61010a655c94
a few itemID changed to their enum values + added a few new ones
Grumpy7
parents:
1299
diff
changeset
|
2443 if ( pParty->pPickedItem.uItemID == ITEM_WETSUIT ) |
1298 | 2444 WetsuitOff(uActiveCharacter); |
2445 return; | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2446 |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2447 case EQUIP_RING:// |
1298 | 2448 if ( sub_43EE77_ProbablyIfUnderwaterSuitIsEquipped(uActiveCharacter) ) |
2449 { | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2450 pAudioPlayer->PlaySound(SOUND_27, 0, 0, -1, 0, 0, 0, 0); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2451 return; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2452 } |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2453 // |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2454 v7 = 0; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2455 for ( v52 = 10; (signed int)v52 < 16; ++v52 ) |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2456 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2457 if ( !pPlayers[uActiveCharacter]->pEquipment.uRings[v7] ) |
1298 | 2458 { |
1384
b51332ab228f
changed a few member variables in Player to slightly less confusing names
Grumpy7
parents:
1365
diff
changeset
|
2459 v8 = pPlayers[uActiveCharacter]->FindFreeInventoryListSlot(); |
1365
b691c96d8e06
Player::FindFreeInventorySlot and Player::CreateItemInInventory refactoring
Grumpy7
parents:
1358
diff
changeset
|
2460 if ( v8 >= 0 ) |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2461 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2462 pParty->pPickedItem.uBodyAnchor = v52 + 1; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2463 memcpy(&pPlayers[uActiveCharacter]->pInventoryItemList[v8], &pParty->pPickedItem, sizeof(pPlayers[uActiveCharacter]->pInventoryItemList[v8])); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2464 pPlayers[uActiveCharacter]->pEquipment.uRings[v7] = v8 + 1; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2465 pMouse->RemoveHoldingItem(); |
1298 | 2466 break; |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2467 } |
1298 | 2468 } |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2469 v7++; |
1298 | 2470 } |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2471 if ( v52 == 16 )// |
1298 | 2472 { |
2473 v52 = pPlayers[uActiveCharacter]->pEquipment.uRings[6] - 1; | |
2474 memcpy(&_this, &pParty->pPickedItem, sizeof(_this)); | |
2475 v10 = (int)((char *)pPlayers[uActiveCharacter] + 36 * v52); | |
2476 *(char *)(v10 + 556) = 0; | |
2477 pParty->pPickedItem.Reset(); | |
2478 pParty->SetHoldingItem((ItemGen *)(v10 + 532)); | |
2479 _this.uBodyAnchor = 16; | |
2480 memcpy((void *)(v10 + 532), &_this, 0x24u); | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2481 pPlayers[uActiveCharacter]->pEquipment.uRings[6] = v52 + 1; |
1298 | 2482 } |
2483 return; | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2484 |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2485 case EQUIP_SHIELD:// |
1298 | 2486 if ( sub_43EE77_ProbablyIfUnderwaterSuitIsEquipped(uActiveCharacter) ) |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2487 { |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2488 pAudioPlayer->PlaySound(SOUND_27, 0, 0, -1, 0, 0, 0, 0); |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2489 return; |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2490 } |
1298 | 2491 if ( !pPlayers[uActiveCharacter]->HasSkill(pSkillType) ) |
2492 { | |
2493 pPlayers[uActiveCharacter]->PlaySound(SPEECH_39, 0); | |
2494 return; | |
2495 } | |
2496 if ( v2 ) | |
2497 { | |
2498 --v2; | |
2499 memcpy(&_this, &pParty->pPickedItem, sizeof(_this)); | |
2500 v12 = (int)((char *)pPlayers[uActiveCharacter] + 36 * v2); | |
2501 *(char *)(v12 + 556) = 0; | |
2502 pParty->pPickedItem.Reset(); | |
2503 pParty->SetHoldingItem((ItemGen *)(v12 + 532)); | |
2504 _this.uBodyAnchor = 1; | |
2505 v14 = v51 == 0; | |
2506 memcpy((void *)(v12 + 532), &_this, 0x24u); | |
1476
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2507 pPlayers[uActiveCharacter]->pEquipment.uShield = v2 + 1; |
1298 | 2508 if ( v14 ) |
2509 return; | |
2510 } | |
2511 else | |
2512 { | |
1384
b51332ab228f
changed a few member variables in Player to slightly less confusing names
Grumpy7
parents:
1365
diff
changeset
|
2513 v52 = pPlayers[uActiveCharacter]->FindFreeInventoryListSlot(); |
1365
b691c96d8e06
Player::FindFreeInventorySlot and Player::CreateItemInInventory refactoring
Grumpy7
parents:
1358
diff
changeset
|
2514 if ( v52 < 0 ) |
1298 | 2515 return; |
2516 if ( !v51 ) | |
2517 { | |
2518 pParty->pPickedItem.uBodyAnchor = 1; | |
2519 v17 = v52 + 1; | |
1384
b51332ab228f
changed a few member variables in Player to slightly less confusing names
Grumpy7
parents:
1365
diff
changeset
|
2520 memcpy(&pPlayers[uActiveCharacter]->pInventoryItemList[v52], &pParty->pPickedItem, sizeof(pPlayers[uActiveCharacter]->pInventoryItemList[v52])); |
1298 | 2521 pPlayers[uActiveCharacter]->pEquipment.uShield = v17; |
2522 pMouse->RemoveHoldingItem(); | |
2523 return; | |
2524 } | |
2525 memcpy(&_this, &pParty->pPickedItem, sizeof(_this)); | |
2526 v15 = (int)((char *)pPlayers[uActiveCharacter] + 36 * (v1 - 1)); | |
2527 *(char *)(v15 + 556) = 0; | |
2528 pParty->pPickedItem.Reset(); | |
2529 pParty->SetHoldingItem((ItemGen *)(v15 + 532)); | |
2530 _this.uBodyAnchor = 1; | |
1384
b51332ab228f
changed a few member variables in Player to slightly less confusing names
Grumpy7
parents:
1365
diff
changeset
|
2531 memcpy(&pPlayers[uActiveCharacter]->pInventoryItemList[v52], &_this, sizeof(pPlayers[uActiveCharacter]->pInventoryItemList[v52])); |
1476
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2532 pPlayers[uActiveCharacter]->pEquipment.uShield = v52 + 1; |
1298 | 2533 } |
2534 pPlayers[uActiveCharacter]->pEquipment.uMainHand = 0; | |
2535 return; | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2536 case EQUIP_OFF_HAND: |
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2537 case EQUIP_WAND: |
1298 | 2538 if ( sub_43EE77_ProbablyIfUnderwaterSuitIsEquipped(uActiveCharacter) |
2539 && pParty->pPickedItem.uItemID != 64 | |
2540 && pParty->pPickedItem.uItemID != 65 ) | |
1476
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2541 { |
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2542 pAudioPlayer->PlaySound(SOUND_27, 0, 0, -1, 0, 0, 0, 0); |
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2543 return; |
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2544 } |
1298 | 2545 if ( !pPlayers[uActiveCharacter]->HasSkill(pSkillType) ) |
2546 { | |
2547 pPlayers[uActiveCharacter]->PlaySound(SPEECH_39, 0); | |
2548 return; | |
2549 } | |
2550 v50 = 0; | |
2551 if ( pSkillType == 2 && (unsigned __int16)(pPlayers[uActiveCharacter]->pActiveSkills[2] & 0xFFC0) | |
2552 || pSkillType == 1 && (signed int)SkillToMastery(pPlayers[uActiveCharacter]->pActiveSkills[1]) >= 3 ) | |
2553 { | |
1476
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2554 v18 = pMouse->uMouseClickX; |
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2555 v19 = pMouse->uMouseClickY; |
1298 | 2556 v49 = v19; |
2557 if ( (signed int)v18 >= 560 ) | |
2558 { | |
2559 if ( !v51 ) | |
2560 { | |
2561 if ( v2 ) | |
2562 { | |
2563 --v2; | |
2564 memcpy(&_this, &pParty->pPickedItem, sizeof(_this)); | |
2565 v20 = (int)((char *)pPlayers[uActiveCharacter] + 36 * v2); | |
2566 *(char *)(v20 + 556) = 0; | |
2567 pParty->pPickedItem.Reset(); | |
2568 pParty->SetHoldingItem((ItemGen *)(v20 + 532)); | |
2569 _this.uBodyAnchor = 1; | |
1476
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2570 v14 = pEquipType == EQUIP_WAND; |
1298 | 2571 memcpy((void *)(v20 + 532), &_this, 0x24u); |
1476
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2572 pPlayers[uActiveCharacter]->pEquipment.uShield = v2 + 1; |
1298 | 2573 if ( !v14 ) |
2574 return; | |
2575 v22 = _this.uItemID; | |
2576 v50 = v22; | |
1476
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2577 if ( v50 ) |
1298 | 2578 { |
2579 __debugbreak(); // looks like offset in player's inventory and wand_lut much like case in 0042ECB5 | |
1476
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2580 stru_A750F8[uActiveCharacter - 1]._494836(*((int *)&pSpellDatas[66].uNormalLevelRecovery + v50), uActiveCharacter - 1 + 9); |
1298 | 2581 } |
1476
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2582 break; |
1298 | 2583 } |
1384
b51332ab228f
changed a few member variables in Player to slightly less confusing names
Grumpy7
parents:
1365
diff
changeset
|
2584 v23 = pPlayers[uActiveCharacter]->FindFreeInventoryListSlot(); |
1365
b691c96d8e06
Player::FindFreeInventorySlot and Player::CreateItemInInventory refactoring
Grumpy7
parents:
1358
diff
changeset
|
2585 if ( v23 < 0 ) |
1298 | 2586 return; |
2587 pParty->pPickedItem.uBodyAnchor = 1; | |
1384
b51332ab228f
changed a few member variables in Player to slightly less confusing names
Grumpy7
parents:
1365
diff
changeset
|
2588 v50 = (unsigned int)&pPlayers[uActiveCharacter]->pInventoryItemList[v23]; |
b51332ab228f
changed a few member variables in Player to slightly less confusing names
Grumpy7
parents:
1365
diff
changeset
|
2589 memcpy(&pPlayers[uActiveCharacter]->pInventoryItemList[v23], &pParty->pPickedItem, sizeof(pPlayers[uActiveCharacter]->pInventoryItemList[v23])); |
1298 | 2590 pPlayers[uActiveCharacter]->pEquipment.uShield = v23 + 1; |
2591 pMouse->RemoveHoldingItem(); | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2592 if ( pEquipType != 12 ) |
1298 | 2593 return; |
2594 v22 = *(int *)v50; | |
1476
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2595 v50 = v22; |
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2596 if ( v50 ) |
1298 | 2597 { |
2598 __debugbreak(); // looks like offset in player's inventory and wand_lut much like case in 0042ECB5 | |
1476
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2599 stru_A750F8[uActiveCharacter - 1]._494836(*((int *)&pSpellDatas[66].uNormalLevelRecovery + v50), uActiveCharacter - 1 + 9); |
1298 | 2600 } |
1476
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2601 break; |
1298 | 2602 } |
2603 } | |
2604 } | |
2605 if ( !v1 ) | |
2606 { | |
1384
b51332ab228f
changed a few member variables in Player to slightly less confusing names
Grumpy7
parents:
1365
diff
changeset
|
2607 v26 = pPlayers[uActiveCharacter]->FindFreeInventoryListSlot(); |
1365
b691c96d8e06
Player::FindFreeInventorySlot and Player::CreateItemInInventory refactoring
Grumpy7
parents:
1358
diff
changeset
|
2608 if ( v26 < 0 ) |
1298 | 2609 return; |
2610 pParty->pPickedItem.uBodyAnchor = 2; | |
1384
b51332ab228f
changed a few member variables in Player to slightly less confusing names
Grumpy7
parents:
1365
diff
changeset
|
2611 v50 = (unsigned int)&pPlayers[uActiveCharacter]->pInventoryItemList[v26]; |
b51332ab228f
changed a few member variables in Player to slightly less confusing names
Grumpy7
parents:
1365
diff
changeset
|
2612 memcpy(&pPlayers[uActiveCharacter]->pInventoryItemList[v26], &pParty->pPickedItem, sizeof(pPlayers[uActiveCharacter]->pInventoryItemList[v26])); |
1298 | 2613 pPlayers[uActiveCharacter]->pEquipment.uMainHand = v26 + 1; |
1476
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2614 pMouse->RemoveHoldingItem(); |
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2615 if ( pEquipType != 12 ) |
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2616 return; |
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2617 v22 = *(int *)v50; |
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2618 v50 = v22; |
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2619 if ( v50 ) |
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2620 { |
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2621 __debugbreak(); // looks like offset in player's inventory and wand_lut much like case in 0042ECB5 |
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2622 stru_A750F8[uActiveCharacter - 1]._494836(*((int *)&pSpellDatas[66].uNormalLevelRecovery + v50), uActiveCharacter - 1 + 9); |
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2623 } |
92b63e3dca90
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick(2)
Ritor1
parents:
1474
diff
changeset
|
2624 break; |
1298 | 2625 } |
2626 --v1; | |
2627 memcpy(&_this, &pParty->pPickedItem, sizeof(_this)); | |
2628 v24 = (int)((char *)pPlayers[uActiveCharacter] + 36 * v1); | |
2629 *(char *)(v24 + 556) = 0; | |
2630 pParty->pPickedItem.Reset(); | |
2631 pParty->SetHoldingItem((ItemGen *)(v24 + 532)); | |
2632 _this.uBodyAnchor = 2; | |
2633 v25 = v1 + 1; | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2634 v14 = pEquipType == 12; |
1298 | 2635 memcpy((void *)(v24 + 532), &_this, 0x24u); |
2636 pPlayers[uActiveCharacter]->pEquipment.uMainHand = v25; | |
2637 if ( v14 ) | |
2638 v50 = _this.uItemID; | |
2639 if ( v51 ) | |
2640 pPlayers[uActiveCharacter]->pEquipment.uShield = 0; | |
2641 if ( v50 ) | |
2642 { | |
2643 __debugbreak(); // looks like offset in player's inventory and wand_lut much like case in 0042ECB5 | |
2644 stru_A750F8[uActiveCharacter - 1]._494836( *((int *)&pSpellDatas[66].uNormalLevelRecovery + v50), uActiveCharacter - 1 + 9); | |
2645 } | |
2646 break; | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2647 case EQUIP_MAIN_HAND: |
1298 | 2648 if ( sub_43EE77_ProbablyIfUnderwaterSuitIsEquipped(uActiveCharacter) ) |
2649 { | |
2650 pAudioPlayer->PlaySound(SOUND_27, 0, 0, -1, 0, 0, 0, 0); | |
2651 return; | |
2652 } | |
2653 if ( !pPlayers[uActiveCharacter]->HasSkill(pSkillType) ) | |
2654 { | |
2655 pPlayers[uActiveCharacter]->PlaySound(SPEECH_39, 0); | |
2656 return; | |
2657 } | |
2658 if ( v1 ) | |
2659 { | |
2660 if ( v2 ) | |
2661 { | |
2662 pAudioPlayer->PlaySound(SOUND_27, 0, 0, -1, 0, 0, 0, 0); | |
2663 return; | |
2664 } | |
2665 --v1; | |
2666 memcpy(&_this, &pParty->pPickedItem, sizeof(_this)); | |
2667 v27 = (int)((char *)pPlayers[uActiveCharacter] + 36 * v1); | |
2668 *(char *)(v27 + 556) = 0; | |
2669 pParty->pPickedItem.Reset(); | |
2670 pParty->SetHoldingItem((ItemGen *)(v27 + 532)); | |
2671 _this.uBodyAnchor = 2; | |
2672 v28 = v1 + 1; | |
2673 memcpy((void *)(v27 + 532), &_this, 0x24u); | |
2674 pPlayers[uActiveCharacter]->pEquipment.uMainHand = v28; | |
2675 } | |
2676 else | |
2677 { | |
1384
b51332ab228f
changed a few member variables in Player to slightly less confusing names
Grumpy7
parents:
1365
diff
changeset
|
2678 v52 = pPlayers[uActiveCharacter]->FindFreeInventoryListSlot(); |
1365
b691c96d8e06
Player::FindFreeInventorySlot and Player::CreateItemInInventory refactoring
Grumpy7
parents:
1358
diff
changeset
|
2679 if ( v52 >= 0 ) |
1298 | 2680 { |
2681 if ( v2 ) | |
2682 { | |
2683 memcpy(&_this, &pParty->pPickedItem, sizeof(_this)); | |
2684 v29 = (int)((char *)pPlayers[uActiveCharacter] + 36 * (v2 - 1)); | |
2685 *(char *)(v29 + 556) = 0; | |
2686 pParty->pPickedItem.Reset(); | |
2687 pParty->SetHoldingItem((ItemGen *)(v29 + 532)); | |
2688 _this.uBodyAnchor = 2; | |
2689 v30 = v52 + 1; | |
1384
b51332ab228f
changed a few member variables in Player to slightly less confusing names
Grumpy7
parents:
1365
diff
changeset
|
2690 memcpy(&pPlayers[uActiveCharacter]->pInventoryItemList[v52], &_this, sizeof(pPlayers[uActiveCharacter]->pInventoryItemList[v52])); |
1298 | 2691 pPlayers[uActiveCharacter]->pEquipment.uShield = 0; |
2692 pPlayers[uActiveCharacter]->pEquipment.uMainHand = v30; | |
2693 } | |
2694 else | |
2695 { | |
2696 pParty->pPickedItem.uBodyAnchor = 2; | |
2697 v31 = v52 + 1; | |
1384
b51332ab228f
changed a few member variables in Player to slightly less confusing names
Grumpy7
parents:
1365
diff
changeset
|
2698 memcpy(&pPlayers[uActiveCharacter]->pInventoryItemList[v52], &pParty->pPickedItem, sizeof(pPlayers[uActiveCharacter]->pInventoryItemList[v52])); |
1298 | 2699 pPlayers[uActiveCharacter]->pEquipment.uMainHand = v31; |
2700 pMouse->RemoveHoldingItem(); | |
2701 } | |
2702 } | |
2703 } | |
2704 return; | |
2705 default: | |
2706 pPlayers[uActiveCharacter]->UseItem_DrinkPotion_etc(uActiveCharacter, 0); | |
2707 return; | |
2708 } | |
2709 return; | |
2710 } | |
2711 | |
2712 v32 = pMouse->uMouseClickX; | |
2713 v33 = pMouse->uMouseClickY; | |
2714 | |
2715 v34 = pRenderer->pActiveZBuffer[v32 + pSRZBufferLineOffsets[v33]] & 0xFFFF; | |
2716 if ( v34 ) | |
2717 { | |
2718 v36 = v34 - 1; | |
2719 v37 = (int)((char *)pPlayers[uActiveCharacter] + 36 * v36); | |
2720 v50 = v37; | |
2721 v38 = (ItemGen *)(v37 + 532); | |
1358
61010a655c94
a few itemID changed to their enum values + added a few new ones
Grumpy7
parents:
1299
diff
changeset
|
2722 v14 = v38->uItemID == ITEM_WETSUIT; |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2723 pEquipType = pItemsTable->pItems[v38->uItemID].uEquipType; |
1298 | 2724 if ( v14 ) |
2725 { | |
2726 if ( bUnderwater ) | |
2727 { | |
2728 pAudioPlayer->PlaySound(SOUND_27, 0, 0, -1, 0, 0, 0, 0); | |
2729 return; | |
2730 } | |
2731 WetsuitOff(uActiveCharacter); | |
2732 } | |
2733 if ( unk_50C9A0 ) | |
2734 { | |
2735 *((char *)pGUIWindow_Settings->ptr_1C + 8) &= 0x7Fu; | |
2736 *((short *)pGUIWindow_Settings->ptr_1C + 2) = uActiveCharacter - 1; | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2737 v39 = pEquipType; |
1298 | 2738 *((int *)pGUIWindow_Settings->ptr_1C + 3) = v36; |
2739 *((short *)pGUIWindow_Settings->ptr_1C + 3) = v39; | |
2740 ptr_50C9A4 = v38; | |
2741 unk_50C9A0 = 0; | |
2742 if ( pMessageQueue_50CBD0->uNumMessages ) | |
2743 pMessageQueue_50CBD0->uNumMessages = pMessageQueue_50CBD0->pMessages[0].field_8 != 0; | |
2744 pMouse->SetCursorBitmap("MICON1"); | |
2745 dword_50C9D4 = 0; | |
2746 dword_50C9D0 = 113; | |
2747 dword_50C9D8 = 256; | |
2748 } | |
2749 else | |
2750 { | |
2751 if ( !ptr_50C9A4 ) | |
2752 { | |
2753 pParty->SetHoldingItem(v38); | |
2754 *(&pPlayers[uActiveCharacter]->uBirthYear + *(char *)(v50 + 556)) = 0; | |
2755 v38->Reset(); | |
2756 } | |
2757 } | |
2758 } | |
2759 else | |
2760 { | |
2761 v35 = pPlayers[uActiveCharacter]->pEquipment.uBow; | |
2762 if ( v35 ) | |
2763 { | |
1384
b51332ab228f
changed a few member variables in Player to slightly less confusing names
Grumpy7
parents:
1365
diff
changeset
|
2764 auto _a = (ItemGen *)&pPlayers[uActiveCharacter]->pInventoryItemList[v35 - 1]; |
1298 | 2765 pParty->SetHoldingItem(_a); |
2766 _a->Reset(); | |
2767 pPlayers[uActiveCharacter]->pEquipment.uBow = 0; | |
2768 } | |
2769 } | |
2770 } | |
1474
3cda66022a77
UICharacter.cpp cleaning(continue) OnPaperdollLeftClick
Ritor1
parents:
1466
diff
changeset
|
2771 |
1298 | 2772 //----- (004196A0) -------------------------------------------------------- |
2773 void CharacterUI_ReleaseButtons() | |
2774 { | |
2775 GUIButton *i; // esi@2 | |
2776 GUIButton *j; // esi@7 | |
2777 | |
2778 if ( dword_507CC0_activ_ch ) | |
2779 { | |
2780 dword_507CC0_activ_ch = 0; | |
2781 for ( i = pGUIWindow_CurrentMenu->pControlsHead; i; i = j ) | |
2782 { | |
1462 | 2783 j = i->pNext; |
2784 if ( BYTE1(i->field_1C) & 0x80 ) | |
2785 { | |
1298 | 2786 i->Release(); |
1462 | 2787 pAllocator->FreeChunk(i); |
2788 } | |
1298 | 2789 } |
2790 for ( j = pGUIWindow_CurrentMenu->pControlsHead; j; j = j->pNext ) | |
2791 { | |
2792 if ( j->msg == UIMSG_InventoryLeftClick) | |
2793 { | |
2794 j->uX = dword_50698C_uX; | |
2795 j->uY = dword_506988_uY; | |
2796 j->uZ = dword_506984_uZ; | |
2797 j->uW = dword_506980_uW; | |
2798 pGUIWindow_CurrentMenu->_41D08F_set_keyboard_control_group(1, 0, 0, 0); | |
2799 } | |
2800 } | |
2801 } | |
2802 } |