#pragma once
#include "libs.h"
#include "ship.h"

class Player : public Ship {
public:
  OBJDEF(Player, Ship, PLAYER);
  Player(ShipType::Type shipType);
  Player(void) { }
  virtual ~Player(void);
  void PollControls(void);
  virtual void Render(const Frame* camFrame);
  void DrawHUD(const Frame* cam_frame);
  virtual void SetDockedWith(SpaceStation*, int port);
  void TimeStepUpdate(const float timeStep);
  enum FlightControlState { CONTROL_MANUAL, CONTROL_FIXSPEED, CONTROL_AUTOPILOT };
  FlightControlState GetFlightControlState(void) const { return m_flightControlState; }
  void SetFlightControlState(FlightControlState s);
protected:
  virtual void Save(void);
  virtual void Load(void);
private:
  void DrawTargetSquares();
  void DrawTargetSquare(const Body* const target);
  float m_mouseCMov[2];
  bool polledControlsThisTurn;
  enum FlightControlState m_flightControlState;
  float m_setSpeed;
};