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 { return blockset_usage_; }
29 const absl::flat_hash_map<uint16_t, int>& GetSpritesetUsage() const { return spriteset_usage_; }
30 const absl::flat_hash_map<uint16_t, int>& GetPaletteUsage() const { return palette_usage_; }
31
32 // Selection state
33 uint16_t GetSelectedBlockset() const { return selected_blockset_; }
34 uint16_t GetSelectedSpriteset() const { return selected_spriteset_; }
35 uint16_t GetSelectedPalette() const { return selected_palette_; }
36
37 void SetSelectedBlockset(uint16_t blockset) { selected_blockset_ = blockset; }
38 void SetSelectedSpriteset(uint16_t spriteset) { selected_spriteset_ = spriteset; }
39 void SetSelectedPalette(uint16_t palette) { selected_palette_ = palette; }
40
41 // Clear data
42 void ClearUsageStats();
43
44 private:
45 absl::flat_hash_map<uint16_t, int> spriteset_usage_;
46 absl::flat_hash_map<uint16_t, int> blockset_usage_;
47 absl::flat_hash_map<uint16_t, int> palette_usage_;
48
49 uint16_t selected_blockset_ = 0xFFFF; // 0xFFFF indicates no selection
50 uint16_t selected_spriteset_ = 0xFFFF;
51 uint16_t selected_palette_ = 0xFFFF;
52};
53
54} // namespace editor
55} // namespace yaze
56
57#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_
Main namespace for the application.