1#ifndef YAZE_ZELDA3_OVERWORLD_SPRITE_IO_H
2#define YAZE_ZELDA3_OVERWORLD_SPRITE_IO_H
9#include "absl/status/statusor.h"
31 std::array<std::array<std::optional<OverworldSpriteBytes>, 160>, 3>;
39 const Rom& rom,
int pointer_address);
70 const Rom& rom,
int state,
int map,
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Zelda 3 specific classes and functions.
std::vector< uint8_t > OverworldSpriteBytes
absl::StatusOr< OverworldSpriteListEditPlan > PlanOverworldSpriteListEdit(const Rom &rom, int state, int map, const OverworldSpriteBytes &replacement)
constexpr int kOverworldSpriteDataEnd
constexpr int kRoomSpritePointerTableOperand
absl::StatusOr< OverworldSpriteBytes > ReadOverworldSpriteList(const Rom &rom, int pointer_address)
absl::Status ApplyOverworldSpriteSave(Rom &rom, const OverworldSpriteSavePlan &plan)
constexpr int kOverworldSpriteDataStart
int GetOverworldSpriteRegionEnd(const Rom &rom)
const char * OverworldSpriteEditStrategyName(OverworldSpriteEditStrategy s)
std::array< std::array< std::optional< OverworldSpriteBytes >, 160 >, 3 > OverworldSpriteEdits
absl::StatusOr< OverworldSpriteSavePlan > PlanOverworldSpriteSave(const Rom &rom, const OverworldSpriteEdits &edits)
OverworldSpriteLayout GetOverworldSpriteLayout(const Rom &rom)
std::vector< OverworldSpriteWrite > OverworldSpriteSavePlan
OverworldSpriteEditStrategy
std::array< int, 3 > tables
std::array< int, 3 > counts
OverworldSpriteSavePlan writes
OverworldSpriteBytes old_bytes
OverworldSpriteEditStrategy strategy
std::vector< std::pair< int, int > > sharers
OverworldSpriteBytes new_bytes
std::vector< uint8_t > bytes