summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorlibjet <libj3t@gmail.com>2020-06-01 02:34:06 +0100
committerlibjet <libj3t@gmail.com>2020-06-01 02:34:06 +0100
commitc743b31b89b6008bbea37ee756ac744a5765d9fc (patch)
treec759a04b6af37a2f04925694769e1c5d63eeb1dd /engine
parent68123f3682e75c5ebd48158052b3a5d818a96c9c (diff)
Update data/sprite_anims/framesets.asm
Diffstat (limited to 'engine')
-rwxr-xr-xengine/gfx/sprite_anims.asm46
-rwxr-xr-xengine/gfx/sprites.asm125
2 files changed, 159 insertions, 12 deletions
diff --git a/engine/gfx/sprite_anims.asm b/engine/gfx/sprite_anims.asm
index 285c3303..fbd57abf 100755
--- a/engine/gfx/sprite_anims.asm
+++ b/engine/gfx/sprite_anims.asm
@@ -711,6 +711,7 @@ DoAnimFrame:
call .AnonymousJumptable
jp hl
+IF DEF(_GOLD)
; anonymous jumptable
dw .Function8d835
dw .Function8d84c
@@ -735,7 +736,6 @@ DoAnimFrame:
ld a, [hl]
cp $a4
jr nc, .asm_5881
-
ld hl, $0d
add hl, bc
add $4
@@ -766,13 +766,57 @@ DoAnimFrame:
call DeinitializeSprite
ret
+ELIF DEF(_SILVER)
+; anonymous jumptable
+ dw .Function8d835
+ dw .Function8d856
+
+.Function8d835:
+ ld a, [wIntroSceneTimer]
+ and $30
+ swap a
+ add $3
+ ld d, a
+ ld hl, $0c
+ add hl, bc
+ ld a, [wIntroSceneTimer]
+ and $30
+ swap a
+ add $07
+ add [hl]
+ ld [hl], a
+ call .Sprites_Sine
+ ld hl, $07
+ add hl, bc
+ ld [hl], a
+.Function8d856:
+ ld hl, $04
+ add hl, bc
+ ld a, [hl]
+ cp $a4
+ jr nc, .asm_5863
+ add $4
+ ld [hl], a
+ ret
+
+.asm_5863
+ call DeinitializeSprite
+ ret
+ENDC
+
.Function8d885:
ld hl, $0c
add hl, bc
ld a, [hl]
+IF DEF(_GOLD)
inc a
ld [hl], a
ld d, 2
+ELIF DEF(_SILVER)
+ dec a
+ ld [hl], a
+ ld d, 8
+ENDC
call .Sprites_Sine
ld hl, $07
add hl, bc
diff --git a/engine/gfx/sprites.asm b/engine/gfx/sprites.asm
index cb8aea53..ef352606 100755
--- a/engine/gfx/sprites.asm
+++ b/engine/gfx/sprites.asm
@@ -321,7 +321,7 @@ AddOrSubtractX:
bit OAM_X_FLIP, [hl]
jr z, .ok
; -8 - a
- add $8
+ add 8
xor $ff
inc a
@@ -486,9 +486,10 @@ GetSpriteAnimFrame:
ret
GetFrameOAMPointer:
+; Load OAM data pointer
ld e, a
ld d, 0
- ld hl, $5dbd
+ ld hl, SpriteAnimOAMData
add hl, de
add hl, de
add hl, de
@@ -497,10 +498,10 @@ GetFrameOAMPointer:
Unreferenced_BrokenGetStdGraphics:
push hl
ld l, a
- ld h, $00
+ ld h, 0
add hl, hl
add hl, hl
- ld de, $6666
+ ld de, BrokenStdGFXPointers ; broken 2bpp pointers
add hl, de
ld c, [hl]
inc hl
@@ -519,18 +520,120 @@ INCLUDE "data/sprite_anims/sequences.asm"
INCLUDE "engine/gfx/sprite_anims.asm"
-SpriteAnimFrameData:
- dr $8dbfe, $8e68a
+INCLUDE "data/sprite_anims/framesets.asm"
+
+INCLUDE "data/sprite_anims/oam.asm"
+
+BrokenStdGFXPointers:
+ ; tile count, bank, pointer
+ ; (all pointers were dummied out to .deleted)
+ dbbw 128, $01, .deleted
+ dbbw 128, $01, .deleted
+ dbbw 128, $01, .deleted
+ dbbw 128, $01, .deleted
+ dbbw 16, $37, .deleted
+ dbbw 16, $11, .deleted
+ dbbw 16, $39, .deleted
+ dbbw 16, $24, .deleted
+ dbbw 16, $21, .deleted
+
+.deleted
Sprites_Cosine:
; a = d * cos(a * pi/32)
add %010000 ; cos(x) = sin(x + pi/2)
; fallthrough
Sprites_Sine:
- dr $8e68c, $8e6fd
+; a = d * sin(a * pi/32)
+ calc_sine_wave .SineWave
+
+.SineWave:
+ sine_table 256
+
+AnimateEndOfExpBar:
+ ldh a, [hSGB]
+ ld de, EndOfExpBarGFX
+ and a
+ jr z, .load
+ ld de, SGBEndOfExpBarGFX
+
+.load
+ ld hl, vTiles0 tile $00
+ lb bc, BANK(EndOfExpBarGFX), 1
+ call Request2bpp
+ ld c, 8
+ ld d, 0
+.loop
+ push bc
+ call .AnimateFrame
+ call DelayFrame
+ pop bc
+ inc d
+ inc d
+ dec c
+ jr nz, .loop
+ call ClearSprites
+ ret
+
+.AnimateFrame:
+ ld hl, wVirtualOAMSprite00
+ ld c, 8 ; number of animated circles
+.anim_loop
+ ld a, c
+ and a
+ ret z
+ dec c
+ ld a, c
+; multiply by 8
+ sla a
+ sla a
+ sla a
+ push af
+
+ push de
+ push hl
+ call Sprites_Sine
+ pop hl
+ pop de
+ add 13 * TILE_WIDTH
+ ld [hli], a ; y
+
+ pop af
+ push de
+ push hl
+ call Sprites_Cosine
+ pop hl
+ pop de
+ add 10 * TILE_WIDTH + 4
+ ld [hli], a ; x
+
+ ld a, $0
+ ld [hli], a ; tile id
+ ld a, PAL_BATTLE_OB_BLUE
+ ld [hli], a ; attributes
+ jr .anim_loop
-AnimateEndOfExpBar::
- dr $8e6fd, $8e774
+EndOfExpBarGFX:
+INCBIN "gfx/battle/expbarend.2bpp"
+SGBEndOfExpBarGFX:
+INCBIN "gfx/battle/expbarend_sgb.2bpp"
-ClearSpriteAnims2::
- dr $8e774, $8e78b
+ClearSpriteAnims2:
+ push hl
+ push de
+ push bc
+ push af
+ ld hl, wSpriteAnimDict
+ ld bc, wSpriteAnimsEnd - wSpriteAnimDict
+.loop
+ ld [hl], 0
+ inc hl
+ dec bc
+ ld a, c
+ or b
+ jr nz, .loop
+ pop af
+ pop bc
+ pop de
+ pop hl
+ ret