mirror of
https://github.com/thornAvery/jep-hack.git
synced 2026-02-06 16:15:24 +13:00
First Commit
Upload literally everything from the pokecrystal16 expand-move-ID branch
This commit is contained in:
commit
2f8a41f833
4618 changed files with 480386 additions and 0 deletions
1493
engine/battle_anims/anim_commands.asm
Normal file
1493
engine/battle_anims/anim_commands.asm
Normal file
File diff suppressed because it is too large
Load diff
2941
engine/battle_anims/bg_effects.asm
Normal file
2941
engine/battle_anims/bg_effects.asm
Normal file
File diff suppressed because it is too large
Load diff
320
engine/battle_anims/core.asm
Normal file
320
engine/battle_anims/core.asm
Normal file
|
|
@ -0,0 +1,320 @@
|
|||
QueueBattleAnimation:
|
||||
ld hl, wActiveAnimObjects
|
||||
ld e, NUM_ANIM_OBJECTS
|
||||
.loop
|
||||
ld a, [hl]
|
||||
and a
|
||||
jr z, .done
|
||||
ld bc, BATTLEANIMSTRUCT_LENGTH
|
||||
add hl, bc
|
||||
dec e
|
||||
jr nz, .loop
|
||||
scf
|
||||
ret
|
||||
|
||||
.done
|
||||
ld c, l
|
||||
ld b, h
|
||||
ld hl, wLastAnimObjectIndex
|
||||
inc [hl]
|
||||
call InitBattleAnimation
|
||||
ret
|
||||
|
||||
DeinitBattleAnimation:
|
||||
ld hl, BATTLEANIMSTRUCT_INDEX
|
||||
add hl, bc
|
||||
ld [hl], $0
|
||||
ret
|
||||
|
||||
InitBattleAnimation:
|
||||
ld a, [wBattleObjectTempID]
|
||||
ld e, a
|
||||
ld d, 0
|
||||
ld hl, BattleAnimObjects
|
||||
rept BATTLEANIMOBJ_LENGTH
|
||||
add hl, de
|
||||
endr
|
||||
ld e, l
|
||||
ld d, h
|
||||
ld hl, BATTLEANIMSTRUCT_INDEX
|
||||
add hl, bc
|
||||
ld a, [wLastAnimObjectIndex]
|
||||
ld [hli], a ; BATTLEANIMSTRUCT_INDEX
|
||||
ld a, [de]
|
||||
inc de
|
||||
ld [hli], a ; BATTLEANIMSTRUCT_OAMFLAGS
|
||||
ld a, [de]
|
||||
inc de
|
||||
ld [hli], a ; BATTLEANIMSTRUCT_FIX_Y
|
||||
ld a, [de]
|
||||
inc de
|
||||
ld [hli], a ; BATTLEANIMSTRUCT_FRAMESET_ID
|
||||
ld a, [de]
|
||||
inc de
|
||||
ld [hli], a ; BATTLEANIMSTRUCT_FUNCTION
|
||||
ld a, [de]
|
||||
inc de
|
||||
ld [hli], a ; BATTLEANIMSTRUCT_PALETTE
|
||||
ld a, [de]
|
||||
call GetBattleAnimTileOffset
|
||||
ld [hli], a ; BATTLEANIMSTRUCT_TILEID
|
||||
ld a, [wBattleObjectTempXCoord]
|
||||
ld [hli], a ; BATTLEANIMSTRUCT_XCOORD
|
||||
ld a, [wBattleObjectTempYCoord]
|
||||
ld [hli], a ; BATTLEANIMSTRUCT_YCOORD
|
||||
xor a
|
||||
ld [hli], a ; BATTLEANIMSTRUCT_XOFFSET
|
||||
ld [hli], a ; BATTLEANIMSTRUCT_YOFFSET
|
||||
ld a, [wBattleObjectTempParam]
|
||||
ld [hli], a ; BATTLEANIMSTRUCT_PARAM
|
||||
xor a
|
||||
ld [hli], a ; BATTLEANIMSTRUCT_DURATION
|
||||
dec a
|
||||
ld [hli], a ; BATTLEANIMSTRUCT_FRAME
|
||||
xor a
|
||||
ld [hli], a ; BATTLEANIMSTRUCT_JUMPTABLE_INDEX
|
||||
ld [hli], a ; BATTLEANIMSTRUCT_VAR1
|
||||
ld [hl], a ; BATTLEANIMSTRUCT_VAR2
|
||||
ret
|
||||
|
||||
BattleAnimOAMUpdate:
|
||||
call InitBattleAnimBuffer
|
||||
call GetBattleAnimFrame
|
||||
cp oamwait_command
|
||||
jp z, .done
|
||||
cp oamdelete_command
|
||||
jp z, .delete
|
||||
|
||||
push af
|
||||
ld hl, wBattleAnimTempOAMFlags
|
||||
ld a, [wBattleAnimTempFrameOAMFlags]
|
||||
xor [hl]
|
||||
and PRIORITY | Y_FLIP | X_FLIP
|
||||
ld [hl], a
|
||||
pop af
|
||||
|
||||
push bc
|
||||
call GetBattleAnimOAMPointer
|
||||
ld a, [wBattleAnimTempTileID]
|
||||
add [hl] ; tile offset
|
||||
ld [wBattleAnimTempTileID], a
|
||||
inc hl
|
||||
ld a, [hli] ; oam data length
|
||||
ld c, a
|
||||
ld a, [hli] ; oam data pointer
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
ld a, [wBattleAnimOAMPointerLo]
|
||||
ld e, a
|
||||
ld d, HIGH(wShadowOAM)
|
||||
|
||||
.loop
|
||||
; Y Coord
|
||||
ld a, [wBattleAnimTempYCoord]
|
||||
ld b, a
|
||||
ld a, [wBattleAnimTempYOffset]
|
||||
add b
|
||||
ld b, a
|
||||
push hl
|
||||
ld a, [hl]
|
||||
ld hl, wBattleAnimTempOAMFlags
|
||||
bit OAM_Y_FLIP, [hl]
|
||||
jr z, .no_yflip
|
||||
add $8
|
||||
xor $ff
|
||||
inc a
|
||||
.no_yflip
|
||||
pop hl
|
||||
add b
|
||||
ld [de], a
|
||||
|
||||
; X Coord
|
||||
inc hl
|
||||
inc de
|
||||
ld a, [wBattleAnimTempXCoord]
|
||||
ld b, a
|
||||
ld a, [wBattleAnimTempXOffset]
|
||||
add b
|
||||
ld b, a
|
||||
push hl
|
||||
ld a, [hl]
|
||||
ld hl, wBattleAnimTempOAMFlags
|
||||
bit OAM_X_FLIP, [hl]
|
||||
jr z, .no_xflip
|
||||
add $8
|
||||
xor $ff
|
||||
inc a
|
||||
.no_xflip
|
||||
pop hl
|
||||
add b
|
||||
ld [de], a
|
||||
|
||||
; Tile ID
|
||||
inc hl
|
||||
inc de
|
||||
ld a, [wBattleAnimTempTileID]
|
||||
add BATTLEANIM_BASE_TILE
|
||||
add [hl]
|
||||
ld [de], a
|
||||
|
||||
; Attributes
|
||||
inc hl
|
||||
inc de
|
||||
ld a, [wBattleAnimTempOAMFlags]
|
||||
ld b, a
|
||||
ld a, [hl]
|
||||
xor b
|
||||
and PRIORITY | Y_FLIP | X_FLIP
|
||||
ld b, a
|
||||
ld a, [hl]
|
||||
and OBP_NUM
|
||||
or b
|
||||
ld b, a
|
||||
ld a, [wBattleAnimTempPalette]
|
||||
and PALETTE_MASK | VRAM_BANK_1
|
||||
or b
|
||||
ld [de], a
|
||||
|
||||
inc hl
|
||||
inc de
|
||||
ld a, e
|
||||
ld [wBattleAnimOAMPointerLo], a
|
||||
cp LOW(wShadowOAMEnd)
|
||||
jr nc, .exit_set_carry
|
||||
dec c
|
||||
jr nz, .loop
|
||||
pop bc
|
||||
jr .done
|
||||
|
||||
.delete
|
||||
call DeinitBattleAnimation
|
||||
|
||||
.done
|
||||
and a
|
||||
ret
|
||||
|
||||
.exit_set_carry
|
||||
pop bc
|
||||
scf
|
||||
ret
|
||||
|
||||
InitBattleAnimBuffer:
|
||||
ld hl, BATTLEANIMSTRUCT_OAMFLAGS
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
|
||||
and PRIORITY
|
||||
ld [wBattleAnimTempOAMFlags], a
|
||||
xor a
|
||||
ld [wBattleAnimTempFrameOAMFlags], a
|
||||
ld hl, BATTLEANIMSTRUCT_PALETTE
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
ld [wBattleAnimTempPalette], a
|
||||
ld hl, BATTLEANIMSTRUCT_FIX_Y
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
ld [wBattleAnimTempFixY], a
|
||||
ld hl, BATTLEANIMSTRUCT_TILEID
|
||||
add hl, bc
|
||||
ld a, [hli]
|
||||
ld [wBattleAnimTempTileID], a
|
||||
ld a, [hli]
|
||||
ld [wBattleAnimTempXCoord], a
|
||||
ld a, [hli]
|
||||
ld [wBattleAnimTempYCoord], a
|
||||
ld a, [hli]
|
||||
ld [wBattleAnimTempXOffset], a
|
||||
ld a, [hli]
|
||||
ld [wBattleAnimTempYOffset], a
|
||||
|
||||
ldh a, [hBattleTurn]
|
||||
and a
|
||||
ret z
|
||||
|
||||
ld hl, BATTLEANIMSTRUCT_OAMFLAGS
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
ld [wBattleAnimTempOAMFlags], a
|
||||
bit 0, [hl]
|
||||
ret z
|
||||
|
||||
ld hl, BATTLEANIMSTRUCT_XCOORD
|
||||
add hl, bc
|
||||
ld a, [hli]
|
||||
ld d, a
|
||||
ld a, (-10 * 8) + 4
|
||||
sub d
|
||||
ld [wBattleAnimTempXCoord], a
|
||||
ld a, [hli]
|
||||
ld d, a
|
||||
ld a, [wBattleAnimTempFixY]
|
||||
cp $ff
|
||||
jr nz, .vertical_flip
|
||||
ld a, 5 * 8
|
||||
jr .done
|
||||
|
||||
.vertical_flip
|
||||
sub d
|
||||
push af
|
||||
push hl
|
||||
push bc
|
||||
ld hl, wFXAnimID
|
||||
ld a, [hli]
|
||||
ld c, a
|
||||
ld b, [hl]
|
||||
ld de, 2
|
||||
ld hl, .extra_offset_moves
|
||||
call IsInWordArray
|
||||
pop bc
|
||||
pop hl
|
||||
pop de
|
||||
sbc a
|
||||
and -(1 * 8)
|
||||
.done
|
||||
add a, d
|
||||
ld [wBattleAnimTempYCoord], a
|
||||
ld a, [hli]
|
||||
xor $ff
|
||||
inc a
|
||||
ld [wBattleAnimTempXOffset], a
|
||||
ret
|
||||
|
||||
.extra_offset_moves
|
||||
dw KINESIS
|
||||
dw SOFTBOILED
|
||||
dw MILK_DRINK
|
||||
dw -1
|
||||
|
||||
GetBattleAnimTileOffset:
|
||||
push hl
|
||||
push bc
|
||||
ld hl, wBattleAnimTileDict
|
||||
ld b, a
|
||||
ld c, NUM_BATTLEANIMTILEDICT_ENTRIES
|
||||
.loop
|
||||
ld a, [hli]
|
||||
cp b
|
||||
jr z, .load
|
||||
inc hl
|
||||
dec c
|
||||
jr nz, .loop
|
||||
xor a
|
||||
jr .done
|
||||
|
||||
.load
|
||||
ld a, [hl]
|
||||
.done
|
||||
pop bc
|
||||
pop hl
|
||||
ret
|
||||
|
||||
_ExecuteBGEffects:
|
||||
callfar ExecuteBGEffects
|
||||
ret
|
||||
|
||||
_QueueBGEffect:
|
||||
callfar QueueBGEffect
|
||||
ret
|
||||
|
||||
INCLUDE "data/battle_anims/objects.asm"
|
||||
4319
engine/battle_anims/functions.asm
Normal file
4319
engine/battle_anims/functions.asm
Normal file
File diff suppressed because it is too large
Load diff
130
engine/battle_anims/helpers.asm
Normal file
130
engine/battle_anims/helpers.asm
Normal file
|
|
@ -0,0 +1,130 @@
|
|||
ReinitBattleAnimFrameset:
|
||||
ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
ld hl, BATTLEANIMSTRUCT_DURATION
|
||||
add hl, bc
|
||||
ld [hl], 0
|
||||
ld hl, BATTLEANIMSTRUCT_FRAME
|
||||
add hl, bc
|
||||
ld [hl], -1
|
||||
ret
|
||||
|
||||
GetBattleAnimFrame:
|
||||
.loop
|
||||
ld hl, BATTLEANIMSTRUCT_DURATION
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
and a
|
||||
jr z, .next_frame
|
||||
dec [hl]
|
||||
call .GetPointer
|
||||
ld a, [hli]
|
||||
push af
|
||||
jr .okay
|
||||
|
||||
.next_frame
|
||||
ld hl, BATTLEANIMSTRUCT_FRAME
|
||||
add hl, bc
|
||||
inc [hl]
|
||||
call .GetPointer
|
||||
ld a, [hli]
|
||||
cp oamrestart_command
|
||||
jr z, .restart
|
||||
cp oamend_command
|
||||
jr z, .repeat_last
|
||||
|
||||
push af
|
||||
ld a, [hl]
|
||||
push hl
|
||||
and ~(Y_FLIP << 1 | X_FLIP << 1)
|
||||
ld hl, BATTLEANIMSTRUCT_DURATION
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
pop hl
|
||||
.okay
|
||||
ld a, [hl]
|
||||
and Y_FLIP << 1 | X_FLIP << 1 ; The << 1 is compensated in the "oamframe" macro
|
||||
srl a
|
||||
ld [wBattleAnimTempFrameOAMFlags], a
|
||||
pop af
|
||||
ret
|
||||
|
||||
.repeat_last
|
||||
xor a
|
||||
ld hl, BATTLEANIMSTRUCT_DURATION
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
|
||||
ld hl, BATTLEANIMSTRUCT_FRAME
|
||||
add hl, bc
|
||||
dec [hl]
|
||||
dec [hl]
|
||||
jr .loop
|
||||
|
||||
.restart
|
||||
xor a
|
||||
ld hl, BATTLEANIMSTRUCT_DURATION
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
|
||||
dec a
|
||||
ld hl, BATTLEANIMSTRUCT_FRAME
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
jr .loop
|
||||
|
||||
.GetPointer:
|
||||
ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
|
||||
add hl, bc
|
||||
ld e, [hl]
|
||||
ld d, 0
|
||||
ld hl, BattleAnimFrameData
|
||||
add hl, de
|
||||
add hl, de
|
||||
ld e, [hl]
|
||||
inc hl
|
||||
ld d, [hl]
|
||||
ld hl, BATTLEANIMSTRUCT_FRAME
|
||||
add hl, bc
|
||||
ld l, [hl]
|
||||
ld h, 0
|
||||
add hl, hl
|
||||
add hl, de
|
||||
ret
|
||||
|
||||
GetBattleAnimOAMPointer:
|
||||
ld l, a
|
||||
ld h, 0
|
||||
ld de, BattleAnimOAMData
|
||||
add hl, hl
|
||||
add hl, hl
|
||||
add hl, de
|
||||
ret
|
||||
|
||||
LoadBattleAnimGFX:
|
||||
push hl
|
||||
ld l, a
|
||||
ld h, 0
|
||||
add hl, hl
|
||||
add hl, hl
|
||||
ld de, AnimObjGFX
|
||||
add hl, de
|
||||
ld c, [hl]
|
||||
inc hl
|
||||
ld b, [hl]
|
||||
inc hl
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
pop de
|
||||
push bc
|
||||
call DecompressRequest2bpp
|
||||
pop bc
|
||||
ret
|
||||
|
||||
INCLUDE "data/battle_anims/framesets.asm"
|
||||
|
||||
INCLUDE "data/battle_anims/oam.asm"
|
||||
|
||||
INCLUDE "data/battle_anims/object_gfx.asm"
|
||||
62
engine/battle_anims/pokeball_wobble.asm
Normal file
62
engine/battle_anims/pokeball_wobble.asm
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
GetPokeBallWobble:
|
||||
; Returns whether a Poke Ball will wobble in the catch animation.
|
||||
; Whether a Pokemon is caught is determined beforehand.
|
||||
|
||||
push de
|
||||
|
||||
ldh a, [rSVBK]
|
||||
ld d, a
|
||||
push de
|
||||
|
||||
ld a, BANK(wThrownBallWobbleCount) ; aka BANK(wFinalCatchRate)
|
||||
ldh [rSVBK], a
|
||||
|
||||
ld a, [wThrownBallWobbleCount]
|
||||
inc a
|
||||
ld [wThrownBallWobbleCount], a
|
||||
|
||||
; Wobble up to 3 times.
|
||||
cp 3 + 1
|
||||
jr z, .finished
|
||||
|
||||
ld a, [wWildMon]
|
||||
and a
|
||||
ld c, 0 ; next
|
||||
jr nz, .done
|
||||
|
||||
ld hl, WobbleProbabilities
|
||||
ld a, [wFinalCatchRate]
|
||||
ld b, a
|
||||
.loop
|
||||
ld a, [hli]
|
||||
cp b
|
||||
jr nc, .checkwobble
|
||||
inc hl
|
||||
jr .loop
|
||||
|
||||
.checkwobble
|
||||
ld b, [hl]
|
||||
call Random
|
||||
cp b
|
||||
ld c, 0 ; next
|
||||
jr c, .done
|
||||
ld c, 2 ; escaped
|
||||
jr .done
|
||||
|
||||
.finished
|
||||
ld a, [wWildMon]
|
||||
and a
|
||||
ld c, 1 ; caught
|
||||
jr nz, .done
|
||||
ld c, 2 ; escaped
|
||||
|
||||
.done
|
||||
pop de
|
||||
ld e, a
|
||||
ld a, d
|
||||
ldh [rSVBK], a
|
||||
ld a, e
|
||||
pop de
|
||||
ret
|
||||
|
||||
INCLUDE "data/battle/wobble_probabilities.asm"
|
||||
Loading…
Add table
Add a link
Reference in a new issue