yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
overworld_allocation.h File Reference

Read-only map of overworld area IDs $00-$BF: which IDs are used, which per-area tables cover each ID, and whether yaze's TailMapExpansion.asm patch ($A0-$BF) is safe to apply to a ROM. More...

#include <array>
#include <cstddef>
#include <cstdint>
#include <functional>
#include <map>
#include <optional>
#include <string>
#include <vector>
#include "absl/status/statusor.h"
#include "rom/rom.h"
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  yaze::zelda3::AreaTableInfo
 One table the game or yaze indexes with an overworld area ID. More...
 
struct  yaze::zelda3::MapStreamScan
 
struct  yaze::zelda3::AreaAllocation
 
struct  yaze::zelda3::WorldAllocationSummary
 
struct  yaze::zelda3::OverworldAllocationOptions
 
struct  yaze::zelda3::OverworldAllocationReport
 
struct  yaze::zelda3::TailMapExpansionPlan
 
struct  yaze::zelda3::TailCheckFinding
 
struct  yaze::zelda3::TailCheckRegion
 
struct  yaze::zelda3::TailCheckOperand
 
struct  yaze::zelda3::TailStreamCheck
 
struct  yaze::zelda3::TailCheckAnnotator
 
struct  yaze::zelda3::TailMapExpansionCheck
 

Namespaces

namespace  yaze
 
namespace  yaze::zelda3
 Zelda 3 specific classes and functions.
 

Enumerations

enum class  yaze::zelda3::AllocationWorld { yaze::zelda3::kLight , yaze::zelda3::kDark , yaze::zelda3::kSpecial }
 
enum class  yaze::zelda3::AllocationAreaSize { yaze::zelda3::kSmall , yaze::zelda3::kLarge , yaze::zelda3::kWide , yaze::zelda3::kTall }
 
enum class  yaze::zelda3::TailCheckVerdict { yaze::zelda3::kSafe , yaze::zelda3::kUnsafe , yaze::zelda3::kAlreadyApplied }
 
enum class  yaze::zelda3::TailCheckScope { yaze::zelda3::kRom , yaze::zelda3::kPatch , yaze::zelda3::kYaze }
 

Functions

const char * yaze::zelda3::AllocationWorldName (AllocationWorld world)
 
const char * yaze::zelda3::AllocationAreaSizeName (AllocationAreaSize size)
 
AllocationWorld yaze::zelda3::AllocationWorldForArea (int area)
 
std::vector< AreaTableInfo > yaze::zelda3::OverworldAreaTableCatalogue (uint8_t asm_version)
 
MapStreamScan yaze::zelda3::ScanMapStream (const uint8_t *data, size_t size, uint32_t pc, size_t max_output)
 
absl::StatusOr< OverworldAllocationReport > yaze::zelda3::BuildOverworldAllocationReport (Rom *rom, const OverworldAllocationOptions &options)
 
const char * yaze::zelda3::TailCheckVerdictName (TailCheckVerdict verdict)
 
const char * yaze::zelda3::TailCheckScopeName (TailCheckScope scope)
 
TailMapExpansionCheck yaze::zelda3::CheckTailMapExpansion (const Rom &rom, const TailMapExpansionPlan &plan, const TailCheckAnnotator &annotator)
 
absl::Status yaze::zelda3::TailMapExpansionApplyGuard (const Rom &rom)
 
std::string yaze::zelda3::OverworldAllocationToJson (const OverworldAllocationReport &report, const TailMapExpansionCheck *tail_check)
 
std::string yaze::zelda3::FormatOverworldAllocationText (const OverworldAllocationReport &report, const TailMapExpansionCheck *tail_check)
 

Variables

constexpr int yaze::zelda3::kAllocationAreaCount = 0xC0
 
constexpr int yaze::zelda3::kSpecialTailFirstArea = 0xA0
 

Detailed Description

Read-only map of overworld area IDs $00-$BF: which IDs are used, which per-area tables cover each ID, and whether yaze's TailMapExpansion.asm patch ($A0-$BF) is safe to apply to a ROM.

Area IDs: light world $00-$3F, dark world $40-$7F, special world $80-$9F, special-world tail $A0-$BF. A table "covers" an ID when the ID indexes an entry of that table. Reading an ID past a table's last entry reads the data that follows the table (listed as past_end), which is how a missed table fails silently in game.

Definition in file overworld_allocation.h.