summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorElectroDeoxys <ElectroDeoxys@gmail.com>2019-09-12 18:58:20 +0100
committerElectroDeoxys <ElectroDeoxys@gmail.com>2019-09-12 18:58:20 +0100
commit3fee428ac58c1619ed7439ac6e1436f0dbd83eb2 (patch)
treed44a128d77887404b498096b4862d2ca7f9d8a04 /src
parentfe96fdf1a5bf4fc28f44c8c9d257d063f2c9bbaa (diff)
Disassemble Func_1683b
Diffstat (limited to 'src')
-rw-r--r--src/engine/bank05.asm74
1 files changed, 72 insertions, 2 deletions
diff --git a/src/engine/bank05.asm b/src/engine/bank05.asm
index da50053..055764a 100644
--- a/src/engine/bank05.asm
+++ b/src/engine/bank05.asm
@@ -4438,8 +4438,78 @@ CheckIfEvolutionNeedsEnergyForMove: ; 16805 (5:6805)
ret
; 0x1683b
-Func_1683b ; 1683b (5:683b)
- INCROM $1683b, $1689f
+Func_1683b: ; 1683b (5:683b)
+ ldh a, [hTempPlayAreaLocation_ff9d]
+ add DUELVARS_ARENA_CARD
+ call GetTurnDuelistVariable
+ call LoadCardDataToBuffer2_FromDeckIndex
+
+ ld b, a
+ ld a, [wSelectedMoveIndex]
+ or a
+ jr z, .first_move
+
+; second move
+ ld a, b
+ cp ZAPDOS2
+ jr z, .zapdos2
+ cp CHARIZARD
+ jr z, .charizard_or_exeggcutor
+ cp EXEGGUTOR
+ jr z, .charizard_or_exeggcutor
+ ld hl, wLoadedCard2Move2EnergyCost
+ jr .asm_16861
+.first_move
+ ld hl, wLoadedCard2Move1EnergyCost
+
+.asm_16861
+ ld a, [hli]
+ ld b, a
+ and $f0
+ jr z, .asm_1686b
+ ld e, $02
+ jr .set_carry
+.asm_1686b
+ ld a, b
+ and $0f
+ jr z, .asm_16874
+ ld e, $01
+ jr .set_carry
+.asm_16874
+ ld a, [hli]
+ ld b, a
+ and $f0
+ jr z, .asm_1687e
+ ld e, $04
+ jr .set_carry
+.asm_1687e
+ ld a, b
+ and $0f
+ jr z, .asm_16887
+ ld e, $03
+ jr .set_carry
+.asm_16887
+ ld a, [hli]
+ ld b, a
+ and $f0
+ jr z, .asm_16891
+ ld e, $05
+ jr .set_carry
+.asm_16891
+ ld e, $06
+
+.set_carry
+ lb bc, $01, $00
+ scf
+ ret
+.zapdos2
+ or a
+ ret
+.charizard_or_exeggcutor
+ lb bc, $00, $01
+ scf
+ ret
+; 0x1689f
Func_1689f: ; 1689f (5:689f)
xor a