From 42b1eb217c082a5ccb326c876b72a9ac2d7334a2 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 3 Feb 2024 11:32:34 +0800 Subject: [PATCH] 1 --- server/gameserver/room.cc | 40 +++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index b79e8177..147bc28b 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -2125,9 +2125,13 @@ void Room::AddObjectLater(RoomEntity* entity) void Room::OnGameOver() { - for (auto& pair : human_hash_) { - pair.second->SendGameOver(); - } + TraverseRawHumanList + ( + [] (Human* ele_hum) -> bool + { + ele_hum->SendGameOver(); + return true; + }); int param1 = 1; xtimer.SetIntervalEx ( @@ -2147,9 +2151,13 @@ void Room::OnGameOver() #endif RoomMgr::Instance()->AddOverRoom(room_uuid_); } - for (auto& pair : human_hash_) { - pair.second->SendGameOver(); - } + TraverseRawHumanList + ( + [] (Human* ele_hum) -> bool + { + ele_hum->SendGameOver(); + return true; + }); ++param1; } }, @@ -2195,12 +2203,20 @@ void Room::RandRemoveAndroid() alive_count_chged_frameno_ = GetFrameNo(); --PerfMonitor::Instance()->alive_count; } - for (auto& pair : human_hash_) { - pair.second->RemovePartObjects(hum); - } - for (auto& pair : human_hash_) { - pair.second->RemoveObjects(hum); - } + TraverseRawHumanList + ( + [] (Human* ele_hum) -> bool + { + ele_hum->RemovePartObjects(hum); + return true; + }); + TraverseRawHumanList + ( + [] (Human* ele_hum) -> bool + { + ele_hum->RemoveObjects(hum); + return true; + }); frame_event.AddExitGame(hum->GetWeakPtrRef()); } }