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