diff --git a/Sprites/Objects/collectible.asm b/Sprites/Objects/collectible.asm index ff2456f..966710d 100644 --- a/Sprites/Objects/collectible.asm +++ b/Sprites/Objects/collectible.asm @@ -1,6 +1,6 @@ ; ========================================================= -; Sprite Properties -; ========================================================= +; Collectible Sprites +; (Pineapple, Seashell, Sword/Shield, Rock Sirloin) !SPRID = $52 !NbrTiles = 03 ; Number of tiles used in a frame @@ -32,8 +32,6 @@ %Set_Sprite_Properties(Sprite_Collectible_Prep, Sprite_Collectible_Long) -; ========================================================= - Sprite_Collectible_Long: { PHB : PHK : PLB @@ -59,8 +57,6 @@ Sprite_Collectible_Long: RTL } -; ========================================================= - Sprite_Collectible_Prep: { PHB : PHK : PLB @@ -80,12 +76,10 @@ Sprite_Collectible_Prep: RTL } -; ========================================================= - Sprite_Collectible_Main: { LDA.w SprAction, X - JSL UseImplicitRegIndexedLocalJumpTable + JSL JumpTableLocal dw Pineapple dw Seashell @@ -139,8 +133,6 @@ Sprite_Collectible_Main: } -; ========================================================= - Sprite_Pineapple_Draw: { JSL Sprite_PrepOamCoord @@ -196,9 +188,6 @@ Sprite_Pineapple_Draw: RTS - - ; ========================================================= - .start_index db $00 .nbr_of_tiles @@ -271,7 +260,6 @@ Sprite_SwordShield_Draw: RTS - .start_index db $00 .nbr_of_tiles diff --git a/Sprites/Objects/deku_leaf.asm b/Sprites/Objects/deku_leaf.asm index 2898fd3..962bd07 100644 --- a/Sprites/Objects/deku_leaf.asm +++ b/Sprites/Objects/deku_leaf.asm @@ -32,8 +32,6 @@ %Set_Sprite_Properties(Sprite_DekuLeaf_Prep, Sprite_DekuLeaf_Long) -; ========================================================= - Sprite_DekuLeaf_Long: { PHB : PHK : PLB @@ -50,8 +48,6 @@ Sprite_DekuLeaf_Long: RTL } -; ========================================================= - Sprite_DekuLeaf_Prep: { PHB : PHK : PLB @@ -62,12 +58,10 @@ Sprite_DekuLeaf_Prep: RTL } -; ========================================================= - Sprite_DekuLeaf_Main: { LDA.w SprAction, X - JSL UseImplicitRegIndexedLocalJumpTable + JSL JumpTableLocal dw WaitForPlayer dw Whirlpool_Main @@ -95,61 +89,35 @@ Sprite_DekuLeaf_Main: LDA $0AAB : BEQ .not_on - STZ $55 ; Reset cape flag - STZ $0AAB ; Reset underwater flag - STZ $0351 ; Reset ripple flag - STZ $037B ; Reset invincibility flag - STZ $02B2 + STZ $55 ; Reset cape flag + STZ $0AAB ; Reset underwater flag + STZ $0351 ; Reset ripple flag + STZ $037B ; Reset invincibility flag + STZ $02B2 ; Reset mask flag - LDA.b $10 - CMP.b #$0B - BEQ .exit + LDA.b $10 : CMP.b #$0B : BEQ .exit + LDA.b $8A : AND.b #$40 : STA.b $7B : BEQ .no_mirror_portal + LDA.b $20 : STA.w $1ADF + LDA.b $21 : STA.w $1AEF + LDA.b $22 : STA.w $1ABF + LDA.b $23 : STA.w $1ACF + .no_mirror_portal + LDA.b #$23 - LDA.b $8A - AND.b #$40 - STA.b $7B + #SetGameModeLikeMirror: + STA.b $11 + STZ.w $03F8 + LDA.b #$01 : STA.w $02DB + STZ.b $B0 + STZ.b $27 : STZ.b $28 + LDA.b #$14 : STA.b $5D - BEQ .no_mirror_portal - - LDA.b $20 - STA.w $1ADF - - LDA.b $21 - STA.w $1AEF - - LDA.b $22 - STA.w $1ABF - - LDA.b $23 - STA.w $1ACF - - .no_mirror_portal - LDA.b #$23 - - #SetGameModeLikeMirror: - STA.b $11 - - STZ.w $03F8 - - LDA.b #$01 - STA.w $02DB - - STZ.b $B0 - - STZ.b $27 - STZ.b $28 - - LDA.b #$14 ; LINKSTATE 14 - STA.b $5D - - .not_on - .exit + .not_on + .exit RTS } } -; ========================================================= - Sprite_DekuLeaf_Draw: { JSL Sprite_PrepOamCoord @@ -159,7 +127,6 @@ Sprite_DekuLeaf_Draw: LDA $0DC0, X : CLC : ADC $0D90, X : TAY;Animation Frame LDA .start_index, Y : STA $06 - PHX LDX .nbr_of_tiles, Y ;amount of tiles -1 LDY.b #$00 @@ -207,9 +174,6 @@ Sprite_DekuLeaf_Draw: RTS - -; ========================================================= - .start_index db $00 .nbr_of_tiles @@ -280,8 +244,6 @@ Sprite_Whirlpool_Draw: RTS - - .start_index db $00, $04, $08 .nbr_of_tiles diff --git a/Sprites/Objects/ice_block.asm b/Sprites/Objects/ice_block.asm index fffd85d..209cd0c 100644 --- a/Sprites/Objects/ice_block.asm +++ b/Sprites/Objects/ice_block.asm @@ -68,7 +68,7 @@ Sprite_IceBlock_Prep: Sprite_IceBlock_Main: { LDA.w SprAction, X - JSL UseImplicitRegIndexedLocalJumpTable + JSL JumpTableLocal dw MovementHandler MovementHandler: @@ -122,7 +122,7 @@ Sprite_IceBlock_Main: RTS .NotInContact: LDA.w SprTimerA, X : BNE .delay_timer - LDA.b #$0D : STA.w SprTimerB,X + LDA.b #$0D : STA.w SprTimerB, X .delay_timer RTS } @@ -160,22 +160,21 @@ Sprite_IceBlock_Main: ; Currently unused as it doesnt play well with the hitbox choices IceBlock_CheckForGround: { - LDA.w SprY,X : CLC : ADC.b #$08 : STA.b $00 - LDA.w SprYH,X : ADC.b #$00 : STA.b $01 - LDA.w SprX,X : STA.b $02 - LDA.w SprXH,X : ADC.b #$00 : STA.b $03 - LDA.w $0F20,X + LDA.w SprY, X : CLC : ADC.b #$08 : STA.b $00 + LDA.w SprYH, X : ADC.b #$00 : STA.b $01 + LDA.w SprX, X : STA.b $02 + LDA.w SprXH, X : ADC.b #$00 : STA.b $03 + LDA.w $0F20, X PHY JSL $06E87B ; GetTileType_long PLY - LDA.w $0FA5 - CMP.b #$0E : BNE .stop - SEC - RTS -.stop - STZ.w SprXSpeed,X - STZ.w SprYSpeed,X + LDA.w $0FA5 : CMP.b #$0E : BNE .stop + SEC + RTS + .stop + STZ.w SprXSpeed, X + STZ.w SprYSpeed, X CLC RTS } @@ -185,11 +184,11 @@ Sprite_IceBlock_CheckForSwitch: LDY.b #$03 .next_tile - LDA.w SprY,X : CLC : ADC.w .offset_y,Y : STA.b $00 - LDA.w SprYH,X : ADC.b #$00 : STA.b $01 - LDA.w SprX,X : CLC : ADC.w .offset_x,Y : STA.b $02 - LDA.w SprXH,X : ADC.b #$00 : STA.b $03 - LDA.w $0F20,X + LDA.w SprY, X : CLC : ADC.w .offset_y, Y : STA.b $00 + LDA.w SprYH, X : ADC.b #$00 : STA.b $01 + LDA.w SprX, X : CLC : ADC.w .offset_x, Y : STA.b $02 + LDA.w SprXH, X : ADC.b #$00 : STA.b $03 + LDA.w $0F20, X PHY JSL $06E87B ; GetTileType_long @@ -231,7 +230,7 @@ Statue_BlockSprites: LDA.w $0E20, Y : CMP.b #$1C : BEQ .skip CPY.w $0FA0 : BEQ .skip TYA : EOR.b $1A : AND.b #$01 : BNE .skip - LDA.w SprState,Y : CMP.b #$09 : BCC .skip + LDA.w SprState, Y : CMP.b #$09 : BCC .skip LDA.w SprX, Y : STA.b $04 LDA.w SprXH, Y : STA.b $05 diff --git a/Sprites/Objects/portal_sprite.asm b/Sprites/Objects/portal_sprite.asm index bfe5620..6d8296d 100644 --- a/Sprites/Objects/portal_sprite.asm +++ b/Sprites/Objects/portal_sprite.asm @@ -73,7 +73,7 @@ BlueSpriteIndex = $7E0632 Sprite_Portal_Main: { LDA.w SprAction, X - JSL UseImplicitRegIndexedLocalJumpTable + JSL JumpTableLocal dw StateHandler dw BluePortal @@ -104,7 +104,6 @@ Sprite_Portal_Main: LDA.w SprY, X : STA.w BluePortal_X LDA.w SprX, X : STA.w BluePortal_Y LDA.b #$02 : STA.w SprSubtype, X - %GotoAction(1) RTS } @@ -124,9 +123,7 @@ Sprite_Portal_Main: JSL $0683EA ; Sprite_SetupHitbox_long JSL CheckIfHitBoxesOverlap : BCC .NoOverlap CLC - LDA $1B : BEQ .outdoors - %GotoAction(3) ; BluePortal_WarpDungeon .NoOverlap RTS @@ -171,10 +168,6 @@ Sprite_Portal_Main: LDA $7EC18A : STA $0604 LDA $7EC18C : STA $0608 LDA $7EC18E : STA $060C - ; LDA $7EC190 : STA $0610 - ; LDA $7EC192 : STA $0612 - ; LDA $7EC194 : STA $0614 - ; LDA $7EC196 : STA $0616 PHX LDA.w OrangeSpriteIndex : TAX @@ -200,10 +193,6 @@ Sprite_Portal_Main: LDA $7EC18A : STA $0604 ; Small Room South LDA $7EC18C : STA $0608 ; Small Room West LDA $7EC18E : STA $060C ; Small Room South - ; LDA $7EC190 : STA $0610 - ; LDA $7EC192 : STA $0612 - ; LDA $7EC194 : STA $0614 - ; LDA $7EC196 : STA $0616 PHX LDA.w BlueSpriteIndex : TAX