添加出生点读取
This commit is contained in:
parent
ce5dcf7ea7
commit
a86fbc8990
@ -199,3 +199,5 @@ const int MAX_INSTANCE_ID = 500;
|
|||||||
const int MAX_TEAM_NUM = 4;
|
const int MAX_TEAM_NUM = 4;
|
||||||
|
|
||||||
const int WEAPON_SLOT = 0;
|
const int WEAPON_SLOT = 0;
|
||||||
|
|
||||||
|
const int ROOM_MAX_PLAYER_NUM = 8;
|
||||||
|
@ -56,6 +56,7 @@ public:
|
|||||||
std::map<int, MetaData::Drop*> drop_hash;
|
std::map<int, MetaData::Drop*> drop_hash;
|
||||||
std::map<std::string, std::list<metatable::MapTplThingJson>> maptpl_meta_hash;
|
std::map<std::string, std::list<metatable::MapTplThingJson>> maptpl_meta_hash;
|
||||||
std::map<std::string, std::vector<MetaData::MapTplThing>> maptpl_hash;
|
std::map<std::string, std::vector<MetaData::MapTplThing>> maptpl_hash;
|
||||||
|
std::map<std::string, std::vector<MetaData::MapTplThing>> born_point_hash;
|
||||||
std::map<int, MetaData::Dress*> dress_hash;
|
std::map<int, MetaData::Dress*> dress_hash;
|
||||||
std::map<int, MetaData::Tank*> tank_hash;
|
std::map<int, MetaData::Tank*> tank_hash;
|
||||||
std::map<int, MetaData::Skill*> skill_hash;
|
std::map<int, MetaData::Skill*> skill_hash;
|
||||||
@ -145,12 +146,23 @@ private:
|
|||||||
}
|
}
|
||||||
for (auto& pair : maptpl_meta_hash) {
|
for (auto& pair : maptpl_meta_hash) {
|
||||||
std::vector<MetaData::MapTplThing> things;
|
std::vector<MetaData::MapTplThing> things;
|
||||||
|
std::vector<MetaData::MapTplThing> born_point;
|
||||||
for (auto& itr : pair.second) {
|
for (auto& itr : pair.second) {
|
||||||
auto& thing = a8::FastAppend(things);
|
if (itr.is_born_point()) {
|
||||||
thing.i = &itr;
|
auto& thing = a8::FastAppend(born_point);
|
||||||
thing.Init();
|
thing.i = &itr;
|
||||||
|
thing.Init();
|
||||||
|
} else {
|
||||||
|
auto& thing = a8::FastAppend(things);
|
||||||
|
thing.i = &itr;
|
||||||
|
thing.Init();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
maptpl_hash[pair.first] = things;
|
maptpl_hash[pair.first] = things;
|
||||||
|
born_point_hash[pair.first] = born_point;
|
||||||
|
if (born_point.size() != ROOM_MAX_PLAYER_NUM) {
|
||||||
|
abort();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -357,12 +369,18 @@ MetaData::SafeArea* MetaMgr::GetSafeArea(int area_id)
|
|||||||
return itr != loader_->safearea_hash.end() ? itr->second : nullptr;
|
return itr != loader_->safearea_hash.end() ? itr->second : nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<MetaData::MapTplThing>* MetaMgr::GetMapTplThing(std::string& map_name)
|
std::vector<MetaData::MapTplThing>* MetaMgr::GetMapTplThing(const std::string& map_name)
|
||||||
{
|
{
|
||||||
auto itr = loader_->maptpl_hash.find(map_name);
|
auto itr = loader_->maptpl_hash.find(map_name);
|
||||||
return itr != loader_->maptpl_hash.end() ? &itr->second : nullptr;
|
return itr != loader_->maptpl_hash.end() ? &itr->second : nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<MetaData::MapTplThing>* MetaMgr::GetMapBornPoints(const std::string& map_name)
|
||||||
|
{
|
||||||
|
auto itr = loader_->born_point_hash.find(map_name);
|
||||||
|
return itr != loader_->born_point_hash.end() ? &itr->second : nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
MetaData::Skill* MetaMgr::GetSkill(int skill_id)
|
MetaData::Skill* MetaMgr::GetSkill(int skill_id)
|
||||||
{
|
{
|
||||||
auto itr = loader_->skill_hash.find(skill_id);
|
auto itr = loader_->skill_hash.find(skill_id);
|
||||||
|
@ -28,7 +28,8 @@ class MetaMgr : public a8::Singleton<MetaMgr>
|
|||||||
MetaData::Building* GetBuilding(int building_id);
|
MetaData::Building* GetBuilding(int building_id);
|
||||||
MetaData::Drop* GetDrop(int drop_id);
|
MetaData::Drop* GetDrop(int drop_id);
|
||||||
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(const std::string& map_name);
|
||||||
|
std::vector<MetaData::MapTplThing>* GetMapBornPoints(const std::string& map_name);
|
||||||
MetaData::Skill* GetSkill(int skill_id);
|
MetaData::Skill* GetSkill(int skill_id);
|
||||||
MetaData::Dress* GetDress(int dress_id);
|
MetaData::Dress* GetDress(int dress_id);
|
||||||
MetaData::Tank* GetTank(int tank_id);
|
MetaData::Tank* GetTank(int tank_id);
|
||||||
|
@ -23,8 +23,6 @@
|
|||||||
#include "hero.h"
|
#include "hero.h"
|
||||||
#include "gamelog.h"
|
#include "gamelog.h"
|
||||||
|
|
||||||
const int ROOM_MAX_PLAYER_NUM = 8;
|
|
||||||
|
|
||||||
static long long RoomXGetTickCount(void* context)
|
static long long RoomXGetTickCount(void* context)
|
||||||
{
|
{
|
||||||
Room* room = (Room*)context;
|
Room* room = (Room*)context;
|
||||||
@ -38,6 +36,10 @@ Room::~Room()
|
|||||||
|
|
||||||
void Room::Init()
|
void Room::Init()
|
||||||
{
|
{
|
||||||
|
born_points_ = MetaMgr::Instance()->GetMapBornPoints(map_tpl_name);
|
||||||
|
if (!born_points_ || born_points_->size() != ROOM_MAX_PLAYER_NUM) {
|
||||||
|
abort();
|
||||||
|
}
|
||||||
xtimer.Init(RoomXGetTickCount, this, 100, 100);
|
xtimer.Init(RoomXGetTickCount, this, 100, 100);
|
||||||
xtimer_attacher.xtimer = &xtimer;
|
xtimer_attacher.xtimer = &xtimer;
|
||||||
grid_service.Init(MAP_WIDTH, MAP_HEIGHT, MAP_CELL_WIDTH * 8);
|
grid_service.Init(MAP_WIDTH, MAP_HEIGHT, MAP_CELL_WIDTH * 8);
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
#include "framemaker.h"
|
#include "framemaker.h"
|
||||||
#include "gridservice.h"
|
#include "gridservice.h"
|
||||||
#include "mapservice.h"
|
#include "mapservice.h"
|
||||||
|
#include "metadata.h"
|
||||||
|
|
||||||
namespace MetaData
|
namespace MetaData
|
||||||
{
|
{
|
||||||
@ -116,6 +117,7 @@ private:
|
|||||||
int current_teamid = 0;
|
int current_teamid = 0;
|
||||||
int current_uniid = 0;
|
int current_uniid = 0;
|
||||||
|
|
||||||
|
std::vector<MetaData::MapTplThing>* born_points_ = nullptr;
|
||||||
xtimer_list* battle_report_timer_ = nullptr;
|
xtimer_list* battle_report_timer_ = nullptr;
|
||||||
|
|
||||||
std::set<int> refreshed_robot_set_;
|
std::set<int> refreshed_robot_set_;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user