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

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