From 08e64375a8197b4a66b742fe3bf883065ce485e1 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 4 Nov 2023 10:28:21 +0800 Subject: [PATCH] 1 --- server/gameserver/mapinstance.cc | 11 +++++------ server/gameserver/mapinstance.h | 8 ++++---- server/gameserver/room.cc | 2 +- server/gameserver/room.h | 4 ++-- server/gameserver/roommgr.h | 4 ++-- 5 files changed, 14 insertions(+), 15 deletions(-) diff --git a/server/gameserver/mapinstance.cc b/server/gameserver/mapinstance.cc index b221fa82..d03c020d 100644 --- a/server/gameserver/mapinstance.cc +++ b/server/gameserver/mapinstance.cc @@ -99,8 +99,8 @@ void MapInstance::Init() if (map_meta_->map_height() < 1) { A8_ABORT(); } - map_service_ = new MapService(); - grid_service_ = new GridService(); + map_service_ = std::make_shared(); + grid_service_ = std::make_shared(); grid_service_->Init(map_meta_->map_width(), map_meta_->map_height(), mt::Param::s().map_cell_width); @@ -186,7 +186,7 @@ void MapInstance::Init() fclose(fp); } } - navmesh_query_ = new dtNavMeshQuery(); + navmesh_query_ = std::make_shared(); navmesh_query_->init(navmesh_, 1024); MarkMapAreaPolys(); MarkConnectablePolys(); @@ -201,15 +201,14 @@ void MapInstance::Init() void MapInstance::UnInit() { - delete navmesh_query_; navmesh_query_ = nullptr; dtFreeNavMesh(navmesh_); navmesh_ = nullptr; map_service_->UnInit(); grid_service_->UnInit(); - A8_SAFE_DELETE(map_service_); - A8_SAFE_DELETE(grid_service_); + map_service_ = nullptr; + grid_service_ = nullptr; } void MapInstance::AttachRoom(Room* room, RoomInitInfo& init_info) diff --git a/server/gameserver/mapinstance.h b/server/gameserver/mapinstance.h index 02911a8c..8ffb3218 100644 --- a/server/gameserver/mapinstance.h +++ b/server/gameserver/mapinstance.h @@ -34,7 +34,7 @@ class MapInstance : public std::enable_shared_from_this std::vector& GetPolyExtDatas() { return poly_ext_datas_; }; dtNavMesh* GetNavMesh() { return navmesh_; }; - dtNavMeshQuery* GetNavMeshQuery() { return navmesh_query_; }; + dtNavMeshQuery* GetNavMeshQuery() { return navmesh_query_.get(); }; int FindStraightPath(const glm::vec3& start, const glm::vec3& end, std::vector& paths); @@ -71,7 +71,7 @@ class MapInstance : public std::enable_shared_from_this private: dtNavMesh* navmesh_ = nullptr; - dtNavMeshQuery* navmesh_query_ = nullptr; + std::shared_ptr navmesh_query_; float hit_normal_[3]; float hit_pos_[3]; @@ -87,6 +87,6 @@ class MapInstance : public std::enable_shared_from_this std::string map_tpl_name_; const mt::Map* map_meta_ = nullptr; - MapService* map_service_ = nullptr; - GridService* grid_service_ = nullptr; + std::shared_ptr map_service_; + std::shared_ptr grid_service_; }; diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 512df070..0da0475a 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -134,7 +134,7 @@ void Room::Init() CreateSpawnPoints(); CreateWorldObjects(); ShuaAndroid(); - incubator_ = std::make_shared(Incubator>(); + incubator_ = std::make_shared(); incubator_->room = this; incubator_->Init(); sand_table_ = std::make_shared(this); diff --git a/server/gameserver/room.h b/server/gameserver/room.h index cbd4f372..00936042 100644 --- a/server/gameserver/room.h +++ b/server/gameserver/room.h @@ -80,8 +80,8 @@ public: Plane plane; f8::Attacher timer_attacher; a8::Attacher xtimer_attacher_; - GridService* grid_service = nullptr; - MapService* map_service = nullptr; + std::shared_ptr grid_service; + std::shared_ptr map_service; std::shared_ptr map_instance; bool debug_trace = false; bool added_to_over_room = false; diff --git a/server/gameserver/roommgr.h b/server/gameserver/roommgr.h index 253bd09d..aa5b8e75 100644 --- a/server/gameserver/roommgr.h +++ b/server/gameserver/roommgr.h @@ -43,8 +43,8 @@ struct RoomInitInfo const mt::Map* map_meta = nullptr; std::string map_tpl_name; - GridService* grid_service = nullptr; - MapService* map_service = nullptr; + std::shared_ptr grid_service; + std::shared_ptr map_service; std::shared_ptr map_instance; std::vector* mini_room_spawn_points = nullptr; std::vector* normal_room_spawn_points = nullptr;