yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::zelda3::DrawRoutineRegistry Class Reference

Unified draw routine registry. More...

#include <draw_routine_registry.h>

Public Member Functions

void Initialize ()
 
void RefreshFeatureFlagMappings ()
 
const DrawRoutineInfoGetRoutineInfo (int routine_id) const
 
const std::vector< DrawRoutineInfo > & GetAllRoutines () const
 
bool RoutineDrawsToBothBGs (int routine_id) const
 
bool GetRoutineDimensions (int routine_id, int *base_width, int *base_height) const
 
int GetRoutineIdForObject (int16_t object_id) const
 

Static Public Member Functions

static DrawRoutineRegistryGet ()
 

Private Member Functions

 DrawRoutineRegistry ()=default
 
void BuildRegistry ()
 
void BuildObjectMapping ()
 

Private Attributes

std::vector< DrawRoutineInforoutines_
 
std::unordered_map< int, const DrawRoutineInfo * > routine_map_
 
std::unordered_map< int16_t, int > object_to_routine_map_
 
bool initialized_ = false
 

Detailed Description

Unified draw routine registry.

Singleton that provides draw routine metadata for both ObjectDrawer and ObjectGeometry. This ensures both systems use the same routine IDs and dimension calculations.

Definition at line 175 of file draw_routine_registry.h.

Constructor & Destructor Documentation

◆ DrawRoutineRegistry()

yaze::zelda3::DrawRoutineRegistry::DrawRoutineRegistry ( )
privatedefault

Member Function Documentation

◆ Get()

◆ Initialize()

void yaze::zelda3::DrawRoutineRegistry::Initialize ( )

Definition at line 21 of file draw_routine_registry.cc.

References BuildRegistry(), and initialized_.

Referenced by Get(), and RefreshFeatureFlagMappings().

Here is the call graph for this function:

◆ RefreshFeatureFlagMappings()

void yaze::zelda3::DrawRoutineRegistry::RefreshFeatureFlagMappings ( )

◆ GetRoutineInfo()

const DrawRoutineInfo * yaze::zelda3::DrawRoutineRegistry::GetRoutineInfo ( int routine_id) const

◆ GetAllRoutines()

const std::vector< DrawRoutineInfo > & yaze::zelda3::DrawRoutineRegistry::GetAllRoutines ( ) const
inline

Definition at line 189 of file draw_routine_registry.h.

References routines_.

◆ RoutineDrawsToBothBGs()

bool yaze::zelda3::DrawRoutineRegistry::RoutineDrawsToBothBGs ( int routine_id) const

◆ GetRoutineDimensions()

bool yaze::zelda3::DrawRoutineRegistry::GetRoutineDimensions ( int routine_id,
int * base_width,
int * base_height ) const

Definition at line 67 of file draw_routine_registry.cc.

References yaze::zelda3::DrawRoutineInfo::base_height, yaze::zelda3::DrawRoutineInfo::base_width, and GetRoutineInfo().

Here is the call graph for this function:

◆ GetRoutineIdForObject()

int yaze::zelda3::DrawRoutineRegistry::GetRoutineIdForObject ( int16_t object_id) const

◆ BuildRegistry()

◆ BuildObjectMapping()

Member Data Documentation

◆ routines_

std::vector<DrawRoutineInfo> yaze::zelda3::DrawRoutineRegistry::routines_
private

Definition at line 205 of file draw_routine_registry.h.

Referenced by BuildRegistry(), and GetAllRoutines().

◆ routine_map_

std::unordered_map<int, const DrawRoutineInfo*> yaze::zelda3::DrawRoutineRegistry::routine_map_
private

Definition at line 206 of file draw_routine_registry.h.

Referenced by BuildRegistry(), and GetRoutineInfo().

◆ object_to_routine_map_

std::unordered_map<int16_t, int> yaze::zelda3::DrawRoutineRegistry::object_to_routine_map_
private

Definition at line 207 of file draw_routine_registry.h.

Referenced by BuildObjectMapping(), and GetRoutineIdForObject().

◆ initialized_

bool yaze::zelda3::DrawRoutineRegistry::initialized_ = false
private

Definition at line 208 of file draw_routine_registry.h.

Referenced by Get(), Initialize(), and RefreshFeatureFlagMappings().


The documentation for this class was generated from the following files: