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(GAME_ID 2001)
|
||||||
|
|
||||||
set(CMAKE_BUILD_TYPE "Debug")
|
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_RELEASE "-O3 -g -std=gnu++11 -DGAME_ID=${GAME_ID}")
|
||||||
set(CMAKE_CXX_FLAGS_DEBUG "-Wall -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::KillPoint*> killpoint_hash;
|
||||||
std::map<int, MetaData::EquipUpgrade*> equipupgrade_hash;
|
std::map<int, MetaData::EquipUpgrade*> equipupgrade_hash;
|
||||||
std::map<int, MetaData::Robot*> robot_hash;
|
std::map<int, MetaData::Robot*> robot_hash;
|
||||||
|
std::map<int, std::vector<MetaData::AirLine*>> airline_hash;
|
||||||
|
|
||||||
void Load()
|
void Load()
|
||||||
{
|
{
|
||||||
@ -231,6 +232,14 @@ private:
|
|||||||
MetaData::AirLine& item = a8::FastAppend(airline_list);
|
MetaData::AirLine& item = a8::FastAppend(airline_list);
|
||||||
item.i = &meta;
|
item.i = &meta;
|
||||||
item.Init();
|
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;
|
return loader_->airdrop_list;
|
||||||
}
|
}
|
||||||
|
|
||||||
MetaData::AirLine* MetaMgr::RandAirLine()
|
MetaData::AirLine* MetaMgr::RandAirLine(int map_id)
|
||||||
{
|
{
|
||||||
if (loader_->airline_list.empty()) {
|
auto itr = loader_->airline_hash.find(map_id);
|
||||||
abort();
|
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)
|
MetaData::Skill* MetaMgr::GetSkill(int skill_id)
|
||||||
|
@ -30,7 +30,7 @@ class MetaMgr : public a8::Singleton<MetaMgr>
|
|||||||
MetaData::SafeArea* GetSafeArea(int area_id);
|
MetaData::SafeArea* GetSafeArea(int area_id);
|
||||||
std::vector<MetaData::MapTplThing>* GetMapTplThing(std::string& map_name);
|
std::vector<MetaData::MapTplThing>* GetMapTplThing(std::string& map_name);
|
||||||
std::list<MetaData::AirDrop>& GetAirDrops();
|
std::list<MetaData::AirDrop>& GetAirDrops();
|
||||||
MetaData::AirLine* RandAirLine();
|
MetaData::AirLine* RandAirLine(int map_id);
|
||||||
MetaData::Skill* GetSkill(int skill_id);
|
MetaData::Skill* GetSkill(int skill_id);
|
||||||
MetaData::Dress* GetDress(int dress_id);
|
MetaData::Dress* GetDress(int dress_id);
|
||||||
float GetRankRewardParam(int rank);
|
float GetRankRewardParam(int rank);
|
||||||
|
@ -1312,7 +1312,10 @@ void Room::AirDrop(int appear_time, int box_id)
|
|||||||
|
|
||||||
void Room::ShuaPlane()
|
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.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.end_point = a8::Vec2(airline_->end_point_x, airline_->end_point_y);
|
||||||
plane.dir = plane.end_point - plane.start_point;
|
plane.dir = plane.end_point - plane.start_point;
|
||||||
|
@ -152,6 +152,7 @@ message AirLine
|
|||||||
optional string end_point = 3;
|
optional string end_point = 3;
|
||||||
optional float plane_speed = 4;
|
optional float plane_speed = 4;
|
||||||
optional int32 weight = 5;
|
optional int32 weight = 5;
|
||||||
|
optional int32 map_id = 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
message Dress
|
message Dress
|
||||||
|
Loading…
x
Reference in New Issue
Block a user