1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-23 23:04:36 +01:00

List available staff costumes dynamically

This commit is contained in:
Aaron van Geffen
2024-12-05 17:39:10 +01:00
parent 3cc8aec6b9
commit cfdfd1a234
14 changed files with 142 additions and 203 deletions

View File

@@ -154,7 +154,7 @@ void SceneryGroupObject::ReadJson(IReadObjectContext* context, json_t& root)
if (properties.is_object())
{
_legacyType.priority = Json::GetNumber<uint8_t>(properties["priority"], 40);
_legacyType.entertainer_costumes = ReadJsonEntertainerCostumes(properties["entertainerCostumes"]);
_legacyType.entertainer_costumes = 0;
_items = ReadJsonEntries(context, properties["entries"]);
}
@@ -162,45 +162,6 @@ void SceneryGroupObject::ReadJson(IReadObjectContext* context, json_t& root)
PopulateTablesFromJson(context, root);
}
uint32_t SceneryGroupObject::ReadJsonEntertainerCostumes(json_t& jCostumes)
{
uint32_t costumes = 0;
for (auto& jCostume : jCostumes)
{
auto entertainer = ParseEntertainerCostume(Json::GetString(jCostume));
auto peepSprite = EntertainerCostumeToSprite(entertainer);
costumes |= 1 << (static_cast<uint8_t>(peepSprite));
}
return costumes;
}
EntertainerCostume SceneryGroupObject::ParseEntertainerCostume(const std::string& s)
{
if (s == "panda")
return EntertainerCostume::Panda;
if (s == "tiger")
return EntertainerCostume::Tiger;
if (s == "elephant")
return EntertainerCostume::Elephant;
if (s == "roman")
return EntertainerCostume::Roman;
if (s == "gorilla")
return EntertainerCostume::Gorilla;
if (s == "snowman")
return EntertainerCostume::Snowman;
if (s == "knight")
return EntertainerCostume::Knight;
if (s == "astronaut")
return EntertainerCostume::Astronaut;
if (s == "bandit")
return EntertainerCostume::Bandit;
if (s == "sheriff")
return EntertainerCostume::Sheriff;
if (s == "pirate")
return EntertainerCostume::Pirate;
return EntertainerCostume::Panda;
}
std::vector<ObjectEntryDescriptor> SceneryGroupObject::ReadJsonEntries(IReadObjectContext* context, json_t& jEntries)
{
std::vector<ObjectEntryDescriptor> entries;