diff --git a/newhud.asm b/newhud.asm index 9ef3013..f57d7b6 100644 --- a/newhud.asm +++ b/newhud.asm @@ -161,9 +161,8 @@ SEP #$30 LDA $10 : CMP #$12 : BEQ .noprize - REP #$20 - LDA.l MapMode + REP #$20 BEQ .drawprize LDA.l $7EF368 diff --git a/utilities.asm b/utilities.asm index 2b9e97d..0ba573e 100644 --- a/utilities.asm +++ b/utilities.asm @@ -24,8 +24,7 @@ GetSpriteID: PHA : JSR.w CountBottles : CMP.l BottleLimit : !BLT + LDA !MULTIWORLD_SPRITEITEM_PLAYER_ID : BNE + PLA : LDA.l BottleLimitReplacement - JSL.l GetSpriteID - RTL + JMP GetSpriteID + PLA : BRA .normal .server_F0 @@ -59,8 +58,7 @@ RTL LDA !MULTIWORLD_SPRITEITEM_PLAYER_ID : BNE + LDA $7EF35B : CMP.l ProgressiveArmorLimit : !BLT + ; Progressive Armor Limit LDA.l ProgressiveArmorReplacement - JSL.l GetSpriteID - RTL + JMP GetSpriteID + LDA.b #$04 : RTL ++ CMP.b #$FE : BNE ++ ; Progressive Sword @@ -68,8 +66,7 @@ RTL LDA $7EF359 CMP.l ProgressiveSwordLimit : !BLT + ; Progressive Sword Limit LDA.l ProgressiveSwordReplacement - JSL.l GetSpriteID - RTL + JMP GetSpriteID .skipswordlimit : LDA $7EF359 + : CMP.b #$FF : BNE + ; Swordless LDA.b #$43 : RTL @@ -87,8 +84,7 @@ RTL LDA !PROGRESSIVE_SHIELD : AND #$C0 : LSR #6 CMP.l ProgressiveShieldLimit : !BLT + ; Progressive Shield Limit LDA.l ProgressiveShieldReplacement - JSL.l GetSpriteID - RTL + JMP GetSpriteID .skipshieldlimit : LDA !PROGRESSIVE_SHIELD : AND #$C0 : LSR #6 + : CMP.b #$00 : BNE + ; No Shield LDA.b #$2D : RTL @@ -101,8 +97,7 @@ RTL LDA $7EF340 : INC : LSR CMP.l ProgressiveBowLimit : !BLT + LDA.l ProgressiveBowReplacement - JSL.l GetSpriteID - RTL + JMP GetSpriteID .skipbowlimit : LDA $7EF340 : INC : LSR + : CMP.b #$00 : BNE + ; No Bow LDA.b #$29 : RTL @@ -190,8 +185,7 @@ GetSpritePalette: .bottle PHA : JSR.w CountBottles : CMP.l BottleLimit : !BLT + PLA : LDA.l BottleLimitReplacement - JSL.l GetSpritePalette - RTL + JMP GetSpritePalette + PLA : .notBottle PHX @@ -206,8 +200,7 @@ RTL LDA $7EF359 CMP.l ProgressiveSwordLimit : !BLT + ; Progressive Sword Limit LDA.l ProgressiveSwordReplacement - JSL.l GetSpritePalette - RTL + JMP GetSpritePalette + : CMP.b #$00 : BNE + ; No Sword LDA.b #$04 : RTL + : CMP.b #$01 : BNE + ; Fighter Sword @@ -220,8 +213,7 @@ RTL LDA !PROGRESSIVE_SHIELD : AND #$C0 : LSR #6 CMP.l ProgressiveShieldLimit : !BLT + ; Progressive Shield Limit LDA.l ProgressiveShieldReplacement - JSL.l GetSpritePalette - RTL + JMP GetSpritePalette + : CMP.b #$00 : BNE + ; No Shield LDA.b #$04 : RTL + : CMP.b #$01 : BNE + ; Fighter Shield @@ -231,8 +223,7 @@ RTL ++ : CMP.b #$FF : BNE ++ ; Progressive Armor LDA $7EF35B : CMP.l ProgressiveArmorLimit : !BLT + ; Progressive Armor Limit LDA.l ProgressiveArmorReplacement - JSL.l GetSpritePalette - RTL + JMP GetSpritePalette + : CMP.b #$00 : BNE + ; Green Tunic LDA.b #$04 : RTL + ; Everything Else @@ -246,8 +237,7 @@ RTL LDA $7EF340 : INC : LSR CMP.l ProgressiveBowLimit : !BLT + LDA.l ProgressiveBowReplacement - JSL.l GetSpritePalette - RTL + JMP GetSpritePalette + : CMP.b #$00 : BNE + ; No Bow LDA.b #$08 : RTL + ; Any Bow @@ -330,35 +320,37 @@ IsNarrowSprite: LDA.l BottleLimitReplacement JSL.l IsNarrowSprite JMP .done - + : BRA .continue + + : JMP .continue .notBottle CMP.b #$5E : BNE ++ ; Progressive Sword LDA $7EF359 : CMP.l ProgressiveSwordLimit : !BLT + ; Progressive Sword Limit LDA.l ProgressiveSwordReplacement JSL.l IsNarrowSprite - BRA .done - + : BRA .continue - ++ : CMP.b #$5F : BNE ++ ; Progressive Shield - LDA !PROGRESSIVE_SHIELD : AND #$C0 : BNE + : SEC : BRA .done ; No Shield - LSR #6 : CMP.l ProgressiveShieldLimit : !BLT + ; Progressive Shield Limit + JMP .done + + : JMP .continue + ++ CMP.b #$5F : BNE ++ ; Progressive Shield + LDA !PROGRESSIVE_SHIELD : AND #$C0 : BNE + : SEC : JMP .done ; No Shield + + : LSR #6 : CMP.l ProgressiveShieldLimit : !BLT .continue LDA.l ProgressiveShieldReplacement JSL.l IsNarrowSprite - BRA .done - + - ;LDA $7EF35A : BNE + : SEC : BRA .done : +; No Shield - BRA .false ; Everything Else + JMP .done ++ CMP.b #$60 : BNE ++ ; Progressive Armor - LDA $7EF35B : CMP.l ProgressiveArmorLimit : !BLT + ; Progressive Armor Limit + LDA $7EF35B : CMP.l ProgressiveArmorLimit : !BLT .continue LDA.l ProgressiveArmorReplacement JSL.l IsNarrowSprite - BRA .done + JMP .done + ++ CMP.b #$62 : BNE ++ ; RNG Item (Single) - JSL.l GetRNGItemSingle : BRA .continue + JSL.l GetRNGItemSingle : JMP .continue ++ CMP.b #$63 : BNE ++ ; RNG Item (Multi) JSL.l GetRNGItemMulti - ++ - + ++ CMP.b #$64 : BEQ + ; Progressive Bow + CMP.b #$65 : BNE .continue ; Progressive Bow (alt) + + : LDA $7EF340 : INC : LSR + CMP.l ProgressiveBowLimit : !BLT + + LDA.l ProgressiveBowReplacement + JSL.l IsNarrowSprite + JMP .done .continue ;--------