@ElmWorld.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /******************************************************************************/
  2. /******************************************************************************/
  3. class ElmWorld : ElmData
  4. {
  5. int area_size, hm_res;
  6. flt ctrl_r, ctrl_h, max_climb, max_slope, cell_size, cell_h; // path settings
  7. UID env_id; // environment settings
  8. TimeStamp hm_res_time, ctrl_r_time, ctrl_h_time, max_climb_time, max_slope_time, cell_size_time, cell_h_time, env_time;
  9. // get
  10. bool valid()C; // if have known information about this world
  11. bool equal(C ElmWorld&src)C;
  12. bool newer(C ElmWorld&src)C;
  13. int hmRes()C;
  14. // set
  15. ElmWorld& ctrlRadius(flt r );
  16. ElmWorld& ctrlHeight(flt h );
  17. ElmWorld& maxClimb (flt climb);
  18. ElmWorld& maxSlope (flt slope);
  19. ElmWorld& cellSize (flt size );
  20. ElmWorld& cellHeight(flt h );
  21. ElmWorld& env (C UID &id);
  22. // operations
  23. virtual void newData()override;
  24. void copyTo(Game::WorldSettings &settings, C Project &proj)C;
  25. void copyTo(PathSettings &settings)C;
  26. uint undo(C ElmWorld &src);
  27. uint sync(C ElmWorld &src);
  28. // io
  29. virtual bool save(File &f)C override;
  30. virtual bool load(File &f)override;
  31. virtual void save(MemPtr<TextNode> nodes)C override;
  32. virtual void load(C MemPtr<TextNode> &nodes)override;
  33. public:
  34. ElmWorld();
  35. };
  36. /******************************************************************************/
  37. /******************************************************************************/
  38. /******************************************************************************/