69 int* base_height)
const {
71 if (info ==
nullptr) {
74 if (base_width) *base_width = info->
base_width;
93 for (
int id = 0x01;
id <= 0x02;
id++) {
96 for (
int id = 0x03;
id <= 0x04;
id++) {
99 for (
int id = 0x05;
id <= 0x06;
id++) {
102 for (
int id = 0x07;
id <= 0x08;
id++) {
106 for (
int id = 0x0A;
id <= 0x0B;
id++) {
111 for (
int id : {0x0C, 0x0D, 0x10, 0x11, 0x14}) {
114 for (
int id : {0x0E, 0x0F, 0x12, 0x13}) {
117 for (
int id : {0x15, 0x18, 0x19, 0x1C, 0x1D, 0x20}) {
120 for (
int id : {0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F}) {
127 for (
int id = 0x23;
id <= 0x2E;
id++) {
154 for (
int id = 0x3F;
id <= 0x46;
id++) {
186 for (
int id = 0x61;
id <= 0x62;
id++) {
189 for (
int id = 0x63;
id <= 0x64;
id++) {
192 for (
int id = 0x65;
id <= 0x66;
id++) {
195 for (
int id = 0x67;
id <= 0x68;
id++) {
199 for (
int id = 0x6A;
id <= 0x6B;
id++) {
251 for (
int id = 0x97;
id <= 0x9F;
id++) {
297 for (
int id = 0xC5;
id <= 0xCA;
id++) {
325 for (
int id = 0xE0;
id <= 0xE8;
id++) {
328 for (
int id = 0xE9;
id <= 0xEF;
id++) {
333 for (
int id = 0xF0;
id <= 0xF7;
id++) {
337 for (
int id = 0xF9;
id <= 0xFD;
id++) {
344 for (
int id = 0x100;
id <= 0x107;
id++) {
347 for (
int id = 0x108;
id <= 0x10F;
id++) {
350 for (
int id = 0x110;
id <= 0x113;
id++) {
353 for (
int id = 0x114;
id <= 0x117;
id++) {
356 for (
int id = 0x118;
id <= 0x11B;
id++) {
379 for (
int id = 0x130;
id <= 0x133;
id++) {
399 for (
int id = 0xF83;
id <= 0xF89;
id++) {
402 for (
int id = 0xF8A;
id <= 0xF8C;
id++) {
419 for (
int id = 0xF9B;
id <= 0xF9D;
id++) {
422 for (
int id = 0xF9E;
id <= 0xFA1;
id++) {
425 for (
int id = 0xFA2;
id <= 0xFA5;
id++) {
428 for (
int id = 0xFA6;
id <= 0xFA9;
id++) {
441 for (
int id = 0xFB4;
id <= 0xFB9;
id++) {
448 for (
int id = 0xFBE;
id <= 0xFC6;
id++) {
459 for (
int id = 0xFCF;
id <= 0xFD3;
id++) {
464 for (
int id = 0xFD6;
id <= 0xFDA;
id++) {
475 for (
int id = 0xFE3;
id <= 0xFE5;
id++) {
500 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 kRightwardsHasEdge1x1_1to16_plus23
constexpr int kCustomObject
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.