Add MinecartFollower_TransitionToSprite for DrawMinecartFollwer

This commit is contained in:
scawful
2024-12-10 19:17:05 -05:00
parent 5368f498ea
commit 50f18743d1

View File

@@ -775,6 +775,34 @@ MinecartFollower_Bottom:
db $3D, $7D db $3D, $7D
} }
MinecartFollower_TransitionToSprite:
{
LDA.b #$A3
JSL Sprite_SpawnDynamically
TYX
JSL Sprite_SetSpawnedCoords
LDA.w !MinecartDirection : CMP.b #$00 : BEQ .vert_adjust
CMP.b #$02 : BEQ .vert_adjust
LDA.w POSY : CLC : ADC #$08 : STA.w SprY, X
LDA.w POSX : STA.w SprX, X
JMP .finish_prep
.vert_adjust
LDA.w POSY : STA.w SprY, X
LDA.w POSX : CLC : ADC #$02 : STA.w SprX, X
.finish_prep
LDA.w POSYH : STA.w SprYH, X
LDA.w POSXH : STA.w SprXH, X
LDA.w !MinecartDirection : CLC : ADC.b #$04 : STA.w SprSubtype, X
LDA .direction_to_anim, X : STA $0D90, X
JSL Sprite_Minecart_Prep
LDA.b #$00 : STA.l $7EF3CC
RTS
.direction_to_anim
db $02, $00, $02, $00
}
; Minecart Follower Main Routine and Draw ; Minecart Follower Main Routine and Draw
DrawMinecartFollower: DrawMinecartFollower:
{ {
@@ -790,31 +818,9 @@ DrawMinecartFollower:
; Check the current submodule in the underworld ; Check the current submodule in the underworld
LDA.b $11 : BNE .dont_spawn LDA.b $11 : BNE .dont_spawn
LDA !LinkInCart : BEQ .dont_spawn LDA !LinkInCart : BEQ .dont_spawn
LDA.b #$A3 JSR MinecartFollower_TransitionToSprite
JSL Sprite_SpawnDynamically
TYX
JSL Sprite_SetSpawnedCoords
LDA.w !MinecartDirection : CMP.b #$00 : BEQ .vert_adjust
CMP.b #$02 : BEQ .vert_adjust
LDA.w POSY : CLC : ADC #$08 : STA.w SprY, X
LDA.w POSX : STA.w SprX, X
JMP .finish_prep
.vert_adjust
LDA.w POSY : STA.w SprY, X
LDA.w POSX : CLC : ADC #$02 : STA.w SprX, X
.finish_prep
LDA.w POSYH : STA.w SprYH, X
LDA.w POSXH : STA.w SprXH, X
LDA.w !MinecartDirection : CLC : ADC.b #$04 : STA.w SprSubtype, X
LDA .direction_to_anim, X : STA $0D90, X
JSL Sprite_Minecart_Prep
LDA.b #$00 : STA.l $7EF3CC
.dont_spawn .dont_spawn
RTS RTS
.direction_to_anim
db $02, $00, $02, $00
} }
FollowerDraw_CachePosition: FollowerDraw_CachePosition:
@@ -933,8 +939,18 @@ CheckForFollowerIntraroomTransition:
RTL RTL
} }
LinkState_Minecart:
{
RTL
}
pushpc pushpc
org $07A50F
JSL LinkState_Minecart
RTS
; Follower_OldManUnused ; Follower_OldManUnused
org $09A41F org $09A41F
JSL CheckForMinecartFollowerDraw JSL CheckForMinecartFollowerDraw