Pokemon animations

This commit is contained in:
PikalaxALT 2015-11-07 09:48:32 -05:00
parent e044580669
commit 2cbb1acc6e
11 changed files with 324 additions and 304 deletions

View File

@ -576,7 +576,7 @@ AI_Smart_Explosion: ; 388a6
; Unless this is the enemy's last Pokemon...
push hl
callba CountEnemyAliveMons
callba CheckEnemyHasMonToSwitchTo
pop hl
jr nc, .asm_388b7
@ -2028,7 +2028,7 @@ endr
jp nz, AIDiscourageMove
push hl
callba CountEnemyAliveMons
callba CheckEnemyHasMonToSwitchTo
pop hl
jr nc, .asm_38eb0
@ -2160,7 +2160,7 @@ endr
AI_Smart_PerishSong: ; 38f4a
push hl
callab CountEnemyAliveMons
callab CheckEnemyHasMonToSwitchTo
pop hl
jr c, .no

View File

@ -184,7 +184,7 @@ endr
CheckAbleToSwitch: ; 34941
xor a
ld [wc717], a
call CountEnemyAliveMons
call CheckEnemyHasMonToSwitchTo
ret c
ld a, [EnemySubStatus1]
@ -197,7 +197,7 @@ CheckAbleToSwitch: ; 34941
; Perish count is 1
call CountEnemyAliveMons
call CheckEnemyHasMonToSwitchTo
call Function34b77
call Function34b20
call Function34a85
@ -212,7 +212,7 @@ CheckAbleToSwitch: ; 34941
ret
.not_2
call CountEnemyAliveMons
call CheckEnemyHasMonToSwitchTo
sla c
sla c
ld b, $ff
@ -284,7 +284,7 @@ CheckAbleToSwitch: ; 34941
cp 10
ret nc
call CountEnemyAliveMons
call CheckEnemyHasMonToSwitchTo
call Function34b77
call Function34b20
call Function34a85
@ -300,7 +300,7 @@ CheckAbleToSwitch: ; 34941
; 349f4
CountEnemyAliveMons: ; 349f4
CheckEnemyHasMonToSwitchTo: ; 349f4
ld a, [OTPartyCount]
cp 2
jr c, .only_one

View File

