More fixes
This commit is contained in:
@@ -4,19 +4,19 @@
|
|||||||
LoadLibraryItemGFX:
|
LoadLibraryItemGFX:
|
||||||
%GetPossiblyEncryptedItem(LibraryItem, SpriteItemValues)
|
%GetPossiblyEncryptedItem(LibraryItem, SpriteItemValues)
|
||||||
JSL.l ResolveLootIDLong
|
JSL.l ResolveLootIDLong
|
||||||
STA.w SpriteItemType, X
|
STA.w SpriteID, X
|
||||||
JSL.l PrepDynamicTile_loot_resolved
|
JSL.l PrepDynamicTile_loot_resolved
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
DrawLibraryItemGFX:
|
DrawLibraryItemGFX:
|
||||||
PHA
|
PHA
|
||||||
LDA.w SpriteItemType, X
|
LDA.w SpriteID, X
|
||||||
JSL.l DrawDynamicTile
|
JSL.l DrawDynamicTile
|
||||||
PLA
|
PLA
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
SetLibraryItem:
|
SetLibraryItem:
|
||||||
LDY.w SpriteItemType, X
|
LDY.w SpriteID, X
|
||||||
JSL.l ItemSet_Library ; contains thing we wrote over
|
JSL.l ItemSet_Library ; contains thing we wrote over
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
@@ -31,6 +31,7 @@ LoadBonkItemGFX_inner:
|
|||||||
LDA.b #$00 : STA.l RedrawFlag
|
LDA.b #$00 : STA.l RedrawFlag
|
||||||
JSR LoadBonkItem
|
JSR LoadBonkItem
|
||||||
STA.w SpriteItemType, X
|
STA.w SpriteItemType, X
|
||||||
|
STA.w SpriteID, X
|
||||||
JSL.l PrepDynamicTile
|
JSL.l PrepDynamicTile
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
HeartPieceGet:
|
HeartPieceGet:
|
||||||
PHX : PHY
|
PHX : PHY
|
||||||
LDY.w SpriteItemType, X ; load item value into Y register
|
LDY.w SpriteID, X ; load item value into Y register
|
||||||
BNE +
|
BNE +
|
||||||
JSL.l LoadHeartPieceRoomValue : TAY
|
JSL.l LoadHeartPieceRoomValue : TAY
|
||||||
+
|
+
|
||||||
@@ -23,7 +23,7 @@ RTL
|
|||||||
HeartContainerGet:
|
HeartContainerGet:
|
||||||
PHX : PHY
|
PHX : PHY
|
||||||
JSL.l IncrementBossSword
|
JSL.l IncrementBossSword
|
||||||
LDY.w SpriteItemType, X : BNE +
|
LDY.w SpriteID, X : BNE +
|
||||||
JSL.l LoadHeartContainerRoomValue : TAY
|
JSL.l LoadHeartContainerRoomValue : TAY
|
||||||
+
|
+
|
||||||
BRA HeartPieceGet_skipLoad
|
BRA HeartPieceGet_skipLoad
|
||||||
@@ -36,7 +36,7 @@ DrawHeartPieceGFX:
|
|||||||
JSL.l HeartPieceSpritePrep
|
JSL.l HeartPieceSpritePrep
|
||||||
JMP .done ; don't draw on the init frame
|
JMP .done ; don't draw on the init frame
|
||||||
.skipInit
|
.skipInit
|
||||||
LDA.w SpriteItemType, X ; Retrieve stored item type
|
LDA.w SpriteID, X ; Retrieve stored item type
|
||||||
.skipLoad
|
.skipLoad
|
||||||
PHA : PHX
|
PHA : PHX
|
||||||
TAX
|
TAX
|
||||||
@@ -66,7 +66,7 @@ DrawHeartContainerGFX:
|
|||||||
BRA DrawHeartPieceGFX_done ; don't draw on the init frame
|
BRA DrawHeartPieceGFX_done ; don't draw on the init frame
|
||||||
|
|
||||||
.skipInit
|
.skipInit
|
||||||
LDA.w SpriteItemType, X ; Retrieve stored item type
|
LDA.w SpriteID, X ; Retrieve stored item type
|
||||||
|
|
||||||
BRA DrawHeartPieceGFX_skipLoad
|
BRA DrawHeartPieceGFX_skipLoad
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
@@ -110,7 +110,7 @@ HeartPieceSpritePrep:
|
|||||||
LDA.b #$00 : STA.l RedrawFlag
|
LDA.b #$00 : STA.l RedrawFlag
|
||||||
JSL.l LoadHeartPieceRoomValue
|
JSL.l LoadHeartPieceRoomValue
|
||||||
JSL.l ResolveLootIDLong
|
JSL.l ResolveLootIDLong
|
||||||
STA.w SpriteItemType, X
|
STA.w SpriteID, X
|
||||||
JSL.l PrepDynamicTile_loot_resolved
|
JSL.l PrepDynamicTile_loot_resolved
|
||||||
|
|
||||||
.skip
|
.skip
|
||||||
@@ -123,7 +123,7 @@ HeartContainerSpritePrep:
|
|||||||
LDA.b #$00 : STA.l RedrawFlag
|
LDA.b #$00 : STA.l RedrawFlag
|
||||||
JSL.l LoadHeartContainerRoomValue ; load item type
|
JSL.l LoadHeartContainerRoomValue ; load item type
|
||||||
JSL.l ResolveLootIDLong
|
JSL.l ResolveLootIDLong
|
||||||
STA.w SpriteItemType, X ; Store item type
|
STA.w SpriteID, X
|
||||||
JSL.l PrepDynamicTile_loot_resolved
|
JSL.l PrepDynamicTile_loot_resolved
|
||||||
|
|
||||||
PLA
|
PLA
|
||||||
|
|||||||
@@ -490,10 +490,14 @@ RTL
|
|||||||
; LoadPowder:
|
; LoadPowder:
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
LoadPowder:
|
LoadPowder:
|
||||||
|
PHX
|
||||||
JSL.l Sprite_SpawnDynamically ; thing we wrote over
|
JSL.l Sprite_SpawnDynamically ; thing we wrote over
|
||||||
%GetPossiblyEncryptedItem(WitchItem, SpriteItemValues)
|
%GetPossiblyEncryptedItem(WitchItem, SpriteItemValues)
|
||||||
STA.w SpriteAuxTable, Y ; Store item type
|
JSL.l ResolveLootIDLong
|
||||||
JSL.l PrepDynamicTile
|
STA.w SpriteID, Y
|
||||||
|
TYX
|
||||||
|
JSL.l PrepDynamicTile_loot_resolved
|
||||||
|
PLX
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -516,12 +520,12 @@ RTL
|
|||||||
DrawPowder:
|
DrawPowder:
|
||||||
LDA.w ItemReceiptPose : BNE .defer ; defer if link is buying a potion
|
LDA.w ItemReceiptPose : BNE .defer ; defer if link is buying a potion
|
||||||
LDA.l RedrawFlag : BEQ +
|
LDA.l RedrawFlag : BEQ +
|
||||||
LDA.w SpriteAuxTable, X ; Retrieve stored item type
|
; LDA.w SpriteAuxTable, X ; Retrieve stored item type
|
||||||
JSL.l PrepDynamicTile
|
JSL.l PrepDynamicTile_loot_resolved
|
||||||
LDA.b #$00 : STA.l RedrawFlag ; reset redraw flag
|
LDA.b #$00 : STA.l RedrawFlag ; reset redraw flag
|
||||||
BRA .defer
|
BRA .defer
|
||||||
+
|
+
|
||||||
LDA.w SpriteAuxTable, X ; Retrieve stored item type
|
LDA.w SpriteID, X ; Retrieve stored item type
|
||||||
JSL.l DrawDynamicTile
|
JSL.l DrawDynamicTile
|
||||||
.defer
|
.defer
|
||||||
RTL
|
RTL
|
||||||
@@ -541,7 +545,7 @@ LoadMushroom:
|
|||||||
|
|
||||||
LDA.b #$00 : STA.l RedrawFlag
|
LDA.b #$00 : STA.l RedrawFlag
|
||||||
%GetPossiblyEncryptedItem(MushroomItem, SpriteItemValues)
|
%GetPossiblyEncryptedItem(MushroomItem, SpriteItemValues)
|
||||||
STA.w SpriteItemType, X ; Store item type
|
STA.w SpriteID,X
|
||||||
JSL.l PrepDynamicTile
|
JSL.l PrepDynamicTile
|
||||||
|
|
||||||
.skip
|
.skip
|
||||||
@@ -559,7 +563,7 @@ DrawMushroom:
|
|||||||
BRA .done ; don't draw on the init frame
|
BRA .done ; don't draw on the init frame
|
||||||
|
|
||||||
.skipInit
|
.skipInit
|
||||||
LDA.w SpriteItemType, X ; Retrieve stored item type
|
LDA.w SpriteID, X ; Retrieve stored item type
|
||||||
JSL.l DrawDynamicTile
|
JSL.l DrawDynamicTile
|
||||||
|
|
||||||
.done
|
.done
|
||||||
@@ -571,7 +575,7 @@ RTL
|
|||||||
; CollectPowder:
|
; CollectPowder:
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
CollectPowder:
|
CollectPowder:
|
||||||
LDY.w SpriteAuxTable, X ; Retrieve stored item type
|
LDY.w SpriteID, X ; Retrieve stored item type
|
||||||
BNE +
|
BNE +
|
||||||
; if for any reason the item value is 0 reload it, just in case
|
; if for any reason the item value is 0 reload it, just in case
|
||||||
%GetPossiblyEncryptedItem(WitchItem, SpriteItemValues) : TAY
|
%GetPossiblyEncryptedItem(WitchItem, SpriteItemValues) : TAY
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ endmacro
|
|||||||
%ReceiptProps($10, -4, 0, $1A, $F348, $01, skip, skip) ; 10 - Ether
|
%ReceiptProps($10, -4, 0, $1A, $F348, $01, skip, skip) ; 10 - Ether
|
||||||
%ReceiptProps($11, -4, 0, $1C, $F349, $01, skip, skip) ; 11 - Quake
|
%ReceiptProps($11, -4, 0, $1C, $F349, $01, skip, skip) ; 11 - Quake
|
||||||
%ReceiptProps($12, -4, 0, $14, $F34A, $01, skip, skip) ; 12 - Lamp
|
%ReceiptProps($12, -4, 0, $14, $F34A, $01, skip, skip) ; 12 - Lamp
|
||||||
%ReceiptProps($13, -4, 4, $19, $F34C, $01, skip, skip) ; 13 - Shovel
|
%ReceiptProps($13, -4, 4, $19, $F34C, $01, shovel, skip) ; 13 - Shovel
|
||||||
%ReceiptProps($14, -4, 0, $0C, $F34C, $02, flute_inactive, skip) ; 14 - Flute
|
%ReceiptProps($14, -4, 0, $0C, $F34C, $02, flute_inactive, skip) ; 14 - Flute
|
||||||
%ReceiptProps($15, -4, 4, $07, $F350, $01, skip, skip) ; 15 - Somaria
|
%ReceiptProps($15, -4, 4, $07, $F350, $01, skip, skip) ; 15 - Somaria
|
||||||
%ReceiptProps($16, -4, 0, $1D, $F35C, $FF, skip, bottles) ; 16 - Bottle
|
%ReceiptProps($16, -4, 0, $1D, $F35C, $FF, skip, bottles) ; 16 - Bottle
|
||||||
@@ -102,7 +102,7 @@ endmacro
|
|||||||
%ReceiptProps($4C, -4, 0, $39, $F375, $32, bombs_50, skip) ; 4C - Bomb capacity (50)
|
%ReceiptProps($4C, -4, 0, $39, $F375, $32, bombs_50, skip) ; 4C - Bomb capacity (50)
|
||||||
%ReceiptProps($4D, -4, 0, $3A, $F376, $46, arrows_70, skip) ; 4D - Arrow capacity (70)
|
%ReceiptProps($4D, -4, 0, $3A, $F376, $46, arrows_70, skip) ; 4D - Arrow capacity (70)
|
||||||
%ReceiptProps($4E, -4, 0, $3B, $F373, $80, magic_2, magic) ; 4E - 1/2 magic
|
%ReceiptProps($4E, -4, 0, $3B, $F373, $80, magic_2, magic) ; 4E - 1/2 magic
|
||||||
%ReceiptProps($4F, -4, 0, $3C, $F373, $80, magic_4, magic) ; 4F - 1/4 magic
|
%ReceiptProps($4F, -4, 0, $3C, $F373, $80, magic_4, skip) ; 4F - 1/4 magic
|
||||||
%ReceiptProps($50, -5, 4, $18, $F359, $02, master_sword_safe, skip) ; 50 - Safe master sword
|
%ReceiptProps($50, -5, 4, $18, $F359, $02, master_sword_safe, skip) ; 50 - Safe master sword
|
||||||
%ReceiptProps($51, -4, 0, $42, $F375, $FF, bombs_5, skip) ; 51 - Bomb capacity (+5)
|
%ReceiptProps($51, -4, 0, $42, $F375, $FF, bombs_5, skip) ; 51 - Bomb capacity (+5)
|
||||||
%ReceiptProps($52, -4, 0, $3E, $F375, $FF, bombs_10, skip) ; 52 - Bomb capacity (+10)
|
%ReceiptProps($52, -4, 0, $3E, $F375, $FF, bombs_10, skip) ; 52 - Bomb capacity (+10)
|
||||||
@@ -306,9 +306,9 @@ endmacro
|
|||||||
%SpriteProps($01, 0, 2, $05, $05, PalettesCustom_master_sword) ; 01 - Master sword
|
%SpriteProps($01, 0, 2, $05, $05, PalettesCustom_master_sword) ; 01 - Master sword
|
||||||
%SpriteProps($02, 0, 2, $05, $01, PalettesCustom_tempered_sword) ; 02 - Tempered sword
|
%SpriteProps($02, 0, 2, $05, $01, PalettesCustom_tempered_sword) ; 02 - Tempered sword
|
||||||
%SpriteProps($03, 0, 2, $05, $05, PalettesCustom_golden_sword) ; 03 - Golden sword
|
%SpriteProps($03, 0, 2, $05, $05, PalettesCustom_golden_sword) ; 03 - Golden sword
|
||||||
%SpriteProps($04, 0, 0, $05, $80, PalettesCustom_fighter_shield) ; 04 - Fighter shield
|
%SpriteProps($04, 0, 0, $80, $80, PalettesCustom_fighter_shield) ; 04 - Fighter shield
|
||||||
%SpriteProps($05, 2, 2, $05, $80, PalettesCustom_red_shield) ; 05 - Fire shield
|
%SpriteProps($05, 2, 2, $80, $80, PalettesCustom_red_shield) ; 05 - Fire shield
|
||||||
%SpriteProps($06, 2, 2, $05, $80, PalettesCustom_mirror_shield) ; 06 - Mirror shield
|
%SpriteProps($06, 2, 2, $80, $80, PalettesCustom_mirror_shield) ; 06 - Mirror shield
|
||||||
%SpriteProps($07, 0, 0, $01, $01, PalettesVanilla_red_melon+$0E) ; 07 - Fire rod
|
%SpriteProps($07, 0, 0, $01, $01, PalettesVanilla_red_melon+$0E) ; 07 - Fire rod
|
||||||
%SpriteProps($08, 0, 0, $02, $02, PalettesVanilla_blue_ice+$0E) ; 08 - Ice rod
|
%SpriteProps($08, 0, 0, $02, $02, PalettesVanilla_blue_ice+$0E) ; 08 - Ice rod
|
||||||
%SpriteProps($09, 0, 0, $01, $01, PalettesVanilla_red_melon+$0E) ; 09 - Hammer
|
%SpriteProps($09, 0, 0, $01, $01, PalettesVanilla_red_melon+$0E) ; 09 - Hammer
|
||||||
|
|||||||
@@ -175,6 +175,9 @@ ItemBehavior:
|
|||||||
LDA.l InventoryTracking : ORA.b #$01
|
LDA.l InventoryTracking : ORA.b #$01
|
||||||
BRA .store_inventory_tracking
|
BRA .store_inventory_tracking
|
||||||
|
|
||||||
|
.shovel
|
||||||
|
LDA.l InventoryTracking : ORA.b #$04
|
||||||
|
|
||||||
.store_inventory_tracking
|
.store_inventory_tracking
|
||||||
STA.l InventoryTracking
|
STA.l InventoryTracking
|
||||||
RTS
|
RTS
|
||||||
@@ -598,7 +601,9 @@ ResolveReceipt:
|
|||||||
RTS
|
RTS
|
||||||
|
|
||||||
ResolveLootIDLong:
|
ResolveLootIDLong:
|
||||||
|
PHY
|
||||||
JSR.w ResolveLootID
|
JSR.w ResolveLootID
|
||||||
|
PLY
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
ResolveLootID:
|
ResolveLootID:
|
||||||
|
|||||||
12
npcitems.asm
12
npcitems.asm
@@ -52,18 +52,16 @@ RTL
|
|||||||
|
|
||||||
ItemCheck_TreeKid2:
|
ItemCheck_TreeKid2:
|
||||||
LDA.l NpcFlags : AND.b #$08 : CMP.b #$08 ; FluteAardvark_InitialStateFromFluteState - 225: LDA FluteEquipment : AND.b #$03
|
LDA.l NpcFlags : AND.b #$08 : CMP.b #$08 ; FluteAardvark_InitialStateFromFluteState - 225: LDA FluteEquipment : AND.b #$03
|
||||||
|
TDC ; ?? TODO
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
ItemCheck_TreeKid3:
|
ItemCheck_TreeKid3:
|
||||||
JSL $8DD030 ; FluteAardvark_Draw - thing we wrote over
|
JSL $8DD030 ; FluteAardvark_Draw - thing we wrote over
|
||||||
LDA.l NpcFlags : AND.b #$08
|
LDA.l NpcFlags : AND.b #$08
|
||||||
BNE .done
|
BNE .done
|
||||||
|
|
||||||
LDA.b #$05
|
LDA.b #$05
|
||||||
|
|
||||||
.normal
|
.normal
|
||||||
LDA.w SpriteActivity, X
|
LDA.w SpriteActivity, X
|
||||||
|
|
||||||
.done
|
.done
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
@@ -135,7 +133,7 @@ RTL
|
|||||||
ItemSet_Mushroom:
|
ItemSet_Mushroom:
|
||||||
PHA
|
PHA
|
||||||
LDA.l NpcFlags+1 : ORA.b #$10 : STA.l NpcFlags+1
|
LDA.l NpcFlags+1 : ORA.b #$10 : STA.l NpcFlags+1
|
||||||
LDY.w SpriteItemType, X ; Retrieve stored item type
|
LDY.w SpriteID, X ; Retrieve stored item type
|
||||||
BNE +
|
BNE +
|
||||||
; if for any reason the item value is 0 reload it, just in case
|
; if for any reason the item value is 0 reload it, just in case
|
||||||
%GetPossiblyEncryptedItem(MushroomItem, SpriteItemValues) : TAY
|
%GetPossiblyEncryptedItem(MushroomItem, SpriteItemValues) : TAY
|
||||||
@@ -189,7 +187,10 @@ JumpToSplashItemTarget:
|
|||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
LoadCatfishItemGFX:
|
LoadCatfishItemGFX:
|
||||||
LDA.l $9DE185 ; location randomizer writes catfish item to
|
LDA.l $9DE185 ; location randomizer writes catfish item to
|
||||||
JML PrepDynamicTile
|
JSL.l ResolveLootIDLong
|
||||||
|
STA.w SpriteID, Y
|
||||||
|
TYX
|
||||||
|
JML.l PrepDynamicTile_loot_resolved
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
DrawThrownItem:
|
DrawThrownItem:
|
||||||
LDA.b OverworldIndex : CMP.b #$81 : BNE .catfish
|
LDA.b OverworldIndex : CMP.b #$81 : BNE .catfish
|
||||||
@@ -200,6 +201,7 @@ DrawThrownItem:
|
|||||||
.catfish
|
.catfish
|
||||||
LDA.l $9DE185 ; location randomizer writes catfish item to
|
LDA.l $9DE185 ; location randomizer writes catfish item to
|
||||||
.draw
|
.draw
|
||||||
|
LDA.w SpriteID,X
|
||||||
JML DrawDynamicTile
|
JML DrawDynamicTile
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
MarkThrownItem:
|
MarkThrownItem:
|
||||||
|
|||||||
5
ram.asm
5
ram.asm
@@ -186,7 +186,8 @@ RaceGameFlag = $7E021B ;
|
|||||||
;
|
;
|
||||||
MessageJunk = $7E0223 ; Zeroed but never used (?)
|
MessageJunk = $7E0223 ; Zeroed but never used (?)
|
||||||
;
|
;
|
||||||
CoolScratch = $7E0224 ; 0x5C bytes of free ram
|
;CoolScratch = $7E0224 ; 0x5C bytes of free ram
|
||||||
|
SpriteID = $7E0230 ;
|
||||||
;
|
;
|
||||||
ItemReceiptID = $7E02D8 ;
|
ItemReceiptID = $7E02D8 ;
|
||||||
ItemReceiptPose = $7E02DA ; $00 = No pose | $01 = One hand up | $02 = Two hands up
|
ItemReceiptPose = $7E02DA ; $00 = No pose | $01 = One hand up | $02 = Two hands up
|
||||||
@@ -329,7 +330,7 @@ SpriteOAMProperties = $7E0E40 ; h m w o o o o o | h = Harmless | m = m
|
|||||||
SpriteHitPoints = $7E0E50 ; Set from $0DB173
|
SpriteHitPoints = $7E0E50 ; Set from $0DB173
|
||||||
SpriteControl = $7E0E60 ; n i o s p p p t | n = Death animation? | i = Immune to attack/collion?
|
SpriteControl = $7E0E60 ; n i o s p p p t | n = Death animation? | i = Immune to attack/collion?
|
||||||
; o = Shadow | p = OAM prop palette | t = OAM prop name table
|
; o = Shadow | p = OAM prop palette | t = OAM prop name table
|
||||||
SpriteItemType = $7E0E80 ; Sprite Item Type. $10 bytes.
|
SpriteItemType = $7E0E80 ; Sprite Item Type. Also used for jump table local. $10 bytes.
|
||||||
;
|
;
|
||||||
SpriteSpawnStep = $7E0ED0 ; Related to enemies spawning other sprites (eg pikit, zirro)
|
SpriteSpawnStep = $7E0ED0 ; Related to enemies spawning other sprites (eg pikit, zirro)
|
||||||
;
|
;
|
||||||
|
|||||||
15
tablets.asm
15
tablets.asm
@@ -31,22 +31,19 @@ RTS
|
|||||||
SpawnTabletItem:
|
SpawnTabletItem:
|
||||||
JSL.l LoadOutdoorValue
|
JSL.l LoadOutdoorValue
|
||||||
JSL.l ResolveLootIDLong
|
JSL.l ResolveLootIDLong
|
||||||
STA.w SpriteItemType, Y
|
PHA
|
||||||
|
LDA.b #$EB : STA.l MiniGameTime
|
||||||
|
JSL Sprite_SpawnDynamically
|
||||||
|
PLA
|
||||||
|
STA.w SpriteID,Y
|
||||||
|
TYX
|
||||||
JSL.l PrepDynamicTile_loot_resolved
|
JSL.l PrepDynamicTile_loot_resolved
|
||||||
|
|
||||||
LDA.b #$EB
|
|
||||||
STA.l MiniGameTime
|
|
||||||
JSL Sprite_SpawnDynamically
|
|
||||||
|
|
||||||
LDA.w SpriteItemType, Y ; Store item type
|
|
||||||
LDA.b LinkPosX : STA.w SpritePosXLow, Y
|
LDA.b LinkPosX : STA.w SpritePosXLow, Y
|
||||||
LDA.b LinkPosX+1 : STA.w SpritePosXHigh, Y
|
LDA.b LinkPosX+1 : STA.w SpritePosXHigh, Y
|
||||||
|
|
||||||
LDA.b LinkPosY : STA.w SpritePosYLow, Y
|
LDA.b LinkPosY : STA.w SpritePosYLow, Y
|
||||||
LDA.b LinkPosY+1 : STA.w SpritePosYHigh, Y
|
LDA.b LinkPosY+1 : STA.w SpritePosYHigh, Y
|
||||||
|
|
||||||
LDA.b #$00 : STA.w SpriteLayer, Y
|
LDA.b #$00 : STA.w SpriteLayer, Y
|
||||||
|
|
||||||
LDA.b #$7F : STA.w SpriteZCoord, Y ; spawn WAY up high
|
LDA.b #$7F : STA.w SpriteZCoord, Y ; spawn WAY up high
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -46,35 +46,36 @@ RTL
|
|||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; PrepDynamicTile
|
; PrepDynamicTile
|
||||||
; in: A - Loot ID
|
; in: SpriteID,X - Loot ID
|
||||||
;-------------------------------------------------------------------------------- 20/8477
|
;-------------------------------------------------------------------------------- 20/8477
|
||||||
PrepDynamicTile:
|
PrepDynamicTile:
|
||||||
PHA : PHX : PHY : PHB
|
PHX : PHY : PHB
|
||||||
JSR.w ResolveLootID
|
JSR.w ResolveLootID
|
||||||
-
|
-
|
||||||
JSR.w LoadDynamicTileOAMTable
|
JSR.w LoadDynamicTileOAMTable
|
||||||
JSL TransferItemReceiptToBuffer_using_ReceiptID
|
JSL TransferItemReceiptToBuffer_using_ReceiptID
|
||||||
SEP #$30
|
SEP #$30
|
||||||
PLB : PLY : PLX : PLA
|
PLB : PLY : PLX
|
||||||
RTL
|
RTL
|
||||||
.loot_resolved
|
.loot_resolved
|
||||||
PHA : PHX : PHY : PHB
|
PHX : PHY : PHB
|
||||||
BRA -
|
BRA -
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; LoadDynamicTileOAMTable
|
; LoadDynamicTileOAMTable
|
||||||
; in: A - Loot ID
|
; in: SpriteID,X - Loot ID
|
||||||
|
; out: A - Loot ID
|
||||||
;-------------------------------------------------------------------------------- 20/847B
|
;-------------------------------------------------------------------------------- 20/847B
|
||||||
LoadDynamicTileOAMTable:
|
LoadDynamicTileOAMTable:
|
||||||
PHA : PHP
|
PHP
|
||||||
REP #$20
|
REP #$20
|
||||||
LDA.w #$0000 : STA.l SpriteOAM : STA.l SpriteOAM+2
|
LDA.w #$0000 : STA.l SpriteOAM : STA.l SpriteOAM+2
|
||||||
LDA.w #$0200 : STA.l SpriteOAM+6
|
LDA.w #$0200 : STA.l SpriteOAM+6
|
||||||
SEP #$20
|
SEP #$20
|
||||||
LDA.b #$24 : STA.l SpriteOAM+4
|
LDA.b #$24 : STA.l SpriteOAM+4
|
||||||
|
|
||||||
LDA.w SpriteItemType,X
|
LDA.w SpriteID,X
|
||||||
JSL.l GetSpritePalette_resolved
|
JSL.l GetSpritePalette_resolved
|
||||||
STA.l SpriteOAM+5 : STA.l SpriteOAM+13
|
STA.l SpriteOAM+5 : STA.l SpriteOAM+13
|
||||||
PHX
|
PHX
|
||||||
@@ -88,8 +89,9 @@ LoadDynamicTileOAMTable:
|
|||||||
LDA.w #$3400 : STA.l SpriteOAM+11
|
LDA.w #$3400 : STA.l SpriteOAM+11
|
||||||
|
|
||||||
.done
|
.done
|
||||||
|
TXA
|
||||||
PLX
|
PLX
|
||||||
PLP : PLA
|
PLP
|
||||||
RTS
|
RTS
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user