#define T0OBJ 0
#define T1OBJ 87
#define T2OBJ 100
#define T3OBJ 142
#define T4OBJ 168
#define FREEBB 0
#define FREEIMG 0
#define FREESTR 218

BYTE *rs_strings[] = {
"  ",
" File ",
" -- Draw Mode -- ",
" Options",
"    MegaBlit 2.80",
"--/|\\-/|\\--/|\\-/|\\--",
"  Desk Accessory 1  ",
"  Desk Accessory 2  ",
"  Desk Accessory 3  ",
"  Desk Accessory 4  ",
"  Desk Accessory 5  ",
"  Desk Accessory 6  ",
"  Load    ",
"  New     ",
"----------",
"  Save    ",
"  Update  ",
"----------",
"  Quit    ",
"  Point   ",
"|",
"   UNDO   ",
"  Draw    ",
"|",
"----------",
"  Line    ",
"|",
"  Replace ",
"|",
"  Transp. ",
"  Poly  ",
"|",
"  XOR     ",
"  Rays    ",
"|",
"  Inverse ",
"  Box     ",
"|",
"----------",
"  Rbox  ",
"  Oval  ",
"|",
"  Mark    ",
"|",
"  Copy    ",
"  Pie     ",
"|",
"  Arc     ",
"  Delete  ",
"---------",
"----------",
" Fill",
"  ",
"  Zoom",
"  ",
"  Snap",
"  ",
" Zoom in  ",
" Zoom out ",
"--COLORS--",
" clr0",
"",
"",
"   ",
"",
"",
"   ",
"",
"",
"   ",
"",
"",
"   ",
"",
"",
"   ",
"",
"",
"   ",
"",
"",
"   ",
"",
"",
"   ",
"",
"",
"   ",
"",
"",
"   ",
"",
"",
"   ",
"",
"",
"   ",
"",
"",
"   ",
"",
"",
"   ",
"",
"",
"   ",
"",
"",
"----------",
"  Fills   ",
"  Lines   ",
" MegaBlit  2.80 ",
"",
"",
" (C) 1989 Darek Mihocka ",
"",
"",
"Compuserve: 73657,2714  GEnie: DAREKM",
"",
"",
"Release Date: Jan. 6, 1989.",
"",
"",
"MegaBlit is a larger-than-screen",
"",
"",
"drawing program that is file",
"",
"",
"compatible with uncompressed",
"",
"",
"DEGAS pictures. Use the sliders",
"",
"",
"to move around the large work ",
"",
"",
"area. Only the visible part is",
"",
"",
"loaded and saved.",
"",
"",
" Draw! ",
"",
"",
"  OK  ",
"CANCEL",
"Select a Fill Pattern:",
"Select a transformation:",
"",
"",
"Flips:",
"",
"",
"    ",
"",
" / ",
" \\ ",
"Rotation:",
"",
"",
" -90 ",
" 180 ",
" +90 ",
"",
"",
"",
"Any angle:",
"",
"",
"000",
" Go ",
"",
"",
"",
"Size:",
"",
"",
"x 1/2",
"x 1/3",
"x 2",
"x 3",
" OK ",
" Set Line Defaults: ",
"",
"",
"1",
"3",
"5",
"7",
"9",
" Line Width: ",
"",
"",
"4",
"6",
"8",
"12",
"16",
" Snap Size: ",
"",
"",
" Line Start: ",
"",
"",
" Line Ends:  ",
"",
"",
"SQR",
"ARR",
"RND",
"SQR",
"ARR",
"RND",
"  OK  ",
"Cancel"};

LONG rs_frstr[] = {
0};

BITBLK rs_bitblk[] = {
0};

LONG rs_frimg[] = {
0};

ICONBLK rs_iconblk[] = {
0};

