diff options
| author | U-Fish-PC\Daniel <corrnondacqb@yahoo.com> | 2014-05-29 14:21:41 -0400 | 
|---|---|---|
| committer | U-Fish-PC\Daniel <corrnondacqb@yahoo.com> | 2014-05-29 14:21:41 -0400 | 
| commit | 0221c1831e681dda80b96454e1718f18d640da8b (patch) | |
| tree | 1b41eb57df2bb063eed5a3688dfa77cd3f68f099 /engine/battle | |
| parent | 89be95cdeda1bf2b4eccc2164d835236bd89bba1 (diff) | |
Label and comment BattleTransition
Diffstat (limited to 'engine/battle')
| -rwxr-xr-x | engine/battle/1c.asm | 552 | ||||
| -rwxr-xr-x | engine/battle/core.asm | 2 | 
2 files changed, 289 insertions, 265 deletions
| diff --git a/engine/battle/1c.asm b/engine/battle/1c.asm index 2e7cf82d..d7368835 100755 --- a/engine/battle/1c.asm +++ b/engine/battle/1c.asm @@ -83,9 +83,9 @@ Func_7092a: ; 7092a (1c:492a)  	jr nz, .asm_70948  	ret -Func_7096d: ; 7096d (1c:496d) +BattleTransition: ; 7096d (1c:496d)  	ld a, $1 -	ld [H_AUTOBGTRANSFERENABLED], a ; $ffba +	ld [H_AUTOBGTRANSFERENABLED], a  	call Delay3  	xor a  	ld [$ffb0], a @@ -93,26 +93,26 @@ Func_7096d: ; 7096d (1c:496d)  	ld [wcfcb], a  	call DelayFrame  	ld hl, wSpriteStateData1 + 2 -	ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c +	ld a, [H_DOWNARROWBLINKCNT2]  	ld c, a  	ld b, $0  	ld de, $10 -.asm_70989 +.loop1  	ld a, [hl]  	cp $ff -	jr z, .asm_7098f +	jr z, .skip1  	inc b -.asm_7098f +.skip1  	add hl, de  	dec c -	jr nz, .asm_70989 +	jr nz, .loop1  	ld hl, wOAMBuffer + $10  	ld c, $9 -.asm_70998 +.loop2  	ld a, b  	swap a  	cp l -	jr z, .asm_709a9 +	jr z, .skip2  	push hl  	push bc  	ld bc, $10 @@ -120,22 +120,22 @@ Func_7096d: ; 7096d (1c:496d)  	call FillMemory  	pop bc  	pop hl -.asm_709a9 +.skip2  	ld de, $10  	add hl, de  	dec c -	jr nz, .asm_70998 +	jr nz, .loop2  	call Delay3  	call LoadBattleTransitionTile  	ld bc, $0 -	ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE +	ld a, [W_ISLINKBATTLE]  	cp $4 -	jr z, .asm_709c9 -	call Func_709e2 -	call Func_709ef -	call Func_70a19 -.asm_709c9 -	ld hl, PointerTable_709d2 ; $49d2 +	jr z, .linkBattle +	call GetBattleTransitionID_WildOrTrainer +	call GetBattleTransitionID_CompareLevels +	call GetBattleTransitionID_IsDungeonMap +.linkBattle +	ld hl, BattleTransitions  	add hl, bc  	add hl, bc  	ld a, [hli] @@ -143,94 +143,104 @@ Func_7096d: ; 7096d (1c:496d)  	ld l, a  	jp [hl] -PointerTable_709d2: ; 709d2 (1c:49d2) -	dw Func_70d24 -	dw Func_70a72 -	dw Func_70ce4 -	dw Func_70a72 -	dw Func_70cb4 -	dw Func_70b7f -	dw Func_70c7e -	dw Func_70bca - -Func_709e2: ; 709e2 (1c:49e2) -	ld a, [W_CUROPPONENT] ; wd059 +; the three GetBattleTransitionID functions set the first +; three bits of c, which determines what transition animation +; to play at the beginning of a battle +; bit 0: set if trainer battle +; bit 1: set if enemy is at least 3 levels higher than player +; bit 2: set if dungeon map +BattleTransitions: ; 709d2 (1c:49d2) +	dw BattleTransition_DoubleCircle      ; %000 +	dw BattleTransition_Spiral            ; %001 +	dw BattleTransition_Circle            ; %010 +	dw BattleTransition_Spiral            ; %011 +	dw BattleTransition_HorizontalStripes ; %100 +	dw BattleTransition_Shrink            ; %101 +	dw BattleTransition_VerticalStripes   ; %110 +	dw BattleTransition_Split             ; %111 + +GetBattleTransitionID_WildOrTrainer: ; 709e2 (1c:49e2) +	ld a, [W_CUROPPONENT]  	cp $c8 -	jr nc, .asm_709ec +	jr nc, .trainer  	res 0, c  	ret -.asm_709ec +.trainer  	set 0, c  	ret -Func_709ef: ; 709ef (1c:49ef) -	ld hl, W_PARTYMON1_HP ; wd16c -.asm_709f2 +GetBattleTransitionID_CompareLevels: ; 709ef (1c:49ef) +	ld hl, W_PARTYMON1_HP +.faintedLoop  	ld a, [hli]  	or [hl] -	jr nz, .asm_709fc -	ld de, $2b +	jr nz, .notFainted +	ld de, W_PARTYMON2DATA - (W_PARTYMON1DATA + 1)  	add hl, de -	jr .asm_709f2 -.asm_709fc -	ld de, $1f +	jr .faintedLoop +.notFainted +	ld de, W_PARTYMON1_LEVEL - (W_PARTYMON1_HP + 1)  	add hl, de  	ld a, [hl]  	add $3  	ld e, a -	ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL +	ld a, [W_CURENEMYLVL]  	sub e -	jr nc, .asm_70a12 +	jr nc, .highLevelEnemy  	res 1, c  	ld a, $1  	ld [wcd47], a  	ret -.asm_70a12 +.highLevelEnemy  	set 1, c  	xor a  	ld [wcd47], a  	ret -Func_70a19: ; 70a19 (1c:4a19) -	ld a, [W_CURMAP] ; W_CURMAP +; fails to recognize VICTORY_ROAD_2, VICTORY_ROAD_3, all ROCKET_HIDEOUT maps, +; all MANSION maps, and SEAFOAM_ISLANDS_[2-5] as dungeon maps +GetBattleTransitionID_IsDungeonMap: ; 70a19 (1c:4a19) +	ld a, [W_CURMAP]  	ld e, a -	ld hl, MapIDList_70a3f ; $4a3f -.asm_70a20 +	ld hl, DungeonMaps1 +.loop1  	ld a, [hli]  	cp $ff -	jr z, .asm_70a2b +	jr z, .noMatch1  	cp e -	jr nz, .asm_70a20 -.asm_70a28 +	jr nz, .loop1 +.match  	set 2, c  	ret -.asm_70a2b -	ld hl, MapIDList_70a44 ; $4a44 -.asm_70a2e +.noMatch1 +	ld hl, DungeonMaps2 +.loop2  	ld a, [hli]  	cp $ff -	jr z, .asm_70a3c +	jr z, .noMatch2  	ld d, a  	ld a, [hli]  	cp e -	jr c, .asm_70a2e +	jr c, .loop2  	ld a, e  	cp d -	jr nc, .asm_70a28 -.asm_70a3c +	jr nc, .match +.noMatch2  	res 2, c  	ret -; Func_70a19 checks if W_CURMAP is equal to one of these maps -MapIDList_70a3f: ; 70a3f (1c:4a3f) +; GetBattleTransitionID_IsDungeonMap checks if W_CURMAP +; is equal to one of these maps +DungeonMaps1: ; 70a3f (1c:4a3f)  	db VIRIDIAN_FOREST  	db ROCK_TUNNEL_1  	db SEAFOAM_ISLANDS_1  	db ROCK_TUNNEL_2  	db $FF -; Func_70a19 checks if W_CURMAP is in between or equal to each pair of maps -MapIDList_70a44: ; 70a44 (1c:4a44) +; GetBattleTransitionID_IsDungeonMap checks if W_CURMAP +; is in between or equal to each pair of maps +DungeonMaps2: ; 70a44 (1c:4a44)  	; all MT_MOON maps  	db MT_MOON_1  	db MT_MOON_3 @@ -251,27 +261,31 @@ MapIDList_70a44: ; 70a44 (1c:4a44)  LoadBattleTransitionTile: ; 70a4d (1c:4a4d)  	ld hl, $8ff0 -	ld de, BattleTransitionTile ; $4a59 +	ld de, BattleTransitionTile  	ld bc, (BANK(BattleTransitionTile) << 8) + $01  	jp CopyVideoData  BattleTransitionTile: ; 70a59 (1c:4a59)  	INCBIN "gfx/battle_transition.2bpp" -Func_70a69: ; 70a69 (1c:4a69) +BattleTransition_BlackScreen: ; 70a69 (1c:4a69)  	ld a, $ff  	ld [rBGP], a ; $ff47  	ld [rOBP0], a ; $ff48  	ld [rOBP1], a ; $ff49  	ret -Func_70a72: ; 70a72 (1c:4a72) +; for non-dungeon trainer battles +; called regardless of mon levels, but does an +; outward spiral if enemy is at least 3 levels +; higher than player and does an inward spiral otherwise +BattleTransition_Spiral: ; 70a72 (1c:4a72)  	ld a, [wcd47]  	and a -	jr z, .asm_70a7d -	call Func_70aaa -	jr .asm_70a9f -.asm_70a7d +	jr z, .outwardSpiral +	call BattleTransition_InwardSpiral +	jr .done +.outwardSpiral  	FuncCoord 10, 10  	ld hl, Coord  	ld a, $3 @@ -281,74 +295,74 @@ Func_70a72: ; 70a72 (1c:4a72)  	ld a, h  	ld [wd09a], a  	ld b, $78 -.asm_70a8f +.loop1  	ld c, $3 -.asm_70a91 +.loop2  	push bc -	call Func_70af9 +	call BattleTransition_OutwardSpiral_  	pop bc  	dec c -	jr nz, .asm_70a91 +	jr nz, .loop2  	call DelayFrame  	dec b -	jr nz, .asm_70a8f -.asm_70a9f -	call Func_70a69 +	jr nz, .loop1 +.done +	call BattleTransition_BlackScreen  	xor a  	ld [wd09b], a  	ld [wd09a], a  	ret -Func_70aaa: ; 70aaa (1c:4aaa) +BattleTransition_InwardSpiral: ; 70aaa (1c:4aaa)  	ld a, $7 -	ld [wWhichTrade], a ; wWhichTrade +	ld [wWhichTrade], a  	ld hl, wTileMap  	ld c, $11  	ld de, $14 -	call Func_70ae0 +	call BattleTransition_InwardSpiral_  	inc c -	jr .asm_70ac3 -.asm_70abd +	jr .skip +.loop  	ld de, $14 -	call Func_70ae0 -.asm_70ac3 +	call BattleTransition_InwardSpiral_ +.skip  	inc c  	ld de, $1 -	call Func_70ae0 +	call BattleTransition_InwardSpiral_  	dec c  	dec c  	ld de, $ffec -	call Func_70ae0 +	call BattleTransition_InwardSpiral_  	inc c -	ld de, rIE ; $ffff -	call Func_70ae0 +	ld de, rIE +	call BattleTransition_InwardSpiral_  	dec c  	dec c  	ld a, c  	and a -	jr nz, .asm_70abd +	jr nz, .loop  	ret -Func_70ae0: ; 70ae0 (1c:4ae0) +BattleTransition_InwardSpiral_: ; 70ae0 (1c:4ae0)  	push bc -.asm_70ae1 +.loop  	ld [hl], $ff  	add hl, de  	push bc -	ld a, [wWhichTrade] ; wWhichTrade +	ld a, [wWhichTrade]  	dec a -	jr nz, .asm_70af0 -	call Func_70d19 +	jr nz, .skip +	call BattleTransition_TransferDelay3  	ld a, $7 -.asm_70af0 -	ld [wWhichTrade], a ; wWhichTrade +.skip +	ld [wWhichTrade], a  	pop bc  	dec c -	jr nz, .asm_70ae1 +	jr nz, .loop  	pop bc  	ret -Func_70af9: ; 70af9 (1c:4af9) +BattleTransition_OutwardSpiral_: ; 70af9 (1c:4af9)  	ld bc, $ffec  	ld de, $14  	ld a, [wd09b] @@ -357,168 +371,170 @@ Func_70af9: ; 70af9 (1c:4af9)  	ld h, a  	ld a, [wd09f]  	cp $0 -	jr z, .asm_70b25 +	jr z, .zero  	cp $1 -	jr z, .asm_70b2f +	jr z, .one  	cp $2 -	jr z, .asm_70b39 +	jr z, .two  	cp $3 -	jr z, .asm_70b43 -.asm_70b1a +	jr z, .three +.done1  	ld [hl], $ff -.asm_70b1c +.done2_  	ld a, l  	ld [wd09b], a  	ld a, h  	ld [wd09a], a  	ret -.asm_70b25 +.zero  	dec hl  	ld a, [hl]  	cp $ff -	jr nz, .asm_70b4d +	jr nz, .done2  	inc hl  	add hl, bc -	jr .asm_70b1a -.asm_70b2f +	jr .done1 +.one  	add hl, de  	ld a, [hl]  	cp $ff -	jr nz, .asm_70b4d +	jr nz, .done2  	add hl, bc  	dec hl -	jr .asm_70b1a -.asm_70b39 +	jr .done1 +.two  	inc hl  	ld a, [hl]  	cp $ff -	jr nz, .asm_70b4d +	jr nz, .done2  	dec hl  	add hl, de -	jr .asm_70b1a -.asm_70b43 +	jr .done1 +.three  	add hl, bc  	ld a, [hl]  	cp $ff -	jr nz, .asm_70b4d +	jr nz, .done2  	add hl, de  	inc hl -	jr .asm_70b1a -.asm_70b4d +	jr .done1 +.done2  	ld [hl], $ff  	ld a, [wd09f]  	inc a  	cp $4 -	jr nz, .asm_70b58 +	jr nz, .skip  	xor a -.asm_70b58 +.skip  	ld [wd09f], a -	jr .asm_70b1c +	jr .done2_ -Func_70b5d: ; 70b5d (1c:4b5d) -	ld hl, DataTable_70b72 ; $4b72 -.asm_70b60 +BattleTransition_FlashScreen_: ; 70b5d (1c:4b5d) +	ld hl, BattleTransition_FlashScreenPalettes +.loop  	ld a, [hli]  	cp $1 -	jr z, .asm_70b6e -	ld [rBGP], a ; $ff47 +	jr z, .done +	ld [rBGP], a  	ld c, $2  	call DelayFrames -	jr .asm_70b60 -.asm_70b6e +	jr .loop +.done  	dec b -	jr nz, Func_70b5d +	jr nz, BattleTransition_FlashScreen_  	ret -DataTable_70b72: ; 70b72 (1c:4b72) +BattleTransition_FlashScreenPalettes: ; 70b72 (1c:4b72)  	db $F9,$FE,$FF,$FE,$F9,$E4,$90,$40,$00,$40,$90,$E4  	db $01 ; terminator -Func_70b7f: ; 70b7f (1c:4b7f) +; used for low level trainer dungeon battles +BattleTransition_Shrink: ; 70b7f (1c:4b7f)  	ld c, $9 -.asm_70b81 +.loop  	push bc  	xor a -	ld [H_AUTOBGTRANSFERENABLED], a ; $ffba +	ld [H_AUTOBGTRANSFERENABLED], a  	FuncCoord 0, 7  	ld hl, Coord  	FuncCoord 0, 8  	ld de, Coord  	ld bc, $ffd8 -	call Func_70c12 +	call BattleTransition_CopyTiles1  	FuncCoord 0, 10  	ld hl, Coord  	FuncCoord 0, 9  	ld de, Coord  	ld bc, $28 -	call Func_70c12 +	call BattleTransition_CopyTiles1  	FuncCoord 8, 0  	ld hl, Coord  	FuncCoord 9, 0  	ld de, Coord  	ld bc, $fffe -	call Func_70c3f +	call BattleTransition_CopyTiles2  	FuncCoord 11, 0  	ld hl, Coord  	FuncCoord 10, 0  	ld de, Coord  	ld bc, $2 -	call Func_70c3f +	call BattleTransition_CopyTiles2  	ld a, $1 -	ld [H_AUTOBGTRANSFERENABLED], a ; $ffba +	ld [H_AUTOBGTRANSFERENABLED], a  	ld c, $6  	call DelayFrames  	pop bc  	dec c -	jr nz, .asm_70b81 -	call Func_70a69 +	jr nz, .loop +	call BattleTransition_BlackScreen  	ld c, $a  	jp DelayFrames -Func_70bca: ; 70bca (1c:4bca) +; used for high level trainer dungeon battles +BattleTransition_Split: ; 70bca (1c:4bca)  	ld c, $9  	xor a -	ld [H_AUTOBGTRANSFERENABLED], a ; $ffba -.asm_70bcf +	ld [H_AUTOBGTRANSFERENABLED], a +.loop  	push bc  	FuncCoord 0, 16  	ld hl, Coord  	FuncCoord 0, 17  	ld de, Coord  	ld bc, $ffd8 -	call Func_70c12 +	call BattleTransition_CopyTiles1  	FuncCoord 0, 1  	ld hl, Coord  	ld de, wTileMap  	ld bc, $28 -	call Func_70c12 +	call BattleTransition_CopyTiles1  	FuncCoord 18, 0  	ld hl, Coord  	FuncCoord 19, 0  	ld de, Coord  	ld bc, $fffe -	call Func_70c3f +	call BattleTransition_CopyTiles2  	FuncCoord 1, 0  	ld hl, Coord  	ld de, wTileMap  	ld bc, $2 -	call Func_70c3f -	call Func_70d19 +	call BattleTransition_CopyTiles2 +	call BattleTransition_TransferDelay3  	call Delay3  	pop bc  	dec c -	jr nz, .asm_70bcf -	call Func_70a69 +	jr nz, .loop +	call BattleTransition_BlackScreen  	ld c, $a  	jp DelayFrames -Func_70c12: ; 70c12 (1c:4c12) +BattleTransition_CopyTiles1: ; 70c12 (1c:4c12)  	ld a, c -	ld [wWhichTrade], a ; wWhichTrade +	ld [wWhichTrade], a  	ld a, b  	ld [wTrainerEngageDistance], a  	ld c, $8 -.asm_70c1c +.loop1  	push bc  	push hl  	push de @@ -526,89 +542,90 @@ Func_70c12: ; 70c12 (1c:4c12)  	call CopyData  	pop hl  	pop de -	ld a, [wWhichTrade] ; wWhichTrade +	ld a, [wWhichTrade]  	ld c, a  	ld a, [wTrainerEngageDistance]  	ld b, a  	add hl, bc  	pop bc  	dec c -	jr nz, .asm_70c1c +	jr nz, .loop1  	ld l, e  	ld h, d  	ld a, $ff  	ld c, $14 -.asm_70c3a +.loop2  	ld [hli], a  	dec c -	jr nz, .asm_70c3a +	jr nz, .loop2  	ret -Func_70c3f: ; 70c3f (1c:4c3f) +BattleTransition_CopyTiles2: ; 70c3f (1c:4c3f)  	ld a, c -	ld [wWhichTrade], a ; wWhichTrade +	ld [wWhichTrade], a  	ld a, b  	ld [wTrainerEngageDistance], a  	ld c, $9 -.asm_70c49 +.loop1  	push bc  	push hl  	push de  	ld c, $12 -.asm_70c4e +.loop2  	ld a, [hl]  	ld [de], a  	ld a, e  	add $14 -	jr nc, .asm_70c56 +	jr nc, .noCarry1  	inc d -.asm_70c56 +.noCarry1  	ld e, a  	ld a, l  	add $14 -	jr nc, .asm_70c5d +	jr nc, .noCarry2  	inc h -.asm_70c5d +.noCarry2  	ld l, a  	dec c -	jr nz, .asm_70c4e +	jr nz, .loop2  	pop hl  	pop de -	ld a, [wWhichTrade] ; wWhichTrade +	ld a, [wWhichTrade]  	ld c, a  	ld a, [wTrainerEngageDistance]  	ld b, a  	add hl, bc  	pop bc  	dec c -	jr nz, .asm_70c49 +	jr nz, .loop1  	ld l, e  	ld h, d  	ld de, $14  	ld c, $12 -.asm_70c77 +.loop3  	ld [hl], $ff  	add hl, de  	dec c -	jr nz, .asm_70c77 +	jr nz, .loop3  	ret -Func_70c7e: ; 70c7e (1c:4c7e) +; used for high level wild dungeon battles +BattleTransition_VerticalStripes: ; 70c7e (1c:4c7e)  	ld c, $12  	ld hl, wTileMap  	FuncCoord 1, 17  	ld de, Coord  	xor a -	ld [H_AUTOBGTRANSFERENABLED], a ; $ffba -.asm_70c89 +	ld [H_AUTOBGTRANSFERENABLED], a +.loop  	push bc  	push hl  	push de  	push de -	call Func_70caa +	call BattleTransition_VerticalStripes_  	pop hl -	call Func_70caa -	call Func_70d19 +	call BattleTransition_VerticalStripes_ +	call BattleTransition_TransferDelay3  	pop hl  	ld bc, $ffec  	add hl, bc @@ -619,109 +636,116 @@ Func_70c7e: ; 70c7e (1c:4c7e)  	add hl, bc  	pop bc  	dec c -	jr nz, .asm_70c89 -	jp Func_70a69 +	jr nz, .loop +	jp BattleTransition_BlackScreen -Func_70caa: ; 70caa (1c:4caa) +BattleTransition_VerticalStripes_: ; 70caa (1c:4caa)  	ld c, $a -.asm_70cac +.loop  	ld [hl], $ff  	inc hl  	inc hl  	dec c -	jr nz, .asm_70cac +	jr nz, .loop  	ret -Func_70cb4: ; 70cb4 (1c:4cb4) +; used for low level wild dungeon battles +BattleTransition_HorizontalStripes: ; 70cb4 (1c:4cb4)  	ld c, $14  	ld hl, wTileMap  	FuncCoord 19, 1  	ld de, Coord  	xor a -	ld [H_AUTOBGTRANSFERENABLED], a ; $ffba -.asm_70cbf +	ld [H_AUTOBGTRANSFERENABLED], a +.loop  	push bc  	push hl  	push de  	push de -	call Func_70cd8 +	call BattleTransition_HorizontalStripes_  	pop hl -	call Func_70cd8 -	call Func_70d19 +	call BattleTransition_HorizontalStripes_ +	call BattleTransition_TransferDelay3  	pop de  	pop hl  	pop bc  	inc hl  	dec de  	dec c -	jr nz, .asm_70cbf -	jp Func_70a69 +	jr nz, .loop +	jp BattleTransition_BlackScreen -Func_70cd8: ; 70cd8 (1c:4cd8) +BattleTransition_HorizontalStripes_: ; 70cd8 (1c:4cd8)  	ld c, $9  	ld de, $28 -.asm_70cdd +.loop  	ld [hl], $ff  	add hl, de  	dec c -	jr nz, .asm_70cdd +	jr nz, .loop  	ret -Func_70ce4: ; 70ce4 (1c:4ce4) -	call Func_70cfd +; used for high level wild non-dungeon battles +; makes one full circle around the screen +; by animating each half circle one at a time +BattleTransition_Circle: ; 70ce4 (1c:4ce4) +	call BattleTransition_FlashScreen  	ld bc, $000a -	ld hl, Unknown_70d61 -	call Func_70d06 +	ld hl, BattleTransition_HalfCircle1 +	call BattleTransition_Circle_Sub1  	ld c, $a  	ld b, $1 -	ld hl, Unknown_70d93 -	call Func_70d06 -	jp Func_70a69 +	ld hl, BattleTransition_HalfCircle2 +	call BattleTransition_Circle_Sub1 +	jp BattleTransition_BlackScreen -Func_70cfd: ; 70cfd (1c:4cfd) +BattleTransition_FlashScreen: ; 70cfd (1c:4cfd)  	ld b, $3 -	call Func_70b5d +	call BattleTransition_FlashScreen_  	xor a -	ld [H_AUTOBGTRANSFERENABLED], a ; $ffba +	ld [H_AUTOBGTRANSFERENABLED], a  	ret -Func_70d06: ; 70d06 (1c:4d06) +BattleTransition_Circle_Sub1: ; 70d06 (1c:4d06)  	push bc  	push hl  	ld a, b -	call Func_70d50 +	call BattleTransition_Circle_Sub2  	pop hl  	ld bc, $0005  	add hl, bc -	call Func_70d19 +	call BattleTransition_TransferDelay3  	pop bc  	dec c -	jr nz, Func_70d06 +	jr nz, BattleTransition_Circle_Sub1  	ret -Func_70d19: ; 70d19 (1c:4d19) +BattleTransition_TransferDelay3: ; 70d19 (1c:4d19)  	ld a, $1 -	ld [H_AUTOBGTRANSFERENABLED], a ; $ffba +	ld [H_AUTOBGTRANSFERENABLED], a  	call Delay3  	xor a -	ld [H_AUTOBGTRANSFERENABLED], a ; $ffba +	ld [H_AUTOBGTRANSFERENABLED], a  	ret -Func_70d24: ; 70d24 (1c:4d24) -	call Func_70cfd +; used for low level wild non-dungeon battles +; makes two half circles around the screen +; by animating both half circles at the same time +BattleTransition_DoubleCircle: ; 70d24 (1c:4d24) +	call BattleTransition_FlashScreen  	ld c, $a -	ld hl, Unknown_70d61 ; $4d61 -	ld de, Unknown_70d93 ; $4d93 -.asm_70d2f +	ld hl, BattleTransition_HalfCircle1 +	ld de, BattleTransition_HalfCircle2 +.loop  	push bc  	push hl  	push de  	push de  	xor a -	call Func_70d50 +	call BattleTransition_Circle_Sub2  	pop hl  	ld a, $1 -	call Func_70d50 +	call BattleTransition_Circle_Sub2  	pop hl  	ld bc, $5  	add hl, bc @@ -729,14 +753,14 @@ Func_70d24: ; 70d24 (1c:4d24)  	ld d, h  	pop hl  	add hl, bc -	call Func_70d19 +	call BattleTransition_TransferDelay3  	pop bc  	dec c -	jr nz, .asm_70d2f -	jp Func_70a69 +	jr nz, .loop +	jp BattleTransition_BlackScreen -Func_70d50: ; 70d50 (1c:4d50) -	ld [wWhichTrade], a ; wWhichTrade +BattleTransition_Circle_Sub2: ; 70d50 (1c:4d50) +	ld [wWhichTrade], a  	ld a, [hli]  	ld [wTrainerEngageDistance], a  	ld a, [hli] @@ -746,166 +770,166 @@ Func_70d50: ; 70d50 (1c:4d50)  	ld a, [hli]  	ld h, [hl]  	ld l, a -	jp Func_70dc5 +	jp BattleTransition_Circle_Sub3 -Unknown_70d61: ; 70d61 (1c:4d61) +BattleTransition_HalfCircle1: ; 70d61 (1c:4d61)  	db $01 -	dw Unknown_70dfe +	dw BattleTransition_CircleData1  	FuncCoord 18, 6  	dw Coord  	db $01 -	dw Unknown_70e04 +	dw BattleTransition_CircleData2  	FuncCoord 19, 3  	dw Coord  	db $01 -	dw Unknown_70e0e +	dw BattleTransition_CircleData3  	FuncCoord 18, 0  	dw Coord  	db $01 -	dw Unknown_70e20 +	dw BattleTransition_CircleData4  	FuncCoord 14, 0  	dw Coord  	db $01 -	dw Unknown_70e2e +	dw BattleTransition_CircleData5  	FuncCoord 10, 0  	dw Coord  	db $00 -	dw Unknown_70e2e +	dw BattleTransition_CircleData5  	FuncCoord 9, 0  	dw Coord  	db $00 -	dw Unknown_70e20 +	dw BattleTransition_CircleData4  	FuncCoord 5, 0  	dw Coord  	db $00 -	dw Unknown_70e0e +	dw BattleTransition_CircleData3  	FuncCoord 1, 0  	dw Coord  	db $00 -	dw Unknown_70e04 +	dw BattleTransition_CircleData2  	FuncCoord 0, 3  	dw Coord  	db $00 -	dw Unknown_70dfe +	dw BattleTransition_CircleData1  	FuncCoord 1, 6  	dw Coord -Unknown_70d93: ; 70d93 (1c:4d93) +BattleTransition_HalfCircle2: ; 70d93 (1c:4d93)  	db $00 -	dw Unknown_70dfe +	dw BattleTransition_CircleData1  	FuncCoord 1, 11  	dw Coord  	db $00 -	dw Unknown_70e04 +	dw BattleTransition_CircleData2  	FuncCoord 0, 14  	dw Coord  	db $00 -	dw Unknown_70e0e +	dw BattleTransition_CircleData3  	FuncCoord 1, 17  	dw Coord  	db $00 -	dw Unknown_70e20 +	dw BattleTransition_CircleData4  	FuncCoord 5, 17  	dw Coord  	db $00 -	dw Unknown_70e2e +	dw BattleTransition_CircleData5  	FuncCoord 9, 17  	dw Coord  	db $01 -	dw Unknown_70e2e +	dw BattleTransition_CircleData5  	FuncCoord 10, 17  	dw Coord  	db $01 -	dw Unknown_70e20 +	dw BattleTransition_CircleData4  	FuncCoord 14, 17  	dw Coord  	db $01 -	dw Unknown_70e0e +	dw BattleTransition_CircleData3  	FuncCoord 18, 17  	dw Coord  	db $01 -	dw Unknown_70e04 +	dw BattleTransition_CircleData2  	FuncCoord 19, 14  	dw Coord  	db $01 -	dw Unknown_70dfe +	dw BattleTransition_CircleData1  	FuncCoord 18, 11  	dw Coord -Func_70dc5: ; 70dc5 (1c:4dc5) +BattleTransition_Circle_Sub3: ; 70dc5 (1c:4dc5)  	push hl  	ld a, [de]  	ld c, a  	inc de -.asm_70dc9 +.loop1  	ld [hl], $ff  	ld a, [wTrainerEngageDistance]  	and a -	jr z, .asm_70dd4 +	jr z, .skip1  	inc hl -	jr .asm_70dd5 -.asm_70dd4 +	jr .skip2 +.skip1  	dec hl -.asm_70dd5 +.skip2  	dec c -	jr nz, .asm_70dc9 +	jr nz, .loop1  	pop hl -	ld a, [wWhichTrade] ; wWhichTrade +	ld a, [wWhichTrade]  	and a  	ld bc, $14 -	jr z, .asm_70de5 +	jr z, .skip3  	ld bc, $ffec -.asm_70de5 +.skip3  	add hl, bc  	ld a, [de]  	inc de  	cp $ff  	ret z  	and a -	jr z, Func_70dc5 +	jr z, BattleTransition_Circle_Sub3  	ld c, a -.asm_70def +.loop2  	ld a, [wTrainerEngageDistance]  	and a -	jr z, .asm_70df8 +	jr z, .skip4  	dec hl -	jr .asm_70df9 -.asm_70df8 +	jr .skip5 +.skip4  	inc hl -.asm_70df9 +.skip5  	dec c -	jr nz, .asm_70def -	jr Func_70dc5 +	jr nz, .loop2 +	jr BattleTransition_Circle_Sub3 -Unknown_70dfe: ; 70dfe (1c:4dfe) +BattleTransition_CircleData1: ; 70dfe (1c:4dfe)  	db $02,$03,$05,$04,$09,$FF -Unknown_70e04: ; 70e04 (1c:4e04) +BattleTransition_CircleData2: ; 70e04 (1c:4e04)  	db $01,$01,$02,$02,$04,$02,$04,$02,$03,$FF -Unknown_70e0e: ; 70e0e (1c:4e0e) +BattleTransition_CircleData3: ; 70e0e (1c:4e0e)  	db $02,$01,$03,$01,$04,$01,$04,$01,$04,$01,$03,$01,$02,$01,$01,$01,$01,$FF -Unknown_70e20: ; 70e20 (1c:4e20) +BattleTransition_CircleData4: ; 70e20 (1c:4e20)  	db $04,$01,$04,$00,$03,$01,$03,$00,$02,$01,$02,$00,$01,$FF -Unknown_70e2e: ; 70e2e (1c:4e2e) +BattleTransition_CircleData5: ; 70e2e (1c:4e2e)  	db $04,$00,$03,$00,$03,$00,$02,$00,$02,$00,$01,$00,$01,$00,$01,$FF diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 538b91e3..68c3f892 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -6213,7 +6213,7 @@ Func_3ec32: ; 3ec32 (f:6c32)  .asm_3ec4d  	call DelayFrame  	ld a, $30 -	call Predef ; indirect jump to Func_7096d (7096d (1c:496d)) +	call Predef ; indirect jump to BattleTransition (7096d (1c:496d))  	callab Func_3ee58  	ld a, $1  	ld [H_AUTOBGTRANSFERENABLED], a ; $ffba | 
