121 lines
1.8 KiB
NASM
121 lines
1.8 KiB
NASM
IFrameData:
|
|
db $00, $14, $28
|
|
CalcIFrames:
|
|
LDA.l ArmorEquipment
|
|
PHX : TAX
|
|
LDA.l MaximumHealth : LSR #3
|
|
CLC : ADC.l IFrameData, X
|
|
EOR.b #$FF
|
|
CLC : ADC.b #$3E
|
|
PLX
|
|
STA.w $031F
|
|
RTL
|
|
|
|
SetBombTimer:
|
|
JSL GetRandomInt
|
|
STA.w $039F, X
|
|
RTL
|
|
|
|
SetDashTimer:
|
|
JSL GetRandomInt
|
|
AND.b #$3F
|
|
STA.w $0374
|
|
RTL
|
|
|
|
ProcessFlute:
|
|
LDA.b $1B
|
|
BNE .play_and_leave ; indoors
|
|
LDA.b $10
|
|
CMP.b #$0B
|
|
BEQ .play_and_leave ; special overworld
|
|
JSL GetRandomInt
|
|
BIT #$08
|
|
BNE .cucco
|
|
.normal
|
|
LDA.b $8A
|
|
AND.b #$40
|
|
BNE .play_and_leave ; dark world
|
|
JSR PlayDuck
|
|
SEC : RTL ; light world; play duck sound and resume normal behavior
|
|
.cucco
|
|
JSR PlayCluck ; outdoors; play cucco sound
|
|
LDA.b #$01
|
|
STA.l $7F50C5 ; turn on cucco storm
|
|
CLC : RTL ; do not summon duck
|
|
.play_and_leave
|
|
JSR PlayDuck
|
|
CLC : RTL
|
|
|
|
PlayDuck:
|
|
LDA.b #$13
|
|
STA.w $0CF8
|
|
JSL Sound_SetSfxPanWithPlayerCoords
|
|
ORA.w $0CF8
|
|
STA.w $012E
|
|
RTS
|
|
|
|
PlayCluck:
|
|
LDA.b #$30
|
|
STA.w $0CF8
|
|
JSL Sound_SetSfxPanWithPlayerCoords
|
|
ORA.w $0CF8
|
|
STA.w $012E
|
|
RTS
|
|
|
|
FluteMap:
|
|
LDA.b #$00
|
|
STA.l $7F50C5 ; turn off cuccos
|
|
LDA.b #$0E
|
|
STA.b $10
|
|
RTL
|
|
|
|
UseShovel:
|
|
LDA.b $1B
|
|
BEQ .normal
|
|
.indoors
|
|
REP #$20
|
|
LDA.w #$0200
|
|
STA.w $03F5
|
|
SEP #$20
|
|
CLC
|
|
RTL
|
|
.normal
|
|
LDA.l $07A310
|
|
STA.b $3D
|
|
STZ.w $030D
|
|
STZ.w $0300
|
|
SEC
|
|
RTL
|
|
|
|
BunnyThrowPot:
|
|
LDA.b #$02
|
|
JSL $068156
|
|
LDA.b $3B
|
|
AND.b #$7F
|
|
STA.b $3B
|
|
RTL
|
|
|
|
SwordSwingDelay:
|
|
LDA.l SwordEquipment : CMP.b #$02 : !BLT .normal
|
|
CMP.b #$FF : BEQ .normal
|
|
CPX.b #$04 : BEQ .section_4
|
|
CPX.b #$05 : BEQ .section_5
|
|
CPX.b #$06 : BNE .normal
|
|
.section_6
|
|
LDA.l SwordEquipment : CMP.b #$04 : !BGE .normal
|
|
BRA .add_one
|
|
.section_5
|
|
LDA.l SwordEquipment : CMP.b #$02 : !BGE .normal
|
|
BRA .add_one
|
|
.section_4
|
|
LDA.l SwordEquipment : CMP.b #$03 : !BGE .normal
|
|
.add_one
|
|
LDA.l $079CAF, X
|
|
STA.b $3D
|
|
INC
|
|
RTL
|
|
.normal
|
|
LDA.l $079CAF, X
|
|
STA.b $3D
|
|
RTL
|