diff --git a/src/Application/Core/Constants.h b/src/Application/Core/Constants.h deleted file mode 100644 index 4a3a9d4f..00000000 --- a/src/Application/Core/Constants.h +++ /dev/null @@ -1,1206 +0,0 @@ -#ifndef YAZE_APPLICATION_CORE_CONSTANTS_H -#define YAZE_APPLICATION_CORE_CONSTANTS_H - -#include -#include - -#define BASIC_BUTTON(w) if (ImGui::Button(w)) - -#define TAB_BAR(w) if (ImGui::BeginTabBar(w)) { -#define END_TAB_BAR() \ - ImGui::EndTabBar(); \ - } - -#define MENU_BAR() if (ImGui::BeginMenuBar()) { -#define END_MENU_BAR() \ - ImGui::EndMenuBar(); \ - } - -using byte = unsigned char; - -namespace yaze { -namespace Application { -namespace Core { -namespace Constants { - -using ushort = unsigned short; - -//=========================================================================================== -// Magic numbers -//=========================================================================================== - -/// Bit set for object priority -constexpr ushort TilePriorityBit = 0x2000; - -/// Bit set for object hflip -constexpr ushort TileHFlipBit = 0x4000; - -/// Bit set for object vflip -constexpr ushort TileVFlipBit = 0x8000; - -/// Bits used for tile name -constexpr ushort TileNameMask = 0x03FF; - -constexpr int Uncompressed3BPPSize = 0x0600; -constexpr int UncompressedSheetSize = 0x0800; - -constexpr int NumberOfSheets = 223; -constexpr int LimitOfMap32 = 8864; -constexpr int NumberOfRooms = 296; - -constexpr int NumberOfOWMaps = 160; -constexpr int Map32PerScreen = 256; -constexpr int NumberOfMap16 = 3752; // 4096 -constexpr int NumberOfMap32 = Map32PerScreen * NumberOfOWMaps; -constexpr int NumberOfOWSprites = 352; -constexpr int NumberOfColors = 3143; - -// =========================================================================================== -// Graphics -// =========================================================================================== - -constexpr int tile_address = 0x1B52; // JP = Same -constexpr int tile_address_floor = 0x1B5A; // JP = Same -constexpr int subtype1_tiles = 0x8000; // JP = Same -constexpr int subtype2_tiles = 0x83F0; // JP = Same -constexpr int subtype3_tiles = 0x84F0; // JP = Same -constexpr int gfx_animated_pointer = 0x10275; // JP 0x10624 //long pointer -constexpr int overworldgfxGroups2 = 0x6073; // 0x60B3 -constexpr int gfx_1_pointer = - 0x6790; // 2byte pointer bank 00 pc -> 0x4320 CF80 ; 004F80 -constexpr int gfx_2_pointer = 0x6795; // D05F ; 00505F -constexpr int gfx_3_pointer = 0x679A; // D13E ; 00513E -constexpr int hud_palettes = 0xDD660; -constexpr int maxGfx = 0xC3FB5; - -// =========================================================================================== -// Overworld Related Variables -// =========================================================================================== - -constexpr int compressedAllMap32PointersHigh = 0x1794D; -constexpr int compressedAllMap32PointersLow = 0x17B2D; -constexpr int overworldgfxGroups = 0x05D97; -constexpr int map16Tiles = 0x78000; -constexpr int map32TilesTL = 0x18000; -constexpr int map32TilesTR = 0x1B400; -constexpr int map32TilesBL = 0x20000; -constexpr int map32TilesBR = 0x23400; -constexpr int overworldPalGroup1 = 0xDE6C8; -constexpr int overworldPalGroup2 = 0xDE86C; -constexpr int overworldPalGroup3 = 0xDE604; -constexpr int overworldMapPalette = 0x7D1C; -constexpr int overworldSpritePalette = 0x7B41; -constexpr int overworldMapPaletteGroup = 0x75504; -constexpr int overworldSpritePaletteGroup = 0x75580; -constexpr int overworldSpriteset = 0x7A41; -constexpr int overworldSpecialGFXGroup = 0x16821; -constexpr int overworldSpecialPALGroup = 0x16831; - -constexpr int overworldSpritesBegining = 0x4C881; -constexpr int overworldSpritesAgahnim = 0x4CA21; -constexpr int overworldSpritesZelda = 0x4C901; - -constexpr int overworldItemsPointers = 0xDC2F9; -constexpr int overworldItemsAddress = 0xDC8B9; // 1BC2F9 -constexpr int overworldItemsBank = 0xDC8BF; -constexpr int overworldItemsEndData = 0xDC89C; // 0DC89E - -constexpr int mapGfx = 0x7C9C; -constexpr int overlayPointers = 0x77664; -constexpr int overlayPointersBank = 0x0E; - -constexpr int overworldTilesType = 0x71459; -constexpr int overworldMessages = 0x3F51D; - -// TODO: -constexpr int overworldMusicBegining = 0x14303; -constexpr int overworldMusicZelda = 0x14303 + 0x40; -constexpr int overworldMusicMasterSword = 0x14303 + 0x80; -constexpr int overworldMusicAgahim = 0x14303 + 0xC0; -constexpr int overworldMusicDW = 0x14403; - -constexpr int overworldEntranceAllowedTilesLeft = 0xDB8C1; -constexpr int overworldEntranceAllowedTilesRight = 0xDB917; - -constexpr int overworldMapSize = 0x12844; // 0x00 = small maps, 0x20 = large - // maps -constexpr int overworldMapSizeHighByte = - 0x12884; // 0x01 = small maps, 0x03 = large maps - -// relative to the WORLD + 0x200 per map -// large map that are not == parent id = same position as their parent! -// eg for X position small maps : -// 0000, 0200, 0400, 0600, 0800, 0A00, 0C00, 0E00 -// all Large map would be : -// 0000, 0000, 0400, 0400, 0800, 0800, 0C00, 0C00 - -constexpr int overworldTransitionPositionY = 0x128C4; -constexpr int overworldTransitionPositionX = 0x12944; - -constexpr int overworldScreenSize = 0x1788D; - -//=========================================================================================== -// Overworld Exits/Entrances Variables -//=========================================================================================== -constexpr int OWExitRoomId = 0x15D8A; // 0x15E07 Credits sequences -// 105C2 Ending maps -// 105E2 Sprite Group Table for Ending -constexpr int OWExitMapId = 0x15E28; -constexpr int OWExitVram = 0x15E77; -constexpr int OWExitYScroll = 0x15F15; -constexpr int OWExitXScroll = 0x15FB3; -constexpr int OWExitYPlayer = 0x16051; -constexpr int OWExitXPlayer = 0x160EF; -constexpr int OWExitYCamera = 0x1618D; -constexpr int OWExitXCamera = 0x1622B; -constexpr int OWExitDoorPosition = 0x15724; -constexpr int OWExitUnk1 = 0x162C9; -constexpr int OWExitUnk2 = 0x16318; -constexpr int OWExitDoorType1 = 0x16367; -constexpr int OWExitDoorType2 = 0x16405; -constexpr int OWEntranceMap = 0xDB96F; -constexpr int OWEntrancePos = 0xDBA71; -constexpr int OWEntranceEntranceId = 0xDBB73; -constexpr int OWHolePos = 0xDB800; //(0x13 entries, 2 bytes each) modified(less - // 0x400) map16 coordinates for each hole -constexpr int OWHoleArea = - 0xDB826; //(0x13 entries, 2 bytes each) corresponding - // area numbers for each hole -constexpr int OWHoleEntrance = - 0xDB84C; //(0x13 entries, 1 byte each) corresponding entrance numbers - -constexpr int OWExitMapIdWhirlpool = 0x16AE5; // JP = ;016849 -constexpr int OWExitVramWhirlpool = 0x16B07; // JP = ;01686B -constexpr int OWExitYScrollWhirlpool = 0x16B29; // JP = ;01688D -constexpr int OWExitXScrollWhirlpool = 0x16B4B; // JP = ;016DE7 -constexpr int OWExitYPlayerWhirlpool = 0x16B6D; // JP = ;016E09 -constexpr int OWExitXPlayerWhirlpool = 0x16B8F; // JP = ;016E2B -constexpr int OWExitYCameraWhirlpool = 0x16BB1; // JP = ;016E4D -constexpr int OWExitXCameraWhirlpool = 0x16BD3; // JP = ;016E6F -constexpr int OWExitUnk1Whirlpool = 0x16BF5; // JP = ;016E91 -constexpr int OWExitUnk2Whirlpool = 0x16C17; // JP = ;016EB3 -constexpr int OWWhirlpoolPosition = 0x16CF8; // JP = ;016F94 - -//=========================================================================================== -// Dungeon Related Variables -//=========================================================================================== -// That could be turned into a pointer : -constexpr int dungeons_palettes_groups = 0x75460; // JP 0x67DD0 -constexpr int dungeons_main_bg_palette_pointers = 0xDEC4B; // JP Same -constexpr int dungeons_palettes = - 0xDD734; // JP Same (where all dungeons palettes are) - -// That could be turned into a pointer : -constexpr int room_items_pointers = 0xDB69; // JP 0xDB67 - -constexpr int rooms_sprite_pointer = 0x4C298; // JP Same //2byte bank 09D62E -constexpr int room_header_pointer = 0xB5DD; // LONG -constexpr int room_header_pointers_bank = 0xB5E7; // JP Same - -constexpr int gfx_groups_pointer = 0x6237; -constexpr int room_object_layout_pointer = 0x882D; - -constexpr int room_object_pointer = 0x874C; // Long pointer - -constexpr int chests_length_pointer = 0xEBF6; -constexpr int chests_data_pointer1 = 0xEBFB; -// constexpr int chests_data_pointer2 = 0xEC0A; //Disabled for now could be used -// for expansion constexpr int chests_data_pointer3 = 0xEC10; //Disabled for now -// could be used for expansion - -constexpr int blocks_length = 0x8896; // word value -constexpr int blocks_pointer1 = 0x15AFA; -constexpr int blocks_pointer2 = 0x15B01; -constexpr int blocks_pointer3 = 0x15B08; -constexpr int blocks_pointer4 = 0x15B0F; - -constexpr int torch_data = 0x2736A; // JP 0x2704A -constexpr int torches_length_pointer = 0x88C1; - -constexpr int sprite_blockset_pointer = 0x5B57; -constexpr int sprites_data = - 0x4D8B0; // It use the unused pointers to have more space //Save purpose -constexpr int sprites_data_empty_room = 0x4D8AE; -constexpr int sprites_end_data = 0x4EC9E; - -constexpr int pit_pointer = 0x394AB; -constexpr int pit_count = 0x394A6; - -constexpr int doorPointers = 0xF83C0; - -// doors -constexpr int door_gfx_up = 0x4D9E; -// -constexpr int door_gfx_down = 0x4E06; -constexpr int door_gfx_cavexit_down = 0x4E06; -constexpr int door_gfx_left = 0x4E66; -constexpr int door_gfx_right = 0x4EC6; - -constexpr int door_pos_up = 0x197E; -constexpr int door_pos_down = 0x1996; -constexpr int door_pos_left = 0x19AE; -constexpr int door_pos_right = 0x19C6; - -// TEXT EDITOR RELATED CONSTANTS -constexpr int gfx_font = 0x70000; // 2bpp format -constexpr int text_data = 0xE0000; -constexpr int text_data2 = 0x75F40; -constexpr int pointers_dictionaries = 0x74703; -constexpr int characters_width = 0x74ADF; - -//=========================================================================================== -// Dungeon Entrances Related Variables -//=========================================================================================== -constexpr int entrance_room = 0x14813; // 0x14577 //word value for each room -constexpr int entrance_scrolledge = - 0x1491D; // 0x14681 //8 bytes per room, HU, FU, HD, FD, HL, FL, HR, FR -constexpr int entrance_yscroll = 0x14D45; // 0x14AA9 //2bytes each room -constexpr int entrance_xscroll = 0x14E4F; // 0x14BB3 //2bytes -constexpr int entrance_yposition = 0x14F59; // 0x14CBD 2bytes -constexpr int entrance_xposition = 0x15063; // 0x14DC7 2bytes -constexpr int entrance_camerayposition = 0x1516D; // 0x14ED1 2bytes -constexpr int entrance_cameraxposition = 0x15277; // 0x14FDB 2bytes - -constexpr int entrance_gfx_group = 0x5D97; -constexpr int entrance_blockset = 0x15381; // 0x150E5 1byte -constexpr int entrance_floor = 0x15406; // 0x1516A 1byte -constexpr int entrance_dungeon = 0x1548B; // 0x151EF 1byte (dungeon id) -constexpr int entrance_door = 0x15510; // 0x15274 1byte -constexpr int entrance_ladderbg = - 0x15595; // 0x152F9 //1 byte, ---b ---a b = bg2, a = need to check -_- -constexpr int entrance_scrolling = 0x1561A; // 0x1537E //1byte --h- --v- -constexpr int entrance_scrollquadrant = 0x1569F; // 0x15403 1byte -constexpr int entrance_exit = 0x15724; // 0x15488 //2byte word -constexpr int entrance_music = 0x1582E; // 0x15592 - -constexpr int startingentrance_room = - 0x15B6E; // 0x158D2 //word value for each room -constexpr int startingentrance_scrolledge = - 0x15B7C; // 0x158E0 //8 bytes per room, HU, FU, HD, FD, HL, FL, HR, FR -constexpr int startingentrance_yscroll = 0x15BB4; // 0x14AA9 //2bytes each room -constexpr int startingentrance_xscroll = 0x15BC2; // 0x14BB3 //2bytes -constexpr int startingentrance_yposition = 0x15BD0; // 0x14CBD 2bytes -constexpr int startingentrance_xposition = 0x15BDE; // 0x14DC7 2bytes -constexpr int startingentrance_camerayposition = 0x15BEC; // 0x14ED1 2bytes -constexpr int startingentrance_cameraxposition = 0x15BFA; // 0x14FDB 2bytes - -constexpr int startingentrance_blockset = 0x15C08; // 0x150E5 1byte -constexpr int startingentrance_floor = 0x15C0F; // 0x1516A 1byte -constexpr int startingentrance_dungeon = 0x15C16; // 0x151EF 1byte (dungeon id) - -constexpr int startingentrance_door = 0x15C2B; // 0x15274 1byte - -constexpr int startingentrance_ladderbg = - 0x15C1D; // 0x152F9 //1 byte, ---b ---a b = bg2, a = need to check -_- -constexpr int startingentrance_scrolling = - 0x15C24; // 0x1537E //1byte --h- --v- -constexpr int startingentrance_scrollquadrant = 0x15C2B; // 0x15403 1byte -constexpr int startingentrance_exit = 0x15C32; // 0x15488 //2byte word -constexpr int startingentrance_music = 0x15C4E; // 0x15592 -constexpr int startingentrance_entrance = 0x15C40; - -constexpr int items_data_start = 0xDDE9; // save purpose -constexpr int items_data_end = 0xE6B2; // save purpose -constexpr int initial_equipement = 0x271A6; -constexpr int messages_id_dungeon = 0x3F61D; - -constexpr int chests_backupitems = - 0x3B528; // item id you get instead if you already have that item -constexpr int chests_yoffset = 0x4836C; -constexpr int chests_xoffset = 0x4836C + (76 * 1); -constexpr int chests_itemsgfx = 0x4836C + (76 * 2); -constexpr int chests_itemswide = 0x4836C + (76 * 3); -constexpr int chests_itemsproperties = 0x4836C + (76 * 4); -constexpr int chests_sramaddress = 0x4836C + (76 * 5); -constexpr int chests_sramvalue = 0x4836C + (76 * 7); -constexpr int chests_msgid = 0x442DD; - -constexpr int dungeons_startrooms = 0x7939; -constexpr int dungeons_endrooms = 0x792D; -constexpr int dungeons_bossrooms = 0x10954; // short value - -// Bed Related Values (Starting location) - -constexpr int bedPositionX = 0x039A37; // short value -constexpr int bedPositionY = 0x039A32; // short value - -constexpr int bedPositionResetXLow = - 0x02DE53; // short value(on 2 different bytes) -constexpr int bedPositionResetXHigh = 0x02DE58; //^^^^^^ - -constexpr int bedPositionResetYLow = - 0x02DE5D; // short value(on 2 different bytes) -constexpr int bedPositionResetYHigh = 0x02DE62; //^^^^^^ - -constexpr int bedSheetPositionX = 0x0480BD; // short value -constexpr int bedSheetPositionY = 0x0480B8; // short value - -//=========================================================================================== -// Gravestones related variables -//=========================================================================================== - -constexpr int GravesYTilePos = 0x49968; // short (0x0F entries) -constexpr int GravesXTilePos = 0x49986; // short (0x0F entries) -constexpr int GravesTilemapPos = 0x499A4; // short (0x0F entries) -constexpr int GravesGFX = 0x499C2; // short (0x0F entries) - -constexpr int GravesXPos = 0x4994A; // short (0x0F entries) -constexpr int GravesYLine = 0x4993A; // short (0x08 entries) -constexpr int GravesCountOnY = 0x499E0; // Byte 0x09 entries - -constexpr int GraveLinkSpecialHole = 0x46DD9; // short -constexpr int GraveLinkSpecialStairs = 0x46DE0; // short - -//=========================================================================================== -// Palettes Related Variables - This contain all the palettes of the game -//=========================================================================================== -constexpr int overworldPaletteMain = 0xDE6C8; -constexpr int overworldPaletteAuxialiary = 0xDE86C; -constexpr int overworldPaletteAnimated = 0xDE604; -constexpr int globalSpritePalettesLW = 0xDD218; -constexpr int globalSpritePalettesDW = 0xDD290; -constexpr int armorPalettes = - 0xDD308; // Green, Blue, Red, Bunny, Electrocuted (15 colors each) -constexpr int spritePalettesAux1 = 0xDD39E; // 7 colors each -constexpr int spritePalettesAux2 = 0xDD446; // 7 colors each -constexpr int spritePalettesAux3 = 0xDD4E0; // 7 colors each -constexpr int swordPalettes = 0xDD630; // 3 colors each - 4 entries -constexpr int shieldPalettes = 0xDD648; // 4 colors each - 3 entries -constexpr int hudPalettes = 0xDD660; -constexpr int dungeonMapPalettes = 0xDD70A; // 21 colors -constexpr int dungeonMainPalettes = 0xDD734; //(15*6) colors each - 20 entries -constexpr int dungeonMapBgPalettes = 0xDE544; // 16*6 -constexpr int hardcodedGrassLW = - 0x5FEA9; // Mirrored Value at 0x75645 : 0x75625 -constexpr int hardcodedGrassDW = 0x05FEB3; // 0x7564F -constexpr int hardcodedGrassSpecial = 0x75640; - -//=========================================================================================== -// Dungeon Map Related Variables -//=========================================================================================== -constexpr int dungeonMap_rooms_ptr = 0x57605; // 14 pointers of map data -constexpr int dungeonMap_floors = 0x575D9; // 14 words values - -constexpr int dungeonMap_gfx_ptr = 0x57BE4; // 14 pointers of gfx data -constexpr int dungeonMap_datastart = - 0x57039; // data start for floors/gfx MUST skip 575D9 to 57621 (pointers) - -constexpr int dungeonMap_expCheck = - 0x56652; // IF Byte = 0xB9 dungeon maps are not expanded -constexpr int dungeonMap_tile16 = 0x57009; -constexpr int dungeonMap_tile16Exp = 0x109010; -constexpr int dungeonMap_bossrooms = 0x56807; // 14 words values 0x000F = no - // boss - -constexpr int triforceVertices = 0x04FFD2; // group of 3, X, Y ,Z -constexpr int TriforceFaces = 0x04FFE4; // group of 5 - -constexpr int crystalVertices = 0x04FF98; - -//=========================================================================================== -// Names -//=========================================================================================== -static const std::string RoomEffect[] = {"Nothing", - "Nothing", - "Moving Floor", - "Moving Water", - "Trinexx Shell", - "Red Flashes", - "Light Torch to See Floor", - "Ganon's Darkness"}; - -static const std::string RoomTag[] = {"Nothing", - - "NW Kill Enemy to Open", - "NE Kill Enemy to Open", - "SW Kill Enemy to Open", - "SE Kill Enemy to Open", - "W Kill Enemy to Open", - "E Kill Enemy to Open", - "N Kill Enemy to Open", - "S Kill Enemy to Open", - "Clear Quadrant to Open", - "Clear Full Tile to Open", - - "NW Push Block to Open", - "NE Push Block to Open", - "SW Push Block to Open", - "SE Push Block to Open", - "W Push Block to Open", - "E Push Block to Open", - "N Push Block to Open", - "S Push Block to Open", - "Push Block to Open", - "Pull Lever to Open", - "Collect Prize to Open", - - "Hold Switch Open Door", - "Toggle Switch to Open Door", - "Turn off Water", - "Turn on Water", - "Water Gate", - "Water Twin", - "Moving Wall Right", - "Moving Wall Left", - "Crash", - "Crash", - "Push Switch Exploding Wall", - "Holes 0", - "Open Chest (Holes 0)", - "Holes 1", - "Holes 2", - "Defeat Boss for Dungeon Prize", - - "SE Kill Enemy to Push Block", - "Trigger Switch Chest", - "Pull Lever Exploding Wall", - "NW Kill Enemy for Chest", - "NE Kill Enemy for Chest", - "SW Kill Enemy for Chest", - "SE Kill Enemy for Chest", - "W Kill Enemy for Chest", - "E Kill Enemy for Chest", - "N Kill Enemy for Chest", - "S Kill Enemy for Chest", - "Clear Quadrant for Chest", - "Clear Full Tile for Chest", - - "Light Torches to Open", - "Holes 3", - "Holes 4", - "Holes 5", - "Holes 6", - "Agahnim Room", - "Holes 7", - "Holes 8", - "Open Chest for Holes 8", - "Push Block for Chest", - "Clear Room for Triforce Door", - "Light Torches for Chest", - "Kill Boss Again"}; - -static const std::string SecretItemNames[] = { - "Nothing", "Green Rupee", "Rock hoarder", "Bee", "Health pack", - "Bomb", "Heart ", "Blue Rupee", - - "Key", "Arrow", "Bomb", "Heart", "Magic", - "Full Magic", "Cucco", "Green Soldier", "Bush Stal", "Blue Soldier", - - "Landmine", "Heart", "Fairy", "Heart", - "Nothing ", // 22 - - "Hole", "Warp", "Staircase", "Bombable", "Switch"}; - -static const std::string Type1RoomObjectNames[] = { - "Ceiling ↔", - "Wall (top, north) ↔", - "Wall (top, south) ↔", - "Wall (bottom, north) ↔", - "Wall (bottom, south) ↔", - "Wall columns (north) ↔", - "Wall columns (south) ↔", - "Deep wall (north) ↔", - "Deep wall (south) ↔", - "Diagonal wall A ◤ (top) ↔", - "Diagonal wall A ◣ (top) ↔", - "Diagonal wall A ◥ (top) ↔", - "Diagonal wall A ◢ (top) ↔", - "Diagonal wall B ◤ (top) ↔", - "Diagonal wall B ◣ (top) ↔", - "Diagonal wall B ◥ (top) ↔", - "Diagonal wall B ◢ (top) ↔", - "Diagonal wall C ◤ (top) ↔", - "Diagonal wall C ◣ (top) ↔", - "Diagonal wall C ◥ (top) ↔", - "Diagonal wall C ◢ (top) ↔", - "Diagonal wall A ◤ (bottom) ↔", - "Diagonal wall A ◣ (bottom) ↔", - "Diagonal wall A ◥ (bottom) ↔", - "Diagonal wall A ◢ (bottom) ↔", - "Diagonal wall B ◤ (bottom) ↔", - "Diagonal wall B ◣ (bottom) ↔", - "Diagonal wall B ◥ (bottom) ↔", - "Diagonal wall B ◢ (bottom) ↔", - "Diagonal wall C ◤ (bottom) ↔", - "Diagonal wall C ◣ (bottom) ↔", - "Diagonal wall C ◥ (bottom) ↔", - "Diagonal wall C ◢ (bottom) ↔", - "Platform stairs ↔", - "Rail ↔", - "Pit edge ┏━┓ A (north) ↔", - "Pit edge ┏━┓ B (north) ↔", - "Pit edge ┏━┓ C (north) ↔", - "Pit edge ┏━┓ D (north) ↔", - "Pit edge ┏━┓ E (north) ↔", - "Pit edge ┗━┛ (south) ↔", - "Pit edge ━━━ (south) ↔", - "Pit edge ━━━ (north) ↔", - "Pit edge ━━┛ (south) ↔", - "Pit edge ┗━━ (south) ↔", - "Pit edge ━━┓ (north) ↔", - "Pit edge ┏━━ (north) ↔", - "Rail wall (north) ↔", - "Rail wall (south) ↔", - "Nothing", - "Nothing", - "Carpet ↔", - "Carpet trim ↔", - "Weird door", // TODO: WEIRD DOOR OBJECT NEEDS INVESTIGATION - "Drapes (north) ↔", - "Drapes (west, odd) ↔", - "Statues ↔", - "Columns ↔", - "Wall decors (north) ↔", - "Wall decors (south) ↔", - "Chairs in pairs ↔", - "Tall torches ↔", - "Supports (north) ↔", - "Water edge ┏━┓ (concave) ↔", - "Water edge ┗━┛ (concave) ↔", - "Water edge ┏━┓ (convex) ↔", - "Water edge ┗━┛ (convex) ↔", - "Water edge ┏━┛ (concave) ↔", - "Water edge ┗━┓ (concave) ↔", - "Water edge ┗━┓ (convex) ↔", - "Water edge ┏━┛ (convex) ↔", - "Unknown", // TODO: NEEDS IN GAME CHECKING - "Unknown", // TODO: NEEDS IN GAME CHECKING - "Unknown", // TODO: NEEDS IN GAME CHECKING - "Unknown", // TODO: NEEDS IN GAME CHECKING - "Supports (south) ↔", - "Bar ↔", - "Shelf A ↔", - "Shelf B ↔", - "Shelf C ↔", - "Somaria path ↔", - "Cannon hole A (north) ↔", - "Cannon hole A (south) ↔", - "Pipe path ↔", - "Nothing", - "Wall torches (north) ↔", - "Wall torches (south) ↔", - "Nothing", - "Nothing", - "Nothing", - "Nothing", - "Cannon hole B (north) ↔", - "Cannon hole B (south) ↔", - "Thick rail ↔", - "Blocks ↔", - "Long rail ↔", - "Ceiling ↕", - "Wall (top, west) ↕", - "Wall (top, east) ↕", - "Wall (bottom, west) ↕", - "Wall (bottom, east) ↕", - "Wall columns (west) ↕", - "Wall columns (east) ↕", - "Deep wall (west) ↕", - "Deep wall (east) ↕", - "Rail ↕", - "Pit edge (west) ↕", - "Pit edge (east) ↕", - "Rail wall (west) ↕", - "Rail wall (east) ↕", - "Nothing", - "Nothing", - "Carpet ↕", - "Carpet trim ↕", - "Nothing", - "Drapes (west) ↕", - "Drapes (east) ↕", - "Columns ↕", - "Wall decors (west) ↕", - "Wall decors (east) ↕", - "Supports (west) ↕", - "Water edge (west) ↕", - "Water edge (east) ↕", - "Supports (east) ↕", - "Somaria path ↕", - "Pipe path ↕", - "Nothing", - "Wall torches (west) ↕", - "Wall torches (east) ↕", - "Wall decors tight A (west) ↕", - "Wall decors tight A (east) ↕", - "Wall decors tight B (west) ↕", - "Wall decors tight B (east) ↕", - "Cannon hole (west) ↕", - "Cannon hole (east) ↕", - "Tall torches ↕", - "Thick rail ↕", - "Blocks ↕", - "Long rail ↕", - "Jump ledge (west) ↕", - "Jump ledge (east) ↕", - "Rug trim (west) ↕", - "Rug trim (east) ↕", - "Bar ↕", - "Wall flair (west) ↕", - "Wall flair (east) ↕", - "Blue pegs ↕", - "Orange pegs ↕", - "Invisible floor ↕", - "Fake pots ↕", - "Hammer pegs ↕", - "Nothing", - "Nothing", - "Nothing", - "Nothing", - "Nothing", - "Nothing", - "Nothing", - "Nothing", - "Nothing", - "Diagonal ceiling A ◤", - "Diagonal ceiling A ◣", - "Diagonal ceiling A ◥", - "Diagonal ceiling A ◢", - "Pit ⇲", - "Diagonal layer 2 mask A ◤", - "Diagonal layer 2 mask A ◣", - "Diagonal layer 2 mask A ◥", - "Diagonal layer 2 mask A ◢", - "Diagonal layer 2 mask B ◤", // TODO: VERIFY - "Diagonal layer 2 mask B ◣", // TODO: VERIFY - "Diagonal layer 2 mask B ◥", // TODO: VERIFY - "Diagonal layer 2 mask B ◢", // TODO: VERIFY - "Nothing", - "Nothing", - "Nothing", - "Jump ledge (north) ↔", - "Jump ledge (south) ↔", - "Rug ↔", - "Rug trim (north) ↔", - "Rug trim (south) ↔", - "Archery game curtains ↔", - "Wall flair (north) ↔", - "Wall flair (south) ↔", - "Blue pegs ↔", - "Orange pegs ↔", - "Invisible floor ↔", - "Fake pressure plates ↔", - "Fake pots ↔", - "Hammer pegs ↔", - "Nothing", - "Nothing", - "Ceiling (large) ⇲", - "Chest platform (tall) ⇲", - "Layer 2 pit mask (large) ⇲", - "Layer 2 pit mask (medium) ⇲", - "Floor 1 ⇲", - "Floor 3 ⇲", - "Layer 2 mask (large) ⇲", - "Floor 4 ⇲", - "Water floor ⇲ ", - "Flood water (medium) ⇲ ", - "Conveyor floor ⇲ ", - "Nothing", - "Nothing", - "Moving wall (west) ⇲", - "Moving wall (east) ⇲", - "Nothing", - "Nothing", - "Icy floor A ⇲", - "Icy floor B ⇲", - "Moving wall flag", // TODO: WTF IS THIS? - "Moving wall flag", // TODO: WTF IS THIS? - "Moving wall flag", // TODO: WTF IS THIS? - "Moving wall flag", // TODO: WTF IS THIS? - "Layer 2 mask (medium) ⇲", - "Flood water (large) ⇲", - "Layer 2 swim mask ⇲", - "Flood water B (large) ⇲", - "Floor 2 ⇲", - "Chest platform (short) ⇲", - "Table / rock ⇲", - "Spike blocks ⇲", - "Spiked floor ⇲", - "Floor 7 ⇲", - "Tiled floor ⇲", - "Rupee floor ⇲", - "Conveyor upwards ⇲", - "Conveyor downwards ⇲", - "Conveyor leftwards ⇲", - "Conveyor rightwards ⇲", - "Heavy current water ⇲", - "Floor 10 ⇲", - "Nothing", - "Nothing", - "Nothing", - "Nothing", - "Nothing", - "Nothing", - "Nothing", - "Nothing", - "Nothing", - "Nothing", - "Nothing", - "Nothing", - "Nothing", - "Nothing", - "Nothing", -}; - -static const std::string Type2RoomObjectNames[] = { - "Corner (top, concave) ▛", - "Corner (top, concave) ▙", - "Corner (top, concave) ▜", - "Corner (top, concave) ▟", - "Corner (top, convex) ▟", - "Corner (top, convex) ▜", - "Corner (top, convex) ▙", - "Corner (top, convex) ▛", - "Corner (bottom, concave) ▛", - "Corner (bottom, concave) ▙", - "Corner (bottom, concave) ▜", - "Corner (bottom, concave) ▟", - "Corner (bottom, convex) ▟", - "Corner (bottom, convex) ▜", - "Corner (bottom, convex) ▙", - "Corner (bottom, convex) ▛", - "Kinked corner north (bottom) ▜", - "Kinked corner south (bottom) ▟", - "Kinked corner north (bottom) ▛", - "Kinked corner south (bottom) ▙", - "Kinked corner west (bottom) ▙", - "Kinked corner west (bottom) ▛", - "Kinked corner east (bottom) ▟", - "Kinked corner east (bottom) ▜", - "Deep corner (concave) ▛", - "Deep corner (concave) ▙", - "Deep corner (concave) ▜", - "Deep corner (concave) ▟", - "Large brazier", - "Statue", - "Star tile (disabled)", - "Star tile (enabled)", - "Small torch (lit)", - "Barrel", - "Unknown", // TODO: NEEDS IN GAME CHECKING - "Table", - "Fairy statue", - "Unknown", // TODO: NEEDS IN GAME CHECKING - "Unknown", // TODO: NEEDS IN GAME CHECKING - "Chair", - "Bed", - "Fireplace", - "Mario portrait", - "Unknown", // TODO: NEEDS IN GAME CHECKING - "Unknown", // TODO: NEEDS IN GAME CHECKING - "Interroom stairs (up)", - "Interroom stairs (down)", - "Interroom stairs B (down)", - "Intraroom stairs north B", // TODO: VERIFY LAYER HANDLING - "Intraroom stairs north (separate layers)", - "Intraroom stairs north (merged layers)", - "Intraroom stairs north (swim layer)", - "Block", - "Water ladder (north)", - "Water ladder (south)", // TODO: NEEDS IN GAME VERIFICATION - "Dam floodgate", - "Interroom spiral stairs up (top)", - "Interroom spiral stairs down (top)", - "Interroom spiral stairs up (bottom)", - "Interroom spiral stairs down (bottom)", - "Sanctuary wall (north)", - "Unknown", // TODO: NEEDS IN GAME CHECKING - "Pew", - "Magic bat altar", -}; - -static const std::string Type3RoomObjectNames[] = { - "Waterfall face (empty)", - "Waterfall face (short)", - "Waterfall face (long)", - "Somaria path endpoint", - "Somaria path intersection ╋", - "Somaria path corner ┏", - "Somaria path corner ┗", - "Somaria path corner ┓", - "Somaria path corner ┛", - "Somaria path intersection ┳", - "Somaria path intersection ┻", - "Somaria path intersection ┣", - "Somaria path intersection ┫", - "Unknown", // TODO: NEEDS IN GAME CHECKING - "Somaria path 2-way endpoint", - "Somaria path crossover", - "Babasu hole (north)", - "Babasu hole (south)", - "9 blue rupees", - "Telepathy tile", - "Warp door", // TODO: NEEDS IN GAME VERIFICATION THAT THIS IS USELESS - "Kholdstare's shell", - "Hammer peg", - "Prison cell", - "Big key lock", - "Chest", - "Chest (open)", - "Intraroom stairs south", // TODO: VERIFY LAYER HANDLING - "Intraroom stairs south (separate layers)", - "Intraroom stairs south (merged layers)", - "Interroom straight stairs up (north, top)", - "Interroom straight stairs down (north, top)", - "Interroom straight stairs up (south, top)", - "Interroom straight stairs down (south, top)", - "Deep corner (convex) ▟", - "Deep corner (convex) ▜", - "Deep corner (convex) ▙", - "Deep corner (convex) ▛", - "Interroom straight stairs up (north, bottom)", - "Interroom straight stairs down (north, bottom)", - "Interroom straight stairs up (south, bottom)", - "Interroom straight stairs down (south, bottom)", - "Lamp cones", - "Unknown", // TODO: NEEDS IN GAME CHECKING - "Liftable large block", - "Agahnim's altar", - "Agahnim's boss room", - "Pot", - "Unknown", // TODO: NEEDS IN GAME CHECKING - "Big chest", - "Big chest (open)", - "Intraroom stairs south (swim layer)", - "Unknown", // TODO: NEEDS IN GAME CHECKING - "Unknown", // TODO: NEEDS IN GAME CHECKING - "Unknown", // TODO: NEEDS IN GAME CHECKING - "Unknown", // TODO: NEEDS IN GAME CHECKING - "Unknown", // TODO: NEEDS IN GAME CHECKING - "Unknown", // TODO: NEEDS IN GAME CHECKING - "Pipe end (south)", - "Pipe end (north)", - "Pipe end (east)", - "Pipe end (west)", - "Pipe corner ▛", - "Pipe corner ▙", - "Pipe corner ▜", - "Pipe corner ▟", - "Pipe-rock intersection ⯊", - "Pipe-rock intersection ⯋", - "Pipe-rock intersection ◖", - "Pipe-rock intersection ◗", - "Pipe crossover", - "Bombable floor", - "Fake bombable floor", - "Unknown", // TODO: NEEDS IN GAME CHECKING - "Warp tile", - "Tool rack", - "Furnace", - "Tub (wide)", - "Anvil", - "Warp tile (disabled)", - "Pressure plate", - "Unknown", // TODO: NEEDS IN GAME CHECKING - "Blue peg", - "Orange peg", - "Fortune teller room", - "Unknown", // TODO: NEEDS IN GAME CHECKING - "Bar corner ▛", - "Bar corner ▙", - "Bar corner ▜", - "Bar corner ▟", - "Decorative bowl", - "Tub (tall)", - "Bookcase", - "Range", - "Suitcase", - "Bar bottles", - "Arrow game hole (west)", - "Arrow game hole (east)", - "Vitreous goo graphics", - "Fake pressure plate", - "Medusa head", - "4-way shooter block", - "Pit", - "Wall crack (north)", - "Wall crack (south)", - "Wall crack (west)", - "Wall crack (east)", - "Large decor", - "Water grate (north)", - "Water grate (south)", - "Water grate (west)", - "Water grate (east)", - "Window sunlight", - "Floor sunlight", - "Trinexx's shell", - "Layer 2 mask (full)", - "Boss entrance", - "Minigame chest", - "Ganon door", - "Triforce wall ornament", - "Triforce floor tiles", - "Freezor hole", - "Pile of bones", - "Vitreous goo damage", - "Arrow tile ↑", - "Arrow tile ↓", - "Arrow tile →", - "Nothing", -}; - -static const std::string TileTypeNames[] = { - "$00 Nothing (standard floor)", - "$01 Collision", - "$02 Collision", - "$03 Collision", - "$04 Collision", - "$05 Nothing (unused?)", - "$06 Nothing (unused?)", - "$07 Nothing (unused?)", - "$08 Deep water", - "$09 Shallow water", - "$0A Unknown? Possibly unused", - "$0B Collision (different in Overworld and unknown)", - "$0C Overlay mask", - "$0D Spike floor", - "$0E GT ice", - "$0F Ice palace ice", - "$10 Slope ◤", - "$11 Slope ◥", - "$12 Slope ◣", - "$13 Slope ◢", - "$14 Nothing (unused?)", - "$15 Nothing (unused?)", - "$16 Nothing (unused?)", - "$17 Nothing (unused?)", - "$18 Slope ◤", - "$19 Slope ◥", - "$1A Slope ◣", - "$1B Slope ◢", - "$1C Layer 2 overlay", - "$1D North single-layer auto stairs", - "$1E North layer-swap auto stairs", - "$1F North layer-swap auto stairs", - "$20 Pit", - "$21 Nothing (unused?)", - "$22 Manual stairs", - "$23 Pot switch", - "$24 Pressure switch", - "$25 Nothing (unused but referenced by somaria blocks)", - "$26 Collision (near stairs?)", - "$27 Brazier/Fence/Statue/Block/General hookable things", - "$28 North ledge", - "$29 South ledge", - "$2A East ledge", - "$2B West ledge", - "$2C ◤ ledge", - "$2D ◣ ledge", - "$2E ◥ ledge", - "$2F ◢ ledge", - "$30 Straight inter-room stairs south/up 0", - "$31 Straight inter-room stairs south/up 1", - "$32 Straight inter-room stairs south/up 2", - "$33 Straight inter-room stairs south/up 3", - "$34 Straight inter-room stairs north/down 0", - "$35 Straight inter-room stairs north/down 1", - "$36 Straight inter-room stairs north/down 2", - "$37 Straight inter-room stairs north/down 3", - "$38 Straight inter-room stairs north/down edge", - "$39 Straight inter-room stairs south/up edge", - "$3A Star tile (inactive on load)", - "$3B Star tile (active on load)", - "$3C Nothing (unused?)", - "$3D South single-layer auto stairs", - "$3E South layer-swap auto stairs", - "$3F South layer-swap auto stairs", - "$40 Thick grass", - "$41 Nothing (unused?)", - "$42 Gravestone / Tower of hera ledge shadows??", - "$43 Skull Woods entrance/Hera columns???", - "$44 Spike", - "$45 Nothing (unused?)", - "$46 Desert Tablet", - "$47 Nothing (unused?)", - "$48 Diggable ground", - "$49 Nothing (unused?)", - "$4A Diggable ground", - "$4B Warp tile", - "$4C Nothing (unused?) | Something unknown in overworld", - "$4D Nothing (unused?) | Something unknown in overworld", - "$4E Square corners in EP overworld", - "$4F Square corners in EP overworld", - "$50 Green bush", - "$51 Dark bush", - "$52 Gray rock", - "$53 Black rock", - "$54 Hint tile/Sign", - "$55 Big gray rock", - "$56 Big black rock", - "$57 Bonk rocks", - "$58 Chest 0", - "$59 Chest 1", - "$5A Chest 2", - "$5B Chest 3", - "$5C Chest 4", - "$5D Chest 5", - "$5E Spiral stairs", - "$5F Spiral stairs", - "$60 Rupee tile", - "$61 Nothing (unused?)", - "$62 Bombable floor", - "$63 Minigame chest", - "$64 Nothing (unused?)", - "$65 Nothing (unused?)", - "$66 Crystal peg down", - "$67 Crystal peg up", - "$68 Upwards conveyor", - "$69 Downwards conveyor", - "$6A Leftwards conveyor", - "$6B Rightwards conveyor", - "$6C North vines", - "$6D South vines", - "$6E West vines", - "$6F East vines", - "$70 Pot/Hammer peg/Push block 00", - "$71 Pot/Hammer peg/Push block 01", - "$72 Pot/Hammer peg/Push block 02", - "$73 Pot/Hammer peg/Push block 03", - "$74 Pot/Hammer peg/Push block 04", - "$75 Pot/Hammer peg/Push block 05", - "$76 Pot/Hammer peg/Push block 06", - "$77 Pot/Hammer peg/Push block 07", - "$78 Pot/Hammer peg/Push block 08", - "$79 Pot/Hammer peg/Push block 09", - "$7A Pot/Hammer peg/Push block 0A", - "$7B Pot/Hammer peg/Push block 0B", - "$7C Pot/Hammer peg/Push block 0C", - "$7D Pot/Hammer peg/Push block 0D", - "$7E Pot/Hammer peg/Push block 0E", - "$7F Pot/Hammer peg/Push block 0F", - "$80 North/South door", - "$81 East/West door", - "$82 North/South shutter door", - "$83 East/West shutter door", - "$84 North/South layer 2 door", - "$85 East/West layer 2 door", - "$86 North/South layer 2 shutter door", - "$87 East/West layer 2 shutter door", - "$88 Some type of door (?)", - "$89 East/West transport door", - "$8A Some type of door (?)", - "$8B Some type of door (?)", - "$8C Some type of door (?)", - "$8D Some type of door (?)", - "$8E Entrance door", - "$8F Entrance door", - "$90 Layer toggle shutter door (?)", - "$91 Layer toggle shutter door (?)", - "$92 Layer toggle shutter door (?)", - "$93 Layer toggle shutter door (?)", - "$94 Layer toggle shutter door (?)", - "$95 Layer toggle shutter door (?)", - "$96 Layer toggle shutter door (?)", - "$97 Layer toggle shutter door (?)", - "$98 Layer+Dungeon toggle shutter door (?)", - "$99 Layer+Dungeon toggle shutter door (?)", - "$9A Layer+Dungeon toggle shutter door (?)", - "$9B Layer+Dungeon toggle shutter door (?)", - "$9C Layer+Dungeon toggle shutter door (?)", - "$9D Layer+Dungeon toggle shutter door (?)", - "$9E Layer+Dungeon toggle shutter door (?)", - "$9F Layer+Dungeon toggle shutter door (?)", - "$A0 North/South Dungeon swap door", - "$A1 Dungeon toggle door (?)", - "$A2 Dungeon toggle door (?)", - "$A3 Dungeon toggle door (?)", - "$A4 Dungeon toggle door (?)", - "$A5 Dungeon toggle door (?)", - "$A6 Nothing (unused?)", - "$A7 Nothing (unused?)", - "$A8 Layer+Dungeon toggle shutter door (?)", - "$A9 Layer+Dungeon toggle shutter door (?)", - "$AA Layer+Dungeon toggle shutter door (?)", - "$AB Layer+Dungeon toggle shutter door (?)", - "$AC Layer+Dungeon toggle shutter door (?)", - "$AD Layer+Dungeon toggle shutter door (?)", - "$AE Layer+Dungeon toggle shutter door (?)", - "$AF Layer+Dungeon toggle shutter door (?)", - "$B0 Somaria ─", - "$B1 Somaria │", - "$B2 Somaria ┌", - "$B3 Somaria └", - "$B4 Somaria ┐", - "$B5 Somaria ┘", - "$B6 Somaria ⍰ 1 way", - "$B7 Somaria ┬", - "$B8 Somaria ┴", - "$B9 Somaria ├", - "$BA Somaria ┤", - "$BB Somaria ┼", - "$BC Somaria ⍰ 2 way", - "$BD Somaria ┼ crossover", - "$BE Pipe entrance", - "$BF Nothing (unused?)", - "$C0 Torch 00", - "$C1 Torch 01", - "$C2 Torch 02", - "$C3 Torch 03", - "$C4 Torch 04", - "$C5 Torch 05", - "$C6 Torch 06", - "$C7 Torch 07", - "$C8 Torch 08", - "$C9 Torch 09", - "$CA Torch 0A", - "$CB Torch 0B", - "$CC Torch 0C", - "$CD Torch 0D", - "$CE Torch 0E", - "$CF Torch 0F", - "$D0 Nothing (unused?)", - "$D1 Nothing (unused?)", - "$D2 Nothing (unused?)", - "$D3 Nothing (unused?)", - "$D4 Nothing (unused?)", - "$D5 Nothing (unused?)", - "$D6 Nothing (unused?)", - "$D7 Nothing (unused?)", - "$D8 Nothing (unused?)", - "$D9 Nothing (unused?)", - "$DA Nothing (unused?)", - "$DB Nothing (unused?)", - "$DC Nothing (unused?)", - "$DD Nothing (unused?)", - "$DE Nothing (unused?)", - "$DF Nothing (unused?)", - "$E0 Nothing (unused?)", - "$E1 Nothing (unused?)", - "$E2 Nothing (unused?)", - "$E3 Nothing (unused?)", - "$E4 Nothing (unused?)", - "$E5 Nothing (unused?)", - "$E6 Nothing (unused?)", - "$E7 Nothing (unused?)", - "$E8 Nothing (unused?)", - "$E9 Nothing (unused?)", - "$EA Nothing (unused?)", - "$EB Nothing (unused?)", - "$EC Nothing (unused?)", - "$ED Nothing (unused?)", - "$EE Nothing (unused?)", - "$EF Nothing (unused?)", - "$F0 Door 0 bottom", - "$F1 Door 1 bottom", - "$F2 Door 2 bottom", - "$F3 Door 3 bottom", - "$F4 Door X bottom? (unused?)", - "$F5 Door X bottom? (unused?)", - "$F6 Door X bottom? (unused?)", - "$F7 Door X bottom? (unused?)", - "$F8 Door 0 top", - "$F9 Door 1 top", - "$FA Door 2 top", - "$FB Door 3 top", - "$FC Door X top? (unused?)", - "$FD Door X top? (unused?)", - "$FE Door X top? (unused?)", - "$FF Door X top? (unused?)"}; - -} // namespace Constants -} // namespace Core -} // namespace Application -} // namespace yaze - -#endif \ No newline at end of file