From 01d237ad272ddd8a4f4a4c88ea4bb8aee5811a3e Mon Sep 17 00:00:00 2001 From: Vinicius Sa Date: Wed, 7 Oct 2020 17:02:38 -0300 Subject: [PATCH] Use helper function GetSpriteBounds It's intended to retrieve a rct_sprite_bounds from the global array g_peep_animation_entries, given PeepSpriteType and PeepActionSpriteType as parameters. --- src/openrct2/actions/StaffHireNewAction.hpp | 3 +-- src/openrct2/peep/Peep.cpp | 24 ++++++++++----------- src/openrct2/peep/Peep.h | 6 ++++++ src/openrct2/rct1/S4Importer.cpp | 8 +++---- 4 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/openrct2/actions/StaffHireNewAction.hpp b/src/openrct2/actions/StaffHireNewAction.hpp index 412ea50d89..e88e172951 100644 --- a/src/openrct2/actions/StaffHireNewAction.hpp +++ b/src/openrct2/actions/StaffHireNewAction.hpp @@ -22,7 +22,6 @@ #include "../scenario/Scenario.h" #include "../ui/UiContext.h" #include "../ui/WindowManager.h" -#include "../util/Util.h" #include "../world/Entrance.h" #include "../world/Park.h" #include "../world/Sprite.h" @@ -210,7 +209,7 @@ private: newPeep->Name = nullptr; newPeep->SpriteType = spriteType; - const rct_sprite_bounds* spriteBounds = g_peep_animation_entries[EnumValue(spriteType)].sprite_bounds; + const rct_sprite_bounds* spriteBounds = &GetSpriteBounds(spriteType); newPeep->sprite_width = spriteBounds->sprite_width; newPeep->sprite_height_negative = spriteBounds->sprite_height_negative; newPeep->sprite_height_positive = spriteBounds->sprite_height_positive; diff --git a/src/openrct2/peep/Peep.cpp b/src/openrct2/peep/Peep.cpp index 109bb097af..7715b063b6 100644 --- a/src/openrct2/peep/Peep.cpp +++ b/src/openrct2/peep/Peep.cpp @@ -509,10 +509,10 @@ void Peep::UpdateCurrentActionSpriteType() Invalidate(); ActionSpriteType = newActionSpriteType; - const rct_sprite_bounds* spriteBounds = g_peep_animation_entries[EnumValue(SpriteType)].sprite_bounds; - sprite_width = spriteBounds[EnumValue(ActionSpriteType)].sprite_width; - sprite_height_negative = spriteBounds[EnumValue(ActionSpriteType)].sprite_height_negative; - sprite_height_positive = spriteBounds[EnumValue(ActionSpriteType)].sprite_height_positive; + const rct_sprite_bounds* spriteBounds = &GetSpriteBounds(SpriteType, ActionSpriteType); + sprite_width = spriteBounds->sprite_width; + sprite_height_negative = spriteBounds->sprite_height_negative; + sprite_height_positive = spriteBounds->sprite_height_positive; Invalidate(); } @@ -1591,10 +1591,10 @@ Peep* Peep::Generate(const CoordsXYZ& coords) peep->FavouriteRide = RIDE_ID_NULL; peep->FavouriteRideRating = 0; - const rct_sprite_bounds* spriteBounds = g_peep_animation_entries[EnumValue(peep->SpriteType)].sprite_bounds; - peep->sprite_width = spriteBounds[EnumValue(peep->ActionSpriteType)].sprite_width; - peep->sprite_height_negative = spriteBounds[EnumValue(peep->ActionSpriteType)].sprite_height_negative; - peep->sprite_height_positive = spriteBounds[EnumValue(peep->ActionSpriteType)].sprite_height_positive; + const rct_sprite_bounds* spriteBounds = &GetSpriteBounds(peep->SpriteType, peep->ActionSpriteType); + peep->sprite_width = spriteBounds->sprite_width; + peep->sprite_height_negative = spriteBounds->sprite_height_negative; + peep->sprite_height_positive = spriteBounds->sprite_height_positive; peep->MoveTo(coords); peep->sprite_direction = 0; @@ -2192,10 +2192,10 @@ void Peep::SwitchNextActionSpriteType() { Invalidate(); ActionSpriteType = NextActionSpriteType; - const rct_sprite_bounds* spriteBounds = g_peep_animation_entries[EnumValue(SpriteType)].sprite_bounds; - sprite_width = spriteBounds[EnumValue(NextActionSpriteType)].sprite_width; - sprite_height_negative = spriteBounds[EnumValue(NextActionSpriteType)].sprite_height_negative; - sprite_height_positive = spriteBounds[EnumValue(NextActionSpriteType)].sprite_height_positive; + const rct_sprite_bounds* spriteBounds = &GetSpriteBounds(SpriteType, NextActionSpriteType); + sprite_width = spriteBounds->sprite_width; + sprite_height_negative = spriteBounds->sprite_height_negative; + sprite_height_positive = spriteBounds->sprite_height_positive; Invalidate(); } } diff --git a/src/openrct2/peep/Peep.h b/src/openrct2/peep/Peep.h index 18d9477155..68335bbcb3 100644 --- a/src/openrct2/peep/Peep.h +++ b/src/openrct2/peep/Peep.h @@ -1091,4 +1091,10 @@ inline const rct_peep_animation& GetPeepAnimation( return g_peep_animation_entries[EnumValue(spriteType)].sprite_animation[EnumValue(actionSpriteType)]; }; +inline const rct_sprite_bounds& GetSpriteBounds( + PeepSpriteType spriteType, PeepActionSpriteType actionSpriteType = PeepActionSpriteType::None) +{ + return g_peep_animation_entries[EnumValue(spriteType)].sprite_bounds[EnumValue(actionSpriteType)]; +}; + #endif diff --git a/src/openrct2/rct1/S4Importer.cpp b/src/openrct2/rct1/S4Importer.cpp index a7a1b1b75f..f95c4ae040 100644 --- a/src/openrct2/rct1/S4Importer.cpp +++ b/src/openrct2/rct1/S4Importer.cpp @@ -1409,10 +1409,10 @@ private: dst->ActionSpriteType = static_cast(src->action_sprite_type); dst->ActionFrame = src->action_frame; - const rct_sprite_bounds* spriteBounds = g_peep_animation_entries[EnumValue(dst->SpriteType)].sprite_bounds; - dst->sprite_width = spriteBounds[EnumValue(dst->ActionSpriteType)].sprite_width; - dst->sprite_height_negative = spriteBounds[EnumValue(dst->ActionSpriteType)].sprite_height_negative; - dst->sprite_height_positive = spriteBounds[EnumValue(dst->ActionSpriteType)].sprite_height_positive; + const rct_sprite_bounds* spriteBounds = &GetSpriteBounds(dst->SpriteType, dst->ActionSpriteType); + dst->sprite_width = spriteBounds->sprite_width; + dst->sprite_height_negative = spriteBounds->sprite_height_negative; + dst->sprite_height_positive = spriteBounds->sprite_height_positive; dst->MoveTo({ src->x, src->y, src->z }); dst->Invalidate2();