Deleted several unused modules and some commented code Reorganized some routines to clean up modules Moved some memory into mirrored WRAM Refactored NMI hook aux routine Removed old fake flipper fix
75 lines
2.4 KiB
NASM
75 lines
2.4 KiB
NASM
;================================================================================
|
|
; Randomize Book of Mudora
|
|
;--------------------------------------------------------------------------------
|
|
LoadLibraryItemGFX:
|
|
%GetPossiblyEncryptedItem(LibraryItem, SpriteItemValues)
|
|
STA.w $0E80, X ; Store item type
|
|
JSL.l PrepDynamicTile
|
|
RTL
|
|
;--------------------------------------------------------------------------------
|
|
DrawLibraryItemGFX:
|
|
PHA
|
|
LDA.w $0E80, X ; Retrieve stored item type
|
|
JSL.l DrawDynamicTile
|
|
PLA
|
|
RTL
|
|
;--------------------------------------------------------------------------------
|
|
SetLibraryItem:
|
|
LDY.w $0E80, X ; Retrieve stored item type
|
|
JSL.l ItemSet_Library ; contains thing we wrote over
|
|
RTL
|
|
;--------------------------------------------------------------------------------
|
|
|
|
;0x0087 - Hera Room w/key
|
|
;================================================================================
|
|
; Randomize Bonk Keys
|
|
;--------------------------------------------------------------------------------
|
|
LoadBonkItemGFX:
|
|
LDA.b #$08 : STA.w $0F50, X ; thing we wrote over
|
|
LoadBonkItemGFX_inner:
|
|
LDA.b #$00 : STA.l RedrawFlag
|
|
JSR LoadBonkItem
|
|
JSL.l PrepDynamicTile
|
|
RTL
|
|
;--------------------------------------------------------------------------------
|
|
DrawBonkItemGFX:
|
|
PHA
|
|
LDA.l RedrawFlag : BEQ .skipInit ; skip init if already ready
|
|
JSL.l LoadBonkItemGFX_inner
|
|
BRA .done ; don't draw on the init frame
|
|
|
|
.skipInit
|
|
JSR LoadBonkItem
|
|
JSL.l DrawDynamicTileNoShadow
|
|
|
|
.done
|
|
PLA
|
|
RTL
|
|
;--------------------------------------------------------------------------------
|
|
GiveBonkItem:
|
|
JSR LoadBonkItem
|
|
CMP.b #$24 : BNE .notKey
|
|
.key
|
|
PHY : LDY.b #$24 : JSL.l AddInventory : PLY ; do inventory processing for a small key
|
|
LDA.l CurrentSmallKeys : INC A : STA.l CurrentSmallKeys
|
|
LDA.b #$2F : JSL.l Sound_SetSfx3PanLong
|
|
JSL CountBonkItem
|
|
RTL
|
|
.notKey
|
|
PHY : TAY : JSL.l Link_ReceiveItem : PLY
|
|
JSL CountBonkItem
|
|
RTL
|
|
;--------------------------------------------------------------------------------
|
|
LoadBonkItem:
|
|
LDA.b RoomIndex ; check room ID - only bonk keys in 2 rooms so we're just checking the lower byte
|
|
CMP.b #115 : BNE + ; Desert Bonk Key
|
|
LDA.l BonkKey_Desert
|
|
BRA ++
|
|
+ : CMP.b #140 : BNE + ; GTower Bonk Key
|
|
LDA.l BonkKey_GTower
|
|
BRA ++
|
|
+
|
|
LDA.b #$24 ; default to small key
|
|
++
|
|
RTS
|