mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-15 19:13:07 +01:00
Refactor research status drawing code
This commit is contained in:
@@ -291,61 +291,58 @@ void window_research_development_page_paint(rct_window* w, rct_drawpixelinfo* dp
|
||||
|
||||
if (gResearchProgressStage == RESEARCH_STAGE_FINISHED_ALL)
|
||||
{
|
||||
{
|
||||
auto ft = Formatter();
|
||||
ft.Add<rct_string_id>(STR_RESEARCH_UNKNOWN);
|
||||
DrawTextWrapped(dpi, screenCoords, 296, STR_RESEARCH_TYPE_LABEL, ft);
|
||||
screenCoords.y += 25;
|
||||
}
|
||||
// Progress
|
||||
{
|
||||
auto ft = Formatter();
|
||||
ft.Add<rct_string_id>(STR_RESEARCH_COMPLETED_AL);
|
||||
DrawTextWrapped(dpi, screenCoords, 296, STR_RESEARCH_PROGRESS_LABEL, ft);
|
||||
screenCoords.y += 15;
|
||||
}
|
||||
// Research type
|
||||
auto ft = Formatter();
|
||||
ft.Add<rct_string_id>(STR_RESEARCH_UNKNOWN);
|
||||
DrawTextWrapped(dpi, screenCoords, 296, STR_RESEARCH_TYPE_LABEL, ft);
|
||||
screenCoords.y += 25;
|
||||
|
||||
{
|
||||
auto ft = Formatter();
|
||||
ft.Add<rct_string_id>(STR_RESEARCH_STAGE_UNKNOWN);
|
||||
DrawTextBasic(dpi, screenCoords, STR_RESEARCH_EXPECTED_LABEL, ft);
|
||||
}
|
||||
// Progress
|
||||
ft = Formatter();
|
||||
ft.Add<rct_string_id>(STR_RESEARCH_COMPLETED_AL);
|
||||
DrawTextWrapped(dpi, screenCoords, 296, STR_RESEARCH_PROGRESS_LABEL, ft);
|
||||
screenCoords.y += 15;
|
||||
|
||||
// Expected
|
||||
ft = Formatter();
|
||||
ft.Add<rct_string_id>(STR_RESEARCH_STAGE_UNKNOWN);
|
||||
DrawTextBasic(dpi, screenCoords, STR_RESEARCH_EXPECTED_LABEL, ft);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Research type
|
||||
std::array strings = {
|
||||
static_cast<rct_string_id>(STR_RESEARCH_UNKNOWN),
|
||||
STR_NONE,
|
||||
};
|
||||
auto ft = Formatter();
|
||||
rct_string_id label = STR_RESEARCH_TYPE_LABEL;
|
||||
if (gResearchProgressStage != RESEARCH_STAGE_INITIAL_RESEARCH)
|
||||
if (gResearchProgressStage == RESEARCH_STAGE_INITIAL_RESEARCH)
|
||||
{
|
||||
strings[0] = gResearchNextItem->GetCategoryName();
|
||||
if (gResearchProgressStage != RESEARCH_STAGE_DESIGNING)
|
||||
ft.Add<rct_string_id>(STR_RESEARCH_UNKNOWN);
|
||||
}
|
||||
else if (gResearchProgressStage == RESEARCH_STAGE_DESIGNING)
|
||||
{
|
||||
ft.Add<rct_string_id>(gResearchNextItem->GetCategoryName());
|
||||
}
|
||||
else if (gResearchNextItem->type == Research::EntryType::Ride)
|
||||
{
|
||||
const auto& rtd = GetRideTypeDescriptor(gResearchNextItem->baseRideType);
|
||||
if (rtd.HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
|
||||
{
|
||||
strings[0] = gResearchNextItem->GetName();
|
||||
if (gResearchNextItem->type == Research::EntryType::Ride)
|
||||
{
|
||||
auto rtd = GetRideTypeDescriptor(gResearchNextItem->baseRideType);
|
||||
if (!rtd.HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
|
||||
{
|
||||
if (gResearchNextItem->flags & RESEARCH_ENTRY_FLAG_FIRST_OF_TYPE)
|
||||
{
|
||||
strings[0] = rtd.Naming.Name;
|
||||
}
|
||||
else
|
||||
{
|
||||
strings[1] = rtd.Naming.Name;
|
||||
label = STR_RESEARCH_TYPE_LABEL_VEHICLE;
|
||||
}
|
||||
}
|
||||
}
|
||||
ft.Add<rct_string_id>(gResearchNextItem->GetName());
|
||||
}
|
||||
else if (gResearchNextItem->flags & RESEARCH_ENTRY_FLAG_FIRST_OF_TYPE)
|
||||
{
|
||||
ft.Add<rct_string_id>(rtd.Naming.Name);
|
||||
}
|
||||
else
|
||||
{
|
||||
ft.Add<rct_string_id>(gResearchNextItem->GetName());
|
||||
ft.Add<rct_string_id>(rtd.Naming.Name);
|
||||
label = STR_RESEARCH_TYPE_LABEL_VEHICLE;
|
||||
}
|
||||
}
|
||||
auto ft = Formatter();
|
||||
ft.Add<rct_string_id>(strings[0]);
|
||||
ft.Add<rct_string_id>(strings[1]);
|
||||
else
|
||||
{
|
||||
ft.Add<rct_string_id>(gResearchNextItem->GetName());
|
||||
}
|
||||
DrawTextWrapped(dpi, screenCoords, 296, label, ft);
|
||||
screenCoords.y += 25;
|
||||
|
||||
@@ -377,36 +374,32 @@ void window_research_development_page_paint(rct_window* w, rct_drawpixelinfo* dp
|
||||
if (gResearchLastItem.has_value())
|
||||
{
|
||||
rct_string_id lastDevelopmentFormat = STR_EMPTY;
|
||||
std::array strings = {
|
||||
gResearchLastItem->GetName(),
|
||||
STR_NONE,
|
||||
};
|
||||
auto type = gResearchLastItem->type;
|
||||
if (type == Research::EntryType::Scenery)
|
||||
auto ft = Formatter();
|
||||
if (gResearchLastItem->type == Research::EntryType::Scenery)
|
||||
{
|
||||
lastDevelopmentFormat = STR_RESEARCH_SCENERY_LABEL;
|
||||
ft.Add<rct_string_id>(gResearchLastItem->GetName());
|
||||
}
|
||||
else
|
||||
{
|
||||
lastDevelopmentFormat = STR_RESEARCH_RIDE_LABEL;
|
||||
auto rtd = GetRideTypeDescriptor(gResearchLastItem->baseRideType);
|
||||
if (!rtd.HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
|
||||
const auto& rtd = GetRideTypeDescriptor(gResearchLastItem->baseRideType);
|
||||
if (rtd.HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
|
||||
{
|
||||
if (gResearchLastItem->flags & RESEARCH_ENTRY_FLAG_FIRST_OF_TYPE)
|
||||
{
|
||||
strings[0] = rtd.Naming.Name;
|
||||
}
|
||||
else
|
||||
{
|
||||
strings[1] = rtd.Naming.Name;
|
||||
lastDevelopmentFormat = STR_RESEARCH_VEHICLE_LABEL;
|
||||
}
|
||||
ft.Add<rct_string_id>(gResearchLastItem->GetName());
|
||||
}
|
||||
else if (gResearchLastItem->flags & RESEARCH_ENTRY_FLAG_FIRST_OF_TYPE)
|
||||
{
|
||||
ft.Add<rct_string_id>(rtd.Naming.Name);
|
||||
}
|
||||
else
|
||||
{
|
||||
ft.Add<rct_string_id>(gResearchLastItem->GetName());
|
||||
ft.Add<rct_string_id>(rtd.Naming.Name);
|
||||
lastDevelopmentFormat = STR_RESEARCH_VEHICLE_LABEL;
|
||||
}
|
||||
}
|
||||
|
||||
auto ft = Formatter();
|
||||
ft.Add<rct_string_id>(strings[0]);
|
||||
ft.Add<rct_string_id>(strings[1]);
|
||||
DrawTextWrapped(dpi, screenCoords, 266, lastDevelopmentFormat, ft);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user