@ -92,7 +92,7 @@ Function3c000: ; 3c000
call SendOutPkmnText
call NewBattleMonStatus
call BreakAttraction
call Function3db5f
call SendOutPlayerMon
call EmptyBattleTextBox
call LoadTileMapToTempTileMap
call SetPlayerTurn
@ -2928,7 +2928,7 @@ Function3d227: ; 3d227
call SendOutPkmnText
call NewBattleMonStatus
call BreakAttraction
call Function3db5f
call SendOutPlayerMon
call EmptyBattleTextBox
call LoadTileMapToTempTileMap
call SetPlayerTurn
@ -2950,7 +2950,7 @@ Function3d2b3: ; 3d2b3
call SendOutPkmnText
call NewBattleMonStatus
call BreakAttraction
call Function3db5f
call SendOutPlayerMon
call EmptyBattleTextBox
call LoadTileMapToTempTileMap
call SetPlayerTurn
@ -3755,31 +3755,31 @@ Function_SetEnemyPkmnAndSendOutAnimation: ; 3d7c7
call Call_PlayBattleAnim
call BattleCheckEnemyShininess
jr nc, .asm_3d800
jr nc, .not_shiny
ld a, 1 ; shiny anim
ld [wKickCounter], a
ld de, ANIM_SEND_OUT_MON
call Call_PlayBattleAnim
.asm_3d800
.not_shiny
ld bc, TempMonSpecies
callba Function4e53f
jr c, .asm_3d82c
callba CheckFaintedFrzSlp
jr c, .skip_cry
callba CheckBattleScene
jr c, .asm_3d821
jr c, .cry_no_anim
hlcoord 12, 0
ld d, $0
ld e, $0
predef Functiond008e
jr .asm_3d82c
ld e, ANIM_MON_SLOW
predef AnimateFrontpic
jr .skip_cry
.asm_3d821
.cry_no_anim
ld a, $f
ld [CryTracks], a
ld a, [TempEnemyMonSpecies]
call PlayStereoCry
.asm_3d82c
.skip_cry
call UpdateEnemyHUD
ld a, $1
ld [hBGMapMode], a
@ -4207,7 +4207,7 @@ endr
; 3db32
Function3db32: ; 3db32
SwitchPlayerMon: ; 3db32
call ClearSprites
ld a, [CurBattleMon]
ld [LastPlayerMon], a
@ -4218,7 +4218,7 @@ Function3db32: ; 3db32
call ResetPlayerStatLevels
call NewBattleMonStatus
call BreakAttraction
call Function3db5f
call SendOutPlayerMon
call EmptyBattleTextBox
call LoadTileMapToTempTileMap
ld hl, EnemyMonHP
@ -4228,7 +4228,7 @@ Function3db32: ; 3db32
; 3db5f
Function3db5f: ; 3db5f
SendOutPlayerMon: ; 3db5f
ld hl, BattleMonDVs
predef GetUnownLetter
hlcoord 1, 5
@ -4259,25 +4259,25 @@ Function3db5f: ; 3db5f
ld de, ANIM_SEND_OUT_MON
call Call_PlayBattleAnim
call BattleCheckPlayerShininess
jr nc, .asm_3dbbc
jr nc, .not_shiny
ld a, $1
ld [wKickCounter], a
ld de, ANIM_SEND_OUT_MON
call Call_PlayBattleAnim
.asm_3dbbc
.not_shiny
ld a, MON_SPECIES
call GetPartyParamLocation
ld b, h
ld c, l
callba Function4e53f
jr c, .asm_3dbd6
callba CheckFaintedFrzSlp
jr c, .statused
ld a, $f0
ld [CryTracks], a
ld a, [CurPartySpecies]
call PlayStereoCry
.asm_3dbd6
.statused
call UpdatePlayerHUD
ld a, $1
ld [hBGMapMode], a
@ -5528,7 +5528,7 @@ BattleMonEntrance: ; 3e40b
call SendOutPkmnText
call NewBattleMonStatus
call BreakAttraction
call Function3db5f
call SendOutPlayerMon
call EmptyBattleTextBox
call LoadTileMapToTempTileMap
call SetPlayerTurn
@ -5553,7 +5553,7 @@ PassedBattleMonEntrance: ; 3e459
xor a
ld [wd265], a
call ApplyStatLevelMultiplierOnAllStats
call Function3db5f
call SendOutPlayerMon
call EmptyBattleTextBox
call LoadTileMapToTempTileMap
call SetPlayerTurn
@ -9556,15 +9556,15 @@ BattleStartMessage: ; 3fc8b
jr c, .skip_cry
callba CheckBattleScene
jr c, .do_cry
jr c, .cry_no_anim
hlcoord 12, 0
ld d, $0
ld e, $1
predef Functiond008e
ld e, ANIM_MON_NORMAL
predef AnimateFrontpic
jr .skip_cry
.do_cry
.cry_no_anim
ld a, $0f
ld [CryTracks], a
ld a, [TempEnemyMonSpecies]

View File

