diff --git a/fileselect.asm b/fileselect.asm index 91ec75d..15d7a9d 100644 --- a/fileselect.asm +++ b/fileselect.asm @@ -248,8 +248,12 @@ DrawPlayerFileShared: ; Flute LDA.l InventoryTrackingSRAM : AND.w #$0003 : BEQ + + LDA.l $7003C2 : AND.w #$00FF : CMP.w #$00FF : BNE .pseudo %fs_drawItem(7,16,FileSelectItems_flute) BRA ++ + .pseudo + %fs_drawItem(7,16,FileSelectItems_flute_green) + BRA ++ + %fs_drawItemGray(7,16,FileSelectItems_flute) ++ @@ -539,6 +543,8 @@ FileSelectItems: dw #$0264|!FS_COLOR_BROWN, #$0265|!FS_COLOR_BROWN, #$0274|!FS_COLOR_BROWN, #$0275|!FS_COLOR_BROWN .flute dw #$0266|!FS_COLOR_BLUE, #$0267|!FS_COLOR_BLUE, #$0276|!FS_COLOR_BLUE, #$0277|!FS_COLOR_BLUE + .flute_green + dw #$0266|!FS_COLOR_GREEN, #$0267|!FS_COLOR_GREEN, #$0276|!FS_COLOR_GREEN, #$0277|!FS_COLOR_GREEN .book dw #$026A|!FS_COLOR_GREEN, #$026B|!FS_COLOR_GREEN, #$027A|!FS_COLOR_GREEN, #$027B|!FS_COLOR_GREEN .redcane diff --git a/hooks.asm b/hooks.asm index f752cb1..bce99cf 100755 --- a/hooks.asm +++ b/hooks.asm @@ -2807,3 +2807,14 @@ org $82A9A1 ; bank_02.asm@7655 (STA.b $8A : STA.w $040A) JSL CheckTransitionOverworld NOP ;-------------------------------------------------------------------------------- +org $8DF741 +dw $3CD4, $3CD5, $3CE4, $3CE5 +;-------------------------------------------------------------------------------- +org $8DE58E ; bank_0D.asm@15401 (AND.w #$00FF : STA.b $02) +JSL DrawFluteIcon +NOP +;-------------------------------------------------------------------------------- +org $8DFB63 ; bank_0D.asm@18092 (LDA.l $7EF33F, X : AND.w #$00FF) +JSL CheckFluteInHUD +NOP #3 +;-------------------------------------------------------------------------------- diff --git a/newitems.asm b/newitems.asm index 77df26a..3591544 100755 --- a/newitems.asm +++ b/newitems.asm @@ -188,10 +188,12 @@ ItemBehavior: BRA .store_inventory_tracking .flute_inactive + LDA.b #$FF : STA.l FluteBitfield LDA.l InventoryTracking : ORA.b #$02 BRA .store_inventory_tracking .flute_active + LDA.b #$FF : STA.l FluteBitfield LDA.l InventoryTracking : ORA.b #$01 BRA .store_inventory_tracking diff --git a/pseudoflute.asm b/pseudoflute.asm index 06f0e5b..3b60b04 100644 --- a/pseudoflute.asm +++ b/pseudoflute.asm @@ -1,7 +1,9 @@ SelectFirstFluteSpot: LDA.l FluteBitfield - BNE .try_next + BNE + RTL ++ LDA.b #$07 + STA.w $1AF0 .try_next LDA.w $1AF0 INC A @@ -110,3 +112,39 @@ CheckTransitionOverworld: STA.b $8A STA.w $040A ; what we wrote over JML MaybeMarkFluteSpotVisited + +DrawFluteIcon: + AND.w #$00FF + CMP.w #$0002 + BCC .write + LDA.l FluteBitfield + AND.w #$00FF + CMP.w #$00FF + BNE .pseudo +.real + LDA.w #$0003 + BRA .write +.pseudo + LDA.w #$0002 +.write + STA.b $02 + RTL + +CheckFluteInHUD: + LDA.l $7EF33F, X + AND.w #$00FF ; what we wrote over + CPX.w #$000D + BNE .done + CMP.w #$0002 + BCC .done + LDA.l FluteBitfield + AND.w #$00FF + CMP.w #$00FF + BNE .pseudo +.real + LDA.w #$0003 + BRA .done +.pseudo + LDA.w #$0002 +.done + RTL