TEDINFO rs_tedinfo[] = {
60L, 61L, 62L, 3, 6, 0, 0x1080, 0x0, 255, 6,1,
63L, 64L, 65L, 3, 6, 0, 0x1F0, 0x0, 255, 6,1,
66L, 67L, 68L, 3, 6, 0, 0x1280, 0x0, 255, 6,1,
69L, 70L, 71L, 3, 6, 0, 0x1380, 0x0, 255, 6,1,
72L, 73L, 74L, 3, 6, 0, 0x1480, 0x0, 255, 6,1,
75L, 76L, 77L, 3, 6, 0, 0x1580, 0x0, 255, 6,1,
78L, 79L, 80L, 3, 6, 0, 0x1680, 0x0, 255, 6,1,
81L, 82L, 83L, 3, 6, 0, 0x1780, 0x0, 255, 6,1,
84L, 85L, 86L, 3, 6, 0, 0x1880, 0x0, 255, 6,1,
87L, 88L, 89L, 3, 6, 0, 0x1980, 0x0, 255, 6,1,
90L, 91L, 92L, 3, 6, 0, 0x1A80, 0x0, 255, 6,1,
93L, 94L, 95L, 3, 6, 0, 0x1B80, 0x0, 255, 6,1,
96L, 97L, 98L, 3, 6, 0, 0x1D80, 0x0, 255, 6,1,
99L, 100L, 101L, 3, 6, 0, 0x1C80, 0x0, 255, 6,1,
102L, 103L, 104L, 3, 6, 0, 0x1E80, 0x0, 255, 6,1,
105L, 106L, 107L, 3, 6, 0, 0x1F80, 0x0, 255, 6,1,
111L, 112L, 113L, 3, 6, 2, 0x11D2, 0x0, 255, 17,1,
114L, 115L, 116L, 3, 6, 2, 0x11D2, 0x0, 255, 25,1,
117L, 118L, 119L, 5, 6, 2, 0x1180, 0x0, 255, 38,1,
120L, 121L, 122L, 5, 6, 2, 0x1180, 0x0, 255, 28,1,
123L, 124L, 125L, 3, 6, 2, 0x1180, 0x0, 255, 33,1,
126L, 127L, 128L, 3, 6, 2, 0x1180, 0x0, 255, 29,1,
129L, 130L, 131L, 3, 6, 2, 0x1180, 0x0, 255, 29,1,
132L, 133L, 134L, 3, 6, 2, 0x1180, 0x0, 255, 32,1,
135L, 136L, 137L, 3, 6, 2, 0x1180, 0x0, 255, 31,1,
138L, 139L, 140L, 3, 6, 2, 0x1180, 0x0, 255, 31,1,
141L, 142L, 143L, 3, 6, 2, 0x1180, 0x0, 255, 18,1,
144L, 145L, 146L, 3, 6, 2, 0x2180, 0x0, 255, 8,1,
150L, 151L, 152L, 3, 6, 0, 0x1180, 0x0, 255, 25,1,
153L, 154L, 155L, 3, 6, 0, 0x1180, 0x0, 255, 7,1,
160L, 161L, 162L, 3, 6, 0, 0x1180, 0x0, 255, 10,1,
169L, 170L, 171L, 3, 6, 0, 0x1180, 0x0, 255, 11,1,
177L, 178L, 179L, 3, 6, 0, 0x1180, 0x0, 255, 6,1,
185L, 186L, 187L, 3, 6, 2, 0x11F2, 0x0, -1, 21,1,
193L, 194L, 195L, 3, 6, 0, 0x1180, 0x0, 255, 14,1,
201L, 202L, 203L, 3, 6, 0, 0x1180, 0x0, 255, 13,1,
204L, 205L, 206L, 3, 6, 0, 0x1180, 0x0, 255, 14,1,
207L, 208L, 209L, 3, 6, 0, 0x1180, 0x0, 255, 14,1};

