#include <object_renderer.h>
Public Member Functions | |
DungeonObjectRenderer ()=default | |
void | LoadObject (uint32_t routine_ptr, std::array< uint8_t, 16 > &sheet_ids) |
void | ConfigureObject () |
void | RenderObject (uint32_t routine_ptr) |
void | UpdateObjectBitmap () |
gfx::Bitmap * | bitmap () |
auto | memory () |
auto | mutable_memory () |
Public Member Functions inherited from yaze::SharedRom | |
SharedRom ()=default | |
virtual | ~SharedRom ()=default |
std::shared_ptr< Rom > | shared_rom () |
auto | rom () |
Private Attributes | |
std::vector< uint8_t > | tilemap_ |
std::vector< uint8_t > | rom_data_ |
PseudoVram | vram_ |
emu::MemoryImpl | memory_ |
emu::CpuCallbacks | cpu_callbacks_ |
emu::Ppu | ppu {memory_} |
emu::Cpu | cpu {memory_, cpu_callbacks_} |
gfx::Bitmap | bitmap_ |
Additional Inherited Members | |
Static Public Attributes inherited from yaze::SharedRom | |
static std::shared_ptr< Rom > | shared_rom_ = nullptr |
Definition at line 19 of file object_renderer.h.
|
default |
void yaze::zelda3::DungeonObjectRenderer::LoadObject | ( | uint32_t | routine_ptr, |
std::array< uint8_t, 16 > & | sheet_ids ) |
Definition at line 6 of file object_renderer.cc.
References ConfigureObject(), memory_, RenderObject(), yaze::SharedRom::rom(), rom_data_, and vram_.
void yaze::zelda3::DungeonObjectRenderer::ConfigureObject | ( | ) |
void yaze::zelda3::DungeonObjectRenderer::RenderObject | ( | uint32_t | routine_ptr | ) |
Example: the STA $BF, $CD, $C2, $CE are the location of the object in the room $B2 is used for size loop so if object size is setted on 07 that draw code will be repeated 7 times and since Y is increasing by 4 it makes the object draw from left to right
RoomDraw_Rightwards2x2_1to15or32: #_018B89: JSR RoomDraw_GetSize_1to15or32 .next #_018B8C: JSR RoomDraw_Rightwards2x2 #_018B8F: DEC.b $B2 #_018B91: BNE .next #_018B93: RTS
RoomDraw_Rightwards2x2: #_019895: LDA.w RoomDrawObjectData+0,X #_019898: STA.b [$BF],Y #_01989A: LDA.w RoomDrawObjectData+2,X #_01989D: STA.b [$CB],Y #_01989F: LDA.w RoomDrawObjectData+4,X #_0198A2: STA.b [$C2],Y #_0198A4: LDA.w RoomDrawObjectData+6,X #_0198A7: STA.b [$CE],Y #_0198A9: INY #4 #_0198AD: RTS
Definition at line 61 of file object_renderer.cc.
References cpu, and UpdateObjectBitmap().
Referenced by LoadObject().
void yaze::zelda3::DungeonObjectRenderer::UpdateObjectBitmap | ( | ) |
Definition at line 82 of file object_renderer.cc.
References bitmap_, yaze::GraphicsSheetManager::GetInstance(), memory_, yaze::GraphicsSheetManager::mutable_gfx_sheets(), tilemap_, and vram_.
Referenced by RenderObject().
|
inline |
Definition at line 28 of file object_renderer.h.
References bitmap_.
|
inline |
Definition at line 29 of file object_renderer.h.
References memory_.
|
inline |
Definition at line 30 of file object_renderer.h.
References memory_.
|
private |
Definition at line 33 of file object_renderer.h.
Referenced by UpdateObjectBitmap().
|
private |
Definition at line 34 of file object_renderer.h.
Referenced by LoadObject().
|
private |
Definition at line 36 of file object_renderer.h.
Referenced by LoadObject(), and UpdateObjectBitmap().
|
private |
Definition at line 38 of file object_renderer.h.
Referenced by LoadObject(), memory(), mutable_memory(), and UpdateObjectBitmap().
|
private |
Definition at line 39 of file object_renderer.h.
Definition at line 40 of file object_renderer.h.
|
private |
Definition at line 41 of file object_renderer.h.
Referenced by ConfigureObject(), and RenderObject().
|
private |
Definition at line 43 of file object_renderer.h.
Referenced by bitmap(), and UpdateObjectBitmap().