yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
memory_editor.h
Go to the documentation of this file.
1#ifndef YAZE_APP_EDITOR_CODE_MEMORY_EDITOR_H
2#define YAZE_APP_EDITOR_CODE_MEMORY_EDITOR_H
3
4#include "absl/container/flat_hash_map.h"
5#include "app/editor/editor.h"
8#include "rom/rom.h"
9#include "rom/snes.h"
10#include "imgui/imgui.h"
11#include "util/file_util.h"
12#include "util/macro.h"
13
14namespace yaze {
15namespace editor {
16
17using ImGui::SameLine;
18using ImGui::Text;
19
20class MemoryEditor : public Editor {
21 public:
22 explicit MemoryEditor(Rom* rom = nullptr) : rom_(rom) {
24 }
25
26 void SetDependencies(const EditorDependencies& deps) override {
28 rom_ = deps.rom;
29 }
30
31 void Initialize() override {}
32 absl::Status Load() override { return absl::OkStatus(); }
33 absl::Status Save() override { return absl::OkStatus(); }
34 absl::Status Update() override;
35
36 absl::Status Undo() override { return absl::OkStatus(); }
37 absl::Status Redo() override { return absl::OkStatus(); }
38 absl::Status Cut() override { return absl::OkStatus(); }
39 absl::Status Copy() override { return absl::OkStatus(); }
40 absl::Status Paste() override { return absl::OkStatus(); }
41 absl::Status Find() override { return absl::OkStatus(); }
42
43 // Set the ROM pointer
44 void SetRom(Rom* rom) { rom_ = rom; }
45
46 // Get the ROM pointer
47 Rom* rom() const { return rom_; }
48
49 private:
50 void DrawToolbar();
52 void DrawSearchPopup();
53 void DrawBookmarksPopup();
54
58 bool show_compare_rom_ = false;
60
61 // Toolbar state
62 char jump_address_[16] = "0x000000";
63 char search_pattern_[256] = "";
64 uint32_t current_address_ = 0;
65
66 struct Bookmark {
67 uint32_t address;
68 std::string name;
69 std::string description;
70 };
71 std::vector<Bookmark> bookmarks_;
72};
73
74} // namespace editor
75} // namespace yaze
76
77#endif // YAZE_APP_EDITOR_CODE_MEMORY_EDITOR_H
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Definition rom.h:28
Interface for editor classes.
Definition editor.h:236
virtual void SetDependencies(const EditorDependencies &deps)
Definition editor.h:241
EditorType type_
Definition editor.h:305
absl::Status Copy() override
absl::Status Load() override
absl::Status Save() override
std::vector< Bookmark > bookmarks_
gui::MemoryEditorWidget memory_widget_
absl::Status Cut() override
absl::Status Update() override
absl::Status Redo() override
void SetDependencies(const EditorDependencies &deps) override
absl::Status Find() override
gui::MemoryEditorWidget comparison_widget_
absl::Status Paste() override
absl::Status Undo() override
MemoryEditor(Rom *rom=nullptr)
Unified dependency container for all editor types.
Definition editor.h:163