//////////////////////////* 赵飞---坦克大战 Version 1.0 All Rights *////////////////////////////
#include "tank.h"
//是否播放音效
bool sound=TRUE;
//鼠标当前地图块属性
int mouse_id=WALL;
int mouse_x;
int mouse_y;
//地图文件句柄
string map_name("map.txt");
fstream map_file;
//兼容内存设备
HDC winDC;
HDC writeDC;
HDC backgroundDC;
HDC player_tankDC;
HDC bulletDC;
HDC blockDC;
HDC fireDC;
//兼容位图
HBITMAP writeBMP;
HBITMAP backgroundBMP;
HBITMAP player_tankBMP;
HBITMAP bulletBMP;
HBITMAP blockBMP;
HBITMAP fireBMP;
//游戏定时器
UINT game_timer;
//游戏状态
int game_state;
//BOSS模式
bool boss_mode=false;
//玩家坦克
BaseTank player_tank;
//玩家子弹
list<Bullet*> player_bullet;
//火花容器
list<Fire*> fire;
//敌人容器
list<BaseTank*> enemy_tank;
//敌人炮弹容器
list<list<Bullet*>*> enemy_bullet;
//地图块数宽和高
const int block_wide=GAME_W/64;
const int block_high=GAME_H/64;
//最大地图数
const int map_max=35;
//地图容器
vector<int> block;
//备用地图容器
vector<int> blockmap;
//内置地图数据
int map[block_wide*block_high*map_max]={
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 1 , 0 , 1 , 1 , 0 , 1 , 0 , 1 , 0 , 1 , 1 , 0 , 1 , 0 ,
0 , 1 , 0 , 1 , 1 , 0 , 1 , 0 , 1 , 0 , 1 , 1 , 0 , 1 , 0 ,
0 , 1 , 0 , 1 , 1 , 0 , 1 , 7 , 1 , 0 , 1 , 1 , 0 , 1 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
7 , 0 , 1 , 1 , 1 , 0 , 1 , 0 , 1 , 0 , 1 , 1 , 1 , 0 , 7 ,
0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 1 , 1 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 1 , 1 , 0 ,
0 , 1 , 1 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 1 , 1 , 0 ,
0 , 1 , 1 , 0 , 1 , 0 , 1 , 1 , 1 , 0 , 1 , 0 , 1 , 1 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 1 , 10 , 1 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 7 , 0 , 0 , 0 , 0 , 7 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 1 , 0 , 7 , 0 , 0 , 0 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 0 ,
8 , 1 , 0 , 0 , 0 , 0 , 1 , 7 , 1 , 0 , 1 , 7 , 1 , 0 , 7 ,
8 , 8 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 7 , 0 , 0 , 8 , 0 , 0 ,
0 , 1 , 1 , 1 , 1 , 8 , 8 , 8 , 7 , 0 , 0 , 0 , 8 , 1 , 0 ,
0 , 0 , 0 , 0 , 7 , 8 , 1 , 0 , 1 , 0 , 1 , 1 , 8 , 1 , 0 ,
7 , 1 , 1 , 0 , 7 , 0 , 1 , 1 , 1 , 0 , 1 , 0 , 0 , 1 , 0 ,
0 , 1 , 1 , 0 , 1 , 0 , 1 , 1 , 1 , 0 , 1 , 1 , 7 , 1 , 0 ,
0 , 1 , 1 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 1 , 1 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 1 , 0 , 1 , 0 ,
0 , 1 , 1 , 0 , 1 , 0 , 1 , 10 , 1 , 0 , 0 , 1 , 1 , 1 , 0 ,
0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0 , 0 ,
1 , 8 , 8 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
1 , 8 , 8 , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 7 , 7 , 7 , 7 ,
8 , 8 , 8 , 8 , 0 , 0 , 1 , 1 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ,
0 , 8 , 0 , 1 , 1 , 1 , 1 , 1 , 0 , 1 , 1 , 1 , 1 , 1 , 0 ,
0 , 1 , 0 , 0 , 0 , 1 , 1 , 7 , 7 , 7 , 0 , 0 , 1 , 8 , 8 ,
1 , 1 , 0 , 7 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 8 , 8 ,
0 , 0 , 0 , 7 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 8 , 8 , 8 ,
1 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 8 ,
1 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 ,
7 , 1 , 0 , 0 , 0 , 0 , 1 , 10 , 1 , 0 , 1 , 1 , 0 , 0 , 0 ,
0 , 8 , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 8 , 0 ,
8 , 8 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 8 ,
8 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 7 ,
0 , 0 , 0 , 1 , 0 , 0 , 0 , 7 , 0 , 1 , 1 , 1 , 0 , 0 , 0 ,
12 , 12 , 0 , 1 , 7 , 7 , 0 , 7 , 0 , 0 , 1 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 1 , 0 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 12 , 12 , 12 ,
0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 1 , 1 , 0 , 0 , 0 ,
0 , 0 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 8 ,
8 , 0 , 0 , 1 , 1 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 8 , 8 ,
7 , 8 , 0 , 0 , 0 , 0 , 1 , 10 , 1 , 0 , 0 , 0 , 8 , 8 , 7 ,
0 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
7 , 0 , 1 , 0 , 1 , 0 , 0 , 0 , 0 , 7 , 7 , 7 , 7 , 0 , 0 ,
7 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
1 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 12 , 12 , 12 , 12 , 0 , 12 ,
0 , 0 , 0 , 0 , 12 , 12 , 12 , 0 , 12 , 12 , 0 , 0 , 0 , 1 , 1 ,
1 , 1 , 1 , 0 , 12 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 7 , 0 , 0 ,
12 , 12 , 12 , 0 , 12 , 1 , 1 , 7 , 1 , 1 , 0 , 0 , 0 , 1 , 1 ,
0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 0 ,
0 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 ,
1 , 1 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 ,
1 , 0 , 0 , 0 , 0 , 0 , 1 , 10 , 1 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 1 , 8 , 8 , 8 , 0 , 0 , 0 ,
0 , 1 , 0 , 7 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 8 , 0 , 1 , 0 ,
0 , 1 , 0 , 7 , 0 , 1 , 0 , 7 , 0 , 1 , 0 , 8 , 0 , 1 , 8 ,
0 , 0 , 0 , 0 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 8 , 0 , 1 , 8 ,
1 , 1 , 1 , 0 , 0 , 7 , 8 , 1 , 8 , 1 , 7 , 8 , 1 , 1 , 8 ,
0 , 0 , 0 , 0 , 0 , 0 , 8 , 8 , 8 , 0 , 0 , 0 , 0 , 8 , 8 ,
7 , 7 , 0 , 0 , 1 , 0 , 0 , 8 , 0 , 0 , 1 , 0 , 1 , 1 , 7 ,
0 , 1 , 1 , 0 , 0 , 1 , 1 , 0 , 1 , 1 , 0 , 0 , 7 , 7 , 7 ,
0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 8 , 8 ,
0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 1 , 1 , 8 ,
0 , 0 , 1 , 0 , 0 , 0 , 1 , 10 , 1 , 0 , 1 , 0 , 0 , 8 , 8 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 7 , 7 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 7 , 7 , 7 , 0 , 0 , 8 , 0 , 0 , 0 , 7 , 0 , 0 , 0 ,
0 , 7 , 0 , 0 , 0 , 0 , 8 , 7 , 0 , 0 , 7 , 7 , 7 , 0 , 0 ,
0 , 0 , 0 , 0 , 8 , 7 , 7 , 7 , 0 , 0 , 0 , 0 , 7 , 0 , 0 ,
0 , 7 , 0 , 8 , 7 , 7 , 7 , 7 , 0 , 7 , 0 , 0 , 7 , 7 , 0 ,
0 , 0 , 0 , 7 , 7 , 7 , 0 , 0 , 0 , 7 , 7 , 0 , 0 , 0 , 0 ,
7 , 0 , 0 , 0 , 0 , 7 , 0 , 7 , 7 , 7 , 8 , 0 , 0 , 7 , 0 ,
0 , 0 , 7 , 7 , 0 , 0 , 0 , 7 , 8 , 0 , 0 , 0 , 7 , 7 , 0 ,
0 , 7 , 0 , 0 , 7 , 0 , 0 , 8 , 0 , 0 , 0 , 7 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 7 , 7 ,
7 , 7 , 0 , 0 , 0 , 0 , 1 , 10 , 1 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 1 , 0 , 0 , 1 , 1 , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0 ,
8 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 1 , 0 , 0 , 0 , 0 ,
8 , 8 , 8 , 0 , 0 , 0 , 0 , 0 , 7 , 0 , 1 , 1 , 0 , 1 , 7 ,
8 , 12 , 12 , 12 , 12 , 12 , 12 , 12 , 12 , 12 , 12 , 12 , 12 , 0 , 12 ,
0 , 0 , 1 , 1 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 7 , 0 , 0 , 1 ,
1 , 1 , 0 , 7 , 0 , 0 , 7 , 1 , 8 , 8 , 8 , 8 , 0 , 7 , 0 ,
12 , 12 , 0 , 12 , 12 , 12 , 12 , 12 , 12 , 0 , 12 , 12 , 12 , 12 , 12 ,
8 , 8 , 0 , 0 , 1 , 0 , 0 , 1 , 1 , 0 , 0 , 0 , 0 , 1 , 0 ,
8 , 8 , 1 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 7 , 1 , 1 , 0 ,
8 , 7 , 1 , 0 , 1 , 0 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 1 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 1 , 10 , 1 , 0 , 1 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 8 , 0 , 0 , 0 ,
1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,