DS-Pokemon-Rom-Editor/DS_Map/Resources/PokeDatabase.cs
AdAstra-LD 1e5627f8d5 Updated script editor and other things
- Add NSBTX and Remove NSBTX buttons also add/remove building configuration file [NSBTX Editor]
- Changed format of Script Editor display
- Added highlighting of 'Script', 'Function' and 'Action' keywords (only upon reloading)
- Changed Endcodes database to HashSet (PokeDatabase -> ScriptEditor)
- Minor refactor
2021-04-08 10:27:42 +02:00

4172 lines
174 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using DSPRE.ROMFiles;
using System;
using System.Collections.Generic;
using System.Drawing;
namespace DSPRE.Resources {
public static class PokeDatabase {
public static class Area {
public static string[] PtAreaIconValues = new string[] {
"[00] City",
"[01] City",
"[02] Town 1",
"[03] Town 2",
"[04] Cave",
"[05] Forest",
"[06] Water",
"[07] Field",
"[08] Island",
"[09] Wood"
};
public static string[] HGSSAreaIconValues = new string[] {
"[002] Wood",
"[009] Gray",
"[017] Wall",
"[048] Not displayed",
"[131] Town",
"[132] Cave",
"[135] Field",
"[152] Lake",
"[165] Forest",
"[166] Water"
};
public static string[] HGSSAreaProperties = new string[] {
"[00] Unknown",
"[01] Unknown",
"[02] Unknown",
"[03] Cave Animation",
"[04] Hide Location Tag",
"[05] Unknown",
"[06] Unknown",
"[07] Unknown",
"[08] Unknown",
"[09] Unknown",
"[10] Unknown",
"[11] Unknown",
"[12] Unknown",
"[13] Unknown",
"[14] Unknown",
"[15] Unknown",
"[16] Unknown",
};
}
public static class ShowName {
public static string[] DPShowNameValues = new string[] {
"[000] Show",
"[001] Show",
"[002] Show",
"[003] Show",
"[004] Don't show"
};
public static string[] PtShowNameValues = new string[] {
"[000] Show",
"[001] Show",
"[002] Show",
"[003] Show",
"[004] Don't show",
"[128] Don't show",
"[129] Show",
"[130] Show",
"[131] Show",
"[132] Don't show",
"[134] Show"
};
}
public static class Weather {
public static Dictionary<int, string> DPWeatherDict = new Dictionary<int, string> {
[00] = "Normal",
[01] = "Normal, somewhat dark",
[02] = "Rain",
[03] = "Heavy rain",
[04] = "Thunderstorm",
[05] = "Snowfall, slow",
[06] = "Diamond dust",
[07] = "Blizzard",
[08] = "Normal [08]",
[09] = "Volcanic ash fall, slow",
[10] = "Sand storm",
[11] = "Hail",
[12] = "Rocks ascending (?)",
[13] = "Normal [13]",
[14] = "Fog",
[15] = "Deep fog",
[16] = "Dark, Flash usable",
[17] = "Lightning, no rain",
[18] = "Normal [18]",
[19] = "Normal [19]",
[20] = "Normal [20]",
[21] = "Diamond dust [21]",
[22] = "Volcanic ash storm",
[23] = "Normal [23]",
[24] = "Thunderstorm [24]",
[25] = "Normal [25]",
[26] = "Diamond dust [26]",
[27] = "Diamond dust [27]",
[28] = "Snowfall, slow [28]",
};
public static Dictionary<int, string> PtWeatherDict = new Dictionary<int, string> {
[00] = "Normal",
[01] = "Normal, somewhat dark",
[02] = "Rain",
[03] = "Heavy rain",
[04] = "Thunderstorm",
[05] = "Snowfall, slow",
[06] = "Diamond dust",
[07] = "Blizzard",
[08] = "Normal [08]",
[09] = "Volcanic ash fall, slow",
[10] = "Sand storm",
[11] = "Hail",
[12] = "Rocks ascending (?)",
[13] = "Normal [13]",
[14] = "Fog",
[15] = "Deep fog",
[16] = "Dark, Flash usable",
[17] = "Lightning, no rain",
[18] = "Light fog",
[19] = "Heavy fog",
[20] = "Normal [20]",
[21] = "Diamond dust [21]",
[22] = "Volcanic ash fall, steady",
[23] = "Eterna forest weather",
[24] = "Player spotlight [24]",
[25] = "Player spotlight [25]",
[26] = "Dark fog",
[27] = "Somewhat green",
[28] = "Somewhat red",
[29] = "Somewhat blue",
[30] = "Dim light",
[31] = "Normal [31]",
[32] = "Rain [32]",
[33] = "Normal [33]",
[34] = "Diamond dust [34]",
[35] = "Diamond dust [35]",
[36] = "Snowfall, slow [36]",
};
public static Dictionary<int, string> HGSSWeatherDict = new Dictionary<int, string> {
[00] = "Normal",
[01] = "Normal [1]",
[02] = "Rain",
[03] = "Rain [3]",
[04] = "Rain [4]",
[05] = "Rain [5]",
[06] = "Rain [6]",
[07] = "Rain [7]",
[08] = "Rain [8]",
[09] = "Snow [9]",
[10] = "Snow [10]",
[11] = "Snow [11]",
[12] = "Snow [12]",
[13] = "Snow [13]",
[14] = "Sandstorm (in battle only)",
[15] = "Snow [15]",
[16] = "Diamond Dust",
[17] = "Diamond Dust [17]",
[18] = "Fog",
[19] = "Fog [19]",
[20] = "Fog [20]",
[21] = "Fog [21]",
[22] = "Darkness",
[23] = "Darkness [23]",
[24] = "Darkness after flash",
[25] = "Darkness after flash [25]",
[26] = "Low Light (Battle Arcade)"
};
}
public static class CameraAngles {
public static string[] DPPtCameraValues = new string[] {
"[00] 3D Normal",
"[01] 3D Top View (Higher than [12])",
"[02] 3D Frontal Low (Wider than [15])",
"[03] 3D Frontal",
"[04] 2D Ortho",
"[05] 3D Normal - Wide FOV",
"[06] 3D Bird View",
"[07] 3D Normal",
"[08] 3D Bird View Far",
"[09] 3D Frontal - Wide FOV",
"[10] 3D Top View - Narrow",
"[11] Normal 3D",
"[12] 3D Top View",
"[13] Frontal 3D",
"[14] 3D Top View - Wide FOV",
"[15] 3D Frontal Low"
};
public static string[] HGSSCameraValues = new string[] {
"[00] 3D Top",
"[01] 3D Front High",
"[02] 3D Lower",
"[03] 3D Frontal",
"[04] 2D Top View",
"[05] Normal 3D",
"[06] 3D Normal",
"[07] High 3D",
"[08] 3D Top View",
"[09] 3D Top View",
"[10] 3D High Wide",
"[11] 3D Frontal Wide",
"[12] 3D Lower Close",
"[13] 3D Full Frontal",
"[14] 3D Top View",
"[15] 2D Higher"
};
}
public abstract class MusicDB {
public static Dictionary<ushort, string> DPMusicDict = new Dictionary<ushort, string>() {
[1000] = "Mystery Zone",
[1001] = "Silence",
[1002] = "Pal Park",
[1004] = "Twinleaf Town (Day)",
[1005] = "Sandgem Town (Day)",
[1006] = "Floaroma Town (Day)",
[1008] = "Route 225 (Day)",
[1009] = "Valor Lakefront (Day)",
[1010] = "Jubilife City (Day)",
[1011] = "Canalave City (Day)",
[1012] = "Oreburgh City (Day)",
[1013] = "Eterna City (Day)",
[1014] = "Hearthome City (Day)",
[1015] = "Pastoria City (Day)",
[1016] = "Veilstone City (Day)",
[1017] = "Sunyshore City (Day)",
[1018] = "Snowpoint City (Day)",
[1019] = "Pokémon League (Day)",
[1020] = "Fight Area (Day)",
[1021] = "Route 201 (Day)",
[1022] = "Route 203 (Day)",
[1023] = "Route 205 (Day)",
[1024] = "Route 206 (Day)",
[1025] = "Route 209 (Day)",
[1026] = "Route 215 (Day)",
[1027] = "Route 216 (Day)",
[1028] = "Route 228 (Day)",
[1033] = "Twinleaf Town (Night)",
[1034] = "Sandgem Town (Night)",
[1035] = "Floaroma Town (Night)",
[1037] = "Route 225 (Night)",
[1038] = "Valor Lakefront (Night)",
[1039] = "Jubilife City (Night)",
[1040] = "Canalave City (Night)",
[1041] = "Oreburgh City (Night)",
[1042] = "Eterna City (Night)",
[1043] = "Hearthome CIty (Night)",
[1044] = "Pastoria City (Night)",
[1045] = "Veilstone City (Night)",
[1046] = "Sunyshore City (Night)",
[1047] = "Snowpoint City (Night)",
[1048] = "Pokémon League (Night)",
[1049] = "Fight Area (Night)",
[1050] = "Route 201 (Night)",
[1051] = "Route 203 (Night)",
[1052] = "Route 205 (Night)",
[1053] = "Route 206 (Night)",
[1054] = "Route 209 (Night)",
[1055] = "Route 215 (Night)",
[1056] = "Route 216 (Night)",
[1057] = "Route 228 (Night)",
[1060] = "Mystery Zone",
[1062] = "Victory Road",
[1063] = "Eterna Forest",
[1064] = "Old Chateau",
[1065] = "Cavern on the Lake",
[1066] = "Amity Square",
[1067] = "Team Galactic HQ",
[1068] = "Eterna Galactic building",
[1069] = "Great Marsh",
[1070] = "Lake theme (Day)",
[1071] = "Mt. Coronet",
[1072] = "Spear Pillar",
[1073] = "Stark Mountain (inside)",
[1074] = "Cave 1",
[1075] = "Cave 2",
[1076] = "Elite 4 - Showdown",
[1077] = "Hall of Fame",
[1085] = "Pokémon Center (Day)",
[1086] = "Pokémon Center (Night)",
[1087] = "Gym theme",
[1088] = "Rowan's Lab",
[1089] = "Poffin House",
[1090] = "Pokémon Mart",
[1091] = "Game Corner",
[1092] = "Battle Tower (inside)",
[1093] = "Jubilife TV",
[1094] = "Team Galactic Lab",
[1096] = "Hall of Origin",
[1097] = "GTS theme"
};
public static Dictionary<ushort, string> PtMusicDict = new Dictionary<ushort, string>() {
[1000] = "Mystery Zone",
[1001] = "Silence",
[1002] = "Pal Park",
[1004] = "Twinleaf Town (Day)",
[1005] = "Sandgem Town (Day)",
[1006] = "Floaroma Town (Day)",
[1008] = "Route 225 (Day)",
[1009] = "Valor Lakefront (Day)",
[1010] = "Jubilife City (Day)",
[1011] = "Canalave City (Day)",
[1012] = "Oreburgh City (Day)",
[1013] = "Eterna City (Day)",
[1014] = "Hearthome City (Day)",
[1015] = "Pastoria City (Day)",
[1016] = "Veilstone City (Day)",
[1017] = "Sunyshore City (Day)",
[1018] = "Snowpoint City (Day)",
[1019] = "Pokémon League (Day)",
[1020] = "Fight Area (Day)",
[1021] = "Route 201 (Day)",
[1022] = "Route 203 (Day)",
[1023] = "Route 205 (Day)",
[1024] = "Route 206 (Day)",
[1025] = "Route 209 (Day)",
[1026] = "Route 215 (Day)",
[1027] = "Route 216 (Day)",
[1028] = "Route 228 (Day)",
[1033] = "Twinleaf Town (Night)",
[1034] = "Sandgem Town (Night)",
[1035] = "Floaroma Town (Night)",
[1037] = "Route 225 (Night)",
[1038] = "Valor Lakefront (Night)",
[1039] = "Jubilife City (Night)",
[1040] = "Canalave City (Night)",
[1041] = "Oreburgh City (Night)",
[1042] = "Eterna City (Night)",
[1043] = "Hearthome CIty (Night)",
[1044] = "Pastoria City (Night)",
[1045] = "Veilstone City (Night)",
[1046] = "Sunyshore City (Night)",
[1047] = "Snowpoint City (Night)",
[1048] = "Pokémon League (Night)",
[1049] = "Fight Area (Night)",
[1050] = "Route 201 (Night)",
[1051] = "Route 203 (Night)",
[1052] = "Route 205 (Night)",
[1053] = "Route 206 (Night)",
[1054] = "Route 209 (Night)",
[1055] = "Route 215 (Night)",
[1056] = "Route 216 (Night)",
[1057] = "Route 228 (Night)",
[1060] = "Mystery Zone",
[1062] = "Victory Road",
[1063] = "Eterna Forest",
[1064] = "Old Chateau",
[1065] = "Cavern on the Lake",
[1066] = "Amity Square",
[1067] = "Team Galactic HQ",
[1068] = "Galactic Eterna Building",
[1069] = "Great Marsh",
[1070] = "Lake theme (Day)",
[1071] = "Mt. Coronet",
[1072] = "Spear Pillar",
[1073] = "Stark Mountain (in)",
[1074] = "Cave 1",
[1075] = "Cave 2",
[1076] = "Elite 4 - Showdown",
[1077] = "Hall of Fame",
[1085] = "Pokémon Center (Day)",
[1086] = "Pokémon Center (Night)",
[1087] = "Gym theme",
[1088] = "Rowan's Lab",
[1089] = "Poffin House",
[1090] = "Pokémon Mart",
[1091] = "Game Corner",
[1092] = "Battle Tower (inside)",
[1093] = "Jubilife TV",
[1094] = "Team Galactic Lab",
[1096] = "Hall of Origin",
[1097] = "GTS theme",
[1190] = "Distortion World",
[1191] = "Battle Arcade",
[1192] = "Battle Hall",
[1193] = "Battle Castle",
[1194] = "Battle Factory",
[1195] = "Battle Factory",
[1196] = "Global Terminal"
};
public static Dictionary<ushort, string> HGSSMusicDict = new Dictionary<ushort, string>() {
[1000] = "Mystery Zone",
[1001] = "Silence [Outside]",
[1002] = "Silence [Dungeon]",
[1004] = "Opening Theme",
[1008] = "Title Screen Theme",
[1013] = "Bicycle Theme",
[1018] = "New Bark Town",
[1019] = "Cherrygrove City",
[1020] = "Violet City",
[1021] = "Azalea Town",
[1022] = "Goldenrod City",
[1023] = "Ecruteak City",
[1024] = "Olivine City",
[1025] = "Cianwood City",
[1026] = "Mahogany Town",
[1027] = "Blackthorn City",
[1028] = "Route 29",
[1029] = "Route 30/31",
[1030] = "Route 32",
[1031] = "Route 33",
[1032] = "Route 34",
[1033] = "Route 35/36/37",
[1034] = "Route 40/41",
[1035] = "Route 45/46",
[1036] = "Route 38/39",
[1037] = "Route 42/43/44",
[1038] = "Vermillion City",
[1039] = "Saffron City",
[1040] = "Cerulean City",
[1041] = "Lavender Town",
[1042] = "Celadon City",
[1043] = "Fuchsia City",
[1044] = "Pewter City",
[1045] = "Viridian City",
[1046] = "Pallet Town",
[1047] = "Cinnabar Island",
[1050] = "Route 1",
[1051] = "Route 2/22",
[1052] = "Route 6",
[1053] = "Route 4/5/9/10",
[1054] = "Route 8/10",
[1055] = "Route 7/16",
[1056] = "Route 18/19/20",
[1057] = "Route 3",
[1058] = "Route 20/21",
[1059] = "Route 11",
[1060] = "Route 12/13/14/15",
[1061] = "Route 24/25",
[1062] = "Route 26/27",
[1063] = "Pokémon Center",
[1064] = "Pokémon Mart",
[1065] = "Gym theme",
[1066] = "Prof. Elm Lab",
[1068] = "Kimono Girls Theater",
[1069] = "Game Corner",
[1070] = "Battle Frontier",
[1071] = "Battle Tower",
[1072] = "Sprout Tower",
[1073] = "Ilex Forest",
[1074] = "Ruins of Alph",
[1075] = "National Park",
[1076] = "Burned Tower",
[1077] = "Bell Tower",
[1078] = "Lighthouse",
[1079] = "Team Rocket HQ",
[1080] = "Ice Path",
[1081] = "Dragon's Den",
[1082] = "Diglett's Cave",
[1083] = "Viridian Forest",
[1084] = "Victory Road",
[1085] = "Indigo Plateau",
[1092] = "PokéAthlon Game",
[1096] = "S.S. Aqua",
[1097] = "Mt. Moon Plaza",
[1099] = "Sleeping Radio Music",
[1100] = "Pokemon March Radio",
[1101] = "Unown Radio",
[1102] = "Pokeflute Radio",
[1103] = "Prof. Oak's Theme/Radio",
[1134] = "Pokéathlon Dome (In)",
[1141] = "Pokéathlon Dome (Out)",
[1143] = "Battle Factory",
[1144] = "Battle Hall",
[1145] = "Battle Arcade",
[1146] = "Battle Castle",
[1151] = "Wi-Fi Union Room",
[1153] = "WiFi Plaza Parade",
[1154] = "GTS Terminal",
[1155] = "Spin Trade Theme",
[1157] = "Route 47/48",
[1158] = "Safari Zone Gate",
[1159] = "Pal Park",
[1160] = "Ethan's Theme",
[1161] = "Lyra's Theme",
[1163] = "Kimono Girls Ritual",
[1164] = "Kimono Girls Theme",
[1165] = "Battle! Ho-Oh!",
[1166] = "Battle! Lugia",
[1166] = "Spiky-Eared Pichu",
[1168] = "Sinjoh Ruins",
[1169] = "Route 101 Radio",
[1170] = "Route 201 Radio",
[1171] = "Gym Theme [Radio]",
[1172] = "Azalea Town [Radio]",
[1172] = "Goldenrod City [Radio]",
[1173] = "Battle! Kyogre/Groudon",
[1175] = "PokéWalker Theme",
[1176] = "Battle! Arceus (Event)",
[1216] = "Route 17"
};
}
public static class EventEditor {
public static class Spawnables {
public static string[] orientationsArray = new string[] {
"Frontal Interaction",
"Activated from the left",
"Activated from the right",
"Activated from behind",
"Activated from any dir",
"Activated from the sides",
"Front/Back Interaction",
};
public static string[] typesArray = new string[] {
"Misc",
"Board (Front Auto-Trigger)",
"Hidden Item",
};
}
public static class Overworlds {
public static string[] movementsArray = new string[] {
"[00] None",
"[01] None",
"[02] Looking in all directions",
"[03] Walking around in all directions",
"[04] Walking Up, Down",
"[05] Walking Left, Right",
"[06] Looking Up, Left",
"[07] Looking Up, Right",
"[08] Looking Down, Left",
"[09] Looking Down, Right",
"[10] Looking Up, Down, Left",
"[11] Looking Up, Right, Down",
"[12] Looking Right, Left, Up",
"[13] Looking Right, Left, Down",
"[14] Facing Up",
"[15] Facing Down",
"[16] Facing Left",
"[17] Facing Right",
"[18] Counterclockwise spinning",
"[19] Clockwise spinning",
"[20] Running Up, Down",
"[21] L Run (Up, Right)",
"[22] Patrols, then stops (might crash)",
"[23] Patrols, then stops (might crash)",
"[24] L Run (Up, Right)",
"[25] Patrols, then stops (might crash)",
"[26] Patrols, then stops (might crash)",
"[27] Patrols, then stops",
"[28] L run (Right, Down)",
"[29] L run (Left, Up)",
"[30] Continuous patrolling (might crash)",
"[31] Continuous patrolling (might crash)",
"[32] L Run (Down, Right)",
"[33] L Run (Right, Up)",
"[34] Patrols Area, then stops",
"[35] Patrols Area, then stops",
"[36] L Run (Down, Left)",
"[37] Running Up, Left, Down, Right",
"[38] Running Down, Right, Up, Left",
"[39] Running Left, Down, Right, Up",
"[40] Running Right, Up, Left, Down",
"[41] Running Up, Right, Down, Left",
"[42] Running Down, Left, Up, Right",
"[43] Running Left, Up, Right, Down",
"[44] Running Right, Down, Left, Up",
"[45] Looking Up, Down",
"[46] Looking Right, Left",
"[47] Crashes game (?)",
"[48] Follow Hero",
"[49] Semi-circle spin (Down, Right, Up)",
"[50] Looking down",
"[51] Hidden Under Snow",
"[52] Hidden Under Snow",
"[53] Hidden Underground",
"[54] Hidden Under Grass",
"[55] Follow Hero",
"[56] Disappears",
"[57] Looking Left",
"[58] Looking Right",
"[59] Mimick's Player facing direction",
"[60] Mimick's Player facing direction",
"[61] Mimick's Player facing direction",
"[62] Mimick's Player facing direction",
"[63] Apparently nothing (?)",
"[64] Apparently nothing (?)",
"[65] Apparently nothing (?)",
"[66] Apparently nothing (?)",
"[67] Walking Right, Left",
"[68] Looking Right",
"[69] Apparently nothing (?)",
"[70] Apparently nothing (?)",
"[71] Looking Left"
};
}
}
public static class ScriptEditor {
public static Dictionary<ushort, string> movementsDictIDName = new Dictionary<ushort, string>() {
[0x0000] = "LookUp",
[0x0001] = "LookDown",
[0x0002] = "LookLeft",
[0x0003] = "LookRight",
[0x0004] = "WalkUpSlow",
[0x0005] = "WalkDownSlow",
[0x0006] = "WalkLeftSlow",
[0x0007] = "WalkRightSlow",
[0x0008] = "WalkUp",
[0x0009] = "WalkDown",
[0x000A] = "WalkLeft",
[0x000B] = "WalkRight",
[0x000C] = "WalkUpFast",
[0x000D] = "WalkDownFast",
[0x000E] = "WalkLeftFast",
[0x000F] = "WalkRightFast",
[0x0010] = "WalkUpVeryFast",
[0x0011] = "WalkDownVeryFast",
[0x0012] = "WalkLeftVeryFast",
[0x0013] = "WalkRightVeryFast",
[0x0014] = "RunUp",
[0x0015] = "RunDown",
[0x0016] = "RunLeft",
[0x0017] = "RunRight",
[0x0018] = "WalkUpSlowSite",
[0x0019] = "WalkDownSlowSite",
[0x001A] = "WalkLeftSlowSite",
[0x001B] = "WalkRightSlowSite",
[0x001C] = "WalkUpSite",
[0x001D] = "WalkDownSite",
[0x001E] = "WalkLeftSite",
[0x001F] = "WalkRightSite",
[0x0020] = "WalkUpFastSite",
[0x0021] = "WalkDownFastSite",
[0x0022] = "WalkLeftFastSite",
[0x0023] = "WalkRightFastSite",
[0x0024] = "WalkUpVeryFastSite",
[0x0025] = "WalkDownVeryFastSite",
[0x0026] = "WalkLeftVeryFastSite",
[0x0027] = "WalkRightVeryFastSite",
[0x0028] = "RunUpSite",
[0x0029] = "RunDownSite",
[0x002A] = "RunLeftSite",
[0x002B] = "RunRightSite",
[0x002C] = "JumpUpSlow",
[0x002D] = "JumpDownSlow",
[0x002E] = "JumpLeftSlow",
[0x002F] = "JumpRightSlow",
[0x0030] = "JumpUpSite",
[0x0031] = "JumpDownSite",
[0x0032] = "JumpLeftSite",
[0x0033] = "JumpRightSite",
[0x0034] = "JumpUp",
[0x0035] = "JumpDown",
[0x0036] = "JumpLeft",
[0x0037] = "JumpRight",
[0x0038] = "JumpUp2",
[0x0039] = "JumpDown2",
[0x003A] = "JumpLeft2",
[0x003B] = "JumpRight2",
[0x0045] = "WaitDisappear",
[0x0047] = "LockDir",
[0x0048] = "ReleaseDir",
[0x004B] = "Exclamation",
[0x004C] = "WaitWalkUpSlow",
[0x004D] = "WaitWalkDownSlow",
[0x004E] = "WaitWalkLeftSlow",//Seems to make the player run in HGSS?
[0x004F] = "WaitWalkRightSlow",
[0x0050] = "WaitWalkUp",
[0x0051] = "WaitWalkDown",
[0x0052] = "WaitWalkLeft",
[0x0053] = "WaitWalkRight",
[0x0054] = "WaitMoveUp",
[0x0055] = "WaitMoveDown",
[0x0056] = "WaitMoveLeft",
[0x0057] = "WaitMoveRight",
[0x0058] = "WaitWalkBackUp",
[0x0059] = "WaitWalkBackDown",
[0x005A] = "WaitWalkBackLeft",
[0x005B] = "WaitWalkBackRight",
[0x005C] = "WaitJumpLeft1",
[0x005D] = "WaitJumpRight1",
[0x005E] = "WaitJumpLeft2",
[0x005F] = "WaitJumpRight2",
[0x0064] = "WaitMoveSite",
[0x0065] = "WaitJumpSite",
[0x0067] = "WaitDoubleExclamation",
[0x0068] = "WaitMoveForever",
[0x00FE] = "End"
};
public static Dictionary<ushort, string> comparisonOperatorsDict = new Dictionary<ushort, string>() {
[0] = "LESS",
[1] = "EQUAL",
[2] = "GREATER",
[3] = "LESS/EQUAL",
[4] = "GREATER/EQUAL",
[5] = "DIFFERENT",
/* GEN V ONLY */
//[6] = "OR",
//[7] = "AND",
//[0xFF] = "TRUEUP"
};
public static Dictionary<ushort, int> commandsWithRelativeJump = new Dictionary<ushort, int>() {
//commandID, ID of parameter With Jump Address
[0x0016] = 0, //Jump
[0x0017] = 1, //Call
[0x0018] = 1, //Call
[0x0019] = 1, //Call
[0x001A] = 0, //Call
[0x001C] = 1, //Jump-If
[0x001D] = 1, //Call-If
[0x005E] = 1, //Movement
};
public static HashSet<ushort?> endCodes = new HashSet<ushort?>() {
0x2,
0x16,
0x1B
};
public static Dictionary<ushort, string> DPPtScrCmdNames = new Dictionary<ushort, string>() {
[0x0000] = "Nop",
[0x0001] = "Dummy",
[0x0002] = "End",
[0x0003] = "WaitTime",
[0x0004] = "RegValueSet",
[0x0005] = "RegDataSet",
[0x0006] = "RegAdrsSet",
[0x0007] = "AdrsValueSet",
[0x0008] = "AdrsRegSet",
[0x0009] = "RegRegSet",
[0x000A] = "AdrsAdrsSet",
[0x000B] = "IfRegReg",
[0x000C] = "IfRegValue",
[0x000D] = "IfRegAdrs",
[0x000E] = "IfAdrsReg",
[0x000F] = "IfAdrsValue",
[0x0010] = "IfAdrsAdrs",
[0x0011] = "CompareVarValue",
[0x0012] = "CompareVars",
[0x0014] = "CommonScript",
[0x0015] = "LocalScript",
[0x0016] = "Jump",
[0x0017] = "JumpIfObjID",
[0x0018] = "JumpIfBgID",
[0x0019] = "JumpIfPlayerDir",
[0x001A] = "Call",
[0x001B] = "Return",
[0x001C] = "Jump-If",
[0x001D] = "Call-If",
[0x001E] = "SetFlag",
[0x001F] = "ClearFlag",
[0x0020] = "CheckFlag",
[0x0021] = "CheckFlagToVar",
[0x0022] = "SetFlagFromVar",
[0x0023] = "SetTrainerFlag",
[0x0024] = "ClearTrainerFlag",
[0x0025] = "CheckTrainerFlag",
[0x0026] = "IncrementVar",
[0x0027] = "DecrementVar",
[0x0028] = "SetVar",
[0x0029] = "SetVarFromVariable",
[0x002A] = "SetVarFromFlexible",
[0x002B] = "MessageAll",
[0x002C] = "Message",
[0x002D] = "MessageFlex",
[0x002E] = "MessageNoSkip",
[0x0030] = "WaitAB",
[0x0031] = "WaitButton",
[0x0032] = "WaitABPad",
[0x0033] = "OpenMessage",
[0x0034] = "CloseMessage",
[0x0035] = "FreezeMessage",
[0x0036] = "SetIconBoard",
[0x0037] = "SetTextBoard",
[0x0038] = "ShowBoard",
[0x0039] = "WaitBoard",
[0x003A] = "BoardMessage",
[0x003B] = "CloseBoard",
[0x003C] = "Menu",
[0x003E] = "YesNoBox",
[0x003F] = "DummyGuinnessBox",
[0x0040] = "MultiStandardText",
[0x0041] = "MultiLocalText",
[0x0042] = "AddMultiOption",
[0x0043] = "ShowMulti",
[0x0044] = "ListStandardText",
[0x0045] = "ListLocalText",
[0x0046] = "AddListOption",
[0x0047] = "ShowList",
[0x0048] = "MultiColumn",
[0x0049] = "PlayFanfare",
[0x004A] = "StopFanfare",
[0x004B] = "WaitFanfare",
[0x004C] = "PlayCry",
[0x004D] = "WaitCry",
[0x004E] = "PlaySound",
[0x004F] = "WaitSound",
[0x0050] = "PlayMusic",
[0x0051] = "StopMusic",
[0x0052] = "PlayDefaultMusic",
[0x0053] = "SetMusic",
[0x0054] = "FadeOutMusic",
[0x0055] = "FadeInMusic",
[0x0059] = "CheckChatotCry",
[0x005A] = "StartChatotCry",
[0x005B] = "StopChatotCry",
[0x005C] = "SaveChatotCry",
[0x005E] = "Movement",
[0x005F] = "WaitMovement",
[0x0060] = "LockAll",
[0x0061] = "ReleaseAll",
[0x0062] = "Lock",
[0x0063] = "Release",
[0x0064] = "AddOW",
[0x0065] = "RemoveOW",
[0x0066] = "LockCam",
[0x0067] = "ReleaseCam",
[0x0068] = "FacePlayer",
[0x0069] = "CheckPlayerPosition",
[0x006A] = "CheckOverworldPosition",
[0x006C] = "KeepOverworld",
[0x006D] = "SetObjectDefaultMovement",
[0x006E] = "SetFollowingOverworld",
[0x006F] = "GiveMoney",
[0x0070] = "TakeMoney",
[0x0071] = "CompareMoney",
[0x0072] = "ShowMoney",
[0x0073] = "HideMoney",
[0x0074] = "UpdateMoney",
[0x0075] = "ShowCoins",
[0x0076] = "HideCoins",
[0x0077] = "UpdateCoins",
[0x0078] = "CheckCoins",
[0x0079] = "GiveCoins",
[0x007A] = "TakeCoins",
[0x007B] = "GiveItem",
[0x007C] = "TakeItem",
[0x007D] = "CheckItemSpace",
[0x007E] = "CheckPlayerHasItem",
[0x007F] = "CheckItemIsMachine",
[0x0080] = "GetItemPocket",
[0x0081] = "DummyGivePCItem",
[0x0082] = "DummyCheckPCItem",
[0x0083] = "GiveGoods",
[0x0084] = "DummyTakeGoods",
[0x0085] = "CheckGoodsSpace",
[0x0086] = "DummyCheckGoods",
[0x0087] = "GiveTrap",
[0x0088] = "DummyTakeTrap",
[0x0089] = "DummyCheckTrapSpace",
[0x008A] = "DummyCheckTrap",
[0x008B] = "DummyGiveTreasure",
[0x008C] = "DummyTakeTreasure",
[0x008D] = "DummyCheckTreasureSpace",
[0x008E] = "DummyCheckTreasure",
[0x008F] = "GiveSphere",
[0x0090] = "DummyTakeSphere",
[0x0091] = "DummyCheckSphereSpace",
[0x0092] = "DummyCheckSphere",
[0x0093] = "CheckSealAmount",
[0x0094] = "GiveSeal",
[0x0095] = "CheckPokemonForm",
[0x0096] = "GivePokemon",
[0x0097] = "GivePokemonEgg",
[0x0098] = "ReplaceMove",
[0x0099] = "CheckMove",
[0x009A] = "CheckMoveInParty",
[0x009C] = "DummySetWeather",
[0x009D] = "DummyInitWeather",
[0x009E] = "DummyUpdateWeather",
[0x009F] = "DummyCheckMapPosition",
[0x00A0] = "DummyCountPartyPokemon",
[0x00A1] = "ReturnScreen",
[0x00A9] = "SealCapsuleScreen",
[0x00AA] = "WorldMapScreen",
[0x00AB] = "PCBoxScreen",
[0x00AC] = "DrawUnion",
[0x00AD] = "TrainerCaseUnion",
[0x00AE] = "TradeUnion",
[0x00AF] = "RecordMixingUnion",
[0x00B0] = "EndGameScreen",
[0x00B4] = "ChooseStarterScreen",
[0x00B5] = "EndChooseStarterScreen",
[0x00BA] = "ChoosePlayerName",
[0x00BB] = "ChoosePokémonName",
[0x00BC] = "FadeScreen",
[0x00BD] = "WaitFadeScreen",
[0x00BE] = "Warp",
[0x00BF] = "RockClimbAnimation",
[0x00C0] = "SurfAnimation",
[0x00C1] = "WaterfallAnimation",
[0x00C2] = "FlyAnimation",
[0x00C3] = "FlashAnimation",
[0x00C4] = "DefogAnimation",
[0x00C5] = "CutAnimation",
[0x00C6] = "Tuxedo",
[0x00C7] = "CheckBike",
[0x00C8] = "RideBike",
[0x00C9] = "CyclingRoad",
[0x00CA] = "CheckPlayerAction",
[0x00CB] = "SetPlayerAction",
[0x00CC] = "UpdatePlayerAction",
[0x00CD] = "TextPlayerName",
[0x00CE] = "TextRivalName",
[0x00CF] = "TextCounterpart",
[0x00D0] = "TextPokemon",
[0x00D1] = "TextItem",
[0x00D2] = "TextPocket",
[0x00D3] = "TextMachineAttack",
[0x00D4] = "TextMove",
[0x00D5] = "TextNumber",
[0x00D6] = "TextNickname",
[0x00D7] = "TextPoketch",
[0x00D8] = "TextTrainer",
[0x00D9] = "TextPlayerTrainerType",
[0x00DA] = "TextPokemonStored",
[0x00DB] = "TextStarterPokemon",
[0x00DC] = "TextRivalStarter",
[0x00DD] = "TextCounterpartStarter",
[0x00DE] = "CheckStarter",
[0x00DF] = "TextGoods",
[0x00E0] = "TextTrap",
[0x00E1] = "TextTreasure",
[0x00E2] = "TextMapName",
[0x00E3] = "GenerateSwarm",
[0x00E4] = "TrainerID",
[0x00E5] = "TrainerBattle",
[0x00E6] = "TrainerMessage",
[0x00E7] = "TrainerMsgCheck",
[0x00E8] = "TrainerRematchMsgCheck",
[0x00E9] = "TrainerTypeCheck",
[0x00EA] = "TrainerMusic",
[0x00EB] = "LostBattle",
[0x00EC] = "CheckBattleIsLost",
[0x00ED] = "CheckDefeatedPokemon",
[0x00EE] = "Check2vs2",
[0x00EF] = "DummyTrainerBattle",
[0x00F0] = "DummyTrainerFlag",
[0x00F1] = "DummyTrainerFlagJump",
[0x00F7] = "PokémonContest",
[0x0111] = "FlashContest",
[0x0112] = "EndFlash",
[0x0116] = "ShowLinkCountRecord",
[0x0119] = "CheckPokerus",
[0x011A] = "CheckPokemonGender",
[0x011B] = "SetWarpData",
[0x011C] = "CheckElevatorFloor",
[0x011D] = "ElevatorBox",
[0x011E] = "SinnohDexSeen",
[0x011F] = "SinnohDexObtained",
[0x0120] = "NationalDexSeen",
[0x0121] = "NationalDexObtained",
[0x0122] = "DummyNationalDexCheck",
[0x0123] = "PokedexProgressMsg",
[0x0124] = "WildBattle",
[0x0125] = "FirstBattle",
[0x0126] = "CatchTutorial",
[0x0127] = "UpdateHoneyTree",
[0x0128] = "CheckHoneyTree",
[0x0129] = "HoneyTreeBattle",
[0x012A] = "StopHoneyTreeAnimation",
[0x012C] = "CheckSaveGame",
[0x012D] = "SaveGame",
[0x0131] = "GivePokétch",
[0x0132] = "PoketchFlag",
[0x0133] = "GivePoketchApp",
[0x0134] = "CheckPoketchApp",
[0x014B] = "DummyLostBattle",
[0x014C] = "SetLastWarp",
[0x014D] = "CheckPlayerGender",
[0x014E] = "HealPokemon",
[0x0157] = "CheckPokedex",
[0x0158] = "GivePokedex",
[0x0159] = "CheckShoes",
[0x015A] = "GiveShoes",
[0x015B] = "CheckBadge",
[0x015C] = "GiveBadge",
[0x015D] = "CountBadges",
[0x015E] = "CheckBag",
[0x015F] = "GiveBag",
[0x0160] = "CheckPartner",
[0x0161] = "SetPartner",
[0x0162] = "ClearPartner",
[0x0166] = "CheckGameIsCompleted",
[0x0167] = "GameCompleted",
[0x0168] = "DoorAnimation",
[0x0169] = "WaitDoor",
[0x016A] = "FreeDoor",
[0x016B] = "OpenDoor",
[0x016C] = "CloseDoor",
[0x016D] = "GetDaycareNames",
[0x016E] = "GetDaycareStatus",
[0x016F] = "InitPastoriaGym",
[0x0170] = "PastoriaGymButton",
[0x0171] = "InitHearthomeGym",
[0x0172] = "HearthomeGymLift",
[0x0173] = "InitCanalaveGym",
[0x0174] = "InitVeilstoneGym",
[0x0175] = "InitSunyshoreGym",
[0x0176] = "SunyshoreGymGear",
[0x0177] = "GetPartyCount",
[0x0178] = "BagScreen",
[0x0179] = "GetBagSelection",
[0x017A] = "CheckPocketItems",
[0x017B] = "TextBerry",
[0x017C] = "TextNature",
[0x017D] = "GetBerryGrowth",
[0x017E] = "GetBerrySpecies",
[0x017F] = "GetBerryMulch",
[0x0180] = "GetBerryDryness",
[0x0181] = "CheckBerryAmount",
[0x0182] = "SetBerryMulch",
[0x0183] = "SetBerrySpecies",
[0x0184] = "WateringAnimation",
[0x0185] = "TakeBerries",
[0x0186] = "SetOverworldPosition",
[0x0187] = "SetOverworldFullPosition",
[0x0188] = "SetOverworldMovement",
[0x0189] = "SetOverworldDirection",
[0x0193] = "GetSelectedPartySlot",
[0x0198] = "GetPartyPokemonID",
[0x0199] = "CheckTradedPokemon",
[0x01AC] = "EggHatchScreen",
[0x01AD] = "DummyDaycare",
[0x01AE] = "CheckDaycareLevel",
[0x01B1] = "UnvanishOverworld",
[0x01B2] = "VanishOverworld",
[0x01B3] = "OpenMailScreen",
[0x01B4] = "GetMailCount",
[0x01B6] = "CheckTimePeriod",
[0x01B7] = "GetRandom",
[0x01B8] = "DummyGetRandom",
[0x01B9] = "GetPokemonHappiness",
[0x01BA] = "AddHappiness",
[0x01BB] = "SubHappiness",
[0x01BD] = "GetPlayerDirection",
[0x01C8] = "GetMoveCount",
[0x01C9] = "DeleteMove",
[0x01CF] = "Strength",
[0x01D0] = "Flash",
[0x01D1] = "Defog",
[0x01D7] = "BerryPoffin",
[0x01D9] = "BattleRoomResult",
[0x01E8] = "CheckSinnohPokédex",
[0x01E9] = "CheckNationalPokédex",
[0x01EA] = "RegisterSinnohPokedex",
[0x01EB] = "RegisterNationalPokedex",
[0x01F1] = "GetFossilCount",
[0x01F4] = "GetPokeNameFromFossil",
[0x01F5] = "CheckFossil",
[0x01F6] = "CountPokemonUnderLevel",
[0x01F7] = "SurvivePoison",
[0x0200] = "GetPreviousHeader",
[0x0201] = "GetCurrentHeader",
[0x0205] = "GeonetScreen",
[0x0208] = "ShowPokemonPic",
[0x0209] = "HidePokemonPic",
[0x020D] = "SpearPillarSequence",
[0x020E] = "KeepSafariTrain",
[0x020F] = "SafariTrainAnimation",
[0x0210] = "CheckSafariTrainMovement",
[0x0211] = "IgnoreHeights",
[0x0214] = "CheckSpiritombCounter",
[0x0215] = "ClearAmitySquareSteps",
[0x0216] = "CheckAmitySquareSteps",
[0x0217] = "GetAmitySquareAccessory",
[0x021C] = "AddRoamingPokemon",
[0x021D] = "Group",
[0x0221] = "RememberMove",
[0x0226] = "InitTrade",
[0x0227] = "GetOfferedPokemon",
[0x0228] = "GetRequestedPokemon",
[0x0229] = "TradePokemonScreen",
[0x022A] = "EndTrade",
[0x022B] = "ActivateInternationalDex",
[0x022C] = "ActivateDimorphismDex",
[0x022D] = "NationalDex",
[0x022E] = "PokemonRibbonCount",
[0x022F] = "PartyRibbonCount",
[0x0230] = "CheckRibbon",
[0x0231] = "GiveRibbon",
[0x0232] = "TextRibbon",
[0x0233] = "CountPokemonEVs",
[0x0234] = "GetDayOfWeek",
[0x0239] = "ShowRulesList",
[0x023A] = "GetPokemonFootprint",
[0x023B] = "PCHealAnimation",
[0x023C] = "ElevatorAnimation",
[0x023D] = "ShipAnimation",
[0x023E] = "MysteryGiftGive",
[0x0246] = "CheckVersion",
[0x0247] = "GetFirstPokemon",
[0x0252] = "CountPCFreeSpace",
[0x0261] = "TextAccesory",
[0x0262] = "CheckPokemonInParty",
[0x0263] = "SetDeoxysForm",
//0x0264 is different between DP/Plat
[0x0267] = "SlotMachine",
[0x0268] = "GetHour",
[0x0269] = "ShakeOverworld",
[0x026A] = "BlinkOverworld",
[0x026B] = "CheckRegis",
[0x026D] = "MessageUnown",
[0x026E] = "CheckGBACartidge",
[0x026F] = "ResetSpiritombCounter",
[0x0280] = "TextNumberSp",
[0x0282] = "CheckBirthday",
[0x0283] = "MusicVolumeSet",
[0x0284] = "CountSeenUnown",
[0x029F] = "ShakeCamera",
[0x02A5] = "PartyPokemonTradeScreen",
[0x02BD] = "SpWildBattle",
[0x02BE] = "CheckTrainerCardLevel",
[0x02BF] = "DummyRideBike",
[0x02C1] = "ShowSaveBox",
[0x02C2] = "HideSaveBox",
[0x02C3] = "ScopeMode"
};
public static Dictionary<ushort, byte[]> DPPtScrCmdParameters = new Dictionary<ushort, byte[]>() {
[0x0000] = new byte[1] { 0 },
[0x0001] = new byte[1] { 0 },
[0x0002] = new byte[1] { 0 },
[0x0003] = new byte[] { 2, 2 },
[0x0004] = new byte[] { 1, 1 },
[0x0005] = new byte[] { 1, 4 },
[0x0006] = new byte[] { 1, 4 },
[0x0007] = new byte[] { 4, 1 },
[0x0008] = new byte[] { 4, 1 },
[0x0009] = new byte[] { 1, 1 },
[0x000A] = new byte[] { 4, 4 },
[0x000B] = new byte[] { 1, 1 },
[0x000C] = new byte[] { 1, 1 },
[0x000D] = new byte[] { 1, 4 },
[0x000E] = new byte[] { 4, 1 },
[0x000F] = new byte[] { 4, 1 },
[0x0010] = new byte[] { 4, 4 },
[0x0011] = new byte[] { 2, 2 },
[0x0012] = new byte[] { 2, 2 },
[0x0013] = new byte[] { 2 },
[0x0014] = new byte[] { 2 },
[0x0015] = new byte[1] { 0 },
[0x0016] = new byte[] { 4 },
[0x0017] = new byte[] { 1, 4 },
[0x0018] = new byte[] { 1, 4 },
[0x0019] = new byte[] { 1, 4 },
[0x001A] = new byte[] { 4 },
[0x001B] = new byte[1] { 0 },
[0x001C] = new byte[] { 1, 4 },
[0x001D] = new byte[] { 1, 4 },
[0x001E] = new byte[] { 2 },
[0x001F] = new byte[] { 2 },
[0x0020] = new byte[] { 2 },
[0x0021] = new byte[] { 2, 2 },
[0x0022] = new byte[] { 2 },
[0x0023] = new byte[] { 2 },
[0x0024] = new byte[] { 2 },
[0x0025] = new byte[] { 2 },
[0x0026] = new byte[] { 2, 2 },
[0x0027] = new byte[] { 2, 2 },
[0x0028] = new byte[] { 2, 2 },
[0x0029] = new byte[] { 2, 2 },
[0x002A] = new byte[] { 2, 2 },
[0x002B] = new byte[] { 1 },
[0x002C] = new byte[] { 1 },
[0x002D] = new byte[] { 2 },
[0x002E] = new byte[] { 2 },
[0x002F] = new byte[] { 1 },
[0x0030] = new byte[1] { 0 },
[0x0031] = new byte[1] { 0 },
[0x0032] = new byte[1] { 0 },
[0x0033] = new byte[1] { 0 },
[0x0034] = new byte[1] { 0 },
[0x0035] = new byte[1] { 0 },
[0x0036] = new byte[] { 1, 1, 2, 2 },
[0x0037] = new byte[] { 1, 2 },
[0x0038] = new byte[] { 1 },
[0x0039] = new byte[1] { 0 },
[0x003A] = new byte[] { 1, 2 },
[0x003B] = new byte[] { 2 },
[0x003C] = new byte[1] { 0 },
[0x003D] = new byte[] { 1, 1, 1, 1, 1, 1 },
[0x003E] = new byte[] { 2 },
[0x003F] = new byte[1] { 0 },
[0x0040] = new byte[] { 1, 1, 1, 1, 2 },
[0x0041] = new byte[] { 1, 1, 1, 1, 2 },
[0x0042] = new byte[] { 1, 1 },
[0x0043] = new byte[1] { 0 },
[0x0044] = new byte[] { 1, 1, 1, 1, 2 },
[0x0045] = new byte[] { 1, 1, 1, 1, 2 },
[0x0046] = new byte[] { 2, 2, 2 },
[0x0047] = new byte[1] { 0 },
[0x0048] = new byte[] { 1 },
[0x0049] = new byte[] { 2 },
[0x004A] = new byte[] { 2 },
[0x004B] = new byte[] { 2 },
[0x004C] = new byte[] { 2, 2 },
[0x004D] = new byte[1] { 0 },
[0x004E] = new byte[] { 2 },
[0x004F] = new byte[1] { 0 },
[0x0050] = new byte[] { 2 },
[0x0051] = new byte[] { 2 },
[0x0052] = new byte[1] { 0 },
[0x0053] = new byte[] { 2 },
[0x0054] = new byte[] { 2, 2 },
[0x0055] = new byte[] { 2 },
[0x0056] = new byte[] { 1, 1 },
[0x0057] = new byte[] { 2 },
[0x0058] = new byte[] { 1 },
[0x0059] = new byte[] { 2 },
[0x005A] = new byte[] { 2 },
[0x005B] = new byte[1] { 0 },
[0x005C] = new byte[1] { 0 },
[0x005D] = new byte[1] { 0 },
[0x005E] = new byte[] { 2, 4 },
[0x005F] = new byte[1] { 0 },
[0x0060] = new byte[1] { 0 },
[0x0061] = new byte[1] { 0 },
[0x0062] = new byte[] { 2 },
[0x0063] = new byte[] { 2 },
[0x0064] = new byte[] { 2 },
[0x0065] = new byte[] { 2 },
[0x0066] = new byte[] { 2, 2 },
[0x0067] = new byte[1] { 0 },
[0x0068] = new byte[1] { 0 },
[0x0069] = new byte[] { 2, 2 },
[0x006A] = new byte[] { 2, 2, 2 },
[0x006B] = new byte[] { 2, 2, 2 },
[0x006C] = new byte[] { 2, 1 },
[0x006D] = new byte[] { 2, 2 },
[0x006E] = new byte[1] { 0 },
[0x006F] = new byte[] { 4 },
[0x0070] = new byte[] { 4 },
[0x0071] = new byte[] { 2, 4 },
[0x0072] = new byte[] { 2, 2 },
[0x0073] = new byte[1] { 0 },
[0x0074] = new byte[1] { 0 },
[0x0075] = new byte[] { 2, 2 },
[0x0076] = new byte[1] { 0 },
[0x0077] = new byte[1] { 0 },
[0x0078] = new byte[] { 2, 2, 2 },
[0x0079] = new byte[] { 2 },
[0x007A] = new byte[] { 2, 2, 2 },
[0x007B] = new byte[] { 2, 2, 2 },
[0x007C] = new byte[] { 2, 2, 2 },
[0x007D] = new byte[] { 2, 2, 2 },
[0x007E] = new byte[] { 2, 2, 2 },
[0x007F] = new byte[] { 2, 2 },
[0x0080] = new byte[] { 2, 2 },
[0x0081] = new byte[1] { 0 },
[0x0082] = new byte[1] { 0 },
[0x0083] = new byte[] { 2, 2, 2 },
[0x0084] = new byte[1] { 0 },
[0x0085] = new byte[] { 2, 2, 2 },
[0x0086] = new byte[1] { 0 },
[0x0087] = new byte[] { 2, 2, 2 },
[0x0088] = new byte[1] { 0 },
[0x0089] = new byte[1] { 0 },
[0x008A] = new byte[1] { 0 },
[0x008B] = new byte[1] { 0 },
[0x008C] = new byte[1] { 0 },
[0x008D] = new byte[1] { 0 },
[0x008E] = new byte[1] { 0 },
[0x008F] = new byte[] { 2, 2, 2 },
[0x0090] = new byte[1] { 0 },
[0x0091] = new byte[1] { 0 },
[0x0092] = new byte[1] { 0 },
[0x0093] = new byte[] { 2, 2 },
[0x0094] = new byte[] { 2, 2 },
[0x0095] = new byte[] { 2, 2 },
[0x0096] = new byte[] { 2, 2, 2, 2 },
[0x0097] = new byte[] { 2, 2 },
[0x0098] = new byte[1] { 0 },
[0x0099] = new byte[] { 2, 2, 2 },
[0x009A] = new byte[] { 2, 2 },
[0x009B] = new byte[] { 2, 2 },
[0x009C] = new byte[1] { 0 },
[0x009D] = new byte[1] { 0 },
[0x009E] = new byte[1] { 0 },
[0x009F] = new byte[1] { 0 },
[0x00A0] = new byte[1] { 0 },
[0x00A1] = new byte[1] { 0 },
[0x00A2] = new byte[1] { 0 },
[0x00A3] = new byte[1] { 0 },
[0x00A4] = new byte[1] { 0 },
[0x00A5] = new byte[1] { 0 },
[0x00A6] = new byte[] { 2, 2, 2 },
[0x00A7] = new byte[] { 2, 2 },
[0x00A8] = new byte[] { 2, 2 },
[0x00A9] = new byte[1] { 0 },
[0x00AA] = new byte[1] { 0 },
[0x00AB] = new byte[] { 1 },
[0x00AC] = new byte[1] { 0 },
[0x00AD] = new byte[1] { 0 },
[0x00AE] = new byte[1] { 0 },
[0x00AF] = new byte[1] { 0 },
[0x00B0] = new byte[1] { 0 },
[0x00B1] = new byte[1] { 0 },
[0x00B2] = new byte[] { 2, 2 },
[0x00B3] = new byte[] { 2 },
[0x00B4] = new byte[1] { 0 },
[0x00B5] = new byte[1] { 0 },
[0x00B6] = new byte[] { 2 },
[0x00B7] = new byte[] { 2, 2 },
[0x00B8] = new byte[] { 2 },
[0x00B9] = new byte[] { 2, 2 },
[0x00BA] = new byte[] { 2 },
[0x00BB] = new byte[] { 2, 2 },
[0x00BC] = new byte[] { 2, 2, 2, 2 },
[0x00BD] = new byte[1] { 0 },
[0x00BE] = new byte[] { 2, 2, 2, 2, 2 },
[0x00BF] = new byte[] { 2 },
[0x00C0] = new byte[] { 2 },
[0x00C1] = new byte[] { 2 },
[0x00C2] = new byte[] { 2 },
[0x00C3] = new byte[1] { 0 },
[0x00C4] = new byte[1] { 0 },
[0x00C5] = new byte[] { 2 },
[0x00C6] = new byte[1] { 0 },
[0x00C7] = new byte[] { 2 },
[0x00C8] = new byte[] { 1 },
[0x00C9] = new byte[] { 1 },
[0x00CA] = new byte[1] { 0 },
[0x00CB] = new byte[] { 2 },
[0x00CC] = new byte[1] { 0 },
[0x00CD] = new byte[] { 1 },
[0x00CE] = new byte[] { 1 },
[0x00CF] = new byte[] { 1 },
[0x00D0] = new byte[] { 1, 2 },
[0x00D1] = new byte[] { 1, 2 },
[0x00D2] = new byte[] { 1, 2 },
[0x00D3] = new byte[] { 1, 2 },
[0x00D4] = new byte[] { 1, 2 },
[0x00D5] = new byte[] { 1, 2 },
[0x00D6] = new byte[] { 1, 2 },
[0x00D7] = new byte[] { 1, 2 },
[0x00D8] = new byte[] { 1, 2 },
[0x00D9] = new byte[] { 1 },
[0x00DA] = new byte[] { 1, 2, 2, 1 },
[0x00DB] = new byte[] { 1 },
[0x00DC] = new byte[] { 1 },
[0x00DD] = new byte[] { 1 },
[0x00DE] = new byte[] { 2 },
[0x00DF] = new byte[] { 1, 2 },
[0x00E0] = new byte[] { 1, 2 },
[0x00E1] = new byte[] { 1, 2 },
[0x00E2] = new byte[] { 1, 2 },
[0x00E3] = new byte[] { 2, 2 },
[0x00E4] = new byte[] { 2 },
[0x00E5] = new byte[] { 2, 2 },
[0x00E6] = new byte[] { 2, 2 },
[0x00E7] = new byte[] { 2, 2, 2 },
[0x00E8] = new byte[] { 2, 2, 2 },
[0x00E9] = new byte[] { 2 },
[0x00EA] = new byte[] { 2 },
[0x00EB] = new byte[1] { 0 },
[0x00EC] = new byte[] { 2 },
[0x00ED] = new byte[] { 2 },
[0x00EE] = new byte[] { 2 },
[0x00EF] = new byte[1] { 0 },
[0x00F0] = new byte[1] { 0 },
[0x00F1] = new byte[1] { 0 },
[0x00F2] = new byte[] { 2, 2, 2, 2 },
[0x00F3] = new byte[] { 2, 2, 2, 2 },
[0x00F4] = new byte[1] { 0 },
[0x00F5] = new byte[1] { 0 },
[0x00F6] = new byte[1] { 0 },
[0x00F7] = new byte[] { 2 },
[0x00F8] = new byte[] { 2 },
[0x00F9] = new byte[] { 2 },
[0x00FA] = new byte[] { 2, 2, 2, 2 },
[0x00FB] = new byte[] { 2 },
[0x00FC] = new byte[1] { 0 },
[0x00FD] = new byte[] { 2, 2 },
[0x00FE] = new byte[] { 2, 2 },
[0x00FF] = new byte[] { 2, 2 },
[0x0100] = new byte[1] { 0 },
[0x0101] = new byte[1] { 0 },
[0x0102] = new byte[] { 2 },
[0x0103] = new byte[] { 2 },
[0x0104] = new byte[] { 2 },
[0x0105] = new byte[1] { 0 },
[0x0106] = new byte[] { 2 },
[0x0107] = new byte[] { 2 },
[0x0108] = new byte[] { 2 },
[0x0109] = new byte[] { 2 },
[0x010A] = new byte[] { 2, 2 },
[0x010B] = new byte[] { 2, 2 },
[0x010C] = new byte[] { 2 },
[0x010D] = new byte[] { 2 },
[0x010E] = new byte[] { 2 },
[0x010F] = new byte[] { 2 },
[0x0110] = new byte[] { 2, 2, 2, 2 },
[0x0111] = new byte[] { 2 },
[0x0112] = new byte[1] { 0 },
[0x0113] = new byte[1] { 0 },
[0x0114] = new byte[1] { 0 },
[0x0115] = new byte[] { 2, 2, 2 },
[0x0116] = new byte[1] { 0 },
[0x0117] = new byte[1] { 0 },
[0x0118] = new byte[1] { 0 },
[0x0119] = new byte[] { 2 },
[0x011A] = new byte[1] { 0 },
[0x011B] = new byte[] { 2, 2, 2, 2, 2 },
[0x011C] = new byte[] { 2 },
[0x011E] = new byte[] { 2 },
[0x011F] = new byte[1] { 0 },
[0x0120] = new byte[] { 2 },
[0x0121] = new byte[] { 2 },
[0x0122] = new byte[1] { 0 },
[0x0123] = new byte[] { 1, 2 },
[0x0124] = new byte[] { 2, 2 },
//0x0125 is different between DP and PT
[0x0126] = new byte[1] { 0 },
[0x0127] = new byte[1] { 0 },
[0x0128] = new byte[] { 2 },
[0x0129] = new byte[1] { 0 },
[0x012A] = new byte[1] { 0 },
[0x012B] = new byte[1] { 0 },
[0x012C] = new byte[] { 2 },
[0x012D] = new byte[] { 2 },
[0x012E] = new byte[] { 2, 2 },
[0x012F] = new byte[] { 2, 2 },
[0x0130] = new byte[] { 2 },
[0x0131] = new byte[1] { 0 },
[0x0132] = new byte[] { 2 },
[0x0133] = new byte[] { 2 },
[0x0134] = new byte[] { 2, 2 },
[0x0135] = new byte[] { 2 },
[0x0136] = new byte[1] { 0 },
[0x0137] = new byte[1] { 0 },
[0x0138] = new byte[] { 2 },
[0x0139] = new byte[] { 2 },
[0x013A] = new byte[1] { 0 },
[0x013B] = new byte[1] { 0 },
[0x013C] = new byte[] { 2 },
[0x013D] = new byte[1] { 0 },
[0x013E] = new byte[1] { 0 },
[0x013F] = new byte[] { 2, 2 },
[0x0140] = new byte[] { 2 },
[0x0141] = new byte[] { 2 },
[0x0142] = new byte[1] { 0 },
[0x0143] = new byte[] { 2, 2 },
[0x0144] = new byte[] { 2 },
[0x0145] = new byte[] { 2 },
[0x0146] = new byte[] { 2, 2 },
[0x0147] = new byte[] { 2 },
[0x0148] = new byte[] { 2 },
[0x0149] = new byte[] { 2 },
[0x014A] = new byte[] { 2 },
[0x014B] = new byte[1] { 0 },
[0x014C] = new byte[] { 2 },
[0x014D] = new byte[] { 2 },
[0x014E] = new byte[1] { 0 },
[0x014F] = new byte[1] { 0 },
[0x0150] = new byte[1] { 0 },
[0x0151] = new byte[1] { 0 },
[0x0152] = new byte[] { 2 },
[0x0153] = new byte[1] { 0 },
[0x0154] = new byte[1] { 0 },
[0x0155] = new byte[] { 2, 2 },
[0x0156] = new byte[] { 2 },
[0x0157] = new byte[1] { 0 },
[0x0158] = new byte[1] { 0 },
[0x0159] = new byte[1] { 0 },
[0x015A] = new byte[1] { 0 },
[0x015B] = new byte[] { 2, 2 },
[0x015C] = new byte[] { 2 },
[0x015D] = new byte[] { 2 },
[0x015E] = new byte[1] { 0 },
[0x015F] = new byte[1] { 0 },
[0x0160] = new byte[] { 2 },
[0x0161] = new byte[1] { 0 },
[0x0162] = new byte[1] { 0 },
[0x0163] = new byte[] { 2 },
[0x0164] = new byte[1] { 0 },
[0x0165] = new byte[1] { 0 },
[0x0166] = new byte[] { 2 },
[0x0167] = new byte[1] { 0 },
[0x0168] = new byte[] { 2, 2, 2, 2, 1 },
[0x0169] = new byte[] { 1 },
[0x016A] = new byte[] { 1 },
[0x016B] = new byte[] { 1 },
[0x016C] = new byte[] { 1 },
[0x016D] = new byte[1] { 0 },
[0x016E] = new byte[] { 2 },
[0x016F] = new byte[1] { 0 },
[0x0170] = new byte[1] { 0 },
[0x0171] = new byte[1] { 0 },
[0x0172] = new byte[1] { 0 },
[0x0173] = new byte[1] { 0 },
[0x0174] = new byte[1] { 0 },
[0x0175] = new byte[] { 1 },
[0x0176] = new byte[] { 1 },
[0x0177] = new byte[] { 2 },
[0x0178] = new byte[] { 1 },
[0x0179] = new byte[] { 2 },
[0x017A] = new byte[] { 2, 2 },
[0x017B] = new byte[] { 2 },
[0x017C] = new byte[] { 1, 2 },
[0x017D] = new byte[] { 2 },
[0x017E] = new byte[] { 2 },
[0x017F] = new byte[] { 2 },
[0x0180] = new byte[] { 1 },
[0x0181] = new byte[] { 2 },
[0x0182] = new byte[] { 2 },
[0x0183] = new byte[] { 2 },
[0x0184] = new byte[] { 2 },
[0x0185] = new byte[1] { 0 },
[0x0186] = new byte[] { 2, 2, 2 },
[0x0187] = new byte[] { 2, 2, 2, 2, 2 },
[0x0188] = new byte[] { 2, 2 },
[0x0189] = new byte[] { 2, 2 },
[0x018A] = new byte[] { 2, 2, 2 },
[0x018B] = new byte[] { 2, 2, 2 },
[0x018C] = new byte[] { 2, 2 },
[0x018D] = new byte[1] { 0 },
[0x018E] = new byte[1] { 0 },
[0x018F] = new byte[] { 2 },
[0x0190] = new byte[] { 2 },
[0x0191] = new byte[1] { 0 },
[0x0192] = new byte[1] { 0 },
[0x0193] = new byte[] { 2 },
[0x0194] = new byte[] { 2, 2, 2, 2 },
[0x0195] = new byte[] { 2, 2 },
[0x0196] = new byte[] { 2 },
[0x0197] = new byte[] { 2 },
[0x0198] = new byte[] { 2, 2 },
[0x0199] = new byte[] { 2, 2 },
[0x019A] = new byte[] { 2 },
[0x019B] = new byte[] { 2, 2 },
[0x019C] = new byte[] { 2 },
[0x019D] = new byte[] { 2 },
[0x019E] = new byte[] { 2, 2 },
[0x019F] = new byte[] { 2 },
[0x01A0] = new byte[1] { 0 },
[0x01A1] = new byte[1] { 0 },
[0x01A2] = new byte[1] { 0 },
[0x01A3] = new byte[] { 2 },
[0x01A4] = new byte[] { 2, 2 },
[0x01A5] = new byte[1] { 0 },
[0x01A6] = new byte[1] { 0 },
[0x01A7] = new byte[1] { 0 },
[0x01A8] = new byte[1] { 0 },
[0x01A9] = new byte[1] { 0 },
[0x01AA] = new byte[] { 2, 2 },
[0x01AB] = new byte[] { 2, 2 },
[0x01AC] = new byte[1] { 0 },
[0x01AD] = new byte[1] { 0 },
[0x01AE] = new byte[] { 2, 2 },
[0x01AF] = new byte[] { 2, 2, 2 },
[0x01B0] = new byte[] { 2 },
[0x01B1] = new byte[] { 2 },
[0x01B2] = new byte[] { 2 },
[0x01B3] = new byte[1] { 0 },
[0x01B4] = new byte[] { 2 },
[0x01B5] = new byte[] { 2 },
[0x01B6] = new byte[] { 2 },
[0x01B7] = new byte[] { 2, 2 },
[0x01B8] = new byte[] { 2, 2 },
[0x01B9] = new byte[] { 2, 2 },
[0x01BA] = new byte[] { 2, 2 },
[0x01BB] = new byte[1] { 0 },
[0x01BC] = new byte[] { 2, 2 },
[0x01BD] = new byte[] { 2 },
[0x01BE] = new byte[] { 2 },
[0x01BF] = new byte[] { 2 },
[0x01C0] = new byte[] { 2, 2 },
[0x01C1] = new byte[] { 2, 2 },
[0x01C2] = new byte[] { 2 },
[0x01C3] = new byte[] { 2, 2, 2 },
[0x01C4] = new byte[] { 2, 2, 2 },
[0x01C5] = new byte[1] { 0 },
[0x01C6] = new byte[] { 2 },
[0x01C7] = new byte[] { 2 },
[0x01C8] = new byte[] { 2, 2 },
[0x01C9] = new byte[] { 2, 2 },
[0x01CA] = new byte[] { 2, 2, 2 },
[0x01CB] = new byte[] { 1, 2, 2 },
[0x01CC] = new byte[1] { 0 },
[0x01CD] = new byte[] { 2, 2, 2, 2, 2 },
[0x01CE] = new byte[1] { 0 },
[0x01CF] = new byte[] { }, /////////////////
[0x01D0] = new byte[] { }, /////////////////
[0x01D1] = new byte[] { }, /////////////////
[0x01D2] = new byte[] { 2, 2 },
[0x01D3] = new byte[] { 2, 2, 2 },
[0x01D4] = new byte[1] { 0 },
[0x01D5] = new byte[] { 2 },
[0x01D6] = new byte[] { 2, 2 },
[0x01D7] = new byte[] { 2 },
[0x01D8] = new byte[] { 2 },
[0x01D9] = new byte[] { 2, 2 },
[0x01DA] = new byte[1] { 0 },
[0x01DB] = new byte[] { 2, 2 },
[0x01DC] = new byte[1] { 0 },
[0x01DD] = new byte[] { 2, 2, 2 },
[0x01DE] = new byte[] { 2, 2, 2, 2 },
[0x01DF] = new byte[] { 2 },
[0x01E0] = new byte[] { 2 },
[0x01E2] = new byte[] { 2, 2 },
[0x01E3] = new byte[] { 2, 2 },
[0x01E4] = new byte[] { 2 },
[0x01E5] = new byte[] { 2 },
[0x01E6] = new byte[] { 2, 2, 2 },
[0x01E7] = new byte[] { 2, 2, 2, 1 },
[0x01E8] = new byte[] { 2 },
[0x01E9] = new byte[] { 2 },
[0x01EA] = new byte[] { 2 },
[0x01EB] = new byte[] { 2 },
[0x01EC] = new byte[1] { 0 },
[0x01ED] = new byte[] { 2 },
[0x01EE] = new byte[1] { 0 },
[0x01EF] = new byte[1] { 0 },
[0x01F0] = new byte[1] { 0 },
[0x01F1] = new byte[] { 2 },
[0x01F2] = new byte[1] { 0 },
[0x01F3] = new byte[1] { 0 },
[0x01F4] = new byte[] { 2, 2 },
[0x01F5] = new byte[] { 2, 2, 2 },
[0x01F6] = new byte[] { 2, 2 },
[0x01F7] = new byte[] { 2, 2 },
[0x01F8] = new byte[1] { 0 },
[0x01F9] = new byte[] { 2 },
[0x01FA] = new byte[1] { 0 },
[0x01FB] = new byte[] { 2, 2 },
[0x01FC] = new byte[1] { 0 },
[0x01FD] = new byte[] { 2, 2, 2, 2 },
[0x01FE] = new byte[] { 1 },
[0x01FF] = new byte[] { 2, 2, 2 },
[0x0200] = new byte[] { 2 },
[0x0201] = new byte[] { 2 },
[0x0202] = new byte[] { 1 },
[0x0203] = new byte[] { 2, 2, 2, 2, 2 },
[0x0204] = new byte[1] { 0 },
[0x0205] = new byte[1] { 0 },
[0x0206] = new byte[1] { 0 },
[0x0207] = new byte[] { 2 },
[0x0208] = new byte[] { 2, 2 },
[0x0209] = new byte[1] { 0 },
[0x020A] = new byte[] { 2 },
[0x020B] = new byte[1] { 0 },
[0x020C] = new byte[1] { 0 },
[0x020D] = new byte[] { 1, 2 },
[0x020E] = new byte[1] { 0 },
[0x020F] = new byte[] { 2, 2 },
[0x0210] = new byte[] { 2, 2 },
[0x0211] = new byte[] { 1 },
[0x0212] = new byte[] { 2, 2 },
[0x0213] = new byte[] { 2, 2 },
[0x0214] = new byte[] { 2 },
[0x0215] = new byte[1] { 0 },
[0x0216] = new byte[] { 2 },
[0x0217] = new byte[] { 2, 2 },
[0x0218] = new byte[] { 2 },
[0x0219] = new byte[] { 2 },
[0x021A] = new byte[] { 2 },
[0x021B] = new byte[1] { 0 },
[0x021C] = new byte[] { 1 },
[0x021D] = new byte[] { }, ///////////////////
[0x021E] = new byte[1] { 0 },
[0x021F] = new byte[] { 2, 2 },
[0x0220] = new byte[1] { 0 },
[0x0221] = new byte[] { 2 },
[0x0222] = new byte[1] { 0 },
[0x0223] = new byte[] { 2 },
[0x0224] = new byte[] { 2, 2 },
[0x0225] = new byte[] { 2 },
[0x0226] = new byte[] { 1 },
[0x0227] = new byte[1] { 0 },
[0x0228] = new byte[] { 2 },
[0x0229] = new byte[] { 2 },
[0x022A] = new byte[1] { 0 },
[0x022B] = new byte[1] { 0 },
[0x022C] = new byte[1] { 0 },
[0x022D] = new byte[] { 1, 2 },
[0x022E] = new byte[] { 2, 2 },
[0x022F] = new byte[] { 2 },
[0x0230] = new byte[] { 2, 2, 2 },
[0x0231] = new byte[] { 2, 2 },
[0x0232] = new byte[] { 1, 2 },
[0x0233] = new byte[] { 2, 2 },
[0x0234] = new byte[] { 2 },
[0x0235] = new byte[] { }, ///////////////////
[0x0236] = new byte[] { 2 },
[0x0237] = new byte[] { 2, 2, 2, 2 },
[0x0238] = new byte[] { 2, 2 },
[0x0239] = new byte[] { 2 },
[0x023A] = new byte[] { 2, 2, 2 },
[0x023B] = new byte[] { 2 },
[0x023C] = new byte[] { 2, 2 },
[0x023D] = new byte[] { 2, 2, 2, 2 },
[0x023E] = new byte[] { }, /////////////////
[0x023F] = new byte[1] { 0 },
[0x0240] = new byte[1] { 0 },
[0x0241] = new byte[1] { 0 },
[0x0242] = new byte[1] { 0 },
[0x0243] = new byte[] { 2, 2, 2 },
[0x0244] = new byte[] { 2, 2, 2, 2 },
[0x0245] = new byte[] { 2, 2 },
[0x0246] = new byte[] { 2 },
[0x0247] = new byte[] { 2 },
[0x0248] = new byte[] { 2, 2, 2 },
[0x0249] = new byte[] { 2, 2, 2, 2, 2 },
[0x024A] = new byte[] { 2 },
[0x024B] = new byte[] { 1 },
[0x024C] = new byte[] { 1 },
[0x024D] = new byte[] { 1 },
[0x024E] = new byte[] { 2 },
[0x024F] = new byte[] { 2, 2, 2, 2 },
[0x0250] = new byte[1] { 0 },
[0x0251] = new byte[] { 1, 2 },
[0x0252] = new byte[] { 2 },
[0x0253] = new byte[] { 2 },
[0x0254] = new byte[] { 2 },
[0x0255] = new byte[1] { 0 },
[0x0256] = new byte[] { 2, 2 },
[0x0257] = new byte[1] { 0 },
[0x0258] = new byte[1] { 0 },
[0x0259] = new byte[1] { 0 },
[0x025A] = new byte[] { 2 },
[0x025B] = new byte[1] { 0 },
[0x025C] = new byte[1] { 0 },
[0x025D] = new byte[] { 2 },
[0x025E] = new byte[1] { 0 },
[0x025F] = new byte[1] { 0 },
[0x0260] = new byte[] { 2 },
[0x0261] = new byte[] { 1, 2 },
[0x0262] = new byte[] { 2, 2 },
[0x0263] = new byte[] { 2, 2, 2, 2 },
[0x0264] = new byte[] { 2 },
[0x0265] = new byte[1] { 0 },
[0x0266] = new byte[1] { 0 },
[0x0267] = new byte[] { 2 },
[0x0268] = new byte[] { 2 },
[0x0269] = new byte[] { 2, 2, 2, 2, 2 },
[0x026A] = new byte[] { 2, 2, 2 },
[0x026B] = new byte[] { 2 },
[0x026C] = new byte[] { 2 },
[0x026D] = new byte[] { 2 },
[0x026E] = new byte[] { 2 },
[0x026F] = new byte[1] { 0 },
[0x0270] = new byte[] { 1, 2 },
[0x0271] = new byte[] { 2 },
[0x0272] = new byte[] { 1 },
[0x0273] = new byte[] { 1, 2 },
[0x0274] = new byte[] { 2, 4 },
[0x0275] = new byte[] { 2 },
[0x0276] = new byte[] { 2, 2, 2 },
[0x0277] = new byte[] { 2 },
[0x0278] = new byte[] { 2, 2 },
[0x0279] = new byte[1] { 0 },
[0x027A] = new byte[1] { 0 },
[0x027B] = new byte[1] { 0 },
[0x027C] = new byte[] { 2, 2 },
[0x027D] = new byte[] { 2, 2 },
[0x027E] = new byte[] { 2 },
[0x027F] = new byte[] { 2 },
[0x0280] = new byte[] { 1, 2, 2 },
[0x0281] = new byte[] { 2, 2, 2 },
[0x0282] = new byte[] { 2 },
[0x0283] = new byte[] { 2, 2 },
[0x0284] = new byte[] { 2 },
[0x0285] = new byte[] { 2, 2 },
[0x0286] = new byte[] { 2 },
[0x0287] = new byte[] { 2 },
[0x0288] = new byte[] { 2 },
[0x0289] = new byte[] { 2, 1, 2, 2, 2, 1, 2 },
[0x028A] = new byte[] { 2 },
[0x028B] = new byte[] { 1, 2 },
[0x028C] = new byte[] { 2 },
[0x028D] = new byte[1] { 0 },
[0x028E] = new byte[] { 2 },
[0x028F] = new byte[] { 2 },
[0x0290] = new byte[] { 2 },
[0x0291] = new byte[] { 2, 2 },
[0x0292] = new byte[] { 1, 2 },
[0x0293] = new byte[] { 2 },
[0x0294] = new byte[] { 2 },
[0x0295] = new byte[1] { 0 },
[0x0296] = new byte[1] { 0 },
[0x0297] = new byte[1] { 0 },
[0x0298] = new byte[1] { 0 },
[0x0299] = new byte[] { 2 },
[0x029A] = new byte[] { 2, 2 },
[0x029B] = new byte[] { 2, 2, 2, 2 },
[0x029C] = new byte[] { 2, 2 },
[0x029D] = new byte[] { 2, 2 },
[0x029E] = new byte[] { 2, 2 },
[0x029F] = new byte[] { 2 },
[0x02A0] = new byte[] { 2, 2, 2 },
[0x02A1] = new byte[1] { 0 },
[0x02A2] = new byte[] { 2 },
[0x02A3] = new byte[] { 2 },
[0x02A4] = new byte[] { 2 },
[0x02A5] = new byte[1] { 0 },
[0x02A6] = new byte[] { 2, 2, 2 },
[0x02A7] = new byte[] { 2, 2 },
[0x02A8] = new byte[] { 2 },
[0x02A9] = new byte[] { 2, 2 },
[0x02AA] = new byte[] { 2, 2, 2, 2, 2 },
[0x02AB] = new byte[] { 2 },
[0x02AC] = new byte[1] { 0 },
[0x02AD] = new byte[] { 2, 2 },
[0x02AE] = new byte[1] { 0 },
[0x02AF] = new byte[] { 2 },
[0x02B0] = new byte[1] { 0 },
[0x02B1] = new byte[1] { 0 },
[0x02B2] = new byte[1] { 0 },
[0x02B3] = new byte[] { 1, 2 },
[0x02B4] = new byte[1] { 0 },
[0x02B5] = new byte[] { 2, 2, 2 },
[0x02B6] = new byte[] { 1, 2 },
[0x02B7] = new byte[] { 2 },
[0x02B8] = new byte[] { 2 },
[0x02B9] = new byte[1] { 0 },
[0x02BA] = new byte[] { 2 },
[0x02BB] = new byte[1] { 0 },
[0x02BC] = new byte[] { 2 },
[0x02BD] = new byte[] { 2, 2 },
[0x02BE] = new byte[] { 2 },
[0x02BF] = new byte[1] { 0 },
[0x02C0] = new byte[] { 2 },
[0x02C1] = new byte[1] { 0 },
[0x02C2] = new byte[1] { 0 },
[0x02C3] = new byte[1] { 1 },
};
public static Dictionary<ushort, string> DPScrCmdNames = new Dictionary<ushort, string>() {
[0x011D] = "ElevatorFloorWrite",
[0x0264] = "CheckBurmyForm",
};
public static Dictionary<ushort, byte[]> DPScrCmdParameters = new Dictionary<ushort, byte[]>() {
[0x011D] = new byte[] { 1, 1, 2 },
[0x0125] = new byte[] { 2, 2 },
[0x01E1] = new byte[] { 2, 2 },
//0x02C3 is the last command ID that DP and Plat have in common
//International release exclusive
[0x02C4] = new byte[] { 1, 2 },
[0x02C5] = new byte[] { 1, 2 },
[0x02C6] = new byte[] { 1, 2 },
[0x02C7] = new byte[] { 1, 2 },
[0x02C8] = new byte[] { 1, 2 },
[0x02C9] = new byte[] { 1, 2, 2, 1 },
[0x02CA] = new byte[] { 1 },
[0x02CB] = new byte[] { 1, 2 },
[0x02CC] = new byte[] { 1, 2 },
[0x02CD] = new byte[] { 1, 2 },
[0x02CE] = new byte[] { 1 },
[0x02CF] = new byte[] { 1 },
[0x02D0] = new byte[] { 2, 2, 2 },
[0x02D1] = new byte[] { 1, 1 }
};
public static Dictionary<ushort, string> PlatScrCmdNames = new Dictionary<ushort, string>() {
[0x011D] = "ElevatorFloorWrite",
[0x0264] = "CombeeCheck",
//0x02C3 is the last command ID that DP and Plat have in common
[0x02C6] = "SpinTradeUnion",
[0x02C7] = "CheckGameVersion",
[0x02C9] = "InitEternaGym",
[0x02CA] = "FloralClockAnimation",
[0x02CD] = "SetDarkFog",
[0x02CE] = "ClearDarkFog",
[0x02FB] = "SpearPillarSequence2",
[0x0328] = "PortalEffect",
//International release exclusive
[0x0347] = "DisplayFloor"
};
public static Dictionary<ushort, byte[]> PlatScrCmdParameters = new Dictionary<ushort, byte[]>() {
[0x011D] = new byte[] { 1, 1, 2, 2 },
[0x0125] = new byte[] { 2 },
[0x01E1] = new byte[] { 2, 2, 2 },
//0x02C3 is the last command ID that DP and Plat have in common
[0x02C4] = new byte[] { 1 },
[0x02C5] = new byte[] { 1, 2 },
[0x02C6] = new byte[] { 1, 2 },
[0x02C7] = new byte[] { 2 },
[0x02C8] = new byte[] { 2, 2, 2 },
[0x02C9] = new byte[1] { 0 },
[0x02CA] = new byte[1] { 0 },
[0x02CB] = new byte[] { 2, 2 },
[0x02CC] = new byte[] { 2, 2, 2 },
[0x02CD] = new byte[1] { 0 },
[0x02CE] = new byte[1] { 0 },
[0x02CF] = new byte[] { 2, 2 },
[0x02D0] = new byte[] { 2, 2 },
[0x02D1] = new byte[] { 2 },
[0x02D2] = new byte[] { 2, 2, 2 },
[0x02D3] = new byte[] { 2, 2, 2 },
[0x02D4] = new byte[] { 2, 2, 2 },
[0x02D5] = new byte[] { 2 },
[0x02D6] = new byte[1] { 0 },
[0x02D7] = new byte[] { 2 },
[0x02D8] = new byte[] { 1 },
[0x02D9] = new byte[] { 2, 2, 2 },
[0x02DA] = new byte[] { 2, 2, 2 },
[0x02DB] = new byte[] { 2, 2, 2 },
[0x02DC] = new byte[] { 2 },
[0x02DD] = new byte[] { 2, 2 },
[0x02DE] = new byte[] { 2, 2, 2, 2, 2 },
[0x02DF] = new byte[] { 2 },
[0x02E0] = new byte[] { 2, 2 },
[0x02E1] = new byte[] { 2, 2 },
[0x02E2] = new byte[1] { 0 },
[0x02E3] = new byte[1] { 0 },
[0x02E4] = new byte[] { 2, 2, 2 },
[0x02E5] = new byte[] { 2, 2, 2 },
[0x02E6] = new byte[] { 2, 2, 2 },
[0x02E7] = new byte[] { 2, 2 },
[0x02E8] = new byte[] { 2 },
[0x02E9] = new byte[] { 2, 2, 2 },
[0x02EA] = new byte[] { 2, 2 },
[0x02EB] = new byte[] { 2 },
[0x02EC] = new byte[] { 2, 2, 2 },
[0x02ED] = new byte[1] { 0 },
[0x02EE] = new byte[] { 2, 2, 2, 2 },
[0x02EF] = new byte[1] { 0 },
[0x02F0] = new byte[1] { 0 },
[0x02F1] = new byte[1] { 0 },
[0x02F2] = new byte[1] { 0 },
[0x02F3] = new byte[] { 1, 2 },
[0x02F4] = new byte[] { 2, 2, 2, 2 },
[0x02F5] = new byte[] { 1, 2, 2, 2 },
[0x02F6] = new byte[] { 2, 2, 2 },
[0x02F7] = new byte[] { 2 },
[0x02F8] = new byte[1] { 0 },
[0x02F9] = new byte[] { 2 },
[0x02FA] = new byte[] { 2 },
[0x02FB] = new byte[1] { 0 },
[0x02FC] = new byte[] { 2 },
[0x02FD] = new byte[] { 2, 2, 2 },
[0x02FE] = new byte[] { 2, 2 },
[0x02FF] = new byte[] { 2, 2 },
[0x0300] = new byte[1] { 0 },
[0x0301] = new byte[1] { 0 },
[0x0302] = new byte[] { 2, 2, 2, 2, 2 },
[0x0303] = new byte[] { 2, 2 },
[0x0304] = new byte[] { 2, 2, 2, 2 },
[0x0305] = new byte[] { 2, 2 },
[0x0306] = new byte[] { 2, 2 },
[0x0307] = new byte[] { 2 },
[0x0308] = new byte[1] { 0 },
[0x0309] = new byte[1] { 0 },
[0x030A] = new byte[] { 2 },
[0x030B] = new byte[1] { 0 },
[0x030C] = new byte[1] { 0 },
[0x030D] = new byte[] { 2 },
[0x030E] = new byte[] { 2 },
[0x030F] = new byte[] { 2, 2 },
[0x0310] = new byte[1] { 0 },
[0x0311] = new byte[] { 2 },
[0x0312] = new byte[] { 2 },
[0x0313] = new byte[] { 2 },
[0x0314] = new byte[] { 2 },
[0x0315] = new byte[] { 2 },
[0x0316] = new byte[1] { 0 },
[0x0317] = new byte[] { 2, 2, 2 },
[0x0318] = new byte[] { 2, 2, 2, 2 },
[0x0319] = new byte[] { 2, 2, 2, 2 },
[0x031A] = new byte[1] { 0 },
[0x031B] = new byte[] { 2 },
[0x031C] = new byte[] { 2 },
[0x031D] = new byte[] { 2 },
[0x031E] = new byte[] { 2, 2 },
[0x031F] = new byte[1] { 0 },
[0x0320] = new byte[1] { 0 },
[0x0321] = new byte[] { 2 },
[0x0322] = new byte[1] { 0 },
[0x0323] = new byte[] { 2 },
[0x0324] = new byte[] { 2, 2, 2, 2 },
[0x0325] = new byte[] { 2 },
[0x0326] = new byte[] { 2 },
[0x0327] = new byte[] { 2 },
[0x0328] = new byte[] { 2 },
[0x0329] = new byte[] { 2, 2, 2, 2 },
[0x032A] = new byte[] { 2 },
[0x032B] = new byte[] { 2 },
[0x032C] = new byte[] { 2, 2, 2, 2, },
[0x032D] = new byte[1] { 0 },
[0x032E] = new byte[1] { 0 },
[0x032F] = new byte[] { 2, 2 },
[0x0330] = new byte[1] { 0 },
[0x0331] = new byte[1] { 0 },
[0x0332] = new byte[1] { 0 },
[0x0333] = new byte[] { 2 },
[0x0334] = new byte[1] { 0 },
[0x0335] = new byte[] { 2, 4 },
[0x0336] = new byte[] { 2 },
//International release exclusive
[0x0337] = new byte[1] { 0 },
[0x0338] = new byte[1] { 0 },
[0x0339] = new byte[1] { 0 },
[0x033A] = new byte[] { 1 },
[0x033B] = new byte[1] { 0 },
[0x033C] = new byte[] { 1, 2 },
[0x033D] = new byte[] { 1, 2 },
[0x033E] = new byte[] { 1, 2 },
[0x033F] = new byte[] { 1, 2 },
[0x0340] = new byte[] { 1, 2 },
[0x0341] = new byte[] { 1, 2, 2, 1 },
[0x0342] = new byte[] { 1 },
[0x0343] = new byte[] { 1, 2 },
[0x0344] = new byte[] { 1, 2 },
[0x0345] = new byte[] { 1, 2 },
[0x0346] = new byte[] { 1 },
[0x0347] = new byte[] { 1, 1 }
};
public static Dictionary<ushort, string> HGSSScrCmdNames = new Dictionary<ushort, string>() {
[0x0000] = "Nop",
[0x0001] = "Dummy",
[0x0002] = "End",
[0x0003] = "WaitTime",
[0x0004] = "RegValueSet",
[0x0005] = "RegDataSet",
[0x0006] = "RegAdrsSet",
[0x0007] = "AdrsValueSet",
[0x0008] = "AdrsRegSet",
[0x0009] = "RegRegSet",
[0x000A] = "AdrsAdrsSet",
[0x000B] = "IfRegReg",
[0x000C] = "IfRegValue",
[0x000D] = "IfRegAdrs",
[0x000E] = "IfAdrsReg",
[0x000F] = "IfAdrsValue",
[0x0010] = "IfAdrsAdrs",
[0x0011] = "CompareVarValue",
[0x0012] = "CompareVars",
[0x0014] = "CommonScript",
[0x0015] = "LocalScript",
[0x0016] = "Jump",
[0x0017] = "JumpIfObjID",
[0x0018] = "JumpIfBgID",
[0x0019] = "JumpIfPlayerDir",
[0x001A] = "Call",
[0x001B] = "Return",
[0x001C] = "Jump-If",
[0x001D] = "Call-If",
[0x001E] = "SetFlag",
[0x001F] = "ClearFlag",
[0x0020] = "CheckFlag",
[0x0021] = "SetFlagFromVar",
[0x0022] = "ClearFlagFromVar",
[0x0023] = "FlagStatusToVar",
[0x0024] = "SetTrainerFlag",
[0x0025] = "ClearTrainerFlag",
[0x0026] = "CheckTrainerFlag",
[0x0027] = "IncrementVar",
[0x0028] = "DecrementVar",
[0x0029] = "SetVar",
[0x002A] = "SetVarFromVariable",
[0x002B] = "SetVarFromFlexible",
[0x002C] = "MessageAll",
[0x002D] = "Message",
[0x002E] = "MessageSp",
[0x002F] = "MessageNoSkip",
[0x0031] = "WaitAB",
[0x0032] = "WaitButton",
[0x0033] = "WaitABPad",
[0x0034] = "OpenMessage",
[0x0035] = "CloseMessage",
[0x0036] = "FreezeMessage",
[0x0037] = "SetIconBoard",
[0x0038] = "SetTextBoard",
[0x0039] = "ShowBoard",
[0x003A] = "WaitBoard",
[0x003B] = "BoardMessage",
[0x003C] = "EndBoard",
[0x003D] = "Menu",
[0x0040] = "MultiStandardText",
[0x0041] = "MultiLocalText",
[0x0042] = "AddMultiOption",
[0x0043] = "ShowMulti",
[0x0044] = "ListStandardText",
[0x0045] = "ListLocalText",
[0x0046] = "AddListOption",
[0x0047] = "ShowList",
[0x0048] = "MultiColumn",
[0x0049] = "PlayFanfare",
[0x004A] = "StopFanfare",
[0x004B] = "WaitFanfare",
[0x004C] = "PlayCry",
[0x004D] = "WaitCry",
[0x004E] = "PlaySound",
[0x004F] = "WaitSound",
[0x0050] = "PlayMusic",
[0x0051] = "StopMusic",
[0x0052] = "PlayDefaultMusic",
[0x0053] = "SetMusic",
[0x0054] = "FadeOutMusic",
[0x0055] = "FadeInMusic",
[0x0059] = "CheckChatotCry",
[0x005A] = "StartChatotCry",
[0x005B] = "StopChatotCry",
[0x005C] = "SaveChatotCry",
[0x005E] = "Movement",
[0x005F] = "WaitMovement",
[0x0060] = "LockAll",
[0x0061] = "ReleaseAll",
[0x0062] = "Lock",
[0x0063] = "Release",
[0x0064] = "AddOW",
[0x0065] = "RemoveOW",
[0x0066] = "LockCamera",
[0x0067] = "ReleaseCamera",
[0x0068] = "FacePlayer",
[0x0069] = "CheckPlayerPosition",
[0x006A] = "CheckOverworldPosition",
[0x006C] = "KeepOverworld",
[0x006D] = "SetObjectDefaultMovement",
[0x006E] = "GiveMoney",
[0x006F] = "TakeMoney",
[0x0070] = "CompareMoney",
[0x0071] = "ShowMoney",
[0x0072] = "HideMoney",
[0x0073] = "UpdateMoney",
[0x0077] = "CheckCoins",
[0x0078] = "GiveCoins",
[0x0079] = "TakeCoins",
[0x007E] = "TakeItem",
[0x007F] = "GiveItem",
[0x0080] = "CheckItem",
[0x0081] = "CheckItemIsMachine",
[0x0082] = "GetItemPocket",
[0x0083] = "SetStarter",
[0x0084] = "GenderMessage",
[0x0089] = "GivePokemon",
[0x008A] = "GivePokemonEgg",
[0x008D] = "CheckMoveInParty",
[0x008F] = "ChooseRivalName",
[0x0092] = "RecordPokegearNumber",
[0x0096] = "ReturnScreen",
[0x009D] = "WorldMapScreen",
[0x00A3] = "EndGame",
[0x00A7] = "StarterSelectionScreen",
[0x00AD] = "ChooseNickname",
[0x00AE] = "FadeScreen",
[0x00AF] = "WaitFadeScreen",
[0x00B0] = "Warp",
[0x00B1] = "RockClimbAnimation",
[0x00B2] = "SurfAnimation",
[0x00B3] = "WaterfallAnimation",
[0x00B4] = "FlyAnimation",
[0x00B5] = "FlashAnimation",
[0x00B6] = "WhirlpoolAnimation",
[0x00B7] = "CutAnimation",
[0x00B8] = "CheckBike",
[0x00B9] = "RideBike",
[0x00BA] = "CyclingRoad",
[0x00BB] = "CheckPlayerAction",
[0x00BC] = "SetPlayerAction",
[0x00BD] = "UpdatePlayerAction",
[0x00BE] = "TextPlayerName",
[0x00BF] = "TextRivalName",
[0x00C0] = "TextCounterpart",
[0x00C1] = "TextPokemon",
[0x00C2] = "TextItem",
[0x00C4] = "TextAttackItem",
[0x00C5] = "TextMoveName",
[0x00C6] = "TextNumber",
[0x00C7] = "TextPokeNickname",
[0x00C8] = "TextObject",
[0x00C9] = "TextPlayerTrainerType",
[0x00CA] = "TextPokemonStored",
[0x00CB] = "TextStarterPokemon",
[0x00CC] = "TextRivalStarter",
[0x00CD] = "TextCounterpartStarter",
[0x00CE] = "CheckStarter",
[0x00CF] = "DummyTextGoods",
[0x00D0] = "DummyTextTrap",
[0x00D1] = "DummyTextTreasure",
[0x00D2] = "TextMapName",
[0x00D3] = "CheckSwarm",
[0x00D4] = "TrainerID",
[0x00D5] = "TrainerBattle",
[0x00D6] = "TrainerMessage",
[0x00D7] = "TrainerMsgCheck",
[0x00D8] = "TrainerRematchMsgCheck",
[0x00D9] = "TrainerTypeCheck",
[0x00DA] = "TrainerMusic",
[0x00DB] = "LostBattle",
[0x00DC] = "CheckBattleIsLost",
[0x00DD] = "CheckDefeatedPokemon",
[0x00DE] = "Check2vs2",
[0x00DF] = "DummyTrainerBattle",
[0x00E0] = "DummyTrainerFlag",
[0x00E1] = "DummyTrainerFlagJump",
[0x00EE] = "CheckPokerus",
[0x00EF] = "CheckPokemonGender",
[0x00F1] = "CheckElevatorFloor",
[0x00F2] = "ElevatorBox",
[0x00F3] = "GetJohtoDexSeenCount",
[0x00F4] = "GetJohtoDexObtained",
[0x00F5] = "GetNationalDexSeen",
[0x00F6] = "GetNationalDexObtained",
[0x00F7] = "DummyNationalDexCheck",
[0x00F8] = "CheckDexProgressMsg",
[0x00F9] = "WildBattle",
[0x00FA] = "FirstBattle",
[0x00FB] = "CatchTutorial",
[0x0117] = "DummyLostBattle",
[0x0118] = "SetLastWarp",
[0x0119] = "CheckPlayerGender",
[0x011A] = "HealPokemon",
[0x0122] = "CheckPokedex",
[0x0123] = "GivePokedex",
[0x0124] = "CheckShoes",
[0x0125] = "GiveShoes",
[0x0126] = "CheckBadge",
[0x0127] = "GiveBadge",
[0x0128] = "CountBadges",
[0x0129] = "DummyCheckBag",
[0x012A] = "DummyGiveBag",
[0x012B] = "CheckPartner",
[0x012C] = "SetPartner",
[0x012D] = "ClearPartner",
[0x0131] = "DummyCheckGameCompleted",
[0x0132] = "DummyGameCompleted",
[0x0133] = "DoorAnimation",
[0x0134] = "WaitDoor",
[0x0135] = "FreeDoor",
[0x0136] = "OpenDoor",
[0x0137] = "CloseDoor",
[0x0138] = "GetDaycareNames",
[0x0139] = "GetDaycareStatus",
[0x0141] = "VermillionGymAnimation",
[0x0142] = "VermillionGymBin",
[0x0147] = "AzaleaGym",
[0x0148] = "AzaleaGym2",
[0x014C] = "GetPartyCount",
[0x0152] = "SetOverworldPosition",
[0x0153] = "SetOverworldFullPosition",
[0x0154] = "SetOverworldMovement",
[0x0155] = "SetOverworldDirection",
[0x015F] = "GetSelectedPartySlot",
[0x0162] = "GetPartyPokemonID",
[0x0163] = "CheckTradedPokemon",
[0x016C] = "DeletePartyPokemon",
[0x0170] = "CheckHiroMoneyNumber",
[0x0171] = "EggHatchScreen", //This command is dangerous when used without an egg in party
[0x0176] = "UnvanishOverworld",
[0x0177] = "VanishOverworld",
[0x0178] = "OpenMail",
[0x0179] = "CheckMail",
[0x017B] = "GetTimePeriod",
[0x017C] = "GetRandom",
[0x017D] = "DummyGetRandom",
[0x017E] = "CheckHappiness",
[0x017F] = "AddHappiness",
[0x0180] = "SubHappiness",
[0x0182] = "GetPlayerDirection",
[0x0188] = "ComparePokemonHeight",
[0x0189] = "CheckPokemonHeight",
[0x018A] = "ChoosePokemonDelete",
[0x018B] = "StoreMoveDelete",
[0x018c] = "GetMoveCount",
[0x018D] = "DeleteMove",
[0x0190] = "Strength",
[0x01A7] = "CheckCompleteJohtoDex",
[0x01A8] = "CheckCompleteNationalDex",
[0x01AD] = "GetFossilCount",
[0x01B0] = "GetPokeNameFromFossil",
[0x01B1] = "CheckFossil",
[0x01B2] = "CountPokemonUnderLevel",
[0x01B3] = "SurvivePoison",
[0x01BD] = "CheckPreviousMap",
[0x01BE] = "CheckCurrentMap",
[0x01BF] = "SetSafariFlag",
[0x01C2] = "GeonetScreen",
[0x01C4] = "ShowPokemonPic",
[0x01C5] = "HidePokemonPic",
[0x01D0] = "AddRoamingPokémon",
[0x01D1] = "Group",
[0x01D6] = "InitTrade",
[0x01D7] = "GetOfferedPokemon",
[0x01D8] = "GetRequestedPokemon",
[0x01D9] = "TradePokemonScreen",
[0x01DA] = "EndTrade",
[0x01DB] = "DummyInternationalDex",
[0x01DC] = "DummyDimorphismDex",
[0x01DD] = "NationalDex",
[0x01DE] = "PokemonRibbonCount",
[0x01DF] = "PartyRibbonCount",
[0x01E0] = "CheckRibbon",
[0x01E1] = "GiveRibbon",
[0x01E2] = "TextRibbon",
[0x01E3] = "PokemonEVCount",
[0x01E4] = "GetDayOfWeek",
[0x01E5] = "ShowRulesList",
[0x01E6] = "DummyGetPokemonFootprint",
[0x01E7] = "PCHealAnimation",
[0x01E7] = "ElevatorAnimation",
[0x01E9] = "MysteryGiftGive",
[0x01EF] = "CheckVersion",
[0x01F0] = "FirstPokemonInParty",
[0x01FB] = "CountPCFreeSpace",
[0x01FF] = "StoreFriendParkResult",
[0x0204] = "TextAccessory",
[0x0205] = "CheckPokemonInParty",
[0x0206] = "SetDeoxysForm",
[0x0207] = "CheckBurmyForms",
[0x020A] = "GetHour",
[0x020B] = "ShakeOverworld",
[0x020C] = "BlinkOverworld",
[0x020D] = "CheckRegis",
[0x020F] = "MessageUnown",
[0x0210] = "CheckGBACartidge",
[0x0211] = "GetFirstPokemonAlive",
[0x021D] = "TextNumberSp",
[0x021F] = "CheckBirthday",
[0x0220] = "MusicVolumeSet",
[0x0221] = "CountUnownSeen",
[0x0231] = "ShakeCamera",
[0x0232] = "Battle2vs2",
[0x0236] = "ChoosePokemonMenuTrade",
[0x024D] = "WildBattleSp",
[0x024E] = "CheckTrainerCardLevel",
[0x024F] = "DummyRideBike",
[0x0251] = "ShowSaveBox",
[0x0252] = "HideSaveBox",
[0x0253] = "ScopeMode",
[0x0254] = "GetFollowingPokeSize",
[0x0257] = "FollowingPokePCAnimation",
[0x0258] = "SendBackFollowingPoke",
[0x0259] = "FollowingPokeFacePlayer",
[0x025A] = "LockFollowingPoke",
[0x025B] = "WaitFollowingPoke",
[0x025C] = "SetFollowingPokeMovement",
[0x025D] = "SetFollowingPokePosition",
[0x025E] = "BallResetFollowingPoke",
[0x025F] = "NoBallResetFollowingPoke",
[0x0260] = "SendOutFollowingPoke",
[0x0261] = "MecScript",
[0x0267] = "TakePhoto",
[0x026A] = "CheckAlbumPhoto",
[0x026E] = "GetOverworldDirection",
[0x02C7] = "TalkFollowingPoke",
[0x02D9] = "CheckPokemonAlive",
[0x02DA] = "CheckFollowingPoke",
[0x02EA] = "OpenTouchScreen",
[0x02EB] = "CloseTouchScreen",
[0x02EC] = "YesNoTouchScreen",
[0x02ED] = "MultiTouchStandardText",
[0x02EE] = "MultiTouchLocalText",
[0x02EF] = "CreateMultiTouchBox",
[0x02F0] = "CloseMultiTouch"
};
public static Dictionary<ushort, string> CustomScrCmdNames = new Dictionary<ushort, string>() {
[0x0357] = "DivVar",
[0x0360] = "AddCameraMovementParam",
[0x0361] = "OverrideDefaultCam",
[0x0362] = "ResetCamMovement",
[0x0363] = "RestoreDefaultCam",
[0x0364] = "SetSSEQTrackVol",
[0x0365] = "ClearSSEQTrackChanges",
[0x0366] = "GetSSEQTrackVol",
[0x036A] = "DoubleFadeScreen",
[0x036B] = "MessageAllTextbox",
[0x036C] = "MessageTextbox",
[0x036D] = "SetTextboxAlpha",
[0x036E] = "TextPocketWhite",
[0x036F] = "SetLayerVisibility",
[0x0370] = "StopWeatherAlphaBlend",
[0x0371] = "SetRepelSteps",
};
public static Dictionary<ushort, byte[]> HGSSScrCmdParameters = new Dictionary<ushort, byte[]>() {
[0x0000] = new byte[1] { 0 },
[0x0001] = new byte[1] { 0 },
[0x0002] = new byte[1] { 0 },
[0x0003] = new byte[] { 2, 2 },
[0x0004] = new byte[] { 1, 1 },
[0x0005] = new byte[] { 1, 4 },
[0x0006] = new byte[] { 1, 4 },
[0x0007] = new byte[] { 4, 1 },
[0x0008] = new byte[] { 4, 1 },
[0x0009] = new byte[] { 1, 1 },
[0x000A] = new byte[] { 4, 4 },
[0x000B] = new byte[] { 1, 1 },
[0x000C] = new byte[] { 1, 1 },
[0x000D] = new byte[] { 1, 4 },
[0x000E] = new byte[] { 4, 1 },
[0x000F] = new byte[] { 4, 1 },
[0x0010] = new byte[] { 4, 4 },
[0x0011] = new byte[] { 2, 2 },
[0x0012] = new byte[] { 2, 2 },
[0x0013] = new byte[] { 2 },
[0x0014] = new byte[] { 2 },
[0x0015] = new byte[1] { 0 },
[0x0016] = new byte[] { 4 },
[0x0017] = new byte[] { 1, 4 },
[0x0018] = new byte[] { 1, 4 },
[0x0019] = new byte[] { 1, 4 },
[0x001A] = new byte[] { 4 },
[0x001B] = new byte[1] { 0 },
[0x001C] = new byte[] { 1, 4 },
[0x001D] = new byte[] { 1, 4 },
[0x001E] = new byte[] { 2 },
[0x001F] = new byte[] { 2 },
[0x0020] = new byte[] { 2 },
[0x0021] = new byte[] { 2 },
[0x0022] = new byte[] { 2 },
[0x0023] = new byte[] { 2, 2 },
[0x0024] = new byte[] { 2 },
[0x0025] = new byte[] { 2 },
[0x0026] = new byte[] { 2 },
[0x0027] = new byte[] { 2, 2 },
[0x0028] = new byte[] { 2, 2 },
[0x0029] = new byte[] { 2, 2 },
[0x002A] = new byte[] { 2, 2 },
[0x002B] = new byte[] { 2, 2 },
[0x002C] = new byte[] { 1 },
[0x002D] = new byte[] { 1 },
[0x002E] = new byte[] { 2 },
[0x002F] = new byte[] { 2 },
[0x0030] = new byte[] { 1 },
[0x0031] = new byte[1] { 0 },
[0x0032] = new byte[1] { 0 },
[0x0033] = new byte[1] { 0 },
[0x0034] = new byte[1] { 0 },
[0x0035] = new byte[1] { 0 },
[0x0036] = new byte[1] { 0 },
[0x0037] = new byte[] { 1, 1, 2, 2 },
[0x0038] = new byte[] { 1, 2 },
[0x0039] = new byte[] { 1 },
[0x003A] = new byte[1] { 0 },
[0x003B] = new byte[] { 1, 2 },
[0x003C] = new byte[] { 2 },
[0x003D] = new byte[1] { 0 },
[0x003E] = new byte[] { 1, 1, 1, 1, 1, 1 },
[0x003F] = new byte[] { 2 },
[0x0040] = new byte[] { 1, 1, 1, 1, 2 },
[0x0041] = new byte[] { 1, 1, 1, 1, 2 },
[0x0042] = new byte[] { 1, 1 },
[0x0043] = new byte[1] { 0 },
[0x0044] = new byte[] { 1, 1, 1, 1, 2 },
[0x0045] = new byte[] { 1, 1, 1, 1, 2 },
[0x0046] = new byte[] { 2, 2, 2 },
[0x0047] = new byte[1] { 0 },
[0x0048] = new byte[] { 1 },
[0x0049] = new byte[] { 2 },
[0x004A] = new byte[] { 2 },
[0x004B] = new byte[] { 2 },
[0x004C] = new byte[] { 2, 2 },
[0x004D] = new byte[1] { 0 },
[0x004E] = new byte[] { 2 },
[0x004F] = new byte[1] { 0 },
[0x0050] = new byte[] { 2 },
[0x0051] = new byte[] { 2 },
[0x0052] = new byte[1] { 0 },
[0x0053] = new byte[] { 2 },
[0x0054] = new byte[] { 2, 2 },
[0x0055] = new byte[] { 2 },
[0x0056] = new byte[] { 1, 1 },
[0x0057] = new byte[] { 2 },
[0x0058] = new byte[] { 1 },
[0x0059] = new byte[] { 2 },
[0x005A] = new byte[] { 2 },
[0x005B] = new byte[1] { 0 },
[0x005C] = new byte[1] { 0 },
[0x005D] = new byte[1] { 0 },
[0x005E] = new byte[] { 2, 4 },
[0x005F] = new byte[1] { 0 },
[0x0060] = new byte[1] { 0 },
[0x0061] = new byte[1] { 0 },
[0x0062] = new byte[] { 2 },
[0x0063] = new byte[] { 2 },
[0x0064] = new byte[] { 2 },
[0x0065] = new byte[] { 2 },
[0x0066] = new byte[] { 2, 2 },
[0x0067] = new byte[1] { 0 },
[0x0068] = new byte[1] { 0 },
[0x0069] = new byte[] { 2, 2 },
[0x006A] = new byte[] { 2, 2, 2 },
[0x006B] = new byte[] { 2, 2, 2 },
[0x006C] = new byte[] { 2, 1 },
[0x006D] = new byte[] { 2, 2 },
[0x006E] = new byte[] { 4 },
[0x006F] = new byte[] { 4 },
[0x0070] = new byte[] { 2, 4 },
[0x0071] = new byte[] { 2, 2 },
[0x0072] = new byte[1] { 0 },
[0x0073] = new byte[1] { 0 },
[0x0074] = new byte[] { 1 },
[0x0075] = new byte[1] { 0 },
[0x0076] = new byte[] { 1 },
[0x0077] = new byte[] { 2 },
[0x0078] = new byte[] { 2 },
[0x0079] = new byte[] { 2 },
[0x007A] = new byte[] { 2, 2, 2 },
[0x007B] = new byte[1] { 0 },
[0x007C] = new byte[] { 2, 2, 2 },
[0x007D] = new byte[] { 2, 2, 2 },
[0x007E] = new byte[] { 2, 2, 2 },
[0x007F] = new byte[] { 2, 2, 2 },
[0x0080] = new byte[] { 2, 2, 2 },
[0x0081] = new byte[] { 2, 2 },
[0x0082] = new byte[] { 2, 2 },
[0x0083] = new byte[] { 2 },
[0x0084] = new byte[] { 1, 1 },
[0x0085] = new byte[] { 2, 2 },
[0x0086] = new byte[] { 2, 2 },
[0x0087] = new byte[] { 2, 2, 2 },
[0x0088] = new byte[] { 2, 2 },
[0x0089] = new byte[] { 2, 2, 2, 2, 2, 2 },
[0x008A] = new byte[] { 2, 2 },
[0x008B] = new byte[] { 2, 2, 2 },
[0x008C] = new byte[] { 2, 2, 2 },
[0x008D] = new byte[] { 2, 2 },
[0x008E] = new byte[] { 2, 2 },
[0x008F] = new byte[] { 2, 2, 2 },
[0x0090] = new byte[] { 2 },
[0x0091] = new byte[] { 1 },
[0x0092] = new byte[] { 2 },
[0x0093] = new byte[] { 2, 2 },
[0x0094] = new byte[] { 2, 2 },
[0x0095] = new byte[] { 1 },
[0x0096] = new byte[1] { 0 },
[0x0097] = new byte[1] { 0 },
[0x0098] = new byte[1] { 0 },
[0x0099] = new byte[] { 2, 2, 2 },
[0x009A] = new byte[] { 2, 2, 2 },
[0x009B] = new byte[] { 2, 2 },
[0x009C] = new byte[1] { 0 },
[0x009D] = new byte[1] { 0 },
[0x009E] = new byte[] { 1 },
[0x009F] = new byte[1] { 0 },
[0x00A0] = new byte[1] { 0 },
[0x00A1] = new byte[1] { 0 },
[0x00A2] = new byte[1] { 0 },
[0x00A3] = new byte[] { 2 },
[0x00A4] = new byte[] { 2, 2, 2, 2 },
[0x00A5] = new byte[] { 2, 2 },
[0x00A6] = new byte[] { 2 },
[0x00A7] = new byte[1] { 0 },
[0x00A8] = new byte[] { 2 },
[0x00A9] = new byte[] { 2, 2 },
[0x00AA] = new byte[] { 2 },
[0x00AB] = new byte[] { 2, 2 },
[0x00AC] = new byte[1] { 0 },
[0x00AD] = new byte[] { 2, 2 },
[0x00AE] = new byte[] { 2, 2, 2, 2 },
[0x00AF] = new byte[1] { 0 },
[0x00B0] = new byte[] { 2, 2, 2, 2, 2 },
[0x00B1] = new byte[] { 2 },
[0x00B2] = new byte[] { 2, 2, 2, 2 },
[0x00B3] = new byte[] { 2 },
[0x00B4] = new byte[1] { 0 },
[0x00B5] = new byte[1] { 0 },
[0x00B6] = new byte[] { 2 },
[0x00B7] = new byte[] { 2, 2 },
[0x00B8] = new byte[] { 2 },
[0x00B9] = new byte[] { 1 },
[0x00BA] = new byte[] { 1 },
[0x00BB] = new byte[] { 2 },
[0x00BC] = new byte[] { 2 },
[0x00BD] = new byte[1] { 0 },
[0x00BE] = new byte[] { 1 },
[0x00BF] = new byte[] { 1 },
[0x00C0] = new byte[] { 1 },
[0x00C1] = new byte[] { 1, 2 },
[0x00C2] = new byte[] { 1, 2 },
[0x00C3] = new byte[] { 1, 2 },
[0x00C4] = new byte[] { 1, 2 },
[0x00C5] = new byte[] { 1, 2 },
[0x00C6] = new byte[] { 1, 2 },
[0x00C7] = new byte[] { 1, 2 },
[0x00C8] = new byte[] { 1, 2 },
[0x00C9] = new byte[] { 1 },
[0x00CA] = new byte[] { 1, 2, 2, 1 },
[0x00CB] = new byte[] { 1 },
[0x00CC] = new byte[] { 1 },
[0x00CD] = new byte[] { 1 },
[0x00CE] = new byte[] { 2 },
[0x00CF] = new byte[] { 1 },
[0x00D0] = new byte[] { 1, 2 },
[0x00D1] = new byte[] { 1, 2 },
[0x00D2] = new byte[] { 1, 2 },
[0x00D3] = new byte[] { 1, 2 },
[0x00D4] = new byte[] { 2 },
[0x00D5] = new byte[] { 2, 2, 2 },
[0x00D6] = new byte[] { 2, 2 },
[0x00D7] = new byte[] { 2, 2, 2 },
[0x00D8] = new byte[] { 2, 2, 2 },
[0x00D9] = new byte[] { 2 },
[0x00DA] = new byte[] { 2 },
[0x00DB] = new byte[1] { 0 },
[0x00DC] = new byte[] { 2 },
[0x00DD] = new byte[] { 2, 1 },
[0x00DE] = new byte[] { 2 },
[0x00DF] = new byte[] { 1, 2 },
[0x00E0] = new byte[] { 1, 2 },
[0x00E1] = new byte[] { 1, 2 },
[0x00E2] = new byte[] { 2, 2, 2, 2 },
[0x00E3] = new byte[] { 2, 2, 2, 2 },
[0x00E4] = new byte[] { 2 },
[0x00E5] = new byte[] { 2, 2 },
[0x00E6] = new byte[1] { 0 },
[0x00E7] = new byte[] { 2, 2, 2 },
[0x00E8] = new byte[] { 2, 2, 2 },
[0x00E9] = new byte[] { 2 },
[0x00EA] = new byte[] { 2, 2, 2, 2 },
[0x00EB] = new byte[] { 2 },
[0x00EC] = new byte[] { 2, 2, 2, 2, 2 },
[0x00ED] = new byte[1] { 0 },
[0x00EE] = new byte[] { 2, 2, 2, 2 },
[0x00EF] = new byte[] { 2, 2 },
[0x00F0] = new byte[] { 2, 2, 2, 2, 2 },
[0x00F1] = new byte[] { 2 },
[0x00F2] = new byte[] { 1, 1, 2, 2 },
[0x00F3] = new byte[] { 2 },
[0x00F4] = new byte[] { 2 },
[0x00F5] = new byte[] { 2 },
[0x00F6] = new byte[] { 2 },
[0x00F7] = new byte[1] { 0 },
[0x00F8] = new byte[] { 2 },
[0x00F9] = new byte[] { 2, 2 },
[0x00FA] = new byte[] { 2, 2 },
[0x00FB] = new byte[1] { 0 },
[0x00FC] = new byte[1] { 0 },
[0x00FD] = new byte[] { 2 },
[0x00FE] = new byte[] { 2 },
[0x00FF] = new byte[] { 2, 2 },
[0x0100] = new byte[] { 2 },
[0x0101] = new byte[] { 2 },
[0x0102] = new byte[] { 2, 2 },
[0x0103] = new byte[] { 1, 1 },
[0x0104] = new byte[] { 2 },
[0x0105] = new byte[] { 2 },
[0x0106] = new byte[1] { 0 },
[0x0107] = new byte[1] { 0 },
[0x0108] = new byte[] { 2 },
[0x0109] = new byte[1] { 0 },
[0x010A] = new byte[1] { 0 },
[0x010B] = new byte[] { 2, 2 },
[0x010C] = new byte[] { 2 },
[0x010D] = new byte[] { 2, 2, 2, 2 },
[0x010E] = new byte[] { 2 },
[0x010F] = new byte[] { 2, 2 },
[0x0110] = new byte[] { 2 },
[0x0111] = new byte[] { 2 },
[0x0112] = new byte[] { 2, 2 },
[0x0113] = new byte[] { 2 },
[0x0114] = new byte[] { 2 },
[0x0115] = new byte[] { 2 },
[0x0116] = new byte[] { 2, 2, 2, 2 },
[0x0117] = new byte[1] { 0 },
[0x0118] = new byte[1] { 0 },
[0x0119] = new byte[] { 2 },
[0x011A] = new byte[1] { 0 },
[0x011B] = new byte[1] { 0 },
[0x011C] = new byte[1] { 0 },
[0x011D] = new byte[] { 2, 2 },
[0x011E] = new byte[] { 2 },
[0x011F] = new byte[] { 2, 2 },
[0x0120] = new byte[] { 2, 2 },
[0x0121] = new byte[] { 2 },
[0x0122] = new byte[] { 2, 2 },
[0x0123] = new byte[1] { 0 },
[0x0124] = new byte[1] { 0 },
[0x0125] = new byte[1] { 0 },
[0x0126] = new byte[] { 2, 2 },
[0x0127] = new byte[] { 2 },
[0x0128] = new byte[] { 2 },
[0x0129] = new byte[1] { 0 },
[0x012A] = new byte[] { 2, 2, 2, 2 },
[0x012B] = new byte[] { 2 },
[0x012C] = new byte[] { 2 },
[0x012D] = new byte[] { 2 },
[0x012E] = new byte[] { 2, 2 },
[0x012F] = new byte[] { 2, 2 },
[0x0130] = new byte[] { 2 },
[0x0131] = new byte[1] { 0 },
[0x0132] = new byte[] { 2, 2, 2, 2 },
[0x0133] = new byte[] { 2, 2, 2, 2, 1 },
[0x0134] = new byte[] { 1 },
[0x0135] = new byte[] { 1 },
[0x0136] = new byte[] { 1 },
[0x0137] = new byte[] { 1 },
[0x0138] = new byte[1] { 0 },
[0x0139] = new byte[] { 2, 2, 2, 2 },
[0x013A] = new byte[1] { 0 },
[0x013B] = new byte[1] { 0 },
[0x013C] = new byte[1] { 0 },
[0x013D] = new byte[] { 1 },
[0x013E] = new byte[1] { 0 },
[0x013F] = new byte[] { 2 },
[0x0140] = new byte[] { 2 },
[0x0141] = new byte[] { 2 },
[0x0142] = new byte[] { 1, 2 },
[0x0143] = new byte[] { 2, 2 },
[0x0144] = new byte[1] { 0 },
[0x0145] = new byte[1] { 0 },
[0x0146] = new byte[1] { 0 },
[0x0147] = new byte[] { 1 },
[0x0148] = new byte[] { 1 },
[0x0149] = new byte[1] { 0 },
[0x014A] = new byte[1] { 0 },
[0x014B] = new byte[1] { 0 },
[0x014C] = new byte[] { 2 },
[0x014D] = new byte[] { 2 },
[0x014E] = new byte[1] { 0 },
[0x014F] = new byte[1] { 0 },
[0x0150] = new byte[1] { 0 },
[0x0151] = new byte[1] { 0 },
[0x0152] = new byte[] { 2, 2, 2 },
[0x0153] = new byte[] { 2, 2, 2, 2, 2 },
[0x0154] = new byte[] { 2, 2 },
[0x0155] = new byte[] { 2, 2 },
[0x0156] = new byte[] { 2, 2, 2 },
[0x0157] = new byte[1] { 0 },
[0x0158] = new byte[] { 2, 2 },
[0x0159] = new byte[1] { 0 },
[0x015A] = new byte[1] { 0 },
[0x015B] = new byte[] { 2, 2 },
[0x015C] = new byte[] { 2 },
[0x015D] = new byte[1] { 0 },
[0x015E] = new byte[1] { 0 },
[0x015F] = new byte[] { 2 },
[0x0160] = new byte[] { 1, 2, 2 },
[0x0161] = new byte[] { 1, 2 },
[0x0162] = new byte[] { 2, 2 },
[0x0163] = new byte[] { 2, 2 },
[0x0164] = new byte[] { 2 },
[0x0165] = new byte[] { 2, 2 },
[0x0166] = new byte[] { 2 },
[0x0167] = new byte[] { 2 },
[0x0168] = new byte[] { 2 },
[0x0169] = new byte[] { 2, 2 },
[0x016A] = new byte[] { 2, 2 },
[0x016B] = new byte[] { 1, 2, 2 },
[0x016C] = new byte[] { 2 },
[0x016D] = new byte[1] { 0 },
[0x016E] = new byte[1] { 0 },
[0x016F] = new byte[] { 2, 2 },
[0x0170] = new byte[] { 2, 2 },
[0x0171] = new byte[1] { 0 },
[0x0172] = new byte[1] { 0 },
[0x0173] = new byte[] { 2, 2 },
[0x0174] = new byte[] { 2, 2 },
[0x0175] = new byte[] { 2 },
[0x0176] = new byte[] { 2 },
[0x0177] = new byte[] { 2 },
[0x0178] = new byte[1] { 0 },
[0x0179] = new byte[] { 2 },
[0x017A] = new byte[] { 2, 2 },
[0x017B] = new byte[] { 2 },
[0x017C] = new byte[] { 2, 2 },
[0x017D] = new byte[] { 2 },
[0x017E] = new byte[] { 2, 2 },
[0x017F] = new byte[] { 2, 2 },
[0x0180] = new byte[] { 1 },
[0x0181] = new byte[] { 2, 2 },
[0x0182] = new byte[] { 2 },
[0x0183] = new byte[] { 2 },
[0x0184] = new byte[] { 2 },
[0x0185] = new byte[] { 2 },
[0x0186] = new byte[] { 2, 2 },
[0x0187] = new byte[] { 2 },
[0x0188] = new byte[] { 2, 2, 2 },
[0x0189] = new byte[] { 2, 2, 2 },
[0x018A] = new byte[] { 2 },
[0x018B] = new byte[] { 2 },
[0x018C] = new byte[] { 2, 2 },
[0x018D] = new byte[] { 2, 2 },
[0x018E] = new byte[] { 2, 2, 2 },
[0x018F] = new byte[] { 1, 2, 2 },
[0x0190] = new byte[] { 1 },
[0x0191] = new byte[1] { 0 },
[0x0192] = new byte[1] { 0 },
[0x0193] = new byte[] { 2, 2 },
[0x0194] = new byte[] { 2, 2, 2 },
[0x0195] = new byte[] { 2, 2 },
[0x0196] = new byte[] { 2 },
[0x0197] = new byte[] { 2, 2 },
[0x0198] = new byte[] { 2, 2 },
[0x0199] = new byte[1] { 0 },
[0x019A] = new byte[] { 2, 2 },
[0x019B] = new byte[1] { 0 },
[0x019C] = new byte[] { 2, 2, 2 },
[0x019D] = new byte[] { 2, 2, 2, 2 },
[0x019E] = new byte[] { 2 },
[0x019F] = new byte[] { 2 },
[0x01A0] = new byte[] { 2, 2, 2 },
[0x01A1] = new byte[] { 2, 2 },
[0x01A2] = new byte[] { 2, 2 },
[0x01A3] = new byte[] { 2, 2, 2 },
[0x01A4] = new byte[] { 2 },
[0x01A5] = new byte[1] { 0 },
[0x01A6] = new byte[1] { 0 },
[0x01A7] = new byte[] { 2 },
[0x01A8] = new byte[] { 2 },
[0x01A9] = new byte[] { 2 },
[0x01AA] = new byte[] { 1, 2, 2 },
[0x01AB] = new byte[] { 2, 2 },
[0x01AC] = new byte[] { 2 },
[0x01AD] = new byte[] { 2 },
[0x01AE] = new byte[] { 2, 2, 2 },
[0x01AF] = new byte[] { 2, 2, 2 },
[0x01B0] = new byte[] { 2, 2 },
[0x01B1] = new byte[] { 2, 2, 2 },
[0x01B2] = new byte[] { 2, 2 },
[0x01B3] = new byte[] { 2, 2 },
[0x01B4] = new byte[1] { 0 },
[0x01B5] = new byte[] { 2 },
[0x01B6] = new byte[] { 2, 2 },
[0x01B7] = new byte[] { 2, 2 },
[0x01B8] = new byte[] { 2, 2 },
[0x01B9] = new byte[] { 2, 2 },
[0x01BA] = new byte[] { 2, 2 },
[0x01BB] = new byte[1] { 0 },
[0x01BC] = new byte[] { 2, 2 },
[0x01BD] = new byte[] { 2 },
[0x01BE] = new byte[] { 2 },
[0x01BF] = new byte[] { 2 },
[0x01C0] = new byte[] { 2, 2, 2, 2, 2 },
[0x01C1] = new byte[] { 2, 2 },
[0x01C2] = new byte[] { 2 },
[0x01C3] = new byte[] { 2 },
[0x01C4] = new byte[] { 2, 2 },
[0x01C5] = new byte[1] { 0 },
[0x01C6] = new byte[1] { 0 },
[0x01C7] = new byte[] { 2 },
[0x01C8] = new byte[] { 2, 2 },
[0x01C9] = new byte[] { 2, 2 },
[0x01CA] = new byte[] { 2, 2, 2 },
[0x01CB] = new byte[1] { 0 },
[0x01CC] = new byte[] { 2, 2 },
[0x01CD] = new byte[] { 1, 2, 2 },
[0x01CE] = new byte[] { 2 },
[0x01CF] = new byte[1] { 0 },
[0x01D0] = new byte[] { 1 },
[0x01D1] = new byte[] { 2, 2, 2 },
[0x01D2] = new byte[] { 2, 2 },
[0x01D3] = new byte[] { 2 },
[0x01D4] = new byte[] { 2, 2 },
[0x01D5] = new byte[] { 2 },
[0x01D6] = new byte[] { 1 },
[0x01D7] = new byte[1] { 0 },
[0x01D8] = new byte[] { 2 },
[0x01D9] = new byte[] { 2 },
[0x01DA] = new byte[1] { 0 },
[0x01DB] = new byte[] { 2, 2 },
[0x01DC] = new byte[1] { 0 },
[0x01DD] = new byte[] { 1, 2 },
[0x01DE] = new byte[] { 2, 2, 2, 2 },
[0x01DF] = new byte[1] { 0 },
[0x01E0] = new byte[] { 2, 2, 2 },
[0x01E1] = new byte[] { 2, 2 },
[0x01E2] = new byte[] { 2, 2 },
[0x01E3] = new byte[] { 2, 2 },
[0x01E4] = new byte[] { 2 },
[0x01E5] = new byte[] { 2 },
[0x01E6] = new byte[1] { 0 },
[0x01E7] = new byte[] { 2 },
[0x01E8] = new byte[] { 2, 2 },
[0x01E9] = new byte[] { 2 },
[0x01EA] = new byte[] { 2 },
[0x01EB] = new byte[] { 2 },
[0x01EC] = new byte[] { 2, 2, 2 },
[0x01ED] = new byte[] { 2, 2, 2 },
[0x01EE] = new byte[] { 2, 2 },
[0x01EF] = new byte[] { 2 },
[0x01F0] = new byte[1] { 0 },
[0x01F1] = new byte[] { 2, 2, 2 },
[0x01F2] = new byte[] { 2, 2, 2, 2, 2 },
[0x01F3] = new byte[] { 2, 2, 2, 2, 2 },
[0x01F4] = new byte[] { 1 },
[0x01F5] = new byte[] { 1 },
[0x01F6] = new byte[] { 2, 2 },
[0x01F7] = new byte[] { 2 },
[0x01F8] = new byte[] { 2, 2, 2, 2 },
[0x01F9] = new byte[1] { 0 },
[0x01FA] = new byte[] { 1, 2 },
[0x01FB] = new byte[] { 2 },
[0x01FC] = new byte[] { 2 },
[0x01FD] = new byte[] { 2 },
[0x01FE] = new byte[1] { 0 },
[0x01FF] = new byte[] { 2, 2 },
[0x0200] = new byte[] { 2 },
[0x0201] = new byte[] { 2, 2, 2 },
[0x0202] = new byte[] { 2 },
[0x0203] = new byte[] { 2 },
[0x0204] = new byte[] { 1, 2 },
[0x0205] = new byte[] { 2, 2 },
[0x0206] = new byte[] { 2 },
[0x0207] = new byte[] { 1, 2 },
[0x0208] = new byte[1] { 0 },
[0x0209] = new byte[1] { 0 },
[0x020A] = new byte[] { 2 },
[0x020B] = new byte[] { 2, 2, 2, 2, 2 },
[0x020C] = new byte[] { 2, 2, 2, 2, 2 },
[0x020D] = new byte[] { 2 },
[0x020E] = new byte[1] { 0 },
[0x020F] = new byte[] { 2 },
[0x0210] = new byte[] { 2 },
[0x0211] = new byte[] { 2 },
[0x0212] = new byte[] { 1, 2 },
[0x0213] = new byte[] { 1, 2 },
[0x0214] = new byte[] { 2, 2, 2 },
[0x0215] = new byte[] { 2, 2, 2 },
[0x0216] = new byte[] { 2 },
[0x0217] = new byte[] { 2, 2 },
[0x0218] = new byte[] { 2 },
[0x0219] = new byte[1] { 0 },
[0x021A] = new byte[] { 2, 2 },
[0x021B] = new byte[1] { 0 },
[0x021C] = new byte[] { 2 },
[0x021D] = new byte[] { 1, 2, 1, 1 },
[0x021E] = new byte[1] { 0 },
[0x021F] = new byte[] { 2 },
[0x0220] = new byte[] { 2, 2 },
[0x0221] = new byte[] { 2 },
[0x0222] = new byte[] { 1, 2 },
[0x0223] = new byte[] { 2 },
[0x0224] = new byte[1] { 0 },
[0x0225] = new byte[] { 2 },
[0x0226] = new byte[] { 1 },
[0x0227] = new byte[] { 2 },
[0x0228] = new byte[] { 2, 2 },
[0x0229] = new byte[] { 1, 2 },
[0x022A] = new byte[1] { 0 },
[0x022B] = new byte[] { 2 },
[0x022C] = new byte[] { 2 },
[0x022D] = new byte[] { 2, 2 },
[0x022E] = new byte[] { 2, 2 },
[0x022F] = new byte[] { 2 },
[0x0230] = new byte[] { 2, 2 },
[0x0231] = new byte[] { 2, 2, 2, 2 },
[0x0232] = new byte[] { 2, 2, 2, 1 },
[0x0233] = new byte[] { 2, 2 },
[0x0234] = new byte[] { 2 },
[0x0235] = new byte[] { 2 },
[0x0236] = new byte[1] { 0 },
[0x0237] = new byte[] { 2, 2, 2, 2 },
[0x0238] = new byte[] { 2, 2 },
[0x0239] = new byte[] { 2 },
[0x023A] = new byte[] { 2, 2, 2 },
[0x023B] = new byte[] { 2 },
[0x023C] = new byte[] { 2 },
[0x023D] = new byte[1] { 0 },
[0x023E] = new byte[] { 2, 2 },
[0x023F] = new byte[1] { 0 },
[0x0240] = new byte[] { 2 },
[0x0241] = new byte[1] { 0 },
[0x0242] = new byte[1] { 0 },
[0x0243] = new byte[1] { 0 },
[0x0244] = new byte[] { 1, 2 },
[0x0245] = new byte[] { 2, 2 },
[0x0246] = new byte[] { 2, 2, 2 },
[0x0247] = new byte[] { 2 },
[0x0248] = new byte[] { 2 },
[0x0249] = new byte[1] { 0 },
[0x024A] = new byte[] { 2 },
[0x024B] = new byte[1] { 0 },
[0x024C] = new byte[] { 2 },
[0x024D] = new byte[] { 2, 2, 1 },
[0x024E] = new byte[] { 2 },
[0x024F] = new byte[1] { 0 },
[0x0250] = new byte[] { 2 },
[0x0251] = new byte[1] { 0 },
[0x0252] = new byte[1] { 0 },
[0x0253] = new byte[] { 1 },
[0x0254] = new byte[] { 2 },
[0x0255] = new byte[1] { 0 },
[0x0256] = new byte[] { 2 },
[0x0257] = new byte[1] { 0 },
[0x0258] = new byte[1] { 0 },
[0x0259] = new byte[1] { 0 },
[0x025A] = new byte[] { 2 },
[0x025B] = new byte[1] { 0 },
[0x025C] = new byte[] { 2 },
[0x025D] = new byte[] { 1, 1 },
[0x025E] = new byte[1] { 0 },
[0x025F] = new byte[1] { 0 },
[0x0260] = new byte[1] { 0 },
[0x0261] = new byte[1] { 0 },
[0x0262] = new byte[1] { 0 },
[0x0263] = new byte[] { 2, 2, 2, 2, 2, 2 },
[0x0264] = new byte[] { 2 },
[0x0265] = new byte[] { 2 },
[0x0266] = new byte[] { 2 },
[0x0267] = new byte[] { 2, 2 },
[0x0268] = new byte[] { 2 },
[0x0269] = new byte[] { 2, 2 },
[0x026A] = new byte[] { 2 },
[0x026B] = new byte[] { 2 },
[0x026C] = new byte[] { 1 },
[0x026D] = new byte[] { 2 },
[0x026E] = new byte[] { 2, 2 },
[0x026F] = new byte[] { 2 },
[0x0270] = new byte[] { 2 },
[0x0271] = new byte[] { 2, 2, 2 },
[0x0272] = new byte[] { 1, 2 },
[0x0273] = new byte[] { 1 },
[0x0274] = new byte[] { 2, 2 },
[0x0275] = new byte[] { 2 },
[0x0276] = new byte[] { 2, 2, 2 },
[0x0277] = new byte[] { 2, 2, 2 },
[0x0278] = new byte[] { 2, 2 },
[0x0279] = new byte[] { 2, 2, 2 },
[0x027A] = new byte[] { 2, 2 },
[0x027B] = new byte[] { 2, 2 },
[0x027C] = new byte[] { 2 },
[0x027D] = new byte[] { 2, 2, 2 },
[0x027E] = new byte[] { 2, 2, 2 },
[0x027F] = new byte[] { 2, 2, 2 },
[0x0280] = new byte[] { 2, 2, 2 },
[0x0281] = new byte[] { 2, 2, 2 },
[0x0282] = new byte[] { 2, 2, 2 },
[0x0283] = new byte[] { 2, 2, 2 },
[0x0284] = new byte[] { 2, 2, 2 },
[0x0285] = new byte[] { 2, 2, 2 },
[0x0286] = new byte[] { 2 },
[0x0287] = new byte[] { 2 },
[0x0288] = new byte[] { 2 },
[0x0289] = new byte[1] { 0 },
[0x028A] = new byte[] { 2 },
[0x028B] = new byte[] { 2, 2, 2 },
[0x028C] = new byte[] { 2, 2, 2 },
[0x028D] = new byte[] { 2, 2, 2, 2 },
[0x028E] = new byte[] { 2, 2, 2 },
[0x028F] = new byte[] { 2, 2 },
[0x0290] = new byte[] { 2, 2 },
[0x0291] = new byte[] { 2, 2, 2, 2 },
[0x0292] = new byte[] { 1, 2 },
[0x0293] = new byte[] { 2 },
[0x0294] = new byte[] { 2 },
[0x0295] = new byte[1] { 0 },
[0x0296] = new byte[] { 2, 2, 2 },
[0x0297] = new byte[] { 2 },
[0x0298] = new byte[1] { 0 },
[0x0299] = new byte[] { 2 },
[0x029A] = new byte[] { 2, 2 },
[0x029B] = new byte[] { 2, 2, 2, 2 },
[0x029C] = new byte[] { 1, 2 },
[0x029D] = new byte[] { 2, 2 },
[0x029E] = new byte[] { 2, 2 },
[0x029F] = new byte[1] { 0 },
[0x02A0] = new byte[] { 2, 2, 2 },
[0x02A1] = new byte[] { 2, 2, 2, 2, 2 },
[0x02A2] = new byte[] { 2, 2 },
[0x02A3] = new byte[] { 2, 2, 2, 2 },
[0x02A4] = new byte[] { 2, 2 },
[0x02A5] = new byte[1] { 0 },
[0x02A6] = new byte[] { 2, 2, 2 },
[0x02A7] = new byte[] { 2, 2 },
[0x02A8] = new byte[] { 2, 2 },
[0x02A9] = new byte[] { 2 },
[0x02AA] = new byte[] { 2 },
[0x02AB] = new byte[] { 2 },
[0x02AC] = new byte[1] { 0 },
[0x02AD] = new byte[] { 2, 2 },
[0x02AE] = new byte[1] { 0 },
[0x02AF] = new byte[] { 2 },
[0x02B0] = new byte[] { 2 },
[0x02B1] = new byte[] { 2 },
[0x02B2] = new byte[] { 2, 2 },
[0x02B3] = new byte[] { 2 },
[0x02B4] = new byte[1] { 0 },
[0x02B5] = new byte[] { 2 },
[0x02B6] = new byte[] { 2 },
[0x02B7] = new byte[] { 2 },
[0x02B8] = new byte[] { 2 },
[0x02B9] = new byte[1] { 0 },
[0x02BA] = new byte[] { 1, 2, 2 },
[0x02BB] = new byte[1] { 0 },
[0x02BC] = new byte[] { 2 },
[0x02BD] = new byte[] { 2, 2, 2, 2 },
[0x02BE] = new byte[1] { 0 },
[0x02BF] = new byte[1] { 0 },
[0x02C0] = new byte[] { 2 },
[0x02C1] = new byte[1] { 0 },
[0x02C2] = new byte[] { 2 },
[0x02C3] = new byte[] { 2, 2 },
[0x02C4] = new byte[] { 2 },
[0x02C5] = new byte[1] { 0 },
[0x02C6] = new byte[1] { 0 },
[0x02C7] = new byte[1] { 0 },
[0x02C8] = new byte[] { 1 },
[0x02C9] = new byte[] { 1 },
[0x02CA] = new byte[] { 1 },
[0x02CB] = new byte[1] { 0 },
[0x02CC] = new byte[1] { 0 },
[0x02CD] = new byte[] { 2 },
[0x02CE] = new byte[] { 1, 2 },
[0x02CF] = new byte[] { 2, 2 },
[0x02D0] = new byte[] { 2 },
[0x02D1] = new byte[] { 2 },
[0x02D2] = new byte[] { 1, 1, 2, 2, 2 },
[0x02D3] = new byte[] { 2, 2, 2 },
[0x02D4] = new byte[] { 2, 2 },
[0x02D5] = new byte[] { 1, 2 },
[0x02D6] = new byte[1] { 0 },
[0x02D7] = new byte[] { 2 },
[0x02D8] = new byte[] { 1 },
[0x02D9] = new byte[] { 2 },
[0x02DA] = new byte[] { 2 },
[0x02DB] = new byte[1] { 0 },
[0x02DC] = new byte[] { 1 },
[0x02DD] = new byte[] { 1, 2 },
[0x02DE] = new byte[] { 1 },
[0x02DF] = new byte[] { 2 },
[0x02E0] = new byte[1] { 0 },
[0x02E1] = new byte[] { 2 },
[0x02E2] = new byte[] { 2 },
[0x02E3] = new byte[1] { 0 },
[0x02E4] = new byte[] { 2, 2, 2 },
[0x02E5] = new byte[] { 2, 2, 2, 2 },
[0x02E6] = new byte[] { 2, 2, 2 },
[0x02E7] = new byte[] { 2 },
[0x02E8] = new byte[1] { 0 },
[0x02E9] = new byte[] { 1, 2 },
[0x02EA] = new byte[1] { 0 },
[0x02EB] = new byte[1] { 0 },
[0x02EC] = new byte[] { 2 },
[0x02ED] = new byte[] { 1, 1, 1, 1, 2 },
[0x02EE] = new byte[] { 1, 1, 1, 1, 2 },
[0x02EF] = new byte[] { 2, 2, 2 },
[0x02F0] = new byte[1] { 0 },
[0x02F1] = new byte[] { 2, 2, 2 },
[0x02F2] = new byte[] { 2 },
[0x02F3] = new byte[1] { 0 },
[0x02F4] = new byte[1] { 0 },
[0x02F5] = new byte[] { 2, 2 },
[0x02F6] = new byte[] { 2, 2, 2 },
[0x02F7] = new byte[1] { 0 },
[0x02F8] = new byte[1] { 0 },
[0x02F9] = new byte[] { 2 },
[0x02FA] = new byte[] { 2 },
[0x02FB] = new byte[1] { 0 },
[0x02FC] = new byte[1] { 0 },
[0x02FD] = new byte[1] { 0 },
[0x02FE] = new byte[] { 2, 2 },
[0x02FF] = new byte[] { 2, 2 },
[0x0300] = new byte[1] { 0 },
[0x0301] = new byte[1] { 0 },
[0x0302] = new byte[] { 2 },
[0x0303] = new byte[1] { 0 },
[0x0304] = new byte[] { 2, 2, 2, 2 },
[0x0305] = new byte[] { 2 },
[0x0306] = new byte[] { 2, 2 },
[0x0307] = new byte[] { 2, 2 },
[0x0308] = new byte[1] { 0 },
[0x0309] = new byte[] { 2, 2 },
[0x030A] = new byte[1] { 0 },
[0x030B] = new byte[] { 2, 2 },
[0x030C] = new byte[] { 2 },
[0x030D] = new byte[] { 2 },
[0x030E] = new byte[1] { 0 },
[0x030F] = new byte[] { 1 },
[0x0310] = new byte[] { 2 },
[0x0311] = new byte[] { 2, 1 },
[0x0312] = new byte[] { 1 },
[0x0313] = new byte[] { 2, 2, 2 },
[0x0314] = new byte[] { 1, 2 },
[0x0315] = new byte[] { 1 },
[0x0316] = new byte[] { 2, 2 },
[0x0317] = new byte[] { 2, 2, 2 },
[0x0318] = new byte[] { 2, 2 },
[0x0319] = new byte[] { 2, 2 },
[0x031A] = new byte[] { 2, 2, 2 },
[0x031B] = new byte[] { 2, 2 },
[0x031C] = new byte[1] { 0 },
[0x031D] = new byte[] { 2 },
[0x031E] = new byte[] { 2 },
[0x031F] = new byte[] { 2 },
[0x0320] = new byte[] { 2 },
[0x0321] = new byte[] { 2 },
[0x0322] = new byte[1] { 0 },
[0x0323] = new byte[] { 2, 2 },
[0x0324] = new byte[] { 1 },
[0x0325] = new byte[1] { 0 },
[0x0326] = new byte[1] { 0 },
[0x0327] = new byte[] { 2, 2 },
[0x0328] = new byte[] { 2 },
[0x0329] = new byte[] { 2 },
[0x032A] = new byte[1] { 0 },
[0x032B] = new byte[] { 2, 2 },
[0x032C] = new byte[] { 2, 2, 2, 2 },
[0x032D] = new byte[] { 2 },
[0x032E] = new byte[1] { 0 },
[0x032F] = new byte[] { 2 },
[0x0330] = new byte[1] { 0 },
[0x0331] = new byte[] { 1 },
[0x0332] = new byte[1] { 0 },
[0x0333] = new byte[] { 2 },
[0x0334] = new byte[] { 1 },
[0x0335] = new byte[] { 2, 2 },
[0x0336] = new byte[] { 2 },
[0x0337] = new byte[] { 2 },
[0x0338] = new byte[] { 2 },
[0x0339] = new byte[] { 2, 2 },
[0x033A] = new byte[] { 2 },
[0x033B] = new byte[] { 2, 2 },
[0x033C] = new byte[] { 2, 2, 1 },
[0x033D] = new byte[] { 2 },
[0x033E] = new byte[] { 2 },
[0x033F] = new byte[] { 2 },
[0x0340] = new byte[] { 2 },
[0x0341] = new byte[] { 2 },
[0x0342] = new byte[] { 2 },
[0x0343] = new byte[] { 2 },
[0x0344] = new byte[] { 2 },
[0x0345] = new byte[] { 2 },
[0x0346] = new byte[] { 2, 2 },
[0x0347] = new byte[] { 2 },
[0x0348] = new byte[] { 2, 2 },
[0x0349] = new byte[] { 1 },
[0x034A] = new byte[] { 1 },
[0x034B] = new byte[] { 1, 2 },
[0x034C] = new byte[] { 1, 2 },
[0x034D] = new byte[] { 1, 2 },
[0x034E] = new byte[] { 2, 2, 2 },
[0x034F] = new byte[] { 1 },
[0x0350] = new byte[] { 1, 2 },
[0x0351] = new byte[] { 1, 2 },
[0x0352] = new byte[] { 1, 2 },
[0x0353] = new byte[] { 1 },
[0x0354] = new byte[] { 1, 1 }
};
public static Dictionary<ushort, byte[]> CustomScrCmdParameters = new Dictionary<ushort, byte[]>() {
[0x0357] = new byte[] { 2, 2 },
[0x0360] = new byte[] { 2, 2, 2, 2 },
[0x0361] = new byte[1] { 0 },
[0x0362] = new byte[1] { 0 },
[0x0363] = new byte[1] { 0 },
[0x0364] = new byte[] { 2, 2, 2, 2, 2, 2, 2 },
[0x0365] = new byte[1] { 0 },
[0x0366] = new byte[] { 2, 2 },
[0x036A] = new byte[] { 2, 2, 2, 2, 2, 2 },
[0x036B] = new byte[] { 2, 2, 2, 2, 2 },
[0x036C] = new byte[] { 2, 2, 2, 2, 2},
[0x036D] = new byte[] { 2, 2 },
[0x036E] = new byte[] { 1, 2 },
[0x036F] = new byte[] { 2, 2 },
[0x0370] = new byte[] { 2 },
[0x0371] = new byte[] { 2 }
};
}
public static class System {
public static Dictionary<string, uint> headerOffsetsDict = new Dictionary<string, uint>() {
["ADAE"] = 0xEEDBC,
["APAE"] = 0xEEDBC,
["ADAS"] = 0xEEE08,
["APAS"] = 0xEEE08,
["ADAI"] = 0xEED70,
["APAI"] = 0xEED70,
["ADAF"] = 0xEEDFC,
["APAF"] = 0xEEDFC,
["ADAD"] = 0xEEDCC,
["APAD"] = 0xEEDCC,
["ADAJ"] = 0xF0C28,
["APAJ"] = 0xF0C28,
["CPUE"] = 0xE601C,
["CPUS"] = 0xE60B0,
["CPUI"] = 0xE6038,
["CPUF"] = 0xE60A4,
["CPUD"] = 0xE6074,
["CPUJ"] = 0xE56F0,
["IPKE"] = 0xF6BE0,
["IPGE"] = 0xF6BE0,
["IPKS"] = 0xF6BC8,
["IPGS"] = 0xF6BD0,
["IPKI"] = 0xF6B58,
["IPGI"] = 0xF6B58,
["IPKF"] = 0xF6BC4,
["IPGF"] = 0xF6BC4,
["IPKD"] = 0xF6B94,
["IPGD"] = 0xF6B94,
["IPKJ"] = 0xF6390,
["IPGJ"] = 0xF6390
};
public static Dictionary<string, string> versionsDict = new Dictionary<string, string>() {
["ADAE"] = "D",
["ADAS"] = "D",
["ADAI"] = "D",
["ADAF"] = "D",
["ADAD"] = "D",
["ADAJ"] = "D",
["APAE"] = "P",
["APAS"] = "P",
["APAI"] = "P",
["APAF"] = "P",
["APAD"] = "P",
["APAJ"] = "P",
["CPUE"] = "Plat",
["CPUS"] = "Plat",
["CPUI"] = "Plat",
["CPUF"] = "Plat",
["CPUD"] = "Plat",
["CPUJ"] = "Plat",
["CPUP"] = "Plat",
["IPKE"] = "HG",
["IPKS"] = "HG",
["IPKI"] = "HG",
["IPKF"] = "HG",
["IPKD"] = "HG",
["IPKJ"] = "HG",
["IPGE"] = "SS",
["IPGS"] = "SS",
["IPGI"] = "SS",
["IPGF"] = "SS",
["IPGD"] = "SS",
["IPGJ"] = "SS"
};
public static List<string> MapCollisionPainters = new List<string>() {
"Walkable",
"Blocked",
"Grass Sound",
};
public static List<string> MapCollisionTypePainters = new List<string>() {
"[00] None",
"[02] Tall Grass (Wild)",
"[03] Very Tall Grass (Wild)",
"[06] Tree Headbutt (HGSS)",
"[08] Cave Floor",
"[0B] Old Château floor",
"[0C] Ground Mountain",
"[10] River Water (Wild)",
"[11] Whirlpool (HGSS)",
"[13] Waterfall",
"[15] Sea Water (Wild)",
"[16] Puddle",
"[17] Shallow Walkable water",
"[1D] Puddle (No Splashing)",
"[20] Ice",
"[21] Sand",
"[22] Cave Underwater",
"[24] Safari Zone Border",
"[2C] Magma",
"[2D] Reflection",
"[30] Block Right",
"[31] Block Left",
"[32] Block Up",
"[33] Block Down",
"[34] Block Right & Up",
"[35] Block Left & Up",
"[36] Block Right & Down",
"[37] Block Left & Down",
"[38] Jump Right",
"[39] Jump Left",
"[3A] Jump Up (Broken in HGSS)",
"[3B] Jump Down",
"[3C] Ladder front",
"[3D] Ladder back",
"[3E] Ladder down",
"[3F] Jump Corner DownLeft",
"[40] Slide Right",
"[41] Slide Left",
"[42] Slide Up",
"[43] Slide Down",
"[49] Block Down & Up",
"[4A] Block Left & Right",
"[4B] Horiz Rock Climb",
"[4C] Vert Rock Climb",
"[4D] Stop Sliding",
"[5A] Jump Up Two Tiles",
"[5B] Jump Down Two Tiles",
"[5C] Jump Left Two Tiles",
"[5D] Jump Right Two Tiles",
"[5E] Stairs Warp (Right)",
"[5F] Stairs Warp (Left)",
"[62] Warp Entrance (Right)",
"[63] Warp Entrance (Left)",
"[64] Warp Entrance (Up)",
"[65] Warp Entrance (Down)",
"[67] Warp Panel",
"[69] Door",
"[6A] Automatic stairs Down right",
"[6B] Automatic stairs Up right",
"[6C] Warp Right",
"[6D] Warp Left",
"[6E] Warp Up",
"[6F] Warp Down",
"[70] Bridge Start",
"[71] Bridge Middle",
"[72] Bridge Over Cave",
"[73] Bridge Over Water",
"[74] Bridge Over Sand",
"[75] Bridge Over Snow",
"[76] Vertical bike bridge",
"[77] Vertical bridge (ground enc)",
"[78] Vertical bike bridge over water",
"[79] Vertical bike bridge over sand",
"[7A] Horizontal bike bridge",
"[7B] Horizontal bike bridge over ground encounters",
"[7C] Horizontal bike bridge over water",
"[7D] Horizontal bike bridge over sand",
"[80] Table",
"[83] Storage PC",
"[85] Open TownMap",
"[86] TV",
"[A0] Farm Land",
"[A1] Deep Snow",
"[A2] Very Deep Snow",
"[A3] Ultra Deep Snow",
"[A4] Mud",
"[A5] Deep Mud",
"[A6] Mud Grass 1",
"[A7] Mud Grass 2",
"[A8] Snow",
"[A9] Snow with Shadows",
"[D5] Bridge (Vertical)",
"[D5] Bridge (Horizontal)",
"[D7] Bike Jump Left",
"[D8] Bike Jump Right",
"[D9] Bike Slope Top",
"[DA] Bike Slope Bottom",
"[DB] Bike parking",
"[E0] Small Bookshelf 1",
"[E1] Large Bookshelf 1",
"[E2] Large Bookshelf 2",
"[E3] Pot",
"[E4] Trash Can",
"[E5] Store Shelf 1",
"[E6] Blueprint",
"[EA] Small Bookshelf 2",
"[EB] Store Shelf 2",
"[EC] Store Shelf 3",
"[FF] No Attribute"
};
public static Dictionary<ushort, string> pokeNames = new Dictionary<ushort, string>() {
[1] = "Bulbasaur",
[2] = "Ivysaur",
[3] = "Venusaur",
[4] = "Charmander",
[5] = "Charmeleon",
[6] = "Charizard",
[7] = "Squirtle",
[8] = "Wartortle",
[9] = "Blastoise",
[10] = "Caterpie",
[11] = "Metapod",
[12] = "Butterfree",
[13] = "Weedle",
[14] = "Kakuna",
[15] = "Beedrill",
[16] = "Pidgey",
[17] = "Pidgeotto",
[18] = "Pidgeot",
[19] = "Rattata",
[20] = "Raticate",
[21] = "Spearow",
[22] = "Fearow",
[23] = "Ekans",
[24] = "Arbok",
[25] = "Pikachu",
[26] = "Raichu",
[27] = "Sandshrew",
[28] = "Sandslash",
[29] = "Nidoran♀",
[30] = "Nidorina",
[31] = "Nidoqueen",
[32] = "Nidoran♂",
[33] = "Nidorino",
[34] = "Nidoking",
[35] = "Clefairy",
[36] = "Clefable",
[37] = "Vulpix",
[38] = "Ninetales",
[39] = "Jigglypuff",
[40] = "Wigglytuff",
[41] = "Zubat",
[42] = "Golbat",
[43] = "Oddish",
[44] = "Gloom",
[45] = "Vileplume",
[46] = "Paras",
[47] = "Parasect",
[48] = "Venonat",
[49] = "Venomoth",
[50] = "Diglett",
[51] = "Dugtrio",
[52] = "Meowth",
[53] = "Persian",
[54] = "Psyduck",
[55] = "Golduck",
[56] = "Mankey",
[57] = "Primeape",
[58] = "Growlithe",
[59] = "Arcanine",
[60] = "Poliwag",
[61] = "Poliwhirl",
[62] = "Poliwrath",
[63] = "Abra",
[64] = "Kadabra",
[65] = "Alakazam",
[66] = "Machop",
[67] = "Machoke",
[68] = "Machamp",
[69] = "Bellsprout",
[70] = "Weepinbell",
[71] = "Victreebel",
[72] = "Tentacool",
[73] = "Tentacruel",
[74] = "Geodude",
[75] = "Graveler",
[76] = "Golem",
[77] = "Ponyta",
[78] = "Rapidash",
[79] = "Slowpoke",
[80] = "Slowbro",
[81] = "Magnemite",
[82] = "Magneton",
[83] = "Farfetchd",
[84] = "Doduo",
[85] = "Dodrio",
[86] = "Seel",
[87] = "Dewgong",
[88] = "Grimer",
[89] = "Muk",
[90] = "Shellder",
[91] = "Cloyster",
[92] = "Gastly",
[93] = "Haunter",
[94] = "Gengar",
[95] = "Onix",
[96] = "Drowzee",
[97] = "Hypno",
[98] = "Krabby",
[99] = "Kingler",
[100] = "Voltorb",
[101] = "Electrode",
[102] = "Exeggcute",
[103] = "Exeggutor",
[104] = "Cubone",
[105] = "Marowak",
[106] = "Hitmonlee",
[107] = "Hitmonchan",
[108] = "Lickitung",
[109] = "Koffing",
[110] = "Weezing",
[111] = "Rhyhorn",
[112] = "Rhydon",
[113] = "Chansey",
[114] = "Tangela",
[115] = "Kangaskhan",
[116] = "Horsea",
[117] = "Seadra",
[118] = "Goldeen",
[119] = "Seaking",
[120] = "Staryu",
[121] = "Starmie",
[122] = "Mr. Mime",
[123] = "Scyther",
[124] = "Jynx",
[125] = "Electabuzz",
[126] = "Magmar",
[127] = "Pinsir",
[128] = "Tauros",
[129] = "Magikarp",
[130] = "Gyarados",
[131] = "Lapras",
[132] = "Ditto",
[133] = "Eevee",
[134] = "Vaporeon",
[135] = "Jolteon",
[136] = "Flareon",
[137] = "Porygon",
[138] = "Omanyte",
[139] = "Omastar",
[140] = "Kabuto",
[141] = "Kabutops",
[142] = "Aerodactyl",
[143] = "Snorlax",
[144] = "Articuno",
[145] = "Zapdos",
[146] = "Moltres",
[147] = "Dratini",
[148] = "Dragonair",
[149] = "Dragonite",
[150] = "Mewtwo",
[151] = "Mew",
[152] = "Chikorita",
[153] = "Bayleef",
[154] = "Meganium",
[155] = "Cyndaquil",
[156] = "Quilava",
[157] = "Typhlosion",
[158] = "Totodile",
[159] = "Croconaw",
[160] = "Feraligatr",
[161] = "Sentret",
[162] = "Furret",
[163] = "Hoothoot",
[164] = "Noctowl",
[165] = "Ledyba",
[166] = "Ledian",
[167] = "Spinarak",
[168] = "Ariados",
[169] = "Crobat",
[170] = "Chinchou",
[171] = "Lanturn",
[172] = "Pichu",
[173] = "Cleffa",
[174] = "Igglybuff",
[175] = "Togepi",
[176] = "Togetic",
[177] = "Natu",
[178] = "Xatu",
[179] = "Mareep",
[180] = "Flaaffy",
[181] = "Ampharos",
[182] = "Bellossom",
[183] = "Marill",
[184] = "Azumarill",
[185] = "Sudowoodo",
[186] = "Politoed",
[187] = "Hoppip",
[188] = "Skiploom",
[189] = "Jumpluff",
[190] = "Aipom",
[191] = "Sunkern",
[192] = "Sunflora",
[193] = "Yanma",
[194] = "Wooper",
[195] = "Quagsire",
[196] = "Espeon",
[197] = "Umbreon",
[198] = "Murkrow",
[199] = "Slowking",
[200] = "Misdreavus",
[201] = "Unown",
[202] = "Wobbuffet",
[203] = "Girafarig",
[204] = "Pineco",
[205] = "Forretress",
[206] = "Dunsparce",
[207] = "Gligar",
[208] = "Steelix",
[209] = "Snubbull",
[210] = "Granbull",
[211] = "Qwilfish",
[212] = "Scizor",
[213] = "Shuckle",
[214] = "Heracross",
[215] = "Sneasel",
[216] = "Teddiursa",
[217] = "Ursaring",
[218] = "Slugma",
[219] = "Magcargo",
[220] = "Swinub",
[221] = "Piloswine",
[222] = "Corsola",
[223] = "Remoraid",
[224] = "Octillery",
[225] = "Delibird",
[226] = "Mantine",
[227] = "Skarmory",
[228] = "Houndour",
[229] = "Houndoom",
[230] = "Kingdra",
[231] = "Phanpy",
[232] = "Donphan",
[233] = "Porygon2",
[234] = "Stantler",
[235] = "Smeargle",
[236] = "Tyrogue",
[237] = "Hitmontop",
[238] = "Smoochum",
[239] = "Elekid",
[240] = "Magby",
[241] = "Miltank",
[242] = "Blissey",
[243] = "Raikou",
[244] = "Entei",
[245] = "Suicune",
[246] = "Larvitar",
[247] = "Pupitar",
[248] = "Tyranitar",
[249] = "Lugia",
[250] = "Ho-oh",
[251] = "Celebi",
[252] = "Treecko",
[253] = "Grovyle",
[254] = "Sceptile",
[255] = "Torchic",
[256] = "Combusken",
[257] = "Blaziken",
[258] = "Mudkip",
[259] = "Marshtomp",
[260] = "Swampert",
[261] = "Poochyena",
[262] = "Mightyena",
[263] = "Zigzagoon",
[264] = "Linoone",
[265] = "Wurmple",
[266] = "Silcoon",
[267] = "Beautifly",
[268] = "Cascoon",
[269] = "Dustox",
[270] = "Lotad",
[271] = "Lombre",
[272] = "Ludicolo",
[273] = "Seedot",
[274] = "Nuzleaf",
[275] = "Shiftry",
[276] = "Taillow",
[277] = "Swellow",
[278] = "Wingull",
[279] = "Pelipper",
[280] = "Ralts",
[281] = "Kirlia",
[282] = "Gardevoir",
[283] = "Surskit",
[284] = "Masquerain",
[285] = "Shroomish",
[286] = "Breloom",
[287] = "Slakoth",
[288] = "Vigoroth",
[289] = "Slaking",
[290] = "Nincada",
[291] = "Ninjask",
[292] = "Shedinja",
[293] = "Whismur",
[294] = "Loudred",
[295] = "Exploud",
[296] = "Makuhita",
[297] = "Hariyama",
[298] = "Azurill",
[299] = "Nosepass",
[300] = "Skitty",
[301] = "Delcatty",
[302] = "Sableye",
[303] = "Mawile",
[304] = "Aron",
[305] = "Lairon",
[306] = "Aggron",
[307] = "Meditite",
[308] = "Medicham",
[309] = "Electrike",
[310] = "Manectric",
[311] = "Plusle",
[312] = "Minun",
[313] = "Volbeat",
[314] = "Illumise",
[315] = "Roselia",
[316] = "Gulpin",
[317] = "Swalot",
[318] = "Carvanha",
[319] = "Sharpedo",
[320] = "Wailmer",
[321] = "Wailord",
[322] = "Numel",
[323] = "Camerupt",
[324] = "Torkoal",
[325] = "Spoink",
[326] = "Grumpig",
[327] = "Spinda",
[328] = "Trapinch",
[329] = "Vibrava",
[330] = "Flygon",
[331] = "Cacnea",
[332] = "Cacturne",
[333] = "Swablu",
[334] = "Altaria",
[335] = "Zangoose",
[336] = "Seviper",
[337] = "Lunatone",
[338] = "Solrock",
[339] = "Barboach",
[340] = "Whiscash",
[341] = "Corphish",
[342] = "Crawdaunt",
[343] = "Baltoy",
[344] = "Claydol",
[345] = "Lileep",
[346] = "Cradily",
[347] = "Anorith",
[348] = "Armaldo",
[349] = "Feebas",
[350] = "Milotic",
[351] = "Castform",
[352] = "Kecleon",
[353] = "Shuppet",
[354] = "Banette",
[355] = "Duskull",
[356] = "Dusclops",
[357] = "Tropius",
[358] = "Chimecho",
[359] = "Absol",
[360] = "Wynaut",
[361] = "Snorunt",
[362] = "Glalie",
[363] = "Spheal",
[364] = "Sealeo",
[365] = "Walrein",
[366] = "Clamperl",
[367] = "Huntail",
[368] = "Gorebyss",
[369] = "Relicanth",
[370] = "Luvdisc",
[371] = "Bagon",
[372] = "Shelgon",
[373] = "Salamence",
[374] = "Beldum",
[375] = "Metang",
[376] = "Metagross",
[377] = "Regirock",
[378] = "Regice",
[379] = "Registeel",
[380] = "Latias",
[381] = "Latios",
[382] = "Kyogre",
[383] = "Groudon",
[384] = "Rayquaza",
[385] = "Jirachi",
[386] = "Deoxys",
[387] = "Turtwig",
[388] = "Grotle",
[389] = "Torterra",
[390] = "Chimchar",
[391] = "Monferno",
[392] = "Infernape",
[393] = "Piplup",
[394] = "Prinplup",
[395] = "Empoleon",
[396] = "Starly",
[397] = "Staravia",
[398] = "Staraptor",
[399] = "Bidoof",
[400] = "Bibarel",
[401] = "Kricketot",
[402] = "Kricketune",
[403] = "Shinx",
[404] = "Luxio",
[405] = "Luxray",
[406] = "Budew",
[407] = "Roserade",
[408] = "Cranidos",
[409] = "Rampardos",
[410] = "Shieldon",
[411] = "Bastiodon",
[412] = "Burmy",
[413] = "Wormadam",
[414] = "Mothim",
[415] = "Combee",
[416] = "Vespiquen",
[417] = "Pachirisu",
[418] = "Buizel",
[419] = "Floatzel",
[420] = "Cherubi",
[421] = "Cherrim",
[422] = "Shellos",
[423] = "Gastrodon",
[424] = "Ambipom",
[425] = "Drifloon",
[426] = "Drifblim",
[427] = "Buneary",
[428] = "Lopunny",
[429] = "Mismagius",
[430] = "Honchkrow",
[431] = "Glameow",
[432] = "Purugly",
[433] = "Chingling",
[434] = "Stunky",
[435] = "Skuntank",
[436] = "Bronzor",
[437] = "Bronzong",
[438] = "Bonsly",
[439] = "Mime Jr.",
[440] = "Happiny",
[441] = "Chatot",
[442] = "Spiritomb",
[443] = "Gible",
[444] = "Gabite",
[445] = "Garchomp",
[446] = "Munchlax",
[447] = "Riolu",
[448] = "Lucario",
[449] = "Hippopotas",
[450] = "Hippowdon",
[451] = "Skorupi",
[452] = "Drapion",
[453] = "Croagunk",
[454] = "Toxicroak",
[455] = "Carnivine",
[456] = "Finneon",
[457] = "Lumineon",
[458] = "Mantyke",
[459] = "Snover",
[460] = "Abomasnow",
[461] = "Weavile",
[462] = "Magnezone",
[463] = "Lickilicky",
[464] = "Rhyperior",
[465] = "Tangrowth",
[466] = "Electivire",
[467] = "Magmortar",
[468] = "Togekiss",
[469] = "Yanmega",
[470] = "Leafeon",
[471] = "Glaceon",
[472] = "Gliscor",
[473] = "Mamoswine",
[474] = "Porygon-z",
[475] = "Gallade",
[476] = "Probopass",
[477] = "Dusknoir",
[478] = "Froslass",
[479] = "Rotom",
[480] = "Uxie",
[481] = "Mesprit",
[482] = "Azelf",
[483] = "Dialga",
[484] = "Palkia",
[485] = "Heatran",
[486] = "Regigigas",
[487] = "Giratina",
[488] = "Cresselia",
[489] = "Phione",
[490] = "Manaphy",
[491] = "Darkrai",
[492] = "Shaymin",
[493] = "Arceus",
[494] = "Egg",
[495] = "Bad Egg"
};
public static class MatrixCellColors {
/* Initialize dictionary of colors corresponding to border maps in the matrix editor */
public static Dictionary<List<uint>, (Color back, Color fore)> DPPtmatrixColorsDict = new Dictionary<List<uint>, (Color back, Color fore)> {
[new List<uint> { 173, 176, 177, 179 }] = (Color.ForestGreen, Color.White),
[new List<uint> { 174 }] = (Color.SteelBlue, Color.White),
[new List<uint> { 175 }] = (Color.Sienna, Color.White),
[new List<uint> { 178 }] = (Color.PowderBlue, Color.Black),
[new List<uint> { Matrix.EMPTY }] = (Color.Black, Color.White)
};
public static Dictionary<List<uint>, (Color back, Color fore)> HGSSmatrixColorsDict = new Dictionary<List<uint>, (Color back, Color fore)> {
[new List<uint> { 208 }] = (Color.ForestGreen, Color.White),
[new List<uint> { 209 }] = (Color.SteelBlue, Color.White),
[new List<uint> { 210 }] = (Color.Sienna, Color.White),
[new List<uint> { Matrix.EMPTY }] = (Color.Black, Color.White)
};
public static Dictionary<List<uint>, (Color back, Color fore)> GenericMatrixColorsDict = new Dictionary<List<uint>, (Color back, Color fore)> {
[new List<uint> { 203 }] = (Color.FromArgb(80, 200, 16), Color.White),
[new List<uint> { 204, 209 }] = (Color.SteelBlue, Color.White),
[new List<uint> { 205, 206 }] = (Color.DarkGreen, Color.White),
[new List<uint> { 207, 208 }] = (Color.ForestGreen, Color.White),
[new List<uint> { 210 }] = (Color.Sienna, Color.White),
[new List<uint> { Matrix.EMPTY }] = (Color.Black, Color.White)
};
}
public static class AreaPics {
public static Dictionary<int, string> hgssAreaPicDict = new Dictionary<int, string>() {
[0] = "hgsswood",
[1] = "hgssgray",
[2] = "hgsswall",
[3] = "empty",
[4] = "hgsstown",
[5] = "hgsscave",
[6] = "hgssfield",
[7] = "hgsslake",
[8] = "hgssforest",
[9] = "hgsswater",
};
}
public static class WeatherPics {
public static Dictionary<byte[], string> dpWeatherImageDict = new Dictionary<byte[], string>() {
[new byte[] { 0, 8, 13, 18, 19, 20, 23, 25 }] = "dpnormal",
[new byte[] { 1 }] = "dpcloudy",
[new byte[] { 2 }] = "dprain",
[new byte[] { 3 }] = "dpheavyrain",
[new byte[] { 4, 24}] = "dpthunderstorm",
[new byte[] { 5, 28 }] = "dpsnowslow",
[new byte[] { 6, 21, 26, 27 }] = "dpdiamondsnow",
[new byte[] { 7 }] = "dpblizzard",
[new byte[] { 9 }] = "dpsandfall",
[new byte[] { 10 }] = "dpsandstorm",
[new byte[] { 11 }] = "dphail",
[new byte[] { 12 }] = "dprocksascending",
[new byte[] { 14 }] = "dpfog",
[new byte[] { 15 }] = "dpfog", //deep fog
[new byte[] { 16 }] = "dpdark",
[new byte[] { 17 }] = "dplightning",
[new byte[] { 22 }] = "dplightsandstorm"
};
public static Dictionary<byte[], string> ptWeatherImageDict = new Dictionary<byte[], string>() {
[new byte[] { 0, 8, 13, 20, 31, 33 } ] = "ptnormal",
[new byte[] { 1 } ] = "ptcloudy",
[new byte[] { 2, 32 } ] = "ptrain",
[new byte[] { 3 } ] = "ptheavyrain",
[new byte[] { 4 } ] = "ptthunderstorm",
[new byte[] { 5, 36 } ] = "ptsnowslow",
[new byte[] { 6, 21, 34, 35 } ] = "ptdiamondsnow",
[new byte[] { 7 } ] = "ptblizzard",
[new byte[] { 9 } ] = "ptsandfall",
[new byte[] { 10 } ] = "ptsandstorm",
[new byte[] { 11 } ] = "pthail",
[new byte[] { 12 } ] = "ptrocksascending",
[new byte[] { 14, 15 } ] = "ptfog",
[new byte[] { 16 } ] = "ptdark",
[new byte[] { 17 } ] = "ptlightning",
[new byte[] { 18 }] = "ptlightfog",
[new byte[] { 19 }] = "ptheavyfog",
[new byte[] { 22 }] = "ptlightsandstorm",
[new byte[] { 23 }] = "ptforestweather",
[new byte[] { 24, 25 }] = "ptspotlight",
[new byte[] { 26 }] = "ptdarkfog",
[new byte[] { 27 }] = "ptgreenish",
[new byte[] { 28 }] = "ptredish",
[new byte[] { 29 }] = "ptblueish",
[new byte[] { 30 }] = "ptdim",
};
public static Dictionary<byte[], string> hgssweatherImageDict = new Dictionary<byte[], string>() {
[new byte[] { 0, 1 }] = "hgssnormal",
[new byte[] { 2, 3, 4, 5, 6, 7, 8 }] = "hgssrain",
[new byte[] { 9, 10, 11, 12, 13, 15 }] = "hgsssnow",
[new byte[] { 14 }] = "hgssnormal", //sandstorm in battle only
[new byte[] { 16, 17 }] = "hgssdiamond",
[new byte[] { 18, 19, 20, 21 }] = "hgssfog",
[new byte[] { 22, 23 }] = "hgssdark",
[new byte[] { 24, 25 }] = "hgssdark2",
[new byte[] { 26 }] = "hgssArcade"
};
}
}
}
}