@ -6555,41 +6555,42 @@ BattleCommand_ForceSwitch: ; 3680f
ld a, [BattleType]
cp BATTLETYPE_SHINY
jp z, .asm_36969
jp z, .fail
cp BATTLETYPE_TRAP
jp z, .asm_36969
jp z, .fail
cp BATTLETYPE_CELEBI
jp z, .asm_36969
jp z, .fail
cp BATTLETYPE_SUICUNE
jp z, .asm_36969
jp z, .fail
ld a, [hBattleTurn]
and a
jp nz, .asm_368cd
jp nz, .force_player_switch
ld a, [AttackMissed]
and a
jr nz, .asm_36852 ; 36830 $20
jr nz, .missed ; 36830 $20
ld a, [wBattleMode]
dec a
jr nz, .asm_36869 ; 36836 $31
jr nz, .trainer ; 36836 $31
ld a, [CurPartyLevel]
ld b, a
ld a, [BattleMonLevel]
cp b
jr nc, .asm_36855 ; 36840 $13
jr nc, .wild_force_flee ; 36840 $13
add b
ld c, a
inc c
.asm_36845
.random_loop_wild
call BattleRandom
cp c
jr nc, .asm_36845 ; 36849 $fa
jr nc, .random_loop_wild ; 36849 $fa
srl b
srl b
cp b
jr nc, .asm_36855 ; 36850 $3
.asm_36852
jp .asm_36969
.asm_36855
jr nc, .wild_force_flee ; 36850 $3
.missed
jp .fail
.wild_force_flee
call UpdateBattleMonInParty
xor a
ld [wcfca], a
@ -6597,13 +6598,14 @@ BattleCommand_ForceSwitch: ; 3680f
ld [wd232], a
call SetBattleDraw
ld a, [wPlayerMoveStruct + MOVE_ANIM]
jp .asm_36975
.asm_36869
call CountEnemyAliveMons
jr c, .asm_368ca ; 3686c $5c
jp .succeed
.trainer
call CheckEnemyHasMonToSwitchTo
jr c, .switch_fail ; 3686c $5c
ld a, [wc70f]
and a
jr z, .asm_368ca ; 36872 $56
jr z, .switch_fail ; 36872 $56
call UpdateEnemyMonInParty
ld a, $1
ld [wKickCounter], a
@ -6613,19 +6615,20 @@ BattleCommand_ForceSwitch: ; 3680f
hlcoord 1, 0
lb bc, 4, 10
call ClearBox
ld c, $14
ld c, 20
call DelayFrames
ld a, [OTPartyCount]
ld b, a
ld a, [CurOTMon]
ld c, a
.asm_3689a
; select a random enemy mon to switch to
.random_loop_trainer
call BattleRandom
and $7
cp b
jr nc, .asm_3689a ; 368a0 $f8
jr nc, .random_loop_trainer ; 368a0 $f8
cp c
jr z, .asm_3689a ; 368a3 $f5
jr z, .random_loop_trainer ; 368a3 $f5
push af
push bc
ld hl, OTPartyMon1HP
@ -6634,7 +6637,7 @@ BattleCommand_ForceSwitch: ; 3680f
or [hl]
pop bc
pop de
jr z, .asm_3689a ; 368b1 $e7
jr z, .random_loop_trainer ; 368b1 $e7
ld a, d
inc a
ld [wc718], a
@ -6646,41 +6649,41 @@ BattleCommand_ForceSwitch: ; 3680f
ld hl, SpikesDamage
jp CallBattleCore
.asm_368ca
jp .asm_36969
.switch_fail
jp .fail
.asm_368cd
.force_player_switch
ld a, [AttackMissed]
and a
jr nz, .asm_368f3
jr nz, .player_miss
ld a, [wBattleMode]
dec a
jr nz, .asm_36908
jr nz, .vs_trainer
ld a, [BattleMonLevel]
ld b, a
ld a, [CurPartyLevel]
cp b
jr nc, .asm_368f5
jr nc, .wild_succeed_playeristarget
add b
ld c, a
inc c
.asm_368e6
.wild_random_loop_playeristarget
call BattleRandom
cp c
jr nc, .asm_368e6
jr nc, .wild_random_loop_playeristarget
srl b
srl b
cp b
jr nc, .asm_368f5
jr nc, .wild_succeed_playeristarget
.asm_368f3
jr .asm_36969
.player_miss
jr .fail
.asm_368f5
.wild_succeed_playeristarget
call UpdateBattleMonInParty
xor a
ld [wcfca], a
@ -6688,39 +6691,39 @@ BattleCommand_ForceSwitch: ; 3680f
ld [wd232], a
call SetBattleDraw
ld a, [wEnemyMoveStruct + MOVE_ANIM]
jr .asm_36975
jr .succeed
.asm_36908
call Function36994
jr c, .asm_36969
.vs_trainer
call CheckPlayerHasMonToSwitchTo
jr c, .fail
ld a, [wc70f]
cp $1
jr z, .asm_368ca
jr z, .switch_fail
call UpdateBattleMonInParty
ld a, $1
ld [wKickCounter], a
call AnimateCurrentMove
ld c, $14
ld c, 20
call DelayFrames
hlcoord 9, 7
lb bc, 5, 11
call ClearBox
ld c, $14
ld c, 20
call DelayFrames
ld a, [PartyCount]
ld b, a
ld a, [CurBattleMon]
ld c, a
.asm_3693a
.random_loop_trainer_playeristarget
call BattleRandom
and $7
cp b
jr nc, .asm_3693a
jr nc, .random_loop_trainer_playeristarget
cp c
jr z, .asm_3693a
jr z, .random_loop_trainer_playeristarget
push af
push bc
@ -6730,11 +6733,11 @@ BattleCommand_ForceSwitch: ; 3680f
or [hl]
pop bc
pop de
jr z, .asm_3693a
jr z, .random_loop_trainer_playeristarget
ld a, d
ld [CurPartyMon], a
ld hl, Function3db32
ld hl, SwitchPlayerMon
call CallBattleCore
ld hl, DraggedOutText
@ -6743,57 +6746,57 @@ BattleCommand_ForceSwitch: ; 3680f
ld hl, SpikesDamage
jp CallBattleCore
.asm_36969
.fail
call BattleCommand_LowerSub
call BattleCommand_MoveDelay
call BattleCommand_RaiseSub
jp PrintButItFailed
.asm_36975
.succeed
push af
call SetBattleDraw
ld a, $1
ld [wKickCounter], a
call AnimateCurrentMove
ld c, $14
ld c, 20
call DelayFrames
pop af
ld hl, FledInFearText
cp $2e
jr z, .asm_36991
cp ROAR
jr z, .do_text
ld hl, BlownAwayText
.asm_36991
.do_text
jp StdBattleTextBox
; 36994
Function36994: ; 36994
CheckPlayerHasMonToSwitchTo: ; 36994
ld a, [PartyCount]
ld d, a
ld e, 0
ld bc, PARTYMON_STRUCT_LENGTH
.asm_3699d
.loop
ld a, [CurBattleMon]
cp e
jr z, .asm_369ae
jr z, .next
ld a, e
ld hl, PartyMon1HP
call AddNTimes
ld a, [hli]
or [hl]
jr nz, .asm_369b4
jr nz, .not_fainted
.asm_369ae
.next
inc e
dec d
jr nz, .asm_3699d
jr nz, .loop
scf
ret
.asm_369b4
.not_fainted
and a
ret
; 369b6

