@AreaBuild.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /******************************************************************************/
  2. class AreaBuild
  3. {
  4. class PhysObj
  5. {
  6. OBJ_PATH path;
  7. PhysBodyPtr phys;
  8. Matrix matrix;
  9. void set(C Obj &src); // this is called on main thread
  10. void set(C Object &src); // this is called on secondary thread
  11. void set(C ObjData &src, Memt<ObjectPtr> &obj_cache); // this is called on secondary thread
  12. public:
  13. PhysObj();
  14. };
  15. VecI2 xy;
  16. uint build, // AREA_REBUILD_FLAG
  17. load; // AREA_LOAD_FLAG
  18. Heightmap hm;
  19. Image hm_height_map,
  20. hm_mtrl_map;
  21. Memc<UID> hm_mtrls;
  22. Mesh hm_mesh;
  23. PhysPart hm_phys;
  24. MeshGroup obj_mesh;
  25. PhysBody obj_phys;
  26. Memc<WaterMesh> waters;
  27. MeshBase path_src;
  28. PathMesh path;
  29. Memc<PhysObj> objs;
  30. AreaVer ver;
  31. Str edit_path, game_path;
  32. AreaBuild *l, *r, *b, *f, *lb, *lf, *rb, *rf;
  33. WorldVer *world_ver;
  34. static bool Create(AreaBuild &area, C VecI2 &xy, ptr world_ver_ptr);
  35. static void SetPathType(MeshBase &mesh, PATH_MESH_TYPE path_mode);
  36. static void SetDefaultPathType(Memt<MeshBase> &meshes);
  37. void process(BuilderClass &builder);
  38. void processPath(BuilderClass &builder);
  39. public:
  40. AreaBuild();
  41. };
  42. /******************************************************************************/
  43. /******************************************************************************/
  44. /******************************************************************************/