Use dname macro to automatically pad names with "@" characters

This commit is contained in:
Rangi42 2025-08-17 09:44:45 -04:00
parent 9b3df7e0d6
commit 8a6fd6b817
4 changed files with 283 additions and 267 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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