OBJECT rs_object[] = {
-1, 1, 7, G_IBOX, NONE, NORMAL, 0x0L, 0,0, 40,25,
7, 2, 2, G_BOX, NONE, NORMAL, 0x1100L, 0,0, 1615,513,
1, 3, 6, G_IBOX, NONE, NORMAL, 0x0L, 2,0, 36,769,
4, -1, -1, G_TITLE, NONE, NORMAL, 0x0L, 0,0, 4,769,
5, -1, -1, G_TITLE, NONE, NORMAL, 0x1L, 4,0, 6,769,
6, -1, -1, G_TITLE, NONE, NORMAL, 0x2L, 10,0, 17,769,
2, -1, -1, G_TITLE, NONE, NORMAL, 0x3L, 27,0, 9,769,
0, 8, 64, G_IBOX, NONE, NORMAL, 0x0L, 0,769, 40,19,
17, 9, 16, G_BOX, NONE, NORMAL, 0xFF1100L, 2,0, 20,8,
10, -1, -1, G_STRING, NONE, NORMAL, 0x4L, 0,0, 17,1,
11, -1, -1, G_STRING, NONE, DISABLED, 0x5L, 0,1, 20,1,
12, -1, -1, G_STRING, NONE, NORMAL, 0x6L, 0,2, 20,1,
13, -1, -1, G_STRING, NONE, NORMAL, 0x7L, 0,3, 20,1,
14, -1, -1, G_STRING, NONE, NORMAL, 0x8L, 0,4, 20,1,
15, -1, -1, G_STRING, NONE, NORMAL, 0x9L, 0,5, 20,1,
16, -1, -1, G_STRING, NONE, NORMAL, 0xAL, 0,6, 20,1,
8, -1, -1, G_STRING, NONE, NORMAL, 0xBL, 0,7, 20,1,
25, 18, 24, G_BOX, NONE, NORMAL, 0xFF1100L, 6,0, 10,9,
19, -1, -1, G_STRING, NONE, NORMAL, 0xCL, 0,0, 10,1,
20, -1, -1, G_STRING, NONE, NORMAL, 0xDL, 0,1, 10,1,
21, -1, -1, G_STRING, NONE, DISABLED, 0xEL, 0,2, 10,1,
22, -1, -1, G_STRING, NONE, NORMAL, 0xFL, 0,3, 10,1,
23, -1, -1, G_STRING, NONE, NORMAL, 0x10L, 0,4, 10,1,
24, -1, -1, G_STRING, NONE, DISABLED, 0x11L, 0,5, 10,1,
17, -1, -1, G_STRING, NONE, NORMAL, 0x12L, 0,6, 10,3,
64, 26, 63, G_BOX, NONE, NORMAL, 0xFF1100L, 12,0, 19,13,
27, -1, -1, G_STRING, NONE, NORMAL, 0x13L, 0,0, 8,1,
28, -1, -1, G_STRING, NONE, DISABLED, 0x14L, 8,0, 1,1,
29, -1, -1, G_STRING, NONE, NORMAL, 0x15L, 9,0, 10,1,
30, -1, -1, G_STRING, NONE, NORMAL, 0x16L, 0,1, 8,1,
31, -1, -1, G_STRING, NONE, DISABLED, 0x17L, 8,1, 1,1,
32, -1, -1, G_STRING, NONE, DISABLED, 0x18L, 9,1, 10,1,
33, -1, -1, G_STRING, NONE, NORMAL, 0x19L, 0,2, 8,1,
34, -1, -1, G_STRING, NONE, DISABLED, 0x1AL, 8,2, 1,1,
35, -1, -1, G_STRING, NONE, NORMAL, 0x1BL, 9,2, 10,1,
36, -1, -1, G_STRING, NONE, DISABLED, 0x1CL, 8,3, 1,1,
37, -1, -1, G_STRING, NONE, NORMAL, 0x1DL, 9,3, 10,1,
38, -1, -1, G_STRING, NONE, NORMAL, 0x1EL, 0,3, 8,1,
39, -1, -1, G_STRING, NONE, DISABLED, 0x1FL, 8,4, 1,1,
40, -1, -1, G_STRING, NONE, NORMAL, 0x20L, 9,4, 10,1,
41, -1, -1, G_STRING, NONE, NORMAL, 0x21L, 0,4, 8,1,
42, -1, -1, G_STRING, NONE, DISABLED, 0x22L, 8,5, 1,1,
43, -1, -1, G_STRING, NONE, NORMAL, 0x23L, 9,5, 10,1,
44, -1, -1, G_STRING, NONE, NORMAL, 0x24L, 0,5, 8,1,
45, -1, -1, G_STRING, NONE, DISABLED, 0x25L, 8,6, 1,1,
46, -1, -1, G_STRING, NONE, DISABLED, 0x26L, 9,6, 10,1,
47, -1, -1, G_STRING, NONE, NORMAL, 0x27L, 0,6, 8,1,
48, -1, -1, G_STRING, NONE, NORMAL, 0x28L, 0,7, 8,1,
49, -1, -1, G_STRING, NONE, DISABLED, 0x29L, 8,7, 1,1,
50, -1, -1, G_STRING, NONE, NORMAL, 0x2AL, 9,7, 10,1,
51, -1, -1, G_STRING, NONE, DISABLED, 0x2BL, 8,8, 1,1,
52, -1, -1, G_STRING, NONE, NORMAL, 0x2CL, 9,8, 10,1,
53, -1, -1, G_STRING, NONE, NORMAL, 0x2DL, 0,8, 8,1,
54, -1, -1, G_STRING, NONE, DISABLED, 0x2EL, 8,9, 1,1,
55, -1, -1, G_STRING, NONE, NORMAL, 0x2FL, 0,9, 8,1,
56, -1, -1, G_STRING, NONE, NORMAL, 0x30L, 9,9, 10,1,
57, -1, -1, G_STRING, NONE, DISABLED, 0x31L, 0,10, 9,1,
58, -1, -1, G_STRING, NONE, DISABLED, 0x32L, 9,10, 10,1,
59, -1, -1, G_STRING, NONE, NORMAL, 0x33L, 0,11, 6,2,
60, -1, -1, G_STRING, NONE, NORMAL, 0x34L, 6,11, 3,2,
61, -1, -1, G_STRING, NONE, NORMAL, 0x35L, 9,11, 6,1,
62, -1, -1, G_STRING, NONE, NORMAL, 0x36L, 15,11, 4,1,
63, -1, -1, G_STRING, NONE, NORMAL, 0x37L, 9,12, 6,1,
25, -1, -1, G_STRING, NONE, NORMAL, 0x38L, 15,12, 4,1,
7, 65, 86, G_BOX, NONE, NORMAL, 0xFF1100L, 29,0, 10,17,
66, -1, -1, G_STRING, NONE, NORMAL, 0x39L, 0,0, 10,1,
67, -1, -1, G_STRING, NONE, NORMAL, 0x3AL, 0,1, 10,1,
68, -1, -1, G_STRING, NONE, DISABLED, 0x3BL, 0,2, 10,2,
69, -1, -1, G_TEXT, NONE, NORMAL, 0x0L, 0,4, 5,1,
70, -1, -1, G_TEXT, NONE, NORMAL, 0x1L, 5,4, 5,1,
71, -1, -1, G_TEXT, NONE, NORMAL, 0x2L, 0,5, 5,1,
72, -1, -1, G_TEXT, NONE, NORMAL, 0x3L, 5,5, 5,1,
73, -1, -1, G_TEXT, NONE, NORMAL, 0x4L, 0,6, 5,1,
74, -1, -1, G_TEXT, NONE, NORMAL, 0x5L, 5,6, 5,1,
75, -1, -1, G_TEXT, NONE, NORMAL, 0x6L, 0,7, 5,1,
76, -1, -1, G_TEXT, NONE, NORMAL, 0x7L, 5,7, 5,1,
77, -1, -1, G_TEXT, NONE, NORMAL, 0x8L, 0,8, 5,1,
78, -1, -1, G_TEXT, NONE, NORMAL, 0x9L, 5,8, 5,1,
79, -1, -1, G_TEXT, NONE, NORMAL, 0xAL, 0,9, 5,1,
80, -1, -1, G_TEXT, NONE, NORMAL, 0xBL, 5,9, 5,1,
81, -1, -1, G_TEXT, NONE, NORMAL, 0xCL, 5,10, 5,1,
82, -1, -1, G_TEXT, NONE, NORMAL, 0xDL, 0,10, 5,1,
83, -1, -1, G_TEXT, NONE, NORMAL, 0xEL, 0,11, 5,1,
84, -1, -1, G_TEXT, NONE, NORMAL, 0xFL, 5,11, 5,1,
85, -1, -1, G_STRING, NONE, DISABLED, 0x6CL, 0,12, 10,1,
86, -1, -1, G_STRING, NONE, NORMAL, 0x6DL, 0,13, 10,2,
64, -1, -1, G_STRING, LASTOB, NORMAL, 0x6EL, 0,15, 10,2,
-1, 1, 12, G_BOX, NONE, 0x30, 0xFD1101L, 0,0, 33,18,
2, -1, -1, G_BOXTEXT, NONE, SHADOWED, 0x10L, 2,1, 29,1,
3, -1, -1, G_BOXTEXT, NONE, SHADOWED, 0x11L, 2,3, 29,1,
4, -1, -1, G_TEXT, NONE, NORMAL, 0x12L, 2,5, 30,1,
5, -1, -1, G_TEXT, NONE, NORMAL, 0x13L, 2,6, 30,1,
6, -1, -1, G_TEXT, NONE, NORMAL, 0x14L, 0,8, 33,1,
7, -1, -1, G_TEXT, NONE, NORMAL, 0x15L, 0,9, 33,1,
8, -1, -1, G_TEXT, NONE, NORMAL, 0x16L, 0,10, 33,1,
9, -1, -1, G_TEXT, NONE, NORMAL, 0x17L, 0,11, 33,1,
10, -1, -1, G_TEXT, NONE, NORMAL, 0x18L, 0,12, 33,1,
11, -1, -1, G_TEXT, NONE, NORMAL, 0x19L, 0,13, 33,1,
12, -1, -1, G_TEXT, NONE, NORMAL, 0x1AL, 0,14, 33,1,
0, -1, -1, G_BOXTEXT, 0x27, SHADOWED, 0x1BL, 12,16, 10,1,
-1, 1, 41, G_BOX, NONE, OUTLINED, 0x21100L, 0,0, 31,19,
41, 2, 40, G_BOX, NONE, SHADOWED, 0xFF1100L, 1,3, 28,15,
3, -1, -1, G_BOX, 0x5, NORMAL, 0xFF1100L, 1,1, 2,1,
4, -1, -1, G_BOX, 0x5, NORMAL, 0xFF1100L, 4,1, 2,1,
5, -1, -1, G_BOX, 0x5, NORMAL, 0xFF1100L, 7,1, 2,1,
6, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 10,1, 2,1,
7, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 13,1, 2,1,
8, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 16,1, 2,1,
9, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 19,1, 2,1,
10, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 22,1, 2,1,
11, -1, -1, G_BOX, 0x15, NORMAL, 0xFF1100L, 25,1, 2,1,
12, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 1,3, 2,1,
13, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 4,3, 2,1,
14, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 7,3, 2,1,
15, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 10,3, 2,1,
16, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 13,3, 2,1,
17, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 16,3, 2,1,
18, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 19,3, 2,1,
19, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 22,3, 2,1,
20, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 25,3, 2,1,
21, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 1,5, 2,1,
22, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 4,5, 2,1,
23, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 7,5, 2,1,
24, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 10,5, 2,1,
25, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 13,5, 2,1,
26, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 16,5, 2,1,
27, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 19,5, 2,1,
28, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 22,5, 2,1,
29, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 25,5, 2,1,
30, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 1,7, 2,1,
31, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 4,7, 2,1,
32, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 7,7, 2,1,
33, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 10,7, 2,1,
34, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 13,7, 2,1,
35, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 16,7, 2,1,
36, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 19,7, 2,1,
37, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 22,7, 2,1,
38, -1, -1, G_BOX, 0x11, NORMAL, 0xFF1100L, 25,7, 2,1,
39, -1, -1, G_BOX, NONE, NORMAL, 0xFF1100L, 3,9, 11,5,
40, -1, -1, G_BUTTON, 0x7, NORMAL, 0x93L, 17,10, 8,1,
1, -1, -1, G_BUTTON, 0x5, NORMAL, 0x94L, 17,12, 8,1,
0, -1, -1, G_STRING, LASTOB, NORMAL, 0x95L, 4,1, 22,1,
-1, 1, 25, G_BOX, NONE, OUTLINED, 0x21100L, 0,0, 32,20,
2, -1, -1, G_TEXT, NONE, 0x30, 0x1CL, 2,1, 24,1,
3, -1, -1, G_TEXT, NONE, NORMAL, 0x1DL, 3,3, 6,1,
4, -1, -1, G_BUTTON, 0x5, NORMAL, 0x9CL, 12,3, 4,1,
5, -1, -1, G_BUTTON, 0x5, NORMAL, 0x9DL, 17,3, 4,1,
6, -1, -1, G_BUTTON, 0x5, NORMAL, 0x9EL, 22,3, 4,1,
7, -1, -1, G_BUTTON, 0x5, NORMAL, 0x9FL, 27,3, 4,1,
8, -1, -1, G_TEXT, NONE, NORMAL, 0x1EL, 3,5, 9,1,
9, -1, -1, G_BUTTON, 0x5, NORMAL, 0xA3L, 14,5, 5,1,
10, -1, -1, G_BUTTON, 0x5, NORMAL, 0xA4L, 20,5, 5,1,
11, -1, -1, G_BUTTON, 0x5, NORMAL, 0xA5L, 26,5, 5,1,
12, -1, -1, G_BUTTON, 0x5, NORMAL, 0xA6L, 15,7, 1,1,
13, -1, -1, G_BUTTON, 0x5, NORMAL, 0xA7L, 17,7, 1,1,
14, -1, -1, G_BUTTON, 0x5, NORMAL, 0xA8L, 19,7, 1,1,
15, -1, -1, G_TEXT, NONE, NORMAL, 0x1FL, 3,8, 10,2,
16, -1, -1, G_STRING, NONE, NORMAL, 0xACL, 16,8, 3,2,
17, -1, -1, G_BUTTON, 0x5, NORMAL, 0xADL, 23,8, 4,2,
18, -1, -1, G_BUTTON, 0x5, NORMAL, 0xAEL, 15,10, 1,1,
19, -1, -1, G_BUTTON, 0x5, NORMAL, 0xAFL, 17,10, 1,1,
20, -1, -1, G_BUTTON, 0x5, NORMAL, 0xB0L, 19,10, 1,1,
21, -1, -1, G_TEXT, NONE, NORMAL, 0x20L, 3,12, 5,1,
22, -1, -1, G_BUTTON, 0x5, NORMAL, 0xB4L, 10,12, 7,1,
23, -1, -1, G_BUTTON, 0x5, NORMAL, 0xB5L, 21,12, 7,1,
24, -1, -1, G_BUTTON, 0x5, NORMAL, 0xB6L, 10,14, 7,1,
25, -1, -1, G_BUTTON, 0x5, NORMAL, 0xB7L, 21,14, 7,1,
0, -1, -1, G_BUTTON, 0x27, 0x30, 0xB8L, 13,17, 8,1,
-1, 1, 30, G_BOX, NONE, OUTLINED, 0x21100L, 0,0, 32,20,
2, -1, -1, G_BOXTEXT, NONE, OUTLINED, 0x21L, 2,1, 28,1,
10, 3, 9, G_BOX, NONE, SHADOWED, 0xFF1122L, 2,3, 28,3,
9, 4, 8, G_BOX, NONE, NORMAL, 0xFF1100L, 17,1, 10,1,
5, -1, -1, G_BUTTON, 0x11, NORMAL, 0xBCL, 0,0, 2,1,
6, -1, -1, G_BUTTON, 0x11, NORMAL, 0xBDL, 2,0, 2,1,
7, -1, -1, G_BUTTON, 0x11, NORMAL, 0xBEL, 4,0, 2,1,
8, -1, -1, G_BUTTON, 0x11, NORMAL, 0xBFL, 6,0, 2,1,
3, -1, -1, G_BUTTON, 0x11, NORMAL, 0xC0L, 8,0, 2,1,
2, -1, -1, G_TEXT, NONE, NORMAL, 0x22L, 2,1, 13,1,
18, 11, 17, G_BOX, NONE, SHADOWED, 0xFF1153L, 2,7, 28,3,
17, 12, 16, G_BOX, NONE, NORMAL, 0xFF1100L, 17,1, 10,1,
13, -1, -1, G_BUTTON, 0x11, NORMAL, 0xC4L, 0,0, 2,1,
14, -1, -1, G_BUTTON, 0x11, NORMAL, 0xC5L, 2,0, 2,1,
15, -1, -1, G_BUTTON, 0x11, NORMAL, 0xC6L, 4,0, 2,1,
16, -1, -1, G_BUTTON, 0x11, NORMAL, 0xC7L, 6,0, 2,1,
11, -1, -1, G_BUTTON, 0x11, NORMAL, 0xC8L, 8,0, 2,1,
10, -1, -1, G_TEXT, NONE, NORMAL, 0x23L, 2,1, 12,1,
29, 19, 25, G_BOX, NONE, SHADOWED, 0xFF1162L, 2,11, 28,5,
20, -1, -1, G_TEXT, NONE, NORMAL, 0x24L, 1,1, 13,1,
21, -1, -1, G_TEXT, NONE, NORMAL, 0x25L, 1,3, 13,1,
25, 22, 24, G_BOX, NONE, NORMAL, 0xFF1100L, 15,3, 12,1,
23, -1, -1, G_BUTTON, 0x11, NORMAL, 0xD2L, 0,0, 4,1,
24, -1, -1, G_BUTTON, 0x11, NORMAL, 0xD3L, 4,0, 4,1,
21, -1, -1, G_BUTTON, 0x11, NORMAL, 0xD4L, 8,0, 4,1,
18, 26, 28, G_BOX, NONE, NORMAL, 0xFF1100L, 15,1, 12,1,
27, -1, -1, G_BUTTON, 0x11, NORMAL, 0xD5L, 0,0, 4,1,
28, -1, -1, G_BUTTON, 0x11, NORMAL, 0xD6L, 4,0, 4,1,
25, -1, -1, G_BUTTON, 0x11, NORMAL, 0xD7L, 8,0, 4,1,
30, -1, -1, G_BUTTON, 0x7, NORMAL, 0xD8L, 6,18, 8,1,
0, -1, -1, G_BUTTON, 0x25, NORMAL, 0xD9L, 18,18, 8,1};

