1#ifndef YAZE_APP_ZELDA3_OVERWORLD_EXIT_H
2#define YAZE_APP_ZELDA3_OVERWORLD_EXIT_H
66 uint16_t y_scroll, uint16_t x_scroll, uint16_t player_y,
67 uint16_t player_x, uint16_t camera_y, uint16_t camera_x,
68 uint8_t scroll_mod_y, uint8_t scroll_mod_x,
69 uint16_t door_type_1, uint16_t door_type_2,
97 area_x_ = (uint8_t)((std::abs(
x_ - (mapX * 512)) / 16));
98 area_y_ = (uint8_t)((std::abs(
y_ - (mapY * 512)) / 16));
100 if (door_type_1 != 0) {
101 int p = (door_type_1 & 0x7FFF) >> 1;
106 if (door_type_2 != 0) {
107 int p = (door_type_2 & 0x7FFF) >> 1;
119 area_x_ = (uint8_t)((std::abs(
x_ - (mapX * 512)) / 16));
120 area_y_ = (uint8_t)((std::abs(
y_ - (mapY * 512)) / 16));
139 int mapX = map_id - ((map_id / 8) * 8);
140 int mapY = map_id / 8;
142 area_x_ = (uint8_t)((std::abs(
x_ - (mapX * 512)) / 16));
143 area_y_ = (uint8_t)((std::abs(
y_ - (mapY * 512)) / 16));
149 int mapx = (map_id & 7) << 9;
150 int mapy = (map_id & 56) << 6;
164 if (
x_ > mapx + large) {
168 if (
y_ > mapy + large + 32) {
169 y_ = mapy + large + 32;
192 short vram_x_scroll = (short)(
x_ - mapx);
193 short vram_y_scroll = (short)(
y_ - mapy);
195 map_pos_ = (uint16_t)(((vram_y_scroll & 0xFFF0) << 3) |
196 ((vram_x_scroll & 0xFFF0) >> 3));
198 std::cout <<
"Exit: " <<
room_id_ <<
" MapId: " << std::hex << mapid
199 <<
" X: " <<
static_cast<int>(
area_x_)
200 <<
" Y: " <<
static_cast<int>(
area_y_) << std::endl;
enum yaze::zelda3::GameEntity::EntityType entity_type_
void UpdateMapProperties(uint16_t map_id) override
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)
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
constexpr int OWExitMapIdWhirlpool
constexpr int OWExitMapId
constexpr int OWExitUnk1Whirlpool
constexpr int OWExitDoorType1
constexpr int kNumOverworldExits
constexpr int OWExitXPlayerWhirlpool
constexpr int OWExitUnk2Whirlpool
constexpr int OWExitYPlayerWhirlpool
constexpr int OWExitXPlayer
constexpr int OWExitXScrollWhirlpool
Main namespace for the application.