From 3b3a153ebe14d2f60037aae4acd94878cd64d43c Mon Sep 17 00:00:00 2001 From: codemann8 Date: Sun, 31 Dec 2023 03:11:25 -0600 Subject: [PATCH] Adding sparkles to Bonk Drop locations --- LTTP_RND_GeneralBugfixes.asm | 6 ++++ owrando.asm | 70 ++++++++++++++++++++++++++++++++++-- 2 files changed, 74 insertions(+), 2 deletions(-) diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index 964897e..6f1a630 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -572,6 +572,9 @@ Overworld_MemorizeMap16Change: org $04E879 Overworld_CheckForSpecialOverworldTrigger_Direction: +org $058008 +Sprite_SpawnSparkleGarnish: + org $05A51D Sprite_SpawnFallingItem: @@ -835,6 +838,9 @@ DiggingGameGuy_AttemptPrizeSpawn: org $1EDE28 Sprite_GetEmptyBottleIndex: ; this is totally in sprite_bees.asm +org $1EDE89 +GoldBee_Dormant_exit: + org $1EDE8A GoldBee_SpawnSelf: diff --git a/owrando.asm b/owrando.asm index 6cc3143..bb9856b 100644 --- a/owrando.asm +++ b/owrando.asm @@ -161,15 +161,22 @@ jsl.l OWWorldCheck16 : nop org $02b16e ; AND #$3F : ORA 7EF3CA and #$7f : eor #$40 : nop #2 +org $09C3C4 +jsl.l OWBonkDropPrepSprite : nop #2 +org $09C801 +jsl.l OWBonkDropPrepSprite : nop #2 +org $06D052 +jsl.l OWBonkDropSparkle org $06AD49 jsl.l OWBonkDropsOverworld : nop -org $1EDE6F +org $1EDE6A +jsl.l OWBonkDropSparkle : BNE GoldBee_Dormant_exit jsl.l OWBonkDropsUnderworld : bra + GoldBee_SpawnSelf_SetProperties: phb : lda.b #$1E : pha : plb ; switch to bank 1E jsr GoldBee_SpawnSelf+12 plb : rtl -nop #3 +nop #2 + ;Code @@ -408,6 +415,65 @@ LoadMapDarkOrMixed: dw $0400+$0210 ; bottom right } +OWBonkDropPrepSprite: +{ + LDA.b $1B : BEQ + + LDA.w $0FB5 ; what we wrote over + PHA + BRA .continue + + + STZ.w $0F20,X : STZ.w $0E30,X ; what we wrote over + PHA + + .continue + LDA.l OWFlags+1 : AND.b #!FLAG_OW_BONKDROP : BEQ .return + + LDA.w $0E20,X : CMP.b #$D9 : BNE + + LDA.b #$03 : STA.w $0F20,X + BRA .prep + + CMP.b #$B2 : BEQ .prep + PLA : RTL + + .prep + STZ.w !SPRITE_REDRAW,X + PHB : PHK : PLB : PHY + TXY : JSR OWBonkDropLookup : BCC .done + ; found match ; X = rec + 1 + INX : LDA.w OWBonkPrizeData,X : PHA + JSR OWBonkDropCollected : PLA : BCC .done + TYX : LDA.b #$01 : STA.w !SPRITE_REDRAW,X + .done + TYX : PLY : PLB + + .return + PLA : RTL +} + +OWBonkDropSparkle: +{ + LDA.l OWFlags+1 : AND.b #!FLAG_OW_BONKDROP : BEQ .nosparkle + LDA.w $0E90,X : BEQ .nosparkle + LDA.w !SPRITE_REDRAW,X : BNE .nosparkle + JSL Sprite_SpawnSparkleGarnish + ; move sparkle down 1 tile + PHX : TYX : PLY + LDA.l $7FF81E,X : CLC : ADC.b #$10 : STA.l $7FF81E,X + LDA.l $7FF85A,X : ADC.b #$00 : STA.l $7FF85A,X + PHY : TXY : PLX + + .nosparkle + LDA $0E20,X : CMP.b #$D9 : BEQ .greenrupee + CMP.b #$B2 : BEQ .goodbee + RTL + + .goodbee + LDA $0E90,X ; what we wrote over + RTL + + .greenrupee + JSL Sprite_DrawRippleIfInWater ; what we wrote over + RTL +} + OWBonkDropsUnderworld: { LDA.l OWFlags+1 : AND.b #!FLAG_OW_BONKDROP : BNE .shuffled