#pragma once #include "libs.h" #include "gui.h" #include "view.h" class Body; class WorldView: public View { public: WorldView(void); virtual void Update(void); virtual void Draw3D(void); virtual void OnSwitchTo(void) { } static const float PICK_OBJECT_RECT_SIZE; void UpdateCommsOptions(void); bool GetShowLabels(void) { return m_labelsOn; } void DrawBgStars(void); vector3d GetExternalViewTranslation(void); void ApplyExternalViewRotation(matrix4x4d& m); virtual void Save(void); virtual void Load(void); enum CamType { CAM_FRONT, CAM_REAR, CAM_EXTERNAL }; void SetCamType(enum CamType); enum CamType GetCamType(void) { return m_camType; } float m_externalViewRotX, m_externalViewRotY; float m_externalViewDist; private: Gui::Button* AddCommsOption(const std::string msg, int ypos); void OnClickHyperspace(void); void OnClickBlastoff(void); void OnChangeWheelsState(Gui::MultiStateImageButton* b); void OnChangeLabelsState(Gui::MultiStateImageButton* b); void OnChangeFlightState(Gui::MultiStateImageButton* b); virtual bool OnMouseDown(Gui::MouseButtonEvent* e); Body* PickBody(const float screenX, const float screenY) const; Gui::ImageButton* m_hyperspaceButton; GLuint m_bgstarsDlist; Gui::Fixed* m_commsOptions; Gui::Label* m_flightStatus; Gui::ImageButton* m_launchButton; Gui::MultiStateImageButton* m_flightControlButton; bool m_labelsOn; enum CamType m_camType; };