home *** CD-ROM | disk | FTP | other *** search
- //////////////////////////////////////////////////////////////////
- // Game Programming All In One, Third Edition
- // Tank War Final - tankwar.h
- //////////////////////////////////////////////////////////////////
-
- #ifndef _TANKWAR_H
- #define _TANKWAR_H 1
-
- #include <stdlib.h>
- #include <math.h>
- #include "allegro.h"
- #include "mappyal.h"
- #include "datafile.h"
- #include "sprite.h"
-
- #define PI 3.1415926535
-
- //define some game constants
- #define MODE GFX_AUTODETECT_WINDOWED
- #define DEPTH 32
- #define WIDTH 640
- #define HEIGHT 480
- #define MAXSPEED 8
- #define BULLETSPEED 6
- #define SCROLLW 306
- #define SCROLLH 371
- #define MAPFILE "map100x100.fmp"
-
- //game state constants
- #define STATE_TITLE 1
- #define STATE_NORMAL 2
- #define STATE_VICTORY 3
-
- //sprites used in the game
- extern sprite *tanks[2];
- extern sprite *bullets[2];
-
-
- //declare some variables
- extern int gamestate;
- extern double scrollx[2], scrolly[2];
- extern int startx[2], starty[2];
- extern int tilex, tiley, n;
- extern int radarx, radary;
- extern int health[2];
-
- //MIDI music
- extern MIDI *music_title;
- extern MIDI *music_battle;
- extern MIDI *music_victory;
-
- //sprite bitmaps
- extern sprite *explosions[2][2];
- extern sprite *sideviews[2];
-
- //double buffer
- extern BITMAP *buffer;
-
- //fullscreen bitmaps
- extern sprite *back;
- extern sprite *title;
- extern sprite *victory1;
- extern sprite *victory2;
-
- //define the datafile object
- extern DATAFILE *datafile;
-
- //variables used for sound effects
- #define PAN 128
- #define PITCH 1000
- #define VOLUME 128
- #define NUM_SOUNDS 8
- #define AMMO 0
- #define HIT1 1
- #define HIT2 2
- #define FIRE 3
- #define GOOPY 4
- #define HARP 5
- #define SCREAM 6
- #define OHHH 7
- extern SAMPLE *sounds[NUM_SOUNDS];
-
- //some variables used to slow down keyboard input
- extern int key_count[2];
- extern int key_delay[2];
-
-
- //function prototypes
- void loadsounds();
- void readjoysticks();
- void updateexplosion(int window,int num);
- void loadgraphics();
- void drawtanks();
- void movetanks();
- void animatetanks();
- void explode(int num, int x, int y);
- void movebullets();
- void drawbullets();
- void fireweapon(int num);
- void forward(int num);
- void backward(int num);
- void turnleft(int num);
- void turnright(int num);
- void getinput();
- void setuptanks();
- void setupscreen();
- int inside(int,int,int,int,int,int);
- void loaddatafile();
- void fatalerror(char *msg);
- double calcAngleMoveX(int angle);
- double calcAngleMoveY(int angle);
-
- #endif
-