From acb4e585e664ef32f28688a72a2e38f64b93d334 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 26 Dec 2022 10:35:40 +0800 Subject: [PATCH] git push --- server/gameserver/mt/PveGeminiContent.cc | 14 ++++++++++++-- server/gameserver/mt/PveGeminiContent.h | 6 +++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/server/gameserver/mt/PveGeminiContent.cc b/server/gameserver/mt/PveGeminiContent.cc index 940ab175..b112257d 100644 --- a/server/gameserver/mt/PveGeminiContent.cc +++ b/server/gameserver/mt/PveGeminiContent.cc @@ -3,6 +3,7 @@ #include "mt/PveGeminiContent.h" IMPL_TABLE(mt::PveGeminiContent) +std::map> mt::PveGeminiContent::mode_hash_; namespace mt { @@ -14,11 +15,20 @@ namespace mt for (auto& str : strings) { _enemys.push_back(a8::XValue(str)); } + { + auto itr = mode_hash_.find(mode_id()); + if (itr != mode_hash_.end()) { + itr->second.push_back(this); + } else { + mode_hash_[mode_id()] = std::vector({this}); + } + } } - std::vector* PveGeminiContent::GetContentsByMode(int mode) + const std::vector* PveGeminiContent::GetContentsByMode(int mode) { - return nullptr; + auto itr = mode_hash_.find(mode); + return itr != mode_hash_.end() ? &itr->second : nullptr; } } diff --git a/server/gameserver/mt/PveGeminiContent.h b/server/gameserver/mt/PveGeminiContent.h index 6d21556d..07733e97 100644 --- a/server/gameserver/mt/PveGeminiContent.h +++ b/server/gameserver/mt/PveGeminiContent.h @@ -15,7 +15,11 @@ namespace mt std::vector _enemys; void Init1(); - static std::vector* GetContentsByMode(int mode); + static const std::vector* GetContentsByMode(int mode); + + private: + static std::map> mode_hash_; + }; }