/* ** Copyright (C) 1996, 1997 Microsoft Corporation. All Rights Reserved. ** ** File: launcherTypeIGC.h ** ** Author: ** ** Description: ** Header for the CpartTypeIGC class. This file was initially created by ** the ATL wizard. ** ** History: */ // launcherTypeIGC.h : Declaration of the CpartTypeIGC #ifndef __LAUNCHERTYPEIGC_H_ #define __LAUNCHERTYPEIGC_H_ ///////////////////////////////////////////////////////////////////////////// // ClauncherTypeIGC class ClauncherTypeIGC : public IlauncherTypeIGC { public: ClauncherTypeIGC(void) : m_pexpendabletype(NULL) { } ~ClauncherTypeIGC(void) { } // IbaseIGC virtual HRESULT Initialize(ImissionIGC* pMission, Time now, const void* data, int dataSize); virtual void Terminate(void); virtual int Export(void* data) const; virtual ObjectType GetObjectType(void) const { return OT_partType; } virtual ObjectID GetObjectID(void) const { return m_data.partID; } // ItypeIGC virtual const void* GetData(void) const { return m_launcherDef; } // IbuyableIGC virtual const char* GetModelName(void) const { return m_launcherDef->modelName; } virtual const char* GetIconName(void) const { return m_launcherDef->iconName; } virtual const char* GetName(void) const { return m_launcherDef->name; } virtual const char* GetDescription(void) const { return m_launcherDef->description; } virtual Money GetPrice(void) const { return m_launcherDef->price; } virtual DWORD GetTimeToBuild(void) const { return m_launcherDef->timeToBuild; } virtual BuyableGroupID GetGroupID(void) const { return m_launcherDef->groupID; } // IpartTypeIGC virtual float GetMass(void) const { return m_launcherDef->mass; } virtual float GetSignature(void) const { return m_launcherDef->signature; } virtual EquipmentType GetEquipmentType(void) const { return m_equipmenttype; } virtual PartMask GetPartMask(void) const { return m_launcherDef->partMask; } virtual const TechTreeBitMask& GetRequiredTechs(void) const { return m_launcherDef->ttbmRequired; } virtual const TechTreeBitMask& GetEffectTechs(void) const { return m_launcherDef->ttbmEffects; } virtual IpartTypeIGC* GetSuccessorPartType(void) const { return m_pptSuccessor; } const char* GetInventoryLineMDLName(void) const { return m_data.inventoryLineMDL; } virtual short GetAmount(IshipIGC* pship) const { short amount; if (pship) { amount = (pship->GetHullType()->GetCapacity(m_equipmenttype) / m_launcherDef->expendableSize); if (amount == 0) amount = 1; } else amount = m_data.amount; return amount; } // IlauncherTypeIGC virtual IexpendableTypeIGC* GetExpendableType(void) const { return m_pexpendabletype; } virtual short GetLaunchCount (void) const { return m_data.launchCount; } private: ImissionIGC* m_pMission; TRef m_pptSuccessor; IexpendableTypeIGC* m_pexpendabletype; DataLauncherTypeIGC m_data; const LauncherDef* m_launcherDef; EquipmentType m_equipmenttype; }; #endif //__LAUNCHERTYPEIGC_H_