From 9aa9d39c78735ff003cbb7e0876a4a25ecbe923c Mon Sep 17 00:00:00 2001 From: scawful Date: Tue, 19 Nov 2024 16:25:24 -0500 Subject: [PATCH] Replace more common sprite ram with symbols --- Events/all_dreams.asm | 2 +- Items/fishing_rod.asm | 18 ++++++------- Items/portal_rod.asm | 2 +- Masks/mask_routines.asm | 20 +++++++------- Overworld/overlays.asm | 8 +++--- Overworld/overworld.asm | 4 +-- Sprites/Bosses/arrghus.asm | 4 +-- Sprites/Bosses/dark_link.asm | 16 +++++------ Sprites/Bosses/king_dodongo.asm | 2 +- Sprites/Bosses/kydreeok.asm | 8 +++--- Sprites/Bosses/kydreeok_head.asm | 2 +- Sprites/Bosses/kydrog.asm | 2 +- Sprites/Bosses/kydrog_boss.asm | 24 ++++++++--------- Sprites/Bosses/lanmola.asm | 20 +++++++------- Sprites/Bosses/lanmola_expanded.asm | 6 ++--- Sprites/Bosses/manhandla.asm | 4 +-- Sprites/Bosses/octoboss.asm | 36 ++++++++++++------------- Sprites/Bosses/twinrova.asm | 28 +++++++++---------- Sprites/Bosses/wolfos.asm | 6 ++--- Sprites/Enemies/business_scrub.asm | 2 +- Sprites/Enemies/helmet_chuchu.asm | 6 ++--- Sprites/Enemies/poltergeist.asm | 18 ++++++------- Sprites/Enemies/sea_urchin.asm | 2 +- Sprites/NPCs/bean_vendor.asm | 2 +- Sprites/NPCs/bug_net_kid.asm | 2 +- Sprites/NPCs/farore.asm | 4 +-- Sprites/NPCs/followers.asm | 24 ++++++++--------- Sprites/NPCs/zora_princess.asm | 8 +++--- Sprites/Objects/ice_block.asm | 8 +++--- Sprites/Objects/minecart.asm | 14 +++++----- Sprites/Objects/portal_sprite.asm | 12 ++++----- Sprites/Objects/switch_track.asm | 2 +- Sprites/ZSpriteLib/sprite_functions.asm | 18 ++++++------- Sprites/all_sprites.asm | 2 +- 34 files changed, 168 insertions(+), 168 deletions(-) diff --git a/Events/all_dreams.asm b/Events/all_dreams.asm index 8ec9372..e0de7a5 100644 --- a/Events/all_dreams.asm +++ b/Events/all_dreams.asm @@ -138,7 +138,7 @@ Overlord_SpawnSoldierPath: LDA.w .soldier_position_y, X : STA.w SprY,Y LDA.w $0B40,X : STA.w SprFloor,Y LDA.b #$20 : STA.w SprTimerA,Y - LDA.w $0FB5 : STA.w $0DE0,Y + LDA.w $0FB5 : STA.w SprMiscC,Y .exit RTS diff --git a/Items/fishing_rod.asm b/Items/fishing_rod.asm index 75a192d..b8e3586 100644 --- a/Items/fishing_rod.asm +++ b/Items/fishing_rod.asm @@ -144,7 +144,7 @@ LinkItem_FishingRod: JSL Sprite_SetSpawnedCoordinates LDA.w $0E20, Y : CMP.b #$D2 : BNE .notafish - LDA #$04 : STA.w $0F70, Y + LDA #$04 : STA.w SprHeight, Y LDA #$01 : STA.w $0D80, Y .notafish @@ -156,7 +156,7 @@ LinkItem_FishingRod: PLX LDA.b #$FF : STA.w SprTimerD, Y LDA.b #$20 : STA.w $0F80, Y ; Gravity - ;LDA.b #$06 : STA.w $0F70, Y + ;LDA.b #$06 : STA.w SprHeight, Y .noPrize LDA.b #$02 : STA.l $7F5BA2 ; set fishing rod state to pulling back @@ -172,7 +172,7 @@ EndFishing: LDA #$00 STA.l $7F5BA2 LDA.l $7F5BA3 : TAX - STZ.w $0DD0, X + STZ.w SprState, X STZ.b $5E STZ.w $0300 STZ.b $3D @@ -298,13 +298,13 @@ FloaterBoySpriteCheck: Sprite_CheckIfActive: { - LDA.w $0FC1 ; Remove that if want to be able to pause all other sprites + LDA.w SprFreeze ; Remove that if want to be able to pause all other sprites BNE .inactive LDA.b $11 BNE .inactive - LDA.w $0CAA, X + LDA.w SprDefl, X BMI .active LDA.w $0F00, X @@ -342,7 +342,7 @@ SpritePrep_Floater: .DoInitFloater - LDA.b #$08 : STA.w $0F70, X ; Height + LDA.b #$08 : STA.w SprHeight, X ; Height LDA.b #$10 : STA.w $0F80, X ; Gravity LDA.b #$00 : STA.w SprMiscG, X ; is it in water? LDA.b #$00 : STA.w SprMiscE, X ; Wiggling Velocity index @@ -409,9 +409,9 @@ Sprite_Floater: LDA.w $0F80, X : SEC : SBC.b #$01 : STA.w $0F80, X - LDA.w $0F70, X : BPL .aloft + LDA.w SprHeight, X : BPL .aloft - STZ.w $0F70, X + STZ.w SprHeight, X LDA.w SprXSpeed, X : ASL A : ROR.w SprXSpeed, X @@ -506,7 +506,7 @@ DismissRodFromMenu: LDA #$00 STA.l $7F5BA2 LDA.l $7F5BA3 : TAX - STZ.w $0DD0, X + STZ.w SprState, X STZ.b $5E STZ.w $0300 STZ.b $3D diff --git a/Items/portal_rod.asm b/Items/portal_rod.asm index 62f1250..8d3c0a2 100644 --- a/Items/portal_rod.asm +++ b/Items/portal_rod.asm @@ -72,7 +72,7 @@ Ancilla_HandlePortalCollision: RTL .not_portal_arrow ; Restore arrow deflection sprite code from $088DC3 - LDA.w $0B6B,Y : AND.b #$08 + LDA.w SprTileDie,Y : AND.b #$08 RTL } diff --git a/Masks/mask_routines.asm b/Masks/mask_routines.asm index 0da15a1..8209b66 100644 --- a/Masks/mask_routines.asm +++ b/Masks/mask_routines.asm @@ -500,7 +500,7 @@ DekuLink_HoverBasedOnInput: LDA.b #$01 : STA.w $0AAA STZ.w $0324 : STZ.w $031C : STZ.w $031D STZ.b $50 : STZ.b $3D - STZ.w $0FC1 + STZ.w SprFreeze STZ.w $011A : STZ.w $011B : STZ.w $011C : STZ.w $011D LDY.b #$00 @@ -600,9 +600,9 @@ Ancilla_CheckBasicSpriteCollision: ORA.w $0EF0, Y BNE .skip - LDA.w $0DD0, Y : CMP.b #$09 : BCC .skip + LDA.w SprState, Y : CMP.b #$09 : BCC .skip - LDA.w $0CAA, Y : AND.b #$02 : BNE .sprite_ignores_priority + LDA.w SprDefl, Y : AND.b #$02 : BNE .sprite_ignores_priority LDA.w $0280, X : BNE .skip @@ -651,20 +651,20 @@ Ancilla_CheckBasicSpriteCollision_Single: ; SPRITE 92 LDA.w $0E20, Y : CMP.b #$92 : BNE .not_king_helma - LDA.w $0DB0, Y : CMP.b #$03 : BCC .success + LDA.w SprMiscB, Y : CMP.b #$03 : BCC .success .not_king_helma ; SPRITE 80 LDA.w $0E20, Y : CMP.b #$80 : BNE .dont_reverse_fire_snake - LDA.w $0F10, Y : BNE .dont_reverse_fire_snake + LDA.w SprTimerE, Y : BNE .dont_reverse_fire_snake - LDA.b #$18 : STA.w $0F10, Y + LDA.b #$18 : STA.w SprTimerE, Y - LDA.w $0DE0, Y : EOR.b #$01 : STA.w $0DE0, Y + LDA.w SprMiscC, Y : EOR.b #$01 : STA.w SprMiscC, Y .dont_reverse_fire_snake - LDA.w $0BA0, Y : BNE .fail + LDA.w SprBulletproof, Y : BNE .fail LDA.w AnciX, X : SEC : SBC.b #$08 : STA.b $04 @@ -692,8 +692,8 @@ Ancilla_CheckBasicSpriteCollision_Single: PLX PLY - LDA.b $00 : EOR.b #$FF : STA.w $0F30, Y - LDA.b $01 : EOR.b #$FF : STA.w $0F40, Y + LDA.b $00 : EOR.b #$FF : STA.w SprYRecoil, Y + LDA.b $01 : EOR.b #$FF : STA.w SprXRecoil, Y PHX diff --git a/Overworld/overlays.asm b/Overworld/overlays.asm index 2e732f1..8f591c9 100644 --- a/Overworld/overlays.asm +++ b/Overworld/overlays.asm @@ -620,7 +620,7 @@ ZoraTemple_EntranceAnimation: STZ.b $B0 STZ.w $0710 STZ.w $02E4 - STZ.w $0FC1 + STZ.w SprFreeze STZ.w $011A STZ.w $011B STZ.w $011C @@ -671,7 +671,7 @@ Castle_EndAnimation: STZ.b $B0 STZ.w $0710 STZ.w $02E4 - STZ.w $0FC1 + STZ.w SprFreeze STZ.w $011A STZ.w $011B STZ.w $011C @@ -995,7 +995,7 @@ TailPalace_EntranceAnimation: STZ.b $B0 STZ.w $0710 STZ.w $02E4 - STZ.w $0FC1 + STZ.w SprFreeze STZ.w $011A STZ.w $011B STZ.w $011C @@ -1128,7 +1128,7 @@ Goron_EntranceAnimation: STZ.b $B0 STZ.w $0710 STZ.w $02E4 - STZ.w $0FC1 + STZ.w SprFreeze STZ.w $011A STZ.w $011B STZ.w $011C diff --git a/Overworld/overworld.asm b/Overworld/overworld.asm index cc6b611..d6101c0 100644 --- a/Overworld/overworld.asm +++ b/Overworld/overworld.asm @@ -16,7 +16,7 @@ org $0EF581 EXIT_0EF581: org $01C769 -#_01C769: LDA.w $0DD0,X +#_01C769: LDA.w SprState,X #_01C76C: CMP.b #$02 ; Credits_LoadNextScene_Overworld @@ -233,7 +233,7 @@ SpawnPointData: #_02DBF0: dw $0083 ; 0x02 - Prison #_02DBF2: dw $007B ; 0x03 - Uncle #_02DBF4: dw $009A ; 0x04 - Throne -#_02DBF6: dw $0103 ; 0x05 - Old man cave +#_02DBF6: DW $0103 ; 0x05 - Old man cave #_02DBF8: dw $0187 ; 0x06 - Old man home ; --------------------------------------------------------- diff --git a/Sprites/Bosses/arrghus.asm b/Sprites/Bosses/arrghus.asm index 87b48b9..bdd4aba 100644 --- a/Sprites/Bosses/arrghus.asm +++ b/Sprites/Bosses/arrghus.asm @@ -19,8 +19,8 @@ Arrghus_ApproachTargetSpeed: pullpc AdvancedArrghus: { - LDA $0CAA, Y : ORA.b #$08 : STA $0CAA, Y - LDA.b #$04 : STA $0CD2, Y + LDA.w SprDefl, Y : ORA.b #$08 : STA.w SprDefl, Y + LDA.b #$04 : STA.w SprBump, Y JSL Sprite_SpawnFireball LDA.b #$50 : STA.w SprTimerA, X diff --git a/Sprites/Bosses/dark_link.asm b/Sprites/Bosses/dark_link.asm index 17f6112..ab6fd51 100644 --- a/Sprites/Bosses/dark_link.asm +++ b/Sprites/Bosses/dark_link.asm @@ -557,7 +557,7 @@ Sprite_DarkLink_Main: LDA #$20 JSL Sprite_ApplySpeedTowardsPlayer ;restore life removed by the checkdamage - STZ.w $0CE2, X + STZ.w SprBump, X LDA #$20 : STA $29 : STA $C7 @@ -638,9 +638,9 @@ Sprite_DarkLink_Main: DEC.w $0F80,X : DEC.w $0F80,X - LDA.w $0F70,X : BPL .aloft + LDA.w SprHeight,X : BPL .aloft - STZ.w $0F70,X + STZ.w SprHeight,X %GotoAction(0) .aloft @@ -714,10 +714,10 @@ Sprite_DarkLink_Main: DEC.w $0F80,X : DEC.w $0F80,X : DEC.w $0F80,X : DEC.w $0F80,X - LDA.w $0F70,X : BPL .aloft + LDA.w SprHeight,X : BPL .aloft - STZ.w $0F70,X + STZ.w SprHeight,X LDA.b #$90 : STA.w SprTimerC, X LDA.b #$10 : STA.w SprTimerA, X @@ -878,12 +878,12 @@ Sprite_DarkLink_Main: DEC.w $0F80,X : DEC.w $0F80,X - LDA.w $0F70,X : BPL .aloft + LDA.w SprHeight,X : BPL .aloft STZ.w SprYSpeed, X STZ.w SprXSpeed, X - STZ.w $0F70,X + STZ.w SprHeight,X .aloft @@ -977,7 +977,7 @@ Sprite_DarkLink_Main: INC.w SprMiscF, X ;LDA #$1A : STA.b $11 ; ganon open door routine ; handled by the room tag? - LDA #$04 : STZ.w $0DD0, X + LDA #$04 : STZ.w SprState, X LDA.b #$80 : STA $0403 %GotoAction(14) diff --git a/Sprites/Bosses/king_dodongo.asm b/Sprites/Bosses/king_dodongo.asm index 289b044..66cd505 100644 --- a/Sprites/Bosses/king_dodongo.asm +++ b/Sprites/Bosses/king_dodongo.asm @@ -5,7 +5,7 @@ KingDodongo_NewHealthSystem: { PHB : PHK : PLB - LDA.w $0E50,X + LDA.w SprHealth,X LSR A LSR A TAY diff --git a/Sprites/Bosses/kydreeok.asm b/Sprites/Bosses/kydreeok.asm index 1f7504e..0c95586 100644 --- a/Sprites/Bosses/kydreeok.asm +++ b/Sprites/Bosses/kydreeok.asm @@ -279,9 +279,9 @@ Sprite_Kydreeok_Main: LDA.b #$00 JSL Sprite_SpawnDynamically : BMI .no_space LDA.b #$0B : STA.w $0AAA - LDA.b #$04 : STA.w $0DD0,Y - LDA.b #$03 : STA.w $0E40,Y - LDA.b #$0C : STA.w $0F50,Y + LDA.b #$04 : STA.w SprState,Y + LDA.b #$03 : STA.w SprNbrOAM,Y + LDA.b #$0C : STA.w SprProps,Y LDA.w SprCachedX : STA.w SprX,Y LDA.w $0FD9 : STA.w SprXH,Y LDA.w SprCachedY : STA.w SprY,Y @@ -293,7 +293,7 @@ Sprite_Kydreeok_Main: STZ.w $0422 STZ.w $0424 LDA $1C : ORA.b #$01 : STA $1C ;turn on BG2 (Body) - STZ.w $0DD0, X ; GG + STZ.w SprState, X ; GG .continue RTS } diff --git a/Sprites/Bosses/kydreeok_head.asm b/Sprites/Bosses/kydreeok_head.asm index 27fb779..1924141 100644 --- a/Sprites/Bosses/kydreeok_head.asm +++ b/Sprites/Bosses/kydreeok_head.asm @@ -203,7 +203,7 @@ Sprite_KydreeokHead_Main: JSL Sprite_Move LDA.w SprTimerA, X : BNE .not_done - LDA #$00 : STA $0DD0, X + LDA #$00 : STA.w SprState, X .not_done RTS } diff --git a/Sprites/Bosses/kydrog.asm b/Sprites/Bosses/kydrog.asm index a1f85a0..761fb23 100644 --- a/Sprites/Bosses/kydrog.asm +++ b/Sprites/Bosses/kydrog.asm @@ -49,7 +49,7 @@ Sprite_Kydrog_Prep: { PHB : PHK : PLB LDA.l $7EF300 : BEQ .PlayIntro - STZ.w $0DD0, X ; Kill the sprite + STZ.w SprState, X ; Kill the sprite .PlayIntro PLB RTL diff --git a/Sprites/Bosses/kydrog_boss.asm b/Sprites/Bosses/kydrog_boss.asm index ddde2ef..39c8489 100644 --- a/Sprites/Bosses/kydrog_boss.asm +++ b/Sprites/Bosses/kydrog_boss.asm @@ -61,7 +61,7 @@ Sprite_KydrogBoss_CheckIfDead: LDA.w SprHealth, X : BNE .not_dead PHX - LDA.b #$04 : STA $0DD0, X ;kill sprite boss style + LDA.b #$04 : STA.w SprState, X ;kill sprite boss style LDA.b #$09 : STA.w SprAction, X ;go to KydrogBoss_Death stage STZ.w $0D90,X @@ -79,11 +79,11 @@ Sprite_KydrogBoss_Prep: LDA #$00 : STA !KydrogPhase LDA.b #$A0 : STA.w SprHealth, X ; health - LDA.b #$80 : STA $0CAA, X + LDA.b #$80 : STA.w SprDefl, X - LDA.b #$03 : STA $0F60, X ; hitbox settings + LDA.b #$03 : STA.w SprHitbox, X ; hitbox settings LDA.b #$07 : STA.w SprBump, X ; bump damage type - LDA $0E60, X : AND.b #$BF : STA $0E60, X ; Not invincible + LDA.w SprGfxProps, X : AND.b #$BF : STA.w SprGfxProps, X ; Not invincible JSR KydrogBoss_Set_Damage ; Set the damage table @@ -466,10 +466,10 @@ CheckForNextPhase: ; TODO: Use a timer to unfreeze the sprite Sprite_CheckIfFrozen: { - LDA $0DD0, X : CMP.b #$0B : BNE .not_frozen + LDA.w SprState, X : CMP.b #$0B : BNE .not_frozen LDA.w SprTimerC, X : BNE .not_frozen LDA.b #$00 : STA.l $7FFA3C,X - LDA.b #$09 : STA.w $0DD0, X + LDA.b #$09 : STA.w SprState, X .not_frozen RTS } @@ -564,12 +564,12 @@ Kydrog_ThrowBoneAtPlayer: LDA.w SprX, X : CLC : ADC.b #$10 : STA.w SprX, X LDA.w SprY, X : SEC : SBC.b #$04 : STA.w SprY, X LDA.b #$20 : JSL Sprite_ApplySpeedTowardsPlayer - LDA.b #$21 : STA $0E40, X : STA $0BA0, X - LDA $0E60, X : ORA.b #$40 : STA $0E60, X - LDA.b #$48 : STA $0CAA, X + LDA.b #$21 : STA.w SprNbrOAM, X : STA.w SprBulletproof, X + LDA.w SprGfxProps, X : ORA.b #$40 : STA.w SprGfxProps, X + LDA.b #$48 : STA.w SprDefl, X LDA.b #$10 : STA.w SprTimerC, X - LDA.b #$14 : STA $0F60, X - LDA.b #$07 : STA $0F50, X + LDA.b #$14 : STA.w SprHitbox, X + LDA.b #$07 : STA.w SprProps, X LDA.b #$20 : STA.w SprBump, X PLX LDA.b #$02 : JSL Sound_SetSfx2PanLong @@ -595,7 +595,7 @@ GetNumberSpawnStalfos: BRA .not_a_skull .increment_count - LDA $0DD0, X : CMP.b #$00 : BEQ .not_a_skull + LDA.w SprState, X : CMP.b #$00 : BEQ .not_a_skull INC $00 .not_a_skull diff --git a/Sprites/Bosses/lanmola.asm b/Sprites/Bosses/lanmola.asm index ea7255d..e5af756 100644 --- a/Sprites/Bosses/lanmola.asm +++ b/Sprites/Bosses/lanmola.asm @@ -48,7 +48,7 @@ Lanmola_FinishInitialization: LDA.l .starting_delay, X : STA.w SprTimerA, X - LDA.b #$FF : STA $0F70, X + LDA.b #$FF : STA.w SprHeight, X PHX @@ -247,7 +247,7 @@ Lanmola_Dive: ;0x03 .alpha ; If we are under the ground go to the reset stage - LDA $0F70, X : BPL .notUnderGroundYet + LDA.w SprHeight, X : BPL .notUnderGroundYet INC $0D80, X LDA.b #$80 : STA.w SprTimerA, X @@ -290,7 +290,7 @@ Lanmola_Death: ;0x05 JSR Lanmola_Draw LDA.w SprTimerA, X : BNE .timerNotDone - STZ $0DD0, X + STZ.w SprState, X ; Y is the index where we write in RAM PHX ; keep X @@ -303,7 +303,7 @@ Lanmola_Death: ;0x05 .next_sprite LDA $0E20, X : CMP.b #$54 : BNE .notLanmola - LDA $0DD0, X : BNE .oneIsntDead + LDA.w SprState, X : BNE .oneIsntDead .notLanmola @@ -344,7 +344,7 @@ Lanmola_Death: ;0x05 LDA.b #$00 : JSL Sprite_SpawnDynamically : BMI .spawn_failed LDA.b #$0B : STA $0AAA - LDA.b #$04 : STA $0DD0, Y + LDA.b #$04 : STA.w SprState, Y LDA.b #$1F : STA.w SprTimerA, Y : STA $0D90, Y @@ -353,9 +353,9 @@ Lanmola_Death: ;0x05 LDA $0C : STA.w SprY, Y LDA $0D : STA.w SprYH, Y - LDA.b #$03 : STA $0E40, Y + LDA.b #$03 : STA.w SprNbrOAM, Y - LDA.b #$0C : STA $0F50, Y + LDA.b #$0C : STA.w SprProps, Y LDA.b #$0C : JSL Sound_SetSfx2PanLong @@ -594,7 +594,7 @@ Sprite_Shrapnel: .active - LDA $1A : ASL #2 : AND.b #$C0 : STA $0F50, X ; : ORA.b #$00 + LDA $1A : ASL #2 : AND.b #$C0 : STA.w SprProps, X ; : ORA.b #$00 JSR $E948 ;Sprite4_MoveXyz @@ -618,12 +618,12 @@ Sprite_Shrapnel: SEP #$20 ;JSR $8094 : BEQ .noTileCollision ;Sprite4_CheckTileCollision - ;STZ $0DD0, X + ;STZ.w SprState, X .noTileCollision LDA.w SprTimerA, X : BNE .timerNotDone - STZ $0DD0, X + STZ.w SprState, X .timerNotDone diff --git a/Sprites/Bosses/lanmola_expanded.asm b/Sprites/Bosses/lanmola_expanded.asm index 91c8b5f..fb47218 100644 --- a/Sprites/Bosses/lanmola_expanded.asm +++ b/Sprites/Bosses/lanmola_expanded.asm @@ -296,7 +296,7 @@ Lanmola_MoveSegment: LDA.w SprX, X : PHA ;lower x LDA.w SprY, X : PHA ;lower y - LDA $0F70, X : PHA ;height + LDA.w SprHeight, X : PHA ;height LDA $0F : PHA ;angle LDA $0E80, X : STA $02 : STA $05 @@ -313,8 +313,8 @@ Lanmola_MoveSegment: PLX - LDA $0DD0, X : CMP.b #$09 : BNE .notActive - LDA $11 : ORA $0FC1 : BNE .notActive + LDA.w SprState, X : CMP.b #$09 : BNE .notActive + LDA $11 : ORA.w SprFreeze : BNE .notActive LDA $10 : CMP #$0E : BEQ .notActive LDA $5D : CMP #$08 : BEQ .notActive ;in medallion cut scene CMP #$09 : BEQ .notActive ;in medallion cut scene diff --git a/Sprites/Bosses/manhandla.asm b/Sprites/Bosses/manhandla.asm index bf200cf..3c61ae2 100644 --- a/Sprites/Bosses/manhandla.asm +++ b/Sprites/Bosses/manhandla.asm @@ -819,7 +819,7 @@ Mothula_SpawnBeams: CLC : ADC.b #$03 : STA.w SprY,Y - LDA.b #$10 : STA.w SprTimerA,Y : STA.w $0BA0,Y + LDA.b #$10 : STA.w SprTimerA,Y : STA.w SprBulletproof,Y PHX @@ -834,7 +834,7 @@ Mothula_SpawnBeams: STA.w SprYSpeed,Y LDA.b #$00 - STA.w $0F70,Y + STA.w SprHeight,Y PLX diff --git a/Sprites/Bosses/octoboss.asm b/Sprites/Bosses/octoboss.asm index c675f02..9307853 100644 --- a/Sprites/Bosses/octoboss.asm +++ b/Sprites/Bosses/octoboss.asm @@ -17,11 +17,11 @@ Sprite_Octoboss_Long: PHB : PHK : PLB LDA.w SprMiscD, X : BNE + ; is the sprite already init - LDA #$04 : STA.w $0E40, X + LDA #$04 : STA.w SprNbrOAM, X ;LDA.w SprHitbox, X : AND.b #$E0 : ORA.b #$23 : STA.w SprHitbox, X - ;LDA.w $0CAA, X : AND #$7F : ORA.b #$81 : STA.w $0CAA, X + ;LDA.w SprDefl, X : AND #$7F : ORA.b #$81 : STA.w SprDefl, X ;LDA.b #$20 : STA.w SprHealth, X - STZ.w $0BA0, X + STZ.w SprBulletproof, X ; TODO: Add a safety check to prevent player from leaving without the item ; example if player left without the item, item will be on the ground still @@ -34,14 +34,14 @@ Sprite_Octoboss_Long: ; Is is killed? do we have the quake medallion tho ? LDA.l $7EF349 : BNE .weHaveMedallion ; Spawn the medallion - STZ.w $0DD0, X + STZ.w SprState, X JSR SpawnMedallionAlt ; spawn standing medallion BRA .SpriteIsNotActive .weHaveMedallion ; Do nothing just kill this sprite - STZ.w $0DD0, X + STZ.w SprState, X BRA .SpriteIsNotActive .notKiledYet @@ -49,8 +49,8 @@ Sprite_Octoboss_Long: PLX - ;LDA.w $0E60, X : AND.b #$BF : STA.w $0E60, X - ;LDA.w $0F50, X : AND.b #$BF : STA.w $0F50, X + ;LDA.w SprGfxProps, X : AND.b #$BF : STA.w SprGfxProps, X + ;LDA.w SprProps, X : AND.b #$BF : STA.w SprProps, X LDA.b #15 : STA.w SprFrame, X LDA.b #$87 : STA.l $7EC664 : STA.l $7EC684 @@ -547,7 +547,7 @@ Sprite_Octoboss_Secondary: LDA.w SprTimerB, X : BNE + LDA.w SprFrame, X : DEC : STA.w SprFrame, X : CMP.b #01 : BCS .noframereset JSR SpawnSplash - STZ.w $0DD0, X + STZ.w SprState, X .noframereset LDA.b #2 : STA.w SprTimerB, X + @@ -884,7 +884,7 @@ SpawnSplash: JSL Sprite_SetSpawnedCoords LDA.b #$03 - STA.w $0DD0,Y + STA.w SprState,Y LDA.b #$0F STA.w SprTimerA,Y @@ -893,7 +893,7 @@ SpawnSplash: STA.w $0D80,Y LDA.b #$03 - STA.w $0E40,Y + STA.w SprNbrOAM,Y LDA.b #$28 ; SFX2.28 JSL Sound_SetSfx2PanLong @@ -939,8 +939,8 @@ SpawnBossPoof: STA.w SprTimerA,Y LDA.b #$09 - STA.w $0E40,Y - STA.w $0BA0,Y + STA.w SprNbrOAM,Y + STA.w SprBulletproof,Y RTS @@ -1029,13 +1029,13 @@ SpawnMedallion: JSL $0DBB7C ; SpriteSFX_QueueSFX2WithPan LDA.b #$83 - STA.w $0E40,X + STA.w SprNbrOAM,X LDA.b #$58 - STA.w $0E60,X + STA.w SprGfxProps,X AND.b #$0F - STA.w $0F50,X + STA.w SprProps,X PLX @@ -1064,13 +1064,13 @@ SpawnMedallionAlt: STA.w $0D90, X LDA.b #$83 - STA.w $0E40,X + STA.w SprNbrOAM,X LDA.b #$58 - STA.w $0E60,X + STA.w SprGfxProps,X AND.b #$0F - STA.w $0F50,X + STA.w SprProps,X LDA.b #$DC : STA.w SprY, X LDA.b #$F7 : STA.w SprX, X diff --git a/Sprites/Bosses/twinrova.asm b/Sprites/Bosses/twinrova.asm index 87e8e69..994f7df 100644 --- a/Sprites/Bosses/twinrova.asm +++ b/Sprites/Bosses/twinrova.asm @@ -63,7 +63,7 @@ Sprite_Twinrova_CheckIfDead: .health_not_negative LDA.w SprHealth, X : BNE .not_dead PHX - LDA.b #$04 : STA $0DD0, X ; Kill sprite boss style + LDA.b #$04 : STA.w SprState, X ; Kill sprite boss style LDA.b #$0A : STA.w SprAction, X ; Go to Twinrova_Dead stage LDA.b #$10 : STA.w $0D90, X PLX @@ -79,13 +79,13 @@ Sprite_Twinrova_Prep: ; Kill the sprite if the Maiden is present LDA.l $7EF3CC : CMP.b #$06 : BNE .prep_twinrova - STZ.w $0DD0, X + STZ.w SprState, X .prep_twinrova LDA.b #$5A : STA.w SprHealth, X ; Health - LDA.b #$80 : STA $0CAA, X - LDA.b #$04 : STA $0CD2, X ; Bump damage type (4 hearts, green tunic) - LDA.w $0E60, X : AND.b #$BF : STA.w $0E60, X ; Not invincible + LDA.b #$80 : STA.w SprDefl, X + LDA.b #$04 : STA.w SprBump, X ; Bump damage type (4 hearts, green tunic) + LDA.w SprGfxProps, X : AND.b #$BF : STA.w SprGfxProps, X ; Not invincible %SetSpriteSpeedX(15) %SetSpriteSpeedX(15) @@ -277,9 +277,9 @@ Sprite_Twinrova_Main: %Twinrova_Attack() LDA #$01 : STA $0360 - LDA $0CAA : AND.b #$03 : STA $0CAA + LDA.w SprDefl : AND.b #$03 : STA.w SprDefl LDA.w SprTimerD, X : BNE + - LDA $0CAA : ORA.b #$03 : STA $0CAA + LDA.w SprDefl : ORA.b #$03 : STA.w SprDefl LDA.b #$40 : STA.w SprTimerD, X LDA $AC : BEQ .fire %GotoAction(6) ; Ice Attack @@ -539,7 +539,7 @@ RageModeMove: ; Handle floaty movement with controlled altitude LDA.w SprHeight, X : CMP #$10 : BNE .CheckGrounded DEC.w SprHeight, X - DEC.w $0F90, X + DEC.w SprHeightS, X .CheckGrounded ; Move sprite @@ -1018,12 +1018,12 @@ ApplyTwinrovaGraphics: ; $1DC845 #Fireball_Configure: { - LDA.w $0CAA,Y + LDA.w SprDefl,Y ORA.b #$08 - STA.w $0CAA,Y + STA.w SprDefl,Y LDA.b #$04 - STA.w $0CD2,Y + STA.w SprBump,Y .exit RTS @@ -1202,7 +1202,7 @@ Blind_SpawnFromMaiden: LDX.b #$00 ; Load the boss into sprite index 0 ; Set the sprite to alive and active - LDA.b #$09 : STA.w $0DD0,X + LDA.b #$09 : STA.w SprState,X ; SPRITE CE LDA.b #$CE : STA.w $0E20,X @@ -1223,7 +1223,7 @@ Blind_SpawnFromMaiden: LDA.b #$00 : STA.w $0DC0,X ; Set SprMiscC and bulletproof properties - LDA.b #$02 : STA.w SprMiscC,X : STA.w $0BA0,X + LDA.b #$02 : STA.w SprMiscC,X : STA.w SprBulletproof,X ; Set the 2nd key / heart piece items taken room flag LDA.w $0403 : ORA.b #$20 : STA.w $0403 @@ -1272,7 +1272,7 @@ SpritePrep_Blind_PrepareBattle: RTL .despawn - STZ.w $0DD0,X + STZ.w SprState,X RTL } diff --git a/Sprites/Bosses/wolfos.asm b/Sprites/Bosses/wolfos.asm index c2f7abd..d0101ea 100644 --- a/Sprites/Bosses/wolfos.asm +++ b/Sprites/Bosses/wolfos.asm @@ -65,8 +65,8 @@ Sprite_Wolfos_Prep: RTL .spawn_wolfos LDA.b #$40 : STA.w SprTimerA, X - LDA.b #$80 : STA.w $0CAA, X ; Sprite persist - LDA.b #$08 : STA.w $0E40, X ; Nbr Oam Entries + LDA.b #$80 : STA.w SprDefl, X ; Sprite persist + LDA.b #$08 : STA.w SprNbrOAM, X ; Nbr Oam Entries PLB RTL @@ -286,7 +286,7 @@ Sprite_Wolfos_Main: STZ.w SprYSpeed, X LDA.w SprTimerD, X : BNE .dismiss - LDA.b #$00 : STA $0DD0, X ; kill sprite normal style + LDA.b #$00 : STA.w SprState, X ; kill sprite normal style STZ.w SprAction, X STZ.w SprHealth, X STZ.w BRANDISH ; Stop Link from holding his hands up. diff --git a/Sprites/Enemies/business_scrub.asm b/Sprites/Enemies/business_scrub.asm index 45f139c..9218933 100644 --- a/Sprites/Enemies/business_scrub.asm +++ b/Sprites/Enemies/business_scrub.asm @@ -310,7 +310,7 @@ KillPeaShot: ; Kill the pea shot PHX LDA.w Offspring1_Id : TAX - STZ.w $0DD0, X + STZ.w SprState, X PLX RTS } diff --git a/Sprites/Enemies/helmet_chuchu.asm b/Sprites/Enemies/helmet_chuchu.asm index 885a781..e354896 100644 --- a/Sprites/Enemies/helmet_chuchu.asm +++ b/Sprites/Enemies/helmet_chuchu.asm @@ -248,13 +248,13 @@ Sprite_Chuchu_Move: JSL Sprite_MoveAltitude DEC.w $0F80,X : DEC.w $0F80,X - LDA.w $0F70, X : BPL .aloft - STZ.w $0F70, X + LDA.w SprHeight, X : BPL .aloft + STZ.w SprHeight, X LDA.b $08 : STA.w $0F80, X ; set height from 08 LDA.b $09 JSL Sprite_ApplySpeedTowardsPlayer .aloft - LDA.w $0F70, X : BEQ .dontmove + LDA.w SprHeight, X : BEQ .dontmove JSL Sprite_Move .dontmove diff --git a/Sprites/Enemies/poltergeist.asm b/Sprites/Enemies/poltergeist.asm index 9f37f73..344c950 100644 --- a/Sprites/Enemies/poltergeist.asm +++ b/Sprites/Enemies/poltergeist.asm @@ -60,9 +60,9 @@ Sprite_Poltergeist_Prep: { PHB : PHK : PLB - LDA #$00 : STA $0F60, X ; Persist - LDA #$00 : STA $0CAA, X ; Sprite persist in dungeon - LDA #$02 : STA $0E40, X ;1 tile by default + LDA #$00 : STA.w SprHitbox, X ; Persist + LDA #$00 : STA.w SprDefl, X ; Sprite persist in dungeon + LDA #$02 : STA.w SprNbrOAM, X ;1 tile by default LDA #$01 : STA.w SprAction, X ; by default it's a chair LDA.w SprSubtype, X : CMP #$10 : BNE .notPictureFrame @@ -75,7 +75,7 @@ Sprite_Poltergeist_Prep: CMP #$11 : BNE .notAxe LDA #$07 : STA.w SprFrame, X LDA #$02 : STA.w SprAction, X - LDA #$04 : STA $0E40, X + LDA #$04 : STA.w SprNbrOAM, X BRA .done .notAxe @@ -97,7 +97,7 @@ Sprite_Poltergeist_Prep: CMP #$14 : BNE .notBed LDA #5 : STA.w SprFrame, X LDA #$01 : STA.w SprAction, X - LDA #$06 : STA $0E40, X + LDA #$06 : STA.w SprNbrOAM, X BRA .done .notBed @@ -105,7 +105,7 @@ Sprite_Poltergeist_Prep: CMP #$15 : BNE .notDoor LDA #36 : STA.w SprFrame, X LDA #$01 : STA.w SprAction, X - LDA #$04 : STA $0E40, X + LDA #$04 : STA.w SprNbrOAM, X LDA.w SprY, X : SEC : SBC #$0C : STA.w SprY, X LDA.w SprX, X : CLC : ADC #$08 : STA.w SprX, X BRA .done @@ -283,19 +283,19 @@ Chair: Shatter: { - LDA.b #$A6 : STA $0E40, X + LDA.b #$A6 : STA.w SprNbrOAM, X LDA.b #$1F : JSL Sound_SetSfx2PanLong STZ $0DC0, X LDA.b #$04 : STA.w SprMiscB, X - LDA.b #$06 : STA $0DD0, X + LDA.b #$06 : STA.w SprState, X LDA.b #$1F : STA.w SprTimerA, X LDA.b #$EC : STA $0E20, X - LDA $0E40, X : CLC : ADC #$04 : STA $0E40, X + LDA.w SprNbrOAM, X : CLC : ADC #$04 : STA.w SprNbrOAM, X STZ $0EF0, X diff --git a/Sprites/Enemies/sea_urchin.asm b/Sprites/Enemies/sea_urchin.asm index f579c27..b2d69c2 100644 --- a/Sprites/Enemies/sea_urchin.asm +++ b/Sprites/Enemies/sea_urchin.asm @@ -81,7 +81,7 @@ Sprite_SeaUrchin_Main: LDA.b #$06 : STA.w SprState, X LDA.b #$0A : STA.w SprTimerA, X - STZ.w $0BE0,X + STZ.w SprPrize,X LDA.b #$09 ; SFX2.1E JSL $0DBB8A ; SpriteSFX_QueueSFX3WithPan diff --git a/Sprites/NPCs/bean_vendor.asm b/Sprites/NPCs/bean_vendor.asm index 63134e0..df83b29 100644 --- a/Sprites/NPCs/bean_vendor.asm +++ b/Sprites/NPCs/bean_vendor.asm @@ -51,7 +51,7 @@ Sprite_BeanVendor_Prep: { PHB : PHK : PLB - LDA.b #$80 : STA $0CAA, X ; Persist in dungeons + LDA.b #$80 : STA.w SprDefl, X ; Persist in dungeons LDA.b #$40 : STA.w SprTimerA, X LDA.w SprSubtype, X : STA.w SprAction, X CMP.b #$02 : BEQ .OldMan diff --git a/Sprites/NPCs/bug_net_kid.asm b/Sprites/NPCs/bug_net_kid.asm index 870cf90..a515258 100644 --- a/Sprites/NPCs/bug_net_kid.asm +++ b/Sprites/NPCs/bug_net_kid.asm @@ -22,7 +22,7 @@ SpritePrep_SickKid: LDA.l $7EF355 : BEQ .no_boots LDA.b #$03 : STA $0D80, X .no_boots - INC.w $0BA0, X + INC.w SprBulletproof, X RTS } diff --git a/Sprites/NPCs/farore.asm b/Sprites/NPCs/farore.asm index e473d88..3782c91 100644 --- a/Sprites/NPCs/farore.asm +++ b/Sprites/NPCs/farore.asm @@ -57,9 +57,9 @@ Sprite_Farore_Prep: { PHB : PHK : PLB - LDA.b #$80 : STA $0CAA, X ; Don't kill Farore when she goes off screen + LDA.b #$80 : STA.w SprDefl, X ; Don't kill Farore when she goes off screen LDA.l $7EF300 : BEQ .PlayIntro - STZ.w $0DD0, X ; Kill the sprite + STZ.w SprState, X ; Kill the sprite .PlayIntro PLB diff --git a/Sprites/NPCs/followers.asm b/Sprites/NPCs/followers.asm index 3f13d9b..b4794d1 100644 --- a/Sprites/NPCs/followers.asm +++ b/Sprites/NPCs/followers.asm @@ -98,13 +98,13 @@ ZoraBaby_RevertToSprite: PHX TAX - LDA.w $1A64, X : AND.b #$03 : STA.w $0EB0,Y : STA.w $0DE0,Y - LDA.w $1A00, X : CLC : ADC.b #$02 : STA.w $0D00,Y - LDA.w $1A14, X : ADC.b #$00 : STA.w $0D20,Y - LDA.w $1A28, X : CLC : ADC.b #$10 : STA.w $0D10,Y - LDA.w $1A3C, X : ADC.b #$00 : STA.w $0D30,Y + LDA.w $1A64, X : AND.b #$03 : STA.w SprMiscE,Y : STA.w SprMiscC,Y + LDA.w $1A00, X : CLC : ADC.b #$02 : STA.w SprY,Y + LDA.w $1A14, X : ADC.b #$00 : STA.w SprYH,Y + LDA.w $1A28, X : CLC : ADC.b #$10 : STA.w SprX,Y + LDA.w $1A3C, X : ADC.b #$00 : STA.w SprXH,Y LDA.b $EE : STA.w $0F20,Y - LDA.b #$01 : STA.w $0BA0,Y : STA.w $0E80,Y + LDA.b #$01 : STA.w SprBulletproof,Y : STA.w $0E80,Y LDA.b #$04 : STA.w SprAction, Y LDA.b #$FF : STA.w SprTimerB, Y PLX @@ -276,7 +276,7 @@ org $06BD9C org $068D59 SpritePrep_Locksmith: { - INC.w $0BA0, X + INC.w SprBulletproof, X ; Clear sprite if we already have Zora baby LDA.l $7EF3CC : CMP.b #$09 : BNE .not_already_following @@ -325,14 +325,14 @@ Sprite_39_ZoraBaby: LDY.b #$01 JSL Sprite_ShowSolicitedMessage - LDA.w $0D10, X + LDA.w SprX, X PHA - SEC : SBC.b #$10 : STA.w $0D10, X + SEC : SBC.b #$10 : STA.w SprX, X JSR Sprite_Get16BitCoords_Local - LDA.b #$01 : STA.w $0D50, X : STA.w $0D40, X + LDA.b #$01 : STA.w SprXSpeed, X : STA.w SprYSpeed, X JSL Sprite_CheckTileCollision_long : BNE .dont_stalk_link INC.w SprAction, X @@ -340,7 +340,7 @@ Sprite_39_ZoraBaby: LDA.b #$05 : STA.w SprAction, X .dont_stalk_link PLA - STA.w $0D10, X + STA.w SprX, X RTS } @@ -480,7 +480,7 @@ SpritePrep_OldMan: RTL .main - INC.w $0BA0, X + INC.w SprBulletproof, X ; LDA.b $A0 : CMP.b #$E4 ; ROOM 00E4 diff --git a/Sprites/NPCs/zora_princess.asm b/Sprites/NPCs/zora_princess.asm index 62e6a42..7b493c7 100644 --- a/Sprites/NPCs/zora_princess.asm +++ b/Sprites/NPCs/zora_princess.asm @@ -50,11 +50,11 @@ Sprite_ZoraPrincess_Prep: PHB : PHK : PLB LDA.l $7EF302 BEQ .doesnt_have_mask - STZ.w $0DD0, X ; Kill the sprite + STZ.w SprState, X ; Kill the sprite .doesnt_have_mask - LDA #$00 : STA $0CAA, X - LDA #$00 : STA $0B6B, X + LDA #$00 : STA.w SprDefl, X + LDA #$00 : STA.w SprTileDie, X PLB RTL @@ -110,7 +110,7 @@ Sprite_ZoraPrincess_Main: LDY #$0F : STZ $02E9 ; Give the Zora Mask JSL Link_ReceiveItem LDA #$01 : STA.l $7EF302 - LDA.b #$00 : STA $0DD0, X + LDA.b #$00 : STA.w SprState, X + RTS } diff --git a/Sprites/Objects/ice_block.asm b/Sprites/Objects/ice_block.asm index 43f5c1e..94efff0 100644 --- a/Sprites/Objects/ice_block.asm +++ b/Sprites/Objects/ice_block.asm @@ -65,7 +65,7 @@ Sprite_IceBlock_Prep: LDA.w SprXH, X : STA.w SprMiscF, X LDA.w SprYH, X : STA.w SprMiscG, X - STZ.w $0CAA, X + STZ.w SprDefl, X PLB RTL @@ -323,7 +323,7 @@ Statue_BlockSprites: AND.b #$01 BNE .skip - LDA.w $0DD0,Y + LDA.w SprState,Y CMP.b #$09 BCC .skip @@ -372,10 +372,10 @@ Statue_BlockSprites: PLY LDA.b $00 - STA.w $0F30,Y + STA.w SprYRecoil,Y LDA.b $01 - STA.w $0F40,Y + STA.w SprXRecoil,Y .skip SEP #$20 diff --git a/Sprites/Objects/minecart.asm b/Sprites/Objects/minecart.asm index 5b77c91..2cf44e9 100644 --- a/Sprites/Objects/minecart.asm +++ b/Sprites/Objects/minecart.asm @@ -282,7 +282,7 @@ Sprite_Minecart_Main: .active_cart JSL Link_CancelDash ; Stop the player from dashing LDA #$02 : STA $02F5 ; Somaria platform and moving - LDA $0FDA : SEC : SBC #$0B : STA $20 ; Adjust player pos + LDA.w SprCachedY : SEC : SBC #$0B : STA $20 ; Adjust player pos LDA #$01 : STA !LinkInCart ; Set Link in cart flag ; Check if the cart is facing east or west @@ -315,7 +315,7 @@ Sprite_Minecart_Main: .active_cart JSL Link_CancelDash ; Stop the player from dashing LDA #$02 : STA $02F5 ; Somaria platform and moving - LDA $0FDA : SEC : SBC #$0B : STA $20 ; Adjust player pos + LDA.w SprCachedY : SEC : SBC #$0B : STA $20 ; Adjust player pos LDA #$01 : STA !LinkInCart ; Set Link in cart flag ; Check if the cart is facing north or south @@ -365,7 +365,7 @@ Sprite_Minecart_Main: %PlayAnimation(0,1,8) %InitMovement() LDA $36 : BNE .fast_speed - LDA.b #!MinecartSpeed : STA $0D50, X + LDA.b #!MinecartSpeed : STA.w SprXSpeed, X JMP + .fast_speed LDA.b #!DoubleSpeed : STA.w SprXSpeed, X @@ -751,10 +751,10 @@ CheckForPlayerInput: CheckIfPlayerIsOn: { REP #$20 - LDA $22 : CLC : ADC #$0009 : CMP $0FD8 : BCC .left - LDA $22 : SEC : SBC #$0009 : CMP $0FD8 : BCS .right - LDA $20 : CLC : ADC #$0012 : CMP $0FDA : BCC .up - LDA $20 : SEC : SBC #$0012 : CMP $0FDA : BCS .down + LDA $22 : CLC : ADC #$0009 : CMP.w SprCachedX : BCC .left + LDA $22 : SEC : SBC #$0009 : CMP.w SprCachedX : BCS .right + LDA $20 : CLC : ADC #$0012 : CMP.w SprCachedY : BCC .up + LDA $20 : SEC : SBC #$0012 : CMP.w SprCachedY : BCS .down SEP #$21 RTS ; Return with carry set .left diff --git a/Sprites/Objects/portal_sprite.asm b/Sprites/Objects/portal_sprite.asm index e3506a3..e217ab7 100644 --- a/Sprites/Objects/portal_sprite.asm +++ b/Sprites/Objects/portal_sprite.asm @@ -60,10 +60,10 @@ Sprite_Portal_Prep: PHB : PHK : PLB ; Persist outside of camera - LDA #$00 : STA $0CAA, X + LDA #$00 : STA.w SprDefl, X LDA.w SprHitbox, X : AND.b #$C0 : STA.w SprHitbox, X - STZ.w $0B6B, X - LDA.b #$FF : STA.w $0BA0, X + STZ.w SprTileDie, X + LDA.b #$FF : STA.w SprBulletproof, X PLB RTL @@ -297,13 +297,13 @@ CheckForDismissPortal: LDA $7E0FA6 : BEQ .DespawnOrange ; Check what portal is spawning next PHX LDA.w BlueSpriteIndex : TAX - STZ.w $0DD0, X + STZ.w SprState, X DEC.w $06FE PLX .DespawnOrange PHX LDA.w OrangeSpriteIndex : TAX - STZ.w $0DD0, X + STZ.w SprState, X DEC.w $06FE PLX RTS @@ -329,7 +329,7 @@ RejectOnTileCollision: LDA #$3C ; SFX2.3C Error beep STA $012E ; Queue sound effect - LDA #$00 : STA $0DD0, X + LDA #$00 : STA.w SprState, X DEC $06FE .not_out_of_bounds diff --git a/Sprites/Objects/switch_track.asm b/Sprites/Objects/switch_track.asm index 3c44eb5..6b7d7af 100644 --- a/Sprites/Objects/switch_track.asm +++ b/Sprites/Objects/switch_track.asm @@ -49,7 +49,7 @@ Sprite_RotatingTrack_Long: Sprite_RotatingTrack_Prep: { PHB : PHK : PLB - LDA.b #$80 : STA $0CAA, X + LDA.b #$80 : STA.w SprDefl, X LDA.w SprSubtype, X : STA.w SprAction,X PLB RTL diff --git a/Sprites/ZSpriteLib/sprite_functions.asm b/Sprites/ZSpriteLib/sprite_functions.asm index 8a9147c..bc549a6 100644 --- a/Sprites/ZSpriteLib/sprite_functions.asm +++ b/Sprites/ZSpriteLib/sprite_functions.asm @@ -81,7 +81,7 @@ Sprite_MoveZ: Sprite_MoveAltitude: { LDA.w SprTimerF, X : ASL : ASL : ASL : ASL - CLC : ADC.w $0F90, X : STA.w $0F90, X + CLC : ADC.w SprHeightS, X : STA.w SprHeightS, X LDA.w SprTimerF, X : PHP LSR : LSR : LSR : LSR @@ -342,7 +342,7 @@ Sprite_SetupHitBox: PHB : PHK : PLB LDA.w SprHeight, X : BMI .too_high PHY - LDA.w $0F60, X : AND.b #$1F : TAY + LDA.w SprHitbox, X : AND.b #$1F : TAY LDA.w SprX, X : CLC : ADC.w .offset_x_low, Y : STA.b $04 LDA.w SprXH, X : ADC.w .offset_x_high, Y : STA.b $0A @@ -889,8 +889,8 @@ Sprite_CheckIfRecoiling: PHA DEC.w $0EA0, X : BNE .still_recoiling - LDA.w $0F40, X : CLC : ADC.b #$20 : CMP.b #$40 : BCS .no_adjust - LDA.w $0F30, X : CLC : ADC.b #$20 : CMP.b #$40 : BCC .still_recoiling + LDA.w SprXRecoil, X : CLC : ADC.b #$20 : CMP.b #$40 : BCS .no_adjust + LDA.w SprYRecoil, X : CLC : ADC.b #$20 : CMP.b #$40 : BCC .still_recoiling .no_adjust LDA.b #$90 : STA.w $0EA0,X .still_recoiling @@ -902,11 +902,11 @@ Sprite_CheckIfRecoiling: LDA.b $1A : AND.w .masks,Y : BNE .no_movement - LDA.w $0F30, X : STA.w SprYSpeed,X + LDA.w SprYRecoil, X : STA.w SprYSpeed,X - LDA.w $0F40, X : STA.w SprXSpeed,X + LDA.w SprXRecoil, X : STA.w SprXSpeed,X - LDA.w $0CD2, X : BMI .handle_movement + LDA.w SprBump, X : BMI .handle_movement JSL Sprite_CheckTileCollision_long @@ -915,13 +915,13 @@ Sprite_CheckIfRecoiling: .stop_horizontal_movement CMP.b #$04 : BCS .stop_vertical_movement - STZ.w $0F40,X + STZ.w SprXRecoil,X STZ.w SprXSpeed,X BRA .movement_stopped .stop_vertical_movement - STZ.w $0F30,X + STZ.w SprYRecoil,X STZ.w SprYSpeed,X .movement_stopped diff --git a/Sprites/all_sprites.asm b/Sprites/all_sprites.asm index 7a2aa77..23d4607 100644 --- a/Sprites/all_sprites.asm +++ b/Sprites/all_sprites.asm @@ -335,7 +335,7 @@ ShopItem_Banana: JSR $F39E ; ShopItem_HandleCost BCC $F1A1 ; ShopItem_GiveFailureMessage - STZ.w $0DD0,X + STZ.w SprState,X INC.b Bananas