Replace common sprite ram with their symbols
This commit is contained in:
@@ -31,18 +31,18 @@ NewSpikePrep:
|
||||
{
|
||||
PHB : PHK : PLB
|
||||
LDA $0E30, X : TAY
|
||||
LDA.w speedValuesH, Y : STA $0D50, X
|
||||
LDA.w speedValuesV, Y : STA $0D40, X
|
||||
LDA.w speedValuesH, Y : STA.w SprXSpeed, X
|
||||
LDA.w speedValuesV, Y : STA.w SprYSpeed, X
|
||||
PLB
|
||||
RTL
|
||||
}
|
||||
|
||||
NewSpikeCollision:
|
||||
{
|
||||
LDA.b #$04 : STA $0DF0, X
|
||||
LDA.b #$04 : STA.w SprTimerA, X
|
||||
|
||||
LDA $0D50, X : EOR.b #$FF : INC A : STA $0D50, X
|
||||
LDA $0D40, X : EOR.b #$FF : INC A : STA $0D40, X
|
||||
LDA.w SprXSpeed, X : EOR.b #$FF : INC A : STA.w SprXSpeed, X
|
||||
LDA.w SprYSpeed, X : EOR.b #$FF : INC A : STA.w SprYSpeed, X
|
||||
|
||||
LDA.b #$05 : JSL $0DBB7C ; Sound_SetSfx2PanLong
|
||||
RTL
|
||||
|
||||
@@ -130,15 +130,15 @@ LinkItem_FishingRod:
|
||||
LDA.l $7F5BA3 : TAX
|
||||
|
||||
LDY.b $66
|
||||
LDA.w DirSpeedsY, Y : STA.w $0D40, X ; YSpeed
|
||||
LDA.w DirSpeedsX, Y : STA.w $0D50, X ; YSpeed
|
||||
LDA.w DirSpeedsY, Y : STA.w SprYSpeed, X ; YSpeed
|
||||
LDA.w DirSpeedsX, Y : STA.w SprXSpeed, X ; YSpeed
|
||||
.BringBackFloater
|
||||
LDA.b #$10 : STA.w $0F80, X ; Gravity
|
||||
|
||||
|
||||
; =======================================================
|
||||
; We got something spawn it and pull it at us
|
||||
LDA.w $0DB0, X : BEQ .noPrize
|
||||
LDA.w SprMiscB, X : BEQ .noPrize
|
||||
JSL GetRandomInt : AND #$0F : TAY : LDA Prizes, Y : BEQ .noPrize
|
||||
JSL Sprite_SpawnDynamically
|
||||
JSL Sprite_SetSpawnedCoordinates
|
||||
@@ -150,11 +150,11 @@ LinkItem_FishingRod:
|
||||
|
||||
PHX
|
||||
LDX.b $66
|
||||
LDA.w DirSpeedsY, X : STA.w $0D40, Y ; YSpeed
|
||||
LDA.w DirSpeedsX, X : STA.w $0D50, Y ; YSpeed
|
||||
LDA.w DirSpeedsY, X : STA.w SprYSpeed, Y ; YSpeed
|
||||
LDA.w DirSpeedsX, X : STA.w SprXSpeed, Y ; YSpeed
|
||||
|
||||
PLX
|
||||
LDA.b #$FF : STA.w $0EE0, Y
|
||||
LDA.b #$FF : STA.w SprTimerD, Y
|
||||
LDA.b #$20 : STA.w $0F80, Y ; Gravity
|
||||
;LDA.b #$06 : STA.w $0F70, Y
|
||||
|
||||
@@ -324,19 +324,19 @@ Sprite_CheckIfActive:
|
||||
SpritePrep_Floater:
|
||||
{
|
||||
LDA.b $66 : CMP.b #$03 : BNE .notRight
|
||||
LDA.b #$12 : STA.w $0D50, X ; XSpeed
|
||||
LDA.b #$12 : STA.w SprXSpeed, X ; XSpeed
|
||||
BRA .DoInitFloater
|
||||
.notRight
|
||||
CMP.b #$02 : BNE .notLeft
|
||||
LDA.b #$ED : STA.w $0D50, X ; XSpeed
|
||||
LDA.b #$ED : STA.w SprXSpeed, X ; XSpeed
|
||||
BRA .DoInitFloater
|
||||
.notLeft
|
||||
CMP.b #$01 : BNE .notDown
|
||||
LDA.b #$12 : STA.w $0D40, X ; YSpeed
|
||||
LDA.b #$12 : STA.w SprYSpeed, X ; YSpeed
|
||||
BRA .DoInitFloater
|
||||
.notDown
|
||||
CMP.b #$00 : BNE .notUp
|
||||
LDA.b #$ED : STA.w $0D40, X ; YSpeed
|
||||
LDA.b #$ED : STA.w SprYSpeed, X ; YSpeed
|
||||
BRA .DoInitFloater
|
||||
.notUp
|
||||
|
||||
@@ -345,11 +345,11 @@ SpritePrep_Floater:
|
||||
LDA.b #$08 : STA.w $0F70, 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 $0EB0, X ; Wiggling Velocity index
|
||||
LDA.b #$00 : STA.w $0E90, X ; just for a check
|
||||
LDA.b #$00 : STA.w $0DB0, X ; if we have a fish on line
|
||||
LDA.b #$00 : STA.w SprMiscE, X ; Wiggling Velocity index
|
||||
LDA.b #$00 : STA.w SprMiscD, X ; just for a check
|
||||
LDA.b #$00 : STA.w SprMiscB, X ; if we have a fish on line
|
||||
|
||||
;$0EE0 Timer for when floater is in water waiting for a fish to catch
|
||||
;SprTimerD Timer for when floater is in water waiting for a fish to catch
|
||||
|
||||
RTL
|
||||
}
|
||||
@@ -372,34 +372,34 @@ Sprite_Floater:
|
||||
|
||||
LDA.w SprMiscG, X : BEQ .noFishOnLine ; is the floater in water?
|
||||
|
||||
LDA.w $0EE0, X : BNE .noWigglingYet ; timerD wait until fish is on line
|
||||
LDA.w SprTimerD, X : BNE .noWigglingYet ; timerD wait until fish is on line
|
||||
|
||||
LDA.w $0DB0, X : BNE .fishOnlineWait
|
||||
LDA.w SprMiscB, X : BNE .fishOnlineWait
|
||||
; start another random timer for the time it'll last
|
||||
JSL GetRandomInt : AND #$3F
|
||||
CLC : ADC.b #$0F : STA.w $0DF0, X ; wiggling timer
|
||||
INC.w $0DB0, X ; we have a fish on line
|
||||
CLC : ADC.b #$0F : STA.w SprTimerA, X ; wiggling timer
|
||||
INC.w SprMiscB, X ; we have a fish on line
|
||||
|
||||
.noWigglingYet
|
||||
|
||||
LDA.w $0DB0, X : BEQ .noFishOnLine ; do we already have a fish on line?
|
||||
LDA.w SprMiscB, X : BEQ .noFishOnLine ; do we already have a fish on line?
|
||||
.fishOnlineWait
|
||||
LDA.w $0DF0, X : BNE .still_wiggling
|
||||
STZ.w $0DB0, X ; no more fish on line took too much time
|
||||
LDA.w SprTimerA, X : BNE .still_wiggling
|
||||
STZ.w SprMiscB, X ; no more fish on line took too much time
|
||||
JSL GetRandomInt : AND.b #$7F
|
||||
CLC : ADC.b #$7F : STA.w $0EE0, X ; reset timer wait until fish is on line
|
||||
STZ.w $0D50, X
|
||||
STZ.w $0D40, X
|
||||
CLC : ADC.b #$7F : STA.w SprTimerD, X ; reset timer wait until fish is on line
|
||||
STZ.w SprXSpeed, X
|
||||
STZ.w SprYSpeed, X
|
||||
BRA .noFishOnLine
|
||||
.still_wiggling
|
||||
|
||||
|
||||
LDY.w $0E10, X
|
||||
LDA.w WigglingTable, Y : STA.w $0D50, X
|
||||
LDA.w WigglingTable, Y : STA.w $0D40, X
|
||||
LDY.w $0E10, X : BNE + ; use timer to do wiggling
|
||||
LDY.w SprTimerC, X
|
||||
LDA.w WigglingTable, Y : STA.w SprXSpeed, X
|
||||
LDA.w WigglingTable, Y : STA.w SprYSpeed, X
|
||||
LDY.w SprTimerC, X : BNE + ; use timer to do wiggling
|
||||
; if = 0 then put it back to F
|
||||
LDA.b #$0F : STA.w $0E10, X ; wiggling timer
|
||||
LDA.b #$0F : STA.w SprTimerC, X ; wiggling timer
|
||||
+
|
||||
|
||||
.noFishOnLine
|
||||
@@ -413,9 +413,9 @@ Sprite_Floater:
|
||||
|
||||
STZ.w $0F70, X
|
||||
|
||||
LDA.w $0D50, X : ASL A : ROR.w $0D50, X
|
||||
LDA.w SprXSpeed, X : ASL A : ROR.w SprXSpeed, X
|
||||
|
||||
LDA.w $0D40, X : ASL A : ROR.w $0D40, X
|
||||
LDA.w SprYSpeed, X : ASL A : ROR.w SprYSpeed, X
|
||||
|
||||
LDA.w $0F80, X : EOR.b #$FF : INC A
|
||||
|
||||
@@ -423,8 +423,8 @@ Sprite_Floater:
|
||||
CMP.b #$09
|
||||
BCS .no_bounce
|
||||
|
||||
LDA.w $0E90, X : BNE .not_water_tile_last
|
||||
INC.w $0E90, X
|
||||
LDA.w SprMiscD, X : BNE .not_water_tile_last
|
||||
INC.w SprMiscD, X
|
||||
JSL Sprite_CheckTileCollision
|
||||
LDA.w $0FA5
|
||||
CMP.b #$08 : BEQ .water_tile_last
|
||||
@@ -434,12 +434,12 @@ Sprite_Floater:
|
||||
JSL Sprite_SpawnSmallSplash
|
||||
|
||||
JSL GetRandomInt : AND #$3F
|
||||
CLC : ADC #$3F : STA.w $0EE0, X
|
||||
CLC : ADC #$3F : STA.w SprTimerD, X
|
||||
|
||||
.not_water_tile_last
|
||||
STZ.w $0F80, X
|
||||
STZ.w $0D50, X
|
||||
STZ.w $0D40, X
|
||||
STZ.w SprXSpeed, X
|
||||
STZ.w SprYSpeed, X
|
||||
|
||||
BRA .aloft
|
||||
|
||||
|
||||
@@ -125,7 +125,7 @@ LinkItem_FirePortal:
|
||||
|
||||
.finish
|
||||
TYX
|
||||
STZ $0D60, X : STZ $0D70, X
|
||||
STZ.w SprYRound, X : STZ.w SprXRound, X
|
||||
PLX
|
||||
|
||||
.return
|
||||
|
||||
@@ -7,7 +7,7 @@ Sprite3_Move:
|
||||
org $1EB593
|
||||
Arrghus_ApproachTargetSpeed:
|
||||
{
|
||||
LDA $0DF0, X : BNE .delay
|
||||
LDA.w SprTimerA, X : BNE .delay
|
||||
|
||||
INC $0D80, X
|
||||
|
||||
@@ -23,6 +23,6 @@ AdvancedArrghus:
|
||||
LDA.b #$04 : STA $0CD2, Y
|
||||
|
||||
JSL Sprite_SpawnFireball
|
||||
LDA.b #$50 : STA $0DF0, X
|
||||
LDA.b #$50 : STA.w SprTimerA, X
|
||||
RTL
|
||||
}
|
||||
|
||||
@@ -178,14 +178,14 @@ Sprite_DarkLink_Main:
|
||||
|
||||
REP #$20
|
||||
|
||||
LDA $0FD8 ; Sprite X
|
||||
LDA.w SprCachedX ; Sprite X
|
||||
SEC : SBC $22 ; - Player X
|
||||
BPL +
|
||||
EOR #$FFFF
|
||||
+
|
||||
STA $00 ; Distance X (ABS)
|
||||
|
||||
LDA $0FDA ; Sprite Y
|
||||
LDA.w SprCachedY ; Sprite Y
|
||||
SEC : SBC $20 ; - Player Y
|
||||
BPL +
|
||||
EOR #$FFFF
|
||||
@@ -438,7 +438,7 @@ Sprite_DarkLink_Main:
|
||||
; ... but once spawned, transmute it to an enemy bomb.
|
||||
JSL $06AD50
|
||||
JSL GetRandomInt : AND #$7F : CLC : ADC #$20
|
||||
STA $0E00, Y
|
||||
STA.w SprTimerB, Y
|
||||
.spawn_failed
|
||||
RTS
|
||||
}
|
||||
@@ -460,10 +460,10 @@ Sprite_DarkLink_Main:
|
||||
PHX
|
||||
TYX
|
||||
LDA.b #$28 : JSL Sprite_ApplySpeedTowardsPlayer
|
||||
LDA.b #$01 : STA $0DB0, X
|
||||
LDA.b #$01 : STA.w SprMiscB, X
|
||||
LDA.b #$16 : STA $0F80, X
|
||||
JSL GetRandomInt : AND #$7F : CLC : ADC #$20
|
||||
STA $0E00, X
|
||||
STA.w SprTimerB, X
|
||||
PLX
|
||||
|
||||
.spawn_failed
|
||||
@@ -677,14 +677,14 @@ Sprite_DarkLink_Main:
|
||||
|
||||
REP #$20
|
||||
|
||||
LDA $0FD8 ; Sprite X
|
||||
LDA.w SprCachedX ; Sprite X
|
||||
SEC : SBC $22 ; - Player X
|
||||
BPL +
|
||||
EOR #$FFFF
|
||||
+
|
||||
STA $00 ; Distance X (ABS)
|
||||
|
||||
LDA $0FDA ; Sprite Y
|
||||
LDA.w SprCachedY ; Sprite Y
|
||||
SEC : SBC $20 ; - Player Y
|
||||
BPL +
|
||||
EOR #$FFFF
|
||||
|
||||
@@ -11,7 +11,7 @@ KingDodongo_NewHealthSystem:
|
||||
TAY
|
||||
|
||||
LDA.w .phase_table,Y
|
||||
STA.w $0DB0,X
|
||||
STA.w SprMiscB,X
|
||||
PLB
|
||||
|
||||
RTL
|
||||
|
||||
@@ -282,11 +282,11 @@ Sprite_Kydreeok_Main:
|
||||
LDA.b #$04 : STA.w $0DD0,Y
|
||||
LDA.b #$03 : STA.w $0E40,Y
|
||||
LDA.b #$0C : STA.w $0F50,Y
|
||||
LDA.w $0FD8 : STA.w SprX,Y
|
||||
LDA.w SprCachedX : STA.w SprX,Y
|
||||
LDA.w $0FD9 : STA.w SprXH,Y
|
||||
LDA.w $0FDA : STA.w SprY,Y
|
||||
LDA.w SprCachedY : STA.w SprY,Y
|
||||
LDA.w $0FDB : STA.w SprYH,Y
|
||||
LDA.b #$1F : STA.w $0DF0,Y : STA.w $0D90,Y
|
||||
LDA.b #$1F : STA.w SprTimerA,Y : STA.w $0D90,Y
|
||||
LDA.b #$02 : STA.w $0F20,Y
|
||||
.no_space
|
||||
LDA.w SprTimerA, X : BNE .continue
|
||||
@@ -491,7 +491,7 @@ MoveBody:
|
||||
|
||||
LDA.b #$01 : STA.w $0428
|
||||
|
||||
LDA.w SprY, X : SEC : SBC.b #$0C : STA.w $0DB0, X
|
||||
LDA.w SprY, X : SEC : SBC.b #$0C : STA.w SprMiscB, X
|
||||
|
||||
LDA.w $0B08 : SEC : SBC.w SprX, X
|
||||
CLC : ADC.b #$02
|
||||
@@ -502,7 +502,7 @@ MoveBody:
|
||||
CMP.b #$04 : BCS .not_at_target
|
||||
|
||||
.adjust_phase ; Unused?
|
||||
LDA.b #$30 : STA.w $0DF0, X
|
||||
LDA.b #$30 : STA.w SprTimerA, X
|
||||
|
||||
.not_at_target
|
||||
; LayerEffect_Trinexx $0AFEF0
|
||||
|
||||
@@ -244,16 +244,16 @@ KydreeokHead_RotationMove:
|
||||
|
||||
Sprite_KydreeokHead_Damage_Flash:
|
||||
{
|
||||
LDA.w $0EB0, X : BEQ .dontFlash
|
||||
LDA.w SprMiscE, X : BEQ .dontFlash
|
||||
; Change the palette to the next in the cycle
|
||||
LDA.w $0EB0, X : INC : CMP.b #$08 : BNE .dontReset
|
||||
LDA.w SprMiscE, X : INC : CMP.b #$08 : BNE .dontReset
|
||||
LDA.b #$00
|
||||
.dontReset
|
||||
STA.w $0EB0, X
|
||||
STA.w SprMiscE, X
|
||||
BRA .flash
|
||||
|
||||
.dontFlash
|
||||
STZ.w $0EB0, X
|
||||
STZ.w SprMiscE, X
|
||||
|
||||
.flash
|
||||
RTS
|
||||
@@ -685,7 +685,7 @@ Sprite_KydreeokHead_Draw:
|
||||
LDA $0DC0, X : CLC : ADC $0D90, X : TAY;Animation Frame
|
||||
LDA .start_index, Y : STA $06
|
||||
|
||||
LDA.w $0EB0, X : STA $08
|
||||
LDA.w SprMiscE, X : STA $08
|
||||
|
||||
PHX
|
||||
; amount of tiles - 1
|
||||
|
||||
@@ -46,7 +46,7 @@ Lanmola_FinishInitialization:
|
||||
{
|
||||
PHB : PHK : PLB
|
||||
|
||||
LDA.l .starting_delay, X : STA $0DF0, X
|
||||
LDA.l .starting_delay, X : STA.w SprTimerA, X
|
||||
|
||||
LDA.b #$FF : STA $0F70, X
|
||||
|
||||
@@ -103,8 +103,8 @@ Lanmola_Wait: ;0x00
|
||||
{
|
||||
JSR Lanmola_Draw
|
||||
|
||||
LDA $0DF0, X : BNE .delay ; ORA $0F00, X :
|
||||
LDA.b #$7F : STA $0DF0, X
|
||||
LDA.w SprTimerA, X : BNE .delay ; ORA $0F00, X :
|
||||
LDA.b #$7F : STA.w SprTimerA, X
|
||||
|
||||
INC $0D80, X
|
||||
|
||||
@@ -124,36 +124,36 @@ Lanmola_Mound: ;0x01
|
||||
JSR Lanmola_DrawMound
|
||||
JSL CheckIfActive : BCS Lanmola_Wait_delay
|
||||
|
||||
LDA $0DF0, X : BNE .return
|
||||
LDA.w SprTimerA, X : BNE .return
|
||||
JSL Lanmola_SpawnShrapnel
|
||||
|
||||
LDA.b #$13 : STA $012D
|
||||
|
||||
TXY
|
||||
JSL GetRandomInt : AND.b #$07 : TAX
|
||||
LDA $7EEAA8, X : STA $0DA0, Y ; Get random X pos to have the lanmola fly to. ;.randXPos
|
||||
LDA $7EEAA8, X : STA.w SprMiscA, Y ; Get random X pos to have the lanmola fly to. ;.randXPos
|
||||
|
||||
JSL GetRandomInt : AND.b #$07 : TAX
|
||||
LDA $7EEAB0, X : STA $0DB0, Y ; Get random Y pos to have the lanmola fly to. ;.randYPos
|
||||
LDA $7EEAB0, X : STA.w SprMiscB, Y ; Get random Y pos to have the lanmola fly to. ;.randYPos
|
||||
TYX
|
||||
|
||||
INC $0D80, X
|
||||
|
||||
LDA.b #$18 : STA $0F80, X
|
||||
|
||||
STZ $0EC0, X
|
||||
STZ $0ED0, X
|
||||
STZ.w SprMiscF, X
|
||||
STZ.w SprMiscG, X
|
||||
|
||||
; ALTERNATE ENTRY POINT
|
||||
.Lanmola_SetScatterSandPosition
|
||||
|
||||
LDA.w SprXH, X : STA $0DC0, X
|
||||
LDA.w SprYH, X : STA $0EB0, X
|
||||
LDA.w SprYH, X : STA.w SprMiscE, X
|
||||
|
||||
LDA.w SprX, X : STA $0DE0, X
|
||||
LDA.w SprX, X : STA.w SprMiscC, X
|
||||
LDA.w SprY, X : STA $0E70, X
|
||||
|
||||
LDA.b #$4A : STA $0E00, X
|
||||
LDA.b #$4A : STA.w SprTimerB, X
|
||||
|
||||
.return
|
||||
|
||||
@@ -172,9 +172,9 @@ Lanmola_Fly: ;0x02
|
||||
JSR Sprite2_MoveAltitude
|
||||
|
||||
; Slowly decrease the Y speed when first coming out of the ground
|
||||
LDA $0EC0, X : BNE .notRising
|
||||
LDA.w SprMiscF, X : BNE .notRising
|
||||
LDA $0F80, X : SEC : SBC.b #$01 : STA $0F80, X : BNE .beta
|
||||
INC $0EC0, X
|
||||
INC.w SprMiscF, X
|
||||
|
||||
.beta
|
||||
|
||||
@@ -185,19 +185,19 @@ Lanmola_Fly: ;0x02
|
||||
; Use the Y speed to bob up and down
|
||||
LDA $1A : AND.b #$01 : BNE .dontSwitchDirections ; Every other frame.
|
||||
TXY
|
||||
LDA $0ED0, X : AND.b #$01 : TAX
|
||||
LDA.w SprMiscG, X : AND.b #$01 : TAX
|
||||
|
||||
LDA $0F80, Y : CLC : ADC $7EEA9C, X : STA $0F80, Y : CMP $7EEA9E, X : BNE .dontSwitchDirections2 ;.y_speed_slope ;.y_speeds
|
||||
TYX : INC $0ED0, X ; Switch direction
|
||||
TYX : INC.w SprMiscG, X ; Switch direction
|
||||
|
||||
.dontSwitchDirections2
|
||||
TYX
|
||||
|
||||
.dontSwitchDirections
|
||||
|
||||
LDA $0DA0, X : STA $04
|
||||
LDA.w SprMiscA, X : STA $04
|
||||
LDA.w SprXH, X : STA $05
|
||||
LDA $0DB0, X : STA $06
|
||||
LDA.w SprMiscB, X : STA $06
|
||||
LDA.w SprYH, X : STA $07
|
||||
LDA.w SprX, X : STA $00
|
||||
LDA.w SprXH, X : STA $01
|
||||
@@ -219,8 +219,8 @@ Lanmola_Fly: ;0x02
|
||||
|
||||
JSL Sprite_ProjectSpeedTowardsEntityLong
|
||||
|
||||
LDA $00 : STA $0D40, X
|
||||
LDA $01 : STA $0D50, X
|
||||
LDA $00 : STA.w SprYSpeed, X
|
||||
LDA $01 : STA.w SprXSpeed, X
|
||||
|
||||
JSR Sprite2_Move
|
||||
|
||||
@@ -250,7 +250,7 @@ Lanmola_Dive: ;0x03
|
||||
LDA $0F70, X : BPL .notUnderGroundYet
|
||||
INC $0D80, X
|
||||
|
||||
LDA.b #$80 : STA $0DF0, X
|
||||
LDA.b #$80 : STA.w SprTimerA, X
|
||||
|
||||
JSR Lanmola_Mound_Lanmola_SetScatterSandPosition
|
||||
|
||||
@@ -267,7 +267,7 @@ Lanmola_Reset: ;0x04
|
||||
JSL Lanmola_DrawDirtLONG
|
||||
JSL CheckIfActive : BCS Lanmola_Dive_notUnderGroundYet
|
||||
|
||||
LDA $0DF0, X : BNE .wait
|
||||
LDA.w SprTimerA, X : BNE .wait
|
||||
STZ $0D80, X ; Go back to wait phase
|
||||
|
||||
TXY
|
||||
@@ -289,7 +289,7 @@ Lanmola_Death: ;0x05
|
||||
{
|
||||
JSR Lanmola_Draw
|
||||
|
||||
LDA $0DF0, X : BNE .timerNotDone
|
||||
LDA.w SprTimerA, X : BNE .timerNotDone
|
||||
STZ $0DD0, X
|
||||
|
||||
; Y is the index where we write in RAM
|
||||
@@ -316,7 +316,7 @@ Lanmola_Death: ;0x05
|
||||
|
||||
.timerNotDone
|
||||
|
||||
LDA $0DF0, X : CMP.b #$20 : BCC Lanmola_Reset_wait
|
||||
LDA.w SprTimerA, X : CMP.b #$20 : BCC Lanmola_Reset_wait
|
||||
CMP.b #$A0 : BCS Lanmola_Reset_wait
|
||||
AND.b #$0F : BNE Lanmola_Reset_wait
|
||||
TXY
|
||||
@@ -346,7 +346,7 @@ Lanmola_Death: ;0x05
|
||||
|
||||
LDA.b #$04 : STA $0DD0, Y
|
||||
|
||||
LDA.b #$1F : STA $0DF0, Y : STA $0D90, Y
|
||||
LDA.b #$1F : STA.w SprTimerA, Y : STA $0D90, Y
|
||||
|
||||
LDA $0A : STA.w SprX, Y
|
||||
LDA $0B : STA.w SprXH, Y
|
||||
@@ -386,7 +386,7 @@ Lanmola_Draw:
|
||||
|
||||
STA $0F
|
||||
|
||||
LDA $0D40, X : ASL A : ROL A : AND.b #$01 : TAX
|
||||
LDA.w SprYSpeed, X : ASL A : ROL A : AND.b #$01 : TAX
|
||||
|
||||
LDA $7EEA06, X : STA $0C ;.data2
|
||||
|
||||
@@ -528,15 +528,15 @@ Lanmola_DrawMound:
|
||||
|
||||
PHX
|
||||
|
||||
LDA $0DF0, X : LSR #3 : TAX
|
||||
LDA.w SprTimerA, X : LSR #3 : TAX
|
||||
|
||||
LDA $7EEA54, X : TAX ;.frameMound
|
||||
|
||||
LDY.b #$00
|
||||
|
||||
REP #$20
|
||||
LDA $0FDA : SEC : SBC $E8 : STA $02
|
||||
LDA $0FD8 : SEC : SBC $E2 : STA ($90), Y
|
||||
LDA.w SprCachedY : SEC : SBC $E8 : STA $02
|
||||
LDA.w SprCachedX : SEC : SBC $E2 : STA ($90), Y
|
||||
|
||||
STZ $37
|
||||
BPL .notNegative
|
||||
@@ -601,11 +601,11 @@ Sprite_Shrapnel:
|
||||
TXA : EOR $1A : AND.b #$03 : BNE .noTileCollision
|
||||
REP #$20
|
||||
|
||||
LDA $0FD8 : SEC : SBC $22 : CLC : ADC.w #$0004
|
||||
LDA.w SprCachedX : SEC : SBC $22 : CLC : ADC.w #$0004
|
||||
|
||||
CMP.w #$0010 : BCS .player_not_close
|
||||
|
||||
LDA $0FDA : SEC : SBC $20 : CLC : ADC.w #$FFFC
|
||||
LDA.w SprCachedY : SEC : SBC $20 : CLC : ADC.w #$FFFC
|
||||
|
||||
CMP.w #$000C : BCS .player_not_close
|
||||
|
||||
@@ -622,7 +622,7 @@ Sprite_Shrapnel:
|
||||
|
||||
.noTileCollision
|
||||
|
||||
LDA $0DF0, X : BNE .timerNotDone
|
||||
LDA.w SprTimerA, X : BNE .timerNotDone
|
||||
STZ $0DD0, X
|
||||
|
||||
.timerNotDone
|
||||
|
||||
@@ -38,14 +38,14 @@ Lanmola_DrawDirtLONG:
|
||||
|
||||
Lanmola_DrawDirt:
|
||||
{
|
||||
LDA $0E00, X : BNE .timerNotDone
|
||||
LDA.w SprTimerB, X : BNE .timerNotDone
|
||||
RTS
|
||||
|
||||
.timerNotDone
|
||||
|
||||
; Determine weather the dirt should draw in front of or behind the body
|
||||
; based on its y velocity.
|
||||
LDA $0D40, X : ASL A : ROL A : ASL A : EOR $0D80, X : AND.b #$02 : BEQ .nu
|
||||
LDA.w SprYSpeed, X : ASL A : ROL A : ASL A : EOR $0D80, X : AND.b #$02 : BEQ .nu
|
||||
LDA.b #$08 : JSL OAM_AllocateFromRegionB
|
||||
BRA .xi
|
||||
|
||||
@@ -56,10 +56,10 @@ Lanmola_DrawDirt:
|
||||
|
||||
LDY.b #$00
|
||||
|
||||
LDA $0E00, X : LSR #2 : AND.b #$03 : EOR.b #$03 : ASL A : STA $06
|
||||
LDA.w SprTimerB, X : LSR #2 : AND.b #$03 : EOR.b #$03 : ASL A : STA $06
|
||||
|
||||
LDA $0DC0, X : XBA
|
||||
LDA $0DE0, X
|
||||
LDA.w SprMiscC, X
|
||||
REP #$20 : SEC : SBC $E2 : STA $00 : SEP #$20
|
||||
|
||||
STZ $37
|
||||
@@ -68,7 +68,7 @@ Lanmola_DrawDirt:
|
||||
|
||||
.notNegative3
|
||||
|
||||
LDA $0EB0, X : XBA
|
||||
LDA.w SprMiscE, X : XBA
|
||||
LDA $0E70, X
|
||||
REP #$20 : SEC : SBC $E8 : STA $02 : SEP #$20
|
||||
|
||||
@@ -281,8 +281,8 @@ Lanmola_MoveSegment:
|
||||
|
||||
PLX
|
||||
|
||||
LDA $0D40, X : SEC : SBC $0F80, X : STA $00
|
||||
LDA $0D50, X : STA $01
|
||||
LDA.w SprYSpeed, X : SEC : SBC $0F80, X : STA $00
|
||||
LDA.w SprXSpeed, X : STA $01
|
||||
JSL Sprite_ConvertVelocityToAngle : STA $0F
|
||||
|
||||
LDA $7EEA00, X : STA $04 ;.sprite_regions
|
||||
@@ -330,7 +330,7 @@ Lanmola_MoveSegment:
|
||||
|
||||
SetShrapnelTimer:
|
||||
{
|
||||
LDA.b #$40 : STA $0DF0, Y
|
||||
LDA.b #$40 : STA.w SprTimerA, Y
|
||||
|
||||
JSL GetRandomInt ; replaced code
|
||||
|
||||
|
||||
@@ -819,7 +819,7 @@ Mothula_SpawnBeams:
|
||||
|
||||
CLC : ADC.b #$03 : STA.w SprY,Y
|
||||
|
||||
LDA.b #$10 : STA.w $0DF0,Y : STA.w $0BA0,Y
|
||||
LDA.b #$10 : STA.w SprTimerA,Y : STA.w $0BA0,Y
|
||||
|
||||
PHX
|
||||
|
||||
@@ -828,10 +828,10 @@ Mothula_SpawnBeams:
|
||||
LDA.b $00 : CLC : ADC.w .speed_and_offset_x,X
|
||||
STA.w SprX,Y
|
||||
|
||||
LDA.w .speed_and_offset_x,X : STA.w $0D50,Y
|
||||
LDA.w .speed_and_offset_x,X : STA.w SprXSpeed,Y
|
||||
|
||||
LDA.w .speed_y,X
|
||||
STA.w $0D40,Y
|
||||
STA.w SprYSpeed,Y
|
||||
|
||||
LDA.b #$00
|
||||
STA.w $0F70,Y
|
||||
|
||||
@@ -887,7 +887,7 @@ SpawnSplash:
|
||||
STA.w $0DD0,Y
|
||||
|
||||
LDA.b #$0F
|
||||
STA.w $0DF0,Y
|
||||
STA.w SprTimerA,Y
|
||||
|
||||
LDA.b #$00
|
||||
STA.w $0D80,Y
|
||||
@@ -936,7 +936,7 @@ SpawnBossPoof:
|
||||
STA.w $0D90,Y
|
||||
|
||||
LDA.b #$2F
|
||||
STA.w $0DF0,Y
|
||||
STA.w SprTimerA,Y
|
||||
|
||||
LDA.b #$09
|
||||
STA.w $0E40,Y
|
||||
@@ -960,7 +960,7 @@ HandleMovingSplash:
|
||||
TXY
|
||||
LDX.b #$1D
|
||||
|
||||
LDA.w $0D40,Y
|
||||
LDA.w SprYSpeed,Y
|
||||
BMI .next_slot
|
||||
|
||||
LDX.b #$0E
|
||||
@@ -1017,7 +1017,7 @@ SpawnMedallion:
|
||||
TYX
|
||||
|
||||
LDA.b #$10
|
||||
STA.w $0D50, X
|
||||
STA.w SprXSpeed, X
|
||||
|
||||
LDA.b #$30
|
||||
STA.w $0F80, X
|
||||
|
||||
@@ -205,7 +205,7 @@ Sprite_Twinrova_Main:
|
||||
RTS
|
||||
; ---------------------------------------------
|
||||
.phase_1
|
||||
LDA $0DA0 : BEQ .not_flashing
|
||||
LDA.w SprMiscA : BEQ .not_flashing
|
||||
LDA.b #$30 : STA.w SprTimerD, X
|
||||
%GotoAction(7) ; Goto Twinrova_Hurt
|
||||
RTS
|
||||
@@ -585,20 +585,20 @@ TrinexxBreath_AltEntry:
|
||||
JSL GetRandomInt
|
||||
AND.b #$03
|
||||
TAY
|
||||
LDA SpeedAdjustments, Y : CLC : ADC $0D50, X : STA $0D50, X
|
||||
LDA SpeedAdjustments+4, Y : CLC : ADC $0D40, X : STA $0D40, X
|
||||
LDA SpeedAdjustments, Y : CLC : ADC.w SprXSpeed, X : STA.w SprXSpeed, X
|
||||
LDA SpeedAdjustments+4, Y : CLC : ADC.w SprYSpeed, X : STA.w SprYSpeed, X
|
||||
.no_adjustment
|
||||
|
||||
JSL Sprite_BounceFromTileCollision
|
||||
LDA $1A : AND.b #$03 : BNE .no_shake
|
||||
JSL Sprite_IsToRightOfPlayer
|
||||
LDA $0D50, X : CMP .x_speed_targets, Y : BEQ .no_shake
|
||||
CLC : ADC.w .shake_x, Y : STA $0D50, X
|
||||
LDA.w SprXSpeed, X : CMP .x_speed_targets, Y : BEQ .no_shake
|
||||
CLC : ADC.w .shake_x, Y : STA.w SprXSpeed, X
|
||||
|
||||
.no_shake
|
||||
JSL Sprite_IsBelowPlayer
|
||||
LDA $0D40, X : CMP .x_speed_targets, Y : BEQ .exit
|
||||
CLC : ADC.w .shake_y, Y : STA $0D40, X
|
||||
LDA.w SprYSpeed, X : CMP .x_speed_targets, Y : BEQ .exit
|
||||
CLC : ADC.w .shake_y, Y : STA.w SprYSpeed, X
|
||||
|
||||
JSL Sprite_CheckTileCollision : BEQ .exit
|
||||
LDY #$10
|
||||
@@ -803,11 +803,11 @@ Ganon_SpawnFallingTilesOverlord:
|
||||
;----------------------------------------------------------
|
||||
|
||||
.free_slot
|
||||
#_1D90DB: LDA.w $0EC0,X
|
||||
#_1D90DB: LDA.w SprMiscF,X
|
||||
#_1D90DE: CMP.b #$04
|
||||
#_1D90E0: BCS .dont_spawn
|
||||
|
||||
#_1D90E2: INC.w $0EC0,X
|
||||
#_1D90E2: INC.w SprMiscF,X
|
||||
|
||||
#_1D90E5: PHX
|
||||
|
||||
@@ -1044,10 +1044,10 @@ ReleaseFireballs:
|
||||
JSL Sprite_DirectionToFacePlayer
|
||||
|
||||
LDA.w .speed_x,Y
|
||||
STA.w $0D50,X
|
||||
STA.w SprXSpeed,X
|
||||
|
||||
LDA.w .speed_y,Y
|
||||
STA.w $0D40,X
|
||||
STA.w SprYSpeed,X
|
||||
|
||||
LDA.w SprX,X
|
||||
CLC
|
||||
@@ -1217,13 +1217,13 @@ Blind_SpawnFromMaiden:
|
||||
; JSL SpritePrep_LoadProperties
|
||||
|
||||
; Set SprTimerC
|
||||
LDA.b #$C0 : STA.w $0E10,X
|
||||
LDA.b #$C0 : STA.w SprTimerC,X
|
||||
|
||||
; Set SprGfx
|
||||
LDA.b #$00 : STA.w $0DC0,X
|
||||
|
||||
; Set SprMiscC and bulletproof properties
|
||||
LDA.b #$02 : STA.w $0DE0,X : STA.w $0BA0,X
|
||||
LDA.b #$02 : STA.w SprMiscC,X : STA.w $0BA0,X
|
||||
|
||||
; Set the 2nd key / heart piece items taken room flag
|
||||
LDA.w $0403 : ORA.b #$20 : STA.w $0403
|
||||
@@ -1253,16 +1253,16 @@ SpritePrep_Blind_PrepareBattle:
|
||||
BEQ .despawn
|
||||
|
||||
LDA.b #$60
|
||||
STA.w $0E10,X
|
||||
STA.w SprTimerC,X
|
||||
|
||||
LDA.b #$01
|
||||
STA.w $0DB0,X
|
||||
STA.w SprMiscB,X
|
||||
|
||||
LDA.b #$02
|
||||
STA.w $0DE0,X
|
||||
STA.w SprMiscC,X
|
||||
|
||||
LDA.b #$04
|
||||
STA.w $0EB0,X
|
||||
STA.w SprMiscE,X
|
||||
|
||||
LDA.b #$07
|
||||
STA.w $0DC0,X
|
||||
|
||||
@@ -264,12 +264,12 @@ AntiKirby_StealItem:
|
||||
{
|
||||
REP #$20
|
||||
|
||||
LDA.w $0FD8
|
||||
LDA.w SprCachedX
|
||||
CLC : ADC.b $04
|
||||
SEC : SBC.b $22
|
||||
CLC : ADC.w #$000C : CMP.w #$0018 : BCS .exit
|
||||
|
||||
LDA.w $0FDA
|
||||
LDA.w SprCachedY
|
||||
CLC : ADC.b $06
|
||||
SEC : SBC.b $20
|
||||
CLC : ADC.w #$000C : CMP.w #$0020 : BCS .exit
|
||||
|
||||
@@ -330,17 +330,17 @@ SpawnPeaShot:
|
||||
PHX
|
||||
; Spawn Location
|
||||
REP #$20
|
||||
LDA $0FD8
|
||||
LDA.w SprCachedX
|
||||
SEP #$20
|
||||
STA.w SprX, Y : XBA : STA.w SprXH, Y
|
||||
|
||||
REP #$20
|
||||
LDA $0FDA : CLC : ADC.w #$000C
|
||||
LDA.w SprCachedY : CLC : ADC.w #$000C
|
||||
SEP #$20
|
||||
STA.w SprY, Y : XBA : STA.w SprYH, Y
|
||||
|
||||
TYX
|
||||
STZ $0D70, X
|
||||
STZ.w SprXRound, X
|
||||
|
||||
LDA #$10 : STA.w SprYSpeed, X
|
||||
STA.w SprYRound, X
|
||||
|
||||
@@ -191,8 +191,8 @@ HelmetChuchu_SpawnHookshotDrag:
|
||||
LDA.b #$00 : STA.w SprMiscB, Y
|
||||
LDA.b #$80 : STA.w SprTimerA, Y
|
||||
LDA.b #$01 : STA.w SprNbrOAM, Y
|
||||
LDA.w .speed_x, X : STA.w $0D50, Y
|
||||
LDA.w .speed_y, X : STA.w $0D40, Y
|
||||
LDA.w .speed_x, X : STA.w SprXSpeed, Y
|
||||
LDA.w .speed_y, X : STA.w SprYSpeed, Y
|
||||
.no_space2
|
||||
PLX
|
||||
RTS
|
||||
|
||||
@@ -148,9 +148,9 @@ Sprite_Octorok_Move:
|
||||
.wait
|
||||
LDY.w SprMiscC, X
|
||||
|
||||
LDA.w .speed_x, Y : STA.w $0D50,X
|
||||
LDA.w .speed_x, Y : STA.w SprXSpeed,X
|
||||
|
||||
LDA.w .speed_y, Y : STA.w $0D40,X
|
||||
LDA.w .speed_y, Y : STA.w SprYSpeed,X
|
||||
|
||||
JSL Sprite_CheckTileCollision
|
||||
LDA.w $0E70, X : BEQ .no_collision
|
||||
@@ -162,7 +162,7 @@ Sprite_Octorok_Move:
|
||||
; ---------------------------------------------------------
|
||||
|
||||
.octorok_used_barrage
|
||||
STZ.w $0D50, X : STZ.w $0D40,X
|
||||
STZ.w SprXSpeed, X : STZ.w SprYSpeed,X
|
||||
|
||||
LDA.w SprTimerA, X : BNE Octorock_ShootEmUp
|
||||
INC.w SprMiscF, X
|
||||
@@ -405,16 +405,16 @@ Octorok_SpawnRock:
|
||||
LDA.w SprMiscC,X
|
||||
TAX
|
||||
|
||||
LDA.b $00 : CLC : ADC.w .offset_x_low,X : STA.w $0D10,Y
|
||||
LDA.b $01 : ADC.w .offset_x_high,X : STA.w $0D30,Y
|
||||
LDA.b $02 : CLC : ADC.w .offset_y_low,X : STA.w $0D00,Y
|
||||
LDA.b $03 : ADC.w .offset_y_high,X : STA.w $0D20,Y
|
||||
LDA.b $00 : CLC : ADC.w .offset_x_low,X : STA.w SprX,Y
|
||||
LDA.b $01 : ADC.w .offset_x_high,X : STA.w SprXH,Y
|
||||
LDA.b $02 : CLC : ADC.w .offset_y_low,X : STA.w SprY,Y
|
||||
LDA.b $03 : ADC.w .offset_y_high,X : STA.w SprYH,Y
|
||||
|
||||
LDA.w SprMiscC,Y
|
||||
TAX
|
||||
|
||||
LDA.w .rock_speed_x,X : STA.w $0D50,Y
|
||||
LDA.w .rock_speed_y,X : STA.w $0D40,Y
|
||||
LDA.w .rock_speed_x,X : STA.w SprXSpeed,Y
|
||||
LDA.w .rock_speed_y,X : STA.w SprYSpeed,Y
|
||||
|
||||
PLX
|
||||
.fired_a_blank
|
||||
|
||||
@@ -197,7 +197,7 @@ PictureFrame:
|
||||
|
||||
GetLinkDistance16bit:
|
||||
{
|
||||
LDA $0FD8 ; Sprite X
|
||||
LDA.w SprCachedX ; Sprite X
|
||||
SEC : SBC $22 ; - Player X
|
||||
|
||||
BPL +
|
||||
@@ -206,7 +206,7 @@ GetLinkDistance16bit:
|
||||
|
||||
STA $00 ; Distance X (ABS)
|
||||
|
||||
LDA $0FDA ; Sprite Y
|
||||
LDA.w SprCachedY ; Sprite Y
|
||||
SEC : SBC $20 ; - Player Y
|
||||
|
||||
BPL +
|
||||
@@ -287,11 +287,11 @@ Shatter:
|
||||
LDA.b #$1F : JSL Sound_SetSfx2PanLong
|
||||
STZ $0DC0, X
|
||||
|
||||
LDA.b #$04 : STA $0DB0, X
|
||||
LDA.b #$04 : STA.w SprMiscB, X
|
||||
|
||||
LDA.b #$06 : STA $0DD0, X
|
||||
|
||||
LDA.b #$1F : STA $0DF0, X
|
||||
LDA.b #$1F : STA.w SprTimerA, X
|
||||
|
||||
LDA.b #$EC : STA $0E20, X
|
||||
|
||||
@@ -299,7 +299,7 @@ Shatter:
|
||||
|
||||
STZ $0EF0, X
|
||||
|
||||
LDA.b #$80 : STA $0DB0, X
|
||||
LDA.b #$80 : STA.w SprMiscB, X
|
||||
RTS
|
||||
}
|
||||
|
||||
|
||||
@@ -155,10 +155,10 @@ Puffstool_SpawnSpores:
|
||||
LDX.b $0D
|
||||
|
||||
LDA.w .speed_x,X
|
||||
STA.w $0D50,Y
|
||||
STA.w SprXSpeed,Y
|
||||
|
||||
LDA.w .speed_y,X
|
||||
STA.w $0D40, Y
|
||||
STA.w SprYSpeed, Y
|
||||
|
||||
LDA.b #$20
|
||||
STA.w $0F80, Y
|
||||
|
||||
@@ -202,8 +202,8 @@ Sprite_Farore_Main:
|
||||
}
|
||||
|
||||
; 07
|
||||
; Look at the RAM SprY to $0D60, the first few are the actual positions of the sprite
|
||||
; that you can just set manually or $0D40 and $0D50 are the "speeds" of the sprites irrc
|
||||
; Look at the RAM SprY to SprYRound, the first few are the actual positions of the sprite
|
||||
; that you can just set manually or SprYSpeed and SprXSpeed are the "speeds" of the sprites irrc
|
||||
; You can set one of the speeds and then call the function called Sprite_Move
|
||||
; And then that will handle it applying the speed for you
|
||||
MakuArea_FaroreWaitForKydrog:
|
||||
|
||||
@@ -75,12 +75,12 @@ ChickenLady:
|
||||
|
||||
.main
|
||||
#_1AFED3: LDA.b #$01
|
||||
#_1AFED5: STA.w $0DE0,X
|
||||
#_1AFED5: STA.w SprMiscC,X
|
||||
|
||||
#_1AFED8: JSL SpriteDraw_RaceGameLady
|
||||
#_1AFEDC: JSR Sprite_CheckIfActive_Bank1A
|
||||
|
||||
#_1AFEDF: LDA.w $0DF0,X
|
||||
#_1AFEDF: LDA.w SprTimerA,X
|
||||
#_1AFEE2: CMP.b #$01
|
||||
#_1AFEE4: BNE .no_message
|
||||
|
||||
|
||||
@@ -259,10 +259,10 @@ Sprite_VillageDog_Main:
|
||||
CheckIfPlayerIsNearby:
|
||||
{
|
||||
REP #$20
|
||||
LDA $22 : CLC : ADC #$0012 : CMP $0FD8 : BCC .out
|
||||
LDA $22 : SEC : SBC #$0012 : CMP $0FD8 : BCS .out
|
||||
LDA $20 : CLC : ADC #$001A : CMP $0FDA : BCC .out
|
||||
LDA $20 : SEC : SBC #$001A : CMP $0FDA : BCS .out
|
||||
LDA $22 : CLC : ADC #$0012 : CMP.w SprCachedX : BCC .out
|
||||
LDA $22 : SEC : SBC #$0012 : CMP.w SprCachedX : BCS .out
|
||||
LDA $20 : CLC : ADC #$001A : CMP.w SprCachedY : BCC .out
|
||||
LDA $20 : SEC : SBC #$001A : CMP.w SprCachedY : BCS .out
|
||||
SEP #$21
|
||||
RTS ; Return with carry set
|
||||
|
||||
|
||||
@@ -76,7 +76,6 @@ Sprite_Collectible_Prep:
|
||||
LDA.b #$03 : STA.w SprAction, X
|
||||
.not_lupo_mountain
|
||||
|
||||
|
||||
PLB
|
||||
RTL
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ Sprite_IceBlock_Long:
|
||||
STZ.w SprMiscC, X
|
||||
STZ.b $5E : STZ.b $48
|
||||
.not_being_pushed
|
||||
LDA.w $0DF0, X : BEQ .retain_momentum
|
||||
LDA.w SprTimerA, X : BEQ .retain_momentum
|
||||
LDA.b #$01 : STA.w SprMiscC, X
|
||||
LDA.b #$84 : STA $48
|
||||
LDA.b #$04 : STA.b $5E
|
||||
@@ -123,11 +123,11 @@ Sprite_IceBlock_Main:
|
||||
BCC NotInContact
|
||||
JSR ApplyPush
|
||||
; Set timer
|
||||
LDA.b #$07 : STA.w $0DF0, X
|
||||
LDA.b #$07 : STA.w SprTimerA, X
|
||||
|
||||
JSL $079291 ; Sprite_RepelDash_long
|
||||
|
||||
LDA.w $0E00,X : BNE Statue_CancelHookshot
|
||||
LDA.w SprTimerB,X : BNE Statue_CancelHookshot
|
||||
; JSL Sprite_DirectionToFacePlayer
|
||||
; LDA.w StatueSpeed_x,Y
|
||||
; STA.w SprXSpeed,X
|
||||
@@ -154,8 +154,8 @@ Sprite_IceBlock_Main:
|
||||
NotInContact:
|
||||
{
|
||||
%PlayAnimation(0, 0, 1)
|
||||
LDA.w $0DF0,X : BNE .delay_timer
|
||||
LDA.b #$0D : STA.w $0E00,X
|
||||
LDA.w SprTimerA,X : BNE .delay_timer
|
||||
LDA.b #$0D : STA.w SprTimerB,X
|
||||
|
||||
.delay_timer
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ Sprite_MoveVert:
|
||||
{
|
||||
LDA.w SprYSpeed, X : BEQ .no_velocity
|
||||
ASL : ASL : ASL : ASL
|
||||
CLC : ADC.w $0D60,X : STA.w $0D60,X
|
||||
CLC : ADC.w SprYRound,X : STA.w SprYRound,X
|
||||
|
||||
LDY.b #$00
|
||||
LDA.w SprYSpeed, X
|
||||
@@ -882,10 +882,10 @@ Sprite_CheckIfRecoiling:
|
||||
|
||||
LDA.w $0EA0, X : BEQ .exit
|
||||
AND.b #$7F : BEQ .recoil_over
|
||||
LDA.w $0D40, X
|
||||
LDA.w SprYSpeed, X
|
||||
PHA
|
||||
|
||||
LDA.w $0D50, X
|
||||
LDA.w SprXSpeed, X
|
||||
PHA
|
||||
|
||||
DEC.w $0EA0, X : BNE .still_recoiling
|
||||
@@ -902,9 +902,9 @@ Sprite_CheckIfRecoiling:
|
||||
|
||||
LDA.b $1A : AND.w .masks,Y : BNE .no_movement
|
||||
|
||||
LDA.w $0F30, X : STA.w $0D40,X
|
||||
LDA.w $0F30, X : STA.w SprYSpeed,X
|
||||
|
||||
LDA.w $0F40, X : STA.w $0D50,X
|
||||
LDA.w $0F40, X : STA.w SprXSpeed,X
|
||||
|
||||
LDA.w $0CD2, X : BMI .handle_movement
|
||||
|
||||
@@ -916,13 +916,13 @@ Sprite_CheckIfRecoiling:
|
||||
CMP.b #$04 : BCS .stop_vertical_movement
|
||||
|
||||
STZ.w $0F40,X
|
||||
STZ.w $0D50,X
|
||||
STZ.w SprXSpeed,X
|
||||
|
||||
BRA .movement_stopped
|
||||
|
||||
.stop_vertical_movement
|
||||
STZ.w $0F30,X
|
||||
STZ.w $0D40,X
|
||||
STZ.w SprYSpeed,X
|
||||
|
||||
.movement_stopped
|
||||
BRA .no_movement
|
||||
@@ -932,10 +932,10 @@ Sprite_CheckIfRecoiling:
|
||||
|
||||
.no_movement
|
||||
PLA
|
||||
STA.w $0D50,X
|
||||
STA.w SprXSpeed,X
|
||||
|
||||
PLA
|
||||
STA.w $0D40,X
|
||||
STA.w SprYSpeed,X
|
||||
|
||||
PLA
|
||||
PLA
|
||||
|
||||
Reference in New Issue
Block a user