From 54a3bf530c02c265afa4b95003f47f52131dd60f Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 7 Feb 2023 12:09:24 +0800 Subject: [PATCH] 1 --- server/gameserver/mapcollider.cc | 6 ++++++ server/gameserver/mapcollider.h | 12 ++++++++++++ 2 files changed, 18 insertions(+) diff --git a/server/gameserver/mapcollider.cc b/server/gameserver/mapcollider.cc index 0d8380e6..62fe44b7 100644 --- a/server/gameserver/mapcollider.cc +++ b/server/gameserver/mapcollider.cc @@ -35,6 +35,10 @@ namespace mc void Collider::Read(std::shared_ptr xobj) { + ca_type = xobj->At("ca_type")->AsXValue(); + if (ca_type < kCA_Floor || ca_type > kCA_Other) { + abort(); + } enabled = xobj->At("enabled")->AsXValue(); is_trigger = xobj->At("is_trigger")->AsXValue(); Bounds_Read(bounds, xobj->At("bounds")); @@ -79,6 +83,7 @@ namespace mc case kBoxCollider: { Collider* c = new BoxCollider(); + c->type = kBoxCollider; c->Read(collider_union_xobj->At("box")); colliders.push_back(c); } @@ -86,6 +91,7 @@ namespace mc case kMeshCollider: { Collider* c = new MeshCollider(); + c->type = kMeshCollider; c->Read(collider_union_xobj->At("mesh")); colliders.push_back(c); } diff --git a/server/gameserver/mapcollider.h b/server/gameserver/mapcollider.h index 31f4ed0a..77a68b20 100644 --- a/server/gameserver/mapcollider.h +++ b/server/gameserver/mapcollider.h @@ -13,6 +13,17 @@ namespace mc kMeshCollider = 2 }; + enum ColliderAssembly_e + { + kCA_Floor = 0,//地板 + kCA_Wall = 1,//墙壁 + kCA_Roof = 2,//屋顶 + kCA_FloororRoof = 3,//屋顶+上层地板 + kCA_stairs = 4,//楼梯 + kCA_Window = 9,//窗,主要为了射击穿透 + kCA_Other = 10,//其他,装饰品 + }; + struct Bounds { glm::vec3 center = glm::vec3(0.0f, 0.0f, 0.0f); @@ -37,6 +48,7 @@ namespace mc struct Collider { int type = kNoneCollider; + int ca_type = 0; bool enabled = false; bool is_trigger = false; Bounds bounds;