OpenSource.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #pragma once
  2. #include <string>
  3. #include <vector>
  4. #include <deque>
  5. #include <map>
  6. #include <unordered_set>
  7. #include <kapusha/core/IViewport.h>
  8. #include <kapusha/render/Render.h>
  9. #include <kapusha/render/Camera.h>
  10. #include "ResRes.h"
  11. class BSP;
  12. class OpenSource : public kapusha::IViewport
  13. {
  14. public:
  15. OpenSource(
  16. const char *path,
  17. const char *file,
  18. int depth = 32);
  19. virtual ~OpenSource();
  20. void addMapRestriction(const std::string& name) {
  21. enabled_maps_.insert(name);
  22. }
  23. public: // IViewport
  24. virtual void init(kapusha::IViewportController *viewctrl);
  25. virtual void resize(kapusha::vec2i size);
  26. virtual void draw(int ms, float dt);
  27. virtual void close() {}
  28. virtual void inputPointer(const kapusha::PointerState& pointers);
  29. virtual void inputKey(const kapusha::KeyState& keys);
  30. private:
  31. kapusha::Render *render_;
  32. ResRes resources_;
  33. int depth_;
  34. kapusha::IViewportController *viewctrl_;
  35. std::map<std::string, BSP*> levels_;
  36. std::vector<BSP*> levelsv_;
  37. std::deque<std::string> maps_to_load_;
  38. std::unordered_set<std::string> enabled_maps_;
  39. kapusha::rect2f viewport_;
  40. kapusha::Camera camera_;
  41. float forward_speed_;
  42. float right_speed_;
  43. float pitch_speed_;
  44. float yaw_speed_;
  45. int selection_;
  46. bool show_selection_;
  47. bool mouselook_;
  48. };