Use more specific types where appropriate (#14388)

It takes marginally more time to get a Peep than a Guest/Staff so may as well go straight to the correct type
This commit is contained in:
Duncan 2021-03-25 08:44:25 +00:00 committed by GitHub
parent 1be7457e30
commit 0a47d2157a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 44 additions and 54 deletions

View File

@ -1421,7 +1421,7 @@ rct_window* window_ride_open_vehicle(Vehicle* vehicle)
int32_t numPeepsLeft = vehicle->num_peeps;
for (int32_t i = 0; i < 32 && numPeepsLeft > 0; i++)
{
Peep* peep = GetEntity<Peep>(vehicle->peep[i]);
Peep* peep = GetEntity<Guest>(vehicle->peep[i]);
if (peep == nullptr)
continue;

View File

@ -99,7 +99,7 @@ static void window_staff_fire_paint(rct_window* w, rct_drawpixelinfo* dpi)
{
WindowDrawWidgets(w, dpi);
Peep* peep = GetEntity<Peep>(w->number);
Peep* peep = GetEntity<Staff>(w->number);
auto ft = Formatter();
peep->FormatNameTo(ft);

View File

@ -39,7 +39,7 @@ void GuestSetFlagsAction::Serialise(DataSerialiser& stream)
GameActions::Result::Ptr GuestSetFlagsAction::Query() const
{
Peep* peep = TryGetEntity<Peep>(_peepId);
auto* peep = TryGetEntity<Guest>(_peepId);
if (peep == nullptr)
{
log_error("Used invalid sprite index for peep: %u", static_cast<uint32_t>(_peepId));
@ -50,7 +50,7 @@ GameActions::Result::Ptr GuestSetFlagsAction::Query() const
GameActions::Result::Ptr GuestSetFlagsAction::Execute() const
{
Peep* peep = TryGetEntity<Peep>(_peepId);
auto* peep = TryGetEntity<Guest>(_peepId);
if (peep == nullptr)
{
log_error("Used invalid sprite index for peep: %u", static_cast<uint32_t>(_peepId));

View File

@ -124,9 +124,9 @@ bool staff_hire_new_member(StaffType staffType, EntertainerCostume entertainerTy
return;
// Open window for new staff.
auto peep = GetEntity<Peep>(res->peepSriteIndex);
auto* staff = GetEntity<Staff>(res->peepSriteIndex);
auto intent = Intent(WC_PEEP);
intent.putExtra(INTENT_EXTRA_PEEP, peep);
intent.putExtra(INTENT_EXTRA_PEEP, staff);
context_open_intent(&intent);
});

View File

@ -838,7 +838,7 @@ void Ride::FormatStatusTo(Formatter& ft) const
mode == RideMode::Race && !(lifecycle_flags & RIDE_LIFECYCLE_PASS_STATION_NO_STOPPING)
&& race_winner != SPRITE_INDEX_NULL)
{
auto peep = GetEntity<Peep>(race_winner);
auto peep = GetEntity<Guest>(race_winner);
if (peep != nullptr)
{
ft.Add<rct_string_id>(STR_RACE_WON_BY);

View File

@ -1230,7 +1230,7 @@ void vehicle_visual_mini_golf_player(
if (rideEntry == nullptr)
return;
auto* peep = GetEntity<Peep>(vehicle->peep[0]);
auto* peep = GetEntity<Guest>(vehicle->peep[0]);
if (peep == nullptr)
return;

View File

@ -842,23 +842,18 @@ namespace OpenRCT2::Scripting
private:
Guest* GetGuest() const
{
auto peep = GetPeep();
if (peep != nullptr)
{
return peep->As<Guest>();
}
return nullptr;
return ::GetEntity<Guest>(_id);
}
uint8_t tshirtColour_get() const
{
auto peep = GetPeep();
auto peep = GetGuest();
return peep != nullptr ? peep->TshirtColour : 0;
}
void tshirtColour_set(uint8_t value)
{
ThrowIfGameStateNotMutable();
auto peep = GetPeep();
auto peep = GetGuest();
if (peep != nullptr)
{
peep->TshirtColour = value;
@ -868,13 +863,13 @@ namespace OpenRCT2::Scripting
uint8_t trousersColour_get() const
{
auto peep = GetPeep();
auto peep = GetGuest();
return peep != nullptr ? peep->TrousersColour : 0;
}
void trousersColour_set(uint8_t value)
{
ThrowIfGameStateNotMutable();
auto peep = GetPeep();
auto peep = GetGuest();
if (peep != nullptr)
{
peep->TrousersColour = value;
@ -884,13 +879,13 @@ namespace OpenRCT2::Scripting
uint8_t balloonColour_get() const
{
auto peep = GetPeep();
auto peep = GetGuest();
return peep != nullptr ? peep->BalloonColour : 0;
}
void balloonColour_set(uint8_t value)
{
ThrowIfGameStateNotMutable();
auto peep = GetPeep();
auto peep = GetGuest();
if (peep != nullptr)
{
peep->BalloonColour = value;
@ -900,13 +895,13 @@ namespace OpenRCT2::Scripting
uint8_t hatColour_get() const
{
auto peep = GetPeep();
auto peep = GetGuest();
return peep != nullptr ? peep->HatColour : 0;
}
void hatColour_set(uint8_t value)
{
ThrowIfGameStateNotMutable();
auto peep = GetPeep();
auto peep = GetGuest();
if (peep != nullptr)
{
peep->HatColour = value;
@ -916,13 +911,13 @@ namespace OpenRCT2::Scripting
uint8_t umbrellaColour_get() const
{
auto peep = GetPeep();
auto peep = GetGuest();
return peep != nullptr ? peep->UmbrellaColour : 0;
}
void umbrellaColour_set(uint8_t value)
{
ThrowIfGameStateNotMutable();
auto peep = GetPeep();
auto peep = GetGuest();
if (peep != nullptr)
{
peep->UmbrellaColour = value;
@ -932,13 +927,13 @@ namespace OpenRCT2::Scripting
uint8_t happiness_get() const
{
auto peep = GetPeep();
auto peep = GetGuest();
return peep != nullptr ? peep->Happiness : 0;
}
void happiness_set(uint8_t value)
{
ThrowIfGameStateNotMutable();
auto peep = GetPeep();
auto peep = GetGuest();
if (peep != nullptr)
{
peep->Happiness = value;
@ -947,13 +942,13 @@ namespace OpenRCT2::Scripting
uint8_t happinessTarget_get() const
{
auto peep = GetPeep();
auto peep = GetGuest();
return peep != nullptr ? peep->HappinessTarget : 0;
}
void happinessTarget_set(uint8_t value)
{
ThrowIfGameStateNotMutable();
auto peep = GetPeep();
auto peep = GetGuest();
if (peep != nullptr)
{
peep->HappinessTarget = value;
@ -962,13 +957,13 @@ namespace OpenRCT2::Scripting
uint8_t nausea_get() const
{
auto peep = GetPeep();
auto peep = GetGuest();
return peep != nullptr ? peep->Nausea : 0;
}
void nausea_set(uint8_t value)
{
ThrowIfGameStateNotMutable();
auto peep = GetPeep();
auto peep = GetGuest();
if (peep != nullptr)
{
peep->Nausea = value;
@ -977,13 +972,13 @@ namespace OpenRCT2::Scripting
uint8_t nauseaTarget_get() const
{
auto peep = GetPeep();
auto peep = GetGuest();
return peep != nullptr ? peep->NauseaTarget : 0;
}
void nauseaTarget_set(uint8_t value)
{
ThrowIfGameStateNotMutable();
auto peep = GetPeep();
auto peep = GetGuest();
if (peep != nullptr)
{
peep->NauseaTarget = value;
@ -992,13 +987,13 @@ namespace OpenRCT2::Scripting
uint8_t hunger_get() const
{
auto peep = GetPeep();
auto peep = GetGuest();
return peep != nullptr ? peep->Hunger : 0;
}
void hunger_set(uint8_t value)
{
ThrowIfGameStateNotMutable();
auto peep = GetPeep();
auto peep = GetGuest();
if (peep != nullptr)
{
peep->Hunger = value;
@ -1007,13 +1002,13 @@ namespace OpenRCT2::Scripting
uint8_t thirst_get() const
{
auto peep = GetPeep();
auto peep = GetGuest();
return peep != nullptr ? peep->Thirst : 0;
}
void thirst_set(uint8_t value)
{
ThrowIfGameStateNotMutable();
auto peep = GetPeep();
auto peep = GetGuest();
if (peep != nullptr)
{
peep->Thirst = value;
@ -1022,13 +1017,13 @@ namespace OpenRCT2::Scripting
uint8_t toilet_get() const
{
auto peep = GetPeep();
auto peep = GetGuest();
return peep != nullptr ? peep->Toilet : 0;
}
void toilet_set(uint8_t value)
{
ThrowIfGameStateNotMutable();
auto peep = GetPeep();
auto peep = GetGuest();
if (peep != nullptr)
{
peep->Toilet = value;
@ -1037,13 +1032,13 @@ namespace OpenRCT2::Scripting
uint8_t mass_get() const
{
auto peep = GetPeep();
auto peep = GetGuest();
return peep != nullptr ? peep->Mass : 0;
}
void mass_set(uint8_t value)
{
ThrowIfGameStateNotMutable();
auto peep = GetPeep();
auto peep = GetGuest();
if (peep != nullptr)
{
peep->Mass = value;
@ -1052,13 +1047,13 @@ namespace OpenRCT2::Scripting
uint8_t minIntensity_get() const
{
auto peep = GetPeep();
auto peep = GetGuest();
return peep != nullptr ? peep->Intensity.GetMinimum() : 0;
}
void minIntensity_set(uint8_t value)
{
ThrowIfGameStateNotMutable();
auto peep = GetPeep();
auto peep = GetGuest();
if (peep != nullptr)
{
peep->Intensity = peep->Intensity.WithMinimum(value);
@ -1067,13 +1062,13 @@ namespace OpenRCT2::Scripting
uint8_t maxIntensity_get() const
{
auto peep = GetPeep();
auto peep = GetGuest();
return peep != nullptr ? peep->Intensity.GetMaximum() : 0;
}
void maxIntensity_set(uint8_t value)
{
ThrowIfGameStateNotMutable();
auto peep = GetPeep();
auto peep = GetGuest();
if (peep != nullptr)
{
peep->Intensity = peep->Intensity.WithMaximum(value);
@ -1082,13 +1077,13 @@ namespace OpenRCT2::Scripting
uint8_t nauseaTolerance_get() const
{
auto peep = GetPeep();
auto peep = GetGuest();
return peep != nullptr ? EnumValue(peep->NauseaTolerance) : 0;
}
void nauseaTolerance_set(uint8_t value)
{
ThrowIfGameStateNotMutable();
auto peep = GetPeep();
auto peep = GetGuest();
if (peep != nullptr)
{
peep->NauseaTolerance = static_cast<PeepNauseaTolerance>(std::min<uint8_t>(value, 3));
@ -1097,13 +1092,13 @@ namespace OpenRCT2::Scripting
int32_t cash_get() const
{
auto peep = GetPeep();
auto peep = GetGuest();
return peep != nullptr ? peep->CashInPocket : 0;
}
void cash_set(int32_t value)
{
ThrowIfGameStateNotMutable();
auto peep = GetPeep();
auto peep = GetGuest();
if (peep != nullptr)
{
peep->CashInPocket = std::max(0, value);
@ -1131,12 +1126,7 @@ namespace OpenRCT2::Scripting
private:
Staff* GetStaff() const
{
auto peep = GetPeep();
if (peep != nullptr)
{
return peep->As<Staff>();
}
return nullptr;
return ::GetEntity<Staff>(_id);
}
std::string staffType_get() const