SMSBaseClass(SimVehicleClass *newOwnship, uchar *weapId, uchar *weapCnt,
int advanced=FALSE);
virtual ~SMSBaseClass();
virtual void AddWeaponGraphics (void);
virtual void FreeWeaponGraphics (void);
virtual SimWeaponClass* GetCurrentWeapon (void);
GunClass* GetGun (int hardpoint);
MissileClass* GetMissile (int hardpoint);
BombClass* GetBomb (int hardpoint);
int GetCurrentWeaponHardpoint (void)
{ return curHardpoint; };
uchar GetCurrentWeaponType (void)
{ return (uchar)hardPoint[curHardpoint]->weaponId; };
short GetCurrentWeaponIndex (void);
float GetCurrentWeaponRangeFeet (void);
void LaunchWeapon (void);
void DetachWeapon (int hardpoint, SimWeaponClass *theWeapon);
int CurStationOK (void);
int NumHardpoints (void) {return numHardpoints;};
int CurHardpoint (void) {return curHardpoint;};
int NumCurrentWpn(void) {return
numCurrentWpn;};
void SetCurHardpoint (int newPoint)
{curHardpoint = newPoint;}; // This should go one day
SimVehicleClass* Ownship(void) {return
ownship;};
MasterArmState MasterArm(void) {return
masterArm;};
void SetMasterArm (MasterArmState newState)
{masterArm = newState;};
void StepMasterArm (void);
void ReplaceMissile (int, MissileClass*);
void ReplaceRocket (int, MissileClass*);
void ReplaceBomb (int, BombClass*);
void SetFlag (int newFlag) { flags |=
newFlag; };
void ClearFlag (int newFlag) { flags
&= ~newFlag; };
int IsSet (int newFlag) { return
flags & newFlag;};
float GetWeaponRangeFeet (int hardpoint);
void SelectBestWeapon (uchar *dam, int mt, int range_km, int guns_only = FALSE);
protected:
int numHardpoints;
int curHardpoint;
int numCurrentWpn;
int flags;
SimVehicleClass* ownship;
MasterArmState
masterArm;