Update mask salesman NPC quest interaction

This commit is contained in:
scawful
2024-04-27 01:34:35 -04:00
parent 3777650c7e
commit 64247a062c

View File

@@ -1,8 +1,4 @@
; =============================================================================
; Happy Mask Salesman Sprite ; Happy Mask Salesman Sprite
;
;
; =============================================================================
!SPRID = $E8; The sprite ID you are overwriting (HEX) !SPRID = $E8; The sprite ID you are overwriting (HEX)
!NbrTiles = 02 ; Number of tiles used in a frame !NbrTiles = 02 ; Number of tiles used in a frame
@@ -34,8 +30,6 @@
%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
@@ -51,20 +45,15 @@ Sprite_MaskSalesman_Long:
RTL ; Go back to original code RTL ; Go back to original code
} }
; =============================================================================
Sprite_MaskSalesman_Prep: Sprite_MaskSalesman_Prep:
{ {
PHB : PHK : PLB PHB : PHK : PLB
; Add more code here to initialize data
PLB PLB
RTL RTL
} }
; =============================================================================
Sprite_MaskSalesman_Main: Sprite_MaskSalesman_Main:
{ {
LDA.w SprAction, X LDA.w SprAction, X
@@ -78,29 +67,33 @@ Sprite_MaskSalesman_Main:
InquiryHandler: InquiryHandler:
{ {
%PlayAnimation(0, 1, 16) %PlayAnimation(0, 1, 16)
%ShowSolicitedMessage($E5)
BCC .didnt_converse
LDA $1CE8 : BNE .player_said_no ; Player has a Lv1 Ocarina, skip to the you got it message
LDA.l $7EF34C : CMP.b #$01 : BEQ .has_ocarina
; Player wants to buy a mask ; Player has no Ocarina or Lv2 Ocarina
LDA.l $7EF34C : CMP.b #$02 : BEQ .has_ocarina ; Do you want to buy a mask?
CMP.b #$03 : BEQ .has_all_songs %ShowSolicitedMessage($E5) : BCC .didnt_converse
LDA $1CE8 : BNE .player_said_no
%GotoAction(1) ; Player wants to buy a mask
RTS LDA.l $7EF34C : CMP.b #$02 : BEQ .has_song_healing
.has_ocarina ; No Ocarina yet
%GotoAction(2) %GotoAction(1)
RTS RTS
.has_all_songs .has_ocarina
%GotoAction(3) %GotoAction(2)
RTS
.didnt_converse
.player_said_no .has_song_healing
RTS %GotoAction(4)
.didnt_converse
.player_said_no
RTS
} }
; Link has not yet gotten the Ocarina ; Link has not yet gotten the Ocarina
@@ -108,7 +101,6 @@ Sprite_MaskSalesman_Main:
{ {
%PlayAnimation(0, 1, 16) %PlayAnimation(0, 1, 16)
%ShowUnconditionalMessage($E9) ; Go get the Ocarina first! %ShowUnconditionalMessage($E9) ; Go get the Ocarina first!
%GotoAction(0) %GotoAction(0)
RTS RTS
} }
@@ -117,34 +109,33 @@ Sprite_MaskSalesman_Main:
HasOcarina: HasOcarina:
{ {
%PlayAnimation(0, 1, 16) %PlayAnimation(0, 1, 16)
%ShowUnconditionalMessage($11C) ; Excellent, you have the Ocarina %ShowUnconditionalMessage($11C) ; Oh! You got it!
%GotoAction(3)
%GotoAction(0)
RTS RTS
} }
TeachLinkSong: TeachLinkSong:
{ {
LDA #$02 : STA $7EF34C ; Increment the number of songs Link has
LDA.b #$13
STA.w $0CF8
JSL $0DBB67 ; Link_CalculateSFXPan
ORA.w $0CF8
STA $012E ; Play the song learned sound
%GotoAction(0)
RTS RTS
} }
; Link has all the songs ; Link has the Ocarina and the song of healing
SongQuestComplete: SongQuestComplete:
{ {
%PlayAnimation(0, 1, 16) %PlayAnimation(0, 1, 16)
%ShowUnconditionalMessage($E9) %ShowUnconditionalMessage($E8)
%GotoAction(0) %GotoAction(0)
RTS RTS
} }
} }
; =============================================================================
Sprite_MaskSalesman_Draw: Sprite_MaskSalesman_Draw:
{ {
JSL Sprite_PrepOamCoord JSL Sprite_PrepOamCoord
@@ -201,7 +192,6 @@ Sprite_MaskSalesman_Draw:
RTS RTS
; =============================================================================
.start_index .start_index
db $00, $04 db $00, $04