diff --git a/dialog.asm b/dialog.asm index 32aebdc..121ceae 100644 --- a/dialog.asm +++ b/dialog.asm @@ -366,11 +366,8 @@ DialogEtherTablet: PLA : JML Sprite_ShowMessageUnconditional ; Wacky Hylian Text + BIT $F4 : BVC - ; Show normal text if Y is not pressed - LDA.l AllowHammerTablets : BEQ ++ - LDA $7EF34B : BEQ .yesText : BRA .noText - ++ - LDA $7EF359 : CMP.b #$FF : BEQ .yesText : CMP.b #$02 : BCS .noText - ;++ + JSL CheckTabletSword : BMI .yesText + CMP.b #$02 : !BGE .noText .yesText PLA LDA.b #$0C @@ -388,11 +385,8 @@ DialogBombosTablet: PLA : JML Sprite_ShowMessageUnconditional ; Wacky Hylian Text + BIT $F4 : BVC - ; Show normal text if Y is not pressed - LDA.l AllowHammerTablets : BEQ ++ - LDA $7EF34B : BEQ .yesText : BRA .noText - ++ - LDA $7EF359 : CMP.b #$FF : BEQ .yesText : CMP.b #$02 : !BGE .noText - ;++ + JSL CheckTabletSword : BMI .yesText + CMP.b #$02 : !BGE .noText .yesText PLA LDA.b #$0D diff --git a/hooks.asm b/hooks.asm index 6323e78..d56221a 100755 --- a/hooks.asm +++ b/hooks.asm @@ -2801,7 +2801,7 @@ BRA + : NOP #5 : + org $088DB1 ; Bank08.asm@1207 (PHY : PHX : TYX : ... ) JSL Utility_CheckAncillaOverlapWithSprite BRA + : NOP #7 : + --------------------------------------------------------------------------------- +;-------------------------------------------------------------------------------- org $0882E8 ; Bank08.asm@456 (LDA $0DB0, Y : CMP.b #$03) JSL Utility_CheckHelmasaurKingCollision NOP @@ -2818,6 +2818,10 @@ org $068F94 ; sprite_prep.asm@1984 (INC $0BA0, X : JSL Sprite_InitializedSegment JSL AllowBombingMoldorm BRA + : NOP : + ;-------------------------------------------------------------------------------- +org $06892F ; sprite_prep.asm@548 (LDA $0D00, X : SUB #$0C : STA $0D00, X : ...) +JSL AllowBombingBarrier +RTS : NOP #7 +;-------------------------------------------------------------------------------- org $0DEE05 ; equipment.asm@2065 (LDA $7EF359 : AND.w #$00FF : CMP.w #$00FF : ...) JSL DrawSwordInMenu BRA + : NOP #16 : + diff --git a/special_bombs.asm b/special_bombs.asm index f3ac872..efd7460 100644 --- a/special_bombs.asm +++ b/special_bombs.asm @@ -239,14 +239,24 @@ AllowBombingMoldorm: JSL !SPRITE_INITIALIZED_SEGMENTED RTL ;-------------------------------------------------------------------------------- +AllowBombingBarrier: + ; what we wrote over + LDA $0D00, X : !SUB.b #$0C : STA $0D00, X + LDA $0E20, X : CMP #$40 : BNE .disable_projectiles + LDA SpecialBombs : BNE .no_disable_projectiles +.disable_projectiles + INC $0BA0, X +.no_disable_projectiles + RTL +;-------------------------------------------------------------------------------- DrawSwordInMenu: + LDA SpecialBombs : AND.w #$00FF : BNE .bombSword LDA $7EF359 : AND.w #$00FF : CMP.w #$00FF : BEQ .noSword .hasSword STA $02 LDA.w #$F859 : STA $04 RTL .noSword - LDA SpecialBombs : AND.w #$00FF : BNE .bombSword LDA.w #$0000 : STA $02 LDA.w #$F859 : STA $04 RTL diff --git a/swordswap.asm b/swordswap.asm index 213277e..4b0989d 100644 --- a/swordswap.asm +++ b/swordswap.asm @@ -134,6 +134,10 @@ CheckTabletSword: LDA $7EF34B : BEQ + ; check for hammer LDA.b #$02 : RTL + + LDA.l SpecialBombs : BEQ + + LDA $7EF4A8 : CMP #$01 : !BLT + ; check for master bombs + LDA.b #$02 : RTL + + LDA $7EF359 ; get actual sword value RTL ;================================================================================