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