mirror of https://github.com/OpenRCT2/OpenRCT2.git
* Remove unused symbols in Research.h * Move RCT12ResearchItem conversion out of Research.cpp/h
This commit is contained in:
parent
819495800c
commit
2fa33983ad
|
@ -15,6 +15,7 @@
|
|||
#include "core/String.hpp"
|
||||
#include "park/ParkFile.h"
|
||||
#include "rct12/SawyerChunkReader.h"
|
||||
#include "rct2/RCT2.h"
|
||||
#include "scenario/Scenario.h"
|
||||
#include "util/SawyerCoding.h"
|
||||
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#include "../localisation/StringIds.h"
|
||||
#include "../object/ObjectList.h"
|
||||
#include "../object/RideObject.h"
|
||||
#include "../rct1/RCT1.h"
|
||||
#include "../ride/Ride.h"
|
||||
#include "../ride/RideData.h"
|
||||
#include "../ride/RideEntry.h"
|
||||
|
@ -68,35 +67,6 @@ static bool _researchedSceneryItems[SCENERY_TYPE_COUNT][UINT16_MAX];
|
|||
|
||||
bool gSilentResearch = false;
|
||||
|
||||
// TODO: MOVE TO S4/6 IMPORT
|
||||
ResearchItem::ResearchItem(const RCT12ResearchItem& oldResearchItem)
|
||||
{
|
||||
if (oldResearchItem.IsInventedEndMarker() || oldResearchItem.IsUninventedEndMarker() || oldResearchItem.IsRandomEndMarker())
|
||||
{
|
||||
rawValue = 0;
|
||||
flags = 0;
|
||||
category = ResearchCategory::Transport;
|
||||
SetNull();
|
||||
}
|
||||
else
|
||||
{
|
||||
type = Research::EntryType{ oldResearchItem.type };
|
||||
entryIndex = RCTEntryIndexToOpenRCT2EntryIndex(oldResearchItem.entryIndex);
|
||||
flags = oldResearchItem.flags;
|
||||
category = static_cast<ResearchCategory>(oldResearchItem.category);
|
||||
if (type == Research::EntryType::Ride)
|
||||
{
|
||||
auto* rideEntry = get_ride_entry(entryIndex);
|
||||
baseRideType = rideEntry != nullptr ? RCT2::RCT2RideTypeToOpenRCT2RideType(oldResearchItem.baseRideType, rideEntry)
|
||||
: oldResearchItem.baseRideType;
|
||||
}
|
||||
else
|
||||
{
|
||||
baseRideType = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* rct2: 0x006671AD, part of 0x00667132
|
||||
|
|
|
@ -10,8 +10,8 @@
|
|||
#pragma once
|
||||
|
||||
#include "../common.h"
|
||||
#include "../object/Object.h"
|
||||
#include "../object/ObjectLimits.h"
|
||||
#include "../rct2/RCT2.h"
|
||||
#include "../util/Util.h"
|
||||
|
||||
#include <optional>
|
||||
|
@ -87,35 +87,9 @@ struct ResearchItem
|
|||
{
|
||||
}
|
||||
|
||||
RCT12ResearchItem ToRCT12ResearchItem() const
|
||||
{
|
||||
RCT12ResearchItem retItem = {};
|
||||
if (IsNull())
|
||||
{
|
||||
retItem.rawValue = RCT12_RESEARCHED_ITEMS_SEPARATOR;
|
||||
}
|
||||
else
|
||||
{
|
||||
retItem.entryIndex = OpenRCT2EntryIndexToRCTEntryIndex(entryIndex);
|
||||
retItem.baseRideType = RCT2::OpenRCT2RideTypeToRCT2RideType(baseRideType);
|
||||
retItem.type = static_cast<uint8_t>(type);
|
||||
retItem.flags = (flags & ~RESEARCH_ENTRY_FLAG_FIRST_OF_TYPE);
|
||||
retItem.category = EnumValue(category);
|
||||
}
|
||||
|
||||
return retItem;
|
||||
}
|
||||
|
||||
ResearchItem(const RCT12ResearchItem& oldResearchItem);
|
||||
|
||||
bool operator==(const ResearchItem& rhs) const;
|
||||
};
|
||||
|
||||
// Only used to mark as null nowadays. Deprecated. TODO: remove.
|
||||
#define RESEARCH_ITEM_NULL 0xFFFFFFFF
|
||||
|
||||
#define MAX_RESEARCH_ITEMS 500
|
||||
|
||||
enum
|
||||
{
|
||||
RESEARCH_FUNDING_NONE,
|
||||
|
|
|
@ -13,6 +13,8 @@
|
|||
#include "../localisation/Formatting.h"
|
||||
#include "../localisation/Localisation.h"
|
||||
#include "../object/ObjectList.h"
|
||||
#include "../rct2/RCT2.h"
|
||||
#include "../ride/Ride.h"
|
||||
#include "../ride/Track.h"
|
||||
#include "../scenario/Scenario.h"
|
||||
#include "../world/Banner.h"
|
||||
|
@ -911,3 +913,34 @@ money32 OpenRCT2CompletedCompanyValueToRCT12(money64 origValue)
|
|||
|
||||
return ToMoney32(origValue);
|
||||
}
|
||||
|
||||
ResearchItem RCT12ResearchItem::ToResearchItem() const
|
||||
{
|
||||
auto newResearchItem = ResearchItem();
|
||||
if (IsInventedEndMarker() || IsUninventedEndMarker() || IsRandomEndMarker())
|
||||
{
|
||||
newResearchItem.rawValue = 0;
|
||||
newResearchItem.flags = 0;
|
||||
newResearchItem.category = ResearchCategory::Transport;
|
||||
newResearchItem.SetNull();
|
||||
}
|
||||
else
|
||||
{
|
||||
newResearchItem.type = Research::EntryType{ type };
|
||||
newResearchItem.entryIndex = RCTEntryIndexToOpenRCT2EntryIndex(entryIndex);
|
||||
newResearchItem.flags = flags;
|
||||
newResearchItem.category = static_cast<ResearchCategory>(category);
|
||||
if (newResearchItem.type == Research::EntryType::Ride)
|
||||
{
|
||||
auto* rideEntry = get_ride_entry(newResearchItem.entryIndex);
|
||||
newResearchItem.baseRideType = rideEntry != nullptr ? RCT2::RCT2RideTypeToOpenRCT2RideType(baseRideType, rideEntry)
|
||||
: baseRideType;
|
||||
}
|
||||
else
|
||||
{
|
||||
newResearchItem.baseRideType = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return newResearchItem;
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
// Structures shared between both RCT1 and RCT2.
|
||||
|
||||
#include "../common.h"
|
||||
#include "../management/Research.h"
|
||||
#include "../object/Object.h"
|
||||
#include "../ride/RideTypes.h"
|
||||
#include "../world/tile_element/TileElementType.h"
|
||||
|
@ -838,6 +839,8 @@ struct RCT12ResearchItem
|
|||
bool IsInventedEndMarker() const;
|
||||
bool IsRandomEndMarker() const;
|
||||
bool IsUninventedEndMarker() const;
|
||||
|
||||
ResearchItem ToResearchItem() const;
|
||||
};
|
||||
assert_struct_size(RCT12ResearchItem, 5);
|
||||
|
||||
|
|
|
@ -299,13 +299,14 @@ namespace RCT2
|
|||
gResearchPriorities = _s6.active_research_types;
|
||||
gResearchProgressStage = _s6.research_progress_stage;
|
||||
if (_s6.last_researched_item_subject != RCT12_RESEARCHED_ITEMS_SEPARATOR)
|
||||
gResearchLastItem = ResearchItem(
|
||||
RCT12ResearchItem{ _s6.last_researched_item_subject, EnumValue(ResearchCategory::Transport) });
|
||||
gResearchLastItem = RCT12ResearchItem{ _s6.last_researched_item_subject,
|
||||
EnumValue(ResearchCategory::Transport) }
|
||||
.ToResearchItem();
|
||||
else
|
||||
gResearchLastItem = std::nullopt;
|
||||
// pad_01357CF8
|
||||
if (_s6.next_research_item != RCT12_RESEARCHED_ITEMS_SEPARATOR)
|
||||
gResearchNextItem = ResearchItem(RCT12ResearchItem{ _s6.next_research_item, _s6.next_research_category });
|
||||
gResearchNextItem = RCT12ResearchItem{ _s6.next_research_item, _s6.next_research_category }.ToResearchItem();
|
||||
else
|
||||
gResearchNextItem = std::nullopt;
|
||||
|
||||
|
@ -1003,9 +1004,9 @@ namespace RCT2
|
|||
}
|
||||
|
||||
if (invented)
|
||||
gResearchItemsInvented.emplace_back(researchItem);
|
||||
gResearchItemsInvented.emplace_back(researchItem.ToResearchItem());
|
||||
else
|
||||
gResearchItemsUninvented.emplace_back(researchItem);
|
||||
gResearchItemsUninvented.emplace_back(researchItem.ToResearchItem());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue