#include <usage_preview.h>
Public Member Functions | |
| absl::Status | Configure (Rom *rom, zelda3::GameData *game_data, int spriteset, int palette_room, std::string hack_name={}) |
| void | SetVanillaSprite (uint8_t sprite_id) |
| Plays a vanilla sprite (single pose from the sprite catalog). | |
| void | SetZsm (const zsprite::ZSprite &zsm, int animation) |
Plays animation animation of a .zsm (the preview keeps a copy). | |
| bool | has_zsm () const |
| int | frame_count () const |
| Frames in the current animation (1 for vanilla sprites). | |
| int | frame () const |
| void | SetFrame (int frame) |
| bool | Advance (float seconds) |
| PreviewImage | RenderFrame (const SheetPixels &sheets) const |
Draws the current frame with sheets (edited pixels) over the ROM's. | |
| const std::array< uint8_t, 8 > & | slots () const |
| bool | UsesSheet (uint16_t sheet) const |
Private Member Functions | |
| std::vector< uint8_t > | SheetOrRom (const SheetPixels &sheets, uint16_t sheet) const |
Private Attributes | |
| Rom * | rom_ = nullptr |
| zelda3::GameData * | game_data_ = nullptr |
| std::array< uint8_t, 8 > | slots_ {} |
| std::array< SDL_Color, 256 > | colors_ {} |
| std::string | hack_name_ |
| uint8_t | sprite_id_ = 0 |
| std::optional< zsprite::ZSprite > | zsm_ |
| int | animation_ = 0 |
| int | frame_ = 0 |
| float | remainder_ = 0.0f |
Definition at line 175 of file usage_preview.h.
| absl::Status yaze::editor::usage_preview::SpriteUsagePreview::Configure | ( | Rom * | rom, |
| zelda3::GameData * | game_data, | ||
| int | spriteset, | ||
| int | palette_room, | ||
| std::string | hack_name = {} ) |
Sets the spriteset (sheets for OAM slots 4-7) and the palette source: the sprite palette of dungeon room palette_room, or the default sprite preview palettes when it is -1. hack_name selects project sprite layouts (SpriteOamRegistry::GetPreviewOverride).
Definition at line 387 of file usage_preview.cc.
References yaze::zelda3::BuildDungeonSpriteRenderPalette(), colors_, yaze::editor::internal::DefaultSpritePreviewPalettes(), game_data_, hack_name_, yaze::Rom::is_loaded(), yaze::zelda3::IsUnderworldSpriteset(), yaze::zelda3::LoadRoomHeaderFromRom(), yaze::zelda3::GameData::palette_groups, rom_, slots_, yaze::zelda3::GameData::spriteset_ids, and yaze::zelda3::SpriteSheetSlots().
| void yaze::editor::usage_preview::SpriteUsagePreview::SetVanillaSprite | ( | uint8_t | sprite_id | ) |
Plays a vanilla sprite (single pose from the sprite catalog).
Definition at line 427 of file usage_preview.cc.
References frame_, remainder_, sprite_id_, and zsm_.
| void yaze::editor::usage_preview::SpriteUsagePreview::SetZsm | ( | const zsprite::ZSprite & | zsm, |
| int | animation ) |
Plays animation animation of a .zsm (the preview keeps a copy).
Definition at line 434 of file usage_preview.cc.
References animation_, yaze::editor::zsprite::ZSprite::animations, frame_, remainder_, and zsm_.
|
inline |
Definition at line 188 of file usage_preview.h.
References zsm_.
| int yaze::editor::usage_preview::SpriteUsagePreview::frame_count | ( | ) | const |
Frames in the current animation (1 for vanilla sprites).
Definition at line 443 of file usage_preview.cc.
References zsm_.
Referenced by RenderFrame(), and SetFrame().
|
inline |
| void yaze::editor::usage_preview::SpriteUsagePreview::SetFrame | ( | int | frame | ) |
Definition at line 450 of file usage_preview.cc.
References frame(), frame_, frame_count(), and remainder_.
| bool yaze::editor::usage_preview::SpriteUsagePreview::Advance | ( | float | seconds | ) |
Advances by seconds at the animation's speed (60 ticks per second). Returns true when the frame changed.
Definition at line 455 of file usage_preview.cc.
References yaze::editor::sprite_authoring::Advance(), animation_, frame_, remainder_, and zsm_.
| PreviewImage yaze::editor::usage_preview::SpriteUsagePreview::RenderFrame | ( | const SheetPixels & | sheets | ) | const |
Draws the current frame with sheets (edited pixels) over the ROM's.
Definition at line 483 of file usage_preview.cc.
References yaze::editor::usage_preview::PreviewImage::colors, colors_, yaze::editor::SpriteDrawer::DrawFrame(), frame_, frame_count(), game_data_, yaze::zelda3::SpriteOamRegistry::GetPreviewOverride(), hack_name_, yaze::editor::usage_preview::PreviewImage::height, yaze::editor::usage_preview::PreviewImage::index0_transparent, yaze::editor::usage_preview::PreviewImage::pixels, yaze::zelda3::Sprite::preview_bounds(), yaze::zelda3::Sprite::preview_graphics(), yaze::zelda3::Sprite::RenderPreviewGraphics(), SheetOrRom(), slots_, sprite_id_, yaze::gfx::Bitmap::vector(), yaze::editor::usage_preview::PreviewImage::width, and zsm_.
|
inline |
Definition at line 201 of file usage_preview.h.
References slots_.
| bool yaze::editor::usage_preview::SpriteUsagePreview::UsesSheet | ( | uint16_t | sheet | ) | const |
Definition at line 464 of file usage_preview.cc.
References slots_.
|
private |
Definition at line 468 of file usage_preview.cc.
References game_data_, yaze::zelda3::GraphicsSheetStoreHolder::graphics_buffer, and yaze::editor::usage_preview::kSheetBytes.
Referenced by RenderFrame().
|
private |
Definition at line 208 of file usage_preview.h.
Referenced by Configure().
|
private |
Definition at line 209 of file usage_preview.h.
Referenced by Configure(), RenderFrame(), and SheetOrRom().
|
private |
Definition at line 210 of file usage_preview.h.
Referenced by Configure(), RenderFrame(), slots(), and UsesSheet().
|
private |
Definition at line 211 of file usage_preview.h.
Referenced by Configure(), and RenderFrame().
|
private |
Definition at line 212 of file usage_preview.h.
Referenced by Configure(), and RenderFrame().
|
private |
Definition at line 213 of file usage_preview.h.
Referenced by RenderFrame(), and SetVanillaSprite().
|
private |
Definition at line 214 of file usage_preview.h.
Referenced by Advance(), frame_count(), has_zsm(), RenderFrame(), SetVanillaSprite(), and SetZsm().
|
private |
Definition at line 215 of file usage_preview.h.
|
private |
Definition at line 216 of file usage_preview.h.
Referenced by Advance(), frame(), RenderFrame(), SetFrame(), SetVanillaSprite(), and SetZsm().
|
private |
Definition at line 217 of file usage_preview.h.
Referenced by Advance(), SetFrame(), SetVanillaSprite(), and SetZsm().