yaze
0.3.2
Link to the Past ROM Editor
Loading...
Searching...
No Matches
dungeon_room_edit.h
Go to the documentation of this file.
1
#ifndef YAZE_APP_EDITOR_DUNGEON_DUNGEON_ROOM_EDIT_H_
2
#define YAZE_APP_EDITOR_DUNGEON_DUNGEON_ROOM_EDIT_H_
3
4
#include "absl/status/status.h"
5
6
namespace
yaze::zelda3
{
7
class
Room;
8
}
9
10
namespace
yaze::editor
{
11
12
enum class
RoomMetadataField
{
13
kLayout
,
14
kBlockset
,
15
kFloor1
,
16
kFloor2
,
17
kPalette
,
18
kSpriteset
,
19
kMessage
,
20
kBg2
,
21
kEffect
,
22
kCollision
,
23
kTag1
,
24
kTag2
,
25
kHolewarp
,
26
kStaircaseRoom
,
27
kStaircasePlane
,
28
kPitPlane
,
29
};
30
31
struct
RoomMetadataEdit
{
32
RoomMetadataField
field
;
33
int
value
;
34
int
index
= 0;
// Only staircase fields have multiple slots (0-3).
35
};
36
37
struct
RoomMetadataRequest
{
38
int
room_id
;
39
RoomMetadataEdit
edit
;
40
};
41
42
// A batch validates every request before any target room is changed.
43
absl::Status
ValidateRoomMetadataEdit
(
const
RoomMetadataEdit
& edit);
44
45
// Validates the edited field before changing the room. Limits describe the
46
// existing supported authoring controls, not every raw value a hack may load.
47
// Unrelated values are preserved; undo must use Room::RestoreMetadataSnapshot
48
// to restore historical values even if they are outside the authoring range.
49
absl::Status
ApplyRoomMetadataEdit
(
zelda3::Room
& room,
50
const
RoomMetadataEdit
& edit);
51
52
}
// namespace yaze::editor
53
54
#endif
// YAZE_APP_EDITOR_DUNGEON_DUNGEON_ROOM_EDIT_H_
yaze::zelda3::Room
Definition
room.h:228
yaze::editor
Editors are the view controllers for the application.
Definition
patch_export_usage.cc:9
yaze::editor::ValidateRoomMetadataEdit
absl::Status ValidateRoomMetadataEdit(const RoomMetadataEdit &edit)
Definition
dungeon_room_edit.cc:53
yaze::editor::ApplyRoomMetadataEdit
absl::Status ApplyRoomMetadataEdit(zelda3::Room &room, const RoomMetadataEdit &edit)
Definition
dungeon_room_edit.cc:69
yaze::editor::RoomMetadataField
RoomMetadataField
Definition
dungeon_room_edit.h:12
yaze::editor::RoomMetadataField::kStaircaseRoom
@ kStaircaseRoom
yaze::editor::RoomMetadataField::kFloor2
@ kFloor2
yaze::editor::RoomMetadataField::kStaircasePlane
@ kStaircasePlane
yaze::editor::RoomMetadataField::kCollision
@ kCollision
yaze::editor::RoomMetadataField::kBlockset
@ kBlockset
yaze::editor::RoomMetadataField::kHolewarp
@ kHolewarp
yaze::editor::RoomMetadataField::kSpriteset
@ kSpriteset
yaze::editor::RoomMetadataField::kMessage
@ kMessage
yaze::editor::RoomMetadataField::kTag2
@ kTag2
yaze::editor::RoomMetadataField::kPalette
@ kPalette
yaze::editor::RoomMetadataField::kPitPlane
@ kPitPlane
yaze::editor::RoomMetadataField::kEffect
@ kEffect
yaze::editor::RoomMetadataField::kFloor1
@ kFloor1
yaze::editor::RoomMetadataField::kBg2
@ kBg2
yaze::editor::RoomMetadataField::kLayout
@ kLayout
yaze::editor::RoomMetadataField::kTag1
@ kTag1
yaze::zelda3
Zelda 3 specific classes and functions.
Definition
dungeon_entrance_camera.h:9
yaze::editor::RoomMetadataEdit
Definition
dungeon_room_edit.h:31
yaze::editor::RoomMetadataEdit::value
int value
Definition
dungeon_room_edit.h:33
yaze::editor::RoomMetadataEdit::field
RoomMetadataField field
Definition
dungeon_room_edit.h:32
yaze::editor::RoomMetadataEdit::index
int index
Definition
dungeon_room_edit.h:34
yaze::editor::RoomMetadataRequest
Definition
dungeon_room_edit.h:37
yaze::editor::RoomMetadataRequest::room_id
int room_id
Definition
dungeon_room_edit.h:38
yaze::editor::RoomMetadataRequest::edit
RoomMetadataEdit edit
Definition
dungeon_room_edit.h:39
src
app
editor
dungeon
dungeon_room_edit.h
Generated by
1.10.0