56 int routine_id)
const {
70 int* base_height)
const {
72 if (info ==
nullptr) {
96 for (
int id = 0x01;
id <= 0x02;
id++) {
99 for (
int id = 0x03;
id <= 0x04;
id++) {
102 for (
int id = 0x05;
id <= 0x06;
id++) {
105 for (
int id = 0x07;
id <= 0x08;
id++) {
109 for (
int id = 0x0A;
id <= 0x0B;
id++) {
114 for (
int id : {0x0C, 0x0D, 0x10, 0x11, 0x14}) {
117 for (
int id : {0x0E, 0x0F, 0x12, 0x13}) {
120 for (
int id : {0x15, 0x18, 0x19, 0x1C, 0x1D, 0x20}) {
123 for (
int id : {0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F}) {
130 for (
int id = 0x23;
id <= 0x2E;
id++) {
159 for (
int id = 0x3F;
id <= 0x46;
id++) {
191 for (
int id = 0x61;
id <= 0x62;
id++) {
194 for (
int id = 0x63;
id <= 0x64;
id++) {
197 for (
int id = 0x65;
id <= 0x66;
id++) {
200 for (
int id = 0x67;
id <= 0x68;
id++) {
204 for (
int id = 0x6A;
id <= 0x6B;
id++) {
259 for (
int id = 0x97;
id <= 0x9F;
id++) {
305 for (
int id = 0xC5;
id <= 0xCA;
id++) {
333 for (
int id = 0xE0;
id <= 0xE8;
id++) {
336 for (
int id = 0xE9;
id <= 0xEF;
id++) {
341 for (
int id = 0xF0;
id <= 0xF7;
id++) {
345 for (
int id = 0xF9;
id <= 0xFD;
id++) {
352 for (
int id = 0x100;
id <= 0x107;
id++) {
355 for (
int id = 0x108;
id <= 0x10F;
id++) {
358 for (
int id = 0x110;
id <= 0x113;
id++) {
361 for (
int id = 0x114;
id <= 0x117;
id++) {
364 for (
int id = 0x118;
id <= 0x11B;
id++) {
387 for (
int id = 0x130;
id <= 0x133;
id++) {
407 for (
int id = 0xF83;
id <= 0xF89;
id++) {
410 for (
int id = 0xF8A;
id <= 0xF8C;
id++) {
427 for (
int id = 0xF9B;
id <= 0xF9D;
id++) {
430 for (
int id = 0xF9E;
id <= 0xFA1;
id++) {
433 for (
int id = 0xFA2;
id <= 0xFA5;
id++) {
436 for (
int id = 0xFA6;
id <= 0xFA9;
id++) {
449 for (
int id = 0xFB4;
id <= 0xFB9;
id++) {
456 for (
int id = 0xFBE;
id <= 0xFC6;
id++) {
467 for (
int id = 0xFCF;
id <= 0xFD3;
id++) {
472 for (
int id = 0xFD6;
id <= 0xFD9;
id++) {
484 for (
int id = 0xFE3;
id <= 0xFE5;
id++) {
509 for (
int id = 0xFFC;
id <= 0xFFE;
id++) {
Unified draw routine registry.
const DrawRoutineInfo * GetRoutineInfo(int routine_id) const
void BuildObjectMapping()
bool GetRoutineDimensions(int routine_id, int *base_width, int *base_height) const
std::unordered_map< int16_t, int > object_to_routine_map_
bool RoutineDrawsToBothBGs(int routine_id) const
std::unordered_map< int, const DrawRoutineInfo * > routine_map_
int GetRoutineIdForObject(int16_t object_id) const
std::vector< DrawRoutineInfo > routines_
void RefreshFeatureFlagMappings()
static DrawRoutineRegistry & Get()
constexpr int kWaterHopStairsA
constexpr int kAgahnimsAltar
constexpr int kDamFloodGate
constexpr int kSanctuaryWall
constexpr int kVitreousGooDamage
constexpr int kDownwardsEdge1x1_1to16plus7
constexpr int kRightwardsHasEdge1x1_1to16_plus23
constexpr int kMagicBatAltar
constexpr int kWaterHopStairsB
constexpr int kBigGrayRock
constexpr int kSmithyFurnace
constexpr int kFloorLight
constexpr int kCustomObject
constexpr int kWeird2x4_1to16
constexpr int kFortuneTellerRoom
constexpr int kBigWallDecor
constexpr int kDownwardsHasEdge1x1_1to16_plus23
void RegisterDiagonalRoutines(std::vector< DrawRoutineInfo > ®istry)
Register all diagonal draw routines to the registry.
void RegisterCornerRoutines(std::vector< DrawRoutineInfo > ®istry)
Register all corner draw routines to the registry.
void RegisterDownwardsRoutines(std::vector< DrawRoutineInfo > ®istry)
Register all downwards draw routines to the registry.
void RegisterRightwardsRoutines(std::vector< DrawRoutineInfo > ®istry)
Register all rightwards draw routines to the registry.
void RegisterSpecialRoutines(std::vector< DrawRoutineInfo > ®istry)
Register all special/miscellaneous draw routines to the registry.
bool kEnableCustomObjects
Metadata about a draw routine.