Refactoring the codebase and moving closer to decompression
This commit is contained in:
@@ -4,11 +4,19 @@
|
||||
#include <array>
|
||||
#include <string>
|
||||
|
||||
#define TAB_BAR(w) if (ImGui::BeginTabBar(w)) {
|
||||
#define END_TAB_BAR() ImGui::EndTabBar(); }
|
||||
#define BASIC_BUTTON(w) if (ImGui::Button(w))
|
||||
|
||||
#define MENU_BAR() if (ImGui::BeginMenuBar()) {
|
||||
#define END_MENU_BAR() ImGui::EndMenuBar(); }
|
||||
#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 {
|
||||
@@ -20,24 +28,17 @@ using ushort = unsigned short;
|
||||
//===========================================================================================
|
||||
// Magic numbers
|
||||
//===========================================================================================
|
||||
/// <summary>
|
||||
|
||||
/// Bit set for object priority
|
||||
/// </summary>
|
||||
constexpr ushort TilePriorityBit = 0x2000;
|
||||
|
||||
/// <summary>
|
||||
/// Bit set for object hflip
|
||||
/// </summary>
|
||||
constexpr ushort TileHFlipBit = 0x4000;
|
||||
|
||||
/// <summary>
|
||||
/// Bit set for object vflip
|
||||
/// </summary>
|
||||
constexpr ushort TileVFlipBit = 0x8000;
|
||||
|
||||
/// <summary>
|
||||
/// Bits used for tile name
|
||||
/// </summary>
|
||||
constexpr ushort TileNameMask = 0x03FF;
|
||||
|
||||
constexpr int Uncompressed3BPPSize = 0x0600;
|
||||
@@ -49,7 +50,7 @@ constexpr int NumberOfRooms = 296;
|
||||
|
||||
constexpr int NumberOfOWMaps = 160;
|
||||
constexpr int Map32PerScreen = 256;
|
||||
constexpr int NumberOfMap16 = 3752; // 4096
|
||||
constexpr int NumberOfMap16 = 3752; // 4096
|
||||
constexpr int NumberOfMap32 = Map32PerScreen * NumberOfOWMaps;
|
||||
constexpr int NumberOfOWSprites = 352;
|
||||
constexpr int NumberOfColors = 3143;
|
||||
@@ -58,17 +59,17 @@ 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 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
|
||||
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;
|
||||
|
||||
@@ -100,9 +101,9 @@ constexpr int overworldSpritesAgahnim = 0x4CA21;
|
||||
constexpr int overworldSpritesZelda = 0x4C901;
|
||||
|
||||
constexpr int overworldItemsPointers = 0xDC2F9;
|
||||
constexpr int overworldItemsAddress = 0xDC8B9; // 1BC2F9
|
||||
constexpr int overworldItemsAddress = 0xDC8B9; // 1BC2F9
|
||||
constexpr int overworldItemsBank = 0xDC8BF;
|
||||
constexpr int overworldItemsEndData = 0xDC89C; // 0DC89E
|
||||
constexpr int overworldItemsEndData = 0xDC89C; // 0DC89E
|
||||
|
||||
constexpr int mapGfx = 0x7C9C;
|
||||
constexpr int overlayPointers = 0x77664;
|
||||
@@ -121,10 +122,10 @@ constexpr int overworldMusicDW = 0x14403;
|
||||
constexpr int overworldEntranceAllowedTilesLeft = 0xDB8C1;
|
||||
constexpr int overworldEntranceAllowedTilesRight = 0xDB917;
|
||||
|
||||
constexpr int overworldMapSize = 0x12844; // 0x00 = small maps, 0x20 = large
|
||||
// maps
|
||||
constexpr int overworldMapSize = 0x12844; // 0x00 = small maps, 0x20 = large
|
||||
// maps
|
||||
constexpr int overworldMapSizeHighByte =
|
||||
0x12884; // 0x01 = small maps, 0x03 = large maps
|
||||
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!
|
||||
@@ -141,7 +142,7 @@ constexpr int overworldScreenSize = 0x1788D;
|
||||
//===========================================================================================
|
||||
// Overworld Exits/Entrances Variables
|
||||
//===========================================================================================
|
||||
constexpr int OWExitRoomId = 0x15D8A; // 0x15E07 Credits sequences
|
||||
constexpr int OWExitRoomId = 0x15D8A; // 0x15E07 Credits sequences
|
||||
// 105C2 Ending maps
|
||||
// 105E2 Sprite Group Table for Ending
|
||||
constexpr int OWExitMapId = 0x15E28;
|
||||
@@ -162,43 +163,44 @@ 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 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
|
||||
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
|
||||
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_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)
|
||||
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 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 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 room_object_pointer = 0x874C; // Long pointer
|
||||
|
||||
constexpr int chests_length_pointer = 0xEBF6;
|
||||
constexpr int chests_data_pointer1 = 0xEBFB;
|
||||
@@ -206,18 +208,18 @@ constexpr int chests_data_pointer1 = 0xEBFB;
|
||||
// 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_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 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
|
||||
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;
|
||||
|
||||
@@ -240,7 +242,7 @@ 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 gfx_font = 0x70000; // 2bpp format
|
||||
constexpr int text_data = 0xE0000;
|
||||
constexpr int text_data2 = 0x75F40;
|
||||
constexpr int pointers_dictionaries = 0x74703;
|
||||
@@ -249,60 +251,61 @@ constexpr int characters_width = 0x74ADF;
|
||||
//===========================================================================================
|
||||
// Dungeon Entrances Related Variables
|
||||
//===========================================================================================
|
||||
constexpr int entrance_room = 0x14813; // 0x14577 //word value for each room
|
||||
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
|
||||
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_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
|
||||
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
|
||||
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
|
||||
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_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_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
|
||||
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 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
|
||||
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);
|
||||
@@ -314,39 +317,39 @@ constexpr int chests_msgid = 0x442DD;
|
||||
|
||||
constexpr int dungeons_startrooms = 0x7939;
|
||||
constexpr int dungeons_endrooms = 0x792D;
|
||||
constexpr int dungeons_bossrooms = 0x10954; // short value
|
||||
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 bedPositionX = 0x039A37; // short value
|
||||
constexpr int bedPositionY = 0x039A32; // short value
|
||||
|
||||
constexpr int bedPositionResetXLow =
|
||||
0x02DE53; // short value(on 2 different bytes)
|
||||
constexpr int bedPositionResetXHigh = 0x02DE58; //^^^^^^
|
||||
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; //^^^^^^
|
||||
0x02DE5D; // short value(on 2 different bytes)
|
||||
constexpr int bedPositionResetYHigh = 0x02DE62; //^^^^^^
|
||||
|
||||
constexpr int bedSheetPositionX = 0x0480BD; // short value
|
||||
constexpr int bedSheetPositionY = 0x0480B8; // short value
|
||||
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 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 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
|
||||
constexpr int GraveLinkSpecialHole = 0x46DD9; // short
|
||||
constexpr int GraveLinkSpecialStairs = 0x46DE0; // short
|
||||
|
||||
//===========================================================================================
|
||||
// Palettes Related Variables - This contain all the palettes of the game
|
||||
@@ -357,39 +360,40 @@ 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
|
||||
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 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_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_gfx_ptr = 0x57BE4; // 14 pointers of gfx data
|
||||
constexpr int dungeonMap_datastart =
|
||||
0x57039; // data start for floors/gfx MUST skip 575D9 to 57621 (pointers)
|
||||
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
|
||||
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 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 triforceVertices = 0x04FFD2; // group of 3, X, Y ,Z
|
||||
constexpr int TriforceFaces = 0x04FFE4; // group of 5
|
||||
|
||||
constexpr int crystalVertices = 0x04FF98;
|
||||
|
||||
@@ -483,7 +487,7 @@ static const std::string SecretItemNames[] = {
|
||||
"Full Magic", "Cucco", "Green Soldier", "Bush Stal", "Blue Soldier",
|
||||
|
||||
"Landmine", "Heart", "Fairy", "Heart",
|
||||
"Nothing ", // 22
|
||||
"Nothing ", // 22
|
||||
|
||||
"Hole", "Warp", "Staircase", "Bombable", "Switch"};
|
||||
|
||||
@@ -541,7 +545,7 @@ static const std::string Type1RoomObjectNames[] = {
|
||||
"Nothing",
|
||||
"Carpet ↔",
|
||||
"Carpet trim ↔",
|
||||
"Weird door", // TODO: WEIRD DOOR OBJECT NEEDS INVESTIGATION
|
||||
"Weird door", // TODO: WEIRD DOOR OBJECT NEEDS INVESTIGATION
|
||||
"Drapes (north) ↔",
|
||||
"Drapes (west, odd) ↔",
|
||||
"Statues ↔",
|
||||
@@ -559,10 +563,10 @@ static const std::string Type1RoomObjectNames[] = {
|
||||
"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
|
||||
"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 ↔",
|
||||
@@ -657,10 +661,10 @@ static const std::string Type1RoomObjectNames[] = {
|
||||
"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
|
||||
"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",
|
||||
@@ -699,10 +703,10 @@ static const std::string Type1RoomObjectNames[] = {
|
||||
"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?
|
||||
"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 ⇲",
|
||||
@@ -773,34 +777,34 @@ static const std::string Type2RoomObjectNames[] = {
|
||||
"Star tile (enabled)",
|
||||
"Small torch (lit)",
|
||||
"Barrel",
|
||||
"Unknown", // TODO: NEEDS IN GAME CHECKING
|
||||
"Unknown", // TODO: NEEDS IN GAME CHECKING
|
||||
"Table",
|
||||
"Fairy statue",
|
||||
"Unknown", // TODO: NEEDS IN GAME CHECKING
|
||||
"Unknown", // TODO: NEEDS IN GAME CHECKING
|
||||
"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
|
||||
"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 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
|
||||
"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
|
||||
"Unknown", // TODO: NEEDS IN GAME CHECKING
|
||||
"Pew",
|
||||
"Magic bat altar",
|
||||
};
|
||||
@@ -819,21 +823,21 @@ static const std::string Type3RoomObjectNames[] = {
|
||||
"Somaria path intersection ┻",
|
||||
"Somaria path intersection ┣",
|
||||
"Somaria path intersection ┫",
|
||||
"Unknown", // TODO: NEEDS IN GAME CHECKING
|
||||
"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
|
||||
"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", // TODO: VERIFY LAYER HANDLING
|
||||
"Intraroom stairs south (separate layers)",
|
||||
"Intraroom stairs south (merged layers)",
|
||||
"Interroom straight stairs up (north, top)",
|
||||
@@ -849,21 +853,21 @@ static const std::string Type3RoomObjectNames[] = {
|
||||
"Interroom straight stairs up (south, bottom)",
|
||||
"Interroom straight stairs down (south, bottom)",
|
||||
"Lamp cones",
|
||||
"Unknown", // TODO: NEEDS IN GAME CHECKING
|
||||
"Unknown", // TODO: NEEDS IN GAME CHECKING
|
||||
"Liftable large block",
|
||||
"Agahnim's altar",
|
||||
"Agahnim's boss room",
|
||||
"Pot",
|
||||
"Unknown", // TODO: NEEDS IN GAME CHECKING
|
||||
"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
|
||||
"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)",
|
||||
@@ -879,7 +883,7 @@ static const std::string Type3RoomObjectNames[] = {
|
||||
"Pipe crossover",
|
||||
"Bombable floor",
|
||||
"Fake bombable floor",
|
||||
"Unknown", // TODO: NEEDS IN GAME CHECKING
|
||||
"Unknown", // TODO: NEEDS IN GAME CHECKING
|
||||
"Warp tile",
|
||||
"Tool rack",
|
||||
"Furnace",
|
||||
@@ -887,11 +891,11 @@ static const std::string Type3RoomObjectNames[] = {
|
||||
"Anvil",
|
||||
"Warp tile (disabled)",
|
||||
"Pressure plate",
|
||||
"Unknown", // TODO: NEEDS IN GAME CHECKING
|
||||
"Unknown", // TODO: NEEDS IN GAME CHECKING
|
||||
"Blue peg",
|
||||
"Orange peg",
|
||||
"Fortune teller room",
|
||||
"Unknown", // TODO: NEEDS IN GAME CHECKING
|
||||
"Unknown", // TODO: NEEDS IN GAME CHECKING
|
||||
"Bar corner ▛",
|
||||
"Bar corner ▙",
|
||||
"Bar corner ▜",
|
||||
@@ -1194,9 +1198,9 @@ static const std::string TileTypeNames[] = {
|
||||
"$FE Door X top? (unused?)",
|
||||
"$FF Door X top? (unused?)"};
|
||||
|
||||
} // namespace Constants
|
||||
} // namespace Core
|
||||
} // namespace Application
|
||||
} // namespace yaze
|
||||
} // namespace Constants
|
||||
} // namespace Core
|
||||
} // namespace Application
|
||||
} // namespace yaze
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user