MCPcopy Create free account
hub / github.com/OpenRCT2/OpenRCT2 / GetImageSources

Method GetImageSources

src/openrct2/object/ImageTable.cpp:502–525  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

500 }
501
502 std::vector<std::pair<std::string, Image>> ImageTable::GetImageSources(IReadObjectContext* context, json_t& jsonImages)
503 {
504 std::vector<std::pair<std::string, Image>> result;
505 for (auto& jsonImage : jsonImages)
506 {
507 if (jsonImage.is_object() && jsonImage.contains("path"))
508 {
509 auto path = Json::GetString(jsonImage["path"]);
510 auto keepPalette = Json::GetString(jsonImage["palette"]) == "keep";
511 auto itSource = std::find_if(result.begin(), result.end(), [&path](const std::pair<std::string, Image>& item) {
512 return item.first == path;
513 });
514 if (itSource == result.end())
515 {
516 auto imageData = context->GetData(path);
517 auto imageFormat = keepPalette ? ImageFormat::png : ImageFormat::png32;
518 auto image = Imaging::ReadFromBuffer(imageData, imageFormat);
519 auto pair = std::make_pair<std::string, Image>(std::move(path), std::move(image));
520 result.push_back(std::move(pair));
521 }
522 }
523 }
524 return result;
525 }
526
527 bool ImageTable::ReadJson(IReadObjectContext* context, json_t& root)
528 {

Callers

nothing calls this directly

Calls 7

GetStringFunction · 0.85
ReadFromBufferFunction · 0.85
containsMethod · 0.65
endMethod · 0.65
beginMethod · 0.45
GetDataMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected