1#ifndef YAZE_APP_ZELDA3_OVERWORLD_EXIT_H
2#define YAZE_APP_ZELDA3_OVERWORLD_EXIT_H
8#include "absl/status/status.h"
9#include "absl/status/statusor.h"
99 uint16_t y_scroll, uint16_t x_scroll, uint16_t player_y,
100 uint16_t player_x, uint16_t camera_y, uint16_t camera_x,
101 uint8_t scroll_mod_y, uint8_t scroll_mod_x,
102 uint16_t door_type_1, uint16_t door_type_2,
103 bool deleted =
false)
126 uint8_t normalized_map_id = map_id % 0x40;
127 int mapX = normalized_map_id % 8;
128 int mapY = normalized_map_id / 8;
132 game_x_ =
static_cast<int>((std::abs(
x_ - (mapX * 512)) / 16));
133 game_y_ =
static_cast<int>((std::abs(
y_ - (mapY * 512)) / 16));
157absl::StatusOr<std::vector<OverworldExit>>
LoadExits(
Rom* rom);
158absl::Status
SaveExits(
Rom* rom,
const std::vector<OverworldExit>& exits);
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Base class for all overworld and dungeon entities.
enum yaze::zelda3::GameEntity::EntityType entity_type_
Represents an overworld exit that transitions from dungeon to overworld.
void UpdateMapProperties(uint16_t map_id, const void *context) override
Update exit properties when moved or map changes.
OverworldExit(uint16_t room_id, uint8_t map_id, uint16_t vram_location, uint16_t y_scroll, uint16_t x_scroll, uint16_t player_y, uint16_t player_x, uint16_t camera_y, uint16_t camera_x, uint8_t scroll_mod_y, uint8_t scroll_mod_x, uint16_t door_type_1, uint16_t door_type_2, bool deleted=false)
Constructor for loading exits from ROM.
Zelda 3 specific classes and functions.
constexpr int OWExitYScroll
constexpr int OWWhirlpoolPosition
constexpr int OWExitXCameraWhirlpool
constexpr int OWExitDoorType2
constexpr int OWExitYScrollWhirlpool
constexpr int OWExitYCamera
constexpr int OWExitDoorPosition
constexpr int OWExitYCameraWhirlpool
constexpr int OWExitXScroll
constexpr int OWExitRoomId
constexpr int OWExitXCamera
constexpr int OWExitYPlayer
constexpr int OWExitVramWhirlpool
absl::StatusOr< std::vector< OverworldExit > > LoadExits(Rom *rom)
constexpr int OWExitMapIdWhirlpool
constexpr int OWExitMapId
constexpr int OWExitUnk1Whirlpool
constexpr int OWExitDoorType1
constexpr int kNumOverworldExits
constexpr int OWExitXPlayerWhirlpool
constexpr int OWExitUnk2Whirlpool
constexpr int OWExitYPlayerWhirlpool
absl::Status SaveExits(Rom *rom, const std::vector< OverworldExit > &exits)
constexpr int OWExitXPlayer
constexpr int OWExitXScrollWhirlpool