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"
7
8namespace yaze {
9namespace editor {
10
18 public:
20
21 // Statistics calculation
22 void CalculateUsageStats(const DungeonRoomStore& rooms);
23 void DrawUsageStats();
24 void DrawUsageGrid();
25 void RenderSetUsage(const absl::flat_hash_map<uint16_t, int>& usage_map,
26 uint16_t& selected_set, int spriteset_offset = 0x00);
27
28 // Data access
29 const absl::flat_hash_map<uint16_t, int>& GetBlocksetUsage() const {
30 return blockset_usage_;
31 }
32 const absl::flat_hash_map<uint16_t, int>& GetSpritesetUsage() const {
33 return spriteset_usage_;
34 }
35 const absl::flat_hash_map<uint16_t, int>& GetPaletteUsage() const {
36 return palette_usage_;
37 }
38
39 // Selection state
40 uint16_t GetSelectedBlockset() const { return selected_blockset_; }
41 uint16_t GetSelectedSpriteset() const { return selected_spriteset_; }
42 uint16_t GetSelectedPalette() const { return selected_palette_; }
43
44 void SetSelectedBlockset(uint16_t blockset) { selected_blockset_ = blockset; }
45 void SetSelectedSpriteset(uint16_t spriteset) {
46 selected_spriteset_ = spriteset;
47 }
48 void SetSelectedPalette(uint16_t palette) { selected_palette_ = palette; }
49
50 // Clear data
51 void ClearUsageStats();
52
53 private:
54 absl::flat_hash_map<uint16_t, int> spriteset_usage_;
55 absl::flat_hash_map<uint16_t, int> blockset_usage_;
56 absl::flat_hash_map<uint16_t, int> palette_usage_;
57
58 uint16_t selected_blockset_ = 0xFFFF; // 0xFFFF indicates no selection
59 uint16_t selected_spriteset_ = 0xFFFF;
60 uint16_t selected_palette_ = 0xFFFF;
61};
62
63} // namespace editor
64} // namespace yaze
65
66#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)
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 CalculateUsageStats(const DungeonRoomStore &rooms)
void SetSelectedBlockset(uint16_t blockset)
absl::flat_hash_map< uint16_t, int > blockset_usage_