This commit is contained in:
aozhiwei 2022-12-25 15:52:32 +08:00
parent f95d61c75f
commit 2ecdfa8682
3 changed files with 20 additions and 5 deletions

View File

@ -3,6 +3,7 @@
#include "mt/SafeAreaPos.h"
IMPL_TABLE(mt::SafeAreaPos)
std::map<int, std::vector<mt::SafeAreaPos*>> mt::SafeAreaPos::area_hash_;
namespace mt
{
@ -36,4 +37,16 @@ namespace mt
}
const SafeAreaPos* SafeAreaPos::RandSafeAreaPos(int area_id)
{
auto pos_list = GetSafeAreaPosList(area_id);
return pos_list && !pos_list->empty() ? pos_list->at(rand() % pos_list->size()) : nullptr;
}
std::vector<mt::SafeAreaPos*>* SafeAreaPos::GetSafeAreaPosList(int area_id)
{
auto itr = area_hash_.find(area_id);
return itr != area_hash_.end() ? &itr->second : nullptr;
}
}

View File

@ -15,6 +15,12 @@ namespace mt
void Init2();
std::vector<a8::Vec2> _poses;
static const SafeAreaPos* RandSafeAreaPos(int area_id);
static std::vector<mt::SafeAreaPos*>* GetSafeAreaPosList(int area_id);
private:
static std::map<int, std::vector<mt::SafeAreaPos*>> area_hash_;
};
}

View File

@ -1446,11 +1446,7 @@ void Room::UpdateGasJump()
gas_data_.SetGasMode(GasWaiting);
gas_data_.old_area_meta = first_safearea;
gas_data_.new_area_meta = mt::SafeArea::GetById(first_safearea->id() + 1);
// 999
#if 1
#else
gas_data_.pos_list = MetaMgr::Instance()->RandSafeAreaPos(first_safearea->id());
#endif
gas_data_.pos_list = mt::SafeAreaPos::RandSafeAreaPos(first_safearea->id());
gas_data_.gas_progress = gas_data_.old_area_meta->rad();
gas_data_.gas_start_frameno = GetFrameNo();
#if 1