@MiniMapEditor.h 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /******************************************************************************/
  2. /******************************************************************************/
  3. class MiniMapEditor : PropWin
  4. {
  5. class Change : Edit::_Undo::Change
  6. {
  7. ElmMiniMap data;
  8. virtual void create(ptr user)override;
  9. virtual void apply(ptr user)override;
  10. };
  11. const int pixel_border; // additional number of pixels to draw while creating mini maps (helps in making bloom/glow objects more smooth at the edges of mini map images)
  12. flt prop_max_x;
  13. UID elm_id;
  14. Elm *elm;
  15. bool changed;
  16. int progress;
  17. VecI2 image_pos;
  18. RectI images;
  19. ViewportSkin viewport;
  20. EnvironmentPtr env;
  21. Button undo, redo, locate, make;
  22. Edit::Undo<Change> undos; void undoVis();
  23. static void Render();
  24. void render();
  25. int areasPerImage();
  26. UID worldID();
  27. flt miniMapWidth(); // required width in meters for loaded areas
  28. int totalImages();
  29. static flt ShadowStep(int i, int num);
  30. static void Draw(Viewport &viewport);
  31. void draw(bool final=false);
  32. static void Make(MiniMapEditor &mme);
  33. static cchar8 *ImageSizes[]
  34. ;
  35. static cchar8 *AreasPerImage[]
  36. ;
  37. static void PreChanged(C Property &prop);
  38. static void Changed(C Property &prop);
  39. static void World ( MiniMapEditor &mme, C Str &text);
  40. static Str World (C MiniMapEditor &mme );
  41. static void Env ( MiniMapEditor &mme, C Str &text);
  42. static Str Env (C MiniMapEditor &mme );
  43. static void ArPerImg( MiniMapEditor &mme, C Str &text);
  44. static Str ArPerImg(C MiniMapEditor &mme );
  45. static void Size ( MiniMapEditor &mme, C Str &text);
  46. static Str Size (C MiniMapEditor &mme );
  47. static void Undo (MiniMapEditor &editor);
  48. static void Redo (MiniMapEditor &editor);
  49. static void Locate(MiniMapEditor &editor);
  50. ElmMiniMap* data()C;
  51. MiniMapVer* ver()C;
  52. void makeDo();
  53. void init(bool center=false);
  54. bool step();
  55. void create();
  56. virtual Rect sizeLimit()C override;
  57. virtual MiniMapEditor& rect(C Rect &rect)override;
  58. void flush();
  59. void setAreas(int border=4);
  60. void reloadAreas();
  61. void reloadWorld();
  62. void setChanged(bool world=false, bool areas=false);
  63. void set(Elm *elm);
  64. void activate(Elm *elm);
  65. void toggle (Elm *elm);
  66. virtual MiniMapEditor& hide ( )override;
  67. void elmChanged(C UID &elm_id);
  68. void erasing(C UID &elm_id);
  69. public:
  70. MiniMapEditor();
  71. };
  72. /******************************************************************************/
  73. /******************************************************************************/
  74. extern MiniMapEditor MiniMapEdit;
  75. /******************************************************************************/