1#ifndef YAZE_APP_ZELDA3_OVERWORLD_ENTRANCE_H
2#define YAZE_APP_ZELDA3_OVERWORLD_ENTRANCE_H
11#include "absl/status/status.h"
12#include "absl/status/statusor.h"
119 uint16_t map_pos,
bool hole)
128 uint8_t normalized_map_id = map_id % 0x40;
129 int mapX = normalized_map_id % 8;
130 int mapY = normalized_map_id / 8;
133 game_x_ =
static_cast<int>((std::abs(x - (mapX * 512)) / 16));
134 game_y_ =
static_cast<int>((std::abs(y - (mapY * 512)) / 16));
138 const void* context =
nullptr)
override {
143 uint8_t normalized_map_id = map_id % 0x40;
144 int mapX = normalized_map_id % 8;
145 int mapY = normalized_map_id / 8;
148 game_x_ =
static_cast<int>((std::abs(
x_ - (mapX * 512)) / 16));
149 game_y_ =
static_cast<int>((std::abs(
y_ - (mapY * 512)) / 16));
180 std::array<uint16_t, kNumEntranceTileTypes>
low;
181 std::array<uint16_t, kNumEntranceTileTypes>
high;
188absl::StatusOr<std::vector<OverworldEntrance>>
LoadHoles(
Rom* rom);
191 const std::vector<OverworldEntrance>& entrances,
192 bool expanded_entrances);
193absl::Status
SaveHoles(
Rom* rom,
const std::vector<OverworldEntrance>& holes);
201 tiletypes.
low[i] = value_low;
204 tiletypes.
high[i] = value_high;
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
absl::StatusOr< uint16_t > ReadWord(int offset) const
static RomSettings & Get()
uint32_t GetAddressOr(const std::string &key, uint32_t default_value) const
Base class for all overworld and dungeon entities.
enum yaze::zelda3::GameEntity::EntityType entity_type_
std::array< int, 9 > HoleState() const
void RememberHoleSourceState(size_t row)
std::optional< std::array< int, 9 > > hole_source_state_
OverworldEntrance(int x, int y, uint8_t entrance_id, short map_id, uint16_t map_pos, bool hole)
bool HasUnchangedHoleSourceState(size_t row) const
void UpdateMapProperties(uint16_t map_id, const void *context=nullptr) override
Update entity properties based on map position.
#define ASSIGN_OR_RETURN(type_variable_name, expression)
constexpr char kOverworldEntrancePosExpanded[]
constexpr char kOverworldEntranceMapExpanded[]
constexpr char kOverworldEntranceFlagExpanded[]
constexpr char kOverworldEntranceIdExpanded[]
Zelda 3 specific classes and functions.
absl::Status SaveEntrances(Rom *rom, const std::vector< OverworldEntrance > &entrances, bool expanded_entrances)
constexpr int kOverworldHoleArea
constexpr int kOverworldEntrancePos
constexpr int kOverworldHoleEntrance
constexpr int kEntranceFloorEXP
constexpr int kEntranceCameraXTriggerEXP
constexpr int kEntranceTotalEXP
absl::StatusOr< std::vector< OverworldEntrance > > LoadEntrances(Rom *rom)
constexpr int kEntranceScrollEdgeEXP
constexpr int kOverworldEntranceEntranceIdExpanded
constexpr int kEntranceCameraY
constexpr int kNumOverworldHoles
constexpr int kOverworldEntranceEntranceId
constexpr int kOverworldHolePos
constexpr int kOverworldEntranceMap
constexpr int kEntranceLadderBgEXP
constexpr int kEntranceXPositionEXP
constexpr int kNumEntranceTileTypes
constexpr int kEntranceNorthTavern
constexpr int kEntranceCameraYEXP
constexpr int kEntranceRoomEXP
constexpr int kEntranceDungeonEXP
constexpr int kEntranceYPositionEXP
constexpr int kEntranceCameraX
constexpr int kOverworldEntrancePosExpanded
constexpr int kEntranceBlocksetEXP
int GetOverworldEntrancePosExpanded()
constexpr int kEntranceCameraYTriggerEXP
constexpr int kEntranceExitEXP
constexpr int kEntranceTileTypePtrHigh
int GetOverworldEntranceIdExpanded()
constexpr int kOverworldEntranceMapExpanded
int GetOverworldEntranceFlagExpanded()
constexpr int kEntranceTileTypePtrLow
absl::Status SaveHoles(Rom *rom, const std::vector< OverworldEntrance > &holes)
absl::StatusOr< OverworldEntranceTileTypes > LoadEntranceTileTypes(Rom *rom)
absl::StatusOr< std::vector< OverworldEntrance > > LoadHoles(Rom *rom)
constexpr int kEntranceScrollQuadrantEXP
constexpr int kOverworldEntranceExpandedFlagPos
constexpr int kEntranceEXP
constexpr int kEntranceTotal
int GetOverworldEntranceMapExpanded()
constexpr int kEntranceDoorEXP
constexpr int kNumOverworldEntrances
constexpr int kEntranceExtraEXP
constexpr int kEntranceScrollingEXP
constexpr int kEntranceMusicEXP
constexpr int kEntranceCameraXEXP
constexpr int kEntranceLinkSpawn
std::array< uint16_t, kNumEntranceTileTypes > high
std::array< uint16_t, kNumEntranceTileTypes > low