Move NewGRF shadow copy groups into internal header

This commit is contained in:
Jonathan G Rennison
2024-05-30 18:56:30 +01:00
parent 56356bb761
commit dc6ba9b9d8
3 changed files with 15 additions and 13 deletions

View File

@@ -284,6 +284,20 @@ struct VarAction2AdjustInfo {
uint8_t varsize;
};
struct DeterministicSpriteGroupShadowCopy {
std::vector<DeterministicSpriteGroupAdjust> adjusts;
std::vector<DeterministicSpriteGroupRange> ranges;
const SpriteGroup *default_group;
bool calculated_result;
};
struct RandomizedSpriteGroupShadowCopy {
std::vector<const SpriteGroup *> groups;
};
extern robin_hood::unordered_node_map<const DeterministicSpriteGroup *, DeterministicSpriteGroupShadowCopy> _deterministic_sg_shadows;
extern robin_hood::unordered_flat_map<const RandomizedSpriteGroup *, RandomizedSpriteGroupShadowCopy> _randomized_sg_shadows;
const SpriteGroup *PruneTargetSpriteGroup(const SpriteGroup *result);
void OptimiseVarAction2Adjust(VarAction2OptimiseState &state, const VarAction2AdjustInfo info, DeterministicSpriteGroup *group, DeterministicSpriteGroupAdjust &adjust);
void OptimiseVarAction2DeterministicSpriteGroup(VarAction2OptimiseState &state, const VarAction2AdjustInfo info, DeterministicSpriteGroup *group, std::vector<DeterministicSpriteGroupAdjust> &saved_adjusts);