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