View File

@ -60,3 +60,14 @@ ANIM_BG_PSYCHIC EQU $29
ANIM_BG_VIBRATE_MON EQU $33
ANIM_BG_WOBBLE_MON EQU $34
const_def
const ANIM_MON_SLOW ; 0
const ANIM_MON_NORMAL ; 1
const ANIM_MON_MENU ; 2
const ANIM_MON_TRADE ; 3
const ANIM_MON_EVOLVE ; 4
const ANIM_MON_HATCH ; 5
const ANIM_MON_UNUSED ; 6
const ANIM_MON_EGG1 ; 7
const ANIM_MON_EGG2 ; 8

View File

@ -98,10 +98,10 @@ PredefPointers:: ; 856b
add_predef CheckTypeMatchup
add_predef ConvertMon_1to2
add_predef Functionfb877
add_predef Functiond0000
add_predef AnimateMon_Slow_Normal
add_predef PlaceStatusString
add_predef Functiond00a3
add_predef Functiond008e
add_predef LoadMonAnimation
add_predef AnimateFrontpic
add_predef Functiond0669 ; $48
add_predef Functiond066e
dbw $ff, Function2d43 ; ????

File diff suppressed because it is too large Load Diff

View File

@ -217,10 +217,10 @@ LoadTileMapToTempTileMap:: ; 309d
; Load TileMap into TempTileMap
ld a, [rSVBK]
push af
ld a, BANK(w2_d000)
ld a, BANK(TempTileMap)
ld [rSVBK], a
hlcoord 0, 0
ld de, w2_d000
decoord 0, 0, TempTileMap
ld bc, TileMapEnd - TileMap
call CopyBytes
pop af
@ -241,9 +241,9 @@ LoadTempTileMapToTileMap:: ; 30bf
; Load TempTileMap into TileMap
ld a, [rSVBK]
push af
ld a, BANK(w2_d000)
ld a, BANK(TempTileMap)
ld [rSVBK], a
ld hl, w2_d000
hlcoord 0, 0, TempTileMap
decoord 0, 0
ld bc, TileMapEnd - TileMap
call CopyBytes

View File

