/* ** Copyright (C) 1999 Microsoft Corporation. All Rights Reserved. ** ** File: trainingmission.h ** ** Author: ** ** Description: ** Header file for the training library "trainingmission" interface. ** ** History: */ #ifndef _TRAINING_MISSION_H_ #define _TRAINING_MISSION_H_ #ifndef _GOAL_H_ #include "Goal.h" #endif //_GOAL_H_ namespace Training { //------------------------------------------------------------------------------ // class definitions //------------------------------------------------------------------------------ class TrainingMission { public: /* void */ TrainingMission (void); virtual /* void */ ~TrainingMission (void); virtual int GetMissionID (void) = 0; virtual SectorID GetStartSectorID (void) = 0; virtual void SetupShipAndCamera (void); void Start (void); bool Frame (void); void Terminate (void); void AddWaitCondition (Condition* pWaitCondition); virtual bool RecordKeyPress (TrekKey key); void AddKeyCondition (Condition* pKeyCondition); void RecordChat (ChatTarget recipient); void SetChatCondition (Condition* pChatCondition); virtual bool ShipLanded (void); virtual void ShipDied (ImodelIGC* pLauncher); virtual bool RestoreShip (void); IshipIGC* GetCommanderShip (void) const; void AddPartToShip (IshipIGC* pShip, PartID part, Mount mount, short ammo = 0); void AddPartToShip (PartID part, Mount mount, short ammo = 0); IshipIGC* CreateDrone (const ZString& name, ShipID shipID, HullID hullID, SideID sideID, PilotType pilotType); void SetSkipPostSlideshow (void); protected: virtual void CreateUniverse (void) = 0; virtual Condition* CreateMission (void) = 0; void LoadUniverse (const ZString& name, HullID hullID, StationID homeStationID); void DefaultLoadout (IshipIGC* pShip); void CreatePlayerInfo (IshipIGC* pShip, SideID side, ShipID shipID); Goal* CreatePlaySoundGoal (SoundID sound); Condition* CreateTooCloseCondition (TRef place); Condition* CreateTooLongCondition (float fDelay, SoundID sound); protected: Condition* m_pCondition; Condition* m_pDeadCondition; std::list m_WaitConditionList; std::list m_KeyConditionList; Condition* m_pChatCondition; bool m_bMusicWasOn; float m_fHUDStyle; ObjectID m_commanderID; SectorID m_deadSectorID; TrekWindow::ViewMode m_deadViewMode; TrekWindow::CameraMode m_deadCameraMode; bool m_bSkipPostSlideShow; }; //------------------------------------------------------------------------------ } #endif //_TRAINING_MISSION_H_