diff options
Diffstat (limited to 'engine/gfx/sprites.asm')
-rw-r--r-- | engine/gfx/sprites.asm | 80 |
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 |