1#ifndef YAZE_ZELDA3_DUNGEON_OBJECT_LAYER_SEMANTICS_H_
2#define YAZE_ZELDA3_DUNGEON_OBJECT_LAYER_SEMANTICS_H_
33 const auto options =
object.options();
47 const int subtype =
object.size_ & 0x1F;
57 const bool routine_both =
121 if (
object.all_bgs_) {
148 return "Stored placement";
150 return "BG1 (fixed)";
152 return "BG2 (fixed)";
154 return "Both BGs (full)";
156 return "Mixed BG1/BG2";
167 ?
"BG2 (stored placement)"
168 :
"BG1 (stored placement)";
static CustomObjectManager & Get()
absl::StatusOr< std::shared_ptr< CustomObject > > GetObjectInternal(int object_id, int subtype)
bool RoutineDrawsToBothBGs(int routine_id) const
int GetRoutineIdForObject(int16_t object_id) const
static DrawRoutineRegistry & Get()
constexpr int kStraightInterRoomStairs
constexpr int kAgahnimsAltar
constexpr int kSanctuaryWall
constexpr int kAutoStairs
constexpr int kFortuneTellerRoom
constexpr bool IsFullBothAutoStairsObject(int object_id)
constexpr bool IsMixedStraightInterroomObject(int object_id)
ObjectLayerSemantics GetObjectLayerSemantics(const RoomObject &object)
const char * ObjectRenderRoutingLabel(ObjectRenderRouting routing)
const char * ObjectRenderRoutingToken(ObjectRenderRouting routing)
ObjectLayerSemantics GetEffectiveObjectLayerSemantics(const RoomObject &object)
const char * ObjectRenderRoutingDisplayLabel(const ObjectLayerSemantics &semantics)
bool UsesRoomObjectStream(const RoomObject &object)
bool UsesSpecialLayerSelector(const RoomObject &object)
bool HasActiveCustomObjectOverride(const RoomObject &object)
const char * EffectiveBgLayerLabel(EffectiveBgLayer layer)
ObjectRenderRouting render_routing
EffectiveBgLayer effective_bg_layer
bool custom_override_active