@ -20039,8 +20039,8 @@ Function1728f: ; 1728f (5:728f)
ld [CurPartySpecies], a
hlcoord 6, 3
ld d, $0
ld e, $5
predef Functiond008e
ld e, ANIM_MON_HATCH
predef AnimateFrontpic
pop af
ld [CurSpecies], a
ret
@ -41215,8 +41215,8 @@ Function4d81e: ; 4d81e
ld [CurPartySpecies], a
hlcoord 7, 2
ld d, $0
ld e, $3
predef Functiond008e
ld e, ANIM_MON_TRADE
predef AnimateFrontpic
ret
; 4d860
@ -42738,7 +42738,7 @@ Function4e289: ; 4e289 (13:6289)
hlcoord 0, 0
ld d, $0
ld e, $2
predef Functiond00a3
predef LoadMonAnimation
ld hl, wcf64
set 6, [hl]
ret
@ -42793,7 +42793,7 @@ Function4e2f2: ; 4e2f2 (13:62f2)
ld a, [CurPartySpecies]
cp EGG
jr z, .asm_4e2fe
call Function4e53f
call CheckFaintedFrzSlp
jr c, Function4e305
.asm_4e2fe
xor a
@ -42941,7 +42941,7 @@ Function4e497: ; 4e497 (13:6497)
pop de
hlcoord 0, 0
ld d, $0
predef Functiond00a3
predef LoadMonAnimation
ld hl, wcf64
set 6, [hl]
ret
@ -43016,21 +43016,21 @@ Function4e528: ; 4e528 (13:6528)
jp SkipNames
Function4e53f: ; 4e53f
CheckFaintedFrzSlp: ; 4e53f
ld hl, MON_HP
add hl, bc
ld a, [hli]
or [hl]
jr z, .asm_4e552
jr z, .fainted_frz_slp
ld hl, MON_STATUS
add hl, bc
ld a, [hl]
and (1 << FRZ) | SLP
jr nz, .asm_4e552
jr nz, .fainted_frz_slp
and a
ret
.asm_4e552
.fainted_frz_slp
scf
ret
; 4e554
@ -43248,8 +43248,8 @@ _EvolutionAnimation: ; 4e607
ld [CurPartySpecies], a
hlcoord 7, 2
ld d, $0
ld e, $4
predef Functiond008e
ld e, ANIM_MON_EVOLVE
predef AnimateFrontpic
pop af
ld [CurPartySpecies], a
@ -43393,7 +43393,7 @@ Function4e794: ; 4e794
call GetPartyLocation
ld b, h
ld c, l
callba Function4e53f
callba CheckFaintedFrzSlp
ret
; 4e7a6

View File

@ -284,8 +284,8 @@ Function108219: ; 108219
ld [CurPartySpecies], a
hlcoord 7, 2
ld d, $0
ld e, $3
predef Functiond008e
ld e, ANIM_MON_TRADE
predef AnimateFrontpic
ret
; 108229
@ -293,8 +293,8 @@ Function108229: ; 108229
ld [CurPartySpecies], a
hlcoord 7, 2
ld d, $0
ld e, $3
predef Functiond00a3
ld e, ANIM_MON_TRADE
predef LoadMonAnimation
ret
; 108239
@ -304,7 +304,7 @@ Function108239: ; 108239
call GetPokemonName
ld hl, StringBuffer1
pop de
ld bc, $000b
ld bc, PKMN_NAME_LENGTH
call CopyBytes
ret
; 10824b

View File

@ -2648,20 +2648,19 @@ wGameDataEnd::
SECTION "Pic Animations", WRAMX, BANK [2]
w2_d000::
TempTileMap::
; 20x18 grid of 8x8 tiles
ds SCREEN_WIDTH * SCREEN_HEIGHT ; $168 = 360
w2_d168:: ds 1
w2_d169:: ds 1
w2_d16a:: ds 1
w2_d16b:: ds 1
w2_d16c:: ds 1
w2_d16d:: ds 1
; PokeAnim Header
wPokeAnimSceneIndex:: ds 1
wPokeAnimPointer:: ds 2
wPokeAnimSpecies:: ds 1
wPokeAnimUnownLetter:: ds 1
wPokeAnimSpeciesOrUnown:: ds 1
w2_d16e:: ds 1
w2_d16f:: ds 1
w2_d170:: ds 1
w2_d171:: ds 1
wPokeAnimCoord:: ds 2
wPokeAnimFrontpicHeight:: ds 1
; PokeAnim Data
w2_d172:: ds 1
w2_d173:: ds 1
w2_d174:: ds 1
@ -2677,7 +2676,7 @@ w2_d17d:: ds 1
w2_d17e:: ds 1
w2_d17f:: ds 1
w2_d180:: ds 1
w2_d181:: ds 1
wPokeAnimWaitCounter:: ds 1
w2_d182:: ds 1
w2_d183:: ds 1
w2_d184:: ds 1
@ -2685,6 +2684,8 @@ w2_d185:: ds 1
w2_d186:: ds 1
w2_d187:: ds 1
w2_d188:: ds 1
ds 8
wPokeAnimStructEnd::
SECTION "WRAM 3", WRAMX, BANK [3]