diff --git a/data/events/npc_trades.asm b/data/events/npc_trades.asm index c0f6fbb0..cfb9fe89 100644 --- a/data/events/npc_trades.asm +++ b/data/events/npc_trades.asm @@ -1,17 +1,20 @@ MACRO npctrade ; dialog set, requested mon, offered mon, nickname, dvs, item, OT ID, OT name, gender requested - db \1, \2, \3, \4, \5, \6, \7 + db \1, \2, \3 + dname \4, NAME_LENGTH + db \5, \6, \7 dw \8 - db \9, \<10>, 0 + dname \9, NAME_LENGTH + db \<10>, 0 ENDM NPCTrades: ; entries correspond to NPCTRADE_* constants table_width NPCTRADE_STRUCT_LENGTH - npctrade TRADE_DIALOGSET_COLLECTOR, DROWZEE, MACHOP, "MUSCLE@@@@@", $37, $66, GOLD_BERRY, 37460, "MIKE@@@@@@@", TRADE_GENDER_EITHER - npctrade TRADE_DIALOGSET_COLLECTOR, BELLSPROUT, ONIX, "ROCKY@@@@@@", $96, $66, BITTER_BERRY, 48926, "KYLE@@@@@@@", TRADE_GENDER_EITHER - npctrade TRADE_DIALOGSET_HAPPY, KRABBY, VOLTORB, "VOLTY@@@@@@", $98, $88, PRZCUREBERRY, 29189, "TIM@@@@@@@@", TRADE_GENDER_EITHER - npctrade TRADE_DIALOGSET_NEWBIE, DRAGONAIR, RHYDON, "DON@@@@@@@@", $77, $66, BITTER_BERRY, 00283, "EMY@@@@@@@@", TRADE_GENDER_FEMALE - npctrade TRADE_DIALOGSET_HAPPY, GLOOM, RAPIDASH, "RUNNY@@@@@@", $96, $66, BURNT_BERRY, 15616, "CHRIS@@@@@@", TRADE_GENDER_EITHER - npctrade TRADE_DIALOGSET_NEWBIE, CHANSEY, AERODACTYL, "AEROY@@@@@@", $96, $66, GOLD_BERRY, 26491, "KIM@@@@@@@@", TRADE_GENDER_EITHER + npctrade TRADE_DIALOGSET_COLLECTOR, DROWZEE, MACHOP, "MUSCLE", $37, $66, GOLD_BERRY, 37460, "MIKE", TRADE_GENDER_EITHER + npctrade TRADE_DIALOGSET_COLLECTOR, BELLSPROUT, ONIX, "ROCKY", $96, $66, BITTER_BERRY, 48926, "KYLE", TRADE_GENDER_EITHER + npctrade TRADE_DIALOGSET_HAPPY, KRABBY, VOLTORB, "VOLTY", $98, $88, PRZCUREBERRY, 29189, "TIM", TRADE_GENDER_EITHER + npctrade TRADE_DIALOGSET_NEWBIE, DRAGONAIR, RHYDON, "DON", $77, $66, BITTER_BERRY, 00283, "EMY", TRADE_GENDER_FEMALE + npctrade TRADE_DIALOGSET_HAPPY, GLOOM, RAPIDASH, "RUNNY", $96, $66, BURNT_BERRY, 15616, "CHRIS", TRADE_GENDER_EITHER + npctrade TRADE_DIALOGSET_NEWBIE, CHANSEY, AERODACTYL, "AEROY", $96, $66, GOLD_BERRY, 26491, "KIM", TRADE_GENDER_EITHER assert_table_length NUM_NPC_TRADES diff --git a/data/pokemon/names.asm b/data/pokemon/names.asm index 575ec1ef..da8c3632 100644 --- a/data/pokemon/names.asm +++ b/data/pokemon/names.asm @@ -1,261 +1,261 @@ PokemonNames:: table_width NAME_LENGTH - 1 - db "BULBASAUR@" - db "IVYSAUR@@@" - db "VENUSAUR@@" - db "CHARMANDER" - db "CHARMELEON" - db "CHARIZARD@" - db "SQUIRTLE@@" - db "WARTORTLE@" - db "BLASTOISE@" - db "CATERPIE@@" - db "METAPOD@@@" - db "BUTTERFREE" - db "WEEDLE@@@@" - db "KAKUNA@@@@" - db "BEEDRILL@@" - db "PIDGEY@@@@" - db "PIDGEOTTO@" - db "PIDGEOT@@@" - db "RATTATA@@@" - db "RATICATE@@" - db "SPEAROW@@@" - db "FEAROW@@@@" - db "EKANS@@@@@" - db "ARBOK@@@@@" - db "PIKACHU@@@" - db "RAICHU@@@@" - db "SANDSHREW@" - db "SANDSLASH@" - db "NIDORAN♀@@" - db "NIDORINA@@" - db "NIDOQUEEN@" - db "NIDORAN♂@@" - db "NIDORINO@@" - db "NIDOKING@@" - db "CLEFAIRY@@" - db "CLEFABLE@@" - db "VULPIX@@@@" - db "NINETALES@" - db "JIGGLYPUFF" - db "WIGGLYTUFF" - db "ZUBAT@@@@@" - db "GOLBAT@@@@" - db "ODDISH@@@@" - db "GLOOM@@@@@" - db "VILEPLUME@" - db "PARAS@@@@@" - db "PARASECT@@" - db "VENONAT@@@" - db "VENOMOTH@@" - db "DIGLETT@@@" - db "DUGTRIO@@@" - db "MEOWTH@@@@" - db "PERSIAN@@@" - db "PSYDUCK@@@" - db "GOLDUCK@@@" - db "MANKEY@@@@" - db "PRIMEAPE@@" - db "GROWLITHE@" - db "ARCANINE@@" - db "POLIWAG@@@" - db "POLIWHIRL@" - db "POLIWRATH@" - db "ABRA@@@@@@" - db "KADABRA@@@" - db "ALAKAZAM@@" - db "MACHOP@@@@" - db "MACHOKE@@@" - db "MACHAMP@@@" - db "BELLSPROUT" - db "WEEPINBELL" - db "VICTREEBEL" - db "TENTACOOL@" - db "TENTACRUEL" - db "GEODUDE@@@" - db "GRAVELER@@" - db "GOLEM@@@@@" - db "PONYTA@@@@" - db "RAPIDASH@@" - db "SLOWPOKE@@" - db "SLOWBRO@@@" - db "MAGNEMITE@" - db "MAGNETON@@" - db "FARFETCH'D" - db "DODUO@@@@@" - db "DODRIO@@@@" - db "SEEL@@@@@@" - db "DEWGONG@@@" - db "GRIMER@@@@" - db "MUK@@@@@@@" - db "SHELLDER@@" - db "CLOYSTER@@" - db "GASTLY@@@@" - db "HAUNTER@@@" - db "GENGAR@@@@" - db "ONIX@@@@@@" - db "DROWZEE@@@" - db "HYPNO@@@@@" - db "KRABBY@@@@" - db "KINGLER@@@" - db "VOLTORB@@@" - db "ELECTRODE@" - db "EXEGGCUTE@" - db "EXEGGUTOR@" - db "CUBONE@@@@" - db "MAROWAK@@@" - db "HITMONLEE@" - db "HITMONCHAN" - db "LICKITUNG@" - db "KOFFING@@@" - db "WEEZING@@@" - db "RHYHORN@@@" - db "RHYDON@@@@" - db "CHANSEY@@@" - db "TANGELA@@@" - db "KANGASKHAN" - db "HORSEA@@@@" - db "SEADRA@@@@" - db "GOLDEEN@@@" - db "SEAKING@@@" - db "STARYU@@@@" - db "STARMIE@@@" - db "MR.MIME@@@" - db "SCYTHER@@@" - db "JYNX@@@@@@" - db "ELECTABUZZ" - db "MAGMAR@@@@" - db "PINSIR@@@@" - db "TAUROS@@@@" - db "MAGIKARP@@" - db "GYARADOS@@" - db "LAPRAS@@@@" - db "DITTO@@@@@" - db "EEVEE@@@@@" - db "VAPOREON@@" - db "JOLTEON@@@" - db "FLAREON@@@" - db "PORYGON@@@" - db "OMANYTE@@@" - db "OMASTAR@@@" - db "KABUTO@@@@" - db "KABUTOPS@@" - db "AERODACTYL" - db "SNORLAX@@@" - db "ARTICUNO@@" - db "ZAPDOS@@@@" - db "MOLTRES@@@" - db "DRATINI@@@" - db "DRAGONAIR@" - db "DRAGONITE@" - db "MEWTWO@@@@" - db "MEW@@@@@@@" - db "CHIKORITA@" - db "BAYLEEF@@@" - db "MEGANIUM@@" - db "CYNDAQUIL@" - db "QUILAVA@@@" - db "TYPHLOSION" - db "TOTODILE@@" - db "CROCONAW@@" - db "FERALIGATR" - db "SENTRET@@@" - db "FURRET@@@@" - db "HOOTHOOT@@" - db "NOCTOWL@@@" - db "LEDYBA@@@@" - db "LEDIAN@@@@" - db "SPINARAK@@" - db "ARIADOS@@@" - db "CROBAT@@@@" - db "CHINCHOU@@" - db "LANTURN@@@" - db "PICHU@@@@@" - db "CLEFFA@@@@" - db "IGGLYBUFF@" - db "TOGEPI@@@@" - db "TOGETIC@@@" - db "NATU@@@@@@" - db "XATU@@@@@@" - db "MAREEP@@@@" - db "FLAAFFY@@@" - db "AMPHAROS@@" - db "BELLOSSOM@" - db "MARILL@@@@" - db "AZUMARILL@" - db "SUDOWOODO@" - db "POLITOED@@" - db "HOPPIP@@@@" - db "SKIPLOOM@@" - db "JUMPLUFF@@" - db "AIPOM@@@@@" - db "SUNKERN@@@" - db "SUNFLORA@@" - db "YANMA@@@@@" - db "WOOPER@@@@" - db "QUAGSIRE@@" - db "ESPEON@@@@" - db "UMBREON@@@" - db "MURKROW@@@" - db "SLOWKING@@" - db "MISDREAVUS" - db "UNOWN@@@@@" - db "WOBBUFFET@" - db "GIRAFARIG@" - db "PINECO@@@@" - db "FORRETRESS" - db "DUNSPARCE@" - db "GLIGAR@@@@" - db "STEELIX@@@" - db "SNUBBULL@@" - db "GRANBULL@@" - db "QWILFISH@@" - db "SCIZOR@@@@" - db "SHUCKLE@@@" - db "HERACROSS@" - db "SNEASEL@@@" - db "TEDDIURSA@" - db "URSARING@@" - db "SLUGMA@@@@" - db "MAGCARGO@@" - db "SWINUB@@@@" - db "PILOSWINE@" - db "CORSOLA@@@" - db "REMORAID@@" - db "OCTILLERY@" - db "DELIBIRD@@" - db "MANTINE@@@" - db "SKARMORY@@" - db "HOUNDOUR@@" - db "HOUNDOOM@@" - db "KINGDRA@@@" - db "PHANPY@@@@" - db "DONPHAN@@@" - db "PORYGON2@@" - db "STANTLER@@" - db "SMEARGLE@@" - db "TYROGUE@@@" - db "HITMONTOP@" - db "SMOOCHUM@@" - db "ELEKID@@@@" - db "MAGBY@@@@@" - db "MILTANK@@@" - db "BLISSEY@@@" - db "RAIKOU@@@@" - db "ENTEI@@@@@" - db "SUICUNE@@@" - db "LARVITAR@@" - db "PUPITAR@@@" - db "TYRANITAR@" - db "LUGIA@@@@@" - db "HO-OH@@@@@" - db "CELEBI@@@@" + dname "BULBASAUR" + dname "IVYSAUR" + dname "VENUSAUR" + dname "CHARMANDER" + dname "CHARMELEON" + dname "CHARIZARD" + dname "SQUIRTLE" + dname "WARTORTLE" + dname "BLASTOISE" + dname "CATERPIE" + dname "METAPOD" + dname "BUTTERFREE" + dname "WEEDLE" + dname "KAKUNA" + dname "BEEDRILL" + dname "PIDGEY" + dname "PIDGEOTTO" + dname "PIDGEOT" + dname "RATTATA" + dname "RATICATE" + dname "SPEAROW" + dname "FEAROW" + dname "EKANS" + dname "ARBOK" + dname "PIKACHU" + dname "RAICHU" + dname "SANDSHREW" + dname "SANDSLASH" + dname "NIDORAN♀" + dname "NIDORINA" + dname "NIDOQUEEN" + dname "NIDORAN♂" + dname "NIDORINO" + dname "NIDOKING" + dname "CLEFAIRY" + dname "CLEFABLE" + dname "VULPIX" + dname "NINETALES" + dname "JIGGLYPUFF" + dname "WIGGLYTUFF" + dname "ZUBAT" + dname "GOLBAT" + dname "ODDISH" + dname "GLOOM" + dname "VILEPLUME" + dname "PARAS" + dname "PARASECT" + dname "VENONAT" + dname "VENOMOTH" + dname "DIGLETT" + dname "DUGTRIO" + dname "MEOWTH" + dname "PERSIAN" + dname "PSYDUCK" + dname "GOLDUCK" + dname "MANKEY" + dname "PRIMEAPE" + dname "GROWLITHE" + dname "ARCANINE" + dname "POLIWAG" + dname "POLIWHIRL" + dname "POLIWRATH" + dname "ABRA" + dname "KADABRA" + dname "ALAKAZAM" + dname "MACHOP" + dname "MACHOKE" + dname "MACHAMP" + dname "BELLSPROUT" + dname "WEEPINBELL" + dname "VICTREEBEL" + dname "TENTACOOL" + dname "TENTACRUEL" + dname "GEODUDE" + dname "GRAVELER" + dname "GOLEM" + dname "PONYTA" + dname "RAPIDASH" + dname "SLOWPOKE" + dname "SLOWBRO" + dname "MAGNEMITE" + dname "MAGNETON" + dname "FARFETCH'D" + dname "DODUO" + dname "DODRIO" + dname "SEEL" + dname "DEWGONG" + dname "GRIMER" + dname "MUK" + dname "SHELLDER" + dname "CLOYSTER" + dname "GASTLY" + dname "HAUNTER" + dname "GENGAR" + dname "ONIX" + dname "DROWZEE" + dname "HYPNO" + dname "KRABBY" + dname "KINGLER" + dname "VOLTORB" + dname "ELECTRODE" + dname "EXEGGCUTE" + dname "EXEGGUTOR" + dname "CUBONE" + dname "MAROWAK" + dname "HITMONLEE" + dname "HITMONCHAN" + dname "LICKITUNG" + dname "KOFFING" + dname "WEEZING" + dname "RHYHORN" + dname "RHYDON" + dname "CHANSEY" + dname "TANGELA" + dname "KANGASKHAN" + dname "HORSEA" + dname "SEADRA" + dname "GOLDEEN" + dname "SEAKING" + dname "STARYU" + dname "STARMIE" + dname "MR.MIME" + dname "SCYTHER" + dname "JYNX" + dname "ELECTABUZZ" + dname "MAGMAR" + dname "PINSIR" + dname "TAUROS" + dname "MAGIKARP" + dname "GYARADOS" + dname "LAPRAS" + dname "DITTO" + dname "EEVEE" + dname "VAPOREON" + dname "JOLTEON" + dname "FLAREON" + dname "PORYGON" + dname "OMANYTE" + dname "OMASTAR" + dname "KABUTO" + dname "KABUTOPS" + dname "AERODACTYL" + dname "SNORLAX" + dname "ARTICUNO" + dname "ZAPDOS" + dname "MOLTRES" + dname "DRATINI" + dname "DRAGONAIR" + dname "DRAGONITE" + dname "MEWTWO" + dname "MEW" + dname "CHIKORITA" + dname "BAYLEEF" + dname "MEGANIUM" + dname "CYNDAQUIL" + dname "QUILAVA" + dname "TYPHLOSION" + dname "TOTODILE" + dname "CROCONAW" + dname "FERALIGATR" + dname "SENTRET" + dname "FURRET" + dname "HOOTHOOT" + dname "NOCTOWL" + dname "LEDYBA" + dname "LEDIAN" + dname "SPINARAK" + dname "ARIADOS" + dname "CROBAT" + dname "CHINCHOU" + dname "LANTURN" + dname "PICHU" + dname "CLEFFA" + dname "IGGLYBUFF" + dname "TOGEPI" + dname "TOGETIC" + dname "NATU" + dname "XATU" + dname "MAREEP" + dname "FLAAFFY" + dname "AMPHAROS" + dname "BELLOSSOM" + dname "MARILL" + dname "AZUMARILL" + dname "SUDOWOODO" + dname "POLITOED" + dname "HOPPIP" + dname "SKIPLOOM" + dname "JUMPLUFF" + dname "AIPOM" + dname "SUNKERN" + dname "SUNFLORA" + dname "YANMA" + dname "WOOPER" + dname "QUAGSIRE" + dname "ESPEON" + dname "UMBREON" + dname "MURKROW" + dname "SLOWKING" + dname "MISDREAVUS" + dname "UNOWN" + dname "WOBBUFFET" + dname "GIRAFARIG" + dname "PINECO" + dname "FORRETRESS" + dname "DUNSPARCE" + dname "GLIGAR" + dname "STEELIX" + dname "SNUBBULL" + dname "GRANBULL" + dname "QWILFISH" + dname "SCIZOR" + dname "SHUCKLE" + dname "HERACROSS" + dname "SNEASEL" + dname "TEDDIURSA" + dname "URSARING" + dname "SLUGMA" + dname "MAGCARGO" + dname "SWINUB" + dname "PILOSWINE" + dname "CORSOLA" + dname "REMORAID" + dname "OCTILLERY" + dname "DELIBIRD" + dname "MANTINE" + dname "SKARMORY" + dname "HOUNDOUR" + dname "HOUNDOOM" + dname "KINGDRA" + dname "PHANPY" + dname "DONPHAN" + dname "PORYGON2" + dname "STANTLER" + dname "SMEARGLE" + dname "TYROGUE" + dname "HITMONTOP" + dname "SMOOCHUM" + dname "ELEKID" + dname "MAGBY" + dname "MILTANK" + dname "BLISSEY" + dname "RAIKOU" + dname "ENTEI" + dname "SUICUNE" + dname "LARVITAR" + dname "PUPITAR" + dname "TYRANITAR" + dname "LUGIA" + dname "HO-OH" + dname "CELEBI" assert_table_length NUM_POKEMON - db "?????@@@@@" - db "EGG@@@@@@@" + dname "?????" + dname "EGG" assert_table_length EGG - db "?????@@@@@" - db "?????@@@@@" - db "?????@@@@@" + dname "?????" + dname "?????" + dname "?????" assert_table_length $100 diff --git a/engine/movie/trade_animation.asm b/engine/movie/trade_animation.asm index a949b50b..3d26c1b3 100644 --- a/engine/movie/trade_animation.asm +++ b/engine/movie/trade_animation.asm @@ -1354,13 +1354,14 @@ DebugTrade: ; unreferenced MACRO debugtrade ; species, ot name, ot id - db \1, \2 + db \1 + dname \2, NAME_LENGTH_JAPANESE dw \3 ENDM .DebugTradeData: - debugtrade VENUSAUR, "ゲーフり@@", $0123 ; GAME FREAK - debugtrade CHARIZARD, "クりーチャ@", $0456 ; Creatures Inc. + debugtrade VENUSAUR, "ゲーフり", $0123 ; GAME FREAK + debugtrade CHARIZARD, "クりーチャ", $0456 ; Creatures Inc. TradeGameBoyTilemap: INCBIN "gfx/trade/game_boy.tilemap" ; 6x8 TradeLinkTubeTilemap: INCBIN "gfx/trade/link_cable.tilemap" ; 12x3 diff --git a/macros/data.asm b/macros/data.asm index e6694e36..5b1e9e1d 100644 --- a/macros/data.asm +++ b/macros/data.asm @@ -119,6 +119,18 @@ MACRO dba_pics ; front, back endc ENDM +MACRO dname + if _NARG == 2 + def n = \2 + else + def n = NAME_LENGTH - 1 + endc + assert STRFIND(\1, "@") == -1, "String terminator \"@\" in name: \1" + assert CHARLEN(\1) <= n, "Name longer than {d:n} characters: \1" + db \1 + ds n - CHARLEN(\1), "@" +ENDM + MACRO bcd rept _NARG dn ((\1) % 100) / 10, (\1) % 10