home *** CD-ROM | disk | FTP | other *** search
/ Game Programming - All in One (3rd Edition) / game_prog_all_in_one_3rd_ed.iso / sources / chapter12 / tankwar_r5 / tankwar.h < prev    next >
Encoding:
C/C++ Source or Header  |  2004-04-05  |  2.2 KB  |  105 lines

  1. /////////////////////////////////////////////////////////////////////////
  2. // Game Programming All In One, Second Edition
  3. // Source Code Copyright (C)2004 by Jonathan S. Harbour
  4. // Tank War Enhancement 5 - tankwar.h
  5. /////////////////////////////////////////////////////////////////////////
  6.  
  7. #ifndef _TANKWAR_H
  8. #define _TANKWAR_H
  9.  
  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. //new elements
  41.     int dir, alive;
  42.  
  43.     int x,y;
  44.     int width,height;
  45.     int xspeed,yspeed;
  46.     int xdelay,ydelay;
  47.     int xcount,ycount;
  48.     int curframe,maxframe,animdir;
  49.     int framecount,framedelay;
  50. }SPRITE;
  51.  
  52. SPRITE mytanks[2];
  53. SPRITE *tanks[2];
  54. SPRITE mybullets[2];
  55. SPRITE *bullets[2];
  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];
  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 drawtank(int num);
  87. void erasetank(int num);
  88. void movetank(int num);
  89. void explode(int num, int x, int y);
  90. void movebullet(int num);
  91. void drawbullet(int num);
  92. void fireweapon(int num);
  93. void forward(int num);
  94. void backward(int num);
  95. void turnleft(int num);
  96. void turnright(int num);
  97. void getinput();
  98. void setuptanks();
  99. void setupscreen();
  100. int inside(int,int,int,int,int,int);
  101. BITMAP *grabframe(BITMAP *, int, int, int, int, int, int);
  102.  
  103. #endif
  104.  
  105.