Dont replace multiworld items
This commit is contained in:
@@ -95,7 +95,8 @@ db #$20, #$19, #$08, #$31 ; year/month/day
|
|||||||
!MULTIWORLD_RECEIVING_ITEM = "$7EC057" ; 0 = default | 1 = receiving
|
!MULTIWORLD_RECEIVING_ITEM = "$7EC057" ; 0 = default | 1 = receiving
|
||||||
!MULTIWORLD_HUD_CHARACTER_DATA = "$7EC058" ; 0x40 bytes
|
!MULTIWORLD_HUD_CHARACTER_DATA = "$7EC058" ; 0x40 bytes
|
||||||
!MULTIWORLD_ITEM_PLAYER_ID = "$7EC098" ; 0 = disabled
|
!MULTIWORLD_ITEM_PLAYER_ID = "$7EC098" ; 0 = disabled
|
||||||
!MULTIWORLD_HUD_TIMER = "$7EC099"
|
!MULTIWORLD_SPRITEITEM_PLAYER_ID = "$7EC099"
|
||||||
|
!MULTIWORLD_HUD_TIMER = "$7EC09A"
|
||||||
!MULTIWORLD_HUD_DELAY = "#120"
|
!MULTIWORLD_HUD_DELAY = "#120"
|
||||||
!Dungeon_ChestData = "$01E96C"
|
!Dungeon_ChestData = "$01E96C"
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
; Randomize Book of Mudora
|
; Randomize Book of Mudora
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
LoadLibraryItemGFX:
|
LoadLibraryItemGFX:
|
||||||
|
LDA.l LibraryItem_Player : STA !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||||
%GetPossiblyEncryptedItem(LibraryItem, SpriteItemValues)
|
%GetPossiblyEncryptedItem(LibraryItem, SpriteItemValues)
|
||||||
STA $0E80, X ; Store item type
|
STA $0E80, X ; Store item type
|
||||||
JSL.l PrepDynamicTile
|
JSL.l PrepDynamicTile
|
||||||
@@ -32,6 +33,7 @@ LoadBonkItemGFX:
|
|||||||
LDA.b #$08 : STA $0F50, X ; thing we wrote over
|
LDA.b #$08 : STA $0F50, X ; thing we wrote over
|
||||||
LoadBonkItemGFX_inner:
|
LoadBonkItemGFX_inner:
|
||||||
LDA.b #$00 : STA !REDRAW
|
LDA.b #$00 : STA !REDRAW
|
||||||
|
JSR LoadBonkItem_Player : STA !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||||
JSR LoadBonkItem
|
JSR LoadBonkItem
|
||||||
JSL.l PrepDynamicTile
|
JSL.l PrepDynamicTile
|
||||||
RTL
|
RTL
|
||||||
@@ -52,6 +54,7 @@ DrawBonkItemGFX:
|
|||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
GiveBonkItem:
|
GiveBonkItem:
|
||||||
|
JSR LoadBonkItem_Player : STA !MULTIWORLD_ITEM_PLAYER_ID
|
||||||
JSR LoadBonkItem
|
JSR LoadBonkItem
|
||||||
CMP #$24 : BNE .notKey
|
CMP #$24 : BNE .notKey
|
||||||
.key
|
.key
|
||||||
@@ -60,19 +63,6 @@ GiveBonkItem:
|
|||||||
LDA.b #$2F : JSL.l Sound_SetSfx3PanLong
|
LDA.b #$2F : JSL.l Sound_SetSfx3PanLong
|
||||||
RTL
|
RTL
|
||||||
.notKey
|
.notKey
|
||||||
PHA
|
|
||||||
LDA $A0
|
|
||||||
CMP #115 : BNE + ; Desert Bonk Key
|
|
||||||
LDA.l BonkKey_Desert_Player
|
|
||||||
BRA ++
|
|
||||||
+ : CMP #140 : BNE + ; GTower Bonk Key
|
|
||||||
LDA.l BonkKey_GTower_Player
|
|
||||||
BRA ++
|
|
||||||
+
|
|
||||||
LDA.b #$00
|
|
||||||
++
|
|
||||||
STA !MULTIWORLD_ITEM_PLAYER_ID
|
|
||||||
PLA
|
|
||||||
PHY : TAY : JSL.l Link_ReceiveItem : PLY
|
PHY : TAY : JSL.l Link_ReceiveItem : PLY
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
@@ -82,9 +72,22 @@ LoadBonkItem:
|
|||||||
LDA.l BonkKey_Desert
|
LDA.l BonkKey_Desert
|
||||||
BRA ++
|
BRA ++
|
||||||
+ : CMP #140 : BNE + ; GTower Bonk Key
|
+ : CMP #140 : BNE + ; GTower Bonk Key
|
||||||
LDA.l BonkKey_GTower
|
LDA.l BonkKey_GTower
|
||||||
BRA ++
|
BRA ++
|
||||||
+
|
+
|
||||||
LDA.b #$24 ; default to small key
|
LDA.b #$24 ; default to small key
|
||||||
++
|
++
|
||||||
RTS
|
RTS
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
LoadBonkItem_Player:
|
||||||
|
LDA $A0 ; check room ID - only bonk keys in 2 rooms so we're just checking the lower byte
|
||||||
|
CMP #115 : BNE + ; Desert Bonk Key
|
||||||
|
LDA.l BonkKey_Desert_Player
|
||||||
|
BRA ++
|
||||||
|
+ : CMP #140 : BNE + ; GTower Bonk Key
|
||||||
|
LDA.l BonkKey_GTower_Player
|
||||||
|
BRA ++
|
||||||
|
+
|
||||||
|
LDA.b #$00
|
||||||
|
++
|
||||||
|
RTS
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
!HEART_REDRAW = "$7F5000"
|
!HEART_REDRAW = "$7F5000"
|
||||||
LoadCatfishItemGFX:
|
LoadCatfishItemGFX:
|
||||||
|
LDA.l CatfishItem_Player : STA !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||||
LDA.l $1DE185 ; location randomizer writes catfish item to
|
LDA.l $1DE185 ; location randomizer writes catfish item to
|
||||||
JSL.l PrepDynamicTile
|
JSL.l PrepDynamicTile
|
||||||
RTL
|
RTL
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ SpawnHauntedGroveItem:
|
|||||||
LDA $8A : CMP.b #$2A : BEQ + : RTL : + ; Skip if not the haunted grove
|
LDA $8A : CMP.b #$2A : BEQ + : RTL : + ; Skip if not the haunted grove
|
||||||
LDA $1B : BEQ + : RTL : + ; Skip if indoors
|
LDA $1B : BEQ + : RTL : + ; Skip if indoors
|
||||||
|
|
||||||
|
LDA.l HauntedGroveItem_Player : STA !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||||
%GetPossiblyEncryptedItem(HauntedGroveItem, HeartPieceOutdoorValues)
|
%GetPossiblyEncryptedItem(HauntedGroveItem, HeartPieceOutdoorValues)
|
||||||
JSL.l PrepDynamicTile
|
JSL.l PrepDynamicTile
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ HeartPieceGet:
|
|||||||
|
|
||||||
.skipLoad
|
.skipLoad
|
||||||
|
|
||||||
JSL.l HeartPieceGetPlayer
|
JSL.l HeartPieceGetPlayer : STA !MULTIWORLD_ITEM_PLAYER_ID
|
||||||
|
|
||||||
STZ $02E9 ; 0 = Receiving item from an NPC or message
|
STZ $02E9 ; 0 = Receiving item from an NPC or message
|
||||||
|
|
||||||
@@ -162,6 +162,7 @@ HeartPieceSpritePrep:
|
|||||||
LDA $5D : CMP #$14 : BEQ .skip ; skip if we're mid-mirror
|
LDA $5D : CMP #$14 : BEQ .skip ; skip if we're mid-mirror
|
||||||
|
|
||||||
LDA #$00 : STA !REDRAW
|
LDA #$00 : STA !REDRAW
|
||||||
|
JSL.l HeartPieceGetPlayer : STA !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||||
JSL.l LoadHeartPieceRoomValue ; load item type
|
JSL.l LoadHeartPieceRoomValue ; load item type
|
||||||
STA $0E80, X ; Store item type
|
STA $0E80, X ; Store item type
|
||||||
JSL.l PrepDynamicTile
|
JSL.l PrepDynamicTile
|
||||||
@@ -175,6 +176,7 @@ HeartContainerSpritePrep:
|
|||||||
PHA
|
PHA
|
||||||
|
|
||||||
LDA #$00 : STA !REDRAW
|
LDA #$00 : STA !REDRAW
|
||||||
|
JSL.l HeartPieceGetPlayer : STA !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||||
JSL.l LoadHeartContainerRoomValue ; load item type
|
JSL.l LoadHeartContainerRoomValue ; load item type
|
||||||
STA $0E80, X ; Store item type
|
STA $0E80, X ; Store item type
|
||||||
JSL.l PrepDynamicTile
|
JSL.l PrepDynamicTile
|
||||||
@@ -564,7 +566,6 @@ HeartPieceGetPlayer:
|
|||||||
.done
|
.done
|
||||||
AND.w #$00FF ; the loads are words but the values are 1-byte so we need to clear the top half of the accumulator - no guarantee it was 8-bit before
|
AND.w #$00FF ; the loads are words but the values are 1-byte so we need to clear the top half of the accumulator - no guarantee it was 8-bit before
|
||||||
PLP
|
PLP
|
||||||
STA !MULTIWORLD_ITEM_PLAYER_ID
|
|
||||||
PLY
|
PLY
|
||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -961,6 +961,7 @@ RTL
|
|||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
LoadPowder:
|
LoadPowder:
|
||||||
JSL.l Sprite_SpawnDynamically ; thing we wrote over
|
JSL.l Sprite_SpawnDynamically ; thing we wrote over
|
||||||
|
LDA.l WitchItem_Player : STA !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||||
%GetPossiblyEncryptedItem(WitchItem, SpriteItemValues)
|
%GetPossiblyEncryptedItem(WitchItem, SpriteItemValues)
|
||||||
STA $0DA0, Y ; Store item type
|
STA $0DA0, Y ; Store item type
|
||||||
JSL.l PrepDynamicTile
|
JSL.l PrepDynamicTile
|
||||||
@@ -988,6 +989,7 @@ RTL
|
|||||||
DrawPowder:
|
DrawPowder:
|
||||||
LDA $02DA : BNE .defer ; defer if link is buying a potion
|
LDA $02DA : BNE .defer ; defer if link is buying a potion
|
||||||
LDA.l !REDRAW : BEQ +
|
LDA.l !REDRAW : BEQ +
|
||||||
|
LDA.l WitchItem_Player : STA !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||||
LDA $0DA0, X ; Retrieve stored item type
|
LDA $0DA0, X ; Retrieve stored item type
|
||||||
JSL.l PrepDynamicTile
|
JSL.l PrepDynamicTile
|
||||||
LDA #$00 : STA.l !REDRAW ; reset redraw flag
|
LDA #$00 : STA.l !REDRAW ; reset redraw flag
|
||||||
@@ -1014,6 +1016,7 @@ LoadMushroom:
|
|||||||
LDA $5D : CMP #$14 : BEQ .skip ; skip if we're mid-mirror
|
LDA $5D : CMP #$14 : BEQ .skip ; skip if we're mid-mirror
|
||||||
|
|
||||||
LDA #$00 : STA !REDRAW
|
LDA #$00 : STA !REDRAW
|
||||||
|
LDA.l MushroomItem_Player : STA !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||||
%GetPossiblyEncryptedItem(MushroomItem, SpriteItemValues)
|
%GetPossiblyEncryptedItem(MushroomItem, SpriteItemValues)
|
||||||
STA $0E80, X ; Store item type
|
STA $0E80, X ; Store item type
|
||||||
JSL.l PrepDynamicTile
|
JSL.l PrepDynamicTile
|
||||||
|
|||||||
76
newitems.asm
76
newitems.asm
@@ -443,42 +443,30 @@ AddReceivedItemExpanded:
|
|||||||
PLA
|
PLA
|
||||||
++
|
++
|
||||||
|
|
||||||
CMP.b #$16 : BNE ++ ; Bottle
|
CMP.b #$16 : BEQ .bottle ; Bottle
|
||||||
JSR.w CountBottles : CMP.l BottleLimit : !BLT +++
|
CMP.b #$2B : BEQ .bottle ; Red Potion w/bottle
|
||||||
LDA.l BottleLimitReplacement : STA $02D8
|
CMP.b #$2C : BEQ .bottle ; Green Potion w/bottle
|
||||||
+++ : BRL .done
|
CMP.b #$2D : BEQ .bottle ; Blue Potion w/bottle
|
||||||
++ : CMP.b #$2B : BNE ++ ; Red Potion w/bottle
|
CMP.b #$3C : BEQ .bottle ; Bee w/bottle
|
||||||
JSR.w CountBottles : CMP.l BottleLimit : !BLT +++
|
CMP.b #$3D : BEQ .bottle ; Fairy w/bottle
|
||||||
LDA.l BottleLimitReplacement : STA $02D8
|
CMP.b #$48 : BEQ .bottle ; Gold Bee w/bottle
|
||||||
+++ : BRL .done
|
BRA .notBottle
|
||||||
++ : CMP.b #$2C : BNE ++ ; Green Potion w/bottle
|
.bottle
|
||||||
JSR.w CountBottles : CMP.l BottleLimit : !BLT +++
|
JSR.w CountBottles : CMP.l BottleLimit : !BLT +++
|
||||||
LDA.l BottleLimitReplacement : STA $02D8
|
LDA !MULTIWORLD_ITEM_PLAYER_ID : BNE +++
|
||||||
+++ : BRL .done
|
LDA.l BottleLimitReplacement : STA $02D8
|
||||||
++ : CMP.b #$2D : BNE ++ ; Blue Potion w/bottle
|
+++ : BRL .done
|
||||||
JSR.w CountBottles : CMP.l BottleLimit : !BLT +++
|
.notBottle
|
||||||
LDA.l BottleLimitReplacement : STA $02D8
|
|
||||||
+++ : BRL .done
|
|
||||||
++ : CMP.b #$3C : BNE ++ ; Bee w/bottle
|
|
||||||
JSR.w CountBottles : CMP.l BottleLimit : !BLT +++
|
|
||||||
LDA.l BottleLimitReplacement : STA $02D8
|
|
||||||
+++ : BRL .done
|
|
||||||
++ : CMP.b #$3D : BNE ++ ; Fairy w/bottle
|
|
||||||
JSR.w CountBottles : CMP.l BottleLimit : !BLT +++
|
|
||||||
LDA.l BottleLimitReplacement : STA $02D8
|
|
||||||
+++ : BRL .done
|
|
||||||
++ : CMP.b #$48 : BNE ++ ; Gold Bee w/bottle
|
|
||||||
JSR.w CountBottles : CMP.l BottleLimit : !BLT +++
|
|
||||||
LDA.l BottleLimitReplacement : STA $02D8
|
|
||||||
+++ : BRL .done
|
|
||||||
++ : CMP.b #$4E : BNE ++ ; Progressive Magic
|
++ : CMP.b #$4E : BNE ++ ; Progressive Magic
|
||||||
LDA $7EF37B : BEQ +++
|
LDA $7EF37B : BEQ +++
|
||||||
LDA.b #$4F : STA $02D8
|
LDA.b #$4F : STA $02D8
|
||||||
+++ : BRL .done
|
+++ : BRL .done
|
||||||
++ : CMP.b #$5E : BNE ++ ; Progressive Sword
|
++ : CMP.b #$5E : BNE ++ ; Progressive Sword
|
||||||
|
LDA !MULTIWORLD_ITEM_PLAYER_ID : BNE +
|
||||||
LDA $7EF359 : CMP.l ProgressiveSwordLimit : !BLT +
|
LDA $7EF359 : CMP.l ProgressiveSwordLimit : !BLT +
|
||||||
LDA.l ProgressiveSwordReplacement : STA $02D8 : BRL .done
|
LDA.l ProgressiveSwordReplacement : STA $02D8 : BRL .done
|
||||||
+ : CMP.b #$00 : BNE + ; No Sword
|
+
|
||||||
|
LDA $7EF359 : CMP.b #$00 : BNE + ; No Sword
|
||||||
LDA.b #$49 : STA $02D8 : BRL .done
|
LDA.b #$49 : STA $02D8 : BRL .done
|
||||||
+ : CMP.b #$01 : BNE + ; Fighter Sword
|
+ : CMP.b #$01 : BNE + ; Fighter Sword
|
||||||
LDA.b #$50 : STA $02D8 : BRL .done
|
LDA.b #$50 : STA $02D8 : BRL .done
|
||||||
@@ -487,25 +475,31 @@ AddReceivedItemExpanded:
|
|||||||
+ ; Everything Else
|
+ ; Everything Else
|
||||||
LDA.b #$03 : STA $02D8 : BRL .done
|
LDA.b #$03 : STA $02D8 : BRL .done
|
||||||
++ : CMP.b #$5F : BNE ++ ; Progressive Shield
|
++ : CMP.b #$5F : BNE ++ ; Progressive Shield
|
||||||
|
LDA !MULTIWORLD_ITEM_PLAYER_ID : BEQ +
|
||||||
|
LDA !PROGRESSIVE_SHIELD : AND.b #$C0 : BNE +++ ; No Shield
|
||||||
|
LDA.b #$04 : STA $02D8 : BRL .done
|
||||||
|
+++ : CMP.b #$40 : BNE +++ ; Fighter Shield
|
||||||
|
LDA.b #$05 : STA $02D8 : BRL .done
|
||||||
|
+++ ; Everything Else
|
||||||
|
LDA.b #$06 : STA $02D8 : BRL .done
|
||||||
|
+
|
||||||
LDA !PROGRESSIVE_SHIELD : LSR #6 : CMP.l ProgressiveShieldLimit : !BLT +
|
LDA !PROGRESSIVE_SHIELD : LSR #6 : CMP.l ProgressiveShieldLimit : !BLT +
|
||||||
LDA.l ProgressiveShieldReplacement : STA $02D8 : BRL .done
|
LDA.l ProgressiveShieldReplacement : STA $02D8 : BRL .done
|
||||||
+
|
+
|
||||||
LDA !PROGRESSIVE_SHIELD : AND.b #$C0 : BNE + ; No Shield
|
LDA !PROGRESSIVE_SHIELD : AND.b #$C0 : BNE + ; No Shield
|
||||||
LDA.b #$04 : STA $02D8
|
LDA.b #$04 : BRA .shielddone
|
||||||
LDA !MULTIWORLD_ITEM_PLAYER_ID : BEQ +++ : BRL .done : +++
|
|
||||||
LDA !PROGRESSIVE_SHIELD : !ADD.b #$40 : STA !PROGRESSIVE_SHIELD : BRL .done
|
|
||||||
+ : CMP.b #$40 : BNE + ; Fighter Shield
|
+ : CMP.b #$40 : BNE + ; Fighter Shield
|
||||||
LDA.b #$05 : STA $02D8
|
LDA.b #$05 : BRA .shielddone
|
||||||
LDA !MULTIWORLD_ITEM_PLAYER_ID : BEQ +++ : BRL .done : +++
|
|
||||||
LDA !PROGRESSIVE_SHIELD : !ADD.b #$40 : STA !PROGRESSIVE_SHIELD : BRL .done
|
|
||||||
+ ; Everything Else
|
+ ; Everything Else
|
||||||
LDA.b #$06 : STA $02D8
|
LDA.b #$06
|
||||||
LDA !MULTIWORLD_ITEM_PLAYER_ID : BEQ +++ : BRL .done : +++
|
.shielddone : STA $02D8
|
||||||
LDA !PROGRESSIVE_SHIELD : !ADD.b #$40 : STA !PROGRESSIVE_SHIELD : BRL .done
|
LDA !PROGRESSIVE_SHIELD : !ADD.b #$40 : STA !PROGRESSIVE_SHIELD : BRL .done
|
||||||
++ : CMP.b #$60 : BNE ++ ; Progressive Armor
|
++ : CMP.b #$60 : BNE ++ ; Progressive Armor
|
||||||
|
LDA !MULTIWORLD_ITEM_PLAYER_ID : BNE +
|
||||||
LDA $7EF35B : CMP.l ProgressiveArmorLimit : !BLT +
|
LDA $7EF35B : CMP.l ProgressiveArmorLimit : !BLT +
|
||||||
LDA.l ProgressiveArmorReplacement : STA $02D8 : BRL .done
|
LDA.l ProgressiveArmorReplacement : STA $02D8 : BRL .done
|
||||||
+ : CMP.b #$00 : BNE + ; No Armor
|
+
|
||||||
|
LDA $7EF35B : CMP.b #$00 : BNE + ; No Armor
|
||||||
LDA.b #$22 : STA $02D8 : BRL .done
|
LDA.b #$22 : STA $02D8 : BRL .done
|
||||||
+ ; Everything Else
|
+ ; Everything Else
|
||||||
LDA.b #$23 : STA $02D8 : BRL .done
|
LDA.b #$23 : STA $02D8 : BRL .done
|
||||||
@@ -515,9 +509,11 @@ AddReceivedItemExpanded:
|
|||||||
+ ; Everything Else
|
+ ; Everything Else
|
||||||
LDA.b #$1C : STA $02D8 : BRL .done
|
LDA.b #$1C : STA $02D8 : BRL .done
|
||||||
++ : CMP.b #$64 : BNE ++ : -- ; Progressive Bow
|
++ : CMP.b #$64 : BNE ++ : -- ; Progressive Bow
|
||||||
|
LDA !MULTIWORLD_ITEM_PLAYER_ID : BNE +
|
||||||
LDA $7EF340 : INC : LSR : CMP.l ProgressiveBowLimit : !BLT +
|
LDA $7EF340 : INC : LSR : CMP.l ProgressiveBowLimit : !BLT +
|
||||||
LDA.l ProgressiveBowReplacement : STA $02D8 : BRL .done
|
LDA.l ProgressiveBowReplacement : STA $02D8 : BRL .done
|
||||||
+ : CMP.b #$00 : BNE + ; No Bow
|
+
|
||||||
|
LDA $7EF340 : INC : LSR : CMP.b #$00 : BNE + ; No Bow
|
||||||
LDA.b #$3A : STA $02D8 : BRA .done
|
LDA.b #$3A : STA $02D8 : BRA .done
|
||||||
+ ; Any Bow
|
+ ; Any Bow
|
||||||
LDA.b #$3B : STA $02D8 : BRA .done
|
LDA.b #$3B : STA $02D8 : BRA .done
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ RTL
|
|||||||
SpawnTabletItem:
|
SpawnTabletItem:
|
||||||
; JSL.l HeartPieceGet
|
; JSL.l HeartPieceGet
|
||||||
;RTL
|
;RTL
|
||||||
|
JSL.l HeartPieceGetPlayer : STA !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||||
JSL.l LoadOutdoorValue
|
JSL.l LoadOutdoorValue
|
||||||
PHA
|
PHA
|
||||||
JSL.l PrepDynamicTile
|
JSL.l PrepDynamicTile
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ GetSpriteID:
|
|||||||
BRA .normal
|
BRA .normal
|
||||||
.bottle
|
.bottle
|
||||||
PHA : JSR.w CountBottles : CMP.l BottleLimit : !BLT +
|
PHA : JSR.w CountBottles : CMP.l BottleLimit : !BLT +
|
||||||
|
LDA !MULTIWORLD_SPRITEITEM_PLAYER_ID : BNE +
|
||||||
PLA : LDA.l BottleLimitReplacement
|
PLA : LDA.l BottleLimitReplacement
|
||||||
JSL.l GetSpriteID
|
JSL.l GetSpriteID
|
||||||
RTL
|
RTL
|
||||||
@@ -55,6 +56,7 @@ RTL
|
|||||||
++ CMP.b #$FB : BNE ++ ; RNG Item (Multi)
|
++ CMP.b #$FB : BNE ++ ; RNG Item (Multi)
|
||||||
JSL.l GetRNGItemMulti : JMP GetSpriteID
|
JSL.l GetRNGItemMulti : JMP GetSpriteID
|
||||||
++ CMP.b #$FD : BNE ++ ; Progressive Armor
|
++ CMP.b #$FD : BNE ++ ; Progressive Armor
|
||||||
|
LDA !MULTIWORLD_SPRITEITEM_PLAYER_ID : BNE +
|
||||||
LDA $7EF35B : CMP.l ProgressiveArmorLimit : !BLT + ; Progressive Armor Limit
|
LDA $7EF35B : CMP.l ProgressiveArmorLimit : !BLT + ; Progressive Armor Limit
|
||||||
LDA.l ProgressiveArmorReplacement
|
LDA.l ProgressiveArmorReplacement
|
||||||
JSL.l GetSpriteID
|
JSL.l GetSpriteID
|
||||||
@@ -62,11 +64,13 @@ RTL
|
|||||||
+
|
+
|
||||||
LDA.b #$04 : RTL
|
LDA.b #$04 : RTL
|
||||||
++ CMP.b #$FE : BNE ++ ; Progressive Sword
|
++ CMP.b #$FE : BNE ++ ; Progressive Sword
|
||||||
|
LDA !MULTIWORLD_SPRITEITEM_PLAYER_ID : BNE .skipswordlimit
|
||||||
LDA $7EF359
|
LDA $7EF359
|
||||||
CMP.l ProgressiveSwordLimit : !BLT + ; Progressive Sword Limit
|
CMP.l ProgressiveSwordLimit : !BLT + ; Progressive Sword Limit
|
||||||
LDA.l ProgressiveSwordReplacement
|
LDA.l ProgressiveSwordReplacement
|
||||||
JSL.l GetSpriteID
|
JSL.l GetSpriteID
|
||||||
RTL
|
RTL
|
||||||
|
.skipswordlimit : LDA $7EF359
|
||||||
+ : CMP.b #$00 : BNE + ; No Sword
|
+ : CMP.b #$00 : BNE + ; No Sword
|
||||||
LDA.b #$43 : RTL
|
LDA.b #$43 : RTL
|
||||||
+ : CMP.b #$01 : BNE + ; Fighter Sword
|
+ : CMP.b #$01 : BNE + ; Fighter Sword
|
||||||
@@ -77,11 +81,13 @@ RTL
|
|||||||
LDA.b #$46 : RTL
|
LDA.b #$46 : RTL
|
||||||
+
|
+
|
||||||
++ : CMP.b #$FF : BNE ++ ; Progressive Shield
|
++ : CMP.b #$FF : BNE ++ ; Progressive Shield
|
||||||
|
LDA !MULTIWORLD_SPRITEITEM_PLAYER_ID : BNE .skipshieldlimit
|
||||||
LDA !PROGRESSIVE_SHIELD : AND #$C0 : LSR #6
|
LDA !PROGRESSIVE_SHIELD : AND #$C0 : LSR #6
|
||||||
CMP.l ProgressiveShieldLimit : !BLT + ; Progressive Shield Limit
|
CMP.l ProgressiveShieldLimit : !BLT + ; Progressive Shield Limit
|
||||||
LDA.l ProgressiveShieldReplacement
|
LDA.l ProgressiveShieldReplacement
|
||||||
JSL.l GetSpriteID
|
JSL.l GetSpriteID
|
||||||
RTL
|
RTL
|
||||||
|
.skipshieldlimit : LDA !PROGRESSIVE_SHIELD : AND #$C0 : LSR #6
|
||||||
+ : CMP.b #$00 : BNE + ; No Shield
|
+ : CMP.b #$00 : BNE + ; No Shield
|
||||||
LDA.b #$2D : RTL
|
LDA.b #$2D : RTL
|
||||||
+ : CMP.b #$01 : BNE + ; Fighter Shield
|
+ : CMP.b #$01 : BNE + ; Fighter Shield
|
||||||
@@ -89,8 +95,14 @@ RTL
|
|||||||
+ ; Everything Else
|
+ ; Everything Else
|
||||||
LDA.b #$2E : RTL
|
LDA.b #$2E : RTL
|
||||||
++ : CMP.b #$F8 : BNE ++ ; Progressive Bow
|
++ : CMP.b #$F8 : BNE ++ ; Progressive Bow
|
||||||
LDA $7EF340
|
LDA !MULTIWORLD_SPRITEITEM_PLAYER_ID : BNE .skipbowlimit
|
||||||
CMP.b #$00 : BNE + ; No Bow
|
LDA $7EF340 : INC : LSR
|
||||||
|
CMP.l ProgressiveBowLimit : !BLT +
|
||||||
|
LDA.l ProgressiveBowReplacement
|
||||||
|
JSL.l GetSpriteID
|
||||||
|
RTL
|
||||||
|
.skipbowlimit : LDA $7EF340 : INC : LSR
|
||||||
|
+ : CMP.b #$00 : BNE + ; No Bow
|
||||||
LDA.b #$29 : RTL
|
LDA.b #$29 : RTL
|
||||||
+ ; Any Bow
|
+ ; Any Bow
|
||||||
LDA.b #$2A : RTL
|
LDA.b #$2A : RTL
|
||||||
@@ -376,6 +388,7 @@ PrepDynamicTile:
|
|||||||
JSR.w LoadDynamicTileOAMTable
|
JSR.w LoadDynamicTileOAMTable
|
||||||
JSL.l GetSpriteID ; convert loot id to sprite id
|
JSL.l GetSpriteID ; convert loot id to sprite id
|
||||||
JSL.l GetAnimatedSpriteTile_variable
|
JSL.l GetAnimatedSpriteTile_variable
|
||||||
|
LDA.b #$00 : STA !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||||
PLY : PLX : PLA
|
PLY : PLX : PLA
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
; Randomize Zora King
|
; Randomize Zora King
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
LoadZoraKingItemGFX:
|
LoadZoraKingItemGFX:
|
||||||
|
LDA.l ZoraItem_Player : STA !MULTIWORLD_SPRITEITEM_PLAYER_ID
|
||||||
LDA.l $1DE1C3 ; location randomizer writes zora item to
|
LDA.l $1DE1C3 ; location randomizer writes zora item to
|
||||||
JSL.l PrepDynamicTile
|
JSL.l PrepDynamicTile
|
||||||
RTL
|
RTL
|
||||||
|
|||||||
Reference in New Issue
Block a user