284 0xE, 0x11D, 0xD, 0x11D, 0xC, 0x10A, 0xA, 0xFF, 0xD, 0xF9,
285 0xD, 0x137, 0xC, 0x10E, 0x14, 0x125, 0x13, 0x122, 0x15, 0x120,
286 0x15, 0x114, 0x13, 0x10A, 0x11, 0x13E, 0x11, 0x116, 0x1D, 0x121,
287 0x1C, 0x11F, 0x1B, 0x11B, 0x1C, 0x117, 0x16, 0x116, 0x1B, 0x137,
288 0x1B, 0x11B, 0x1F, 0x127, 0x1F, 0x122, 0x1B, 0x11B, 0x1D, 0x117,
289 0x1D, 0x116, 0x1D, 0x137, 0x1B, 0x11F,
292 0x11, 0x68, 0xF, 0x68, 0x14, 0x71, 0x19, 0x6B, 0x21, 0x6F, 0x5, 0x68,
293 0x5, 0x68, 0x14, 0x71, 0x3, 0x6B, 0xF, 0x6F, 0x15, 0x64, 0xB, 0x6B,
294 0xE, 0x67, 0x15, 0x6B, 0x1B, 0x6F, 0x3, 0x6B, 0, 0x6B, 0xE, 0x67,
295 0, 0x6B, 0x3, 0x6F, 0x10, 0x8A, 0x9, 0x8B, 0x18, 0x98, 0x25, 0x91,
296 0x29, 0x90, 0x8, 0x8A, 0x9, 0x8B, 0x18, 0x98, 0x3, 0x91, 0x3, 0x90,
297 0x14, 0x92, 0x10, 0x92, 0x15, 0x98, 0x1F, 0x91, 0x22, 0x90, 0x8, 0x92,
298 0xC, 0x92, 0x15, 0x98, 0x3, 0x91, 0x3, 0x90,
301 0x11, 0x68, 0x34, 0x64, 0x21, 0x69, 0x1D, 0x67, 0x20, 0x67, 0x21, 0x68,
302 0x34, 0x64, 0x21, 0x69, 0x1D, 0x67, 0x1F, 0x67, 0x13, 0x64, 0x35, 0x66,
303 0x29, 0x68, 0x1F, 0x68, 0x1F, 0x6A, 0x21, 0x6A, 0x2B, 0x66, 0x26, 0x68,
304 0x1F, 0x68, 0x1F, 0x6A, 0, 0, 0x30, 0x87, 0x1E, 0x86, 0x1B, 0x86,
305 0x1C, 0x8A, 0x21, 0x87, 0x30, 0x87, 0x1E, 0x86, 0x1B, 0x86, 0x1C, 0x8A,
306 0, 0, 0x38, 0x8A, 0x24, 0x8B, 0x1D, 0x8B, 0x21, 0x8C, 0x27, 0x8A,
307 0x34, 0x8A, 0x24, 0x8B, 0x25, 0x8B, 0x21, 0x8C,
311 0x3A, 0xB6, 0x37, 0xB2, 0x34, 0xB9, 0x3A, 0xB9, 0x37, 0xB7, 0x38, 0xAC,
312 0x37, 0xB7, 0x3E, 0xAD, 0x3A, 0xAC, 0x37, 0xB0, 0x3A, 0xB1, 0x39, 0xB0,
313 0x3C, 0xA5, 0x39, 0xB0, 0x3B, 0xD5, 0x37, 0xD2, 0x31, 0xD5, 0x39, 0xD6,
314 0x37, 0xD8, 0x37, 0xD1, 0x37, 0xD8, 0x42, 0xD2, 0x3F, 0xD0, 0x3B, 0xD7,
315 0x3C, 0xD5, 0x3B, 0xD6, 0x3E, 0xCF, 0x36, 0xD6,
318 0x3E, 0x1F, 0x41, 0x2C, 0x37, 0x2F, 0x31, 0x32, 0x37, 0x2A, 0x39, 0x28,
319 0x36, 0x34, 0x41, 0x38, 0x40, 0x31, 0x40, 0x21, 0x40, 0x31, 0x3C, 0x33,
320 0x3D, 0x24, 0x3A, 0x1A, 0x37, 0x2A, 0x41, 0x48, 0x41, 0x1E, 0x42, 0x2B,
321 0x37, 0x2F, 0x34, 0x30, 0x39, 0x29, 0x3A, 0x26, 0x36, 0x34, 0x41, 0x37,
322 0x42, 0x32, 0x40, 0x21, 0x40, 0x31, 0x40, 0x2F, 0x3E, 0x22, 0x3B, 0x1A,
323 0x39, 0x29, 0x42, 0x47, 0x3F, 0x47, 0x41, 0x56, 0x37, 0x59, 0x32, 0x5E,
324 0x37, 0x58, 0x39, 0x54, 0x34, 0x61, 0x40, 0x61, 0x41, 0x5D, 0x3E, 0x4F,
325 0x3E, 0x5B, 0x3D, 0x5B, 0x3F, 0x4C, 0x3B, 0x45, 0x37, 0x58, 0x41, 0x74,
326 0x45, 0x45, 0x46, 0x54, 0x3A, 0x55, 0x38, 0x58, 0x3C, 0x54, 0x3F, 0x52,
327 0x39, 0x5B, 0x45, 0x5C, 0x47, 0x5C, 0x44, 0x4B, 0x44, 0x57, 0x43, 0x55,
328 0x44, 0x4A, 0x3E, 0x45, 0x3C, 0x54, 0x47, 0x70,
337 0x67, 0x6A, 0x65, 0x6C, 0x74, 0x8D, 0x74, 0x93,
340 0x1A, 0x6B, 0x28, 0x6D, 0x19, 0x8D, 0x20, 0x92,
343 0x1E, 0x90, 0x22, 0x9E, 0x19, 0xBA, 0x1F, 0xB8,
346 0x80, 0xCD, 0x83, 0xC9, 0x83, 0xD8, 0x7B, 0xD8,
353 0x2C, 0x67, 0x30, 0x69, 0x2D, 0x67, 0x2C, 0x64, 0x14, 0x66, 0x22, 0x67,
354 0x20, 0x66, 0x25, 0x66, 0x12, 0x66,
355 0x0A, 0x66, 0x13, 0x64, 0x0E, 0x64, 0x0A, 0x63, 0x14, 0x66, 0x0A, 0x63,
356 0x0A, 0x66, 0x25, 0x66,
358 0x32, 0x68, 0x32, 0x69, 0x35, 0x69, 0x33, 0x68, 0x24, 0x67, 0x30, 0x69,
359 0x33, 0x68, 0x31, 0x69, 0x19, 0x69, 0x19, 0x6A, 0x16, 0x66, 0x16, 0x65,
360 0x0F, 0x6B, 0x24, 0x67, 0x0F, 0x6B, 0x19, 0x6A, 0x31, 0x69,
362 0x2A, 0x8C, 0x29, 0x8C, 0x2A, 0x89, 0x29, 0x86, 0x12, 0x87, 0x2D, 0x89,
363 0x2A, 0x88, 0x25, 0x87, 0x12, 0x8B, 0x12, 0x8B, 0x11, 0x8A, 0x15, 0x87,
364 0x09, 0x89, 0x12, 0x87, 0x09, 0x89, 0x12, 0x8B, 0x25, 0x87,
366 0x33, 0x90, 0x32, 0x90, 0x34, 0x91, 0x32, 0x8E, 0x21, 0x8B, 0x31, 0x8B,
367 0x33, 0x8E, 0x2F, 0x8F, 0x16, 0x8D, 0x18, 0x8C, 0x19, 0x8C, 0x1B, 0x8E,
368 0x0C, 0x8C, 0x21, 0x8B, 0x0C, 0x8C, 0x18, 0x8C, 0x2F, 0x8F,
371 0x64, 0x67, 0x61, 0x67, 0x65, 0x68, 0x6E, 0x74, 0x6C, 0x68, 0x61, 0x67,
372 0x66, 0x68, 0x6C, 0x6A, 0x6E, 0x6D, 0x67, 0x69, 0x70, 0x67, 0x6E, 0x6D,
373 0x6C, 0x6F, 0x6C, 0x68, 0x6C, 0x6F, 0x67, 0x69, 0x6C, 0x6A,
375 0x60, 0x6B, 0x60, 0x6C, 0x60, 0x6B, 0x61, 0x6A, 0x60, 0x69, 0x60, 0x6A,
376 0x60, 0x6A, 0x61, 0x69, 0x63, 0x6A, 0x64, 0x6A, 0x61, 0x66, 0x66, 0x67,
377 0x64, 0x6C, 0x60, 0x69, 0x64, 0x6C, 0x64, 0x6A, 0x61, 0x69,
379 0x6D, 0x8C, 0x75, 0x8C, 0, 0, 0x72, 0x8D, 0x6A, 0x89, 0, 0,
380 0x73, 0x8C, 0x69, 0x8C, 0x6E, 0x8D, 0x71, 0x8D, 0x70, 0x8D, 0x72, 0x8D,
381 0x74, 0x8E, 0x6A, 0x89, 0x74, 0x8E, 0x71, 0x8D, 0x69, 0x8C,
383 0x72, 0x91, 0x72, 0x91, 0, 0, 0x6E, 0x92, 0x6F, 0x91, 0, 0,
384 0, 0, 0x6E, 0x91, 0x71, 0x90, 0x72, 0x8D, 0x72, 0x90, 0x73, 0x93,
385 0x73, 0x90, 0x6F, 0x91, 0x73, 0x90, 0x72, 0x8D, 0x6E, 0x91,
388 0, 0, 0x61, 0x67, 0, 0, 0x64, 0x69, 0x64, 0x68, 0, 0,
389 0, 0, 0x5E, 0x66, 0x5F, 0x69, 0x55, 0x69, 0x5F, 0x67, 0x5F, 0x68,
390 0x32, 0x69, 0x64, 0x68, 0x32, 0x69, 0x55, 0x69, 0x5E, 0x66,
392 0, 0, 0x60, 0x6C, 0, 0, 0x60, 0x6C, 0x5E, 0x69, 0, 0,
393 0, 0, 0x5D, 0x6A, 0x5B, 0x6A, 0x5B, 0x6A, 0x59, 0x69, 0x56, 0x68,
394 0x38, 0x6E, 0x5E, 0x69, 0x38, 0x6E, 0x5B, 0x6A, 0x5D, 0x6A,
396 0, 0, 0x75, 0x8C, 0, 0, 0x72, 0x8D, 0x62, 0x89, 0, 0,
397 0, 0, 0x69, 0x8C, 0x5E, 0x8D, 0x61, 0x8D, 0x5F, 0x8D, 0x60, 0x8D,
398 0x2E, 0x8C, 0x62, 0x89, 0x2E, 0x8C, 0x61, 0x8D, 0x69, 0x8C,
400 0, 0, 0x72, 0x91, 0, 0, 0x72, 0x91, 0x67, 0x8F, 0, 0,
401 0, 0, 0x6E, 0x91, 0x64, 0x93, 0x65, 0x8C, 0x65, 0x91, 0x67, 0x91,
402 0x36, 0x90, 0x67, 0x8F, 0x36, 0x90, 0x65, 0x8C, 0x6E, 0x91,
406 "pc01lad",
"pc02lad",
"pc03lad",
"pc04lad",
"pc05lad",
"pc06lad",
"pc07lad",
407 "pc08lad",
"pc09lad",
"pc10lad",
"pc11lad",
"pc12lad",
"pc13lad",
"pc14lad",
408 "pc15lad",
"pc16lad",
"pc17lad",
"pc18lad",
"pc19lad",
"pc20lad",
"pc21lad",
409 "pc22lad",
"pc23lad",
"pc24lad",
"pc25lad"};
411 "pc01lau",
"pc02lau",
"pc03lau",
"pc04lau",
"pc05lau",
"pc06lau",
"pc07lau",
412 "pc08lau",
"pc09lau",
"pc10lau",
"pc11lau",
"pc12lau",
"pc13lau",
"pc14lau",
413 "pc15lau",
"pc16lau",
"pc17lau",
"pc18lau",
"pc19lau",
"pc20lau",
"pc21lau",
414 "pc22lau",
"pc23lau",
"pc24lau",
"pc25lau"};
416 "pc01bod",
"pc02bod",
"pc03bod",
"pc04bod",
"pc05bod",
"pc06bod",
"pc07bod",
417 "pc08bod",
"pc09bod",
"pc10bod",
"pc11bod",
"pc12bod",
"pc13bod",
"pc14bod",
418 "pc15bod",
"pc16bod",
"pc17bod",
"pc18bod",
"pc19bod",
"pc20bod",
"pc21bod",
419 "pc22bod",
"pc23bod",
"pc24bod",
"pc25bod"};
421 "pc01rh",
"pc02rh",
"pc03rh",
"pc04rh",
"pc05rh",
"pc06rh",
"pc07rh",
422 "pc08rh",
"pc09rh",
"pc10rh",
"pc11rh",
"pc12rh",
"pc13rh",
"pc14rh",
423 "pc15rh",
"pc16rh",
"pc17rh",
"pc18rh",
"pc19rh",
"pc20rh",
"pc21rh",
424 "pc22rh",
"pc23rh",
"pc24rh",
"pc25rh"};
426 "pc01lh",
"pc02lh",
"pc03lh",
"pc04lh",
"pc05lh",
"pc06lh",
"pc07lh",
427 "pc08lh",
"pc09lh",
"pc10lh",
"pc11lh",
"pc12lh",
"pc13lh",
"pc14lh",
428 "pc15lh",
"pc16lh",
"pc17lh",
"pc18lh",
"pc19lh",
"pc20lh",
"pc21lh",
429 "pc22lh",
"pc23lh",
"pc24lh",
"pc25lh"};
431 "pc01lhu",
"pc02lhu",
"pc03lhu",
"pc04lhu",
"pc05lhu",
"pc06lhu",
"pc07lhu",
432 "pc08lhu",
"pc09lhu",
"pc10lhu",
"pc11lhu",
"pc12lhu",
"pc13lhu",
"pc14lhu",
433 "pc15lhu",
"pc16lhu",
"pc17lhu",
"pc18lhu",
"pc19lhu",
"pc20lhu",
"pc21lhu",
434 "pc22lhu",
"pc23lhu",
"pc24lhu",
"pc25lhu"};
480 {{paperdoll_dbrds[10], paperdoll_dbrds[9]}});
485 {{paperdoll_dbrds[8], paperdoll_dbrds[7]}});
491 {{paperdoll_dbrds[6], paperdoll_dbrds[5]}});
496 {{paperdoll_dbrds[4], paperdoll_dbrds[3]}});
502 {{paperdoll_dbrds[2], paperdoll_dbrds[1]}});
531 render->ClearZBuffer(0, 479);
537 render->DrawTextureAlphaNew(
550 render->DrawTextureAlphaNew(
561 render->DrawTextureAlphaNew(
571 render->DrawTextureAlphaNew(
636 int v128, v125, v123, v121;
667 0, 0,
window->GetWidth(),
window->GetHeight(), (
int)
this,
"");
671 {{paperdoll_dbrds[2], paperdoll_dbrds[1]}});
672 CS_inventory_window->CreateButton(0, 0, 0x1DCu, 0x159u, 1, 122,
677 CS_inventory_window->CreateButton(61, 424, 31, 0, 2, 94,
679 CS_inventory_window->CreateButton(177, 424, 31, 0, 2, 94,
681 CS_inventory_window->CreateButton(292, 424, 31, 0, 2, 94,
683 CS_inventory_window->CreateButton(407, 424, 31, 0, 2, 94,
686 return CS_inventory_window;
690 Player *player,
int x,
int y,
const int *skill_list,
int skill_list_size,
691 int right_margin,
const char *skill_group_name) {
694 auto str =
StringPrintf(
"%s\r%03d%s", skill_group_name, right_margin,
699 int num_skills_drawn = 0;
700 for (
int i = 0; i < skill_list_size; ++i) {
708 if ((v9 & 0x7FFF) != skill)
717 uint skill_color = 0;
718 uint skill_mastery_color = 0;
728 skill_color = skill_mastery_color;
734 right_margin, skill_level);
736 skill_color, Strsk, 0, 0, 0);
738 const char *skill_level_str =
nullptr;
752 if (!skill_mastery_color)
756 "%s \f%05d%s\f%05d\r%03d%2d",
758 skill_level_str, skill_color, right_margin, skill_level);
760 skill_color, Strsk, 0, 0, 0);
765 if (!num_skills_drawn) {
777 render->DrawTextureAlphaNew(8 / 640.0
f, 8 / 480.0
f,
781 StringPrintf(
"%s \f%05d%s\f00000\r177%s: \f%05d%d\f00000",
817 render->DrawTextureAlphaNew(8 / 640.0
f, 8 / 480.0
f,
855 if (items_per_page < 0) {
903 if (str.length() < 1) str =
String(v6);
920 if ((
signed int)uNumPixels < 14) uNumPixels = 14;
921 return ((
signed int)(uNumPixels - 14) >> 5) + 1;
940 const char *container =
nullptr;
943 int pBodyComplection;
944 bool two_handed_left_fist;
956 for (
uint i = 0; i < 4; ++i) {
963 render->ResetUIClipRect();
964 render->DrawTextureAlphaNew(467 / 640.0
f, 0,
971 render->ZDrawTextureAlpha(
982 render->DrawTextureAlphaNew(
1006 container =
"sptext01";
1008 container =
"sp28a";
1010 container =
"sp30a";
1012 container =
"sp91a";
1026 render->DrawTransparentRedShade(item_X / 640.0
f,
1029 render->DrawTextureAlphaNew(item_X / 640.0
f, item_Y / 480.0
f,
1032 render->DrawTransparentGreenShade(item_X / 640.0
f,
1037 render->ZDrawTextureAlpha(item_X / 640.0
f, item_Y / 480.0
f,
1056 container =
"sptext01";
1058 container =
"sp28a";
1060 container =
"sp30a";
1062 container =
"sp91a";
1074 render->DrawTransparentRedShade(item_X / 640.0
f,
1077 render->DrawTransparentGreenShade(item_X / 640.0
f,
1080 render->DrawTextureAlphaNew(item_X / 640.0
f, item_Y / 480.0
f,
1085 render->ZDrawTextureAlpha(item_X / 640.0
f, item_Y / 480.0
f,
1119 container =
"sptext01";
1121 container =
"sp28a";
1123 container =
"sp30a";
1125 container =
"sp91a";
1138 render->DrawTransparentRedShade(
1139 item_X / 640.0
f, item_Y / 480.0
f,
1142 render->DrawTextureAlphaNew(
1143 item_X / 640.0
f, item_Y / 480.0
f,
1148 render->ZDrawTextureAlpha(
1149 item_X / 640.0
f, item_Y / 480.0
f,
1186 container =
"sptext01";
1188 container =
"sp28a";
1190 container =
"sp30a";
1192 container =
"sp91a";
1205 render->DrawTransparentRedShade(
1206 item_X / 640.0
f, item_Y / 480.0
f,
1209 render->DrawTransparentGreenShade(
1210 item_X / 640.0
f, item_Y / 480.0
f,
1213 render->DrawTextureAlphaNew(
1214 item_X / 640.0
f, item_Y / 480.0
f,
1219 render->ZDrawTextureAlpha(
1220 item_X / 640.0
f, item_Y / 480.0
f,
1250 container =
"sptext01";
1252 container =
"sp28a";
1254 container =
"sp30a";
1256 container =
"sp91a";
1264 item_X, item_Y, v59,
1268 render->DrawTransparentRedShade(item_X / 640.0
f,
1269 item_Y / 480.0
f, v59);
1271 render->DrawTextureAlphaNew(item_X / 640.0
f,
1272 item_Y / 480.0
f, v59);
1274 render->DrawTransparentGreenShade(item_X / 640.0
f,
1275 item_Y / 480.0
f, v59);
1279 render->ZDrawTextureAlpha(item_X / 640.0
f, item_Y / 480.0
f,
1290 render->DrawTextureAlphaNew(
1315 if (IsDwarf != 1 ||
index == 5)
1322 container =
"sptext01";
1324 container =
"sp28a";
1326 container =
"sp30a";
1328 container =
"sp91a";
1336 item_X, item_Y, v75,
1340 render->DrawTransparentRedShade(item_X / 640.0
f,
1341 item_Y / 480.0
f, v75);
1343 render->DrawTextureAlphaNew(item_X / 640.0
f,
1344 item_Y / 480.0
f, v75);
1346 render->DrawTransparentGreenShade(item_X / 640.0
f,
1347 item_Y / 480.0
f, v75);
1351 render->ZDrawTextureAlpha(item_X / 640.0
f, item_Y / 480.0
f,
1408 container =
"sptext01";
1410 container =
"sp28a";
1412 container =
"sp30a";
1414 container =
"sp91a";
1423 item_X, item_Y, v94,
1428 render->DrawTransparentRedShade(
1429 item_X / 640.0
f, item_Y / 480.0
f, v94);
1431 render->DrawTextureAlphaNew(item_X / 640.0
f,
1432 item_Y / 480.0
f, v94);
1434 render->DrawTransparentGreenShade(
1435 item_X / 640.0
f, item_Y / 480.0
f, v94);
1451 container =
"sptext01";
1453 container =
"sp28a";
1455 container =
"sp30a";
1457 container =
"sp91a";
1472 render->DrawTransparentRedShade(
1473 item_X / 640.0
f, item_Y / 480.0
f,
1477 render->DrawTextureAlphaNew(
1478 item_X / 640.0
f, item_Y / 480.0
f,
1482 render->DrawTransparentGreenShade(
1483 item_X / 640.0
f, item_Y / 480.0
f,
1524 container =
"sptext01";
1526 container =
"sp28a";
1528 container =
"sp30a";
1530 container =
"sp91a";
1545 render->DrawTransparentRedShade(
1546 item_X / 640.0
f, item_Y / 480.0
f,
1550 render->DrawTextureAlphaNew(
1551 item_X / 640.0
f, item_Y / 480.0
f,
1557 render->ZDrawTextureAlpha(
1558 item_X / 640.0
f, item_Y / 480.0
f,
1568 render->DrawTextureAlphaNew(
1612 container =
"sptext01";
1614 container =
"sp28a";
1616 container =
"sp30a";
1618 container =
"sp91a";
1626 item_X, item_Y, v127,
1630 render->DrawTransparentRedShade(item_X / 640.0
f,
1631 item_Y / 480.0
f, v127);
1633 render->DrawTextureAlphaNew(item_X / 640.0
f,
1634 item_Y / 480.0
f, v127);
1636 render->DrawTransparentGreenShade(item_X / 640.0
f,
1637 item_Y / 480.0
f, v127);
1641 render->ZDrawTextureAlpha(item_X / 640.0
f, item_Y / 480.0
f,
1663 container =
"sptext01";
1665 container =
"sp28a";
1667 container =
"sp30a";
1669 container =
"sp91a";
1681 render->DrawTransparentRedShade(item_X / 640.0
f,
1684 render->DrawTextureAlphaNew(item_X / 640.0
f, item_Y / 480.0
f,
1687 render->DrawTransparentGreenShade(item_X / 640.0
f,
1692 render->ZDrawTextureAlpha(item_X / 640.0
f, item_Y / 480.0
f,
1703 two_handed_left_fist =
true;
1725 two_handed_left_fist =
false;
1737 container =
"sptext01";
1740 container =
"sp28a";
1742 container =
"sp30a";
1744 container =
"sp91a";
1753 item_X, item_Y, v153,
1757 render->DrawTransparentRedShade(item_X / 640.0
f,
1758 item_Y / 480.0
f, v153);
1760 render->DrawTransparentGreenShade(item_X / 640.0
f,
1761 item_Y / 480.0
f, v153);
1763 render->DrawTextureAlphaNew(item_X / 640.0
f, item_Y / 480.0
f,
1767 if (two_handed_left_fist)
1769 render->DrawTextureAlphaNew(
1778 render->ZDrawTextureAlpha(item_X / 640.0
f, item_Y / 480.0
f,
1784 render->DrawTextureAlphaNew(
1795 render->DrawTextureAlphaNew(
1811 render->DrawTextureAlphaNew(
1822 render->DrawTextureAlphaNew(603 / 640.0
f, 299 / 480.0
f,
1830 render->DrawTextureAlphaNew(8 / 640.0
f, 8 / 480.0
f,
1839 render->DrawTextureAlphaNew(8 / 640.0
f, 305 / 480.0
f,
1843 for (
uint i = 0; i < 126; ++i) {
1848 unsigned int uCellY = 32 * (i / 14) + 17;
1849 unsigned int uCellX = 32 * (i % 14) + 14;
1860 signed int X_offset = (((
signed int)((
width - 14) & 0xFFFFFFE0) + 32) -
width) / 2;
1861 signed int Y_offset = (((
signed int)((
height - 14) & 0xFFFFFFE0) + 32) -
height) / 2;
1871 Image *enchantment_texture =
nullptr;
1874 enchantment_texture =
1894 render->BlendTextures(
x,
y, item_texture, enchantment_texture,
1898 render->DrawTransparentRedShade(
x / 640.0
f,
y / 480.0
f,
1901 render->DrawTransparentGreenShade(
x / 640.0
f,
y / 480.0
f,
1904 render->DrawTextureAlphaNew(
x / 640.0
f,
y / 480.0
f, item_texture);
1906 render->ZBuffer_Fill_2(
x,
y, item_texture,
id);
1914 render->DrawTextureAlphaNew(
1921 for (
uint i = 0; i < 6; ++i) {
1923 static int pPaperdollRingsX[6] = {0x1EA, 0x21A, 0x248,
1924 0x1EA, 0x21A, 0x248};
1925 static int pPaperdollRingsY[6] = {0x0CA, 0x0CA, 0x0CA,
1926 0x0FA, 0x0FA, 0x0FA};
1928 pPaperdollRingsX[i], pPaperdollRingsY[i],
1948 char pContainer[128];
1965 for (
uint i = 0; i < 4; ++i) {
1966 if (
pPlayers[i + 1]->HasUnderwaterSuitEquipped()) {
1968 v3 = (
pPlayers[i + 1]->GetSexByVoice() != 0) + 3;
1970 v3 = (
pPlayers[i + 1]->GetSexByVoice() != 0) + 1;
1971 sprintf(pContainer,
"pc23v%dBod",
v3);
1974 sprintf(pContainer,
"pc23v%dlad",
v3);
1977 sprintf(pContainer,
"pc23v%dlau",
v3);
1980 sprintf(pContainer,
"pc23v%drh",
v3);
1983 sprintf(pContainer,
"pc23v%dlh",
v3);
1986 sprintf(pContainer,
"pc23v%dlhu",
v3);
2010 if (
pPlayers[i + 1]->uCurrentFace == 12 ||
2011 pPlayers[i + 1]->uCurrentFace == 13) {
2014 "pc%02dbrd",
pPlayers[i + 1]->uCurrentFace + 1));
2019 "item281pc%02d",
pPlayers[i + 1]->uCurrentFace + 1));
2035 for (
uint i = 0; i < 54; ++i) {
2038 for (
uint j = 0; j < 4; ++j) {
2046 for (
uint i = 0; i < 4; ++i) {
2085 for (
uint i = 0; i < 2; ++i) {
2086 for (
uint j = 0; j < 5; ++j) {
2092 for (
uint j = 0; j < 11; ++j) {
2112 for (
uint i = 0; i < 4; ++i) {
2118 for (v32 = 0; v32 < 13; ++v32) {
2166 for (v33 = 0; v33 < 5; ++v33) {
2174 for (v38 = 0; v38 < 5; ++v38) {
2220 int buttons_count = 0;
2240 unsigned int current_Y = 2 * uCurrFontHeght + 13;
2241 for (
int i = 0; i < 9; ++i) {
2244 current_Y += uCurrFontHeght - 3;
2248 24, current_Y, 204, uCurrFontHeght - 3, 3, skill_id | 0x8000,
2252 if (!first_rows) current_Y += uCurrFontHeght - 3;
2253 current_Y += 2 * uCurrFontHeght - 6;
2254 for (
int i = 0; i < 9; ++i) {
2256 if (curr_player->
pActiveSkills[skill_id] & 0x3F && buttons_count < 15) {
2257 current_Y += uCurrFontHeght - 3;
2260 24, current_Y, 204, uCurrFontHeght - 3, 3, skill_id | 0x8000,
2265 current_Y = 2 * uCurrFontHeght + 13;
2266 for (
int i = 0; i < 5; ++i) {
2269 current_Y += uCurrFontHeght - 3;
2273 246, current_Y, 204, uCurrFontHeght - 3, 3, skill_id | 0x8000,
2277 if (!first_rows) current_Y += uCurrFontHeght - 3;
2278 current_Y += 2 * uCurrFontHeght - 6;
2279 for (
int i = 0; i < 12; ++i) {
2282 current_Y += uCurrFontHeght - 3;
2285 246, current_Y, 204, uCurrFontHeght - 3, 3, skill_id | 0x8000,
2290 if (buttons_count) {
2292 buttons_count, 1, 0, buttons_count);
2299 const char *text_format;
2301 render->DrawTextureAlphaNew(8 / 640.0
f, 8 / 480.0
f,
2310 +
StringPrintf(
"\f00000\r180%s: \f%05d%d\f00000\n\n\n",
2375 text_format =
"%s\f%05u\r424%d\f00000 /\t185%d\n";
2377 text_format =
"%s\f%05u\r388%d\f00000 / %d\n";
2385 text_format =
"%s\f%05u\r424%d\f00000 /\t185%d\n";
2387 text_format =
"%s\f%05u\r388%d\f00000 / %d\n";
2396 auto str11 =
StringPrintf(
"%s\f%05u\r424%d\f00000 /\t185%d\n\n",
2581 if (
pAwards[i].uPriority == 0)
2583 else if (
pAwards[j].uPriority == 0)
2585 else if (
pAwards[i].uPriority == 1)
2587 else if (
pAwards[j].uPriority == 1)
2589 else if (
pAwards[i].uPriority == 5)
2591 else if (
pAwards[j].uPriority == 5)
2608 for (
int i = 1; i < 105; ++i) {
2645 signed int player_sex;
2647 char pContainer[20];
2649 if (uPlayerID > 0) {
2650 player_race =
pPlayers[uPlayerID]->GetRace();
2651 player_sex =
pPlayers[uPlayerID]->GetSexByVoice();
2653 texture_num = (player_sex != 0) + 3;
2655 texture_num = (player_sex != 0) + 1;
2657 sprintf(pContainer,
"pc23v%dBod", texture_num);
2659 sprintf(pContainer,
"pc23v%dlad", texture_num);
2661 sprintf(pContainer,
"pc23v%dlau", texture_num);
2663 sprintf(pContainer,
"pc23v%drh", texture_num);
2665 sprintf(pContainer,
"pc23v%dlh", texture_num);
2667 sprintf(pContainer,
"pc23v%dlhu", texture_num);
2670 if (
pPlayers[uPlayerID]->uCurrentFace == 12 ||
2671 pPlayers[uPlayerID]->uCurrentFace == 13)
2681 if (uPlayerID > 0) {
2696 if (
pPlayers[uPlayerID]->uCurrentFace == 12 ||
2697 pPlayers[uPlayerID]->uCurrentFace == 13) {
2700 "pc%02dbrd",
pPlayers[uPlayerID]->uCurrentFace + 1));
2705 "item281pc%02d",
pPlayers[uPlayerID]->uCurrentFace + 1));
2716 static int RingsX[6] = {0x1EA, 0x21A, 0x248, 0x1EA, 0x21A, 0x248};
2717 static int RingsY[6] = {0x0CA, 0x0CA, 0x0CA, 0x0FA, 0x0FA, 0x0FA};
2719 static int glovex = 586;
2720 static int glovey = 88;
2722 static int amuletx = 493;
2723 static int amulety = 91;
2731 unsigned int pSkillType;
2748 int twohandedequip = 0;
2755 ->pInventoryItemList[mainhandequip - 1]
2757 twohandedequip = mainhandequip;
2765 if (pSkillType == 4) {
2778 if ((pSkillType == 8 || pSkillType == 1 ||
2782 ->pInventoryItemList[mainhandequip - 1]
2783 .GetPlayerSkillType() == 4) {
2806 switch (pEquipType) {
2842 ->HasUnderwaterSuitEquipped()) {
2852 for (
int equippos = 0; equippos < 6; ++equippos) {
2854 ->pEquipment.uRings[equippos]) {
2856 ->FindFreeInventoryListSlot();
2857 if (freeslot >= 0) {
2861 ->pInventoryItemList[freeslot],
2864 ->pInventoryItemList[freeslot]));
2866 ->pEquipment.uRings[equippos] =
2881 ->pInventoryItemList[freeslot]
2886 ->pInventoryItemList[freeslot]);
2891 ->pInventoryItemList[freeslot],
2899 for (
int i = 0; i < 6; ++i) {
2900 if (mousex >= RingsX[i] &&
2901 mousex <= (RingsX[i] + slot) &&
2902 mousey >= RingsY[i] &&
2903 mousey <= (RingsY[i] +
2915 ->FindFreeInventoryListSlot();
2916 if (freeslot >= 0) {
2920 ->pInventoryItemList[freeslot],
2923 ->pInventoryItemList[freeslot]));
2925 ->pEquipment.uRings[pos] = freeslot + 1;
2931 ->pEquipment.uRings[pos] -
2936 ->pInventoryItemList[freeslot]
2945 ->pInventoryItemList[freeslot],
2963 ->HasUnderwaterSuitEquipped()) {
2976 ->pInventoryItemList[shieldequip]
2981 ->pInventoryItemList[shieldequip]);
2984 ->pInventoryItemList[shieldequip],
2992 if (freeslot < 0)
return;
2993 if (!twohandedequip) {
2998 ->pInventoryItemList[freeslot],
3001 ->pInventoryItemList[freeslot]));
3009 ->pInventoryItemList[mainhandequip]
3014 ->pInventoryItemList[mainhandequip]);
3017 ->pInventoryItemList[freeslot],
3020 ->pInventoryItemList[freeslot]));
3042 if (pSkillType == 2 &&
3046 || pSkillType == 1 &&
3053 if (!twohandedequip) {
3059 ->pInventoryItemList[shieldequip]
3064 ->pInventoryItemList[shieldequip]);
3067 ->pInventoryItemList[shieldequip],
3076 ->FindFreeInventoryListSlot();
3077 if (v23 < 0)
return;
3080 ->pInventoryItemList[v23],
3083 ->pInventoryItemList[v23]));
3093 if (!mainhandequip) {
3096 if (v26 < 0)
return;
3101 ->pInventoryItemList[v26]));
3110 ->pInventoryItemList[mainhandequip]
3115 ->pInventoryItemList[mainhandequip]);
3118 ->pInventoryItemList[mainhandequip],
3137 if (mainhandequip) {
3146 ->pInventoryItemList[mainhandequip]
3151 ->pInventoryItemList[mainhandequip]);
3154 ->pInventoryItemList[mainhandequip],
3161 if (freeslot >= 0) {
3167 ->pInventoryItemList[shieldequip]
3172 ->pInventoryItemList[shieldequip]);
3175 ->pInventoryItemList[freeslot],
3178 ->pInventoryItemList[freeslot]));
3185 ->pInventoryItemList[freeslot],
3188 ->pInventoryItemList[freeslot]));
3210 if (mousex < 490 || mousex > 618)
return;
3212 if (mousey < 88 || mousey > 282)
return;
3214 if (mousex >= amuletx && mousex <= (amuletx + slot) &&
3215 mousey >= amulety && mousey <= (amulety + 2 * slot)) {
3221 if (mousex >= glovex && mousex <= (glovex + slot) && mousey >= glovey &&
3222 mousey <= (glovey + 2 * slot)) {
3228 for (
int i = 0; i < 6; ++i) {
3229 if (mousex >= RingsX[i] && mousex <= (RingsX[i] + slot) &&
3230 mousey >= RingsY[i] && mousey <= (RingsY[i] + slot)) {
3253 pSpellInfo->
uFlags &= 0x7F;
3257 pSpellInfo->
field_6 = pEquipType;
3270 ->pEquipment.pIndices[pitem->
uBodyAnchor - 1] = 0;
3312 ->pInventoryItemList[v34 - 1]
3313 .GetItemEquipType();
3315 if (
engine->IsUnderwater()) {
3332 pSpellInfo->
uFlags &= 0x7F;
3335 pSpellInfo->
field_6 = pEquipType;
3348 ->pInventoryItemList[v34 - 1]);
3351 ->pInventoryItemList[v34 - 1]
3355 ->pInventoryItemList[v34 - 1]
3374 std::vector<GUIButton*> to_delete;
3377 to_delete.push_back(pButton);