Lephisto/src/world_view.h
2018-04-14 20:44:30 +01:00

46 lines
1.5 KiB
C++

#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);
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;
};