summaryrefslogtreecommitdiff
path: root/main.asm
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2013-12-13 01:07:16 -0500
committeryenatch <yenatch@gmail.com>2013-12-13 01:07:16 -0500
commit5708d855e583b8c7a3b4b033759062c98a82ade1 (patch)
treea13aa3d55b73cfed0fe3ad33c14b978748ff782c /main.asm
parent1b7e44c7291b9529e5d2f7d54fc5564f62879a93 (diff)
pokeball wobbling
Diffstat (limited to 'main.asm')
-rw-r--r--main.asm103
1 files changed, 73 insertions, 30 deletions
diff --git a/main.asm b/main.asm
index 7bb3c39b2..1a167a29d 100644
--- a/main.asm
+++ b/main.asm
@@ -14283,56 +14283,95 @@ Function7969: ; 7969
; no known jump sources
-Functionf971: ; f971 (3:7971)
+GetPokeBallWobble: ; f971 (3:7971)
+; Returns whether a Poke Ball will wobble in the catch animation.
+; Whether a Pokemon is caught is determined beforehand.
+
push de
- ld a, [rSVBK] ; $ff00+$70
+
+ ld a, [rSVBK]
ld d, a
push de
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- ld a, [Buffer2] ; $d1eb (aliases: MovementType)
+
+ ld a, 1 ; BANK(Buffer2)
+ ld [rSVBK], a
+
+ ld a, [Buffer2]
inc a
- ld [Buffer2], a ; $d1eb (aliases: MovementType)
- cp $4
- jr z, .asm_f9a8
+ ld [Buffer2], a
+
+; Wobble up to 3 times.
+ cp 3 + 1
+ jr z, .finished
+
ld a, [$c64e]
and a
- ld c, $0
- jr nz, .asm_f9b2
- ld hl, $79ba
- ld a, [Buffer1] ; $d1ea (aliases: MagikarpLength)
+ ld c, 0 ; next
+ jr nz, .done
+
+ ld hl, WobbleChances
+ ld a, [Buffer1]
ld b, a
-.asm_f994
+.loop
ld a, [hli]
cp b
- jr nc, .asm_f99b
+ jr nc, .checkwobble
inc hl
- jr .asm_f994
-.asm_f99b
+ jr .loop
+
+.checkwobble
ld b, [hl]
call Random
cp b
- ld c, $0
- jr c, .asm_f9b2
- ld c, $2
- jr .asm_f9b2
-.asm_f9a8
+ ld c, 0 ; next
+ jr c, .done
+ ld c, 2 ; escaped
+ jr .done
+
+.finished
ld a, [$c64e]
and a
- ld c, $1
- jr nz, .asm_f9b2
- ld c, $2
-.asm_f9b2
+ ld c, 1 ; caught
+ jr nz, .done
+ ld c, 2 ; escaped
+
+.done
pop de
ld e, a
ld a, d
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld a, e
pop de
ret
; f9ba (3:79ba)
-INCBIN "baserom.gbc",$f9ba,$f9ea - $f9ba
+WobbleChances: ; f9ba
+; catch rate, chance of wobbling / 255
+ db 1, 63
+ db 2, 75
+ db 3, 84
+ db 4, 90
+ db 5, 95
+ db 7, 103
+ db 10, 113
+ db 15, 126
+ db 20, 134
+ db 30, 149
+ db 40, 160
+ db 50, 169
+ db 60, 177
+ db 80, 191
+ db 100, 201
+ db 120, 211
+ db 140, 220
+ db 160, 227
+ db 180, 234
+ db 200, 240
+ db 220, 246
+ db 240, 251
+ db 254, 253
+ db 255, 255
+; f9ea
Functionf9ea: ; f9ea
@@ -14351,13 +14390,17 @@ Functionf9ea: ; f9ea
ret
.asm_f9fe
- ld hl, $7a06
+ ld hl, UnknownText_0xfa06
call PrintText
scf
ret
; fa06
-INCBIN "baserom.gbc",$fa06,$fa0b - $fa06
+UnknownText_0xfa06: ; 0xfa06
+ ; knows @ .
+ text_jump UnknownText_0x1c5ea8
+ db "@"
+; 0xfa0b
SECTION "bank4", ROMX, BANK[$4]
@@ -87809,7 +87852,7 @@ Functioncc5b3: ; cc5b3 (33:45b3)
; no known jump sources
BattleAnimCmd_DB: ; cc5d0 (33:45d0)
- callab Functionf971
+ callab GetPokeBallWobble
ld a, c
ld [$d416], a
ret