1#ifndef YAZE_APP_ZELDA3_OVERWORLD_EXIT_H
2#define YAZE_APP_ZELDA3_OVERWORLD_EXIT_H
67 uint16_t y_scroll, uint16_t x_scroll, uint16_t player_y,
68 uint16_t player_x, uint16_t camera_y, uint16_t camera_x,
69 uint8_t scroll_mod_y, uint8_t scroll_mod_x,
70 uint16_t door_type_1, uint16_t door_type_2,
98 area_x_ = (uint8_t)((std::abs(
x_ - (mapX * 512)) / 16));
99 area_y_ = (uint8_t)((std::abs(
y_ - (mapY * 512)) / 16));
101 if (door_type_1 != 0) {
102 int p = (door_type_1 & 0x7FFF) >> 1;
107 if (door_type_2 != 0) {
108 int p = (door_type_2 & 0x7FFF) >> 1;
120 area_x_ = (uint8_t)((std::abs(
x_ - (mapX * 512)) / 16));
121 area_y_ = (uint8_t)((std::abs(
y_ - (mapY * 512)) / 16));
140 int mapX = map_id - ((map_id / 8) * 8);
141 int mapY = map_id / 8;
143 area_x_ = (uint8_t)((std::abs(
x_ - (mapX * 512)) / 16));
144 area_y_ = (uint8_t)((std::abs(
y_ - (mapY * 512)) / 16));
150 int mapx = (map_id & 7) << 9;
151 int mapy = (map_id & 56) << 6;
165 if (
x_ > mapx + large) {
169 if (
y_ > mapy + large + 32) {
170 y_ = mapy + large + 32;
193 short vram_x_scroll = (short)(
x_ - mapx);
194 short vram_y_scroll = (short)(
y_ - mapy);
196 map_pos_ = (uint16_t)(((vram_y_scroll & 0xFFF0) << 3) |
197 ((vram_x_scroll & 0xFFF0) >> 3));
199 std::cout <<
"Exit: " <<
room_id_ <<
" MapId: " << std::hex << mapid
200 <<
" X: " <<
static_cast<int>(
area_x_)
201 <<
" 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.