Housekeeping, whitespace cleanup

This commit is contained in:
scawful
2024-11-09 21:26:39 -05:00
parent 6b3118b14b
commit e3056ca827
10 changed files with 257 additions and 263 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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
}
; =========================================================

View File

@@ -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
}

View File

@@ -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

View File

@@ -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

View File

@@ -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
}
}

View File

@@ -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
}
}