-
Notifications
You must be signed in to change notification settings - Fork 0
/
SI.h
512 lines (420 loc) · 18.8 KB
/
SI.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
// ===========================================================================
// Project: Space Invaders
// File: SI.h
// Author: Mirza Kolakovic
// Date: April 6, 2001.
// ===========================================================================
// ===========================================================================
//
// File: SI.h
//
// Description: This file is the main header file for space invaders.
//
//
// ===========================================================================
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include "resource.h"
#include <math.h>
#include <time.h>
//#define NDEBUG //Uncomment this for release !
#include <assert.h>
#define CDXINCLUDEALL // this define includes all headers, otherwise include one by one
#include <cdx.h>
// CDX add-ons
#include ".\CDXAddons\CDXStar\CDXStar.h"
#include ".\CDXAddons\CDXTextScrol\CDXVertTextScroller.h"
#include ".\CDXAddons\CDXMenu\CDXMenu.h"
#include ".\CDXAddons\CDXHPC\CDXHPC.h"
// SI includes
#include "ScoreIO.h" // Writes hi-score to a file
#include "DXVersion.h" //Checks app exit status and checks DirectX version no.
#include "Options.h" // Write options to a file
// ===========================================================================
// Defines
// ===========================================================================
/***
Do 1 frame (at least) every 1 milliseconds or 1000 FPS (1000(ms/s)/1(ms/Frame) = 1000 FPS )
Note: Since all game movements are based on FrameTime and calculated as Velocity*FrameTime, we have
to force frame time to be greater than or equal to 1. This is not important now but as the
processors are getting faster we want to limit frame rate to 1000FPS which is more than we will
never need.
***/
#define MIN_FRAME_TIME 1 //milliseconds
/***
Game States
***/
#define SPLASH 0
#define INTRO 1
#define SETUP 2
#define RESET 3
#define PLAY_GAME 4
#define PAUSE 5
#define NEXT_LEVEL 6
#define GAME_OVER 7
/***
Sound
***/
//#define THUNDER_WAV ".\\DAS\\Thunder.das"
#define BULLET_WAV ".\\DAS\\B.das"
#define STEP1_WAV ".\\DAS\\S1.das"
#define STEP2_WAV ".\\DAS\\S2.das"
#define STEP3_WAV ".\\DAS\\S3.das"
#define STEP4_WAV ".\\DAS\\S4.das"
#define SI_EXPLODE_WAV ".\\DAS\\ESI.das"
#define UFO_EXPLODE_WAV ".\\DAS\\EFO.das"
#define UFO_WAV ".\\DAS\\F.das"
#define SHIP_EXPLODE_WAV ".\\DAS\\ESP.das"
//#define BOMB_EXPLODE_WAV ".\\DAS\\EBB.das"
/***
Bitmaps
***/
//#define LOGO_BMP ".\\Bitmaps\\Logo.bmp"
#define TITLE_BMP ".\\DAB\\T.dab"
#define SI_BMP ".\\DAB\\S.dab"
#define UFO_BMP ".\\DAB\\F.dab"
#define SHIP_BMP ".\\DAB\\P.dab"
#define BULLET_BMP ".\\DAB\\B.dab" // bomb & torpedo here too.
//#define G_OVER_BMP ".\\DAB\\GOver.dab"
/***
Menu Items
***/
#define MENU_ITEM_HEIGHT 28 // height of each menu item and spacing between items
/***
Number of Bullets, Bombs and Torpedos
***/
#define MAX_BULLETS 50
#define MAX_BOMBS 50
#define MAX_TORPEDOS 10
/***
Invaders Stuff
***/
#define HEAD_INVADERS 32 // Number of Head Invaders
#define ANTENA_INVADERS 32
#define CONE_INVADERS 16
/***
Some Colors
***/
#define WHITE RGB(255, 255, 255)
#define RED RGB(255, 0, 0)
#define GREEN RGB( 0, 255, 0)
#define YELLOW RGB(255, 255, 0)
DWORD WhitePixel, // We will set these at run time using DDColorMatch()
RedPixel, // They will have different values regarding to color
ShipPixel, // depth.(256 colors, 16 bit or 32 bit colors )
YellowPixel, // This is important for collision detection.
ShieldPixel;
/***
Stuff
***/
#define NEXT_LEVEL_DELAY 3000 //millisec
// ===========================================================================
// Global Variables
// ===========================================================================
char szAppName[] = "Space Invaderz";
char szClassName[] = "SIWndClass";
HINSTANCE g_hInst; // instance handle
HWND g_hWnd; // window handle
/***
Flags for the DirectDraw object, Sounds & Debug
***/
BOOL g_bFullScreen = TRUE; // running full screen?
BOOL g_IsAppActive = TRUE; // is the app active
BOOL TripleBuffer = FALSE; // triple buffering on/off
BOOL BackBufferInVRAM = FALSE; // backbuffer in vram/sysram
BOOL SoundFlag = TRUE;
#ifdef NDEBUG
BOOL DebugFlag = FALSE;
#endif
#ifndef NDEBUG
BOOL DebugFlag = TRUE;
#endif
DWORD DurationOfTheFrame = 0; // in milliseconds
/***
Debug File Ptr
***/
FILE *fdebug = 0;
/***
Screen resolution and color depth
***/
int ScreenWidth = 640;
int ScreenHeight = 480;
int ScreenBPP = 8;
/***
Flags
***/
bool bPlayThunder;
bool bRestorePalette;
/***
Palette
***/
PALETTEENTRY pe[256]; //??????????????????????? what if more than 256 colors
/***
Game Data
***/
int Lives = 3;
int GameState = 0;
int GameLevel = 0;
DWORD Score = 0;
DWORD HiScore = 0;
#define HI_SCORE_COLOR RGB(255,255,255) // White
#define SCORE_COLOR RGB(255,255, 0) // Yellow
#define STAR_DELAY 30
/***
Ship stuff
***/
#define SHIP_NOT_ACTIVE 0
#define SHIP_ACTIVE 1
#define SHIP_EXPLODE 2
#define SHIP_LAST_FRAME 8
#define SHIP_Y ScreenHeight-35
#define SHIP_EXPLODE_DELAY 150
double ShipdX;
const double ShipVelocityX = 200.0/1000.0;// 200 pixels per second
/***
Shields
***/
#define SHIELD_HEIGHT 48
#define SHIELD_WIDTH 72
#define SHIELD_Y (SHIP_Y - 68)
#define SHIELD_1_X 40
#define SHIELD_2_X 200
#define SHIELD_3_X 360
#define SHIELD_4_X 520
// This 2D array is a shield bitmap. Positions within array
// set to one will be painted green while positions set to zero
// will not be painted
BYTE Shield1[SHIELD_HEIGHT][SHIELD_WIDTH];
BYTE Shield2[SHIELD_HEIGHT][SHIELD_WIDTH];
BYTE Shield3[SHIELD_HEIGHT][SHIELD_WIDTH];
BYTE Shield4[SHIELD_HEIGHT][SHIELD_WIDTH];
/***
UFO Stuff
***/
double UFOdX;
char strUFOScore[20];
int BulletsSinceLastUFO;
const double UFOVelocityX = 100.0/1000.0; //100 pixels per second
#define UFO_X -32 // strat drawing it here
#define UFO_Y 30
#define UFO_NOT_ACTIVE 0
#define UFO_ACTIVE 1
#define UFO_EXPLODE 2
#define UFO_EXPLODE_DELAY 400 // in millisec
#define ACTIVATE_UFO_ON 32 //We will activate ufo after 32 bullets have been fired
/***
Bullet Stuff
***/
CDXSprite * Bullets[ MAX_BULLETS ]; //Array to hold bullets
const double BulletVelocityY = 700.0/1000.0;
int BulletsToFire = 1; // 1 or 3
#define BULLET_NOT_ACTIVE 0
#define BULLET_ACTIVE 1
#define BULLET_EXPLODE 2
#define BULLET_EXPLODE_DELAY 100
#define BULLET_DELAY 500 //delay in milliseconds between fire
/***
Bomb Stuff
***/
CDXSprite * Bombs[ MAX_BOMBS ];
const double BombVelocityY = 70.0/1000.0; // 70 pixels per second
double BombdY;
int NoActiveBombs;
#define BOMB_NOT_ACTIVE 0
#define BOMB_ACTIVE 1
#define BOMB_EXPLODE 2
#define BOMB_EXPLODE_DELAY 100
/***
Torpedo Stuff
***/
CDXSprite * Torpedos[ MAX_TORPEDOS ];
const double TorpedoVelocityY = 700.0/1000.0; // 700 pixels per second
#define TORPEDO_NOT_ACTIVE 0
#define TORPEDO_ACTIVE 1
/***
SI Arrays and stuff
***/
CDXSprite * SInvaders[ HEAD_INVADERS + ANTENA_INVADERS + CONE_INVADERS ];
bool MoveDown;
int SIStartMoveOnX,
SIStopMoveOnX,
SIStopMoveOnY,
SIStartDrawOnX,
SIStartDrawOnY,
SIDrawStep,
SINewFrame,
SIPlayStep, //defines what sound to play while moving Invaders
NumberOfLiveSI;
int SIMoveDelay; //in milliseconds
#define SI_HEAD 0 // Sprite stuff
#define SI_ANTENA 1
#define SI_CONE 2
#define SI_ACTIVE 0
#define SI_EXPLODE 1
#define SI_NOT_ACTIVE 2
#define SI_EXPLODE_DELAY 3 // transition state so we can see eplosion of the invader
int SIVelocityLeft = -10;
int SIVelocityRight = 10;
int SIVelocityDown = 20;
#define STEP1 0 //Sound states
#define STEP2 1
#define STEP3 2
#define STEP4 3
#define EXPLODE_DELAY 200 //in milliseconds
#define TIME_TO_WAIT_INVADERS 50
/***
Credits
***/
#define SCROLL_DELAY 25
RECT CreditsClipRect = { 0 , 140 , 640 , SHIELD_Y };
// ===========================================================================
// CDX Objects
// ===========================================================================
CDXScreen * Screen = 0;// The screen object, every program must have one
CDXSurface * Back = 0;// Global pointer to background surface; Used instead: Screen->GetBack()
CDXSound * Sound = 0;// Sound object
CDXStarField * Stars = 0;
CDXInput * Input = 0;
CDXBitmapFont * CreditsFont = 0;
CDXVertTextScroller * CreditsScroll = 0;
CDXMenu * MainMenu = 0;
CDXMenu * OptionsMenu = 0;
CDXMenu * CurrentMenu = 0;
CDXTile * SiT = 0;
CDXTile * TitleT = 0;
CDXTile * ShipT = 0;
CDXTile * UfoT = 0;
CDXTile * BulletT = 0;
CDXSprite * SI = 0;
CDXSprite * Ship = 0;
CDXSprite * UFO = 0;
CDXSprite * Title = 0;
CDXSprite * Bullet = 0;
CDXSprite * LivesSSprite = 0;
CDXSoundBuffer * Step1 = 0;
CDXSoundBuffer * Step2 = 0;
CDXSoundBuffer * Step3 = 0;
CDXSoundBuffer * Step4 = 0;
CDXSoundBuffer * BulletSound = 0;
CDXSoundBuffer * ExplodeSI = 0;
CDXSoundBuffer * UFOSound = 0;
CDXSoundBuffer * ExplodeUFO = 0;
CDXSoundBuffer * ExplodeShip = 0;
CDXHPC * PCScrollTimer = 0;
CDXHPC * PCShip = 0;
CDXHPC * PCStars = 0;
CDXHPC * PCShipExplode = 0;
CDXHPC * PCFireBullet = 0;
CDXHPC * PCBullet = 0;
CDXHPC * PCBulletExplode = 0;
CDXHPC * PCSIMove = 0;
CDXHPC * PCSIExplosion = 0;
CDXHPC * PCAppTiming = 0;
CDXHPC * PCUFOExplosion= 0;
CDXHPC * PCGameOver = 0;
CDXHPC * PCNextLevel = 0;
CDXHPC * PCFrameDuration = 0;
// ============================================================================
// Forward declarations
// ===========================================================================
void
AdjustWinStyle( void );
void
CenterWindow( void );
void
StartVideoMode( void );
void
ChangeVideoMode(void );
void
DisplaySplash( void );
void
GameIntro( void );
void
PlayGame( void );
void
DisplaySetup( void );
void
CreateMenus( void );
void
CheckInput( void );
void
MoveObjects( void );
void
CollisionDetection( void);
void
DrawObjects( void );
void
DisplayStatistics( void );
void
ResetGame( void );
void
ResetShip(void);
void
GameOver( void );
void
PauseGame( void );
void
NextLevel( void );
// ============================================================================
// Global Text & Data
// ===========================================================================
static char MirzaKingText[50] = "Space Invaderz - by Mirza King, 2001";
static char PointsText[4][80]=
{
{" = ? MYSTERY"},
{" = 30 POINTS "},
{" = 20 POINTS "},
{" = 10 POINTS "}
};
static char *ScrollText = "Space Invaderz\n\nWritten by Mirza King.\n\n\nThanks:\nPatricia Kolakovic for supporting me and creating bitmaps.\nNedzad Kolakovic for getting me TI-99/4A and Space Invaders ROM cartridge.\nAll of you who helped testing this game.\n\nSpecial thanks to CDX community.\nwww.cdxlib.com\n\nVisit us at:\nwww.mirzaking.freeservers.com\[email protected]\n\nCopyright (c) MirzaKing, 2001\n\n\n";
BYTE ShieldBitMap[SHIELD_HEIGHT][SHIELD_WIDTH] = { \
{0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0},\
{0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0},\
{0,0,0,0,0,0,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,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,0,0,0,0,0,0},\
{0,0,0,0,0,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,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,1,1,0,0,0,0,0},\
{0,0,0,0,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,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,1,1,1,1,0,0,0,0},\
{0,0,0,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,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,1,1,1,1,1,1,0,0,0},\
{0,0,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,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,1,1,1,1,1,1,1,1,0,0},\
{0,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,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,1,1,1,1,1,1,1,1,1,1,0},\
{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,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,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,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,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,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,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,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,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,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,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,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},\
{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,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,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,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,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,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,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,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,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,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,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,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},\
{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,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,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,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,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,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,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,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,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,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,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,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},\
{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,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,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,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,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,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,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,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,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,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,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,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},\
{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,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,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,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,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,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,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,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,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,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,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,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},\
{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,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,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,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,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,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,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,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,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,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,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,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},\
{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,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,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,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,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,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1},\
{1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1},\
{1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1},\
{1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1},\
{1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1},\
{1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1} \
};
/* ========== End of file _SI_H_ =================================== */