Contains the source code from the course work throughout my undergraduate Computer Engineering degree at Brigham Young University. There is a mixture of Go, Python, C, C++, Java, VHDL, Verilog, Matlab, Bash, Assembly, etc..
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

440 lines
18 KiB

#ifndef BUNKER_H_
#define BUNKER_H_
#define BUNKER1_X 70
#define BUNKER2_X 210
#define BUNKER3_X 350
#define BUNKER4_X 490
#define BLOCK_HEIGHT 16
#define BLOCK_WIDTH 16
#define packWord16(b15,b14,b13,b12,b11,b10,b9,b8,b7,b6,b5,b4,b3,b2,b1,b0) \
((b15 << 15) | (b14 << 14) | (b13 << 13) | (b12 << 12) | (b11 << 11) | (b10 << 10) | (b9 << 9 ) | (b8 << 8 ) | \
(b7 << 7 ) | (b6 << 6 ) | (b5 << 5 ) | (b4 << 4 ) | (b3 << 3 ) | (b2 << 2 ) | (b1 << 1 ) | (b0 << 0 ))
int block_left0[BLOCK_HEIGHT] = // whole block
{
packWord16(0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1),
packWord16(0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1),
packWord16(0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
};
int block_left1[BLOCK_HEIGHT] = // 1-hit
{
packWord16(0,0,0,0,0,0,1,0,0,1,1,1,1,1,1,0),
packWord16(0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,0),
packWord16(0,0,0,0,1,1,0,0,1,1,1,0,0,1,1,1),
packWord16(0,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1),
packWord16(0,0,1,1,0,0,1,1,1,1,1,0,0,1,1,1),
packWord16(0,1,1,1,0,0,1,1,1,1,1,0,0,1,1,1),
packWord16(0,0,1,1,1,1,0,0,1,1,0,0,1,1,0,0),
packWord16(0,0,1,1,1,1,0,0,1,1,0,0,1,1,0,0),
packWord16(1,1,0,0,1,1,1,1,1,0,0,1,1,1,0,0),
packWord16(1,1,0,0,1,1,1,1,1,0,0,1,1,1,0,0),
packWord16(0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1),
packWord16(0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1),
packWord16(1,0,0,1,1,0,0,1,0,0,1,1,1,1,1,1),
packWord16(1,0,0,1,1,0,0,1,0,0,1,1,1,1,1,1),
packWord16(1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1),
packWord16(1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1),
};
int block_left2[BLOCK_HEIGHT] = // 2-hit
{
packWord16(0,0,0,0,0,0,1,0,0,1,1,0,0,1,1,0),
packWord16(0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0),
packWord16(0,0,0,0,1,1,0,0,0,0,1,0,0,1,1,0),
packWord16(0,0,0,1,1,1,0,0,0,0,1,0,0,1,1,0),
packWord16(0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0),
packWord16(0,0,1,0,0,1,0,0,0,0,0,0,1,1,0,0),
packWord16(0,0,1,0,0,1,0,0,0,0,0,0,1,1,0,0),
packWord16(1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0),
packWord16(1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,1,1,0,0,0,0,0,0,1,1,0,0,1,0),
packWord16(0,0,1,1,0,0,0,0,0,0,1,1,0,0,1,0),
packWord16(0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0),
packWord16(0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0),
packWord16(0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,1),
packWord16(0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,1),
};
int block_left3[BLOCK_HEIGHT] = // 3-hit
{
packWord16(0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0),
packWord16(0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0),
packWord16(0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0),
packWord16(0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0),
packWord16(0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0),
packWord16(0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0),
packWord16(1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
};
int empty[BLOCK_HEIGHT] = // no block
{
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
};
int block_right0[BLOCK_HEIGHT] = // whole block
{
packWord16(1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0),
packWord16(1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
};
int block_right1[BLOCK_HEIGHT] = // 1-hit
{
packWord16(1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0),
packWord16(1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0),
packWord16(1,1,0,0,1,1,0,0,1,1,1,0,0,0,0,0),
packWord16(1,1,0,0,1,1,0,0,1,1,1,0,0,0,0,0),
packWord16(1,1,1,1,1,0,0,1,1,1,1,0,0,1,0,0),
packWord16(1,1,1,1,1,0,0,1,1,1,1,0,0,1,1,0),
packWord16(0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0),
packWord16(0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0),
packWord16(0,0,1,1,1,0,0,1,1,1,1,0,0,0,0,1),
packWord16(0,0,1,1,1,0,0,1,1,1,1,0,0,0,0,1),
packWord16(1,1,1,0,0,1,1,1,1,0,0,1,1,1,0,0),
packWord16(1,1,1,0,0,1,1,1,1,0,0,1,1,1,0,0),
packWord16(0,0,1,1,1,0,0,1,1,1,1,0,0,1,1,1),
packWord16(0,0,1,1,1,0,0,1,1,1,1,0,0,1,1,1),
packWord16(1,1,1,0,0,1,1,0,0,1,1,1,0,0,0,0),
packWord16(1,1,1,0,0,1,1,0,0,1,1,1,0,0,0,0),
};
int block_right2[BLOCK_HEIGHT] = // 2-hit
{
packWord16(1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0),
packWord16(1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,1,1,0,0,1,1,1,0,0,0,0,0),
packWord16(0,0,0,0,1,1,0,0,1,1,1,0,0,0,0,0),
packWord16(1,1,0,0,0,0,0,1,1,0,0,0,0,1,0,0),
packWord16(1,1,0,0,0,0,0,1,1,0,0,0,0,1,1,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0),
packWord16(0,0,1,1,1,0,0,0,0,1,1,0,0,0,0,1),
packWord16(0,0,1,1,1,0,0,0,0,1,1,0,0,0,0,1),
packWord16(1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0),
packWord16(1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1),
packWord16(0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1),
packWord16(0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0),
};
int block_right3[BLOCK_HEIGHT] = // 3-hit
{
packWord16(0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0),
packWord16(1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0),
packWord16(1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0),
packWord16(0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
};
int block_center_left0[BLOCK_HEIGHT] = // whole block
{
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0),
packWord16(1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0),
packWord16(1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0),
packWord16(1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0),
packWord16(1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0),
packWord16(1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0),
packWord16(1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0),
packWord16(1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0),
packWord16(1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
};
int block_center_left1[BLOCK_HEIGHT] = // 1-hit
{
packWord16(1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1),
packWord16(1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,0),
packWord16(1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,0),
packWord16(1,1,1,1,1,1,0,0,1,1,1,1,1,0,0,0),
packWord16(1,1,1,0,0,1,1,1,1,1,1,1,0,0,0,0),
packWord16(1,1,1,0,0,1,1,1,1,1,1,0,0,0,0,0),
packWord16(0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0),
packWord16(0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0),
packWord16(1,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0),
packWord16(1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0),
packWord16(1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0),
packWord16(1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0),
packWord16(1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
};
int block_center_left2[BLOCK_HEIGHT] = // 2-hit
{
packWord16(1,1,0,0,1,1,1,0,0,1,1,0,0,1,1,1),
packWord16(1,1,0,0,1,1,1,0,0,1,1,0,0,1,1,0),
packWord16(0,0,1,1,1,1,0,0,1,1,0,0,1,1,0,0),
packWord16(0,0,1,1,1,1,0,0,1,1,0,0,1,0,0,0),
packWord16(1,1,1,0,0,1,1,0,0,1,1,1,0,0,0,0),
packWord16(1,1,1,0,0,1,1,0,0,1,1,0,0,0,0,0),
packWord16(0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0),
packWord16(0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0),
packWord16(1,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0),
packWord16(1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0),
packWord16(1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0),
packWord16(1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0),
packWord16(1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
};
int block_center_left3[BLOCK_HEIGHT] = // 3-hit
{
packWord16(0,0,0,0,1,1,1,0,0,1,1,0,0,0,0,0),
packWord16(0,0,0,0,1,1,1,0,0,1,1,0,0,0,0,0),
packWord16(0,0,1,0,0,1,0,0,0,0,0,0,1,1,0,0),
packWord16(0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0),
packWord16(1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0),
packWord16(1,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0),
packWord16(0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0),
packWord16(1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0),
packWord16(1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0),
packWord16(1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
};
int block_center_right0[BLOCK_HEIGHT] = // whole block
{
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1),
packWord16(0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1),
packWord16(0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1),
packWord16(0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1),
packWord16(0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1),
packWord16(0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1),
packWord16(0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1),
};
int block_center_right1[BLOCK_HEIGHT] = // 1-hit
{
packWord16(0,0,1,1,0,0,1,1,1,1,1,0,0,1,1,1),
packWord16(0,0,1,1,0,0,1,1,1,1,1,0,0,1,1,1),
packWord16(0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1),
packWord16(0,0,0,1,1,1,1,0,0,1,1,1,1,1,1,1),
packWord16(0,0,0,0,1,0,0,1,1,1,1,0,0,1,0,0),
packWord16(0,0,0,0,0,0,0,1,1,1,1,0,0,1,0,0),
packWord16(0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1),
packWord16(0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,1),
packWord16(0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1),
};
int block_center_right2[BLOCK_HEIGHT] = // 2-hit
{
packWord16(0,0,1,1,0,0,0,0,1,1,1,0,0,1,1,1),
packWord16(0,0,1,1,0,0,0,0,1,1,1,0,0,1,1,1),
packWord16(0,0,1,1,1,1,1,0,0,1,0,0,1,1,0,0),
packWord16(0,0,0,1,1,1,1,0,0,1,0,0,1,1,0,0),
packWord16(0,0,0,0,1,0,0,1,1,1,1,0,0,1,0,0),
packWord16(0,0,0,0,0,0,0,1,1,1,1,0,0,1,0,0),
packWord16(0,0,0,0,0,0,1,1,0,0,1,1,1,0,0,1),
packWord16(0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,1),
packWord16(0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1),
};
int block_center_right3[BLOCK_HEIGHT] = // 3-hit
{
packWord16(0,0,1,1,0,0,0,0,1,1,1,0,0,0,0,0),
packWord16(0,0,1,1,0,0,0,0,1,1,1,0,0,0,0,0),
packWord16(0,0,0,0,1,1,1,0,0,0,0,0,1,1,0,0),
packWord16(0,0,0,0,1,1,1,0,0,0,0,0,1,1,0,0),
packWord16(0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0),
packWord16(0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0),
packWord16(0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,1),
packWord16(0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1),
packWord16(0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1),
};
int block_normal0[BLOCK_HEIGHT] = // whole block
{
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
packWord16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
};
int block_normal1[BLOCK_HEIGHT] = // 1-hit
{
packWord16(1,0,0,1,1,1,1,0,0,1,1,1,1,1,1,1),
packWord16(1,0,0,1,1,1,1,0,0,1,1,1,1,1,1,1),
packWord16(1,1,1,1,0,0,1,1,0,0,1,0,0,1,1,1),
packWord16(1,1,1,1,0,0,1,1,0,0,1,0,0,1,1,1),
packWord16(1,1,0,0,1,1,0,0,1,1,1,1,1,1,0,0),
packWord16(1,1,0,0,1,1,0,0,1,1,1,1,1,1,0,0),
packWord16(0,0,1,1,1,1,1,1,1,0,0,1,0,0,1,1),
packWord16(0,0,1,1,1,1,1,1,1,0,0,1,0,0,1,1),
packWord16(1,1,1,0,0,1,1,0,0,1,1,1,1,1,0,0),
packWord16(1,1,1,0,0,1,1,0,0,1,1,1,1,1,0,0),
packWord16(0,1,1,1,1,1,1,1,1,0,0,1,0,0,1,1),
packWord16(0,1,1,1,1,1,1,1,1,0,0,1,0,0,1,1),
packWord16(1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1),
packWord16(1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1),
packWord16(1,1,1,0,0,1,1,1,0,0,1,1,1,1,0,0),
packWord16(1,1,1,0,0,1,1,1,0,0,1,1,1,1,0,0),
};
int block_normal2[BLOCK_HEIGHT] = // 2-hit
{
packWord16(1,0,0,1,1,0,0,0,0,1,1,1,0,0,1,1),
packWord16(1,0,0,1,1,0,0,0,0,1,1,1,0,0,1,1),
packWord16(0,0,1,1,0,0,1,1,0,0,1,0,0,1,0,0),
packWord16(0,0,1,1,0,0,1,1,0,0,1,0,0,1,0,0),
packWord16(0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0),
packWord16(0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0),
packWord16(0,0,1,1,0,0,1,1,1,0,0,0,0,0,1,1),
packWord16(0,0,1,1,0,0,1,1,1,0,0,0,0,0,1,1),
packWord16(0,0,1,0,0,1,1,0,0,0,0,1,1,1,0,0),
packWord16(0,0,1,0,0,1,1,0,0,0,0,1,1,1,0,0),
packWord16(0,1,1,1,1,0,0,1,1,0,0,0,0,0,1,1),
packWord16(0,1,1,1,1,0,0,1,1,0,0,0,0,0,1,1),
packWord16(1,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0),
packWord16(1,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0),
packWord16(0,1,1,0,0,0,0,1,0,0,0,0,1,1,0,0),
packWord16(0,1,1,0,0,0,0,1,0,0,0,0,1,1,0,0),
};
int block_normal3[BLOCK_HEIGHT] = // 3-hit
{
packWord16(1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1),
packWord16(1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1),
packWord16(0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0),
packWord16(0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0),
packWord16(0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0),
packWord16(0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1),
packWord16(0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0),
packWord16(0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1),
packWord16(0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1),
packWord16(0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0),
packWord16(0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0),
};
void renderBunker(unsigned int*);
void erodeBunker(unsigned int*, int which_bunker, int which_block);
void blankBlock(unsigned int*, int which_bunker, int which_block, int block_row, int block_col);
void updateBlock(unsigned int*, int which_bunker, int which_block, int block_row, int block_col, short* bunker);
void selectBlock(unsigned int*, int bullet);
#endif /* BUNKER_H_ */