feat: Enhance Agent Tools with Dialogue, Music, and Sprite Commands

- Added new command handlers for dialogue inspection tools: `dialogue-list`, `dialogue-read`, and `dialogue-search`, allowing users to interact with dialogue messages in the ROM.
- Introduced music data tools: `music-list`, `music-info`, and `music-tracks`, enabling users to retrieve information about music tracks and their properties.
- Implemented sprite property tools: `sprite-list`, `sprite-properties`, and `sprite-palette`, providing access to sprite details and color palettes.
- Updated the command dispatcher to support the new tools, enhancing the functionality and usability of the CLI for users working with ROM data.
This commit is contained in:
scawful
2025-10-06 01:10:50 -04:00
parent e0f0805426
commit 73df4af850
8 changed files with 1180 additions and 2 deletions

View File

@@ -100,6 +100,15 @@ class AgentChatWidget {
};
void RenderSnapshotPreviewPanel();
// Screenshot preview and region selection
void LoadScreenshotPreview(const std::filesystem::path& image_path);
void UnloadScreenshotPreview();
void RenderScreenshotPreview();
void RenderRegionSelection();
void BeginRegionSelection();
void HandleRegionSelection();
void CaptureSelectedRegion();
void SetToastManager(ToastManager* toast_manager);
@@ -149,7 +158,26 @@ public:
enum class CaptureMode {
kFullWindow = 0,
kActiveEditor = 1,
kSpecificWindow = 2
kSpecificWindow = 2,
kRegionSelect = 3 // New: drag to select region
};
struct ScreenshotPreviewState {
void* texture_id = nullptr; // ImTextureID
int width = 0;
int height = 0;
bool loaded = false;
float preview_scale = 1.0f;
bool show_preview = true;
};
struct RegionSelectionState {
bool active = false;
bool dragging = false;
ImVec2 start_pos;
ImVec2 end_pos;
ImVec2 selection_min;
ImVec2 selection_max;
};
struct MultimodalState {
@@ -158,6 +186,8 @@ public:
absl::Time last_updated = absl::InfinitePast();
CaptureMode capture_mode = CaptureMode::kActiveEditor;
char specific_window_buffer[128] = {};
ScreenshotPreviewState preview;
RegionSelectionState region_selection;
};
struct AutomationState {