shithub: pokered

Download patch

ref: a8dbea888b33f5889d42b2d1389e20c88ff61dff
parent: c04a77529ad71d190f2add9bf51d1ea40517bbb0
author: IIMarckus <iimarckus@gmail.com>
date: Thu Dec 15 13:05:30 EST 2011

Poké Ball animation code cleanup.

hg-commit-id: 812dc01df153


--- a/constants.asm
+++ b/constants.asm
@@ -71,11 +71,13 @@
 
 W_TRAINERCLASS EQU $D031
 
+W_BATTLETYPE EQU $D057 ; in a wild battle, this is 1
+                       ; in a trainer battle, this is 2
+
 W_CUROPPONENT EQU $D059 ; in a wild battle, this is the species of pokemon
 			; in a trainer battle, this is the trainer class + $C8
 
 W_LONEATTACKNO EQU $D05C ; which entry in LoneAttacks to use
-W_ISTRAINERBATTLE EQU $D057 ; boolean
 W_TRAINERNO    EQU $D05D ; which instance of [youngster, lass, etc] is this?
 
 W_CURENEMYLVL EQU $D127
@@ -789,10 +791,15 @@
 SUBSTITUTE   EQU $A4
 STRUGGLE     EQU $A5
 ; these do double duty as animation identifiers
+SHOWPIC_ANIM EQU $A6 ; redraw monster pic
 SLP_ANIM     EQU $BD ; sleeping monster
 CONF_ANIM    EQU $BF ; confused monster
-TOSS_ANIM    EQU $C1 ; try to catch a monster
-SEND_ANIM    EQU $C3 ; send out a monster
+TOSS_ANIM    EQU $C1 ; toss Poké Ball
+POOF_ANIM    EQU $C3 ; puff of smoke
+BLOCKBALL_ANIM EQU $C4 ; trainer knocks away Poké Ball
+GREATTOSS_ANIM EQU $C5 ; toss Great Ball
+ULTRATOSS_ANIM EQU $C6 ; toss Ultra Ball or Master Ball
+HIDEPIC_ANIM EQU $C8 ; monster disappears
 
 ; super game boy palettes
 PAL_ROUTE     EQU $00
--- a/pokered.asm
+++ b/pokered.asm
@@ -5658,7 +5658,7 @@
 TrainerAI: ; 652E
 ;XXX called at 34964, 3c342, 3c398
 	and a
-	ld a,[W_ISTRAINERBATTLE]
+	ld a,[W_BATTLETYPE]
 	dec a
 	ret z ; if not a trainer, we're done here
 	ld a,[W_ISLINKBATTLE]
@@ -10072,52 +10072,61 @@
 INCBIN "baserom.gbc",$78DDB,$79E16 - $78DDB
 
 TossBallAnimation: ; 5E16
-	ld a,[$D057]
+	ld a,[W_BATTLETYPE]
 	cp a,2
-	jr z,.next4\@
+	jr z,.BlockBall\@ ; if in trainer battle, play different animation
 	ld a,[$D11E]
 	ld b,a
+
+	; upper nybble: how many animations (from PokeBallAnimations) to play
+	; this will be 4 for successful capture, 6 for breakout
 	and a,$F0
 	swap a
 	ld c,a
+
+	; lower nybble: number of shakes
+	; store these for later
 	ld a,b
 	and a,$F
 	ld [$CD3D],a
-	ld hl,.Pointer5E50
+
+	ld hl,.PokeBallAnimations
+	; choose which toss animation to use
 	ld a,[$CF91]
-	cp a,4
-	ld b,$C1
-	jr z,.next2\@
-	cp a,3
-	ld b,$C5
-	jr z,.next2\@
-	ld b,$C6
-.next2\@
+	cp a,POKE_BALL
+	ld b,TOSS_ANIM
+	jr z,.done\@
+	cp a,GREAT_BALL
+	ld b,GREATTOSS_ANIM
+	jr z,.done\@
+	ld b,ULTRATOSS_ANIM
+.done\@
 	ld a,b
-.next3\@
+.PlayNextAnimation\@
 	ld [$D07C],a
 	push bc
 	push hl
-	call $40F1
+	call PlayAnimation
 	pop hl
 	ld a,[hli]
 	pop bc
 	dec c
-	jr nz,.next3\@
+	jr nz,.PlayNextAnimation\@
 	ret
 
-.Pointer5E50: ; 5E50
-	db $C3,$C8,$C2,$C3,$A6 ; XXX what is this
+.PokeBallAnimations: ; 5E50
+; sequence of animations that make up the Poké Ball toss
+	db POOF_ANIM,HIDEPIC_ANIM,$C2,POOF_ANIM,SHOWPIC_ANIM
 
-.next4\@ ; 5E55
+.BlockBall\@ ; 5E55
 	ld a,$C1
 	ld [$D07C],a
-	call $40F1
+	call PlayAnimation
 	ld a,$95
-	call $23B1
-	ld a,$C4
+	call $23B1 ; play sound effect
+	ld a,BLOCKBALL_ANIM
 	ld [$D07C],a
-	jp $40F1
+	jp PlayAnimation
 
 INCBIN "baserom.gbc",$79E6A,$7C000 - $79E6A