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