AGCHullType.h 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #ifndef __AGCHullType_h__
  2. #define __AGCHullType_h__
  3. /////////////////////////////////////////////////////////////////////////////
  4. // AGCHullType.h : Declaration of the CAGCHullType
  5. //
  6. #include "resource.h"
  7. #include "IAGCBuyableImpl.h"
  8. /////////////////////////////////////////////////////////////////////////////
  9. // CAGCHullType
  10. //
  11. class ATL_NO_VTABLE CAGCHullType :
  12. public IAGCBuyableImpl<CAGCHullType, IhullTypeIGC, IAGCHullType, &LIBID_AGCLib>,
  13. public ISupportErrorInfo,
  14. public CComCoClass<CAGCHullType, &CLSID_AGCHullType>
  15. {
  16. // Declarations
  17. public:
  18. DECLARE_REGISTRY_RESOURCEID(IDR_AGCHullType)
  19. DECLARE_PROTECT_FINAL_CONSTRUCT()
  20. // Interface Map
  21. public:
  22. BEGIN_COM_MAP(CAGCHullType)
  23. COM_INTERFACE_ENTRY(IAGCHullType)
  24. COM_INTERFACE_ENTRY(IDispatch)
  25. COM_INTERFACE_ENTRIES_IAGCBuyableImpl()
  26. COM_INTERFACE_ENTRY(ISupportErrorInfo)
  27. END_COM_MAP()
  28. // Category Map
  29. public:
  30. BEGIN_CATEGORY_MAP(CAGCHullType)
  31. IMPLEMENTED_CATEGORY(CATID_AGC)
  32. END_CATEGORY_MAP()
  33. // ISupportsErrorInfo Interface Methods
  34. public:
  35. STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);
  36. // IAGCHullType Interface Methods
  37. public:
  38. STDMETHODIMP get_Length(float* pfLength);
  39. STDMETHODIMP get_MaxSpeed(float* pfMaxSpeed);
  40. STDMETHODIMP get_MaxTurnRate(AGCAxis eAxis, float* pfMaxTurnRate);
  41. STDMETHODIMP get_TurnTorque(AGCAxis eAxis, float* pfTurnTorque);
  42. STDMETHODIMP get_Thrust(float* pfThrust);
  43. STDMETHODIMP get_SideMultiplier(float* pfSideMultiplier);
  44. STDMETHODIMP get_BackMultiplier(float* pfBackMultiplier);
  45. STDMETHODIMP get_ScannerRange(float* pfScannerRange);
  46. STDMETHODIMP get_MaxEnergy(float* pfMaxEnergy);
  47. STDMETHODIMP get_RechargeRate(float* pfRechargeRate);
  48. STDMETHODIMP get_HitPoints(AGCHitPoints* pHitPoints);
  49. STDMETHODIMP get_PartMask(AGCEquipmentType et, AGCMount mountID,
  50. AGCPartMask* pPartMask);
  51. STDMETHODIMP get_MaxWeapons(AGCMount* pMaxWeapons);
  52. STDMETHODIMP get_MaxFixedWeapons(AGCMount* pMaxFixedWeapons);
  53. // STDMETHODIMP get_CanMount(IAGCPartType* pPartType, AGCMount mountID,
  54. // VARIANT_BOOL* pbCanMount);
  55. STDMETHODIMP get_Mass(float* pfMass);
  56. STDMETHODIMP get_Signature(float* pfSignature);
  57. STDMETHODIMP get_Capabilities(AGCHullAbilityBitMask* phabmCapabilities);
  58. STDMETHODIMP get_HasCapability(AGCHullAbilityBitMask habm,
  59. VARIANT_BOOL* pbHasCapability);
  60. STDMETHODIMP get_MaxAmmo(short* pnMaxAmmo);
  61. STDMETHODIMP get_MaxFuel(float* pfMaxFuel);
  62. };
  63. /////////////////////////////////////////////////////////////////////////////
  64. #endif //__AGCHullType_h__