44 [[nodiscard]] std::string
name()
const override;
160 [[nodiscard]]
bool scope_matches(
ConfigScopeType type,
const std::string &scope)
const;
164 std::string source_info_;
166 std::optional<std::size_t> num_tiles_in_primary_override_;
167 std::optional<std::size_t> num_tiles_total_override_;
168 std::optional<std::size_t> num_metatiles_in_primary_override_;
169 std::optional<std::size_t> num_metatiles_total_override_;
170 std::optional<std::size_t> num_pals_in_primary_override_;
171 std::optional<std::size_t> num_pals_total_override_;
172 std::optional<std::size_t> max_map_data_size_override_;
173 std::optional<std::size_t> num_tiles_per_metatile_override_;
174 std::optional<Rgba32> extrinsic_transparency_override_;
175 std::optional<ArtifactEditMode> tiles_edit_mode_override_;
176 std::optional<ArtifactEditMode> pals_edit_mode_override_;
177 std::optional<bool> pal_hints_enabled_override_;
178 std::optional<std::vector<PaletteHint>> pal_hints_override_;
179 std::optional<PackingStrategyType> packing_strategy_override_;
180 std::optional<PackingStrategyParams> packing_strategy_params_override_;
181 std::optional<TileSharingPacking> tile_sharing_packing_override_;
182 std::optional<TileSharingAlignment> tile_sharing_alignment_override_;
183 std::optional<TilesPalMode> tiles_pal_mode_override_;
184 std::optional<AnimPalResolutionStrategy> global_anim_pal_resolution_strategy_override_;
185 std::optional<AnimKeyFrameResolutionStrategy> global_anim_key_frame_resolution_strategy_override_;
186 std::optional<AnimMultiPalSubtileResolutionStrategy> global_anim_multi_pal_subtile_resolution_strategy_override_;
187 std::optional<FrameLinking> global_frame_linking_override_;
188 std::optional<PerAnimOverrides> per_anim_overrides_override_;
189 std::optional<bool> cross_tileset_anim_linking_override_;
190 std::optional<bool> verify_checksums_override_;
191 std::optional<PrimaryPairingMode> primary_pairing_mode_override_;
192 std::optional<std::vector<std::string>> primary_pairing_partners_override_;
193 std::optional<std::vector<std::string>> diagnostic_warnings_exclude_override_;
194 std::optional<std::vector<std::string>> diagnostic_warnings_include_override_;
195 std::optional<std::vector<std::string>> diagnostic_remarks_exclude_override_;
196 std::optional<std::vector<std::string>> diagnostic_remarks_include_override_;
197 std::optional<std::string> tileset_paths_primary_src_override_;
198 std::optional<std::string> tileset_paths_primary_bin_override_;
199 std::optional<std::string> tileset_paths_secondary_src_override_;
200 std::optional<std::string> tileset_paths_secondary_bin_override_;
201 std::optional<std::size_t> metatile_attr_size_override_;
202 std::optional<bool> tileset_animations_wire_anim_code_override_;
An interface which config implementations can use to load config values.
A ConfigProvider that overrides selected config values for a single scope.
LayerValue< std::string > tileset_paths_secondary_bin(ConfigScopeType type, const std::string &scope) const override
void set_num_tiles_total(std::size_t value)
LayerValue< PerAnimOverrides > per_anim_overrides(ConfigScopeType type, const std::string &scope) const override
LayerValue< std::vector< std::string > > diagnostic_remarks_include(ConfigScopeType type, const std::string &scope) const override
LayerValue< std::size_t > metatile_attr_size(ConfigScopeType type, const std::string &scope) const override
void set_global_anim_key_frame_resolution_strategy(AnimKeyFrameResolutionStrategy value)
LayerValue< std::string > tileset_paths_primary_src(ConfigScopeType type, const std::string &scope) const override
LayerValue< std::size_t > max_map_data_size(ConfigScopeType type, const std::string &scope) const override
void set_global_frame_linking(FrameLinking value)
LayerValue< std::vector< PaletteHint > > pal_hints(ConfigScopeType type, const std::string &scope) const override
LayerValue< FrameLinking > global_frame_linking(ConfigScopeType type, const std::string &scope) const override
LayerValue< std::size_t > num_metatiles_in_primary(ConfigScopeType type, const std::string &scope) const override
void set_tileset_paths_secondary_src(std::string value)
LayerValue< AnimMultiPalSubtileResolutionStrategy > global_anim_multi_pal_subtile_resolution_strategy(ConfigScopeType type, const std::string &scope) const override
LayerValue< AnimPalResolutionStrategy > global_anim_pal_resolution_strategy(ConfigScopeType type, const std::string &scope) const override
LayerValue< bool > cross_tileset_anim_linking(ConfigScopeType type, const std::string &scope) const override
void set_num_metatiles_total(std::size_t value)
LayerValue< AnimKeyFrameResolutionStrategy > global_anim_key_frame_resolution_strategy(ConfigScopeType type, const std::string &scope) const override
void set_num_metatiles_in_primary(std::size_t value)
LayerValue< std::size_t > num_pals_total(ConfigScopeType type, const std::string &scope) const override
void set_primary_pairing_mode(PrimaryPairingMode value)
LayerValue< PackingStrategyType > packing_strategy(ConfigScopeType type, const std::string &scope) const override
void set_pals_edit_mode(ArtifactEditMode value)
void set_packing_strategy(PackingStrategyType value)
LayerValue< std::vector< std::string > > diagnostic_warnings_exclude(ConfigScopeType type, const std::string &scope) const override
void set_tile_sharing_packing(TileSharingPacking value)
void set_diagnostic_warnings_exclude(std::vector< std::string > value)
void set_max_map_data_size(std::size_t value)
void set_extrinsic_transparency(Rgba32 value)
LayerValue< std::size_t > num_pals_in_primary(ConfigScopeType type, const std::string &scope) const override
LayerValue< std::vector< std::string > > diagnostic_warnings_include(ConfigScopeType type, const std::string &scope) const override
void set_cross_tileset_anim_linking(bool value)
void set_tileset_animations_wire_anim_code(bool value)
LayerValue< std::size_t > num_tiles_in_primary(ConfigScopeType type, const std::string &scope) const override
void set_global_anim_multi_pal_subtile_resolution_strategy(AnimMultiPalSubtileResolutionStrategy value)
void set_tiles_edit_mode(ArtifactEditMode value)
LayerValue< TilesPalMode > tiles_pal_mode(ConfigScopeType type, const std::string &scope) const override
LayerValue< bool > tileset_animations_wire_anim_code(ConfigScopeType type, const std::string &scope) const override
void set_num_tiles_per_metatile(std::size_t value)
void set_packing_strategy_params(PackingStrategyParams value)
LayerValue< PrimaryPairingMode > primary_pairing_mode(ConfigScopeType type, const std::string &scope) const override
LayerValue< bool > pal_hints_enabled(ConfigScopeType type, const std::string &scope) const override
LayerValue< std::vector< std::string > > primary_pairing_partners(ConfigScopeType type, const std::string &scope) const override
void set_tileset_paths_primary_src(std::string value)
void set_diagnostic_remarks_include(std::vector< std::string > value)
LayerValue< std::string > tileset_paths_secondary_src(ConfigScopeType type, const std::string &scope) const override
LayerValue< Rgba32 > extrinsic_transparency(ConfigScopeType type, const std::string &scope) const override
void set_metatile_attr_size(std::size_t value)
void set_pal_hints(std::vector< PaletteHint > value)
LayerValue< ArtifactEditMode > pals_edit_mode(ConfigScopeType type, const std::string &scope) const override
void set_per_anim_overrides(PerAnimOverrides value)
void set_diagnostic_remarks_exclude(std::vector< std::string > value)
void set_tileset_paths_secondary_bin(std::string value)
void set_num_pals_in_primary(std::size_t value)
LayerValue< bool > verify_checksums(ConfigScopeType type, const std::string &scope) const override
LayerValue< ArtifactEditMode > tiles_edit_mode(ConfigScopeType type, const std::string &scope) const override
std::string name() const override
Gets the name of this ConfigProvider, useful for diagnostic purposes.
void set_diagnostic_warnings_include(std::vector< std::string > value)
LayerValue< std::size_t > num_tiles_total(ConfigScopeType type, const std::string &scope) const override
void set_num_pals_total(std::size_t value)
LayerValue< TileSharingAlignment > tile_sharing_alignment(ConfigScopeType type, const std::string &scope) const override
LayerValue< std::vector< std::string > > diagnostic_remarks_exclude(ConfigScopeType type, const std::string &scope) const override
LayerValue< std::size_t > num_tiles_per_metatile(ConfigScopeType type, const std::string &scope) const override
void set_verify_checksums(bool value)
LayerValue< TileSharingPacking > tile_sharing_packing(ConfigScopeType type, const std::string &scope) const override
LayerValue< PackingStrategyParams > packing_strategy_params(ConfigScopeType type, const std::string &scope) const override
LayerValue< std::size_t > num_metatiles_total(ConfigScopeType type, const std::string &scope) const override
void set_tile_sharing_alignment(TileSharingAlignment value)
void set_primary_pairing_partners(std::vector< std::string > value)
void set_global_anim_pal_resolution_strategy(AnimPalResolutionStrategy value)
void set_tiles_pal_mode(TilesPalMode value)
void set_tileset_paths_primary_bin(std::string value)
LayerValue< std::string > tileset_paths_primary_bin(ConfigScopeType type, const std::string &scope) const override
void set_num_tiles_in_primary(std::size_t value)
void set_pal_hints_enabled(bool value)
Represents a 32-bit RGBA color.
PrimaryPairingMode
Controls how a secondary tileset finds its partner primary for compilation.
TilesPalMode
Controls how tiles.png is rendered.
AnimPalResolutionStrategy
Strategy for determining which palette to use when decompiling animation tiles.
TileSharingAlignment
Controls palette slot alignment strategy for tile sharing deduplication.
AnimMultiPalSubtileResolutionStrategy
Strategy for handling animation subtiles referenced with multiple palettes.
ArtifactEditMode
Specifies whether artifacts (tiles or palettes) can be modified during patch compilation.
std::unordered_map< std::string, PerAnimOverride > PerAnimOverrides
Per-animation configuration map.
TileSharingPacking
Controls whether palette packing considers tile sharing shape group membership.
AnimKeyFrameResolutionStrategy
Strategy for handling duplicate key frame tiles in animation decompilation.
FrameLinking
Controls how animation frames are linked to metatile entries.
ConfigScopeType
Specifies the scope type for configuration value lookups.
PackingStrategyType
Selects the palette packing algorithm to use during tileset compilation.
A small container that holds an optional-wrapped value, validation state, and metadata about the valu...
Container for per-strategy packing parameters.