ref: 427c822910ac429a89518550bdf7b00d8e60a9a9
parent: 2d260da8ec4b133d82b033f6ee23fd900577f24f
parent: 17ab9dc558db716e02d86c48a0682489c499337e
author: Bryan Bishop <[email protected]>
date: Tue Apr 17 18:59:12 EDT 2012
Merge branch 'move-data-to-files' from cnelsonsic
--- /dev/null
+++ b/extras/chars.py
@@ -1,0 +1,274 @@
+# -*- coding: utf-8 -*-
+#this is straight out of ../textpre.py because i'm lazy
+#see jap_chars for overrides if you are in japanese mode?
+chars = {
+ 0x50: "@",
+ 0x54: "#",
+ 0x75: "…",
+
+ 0x79: "┌",
+ 0x7A: "─",
+ 0x7B: "┐",
+ 0x7C: "│",
+ 0x7D: "└",
+ 0x7E: "┘",
+
+ 0x74: "№",
+
+ 0x7F: " ",
+ 0x80: "A",
+ 0x81: "B",
+ 0x82: "C",
+ 0x83: "D",
+ 0x84: "E",
+ 0x85: "F",
+ 0x86: "G",
+ 0x87: "H",
+ 0x88: "I",
+ 0x89: "J",
+ 0x8A: "K",
+ 0x8B: "L",
+ 0x8C: "M",
+ 0x8D: "N",
+ 0x8E: "O",
+ 0x8F: "P",
+ 0x90: "Q",
+ 0x91: "R",
+ 0x92: "S",
+ 0x93: "T",
+ 0x94: "U",
+ 0x95: "V",
+ 0x96: "W",
+ 0x97: "X",
+ 0x98: "Y",
+ 0x99: "Z",
+ 0x9A: "(",
+ 0x9B: ")",
+ 0x9C: ":",
+ 0x9D: ";",
+ 0x9E: "[",
+ 0x9F: "]",
+ 0xA0: "a",
+ 0xA1: "b",
+ 0xA2: "c",
+ 0xA3: "d",
+ 0xA4: "e",
+ 0xA5: "f",
+ 0xA6: "g",
+ 0xA7: "h",
+ 0xA8: "i",
+ 0xA9: "j",
+ 0xAA: "k",
+ 0xAB: "l",
+ 0xAC: "m",
+ 0xAD: "n",
+ 0xAE: "o",
+ 0xAF: "p",
+ 0xB0: "q",
+ 0xB1: "r",
+ 0xB2: "s",
+ 0xB3: "t",
+ 0xB4: "u",
+ 0xB5: "v",
+ 0xB6: "w",
+ 0xB7: "x",
+ 0xB8: "y",
+ 0xB9: "z",
+ 0xC0: "Ä",
+ 0xC1: "Ö",
+ 0xC2: "Ü",
+ 0xC3: "ä",
+ 0xC4: "ö",
+ 0xC5: "ü",
+ 0xD0: "'d",
+ 0xD1: "'l",
+ 0xD2: "'m",
+ 0xD3: "'r",
+ 0xD4: "'s",
+ 0xD5: "'t",
+ 0xD6: "'v",
+ 0xE0: "'",
+ 0xE3: "-",
+ 0xE6: "?",
+ 0xE7: "!",
+ 0xE8: ".",
+ 0xE9: "&",
+ 0xEA: "é",
+ 0xEB: "→",
+ 0xEF: "♂",
+ 0xF0: "¥",
+ 0xF1: "×",
+ 0xF3: "/",
+ 0xF4: ",",
+ 0xF5: "♀",
+ 0xF6: "0",
+ 0xF7: "1",
+ 0xF8: "2",
+ 0xF9: "3",
+ 0xFA: "4",
+ 0xFB: "5",
+ 0xFC: "6",
+ 0xFD: "7",
+ 0xFE: "8",
+ 0xFF: "9",
+}
+
+#override whatever defaults for japanese symbols
+jap_chars = copy(chars)
+jap_chars.update({
+ 0x05: "ガ",
+ 0x06: "ギ",
+ 0x07: "グ",
+ 0x08: "ゲ",
+ 0x09: "ゴ",
+ 0x0A: "ザ",
+ 0x0B: "ジ",
+ 0x0C: "ズ",
+ 0x0D: "ゼ",
+ 0x0E: "ゾ",
+ 0x0F: "ダ",
+ 0x10: "ヂ",
+ 0x11: "ヅ",
+ 0x12: "デ",
+ 0x13: "ド",
+ 0x19: "バ",
+ 0x1A: "ビ",
+ 0x1B: "ブ",
+ 0x1C: "ボ",
+ 0x26: "が",
+ 0x27: "ぎ",
+ 0x28: "ぐ",
+ 0x29: "げ",
+ 0x2A: "ご",
+ 0x2B: "ざ",
+ 0x2C: "じ",
+ 0x2D: "ず",
+ 0x2E: "ぜ",
+ 0x2F: "ぞ",
+ 0x30: "だ",
+ 0x31: "ぢ",
+ 0x32: "づ",
+ 0x33: "で",
+ 0x34: "ど",
+ 0x3A: "ば",
+ 0x3B: "び",
+ 0x3C: "ぶ",
+ 0x3D: "べ",
+ 0x3E: "ぼ",
+ 0x40: "パ",
+ 0x41: "ピ",
+ 0x42: "プ",
+ 0x43: "ポ",
+ 0x44: "ぱ",
+ 0x45: "ぴ",
+ 0x46: "ぷ",
+ 0x47: "ぺ",
+ 0x48: "ぽ",
+ 0x80: "ア",
+ 0x81: "イ",
+ 0x82: "ウ",
+ 0x83: "エ",
+ 0x84: "ォ",
+ 0x85: "カ",
+ 0x86: "キ",
+ 0x87: "ク",
+ 0x88: "ケ",
+ 0x89: "コ",
+ 0x8A: "サ",
+ 0x8B: "シ",
+ 0x8C: "ス",
+ 0x8D: "セ",
+ 0x8E: "ソ",
+ 0x8F: "タ",
+ 0x90: "チ",
+ 0x91: "ツ",
+ 0x92: "テ",
+ 0x93: "ト",
+ 0x94: "ナ",
+ 0x95: "ニ",
+ 0x96: "ヌ",
+ 0x97: "ネ",
+ 0x98: "ノ",
+ 0x99: "ハ",
+ 0x9A: "ヒ",
+ 0x9B: "フ",
+ 0x9C: "ホ",
+ 0x9D: "マ",
+ 0x9E: "ミ",
+ 0x9F: "ム",
+ 0xA0: "メ",
+ 0xA1: "モ",
+ 0xA2: "ヤ",
+ 0xA3: "ユ",
+ 0xA4: "ヨ",
+ 0xA5: "ラ",
+ 0xA6: "ル",
+ 0xA7: "レ",
+ 0xA8: "ロ",
+ 0xA9: "ワ",
+ 0xAA: "ヲ",
+ 0xAB: "ン",
+ 0xAC: "ッ",
+ 0xAD: "ャ",
+ 0xAE: "ュ",
+ 0xAF: "ョ",
+ 0xB0: "ィ",
+ 0xB1: "あ",
+ 0xB2: "い",
+ 0xB3: "う",
+ 0xB4: "え",
+ 0xB5: "お",
+ 0xB6: "か",
+ 0xB7: "き",
+ 0xB8: "く",
+ 0xB9: "け",
+ 0xBA: "こ",
+ 0xBB: "さ",
+ 0xBC: "し",
+ 0xBD: "す",
+ 0xBE: "せ",
+ 0xBF: "そ",
+ 0xC0: "た",
+ 0xC1: "ち",
+ 0xC2: "つ",
+ 0xC3: "て",
+ 0xC4: "と",
+ 0xC5: "な",
+ 0xC6: "に",
+ 0xC7: "ぬ",
+ 0xC8: "ね",
+ 0xC9: "の",
+ 0xCA: "は",
+ 0xCB: "ひ",
+ 0xCC: "ふ",
+ 0xCD: "へ",
+ 0xCE: "ほ",
+ 0xCF: "ま",
+ 0xD0: "み",
+ 0xD1: "む",
+ 0xD2: "め",
+ 0xD3: "も",
+ 0xD4: "や",
+ 0xD5: "ゆ",
+ 0xD6: "よ",
+ 0xD7: "ら",
+ 0xD8: "り",
+ 0xD9: "る",
+ 0xDA: "れ",
+ 0xDB: "ろ",
+ 0xDC: "わ",
+ 0xDD: "を",
+ 0xDE: "ん",
+ 0xDF: "っ",
+ 0xE0: "ゃ",
+ 0xE1: "ゅ",
+ 0xE2: "ょ",
+ 0xE3: "ー",
+})
+
+#some of the japanese characters can probably fit into the english table
+#without overriding any of the other mappings.
+for key, value in jap_chars.items():
+ if key not in chars.keys():
+ chars[key] = value
+
--- a/extras/crystal.py
+++ b/extras/crystal.py
@@ -55,279 +55,9 @@
#this doesn't do anything but is still used in TextScript
constant_abbreviation_bytes = {}
-#this is straight out of ../textpre.py because i'm lazy
-#see jap_chars for overrides if you are in japanese mode?
-chars = {
- 0x50: "@",
- 0x54: "#",
- 0x75: "…",
+# Import the characters from its module.
+from chars import chars, jap_chars
- 0x79: "┌",
- 0x7A: "─",
- 0x7B: "┐",
- 0x7C: "│",
- 0x7D: "└",
- 0x7E: "┘",
-
- 0x74: "№",
-
- 0x7F: " ",
- 0x80: "A",
- 0x81: "B",
- 0x82: "C",
- 0x83: "D",
- 0x84: "E",
- 0x85: "F",
- 0x86: "G",
- 0x87: "H",
- 0x88: "I",
- 0x89: "J",
- 0x8A: "K",
- 0x8B: "L",
- 0x8C: "M",
- 0x8D: "N",
- 0x8E: "O",
- 0x8F: "P",
- 0x90: "Q",
- 0x91: "R",
- 0x92: "S",
- 0x93: "T",
- 0x94: "U",
- 0x95: "V",
- 0x96: "W",
- 0x97: "X",
- 0x98: "Y",
- 0x99: "Z",
- 0x9A: "(",
- 0x9B: ")",
- 0x9C: ":",
- 0x9D: ";",
- 0x9E: "[",
- 0x9F: "]",
- 0xA0: "a",
- 0xA1: "b",
- 0xA2: "c",
- 0xA3: "d",
- 0xA4: "e",
- 0xA5: "f",
- 0xA6: "g",
- 0xA7: "h",
- 0xA8: "i",
- 0xA9: "j",
- 0xAA: "k",
- 0xAB: "l",
- 0xAC: "m",
- 0xAD: "n",
- 0xAE: "o",
- 0xAF: "p",
- 0xB0: "q",
- 0xB1: "r",
- 0xB2: "s",
- 0xB3: "t",
- 0xB4: "u",
- 0xB5: "v",
- 0xB6: "w",
- 0xB7: "x",
- 0xB8: "y",
- 0xB9: "z",
- 0xC0: "Ä",
- 0xC1: "Ö",
- 0xC2: "Ü",
- 0xC3: "ä",
- 0xC4: "ö",
- 0xC5: "ü",
- 0xD0: "'d",
- 0xD1: "'l",
- 0xD2: "'m",
- 0xD3: "'r",
- 0xD4: "'s",
- 0xD5: "'t",
- 0xD6: "'v",
- 0xE0: "'",
- 0xE3: "-",
- 0xE6: "?",
- 0xE7: "!",
- 0xE8: ".",
- 0xE9: "&",
- 0xEA: "é",
- 0xEB: "→",
- 0xEF: "♂",
- 0xF0: "¥",
- 0xF1: "×",
- 0xF3: "/",
- 0xF4: ",",
- 0xF5: "♀",
- 0xF6: "0",
- 0xF7: "1",
- 0xF8: "2",
- 0xF9: "3",
- 0xFA: "4",
- 0xFB: "5",
- 0xFC: "6",
- 0xFD: "7",
- 0xFE: "8",
- 0xFF: "9",
-}
-
-#override whatever defaults for japanese symbols
-jap_chars = copy(chars)
-jap_chars.update({
- 0x05: "ガ",
- 0x06: "ギ",
- 0x07: "グ",
- 0x08: "ゲ",
- 0x09: "ゴ",
- 0x0A: "ザ",
- 0x0B: "ジ",
- 0x0C: "ズ",
- 0x0D: "ゼ",
- 0x0E: "ゾ",
- 0x0F: "ダ",
- 0x10: "ヂ",
- 0x11: "ヅ",
- 0x12: "デ",
- 0x13: "ド",
- 0x19: "バ",
- 0x1A: "ビ",
- 0x1B: "ブ",
- 0x1C: "ボ",
- 0x26: "が",
- 0x27: "ぎ",
- 0x28: "ぐ",
- 0x29: "げ",
- 0x2A: "ご",
- 0x2B: "ざ",
- 0x2C: "じ",
- 0x2D: "ず",
- 0x2E: "ぜ",
- 0x2F: "ぞ",
- 0x30: "だ",
- 0x31: "ぢ",
- 0x32: "づ",
- 0x33: "で",
- 0x34: "ど",
- 0x3A: "ば",
- 0x3B: "び",
- 0x3C: "ぶ",
- 0x3D: "べ",
- 0x3E: "ぼ",
- 0x40: "パ",
- 0x41: "ピ",
- 0x42: "プ",
- 0x43: "ポ",
- 0x44: "ぱ",
- 0x45: "ぴ",
- 0x46: "ぷ",
- 0x47: "ぺ",
- 0x48: "ぽ",
- 0x80: "ア",
- 0x81: "イ",
- 0x82: "ウ",
- 0x83: "エ",
- 0x84: "ォ",
- 0x85: "カ",
- 0x86: "キ",
- 0x87: "ク",
- 0x88: "ケ",
- 0x89: "コ",
- 0x8A: "サ",
- 0x8B: "シ",
- 0x8C: "ス",
- 0x8D: "セ",
- 0x8E: "ソ",
- 0x8F: "タ",
- 0x90: "チ",
- 0x91: "ツ",
- 0x92: "テ",
- 0x93: "ト",
- 0x94: "ナ",
- 0x95: "ニ",
- 0x96: "ヌ",
- 0x97: "ネ",
- 0x98: "ノ",
- 0x99: "ハ",
- 0x9A: "ヒ",
- 0x9B: "フ",
- 0x9C: "ホ",
- 0x9D: "マ",
- 0x9E: "ミ",
- 0x9F: "ム",
- 0xA0: "メ",
- 0xA1: "モ",
- 0xA2: "ヤ",
- 0xA3: "ユ",
- 0xA4: "ヨ",
- 0xA5: "ラ",
- 0xA6: "ル",
- 0xA7: "レ",
- 0xA8: "ロ",
- 0xA9: "ワ",
- 0xAA: "ヲ",
- 0xAB: "ン",
- 0xAC: "ッ",
- 0xAD: "ャ",
- 0xAE: "ュ",
- 0xAF: "ョ",
- 0xB0: "ィ",
- 0xB1: "あ",
- 0xB2: "い",
- 0xB3: "う",
- 0xB4: "え",
- 0xB5: "お",
- 0xB6: "か",
- 0xB7: "き",
- 0xB8: "く",
- 0xB9: "け",
- 0xBA: "こ",
- 0xBB: "さ",
- 0xBC: "し",
- 0xBD: "す",
- 0xBE: "せ",
- 0xBF: "そ",
- 0xC0: "た",
- 0xC1: "ち",
- 0xC2: "つ",
- 0xC3: "て",
- 0xC4: "と",
- 0xC5: "な",
- 0xC6: "に",
- 0xC7: "ぬ",
- 0xC8: "ね",
- 0xC9: "の",
- 0xCA: "は",
- 0xCB: "ひ",
- 0xCC: "ふ",
- 0xCD: "へ",
- 0xCE: "ほ",
- 0xCF: "ま",
- 0xD0: "み",
- 0xD1: "む",
- 0xD2: "め",
- 0xD3: "も",
- 0xD4: "や",
- 0xD5: "ゆ",
- 0xD6: "よ",
- 0xD7: "ら",
- 0xD8: "り",
- 0xD9: "る",
- 0xDA: "れ",
- 0xDB: "ろ",
- 0xDC: "わ",
- 0xDD: "を",
- 0xDE: "ん",
- 0xDF: "っ",
- 0xE0: "ゃ",
- 0xE1: "ゅ",
- 0xE2: "ょ",
- 0xE3: "ー",
-})
-
-#some of the japanese characters can probably fit into the english table
-#without overriding any of the other mappings.
-for key, value in jap_chars.items():
- if key not in chars.keys():
- chars[key] = value
-
class Size():
"""a simple way to track whether or not a size
includes the first value or not, like for
@@ -1333,259 +1063,7 @@
print groups
print maps
-pokemon_constants = {
-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_F",
-30: "NIDORINA",
-31: "NIDOQUEEN",
-32: "NIDORAN_M",
-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: "FARFETCH_D",
-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",
-}
+from pokemon_constants import pokemon_constants
def get_pokemon_constant_by_id(id):
if id == 0: return None
@@ -1595,228 +1073,7 @@
#XXX TODO
return None
-item_constants = {1: 'MASTER_BALL',
-2: 'ULTRA_BALL',
-3: 'BRIGHTPOWDER',
-4: 'GREAT_BALL',
-5: 'POKE_BALL',
-7: 'BICYCLE',
-8: 'MOON_STONE',
-9: 'ANTIDOTE',
-10: 'BURN_HEAL',
-11: 'ICE_HEAL',
-12: 'AWAKENING',
-13: 'PARLYZ_HEAL',
-14: 'FULL_RESTORE',
-15: 'MAX_POTION',
-16: 'HYPER_POTION',
-17: 'SUPER_POTION',
-18: 'POTION',
-19: 'ESCAPE_ROPE',
-20: 'REPEL',
-21: 'MAX_ELIXER',
-22: 'FIRE_STONE',
-23: 'THUNDERSTONE',
-24: 'WATER_STONE',
-26: 'HP_UP',
-27: 'PROTEIN',
-28: 'IRON',
-29: 'CARBOS',
-30: 'LUCKY_PUNCH',
-31: 'CALCIUM',
-32: 'RARE_CANDY',
-33: 'X_ACCURACY',
-34: 'LEAF_STONE',
-35: 'METAL_POWDER',
-36: 'NUGGET',
-37: 'POKE_DOLL',
-38: 'FULL_HEAL',
-39: 'REVIVE',
-40: 'MAX_REVIVE',
-41: 'GUARD_SPEC.',
-42: 'SUPER_REPEL',
-43: 'MAX_REPEL',
-44: 'DIRE_HIT',
-46: 'FRESH_WATER',
-47: 'SODA_POP',
-48: 'LEMONADE',
-49: 'X_ATTACK',
-51: 'X_DEFEND',
-52: 'X_SPEED',
-53: 'X_SPECIAL',
-54: 'COIN_CASE',
-55: 'ITEMFINDER',
-57: 'EXP_SHARE',
-58: 'OLD_ROD',
-59: 'GOOD_ROD',
-60: 'SILVER_LEAF',
-61: 'SUPER_ROD',
-62: 'PP_UP',
-63: 'ETHER',
-64: 'MAX_ETHER',
-65: 'ELIXER',
-66: 'RED_SCALE',
-67: 'SECRETPOTION',
-68: 'S.S.TICKET',
-69: 'MYSTERY_EGG',
-70: 'CLEAR_BELL',
-71: 'SILVER_WING',
-72: 'MOOMOO_MILK',
-73: 'QUICK_CLAW',
-74: 'PSNCUREBERRY',
-75: 'GOLD_LEAF',
-76: 'SOFT_SAND',
-77: 'SHARP_BEAK',
-78: 'PRZCUREBERRY',
-79: 'BURNT_BERRY',
-80: 'ICE_BERRY',
-81: 'POISON_BARB',
-82: "KING'S_ROCK",
-83: 'BITTER_BERRY',
-84: 'MINT_BERRY',
-85: 'RED_APRICORN',
-86: 'TINYMUSHROOM',
-87: 'BIG_MUSHROOM',
-88: 'SILVERPOWDER',
-89: 'BLU_APRICORN',
-91: 'AMULET_COIN',
-92: 'YLW_APRICORN',
-93: 'GRN_APRICORN',
-94: 'CLEANSE_TAG',
-95: 'MYSTIC_WATER',
-96: 'TWISTEDSPOON',
-97: 'WHT_APRICORN',
-98: 'BLACKBELT',
-99: 'BLK_APRICORN',
-101: 'PNK_APRICORN',
-102: 'BLACKGLASSES',
-103: 'SLOWPOKETAIL',
-104: 'PINK_BOW',
-105: 'STICK',
-106: 'SMOKE_BALL',
-107: 'NEVERMELTICE',
-108: 'MAGNET',
-109: 'MIRACLEBERRY',
-110: 'PEARL',
-111: 'BIG_PEARL',
-112: 'EVERSTONE',
-113: 'SPELL_TAG',
-114: 'RAGECANDYBAR',
-115: 'GS_BALL',
-116: 'BLUE_CARD',
-117: 'MIRACLE_SEED',
-118: 'THICK_CLUB',
-119: 'FOCUS_BAND',
-121: 'ENERGYPOWDER',
-122: 'ENERGY_ROOT',
-123: 'HEAL_POWDER',
-124: 'REVIVAL_HERB',
-125: 'HARD_STONE',
-126: 'LUCKY_EGG',
-127: 'CARD_KEY',
-128: 'MACHINE_PART',
-129: 'EGG_TICKET',
-130: 'LOST_ITEM',
-131: 'STARDUST',
-132: 'STAR_PIECE',
-133: 'BASEMENT_KEY',
-134: 'PASS',
-138: 'CHARCOAL',
-139: 'BERRY_JUICE',
-140: 'SCOPE_LENS',
-143: 'METAL_COAT',
-144: 'DRAGON_FANG',
-146: 'LEFTOVERS',
-150: 'MYSTERYBERRY',
-151: 'DRAGON_SCALE',
-152: 'BERSERK_GENE',
-156: 'SACRED_ASH',
-157: 'HEAVY_BALL',
-158: 'FLOWER_MAIL',
-159: 'LEVEL_BALL',
-160: 'LURE_BALL',
-161: 'FAST_BALL',
-163: 'LIGHT_BALL',
-164: 'FRIEND_BALL',
-165: 'MOON_BALL',
-166: 'LOVE_BALL',
-167: 'NORMAL_BOX',
-168: 'GORGEOUS_BOX',
-169: 'SUN_STONE',
-170: 'POLKADOT_BOW',
-172: 'UP_GRADE',
-173: 'BERRY',
-174: 'GOLD_BERRY',
-175: 'SQUIRTBOTTLE',
-177: 'PARK_BALL',
-178: 'RAINBOW_WING',
-180: 'BRICK_PIECE',
-181: 'SURF_MAIL',
-182: 'LITEBLUEMAIL',
-183: 'PORTRAITM_AIL',
-184: 'LOVELY_MAIL',
-185: 'EON_MAIL',
-186: 'MORPH_MAIL',
-187: 'BLUESKY_MAIL',
-188: 'MUSIC_MAIL',
-189: 'MIRAGE_MAIL',
-191: 'TM_01',
-192: 'TM_02',
-193: 'TM_03',
-194: 'TM_04',
-196: 'TM_05',
-197: 'TM_06',
-198: 'TM_07',
-199: 'TM_08',
-200: 'TM_09',
-201: 'TM_10',
-202: 'TM_11',
-203: 'TM_12',
-204: 'TM_13',
-205: 'TM_14',
-206: 'TM_15',
-207: 'TM_16',
-208: 'TM_17',
-209: 'TM_18',
-210: 'TM_19',
-211: 'TM_20',
-212: 'TM_21',
-213: 'TM_22',
-214: 'TM_23',
-215: 'TM_24',
-216: 'TM_25',
-217: 'TM_26',
-218: 'TM_27',
-219: 'TM_28',
-221: 'TM_29',
-222: 'TM_30',
-223: 'TM_31',
-224: 'TM_32',
-225: 'TM_33',
-226: 'TM_34',
-227: 'TM_35',
-228: 'TM_36',
-229: 'TM_37',
-230: 'TM_38',
-231: 'TM_39',
-232: 'TM_40',
-233: 'TM_41',
-234: 'TM_42',
-235: 'TM_43',
-236: 'TM_44',
-237: 'TM_45',
-238: 'TM_46',
-239: 'TM_47',
-240: 'TM_48',
-241: 'TM_49',
-242: 'TM_50',
-243: 'HM_01',
-244: 'HM_02',
-245: 'HM_03',
-246: 'HM_04',
-247: 'HM_05',
-248: 'HM_06',
-249: 'HM_07'}
+from item_constants import item_constants
def find_item_label_by_id(id):
if id in item_constants.keys():
@@ -1879,311 +1136,9 @@
if gold > 0xA3: raise Exception, "dunno yet if crystal has new insertions after gold:0xA3 (crystal:0xA5)"
else: raise Exception, "translate_command_byte needs either a crystal or gold command"
-pksv_gs = {
- 0x00: "2call",
- 0x01: "3call",
- 0x02: "2ptcall",
- 0x03: "2jump",
- 0x04: "3jump",
- 0x05: "2ptjump",
- 0x06: "if equal",
- 0x07: "if not equal",
- 0x08: "if false",
- 0x09: "if true",
- 0x0A: "if less than",
- 0x0B: "if greater than",
- 0x0C: "jumpstd",
- 0x0D: "callstd",
- 0x0E: "3callasm",
- 0x0F: "special",
- 0x10: "2ptcallasm",
- 0x11: "checkmaptriggers",
- 0x12: "domaptrigger",
- 0x13: "checktriggers",
- 0x14: "dotrigger",
- 0x15: "writebyte",
- 0x16: "addvar",
- 0x17: "random",
- 0x19: "copybytetovar",
- 0x1A: "copyvartobyte",
- 0x1B: "loadvar",
- 0x1C: "checkcode",
- 0x1E: "writecode",
- 0x1F: "giveitem",
- 0x20: "takeitem",
- 0x21: "checkitem",
- 0x22: "givemoney",
- 0x23: "takemoney",
- 0x24: "checkmonkey",
- 0x25: "givecoins",
- 0x26: "takecoins",
- 0x27: "checkcoins",
- 0x2B: "checktime",
- 0x2C: "checkpoke",
- 0x2D: "givepoke",
- 0x2E: "giveegg",
- 0x2F: "givepokeitem",
- 0x31: "checkbit1",
- 0x32: "clearbit1",
- 0x33: "setbit1",
- 0x34: "checkbit2",
- 0x35: "clearbit2",
- 0x36: "setbit2",
- 0x37: "wildoff",
- 0x38: "wildon",
- 0x39: "xycompare",
- 0x3A: "warpmod",
- 0x3B: "blackoutmod",
- 0x3C: "warp",
- 0x41: "itemtotext",
- 0x43: "trainertotext",
- 0x44: "stringtotext",
- 0x45: "itemnotify",
- 0x46: "pocketisfull",
- 0x47: "loadfont",
- 0x48: "refreshscreen",
- 0x49: "loadmovesprites",
- 0x4B: "3writetext",
- 0x4C: "2writetext",
- 0x4E: "yesorno",
- 0x4F: "loadmenudata",
- 0x50: "writebackup",
- 0x51: "jumptextfaceplayer",
- 0x52: "jumptext",
- 0x53: "closetext",
- 0x54: "keeptextopen",
- 0x55: "pokepic",
- 0x56: "pokepicyesorno",
- 0x57: "interpretmenu",
- 0x58: "interpretmenu2",
- 0x5C: "loadpokedata",
- 0x5D: "loadtrainer",
- 0x5E: "startbattle",
- 0x5F: "returnafterbattle",
- 0x60: "catchtutorial",
- 0x63: "winlosstext",
- 0x65: "talkaftercancel",
- 0x67: "setlasttalked",
- 0x68: "applymovement",
- 0x6A: "faceplayer",
- 0x6B: "faceperson",
- 0x6C: "variablesprite",
- 0x6D: "disappear",
- 0x6E: "appear",
- 0x6F: "follow",
- 0x70: "stopfollow",
- 0x71: "moveperson",
- 0x74: "showemote",
- 0x75: "spriteface",
- 0x76: "follownotexact",
- 0x77: "earthquake",
- 0x79: "changeblock",
- 0x7A: "reloadmap",
- 0x7B: "reloadmappart",
- 0x7C: "writecmdqueue",
- 0x7D: "delcmdqueue",
- 0x7E: "playmusic",
- 0x7F: "playrammusic",
- 0x80: "musicfadeout",
- 0x81: "playmapmusic",
- 0x82: "reloadmapmusic",
- 0x83: "cry",
- 0x84: "playsound",
- 0x85: "waitbutton",
- 0x86: "warpsound",
- 0x87: "specialsound",
- 0x88: "passtoengine",
- 0x89: "newloadmap",
- 0x8A: "pause",
- 0x8B: "deactivatefacing",
- 0x8C: "priorityjump",
- 0x8D: "warpcheck",
- 0x8E: "ptpriorityjump",
- 0x8F: "return",
- 0x90: "end",
- 0x91: "reloadandreturn",
- 0x92: "resetfuncs",
- 0x93: "pokemart",
- 0x94: "elevator",
- 0x95: "trade",
- 0x96: "askforphonenumber",
- 0x97: "phonecall",
- 0x98: "hangup",
- 0x99: "describedecoration",
- 0x9A: "fruittree",
- 0x9C: "checkphonecall",
- 0x9D: "verbosegiveitem",
- 0x9E: "loadwilddata",
- 0x9F: "halloffame",
- 0xA0: "credits",
- 0xA1: "warpfacing",
- 0xA2: "storetext",
- 0xA3: "displaylocation",
-}
+from pksv import pksv_gs, pksv_crystal, pksv_crystal_unknowns,\
+ pksv_crystal_more, pksv_crystal_more_enders
-#see http://www.pokecommunity.com/showpost.php?p=4347261
-#NOTE: this has some updates that need to be back-ported to gold
-pksv_crystal = {
- 0x00: "2call",
- 0x01: "3call",
- 0x02: "2ptcall",
- 0x03: "2jump",
- 0x04: "3jump",
- 0x05: "2ptjump",
- 0x06: "if equal",
- 0x07: "if not equal",
- 0x08: "if false",
- 0x09: "if true",
- 0x0A: "if less than",
- 0x0B: "if greater than",
- 0x0C: "jumpstd",
- 0x0D: "callstd",
- 0x0E: "3callasm",
- 0x0F: "special",
- 0x10: "2ptcallasm",
- 0x11: "checkmaptriggers",
- 0x12: "domaptrigger",
- 0x13: "checktriggers",
- 0x14: "dotrigger",
- 0x15: "writebyte",
- 0x16: "addvar",
- 0x17: "random",
- 0x19: "copybytetovar",
- 0x1A: "copyvartobyte",
- 0x1B: "loadvar",
- 0x1C: "checkcode",
- 0x1D: "writevarcode",
- 0x1E: "writecode",
- 0x1F: "giveitem",
- 0x20: "takeitem",
- 0x21: "checkitem",
- 0x22: "givemoney",
- 0x23: "takemoney",
- 0x24: "checkmonkey",
- 0x25: "givecoins",
- 0x26: "takecoins",
- 0x27: "checkcoins",
- 0x28: "addcellnum",
- 0x29: "delcellnum",
- 0x2B: "checktime",
- 0x2C: "checkpoke",
- 0x2D: "givepoke",
- 0x2E: "giveegg",
- 0x2F: "givepokeitem",
- 0x31: "checkbit1",
- 0x32: "clearbit1",
- 0x33: "setbit1",
- 0x34: "checkbit2",
- 0x35: "clearbit2",
- 0x36: "setbit2",
- 0x37: "wildoff",
- 0x38: "wildon",
- 0x39: "xycompare",
- 0x3A: "warpmod",
- 0x3B: "blackoutmod",
- 0x3C: "warp",
- 0x41: "itemtotext",
- 0x43: "trainertotext",
- 0x44: "stringtotext",
- 0x45: "itemnotify",
- 0x46: "pocketisfull",
- 0x47: "loadfont",
- 0x48: "refreshscreen",
- 0x49: "loadmovesprites",
- 0x4B: "3writetext",
- 0x4C: "2writetext",
- 0x4E: "yesorno",
- 0x4F: "loadmenudata",
- 0x50: "writebackup",
- 0x51: "jumptextfaceplayer",
- 0x53: "jumptext",
- 0x54: "closetext",
- 0x55: "keeptextopen",
- 0x56: "pokepic",
- 0x57: "pokepicyesorno",
- 0x58: "interpretmenu",
- 0x59: "interpretmenu2",
- 0x5D: "loadpokedata",
- 0x5E: "loadtrainer",
- 0x5F: "startbattle",
- 0x60: "returnafterbattle",
- 0x61: "catchtutorial",
- 0x64: "winlosstext",
- 0x66: "talkaftercancel",
- 0x68: "setlasttalked",
- 0x69: "applymovement",
- 0x6B: "faceplayer",
- 0x6C: "faceperson",
- 0x6D: "variablesprite",
- 0x6E: "disappear",
- 0x6F: "appear",
- 0x70: "follow",
- 0x71: "stopfollow",
- 0x72: "moveperson",
- 0x75: "showemote",
- 0x76: "spriteface",
- 0x77: "follownotexact",
- 0x78: "earthquake",
- 0x7A: "changeblock",
- 0x7B: "reloadmap",
- 0x7C: "reloadmappart",
- 0x7D: "writecmdqueue",
- 0x7E: "delcmdqueue",
- 0x7F: "playmusic",
- 0x80: "playrammusic",
- 0x81: "musicfadeout",
- 0x82: "playmapmusic",
- 0x83: "reloadmapmusic",
- 0x84: "cry",
- 0x85: "playsound",
- 0x86: "waitbutton",
- 0x87: "warpsound",
- 0x88: "specialsound",
- 0x89: "passtoengine",
- 0x8A: "newloadmap",
- 0x8B: "pause",
- 0x8C: "deactivatefacing",
- 0x8D: "priorityjump",
- 0x8E: "warpcheck",
- 0x8F: "ptpriorityjump",
- 0x90: "return",
- 0x91: "end",
- 0x92: "reloadandreturn",
- 0x93: "resetfuncs",
- 0x94: "pokemart",
- 0x95: "elevator",
- 0x96: "trade",
- 0x97: "askforphonenumber",
- 0x98: "phonecall",
- 0x99: "hangup",
- 0x9A: "describedecoration",
- 0x9B: "fruittree",
- 0x9C: "specialphonecall",
- 0x9D: "checkphonecall",
- 0x9E: "verbosegiveitem",
- 0x9F: "verbosegiveitem2",
- 0xA0: "loadwilddata",
- 0xA1: "halloffame",
- 0xA2: "credits",
- 0xA3: "warpfacing",
- 0xA4: "storetext",
- 0xA5: "displaylocation",
- 0xB2: "unknown0xb2",
-}
-
-#these have no pksv names as of pksv 2.1.1
-pksv_crystal_unknowns = [
- 0x9F,
- 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8,
- 0xCC, 0xCD,
- 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
- 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8,
- 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF,
-]
-
-
class SingleByteParam():
"""or SingleByte(CommandParam)"""
size = 1
@@ -2489,187 +1444,7 @@
pass
-#byte: [name, [param1 name, param1 type], [param2 name, param2 type], ...]
-#0x9E: ["verbosegiveitem", ["item", ItemLabelByte], ["quantity", SingleByteParam]],
-pksv_crystal_more = {
- 0x00: ["2call", ["pointer", ScriptPointerLabelParam]],
- 0x01: ["3call", ["pointer", ScriptPointerLabelBeforeBank]],
- 0x02: ["2ptcall", ["pointer", PointerLabelToScriptPointer]],
- 0x03: ["2jump", ["pointer", ScriptPointerLabelParam]],
- 0x04: ["3jump", ["pointer", ScriptPointerLabelBeforeBank]],
- 0x05: ["2ptjump", ["pointer", PointerLabelToScriptPointer]],
- 0x06: ["if equal", ["byte", SingleByteParam], ["pointer", ScriptPointerLabelParam]],
- 0x07: ["if not equal", ["byte", SingleByteParam], ["pointer", ScriptPointerLabelParam]],
- 0x08: ["if false", ["pointer", ScriptPointerLabelParam]],
- 0x09: ["if true", ["pointer", ScriptPointerLabelParam]],
- 0x0A: ["if less than", ["byte", SingleByteParam], ["pointer", ScriptPointerLabelParam]],
- 0x0B: ["if greater than", ["byte", SingleByteParam], ["pointer", ScriptPointerLabelParam]],
- 0x0C: ["jumpstd", ["predefined_script", MultiByteParam]],
- 0x0D: ["callstd", ["predefined_script", MultiByteParam]],
- 0x0E: ["3callasm", ["asm", AsmPointerParam]],
- 0x0F: ["special", ["predefined_script", MultiByteParam]],
- 0x10: ["2ptcallasm", ["asm", PointerToAsmPointerParam]],
- #should map_group/map_id be dealt with in some special way in the asm?
- 0x11: ["checkmaptriggers", ["map_group", SingleByteParam], ["map_id", SingleByteParam]],
- 0x12: ["domaptrigger", ["map_group", MapGroupParam], ["map_id", MapIdParam], ["trigger_id", SingleByteParam]],
- 0x13: ["checktriggers"],
- 0x14: ["dotrigger", ["trigger_id", SingleByteParam]],
- 0x15: ["writebyte", ["value", SingleByteParam]],
- 0x16: ["addvar", ["value", SingleByteParam]],
- 0x17: ["random", ["input", SingleByteParam]],
- 0x18: ["checkver"],
- 0x19: ["copybytetovar", ["address", RAMAddressParam]],
- 0x1A: ["copyvartobyte", ["address", RAMAddressParam]],
- 0x1B: ["loadvar", ["address", RAMAddressParam], ["value", SingleByteParam]],
- 0x1C: ["checkcode", ["variable_id", SingleByteParam]],
- 0x1D: ["writevarcode", ["variable_id", SingleByteParam]],
- 0x1E: ["writecode", ["variable_id", SingleByteParam], ["value", SingleByteParam]],
- 0x1F: ["giveitem", ["item", ItemLabelByte], ["quantity", SingleByteParam]],
- 0x20: ["takeitem", ["item", ItemLabelByte], ["quantity", SingleByteParam]],
- 0x21: ["checkitem", ["item", ItemLabelByte]],
- 0x22: ["givemoney", ["account", SingleByteParam], ["money", MoneyByteParam]],
- 0x23: ["takemoney", ["account", SingleByteParam], ["money", MoneyByteParam]],
- 0x24: ["checkmonkey", ["account", SingleByteParam], ["money", MoneyByteParam]],
- 0x25: ["givecoins", ["coins", CoinByteParam]],
- 0x26: ["takecoins", ["coins", CoinByteParam]],
- 0x27: ["checkcoins", ["coins", CoinByteParam]],
- #0x28-0x2A not from pksv
- 0x28: ["addcellnum", ["person", SingleByteParam]],
- 0x29: ["delcellnum", ["person", SingleByteParam]],
- 0x2A: ["checkcellnum", ["person", SingleByteParam]],
- #back on track...
- 0x2B: ["checktime", ["time", SingleByteParam]],
- 0x2C: ["checkpoke", ["pkmn", PokemonParam]],
-#0x2D: ["givepoke", ], .... see GivePoke class
- 0x2E: ["giveegg", ["pkmn", PokemonParam], ["level", DecimalParam]],
- 0x2F: ["givepokeitem", ["pointer", PointerParamToItemAndLetter]],
- 0x30: ["checkpokeitem", ["pointer", PointerParamToItemAndLetter]], #not pksv
- 0x31: ["checkbit1", ["bit_number", MultiByteParam]],
- 0x32: ["clearbit1", ["bit_number", MultiByteParam]],
- 0x33: ["setbit1", ["bit_number", MultiByteParam]],
- 0x34: ["checkbit2", ["bit_number", MultiByteParam]],
- 0x35: ["clearbit2", ["bit_number", MultiByteParam]],
- 0x36: ["setbit2", ["bit_number", MultiByteParam]],
- 0x37: ["wildoff"],
- 0x38: ["wildon"],
- 0x39: ["xycompare", ["pointer", MultiByteParam]],
- 0x3A: ["warpmod", ["warp_id", SingleByteParam], ["map_group", MapGroupParam], ["map_id", MapIdParam]],
- 0x3B: ["blackoutmod", ["map_group", MapGroupParam], ["map_id", MapIdParam]],
- 0x3C: ["warp", ["map_group", MapGroupParam], ["map_id", MapIdParam], ["x", SingleByteParam], ["y", SingleByteParam]],
- 0x3D: ["readmoney", ["account", SingleByteParam], ["memory", SingleByteParam]], #not pksv
- 0x3E: ["readcoins", ["memory", SingleByteParam]], #not pksv
- 0x3F: ["RAM2MEM", ["memory", SingleByteParam]], #not pksv
- 0x40: ["pokenamemem", ["pokemon", PokemonParam], ["memory", SingleByteParam]], #not pksv
- 0x41: ["itemtotext", ["item", ItemLabelByte], ["memory", SingleByteParam]],
- 0x42: ["mapnametotext", ["memory", SingleByteParam]], #not pksv
- 0x43: ["trainertotext", ["trainer_id", TrainerIdParam], ["trainer_group", TrainerGroupParam], ["memory", SingleByteParam]],
- 0x44: ["stringtotext", ["text_pointer", RawTextPointerLabelParam], ["memory", SingleByteParam]],
- 0x45: ["itemnotify"],
- 0x46: ["pocketisfull"],
- 0x47: ["loadfont"],
- 0x48: ["refreshscreen", ["dummy", SingleByteParam]],
- 0x49: ["loadmovesprites"],
- 0x4A: ["loadbytec1ce", ["byte", SingleByteParam]], #not pksv
- 0x4B: ["3writetext", ["text_pointer", PointerLabelBeforeBank]],
- 0x4C: ["2writetext", ["text_pointer", TextPointerLabelParam]],
- 0x4D: ["repeattext", ["byte", SingleByteParam], ["byte", SingleByteParam]], #not pksv
- 0x4E: ["yesorno"],
- 0x4F: ["loadmenudata", ["data", MenuDataPointerParam]],
- 0x50: ["writebackup"],
- 0x51: ["jumptextfaceplayer", ["text_pointer", RawTextPointerLabelParam]],
- 0x53: ["jumptext", ["text_pointer", TextPointerLabelParam]],
- 0x54: ["closetext"],
- 0x55: ["keeptextopen"],
- 0x56: ["pokepic", ["pokemon", PokemonParam]],
- 0x57: ["pokepicyesorno"],
- 0x58: ["interpretmenu"],
- 0x59: ["interpretmenu2"],
-#not pksv
- 0x5A: ["loadpikachudata"],
- 0x5B: ["battlecheck"],
- 0x5C: ["loadtrainerdata"],
-#back to pksv..
- 0x5D: ["loadpokedata", ["pokemon", PokemonParam], ["level", DecimalParam]],
- 0x5E: ["loadtrainer", ["trainer_group", TrainerGroupParam], ["trainer_id", TrainerIdParam]],
- 0x5F: ["startbattle"],
- 0x60: ["returnafterbattle"],
- 0x61: ["catchtutorial", ["byte", SingleByteParam]],
-#not pksv
- 0x62: ["trainertext", ["which_text", SingleByteParam]],
- 0x63: ["trainerstatus", ["action", SingleByteParam]],
-#back to pksv..
- 0x64: ["winlosstext", ["win_text_pointer", TextPointerLabelParam], ["loss_text_pointer", TextPointerLabelParam]],
- 0x65: ["scripttalkafter"], #not pksv
- 0x66: ["talkaftercancel"],
- 0x67: ["talkaftercheck"],
- 0x68: ["setlasttalked", ["person", SingleByteParam]],
- 0x69: ["applymovement", ["person", SingleByteParam], ["data", MovementPointerLabelParam]],
- 0x6A: ["applymovement2", ["data", MovementPointerLabelParam]], #not pksv
- 0x6B: ["faceplayer"],
- 0x6C: ["faceperson", ["person1", SingleByteParam], ["person2", SingleByteParam]],
- 0x6D: ["variablesprite", ["byte", SingleByteParam], ["sprite", SingleByteParam]],
- 0x6E: ["disappear", ["person", SingleByteParam]], #hideperson
- 0x6F: ["appear", ["person", SingleByteParam]], #showperson
- 0x70: ["follow", ["person2", SingleByteParam], ["person1", SingleByteParam]],
- 0x71: ["stopfollow"],
- 0x72: ["moveperson", ["person", SingleByteParam], ["x", SingleByteParam], ["y", SingleByteParam]],
- 0x73: ["writepersonxy", ["person", SingleByteParam]], #not pksv
- 0x74: ["loademote", ["bubble", SingleByteParam]],
- 0x75: ["showemote", ["bubble", SingleByteParam], ["person", SingleByteParam], ["time", SingleByteParam]],
- 0x76: ["spriteface", ["person", SingleByteParam], ["facing", SingleByteParam]],
- 0x77: ["follownotexact", ["person2", SingleByteParam], ["person1", SingleByteParam]],
- 0x78: ["earthquake", ["param", SingleByteParam]],
- 0x79: ["changemap", ["map_data_pointer", MapDataPointerParam]],
- 0x7A: ["changeblock", ["x", SingleByteParam], ["y", SingleByteParam], ["block", SingleByteParam]],
- 0x7B: ["reloadmap"],
- 0x7C: ["reloadmappart"],
- 0x7D: ["writecmdqueue", ["queue_pointer", MultiByteParam]],
- 0x7E: ["delcmdqueue", ["byte", SingleByteParam]],
- 0x7F: ["playmusic", ["music_pointer", MultiByteParam]],
- 0x80: ["playrammusic"],
- 0x81: ["musicfadeout", ["music", MultiByteParam], ["fadetime", SingleByteParam]],
- 0x82: ["playmapmusic"],
- 0x83: ["reloadmapmusic"],
- 0x84: ["cry", ["cry_id", SingleByteParam], ["wtf", SingleByteParam]], #XXX maybe it should use PokemonParam
- 0x85: ["playsound", ["sound_pointer", MultiByteParam]],
- 0x86: ["waitbutton"],
- 0x87: ["warpsound"],
- 0x88: ["specialsound"],
- 0x89: ["passtoengine", ["data_pointer", PointerLabelBeforeBank]],
- 0x8A: ["newloadmap", ["which_method", SingleByteParam]],
- 0x8B: ["pause", ["length", SingleByteParam]],
- 0x8C: ["deactivatefacing", ["time", SingleByteParam]],
- 0x8D: ["priorityjump", ["pointer", ScriptPointerLabelParam]],
- 0x8E: ["warpcheck"],
- 0x8F: ["ptpriorityjump", ["pointer", ScriptPointerLabelParam]],
- 0x90: ["return"],
- 0x91: ["end"],
- 0x92: ["reloadandreturn"],
- 0x93: ["resetfuncs"],
- 0x94: ["pokemart", ["dialog_id", SingleByteParam], ["mart_id", MultiByteParam]], #maybe it should be a pokemark constant id/label?
- 0x95: ["elevator", ["floor_list_pointer", PointerLabelParam]],
- 0x96: ["trade", ["trade_id", SingleByteParam]],
- 0x97: ["askforphonenumber", ["number", SingleByteParam]],
- 0x98: ["phonecall", ["caller_name", RawTextPointerLabelParam]],
- 0x99: ["hangup"],
- 0x9A: ["describedecoration", ["byte", SingleByteParam]],
- 0x9B: ["fruittree", ["tree_id", SingleByteParam]],
- 0x9C: ["specialphonecall", ["call_id", SingleByteParam], ["wtf", SingleByteParam]],
- 0x9D: ["checkphonecall"],
- 0x9E: ["verbosegiveitem", ["item", ItemLabelByte], ["quantity", DecimalParam]],
- 0x9F: ["verbosegiveitem2", ["item", ItemLabelByte]],
- 0xA0: ["loadwilddata", ["map_group", MapGroupParam], ["map_id", MapIdParam]],
- 0xA1: ["halloffame"],
- 0xA2: ["credits"],
- 0xA3: ["warpfacing", ["facing", SingleByteParam], ["map_group", MapGroupParam], ["map_id", MapIdParam], ["x", SingleByteParam], ["y", SingleByteParam]],
- 0xA4: ["storetext", ["pointer", PointerLabelBeforeBank], ["memory", SingleByteParam]],
- 0xA5: ["displaylocation", ["id", SingleByteParam]],
- 0xA8: ["unknown0xa8", ["unknown", SingleByteParam]],
- 0xB2: ["unknown0xb2", ["unknown", SingleByteParam]],
- 0xCC: ["unknown0xcc"],
-}
-
class Command:
"""
Note: when dumping to asm, anything in script_parse_table that directly
@@ -2811,12 +1586,6 @@
return True
-#these cause the script to end; used in create_command_classes
-pksv_crystal_more_enders = [0x03, 0x04, 0x05, 0x0C, 0x51, 0x53,
- 0x8D, 0x8F, 0x90, 0x91, 0x92, 0x9B,
- 0xB2, #maybe?
- 0xCC, #maybe?
- ]
def create_command_classes(debug=False):
"""creates some classes for each command byte"""
#don't forget to add any manually created script command classes
--- /dev/null
+++ b/extras/item_constants.py
@@ -1,0 +1,222 @@
+item_constants = {1: 'MASTER_BALL',
+2: 'ULTRA_BALL',
+3: 'BRIGHTPOWDER',
+4: 'GREAT_BALL',
+5: 'POKE_BALL',
+7: 'BICYCLE',
+8: 'MOON_STONE',
+9: 'ANTIDOTE',
+10: 'BURN_HEAL',
+11: 'ICE_HEAL',
+12: 'AWAKENING',
+13: 'PARLYZ_HEAL',
+14: 'FULL_RESTORE',
+15: 'MAX_POTION',
+16: 'HYPER_POTION',
+17: 'SUPER_POTION',
+18: 'POTION',
+19: 'ESCAPE_ROPE',
+20: 'REPEL',
+21: 'MAX_ELIXER',
+22: 'FIRE_STONE',
+23: 'THUNDERSTONE',
+24: 'WATER_STONE',
+26: 'HP_UP',
+27: 'PROTEIN',
+28: 'IRON',
+29: 'CARBOS',
+30: 'LUCKY_PUNCH',
+31: 'CALCIUM',
+32: 'RARE_CANDY',
+33: 'X_ACCURACY',
+34: 'LEAF_STONE',
+35: 'METAL_POWDER',
+36: 'NUGGET',
+37: 'POKE_DOLL',
+38: 'FULL_HEAL',
+39: 'REVIVE',
+40: 'MAX_REVIVE',
+41: 'GUARD_SPEC.',
+42: 'SUPER_REPEL',
+43: 'MAX_REPEL',
+44: 'DIRE_HIT',
+46: 'FRESH_WATER',
+47: 'SODA_POP',
+48: 'LEMONADE',
+49: 'X_ATTACK',
+51: 'X_DEFEND',
+52: 'X_SPEED',
+53: 'X_SPECIAL',
+54: 'COIN_CASE',
+55: 'ITEMFINDER',
+57: 'EXP_SHARE',
+58: 'OLD_ROD',
+59: 'GOOD_ROD',
+60: 'SILVER_LEAF',
+61: 'SUPER_ROD',
+62: 'PP_UP',
+63: 'ETHER',
+64: 'MAX_ETHER',
+65: 'ELIXER',
+66: 'RED_SCALE',
+67: 'SECRETPOTION',
+68: 'S.S.TICKET',
+69: 'MYSTERY_EGG',
+70: 'CLEAR_BELL',
+71: 'SILVER_WING',
+72: 'MOOMOO_MILK',
+73: 'QUICK_CLAW',
+74: 'PSNCUREBERRY',
+75: 'GOLD_LEAF',
+76: 'SOFT_SAND',
+77: 'SHARP_BEAK',
+78: 'PRZCUREBERRY',
+79: 'BURNT_BERRY',
+80: 'ICE_BERRY',
+81: 'POISON_BARB',
+82: "KING'S_ROCK",
+83: 'BITTER_BERRY',
+84: 'MINT_BERRY',
+85: 'RED_APRICORN',
+86: 'TINYMUSHROOM',
+87: 'BIG_MUSHROOM',
+88: 'SILVERPOWDER',
+89: 'BLU_APRICORN',
+91: 'AMULET_COIN',
+92: 'YLW_APRICORN',
+93: 'GRN_APRICORN',
+94: 'CLEANSE_TAG',
+95: 'MYSTIC_WATER',
+96: 'TWISTEDSPOON',
+97: 'WHT_APRICORN',
+98: 'BLACKBELT',
+99: 'BLK_APRICORN',
+101: 'PNK_APRICORN',
+102: 'BLACKGLASSES',
+103: 'SLOWPOKETAIL',
+104: 'PINK_BOW',
+105: 'STICK',
+106: 'SMOKE_BALL',
+107: 'NEVERMELTICE',
+108: 'MAGNET',
+109: 'MIRACLEBERRY',
+110: 'PEARL',
+111: 'BIG_PEARL',
+112: 'EVERSTONE',
+113: 'SPELL_TAG',
+114: 'RAGECANDYBAR',
+115: 'GS_BALL',
+116: 'BLUE_CARD',
+117: 'MIRACLE_SEED',
+118: 'THICK_CLUB',
+119: 'FOCUS_BAND',
+121: 'ENERGYPOWDER',
+122: 'ENERGY_ROOT',
+123: 'HEAL_POWDER',
+124: 'REVIVAL_HERB',
+125: 'HARD_STONE',
+126: 'LUCKY_EGG',
+127: 'CARD_KEY',
+128: 'MACHINE_PART',
+129: 'EGG_TICKET',
+130: 'LOST_ITEM',
+131: 'STARDUST',
+132: 'STAR_PIECE',
+133: 'BASEMENT_KEY',
+134: 'PASS',
+138: 'CHARCOAL',
+139: 'BERRY_JUICE',
+140: 'SCOPE_LENS',
+143: 'METAL_COAT',
+144: 'DRAGON_FANG',
+146: 'LEFTOVERS',
+150: 'MYSTERYBERRY',
+151: 'DRAGON_SCALE',
+152: 'BERSERK_GENE',
+156: 'SACRED_ASH',
+157: 'HEAVY_BALL',
+158: 'FLOWER_MAIL',
+159: 'LEVEL_BALL',
+160: 'LURE_BALL',
+161: 'FAST_BALL',
+163: 'LIGHT_BALL',
+164: 'FRIEND_BALL',
+165: 'MOON_BALL',
+166: 'LOVE_BALL',
+167: 'NORMAL_BOX',
+168: 'GORGEOUS_BOX',
+169: 'SUN_STONE',
+170: 'POLKADOT_BOW',
+172: 'UP_GRADE',
+173: 'BERRY',
+174: 'GOLD_BERRY',
+175: 'SQUIRTBOTTLE',
+177: 'PARK_BALL',
+178: 'RAINBOW_WING',
+180: 'BRICK_PIECE',
+181: 'SURF_MAIL',
+182: 'LITEBLUEMAIL',
+183: 'PORTRAITM_AIL',
+184: 'LOVELY_MAIL',
+185: 'EON_MAIL',
+186: 'MORPH_MAIL',
+187: 'BLUESKY_MAIL',
+188: 'MUSIC_MAIL',
+189: 'MIRAGE_MAIL',
+191: 'TM_01',
+192: 'TM_02',
+193: 'TM_03',
+194: 'TM_04',
+196: 'TM_05',
+197: 'TM_06',
+198: 'TM_07',
+199: 'TM_08',
+200: 'TM_09',
+201: 'TM_10',
+202: 'TM_11',
+203: 'TM_12',
+204: 'TM_13',
+205: 'TM_14',
+206: 'TM_15',
+207: 'TM_16',
+208: 'TM_17',
+209: 'TM_18',
+210: 'TM_19',
+211: 'TM_20',
+212: 'TM_21',
+213: 'TM_22',
+214: 'TM_23',
+215: 'TM_24',
+216: 'TM_25',
+217: 'TM_26',
+218: 'TM_27',
+219: 'TM_28',
+221: 'TM_29',
+222: 'TM_30',
+223: 'TM_31',
+224: 'TM_32',
+225: 'TM_33',
+226: 'TM_34',
+227: 'TM_35',
+228: 'TM_36',
+229: 'TM_37',
+230: 'TM_38',
+231: 'TM_39',
+232: 'TM_40',
+233: 'TM_41',
+234: 'TM_42',
+235: 'TM_43',
+236: 'TM_44',
+237: 'TM_45',
+238: 'TM_46',
+239: 'TM_47',
+240: 'TM_48',
+241: 'TM_49',
+242: 'TM_50',
+243: 'HM_01',
+244: 'HM_02',
+245: 'HM_03',
+246: 'HM_04',
+247: 'HM_05',
+248: 'HM_06',
+249: 'HM_07'}
--- /dev/null
+++ b/extras/pksv.py
@@ -1,0 +1,502 @@
+
+pksv_gs = {
+ 0x00: "2call",
+ 0x01: "3call",
+ 0x02: "2ptcall",
+ 0x03: "2jump",
+ 0x04: "3jump",
+ 0x05: "2ptjump",
+ 0x06: "if equal",
+ 0x07: "if not equal",
+ 0x08: "if false",
+ 0x09: "if true",
+ 0x0A: "if less than",
+ 0x0B: "if greater than",
+ 0x0C: "jumpstd",
+ 0x0D: "callstd",
+ 0x0E: "3callasm",
+ 0x0F: "special",
+ 0x10: "2ptcallasm",
+ 0x11: "checkmaptriggers",
+ 0x12: "domaptrigger",
+ 0x13: "checktriggers",
+ 0x14: "dotrigger",
+ 0x15: "writebyte",
+ 0x16: "addvar",
+ 0x17: "random",
+ 0x19: "copybytetovar",
+ 0x1A: "copyvartobyte",
+ 0x1B: "loadvar",
+ 0x1C: "checkcode",
+ 0x1E: "writecode",
+ 0x1F: "giveitem",
+ 0x20: "takeitem",
+ 0x21: "checkitem",
+ 0x22: "givemoney",
+ 0x23: "takemoney",
+ 0x24: "checkmonkey",
+ 0x25: "givecoins",
+ 0x26: "takecoins",
+ 0x27: "checkcoins",
+ 0x2B: "checktime",
+ 0x2C: "checkpoke",
+ 0x2D: "givepoke",
+ 0x2E: "giveegg",
+ 0x2F: "givepokeitem",
+ 0x31: "checkbit1",
+ 0x32: "clearbit1",
+ 0x33: "setbit1",
+ 0x34: "checkbit2",
+ 0x35: "clearbit2",
+ 0x36: "setbit2",
+ 0x37: "wildoff",
+ 0x38: "wildon",
+ 0x39: "xycompare",
+ 0x3A: "warpmod",
+ 0x3B: "blackoutmod",
+ 0x3C: "warp",
+ 0x41: "itemtotext",
+ 0x43: "trainertotext",
+ 0x44: "stringtotext",
+ 0x45: "itemnotify",
+ 0x46: "pocketisfull",
+ 0x47: "loadfont",
+ 0x48: "refreshscreen",
+ 0x49: "loadmovesprites",
+ 0x4B: "3writetext",
+ 0x4C: "2writetext",
+ 0x4E: "yesorno",
+ 0x4F: "loadmenudata",
+ 0x50: "writebackup",
+ 0x51: "jumptextfaceplayer",
+ 0x52: "jumptext",
+ 0x53: "closetext",
+ 0x54: "keeptextopen",
+ 0x55: "pokepic",
+ 0x56: "pokepicyesorno",
+ 0x57: "interpretmenu",
+ 0x58: "interpretmenu2",
+ 0x5C: "loadpokedata",
+ 0x5D: "loadtrainer",
+ 0x5E: "startbattle",
+ 0x5F: "returnafterbattle",
+ 0x60: "catchtutorial",
+ 0x63: "winlosstext",
+ 0x65: "talkaftercancel",
+ 0x67: "setlasttalked",
+ 0x68: "applymovement",
+ 0x6A: "faceplayer",
+ 0x6B: "faceperson",
+ 0x6C: "variablesprite",
+ 0x6D: "disappear",
+ 0x6E: "appear",
+ 0x6F: "follow",
+ 0x70: "stopfollow",
+ 0x71: "moveperson",
+ 0x74: "showemote",
+ 0x75: "spriteface",
+ 0x76: "follownotexact",
+ 0x77: "earthquake",
+ 0x79: "changeblock",
+ 0x7A: "reloadmap",
+ 0x7B: "reloadmappart",
+ 0x7C: "writecmdqueue",
+ 0x7D: "delcmdqueue",
+ 0x7E: "playmusic",
+ 0x7F: "playrammusic",
+ 0x80: "musicfadeout",
+ 0x81: "playmapmusic",
+ 0x82: "reloadmapmusic",
+ 0x83: "cry",
+ 0x84: "playsound",
+ 0x85: "waitbutton",
+ 0x86: "warpsound",
+ 0x87: "specialsound",
+ 0x88: "passtoengine",
+ 0x89: "newloadmap",
+ 0x8A: "pause",
+ 0x8B: "deactivatefacing",
+ 0x8C: "priorityjump",
+ 0x8D: "warpcheck",
+ 0x8E: "ptpriorityjump",
+ 0x8F: "return",
+ 0x90: "end",
+ 0x91: "reloadandreturn",
+ 0x92: "resetfuncs",
+ 0x93: "pokemart",
+ 0x94: "elevator",
+ 0x95: "trade",
+ 0x96: "askforphonenumber",
+ 0x97: "phonecall",
+ 0x98: "hangup",
+ 0x99: "describedecoration",
+ 0x9A: "fruittree",
+ 0x9C: "checkphonecall",
+ 0x9D: "verbosegiveitem",
+ 0x9E: "loadwilddata",
+ 0x9F: "halloffame",
+ 0xA0: "credits",
+ 0xA1: "warpfacing",
+ 0xA2: "storetext",
+ 0xA3: "displaylocation",
+}
+
+#see http://www.pokecommunity.com/showpost.php?p=4347261
+#NOTE: this has some updates that need to be back-ported to gold
+pksv_crystal = {
+ 0x00: "2call",
+ 0x01: "3call",
+ 0x02: "2ptcall",
+ 0x03: "2jump",
+ 0x04: "3jump",
+ 0x05: "2ptjump",
+ 0x06: "if equal",
+ 0x07: "if not equal",
+ 0x08: "if false",
+ 0x09: "if true",
+ 0x0A: "if less than",
+ 0x0B: "if greater than",
+ 0x0C: "jumpstd",
+ 0x0D: "callstd",
+ 0x0E: "3callasm",
+ 0x0F: "special",
+ 0x10: "2ptcallasm",
+ 0x11: "checkmaptriggers",
+ 0x12: "domaptrigger",
+ 0x13: "checktriggers",
+ 0x14: "dotrigger",
+ 0x15: "writebyte",
+ 0x16: "addvar",
+ 0x17: "random",
+ 0x19: "copybytetovar",
+ 0x1A: "copyvartobyte",
+ 0x1B: "loadvar",
+ 0x1C: "checkcode",
+ 0x1D: "writevarcode",
+ 0x1E: "writecode",
+ 0x1F: "giveitem",
+ 0x20: "takeitem",
+ 0x21: "checkitem",
+ 0x22: "givemoney",
+ 0x23: "takemoney",
+ 0x24: "checkmonkey",
+ 0x25: "givecoins",
+ 0x26: "takecoins",
+ 0x27: "checkcoins",
+ 0x28: "addcellnum",
+ 0x29: "delcellnum",
+ 0x2B: "checktime",
+ 0x2C: "checkpoke",
+ 0x2D: "givepoke",
+ 0x2E: "giveegg",
+ 0x2F: "givepokeitem",
+ 0x31: "checkbit1",
+ 0x32: "clearbit1",
+ 0x33: "setbit1",
+ 0x34: "checkbit2",
+ 0x35: "clearbit2",
+ 0x36: "setbit2",
+ 0x37: "wildoff",
+ 0x38: "wildon",
+ 0x39: "xycompare",
+ 0x3A: "warpmod",
+ 0x3B: "blackoutmod",
+ 0x3C: "warp",
+ 0x41: "itemtotext",
+ 0x43: "trainertotext",
+ 0x44: "stringtotext",
+ 0x45: "itemnotify",
+ 0x46: "pocketisfull",
+ 0x47: "loadfont",
+ 0x48: "refreshscreen",
+ 0x49: "loadmovesprites",
+ 0x4B: "3writetext",
+ 0x4C: "2writetext",
+ 0x4E: "yesorno",
+ 0x4F: "loadmenudata",
+ 0x50: "writebackup",
+ 0x51: "jumptextfaceplayer",
+ 0x53: "jumptext",
+ 0x54: "closetext",
+ 0x55: "keeptextopen",
+ 0x56: "pokepic",
+ 0x57: "pokepicyesorno",
+ 0x58: "interpretmenu",
+ 0x59: "interpretmenu2",
+ 0x5D: "loadpokedata",
+ 0x5E: "loadtrainer",
+ 0x5F: "startbattle",
+ 0x60: "returnafterbattle",
+ 0x61: "catchtutorial",
+ 0x64: "winlosstext",
+ 0x66: "talkaftercancel",
+ 0x68: "setlasttalked",
+ 0x69: "applymovement",
+ 0x6B: "faceplayer",
+ 0x6C: "faceperson",
+ 0x6D: "variablesprite",
+ 0x6E: "disappear",
+ 0x6F: "appear",
+ 0x70: "follow",
+ 0x71: "stopfollow",
+ 0x72: "moveperson",
+ 0x75: "showemote",
+ 0x76: "spriteface",
+ 0x77: "follownotexact",
+ 0x78: "earthquake",
+ 0x7A: "changeblock",
+ 0x7B: "reloadmap",
+ 0x7C: "reloadmappart",
+ 0x7D: "writecmdqueue",
+ 0x7E: "delcmdqueue",
+ 0x7F: "playmusic",
+ 0x80: "playrammusic",
+ 0x81: "musicfadeout",
+ 0x82: "playmapmusic",
+ 0x83: "reloadmapmusic",
+ 0x84: "cry",
+ 0x85: "playsound",
+ 0x86: "waitbutton",
+ 0x87: "warpsound",
+ 0x88: "specialsound",
+ 0x89: "passtoengine",
+ 0x8A: "newloadmap",
+ 0x8B: "pause",
+ 0x8C: "deactivatefacing",
+ 0x8D: "priorityjump",
+ 0x8E: "warpcheck",
+ 0x8F: "ptpriorityjump",
+ 0x90: "return",
+ 0x91: "end",
+ 0x92: "reloadandreturn",
+ 0x93: "resetfuncs",
+ 0x94: "pokemart",
+ 0x95: "elevator",
+ 0x96: "trade",
+ 0x97: "askforphonenumber",
+ 0x98: "phonecall",
+ 0x99: "hangup",
+ 0x9A: "describedecoration",
+ 0x9B: "fruittree",
+ 0x9C: "specialphonecall",
+ 0x9D: "checkphonecall",
+ 0x9E: "verbosegiveitem",
+ 0x9F: "verbosegiveitem2",
+ 0xA0: "loadwilddata",
+ 0xA1: "halloffame",
+ 0xA2: "credits",
+ 0xA3: "warpfacing",
+ 0xA4: "storetext",
+ 0xA5: "displaylocation",
+ 0xB2: "unknown0xb2",
+}
+
+#these cause the script to end; used in create_command_classes
+pksv_crystal_more_enders = [0x03, 0x04, 0x05, 0x0C, 0x51, 0x53,
+ 0x8D, 0x8F, 0x90, 0x91, 0x92, 0x9B,
+ 0xB2, #maybe?
+ 0xCC, #maybe?
+ ]
+
+#these have no pksv names as of pksv 2.1.1
+pksv_crystal_unknowns = [
+ 0x9F,
+ 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
+ 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8,
+ 0xCC, 0xCD,
+ 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
+ 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
+ 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8,
+ 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF,
+]
+
+#byte: [name, [param1 name, param1 type], [param2 name, param2 type], ...]
+#0x9E: ["verbosegiveitem", ["item", ItemLabelByte], ["quantity", SingleByteParam]],
+from crystal import ScriptPointerLabelParam, ScriptPointerLabelBeforeBank,\
+ PointerLabelToScriptPointer,\
+ SingleByteParam, MultiByteParam, AsmPointerParam,\
+ PointerToAsmPointerParam, MapGroupParam, MapIdParam,\
+ RAMAddressParam, ItemLabelByte, MoneyByteParam, CoinByteParam,\
+ PokemonParam, DecimalParam, PointerParamToItemAndLetter,\
+ TrainerIdParam, TrainerGroupParam, RawTextPointerLabelParam,\
+ PointerLabelBeforeBank, TextPointerLabelParam, MenuDataPointerParam,\
+ MovementPointerLabelParam, MapDataPointerParam, PointerLabelParam
+
+pksv_crystal_more = {
+ 0x00: ["2call", ["pointer", ScriptPointerLabelParam]],
+ 0x01: ["3call", ["pointer", ScriptPointerLabelBeforeBank]],
+ 0x02: ["2ptcall", ["pointer", PointerLabelToScriptPointer]],
+ 0x03: ["2jump", ["pointer", ScriptPointerLabelParam]],
+ 0x04: ["3jump", ["pointer", ScriptPointerLabelBeforeBank]],
+ 0x05: ["2ptjump", ["pointer", PointerLabelToScriptPointer]],
+ 0x06: ["if equal", ["byte", SingleByteParam], ["pointer", ScriptPointerLabelParam]],
+ 0x07: ["if not equal", ["byte", SingleByteParam], ["pointer", ScriptPointerLabelParam]],
+ 0x08: ["if false", ["pointer", ScriptPointerLabelParam]],
+ 0x09: ["if true", ["pointer", ScriptPointerLabelParam]],
+ 0x0A: ["if less than", ["byte", SingleByteParam], ["pointer", ScriptPointerLabelParam]],
+ 0x0B: ["if greater than", ["byte", SingleByteParam], ["pointer", ScriptPointerLabelParam]],
+ 0x0C: ["jumpstd", ["predefined_script", MultiByteParam]],
+ 0x0D: ["callstd", ["predefined_script", MultiByteParam]],
+ 0x0E: ["3callasm", ["asm", AsmPointerParam]],
+ 0x0F: ["special", ["predefined_script", MultiByteParam]],
+ 0x10: ["2ptcallasm", ["asm", PointerToAsmPointerParam]],
+ #should map_group/map_id be dealt with in some special way in the asm?
+ 0x11: ["checkmaptriggers", ["map_group", SingleByteParam], ["map_id", SingleByteParam]],
+ 0x12: ["domaptrigger", ["map_group", MapGroupParam], ["map_id", MapIdParam], ["trigger_id", SingleByteParam]],
+ 0x13: ["checktriggers"],
+ 0x14: ["dotrigger", ["trigger_id", SingleByteParam]],
+ 0x15: ["writebyte", ["value", SingleByteParam]],
+ 0x16: ["addvar", ["value", SingleByteParam]],
+ 0x17: ["random", ["input", SingleByteParam]],
+ 0x18: ["checkver"],
+ 0x19: ["copybytetovar", ["address", RAMAddressParam]],
+ 0x1A: ["copyvartobyte", ["address", RAMAddressParam]],
+ 0x1B: ["loadvar", ["address", RAMAddressParam], ["value", SingleByteParam]],
+ 0x1C: ["checkcode", ["variable_id", SingleByteParam]],
+ 0x1D: ["writevarcode", ["variable_id", SingleByteParam]],
+ 0x1E: ["writecode", ["variable_id", SingleByteParam], ["value", SingleByteParam]],
+ 0x1F: ["giveitem", ["item", ItemLabelByte], ["quantity", SingleByteParam]],
+ 0x20: ["takeitem", ["item", ItemLabelByte], ["quantity", SingleByteParam]],
+ 0x21: ["checkitem", ["item", ItemLabelByte]],
+ 0x22: ["givemoney", ["account", SingleByteParam], ["money", MoneyByteParam]],
+ 0x23: ["takemoney", ["account", SingleByteParam], ["money", MoneyByteParam]],
+ 0x24: ["checkmonkey", ["account", SingleByteParam], ["money", MoneyByteParam]],
+ 0x25: ["givecoins", ["coins", CoinByteParam]],
+ 0x26: ["takecoins", ["coins", CoinByteParam]],
+ 0x27: ["checkcoins", ["coins", CoinByteParam]],
+ #0x28-0x2A not from pksv
+ 0x28: ["addcellnum", ["person", SingleByteParam]],
+ 0x29: ["delcellnum", ["person", SingleByteParam]],
+ 0x2A: ["checkcellnum", ["person", SingleByteParam]],
+ #back on track...
+ 0x2B: ["checktime", ["time", SingleByteParam]],
+ 0x2C: ["checkpoke", ["pkmn", PokemonParam]],
+#0x2D: ["givepoke", ], .... see GivePoke class
+ 0x2E: ["giveegg", ["pkmn", PokemonParam], ["level", DecimalParam]],
+ 0x2F: ["givepokeitem", ["pointer", PointerParamToItemAndLetter]],
+ 0x30: ["checkpokeitem", ["pointer", PointerParamToItemAndLetter]], #not pksv
+ 0x31: ["checkbit1", ["bit_number", MultiByteParam]],
+ 0x32: ["clearbit1", ["bit_number", MultiByteParam]],
+ 0x33: ["setbit1", ["bit_number", MultiByteParam]],
+ 0x34: ["checkbit2", ["bit_number", MultiByteParam]],
+ 0x35: ["clearbit2", ["bit_number", MultiByteParam]],
+ 0x36: ["setbit2", ["bit_number", MultiByteParam]],
+ 0x37: ["wildoff"],
+ 0x38: ["wildon"],
+ 0x39: ["xycompare", ["pointer", MultiByteParam]],
+ 0x3A: ["warpmod", ["warp_id", SingleByteParam], ["map_group", MapGroupParam], ["map_id", MapIdParam]],
+ 0x3B: ["blackoutmod", ["map_group", MapGroupParam], ["map_id", MapIdParam]],
+ 0x3C: ["warp", ["map_group", MapGroupParam], ["map_id", MapIdParam], ["x", SingleByteParam], ["y", SingleByteParam]],
+ 0x3D: ["readmoney", ["account", SingleByteParam], ["memory", SingleByteParam]], #not pksv
+ 0x3E: ["readcoins", ["memory", SingleByteParam]], #not pksv
+ 0x3F: ["RAM2MEM", ["memory", SingleByteParam]], #not pksv
+ 0x40: ["pokenamemem", ["pokemon", PokemonParam], ["memory", SingleByteParam]], #not pksv
+ 0x41: ["itemtotext", ["item", ItemLabelByte], ["memory", SingleByteParam]],
+ 0x42: ["mapnametotext", ["memory", SingleByteParam]], #not pksv
+ 0x43: ["trainertotext", ["trainer_id", TrainerIdParam], ["trainer_group", TrainerGroupParam], ["memory", SingleByteParam]],
+ 0x44: ["stringtotext", ["text_pointer", RawTextPointerLabelParam], ["memory", SingleByteParam]],
+ 0x45: ["itemnotify"],
+ 0x46: ["pocketisfull"],
+ 0x47: ["loadfont"],
+ 0x48: ["refreshscreen", ["dummy", SingleByteParam]],
+ 0x49: ["loadmovesprites"],
+ 0x4A: ["loadbytec1ce", ["byte", SingleByteParam]], #not pksv
+ 0x4B: ["3writetext", ["text_pointer", PointerLabelBeforeBank]],
+ 0x4C: ["2writetext", ["text_pointer", TextPointerLabelParam]],
+ 0x4D: ["repeattext", ["byte", SingleByteParam], ["byte", SingleByteParam]], #not pksv
+ 0x4E: ["yesorno"],
+ 0x4F: ["loadmenudata", ["data", MenuDataPointerParam]],
+ 0x50: ["writebackup"],
+ 0x51: ["jumptextfaceplayer", ["text_pointer", RawTextPointerLabelParam]],
+ 0x53: ["jumptext", ["text_pointer", TextPointerLabelParam]],
+ 0x54: ["closetext"],
+ 0x55: ["keeptextopen"],
+ 0x56: ["pokepic", ["pokemon", PokemonParam]],
+ 0x57: ["pokepicyesorno"],
+ 0x58: ["interpretmenu"],
+ 0x59: ["interpretmenu2"],
+#not pksv
+ 0x5A: ["loadpikachudata"],
+ 0x5B: ["battlecheck"],
+ 0x5C: ["loadtrainerdata"],
+#back to pksv..
+ 0x5D: ["loadpokedata", ["pokemon", PokemonParam], ["level", DecimalParam]],
+ 0x5E: ["loadtrainer", ["trainer_group", TrainerGroupParam], ["trainer_id", TrainerIdParam]],
+ 0x5F: ["startbattle"],
+ 0x60: ["returnafterbattle"],
+ 0x61: ["catchtutorial", ["byte", SingleByteParam]],
+#not pksv
+ 0x62: ["trainertext", ["which_text", SingleByteParam]],
+ 0x63: ["trainerstatus", ["action", SingleByteParam]],
+#back to pksv..
+ 0x64: ["winlosstext", ["win_text_pointer", TextPointerLabelParam], ["loss_text_pointer", TextPointerLabelParam]],
+ 0x65: ["scripttalkafter"], #not pksv
+ 0x66: ["talkaftercancel"],
+ 0x67: ["talkaftercheck"],
+ 0x68: ["setlasttalked", ["person", SingleByteParam]],
+ 0x69: ["applymovement", ["person", SingleByteParam], ["data", MovementPointerLabelParam]],
+ 0x6A: ["applymovement2", ["data", MovementPointerLabelParam]], #not pksv
+ 0x6B: ["faceplayer"],
+ 0x6C: ["faceperson", ["person1", SingleByteParam], ["person2", SingleByteParam]],
+ 0x6D: ["variablesprite", ["byte", SingleByteParam], ["sprite", SingleByteParam]],
+ 0x6E: ["disappear", ["person", SingleByteParam]], #hideperson
+ 0x6F: ["appear", ["person", SingleByteParam]], #showperson
+ 0x70: ["follow", ["person2", SingleByteParam], ["person1", SingleByteParam]],
+ 0x71: ["stopfollow"],
+ 0x72: ["moveperson", ["person", SingleByteParam], ["x", SingleByteParam], ["y", SingleByteParam]],
+ 0x73: ["writepersonxy", ["person", SingleByteParam]], #not pksv
+ 0x74: ["loademote", ["bubble", SingleByteParam]],
+ 0x75: ["showemote", ["bubble", SingleByteParam], ["person", SingleByteParam], ["time", SingleByteParam]],
+ 0x76: ["spriteface", ["person", SingleByteParam], ["facing", SingleByteParam]],
+ 0x77: ["follownotexact", ["person2", SingleByteParam], ["person1", SingleByteParam]],
+ 0x78: ["earthquake", ["param", SingleByteParam]],
+ 0x79: ["changemap", ["map_data_pointer", MapDataPointerParam]],
+ 0x7A: ["changeblock", ["x", SingleByteParam], ["y", SingleByteParam], ["block", SingleByteParam]],
+ 0x7B: ["reloadmap"],
+ 0x7C: ["reloadmappart"],
+ 0x7D: ["writecmdqueue", ["queue_pointer", MultiByteParam]],
+ 0x7E: ["delcmdqueue", ["byte", SingleByteParam]],
+ 0x7F: ["playmusic", ["music_pointer", MultiByteParam]],
+ 0x80: ["playrammusic"],
+ 0x81: ["musicfadeout", ["music", MultiByteParam], ["fadetime", SingleByteParam]],
+ 0x82: ["playmapmusic"],
+ 0x83: ["reloadmapmusic"],
+ 0x84: ["cry", ["cry_id", SingleByteParam], ["wtf", SingleByteParam]], #XXX maybe it should use PokemonParam
+ 0x85: ["playsound", ["sound_pointer", MultiByteParam]],
+ 0x86: ["waitbutton"],
+ 0x87: ["warpsound"],
+ 0x88: ["specialsound"],
+ 0x89: ["passtoengine", ["data_pointer", PointerLabelBeforeBank]],
+ 0x8A: ["newloadmap", ["which_method", SingleByteParam]],
+ 0x8B: ["pause", ["length", SingleByteParam]],
+ 0x8C: ["deactivatefacing", ["time", SingleByteParam]],
+ 0x8D: ["priorityjump", ["pointer", ScriptPointerLabelParam]],
+ 0x8E: ["warpcheck"],
+ 0x8F: ["ptpriorityjump", ["pointer", ScriptPointerLabelParam]],
+ 0x90: ["return"],
+ 0x91: ["end"],
+ 0x92: ["reloadandreturn"],
+ 0x93: ["resetfuncs"],
+ 0x94: ["pokemart", ["dialog_id", SingleByteParam], ["mart_id", MultiByteParam]], #maybe it should be a pokemark constant id/label?
+ 0x95: ["elevator", ["floor_list_pointer", PointerLabelParam]],
+ 0x96: ["trade", ["trade_id", SingleByteParam]],
+ 0x97: ["askforphonenumber", ["number", SingleByteParam]],
+ 0x98: ["phonecall", ["caller_name", RawTextPointerLabelParam]],
+ 0x99: ["hangup"],
+ 0x9A: ["describedecoration", ["byte", SingleByteParam]],
+ 0x9B: ["fruittree", ["tree_id", SingleByteParam]],
+ 0x9C: ["specialphonecall", ["call_id", SingleByteParam], ["wtf", SingleByteParam]],
+ 0x9D: ["checkphonecall"],
+ 0x9E: ["verbosegiveitem", ["item", ItemLabelByte], ["quantity", DecimalParam]],
+ 0x9F: ["verbosegiveitem2", ["item", ItemLabelByte]],
+ 0xA0: ["loadwilddata", ["map_group", MapGroupParam], ["map_id", MapIdParam]],
+ 0xA1: ["halloffame"],
+ 0xA2: ["credits"],
+ 0xA3: ["warpfacing", ["facing", SingleByteParam], ["map_group", MapGroupParam], ["map_id", MapIdParam], ["x", SingleByteParam], ["y", SingleByteParam]],
+ 0xA4: ["storetext", ["pointer", PointerLabelBeforeBank], ["memory", SingleByteParam]],
+ 0xA5: ["displaylocation", ["id", SingleByteParam]],
+ 0xA8: ["unknown0xa8", ["unknown", SingleByteParam]],
+ 0xB2: ["unknown0xb2", ["unknown", SingleByteParam]],
+ 0xCC: ["unknown0xcc"],
+}
+
--- /dev/null
+++ b/extras/pokemon_constants.py
@@ -1,0 +1,253 @@
+pokemon_constants = {
+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_F",
+30: "NIDORINA",
+31: "NIDOQUEEN",
+32: "NIDORAN_M",
+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: "FARFETCH_D",
+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",
+}