diff --git a/server/gameserver/mtb/Map.h b/server/gameserver/mtb/Map.h index bcd0a917..aee033fd 100644 --- a/server/gameserver/mtb/Map.h +++ b/server/gameserver/mtb/Map.h @@ -30,6 +30,7 @@ namespace mtb float scale() const { return scale_; }; const std::string map_collider() const { return map_collider_; }; const std::string world_object_file() const { return world_object_file_; }; + const std::string terrain_file() const { return terrain_file_; }; bool has_map_id() const { return __flags__.test(0);}; bool has_template_list() const { return __flags__.test(1);}; @@ -51,6 +52,7 @@ namespace mtb bool has_scale() const { return __flags__.test(17);}; bool has_map_collider() const { return __flags__.test(18);}; bool has_world_object_file() const { return __flags__.test(19);}; + bool has_terrain_file() const { return __flags__.test(20);}; protected: @@ -74,9 +76,10 @@ namespace mtb float scale_ = 0.0f; std::string map_collider_; std::string world_object_file_; + std::string terrain_file_; public: - std::bitset<20> __flags__; + std::bitset<21> __flags__; }; }; diff --git a/server/gameserver/mtb/mtb.all.cc b/server/gameserver/mtb/mtb.all.cc index 1cdc3600..5eacb044 100644 --- a/server/gameserver/mtb/mtb.all.cc +++ b/server/gameserver/mtb/mtb.all.cc @@ -67,7 +67,7 @@ namespace mtb { a8::reflect::Class* meta_class = nullptr; if (!meta_class) { - meta_class = new a8::reflect::Class("Map", 20, 0); + meta_class = new a8::reflect::Class("Map", 21, 0); meta_class->SetSimpleField(0, "map_id", a8::reflect::ET_INT32, my_offsetof2(Map, map_id_)); meta_class->SetSimpleField(1, "template_list", a8::reflect::ET_STRING, my_offsetof2(Map, template_list_)); meta_class->SetSimpleField(2, "map_name", a8::reflect::ET_STRING, my_offsetof2(Map, map_name_)); @@ -88,6 +88,7 @@ namespace mtb meta_class->SetSimpleField(17, "scale", a8::reflect::ET_FLOAT, my_offsetof2(Map, scale_)); meta_class->SetSimpleField(18, "map_collider", a8::reflect::ET_STRING, my_offsetof2(Map, map_collider_)); meta_class->SetSimpleField(19, "world_object_file", a8::reflect::ET_STRING, my_offsetof2(Map, world_object_file_)); + meta_class->SetSimpleField(20, "terrain_file", a8::reflect::ET_STRING, my_offsetof2(Map, terrain_file_)); } return meta_class; } diff --git a/server/tools/protobuild/mt.proto b/server/tools/protobuild/mt.proto index 45894357..2e7064e7 100755 --- a/server/tools/protobuild/mt.proto +++ b/server/tools/protobuild/mt.proto @@ -35,6 +35,7 @@ message Map optional float scale = 18; optional string map_collider = 19; optional string world_object_file = 20; + optional string terrain_file = 21; } message MapArea diff --git a/server/tools/protobuild/navmesh.proto b/server/tools/protobuild/navmesh.proto index c3950633..1dcfdb54 100644 --- a/server/tools/protobuild/navmesh.proto +++ b/server/tools/protobuild/navmesh.proto @@ -16,4 +16,14 @@ message HeightData{ message HeightInfo{ optional int32 t = 1; required int32 h = 2; -} \ No newline at end of file +} + +message vector3{ + required float x = 1; + required float y = 2; + required float z = 3; +} +message vertex{ + repeated vector3 vectors = 1; + repeated int32 triangles = 2; +}