1
This commit is contained in:
parent
2ce7ddc3dd
commit
bca5b880cd
@ -34,13 +34,14 @@ void MapMgr::Init()
|
||||
MAP_GRID_WIDTH);
|
||||
CreateThings();
|
||||
a8::UdpLog::Instance()->Info
|
||||
("current_uniid:%d loots:%d spawn_points:%d "
|
||||
("current_uniid:%d loots:%d mini_room_spawn_points:%d normal_room_spawn_points:%d "
|
||||
"building_num:%d obstalce_num:%d obstacle0_num:%d "
|
||||
"obstacle1_num:%d obstacle2_num:%d",
|
||||
{
|
||||
current_uniid_,
|
||||
loots_.size(),
|
||||
spawn_points_.size(),
|
||||
mini_room_spawn_points_.size(),
|
||||
normal_room_spawn_points_.size(),
|
||||
building_num_,
|
||||
obstacle_num_,
|
||||
obstacle0_num_,
|
||||
@ -66,7 +67,8 @@ void MapMgr::AttachRoom(Room* room, RoomInitInfo& init_info)
|
||||
init_info.map_meta = map_meta_;
|
||||
init_info.grid_service = grid_service_;
|
||||
init_info.map_service = map_service_;
|
||||
init_info.spawn_points = &spawn_points_;
|
||||
init_info.mini_room_spawn_points = &mini_room_spawn_points_;
|
||||
init_info.normal_room_spawn_points = &normal_room_spawn_points_;
|
||||
init_info.level0room_born_point_meta = level0room_born_point_;
|
||||
init_info.level1room_born_point_meta = level1room_born_point_;
|
||||
init_info.loots = &loots_;
|
||||
@ -99,11 +101,23 @@ void MapMgr::CreateThings()
|
||||
break;
|
||||
case kMOT_SpawnPoint:
|
||||
{
|
||||
std::string point_name = thing_tpl.i->name();
|
||||
//pointxxx
|
||||
if (point_name.size() < 6) {
|
||||
abort();
|
||||
}
|
||||
std::string name_part = point_name.substr(0, 5);
|
||||
std::string id_part = point_name.substr(5, point_name.size() - 5);
|
||||
int point_id = a8::XValue(id_part);
|
||||
if (spawn_points_hash.find(thing_tpl.i->name()) !=
|
||||
spawn_points_hash.end()) {
|
||||
abort();
|
||||
}
|
||||
spawn_points_.push_back(&thing_tpl);
|
||||
if (point_id <= 100) {
|
||||
normal_room_spawn_points_.push_back(&thing_tpl);
|
||||
} else {
|
||||
mini_room_spawn_points_.push_back(&thing_tpl);
|
||||
}
|
||||
spawn_points_hash[thing_tpl.i->name()] = &thing_tpl;
|
||||
}
|
||||
break;
|
||||
@ -116,10 +130,12 @@ void MapMgr::CreateThings()
|
||||
if (spawn_points_hash.find(MetaMgr::Instance()->newbie_born_point) !=
|
||||
spawn_points_hash.end()) {
|
||||
level0room_born_point_ = spawn_points_hash[MetaMgr::Instance()->newbie_born_point];
|
||||
mini_room_spawn_points_.push_back(level0room_born_point_);
|
||||
}
|
||||
if (spawn_points_hash.find(MetaMgr::Instance()->level1room_born_point) !=
|
||||
spawn_points_hash.end()) {
|
||||
level1room_born_point_ = spawn_points_hash[MetaMgr::Instance()->level1room_born_point];
|
||||
mini_room_spawn_points_.push_back(level1room_born_point_);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -41,7 +41,8 @@ class MapMgr : public a8::Singleton<MapMgr>
|
||||
MetaData::Map* map_meta_ = nullptr;
|
||||
MapService* map_service_ = nullptr;
|
||||
GridService* grid_service_ = nullptr;
|
||||
std::vector<MetaData::MapTplThing*> spawn_points_;
|
||||
std::vector<MetaData::MapTplThing*> mini_room_spawn_points_;
|
||||
std::vector<MetaData::MapTplThing*> normal_room_spawn_points_;
|
||||
MetaData::MapTplThing* level0room_born_point_ = nullptr;
|
||||
MetaData::MapTplThing* level1room_born_point_ = nullptr;
|
||||
std::vector<MetaData::MapTplThing*> loots_;
|
||||
|
@ -52,7 +52,8 @@ void Room::InitData(RoomInitInfo& init_info)
|
||||
grid_service = init_info.grid_service;
|
||||
map_service = init_info.map_service;
|
||||
map_meta_ = init_info.map_meta;
|
||||
spawn_points_ = init_info.spawn_points;
|
||||
mini_room_spawn_points_ = init_info.mini_room_spawn_points;
|
||||
normal_room_spawn_points_ = init_info.normal_room_spawn_points;
|
||||
level0room_born_point_meta_ = init_info.level0room_born_point_meta;
|
||||
level1room_born_point_meta_ = init_info.level1room_born_point_meta;
|
||||
loots_ = init_info.loots;
|
||||
@ -889,7 +890,6 @@ void Room::UpdateGasInactive()
|
||||
gas_data_.old_area_meta = MetaMgr::Instance()->GetSafeArea(30001);
|
||||
gas_data_.new_area_meta = MetaMgr::Instance()->GetSafeArea(30002);
|
||||
}
|
||||
|
||||
gas_data_.gas_progress = gas_data_.old_area_meta->i->rad();
|
||||
gas_data_.gas_start_frameno = GetFrameNo();
|
||||
gas_data_.pos_old = a8::Vec2(map_meta_->i->map_width() / 2.0f,
|
||||
@ -1552,10 +1552,16 @@ BornPoint* Room::GetBornPoint(int point_uniid)
|
||||
|
||||
void Room::CreateSpawnPoints()
|
||||
{
|
||||
if (!spawn_points_ || spawn_points_->empty()) {
|
||||
const std::vector<MetaData::MapTplThing*>* spawn_points = nullptr;
|
||||
if (IsMiniRoom()) {
|
||||
spawn_points = mini_room_spawn_points_;
|
||||
} else {
|
||||
spawn_points = normal_room_spawn_points_;
|
||||
}
|
||||
if (!spawn_points || spawn_points->empty()) {
|
||||
abort();
|
||||
}
|
||||
for (auto& thing_tpl : *spawn_points_) {
|
||||
for (auto& thing_tpl : *spawn_points) {
|
||||
int uniid = AllocUniid();
|
||||
BornPoint born_point;
|
||||
born_point.thing_tpl = thing_tpl;
|
||||
|
@ -210,7 +210,8 @@ private:
|
||||
const MetaData::Map* map_meta_ = nullptr;
|
||||
std::string map_tpl_name_;
|
||||
RoomType_e room_type_ = RT_NewBrid;
|
||||
const std::vector<MetaData::MapTplThing*>* spawn_points_ = nullptr;
|
||||
const std::vector<MetaData::MapTplThing*>* mini_room_spawn_points_ = nullptr;
|
||||
const std::vector<MetaData::MapTplThing*>* normal_room_spawn_points_ = nullptr;
|
||||
const MetaData::MapTplThing* level0room_born_point_meta_ = nullptr;
|
||||
const MetaData::MapTplThing* level1room_born_point_meta_ = nullptr;
|
||||
const std::vector<MetaData::MapTplThing*>* loots_ = nullptr;
|
||||
|
@ -158,7 +158,8 @@ struct RoomInitInfo
|
||||
std::string map_tpl_name;
|
||||
GridService* grid_service = nullptr;
|
||||
MapService* map_service = nullptr;
|
||||
const std::vector<MetaData::MapTplThing*>* spawn_points = nullptr;
|
||||
const std::vector<MetaData::MapTplThing*>* mini_room_spawn_points = nullptr;
|
||||
const std::vector<MetaData::MapTplThing*>* normal_room_spawn_points = nullptr;
|
||||
const MetaData::MapTplThing* level0room_born_point_meta = nullptr;
|
||||
const MetaData::MapTplThing* level1room_born_point_meta = nullptr;
|
||||
const std::vector<MetaData::MapTplThing*>* loots = nullptr;
|
||||
|
Loading…
x
Reference in New Issue
Block a user