3#include "absl/strings/str_format.h"
54 if (!HasValidMetadataSlot(edit)) {
55 return absl::InvalidArgumentError(
"Invalid room metadata field slot");
57 const int maximum = MetadataMaximum(edit.
field);
59 return absl::InvalidArgumentError(
"Unknown room metadata field");
62 return absl::InvalidArgumentError(absl::StrFormat(
63 "Room metadata value %d is outside the supported range 0..%d",
64 edit.
value, maximum));
66 return absl::OkStatus();
73 if (!HasValidMetadataSlot(edit) || edit.
value < 0 ||
78 const uint8_t value =
static_cast<uint8_t
>(edit.
value);
129 return absl::OkStatus();
void set_floor2(uint8_t value)
void SetStaircaseRoom(int index, uint8_t room)
void set_floor1(uint8_t value)
void SetTag2(TagKey tag2)
void SetLayoutId(uint8_t id)
void SetHolewarp(uint8_t hw)
void SetCollision(CollisionKey collision)
void SetStaircasePlane(int index, uint8_t plane)
void SetEffect(EffectKey effect)
void SetTag1(TagKey tag1)
void SetPitsTargetLayer(uint8_t layer)
void SetBg2(background2 bg2)
void SetSpriteset(uint8_t ss)
void SetBlockset(uint8_t bs)
void SetPalette(uint8_t pal)
void SetMessageId(uint16_t mid)
zelda3_bg2_effect
Background layer 2 effects.
bool HasValidMetadataSlot(const RoomMetadataEdit &edit)
int MetadataMaximum(RoomMetadataField field)
Editors are the view controllers for the application.
absl::Status ValidateRoomMetadataEdit(const RoomMetadataEdit &edit)
absl::Status ApplyRoomMetadataEdit(zelda3::Room &room, const RoomMetadataEdit &edit)
constexpr int kMaxDungeonSpriteset