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

  1. /////////////////////////////////////////////////////////////////////////
  2. // Game Programming All In One, Third Edition
  3. // Tank War Enhancement 6 - tankwar.h
  4. /////////////////////////////////////////////////////////////////////////
  5.  
  6. #ifndef _TANKWAR_H
  7. #define _TANKWAR_H
  8.  
  9. #include <stdlib.h>
  10. #include <allegro.h>
  11.  
  12. //define some game constants
  13. #define MODE GFX_AUTODETECT_WINDOWED
  14. #define WIDTH 640
  15. #define HEIGHT 480
  16. #define MAXSPEED 4
  17. #define BULLETSPEED 10
  18. #define TILEW 32
  19. #define TILEH 32
  20. #define TILES 39
  21. #define COLS 10
  22. #define MAP_ACROSS 31
  23. #define MAP_DOWN 33
  24. #define MAPW MAP_ACROSS * TILEW
  25. #define MAPH MAP_DOWN * TILEH
  26. #define SCROLLW 310
  27. #define SCROLLH 375
  28.  
  29. //define some colors
  30. #define TAN makecol(255,242,169)
  31. #define BURST makecol(255,189,73)
  32. #define BLACK makecol(0,0,0)
  33. #define WHITE makecol(255,255,255)
  34. #define GRAY makecol(128,128,128)
  35. #define GREEN makecol(0,255,0)
  36.  
  37. //define the sprite structure
  38. typedef struct SPRITE
  39. {
  40.     int dir, alive;
  41.     int x,y;
  42.     int width,height;
  43.     int xspeed,yspeed;
  44.     int xdelay,ydelay;
  45.     int xcount,ycount;
  46.     int curframe,maxframe,animdir;
  47.     int framecount,framedelay;
  48. }SPRITE;
  49.  
  50. SPRITE mytanks[2];
  51. SPRITE *tanks[2];
  52. SPRITE mybullets[2];
  53. SPRITE *bullets[2];
  54. SPRITE *explosions[2];
  55.  
  56.  
  57. //declare some variables
  58. int gameover;
  59. int scores[2];
  60. int scrollx[2], scrolly[2];
  61. int startx[2], starty[2];
  62. int tilex, tiley, n;
  63. int radarx, radary;
  64.  
  65. //sprite bitmaps
  66. BITMAP *tank_bmp[2][8][8];
  67. BITMAP *bullet_bmp;
  68. BITMAP *explode_bmp;
  69.  
  70. //the game map
  71. extern int map[];
  72.  
  73. //double buffer
  74. BITMAP *buffer;
  75.  
  76. //bitmap containing source tiles
  77. BITMAP *tiles;
  78.  
  79. //virtual background buffer
  80. BITMAP *scroll;
  81.  
  82. //screen background
  83. BITMAP *back;
  84.  
  85. //function prototypes
  86. void animatetank(int num);
  87. void updateexplosion(int num);
  88. void loadsprites();
  89. void drawtank(int num);
  90. void erasetank(int num);
  91. void movetank(int num);
  92. void explode(int num, int x, int y);
  93. void movebullet(int num);
  94. void drawbullet(int num);
  95. void fireweapon(int num);
  96. void forward(int num);
  97. void backward(int num);
  98. void turnleft(int num);
  99. void turnright(int num);
  100. void getinput();
  101. void setuptanks();
  102. void setupscreen();
  103. int inside(int,int,int,int,int,int);
  104. BITMAP *grabframe(BITMAP *, int, int, int, int, int, int);
  105.  
  106. #endif
  107.  
  108.