summaryrefslogtreecommitdiff
path: root/src/engine/bank04.asm
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/bank04.asm')
-rw-r--r--src/engine/bank04.asm539
1 files changed, 537 insertions, 2 deletions
diff --git a/src/engine/bank04.asm b/src/engine/bank04.asm
index b780b36..41c4d28 100644
--- a/src/engine/bank04.asm
+++ b/src/engine/bank04.asm
@@ -1379,8 +1379,543 @@ SetNPCMatchStartTheme: ; 118d3 (4:58d3)
INCLUDE "data/npcs.asm"
-Func_11f4e: ; 11f4e (4:5f4e)
- INCROM $11f4e, $1217b
+_GetNPCDuelConfigurations: ; 11f4e (4:5f4e)
+ push hl
+ push bc
+ push de
+ ld a, [wNPCDuelDeckID]
+ ld e, a
+ ld bc, 9 ; size of struct - 1
+ ld hl, DeckIDDuelConfigurations
+.loop_deck_ids
+ ld a, [hli]
+ cp -1 ; end of list?
+ jr z, .done
+ cp e
+ jr nz, .next_deck_id
+ ld a, [hli]
+ ld [wOpponentPortrait], a
+ ld a, [hli]
+ ld [wOpponentName], a
+ ld a, [hli]
+ ld [wOpponentName + 1], a
+ ld a, [hl]
+ ld [wNPCDuelPrizes], a
+ scf
+ jr .done
+.next_deck_id
+ add hl, bc
+ jr .loop_deck_ids
+.done
+ pop de
+ pop bc
+ pop hl
+ ret
+; 0x11f7d
+
+; this is most likely unreferenced
+; since it expects the duel theme song
+; to be stored in the duel configuration
+; associated with the NPC deck ID,
+; but this isn't found in the actual data
+Func_11f7d: ; 11f7d (4:5f7d)
+ push bc
+ push de
+ ld a, [wNPCDuelDeckID]
+ ld e, a
+ ld bc, 9 ; size of struct - 1
+ ld hl, $5fae
+.loop_deck_ids
+ ld a, [hli]
+ cp -1 ; end of list?
+ jr z, .done
+ cp e
+ jr nz, .next_deck_id
+ push hl
+ ld a, [hli]
+ ld [wOpponentPortrait], a
+ ld a, [hli]
+ ld [wOpponentName], a
+ ld a, [hli]
+ ld [wOpponentName + 1], a
+ inc hl
+ ld a, [hli]
+ ld [wDuelTheme], a
+ pop hl
+ dec hl
+ scf
+ jr .done
+.next_deck_id
+ add hl, bc
+ jr .loop_deck_ids
+.done
+ pop de
+ pop bc
+ ret
+; 0x11fae
+
+DeckIDDuelConfigurations: ; 11fae (4:5fae)
+ db SAMS_PRACTICE_DECK_ID ; deck ID
+ db SAM_PIC ; NPC portrait
+ tx SamNPCName ; name text ID
+ db 2 ; number of prize cards
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db SAMS_NORMAL_DECK_ID ; deck ID
+ db SAM_PIC ; NPC portrait
+ tx SamNPCName ; name text ID
+ db 2 ; number of prize cards
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db LIGHTNING_AND_FIRE_DECK_ID ; deck ID
+ db AARON_PIC ; NPC portrait
+ tx AaronNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $eb ; unknown
+ db $07 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db WATER_AND_FIGHTING_DECK_ID ; deck ID
+ db AARON_PIC ; NPC portrait
+ tx AaronNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $eb ; unknown
+ db $07 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db GRASS_AND_PSYCHIC_DECK_ID ; deck ID
+ db AARON_PIC ; NPC portrait
+ tx AaronNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $eb ; unknown
+ db $07 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db LEGENDARY_MOLTRES_DECK_ID ; deck ID
+ db COURTNEY_PIC ; NPC portrait
+ tx CourtneyNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $04 ; unknown
+ db $ed ; unknown
+ db $07 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db LEGENDARY_ZAPDOS_DECK_ID ; deck ID
+ db STEVE_PIC ; NPC portrait
+ tx SteveNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $04 ; unknown
+ db $ed ; unknown
+ db $07 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db LEGENDARY_ARTICUNO_DECK_ID ; deck ID
+ db JACK_PIC ; NPC portrait
+ tx JackNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $04 ; unknown
+ db $ed ; unknown
+ db $07 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db LEGENDARY_DRAGONITE_DECK_ID ; deck ID
+ db ROD_PIC ; NPC portrait
+ tx RodNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $04 ; unknown
+ db $ed ; unknown
+ db $07 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db FIRST_STRIKE_DECK_ID ; deck ID
+ db MITCH_PIC ; NPC portrait
+ tx MitchNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $03 ; unknown
+ db $ea ; unknown
+ db $07 ; unknown
+ db $f9 ; unknown
+ db $07 ; unknown
+
+ db ROCK_CRUSHER_DECK_ID ; deck ID
+ db GENE_PIC ; NPC portrait
+ tx GeneNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $03 ; unknown
+ db $ea ; unknown
+ db $07 ; unknown
+ db $f9 ; unknown
+ db $07 ; unknown
+
+ db GO_GO_RAIN_DANCE_DECK_ID ; deck ID
+ db AMY_PIC ; NPC portrait
+ tx AmyNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $03 ; unknown
+ db $ea ; unknown
+ db $07 ; unknown
+ db $f8 ; unknown
+ db $07 ; unknown
+
+ db ZAPPING_SELFDESTRUCT_DECK_ID ; deck ID
+ db ISAAC_PIC ; NPC portrait
+ tx IsaacNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $03 ; unknown
+ db $ea ; unknown
+ db $07 ; unknown
+ db $f7 ; unknown
+ db $07 ; unknown
+
+ db FLOWER_POWER_DECK_ID ; deck ID
+ db NIKKI_PIC ; NPC portrait
+ tx NikkiNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $03 ; unknown
+ db $ea ; unknown
+ db $07 ; unknown
+ db $fb ; unknown
+ db $07 ; unknown
+
+ db STRANGE_PSYSHOCK_DECK_ID ; deck ID
+ db MURRAY_PIC ; NPC portrait
+ tx MurrayNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $03 ; unknown
+ db $ea ; unknown
+ db $07 ; unknown
+ db $fa ; unknown
+ db $07 ; unknown
+
+ db WONDERS_OF_SCIENCE_DECK_ID ; deck ID
+ db RICK_PIC ; NPC portrait
+ tx RickNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $03 ; unknown
+ db $ea ; unknown
+ db $07 ; unknown
+ db $fb ; unknown
+ db $07 ; unknown
+
+ db FIRE_CHARGE_DECK_ID ; deck ID
+ db KEN_PIC ; NPC portrait
+ tx KenNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $03 ; unknown
+ db $ea ; unknown
+ db $07 ; unknown
+ db $f6 ; unknown
+ db $07 ; unknown
+
+ db IM_RONALD_DECK_ID ; deck ID
+ db RONALD_PIC ; NPC portrait
+ tx RonaldNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db POWERFUL_RONALD_DECK_ID ; deck ID
+ db RONALD_PIC ; NPC portrait
+ tx RonaldNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db INVINCIBLE_RONALD_DECK_ID ; deck ID
+ db RONALD_PIC ; NPC portrait
+ tx RonaldNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db LEGENDARY_RONALD_DECK_ID ; deck ID
+ db RONALD_PIC ; NPC portrait
+ tx RonaldNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db MUSCLES_FOR_BRAINS_DECK_ID ; deck ID
+ db CHRIS_PIC ; NPC portrait
+ tx ChrisNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f9 ; unknown
+ db $07 ; unknown
+
+ db HEATED_BATTLE_DECK_ID ; deck ID
+ db MICHAEL_PIC ; NPC portrait
+ tx MichaelNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f9 ; unknown
+ db $07 ; unknown
+
+ db LOVE_TO_BATTLE_DECK_ID ; deck ID
+ db JESSICA_PIC ; NPC portrait
+ tx JessicaNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f9 ; unknown
+ db $07 ; unknown
+
+ db EXCAVATION_DECK_ID ; deck ID
+ db RYAN_PIC ; NPC portrait
+ tx RyanNPCName ; name text ID
+ db 3 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f9 ; unknown
+ db $07 ; unknown
+
+ db BLISTERING_POKEMON_DECK_ID ; deck ID
+ db ANDREW_PIC ; NPC portrait
+ tx AndrewNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f9 ; unknown
+ db $07 ; unknown
+
+ db HARD_POKEMON_DECK_ID ; deck ID
+ db MATTHEW_PIC ; NPC portrait
+ tx MatthewNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f9 ; unknown
+ db $07 ; unknown
+
+ db WATERFRONT_POKEMON_DECK_ID ; deck ID
+ db SARA_PIC ; NPC portrait
+ tx SaraNPCName ; name text ID
+ db 2 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f8 ; unknown
+ db $07 ; unknown
+
+ db LONELY_FRIENDS_DECK_ID ; deck ID
+ db AMANDA_PIC ; NPC portrait
+ tx AmandaNPCName ; name text ID
+ db 3 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f8 ; unknown
+ db $07 ; unknown
+
+ db SOUND_OF_THE_WAVES_DECK_ID ; deck ID
+ db JOSHUA_PIC ; NPC portrait
+ tx JoshuaNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f8 ; unknown
+ db $07 ; unknown
+
+ db PIKACHU_DECK_ID ; deck ID
+ db JENNIFER_PIC ; NPC portrait
+ tx JenniferNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f7 ; unknown
+ db $07 ; unknown
+
+ db BOOM_BOOM_SELFDESTRUCT_DECK_ID ; deck ID
+ db NICHOLAS_PIC ; NPC portrait
+ tx NicholasNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f7 ; unknown
+ db $07 ; unknown
+
+ db POWER_GENERATOR_DECK_ID ; deck ID
+ db BRANDON_PIC ; NPC portrait
+ tx BrandonNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f7 ; unknown
+ db $07 ; unknown
+
+ db ETCETERA_DECK_ID ; deck ID
+ db BRITTANY_PIC ; NPC portrait
+ tx BrittanyNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $fb ; unknown
+ db $07 ; unknown
+
+ db FLOWER_GARDEN_DECK_ID ; deck ID
+ db KRISTIN_PIC ; NPC portrait
+ tx KristinNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $fb ; unknown
+ db $07 ; unknown
+
+ db KALEIDOSCOPE_DECK_ID ; deck ID
+ db HEATHER_PIC ; NPC portrait
+ tx HeatherNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $fb ; unknown
+ db $07 ; unknown
+
+ db GHOST_DECK_ID ; deck ID
+ db ROBERT_PIC ; NPC portrait
+ tx RobertNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $fa ; unknown
+ db $07 ; unknown
+
+ db NAP_TIME_DECK_ID ; deck ID
+ db DANIEL_PIC ; NPC portrait
+ tx DanielNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $fa ; unknown
+ db $07 ; unknown
+
+ db STRANGE_POWER_DECK_ID ; deck ID
+ db STEPHANIE_PIC ; NPC portrait
+ tx StephanieNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $fa ; unknown
+ db $07 ; unknown
+
+ db FLYIN_POKEMON_DECK_ID ; deck ID
+ db JOSEPH_PIC ; NPC portrait
+ tx JosephNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $fb ; unknown
+ db $07 ; unknown
+
+ db LOVELY_NIDORAN_DECK_ID ; deck ID
+ db DAVID_PIC ; NPC portrait
+ tx DavidNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $fb ; unknown
+ db $07 ; unknown
+
+ db POISON_DECK_ID ; deck ID
+ db ERIK_PIC ; NPC portrait
+ tx ErikNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $fb ; unknown
+ db $07 ; unknown
+
+ db ANGER_DECK_ID ; deck ID
+ db JOHN_PIC ; NPC portrait
+ tx JohnNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f6 ; unknown
+ db $07 ; unknown
+
+ db FLAMETHROWER_DECK_ID ; deck ID
+ db ADAM_PIC ; NPC portrait
+ tx AdamNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f6 ; unknown
+ db $07 ; unknown
+
+ db RESHUFFLE_DECK_ID ; deck ID
+ db JONATHAN_PIC ; NPC portrait
+ tx JonathanNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f6 ; unknown
+ db $07 ; unknown
+
+ db IMAKUNI_DECK_ID ; deck ID
+ db IMAKUNI_PIC ; NPC portrait
+ tx ImakuniNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $10 ; unknown
+ db $ec ; unknown
+ db $07 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db -1 ; end
OverworldScriptTable: ; 1217b (4:617b)
dw ScriptCommand_EndScript