1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-18 20:43:04 +01:00

Refactor out unnecessary Is<Guest/Staff> checks

This commit is contained in:
Hielke Morsink
2021-09-09 18:44:52 +02:00
parent 2b51b91524
commit f966c229c0
3 changed files with 14 additions and 15 deletions

View File

@@ -683,15 +683,12 @@ void viewport_update_smart_sprite_follow(rct_window* window)
break;
case EntityType::Guest:
case EntityType::Staff:
{
Peep* peep = static_cast<Peep*>(entity);
if (peep->Is<Guest>())
viewport_update_smart_guest_follow(window, peep);
else if (peep->Is<Staff>())
viewport_update_smart_staff_follow(window, peep);
viewport_update_smart_guest_follow(window, entity->As<Guest>());
break;
case EntityType::Staff:
viewport_update_smart_staff_follow(window, entity->As<Staff>());
break;
}
default: // All other types don't need any "smart" following; steam particle, duck, money effect, etc.
window->viewport_focus_sprite.sprite_id = window->viewport_smart_follow_sprite;
@@ -700,7 +697,7 @@ void viewport_update_smart_sprite_follow(rct_window* window)
}
}
viewport_focus viewport_update_smart_guest_follow(rct_window* window, const Peep* peep)
viewport_focus viewport_update_smart_guest_follow(rct_window* window, const Guest* peep)
{
viewport_focus focus{};
focus.type = VIEWPORT_FOCUS_TYPE_SPRITE;
@@ -759,7 +756,7 @@ viewport_focus viewport_update_smart_guest_follow(rct_window* window, const Peep
return focus;
}
void viewport_update_smart_staff_follow(rct_window* window, const Peep* peep)
void viewport_update_smart_staff_follow(rct_window* window, const Staff* peep)
{
sprite_focus focus = {};

View File

@@ -20,11 +20,12 @@ struct paint_session;
struct RecordedPaintSession;
struct paint_struct;
struct rct_drawpixelinfo;
struct Peep;
struct TileElement;
struct rct_window;
union paint_entry;
struct EntityBase;
struct Guest;
struct Staff;
union paint_entry;
enum
{
@@ -111,8 +112,8 @@ void viewports_invalidate(int32_t left, int32_t top, int32_t right, int32_t bott
void viewport_update_position(rct_window* window);
void viewport_update_sprite_follow(rct_window* window);
void viewport_update_smart_sprite_follow(rct_window* window);
viewport_focus viewport_update_smart_guest_follow(rct_window* window, const Peep* peep);
void viewport_update_smart_staff_follow(rct_window* window, const Peep* peep);
viewport_focus viewport_update_smart_guest_follow(rct_window* window, const Guest* peep);
void viewport_update_smart_staff_follow(rct_window* window, const Staff* peep);
void viewport_update_smart_vehicle_follow(rct_window* window);
void viewport_render(
rct_drawpixelinfo* dpi, const rct_viewport* viewport, int32_t left, int32_t top, int32_t right, int32_t bottom,

View File

@@ -26,8 +26,9 @@ namespace OpenRCT2
struct Litter;
struct ObjectRepositoryItem;
struct RCT12SpriteBase;
union rct_sprite;
struct EntityBase;
struct Peep;
union rct_sprite;
/**
* Class to export RollerCoaster Tycoon 2 scenarios (*.SC6) and saved games (*.SV6).