Bee traps for other MW players in shops will not disguise

This commit is contained in:
codemann8
2024-04-10 03:16:38 -05:00
parent f58277eb55
commit d34cb70444

View File

@@ -636,21 +636,24 @@ Shopkeeper_DrawNextItem:
PLY PLY
STZ.b Scrap0E ; $0E will be used temporarily to store a non-zero value if VRAM slot is in OAM1 STZ.b Scrap0E ; $0E will be used temporarily to store a non-zero value if VRAM slot is in OAM1
PHX : LDA.b #0 : XBA : TXA : LSR #2 : TAX : LDA.l ShopInventoryPlayer, X : PLX : CMP.b #$0 : BNE .no_disguise
PHX : LDA.b #0 : XBA : TXA : LSR #2 : TAX : LDA.l ShopInventoryDisguise, X : PLX : CMP.b #$0 : BNE ++ PHX : LDA.b #0 : XBA : TXA : LSR #2 : TAX : LDA.l ShopInventoryDisguise, X : PLX : CMP.b #$0 : BNE ++
.no_disguise
CPX.b #$0C : BCC .not_powder CPX.b #$0C : BCC .not_powder
LDA.l PowderFlag : BRA .resolve LDA.l PowderFlag : BRA .resolve
.not_powder LDA.l ShopInventory, X ; get item id .not_powder LDA.l ShopInventory, X ; get item id
.resolve .resolve
JSL AttemptItemSubstitution JSL AttemptItemSubstitution
JSL ResolveLootIDLong JSL ResolveLootIDLong
STA.b Scrap0D
++ ++
CMP.b #$2E : BNE + : JMP .potion STA.b Scrap0D
CMP.b #$0E : BNE + : JMP .bee
+ CMP.b #$2E : BNE + : JMP .potion
+ CMP.b #$2F : BNE + : JMP .potion + CMP.b #$2F : BNE + : JMP .potion
+ CMP.b #$30 : BNE + : JMP .potion + CMP.b #$30 : BNE + : JMP .potion
+ CMP.b #$D1 : BNE + : BRA .apple + CMP.b #$D1 : BNE + : BRA .apple
+ CMP.b #$D2 : BNE + : BRA .fairy + CMP.b #$D2 : BNE + : BRA .fairy
+ CMP.b #$D6 : BNE + : BRA .goodbee + CMP.b #$D6 : BNE + : BRA .bee
+ CMP.b #$34 : BCC + : CMP.b #$36+1 : BCS + + CMP.b #$34 : BCC + : CMP.b #$36+1 : BCS +
BRA .rupee BRA .rupee
+ +
@@ -663,8 +666,8 @@ Shopkeeper_DrawNextItem:
.fairy .fairy
REP #$20 REP #$20
LDA.b FrameCounter : SEC : SBC.w #$10 : AND.w #$0020 : BEQ ++ ; alternate every 32 frames LDA.b FrameCounter : SEC : SBC.w #$10 : AND.w #$0020 : BEQ ++ ; alternate every 32 frames
LDA.l SpriteOAM++2 : SEC : SBC.w #$02 ; move fairy up 2 pixels LDA.l SpriteOAM+2 : SEC : SBC.w #$02 ; move fairy up 2 pixels
STA.l SpriteOAM++2 STA.l SpriteOAM+2
++ ++
SEP #$20 SEP #$20
LDA.b FrameCounter : AND.b #$20 : BEQ ++ ; alternate every 32 frames LDA.b FrameCounter : AND.b #$20 : BEQ ++ ; alternate every 32 frames
@@ -675,11 +678,11 @@ Shopkeeper_DrawNextItem:
LDA.b #$EA ; fairy is #$EA/EC because it's already there in VRAM LDA.b #$EA ; fairy is #$EA/EC because it's already there in VRAM
STA.b Scrap0E STA.b Scrap0E
BRA .vramLoc BRA .vramLoc
.goodbee .bee
REP #$20 REP #$20
LDA.b FrameCounter : SEC : SBC.w #$10 : AND.w #$0020 : BEQ ++ ; alternate every 32 frames LDA.b FrameCounter : SEC : SBC.w #$10 : AND.w #$0020 : BEQ ++ ; alternate every 32 frames
LDA.l SpriteOAM++2 : SEC : SBC.w #$02 ; move bee up 2 pixels LDA.l SpriteOAM+2 : SEC : SBC.w #$02 ; move bee up 2 pixels
STA.l SpriteOAM++2 STA.l SpriteOAM+2
++ ++
SEP #$20 SEP #$20
LDA.b FrameCounter : AND.b #$20 : BEQ ++ ; alternate every 32 frames LDA.b FrameCounter : AND.b #$20 : BEQ ++ ; alternate every 32 frames
@@ -708,9 +711,7 @@ Shopkeeper_DrawNextItem:
.vramLoc .vramLoc
STA.l SpriteOAM+4 STA.l SpriteOAM+4
PHX : LDA.b #0 : XBA : TXA : LSR #2 : TAX : LDA.l ShopInventoryDisguise, X : PLX : CMP.b #$0 : BNE ++
LDA.b Scrap0D LDA.b Scrap0D
++
PHX PHX
JSL GetSpritePalette_resolved JSL GetSpritePalette_resolved
PLX : CPX.b #$0C : BCC + ; if this is powder item PLX : CPX.b #$0C : BCC + ; if this is powder item
@@ -726,9 +727,7 @@ Shopkeeper_DrawNextItem:
++ ++
LDA.b #$00 : STA.l SpriteOAM+6 LDA.b #$00 : STA.l SpriteOAM+6
PHX : LDA.b #0 : XBA : TXA : LSR #2 : TAX : LDA.l ShopInventoryDisguise, X : PLX : CMP.b #$0 : BNE ++
LDA.b Scrap0D LDA.b Scrap0D
++
PHX PHX
TAX TAX
LDA.l SpriteProperties_standing_width,X : BEQ .narrow LDA.l SpriteProperties_standing_width,X : BEQ .narrow