home *** CD-ROM | disk | FTP | other *** search
/ Game Programming - All in One (3rd Edition) / game_prog_all_in_one_3rd_ed.iso / sources / TankWar-Final / tankwar.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-09-17  |  2.4 KB  |  114 lines

  1. //////////////////////////////////////////////////////////////////
  2. // Game Programming All In One, Third Edition
  3. // Tank War Final - tankwar.h
  4. //////////////////////////////////////////////////////////////////
  5.  
  6. #ifndef _TANKWAR_H
  7. #define _TANKWAR_H 1
  8.  
  9. #include <stdlib.h>
  10. #include <math.h>
  11. #include "allegro.h"
  12. #include "mappyal.h"
  13. #include "datafile.h"
  14. #include "sprite.h"
  15.  
  16. #define PI 3.1415926535
  17.  
  18. //define some game constants
  19. #define MODE GFX_AUTODETECT_WINDOWED
  20. #define DEPTH 32
  21. #define WIDTH 640
  22. #define HEIGHT 480
  23. #define MAXSPEED 8
  24. #define BULLETSPEED 6
  25. #define SCROLLW 306
  26. #define SCROLLH 371
  27. #define MAPFILE "map100x100.fmp"
  28.  
  29. //game state constants
  30. #define STATE_TITLE 1
  31. #define STATE_NORMAL 2
  32. #define STATE_VICTORY 3
  33.  
  34. //sprites used in the game
  35. extern sprite *tanks[2];
  36. extern sprite *bullets[2];
  37.  
  38.  
  39. //declare some variables
  40. extern int gamestate;
  41. extern double scrollx[2], scrolly[2];
  42. extern int startx[2], starty[2];
  43. extern int tilex, tiley, n;
  44. extern int radarx, radary;
  45. extern int health[2];
  46.  
  47. //MIDI music 
  48. extern MIDI *music_title;
  49. extern MIDI *music_battle;
  50. extern MIDI *music_victory;
  51.  
  52. //sprite bitmaps
  53. extern sprite *explosions[2][2];
  54. extern sprite *sideviews[2];
  55.  
  56. //double buffer
  57. extern BITMAP *buffer;
  58.  
  59. //fullscreen bitmaps
  60. extern sprite *back;
  61. extern sprite *title;
  62. extern sprite *victory1;
  63. extern sprite *victory2;
  64.  
  65. //define the datafile object
  66. extern DATAFILE *datafile;
  67.  
  68. //variables used for sound effects
  69. #define PAN 128
  70. #define PITCH 1000
  71. #define VOLUME 128
  72. #define NUM_SOUNDS 8
  73. #define AMMO 0
  74. #define HIT1 1
  75. #define HIT2 2
  76. #define FIRE 3
  77. #define GOOPY 4
  78. #define HARP 5
  79. #define SCREAM 6
  80. #define OHHH 7
  81. extern SAMPLE *sounds[NUM_SOUNDS];
  82.  
  83. //some variables used to slow down keyboard input
  84. extern int key_count[2];
  85. extern int key_delay[2];
  86.  
  87.  
  88. //function prototypes
  89. void loadsounds();
  90. void readjoysticks();
  91. void updateexplosion(int window,int num);
  92. void loadgraphics();
  93. void drawtanks();
  94. void movetanks();
  95. void animatetanks();
  96. void explode(int num, int x, int y);
  97. void movebullets();
  98. void drawbullets();
  99. void fireweapon(int num);
  100. void forward(int num);
  101. void backward(int num);
  102. void turnleft(int num);
  103. void turnright(int num);
  104. void getinput();
  105. void setuptanks();
  106. void setupscreen();
  107. int inside(int,int,int,int,int,int);
  108. void loaddatafile();
  109. void fatalerror(char *msg);
  110. double calcAngleMoveX(int angle);
  111. double calcAngleMoveY(int angle);
  112.  
  113. #endif
  114.