yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
dungeon_connection_edit.h
Go to the documentation of this file.
1#ifndef YAZE_APP_EDITOR_DUNGEON_DUNGEON_CONNECTION_EDIT_H_
2#define YAZE_APP_EDITOR_DUNGEON_DUNGEON_CONNECTION_EDIT_H_
3
4#include <cstddef>
5#include <vector>
6
7#include "absl/status/statusor.h"
9
10namespace yaze::editor {
11
13
19
22 const Rom* rom = nullptr;
25 std::vector<zelda3::Room::Door> source_before;
26 std::vector<zelda3::Room::Door> source_after;
27 std::vector<zelda3::Room::Door> target_before;
28 std::vector<zelda3::Room::Door> target_after;
29 bool creates_return = false;
30 bool changed() const;
31};
32
33// Ordinary outer-wall normal doors only. Internal seams, exits, markers,
34// shutters, key doors and explicit destinations require other authoring rules.
35// Geometric adjacency never wraps rows or crosses a 256-room engine page.
36absl::StatusOr<int> DungeonConnectionTargetRoom(int source_room_id,
37 const zelda3::Room::Door& door);
38
39// Pure two-room preflight: retains unrelated records, never writes room or ROM
40// state, and rejects ambiguous/overlapping endpoints rather than choosing one.
41// Object-stream allocation remains the editor persistence boundary's concern.
42absl::StatusOr<DungeonConnectionPlan> PlanDungeonDoorConnection(
43 const zelda3::Room& source, const zelda3::Room& target,
44 const DungeonConnectionRequest& request);
45
46bool SameDungeonDoors(const std::vector<zelda3::Room::Door>& first,
47 const std::vector<zelda3::Room::Door>& second);
48
49} // namespace yaze::editor
50
51#endif // YAZE_APP_EDITOR_DUNGEON_DUNGEON_CONNECTION_EDIT_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:49
Editors are the view controllers for the application.
bool SameDungeonDoors(const std::vector< Door > &first, const std::vector< Door > &second)
absl::StatusOr< int > DungeonConnectionTargetRoom(int source_room_id, const Door &door)
absl::StatusOr< DungeonConnectionPlan > PlanDungeonDoorConnection(const zelda3::Room &source, const zelda3::Room &target, const DungeonConnectionRequest &request)
std::vector< zelda3::Room::Door > target_after
std::vector< zelda3::Room::Door > target_before
std::vector< zelda3::Room::Door > source_before
std::vector< zelda3::Room::Door > source_after
Represents a door in a dungeon room.
Definition room.h:339