forked from townforge/townforge
game: replace VariantMapVector with Vector of VariantMap
This commit is contained in:
parent
4cc456225e
commit
00f71f75c7
2
external/urho3d
vendored
2
external/urho3d
vendored
@ -1 +1 @@
|
||||
Subproject commit e6fa3047137d555b1e6b77d74d006a68609b4333
|
||||
Subproject commit 237ff68344fab68ce3a833ce2ae4707cf27e7ed8
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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())
|
||||
|
Loading…
Reference in New Issue
Block a user