diff --git a/Sprites/NPCs/ranch_girl.asm b/Sprites/NPCs/ranch_girl.asm index a73fbe9..2b5fcd9 100644 --- a/Sprites/NPCs/ranch_girl.asm +++ b/Sprites/NPCs/ranch_girl.asm @@ -13,16 +13,29 @@ Sprite_CheckIfActive_Bank1A: pullpc -RanchGirl: +RanchGirl_Message: { - ; Play the dialogue box - LDA.b #$7D ; MESSAGE 017D - STA.w $1CF0 + LDA $7EF34C : CMP.b #$01 : BCS .has_ocarina + %ShowUnconditionalMessage($017D) + LDA #$01 : STA SprMiscD, X + RTL +.has_ocarina + %ShowUnconditionalMessage($011D) + RTL +} - LDA.b #$01 - STA.w $1CF1 +RanchGirl_TeachSong: +{ + LDA SprMiscD, X : CMP.b #$01 : BNE .not_started + LDA $10 : CMP.b #$0E : BEQ .running_dialog + LDA $7EF34C : CMP.b #$01 : BCS .has_song - JSL Sprite_ShowMessageMinimal + ; Play the song of storms + LDA.b #$2F + STA.w $0CF8 + JSL $0DBB67 ; Link_CalculateSFXPan + ORA.w $0CF8 + STA $012E ; Play the song learned sound ; Give Link the Ocarina LDY #$14 @@ -32,10 +45,24 @@ RanchGirl: JSL Link_ReceiveItem PLX + LDA #$01 : STA $7EF34C ; The item gives 02 by default, so decrement that for now + +.not_started +.running_dialog +.has_song + #_1AFEF4: LDA.b $1A + #_1AFEF6: LSR A + #_1AFEF7: LSR A + #_1AFEF8: LSR A + #_1AFEF9: LSR A + #_1AFEFA: AND.b #$01 + #_1AFEFC: STA.w $0DC0,X + RTL } + pushpc org $01AFECF @@ -56,17 +83,11 @@ ChickenLady: #_1AFEE2: CMP.b #$01 #_1AFEE4: BNE .no_message - JSL RanchGirl + JSL RanchGirl_Message .no_message - #_1AFEF4: LDA.b $1A - #_1AFEF6: LSR A - #_1AFEF7: LSR A - #_1AFEF8: LSR A - #_1AFEF9: LSR A - #_1AFEFA: AND.b #$01 - #_1AFEFC: STA.w $0DC0,X - + JSL RanchGirl_TeachSong + .return #_1AFEFF: RTS }