Housekeeping, whitespace cleanup
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
; =============================================================================
|
; =============================================================================
|
||||||
; Bottle Net Code
|
; Bottle Net Code
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
!BottleFlag = $0AA6
|
!BottleFlag = $0AA6
|
||||||
@@ -12,26 +12,26 @@ PlayerItem_ReleaseBee = $1EDCCF
|
|||||||
|
|
||||||
org $07A15B
|
org $07A15B
|
||||||
LinkItem_NewBottle:
|
LinkItem_NewBottle:
|
||||||
{
|
{
|
||||||
; Check if we have a bottle or not
|
; Check if we have a bottle or not
|
||||||
LDA $7EF34F : DEC A : TAX
|
LDA $7EF34F : DEC A : TAX
|
||||||
LDA $7EF35C, X : BEQ .exit
|
LDA $7EF35C, X : BEQ .exit
|
||||||
|
|
||||||
; Check if the bottle is empty
|
; Check if the bottle is empty
|
||||||
CMP.b #$03 : BCC .empty_bottle
|
CMP.b #$03 : BCC .empty_bottle
|
||||||
|
|
||||||
; Confirm we aren't currently catching
|
; Confirm we aren't currently catching
|
||||||
LDA $030D : BNE .empty_bottle
|
LDA $030D : BNE .empty_bottle
|
||||||
|
|
||||||
; If no, prepare and call the LinkItem_Bottles routine
|
; If no, prepare and call the LinkItem_Bottles routine
|
||||||
JSR LinkItem_Bottles
|
JSR LinkItem_Bottles
|
||||||
BRA .exit
|
BRA .exit
|
||||||
|
|
||||||
.empty_bottle
|
.empty_bottle
|
||||||
; Otherwise, prepare and call the LinkItem_BugCatchingNet routine
|
; Otherwise, prepare and call the LinkItem_BugCatchingNet routine
|
||||||
JSR LinkItem_CatchBottle
|
JSR LinkItem_CatchBottle
|
||||||
|
|
||||||
.exit
|
.exit
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,30 +57,30 @@ pose_offset:
|
|||||||
|
|
||||||
; *$3AFF8-$3B072 LOCAL
|
; *$3AFF8-$3B072 LOCAL
|
||||||
LinkItem_CatchBottle:
|
LinkItem_CatchBottle:
|
||||||
{
|
{
|
||||||
BIT $3A : BVS .y_press
|
BIT $3A : BVS .y_press
|
||||||
|
|
||||||
LDA $6C : BNE .bottle_exit ; (RTS)
|
LDA $6C : BNE .bottle_exit ; (RTS)
|
||||||
|
|
||||||
JSR Link_CheckNewY_ButtonPress : BCC .bottle_exit ; (RTS)
|
JSR Link_CheckNewY_ButtonPress : BCC .bottle_exit ; (RTS)
|
||||||
|
|
||||||
LDA $2F : LSR A : TAY
|
LDA $2F : LSR A : TAY
|
||||||
LDX pose_offset, Y
|
LDX pose_offset, Y
|
||||||
LDA.w pose_id, X : STA $0300
|
LDA.w pose_id, X : STA $0300
|
||||||
LDA.b #$03 : STA $3D
|
LDA.b #$03 : STA $3D
|
||||||
|
|
||||||
STZ $030D, X
|
STZ $030D, X
|
||||||
|
|
||||||
LDA.b #$10 : STA $037A
|
LDA.b #$10 : STA $037A
|
||||||
LDA.b #$01 : TSB $50
|
LDA.b #$01 : TSB $50
|
||||||
|
|
||||||
STZ $2E
|
STZ $2E
|
||||||
|
|
||||||
LDA.b #$32 : JSR Player_DoSfx2
|
LDA.b #$32 : JSR Player_DoSfx2
|
||||||
|
|
||||||
.y_press:
|
.y_press:
|
||||||
JSR $AE65 ; HaltLinkWhenUsingItems
|
JSR $AE65 ; HaltLinkWhenUsingItems
|
||||||
|
|
||||||
LDA $67 : AND.b #$F0 : STA $67
|
LDA $67 : AND.b #$F0 : STA $67
|
||||||
DEC $3D : BPL .bottle_exit
|
DEC $3D : BPL .bottle_exit
|
||||||
LDX $030D : INX : STX $030D
|
LDX $030D : INX : STX $030D
|
||||||
@@ -89,13 +89,13 @@ LinkItem_CatchBottle:
|
|||||||
LDA.w pose_offset, Y : CLC : ADC $030D : TAY
|
LDA.w pose_offset, Y : CLC : ADC $030D : TAY
|
||||||
LDA.w pose_id, Y : STA $0300
|
LDA.w pose_id, Y : STA $0300
|
||||||
CPX.b #$0A : BNE .bottle_exit
|
CPX.b #$0A : BNE .bottle_exit
|
||||||
|
|
||||||
STZ $030D
|
STZ $030D
|
||||||
STZ $0300
|
STZ $0300
|
||||||
|
|
||||||
LDA $3A : AND.b #$80 : STA $3A
|
LDA $3A : AND.b #$80 : STA $3A
|
||||||
STZ $037A
|
STZ $037A
|
||||||
|
|
||||||
LDA $50 : AND.b #$FE : STA $50
|
LDA $50 : AND.b #$FE : STA $50
|
||||||
LDA.b #$80 : STA $44 : STA $45
|
LDA.b #$80 : STA $44 : STA $45
|
||||||
|
|
||||||
@@ -109,12 +109,12 @@ print " LinkItem_Bottles ", pc
|
|||||||
LinkItem_Bottles:
|
LinkItem_Bottles:
|
||||||
{
|
{
|
||||||
JSR Link_CheckNewY_ButtonPress : BCC NetExit ; (RTS)
|
JSR Link_CheckNewY_ButtonPress : BCC NetExit ; (RTS)
|
||||||
|
|
||||||
LDA.b $3A : AND.b #$BF : STA.b $3A
|
LDA.b $3A : AND.b #$BF : STA.b $3A
|
||||||
|
|
||||||
; Check if we have a bottle or not
|
; Check if we have a bottle or not
|
||||||
LDA.l $7EF34F : DEC A : TAX
|
LDA.l $7EF34F : DEC A : TAX
|
||||||
|
|
||||||
LDA.l $7EF35C, X : BEQ NetExit ; (RTS)
|
LDA.l $7EF35C, X : BEQ NetExit ; (RTS)
|
||||||
CMP.b #$03 : BCC .LinkItem_UselessBottle
|
CMP.b #$03 : BCC .LinkItem_UselessBottle
|
||||||
CMP.b #$03 : BEQ .LinkItem_RedPotion
|
CMP.b #$03 : BEQ .LinkItem_RedPotion
|
||||||
@@ -142,18 +142,18 @@ LinkItem_Bottles:
|
|||||||
LDA.l $7EF36C : CMP.l $7EF36D : BNE .can_drink_red
|
LDA.l $7EF36C : CMP.l $7EF36D : BNE .can_drink_red
|
||||||
|
|
||||||
.LinkItem_UselessBottle
|
.LinkItem_UselessBottle
|
||||||
BRL LinkGoBeep ; BRL $07A955 Investigate
|
BRL LinkGoBeep ; BRL $07A955 Investigate
|
||||||
|
|
||||||
.can_drink_red
|
.can_drink_red
|
||||||
LDA.b #$02 : STA.l $7EF35C, X : STZ.w $0301
|
LDA.b #$02 : STA.l $7EF35C, X : STZ.w $0301
|
||||||
|
|
||||||
LDA.b #$04 : STA.b $11
|
LDA.b #$04 : STA.b $11
|
||||||
LDA.b $10 : STA.w $010C
|
LDA.b $10 : STA.w $010C
|
||||||
LDA.b #$0E : STA.b $10
|
LDA.b #$0E : STA.b $10
|
||||||
LDA.b #$07 : STA.w $0208
|
LDA.b #$07 : STA.w $0208
|
||||||
|
|
||||||
JSL RebuildHUD_long
|
JSL RebuildHUD_long
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
.LinkItem_GreenPotion
|
.LinkItem_GreenPotion
|
||||||
@@ -167,7 +167,7 @@ LinkItem_Bottles:
|
|||||||
; submodule ????
|
; submodule ????
|
||||||
LDA.b #$08 : STA.b $11
|
LDA.b #$08 : STA.b $11
|
||||||
LDA.b $10 : STA.w $010C
|
LDA.b $10 : STA.w $010C
|
||||||
|
|
||||||
; Go to text mode
|
; Go to text mode
|
||||||
LDA.b #$0E : STA.b $10
|
LDA.b #$0E : STA.b $10
|
||||||
LDA.b #$07 : STA.w $0208
|
LDA.b #$07 : STA.w $0208
|
||||||
@@ -182,15 +182,15 @@ LinkItem_Bottles:
|
|||||||
|
|
||||||
.useBluePotion
|
.useBluePotion
|
||||||
LDA.b #$02 : STA $7EF35C, X : STZ $0301
|
LDA.b #$02 : STA $7EF35C, X : STZ $0301
|
||||||
|
|
||||||
; more submodule code
|
; more submodule code
|
||||||
LDA.b #$09 : STA.b $11
|
LDA.b #$09 : STA.b $11
|
||||||
LDA.b $10 : STA.w $010C
|
LDA.b $10 : STA.w $010C
|
||||||
|
|
||||||
; Go to text mode (?)
|
; Go to text mode (?)
|
||||||
LDA.b #$0E : STA.b $10
|
LDA.b #$0E : STA.b $10
|
||||||
LDA.b #$07 : STA.w $0208
|
LDA.b #$07 : STA.w $0208
|
||||||
|
|
||||||
JSL RebuildHUD_long
|
JSL RebuildHUD_long
|
||||||
BRA .bottle_exit
|
BRA .bottle_exit
|
||||||
|
|
||||||
@@ -230,4 +230,4 @@ Bottle_DrinkMilk:
|
|||||||
}
|
}
|
||||||
|
|
||||||
print "End of Items/bottle_net.asm ", pc
|
print "End of Items/bottle_net.asm ", pc
|
||||||
pushpc
|
pushpc
|
||||||
|
|||||||
@@ -34,10 +34,10 @@ LinkItem_FishingRodAndPortalRod:
|
|||||||
JSR LinkItem_PortalRod
|
JSR LinkItem_PortalRod
|
||||||
++
|
++
|
||||||
LDA.b $F6
|
LDA.b $F6
|
||||||
BIT.b #$20 : BNE .left ; pressed left
|
BIT.b #$20 : BNE .left ; pressed left
|
||||||
BIT.b #$10 : BNE .right ; pressed right
|
BIT.b #$10 : BNE .right ; pressed right
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
; Swap the ram variable FishingOrPortalRod based on left or right
|
; Swap the ram variable FishingOrPortalRod based on left or right
|
||||||
; 00 = fishing rod, 01 = portal rod
|
; 00 = fishing rod, 01 = portal rod
|
||||||
.left
|
.left
|
||||||
@@ -65,7 +65,7 @@ LinkItem_FishingRod:
|
|||||||
BIT.b $3A : BVS .holding_y
|
BIT.b $3A : BVS .holding_y
|
||||||
LDA.b $6C : BNE FishingRodExit
|
LDA.b $6C : BNE FishingRodExit
|
||||||
JSR CheckYButtonPress : BCC FishingRodExit
|
JSR CheckYButtonPress : BCC FishingRodExit
|
||||||
|
|
||||||
LDA.b $67 : AND.b #$F0 : STA.b $67
|
LDA.b $67 : AND.b #$F0 : STA.b $67
|
||||||
|
|
||||||
JSL FishingSwapCaneBlockHammerGfx
|
JSL FishingSwapCaneBlockHammerGfx
|
||||||
@@ -218,7 +218,7 @@ CheckYButtonPress:
|
|||||||
BIT.b $3A : BVS .fail
|
BIT.b $3A : BVS .fail
|
||||||
LDA.b $46 : BNE .fail
|
LDA.b $46 : BNE .fail
|
||||||
LDA.b $F4 : AND.b #$40 : BEQ .fail
|
LDA.b $F4 : AND.b #$40 : BEQ .fail
|
||||||
TSB.b $3A
|
TSB.b $3A
|
||||||
SEC
|
SEC
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
@@ -424,7 +424,7 @@ Sprite_Floater:
|
|||||||
BCS .no_bounce
|
BCS .no_bounce
|
||||||
|
|
||||||
LDA.w $0E90, X : BNE .not_water_tile_last
|
LDA.w $0E90, X : BNE .not_water_tile_last
|
||||||
INC.w $0E90, X
|
INC.w $0E90, X
|
||||||
JSL Sprite_CheckTileCollision
|
JSL Sprite_CheckTileCollision
|
||||||
LDA.w $0FA5
|
LDA.w $0FA5
|
||||||
CMP.b #$08 : BEQ .water_tile_last
|
CMP.b #$08 : BEQ .water_tile_last
|
||||||
@@ -518,4 +518,4 @@ DismissRodFromMenu:
|
|||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|
||||||
print "End of Items/fishing_rod.asm ", pc
|
print "End of Items/fishing_rod.asm ", pc
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
; =========================================================
|
; =========================================================
|
||||||
; Minish Form Link
|
; Minish Form Link
|
||||||
;
|
;
|
||||||
; Reacts to Tile ID 64 to transform into Minish Link
|
; Reacts to Tile ID 64 to transform into Minish Link
|
||||||
; =========================================================
|
; =========================================================
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ LinkState_CheckForMinishForm:
|
|||||||
|
|
||||||
; Check if the value in A (from $0202) is GTE to $16.
|
; Check if the value in A (from $0202) is GTE to $16.
|
||||||
CMP.b #$17 : BCS .continue
|
CMP.b #$17 : BCS .continue
|
||||||
|
|
||||||
LDA.b #$3C : STA.w $012E ; Error beep
|
LDA.b #$3C : STA.w $012E ; Error beep
|
||||||
JMP .return
|
JMP .return
|
||||||
|
|
||||||
@@ -54,7 +54,7 @@ LinkState_CheckForMinishForm:
|
|||||||
.transform
|
.transform
|
||||||
%PlayerTransform()
|
%PlayerTransform()
|
||||||
|
|
||||||
LDA #$39 : STA $BC ; Change link's sprite
|
LDA #$39 : STA $BC ; Change link's sprite
|
||||||
LDA #$05 : STA $02B2 ; Set the current mask form
|
LDA #$05 : STA $02B2 ; Set the current mask form
|
||||||
BRA .return
|
BRA .return
|
||||||
|
|
||||||
@@ -63,7 +63,7 @@ LinkState_CheckForMinishForm:
|
|||||||
%ResetToLinkGraphics()
|
%ResetToLinkGraphics()
|
||||||
|
|
||||||
.return
|
.return
|
||||||
|
|
||||||
REP #$30
|
REP #$30
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
@@ -74,7 +74,7 @@ LinkState_CheckMinishTile:
|
|||||||
{
|
{
|
||||||
LDA $02B2 : BEQ .blocked ; no form
|
LDA $02B2 : BEQ .blocked ; no form
|
||||||
CMP.w #$0007 : BEQ .allowed ; moosh can fly over
|
CMP.w #$0007 : BEQ .allowed ; moosh can fly over
|
||||||
CMP.w #$0005 : BNE .blocked ; not minish
|
CMP.w #$0005 : BNE .blocked ; not minish
|
||||||
.allowed
|
.allowed
|
||||||
LDA $0A : TSB $0343
|
LDA $0A : TSB $0343
|
||||||
RTS
|
RTS
|
||||||
|
|||||||
@@ -47,32 +47,32 @@ Lanmola_FinishInitialization:
|
|||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
|
|
||||||
LDA.l .starting_delay, X : STA $0DF0, X
|
LDA.l .starting_delay, X : STA $0DF0, X
|
||||||
|
|
||||||
LDA.b #$FF : STA $0F70, X
|
LDA.b #$FF : STA $0F70, X
|
||||||
|
|
||||||
PHX
|
PHX
|
||||||
|
|
||||||
LDY.b #$3F
|
LDY.b #$3F
|
||||||
|
|
||||||
LDA $7EEA00, X : TAX ;.sprite_regions
|
LDA $7EEA00, X : TAX ;.sprite_regions
|
||||||
|
|
||||||
LDA.b #$FF
|
LDA.b #$FF
|
||||||
|
|
||||||
.reset_extended_sprites
|
.reset_extended_sprites
|
||||||
STA $7FFE00, X
|
STA $7FFE00, X
|
||||||
|
|
||||||
INX
|
INX
|
||||||
|
|
||||||
DEY : BPL .reset_extended_sprites
|
DEY : BPL .reset_extended_sprites
|
||||||
|
|
||||||
PLX
|
PLX
|
||||||
|
|
||||||
LDA.b #$07 : STA $7FF81E, X
|
LDA.b #$07 : STA $7FF81E, X
|
||||||
|
|
||||||
JSL Sprite_Lanmola_Init_DataLONG
|
JSL Sprite_Lanmola_Init_DataLONG
|
||||||
|
|
||||||
PLB
|
PLB
|
||||||
|
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
.starting_delay
|
.starting_delay
|
||||||
@@ -84,11 +84,11 @@ Lanmola_FinishInitialization:
|
|||||||
Sprite_Lanmola:
|
Sprite_Lanmola:
|
||||||
{
|
{
|
||||||
;JSR Sprite2_CheckIfActivePermissive
|
;JSR Sprite2_CheckIfActivePermissive
|
||||||
|
|
||||||
LDA $0D80, X
|
LDA $0D80, X
|
||||||
|
|
||||||
JSL UseImplicitRegIndexedLocalJumpTable
|
JSL UseImplicitRegIndexedLocalJumpTable
|
||||||
|
|
||||||
dw Lanmola_Wait ;0x00
|
dw Lanmola_Wait ;0x00
|
||||||
dw Lanmola_Mound ;0x01
|
dw Lanmola_Mound ;0x01
|
||||||
dw Lanmola_Fly ;0x02
|
dw Lanmola_Fly ;0x02
|
||||||
@@ -105,14 +105,14 @@ Lanmola_Wait: ;0x00
|
|||||||
|
|
||||||
LDA $0DF0, X : BNE .delay ; ORA $0F00, X :
|
LDA $0DF0, X : BNE .delay ; ORA $0F00, X :
|
||||||
LDA.b #$7F : STA $0DF0, X
|
LDA.b #$7F : STA $0DF0, X
|
||||||
|
|
||||||
INC $0D80, X
|
INC $0D80, X
|
||||||
|
|
||||||
;Play rumbling sound
|
;Play rumbling sound
|
||||||
LDA.b #$35 : JSL Sound_SetSfx2PanLong
|
LDA.b #$35 : JSL Sound_SetSfx2PanLong
|
||||||
|
|
||||||
.delay
|
.delay
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -126,37 +126,37 @@ Lanmola_Mound: ;0x01
|
|||||||
|
|
||||||
LDA $0DF0, X : BNE .return
|
LDA $0DF0, X : BNE .return
|
||||||
JSL Lanmola_SpawnShrapnel
|
JSL Lanmola_SpawnShrapnel
|
||||||
|
|
||||||
LDA.b #$13 : STA $012D
|
LDA.b #$13 : STA $012D
|
||||||
|
|
||||||
TXY
|
TXY
|
||||||
JSL GetRandomInt : AND.b #$07 : TAX
|
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 $0DA0, Y ; Get random X pos to have the lanmola fly to. ;.randXPos
|
||||||
|
|
||||||
JSL GetRandomInt : AND.b #$07 : TAX
|
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 $0DB0, Y ; Get random Y pos to have the lanmola fly to. ;.randYPos
|
||||||
TYX
|
TYX
|
||||||
|
|
||||||
INC $0D80, X
|
INC $0D80, X
|
||||||
|
|
||||||
LDA.b #$18 : STA $0F80, X
|
LDA.b #$18 : STA $0F80, X
|
||||||
|
|
||||||
STZ $0EC0, X
|
STZ $0EC0, X
|
||||||
STZ $0ED0, X
|
STZ $0ED0, X
|
||||||
|
|
||||||
; ALTERNATE ENTRY POINT
|
; ALTERNATE ENTRY POINT
|
||||||
.Lanmola_SetScatterSandPosition
|
.Lanmola_SetScatterSandPosition
|
||||||
|
|
||||||
LDA.w SprXH, X : STA $0DC0, X
|
LDA.w SprXH, X : STA $0DC0, X
|
||||||
LDA.w SprYH, X : STA $0EB0, X
|
LDA.w SprYH, X : STA $0EB0, X
|
||||||
|
|
||||||
LDA.w SprX, X : STA $0DE0, X
|
LDA.w SprX, X : STA $0DE0, X
|
||||||
LDA.w SprY, X : STA $0E70, X
|
LDA.w SprY, X : STA $0E70, X
|
||||||
|
|
||||||
LDA.b #$4A : STA $0E00, X
|
LDA.b #$4A : STA $0E00, X
|
||||||
|
|
||||||
.return
|
.return
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,31 +170,31 @@ Lanmola_Fly: ;0x02
|
|||||||
|
|
||||||
JSR Sprite2_CheckDamage
|
JSR Sprite2_CheckDamage
|
||||||
JSR Sprite2_MoveAltitude
|
JSR Sprite2_MoveAltitude
|
||||||
|
|
||||||
; Slowly decrease the Y speed when first coming out of the ground
|
; Slowly decrease the Y speed when first coming out of the ground
|
||||||
LDA $0EC0, X : BNE .notRising
|
LDA $0EC0, X : BNE .notRising
|
||||||
LDA $0F80, X : SEC : SBC.b #$01 : STA $0F80, X : BNE .beta
|
LDA $0F80, X : SEC : SBC.b #$01 : STA $0F80, X : BNE .beta
|
||||||
INC $0EC0, X
|
INC $0EC0, X
|
||||||
|
|
||||||
.beta
|
.beta
|
||||||
|
|
||||||
BRA .dontSwitchDirections
|
BRA .dontSwitchDirections
|
||||||
|
|
||||||
.notRising
|
.notRising
|
||||||
|
|
||||||
; Use the Y speed to bob up and down
|
; Use the Y speed to bob up and down
|
||||||
LDA $1A : AND.b #$01 : BNE .dontSwitchDirections ; Every other frame.
|
LDA $1A : AND.b #$01 : BNE .dontSwitchDirections ; Every other frame.
|
||||||
TXY
|
TXY
|
||||||
LDA $0ED0, X : AND.b #$01 : TAX
|
LDA $0ED0, 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
|
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 $0ED0, X ; Switch direction
|
||||||
|
|
||||||
.dontSwitchDirections2
|
.dontSwitchDirections2
|
||||||
TYX
|
TYX
|
||||||
|
|
||||||
.dontSwitchDirections
|
.dontSwitchDirections
|
||||||
|
|
||||||
LDA $0DA0, X : STA $04
|
LDA $0DA0, X : STA $04
|
||||||
LDA.w SprXH, X : STA $05
|
LDA.w SprXH, X : STA $05
|
||||||
LDA $0DB0, X : STA $06
|
LDA $0DB0, X : STA $06
|
||||||
@@ -203,29 +203,29 @@ Lanmola_Fly: ;0x02
|
|||||||
LDA.w SprXH, X : STA $01
|
LDA.w SprXH, X : STA $01
|
||||||
LDA.w SprY, X : STA $02
|
LDA.w SprY, X : STA $02
|
||||||
LDA.w SprYH, X : STA $03
|
LDA.w SprYH, X : STA $03
|
||||||
|
|
||||||
REP #$20
|
REP #$20
|
||||||
|
|
||||||
; If our position is 0x0002 away from the random X and Y pos we chose earlier go to the next stage.
|
; If our position is 0x0002 away from the random X and Y pos we chose earlier go to the next stage.
|
||||||
LDA $00 : SEC : SBC $04 : CLC : ADC.w #$0002 : CMP.w #$0004 : BCS .notCloseEnough
|
LDA $00 : SEC : SBC $04 : CLC : ADC.w #$0002 : CMP.w #$0004 : BCS .notCloseEnough
|
||||||
LDA $02 : SEC : SBC $06 : CLC : ADC.w #$0002 : CMP.w #$0004 : SEP #$20 : BCS .notCloseEnough
|
LDA $02 : SEC : SBC $06 : CLC : ADC.w #$0002 : CMP.w #$0004 : SEP #$20 : BCS .notCloseEnough
|
||||||
INC $0D80, X
|
INC $0D80, X
|
||||||
|
|
||||||
.notCloseEnough
|
.notCloseEnough
|
||||||
|
|
||||||
SEP #$20
|
SEP #$20
|
||||||
|
|
||||||
LDA.b #$0A
|
LDA.b #$0A
|
||||||
|
|
||||||
JSL Sprite_ProjectSpeedTowardsEntityLong
|
JSL Sprite_ProjectSpeedTowardsEntityLong
|
||||||
|
|
||||||
LDA $00 : STA $0D40, X
|
LDA $00 : STA $0D40, X
|
||||||
LDA $01 : STA $0D50, X
|
LDA $01 : STA $0D50, X
|
||||||
|
|
||||||
JSR Sprite2_Move
|
JSR Sprite2_Move
|
||||||
|
|
||||||
.return
|
.return
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -240,22 +240,22 @@ Lanmola_Dive: ;0x03
|
|||||||
JSR Sprite2_CheckDamage
|
JSR Sprite2_CheckDamage
|
||||||
JSR Sprite2_Move
|
JSR Sprite2_Move
|
||||||
JSR Sprite2_MoveAltitude
|
JSR Sprite2_MoveAltitude
|
||||||
|
|
||||||
LDA $0F80, X : CMP.b #$EC : BMI .alpha
|
LDA $0F80, X : CMP.b #$EC : BMI .alpha
|
||||||
SEC : SBC.b #$01 : STA $0F80, X
|
SEC : SBC.b #$01 : STA $0F80, X
|
||||||
|
|
||||||
.alpha
|
.alpha
|
||||||
|
|
||||||
; If we are under the ground go to the reset stage
|
; If we are under the ground go to the reset stage
|
||||||
LDA $0F70, X : BPL .notUnderGroundYet
|
LDA $0F70, X : BPL .notUnderGroundYet
|
||||||
INC $0D80, X
|
INC $0D80, X
|
||||||
|
|
||||||
LDA.b #$80 : STA $0DF0, X
|
LDA.b #$80 : STA $0DF0, X
|
||||||
|
|
||||||
JSR Lanmola_Mound_Lanmola_SetScatterSandPosition
|
JSR Lanmola_Mound_Lanmola_SetScatterSandPosition
|
||||||
|
|
||||||
.notUnderGroundYet
|
.notUnderGroundYet
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -266,20 +266,20 @@ Lanmola_Reset: ;0x04
|
|||||||
JSR Lanmola_Draw
|
JSR Lanmola_Draw
|
||||||
JSL Lanmola_DrawDirtLONG
|
JSL Lanmola_DrawDirtLONG
|
||||||
JSL CheckIfActive : BCS Lanmola_Dive_notUnderGroundYet
|
JSL CheckIfActive : BCS Lanmola_Dive_notUnderGroundYet
|
||||||
|
|
||||||
LDA $0DF0, X : BNE .wait
|
LDA $0DF0, X : BNE .wait
|
||||||
STZ $0D80, X ; Go back to wait phase
|
STZ $0D80, X ; Go back to wait phase
|
||||||
|
|
||||||
TXY
|
TXY
|
||||||
JSL GetRandomInt : AND.b #$07 : TAX
|
JSL GetRandomInt : AND.b #$07 : TAX
|
||||||
LDA $7EEAA8, X : STA.w SprX, Y ; Get random X pos to have the lanmola fly to. ;.randXPos
|
LDA $7EEAA8, X : STA.w SprX, Y ; Get random X pos to have the lanmola fly to. ;.randXPos
|
||||||
|
|
||||||
JSL GetRandomInt : AND.b #$07 : TAX
|
JSL GetRandomInt : AND.b #$07 : TAX
|
||||||
LDA $7EEAB0, X : STA.w SprY, Y ; Get random Y pos to have the lanmola fly to. ;.randYPos
|
LDA $7EEAB0, X : STA.w SprY, Y ; Get random Y pos to have the lanmola fly to. ;.randYPos
|
||||||
TYX
|
TYX
|
||||||
|
|
||||||
.wait
|
.wait
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -315,13 +315,13 @@ Lanmola_Death: ;0x05
|
|||||||
PLX
|
PLX
|
||||||
|
|
||||||
.timerNotDone
|
.timerNotDone
|
||||||
|
|
||||||
LDA $0DF0, X : CMP.b #$20 : BCC Lanmola_Reset_wait
|
LDA $0DF0, X : CMP.b #$20 : BCC Lanmola_Reset_wait
|
||||||
CMP.b #$A0 : BCS Lanmola_Reset_wait
|
CMP.b #$A0 : BCS Lanmola_Reset_wait
|
||||||
AND.b #$0F : BNE Lanmola_Reset_wait
|
AND.b #$0F : BNE Lanmola_Reset_wait
|
||||||
TXY
|
TXY
|
||||||
LDA $7FF81E, X : TAX
|
LDA $7FF81E, X : TAX
|
||||||
|
|
||||||
LDA $0E80, Y : SEC : SBC $7EEAA0, X ;.dataDeath
|
LDA $0E80, Y : SEC : SBC $7EEAA0, X ;.dataDeath
|
||||||
|
|
||||||
PHY : TXY : PLX
|
PHY : TXY : PLX
|
||||||
@@ -337,35 +337,35 @@ Lanmola_Death: ;0x05
|
|||||||
LDA $0A : SEC : SBC $E2 : STA $0A
|
LDA $0A : SEC : SBC $E2 : STA $0A
|
||||||
LDA $0C : SEC : SBC $E8 : STA $0C
|
LDA $0C : SEC : SBC $E8 : STA $0C
|
||||||
SEP #$20
|
SEP #$20
|
||||||
|
|
||||||
PLX
|
PLX
|
||||||
|
|
||||||
; Spawn a sprite that instantly dies as a boss explosion.
|
; Spawn a sprite that instantly dies as a boss explosion.
|
||||||
LDA.b #$00 : JSL Sprite_SpawnDynamically : BMI .spawn_failed
|
LDA.b #$00 : JSL Sprite_SpawnDynamically : BMI .spawn_failed
|
||||||
LDA.b #$0B : STA $0AAA
|
LDA.b #$0B : STA $0AAA
|
||||||
|
|
||||||
LDA.b #$04 : STA $0DD0, Y
|
LDA.b #$04 : STA $0DD0, Y
|
||||||
|
|
||||||
LDA.b #$1F : STA $0DF0, Y : STA $0D90, Y
|
LDA.b #$1F : STA $0DF0, Y : STA $0D90, Y
|
||||||
|
|
||||||
LDA $0A : STA.w SprX, Y
|
LDA $0A : STA.w SprX, Y
|
||||||
LDA $0B : STA.w SprXH, Y
|
LDA $0B : STA.w SprXH, Y
|
||||||
LDA $0C : STA.w SprY, Y
|
LDA $0C : STA.w SprY, Y
|
||||||
LDA $0D : STA.w SprYH, Y
|
LDA $0D : STA.w SprYH, Y
|
||||||
|
|
||||||
LDA.b #$03 : STA $0E40, Y
|
LDA.b #$03 : STA $0E40, Y
|
||||||
|
|
||||||
LDA.b #$0C : STA $0F50, Y
|
LDA.b #$0C : STA $0F50, Y
|
||||||
|
|
||||||
LDA.b #$0C : JSL Sound_SetSfx2PanLong
|
LDA.b #$0C : JSL Sound_SetSfx2PanLong
|
||||||
|
|
||||||
LDA $7FF81E, X : BMI .beta
|
LDA $7FF81E, X : BMI .beta
|
||||||
DEC A : STA $7FF81E, X
|
DEC A : STA $7FF81E, X
|
||||||
|
|
||||||
.beta
|
.beta
|
||||||
.spawn_failed
|
.spawn_failed
|
||||||
.return
|
.return
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -374,31 +374,31 @@ Lanmola_Death: ;0x05
|
|||||||
Lanmola_Draw:
|
Lanmola_Draw:
|
||||||
{
|
{
|
||||||
JSL Lanmola_MoveSegment
|
JSL Lanmola_MoveSegment
|
||||||
|
|
||||||
LDA $0B89, X : STA $03
|
LDA $0B89, X : STA $03
|
||||||
|
|
||||||
LDA $7FF81E, X : BPL .beta
|
LDA $7FF81E, X : BPL .beta
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
.beta
|
.beta
|
||||||
|
|
||||||
PHX
|
PHX
|
||||||
|
|
||||||
STA $0F
|
STA $0F
|
||||||
|
|
||||||
LDA $0D40, X : ASL A : ROL A : AND.b #$01 : TAX
|
LDA $0D40, X : ASL A : ROL A : AND.b #$01 : TAX
|
||||||
|
|
||||||
LDA $7EEA06, X : STA $0C ;.data2
|
LDA $7EEA06, X : STA $0C ;.data2
|
||||||
|
|
||||||
LDA $7EEA04, X : TAY ;.data1
|
LDA $7EEA04, X : TAY ;.data1
|
||||||
|
|
||||||
LDX $0F
|
LDX $0F
|
||||||
|
|
||||||
.loopBody
|
.loopBody
|
||||||
PHX : STX $0D
|
PHX : STX $0D
|
||||||
|
|
||||||
LDA $02 : CLC : ADC $04 : TAX
|
LDA $02 : CLC : ADC $04 : TAX
|
||||||
|
|
||||||
LDA $02 : SEC : SBC.b #$08 : AND.b #$3F : STA $02
|
LDA $02 : SEC : SBC.b #$08 : AND.b #$3F : STA $02
|
||||||
|
|
||||||
LDA $7FFC00, X : STA $0A
|
LDA $7FFC00, X : STA $0A
|
||||||
@@ -442,7 +442,7 @@ Lanmola_Draw:
|
|||||||
.on_screen_y1
|
.on_screen_y1
|
||||||
|
|
||||||
PHY : TXY : PLX
|
PHY : TXY : PLX
|
||||||
|
|
||||||
LDA $08 : CLC : ADC.w #$000A : SEC : SBC $E8 : STA ($90), Y ;Shadow Y byte
|
LDA $08 : CLC : ADC.w #$000A : SEC : SBC $E8 : STA ($90), Y ;Shadow Y byte
|
||||||
CLC : ADC.w #$0010 : CMP.w #$0100
|
CLC : ADC.w #$0010 : CMP.w #$0100
|
||||||
SEP #$20
|
SEP #$20
|
||||||
@@ -468,25 +468,25 @@ Lanmola_Draw:
|
|||||||
PLX
|
PLX
|
||||||
|
|
||||||
PHY
|
PHY
|
||||||
|
|
||||||
LDA $7FFF00, X : TAX
|
LDA $7FFF00, X : TAX
|
||||||
|
|
||||||
LDY $0D
|
LDY $0D
|
||||||
|
|
||||||
LDA $0F : CMP.b #$07 : BNE .dontDrawTail
|
LDA $0F : CMP.b #$07 : BNE .dontDrawTail
|
||||||
CPY.b #$00 : BNE .dontDrawTail
|
CPY.b #$00 : BNE .dontDrawTail
|
||||||
LDA $7EEA18, X ;.chrTail
|
LDA $7EEA18, X ;.chrTail
|
||||||
BRA .notHead
|
BRA .notHead
|
||||||
|
|
||||||
.dontDrawTail
|
.dontDrawTail
|
||||||
|
|
||||||
LDA.b #$C6
|
LDA.b #$C6
|
||||||
|
|
||||||
CPY $0F : BNE .notHead
|
CPY $0F : BNE .notHead
|
||||||
LDA $7EEA08, X ;.chrHead
|
LDA $7EEA08, X ;.chrHead
|
||||||
|
|
||||||
.notHead
|
.notHead
|
||||||
|
|
||||||
PLY : INY : STA ($90), Y ;Body chr
|
PLY : INY : STA ($90), Y ;Body chr
|
||||||
|
|
||||||
PHY
|
PHY
|
||||||
@@ -501,20 +501,20 @@ Lanmola_Draw:
|
|||||||
INY
|
INY
|
||||||
|
|
||||||
LDA $7EEA28, X : ORA $03 : STA ($90), Y ;Body properties ;.propertiesBody
|
LDA $7EEA28, X : ORA $03 : STA ($90), Y ;Body properties ;.propertiesBody
|
||||||
|
|
||||||
TYA : PHY : LSR #2 : TAY
|
TYA : PHY : LSR #2 : TAY
|
||||||
CLC : ADC.b #$08 : TAX
|
CLC : ADC.b #$08 : TAX
|
||||||
|
|
||||||
LDA.b #$02 : ORA $37 : STA ($92), Y ;Body size and extra X bit
|
LDA.b #$02 : ORA $37 : STA ($92), Y ;Body size and extra X bit
|
||||||
PHY : TXY : PLX : STA ($92), Y ;Shadow size and extra X bit
|
PHY : TXY : PLX : STA ($92), Y ;Shadow size and extra X bit
|
||||||
|
|
||||||
PLA : CLC : ADC $0C : TAY
|
PLA : CLC : ADC $0C : TAY
|
||||||
|
|
||||||
PLX : DEX : BMI .bodyDone
|
PLX : DEX : BMI .bodyDone
|
||||||
JMP .loopBody
|
JMP .loopBody
|
||||||
|
|
||||||
.bodyDone
|
.bodyDone
|
||||||
|
|
||||||
PLX
|
PLX
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
@@ -529,15 +529,15 @@ Lanmola_DrawMound:
|
|||||||
PHX
|
PHX
|
||||||
|
|
||||||
LDA $0DF0, X : LSR #3 : TAX
|
LDA $0DF0, X : LSR #3 : TAX
|
||||||
|
|
||||||
LDA $7EEA54, X : TAX ;.frameMound
|
LDA $7EEA54, X : TAX ;.frameMound
|
||||||
|
|
||||||
LDY.b #$00
|
LDY.b #$00
|
||||||
|
|
||||||
REP #$20
|
REP #$20
|
||||||
LDA $0FDA : SEC : SBC $E8 : STA $02
|
LDA $0FDA : SEC : SBC $E8 : STA $02
|
||||||
LDA $0FD8 : SEC : SBC $E2 : STA ($90), Y
|
LDA $0FD8 : SEC : SBC $E2 : STA ($90), Y
|
||||||
|
|
||||||
STZ $37
|
STZ $37
|
||||||
BPL .notNegative
|
BPL .notNegative
|
||||||
INC $37
|
INC $37
|
||||||
@@ -553,20 +553,20 @@ Lanmola_DrawMound:
|
|||||||
CLC : ADC.w #$0010 : CMP.w #$0100
|
CLC : ADC.w #$0010 : CMP.w #$0100
|
||||||
BCC .on_screen_y
|
BCC .on_screen_y
|
||||||
.out_of_boundsx
|
.out_of_boundsx
|
||||||
LDA.w #$00F0 : STA ($90), Y
|
LDA.w #$00F0 : STA ($90), Y
|
||||||
|
|
||||||
.on_screen_y
|
.on_screen_y
|
||||||
SEP #$20
|
SEP #$20
|
||||||
|
|
||||||
LDA $7EEA48, X : INY : STA ($90), Y ;.chrMound
|
LDA $7EEA48, X : INY : STA ($90), Y ;.chrMound
|
||||||
LDA $7EEA4E, X : INY : STA ($90), Y ;.propertiesMound
|
LDA $7EEA4E, X : INY : STA ($90), Y ;.propertiesMound
|
||||||
|
|
||||||
TYA : LSR #2 : TAY
|
TYA : LSR #2 : TAY
|
||||||
|
|
||||||
LDA.b #$02 : ORA $37 : STA ($92), Y ;.sizesMound
|
LDA.b #$02 : ORA $37 : STA ($92), Y ;.sizesMound
|
||||||
|
|
||||||
PLX
|
PLX
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -581,40 +581,40 @@ Sprite_Shrapnel:
|
|||||||
{
|
{
|
||||||
; This sprite manifests as a boulder outdoors, and as shrapnel indoors.
|
; This sprite manifests as a boulder outdoors, and as shrapnel indoors.
|
||||||
LDA $1B : BEQ $5B ;Boulder_Main
|
LDA $1B : BEQ $5B ;Boulder_Main
|
||||||
|
|
||||||
; Check if we can draw.
|
; Check if we can draw.
|
||||||
LDA $0FC6 : CMP.b #$03 : BCS .invalid_gfx_loaded
|
LDA $0FC6 : CMP.b #$03 : BCS .invalid_gfx_loaded
|
||||||
JSL $06DBF8 ;Sprite_PrepAndDrawSingleSmallLong
|
JSL $06DBF8 ;Sprite_PrepAndDrawSingleSmallLong
|
||||||
|
|
||||||
.invalid_gfx_loaded
|
.invalid_gfx_loaded
|
||||||
|
|
||||||
;JSR $E8A2 ;Sprite4_CheckIfActive
|
;JSR $E8A2 ;Sprite4_CheckIfActive
|
||||||
JSL CheckIfActive : BCC .active
|
JSL CheckIfActive : BCC .active
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
.active
|
.active
|
||||||
|
|
||||||
LDA $1A : ASL #2 : AND.b #$C0 : STA $0F50, X ; : ORA.b #$00
|
LDA $1A : ASL #2 : AND.b #$C0 : STA $0F50, X ; : ORA.b #$00
|
||||||
|
|
||||||
JSR $E948 ;Sprite4_MoveXyz
|
JSR $E948 ;Sprite4_MoveXyz
|
||||||
|
|
||||||
TXA : EOR $1A : AND.b #$03 : BNE .noTileCollision
|
TXA : EOR $1A : AND.b #$03 : BNE .noTileCollision
|
||||||
REP #$20
|
REP #$20
|
||||||
|
|
||||||
LDA $0FD8 : SEC : SBC $22 : CLC : ADC.w #$0004
|
LDA $0FD8 : SEC : SBC $22 : CLC : ADC.w #$0004
|
||||||
|
|
||||||
CMP.w #$0010 : BCS .player_not_close
|
CMP.w #$0010 : BCS .player_not_close
|
||||||
|
|
||||||
LDA $0FDA : SEC : SBC $20 : CLC : ADC.w #$FFFC
|
LDA $0FDA : SEC : SBC $20 : CLC : ADC.w #$FFFC
|
||||||
|
|
||||||
CMP.w #$000C : BCS .player_not_close
|
CMP.w #$000C : BCS .player_not_close
|
||||||
|
|
||||||
SEP #$20
|
SEP #$20
|
||||||
|
|
||||||
JSL $06F41F ;Sprite_AttemptDamageToPlayerPlusRecoilLong
|
JSL $06F41F ;Sprite_AttemptDamageToPlayerPlusRecoilLong
|
||||||
|
|
||||||
.player_not_close
|
.player_not_close
|
||||||
|
|
||||||
SEP #$20
|
SEP #$20
|
||||||
|
|
||||||
;JSR $8094 : BEQ .noTileCollision ;Sprite4_CheckTileCollision
|
;JSR $8094 : BEQ .noTileCollision ;Sprite4_CheckTileCollision
|
||||||
@@ -626,10 +626,10 @@ Sprite_Shrapnel:
|
|||||||
STZ $0DD0, X
|
STZ $0DD0, X
|
||||||
|
|
||||||
.timerNotDone
|
.timerNotDone
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
; ==============================================================================
|
; ==============================================================================
|
||||||
|
|
||||||
assert pc() <= $1DD02A
|
assert pc() <= $1DD02A
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
org $01C742
|
org $01C742
|
||||||
JSL Ancilla_SpawnFallingPrize
|
JSL Ancilla_SpawnFallingPrize
|
||||||
|
|
||||||
@@ -49,18 +48,18 @@ Lanmola_DrawDirt:
|
|||||||
LDA $0D40, X : ASL A : ROL A : ASL A : EOR $0D80, X : AND.b #$02 : BEQ .nu
|
LDA $0D40, X : ASL A : ROL A : ASL A : EOR $0D80, X : AND.b #$02 : BEQ .nu
|
||||||
LDA.b #$08 : JSL OAM_AllocateFromRegionB
|
LDA.b #$08 : JSL OAM_AllocateFromRegionB
|
||||||
BRA .xi
|
BRA .xi
|
||||||
|
|
||||||
.nu
|
.nu
|
||||||
LDA.b #$08 : JSL OAM_AllocateFromRegionC
|
LDA.b #$08 : JSL OAM_AllocateFromRegionC
|
||||||
|
|
||||||
.xi
|
.xi
|
||||||
|
|
||||||
LDY.b #$00
|
LDY.b #$00
|
||||||
|
|
||||||
LDA $0E00, X : LSR #2 : AND.b #$03 : EOR.b #$03 : ASL A : STA $06
|
LDA $0E00, X : LSR #2 : AND.b #$03 : EOR.b #$03 : ASL A : STA $06
|
||||||
|
|
||||||
LDA $0DC0, X : XBA
|
LDA $0DC0, X : XBA
|
||||||
LDA $0DE0, X
|
LDA $0DE0, X
|
||||||
REP #$20 : SEC : SBC $E2 : STA $00 : SEP #$20
|
REP #$20 : SEC : SBC $E2 : STA $00 : SEP #$20
|
||||||
|
|
||||||
STZ $37
|
STZ $37
|
||||||
@@ -72,14 +71,14 @@ Lanmola_DrawDirt:
|
|||||||
LDA $0EB0, X : XBA
|
LDA $0EB0, X : XBA
|
||||||
LDA $0E70, X
|
LDA $0E70, X
|
||||||
REP #$20 : SEC : SBC $E8 : STA $02 : SEP #$20
|
REP #$20 : SEC : SBC $E8 : STA $02 : SEP #$20
|
||||||
|
|
||||||
PHX
|
PHX
|
||||||
|
|
||||||
LDX.b #$01
|
LDX.b #$01
|
||||||
|
|
||||||
.dirtLoop
|
.dirtLoop
|
||||||
PHX
|
PHX
|
||||||
|
|
||||||
TXA : CLC : ADC $06 : ASL : TAX
|
TXA : CLC : ADC $06 : ASL : TAX
|
||||||
|
|
||||||
REP #$20
|
REP #$20
|
||||||
@@ -104,7 +103,7 @@ Lanmola_DrawDirt:
|
|||||||
BCC .on_screen_y
|
BCC .on_screen_y
|
||||||
.out_of_bounds3
|
.out_of_bounds3
|
||||||
SEP #$20
|
SEP #$20
|
||||||
LDA.b #$F0 : STA ($90), Y
|
LDA.b #$F0 : STA ($90), Y
|
||||||
|
|
||||||
.on_screen_y
|
.on_screen_y
|
||||||
|
|
||||||
@@ -112,19 +111,19 @@ Lanmola_DrawDirt:
|
|||||||
|
|
||||||
LDA $7EEA84, X : INY : STA ($90), Y ;dirt chr ;.chrDirt
|
LDA $7EEA84, X : INY : STA ($90), Y ;dirt chr ;.chrDirt
|
||||||
LDA $7EEA8C, X : INY : STA ($90), Y ;dirt properties ;.propertiesDirt
|
LDA $7EEA8C, X : INY : STA ($90), Y ;dirt properties ;.propertiesDirt
|
||||||
|
|
||||||
PHY
|
PHY
|
||||||
|
|
||||||
TYA : LSR #2 : TAY
|
TYA : LSR #2 : TAY
|
||||||
|
|
||||||
LDA $7EEA94, X : ORA $37 : ORA $36 : STA ($92), Y ;.sizesDirt
|
LDA $7EEA94, X : ORA $37 : ORA $36 : STA ($92), Y ;.sizesDirt
|
||||||
|
|
||||||
PLY : INY
|
PLY : INY
|
||||||
|
|
||||||
PLX : DEX : BPL .dirtLoop
|
PLX : DEX : BPL .dirtLoop
|
||||||
|
|
||||||
PLX
|
PLX
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -153,7 +152,7 @@ Sprite_Lanmola_Init_Data:
|
|||||||
|
|
||||||
INX : CPX.b #$B8 : BCC .loop
|
INX : CPX.b #$B8 : BCC .loop
|
||||||
|
|
||||||
PLX
|
PLX
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
@@ -175,7 +174,7 @@ Sprite_Lanmola_Init_Data:
|
|||||||
|
|
||||||
;$7EEA18
|
;$7EEA18
|
||||||
.chrTail
|
.chrTail
|
||||||
db $CC, $E4, $CA, $E6, $C8, $E6, $CA, $E4, $CC, $E4, $CA, $E6, $C8, $E6, $CA, $E4
|
db $CC, $E4, $CA, $E6, $C8, $E6, $CA, $E4, $CC, $E4, $CA, $E6, $C8, $E6, $CA, $E4
|
||||||
|
|
||||||
;$7EEA28
|
;$7EEA28
|
||||||
.propertiesBody
|
.propertiesBody
|
||||||
@@ -207,7 +206,7 @@ Sprite_Lanmola_Init_Data:
|
|||||||
.chrMound
|
.chrMound
|
||||||
db $EE, $EE, $EC, $EC, $CE, $CE
|
db $EE, $EE, $EC, $EC, $CE, $CE
|
||||||
;db $EE, $EE, $EC, $EC, $CE, $CE
|
;db $EE, $EE, $EC, $EC, $CE, $CE
|
||||||
|
|
||||||
;$7EEA4E
|
;$7EEA4E
|
||||||
.propertiesMound
|
.propertiesMound
|
||||||
; db $39, $79, $39, $79, $39, $79
|
; db $39, $79, $39, $79, $39, $79
|
||||||
@@ -228,14 +227,14 @@ Sprite_Lanmola_Init_Data:
|
|||||||
.yDirt
|
.yDirt
|
||||||
dw $0000, $0000, $FFFF, $FFFF, $FFFF, $FFFF, $0003, $0003
|
dw $0000, $0000, $FFFF, $FFFF, $FFFF, $FFFF, $0003, $0003
|
||||||
;db $00, $00, $FF, $FF, $FF, $FF, $03, $03
|
;db $00, $00, $FF, $FF, $FF, $FF, $03, $03
|
||||||
|
|
||||||
;$7EEA84
|
;$7EEA84
|
||||||
.chrDirt
|
.chrDirt
|
||||||
db $E8, $E8, $E8, $E8, $EA, $EA, $EA, $EA
|
db $E8, $E8, $E8, $E8, $EA, $EA, $EA, $EA
|
||||||
|
|
||||||
;$7EEA8C
|
;$7EEA8C
|
||||||
.propertiesDirt
|
.propertiesDirt
|
||||||
db $39, $79, $39, $79, $39, $79, $39, $79
|
db $39, $79, $39, $79, $39, $79, $39, $79
|
||||||
;db $00, $40, $00, $40, $00, $40, $00, $40
|
;db $00, $40, $00, $40, $00, $40, $00, $40
|
||||||
|
|
||||||
;$7EEA94
|
;$7EEA94
|
||||||
@@ -256,7 +255,7 @@ Sprite_Lanmola_Init_Data:
|
|||||||
|
|
||||||
;$7EEAA8
|
;$7EEAA8
|
||||||
.randXPos
|
.randXPos
|
||||||
db $58, $50, $60, $70, $80, $90, $A0, $98
|
db $58, $50, $60, $70, $80, $90, $A0, $98
|
||||||
|
|
||||||
;$7EEAB0
|
;$7EEAB0
|
||||||
.randYPos
|
.randYPos
|
||||||
@@ -281,16 +280,16 @@ Lanmola_MoveSegment:
|
|||||||
SEP #$20
|
SEP #$20
|
||||||
|
|
||||||
PLX
|
PLX
|
||||||
|
|
||||||
LDA $0D40, X : SEC : SBC $0F80, X : STA $00
|
LDA $0D40, X : SEC : SBC $0F80, X : STA $00
|
||||||
LDA $0D50, X : STA $01
|
LDA $0D50, X : STA $01
|
||||||
JSL Sprite_ConvertVelocityToAngle : STA $0F
|
JSL Sprite_ConvertVelocityToAngle : STA $0F
|
||||||
|
|
||||||
LDA $7EEA00, X : STA $04 ;.sprite_regions
|
LDA $7EEA00, X : STA $04 ;.sprite_regions
|
||||||
|
|
||||||
PHX
|
PHX
|
||||||
|
|
||||||
; Store the current position, angle, and hieght of the sprite
|
; Store the current position, angle, and hieght of the sprite
|
||||||
; so that we can set the other segments to them later.
|
; so that we can set the other segments to them later.
|
||||||
LDA.w SprXH, X : PHA ;high x
|
LDA.w SprXH, X : PHA ;high x
|
||||||
LDA.w SprYH, X : PHA ;high y
|
LDA.w SprYH, X : PHA ;high y
|
||||||
@@ -299,11 +298,11 @@ Lanmola_MoveSegment:
|
|||||||
|
|
||||||
LDA $0F70, X : PHA ;height
|
LDA $0F70, X : PHA ;height
|
||||||
LDA $0F : PHA ;angle
|
LDA $0F : PHA ;angle
|
||||||
|
|
||||||
LDA $0E80, X : STA $02 : STA $05
|
LDA $0E80, X : STA $02 : STA $05
|
||||||
|
|
||||||
CLC : ADC $04 : TAX
|
CLC : ADC $04 : TAX
|
||||||
|
|
||||||
PLA : STA $7FFF00, X ;angle
|
PLA : STA $7FFF00, X ;angle
|
||||||
PLA : STA $7FFE00, X ;height
|
PLA : STA $7FFE00, X ;height
|
||||||
|
|
||||||
@@ -311,9 +310,9 @@ Lanmola_MoveSegment:
|
|||||||
PLA : STA $7FFC00, X ;lower x
|
PLA : STA $7FFC00, X ;lower x
|
||||||
PLA : STA $7EE900, X ;high y
|
PLA : STA $7EE900, X ;high y
|
||||||
PLA : STA $7EE800, X ;high x
|
PLA : STA $7EE800, X ;high x
|
||||||
|
|
||||||
PLX
|
PLX
|
||||||
|
|
||||||
LDA $0DD0, X : CMP.b #$09 : BNE .notActive
|
LDA $0DD0, X : CMP.b #$09 : BNE .notActive
|
||||||
LDA $11 : ORA $0FC1 : BNE .notActive
|
LDA $11 : ORA $0FC1 : BNE .notActive
|
||||||
LDA $10 : CMP #$0E : BEQ .notActive
|
LDA $10 : CMP #$0E : BEQ .notActive
|
||||||
@@ -321,7 +320,7 @@ Lanmola_MoveSegment:
|
|||||||
CMP #$09 : BEQ .notActive ;in medallion cut scene
|
CMP #$09 : BEQ .notActive ;in medallion cut scene
|
||||||
CMP #$0A : BEQ .notActive ;in medallion cut scene
|
CMP #$0A : BEQ .notActive ;in medallion cut scene
|
||||||
LDA $05 : INC A : AND.b #$3F : STA $0E80, X
|
LDA $05 : INC A : AND.b #$3F : STA $0E80, X
|
||||||
|
|
||||||
.notActive
|
.notActive
|
||||||
|
|
||||||
RTL
|
RTL
|
||||||
@@ -335,7 +334,7 @@ SetShrapnelTimer:
|
|||||||
|
|
||||||
JSL GetRandomInt ; replaced code
|
JSL GetRandomInt ; replaced code
|
||||||
|
|
||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|
||||||
; =========================================================
|
; =========================================================
|
||||||
|
|||||||
@@ -56,32 +56,28 @@ Sprite_DekuScrub_Prep:
|
|||||||
|
|
||||||
LDA.b #$80 : STA.w SprDefl, X
|
LDA.b #$80 : STA.w SprDefl, X
|
||||||
|
|
||||||
|
; Peacetime Deku Scrub NPCs
|
||||||
LDA.b $8A : CMP.b #$2E : BNE .check_next
|
LDA.b $8A : CMP.b #$2E : BNE .check_next
|
||||||
|
; Deku Butler
|
||||||
LDA.b #$07 : STA.w SprAction, X
|
LDA.b #$07 : STA.w SprAction, X
|
||||||
JMP .PlayIntro
|
JMP +
|
||||||
.check_next
|
.check_next
|
||||||
CMP.b #$2F : BNE .continue
|
CMP.b #$2F : BNE .continue
|
||||||
LDA.b #$08 : STA.w SprAction, X
|
LDA.b #$08 : STA.w SprAction, X
|
||||||
JMP .PlayIntro
|
JMP +
|
||||||
.continue
|
.continue
|
||||||
|
|
||||||
LDA.w SprSubtype, X : CMP.b #$01 : BEQ .DekuButler
|
LDA.w SprSubtype, X : CMP.b #$01 : BEQ .DekuButler
|
||||||
CMP.b #$02 : BEQ .DekuPrincess
|
CMP.b #$02 : BEQ .DekuPrincess
|
||||||
|
LDA.l $7EF301 : BEQ +
|
||||||
LDA.l $7EF301
|
|
||||||
BEQ .PlayIntro
|
|
||||||
LDA.b #$04 : STA.w SprAction, X
|
LDA.b #$04 : STA.w SprAction, X
|
||||||
.PlayIntro
|
JMP +
|
||||||
|
|
||||||
PLB
|
|
||||||
RTL
|
|
||||||
|
|
||||||
.DekuButler
|
.DekuButler
|
||||||
LDA.b #$05 : STA.w SprAction, X
|
LDA.b #$05 : STA.w SprAction, X
|
||||||
PLB
|
JMP +
|
||||||
RTL
|
|
||||||
.DekuPrincess
|
.DekuPrincess
|
||||||
LDA.b #$06 : STA.w SprAction, X
|
LDA.b #$06 : STA.w SprAction, X
|
||||||
|
+
|
||||||
PLB
|
PLB
|
||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
!DeathAnimation = 00 ; 00 = normal death, 01 = no death animation
|
!DeathAnimation = 00 ; 00 = normal death, 01 = no death animation
|
||||||
!ImperviousAll = 01 ; 00 = Can be attack, 01 = attack will clink on it
|
!ImperviousAll = 01 ; 00 = Can be attack, 01 = attack will clink on it
|
||||||
!SmallShadow = 01 ; 01 = small shadow, 00 = no shadow
|
!SmallShadow = 01 ; 01 = small shadow, 00 = no shadow
|
||||||
!Shadow = 01 ; 00 = don't draw shadow, 01 = draw a shadow
|
!Shadow = 01 ; 00 = don't draw shadow, 01 = draw a shadow
|
||||||
!Palette = 00 ; Unused in this MaskSalesman (can be 0 to 7)
|
!Palette = 00 ; Unused in this MaskSalesman (can be 0 to 7)
|
||||||
!Hitbox = 02 ; 00 to 31, can be viewed in sprite draw tool
|
!Hitbox = 02 ; 00 to 31, can be viewed in sprite draw tool
|
||||||
!Persist = 00 ; 01 = your sprite continue to live offscreen
|
!Persist = 00 ; 01 = your sprite continue to live offscreen
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
%Set_Sprite_Properties(Sprite_MaskSalesman_Prep, Sprite_MaskSalesman_Long);
|
%Set_Sprite_Properties(Sprite_MaskSalesman_Prep, Sprite_MaskSalesman_Long);
|
||||||
|
|
||||||
Sprite_MaskSalesman_Long:
|
Sprite_MaskSalesman_Long:
|
||||||
{
|
{
|
||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
|
|
||||||
JSR Sprite_MaskSalesman_Draw ; Call the draw code
|
JSR Sprite_MaskSalesman_Draw ; Call the draw code
|
||||||
@@ -49,7 +49,6 @@ Sprite_MaskSalesman_Long:
|
|||||||
Sprite_MaskSalesman_Prep:
|
Sprite_MaskSalesman_Prep:
|
||||||
{
|
{
|
||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
|
|
||||||
PLB
|
PLB
|
||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
@@ -59,7 +58,7 @@ Sprite_MaskSalesman_Main:
|
|||||||
JSL Sprite_PlayerCantPassThrough
|
JSL Sprite_PlayerCantPassThrough
|
||||||
|
|
||||||
LDA.w SprAction, X
|
LDA.w SprAction, X
|
||||||
JSL UseImplicitRegIndexedLocalJumpTable
|
JSL UseImplicitRegIndexedLocalJumpTable
|
||||||
|
|
||||||
dw InquiryHandler
|
dw InquiryHandler
|
||||||
dw NoOcarina
|
dw NoOcarina
|
||||||
@@ -75,7 +74,7 @@ Sprite_MaskSalesman_Main:
|
|||||||
|
|
||||||
; 0x00
|
; 0x00
|
||||||
InquiryHandler:
|
InquiryHandler:
|
||||||
{
|
{
|
||||||
%PlayAnimation(0, 1, 16)
|
%PlayAnimation(0, 1, 16)
|
||||||
|
|
||||||
; Player has a Lv1 Ocarina, skip to the you got it message
|
; Player has a Lv1 Ocarina, skip to the you got it message
|
||||||
@@ -133,11 +132,11 @@ Sprite_MaskSalesman_Main:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
; 0x03
|
; 0x03
|
||||||
TeachLinkSong:
|
TeachLinkSong:
|
||||||
{
|
{
|
||||||
LDA #$02 : STA $7EF34C ; Increment the number of songs Link has
|
LDA #$02 : STA $7EF34C ; Increment the number of songs Link has
|
||||||
LDA.b #$13
|
LDA.b #$13
|
||||||
STA.w $0CF8
|
STA.w $0CF8
|
||||||
JSL $0DBB67 ; Link_CalculateSFXPan
|
JSL $0DBB67 ; Link_CalculateSFXPan
|
||||||
ORA.w $0CF8
|
ORA.w $0CF8
|
||||||
@@ -148,7 +147,7 @@ Sprite_MaskSalesman_Main:
|
|||||||
|
|
||||||
; 0x04 - Offer Bunny Hood
|
; 0x04 - Offer Bunny Hood
|
||||||
OfferBunnyHood:
|
OfferBunnyHood:
|
||||||
{
|
{
|
||||||
%PlayAnimation(0, 1, 16)
|
%PlayAnimation(0, 1, 16)
|
||||||
|
|
||||||
%ShowUnconditionalMessage($07F) ; Bunny Hood for 100 rupees?
|
%ShowUnconditionalMessage($07F) ; Bunny Hood for 100 rupees?
|
||||||
@@ -158,7 +157,7 @@ Sprite_MaskSalesman_Main:
|
|||||||
|
|
||||||
; 0x05 - Offer Stone Mask
|
; 0x05 - Offer Stone Mask
|
||||||
OfferStoneMask:
|
OfferStoneMask:
|
||||||
{
|
{
|
||||||
%PlayAnimation(0, 1, 16)
|
%PlayAnimation(0, 1, 16)
|
||||||
%ShowUnconditionalMessage($082) ; Stone Mask for 650 rupees?
|
%ShowUnconditionalMessage($082) ; Stone Mask for 650 rupees?
|
||||||
%GotoAction(9)
|
%GotoAction(9)
|
||||||
@@ -208,14 +207,14 @@ Sprite_MaskSalesman_Main:
|
|||||||
SEP #$30
|
SEP #$30
|
||||||
|
|
||||||
%ShowUnconditionalMessage($063)
|
%ShowUnconditionalMessage($063)
|
||||||
|
|
||||||
%GotoAction(0)
|
%GotoAction(0)
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
.not_enough_rupees
|
.not_enough_rupees
|
||||||
%GotoAction($0A)
|
%GotoAction($0A)
|
||||||
RTS
|
RTS
|
||||||
.player_said_no
|
.player_said_no
|
||||||
%GotoAction(6)
|
%GotoAction(6)
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
@@ -251,7 +250,7 @@ Sprite_MaskSalesman_Main:
|
|||||||
.not_enough_rupees
|
.not_enough_rupees
|
||||||
%GotoAction($0A)
|
%GotoAction($0A)
|
||||||
RTS
|
RTS
|
||||||
.player_said_no
|
.player_said_no
|
||||||
%GotoAction(6)
|
%GotoAction(6)
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
@@ -266,7 +265,7 @@ Sprite_MaskSalesman_Main:
|
|||||||
}
|
}
|
||||||
|
|
||||||
Sprite_MaskSalesman_Draw:
|
Sprite_MaskSalesman_Draw:
|
||||||
{
|
{
|
||||||
JSL Sprite_PrepOamCoord
|
JSL Sprite_PrepOamCoord
|
||||||
JSL Sprite_OAM_AllocateDeferToPlayer
|
JSL Sprite_OAM_AllocateDeferToPlayer
|
||||||
|
|
||||||
@@ -280,17 +279,17 @@ Sprite_MaskSalesman_Draw:
|
|||||||
.nextTile
|
.nextTile
|
||||||
|
|
||||||
PHX ; Save current Tile Index?
|
PHX ; Save current Tile Index?
|
||||||
|
|
||||||
TXA : CLC : ADC $06 ; Add Animation Index Offset
|
TXA : CLC : ADC $06 ; Add Animation Index Offset
|
||||||
|
|
||||||
PHA ; Keep the value with animation index offset?
|
PHA ; Keep the value with animation index offset?
|
||||||
|
|
||||||
ASL A : TAX
|
ASL A : TAX
|
||||||
|
|
||||||
REP #$20
|
REP #$20
|
||||||
|
|
||||||
LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y
|
LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y
|
||||||
AND.w #$0100 : STA $0E
|
AND.w #$0100 : STA $0E
|
||||||
INY
|
INY
|
||||||
LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y
|
LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y
|
||||||
CLC : ADC #$0010 : CMP.w #$0100
|
CLC : ADC #$0010 : CMP.w #$0100
|
||||||
@@ -307,14 +306,14 @@ Sprite_MaskSalesman_Draw:
|
|||||||
INY
|
INY
|
||||||
LDA .properties, X : STA ($90), Y
|
LDA .properties, X : STA ($90), Y
|
||||||
|
|
||||||
PHY
|
PHY
|
||||||
|
|
||||||
TYA : LSR #2 : TAY
|
TYA : LSR #2 : TAY
|
||||||
|
|
||||||
LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer
|
LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer
|
||||||
|
|
||||||
PLY : INY
|
PLY : INY
|
||||||
|
|
||||||
PLX : DEX : BPL .nextTile
|
PLX : DEX : BPL .nextTile
|
||||||
|
|
||||||
PLX
|
PLX
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
!DeathAnimation = 00 ; 00 = normal death, 01 = no death animation
|
!DeathAnimation = 00 ; 00 = normal death, 01 = no death animation
|
||||||
!ImperviousAll = 00 ; 00 = Can be attack, 01 = attack will clink on it
|
!ImperviousAll = 00 ; 00 = Can be attack, 01 = attack will clink on it
|
||||||
!SmallShadow = 00 ; 01 = small shadow, 00 = no shadow
|
!SmallShadow = 00 ; 01 = small shadow, 00 = no shadow
|
||||||
!Shadow = 00 ; 00 = don't draw shadow, 01 = draw a shadow
|
!Shadow = 00 ; 00 = don't draw shadow, 01 = draw a shadow
|
||||||
!Palette = 00 ; Unused in this template (can be 0 to 7)
|
!Palette = 00 ; Unused in this template (can be 0 to 7)
|
||||||
!Hitbox = 02 ; 00 to 31, can be viewed in sprite draw tool
|
!Hitbox = 02 ; 00 to 31, can be viewed in sprite draw tool
|
||||||
!Persist = 00 ; 01 = your sprite continue to live offscreen
|
!Persist = 00 ; 01 = your sprite continue to live offscreen
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
!DeathAnimation = 00 ; 00 = normal death, 01 = no death animation
|
!DeathAnimation = 00 ; 00 = normal death, 01 = no death animation
|
||||||
!ImperviousAll = 01 ; 00 = Can be attack, 01 = attack will clink on it
|
!ImperviousAll = 01 ; 00 = Can be attack, 01 = attack will clink on it
|
||||||
!SmallShadow = 00 ; 01 = small shadow, 00 = no shadow
|
!SmallShadow = 00 ; 01 = small shadow, 00 = no shadow
|
||||||
!Shadow = 00 ; 00 = don't draw shadow, 01 = draw a shadow
|
!Shadow = 00 ; 00 = don't draw shadow, 01 = draw a shadow
|
||||||
!Palette = 00 ; Unused in this template (can be 0 to 7)
|
!Palette = 00 ; Unused in this template (can be 0 to 7)
|
||||||
!Hitbox = 00 ; 00 to 31, can be viewed in sprite draw tool
|
!Hitbox = 00 ; 00 to 31, can be viewed in sprite draw tool
|
||||||
!Persist = 00 ; 01 = your sprite continue to live offscreen
|
!Persist = 00 ; 01 = your sprite continue to live offscreen
|
||||||
@@ -40,7 +40,7 @@ Sprite_IceBlock_Long:
|
|||||||
.not_being_pushed
|
.not_being_pushed
|
||||||
LDA.w $0DF0, X : BEQ .retain_momentum
|
LDA.w $0DF0, X : BEQ .retain_momentum
|
||||||
LDA.b #$01 : STA.w SprMiscC, X
|
LDA.b #$01 : STA.w SprMiscC, X
|
||||||
LDA.b #$84 : STA $48
|
LDA.b #$84 : STA $48
|
||||||
LDA.b #$04 : STA.b $5E
|
LDA.b #$04 : STA.b $5E
|
||||||
.retain_momentum
|
.retain_momentum
|
||||||
|
|
||||||
@@ -58,7 +58,7 @@ Sprite_IceBlock_Long:
|
|||||||
Sprite_IceBlock_Prep:
|
Sprite_IceBlock_Prep:
|
||||||
{
|
{
|
||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
|
|
||||||
; Cache Sprite position
|
; Cache Sprite position
|
||||||
LDA.w SprX, X : STA.w SprMiscD, X
|
LDA.w SprX, X : STA.w SprMiscD, X
|
||||||
LDA.w SprY, X : STA.w SprMiscE, X
|
LDA.w SprY, X : STA.w SprMiscE, X
|
||||||
@@ -116,13 +116,13 @@ Sprite_IceBlock_Main:
|
|||||||
LDA.b #$01 : STA.w $0642
|
LDA.b #$01 : STA.w $0642
|
||||||
.no_switch
|
.no_switch
|
||||||
|
|
||||||
JSL Sprite_Move ; Sprite MoveXY
|
JSL Sprite_Move ; Sprite MoveXY
|
||||||
JSL Sprite_Get_16_bit_Coords ; Get 16bit coords
|
JSL Sprite_Get_16_bit_Coords ; Get 16bit coords
|
||||||
JSL Sprite_CheckTileCollision ; Check Tile collision
|
JSL Sprite_CheckTileCollision ; Check Tile collision
|
||||||
JSL Sprite_CheckDamageToPlayerSameLayer
|
JSL Sprite_CheckDamageToPlayerSameLayer
|
||||||
BCC NotInContact
|
BCC NotInContact
|
||||||
JSR ApplyPush
|
JSR ApplyPush
|
||||||
; Set timer
|
; Set timer
|
||||||
LDA.b #$07 : STA.w $0DF0, X
|
LDA.b #$07 : STA.w $0DF0, X
|
||||||
|
|
||||||
JSL $079291 ; Sprite_RepelDash_long
|
JSL $079291 ; Sprite_RepelDash_long
|
||||||
@@ -134,7 +134,7 @@ Sprite_IceBlock_Main:
|
|||||||
; LDA.w StatueSpeed_y,Y
|
; LDA.w StatueSpeed_y,Y
|
||||||
; STA.w SprYSpeed,X
|
; STA.w SprYSpeed,X
|
||||||
; JSR Statue_HandleGrab
|
; JSR Statue_HandleGrab
|
||||||
|
|
||||||
LDA.w SprX, X : AND #$F0 : STA.w SprX, X
|
LDA.w SprX, X : AND #$F0 : STA.w SprX, X
|
||||||
LDA.w SprY, X : AND #$F0 : STA.w SprY, X
|
LDA.w SprY, X : AND #$F0 : STA.w SprY, X
|
||||||
RTS
|
RTS
|
||||||
@@ -239,7 +239,7 @@ Sprite_IceBlock_Main:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
; Check if the tile beneath the sprite is the sliding ice
|
; Check if the tile beneath the sprite is the sliding ice
|
||||||
; Currently unused as it doesnt play well with the hitbox choices
|
; Currently unused as it doesnt play well with the hitbox choices
|
||||||
IceBlock_CheckForGround:
|
IceBlock_CheckForGround:
|
||||||
{
|
{
|
||||||
@@ -252,7 +252,7 @@ IceBlock_CheckForGround:
|
|||||||
JSL $06E87B ; GetTileType_long
|
JSL $06E87B ; GetTileType_long
|
||||||
PLY
|
PLY
|
||||||
|
|
||||||
LDA.w $0FA5
|
LDA.w $0FA5
|
||||||
CMP.b #$0E : BNE .stop
|
CMP.b #$0E : BNE .stop
|
||||||
SEC
|
SEC
|
||||||
RTS
|
RTS
|
||||||
@@ -402,17 +402,17 @@ Sprite_IceBlock_Draw:
|
|||||||
.nextTile
|
.nextTile
|
||||||
|
|
||||||
PHX ; Save current Tile Index?
|
PHX ; Save current Tile Index?
|
||||||
|
|
||||||
TXA : CLC : ADC $06 ; Add Animation Index Offset
|
TXA : CLC : ADC $06 ; Add Animation Index Offset
|
||||||
|
|
||||||
PHA ; Keep the value with animation index offset?
|
PHA ; Keep the value with animation index offset?
|
||||||
|
|
||||||
ASL A : TAX
|
ASL A : TAX
|
||||||
|
|
||||||
REP #$20
|
REP #$20
|
||||||
|
|
||||||
LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y
|
LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y
|
||||||
AND.w #$0100 : STA $0E
|
AND.w #$0100 : STA $0E
|
||||||
INY
|
INY
|
||||||
LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y
|
LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y
|
||||||
CLC : ADC #$0010 : CMP.w #$0100
|
CLC : ADC #$0010 : CMP.w #$0100
|
||||||
@@ -429,14 +429,14 @@ Sprite_IceBlock_Draw:
|
|||||||
INY
|
INY
|
||||||
LDA .properties, X : STA ($90), Y
|
LDA .properties, X : STA ($90), Y
|
||||||
|
|
||||||
PHY
|
PHY
|
||||||
|
|
||||||
TYA : LSR #2 : TAY
|
TYA : LSR #2 : TAY
|
||||||
|
|
||||||
LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer
|
LDA .sizes, X : ORA $0F : STA ($92), Y ; store size in oam buffer
|
||||||
|
|
||||||
PLY : INY
|
PLY : INY
|
||||||
|
|
||||||
PLX : DEX : BPL .nextTile
|
PLX : DEX : BPL .nextTile
|
||||||
|
|
||||||
PLX
|
PLX
|
||||||
@@ -457,4 +457,4 @@ Sprite_IceBlock_Draw:
|
|||||||
db $24, $64, $A4, $E4
|
db $24, $64, $A4, $E4
|
||||||
.sizes
|
.sizes
|
||||||
db $00, $00, $00, $00
|
db $00, $00, $00, $00
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
!DeathAnimation = 00 ; 00 = normal death, 01 = no death animation
|
!DeathAnimation = 00 ; 00 = normal death, 01 = no death animation
|
||||||
!ImperviousAll = 00 ; 00 = Can be attack, 01 = attack will clink on it
|
!ImperviousAll = 00 ; 00 = Can be attack, 01 = attack will clink on it
|
||||||
!SmallShadow = 00 ; 01 = small shadow, 00 = no shadow
|
!SmallShadow = 00 ; 01 = small shadow, 00 = no shadow
|
||||||
!Shadow = 00 ; 00 = don't draw shadow, 01 = draw a shadow
|
!Shadow = 00 ; 00 = don't draw shadow, 01 = draw a shadow
|
||||||
!Palette = 00 ; Unused in this template (can be 0 to 7)
|
!Palette = 00 ; Unused in this template (can be 0 to 7)
|
||||||
!Hitbox = 00 ; 00 to 31, can be viewed in sprite draw tool
|
!Hitbox = 00 ; 00 to 31, can be viewed in sprite draw tool
|
||||||
!Persist = 01 ; 01 = your sprite continue to live offscreen
|
!Persist = 01 ; 01 = your sprite continue to live offscreen
|
||||||
@@ -54,7 +54,7 @@ Sprite_LeverSwitch_Long:
|
|||||||
Sprite_LeverSwitch_Prep:
|
Sprite_LeverSwitch_Prep:
|
||||||
{
|
{
|
||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
|
|
||||||
LDA.b #$00 : STA.w SprDefl, X
|
LDA.b #$00 : STA.w SprDefl, X
|
||||||
LDA.w SprSubtype, X : STA.w SprAction, X
|
LDA.w SprSubtype, X : STA.w SprAction, X
|
||||||
LDA.b #$00 : STA.w SprTileDie, X
|
LDA.b #$00 : STA.w SprTileDie, X
|
||||||
@@ -84,7 +84,7 @@ Sprite_LeverSwitch_Main:
|
|||||||
LDA.w SprTimerA, X : BNE .NoDamage
|
LDA.w SprTimerA, X : BNE .NoDamage
|
||||||
JSL Sprite_CheckDamageFromPlayer : BCC .NoDamage
|
JSL Sprite_CheckDamageFromPlayer : BCC .NoDamage
|
||||||
LDA #$25 : STA $012F
|
LDA #$25 : STA $012F
|
||||||
|
|
||||||
STZ.w $37
|
STZ.w $37
|
||||||
LDA #$10 : STA.w SprTimerA, X
|
LDA #$10 : STA.w SprTimerA, X
|
||||||
%GotoAction(1)
|
%GotoAction(1)
|
||||||
@@ -145,17 +145,17 @@ Sprite_LeverSwitch_Draw:
|
|||||||
.nextTile
|
.nextTile
|
||||||
|
|
||||||
PHX ; Save current Tile Index?
|
PHX ; Save current Tile Index?
|
||||||
|
|
||||||
TXA : CLC : ADC $06 ; Add Animation Index Offset
|
TXA : CLC : ADC $06 ; Add Animation Index Offset
|
||||||
|
|
||||||
PHA ; Keep the value with animation index offset?
|
PHA ; Keep the value with animation index offset?
|
||||||
|
|
||||||
ASL A : TAX
|
ASL A : TAX
|
||||||
|
|
||||||
REP #$20
|
REP #$20
|
||||||
|
|
||||||
LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y
|
LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y
|
||||||
AND.w #$0100 : STA $0E
|
AND.w #$0100 : STA $0E
|
||||||
INY
|
INY
|
||||||
LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y
|
LDA $02 : CLC : ADC .y_offsets, X : STA ($90), Y
|
||||||
CLC : ADC #$0010 : CMP.w #$0100
|
CLC : ADC #$0010 : CMP.w #$0100
|
||||||
@@ -172,14 +172,14 @@ Sprite_LeverSwitch_Draw:
|
|||||||
INY
|
INY
|
||||||
LDA .properties, X : STA ($90), Y
|
LDA .properties, X : STA ($90), Y
|
||||||
|
|
||||||
PHY
|
PHY
|
||||||
|
|
||||||
TYA : LSR #2 : TAY
|
TYA : LSR #2 : TAY
|
||||||
|
|
||||||
LDA.b #$02 : ORA $0F : STA ($92), Y ; store size in oam buffer
|
LDA.b #$02 : ORA $0F : STA ($92), Y ; store size in oam buffer
|
||||||
|
|
||||||
PLY : INY
|
PLY : INY
|
||||||
|
|
||||||
PLX : DEX : BPL .nextTile
|
PLX : DEX : BPL .nextTile
|
||||||
|
|
||||||
PLX
|
PLX
|
||||||
@@ -203,4 +203,4 @@ Sprite_LeverSwitch_Draw:
|
|||||||
.properties
|
.properties
|
||||||
db $37
|
db $37
|
||||||
db $37
|
db $37
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user