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; 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); const SpriteGroup *PruneTargetSpriteGroup(const SpriteGroup *result);
void OptimiseVarAction2Adjust(VarAction2OptimiseState &state, const VarAction2AdjustInfo info, DeterministicSpriteGroup *group, DeterministicSpriteGroupAdjust &adjust); 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); void OptimiseVarAction2DeterministicSpriteGroup(VarAction2OptimiseState &state, const VarAction2AdjustInfo info, DeterministicSpriteGroup *group, std::vector<DeterministicSpriteGroupAdjust> &saved_adjusts);

View File

@@ -10,6 +10,7 @@
#include "stdafx.h" #include "stdafx.h"
#include "debug.h" #include "debug.h"
#include "newgrf_spritegroup.h" #include "newgrf_spritegroup.h"
#include "newgrf_internal.h"
#include "newgrf_profiling.h" #include "newgrf_profiling.h"
#include "core/pool_func.hpp" #include "core/pool_func.hpp"
#include "vehicle_type.h" #include "vehicle_type.h"

View File

@@ -483,13 +483,6 @@ enum DeterministicSpriteGroupFlags : uint8_t {
}; };
DECLARE_ENUM_AS_BIT_SET(DeterministicSpriteGroupFlags) DECLARE_ENUM_AS_BIT_SET(DeterministicSpriteGroupFlags)
struct DeterministicSpriteGroupShadowCopy {
std::vector<DeterministicSpriteGroupAdjust> adjusts;
std::vector<DeterministicSpriteGroupRange> ranges;
const SpriteGroup *default_group;
bool calculated_result;
};
struct DeterministicSpriteGroup : SpriteGroup { struct DeterministicSpriteGroup : SpriteGroup {
DeterministicSpriteGroup() : SpriteGroup(SGT_DETERMINISTIC) {} DeterministicSpriteGroup() : SpriteGroup(SGT_DETERMINISTIC) {}
@@ -518,10 +511,6 @@ enum RandomizedSpriteGroupCompareMode : uint8_t {
RSG_CMP_ALL, RSG_CMP_ALL,
}; };
struct RandomizedSpriteGroupShadowCopy {
std::vector<const SpriteGroup *> groups;
};
struct RandomizedSpriteGroup : SpriteGroup { struct RandomizedSpriteGroup : SpriteGroup {
RandomizedSpriteGroup() : SpriteGroup(SGT_RANDOMIZED) {} RandomizedSpriteGroup() : SpriteGroup(SGT_RANDOMIZED) {}
@@ -541,8 +530,6 @@ protected:
const SpriteGroup *Resolve(ResolverObject &object) const override; const SpriteGroup *Resolve(ResolverObject &object) const override;
}; };
extern robin_hood::unordered_node_map<const DeterministicSpriteGroup *, DeterministicSpriteGroupShadowCopy> _deterministic_sg_shadows;
extern robin_hood::unordered_flat_map<const RandomizedSpriteGroup *, RandomizedSpriteGroupShadowCopy> _randomized_sg_shadows;
extern bool _grfs_loaded_with_sg_shadow_enable; extern bool _grfs_loaded_with_sg_shadow_enable;
/* This contains a callback result. A failed callback has a value of /* This contains a callback result. A failed callback has a value of