Completed Rain State fixes for Bonk Drops
This commit is contained in:
25
owrando.asm
25
owrando.asm
@@ -613,7 +613,13 @@ OWBonkDrops:
|
|||||||
LDA.w $0400 : ORA.b 1,S : STA.w $0400
|
LDA.w $0400 : ORA.b 1,S : STA.w $0400
|
||||||
BRA .increment_collection
|
BRA .increment_collection
|
||||||
++
|
++
|
||||||
LDX.b OverworldIndex : LDA.l OverworldEventDataWRAM,X : ORA.b 1,S : STA.l OverworldEventDataWRAM,X
|
LDA.b OverworldIndex
|
||||||
|
BIT.b #$40 : BEQ +
|
||||||
|
LDA.l ProgressIndicator : CMP.b #$02
|
||||||
|
LDA.b OverworldIndex : BCS ++ : AND.b #$BF
|
||||||
|
++
|
||||||
|
+
|
||||||
|
TAX : LDA.l OverworldEventDataWRAM,X : ORA.b 1,S : STA.l OverworldEventDataWRAM,X
|
||||||
|
|
||||||
.increment_collection
|
.increment_collection
|
||||||
REP #$20
|
REP #$20
|
||||||
@@ -673,13 +679,19 @@ OWBonkDropLookup:
|
|||||||
{
|
{
|
||||||
; loop thru rando bonk table to find match
|
; loop thru rando bonk table to find match
|
||||||
LDA.b OverworldIndex
|
LDA.b OverworldIndex
|
||||||
|
BIT.b #$40 : BEQ +
|
||||||
|
LDA.l ProgressIndicator : AND.b #$FF : CMP.b #$02
|
||||||
|
LDA.b OverworldIndex : BCS ++ : AND.b #$BF
|
||||||
|
++
|
||||||
|
+
|
||||||
LDX.b #((UWBonkPrizeData-OWBonkPrizeData)-sizeof(OWBonkPrizeTable)) ; 41 bonk items, 6 bytes each
|
LDX.b #((UWBonkPrizeData-OWBonkPrizeData)-sizeof(OWBonkPrizeTable)) ; 41 bonk items, 6 bytes each
|
||||||
- CMP.w OWBonkPrizeData,X : BNE +
|
- CMP.w OWBonkPrizeData,X : BNE +
|
||||||
INX
|
INX
|
||||||
|
PHA
|
||||||
LDA.w SpritePosXLow,Y : LSR A : LSR A : LSR A : LSR A
|
LDA.w SpritePosXLow,Y : LSR A : LSR A : LSR A : LSR A
|
||||||
EOR.w SpritePosYLow,Y : CMP.w OWBonkPrizeData,X : BNE ++ ; X = row + 1
|
EOR.w SpritePosYLow,Y : CMP.w OWBonkPrizeData,X : BNE ++ ; X = row + 1
|
||||||
SEC : RTS
|
SEC : RTS
|
||||||
++ DEX : LDA.b OverworldIndex
|
++ DEX : PLA
|
||||||
+ CPX.b #$00 : BNE +
|
+ CPX.b #$00 : BNE +
|
||||||
CLC : RTS
|
CLC : RTS
|
||||||
+ DEX : DEX : DEX : DEX : DEX : DEX : BRA -
|
+ DEX : DEX : DEX : DEX : DEX : DEX : BRA -
|
||||||
@@ -694,7 +706,14 @@ OWBonkDropCollected:
|
|||||||
LDA.l RoomDataWRAM[$0120].high : AND.b 3,S : BEQ .return ; S = Collected, FlagBitmask, X (row + 2)
|
LDA.l RoomDataWRAM[$0120].high : AND.b 3,S : BEQ .return ; S = Collected, FlagBitmask, X (row + 2)
|
||||||
SEC : RTS
|
SEC : RTS
|
||||||
+
|
+
|
||||||
LDX.b OverworldIndex : LDA.l OverworldEventDataWRAM,X : AND.b 3,S : BEQ .return ; S = Collected, FlagBitmask, X (row + 2)
|
LDA.b OverworldIndex
|
||||||
|
BIT.b #$40 : BEQ +
|
||||||
|
LDA.l ProgressIndicator : CMP.b #$02
|
||||||
|
LDA.b OverworldIndex : BCS ++ : AND.b #$BF
|
||||||
|
++
|
||||||
|
+
|
||||||
|
TAX
|
||||||
|
LDA.l OverworldEventDataWRAM,X : AND.b 3,S : BEQ .return ; S = Collected, FlagBitmask, X (row + 2)
|
||||||
SEC : RTS
|
SEC : RTS
|
||||||
|
|
||||||
.return
|
.return
|
||||||
|
|||||||
Reference in New Issue
Block a user