LONG rs_trindex[] = {
0L,
87L,
100L,
142L,
168L};

struct foobar {
	WORD	dummy;
	WORD	*image;
	} rs_imdope[] = {
0};

#define NUM_STRINGS 218
#define NUM_FRSTR 0
#define NUM_IMAGES 0
#define NUM_BB 0
#define NUM_FRIMG 0
#define NUM_IB 0
#define NUM_TI 38
#define NUM_OBS 199
#define NUM_TREE 5

BYTE pname[] = "MEGABLIT.RSC";se ZOOM_OUT:
                    if (zoom_flag && zbox_w<64) {
                      zbox_w *= 2;
                      zbox_h *= 2;
                      drew=TRUE;
                     }
                    break;

                  case OPT_FILL:
                        select_fill();
                        break;

                  case OPT_OTHR:
                        select_other();
                        break;

                  default:

                    if (rez==2 && selection!=COLOR0 && selection!=COLOR1)
                        break;
                    if (rez==1 && selection!=COLOR0 && selection!=COLOR1
                               && selection!=COLOR2 && selection!=COLOR3)
                        break;
                    menu[COLOR0].ob_state &= ~CHECKED;
                    menu[COLOR1].ob_state &= ~CHECKED;
                    menu[COLOR2].ob_state &= ~CHECKED;
                    menu[COLOR3].ob_state &= ~CHECKED;
                    menu[COLOR4].ob_state &= ~CHECKED;
                    menu[COLOR5].ob_state &= ~CHECKED;
                    menu[COLOR6].ob_state &= ~CHECKED;
                    menu[COLOR7].ob_state &= ~CHECKED;
                    menu[COLOR8].ob_state &= ~CHECKED;
                    menu[COLOR9].ob_state &= ~CHECKED;
                    menu[COLORA].ob_state &= ~CHECKED;
                    menu[COLORB].ob_state &= ~CHECKED;
                    menu[COLORC].ob_state &= ~CHECKED;
                    menu[COLORD].ob_state &= ~CHECKED;
                    menu[COLORE].ob_state &= ~CHECKED;
                    menu[COLORF].ob_state &= ~CHECKED;
                    menu[selection].ob_state |= CHECKED;

    /* This is NOT the way to do this. Simply sorting the object and
       doing
            draw_color = selection - COLOR0;
       would have worked!
    */
                    switch (selection)
                        {
                    case COLOR0:
                        draw_color = 0;
                        break;
                    case COLOR1:
                        draw_color = 1;
                        break;
                    case COLOR2:
                        draw_color = 2;
                        break;
                    case COLOR3:
                        draw_color = 3;
                        break;
                    case COLOR4:
                        draw_color = 4;
                        break;
                    case COLOR5:
                        draw_color = 5;
                        break;
                    case COLOR6:
                        draw_color = 6;
                        break;
                    case COLOR7:
                        draw_color = 7;
                        break;
                    case COLOR8:
                        draw_color = 8;
                        break;
                    case COLOR9:
                        draw_color = 9;
                        break;
                    case COLORA:
                        draw_color = 0xA;
                        break;
                    case COLORB:
                        draw_color = 0xB;
                        break;
                    case COLORC:
                        draw_color = 0xC;
                        break;
                    case COLORD:
                        draw_color = 0xD;
                        break;
                    case COLORE:
                        draw_color = 0xE;
                        break;
                    case COLORF:
                        draw_color = 0xF;
                        break;
                        }
                    set_color(draw_color);
                    break;
                  }
                  menu_tnormal(menu,OPTIONS,1);
               }

              case MODE:
                switch (msgbuff[4]) {

                  case POINT:
                  case DRAW:
                  case LINE:
                  case RAY:
                  case BOX:
                  case ARC:
                  case PIE:
                  case ELLIPSE:
                  case RND_BOX:
                  case POLYGON:
                    menu[draw_mode].ob_state ^= CHECKED;
                    draw_mode = msgbuff[4];
                    menu[draw_mode].ob_state ^= CHECKED;
                    block_mode = 0;     /* de-activate block_mode */
                    menu[COPY].ob_state &= ~CHECKED;
                    menu[MARK].ob_state &= ~CHECKED;
                    menu[DELETE].ob_state &= ~CHECKED;
                    break;

                  case FILL:
                    menu[FILLFLAG].ob_state ^= CHECKED;
                    fill_flag ^= TRUE;
                    break;

                  case SNAP:
                    menu[SNAPFLAG].ob_state ^= CHECKED;
                    snap_flag ^= TRUE;
                    break;

                  case REPLACE:
                    copy_mode = 1;
                    menu[REPLACE].ob_state |= CHECKED;
                    menu[TRANSP].ob_state &= ~CHECKED;
                    menu[XOR].ob_state &= ~CHECKED;
                    menu[INVERSE].ob_state &= ~CHECKED;
                    break;

                  case TRANSP:
                    copy_mode = 2;
                    menu[REPLACE].ob_state &= ~CHECKED;
                    menu[TRANSP].ob_state |= CHECKED;
                    menu[XOR].ob_state &= ~CHECKED;
                    menu[INVERSE].ob_state &= ~CHECKED;
                    break;

                  case XOR:
                    copy_mode = 3;
                    menu[REPLACE].ob_state &= ~CHECKED;
                    menu[TRANSP].ob_state &= ~CHECKED;
                    menu[XOR].ob_state |= CHECKED;
                    menu[INVERSE].ob_state &= ~CHECKED;
                    break;

                  case INVERSE:
                    copy_mode = 4;
                    menu[REPLACE].ob_state &= ~CHECKED;
                    menu[TRANSP].ob_state &= ~CHECKED;
                    menu[XOR].ob_state &= ~CHECKED;
                    menu[INVERSE].ob_state |= CHECKED;
                    break;

                  case MARK:
                    block_mode = 1;
                    menu[MARK].ob_state |= CHECKED;
                    menu[COPY].ob_state &= ~CHECKED;
                    menu[DELETE].ob_state &= ~CHECKED;
                    break;

                  case COPY:
                    block_mode = (blockh+blockw) ? 2 : 0;
                    menu[COPY].ob_state &= ~CHECKED;
                    menu[MARK].ob_state &= ~CHECKED;
                    menu[DELETE].ob_state &= ~CHECKED;
                    if (block_mode) menu[COPY].ob_state |= CHECKED;
                    break;

                  case DELETE:
                    block_mode = 3;
                    menu[MARK].ob_state &= ~CHECKED;
                    menu[COPY].ob_state &= ~CHECKED;
                    menu[DELETE].ob_state |=CHECKED;
                    break;

                  case ZOOM:
                    menu[ZOOMFLAG].ob_state ^= CHECKED;
                    zoom_flag ^= TRUE;
                    if (zoom_flag) {
                      scr_to_buf(0,0,wwork,hwork);
                      wwork = zoom_wwork;
                      hwork = zoom_hwork;
                      buf_to_scr(0,0,wwork,hwork);
                      update_slider(1,1);
                      update_slider(-1,-1);

                      drew=FALSE;
                     }
                    else {
                      scr_to_buf(0,0,wwork,hwork);
                      wwork = true_wwork;
                      hwork = true_hwork;
                      buf_to_scr(0,0,wwork,hwork);
                      update_slider(1,1);
                      update_slider(-1,-1);
                     }
                    break;

                 case UNDO:
                    undo_to_scr();
                    break;

                  }
                menu_tnormal(menu,MODE,1);
                break;

             }

          case WM_REDRAW:
            do_redraw(msgbuff[4],msgbuff[5],msgbuff[6],msgbuff[7]);
            break;

          case WM_NEWTOP:
          case WM_TOPPED:
            scr_to_buf(0,0,wwork,hwork);
            wind_set(wi_handle,WF_TOP,0,0,0,0);
            break;

          case WM_CLOSED:
            quit++;
            break;

          case WM_VSLID:
            update_slider(0,  /*dx=0*/
              (int)((long)msgbuff[4]*((long)(ysize-hwork))/1000L)-ypos);
            break;

          case WM_HSLID:
            update_slider(
              (int)((long)msgbuff[4]*((long)(xsize-wwork))/1000L)-xpos,0);
            break;

          case WM_ARROWED:
            drew = TRUE;
            switch(msgbuff[4]) {

              case WA_UPPAGE:
                  update_slider(0,-hwork/2);
                break;

              case WA_DNPAGE:
                  update_slider(0,hwork/2);
                break;

              case WA_LFPAGE:
                  update_slider(-wwork/2,0);
                break;

              case WA_RTPAGE:
                  update_slider(wwork/2,0);
                break;

              case WA_UPLINE:
                update_slider(0,-8);
                break;

              case WA_DNLINE:
                update_slider(0,8);
                break;

              case WA_LFLINE:
                update_slider(-8,0);
                break;

              case WA_RTLINE:
                update_slider(8,0);
                break;

             } /* switch (msgbuff[4]) */

           } /* switch (msgbuff[0]) */
          if (!fill_flag)
            graf_mouse(OUTLN_CROSS,0L);    /* restore crosshairs */
          else
            graf_mouse(THICK_CROSS,0L);
         }
        else {

           drew = TRUE;
           vswr_mode(handle,copy_mode);   /* go to proper blitting mode */
           scr_to_undo();                 /* UNDO wasn't picked, so update */

           if (zoom_flag && x>= zxwork)    /* if inside zoom box... */
            {
             int zx, zy, ar[4], z, ozx = -1, ozy = -1, sel=FALSE;

             do {
               zx = (x-zxwork-2);
               zy = (y-zywork-2);
               if (zx%mag_x || zy%mag_y) /* null zones between big pixels */
                 {
                 zx /= mag_x; zy /= mag_y;
                 if (zx>=0 && zx<zbox_w && zy>=0 && zy<zbox_h
                     && (zx+zy)!=(ozx+ozy))
                   {
                     ozx = zx; ozy = zy;
                     if (!sel) {             /* if zoom color not picked yet */
                       v_get_pixel (handle,zbox_x+zx,zbox_y+zy,&z,&z);
                       sel = TRUE;
                      }
                     vsf_interior(handle,1);
                     if (rez==2)
                       vsf_color(handle,1-z);   /* reverse color in mono*/
                     else
                       vsf_color(handle,draw_color);
                     ar[0] = ar[2] = zbox_x+zx;
                     ar[1] = ar[3] = zbox_y+zy;
                     v_bar(handle,ar);           /* small pixel */
                     update_zoom(zx,zy,zx+1,zy+1);
                   }
                }
               wait_mouse(&x,&y,&but);
              } while (but);
             drew = FALSE;     /* no need to redraw again */
            }
           else                            /* if not, proceed normally */
           if (!block_mode && but) switch(draw_mode)
             {
             case DRAW:
             case POINT:
               ox = x;
               oy = y;
               if (!fill_flag || draw_mode==DRAW ) {
                do {
                 arr_pnts[0] = ox;
                 arr_pnts[2] = x;
                 arr_pnts[1] = oy;
                 arr_pnts[3] = y;
                 graf_mouse(M_OFF,0L);
                 v_pline(handle,2,arr_pnts);
                 if (zoom_flag) {          /* if zoom is on, then check */
                   int zx, zy;            /* if we passed through zoom */
                   zx = (x-zbox_x);       /* window */
                   zy = (y-zbox_y);
                   if (zx>=0 && zx<zbox_w && zy>=0 && zy<zbox_h)
                      update_zoom(zx,zy,zx+1,zy+1);
                   }
                 graf_mouse(M_ON,0L);
                 ox = x;
                 oy = y;
                 wait_mouse(&x,&y,&but);
                 } while (but && draw_mode==DRAW);
                drew=FALSE;
               }
              else
                {
                graf_mouse(M_OFF,0L);
                vsf_interior(handle,(mdFill>24)?3:2);
                vsf_style(handle,mdFill%24);
                vsf_color(handle,draw_color);
                v_contourfill(handle,x,y,-1);
                graf_mouse(M_ON,0L);
                }
              break;

             case LINE:
               ox = x; oy = y;
               rubber_shape(LINE,ox,oy,&x2,&y2);
               graf_mouse(M_OFF,0L);
               vsl_ends(handle,mdLS,mdLE);
               vsl_width(handle,LineWidth);
               v_pline(handle,2,arr_pnts);
               graf_mouse(M_ON,0L);
             break;

             case POLYGON:
              {
               int points=1, ar[40];

               ar[0] = x2 = x;
               ar[1] = y2 = y;
               do {
                 ox = x2; oy = y2;
                 rubber_shape(LINE,ox,oy,&x2,&y2);
                 graf_mouse(M_OFF,0L);
                 v_pline(handle,2,arr_pnts);
                 graf_mouse(M_ON,0L);
                 ar[points*2] = x2;
                 ar[points*2+1] = y2;
                 points++;
                } while (x2!=ox || y2!=oy);
               if (fill_flag)
                 {
                 graf_mouse(M_OFF,0L);
                 v_fillarea(handle,points,ar);
                 graf_mouse(M_ON,0L);
                 }
              }
             break;

             case RAY:
               arr_pnts[0] = x;
               arr_pnts[1] = y;
               do {
                 arr_pnts[2] = x;
                 arr_pnts[3] = y;
                 graf_mouse(M_OFF,0L);
                 vsl_ends(handle,mdLS,mdLE);
                 vsl_width(handle,LineWidth);
                 v_pline(handle,2,arr_pnts);
                 graf_mouse(M_ON,0L);
                 wait_mouse(&x,&y,&but);
                } while (but);
               break;

             case BOX:
                rubber_shape(BOX,x,y,&x2,&y2);
                graf_mouse(M_OFF,0L);
                vsl_ends(handle,0,0);
                vsl_width(handle,LineWidth);
                if (fill_flag) {
                  arr_pnts[0] = x; arr_pnts[1] = y;
                  arr_pnts[2] = x2; arr_pnts[3] = y2;
                  v_bar(handle,arr_pnts);      /* fill in the interior */
                 }
                else v_pline(handle,5,arr_pnts);
                graf_mouse(M_ON,0L);
                break;

             case ELLIPSE:
                rubber_shape(ELLIPSE,x,y,&x2,&y2);
                graf_mouse(M_OFF,0L);
                if (fill_flag)
                  v_ellipse(handle,(x+x2)/2,(y+y2)/2,(x2-x)/2,(y2-y)/2);
                else
                  v_ellarc(handle,(x+x2)/2,(y+y2)/2,(x2-x)/2,(y2-y)/2,0,3595);
                graf_mouse(M_ON,0L);
                break;

             case RND_BOX:
                rubber_shape(BOX,x,y,&x2,&y2);
                arr_pnts[0] = x; arr_pnts[1] = y;
                arr_pnts[2] = x2; arr_pnts[3] = y2;
                graf_mouse(M_OFF,0L);
                if (fill_flag) v_rfbox(handle,arr_pnts);
                else v_rbox(handle,arr_pnts);
                graf_mouse(M_ON,0L);
                break;

             case ARC:
             case PIE:
                {
                int xx, yy, rr, ang1, ang2, ang3, txx, tyy, tang1, tang3, trr;
                vq_mouse(handle,&but,&x,&y);
  