yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
crumble_floor_view.h
Go to the documentation of this file.
1#ifndef YAZE_APP_EDITOR_DUNGEON_UI_CRUMBLE_CRUMBLE_FLOOR_VIEW_H_
2#define YAZE_APP_EDITOR_DUNGEON_UI_CRUMBLE_CRUMBLE_FLOOR_VIEW_H_
3
4#include <string>
5
7
8namespace yaze {
9class Rom;
10namespace project {
11struct YazeProject;
12}
13namespace zelda3 {
14class Room;
15}
16namespace gui {
17struct CanvasRuntime;
18}
19namespace editor {
20
21// Source-backed recognition is separate from vanilla Holes 3. A base editing
22// ROM need not contain the assembled hook yet, but its dispatch vector must
23// resolve to the entry documented by the Oracle source manifest.
24bool HasOracleCrumbleTag(const Rom& rom, const project::YazeProject* project,
25 const zelda3::Room& room);
27
29 public:
30 void Sync(const Rom* rom, const project::YazeProject* project,
31 const zelda3::Room& room);
32 void DrawControls(bool interactive);
33 // Returns true while rehearsal owns canvas input, including its exit click.
34 bool DrawCanvas(const gui::CanvasRuntime& rt, bool interactive,
35 bool shortcut_focus);
36 void Stop() { rehearsing_ = false; }
37 void Reset() { *this = CrumbleFloorView{}; }
38 bool rehearsing() const { return rehearsing_; }
39 const CrumbleFloorModel& model() const { return model_; }
40
41 private:
45 const Rom* rom_ = nullptr;
47 int room_id_ = -1;
48 bool supported_ = false;
49 bool rehearsing_ = false;
50 std::string message_;
51};
52
53} // namespace editor
54} // namespace yaze
55#endif
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Definition rom.h:49
std::array< uint16_t, kCellCount > Words
void Sync(const Rom *rom, const project::YazeProject *project, const zelda3::Room &room)
const project::YazeProject * project_
CrumbleFloorModel::Words words_
const CrumbleFloorModel & model() const
bool DrawCanvas(const gui::CanvasRuntime &rt, bool interactive, bool shortcut_focus)
void DrawControls(bool interactive)
CrumbleFloorModel::Words ReadCrumbleFloorWords(const zelda3::Room &room)
bool HasOracleCrumbleTag(const Rom &rom, const project::YazeProject *project, const zelda3::Room &room)
Modern project structure with comprehensive settings consolidation.
Definition project.h:287