1
This commit is contained in:
parent
d71c620ff4
commit
71d32c05a2
@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 2.8)
|
||||
set(GAME_ID 2001)
|
||||
|
||||
set(CMAKE_BUILD_TYPE "Debug")
|
||||
set(CMAKE_BUILD_TYPE "Release")
|
||||
#set(CMAKE_BUILD_TYPE "Release")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -g -std=gnu++11 -DGAME_ID=${GAME_ID}")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "-Wall -g -std=gnu++11 -DGAME_ID=${GAME_ID}")
|
||||
|
||||
|
@ -70,6 +70,7 @@ public:
|
||||
std::map<int, MetaData::KillPoint*> killpoint_hash;
|
||||
std::map<int, MetaData::EquipUpgrade*> equipupgrade_hash;
|
||||
std::map<int, MetaData::Robot*> robot_hash;
|
||||
std::map<int, std::vector<MetaData::AirLine*>> airline_hash;
|
||||
|
||||
void Load()
|
||||
{
|
||||
@ -231,6 +232,14 @@ private:
|
||||
MetaData::AirLine& item = a8::FastAppend(airline_list);
|
||||
item.i = &meta;
|
||||
item.Init();
|
||||
{
|
||||
auto itr = airline_hash.find(item.i->map_id());
|
||||
if (itr != airline_hash.end()) {
|
||||
itr->second.push_back(&item);
|
||||
} else {
|
||||
airline_hash[item.i->map_id()] = std::vector<MetaData::AirLine*>({&item});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
@ -402,12 +411,14 @@ std::list<MetaData::AirDrop>& MetaMgr::GetAirDrops()
|
||||
return loader_->airdrop_list;
|
||||
}
|
||||
|
||||
MetaData::AirLine* MetaMgr::RandAirLine()
|
||||
MetaData::AirLine* MetaMgr::RandAirLine(int map_id)
|
||||
{
|
||||
if (loader_->airline_list.empty()) {
|
||||
abort();
|
||||
auto itr = loader_->airline_hash.find(map_id);
|
||||
if (itr != loader_->airline_hash.end()) {
|
||||
return !itr->second.empty() ? itr->second.at(rand() % itr->second.size()) : nullptr;
|
||||
} else {
|
||||
return nullptr;
|
||||
}
|
||||
return &loader_->airline_list[rand() % loader_->airline_list.size()];
|
||||
}
|
||||
|
||||
MetaData::Skill* MetaMgr::GetSkill(int skill_id)
|
||||
|
@ -30,7 +30,7 @@ class MetaMgr : public a8::Singleton<MetaMgr>
|
||||
MetaData::SafeArea* GetSafeArea(int area_id);
|
||||
std::vector<MetaData::MapTplThing>* GetMapTplThing(std::string& map_name);
|
||||
std::list<MetaData::AirDrop>& GetAirDrops();
|
||||
MetaData::AirLine* RandAirLine();
|
||||
MetaData::AirLine* RandAirLine(int map_id);
|
||||
MetaData::Skill* GetSkill(int skill_id);
|
||||
MetaData::Dress* GetDress(int dress_id);
|
||||
float GetRankRewardParam(int rank);
|
||||
|
@ -1312,7 +1312,10 @@ void Room::AirDrop(int appear_time, int box_id)
|
||||
|
||||
void Room::ShuaPlane()
|
||||
{
|
||||
airline_ = MetaMgr::Instance()->RandAirLine();
|
||||
airline_ = MetaMgr::Instance()->RandAirLine(map_meta->i->map_id());
|
||||
if (!airline_) {
|
||||
abort();
|
||||
}
|
||||
plane.start_point = a8::Vec2(airline_->start_point_x, airline_->start_point_y);
|
||||
plane.end_point = a8::Vec2(airline_->end_point_x, airline_->end_point_y);
|
||||
plane.dir = plane.end_point - plane.start_point;
|
||||
|
@ -152,6 +152,7 @@ message AirLine
|
||||
optional string end_point = 3;
|
||||
optional float plane_speed = 4;
|
||||
optional int32 weight = 5;
|
||||
optional int32 map_id = 6;
|
||||
}
|
||||
|
||||
message Dress
|
||||
|
Loading…
x
Reference in New Issue
Block a user