summaryrefslogtreecommitdiff
path: root/engine/gfx/sprites.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/gfx/sprites.asm')
-rw-r--r--engine/gfx/sprites.asm80
1 files changed, 26 insertions, 54 deletions
diff --git a/engine/gfx/sprites.asm b/engine/gfx/sprites.asm
index 63666c624..1b22e5832 100644
--- a/engine/gfx/sprites.asm
+++ b/engine/gfx/sprites.asm
@@ -1,4 +1,4 @@
-ClearSpriteAnims: ; 8cf53
+ClearSpriteAnims:
ld hl, wSpriteAnimDict
ld bc, wSpriteAnimsEnd - wSpriteAnimDict
.loop
@@ -9,15 +9,13 @@ ClearSpriteAnims: ; 8cf53
or b
jr nz, .loop
ret
-; 8cf62
-PlaySpriteAnimationsAndDelayFrame: ; 8cf62
+PlaySpriteAnimationsAndDelayFrame:
call PlaySpriteAnimations
call DelayFrame
ret
-; 8cf69
-PlaySpriteAnimations: ; 8cf69
+PlaySpriteAnimations:
push hl
push de
push bc
@@ -32,9 +30,8 @@ PlaySpriteAnimations: ; 8cf69
pop de
pop hl
ret
-; 8cf7a
-DoNextFrameForAllSprites: ; 8cf7a
+DoNextFrameForAllSprites:
ld hl, wSpriteAnimationStructs
ld e, NUM_SPRITE_ANIM_STRUCTS
@@ -72,9 +69,8 @@ DoNextFrameForAllSprites: ; 8cf7a
.done
ret
-; 8cfa8
-DoNextFrameForFirst16Sprites: ; 8cfa8 (23:4fa8)
+DoNextFrameForFirst16Sprites:
ld hl, wSpriteAnimationStructs
ld e, NUM_SPRITE_ANIM_STRUCTS
@@ -113,7 +109,7 @@ DoNextFrameForFirst16Sprites: ; 8cfa8 (23:4fa8)
.done
ret
-InitSpriteAnimStruct:: ; 8cfd6
+InitSpriteAnimStruct::
; Initialize animation a at pixel x=e, y=d
; Find if there's any room in the wSpriteAnimationStructs array, which is 10x16
push de
@@ -208,18 +204,15 @@ endr
ld a, b
ld [wSpriteAnimAddrBackup + 1], a
ret
-; 8d036
-DeinitializeSprite: ; 8d036
+DeinitializeSprite:
; Clear the index field of the struct in bc.
ld hl, SPRITEANIMSTRUCT_INDEX
add hl, bc
ld [hl], $0
ret
-; 8d03d
-
-DeinitializeAllSprites: ; 8d03d (23:503d)
+DeinitializeAllSprites:
; Clear the index field of every struct in the wSpriteAnimationStructs array.
ld hl, wSpriteAnimationStructs
ld bc, SPRITEANIMSTRUCT_LENGTH
@@ -232,8 +225,7 @@ DeinitializeAllSprites: ; 8d03d (23:503d)
jr nz, .loop
ret
-
-UpdateAnimFrame: ; 8d04c
+UpdateAnimFrame:
call InitSpriteAnimBuffer ; init WRAM
call GetSpriteAnimFrame ; read from a memory array
cp -3
@@ -319,9 +311,8 @@ UpdateAnimFrame: ; 8d04c
pop bc
scf
ret
-; 8d0be
-AddOrSubtractY: ; 8d0be
+AddOrSubtractY:
push hl
ld a, [hl]
ld hl, wCurrSpriteAddSubFlags
@@ -335,9 +326,8 @@ AddOrSubtractY: ; 8d0be
.ok
pop hl
ret
-; 8d0ce
-AddOrSubtractX: ; 8d0ce
+AddOrSubtractX:
push hl
ld a, [hl]
ld hl, wCurrSpriteAddSubFlags
@@ -351,9 +341,8 @@ AddOrSubtractX: ; 8d0ce
.ok
pop hl
ret
-; 8d0de
-GetSpriteOAMAttr: ; 8d0de
+GetSpriteOAMAttr:
ld a, [wCurrSpriteAddSubFlags]
ld b, a
ld a, [hl]
@@ -364,9 +353,8 @@ GetSpriteOAMAttr: ; 8d0de
and $1f
or b
ret
-; 8d0ec
-InitSpriteAnimBuffer: ; 8d0ec
+InitSpriteAnimBuffer:
xor a
ld [wCurrSpriteAddSubFlags], a
ld hl, SPRITEANIMSTRUCT_TILE_ID
@@ -382,9 +370,8 @@ InitSpriteAnimBuffer: ; 8d0ec
ld a, [hli]
ld [wCurrAnimYOffset], a
ret
-; 8d109
-GetSpriteAnimVTile: ; 8d109
+GetSpriteAnimVTile:
; a = wSpriteAnimDict[a] if a in wSpriteAnimDict else 0
; vTiles offset
push hl
@@ -409,9 +396,8 @@ GetSpriteAnimVTile: ; 8d109
pop bc
pop hl
ret
-; 8d120
-_ReinitSpriteAnimFrame:: ; 8d120
+_ReinitSpriteAnimFrame::
ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
add hl, bc
ld [hl], a
@@ -422,10 +408,8 @@ _ReinitSpriteAnimFrame:: ; 8d120
add hl, bc
ld [hl], -1
ret
-; 8d132
-
-GetSpriteAnimFrame: ; 8d132
+GetSpriteAnimFrame:
.loop
ld hl, SPRITEANIMSTRUCT_DURATION
add hl, bc
@@ -491,9 +475,8 @@ GetSpriteAnimFrame: ; 8d132
add hl, bc
ld [hl], a
jr .loop
-; 8d189
-.GetPointer: ; 8d189
+.GetPointer:
; Get the data for the current frame for the current animation sequence
; SpriteAnimFrameData[SpriteAnim[SPRITEANIMSTRUCT_FRAMESET_ID]][SpriteAnim[SPRITEANIMSTRUCT_FRAME]]
@@ -514,9 +497,8 @@ GetSpriteAnimFrame: ; 8d132
add hl, hl
add hl, de
ret
-; 8d1a2
-GetFrameOAMPointer: ; 8d1a2
+GetFrameOAMPointer:
; Load OAM data pointer
ld e, a
ld d, 0
@@ -525,9 +507,8 @@ GetFrameOAMPointer: ; 8d1a2
add hl, de
add hl, de
ret
-; 8d1ac
-Unreferenced_BrokenGetStdGraphics: ; 8d1ac
+Unreferenced_BrokenGetStdGraphics:
push hl
ld l, a
ld h, 0
@@ -547,8 +528,6 @@ Unreferenced_BrokenGetStdGraphics: ; 8d1ac
call Request2bpp
pop bc
ret
-; 8d1c4
-
INCLUDE "data/sprite_anims/sequences.asm"
@@ -558,7 +537,6 @@ INCLUDE "data/sprite_anims/framesets.asm"
INCLUDE "data/sprite_anims/oam.asm"
-
BrokenStdGFXPointers:
; tile count, bank, pointer
; (all pointers were dummied out to .deleted)
@@ -573,19 +551,16 @@ BrokenStdGFXPointers:
dbbw 16, $21, .deleted
.deleted
-; 8e72a (23:672a)
-
-Sprites_Cosine: ; 8e72a
+Sprites_Cosine:
; a = d * cos(a * pi/32)
add %010000 ; cos(x) = sin(x + pi/2)
; fallthrough
-Sprites_Sine: ; 8e72c
+Sprites_Sine:
; a = d * sin(a * pi/32)
calc_sine_wave
-
-AnimateEndOfExpBar: ; 8e79d
+AnimateEndOfExpBar:
ld a, [hSGB]
ld de, EndOfExpBarGFX
and a
@@ -609,9 +584,8 @@ AnimateEndOfExpBar: ; 8e79d
jr nz, .loop
call ClearSprites
ret
-; 8e7c6
-.AnimateFrame: ; 8e7c6
+.AnimateFrame:
ld hl, wVirtualOAMSprite00
ld c, 8 ; number of animated circles
.anim_loop
@@ -648,14 +622,13 @@ AnimateEndOfExpBar: ; 8e79d
ld a, PAL_BATTLE_OB_BLUE
ld [hli], a ; attributes
jr .anim_loop
-; 8e7f4
-EndOfExpBarGFX: ; 8e7f4
+EndOfExpBarGFX:
INCBIN "gfx/battle/expbarend.2bpp"
-SGBEndOfExpBarGFX: ; 8e804
+SGBEndOfExpBarGFX:
INCBIN "gfx/battle/expbarend_sgb.2bpp"
-ClearSpriteAnims2: ; 8e814
+ClearSpriteAnims2:
push hl
push de
push bc
@@ -674,4 +647,3 @@ ClearSpriteAnims2: ; 8e814
pop de
pop hl
ret
-; 8e82b