1 // Emacs style mode select -*- C++ -*-
2 //---------------------------------------------------------------------------
3 //
4 // $Id: swsymbol.c,v 1.1.1.1 2003/02/14 19:03:21 fraggle Exp $
5 //
6 // Copyright(C) 1984-2000 David L. Clark
7 // Copyright(C) 2001-2003 Simon Howard
8 //
9 // This program is free software; you can redistribute it and/or modify it
10 // under the terms of the GNU General Public License as published by the
11 // Free Software Foundation; either version 2 of the License, or (at your
12 // option) any later version. This program is distributed in the hope that
13 // it will be useful, but WITHOUT ANY WARRANTY; without even the implied
14 // warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
15 // the GNU General Public License for more details. You should have
16 // received a copy of the GNU General Public License along with this
17 // program; if not, write to the Free Software Foundation, Inc., 59 Temple
18 // Place - Suite 330, Boston, MA 02111-1307, USA.
19 //
20 //---------------------------------------------------------------------------
21 //
22 // Sprites
23 //
24 //---------------------------------------------------------------------------
25
26 #include "sw.h"
27 #include "swsymbol.h"
28
29 // sdh 28/6/2002: these are from swsymbol.h
30 // some of this is probably kind of redundant seeing as the data is
31 // all static now
32
33 #define BOMBBYTES 16 /* Bytes in a bomb symbol */
34 #define BOMBANGS 8 /* Number of bomb angles */
35 #define TARGBYTES 64 /* Bytes in a target symbol */
36 #define TARGORIENTS 4 /* Number of target types */
37 #define EXPLSYMS 8 /* Number of explosion symbols */
38 #define EXPBYTES 16 /* Bytes in an explosion symbol */
39 #define FLCKSYMS 2 /* Number of flock symbols */
40 #define FLKBYTES 64 /* Bytes in a flock symbol */
41 #define BIRDSYMS 2 /* Number of bird symbols */
42 #define BRDBYTES 2 /* Bytes in a bird symbol */
43 #define OXSYMS 2 /* Number of ox symbols */
44 #define OXBYTES 64 /* Bytes in an ox symbol */
45 #define GHSTBYTES 16 /* Bytes in a ghost symbol */
46 #define SHOTBYTES 64 /* Bytes in a shot window symbol */
47 #define SPLTBYTES 256 /* Bytes in a splatted bird symbol */
48 #define MISCBYTES 16 /* Bytes in a missile symbol */
49 #define MISCANGS 16 /* Number of missile angles */
50 #define BRSTBYTES 16 /* Bytes in a starburst symbol */
51 #define BRSTSYMS 2 /* Number of starburst symbols */
52
53 #define HITSYMS 2 /* Number of hit symbols per plane */
54 #define SYMBYTES 64 /* Bytes in a symbol */
55 #define WINSIZES 4 /* Number of winner plane sizes */
56 #define WINBYTES 64 /* Bytes in a winner symbol */
57
58 // sdh 28/6/2002: moved planes here
59
60 static unsigned char swplnsym[ORIENTS][ANGLES][SYMBYTES] = {
61
62 /* airplane symbols based on the following template file:
63 16
64 . . . . . . . . . . . . . . . .
65 . . . . . . . . . . . . . . . .
66 . . . . . . . . . . . . . . . .
67 . . . . . . . . . . . . . . . .
68 1 1 1 . . . . . . . . . . . . .
69 1 1 1 1 . . . . 2 2 2 2 2 2 2 .
70 1 1 1 1 1 . . . . . 2 . 2 . . .
71 2 2 2 2 2 1 1 1 1 1 2 1 2 1 1 1
72 . 1 1 1 1 1 1 1 1 1 2 1 2 1 1 1
73 . . 1 1 1 1 1 1 2 2 2 2 2 2 1 1
74 . . 1 . . . . . . . . 1 . . . .
75 . . . . . . . . . . 1 1 1 . . .
76 . . . . . . . . . . . 1 . . . .
77 . . . . . . . . . . . . . . . .
78 . . . . . . . . . . . . . . . .
79 . . . . . . . . . . . . . . . .
80 */
81 {
82 {
83 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
84 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x54, 0x0 , 0x0 , 0x0 ,
85 0x55, 0x0 , 0xAA, 0xA8, 0x55, 0x40, 0x8 , 0x80, 0xAA, 0x95,
86 0x59, 0x95, 0x15, 0x55, 0x59, 0x95, 0x5 , 0x55, 0xAA, 0xA5,
87 0x4 , 0x0 , 0x1 , 0x0 , 0x0 , 0x0 , 0x5 , 0x40, 0x0 , 0x0 ,
88 0x1 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
89 0x0 , 0x0 , 0x0 , 0x0 ,
90 },
91 {
92 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
93 0x0 , 0x0 , 0x0 , 0x0 , 0x2 , 0xA0, 0x0 , 0x0 , 0x2A, 0x4 ,
94 0x0 , 0x2 , 0xA2, 0x55, 0x10, 0x0 , 0x19, 0x95, 0x54, 0x41,
95 0x59, 0xA0, 0x55, 0x95, 0x6A, 0x0 , 0x6A, 0x55, 0x60, 0x50,
96 0x15, 0x54, 0x1 , 0x40, 0x1 , 0x40, 0x0 , 0x0 , 0x1 , 0x0 ,
97 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
98 0x0 , 0x0 , 0x0 , 0x0 ,
99 },
100 {
101 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x8 , 0x0 , 0x0 , 0x0 ,
102 0x8 , 0x40, 0x0 , 0x0 , 0xA1, 0x50, 0x0 , 0x2 , 0x9 , 0x50,
103 0x0 , 0x8 , 0xA6, 0x80, 0x0 , 0x0 , 0x4A, 0x0 , 0x0 , 0x1 ,
104 0x58, 0x50, 0x0 , 0x5 , 0x60, 0x50, 0x11, 0x55, 0x40, 0x0 ,
105 0x55, 0x95, 0x0 , 0x0 , 0x56, 0x54, 0x0 , 0x0 , 0x19, 0x50,
106 0x0 , 0x0 , 0x0 , 0x10, 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
107 0x0 , 0x0 , 0x0 , 0x0 ,
108 },
109 {
110 0x0 , 0x0 , 0x4 , 0x0 , 0x0 , 0x2 , 0x95, 0x40, 0x0 , 0x2 ,
111 0x15, 0x0 , 0x0 , 0x8 , 0xA6, 0x0 , 0x0 , 0x8 , 0x5A, 0x0 ,
112 0x0 , 0xA , 0xA9, 0x40, 0x0 , 0x20, 0x58, 0x50, 0x0 , 0x1 ,
113 0x60, 0x0 , 0x0 , 0x1 , 0x60, 0x0 , 0x0 , 0x5 , 0x50, 0x0 ,
114 0x0 , 0x15, 0x40, 0x0 , 0x5 , 0x69, 0x40, 0x0 , 0x5 , 0x65,
115 0x0 , 0x0 , 0x15, 0x65, 0x0 , 0x0 , 0x5 , 0x80, 0x40, 0x0 ,
116 0x0 , 0x0 , 0x0 , 0x0 ,
117 },
118 {
119 0x0 , 0x1 , 0x50, 0x0 , 0x0 , 0x21, 0x50, 0x0 , 0x0 , 0x21,
120 0x60, 0x0 , 0x0 , 0x2A, 0xA1, 0x0 , 0x0 , 0x21, 0x65, 0x40,
121 0x0 , 0x2A, 0xA1, 0x0 , 0x0 , 0x21, 0x60, 0x0 , 0x0 , 0x21,
122 0x60, 0x0 , 0x0 , 0x1 , 0x50, 0x0 , 0x0 , 0x1 , 0x50, 0x0 ,
123 0x0 , 0x1 , 0x50, 0x0 , 0x0 , 0x6 , 0x50, 0x0 , 0x0 , 0x16,
124 0x50, 0x0 , 0x0 , 0x56, 0x54, 0x0 , 0x0 , 0x56, 0x40, 0x0 ,
125 0x0 , 0x56, 0x0 , 0x0 ,
126 },
127 {
128 0x0 , 0x14, 0x0 , 0x0 , 0x0 , 0x54, 0x0 , 0x0 , 0x2 , 0x16,
129 0x10, 0x0 , 0x2 , 0x1A, 0x14, 0x0 , 0x2 , 0xA5, 0x84, 0x0 ,
130 0x0 , 0x8A, 0x80, 0x0 , 0x0 , 0xA5, 0xA0, 0x0 , 0x0 , 0x21,
131 0x50, 0x0 , 0x0 , 0x21, 0x50, 0x0 , 0x0 , 0x0 , 0x54, 0x0 ,
132 0x0 , 0x0 , 0x54, 0x0 , 0x0 , 0x1 , 0x95, 0x0 , 0x0 , 0x0 ,
133 0x65, 0x40, 0x0 , 0x1 , 0x64, 0x0 , 0x0 , 0x5 , 0x64, 0x0 ,
134 0x0 , 0x1 , 0x50, 0x0 ,
135 },
136 {
137 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x1 , 0x41,
138 0x40, 0x0 , 0x5 , 0x61, 0x40, 0x0 , 0x1 , 0x68, 0x0 , 0x0 ,
139 0x28, 0x9A, 0x0 , 0x0 , 0x2 , 0x21, 0x80, 0x0 , 0x2 , 0x25,
140 0x50, 0x0 , 0x0 , 0x81, 0x54, 0x0 , 0x0 , 0x20, 0x55, 0x0 ,
141 0x0 , 0x0 , 0x15, 0x50, 0x0 , 0x0 , 0x19, 0x40, 0x0 , 0x0 ,
142 0x16, 0x40, 0x0 , 0x0 , 0x5 , 0x80, 0x0 , 0x0 , 0x15, 0x40,
143 0x0 , 0x0 , 0x5 , 0x0 ,
144 },
145 {
146 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x4 ,
147 0x0 , 0x0 , 0x10, 0x14, 0x0 , 0x0 , 0x16, 0x90, 0x0 , 0x0 ,
148 0x55, 0xA8, 0x0 , 0x0 , 0x16, 0x66, 0x90, 0x0 , 0x22, 0x65,
149 0x55, 0x4 , 0x28, 0x21, 0x55, 0x50, 0x2 , 0xA0, 0x16, 0x50,
150 0x0 , 0x8 , 0x6 , 0xA0, 0x0 , 0x0 , 0x1 , 0x58, 0x0 , 0x0 ,
151 0x1 , 0x54, 0x0 , 0x0 , 0x1 , 0x54, 0x0 , 0x0 , 0x0 , 0x10,
152 0x0 , 0x0 , 0x0 , 0x0 ,
153 },
154 {
155 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
156 0x0 , 0x0 , 0x0 , 0x40, 0x0 , 0x0 , 0x1 , 0x50, 0x0 , 0x0 ,
157 0x0 , 0x40, 0x0 , 0x10, 0x5A, 0xAA, 0x55, 0x50, 0x56, 0x65,
158 0x55, 0x54, 0x56, 0x65, 0x56, 0xAA, 0x2 , 0x20, 0x1 , 0x55,
159 0x2A, 0xAA, 0x0 , 0x55, 0x0 , 0x0 , 0x0 , 0x15, 0x0 , 0x0 ,
160 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
161 0x0 , 0x0 , 0x0 , 0x0 ,
162 },
163 {
164 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
165 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x40, 0x0 , 0x0 , 0x1 , 0x40,
166 0x1 , 0x40, 0x15, 0x54, 0x5 , 0x9 , 0x55, 0xA9, 0x0 , 0xA9,
167 0x56, 0x55, 0xA , 0x65, 0x41, 0x15, 0x56, 0x64, 0x0 , 0x4 ,
168 0x55, 0x8A, 0x80, 0x0 , 0x10, 0xA8, 0x0 , 0x0 , 0xA , 0x80,
169 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
170 0x0 , 0x0 , 0x0 , 0x0 ,
171 },
172 {
173 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
174 0x4 , 0x0 , 0x0 , 0x0 , 0x5 , 0x64, 0x0 , 0x0 , 0x15, 0x95,
175 0x0 , 0x0 , 0x56, 0x55, 0x0 , 0x1 , 0x55, 0x44, 0x5 , 0x9 ,
176 0x50, 0x0 , 0x5 , 0x25, 0x40, 0x0 , 0x0 , 0xA1, 0x0 , 0x0 ,
177 0x2 , 0x9A, 0x20, 0x0 , 0x5 , 0x60, 0x80, 0x0 , 0x5 , 0x4A,
178 0x0 , 0x0 , 0x1 , 0x20, 0x0 , 0x0 , 0x0 , 0x20, 0x0 , 0x0 ,
179 0x0 , 0x0 , 0x0 , 0x0 ,
180 },
181 {
182 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x1 , 0x2 , 0x50, 0x0 , 0x0 ,
183 0x59, 0x54, 0x0 , 0x0 , 0x59, 0x50, 0x0 , 0x1 , 0x69, 0x50,
184 0x0 , 0x1 , 0x54, 0x0 , 0x0 , 0x5 , 0x50, 0x0 , 0x0 , 0x9 ,
185 0x40, 0x0 , 0x0 , 0x9 , 0x40, 0x0 , 0x5 , 0x25, 0x8 , 0x0 ,
186 0x1 , 0x6A, 0xA0, 0x0 , 0x0 , 0xA5, 0x20, 0x0 , 0x0 , 0x9A,
187 0x20, 0x0 , 0x0 , 0x54, 0x80, 0x0 , 0x1 , 0x56, 0x80, 0x0 ,
188 0x0 , 0x10, 0x0 , 0x0 ,
189 },
190 {
191 0x0 , 0x0 , 0x95, 0x0 , 0x0 , 0x1 , 0x95, 0x0 , 0x0 , 0x15,
192 0x95, 0x0 , 0x0 , 0x5 , 0x94, 0x0 , 0x0 , 0x5 , 0x90, 0x0 ,
193 0x0 , 0x5 , 0x40, 0x0 , 0x0 , 0x5 , 0x40, 0x0 , 0x0 , 0x5 ,
194 0x40, 0x0 , 0x0 , 0x9 , 0x48, 0x0 , 0x0 , 0x9 , 0x48, 0x0 ,
195 0x0 , 0x4A, 0xA8, 0x0 , 0x1 , 0x59, 0x48, 0x0 , 0x0 , 0x4A,
196 0xA8, 0x0 , 0x0 , 0x9 , 0x48, 0x0 , 0x0 , 0x5 , 0x48, 0x0 ,
197 0x0 , 0x5 , 0x40, 0x0 ,
198 },
199 {
200 0x0 , 0x5 , 0x40, 0x0 , 0x0 , 0x19, 0x50, 0x0 , 0x0 , 0x19,
201 0x40, 0x0 , 0x1 , 0x59, 0x0 , 0x0 , 0x0 , 0x56, 0x40, 0x0 ,
202 0x0 , 0x15, 0x0 , 0x0 , 0x0 , 0x15, 0x0 , 0x0 , 0x0 , 0x5 ,
203 0x48, 0x0 , 0x0 , 0x5 , 0x48, 0x0 , 0x0 , 0xA , 0x5A, 0x0 ,
204 0x0 , 0x2 , 0xA2, 0x0 , 0x0 , 0x12, 0x5A, 0x80, 0x0 , 0x14,
205 0xA4, 0x80, 0x0 , 0x4 , 0x94, 0x80, 0x0 , 0x0 , 0x15, 0x0 ,
206 0x0 , 0x0 , 0x14, 0x0 ,
207 },
208 {
209 0x0 , 0x50, 0x0 , 0x0 , 0x1 , 0x54, 0x0 , 0x0 , 0x2 , 0x50,
210 0x0 , 0x0 , 0x1 , 0x94, 0x0 , 0x0 , 0x1 , 0x64, 0x0 , 0x0 ,
211 0x5 , 0x54, 0x0 , 0x0 , 0x0 , 0x55, 0x8 , 0x0 , 0x0 , 0x15,
212 0x42, 0x0 , 0x0 , 0x5 , 0x58, 0x80, 0x0 , 0x2 , 0x48, 0x80,
213 0x0 , 0x0 , 0xA6, 0x28, 0x0 , 0x0 , 0x29, 0x40, 0x0 , 0x1 ,
214 0x49, 0x50, 0x0 , 0x1 , 0x41, 0x40, 0x0 , 0x0 , 0x0 , 0x0 ,
215 0x0 , 0x0 , 0x0 , 0x0 ,
216 },
217 {
218 0x0 , 0x0 , 0x0 , 0x0 , 0x4 , 0x0 , 0x0 , 0x0 , 0x15, 0x40,
219 0x0 , 0x0 , 0x15, 0x40, 0x0 , 0x0 , 0x25, 0x40, 0x0 , 0x0 ,
220 0xA , 0x90, 0x20, 0x0 , 0x5 , 0x94, 0xA , 0x80, 0x5 , 0x55,
221 0x48, 0x28, 0x10, 0x55, 0x59, 0x88, 0x0 , 0x6 , 0x99, 0x94,
222 0x0 , 0x0 , 0x2A, 0x55, 0x0 , 0x0 , 0x6 , 0x94, 0x0 , 0x0 ,
223 0x14, 0x4 , 0x0 , 0x0 , 0x10, 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
224 0x0 , 0x0 , 0x0 , 0x0 ,
225 }
226 },
227 {
228 {
229 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
230 0x0 , 0x0 , 0x0 , 0x0 , 0x1 , 0x0 , 0x0 , 0x0 , 0x5 , 0x40,
231 0x4 , 0x0 , 0x1 , 0x0 , 0x5 , 0x55, 0xAA, 0xA5, 0x15, 0x55,
232 0x59, 0x95, 0xAA, 0x95, 0x59, 0x95, 0x55, 0x40, 0x8 , 0x80,
233 0x55, 0x0 , 0xAA, 0xA8, 0x54, 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
234 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
235 0x0 , 0x0 , 0x0 , 0x0 ,
236 },
237 {
238 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
239 0x10, 0x0 , 0x0 , 0x0 , 0x14, 0x4 , 0x0 , 0x0 , 0x6 , 0x94,
240 0x0 , 0x0 , 0x2A, 0x55, 0x0 , 0x6 , 0x99, 0x94, 0x10, 0x55,
241 0x59, 0x88, 0x5 , 0x55, 0x48, 0x28, 0x5 , 0x94, 0xA , 0x80,
242 0xA , 0x90, 0x20, 0x0 , 0x25, 0x40, 0x0 , 0x0 , 0x15, 0x40,
243 0x0 , 0x0 , 0x15, 0x40, 0x0 , 0x0 , 0x4 , 0x0 , 0x0 , 0x0 ,
244 0x0 , 0x0 , 0x0 , 0x0 ,
245 },
246 {
247 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x1 ,
248 0x41, 0x40, 0x0 , 0x1 , 0x49, 0x50, 0x0 , 0x0 , 0x29, 0x40,
249 0x0 , 0x0 , 0xA6, 0x28, 0x0 , 0x2 , 0x48, 0x80, 0x0 , 0x5 ,
250 0x58, 0x80, 0x0 , 0x15, 0x42, 0x0 , 0x0 , 0x55, 0x8 , 0x0 ,
251 0x5 , 0x54, 0x0 , 0x0 , 0x1 , 0x64, 0x0 , 0x0 , 0x1 , 0x94,
252 0x0 , 0x0 , 0x2 , 0x50, 0x0 , 0x0 , 0x1 , 0x54, 0x0 , 0x0 ,
253 0x0 , 0x50, 0x0 , 0x0 ,
254 },
255 {
256 0x0 , 0x0 , 0x14, 0x0 , 0x0 , 0x0 , 0x15, 0x0 , 0x0 , 0x4 ,
257 0x94, 0x80, 0x0 , 0x14, 0xA4, 0x80, 0x0 , 0x12, 0x5A, 0x80,
258 0x0 , 0x2 , 0xA2, 0x0 , 0x0 , 0xA , 0x5A, 0x0 , 0x0 , 0x5 ,
259 0x48, 0x0 , 0x0 , 0x5 , 0x48, 0x0 , 0x0 , 0x15, 0x0 , 0x0 ,
260 0x0 , 0x15, 0x0 , 0x0 , 0x0 , 0x56, 0x40, 0x0 , 0x1 , 0x59,
261 0x0 , 0x0 , 0x0 , 0x19, 0x40, 0x0 , 0x0 , 0x19, 0x50, 0x0 ,
262 0x0 , 0x5 , 0x40, 0x0 ,
263 },
264 {
265 0x0 , 0x5 , 0x40, 0x0 , 0x0 , 0x5 , 0x48, 0x0 , 0x0 , 0x9 ,
266 0x48, 0x0 , 0x0 , 0x4A, 0xA8, 0x0 , 0x1 , 0x59, 0x48, 0x0 ,
267 0x0 , 0x4A, 0xA8, 0x0 , 0x0 , 0x9 , 0x48, 0x0 , 0x0 , 0x9 ,
268 0x48, 0x0 , 0x0 , 0x5 , 0x40, 0x0 , 0x0 , 0x5 , 0x40, 0x0 ,
269 0x0 , 0x5 , 0x40, 0x0 , 0x0 , 0x5 , 0x90, 0x0 , 0x0 , 0x5 ,
270 0x94, 0x0 , 0x0 , 0x15, 0x95, 0x0 , 0x0 , 0x1 , 0x95, 0x0 ,
271 0x0 , 0x0 , 0x95, 0x0 ,
272 },
273 {
274 0x0 , 0x10, 0x0 , 0x0 , 0x1 , 0x56, 0x80, 0x0 , 0x0 , 0x54,
275 0x80, 0x0 , 0x0 , 0x9A, 0x20, 0x0 , 0x0 , 0xA5, 0x20, 0x0 ,
276 0x1 , 0x6A, 0xA0, 0x0 , 0x5 , 0x25, 0x8 , 0x0 , 0x0 , 0x9 ,
277 0x40, 0x0 , 0x0 , 0x9 , 0x40, 0x0 , 0x0 , 0x5 , 0x50, 0x0 ,
278 0x0 , 0x1 , 0x54, 0x0 , 0x0 , 0x1 , 0x69, 0x50, 0x0 , 0x0 ,
279 0x59, 0x50, 0x0 , 0x0 , 0x59, 0x54, 0x0 , 0x1 , 0x2 , 0x50,
280 0x0 , 0x0 , 0x0 , 0x0 ,
281 },
282 {
283 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x20, 0x0 , 0x0 , 0x1 , 0x20,
284 0x0 , 0x0 , 0x5 , 0x4A, 0x0 , 0x0 , 0x5 , 0x60, 0x80, 0x0 ,
285 0x2 , 0x9A, 0x20, 0x0 , 0x0 , 0xA1, 0x0 , 0x0 , 0x5 , 0x25,
286 0x40, 0x0 , 0x5 , 0x9 , 0x50, 0x0 , 0x0 , 0x1 , 0x55, 0x44,
287 0x0 , 0x0 , 0x56, 0x55, 0x0 , 0x0 , 0x15, 0x95, 0x0 , 0x0 ,
288 0x5 , 0x64, 0x0 , 0x0 , 0x4 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
289 0x0 , 0x0 , 0x0 , 0x0 ,
290 },
291 {
292 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
293 0x0 , 0x0 , 0xA , 0x80, 0x0 , 0x0 , 0x10, 0xA8, 0x0 , 0x0 ,
294 0x55, 0x8A, 0x80, 0x0 , 0x56, 0x64, 0x0 , 0x4 , 0xA , 0x65,
295 0x41, 0x15, 0x0 , 0xA9, 0x56, 0x55, 0x5 , 0x9 , 0x55, 0xA9,
296 0x1 , 0x40, 0x15, 0x54, 0x0 , 0x0 , 0x1 , 0x40, 0x0 , 0x0 ,
297 0x0 , 0x40, 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
298 0x0 , 0x0 , 0x0 , 0x0 ,
299 },
300 {
301 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
302 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x15,
303 0x2A, 0xAA, 0x0 , 0x55, 0x2 , 0x20, 0x1 , 0x55, 0x56, 0x65,
304 0x56, 0xAA, 0x56, 0x65, 0x55, 0x54, 0x5A, 0xAA, 0x55, 0x50,
305 0x0 , 0x40, 0x0 , 0x10, 0x1 , 0x50, 0x0 , 0x0 , 0x0 , 0x40,
306 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
307 0x0 , 0x0 , 0x0 , 0x0 ,
308 },
309 {
310 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x10, 0x0 , 0x0 ,
311 0x1 , 0x54, 0x0 , 0x0 , 0x1 , 0x54, 0x0 , 0x0 , 0x1 , 0x58,
312 0x0 , 0x8 , 0x6 , 0xA0, 0x2 , 0xA0, 0x16, 0x50, 0x28, 0x21,
313 0x55, 0x50, 0x22, 0x65, 0x55, 0x4 , 0x16, 0x66, 0x90, 0x0 ,
314 0x55, 0xA8, 0x0 , 0x0 , 0x16, 0x90, 0x0 , 0x0 , 0x10, 0x14,
315 0x0 , 0x0 , 0x0 , 0x4 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
316 0x0 , 0x0 , 0x0 , 0x0 ,
317 },
318 {
319 0x0 , 0x0 , 0x5 , 0x0 , 0x0 , 0x0 , 0x15, 0x40, 0x0 , 0x0 ,
320 0x5 , 0x80, 0x0 , 0x0 , 0x16, 0x40, 0x0 , 0x0 , 0x19, 0x40,
321 0x0 , 0x0 , 0x15, 0x50, 0x0 , 0x20, 0x55, 0x0 , 0x0 , 0x81,
322 0x54, 0x0 , 0x2 , 0x25, 0x50, 0x0 , 0x2 , 0x21, 0x80, 0x0 ,
323 0x28, 0x9A, 0x0 , 0x0 , 0x1 , 0x68, 0x0 , 0x0 , 0x5 , 0x61,
324 0x40, 0x0 , 0x1 , 0x41, 0x40, 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
325 0x0 , 0x0 , 0x0 , 0x0 ,
326 },
327 {
328 0x0 , 0x1 , 0x50, 0x0 , 0x0 , 0x5 , 0x64, 0x0 , 0x0 , 0x1 ,
329 0x64, 0x0 , 0x0 , 0x0 , 0x65, 0x40, 0x0 , 0x1 , 0x95, 0x0 ,
330 0x0 , 0x0 , 0x54, 0x0 , 0x0 , 0x0 , 0x54, 0x0 , 0x0 , 0x21,
331 0x50, 0x0 , 0x0 , 0x21, 0x50, 0x0 , 0x0 , 0xA5, 0xA0, 0x0 ,
332 0x0 , 0x8A, 0x80, 0x0 , 0x2 , 0xA5, 0x84, 0x0 , 0x2 , 0x1A,
333 0x14, 0x0 , 0x2 , 0x16, 0x10, 0x0 , 0x0 , 0x54, 0x0 , 0x0 ,
334 0x0 , 0x14, 0x0 , 0x0 ,
335 },
336 {
337 0x0 , 0x56, 0x0 , 0x0 , 0x0 , 0x56, 0x40, 0x0 , 0x0 , 0x56,
338 0x54, 0x0 , 0x0 , 0x16, 0x50, 0x0 , 0x0 , 0x6 , 0x50, 0x0 ,
339 0x0 , 0x1 , 0x50, 0x0 , 0x0 , 0x1 , 0x50, 0x0 , 0x0 , 0x1 ,
340 0x50, 0x0 , 0x0 , 0x21, 0x60, 0x0 , 0x0 , 0x21, 0x60, 0x0 ,
341 0x0 , 0x2A, 0xA1, 0x0 , 0x0 , 0x21, 0x65, 0x40, 0x0 , 0x2A,
342 0xA1, 0x0 , 0x0 , 0x21, 0x60, 0x0 , 0x0 , 0x21, 0x50, 0x0 ,
343 0x0 , 0x1 , 0x50, 0x0 ,
344 },
345 {
346 0x0 , 0x0 , 0x0 , 0x0 , 0x5 , 0x80, 0x40, 0x0 , 0x15, 0x65,
347 0x0 , 0x0 , 0x5 , 0x65, 0x0 , 0x0 , 0x5 , 0x69, 0x40, 0x0 ,
348 0x0 , 0x15, 0x40, 0x0 , 0x0 , 0x5 , 0x50, 0x0 , 0x0 , 0x1 ,
349 0x60, 0x0 , 0x0 , 0x1 , 0x60, 0x0 , 0x0 , 0x20, 0x58, 0x50,
350 0x0 , 0xA , 0xA9, 0x40, 0x0 , 0x8 , 0x5A, 0x0 , 0x0 , 0x8 ,
351 0xA6, 0x0 , 0x0 , 0x2 , 0x15, 0x0 , 0x0 , 0x2 , 0x95, 0x40,
352 0x0 , 0x0 , 0x4 , 0x0 ,
353 },
354 {
355 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x10,
356 0x0 , 0x0 , 0x19, 0x50, 0x0 , 0x0 , 0x56, 0x54, 0x0 , 0x0 ,
357 0x55, 0x95, 0x0 , 0x0 , 0x11, 0x55, 0x40, 0x0 , 0x0 , 0x5 ,
358 0x60, 0x50, 0x0 , 0x1 , 0x58, 0x50, 0x0 , 0x0 , 0x4A, 0x0 ,
359 0x0 , 0x8 , 0xA6, 0x80, 0x0 , 0x2 , 0x9 , 0x50, 0x0 , 0x0 ,
360 0xA1, 0x50, 0x0 , 0x0 , 0x8 , 0x40, 0x0 , 0x0 , 0x8 , 0x0 ,
361 0x0 , 0x0 , 0x0 , 0x0 ,
362 },
363 {
364 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
365 0x0 , 0x0 , 0x1 , 0x0 , 0x0 , 0x0 , 0x1 , 0x40, 0x0 , 0x0 ,
366 0x15, 0x54, 0x1 , 0x40, 0x6A, 0x55, 0x60, 0x50, 0x55, 0x95,
367 0x6A, 0x0 , 0x54, 0x41, 0x59, 0xA0, 0x10, 0x0 , 0x19, 0x95,
368 0x0 , 0x2 , 0xA2, 0x55, 0x0 , 0x0 , 0x2A, 0x4 , 0x0 , 0x0 ,
369 0x2 , 0xA0, 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
370 0x0 , 0x0 , 0x0 , 0x0
371 }
372 }
373 };
374
375 static unsigned char swhitsym[HITSYMS][SYMBYTES] = { /* Hit plane pixel array */
376
377 /* airplane symbols based on the following template file:
378 16
379 . . . . . . 2 2 2 2 2 2 2 2 2 2
380 . . . . . . . 2 2 2 1 1 2 2 2 .
381 . . . . . . . . 2 2 1 1 2 2 . .
382 . . . . . . . . . . 1 1 . . . .
383 . . . . . . . . . . 1 1 . . . .
384 . . . . . . . . . . 1 1 . . . .
385 . . . . . . . . . 1 1 1 1 . . .
386 . . . . . . . . . 1 1 1 1 . . .
387 . . . . . . . . . 1 1 1 1 . . .
388 . . . . . . . . . 1 1 1 1 . . .
389 . . 2 2 2 2 2 2 2 2 1 1 2 2 2 2
390 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 .
391 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2
392 2 2 2 2 2 2 2 2 2 2 1 1 2 2 . 2
393 . . . . . . . . . 1 1 1 1 . . .
394 . . . . . . . . . 1 1 1 1 . . .
395 */
396 {
397 0x0 , 0xA , 0xAA, 0xAA, 0x0 , 0x2 , 0xA5, 0xA8, 0x0 , 0x0 ,
398 0xA5, 0xA0, 0x0 , 0x0 , 0x5 , 0x0 , 0x0 , 0x0 , 0x5 , 0x0 ,
399 0x0 , 0x0 , 0x5 , 0x0 , 0x0 , 0x0 , 0x15, 0x40, 0x0 , 0x0 ,
400 0x15, 0x40, 0x0 , 0x0 , 0x15, 0x40, 0x0 , 0x0 , 0x15, 0x40,
401 0xA , 0xAA, 0xA5, 0xAA, 0xAA, 0xAA, 0xA5, 0xA8, 0xAA, 0xAA,
402 0xA5, 0xAA, 0xAA, 0xAA, 0xA5, 0xA2, 0x0 , 0x0 , 0x15, 0x40,
403 0x0 , 0x0 , 0x15, 0x40,
404 },
405 {
406 0x0 , 0x0 , 0x95, 0x0 , 0x0 , 0x1 , 0x95, 0x0 , 0x0 , 0x15,
407 0x95, 0x0 , 0x0 , 0x5 , 0x94, 0x0 , 0x0 , 0x5 , 0x90, 0x0 ,
408 0x0 , 0x5 , 0x40, 0x0 , 0x0 , 0x5 , 0x40, 0x0 , 0x0 , 0x5 ,
409 0x40, 0x0 , 0x0 , 0x9 , 0x48, 0x0 , 0x0 , 0x9 , 0x48, 0x0 ,
410 0x0 , 0x4A, 0xA8, 0x0 , 0x1 , 0x59, 0x48, 0x0 , 0x0 , 0x4A,
411 0xA8, 0x0 , 0x0 , 0x9 , 0x48, 0x0 , 0x0 , 0x5 , 0x48, 0x0 ,
412 0x0 , 0x5 , 0x40, 0x0
413 }
414 };
415
416
417 static unsigned char swwinsym[WINSIZES][WINBYTES] = { /* Win plane pixel array */
418
419 /* airplane symbols based on the following template files:
420 16 16
421 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
422 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
423 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
424 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
425 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
426 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
427 . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . .
428 . . . . . . . 1 1 . . . . . . . . . . . . . 2 2 2 2 . . . . . .
429 . . . . . . . 1 1 . . . . . . . . . . . . . 2 2 2 2 . . . . . .
430 . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . .
431 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
432 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
433 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
434 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
435 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
436 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
437
438 16 16
439 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
440 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
441 . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . .
442 . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . .
443 . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . .
444 . . . . . . . . . . . . . . . . 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2
445 . . . . . . . 1 1 . . . . . . . . . . . . . . 1 1 . . . . . . .
446 . . . . 2 2 2 1 1 2 2 2 . . . . . . . . 2 2 2 2 2 2 2 2 . . . .
447 . . . . . . . 1 1 . . . . . . . . . . . . . 1 1 1 1 . . . . . .
448 . . . . . 2 2 2 2 2 2 . . . . . . . . . . . 1 1 1 1 . . . . . .
449 . . . . . . 1 . . 1 . . . . . . . 2 2 2 2 2 2 2 2 2 2 2 2 2 2 .
450 . . . . . . . . . . . . . . . . . . . . . 1 . . . . 1 . . . .
451 . . . . . . . . . . . . . . . . . . . . 1 . . . . . . 1 . . . .
452 . . . . . . . . . . . . . . . . . . . . 1 . . . . . . 1 . . . .
453 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
454 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
455 */
456 {
457 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
458 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
459 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x1 ,
460 0x40, 0x0 , 0x0 , 0x1 , 0x40, 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
461 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
462 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
463 0x0 , 0x0 , 0x0 , 0x0 ,
464 },
465 {
466 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
467 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
468 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x1 , 0x40, 0x0 , 0x0 , 0xA ,
469 0xA0, 0x0 , 0x0 , 0xA , 0xA0, 0x0 , 0x0 , 0x1 , 0x40, 0x0 ,
470 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
471 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
472 0x0 , 0x0 , 0x0 , 0x0 ,
473 },
474 {
475 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
476 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
477 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x1 , 0x40, 0x0 , 0x0 , 0xA9,
478 0x6A, 0x0 , 0x0 , 0x1 , 0x40, 0x0 , 0x0 , 0x2A, 0xA8, 0x0 ,
479 0x0 , 0x4 , 0x10, 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
480 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
481 0x0 , 0x0 , 0x0 , 0x0 ,
482 },
483 {
484 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x1 ,
485 0x40, 0x0 , 0x0 , 0x1 , 0x40, 0x0 , 0x0 , 0x1 , 0x40, 0x0 ,
486 0xAA, 0xA9, 0x6A, 0xAA, 0x0 , 0x1 , 0x40, 0x0 , 0x0 , 0xAA,
487 0xAA, 0x0 , 0x0 , 0x5 , 0x50, 0x0 , 0x0 , 0x5 , 0x50, 0x0 ,
488 0x2A, 0xAA, 0xAA, 0xA8, 0x0 , 0x10, 0x4 , 0x0 , 0x0 , 0x40,
489 0x1 , 0x0 , 0x0 , 0x40, 0x1 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
490 0x0 , 0x0 , 0x0 , 0x0
491 }
492 };
493
494
495 static unsigned char swbmbsym[BOMBANGS][BOMBBYTES] = {
496
497 /* bomb symbols based on the following template file:
498 08
499 . . . . . . . .
500 . . . . . . . .
501 1 1 . 1 1 1 1 .
502 1 1 1 1 1 1 1 1
503 1 1 1 1 1 1 1 1
504 1 1 . 1 1 1 1 .
505 . . .. . . . .
506 . . . . . . . .
507 */
508 {
509 0x0 , 0x0 , 0x0 , 0x0 , 0x51, 0x54, 0x55, 0x55, 0x55, 0x55,
510 0x51, 0x54, 0x0 , 0x0 , 0x0 , 0x0 ,
511 },
512 {
513 0x0 , 0x0 , 0x0 , 0x54, 0x1 , 0x55, 0x5 , 0x55, 0x11, 0x54,
514 0x55, 0x10, 0x15, 0x40, 0x1 , 0x0 ,
515 },
516 {
517 0x1 , 0x40, 0x5 , 0x50, 0x5 , 0x50, 0x5 , 0x50, 0x5 , 0x50,
518 0x1 , 0x40, 0x5 , 0x50, 0x5 , 0x50,
519 },
520 {
521 0x0 , 0x0 , 0x15, 0x0 , 0x55, 0x40, 0x55, 0x50, 0x15, 0x44,
522 0x4 , 0x55, 0x1 , 0x54, 0x0 , 0x40,
523 },
524 {
525 0x0 , 0x0 , 0x0 , 0x0 , 0x15, 0x45, 0x55, 0x55, 0x55, 0x55,
526 0x15, 0x45, 0x0 , 0x0 , 0x0 , 0x0 ,
527 },
528 {
529 0x0 , 0x40, 0x1 , 0x54, 0x4 , 0x55, 0x15, 0x44, 0x55, 0x50,
530 0x55, 0x40, 0x15, 0x0 , 0x0 , 0x0 ,
531 },
532 {
533 0x5 , 0x50, 0x5 , 0x50, 0x1 , 0x40, 0x5 , 0x50, 0x5 , 0x50,
534 0x5 , 0x50, 0x5 , 0x50, 0x1 , 0x40,
535 },
536 {
537 0x1 , 0x0 , 0x15, 0x40, 0x55, 0x10, 0x11, 0x54, 0x5 , 0x55,
538 0x1 , 0x55, 0x0 , 0x54, 0x0 , 0x0
539 }
540 };
541
542 static unsigned char swtrgsym[TARGORIENTS][TARGBYTES] = {
543
544 /* target symbols based on the following template files:
545 16 16
546 . . . . . . . . . . . 2 . . . . . . . . . . . . . . 2 2 . . 2 2
547 . . . . . . . . . . . 2 1 1 1 1 . . . . . . . . . . 2 2 . . 2 2
548 . . . . . . . . . . . 2 1 1 1 1 . . . . . . . . . . 2 2 . . 2 2
549 . . . . . . . . . . . 2 . . . . 1 1 1 1 1 1 1 1 1 1 2 2 . . 2 2
550 . . . . . . . . . . . 2 . . . . 1 1 1 1 1 1 1 1 1 1 2 2 . . 2 2
551 . . . . . . . . . . . 2 . . . . 1 1 1 2 1 2 1 2 1 1 2 2 . . 2 2
552 . . . . . . . . . . . 2 . . . . 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2
553 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1 2 1 1 1 1 1 1 2 2
554 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2
555 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 1 2 1 2 1 2 1 2 1 1 2 2
556 1 1 2 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2
557 1 1 2 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 2 1 2 1 2 1 2 1 2 1 1 2 2
558 1 1 2 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2
559 1 1 2 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 2 1 2 1 2 1 2 1 2 1 1 2 2
560 1 1 2 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2
561 1 1 2 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2
562
563
564 16 16
565 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
566 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
567 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
568 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
569 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
570 . . . 1 1 1 1 1 1 1 1 1 1 . . . . . . . . . . . . . . . . . . .
571 . 1 1 1 1 1 1 1 1 1 1 1 1 1 1 . . . . . . . . . . . . . . . . .
572 1 1 1 1 1 1 2 1 2 1 1 1 1 1 1 1 . . . . . 1 1 1 1 1 1 . . . . .
573 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 . . . . . 1 1 1 1 1 1 1 1 1 1 1
574 1 1 1 1 1 1 2 1 2 1 1 1 1 1 1 1 . . . . . 1 1 1 1 1 1 . . . . .
575 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
576 . 1 1 1 1 1 2 1 2 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
577 . . 1 1 1 1 2 2 2 1 1 1 1 1 . . 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1
578 . . 2 2 . . 2 . 2 . . . 2 2 . . 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2
579 . . 2 2 . . 2 2 2 . . . 2 2 . . 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2
580 . . 2 2 . . 2 . 2 . . . 2 2 . . . 2 2 2 2 2 2 2 2 2 2 2 2 2 2 .
581 */
582 {
583 0x0 , 0x0 , 0x2 , 0x0 , 0x0 , 0x0 , 0x2 , 0x55, 0x0 , 0x0 ,
584 0x2 , 0x55, 0x0 , 0x0 , 0x2 , 0x0 , 0x0 , 0x0 , 0x2 , 0x0 ,
585 0x0 , 0x0 , 0x2 , 0x0 , 0x0 , 0x0 , 0x2 , 0x0 , 0x55, 0x55,
586 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5A, 0xAA, 0xAA, 0xA5,
587 0x59, 0x55, 0x55, 0x65, 0x59, 0x55, 0x55, 0x65, 0x59, 0x55,
588 0x55, 0x65, 0x59, 0x55, 0x55, 0x65, 0x59, 0x55, 0x55, 0x65,
589 0x59, 0x55, 0x55, 0x65,
590 },
591 {
592 0x0 , 0x0 , 0xA , 0xA , 0x0 , 0x0 , 0xA , 0xA , 0x0 , 0x0 ,
593 0xA , 0xA , 0x55, 0x55, 0x5A, 0xA , 0x55, 0x55, 0x5A, 0xA ,
594 0x56, 0x66, 0x5A, 0xA , 0x55, 0x55, 0x55, 0x5A, 0x56, 0x66,
595 0x55, 0x5A, 0x55, 0x55, 0x55, 0x5A, 0x56, 0x66, 0x66, 0x5A,
596 0x55, 0x55, 0x55, 0x5A, 0x56, 0x66, 0x66, 0x5A, 0x55, 0x55,
597 0x55, 0x5A, 0x56, 0x66, 0x66, 0x5A, 0x55, 0x55, 0x55, 0x5A,
598 0x55, 0x55, 0x55, 0x5A,
599 },
600 {
601 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
602 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
603 0x1 , 0x55, 0x55, 0x40, 0x15, 0x55, 0x55, 0x54, 0x55, 0x59,
604 0x95, 0x55, 0x55, 0x5A, 0x95, 0x55, 0x55, 0x59, 0x95, 0x55,
605 0x55, 0x5A, 0x95, 0x55, 0x15, 0x59, 0x95, 0x54, 0x5 , 0x5A,
606 0x95, 0x50, 0xA , 0x8 , 0x80, 0xA0, 0xA , 0xA , 0x80, 0xA0,
607 0xA , 0x8 , 0x80, 0xA0,
608 },
609 {
610 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
611 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
612 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x15,
613 0x54, 0x0 , 0x0 , 0x15, 0x55, 0x55, 0x0 , 0x15, 0x54, 0x0 ,
614 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x6A, 0xAA,
615 0xAA, 0xA9, 0x95, 0x55, 0x55, 0x56, 0x95, 0x55, 0x55, 0x56,
616 0x2A, 0xAA, 0xAA, 0xA8
617 },
618 };
619
620 static unsigned char swhtrsym[TARGBYTES] = {
621
622 /* hit target symbols based on the following template file:
623 16
624 . . . . . . . . . . . . . . . .
625 . . . . . . . . . . . . . . . .
626 . . . . . . . . . . . . . . . .
627 . . . . . . . . . . . . . . . .
628 . . . . . . . . . . . . . . . .
629 . . . . . . . . . . . . . . . .
630 . . . . . . . . . . . . . . . .
631 . . . . . . . . . . . . . . . .
632 . . . . . . . . . . . . . . . .
633 . . . . . . . . . . . . . . . .
634 . . . . . . . . . . . . . . 1 .
635 1 . . . . . . . . . . . . . 1 1
636 1 1 . . . 1 . . . . . 2 . 1 1 1
637 1 1 . 1 1 1 . . 1 1 . 2 1 1 1 1
638 1 1 1 1 2 2 1 1 1 1 2 1 1 1 1 1
639 1 1 1 1 2 2 1 1 1 2 1 1 1 1 1 1
640 */
641 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
642 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
643 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
644 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
645 0x0 , 0x0 , 0x0 , 0x4 , 0x40, 0x0 , 0x0 , 0x5 , 0x50, 0x10,
646 0x2 , 0x15, 0x51, 0x50, 0x52, 0x55, 0x55, 0xA5, 0x59, 0x55,
647 0x55, 0xA5, 0x65, 0x55
648 };
649
650 static unsigned char swexpsym[EXPLSYMS][EXPBYTES] = {
651
652 /* explosion symbols based on the following template files:
653 08 08 08 08
654 1 1 1 . 2 . . . . . . 1 1 . . . . . . . . 2 . . . . . 1 1 . . .
655 1 1 1 . 2 . . . . 1 1 1 1 1 1 . . . . . 2 2 2 . . . . 1 1 1 . .
656 1 1 1 2 . . . . 1 1 1 2 2 1 1 1 . . . 2 2 2 2 2 . 1 1 1 1 1 1 .
657 . . 2 2 2 1 1 1 1 1 2 2 2 2 1 1 . . 2 2 2 2 2 . 1 1 1 1 1 1 1 1
658 2 2 . 2 1 1 1 1 1 1 2 2 2 2 1 1 . 2 2 2 2 2 . . 1 1 1 1 1 1 1 1
659 . . . 1 1 . . . 1 1 1 2 2 1 1 1 2 2 2 2 2 . . . . 1 1 1 1 . 1 .
660 . . . 1 1 . . . . 1 1 1 1 1 1 . . 2 2 2 . . . . . . 1 1 1 . . .
661 . . . 1 1 . . . . . . 1 1 . . . . . 2 . . . . . . . . 1 1 . . .
662
663 08 08 08 08
664 . 1 2 2 2 . . . 1 1 . . . . . . . . . . . . . . . . . . . . . .
665 . 1 1 1 1 1 . . 1 1 . . 1 2 . . . . . . . . 1 1 . 1 . . . 1 . .
666 . . 2 2 1 2 1 . . . . . 2 1 . . . . . . . . 1 1 . . . 1 . . . .
667 2 1 1 2 2 2 1 . . . . . . . . . . . . 1 1 . . . . . . . . . 1 .
668 . . . . . . 1 1 . . . . . 2 2 . 1 2 . 1 1 . . . 1 . 1 . . . . .
669 . 1 2 . . . 1 2 . 2 2 . . 2 2 . 2 1 . . . . . . . . . . 1 . . 1
670 . . 1 1 . . 2 1 . 2 2 . . . . . . . . . . 2 2 . . . 1 . . . . .
671 . . 1 2 . . . 1 . . . . . . . . . . . . . 2 2 . . . . . . . 1 .
672 */
673
674 {
675 0x54, 0x80, 0x54, 0x80, 0x56, 0x0 , 0xA , 0x95, 0xA2, 0x55,
676 0x1 , 0x40, 0x1 , 0x40, 0x1 , 0x40,
677 },
678 {
679 0x1 , 0x40, 0x15, 0x54, 0x56, 0x95, 0x5A, 0xA5, 0x5A, 0xA5,
680 0x56, 0x95, 0x15, 0x54, 0x1 , 0x40,
681 },
682 {
683 0x0 , 0x20, 0x0 , 0xA8, 0x2 , 0xAA, 0xA , 0xA8, 0x2A, 0xA0,
684 0xAA, 0x80, 0x2A, 0x0 , 0x8 , 0x0 ,
685 },
686 {
687 0x1 , 0x40, 0x1 , 0x50, 0x15, 0x54, 0x55, 0x55, 0x55, 0x55,
688 0x15, 0x44, 0x5 , 0x40, 0x1 , 0x40,
689 },
690 {
691 0x1A, 0x80, 0x15, 0x50, 0xA , 0x64, 0x96, 0xA4, 0x0 , 0x5 ,
692 0x18, 0x6 , 0x5 , 0x9 , 0x6 , 0x1 ,
693 },
694 {
695 0x50, 0x0 , 0x50, 0x60, 0x0 , 0x90, 0x0 , 0x0 , 0x0 , 0x28,
696 0x28, 0x28, 0x28, 0x0 , 0x0 , 0x0 ,
697 },
698 {
699 0x0 , 0x0 , 0x0 , 0x5 , 0x0 , 0x5 , 0x1 , 0x40, 0x61, 0x40,
700 0x90, 0x0 , 0x0 , 0x28, 0x0 , 0x28,
701 },
702 {
703 0x0 , 0x0 , 0x10, 0x10, 0x1 , 0x0 , 0x0 , 0x4 , 0x44, 0x0 ,
704 0x0 , 0x41, 0x4 , 0x0 , 0x0 , 0x4
705 }
706 };
707
708 static unsigned char swflksym[FLCKSYMS][FLKBYTES] = {
709
710 /* flock symbols based on the following template files:
711 16 16
712 . 3 . . . . . . . . . . . . . . 3 . 3 . . . . . . . . . . . . .
713 3 . 3 . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . .
714 . . . . . . . 3 . 3 . . . . 3 . . . . . . . . . 3 . . . . 3 . 3
715 . . . 3 . . . . 3 . . . . 3 . 3 . . 3 . 3 . . 3 . 3 . . . . 3 .
716 . . 3 . 3 . . . . . . . . . . . . . . 3 . . . . . . . . . . . .
717 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
718 3 . 3 . . 3 . 3 . . . . 3 . . . . 3 . . . . 3 . . . . 3 . 3 . .
719 . 3 . . . . 3 . . . . 3 . 3 . . 3 . 3 . . 3 . 3 . . . . 3 . . .
720 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
721 . . 3 . 3 . . 3 . . . . 3 . 3 . . . . 3 . . 3 . 3 . . . . 3 . .
722 . . . 3 . . 3 . 3 . . . . 3 . . . . 3 . 3 . . 3 . . . . 3 . 3 .
723 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
724 . . . 3 . . . . . . 3 . . . . . . . 3 . 3 . . . . 3 . 3 . . . .
725 . . 3 . 3 . . . . 3 . 3 . . . . . . . 3 . . . . . . 3 . . . . .
726 . . . . . . 3 . 3 . . . . . . . . . . . . . . 3 . . . . . . . .
727 . . . . . . . 3 . . . . . . . . . . . . . . 3 . 3 . . . . . . .
728 */
729 {
730 0x30, 0x0 , 0x0 , 0x0 , 0xCC, 0x0 , 0x0 , 0x0 , 0x0 , 0x3 ,
731 0x30, 0xC , 0x3 , 0x0 , 0xC0, 0x33, 0xC , 0xC0, 0x0 , 0x0 ,
732 0x0 , 0x0 , 0x0 , 0x0 , 0xCC, 0x33, 0x0 , 0xC0, 0x30, 0xC ,
733 0x3 , 0x30, 0x0 , 0x0 , 0x0 , 0x0 , 0xC , 0xC3, 0x0 , 0xCC,
734 0x3 , 0xC , 0xC0, 0x30, 0x0 , 0x0 , 0x0 , 0x0 , 0x3 , 0x0 ,
735 0xC , 0x0 , 0xC , 0xC0, 0x33, 0x0 , 0x0 , 0xC , 0xC0, 0x0 ,
736 0x0 , 0x3 , 0x0 , 0x0 ,
737 },
738 {
739 0xCC, 0x0 , 0x0 , 0x0 , 0x30, 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
740 0xC0, 0x33, 0xC , 0xC3, 0x30, 0xC , 0x3 , 0x0 , 0x0 , 0x0 ,
741 0x0 , 0x0 , 0x0 , 0x0 , 0x30, 0xC , 0x3 , 0x30, 0xCC, 0x33,
742 0x0 , 0xC0, 0x0 , 0x0 , 0x0 , 0x0 , 0x3 , 0xC , 0xC0, 0x30,
743 0xC , 0xC3, 0x0 , 0xCC, 0x0 , 0x0 , 0x0 , 0x0 , 0xC , 0xC0,
744 0x33, 0x0 , 0x3 , 0x0 , 0xC , 0x0 , 0x0 , 0x3 , 0x0 , 0x0 ,
745 0x0 , 0xC , 0xC0, 0x0
746 },
747 };
748
749 static unsigned char swbrdsym[BIRDSYMS][BRDBYTES] = {
750
751 /* bird symbols based on the following template files:
752 4 4
753 . 3 . . 3 . 3 .
754 3 . 3 . . 3 . .
755 */
756 {0x30, 0xCC},
757 {0xCC, 0x30}
758 };
759
760 static unsigned char swoxsym[OXSYMS][OXBYTES] = {
761
762 /* ox symbols based on the following template files:
763 16 16
764 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
765 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
766 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
767 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
768 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
769 . . . . . . . . . . 3 . . 3 . . . . . . . . . . . . . . . . . .
770 . . . . . . . . . . 3 2 2 2 . . . . . . . . . . . . . . . . . .
771 . . . . . . . . . . 2 3 1 3 3 . . . . . . . . . . . . . . . . .
772 . . . 2 2 2 2 2 2 3 2 2 3 3 3 . . . . . . . . . . . . . . . . .
773 . 2 2 2 2 2 2 2 2 3 2 2 3 3 2 3 . . . . . . . . . . . . . . . .
774 3 2 2 2 2 2 2 2 2 3 2 2 2 3 3 . . . . . . . . . . . . . . . . .
775 3 2 2 2 2 2 2 2 2 2 3 3 . . . . . . . . . . . . . . . . 3 . . .
776 3 2 2 2 2 2 2 2 2 2 2 2 . . . . . . 2 2 2 2 2 2 2 2 . 2 2 2 . .
777 3 2 2 . 2 2 . . 2 2 . 2 2 . . . 3 2 3 3 2 2 2 2 3 3 2 2 2 3 3 .
778 . 2 2 . 2 2 . . 2 2 2 2 . . . 3 2 2 2 2 2 2 2 2 2 2 2 2 3 3 .
779 . 3 3 . 3 3 . . 3 3 . 3 3 . . . 3 2 2 3 3 2 2 3 3 2 . 2 2 3 . .
780 */
781 {
782 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
783 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
784 0x0 , 0x0 , 0xC , 0x30, 0x0 , 0x0 , 0xE , 0xA0, 0x0 , 0x0 ,
785 0xB , 0x7C, 0x2 , 0xAA, 0xBA, 0xFC, 0x2A, 0xAA, 0xBA, 0xFB,
786 0xEA, 0xAA, 0xBA, 0xBC, 0xEA, 0xAA, 0xAF, 0x0 , 0xEA, 0xAA,
787 0xAA, 0x0 , 0xE8, 0xA0, 0xA2, 0x80, 0x28, 0xA0, 0xA2, 0x80,
788 0x3C, 0xF0, 0xF3, 0xC0,
789 },
790 {
791 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
792 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
793 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
794 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
795 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0xC0, 0xA , 0xAA,
796 0xA2, 0xA0, 0xEF, 0xAA, 0xFA, 0xBC, 0xEA, 0xAA, 0xAA, 0xBC,
797 0xEB, 0xEB, 0xE2, 0xB0
798 },
799 };
800
801 static unsigned char swghtsym[GHSTBYTES] = {
802
803 /* ghost symbol based on the following template file:
804 08
805 0 0 1 1 1 1 0 0
806 0 1 1 1 1 1 1 0
807 1 1 2 1 1 2 1 1
808 1 2 2 2 2 2 2 1
809 1 1 2 1 1 2 1 1
810 1 1 1 1 1 1 1 1
811 1 2 2 2 2 2 2 1
812 1 1 1 1 1 1 1 1
813 */
814 0x5 , 0x50, 0x15, 0x54, 0x59, 0x65, 0x6A, 0xA9, 0x59, 0x65,
815 0x55, 0x55, 0x6A, 0xA9, 0x55, 0x55
816 };
817
818 static unsigned char swshtsym[SHOTBYTES] = {
819
820 /* shot window symbol based on the following template file:
821 16
822 . . . . . . . . . . . . . . 1 .
823 . . . 1 . . . . . . . . 1 1 . .
824 . . . 1 . . . . . 1 1 1 . . . .
825 . . . . 1 . . . 1 . . . . . . .
826 . . . . 1 . . 1 . . 1 1 . . . .
827 . . . . . 1 1 1 . 1 . . 1 . . .
828 1 1 1 1 . 1 1 2 1 . . . . 1 1 .
829 . . . . 1 1 1 2 2 1 . . . . . 1
830 . . . . 1 1 1 2 1 1 . . . . . .
831 . . . . . 1 2 2 1 . 1 1 . . . .
832 . . . . 1 . 1 1 . . . . 1 . . .
833 . . . 1 . . . 1 . . . . 1 . . .
834 . . 1 . . . . 1 . . . . 1 . . .
835 . . 1 . . 1 1 1 . . . 1 . . . .
836 . . 1 . 1 . . . . . . . 1 . . .
837 . . . . . 1 1 . . . . . . 1 . .
838 */
839 0x0 , 0x0 , 0x0 , 0x4 , 0x1 , 0x0 , 0x0 , 0x50, 0x1 , 0x0 ,
840 0x15, 0x0 , 0x0 , 0x40, 0x40, 0x0 , 0x0 , 0x41, 0x5 , 0x0 ,
841 0x0 , 0x15, 0x10, 0x40, 0x55, 0x16, 0x40, 0x14, 0x0 , 0x56,
842 0x90, 0x1 , 0x0 , 0x56, 0x50, 0x0 , 0x0 , 0x1A, 0x45, 0x0 ,
843 0x0 , 0x45, 0x0 , 0x40, 0x1 , 0x1 , 0x0 , 0x40, 0x4 , 0x1 ,
844 0x0 , 0x40, 0x4 , 0x15, 0x1 , 0x0 , 0x4 , 0x40, 0x0 , 0x40,
845 0x0 , 0x14, 0x0 , 0x10
846 };
847
848 static unsigned char swsplsym[SPLTBYTES] = {
849
850 /* splatted bird symbol based on the following template file:
851 32
852 . . . . . . . . . . . . . . . . . 2 2 2 . . . . . . . . . . . .
853 . . . . . . . . . . . . . . . . . 2 1 1 2 2 . . . . . . . . . .
854 . . . 1 . . . . . . . . . . . . . . 2 1 1 1 2 . . . . . . 1 . .
855 . . 1 1 1 . . . . . . . . . . . . . . 2 1 1 1 2 . . . . . 1 . .
856 . . . 1 1 . . . . . 1 . . . . . . . . 2 1 1 1 1 2 . . . 1 1 . .
857 . . . 1 1 . . . . 1 1 1 . . . . . . . 2 1 1 1 1 1 2 . . . . . .
858 . . . . . . . . . . 1 . . . . 1 . . . 2 1 1 1 1 1 1 2 . . . . .
859 . . . . . . . . . . . . . . . . . . . 2 1 1 1 1 1 1 1 2 . . . .
860 . . . . 1 . . . . . . . . . . . . . 2 1 1 1 1 1 1 1 1 2 . . . .
861 . . . . . . . . . . . . . . . . . 2 1 1 1 1 1 1 1 1 1 2 . . . .
862 . . . . . . . . . . . . . 1 . . 2 1 1 1 1 1 1 1 1 1 1 2 . . . .
863 . . 1 . . . . . . . . . . . . 2 1 1 1 1 1 1 1 1 1 1 1 2 . . . .
864 . . . . . . . 2 2 2 2 2 2 . 2 1 1 1 1 1 1 1 1 1 1 1 2 . . . . .
865 . . . . . . 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 2 . . . . . .
866 . . . . . 2 1 2 1 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1 2 . . . . 1 1 .
867 . . . . 2 1 2 . 2 1 2.. 2 1 1 2 1 1 1 1 1 1 1 2 . . . . . . . .
868 . . . . 2 1 2 . 2 1 2 . 2 1 1 2 2 2 1 1 2 2 2 . . . 1 . . . . .
869 . . . . 2 1 1 2 1 1 1 2 1 1 1 2 1 1 2 2 . . . . . . . . . . 1 .
870 . . . . 2 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 . . . . . . 1 . 1 . . .
871 . . . . 2 1 2 2 1 2 1 1 1 1 1 2 1 1 1 1 2 . . . . . . . . . . .
872 . . . . . 2 2 1 2 1 1 1 1 1 2 2 1 1 1 1 1 2 . . . . . . . 1 . .
873 . . . . 2 2 1 2 1 1 1 1 1 2 . 2 1 1 1 1 1 1 2 2 2 2 2 . . . . .
874 . . . 2 2 1 2 2 2 2 2 2 2 . . . 2 1 1 1 1 1 1 1 1 1 1 2 . . . .
875 . . 2 2 1 2 . . . . . . 2 2 . . . 2 1 1 1 1 1 1 1 1 1 1 2 . . .
876 . . 2 1 2 . . . . . . . 2 . 2 . . . 2 1 1 1 1 1 1 1 1 1 1 2 . .
877 . . . . . . . . . . . . 2 . . 2 . . . 2 1 1 1 1 1 1 1 1 1 1 2 .
878 . . . . . . . . . . . . 2 . . . 2 . . . 2 1 1 1 1 1 1 1 1 1 1 2
879 . . . . . . . . . . . 2 . . . . . 2 . . . 2 1 1 1 1 1 1 1 1 1 2
880 . . . 1 . . . . 2 2 2 2 2 . . . . 2 . . . . 2 2 2 2 2 1 1 1 1 2
881 . 1 1 . . . 1 . . . 2 . . . 2 2 2 2 2 2 . . . . . . . 2 1 1 1 2
882 1 1 1 . . 1 1 1 . . 2 . . . . . 2 . . . . 1 . . . . . . 2 1 2 .
883 1 1 . . . . 1 . . . . . . . . 2 . . . . . . . . 1 . . . . 2 . .
884 */
885 0x0 , 0x0 , 0x0 , 0x0 , 0x2A, 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
886 0x0 , 0x0 , 0x25, 0xA0, 0x0 , 0x0 , 0x1 , 0x0 , 0x0 , 0x0 ,
887 0x9 , 0x58, 0x0 , 0x10, 0x5 , 0x40, 0x0 , 0x0 , 0x2 , 0x56,
888 0x0 , 0x10, 0x1 , 0x40, 0x4 , 0x0 , 0x2 , 0x55, 0x80, 0x50,
889 0x1 , 0x40, 0x15, 0x0 , 0x2 , 0x55, 0x60, 0x0 , 0x0 , 0x0 ,
890 0x4 , 0x1 , 0x2 , 0x55, 0x58, 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
891 0x2 , 0x55, 0x56, 0x0 , 0x0 , 0x40, 0x0 , 0x0 , 0x9 , 0x55,
892 0x56, 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x25, 0x55, 0x56, 0x0 ,
893 0x0 , 0x0 , 0x0 , 0x10, 0x95, 0x55, 0x56, 0x0 , 0x4 , 0x0 ,
894 0x0 , 0x2 , 0x55, 0x55, 0x56, 0x0 , 0x0 , 0x2 , 0xAA, 0x89,
895 0x55, 0x55, 0x58, 0x0 , 0x0 , 0x9 , 0x55, 0x65, 0x55, 0x55,
896 0x60, 0x0 , 0x0 , 0x26, 0x56, 0x59, 0x55, 0x55, 0x80, 0x14,
897 0x0 , 0x98, 0x98, 0x96, 0x55, 0x56, 0x0 , 0x0 , 0x0 , 0x98,
898 0x98, 0x96, 0xA5, 0xA8, 0x4 , 0x0 , 0x0 , 0x96, 0x56, 0x56,
899 0x5A, 0x0 , 0x0 , 0x4 , 0x0 , 0x95, 0x55, 0x56, 0x56, 0x0 ,
900 0x4 , 0x40, 0x0 , 0x9A, 0x65, 0x56, 0x55, 0x80, 0x0 , 0x0 ,
901 0x0 , 0x29, 0x95, 0x5A, 0x55, 0x60, 0x0 , 0x10, 0x0 , 0xA6,
902 0x55, 0x62, 0x55, 0x5A, 0xA8, 0x0 , 0x2 , 0x9A, 0xAA, 0x80,
903 0x95, 0x55, 0x56, 0x0 , 0xA , 0x60, 0x0 , 0xA0, 0x25, 0x55,
904 0x55, 0x80, 0x9 , 0x80, 0x0 , 0x88, 0x9 , 0x55, 0x55, 0x60,
905 0x0 , 0x0 , 0x0 , 0x82, 0x2 , 0x55, 0x55, 0x58, 0x0 , 0x0 ,
906 0x0 , 0x80, 0x80, 0x95, 0x55, 0x56, 0x0 , 0x0 , 0x2 , 0x0 ,
907 0x20, 0x25, 0x55, 0x56, 0x1 , 0x0 , 0xAA, 0x80, 0x20, 0xA ,
908 0xA9, 0x56, 0x14, 0x4 , 0x8 , 0xA , 0xAA, 0x0 , 0x2 , 0x56,
909 0x54, 0x15, 0x8 , 0x0 , 0x80, 0x10, 0x0 , 0x98, 0x50, 0x4 ,
910 0x0 , 0x2 , 0x0 , 0x0 , 0x40, 0x20
911 };
912
913 static unsigned char swmscsym[MISCANGS][MISCBYTES] = {
914
915 /* bomb symbols based on the following template file:
916
917
918 08 08 08 08
919 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
920 . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . 1 1 . .
921 . 1 1 . . . . . . . . . . 1 1 . . . . . 1 1 1 . . . . . 1 1 . .
922 . 1 1 1 1 1 1 . . . . 1 1 1 1 . . . . 1 1 1 . . . . . 1 1 . . .
923 . 1 1 1 1 1 1 . 1 1 1 1 1 . . . . 1 1 1 1 . . . . . . 1 1 . . .
924 . 1 1 . . . . . . 1 1 1 . . . . . . 1 1 . . . . . 1 1 1 . . . .
925 . . . . . . . . . . 1 1 . . . . . . . 1 . . . . . . 1 1 1 . . .
926 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
927 */
928 {
929 0x0 , 0x0 , 0x0 , 0x0 , 0x14, 0x0 , 0x15, 0x54, 0x15, 0x54,
930 0x14, 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
931 },
932 {
933 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x14, 0x1 , 0x54, 0x55, 0x40,
934 0x15, 0x0 , 0x5 , 0x0 , 0x0 , 0x0 ,
935 },
936 {
937 0x0 , 0x0 , 0x0 , 0x14, 0x0 , 0x54, 0x1 , 0x50, 0x15, 0x40,
938 0x5 , 0x0 , 0x1 , 0x0 , 0x0 , 0x0 ,
939 },
940 {
941 0x0 , 0x0 , 0x0 , 0x50, 0x0 , 0x50, 0x1 , 0x40, 0x1 , 0x40,
942 0x15, 0x0 , 0x5 , 0x40, 0x0 , 0x0 ,
943 },
944 {
945 0x0 , 0x0 , 0x1 , 0x40, 0x1 , 0x40, 0x1 , 0x40, 0x1 , 0x40,
946 0x5 , 0x50, 0x5 , 0x50, 0x0 , 0x0 ,
947 },
948 {
949 0x0 , 0x0 , 0x5 , 0x0 , 0x5 , 0x0 , 0x1 , 0x40, 0x1 , 0x54,
950 0x0 , 0x54, 0x0 , 0x50, 0x0 , 0x40,
951 },
952 {
953 0x0 , 0x0 , 0x14, 0x0 , 0x15, 0x0 , 0x5 , 0x40, 0x1 , 0x54,
954 0x0 , 0x50, 0x0 , 0x40, 0x0 , 0x0 ,
955 },
956 {
957 0x0 , 0x0 , 0x0 , 0x0 , 0x14, 0x0 , 0x15, 0x44, 0x1 , 0x54,
958 0x0 , 0x14, 0x0 , 0x10, 0x0 , 0x0 ,
959 },
960 {
961 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x14, 0x15, 0x54, 0x15, 0x54,
962 0x0 , 0x14, 0x0 , 0x0 , 0x0 , 0x0 ,
963 },
964 {
965 0x0 , 0x0 , 0x0 , 0x50, 0x0 , 0x54, 0x1 , 0x55, 0x15, 0x40,
966 0x14, 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,
967 },
968 {
969 0x0 , 0x0 , 0x0 , 0x40, 0x0 , 0x50, 0x1 , 0x54, 0x5 , 0x40,
970 0x15, 0x0 , 0x14, 0x0 , 0x0 , 0x0 ,
971 },
972 {
973 0x0 , 0x0 , 0x1 , 0x50, 0x0 , 0x54, 0x1 , 0x40, 0x1 , 0x40,
974 0x5 , 0x0 , 0x5 , 0x0 , 0x0 , 0x0 ,
975 },
976 {
977 0x0 , 0x0 , 0x5 , 0x50, 0x5 , 0x50, 0x1 , 0x40, 0x1 , 0x40,
978 0x1 , 0x40, 0x1 , 0x40, 0x0 , 0x0 ,
979 },
980 {
981 0x1 , 0x0 , 0x5 , 0x0 , 0x15, 0x0 , 0x15, 0x40, 0x1 , 0x40,
982 0x0 , 0x50, 0x0 , 0x50, 0x0 , 0x0 ,
983 },
984 {
985 0x0 , 0x0 , 0x1 , 0x0 , 0x5 , 0x0 , 0x15, 0x40, 0x1 , 0x50,
986 0x0 , 0x54, 0x0 , 0x14, 0x0 , 0x0 ,
987 },
988 {
989 0x0 , 0x0 , 0x4 , 0x0 , 0x14, 0x0 , 0x15, 0x40, 0x11, 0x54,
990 0x0 , 0x14, 0x0 , 0x0 , 0x0 , 0x0
991 }
992 };
993
994 static unsigned char swbstsym[BRSTSYMS][BRSTBYTES] = {
995
996
997 /* starburst symbols based on the following template file:
998
999 08 08
1000 . . . . 1 . . . . . . 1 . . 1 .
1001 . 1 . . 1 . 1 . 1 . . 1 . 1 . .
1002 . . 1 . 1 1 . . . 1 . 1 1 . . .
1003 1 1 1 1 1 . . . . . 1 1 1 1 1 1
1004 . . . 1 1 1 1 1 1 1 1 1 1 1 . .
1005 . . 1 1 . 1 . . . . . 1 1 . 1 .
1006 . 1 . 1 . . 1 . . . 1 . 1 . . 1
1007 . . . 1 . . . . . 1 . . 1 . . .
1008 */
1009 {
1010 0x0 , 0x40, 0x10, 0x44, 0x4 , 0x50, 0x55, 0x40, 0x1 , 0x55,
1011 0x5 , 0x10, 0x11, 0x4 , 0x1 , 0x0 ,
1012 },
1013 {
1014 0x1 , 0x4 , 0x41, 0x10, 0x11, 0x40, 0x5 , 0x55, 0x55, 0x50,
1015 0x1 , 0x44, 0x4 , 0x41, 0x10, 0x40
1016 }
1017 };
1018
1019 // sdh 27/6/2002: create a sopsym_t structure from the original
1020 // raw sprite data.
1021 // the data in sopsym_t's is in a simpler one-byte-per-pixel format
1022 // rather than packing 4 pixels into one byte as in the original data.
1023 // this simplifies various stuff such as collision detection.
1024
sopsym_from_data(unsigned char * data,int w,int h)1025 static sopsym_t *sopsym_from_data(unsigned char *data, int w, int h)
1026 {
1027 sopsym_t *sym = malloc(sizeof(*sym));
1028 unsigned char *d, *s;
1029 int x, y;
1030
1031 sym->w = w;
1032 sym->h = h;
1033 sym->data = malloc(w * h);
1034
1035 // decode the symbol data
1036
1037 for (d=data, s=sym->data, y=0; y<h; ++y) {
1038
1039 // all symbols are multiples of 4 wide
1040 // so this should be ok
1041
1042 for (x=0; x<w; x += 4, ++d) {
1043 *s++ = (*d & 0xc0) >> 6;
1044 *s++ = (*d & 0x30) >> 4;
1045 *s++ = (*d & 0x0c) >> 2;
1046 *s++ = (*d & 0x03);
1047 }
1048 }
1049
1050 return sym;
1051 }
1052
1053 // converted symbols:
1054
1055 sopsym_t *symbol_bomb[8]; // swbmbsym
1056 sopsym_t *symbol_targets[4]; // swtrgsym
1057 sopsym_t *symbol_target_hit; // swhtrsym
1058 sopsym_t *symbol_debris[8]; // swexpsym
1059 sopsym_t *symbol_flock[2]; // swflksym
1060 sopsym_t *symbol_bird[2]; // swbrdsym
1061 sopsym_t *symbol_ox[2]; // swoxsym
1062 sopsym_t *symbol_ghost; // swghtsym
1063 sopsym_t *symbol_shotwin; // swshtsym
1064 sopsym_t *symbol_birdsplat; // swsplsym
1065 sopsym_t *symbol_missile[16]; // swmscsym
1066 sopsym_t *symbol_burst[2]; // swbstsym
1067 sopsym_t *symbol_plane[2][16]; // swplnsym
1068 sopsym_t *symbol_plane_hit[2]; // swhitsym
1069 sopsym_t *symbol_plane_win[4]; // swwinsym
1070
1071 // special symbol for single pixel (bullets etc)
1072
1073 sopsym_t symbol_pixel = {
1074 .data = NULL,
1075 .w = 1,
1076 .h = 1
1077 };
1078
1079 // generate symbols from data
1080
1081 #define sopsyms_from_data(data, w, h, out) \
1082 { int _i; \
1083 for (_i=0; _i<sizeof(out)/sizeof(*(out)); ++_i) \
1084 (out)[_i] = sopsym_from_data((data)[_i], (w), (h)); \
1085 }
1086
symbol_generate()1087 void symbol_generate()
1088 {
1089 sopsyms_from_data(swbmbsym, 8, 8, symbol_bomb);
1090 sopsyms_from_data(swtrgsym, 16, 16, symbol_targets);
1091 sopsyms_from_data(swexpsym, 8, 8, symbol_debris);
1092 sopsyms_from_data(swflksym, 16, 16, symbol_flock);
1093 sopsyms_from_data(swbrdsym, 4, 2, symbol_bird);
1094 sopsyms_from_data(swoxsym, 16, 16, symbol_ox);
1095 sopsyms_from_data(swmscsym, 8, 8, symbol_missile);
1096 sopsyms_from_data(swbstsym, 8, 8, symbol_burst);
1097 sopsyms_from_data(swplnsym[0], 16, 16, symbol_plane[0]);
1098 sopsyms_from_data(swplnsym[1], 16, 16, symbol_plane[1]);
1099 sopsyms_from_data(swhitsym, 16, 16, symbol_plane_hit);
1100 sopsyms_from_data(swwinsym, 16, 16, symbol_plane_win);
1101
1102 symbol_target_hit = sopsym_from_data(swhtrsym, 16, 16);
1103 symbol_ghost = sopsym_from_data(swghtsym, 8, 8);
1104 symbol_shotwin = sopsym_from_data(swshtsym, 16, 16);
1105 symbol_birdsplat = sopsym_from_data(swsplsym, 32, 32);
1106
1107 {
1108 static unsigned char p = 3;
1109 symbol_pixel.data = &p;
1110 }
1111 }
1112
1113
1114
1115 //---------------------------------------------------------------------------
1116 //
1117 // $Log: swsymbol.c,v $
1118 // Revision 1.1.1.1 2003/02/14 19:03:21 fraggle
1119 // Initial Sourceforge CVS import
1120 //
1121 //
1122 // sdh 14/2/2003: change license header to GPL
1123 // sdh 28/06/2002: move plane sprites here, drop swplanes.c
1124 // original sprite data (char sw*) made static
1125 // sdh 27/06/2002: add code to generate new sopsym_t objects from the
1126 // original sprite data
1127 // sdh 21/10/2001: reformatted headers, added cvs tags
1128 // sdh 20/10/2001: added some missing {}'s to shut up compiler
1129 //
1130 //---------------------------------------------------------------------------
1131
1132