#pragma once #include "ObjectManager.h" #include "Vectors.h" #include "ModelManager.h" #define MAXBULLETDISTANCE (20.0 * 20) #define MAXROCKETDISTANCE (100.0 * 100) #define ROCKETROTATERATE 0.002 #define BULLETSPEED 0.02 #define ROCKETSPEED 0.001 #define MAXROCKETSPEED 0.015 #define ROCKETACCELERATION 0.0001 enum weaponTypes { WEAPONTYPEBULLET, WEAPONTYPEROCKET /* Add more as necessary. Rockets? Bombs? Mines? */ }; typedef struct VWeapon { int Type; int MaxDistance; float Speed; Vector InitialPos; Vector Target; VObject Object; struct VWeapon * next; Boolean taggedForRemoval; } VWeapon; void InitWeapon(VWeapon * w, int type); void CleanUpWeapon(VWeapon * w); void StartWeapon(VWeapon * w, Vector * startPos, Vector * target, Vector * forward, Vector * up, float speedAdjustment); void RunWeapon(VWeapon * w, float interval, void * world); void DrawWeapon(VWeapon * w);