/*
	Asteroids
    Copyright (C) 2006  Darragh Coy.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

/*##############################################################################

Header name: Bullet.hpp

##############################################################################*/

#ifndef BULLET_HPP
#define BULLET_HPP

   /****************************************************************************
   Defines
   ****************************************************************************/
   
      #define BUL_MAX_BULLETS     32          // Maximum number of bullets
      #define BUL_OFFSCREEN_DIST  64.0f       // How far offscreen does bullet have to be before deactivation ?
      #define BUL_SPEED           900.0f      // Speed of bullets
      #define BUL_TAIL_SIZE       8.0f        // Lenght of bullet 'tail' 
      #define BUL_WIDTH           2.0f        // Width of bullet when drawn     

   /****************************************************************************
   Includes
   ****************************************************************************/

	  #include <Windows.h>		// Windows
      #include <gl/gl.h>        // OpenGL Library
      #include <stdlib.h>       // memset  
      #include "Vec2D.h"        // Vector math                                              
      #include "GLWin.h"        // Window functions
      #include "Game.h"         // Game information
      #include "Particle.h"     // Particles
      #include "Asteroid.h"     // Asteroids
   
   /****************************************************************************
   Externs
   ****************************************************************************/   
   
      //..
      
   /****************************************************************************
   Structs and enums
   ****************************************************************************/
   
      //..      
   
   /****************************************************************************
   Prototypes
   ****************************************************************************/   
      
      // Initialise bullet array
      
      void Bullet_Init   ( struct GameData_t * gamedata );
      
      // Shift all bullets by given amount
      
      void Bullet_Shift ( GameData_t * gamedata , float xshift , float yshift );
      
      // Move all bullets
      
      void Bullet_Move   ( struct GameData_t * gamedata );   
      
      // Make a bullet
      
      void Bullet_Create ( struct GameData_t * gamedata , struct Vec2D_t * pos , float angle  );
      
      // Draw all bullets
      
      void Bullet_Draw( struct GameData_t * gamedata ); 
   
#endif
