diff options
author | C Nelson <cnelsonsic@gmail.com> | 2012-04-17 21:37:46 -0500 |
---|---|---|
committer | C Nelson <cnelsonsic@gmail.com> | 2012-04-17 21:37:46 -0500 |
commit | 127dd914a259dc35be3178aa2c8056db7af964a0 (patch) | |
tree | ef17c7af0772b6737ac03aa0a4ebed7fa351115c /crystal.py | |
parent | 5ef14c29e5594fd92887f20dcbd3a63876d58b8d (diff) |
Move a bunch of constant data into separate files.
original-commit-id: 17ab9dc558db716e02d86c48a0682489c499337e
Diffstat (limited to 'crystal.py')
-rw-r--r-- | crystal.py | 1243 |
1 files changed, 6 insertions, 1237 deletions
@@ -55,278 +55,8 @@ texts = [] #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: "…", - - 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 +# Import the characters from its module. +from chars import chars, jap_chars class Size(): """a simple way to track whether or not a size @@ -1333,259 +1063,7 @@ def generate_map_constants(): 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 @@ def parse_script_asm_at(*args, **kwargs): #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,310 +1136,8 @@ def translate_command_byte(crystal=None, gold=None): 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", -} - -#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, -] - +from pksv import pksv_gs, pksv_crystal, pksv_crystal_unknowns,\ + pksv_crystal_more, pksv_crystal_more_enders class SingleByteParam(): """or SingleByte(CommandParam)""" @@ -2489,186 +1444,6 @@ class MapDataPointerParam(PointerLabelParam): 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: """ @@ -2811,12 +1586,6 @@ class GivePoke(Command): 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 |