game: replace VariantMapVector with Vector of VariantMap

This commit is contained in:
Crypto City 2020-11-24 03:19:49 +00:00
parent 4cc456225e
commit 00f71f75c7
3 changed files with 30 additions and 30 deletions

2
external/urho3d vendored

@ -1 +1 @@
Subproject commit e6fa3047137d555b1e6b77d74d006a68609b4333
Subproject commit 237ff68344fab68ce3a833ce2ae4707cf27e7ed8

View File

@ -6355,7 +6355,7 @@ void CryptoCityUrho3D::HandleGetGameUpdateEvents(StringHash eventType, VariantMa
}
}
static VariantMap make_item_balance_variant(const std::pair<uint32_t, uint32_t> &e)
static Variant make_item_balance_variant(const std::pair<uint32_t, uint32_t> &e)
{
VariantMap v;
v["type"] = e.first;
@ -6363,14 +6363,14 @@ static VariantMap make_item_balance_variant(const std::pair<uint32_t, uint32_t>
return v;
}
static VariantMap make_flag_variant(const uint32_t id)
static Variant make_flag_variant(const uint32_t id)
{
VariantMap v;
v["id"] = id;
return v;
}
static VariantMap make_badge_variant(const std::pair<uint32_t, std::pair<uint8_t, uint64_t>> &e)
static Variant make_badge_variant(const std::pair<uint32_t, std::pair<uint8_t, uint64_t>> &e)
{
VariantMap v;
v["id"] = e.first;
@ -6379,7 +6379,7 @@ static VariantMap make_badge_variant(const std::pair<uint32_t, std::pair<uint8_t
return v;
}
static VariantMap make_attribute_variant(const std::pair<uint32_t, uint32_t> &e)
static Variant make_attribute_variant(const std::pair<uint32_t, uint32_t> &e)
{
VariantMap v;
v["id"] = e.first;
@ -6387,12 +6387,12 @@ static VariantMap make_attribute_variant(const std::pair<uint32_t, uint32_t> &e)
return v;
}
static VariantMap make_reserve_variant(const std::pair<uint32_t, std::pair<uint64_t, std::map<uint32_t, uint32_t>>> &e)
static Variant make_reserve_variant(const std::pair<uint32_t, std::pair<uint64_t, std::map<uint32_t, uint32_t>>> &e)
{
VariantMap v;
v["counterparty"] = e.first;
v["balance"] = (unsigned long long)e.second.first;
VariantMapVector items;
VariantVector items;
for (const auto &i: e.second.second)
{
VariantMap v2;
@ -6438,15 +6438,15 @@ void CryptoCityUrho3D::HandleRequestPlayerData(StringHash eventType, VariantMap&
eventData[RequestPlayerData::P_NAME] = gameState.get_player_name(id).c_str();
eventData[RequestPlayerData::P_DESCRIPTION] = description.c_str();
eventData[RequestPlayerData::P_BALANCE] = (unsigned long long)balance;
Vector<VariantMap> ItemBalances; for (const auto &e: item_balances) ItemBalances.Push(make_item_balance_variant(e));
VariantVector ItemBalances; for (const auto &e: item_balances) ItemBalances.Push(make_item_balance_variant(e));
eventData[RequestPlayerData::P_ITEM_BALANCES] = ItemBalances;
Vector<VariantMap> Flags; for (uint32_t id: flags) Flags.Push(make_flag_variant(id));
VariantVector Flags; for (uint32_t id: flags) Flags.Push(make_flag_variant(id));
eventData[RequestPlayerData::P_FLAGS] = Flags;
Vector<VariantMap> Badges; for (const auto &e: badges) Badges.Push(make_badge_variant(e));
VariantVector Badges; for (const auto &e: badges) Badges.Push(make_badge_variant(e));
eventData[RequestPlayerData::P_BADGES] = Badges;
Vector<VariantMap> Attributes; for (const auto &e: attributes) Attributes.Push(make_attribute_variant(e));
VariantVector Attributes; for (const auto &e: attributes) Attributes.Push(make_attribute_variant(e));
eventData[RequestPlayerData::P_ATTRIBUTES] = Attributes;
Vector<VariantMap> Reserve; for (const auto &e: reserve) Reserve.Push(make_reserve_variant(e));
VariantVector Reserve; for (const auto &e: reserve) Reserve.Push(make_reserve_variant(e));
eventData[RequestPlayerData::P_RESERVE] = Reserve;
}
}

View File

@ -973,24 +973,24 @@ void UIPlayerInfoDialog::FillData(const std::shared_ptr<GameWallet> &w, uint32_t
String name = eventData[RequestPlayerData::P_NAME].GetString();
String description = eventData[RequestPlayerData::P_DESCRIPTION].GetString();
uint64_t balance = eventData[RequestPlayerData::P_BALANCE].GetUInt64();
Vector<VariantMap> item_balances = eventData[RequestPlayerData::P_ITEM_BALANCES].GetVariantMapVector();
Vector<VariantMap> flags = eventData[RequestPlayerData::P_FLAGS].GetVariantMapVector();
Vector<VariantMap> badges = eventData[RequestPlayerData::P_BADGES].GetVariantMapVector();
Vector<VariantMap> attributes = eventData[RequestPlayerData::P_ATTRIBUTES].GetVariantMapVector();
Vector<VariantMap> reserve = eventData[RequestPlayerData::P_RESERVE].GetVariantMapVector();
VariantVector item_balances = eventData[RequestPlayerData::P_ITEM_BALANCES].GetVariantVector();
VariantVector flags = eventData[RequestPlayerData::P_FLAGS].GetVariantVector();
VariantVector badges = eventData[RequestPlayerData::P_BADGES].GetVariantVector();
VariantVector attributes = eventData[RequestPlayerData::P_ATTRIBUTES].GetVariantVector();
VariantVector reserve = eventData[RequestPlayerData::P_RESERVE].GetVariantVector();
player_name = name.CString();
public_key = eventData[RequestPlayerData::P_PUBLIC_KEY].GetString().CString();
uint64_t reserved_balance = 0;
for (const auto &e: reserve)
{
reserved_balance += e["balance"]->GetUInt64();
reserved_balance += e.GetVariantMap()["balance"]->GetUInt64();
}
std::vector<uint32_t> badge_count(NUM_BADGE_LEVELS, 0);
for (const auto &e: badges)
{
const uint8_t level = e["level"]->GetUInt();
const uint8_t level = e.GetVariantMap()["level"]->GetUInt();
if (level > 0 && level <= NUM_BADGE_LEVELS)
badge_count[level - 1] += 1;
}
@ -1012,7 +1012,7 @@ void UIPlayerInfoDialog::FillData(const std::shared_ptr<GameWallet> &w, uint32_t
CachingSourceBuilder<FlagItem> builder(flag_source);
for (const auto &e: flags)
{
const uint32_t flag_id = e["id"]->GetUInt();
const uint32_t flag_id = e.GetVariantMap()["id"]->GetUInt();
const std::shared_ptr<Flag> flag = game->map.get_flag(flag_id);
if (flag)
builder.AddItem(new FlagItem(flag, game, get_flag_data(game, w, flag), flag->active, false));
@ -1027,17 +1027,17 @@ void UIPlayerInfoDialog::FillData(const std::shared_ptr<GameWallet> &w, uint32_t
for (const auto &e: item_balances)
{
char s[512];
const uint32_t type = e["type"]->GetUInt();
const uint32_t amount = e["amount"]->GetUInt();
const uint32_t type = e.GetVariantMap()["type"]->GetUInt();
const uint32_t amount = e.GetVariantMap()["amount"]->GetUInt();
snprintf(s, sizeof(s), "%u %s", amount, game->get_item_name(type).c_str());
uint32_t reserved_amount = 0;
for (const auto &f: reserve)
{
const auto &items = f["items"]->GetVariantMapVector();
const auto &items = f.GetVariantMap()["items"]->GetVariantVector();
for (const auto &g: items)
{
if (g["type"]->GetUInt() == type)
reserved_amount += g["amount"]->GetUInt();
if (g.GetVariantMap()["type"]->GetUInt() == type)
reserved_amount += g.GetVariantMap()["amount"]->GetUInt();
}
}
if (reserved_amount > 0)
@ -1074,9 +1074,9 @@ void UIPlayerInfoDialog::FillData(const std::shared_ptr<GameWallet> &w, uint32_t
for (i = 0; i < badges.Size(); ++i)
{
const auto &e = badges[i];
const uint32_t badge_id = e["id"]->GetUInt();
const uint8_t level = e["level"]->GetUInt();
const uint64_t timestamp = e["timestamp"]->GetUInt64();
const uint32_t badge_id = e.GetVariantMap()["id"]->GetUInt();
const uint8_t level = e.GetVariantMap()["level"]->GetUInt();
const uint64_t timestamp = e.GetVariantMap()["timestamp"]->GetUInt64();
show_badges[badge_id] = std::make_pair(level, timestamp);
}
if (show_badges != current_show_badges)
@ -1132,8 +1132,8 @@ void UIPlayerInfoDialog::FillData(const std::shared_ptr<GameWallet> &w, uint32_t
CachingSourceBuilder<TBGenericStringItem> builder(attribute_source);
for (const auto &e: attributes)
{
const uint32_t attribute_id = e["id"]->GetUInt();
const uint32_t points = e["points"]->GetUInt();
const uint32_t attribute_id = e.GetVariantMap()["id"]->GetUInt();
const uint32_t points = e.GetVariantMap()["points"]->GetUInt();
std::string name = "<unknown>", desc;
const auto i = std::find_if(defined_attributes.begin(), defined_attributes.end(), [attribute_id](const std::tuple<uint32_t, std::string, std::string> &e){ return std::get<0>(e) == attribute_id; });
if (i != defined_attributes.end())