Adding sparkles to Bonk Drop locations

This commit is contained in:
codemann8
2023-12-31 03:11:25 -06:00
parent 81f0270ca4
commit 3b3a153ebe
2 changed files with 74 additions and 2 deletions

View File

@@ -572,6 +572,9 @@ Overworld_MemorizeMap16Change:
org $04E879 org $04E879
Overworld_CheckForSpecialOverworldTrigger_Direction: Overworld_CheckForSpecialOverworldTrigger_Direction:
org $058008
Sprite_SpawnSparkleGarnish:
org $05A51D org $05A51D
Sprite_SpawnFallingItem: Sprite_SpawnFallingItem:
@@ -835,6 +838,9 @@ DiggingGameGuy_AttemptPrizeSpawn:
org $1EDE28 org $1EDE28
Sprite_GetEmptyBottleIndex: ; this is totally in sprite_bees.asm Sprite_GetEmptyBottleIndex: ; this is totally in sprite_bees.asm
org $1EDE89
GoldBee_Dormant_exit:
org $1EDE8A org $1EDE8A
GoldBee_SpawnSelf: GoldBee_SpawnSelf:

View File

@@ -161,15 +161,22 @@ jsl.l OWWorldCheck16 : nop
org $02b16e ; AND #$3F : ORA 7EF3CA org $02b16e ; AND #$3F : ORA 7EF3CA
and #$7f : eor #$40 : nop #2 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 org $06AD49
jsl.l OWBonkDropsOverworld : nop jsl.l OWBonkDropsOverworld : nop
org $1EDE6F org $1EDE6A
jsl.l OWBonkDropSparkle : BNE GoldBee_Dormant_exit
jsl.l OWBonkDropsUnderworld : bra + jsl.l OWBonkDropsUnderworld : bra +
GoldBee_SpawnSelf_SetProperties: GoldBee_SpawnSelf_SetProperties:
phb : lda.b #$1E : pha : plb ; switch to bank 1E phb : lda.b #$1E : pha : plb ; switch to bank 1E
jsr GoldBee_SpawnSelf+12 jsr GoldBee_SpawnSelf+12
plb : rtl plb : rtl
nop #3 nop #2
+ +
;Code ;Code
@@ -408,6 +415,65 @@ LoadMapDarkOrMixed:
dw $0400+$0210 ; bottom right 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: OWBonkDropsUnderworld:
{ {
LDA.l OWFlags+1 : AND.b #!FLAG_OW_BONKDROP : BNE .shuffled LDA.l OWFlags+1 : AND.b #!FLAG_OW_BONKDROP : BNE .shuffled