diff --git a/src/openrct2/management/Research.cpp b/src/openrct2/management/Research.cpp index 2ae1c07393..54010f9d4c 100644 --- a/src/openrct2/management/Research.cpp +++ b/src/openrct2/management/Research.cpp @@ -1015,3 +1015,18 @@ bool research_item_is_always_researched(rct_research_item * researchItem) { return (researchItem->flags & (RESEARCH_ENTRY_FLAG_RIDE_ALWAYS_RESEARCHED | RESEARCH_ENTRY_FLAG_SCENERY_SET_ALWAYS_RESEARCHED)) != 0; } + +bool rct_research_item::IsInventedEndMarker() const +{ + return rawValue == RESEARCHED_ITEMS_SEPARATOR; +} + +bool rct_research_item::IsUninventedEndMarker() const +{ + return rawValue == RESEARCHED_ITEMS_END; +} + +bool rct_research_item::IsRandomEndMarker() const +{ + return rawValue == RESEARCHED_ITEMS_END_2; +} diff --git a/src/openrct2/management/Research.h b/src/openrct2/management/Research.h index 27bf4c9752..d31a3b0a2e 100644 --- a/src/openrct2/management/Research.h +++ b/src/openrct2/management/Research.h @@ -38,6 +38,10 @@ struct rct_research_item }; }; uint8 category; + + bool IsInventedEndMarker() const; + bool IsRandomEndMarker() const; + bool IsUninventedEndMarker() const; }; assert_struct_size(rct_research_item, 5); #pragma pack(pop) diff --git a/src/openrct2/rct1/S4Importer.cpp b/src/openrct2/rct1/S4Importer.cpp index 67c2fcedd8..bdf9d53e1a 100644 --- a/src/openrct2/rct1/S4Importer.cpp +++ b/src/openrct2/rct1/S4Importer.cpp @@ -2123,7 +2123,7 @@ private: gResearchExpectedMonth = _s4.next_research_expected_month; ConvertResearchEntry(&gResearchNextItem, _s4.next_research_item, _s4.next_research_type); - if (gResearchNextItem.rawValue == RESEARCHED_ITEMS_SEPARATOR) + if (gResearchNextItem.IsInventedEndMarker()) { gResearchProgressStage = RESEARCH_STAGE_INITIAL_RESEARCH; gResearchProgress = 0;