From 857b27d76c84089e048e51771c3a21a6e0e3f178 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 29 Jan 2024 14:34:20 +0800 Subject: [PATCH] 1 --- server/gameserver/room.cc | 10 ++++++++++ server/gameserver/room.h | 4 ++++ server/gameserver/roomob.cc | 24 ++++++++++++++++++++++++ server/gameserver/roomob.h | 16 ++++++++++++++++ 4 files changed, 54 insertions(+) create mode 100644 server/gameserver/roomob.cc create mode 100644 server/gameserver/roomob.h diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 662eb059..c5164ab2 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -47,6 +47,7 @@ #include "custom_team.h" #include "custom_member.h" #include "room_agent.h" +#include "roomob.h" #include "mt/Param.h" #include "mt/Hero.h" @@ -165,6 +166,8 @@ void Room::Init() }, &xtimer_attacher_); } + ob_ = std::make_shared(this); + ob_->Init(); } void Room::UnInit() @@ -198,6 +201,8 @@ void Room::UnInit() team_hash_.clear(); frame_event_data = nullptr; PerfMonitor::Instance()->alive_count -= alive_count_; + ob_->UnInit(); + ob_ = nullptr; } void Room::Update(int delta_time) @@ -3702,3 +3707,8 @@ Team* Room::GetMobaEnemyTeam(Team* self_team) return GetMobaTeamA(); } } + +std::shared_ptr Room::GetRoomOb() +{ + return ob_; +} diff --git a/server/gameserver/room.h b/server/gameserver/room.h index 11b3c426..849095ea 100644 --- a/server/gameserver/room.h +++ b/server/gameserver/room.h @@ -44,6 +44,7 @@ class BatchSync; class CustomBattle; class MobaBattle; class RoomAgent; +class RoomOb; struct Plane { @@ -287,6 +288,7 @@ public: std::shared_ptr p); void CreateAndroid(int android_num, std::shared_ptr team = nullptr); int GetFullLevelIdx() { return ++curr_full_level_idx_;} + std::shared_ptr GetRoomOb(); private: void ShuaAndroid(); @@ -439,6 +441,8 @@ private: Team* moba_team_a_ = nullptr; Team* moba_team_b_ = nullptr; + std::shared_ptr ob_; + RoomAgent* room_agent_; friend class Incubator; diff --git a/server/gameserver/roomob.cc b/server/gameserver/roomob.cc new file mode 100644 index 00000000..f4a521fd --- /dev/null +++ b/server/gameserver/roomob.cc @@ -0,0 +1,24 @@ +#include "precompile.h" + +#include "roomob.h" +#include "room.h" + +RoomOb::RoomOb(Room* room) +{ + room_ = room; +} + +RoomOb::~RoomOb() +{ + +} + +void RoomOb::Init() +{ + +} + +void RoomOb::UnInit() +{ + +} diff --git a/server/gameserver/roomob.h b/server/gameserver/roomob.h new file mode 100644 index 00000000..ce0c1fd6 --- /dev/null +++ b/server/gameserver/roomob.h @@ -0,0 +1,16 @@ +#pragma once + +class Room; + +class RoomOb : public std::enable_shared_from_this +{ + public: + + RoomOb(Room* room); + ~RoomOb(); + void Init(); + void UnInit(); + +private: + Room* room_ = nullptr; +};