From 45038d6ce50cd53b127368a817e5e0cb76ad15cd Mon Sep 17 00:00:00 2001 From: jummy Date: Wed, 11 Sep 2024 12:26:02 -0500 Subject: [PATCH] PIXTABLES --- Speedy Eggbert 2 Source.vcxproj | 19 +- src/pixmap.cpp | 96 +-- src/pixtables.h | 1190 ++++++++++++++++++++++++++++++- util/extract_pixtables.py | 31 + 4 files changed, 1266 insertions(+), 70 deletions(-) create mode 100644 util/extract_pixtables.py diff --git a/Speedy Eggbert 2 Source.vcxproj b/Speedy Eggbert 2 Source.vcxproj index ef05307..3919902 100644 --- a/Speedy Eggbert 2 Source.vcxproj +++ b/Speedy Eggbert 2 Source.vcxproj @@ -23,7 +23,8 @@ Win32Proj {e424a3cb-c8b8-447c-be63-41a57e65b449} SpeedyEggbert2Source - 10.0 + + @@ -74,10 +75,10 @@ Level3 false - WIN32;_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + WINVER=0x400;WIN32;_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) true dxsdk3\sdk\inc - UNICODE;_UNICODE + UNICODE;_UNICODE;_WIN32_WINNT;NTDDI_VERSION @@ -98,10 +99,10 @@ true true true - WIN32;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + WINVER=0x400;WIN32;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) true dxsdk3\sdk\inc - UNICODE;_UNICODE + UNICODE;_UNICODE;_WIN32_WINNT;NTDDI_VERSION Windows @@ -119,10 +120,10 @@ Level3 true - WIN32;_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + WINVER=0x400;WIN32;_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) true dxsdk3\sdk\inc - UNICODE;_UNICODE + UNICODE;_UNICODE;_WIN32_WINNT;NTDDI_VERSION Windows @@ -141,10 +142,10 @@ true true true - WIN32;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + WINVER=0x400;WIN32;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) true dxsdk3\sdk\inc - UNICODE;_UNICODE + UNICODE;_UNICODE;_WIN32_WINNT;NTDDI_VERSION Windows diff --git a/src/pixmap.cpp b/src/pixmap.cpp index 629b3fd..ceaf537 100644 --- a/src/pixmap.cpp +++ b/src/pixmap.cpp @@ -315,42 +315,42 @@ void CPixmap::QuickIcon(int channel, int rank, POINT pos) if (channel == CHOBJECT) { if (table_icon_object[0] <= rank) return; - rect.left = table_icon_object[rank * 6 + 0]; - rect.top = table_icon_object[rank * 6 + 1]; - rect.right = rect.left + table_icon_object[rank * 6 + 4]; - rect.bottom = rect.top + table_icon_object[rank * 6 + 5]; - pos.x += table_icon_object[rank * 6 + 2]; - pos.y += table_icon_object[rank * 6 + 3]; + rect.left = table_icon_object[rank * 6 + 0 + 1]; + rect.top = table_icon_object[rank * 6 + 1 + 1]; + rect.right = rect.left + table_icon_object[rank * 6 + 4 + 1]; + rect.bottom = rect.top + table_icon_object[rank * 6 + 5 + 1]; + pos.x += table_icon_object[rank * 6 + 2 + 1]; + pos.y += table_icon_object[rank * 6 + 3 + 1]; } else if (channel == CHELEMENT) { if (table_icon_element[0] <= rank) return; - rect.left = table_icon_element[rank * 6 + 0]; - rect.top = table_icon_element[rank * 6 + 1]; - rect.right = rect.left + table_icon_element[rank * 6 + 4]; - rect.bottom = rect.top + table_icon_element[rank * 6 + 5]; - pos.x += table_icon_element[rank * 6 + 2]; - pos.y += table_icon_element[rank * 6 + 3]; + rect.left = table_icon_element[rank * 6 + 0 + 1]; + rect.top = table_icon_element[rank * 6 + 1 + 1]; + rect.right = rect.left + table_icon_element[rank * 6 + 4 + 1]; + rect.bottom = rect.top + table_icon_element[rank * 6 + 5 + 1]; + pos.x += table_icon_element[rank * 6 + 2 + 1]; + pos.y += table_icon_element[rank * 6 + 3 + 1]; } else if (IsBlupiChannel(channel)) { if (table_icon_blupi[0] <= rank) return; - rect.left = table_icon_blupi[rank * 6 + 0]; - rect.top = table_icon_blupi[rank * 6 + 1]; - rect.right = rect.left + table_icon_blupi[rank * 6 + 4]; - rect.bottom = rect.top + table_icon_blupi[rank * 6 + 5]; - pos.x += table_icon_blupi[rank * 6 + 2]; - pos.y += table_icon_blupi[rank * 6 + 3]; + rect.left = table_icon_blupi[rank * 6 + 0 + 1]; + rect.top = table_icon_blupi[rank * 6 + 1 + 1]; + rect.right = rect.left + table_icon_blupi[rank * 6 + 4 + 1]; + rect.bottom = rect.top + table_icon_blupi[rank * 6 + 5 + 1]; + pos.x += table_icon_blupi[rank * 6 + 2 + 1]; + pos.y += table_icon_blupi[rank * 6 + 3 + 1]; } else if (channel == CHEXPLO) { if (table_icon_explo[0] <= rank) return; - rect.left = table_icon_explo[rank * 6 + 0]; - rect.top = table_icon_explo[rank * 6 + 1]; - rect.right = rect.left + table_icon_explo[rank * 6 + 4]; - rect.bottom = rect.top + table_icon_explo[rank * 6 + 5]; - pos.x += table_icon_explo[rank * 6 + 2]; - pos.y += table_icon_explo[rank * 6 + 3]; + rect.left = table_icon_explo[rank * 6 + 0 + 1]; + rect.top = table_icon_explo[rank * 6 + 1 + 1]; + rect.right = rect.left + table_icon_explo[rank * 6 + 4 + 1]; + rect.bottom = rect.top + table_icon_explo[rank * 6 + 5 + 1]; + pos.x += table_icon_explo[rank * 6 + 2 + 1]; + pos.y += table_icon_explo[rank * 6 + 3 + 1]; } else { @@ -1223,42 +1223,42 @@ BOOL CPixmap::DrawIcon(int chDst, int channel, int rank, POINT pos, if (channel == CHOBJECT) { if (table_icon_object[0] <= rank) return FALSE; - rect.left = table_icon_object[rank * 6 + 0]; - rect.top = table_icon_object[rank * 6 + 1]; - rect.right = rect.left + table_icon_object[rank * 6 + 4]; - rect.bottom = rect.top + table_icon_object[rank * 6 + 5]; - pos.x += table_icon_object[rank * 6 + 2]; - pos.y += table_icon_object[rank * 6 + 3]; + rect.left = table_icon_object[rank * 6 + 0 + 1]; + rect.top = table_icon_object[rank * 6 + 1 + 1]; + rect.right = rect.left + table_icon_object[rank * 6 + 4 + 1]; + rect.bottom = rect.top + table_icon_object[rank * 6 + 5 + 1]; + pos.x += table_icon_object[rank * 6 + 2 + 1]; + pos.y += table_icon_object[rank * 6 + 3 + 1]; } else if (channel == CHELEMENT) { if (table_icon_element[0] <= rank) return FALSE; - rect.left = table_icon_element[rank * 6 + 0]; - rect.top = table_icon_element[rank * 6 + 1]; - rect.right = rect.left + table_icon_element[rank * 6 + 4]; - rect.bottom = rect.top + table_icon_element[rank * 6 + 5]; - pos.x += table_icon_element[rank * 6 + 2]; - pos.y += table_icon_element[rank * 6 + 3]; + rect.left = table_icon_element[rank * 6 + 0 + 1]; + rect.top = table_icon_element[rank * 6 + 1 + 1]; + rect.right = rect.left + table_icon_element[rank * 6 + 4 + 1]; + rect.bottom = rect.top + table_icon_element[rank * 6 + 5 + 1]; + pos.x += table_icon_element[rank * 6 + 2 + 1]; + pos.y += table_icon_element[rank * 6 + 3 + 1]; } else if (IsBlupiChannel(channel)) { if (table_icon_blupi[0] <= rank) return FALSE; - rect.left = table_icon_blupi[rank * 6 + 0]; - rect.top = table_icon_blupi[rank * 6 + 1]; - rect.right = rect.left + table_icon_blupi[rank * 6 + 4]; - rect.bottom = rect.top + table_icon_blupi[rank * 6 + 5]; - pos.x += table_icon_blupi[rank * 6 + 2]; - pos.y += table_icon_blupi[rank * 6 + 3]; + rect.left = table_icon_blupi[rank * 6 + 0 + 1]; + rect.top = table_icon_blupi[rank * 6 + 1 + 1]; + rect.right = rect.left + table_icon_blupi[rank * 6 + 4 + 1]; + rect.bottom = rect.top + table_icon_blupi[rank * 6 + 5 + 1]; + pos.x += table_icon_blupi[rank * 6 + 2 + 1]; + pos.y += table_icon_blupi[rank * 6 + 3 + 1]; } else if (channel == CHEXPLO) { if (table_icon_explo[0] <= rank) return FALSE; - rect.left = table_icon_explo[rank * 6 + 0]; - rect.top = table_icon_explo[rank * 6 + 1]; - rect.right = rect.left + table_icon_explo[rank * 6 + 4]; - rect.bottom = rect.top + table_icon_explo[rank * 6 + 5]; - pos.x += table_icon_explo[rank * 6 + 2]; - pos.y += table_icon_explo[rank * 6 + 3]; + rect.left = table_icon_explo[rank * 6 + 0 + 1]; + rect.top = table_icon_explo[rank * 6 + 1 + 1]; + rect.right = rect.left + table_icon_explo[rank * 6 + 4 + 1]; + rect.bottom = rect.top + table_icon_explo[rank * 6 + 5 + 1]; + pos.x += table_icon_explo[rank * 6 + 2 + 1]; + pos.y += table_icon_explo[rank * 6 + 3 + 1]; } else { diff --git a/src/pixtables.h b/src/pixtables.h index c9324a2..6a6157a 100644 --- a/src/pixtables.h +++ b/src/pixtables.h @@ -1,6 +1,7 @@ #pragma once // keep these structs for reference +/* typedef struct { short x; short y; @@ -11,24 +12,1187 @@ typedef struct { ShortPOINT offset; ShortPOINT size; } IconPack; - - - -//TODO: GODDDDDDD DAMN IT -extern short table_icon_object[]{ - 0 -}; - -extern short table_icon_element[]{ - 0 -}; +*/ extern short table_icon_blupi[]{ - 0 + 336, + 202,185, 17,9, 32,49, + 194,234, 17,8, 28,50, + 33,284, 12,8, 35,50, + 222,234, 15,8, 28,50, + 609,91, 11,12, 32,46, + 614,335, 18,7, 33,52, + 430,234, 19,8, 32,50, + 462,234, 19,8, 32,50, + 647,335, 18,7, 33,52, + 494,234, 19,8, 32,50, + 706,284, 19,8, 32,51, + 680,335, 12,7, 33,52, + 526,234, 12,8, 32,50, + 558,234, 12,8, 32,50, + 713,335, 12,7, 33,52, + 718,234, 11,8, 33,50, + 96,335, 11,8, 33,51, + 108,91, 16,15, 37,43, + 527,185, 15,11, 37,49, + 564,185, 14,11, 37,49, + 145,91, 7,15, 37,43, + 601,185, 8,11, 37,49, + 0,387, 9,8, 36,52, + 590,234, 17,8, 32,50, + 622,234, 11,8, 32,50, + 541,494, 8,2, 33,57, + 433,137, 19,10, 33,48, + 362,185, 20,9, 33,49, + 73,137, 20,11, 36,47, + 219,551, 9,2, 34,58, + 273,137, 8,10, 32,48, + 395,185, 7,9, 33,49, + 0,137, 4,12, 36,46, + 138,284, 15,10, 36,50, + 252,91, 16,15, 36,44, + 0,91, 19,19, 37,39, + 598,137, 7,12, 36,48, + 288,91, 5,15, 36,44, + 37,91, 1,19, 37,39, + 0,57, 6,18, 47,32, + 673,25, 8,18, 46,32, + 305,137, 14,10, 32,48, + 68,284, 13,8, 35,50, + 169,440, 11,4, 40,54, + 738,284, 13,9, 32,51, + 644,284, 15,9, 31,51, + 288,494, 10,5, 42,55, + 435,387, 9,8, 51,52, + 779,0, 21,32, 17,25, + 570,91, 21,14, 39,45, + 737,91, 25,13, 34,46, + 182,91, 24,13, 35,44, + 36,137, 22,12, 37,46, + 357,91, 25,13, 34,45, + 460,91, 23,13, 36,45, + 496,91, 2,14, 37,45, + 391,91, 2,13, 34,45, + 217,91, 2,13, 35,44, + 533,91, 2,13, 37,45, + 324,91, 2,13, 33,45, + 425,91, 2,13, 35,45, + 683,846, 4,0, 48,60, + 363,846, 7,0, 45,60, + 177,668, 4,1, 47,59, + 86,668, 6,1, 45,59, + 498,846, 5,0, 46,60, + 731,846, 8,0, 48,60, + 408,846, 8,0, 45,60, + 131,668, 9,1, 46,59, + 636,846, 8,0, 47,60, + 544,846, 9,0, 46,60, + 590,846, 3,0, 46,60, + 691,609, 10,1, 41,59, + 321,846, 9,0, 42,60, + 0,668, 10,1, 43,59, + 453,846, 11,0, 45,60, + 47,57, 6,18, 47,32, + 141,57, 5,18, 48,32, + 635,57, 2,17, 57,32, + 333,57, 3,18, 49,32, + 382,57, 4,18, 49,32, + 189,57, 5,18, 48,32, + 719,25, 8,18, 46,32, + 237,57, 8,18, 48,32, + 692,57, 1,17, 58,32, + 431,57, 8,18, 49,32, + 285,57, 8,18, 48,32, + 94,57, 8,18, 47,32, + 480,57, 4,18, 49,32, + 532,25, 7,18, 53,31, + 529,57, 5,17, 52,32, + 581,57, 0,17, 54,32, + 585,25, 0,17, 60,31, + 180,137, 16,5, 31,48, + 234,185, 15,4, 32,49, + 654,234, 15,3, 32,50, + 0,335, 15,2, 32,51, + 582,335, 15,3, 32,52, + 543,387, 15,4, 31,53, + 337,137, 13,5, 32,48, + 266,185, 14,4, 32,49, + 686,234, 14,3, 32,50, + 32,335, 14,2, 32,51, + 551,335, 15,3, 31,52, + 574,387, 15,4, 32,53, + 638,185, 10,4, 37,49, + 596,284, 6,3, 48,50, + 486,387, 2,1, 57,52, + 117,440, 2,2, 52,53, + 606,387, 7,4, 39,53, + 603,440, 3,6, 56,54, + 498,335, 4,9, 53,51, + 659,440, 3,6, 56,54, + 715,440, 2,6, 58,54, + 330,440, 3,6, 54,54, + 289,440, 9,6, 41,54, + 438,440, 1,6, 55,54, + 0,494, 2,6, 58,54, + 493,440, 5,6, 55,54, + 384,440, 6,6, 54,54, + 548,440, 5,6, 55,54, + 36,387, 21,8, 37,52, + 675,185, 20,8, 38,49, + 713,185, 20,9, 38,49, + 287,284, 20,9, 39,50, + 706,137, 20,9, 37,48, + 211,284, 20,8, 38,50, + 184,387, 2,8, 38,52, + 751,185, 2,8, 38,49, + 0,234, 2,9, 38,49, + 326,284, 2,9, 39,50, + 743,137, 3,9, 37,48, + 249,284, 2,8, 38,50, + 298,185, 17,9, 32,49, + 641,91, 11,12, 32,46, + 673,91, 17,12, 32,46, + 78,185, 18,9, 31,49, + 428,185, 13,9, 33,49, + 461,185, 13,9, 33,49, + 705,91, 11,12, 32,46, + 109,185, 11,9, 31,49, + 494,185, 14,9, 33,49, + 330,185, 15,9, 32,49, + 87,551, 1,1, 46,57, + 0,846, 13,0, 33,60, + 599,786, 20,0, 31,60, + 730,494, 18,0, 42,57, + 42,551, 13,1, 45,57, + 33,846, 14,0, 33,60, + 630,786, 9,0, 31,60, + 0,551, 0,0, 42,57, + 574,494, 11,1, 36,57, + 188,551, 18,0, 31,58, + 610,494, 17,0, 38,57, + 661,786, 15,0, 32,60, + 693,786, 9,0, 32,60, + 165,846, 14,0, 34,60, + 66,846, 16,0, 33,60, + 725,786, 18,0, 32,60, + 99,846, 12,0, 33,60, + 132,846, 11,0, 33,60, + 757,786, 10,0, 32,60, + 239,846, 6,0, 41,60, + 280,846, 6,0, 41,60, + 199,846, 6,0, 40,60, + 178,494, 15,0, 32,55, + 64,335, 14,0, 32,51, + 378,494, 11,0, 32,56, + 675,284, 11,0, 31,51, + 466,137, 19,10, 33,48, + 369,137, 20,10, 32,48, + 751,234, 20,8, 33,50, + 499,137, 19,10, 33,48, + 532,137, 8,10, 33,48, + 401,137, 8,10, 32,48, + 0,284, 7,8, 33,50, + 565,137, 8,10, 33,48, + 211,137, 18,10, 31,48, + 634,137, 12,10, 36,48, + 109,137, 10,10, 41,47, + 670,137, 12,10, 36,48, + 150,137, 11,10, 30,48, + 645,387, 12,5, 39,53, + 222,387, 12,7, 39,52, + 38,234, 12,9, 39,49, + 0,185, 12,10, 39,48, + 77,234, 12,9, 39,49, + 203,335, 12,7, 39,51, + 684,387, 9,5, 39,53, + 261,387, 9,7, 39,52, + 116,234, 9,9, 39,49, + 39,185, 9,10, 39,48, + 155,234, 9,9, 39,49, + 242,335, 9,7, 39,51, + 253,551, 14,0, 38,58, + 443,551, 8,0, 41,58, + 224,668, 0,0, 47,59, + 615,551, 0,0, 49,58, + 539,609, 6,0, 38,59, + 577,609, 4,0, 38,59, + 291,551, 5,0, 38,58, + 329,551, 8,0, 38,58, + 484,551, 11,0, 41,58, + 271,668, 13,0, 47,59, + 664,551, 11,0, 49,58, + 615,609, 16,0, 38,59, + 653,609, 18,0, 38,59, + 367,551, 17,0, 38,58, + 723,387, 12,5, 39,53, + 0,440, 9,5, 39,53, + 210,494, 5,3, 39,55, + 209,440, 4,4, 40,54, + 410,494, 3,2, 40,56, + 648,494, 6,0, 41,57, + 525,551, 6,0, 45,58, + 318,668, 6,0, 48,59, + 249,494, 16,3, 39,55, + 249,440, 16,4, 40,54, + 450,494, 17,2, 40,56, + 689,494, 13,0, 41,57, + 570,551, 9,0, 45,58, + 366,668, 6,0, 48,59, + 746,335, 8,6, 35,52, + 73,387, 8,6, 37,52, + 39,440, 8,5, 39,53, + 78,440, 9,5, 39,53, + 300,387, 7,6, 43,52, + 281,335, 8,7, 42,51, + 323,335, 9,7, 42,51, + 365,335, 10,7, 42,51, + 343,387, 8,6, 43,52, + 407,335, 8,7, 43,51, + 129,335, 12,9, 37,51, + 174,284, 11,10, 37,50, + 502,284, 10,8, 47,50, + 450,335, 10,7, 48,51, + 386,387, 10,6, 49,52, + 510,668, 3,0, 57,59, + 0,609, 4,1, 56,58, + 567,668, 3,0, 57,59, + 624,668, 2,0, 58,59, + 287,609, 0,1, 60,58, + 682,668, 2,0, 58,59, + 414,668, 6,0, 48,59, + 462,668, 6,0, 48,59, + 740,668, 0,0, 58,59, + 347,609, 0,1, 60,58, + 290,727, 1,0, 59,59, + 0,727, 1,0, 58,59, + 56,609, 2,1, 56,58, + 58,727, 1,0, 58,59, + 713,551, 2,1, 55,58, + 133,551, 4,2, 55,57, + 410,284, 14,8, 46,50, + 365,284, 15,8, 45,50, + 549,284, 1,8, 47,50, + 456,284, 1,8, 46,50, + 690,0, 7,36, 44,24, + 648,0, 8,36, 42,24, + 570,0, 10,36, 38,24, + 536,0, 12,36, 34,24, + 608,0, 9,36, 40,24, + 734,0, 7,36, 45,24, + 140,185, 18,9, 31,49, + 306,234, 18,8, 31,50, + 337,234, 18,8, 31,50, + 330,494, 6,3, 48,55, + 490,494, 3,0, 51,56, + 250,234, 17,8, 28,50, + 103,284, 13,8, 35,50, + 278,234, 15,8, 28,50, + 467,609, 10,1, 36,59, + 503,609, 11,1, 36,59, + 405,551, 10,1, 38,58, + 43,668, 5,1, 43,59, + 732,609, 11,1, 42,59, + 504,25, 15,15, 28,31, + 448,25, 15,16, 28,29, + 108,0, 15,18, 28,20, + 360,0, 15,16, 28,23, + 476,25, 15,13, 28,30, + 645,25, 15,13, 28,32, + 388,0, 15,18, 28,23, + 136,0, 15,21, 28,20, + 202,25, 15,18, 28,27, + 171,185, 11,9, 31,49, + 368,234, 11,8, 31,50, + 399,234, 11,8, 31,50, + 110,387, 14,7, 37,52, + 147,387, 14,7, 37,52, + 166,335, 14,8, 37,51, + 116,727, 0,1, 58,59, + 174,727, 1,1, 58,59, + 169,609, 1,2, 59,58, + 232,727, 2,1, 58,59, + 112,609, 3,2, 57,58, + 59,786, 0,1, 60,59, + 119,786, 0,1, 60,59, + 179,786, 0,1, 60,59, + 349,727, 1,1, 59,59, + 239,786, 0,1, 60,59, + 408,727, 1,1, 59,59, + 299,786, 0,1, 60,59, + 359,786, 0,1, 60,59, + 228,609, 1,2, 59,58, + 419,786, 0,1, 60,59, + 407,609, 0,2, 60,58, + 479,786, 0,1, 60,59, + 467,727, 1,1, 59,59, + 539,786, 0,1, 60,59, + 526,727, 1,1, 59,59, + 585,727, 1,1, 59,59, + 644,727, 1,1, 59,59, + 703,727, 1,1, 59,59, + 0,786, 1,1, 59,59, + 58,494, 0,6, 60,54, + 118,494, 0,6, 60,54, + 279,25, 3,33, 55,27, + 334,25, 0,33, 59,27, + 416,0, 0,36, 60,23, + 49,0, 0,39, 59,19, + 476,0, 0,36, 60,23, + 143,25, 1,33, 59,26, + 393,25, 2,32, 55,28, + 242,137, 18,12, 31,48, + 74,91, 16,18, 34,42, + 750,57, 14,25, 40,34, + 0,25, 11,33, 45,25, + 0,0, 7,39, 49,19, + 311,0, 5,38, 49,22, + 164,0, 5,38, 49,21, + 213,0, 5,39, 49,21, + 262,0, 5,39, 49,21, + 45,25, 5,35, 49,25, + 94,25, 5,33, 49,26, + 230,25, 5,32, 49,27, +}; + +extern short table_icon_element[]{ + 289, + 308,153, 9,20, 51,40, + 51,194, 8,19, 52,41, + 730,153, 8,19, 51,41, + 767,194, 9,18, 49,42, + 0,321, 10,17, 47,43, + 768,278, 11,17, 44,43, + 207,321, 12,16, 41,44, + 812,278, 10,17, 44,43, + 47,321, 8,17, 47,43, + 250,236, 5,18, 51,42, + 680,153, 6,19, 50,41, + 781,153, 5,19, 51,41, + 0,24, 7,36, 44,24, + 44,24, 7,36, 44,24, + 803,0, 8,36, 42,24, + 647,0, 10,36, 38,24, + 367,24, 12,35, 34,25, + 575,0, 11,36, 36,24, + 723,0, 9,36, 40,24, + 88,24, 7,36, 44,24, + 435,24, 6,35, 46,25, + 54,50, 10,28, 39,27, + 187,50, 12,28, 34,28, + 0,50, 16,28, 27,27, + 255,50, 13,28, 35,28, + 93,50, 10,28, 40,27, + 290,50, 13,28, 35,28, + 27,50, 16,28, 27,27, + 221,50, 12,28, 34,28, + 644,50, 7,16, 49,31, + 548,50, 8,16, 48,31, + 422,50, 19,16, 25,31, + 472,50, 12,16, 38,31, + 693,50, 6,16, 50,31, + 596,50, 7,16, 48,31, + 447,50, 19,16, 25,31, + 510,50, 12,16, 38,31, + 581,24, 16,17, 29,26, + 442,0, 19,16, 15,22, + 396,584, 14,1, 33,59, + 666,321, 11,12, 37,46, + 703,321, 11,12, 37,46, + 740,321, 11,12, 37,46, + 830,116, 11,22, 37,37, + 325,50, 11,31, 38,28, + 277,0, 6,41, 47,19, + 49,368, 5,12, 51,48, + 525,418, 5,8, 51,52, + 132,24, 7,0, 44,24, + 176,24, 7,0, 44,24, + 845,0, 8,0, 42,24, + 685,0, 10,0, 38,24, + 401,24, 12,0, 34,25, + 611,0, 11,0, 36,24, + 763,0, 9,0, 40,24, + 220,24, 7,0, 44,24, + 481,24, 6,0, 46,25, + 447,153, 6,18, 45,41, + 103,194, 3,18, 52,41, + 155,194, 3,18, 52,41, + 442,194, 0,18, 60,41, + 265,194, 1,18, 59,41, + 359,153, 9,18, 44,41, + 324,194, 1,18, 59,41, + 207,194, 2,18, 58,41, + 832,153, 7,18, 51,41, + 492,153, 10,18, 45,41, + 0,194, 7,18, 51,41, + 795,116, 14,23, 35,37, + 330,321, 10,9, 42,44, + 248,321, 10,9, 41,44, + 129,321, 11,9, 39,44, + 500,321, 12,8, 37,45, + 468,321, 14,8, 32,45, + 94,321, 12,9, 35,44, + 168,321, 10,9, 39,44, + 542,194, 9,10, 42,42, + 584,194, 8,10, 44,42, + 585,368, 2,9, 56,49, + 697,368, 0,9, 60,49, + 641,368, 2,9, 56,49, + 475,368, 3,9, 55,49, + 757,368, 0,9, 60,49, + 530,368, 3,9, 55,49, + 217,368, 8,9, 50,49, + 100,368, 17,9, 38,49, + 177,368, 10,9, 40,49, + 138,368, 5,9, 39,49, + 267,368, 2,9, 50,49, + 363,50, 1,31, 59,29, + 408,236, 2,16, 57,42, + 406,278, 0,14, 59,42, + 465,278, 0,12, 59,42, + 465,236, 2,9, 57,42, + 383,194, 0,7, 59,41, + 524,278, 0,4, 59,42, + 0,278, 1,2, 58,42, + 522,236, 2,2, 57,42, + 58,278, 2,16, 58,42, + 116,278, 2,14, 58,42, + 174,278, 2,12, 58,42, + 232,278, 2,9, 58,42, + 290,278, 2,7, 58,42, + 579,236, 2,4, 57,42, + 636,236, 3,2, 57,42, + 348,278, 2,2, 58,42, + 693,236, 1,16, 57,42, + 301,236, 4,14, 51,42, + 720,194, 8,12, 47,42, + 0,236, 6,9, 50,42, + 50,236, 6,7, 50,42, + 628,194, 7,4, 46,42, + 816,194, 7,2, 49,42, + 352,236, 2,2, 56,42, + 750,236, 3,16, 57,42, + 100,236, 9,14, 50,42, + 583,153, 8,12, 48,41, + 150,236, 8,9, 50,42, + 631,153, 8,7, 49,41, + 674,194, 10,4, 46,42, + 200,236, 6,2, 50,42, + 807,236, 3,2, 57,42, + 558,116, 16,25, 31,34, + 182,83, 9,25, 45,33, + 636,83, 4,25, 54,33, + 216,116, 3,25, 56,33, + 690,83, 4,25, 54,33, + 227,83, 9,25, 45,33, + 743,50, 16,25, 31,33, + 119,153, 25,19, 15,40, + 166,153, 23,19, 18,40, + 202,153, 22,19, 19,40, + 48,153, 20,19, 18,39, + 184,153, 18,19, 18,40, + 149,153, 17,19, 17,40, + 134,153, 17,19, 15,40, + 456,526, 20,3, 25,57, + 481,526, 19,3, 27,57, + 508,526, 19,3, 27,57, + 432,526, 21,3, 24,57, + 395,526, 24,3, 17,57, + 373,526, 27,3, 10,57, + 383,526, 27,3, 12,57, + 412,526, 23,3, 20,57, + 318,526, 1,3, 55,56, + 112,584, 2,1, 52,58, + 640,526, 1,2, 56,57, + 576,418, 1,5, 56,52, + 317,368, 3,5, 52,49, + 817,368, 8,2, 40,50, + 323,471, 9,2, 41,55, + 60,471, 7,3, 47,54, + 833,584, 0,0, 60,60, + 336,584, 0,2, 60,58, + 774,584, 1,0, 59,60, + 575,584, 2,1, 58,59, + 277,584, 1,2, 59,58, + 719,584, 2,0, 55,60, + 110,526, 2,2, 58,55, + 164,584, 0,2, 56,58, + 168,526, 1,5, 59,55, + 587,526, 5,2, 53,57, + 519,584, 3,0, 56,59, + 369,368, 5,3, 52,49, + 688,418, 8,5, 40,53, + 372,321, 5,10, 48,44, + 221,153, 8,14, 43,40, + 583,278, 0,17, 60,42, + 53,418, 0,8, 60,50, + 308,418, 0,7, 60,51, + 833,418, 0,5, 60,53, + 107,471, 0,4, 60,54, + 113,418, 0,8, 60,50, + 368,418, 0,7, 60,51, + 0,471, 0,5, 60,53, + 167,471, 0,4, 60,54, + 210,0, 24,11, 16,16, + 66,153, 5,19, 53,39, + 535,0, 26,34, 10,24, + 195,0, 21,37, 15,16, + 376,0, 19,35, 22,21, + 457,0, 14,32, 27,22, + 545,0, 12,32, 30,24, + 398,0, 8,35, 44,21, + 527,24, 2,35, 54,25, + 324,0, 5,38, 52,20, + 133,50, 2,32, 54,27, + 0,584, 12,2, 36,58, + 36,584, 11,2, 38,58, + 810,526, 13,2, 33,58, + 764,526, 18,2, 23,58, + 754,526, 25,2, 10,58, + 787,526, 18,2, 23,58, + 843,526, 13,2, 33,58, + 74,584, 11,2, 38,58, + 820,321, 7,5, 49,47, + 645,116, 6,14, 48,35, + 542,83, 5,13, 47,33, + 96,83, 6,11, 43,33, + 0,368, 4,5, 49,47, + 693,116, 6,14, 48,35, + 589,83, 8,13, 47,33, + 139,83, 11,11, 43,33, + 741,116, 0,14, 54,36, + 498,116, 0,13, 60,33, + 589,116, 2,11, 56,34, + 440,116, 2,13, 58,33, + 0,153, 9,14, 48,37, + 227,471, 0,6, 60,54, + 0,83, 15,25, 32,33, + 272,83, 9,25, 45,33, + 744,83, 4,25, 54,33, + 272,116, 3,25, 56,33, + 798,83, 4,25, 54,33, + 317,83, 9,25, 45,33, + 774,50, 16,25, 31,33, + 32,83, 15,25, 32,33, + 362,83, 9,25, 45,33, + 0,116, 4,25, 54,33, + 328,116, 3,25, 56,33, + 54,116, 4,25, 54,33, + 407,83, 9,25, 45,33, + 805,50, 16,25, 31,33, + 64,83, 15,25, 32,33, + 452,83, 9,25, 45,33, + 108,116, 4,25, 54,33, + 384,116, 3,25, 56,33, + 162,116, 4,25, 54,33, + 497,83, 9,25, 45,33, + 836,50, 16,25, 31,33, + 287,471, 18,4, 36,55, + 227,526, 9,2, 43,56, + 428,418, 1,6, 47,52, + 257,418, 2,6, 51,51, + 632,418, 4,6, 56,52, + 364,471, 12,3, 43,55, + 674,584, 8,0, 45,60, + 633,584, 9,0, 41,60, + 211,418, 12,8, 46,51, + 270,526, 9,2, 48,56, + 429,584, 7,0, 45,59, + 474,584, 4,0, 45,59, + 837,24, 7,34, 53,26, + 314,24, 6,36, 53,24, + 484,0, 6,37, 51,23, + 264,24, 5,36, 50,24, + 785,24, 3,34, 52,26, + 226,0, 6,44, 51,16, + 95,0, 7,47, 50,13, + 145,0, 7,47, 50,13, + 48,0, 9,51, 47,9, + 0,0, 8,55, 48,5, + 610,24, 10,34, 42,26, + 652,24, 10,34, 44,26, + 740,24, 10,34, 45,26, + 696,24, 10,34, 44,26, + 671,471, 3,3, 55,55, + 726,471, 3,3, 55,55, + 781,471, 3,3, 55,55, + 458,471, 4,3, 53,55, + 511,471, 4,3, 53,55, + 407,471, 5,3, 51,55, + 564,471, 4,3, 53,55, + 836,471, 3,3, 55,55, + 0,526, 3,3, 55,55, + 55,526, 3,3, 55,55, + 0,418, 3,6, 53,50, + 421,368, 3,4, 54,49, + 696,526, 1,1, 58,57, + 220,584, 1,1, 57,58, + 535,526, 3,1, 52,57, + 475,418, 6,5, 50,52, + 778,418, 4,3, 55,53, + 617,471, 5,3, 54,55, + 289,321, 9,9, 41,44, + 725,278, 7,11, 43,43, + 537,321, 10,8, 40,45, + 643,278, 11,10, 40,43, + 502,194, 10,11, 40,42, + 577,321, 9,8, 41,45, + 264,153, 9,10, 44,40, + 683,278, 7,10, 42,43, + 537,153, 8,13, 46,41, + 777,321, 10,7, 43,47, + 728,418, 6,3, 50,53, + 618,321, 7,5, 48,45, + 173,418, 9,6, 38,51, + 420,321, 5,10, 48,44, + 403,153, 7,14, 44,41, }; extern short table_icon_explo[]{ - 0 + 100, + 157,0, 48,51, 32,28, + 253,132, 36,32, 58,61, + 0,541, 10,14, 107,105, + 113,877, 5,7, 117,116, + 0,761, 6,7, 116,113, + 345,649, 11,6, 113,112, + 127,437, 12,12, 110,98, + 206,541, 11,8, 113,107, + 224,342, 11,8, 111,95, + 304,259, 11,8, 115,83, + 0,259, 3,2, 123,71, + 129,74, 9,2, 111,51, + 127,995, 5,3, 118,120, + 336,877, 5,4, 119,118, + 244,1116, 2,3, 124,121, + 211,1361, 2,1, 125,125, + 124,1486, 2,2, 126,126, + 214,761, 2,13, 110,115, + 0,995, 1,10, 127,118, + 336,1361, 2,3, 126,125, + 0,1361, 10,3, 92,125, + 250,1486, 2,2, 126,126, + 368,1116, 3,7, 125,121, + 330,32, 2,87, 124,41, + 0,32, 4,96, 123,32, + 208,32, 4,91, 122,37, + 0,649, 1,20, 127,108, + 0,437, 1,33, 127,95, + 0,1237, 1,6, 127,122, + 319,541, 6,20, 122,108, + 376,1486, 25,1, 84,127, + 198,1613, 1,1, 127,127, + 0,877, 7,4, 113,116, + 107,541, 14,13, 99,106, + 235,649, 11,8, 110,111, + 223,259, 32,32, 81,83, + 116,761, 6,13, 98,115, + 374,1613, 35,0, 81,128, + 0,1116, 6,7, 122,121, + 0,74, 29,83, 93,45, + 240,74, 0,77, 128,51, + 81,1741, 6,0, 104,128, + 0,1741, 47,0, 81,128, + 122,1116, 6,7, 122,121, + 357,437, 12,24, 110,104, + 368,995, 16,7, 56,121, + 88,1613, 4,1, 110,127, + 0,1486, 4,2, 124,126, + 324,761, 3,4, 99,116, + 230,877, 6,2, 106,117, + 237,437, 8,1, 120,102, + 127,1237, 17,2, 110,123, + 360,1237, 9,4, 119,124, + 335,342, 0,32, 124,95, + 311,132, 35,35, 66,61, + 127,342, 19,15, 97,91, + 245,995, 3,3, 123,120, + 237,1237, 4,3, 123,123, + 127,649, 7,13, 108,109, + 92,1361, 4,2, 119,125, + 233,195, 3,0, 60,64, + 174,195, 1,0, 59,64, + 415,195, 2,0, 62,64, + 293,195, 2,0, 61,64, + 0,195, 0,0, 63,63, + 354,195, 2,0, 61,64, + 185,1741, 24,0, 84,144, + 364,1741, 10,0, 110,144, + 269,1741, 18,0, 95,144, + 0,342, 1,45, 127,83, + 0,132, 6,6, 54,58, + 436,74, 8,6, 53,58, + 377,132, 8,2, 54,62, + 200,132, 4,3, 53,61, + 118,195, 3,0, 56,64, + 63,195, 2,0, 55,64, + 431,132, 0,1, 52,63, + 152,132, 1,3, 48,61, + 54,132, 1,4, 49,60, + 103,132, 1,4, 49,60, + 401,74, 12,6, 35,58, + 368,74, 15,9, 33,55, + 93,74, 12,13, 36,51, + 454,32, 15,22, 30,42, + 290,0, 13,32, 29,32, + 105,0, 15,38, 25,26, + 0,0, 22,53, 15,11, + 325,1613, 39,0, 49,128, + 123,259, 14,52, 100,76, + 0,1613, 26,1, 88,127, + 15,0, 23,11, 18,17, + 33,0, 23,13, 21,19, + 130,0, 21,15, 27,27, + 319,0, 16,13, 36,32, + 167,32, 12,12, 41,36, + 123,32, 11,16, 44,34, + 355,0, 10,21, 48,32, + 240,0, 9,26, 50,30, + 189,0, 9,30, 51,28, + 54,0, 9,35, 51,25, }; +extern short table_icon_object[]{ + 441, + 504,687, 0,0, 64,64, + 568,687, 0,0, 64,64, + 632,687, 0,0, 64,64, + 696,687, 0,0, 64,64, + 760,687, 0,0, 64,64, + 824,687, 0,0, 64,64, + 888,687, 0,0, 64,64, + 952,687, 0,0, 64,64, + 0,751, 0,0, 64,64, + 64,751, 0,0, 64,64, + 128,751, 0,0, 64,64, + 192,751, 0,0, 64,64, + 256,751, 0,0, 64,64, + 320,751, 0,0, 64,64, + 384,751, 0,0, 64,64, + 961,623, 1,0, 63,64, + 0,687, 1,0, 63,64, + 448,751, 0,0, 64,64, + 512,751, 0,0, 64,64, + 553,187, 0,0, 64,58, + 576,751, 0,0, 64,64, + 814,133, 0,0, 64,53, + 640,751, 0,0, 64,64, + 704,751, 0,0, 64,64, + 768,751, 0,0, 64,64, + 878,133, 0,0, 64,53, + 832,751, 0,0, 64,64, + 892,559, 6,0, 52,64, + 259,84, 0,0, 64,44, + 789,48, 0,0, 64,35, + 896,751, 0,0, 64,64, + 960,751, 0,0, 64,64, + 706,369, 1,1, 63,63, + 769,369, 1,1, 63,63, + 63,687, 1,0, 63,64, + 0,815, 0,0, 64,64, + 126,432, 0,1, 64,63, + 64,815, 0,0, 64,64, + 190,432, 0,1, 64,63, + 254,432, 0,1, 64,63, + 832,369, 1,1, 63,63, + 318,432, 0,1, 64,63, + 382,432, 0,1, 64,63, + 446,432, 0,1, 64,63, + 510,432, 0,1, 64,63, + 159,187, 0,1, 64,54, + 0,84, 0,1, 64,39, + 917,48, 0,1, 64,36, + 0,0, 0,0, 1,1, + 1,0, 0,0, 1,1, + 2,0, 0,0, 1,1, + 3,0, 0,0, 1,1, + 4,0, 0,0, 1,1, + 5,0, 0,0, 1,1, + 6,0, 0,0, 1,1, + 7,0, 0,0, 1,1, + 8,0, 0,0, 1,1, + 9,0, 0,0, 1,1, + 10,0, 0,16, 1,1, + 11,0, 0,0, 1,1, + 12,0, 0,0, 1,1, + 13,0, 0,0, 1,1, + 14,0, 0,0, 1,1, + 15,0, 0,0, 1,1, + 16,0, 0,0, 1,1, + 17,0, 0,0, 1,1, + 18,0, 0,0, 1,1, + 19,0, 0,0, 1,1, + 584,48, 0,32, 64,32, + 0,48, 0,36, 64,28, + 64,48, 0,36, 64,28, + 302,48, 0,33, 64,31, + 853,48, 0,29, 64,35, + 128,815, 0,0, 64,64, + 704,187, 0,2, 62,59, + 946,307, 1,1, 63,62, + 64,559, 13,0, 37,64, + 402,559, 8,0, 49,64, + 192,815, 0,0, 64,64, + 256,815, 0,0, 64,64, + 320,815, 0,0, 64,64, + 384,815, 0,0, 64,64, + 448,815, 0,0, 64,64, + 512,815, 0,0, 64,64, + 576,815, 0,0, 64,64, + 640,815, 0,0, 64,64, + 704,815, 0,0, 64,64, + 768,815, 0,0, 64,64, + 403,623, 0,0, 62,64, + 832,815, 0,0, 64,64, + 896,815, 0,0, 64,64, + 960,815, 0,0, 64,64, + 0,307, 0,4, 64,60, + 64,307, 0,4, 64,60, + 128,307, 0,4, 64,60, + 192,307, 0,4, 64,60, + 0,879, 0,0, 64,64, + 64,879, 0,0, 64,64, + 128,879, 0,0, 64,64, + 730,0, 22,45, 16,19, + 207,84, 6,18, 52,44, + 251,187, 6,7, 53,55, + 680,247, 4,2, 56,60, + 617,187, 12,2, 28,59, + 0,187, 15,3, 35,54, + 465,187, 16,2, 39,58, + 964,133, 14,4, 34,54, + 189,369, 0,1, 64,62, + 0,369, 0,1, 63,62, + 253,369, 0,1, 64,62, + 945,84, 0,9, 64,49, + 0,133, 0,9, 64,49, + 64,133, 0,9, 64,49, + 128,133, 0,9, 64,49, + 192,133, 0,9, 64,49, + 256,133, 0,9, 64,49, + 320,133, 0,9, 64,49, + 384,133, 0,9, 64,49, + 451,559, 9,0, 49,64, + 500,559, 9,0, 49,64, + 549,559, 9,0, 49,64, + 598,559, 9,0, 49,64, + 647,559, 9,0, 49,64, + 696,559, 9,0, 49,64, + 745,559, 9,0, 49,64, + 794,559, 9,0, 49,64, + 465,623, 2,0, 62,64, + 527,623, 2,0, 62,64, + 589,623, 2,0, 62,64, + 651,623, 0,0, 62,64, + 713,623, 0,0, 62,64, + 775,623, 0,0, 62,64, + 442,307, 0,3, 64,61, + 506,307, 0,3, 64,61, + 570,307, 0,3, 64,61, + 317,369, 0,0, 64,62, + 381,369, 0,0, 64,62, + 445,369, 0,0, 64,62, + 465,0, 0,0, 64,14, + 192,879, 0,0, 64,64, + 256,879, 0,0, 64,64, + 320,879, 0,0, 64,64, + 384,879, 0,0, 64,64, + 448,879, 0,0, 64,64, + 126,687, 1,0, 63,64, + 512,879, 0,0, 64,64, + 189,687, 1,0, 63,64, + 895,369, 1,1, 63,63, + 958,369, 1,0, 63,63, + 576,879, 0,0, 64,64, + 0,432, 1,0, 63,63, + 63,432, 1,1, 63,63, + 574,432, 0,1, 64,63, + 63,369, 1,1, 63,62, + 638,432, 0,0, 64,63, + 252,687, 1,0, 63,64, + 640,879, 0,0, 64,64, + 126,369, 0,1, 63,62, + 766,187, 12,4, 40,60, + 806,187, 12,4, 40,60, + 846,187, 12,4, 40,60, + 886,187, 12,4, 40,60, + 926,187, 12,4, 40,60, + 966,187, 12,4, 40,60, + 0,247, 12,4, 40,60, + 40,247, 12,4, 40,60, + 385,84, 12,16, 40,48, + 425,84, 12,16, 40,48, + 465,84, 12,16, 40,48, + 505,84, 12,16, 40,48, + 545,84, 12,16, 40,48, + 585,84, 12,16, 40,48, + 625,84, 12,16, 40,48, + 665,84, 12,16, 40,48, + 80,247, 12,4, 40,60, + 120,247, 12,4, 40,60, + 160,247, 12,4, 40,60, + 200,247, 12,4, 40,60, + 240,247, 12,4, 40,60, + 280,247, 12,4, 40,60, + 320,247, 12,4, 40,60, + 360,247, 12,4, 40,60, + 255,495, 21,0, 22,64, + 370,495, 18,0, 28,64, + 400,247, 12,4, 40,60, + 704,879, 0,0, 64,64, + 768,879, 0,0, 64,64, + 832,879, 0,0, 64,64, + 896,879, 0,0, 64,64, + 960,879, 0,0, 64,64, + 0,943, 0,0, 64,64, + 64,943, 0,0, 64,64, + 128,943, 0,0, 64,64, + 192,943, 0,0, 64,64, + 256,943, 0,0, 64,64, + 320,943, 0,0, 64,64, + 384,943, 0,0, 64,64, + 448,943, 0,0, 64,64, + 512,943, 0,0, 64,64, + 104,623, 3,0, 59,64, + 843,559, 8,0, 49,64, + 576,943, 0,0, 64,64, + 78,0, 0,8, 64,5, + 448,133, 18,14, 28,50, + 758,133, 18,12, 28,52, + 223,187, 18,9, 28,55, + 786,133, 18,12, 28,52, + 476,133, 18,14, 28,50, + 437,187, 18,7, 28,57, + 736,247, 2,4, 59,60, + 768,307, 3,2, 58,62, + 648,369, 3,1, 58,63, + 826,307, 3,2, 59,62, + 795,247, 3,4, 59,60, + 640,943, 0,0, 64,64, + 704,943, 0,0, 64,64, + 768,943, 0,0, 64,64, + 832,943, 0,0, 64,64, + 896,943, 0,0, 64,64, + 960,943, 0,0, 64,64, + 0,1007, 0,0, 64,64, + 64,1007, 0,0, 64,64, + 128,1007, 0,0, 64,64, + 944,559, 6,0, 52,64, + 0,623, 6,0, 52,64, + 52,623, 6,0, 52,64, + 192,1007, 0,0, 64,64, + 256,1007, 0,0, 64,64, + 320,1007, 0,0, 64,64, + 384,1007, 0,0, 64,64, + 448,1007, 0,0, 64,64, + 512,1007, 0,0, 64,64, + 576,1007, 0,0, 64,64, + 640,1007, 0,0, 64,64, + 704,1007, 0,0, 64,64, + 277,495, 21,0, 22,64, + 299,495, 21,0, 22,64, + 315,687, 0,0, 63,64, + 555,369, 4,1, 46,63, + 181,559, 9,0, 42,64, + 355,559, 12,0, 47,64, + 265,559, 15,0, 45,64, + 601,369, 9,1, 47,63, + 504,187, 4,6, 49,58, + 338,0, 27,53, 5,10, + 768,1007, 0,0, 64,64, + 832,1007, 0,0, 64,64, + 896,1007, 0,0, 64,64, + 960,1007, 0,0, 64,64, + 0,1071, 0,0, 64,64, + 64,1071, 0,0, 64,64, + 304,187, 0,1, 64,55, + 504,133, 0,1, 64,50, + 568,133, 0,1, 64,50, + 163,623, 2,0, 60,64, + 223,623, 2,0, 60,64, + 694,133, 0,0, 64,51, + 837,623, 0,0, 62,64, + 128,1071, 0,0, 64,64, + 368,187, 0,0, 62,56, + 632,133, 2,0, 62,51, + 192,1071, 0,0, 64,64, + 256,1071, 0,0, 64,64, + 320,1071, 0,0, 64,64, + 151,0, 0,0, 62,8, + 20,0, 3,60, 58,4, + 430,187, 0,4, 7,57, + 762,307, 58,0, 6,62, + 384,1071, 0,0, 64,64, + 256,307, 0,4, 64,60, + 885,307, 0,0, 61,62, + 645,187, 5,0, 59,59, + 320,307, 0,4, 64,60, + 854,247, 1,4, 63,60, + 378,687, 0,0, 63,64, + 283,623, 4,0, 60,64, + 448,1071, 0,0, 64,64, + 634,307, 0,3, 64,61, + 512,1071, 0,0, 64,64, + 899,623, 2,0, 62,64, + 702,432, 0,0, 64,63, + 406,0, 4,0, 59,13, + 213,0, 1,55, 61,9, + 576,1071, 0,0, 64,64, + 640,1071, 0,0, 64,64, + 0,22, 0,0, 64,24, + 274,0, 0,55, 64,9, + 218,495, 0,0, 16,64, + 192,495, 52,0, 12,64, + 704,1071, 0,0, 64,64, + 768,1071, 0,0, 64,64, + 832,1071, 0,0, 64,64, + 896,1071, 0,0, 64,64, + 960,1071, 0,0, 64,64, + 0,1135, 0,0, 64,64, + 64,1135, 0,0, 64,64, + 128,1135, 0,0, 64,64, + 192,1135, 0,0, 64,64, + 256,1135, 0,0, 64,64, + 320,1135, 0,0, 64,64, + 384,1135, 0,0, 64,64, + 448,1135, 0,0, 64,64, + 538,0, 0,0, 64,17, + 602,0, 0,47, 64,17, + 512,1135, 0,0, 64,64, + 28,559, 18,0, 36,64, + 223,559, 22,0, 42,64, + 204,495, 27,0, 14,64, + 310,559, 0,0, 45,64, + 440,247, 12,4, 40,60, + 705,84, 12,16, 40,48, + 585,22, 0,1, 64,26, + 649,22, 0,1, 64,26, + 713,22, 0,1, 64,26, + 777,22, 0,1, 64,26, + 522,22, 1,1, 63,26, + 841,22, 0,1, 64,26, + 917,247, 1,0, 63,60, + 35,187, 2,0, 61,54, + 323,84, 1,0, 62,47, + 64,84, 1,0, 62,40, + 648,48, 1,0, 62,33, + 461,22, 2,0, 61,26, + 746,0, 2,0, 61,19, + 96,187, 1,0, 63,54, + 126,84, 1,0, 63,43, + 710,48, 1,0, 63,33, + 871,0, 1,0, 63,22, + 343,0, 1,0, 63,11, + 934,0, 1,0, 63,22, + 766,432, 0,0, 64,63, + 830,432, 0,0, 64,63, + 894,432, 0,0, 64,63, + 958,432, 0,0, 64,63, + 398,495, 18,0, 28,64, + 426,495, 18,0, 28,64, + 454,495, 18,0, 28,64, + 576,1135, 0,0, 64,64, + 640,1135, 0,0, 64,64, + 704,1135, 0,0, 64,64, + 0,495, 0,0, 64,63, + 768,1135, 0,0, 64,64, + 832,1135, 0,0, 64,64, + 896,1135, 0,0, 64,64, + 960,1135, 0,0, 64,64, + 0,1199, 0,0, 64,64, + 64,1199, 0,0, 64,64, + 128,1199, 0,0, 64,64, + 192,1199, 0,0, 64,64, + 256,1199, 0,0, 64,64, + 320,1199, 0,0, 64,64, + 64,495, 0,0, 64,63, + 384,1199, 0,0, 64,64, + 448,1199, 0,0, 64,64, + 512,1199, 0,0, 64,64, + 128,495, 0,0, 64,63, + 576,1199, 0,0, 64,64, + 343,623, 4,0, 60,64, + 441,687, 0,0, 63,64, + 640,1199, 0,0, 64,64, + 698,307, 0,0, 64,61, + 384,307, 4,0, 58,61, + 704,1199, 0,0, 64,64, + 768,1199, 0,0, 64,64, + 64,22, 0,0, 64,24, + 128,22, 0,0, 64,24, + 192,22, 0,0, 64,24, + 256,22, 0,2, 64,24, + 384,22, 0,6, 64,25, + 905,22, 0,13, 64,26, + 320,22, 0,23, 64,24, + 807,0, 0,35, 64,20, + 666,0, 0,46, 64,18, + 832,1199, 0,0, 64,64, + 896,1199, 0,0, 64,64, + 234,495, 23,0, 21,64, + 345,495, 21,0, 25,64, + 509,369, 23,1, 21,63, + 246,48, 4,33, 56,31, + 474,48, 5,32, 55,32, + 366,48, 5,32, 54,32, + 529,48, 4,32, 55,32, + 420,48, 5,32, 54,32, + 192,48, 5,33, 54,31, + 101,559, 12,0, 40,64, + 141,559, 12,0, 40,64, + 960,1199, 0,0, 64,64, + 0,1263, 0,0, 64,64, + 64,1263, 0,0, 64,64, + 128,1263, 0,0, 64,64, + 192,1263, 0,0, 64,64, + 256,1263, 0,0, 64,64, + 320,1263, 0,0, 64,64, + 384,1263, 0,0, 64,64, + 448,1263, 0,0, 64,64, + 512,1263, 0,0, 64,64, + 576,1263, 0,0, 64,64, + 640,1263, 0,0, 64,64, + 128,48, 0,36, 64,28, + 321,495, 20,0, 24,64, + 704,1263, 0,0, 64,64, + 768,1263, 0,0, 64,64, + 832,1263, 0,0, 64,64, + 896,1263, 0,0, 64,64, + 530,369, 20,0, 25,63, + 942,133, 22,0, 22,54, + 189,84, 24,0, 18,44, + 773,48, 24,0, 16,35, + 448,22, 26,0, 13,26, + 529,0, 28,0, 9,17, + 142,0, 28,0, 9,7, + 480,247, 12,4, 40,60, + 520,247, 12,4, 40,60, + 560,247, 12,4, 40,60, + 600,247, 12,4, 40,60, + 640,247, 12,4, 40,60, + 745,84, 12,16, 40,48, + 785,84, 12,16, 40,48, + 825,84, 12,16, 40,48, + 865,84, 12,16, 40,48, + 905,84, 12,16, 40,48, + 482,495, 18,0, 28,64, + 510,495, 18,0, 28,64, + 538,495, 18,0, 28,64, + 566,495, 18,0, 28,64, + 594,495, 18,0, 28,64, + 622,495, 18,0, 28,64, + 650,495, 18,0, 28,64, + 678,495, 18,0, 28,64, + 706,495, 18,0, 28,64, + 734,495, 18,0, 28,64, + 762,495, 18,0, 28,64, + 790,495, 18,0, 28,64, + 818,495, 18,0, 28,64, + 846,495, 18,0, 28,64, + 874,495, 18,0, 28,64, + 902,495, 18,0, 28,64, + 930,495, 18,0, 28,64, + 958,495, 18,0, 28,64, + 986,495, 18,0, 28,64, + 0,559, 18,0, 28,64, +}; \ No newline at end of file diff --git a/util/extract_pixtables.py b/util/extract_pixtables.py new file mode 100644 index 0000000..a1fd321 --- /dev/null +++ b/util/extract_pixtables.py @@ -0,0 +1,31 @@ +# JUMMY WAS HERE +# extract pixtables from speedy blupi 2.2 english ver + +import sys +import io + +offsets = {} +offsets['table_icon_blupi'] = 0x81bf8 +offsets['table_icon_element'] = 0x84070 +offsets['table_icon_explo'] = 0x84e00 +offsets['table_icon_object'] = 0x82bc0 + +outs = {} + +with io.open('BLUPI.exe', 'rb') as f: + data = f.read() + for k, v in offsets.items(): + lg = int.from_bytes(data[v : v + 2], 'little') + outs[k] = [] + outs[k].append("extern short " + k + "[]{"); + outs[k].append(str(lg) + ','); + for i in range(lg): + string = '' + for j in range(6): + string += str(int.from_bytes(data[v + i*12 + j*2 + 2 : v + i*12 + j*2 + 4], 'little')) + ',' + if j % 2 == 1: + string += ' ' + outs[k].append(string) + outs[k].append('};') +with io.open('out.h', 'wb') as f2: + f2.write(bytearray(('\n\n'.join(['\n'.join(w) for w in [v for _, v in outs.items()]])), 'ascii'))