Update Minecart WaitVert and WaitHoriz, add LinkSomaria symbol

This commit is contained in:
scawful
2024-12-09 19:21:10 -05:00
parent e794152520
commit 21bd65b5eb

View File

@@ -251,23 +251,25 @@ Sprite_Minecart_Main:
LDA.w LinkCarryOrToss : AND #$03 : BNE .lifting LDA.w LinkCarryOrToss : AND #$03 : BNE .lifting
LDA.w SprTimerA, X : BNE .not_ready LDA.w SprTimerA, X : BNE .not_ready
JSR CheckIfPlayerIsOn : BCC .not_ready JSR CheckIfPlayerIsOn : BCC .not_ready
; If the cart is active, we move immediately
LDA.w SprMiscF, X : BNE .active_cart LDA.w SprMiscF, X : BNE .active_cart
LDA $F4 : AND.b #$80 : BEQ .not_ready ; Check for B button ; Check for B button
LDA $F4 : AND.b #$80 : BEQ .not_ready
.active_cart .active_cart
JSL Link_CancelDash ; Stop the player from dashing
LDA #$02 : STA $02F5 ; Somaria platform and moving JSL Link_CancelDash
LDA.w SprCachedY : SEC : SBC #$0B : STA $20 ; Adjust player pos LDA #$02 : STA.w LinkSomaria
LDA #$01 : STA !LinkInCart ; Set Link in cart flag LDA #$01 : STA !LinkInCart
; Adjust player pos
LDA.w SprCachedY : SEC : SBC #$0B : STA $20
; Check if the cart is facing east or west ; Check if the cart is facing east or west
LDA.w SprSubtype, X : CMP.b #$03 : BNE .opposite_direction LDA.w SprSubtype, X : CMP.b #$03 : BNE +
STA.w !MinecartDirection JSR Minecart_SetDirectionWest
LDA #$02 : STA !SpriteDirection, X
%GotoAction(5) ; Minecart_MoveWest %GotoAction(5) ; Minecart_MoveWest
RTS RTS
.opposite_direction +
STA.w !MinecartDirection JSR Minecart_SetDirectionEast
LDA #$03 : STA !SpriteDirection, X
%GotoAction(3) ; Minecart_MoveEast %GotoAction(3) ; Minecart_MoveEast
RTS RTS
.not_ready .not_ready
@@ -284,23 +286,25 @@ Sprite_Minecart_Main:
LDA.w LinkCarryOrToss : AND #$03 : BNE .lifting LDA.w LinkCarryOrToss : AND #$03 : BNE .lifting
LDA.w SprTimerA, X : BNE .not_ready LDA.w SprTimerA, X : BNE .not_ready
JSR CheckIfPlayerIsOn : BCC .not_ready JSR CheckIfPlayerIsOn : BCC .not_ready
; If the cart is active, we move immediately
LDA.w SprMiscF, X : BNE .active_cart LDA.w SprMiscF, X : BNE .active_cart
LDA $F4 : AND.b #$80 : BEQ .not_ready ; Check for B button ; Check for B button
LDA $F4 : AND.b #$80 : BEQ .not_ready
.active_cart .active_cart
JSL Link_CancelDash ; Stop the player from dashing
LDA #$02 : STA $02F5 ; Somaria platform and moving JSL Link_CancelDash
LDA.w SprCachedY : SEC : SBC #$0B : STA $20 ; Adjust player pos LDA.b #$02 : STA.w LinkSomaria
LDA #$01 : STA !LinkInCart ; Set Link in cart flag LDA.b #$01 : STA.w !LinkInCart
; Adjust player pos
LDA.w SprCachedY : SEC : SBC #$0B : STA $20
; Check if the cart is facing north or south ; Check if the cart is facing north or south
LDA.w SprSubtype, X : BEQ .opposite_direction LDA.w SprSubtype, X : BEQ +
STA.w !MinecartDirection JSR Minecart_SetDirectionSouth
LDA #$01 : STA !SpriteDirection, X
%GotoAction(4) ; Minecart_MoveSouth %GotoAction(4) ; Minecart_MoveSouth
RTS RTS
.opposite_direction +
STA.w !MinecartDirection JSR Minecart_SetDirectionNorth
LDA #$00 : STA !SpriteDirection, X
%GotoAction(2) ; Minecart_MoveNorth %GotoAction(2) ; Minecart_MoveNorth
RTS RTS
.not_ready .not_ready
@@ -437,7 +441,7 @@ HandlePlayerCameraAndMoveCart:
StopCart: StopCart:
{ {
STZ.w $02F5 STZ.w LinkSomaria
STZ.w SprYSpeed, X STZ.w SprYSpeed, X
STZ.w SprXSpeed, X STZ.w SprXSpeed, X
STZ.w !LinkInCart STZ.w !LinkInCart