yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
dungeon_usage_tracker.h
Go to the documentation of this file.
1#ifndef YAZE_APP_EDITOR_DUNGEON_DUNGEON_USAGE_TRACKER_H
2#define YAZE_APP_EDITOR_DUNGEON_DUNGEON_USAGE_TRACKER_H
3
4#include "absl/container/flat_hash_map.h"
6
7namespace yaze {
8namespace editor {
9
17 public:
19
20 // Statistics calculation
21 void CalculateUsageStats(const std::array<zelda3::Room, 0x128>& rooms);
22 void DrawUsageStats();
23 void DrawUsageGrid();
24 void RenderSetUsage(const absl::flat_hash_map<uint16_t, int>& usage_map,
25 uint16_t& selected_set, int spriteset_offset = 0x00);
26
27 // Data access
28 const absl::flat_hash_map<uint16_t, int>& GetBlocksetUsage() const {
29 return blockset_usage_;
30 }
31 const absl::flat_hash_map<uint16_t, int>& GetSpritesetUsage() const {
32 return spriteset_usage_;
33 }
34 const absl::flat_hash_map<uint16_t, int>& GetPaletteUsage() const {
35 return palette_usage_;
36 }
37
38 // Selection state
39 uint16_t GetSelectedBlockset() const { return selected_blockset_; }
40 uint16_t GetSelectedSpriteset() const { return selected_spriteset_; }
41 uint16_t GetSelectedPalette() const { return selected_palette_; }
42
43 void SetSelectedBlockset(uint16_t blockset) { selected_blockset_ = blockset; }
44 void SetSelectedSpriteset(uint16_t spriteset) {
45 selected_spriteset_ = spriteset;
46 }
47 void SetSelectedPalette(uint16_t palette) { selected_palette_ = palette; }
48
49 // Clear data
50 void ClearUsageStats();
51
52 private:
53 absl::flat_hash_map<uint16_t, int> spriteset_usage_;
54 absl::flat_hash_map<uint16_t, int> blockset_usage_;
55 absl::flat_hash_map<uint16_t, int> palette_usage_;
56
57 uint16_t selected_blockset_ = 0xFFFF; // 0xFFFF indicates no selection
58 uint16_t selected_spriteset_ = 0xFFFF;
59 uint16_t selected_palette_ = 0xFFFF;
60};
61
62} // namespace editor
63} // namespace yaze
64
65#endif // YAZE_APP_EDITOR_DUNGEON_DUNGEON_USAGE_TRACKER_H
Tracks and analyzes usage statistics for dungeon resources.
const absl::flat_hash_map< uint16_t, int > & GetSpritesetUsage() const
absl::flat_hash_map< uint16_t, int > palette_usage_
const absl::flat_hash_map< uint16_t, int > & GetPaletteUsage() const
void SetSelectedSpriteset(uint16_t spriteset)
void CalculateUsageStats(const std::array< zelda3::Room, 0x128 > &rooms)
const absl::flat_hash_map< uint16_t, int > & GetBlocksetUsage() const
void RenderSetUsage(const absl::flat_hash_map< uint16_t, int > &usage_map, uint16_t &selected_set, int spriteset_offset=0x00)
absl::flat_hash_map< uint16_t, int > spriteset_usage_
void SetSelectedBlockset(uint16_t blockset)
absl::flat_hash_map< uint16_t, int > blockset_usage_