Files
dockipelago/worlds/tloz_oos/patching/asm/static_items.yaml
Jonathan Tinney 7971961166
Some checks failed
Analyze modified files / flake8 (push) Failing after 2m28s
Build / build-win (push) Has been cancelled
Build / build-ubuntu2204 (push) Has been cancelled
ctest / Test C++ ubuntu-latest (push) Has been cancelled
ctest / Test C++ windows-latest (push) Has been cancelled
Analyze modified files / mypy (push) Has been cancelled
Build and Publish Docker Images / Push Docker image to Docker Hub (push) Successful in 5m4s
Native Code Static Analysis / scan-build (push) Failing after 5m2s
type check / pyright (push) Successful in 1m7s
unittests / Test Python 3.11.2 ubuntu-latest (push) Failing after 16m23s
unittests / Test Python 3.12 ubuntu-latest (push) Failing after 28m19s
unittests / Test Python 3.13 ubuntu-latest (push) Failing after 14m49s
unittests / Test hosting with 3.13 on ubuntu-latest (push) Successful in 5m0s
unittests / Test Python 3.13 macos-latest (push) Has been cancelled
unittests / Test Python 3.11 windows-latest (push) Has been cancelled
unittests / Test Python 3.13 windows-latest (push) Has been cancelled
add schedule I, sonic 1/frontiers/heroes, spirit island
2026-04-02 23:46:36 -07:00

183 lines
5.1 KiB
YAML

# Format is group,room,treasure_id,treasure_subid
0a//staticItemsReplacementsTable: |
# ------- Freestanding items -------
dwbe $00d8, locations.horonHeartPiece
dwbe $00af, locations.woodsOfWinterHeartPiece
dwbe $002d, locations.mtCuccoHeartPiece
dwbe $05b2, locations.windmillHeartPiece
dwbe $00d1, locations.graveyardHeartPiece
dwbe $00b1, locations.spoolSwampHeartPiece
dwbe $05c7, locations.templeRemainsHeartPiece
dwbe $0387, locations.mayorsHouseSecretRoom
dwbe $03a1, locations.subrosianHouse
dwbe $07e3, locations.subrosian2dCave
dwbe $0601, locations.d0HiddenBasement
dwbe $04e9, locations.makuTree3Essences
dwbe $04ea, locations.makuTree5Essences
dwbe $04ee, locations.makuTree7Essences
# ------- Digging spots -------
dwbe $0140, locations.subrosianWildsDiggingSpot
dwbe $0082, locations.spoolSwampDiggingSpot
dwbe $0106, locations.subrosiaBathOreDiggingSpot
dwbe $0157, locations.subrosiaMarketPortalOreDiggingSpot
dwbe $0147, locations.subrosiaWorkerOreDiggingSpot
dwbe $013a, locations.subrosiaTempleOreDiggingSpot
dwbe $0107, locations.subrosiaNorthernVolcanoesOreDiggingSpot
dwbe $0120, locations.subrosiaD8PortalOreDiggingSpot
dwbe $0142, locations.subrosiaWesternVolcanoesOreDiggingSpot
# ------- Drops / spawned items -------
dwbe $041b, locations.d1StalfosDrop
dwbe $0434, locations.d2RopeDrop
dwbe $047b, locations.d4PotPuzzle
dwbe $0475, locations.d4Pool
dwbe $04ab, locations.d6MagnetBallDrop
dwbe $0545, locations.d7ZolButton
dwbe $0535, locations.d7ArmosPuzzle
dwbe $053d, locations.d7DropNorthOfStairMaze
dwbe $0582, locations.d8EyeDrop
dwbe $0575, locations.d8HardhatDrop
dwbe $057f, locations.d8GhostArmosDrop
/ifdef d11
dwbe $0532, locations.d11CheckerboardDrop
dwbe $052a, locations.d11FloodedDrop
dwbe $0522, locations.d11GauntletDrop
/endif
db $ff
0a//staticItemsReplacementsLookup_body: |
push bc
ld a,(wActiveGroup)
ld b,a
ld a,(wActiveRoom)
ld c,a
ld e,$02
ld hl,staticItemsReplacementsTable
call searchDoubleKey
pop bc
ret nc
ld b,(hl) ; item id
inc hl
ld c,(hl) ; item subid
ret
00//staticItemsReplacementsLookup: |
push de
push hl
ld e,$0a
ld hl,staticItemsReplacementsLookup_body
call interBankCall
pop hl
pop de
ret
### FREESTANDING ITEMS ###########################################
# staticHeartPiece (0x26381)
09/6381/: call staticItemsReplacementsLookup
# staticGashaSeed (0x26608)
09/6608/: call staticItemsReplacementsLookup
# sidescrollingStaticGashaSeed (0x266aa)
09/66aa/: call staticItemsReplacementsLookup
### DIGGABLE ITEMS ###########################################
# Replace oreChunkDigSpot with generic behavior for randomized digging spot stuff
09/6345/handleRandomizedDigSpot: |
call getThisRoomFlags
and $20
jp nz,interactionDelete
call staticItemsReplacementsLookup
call getFreeInteractionSlot
ret nz
ld (hl),INTERACID_TREASURE
inc l
ld (hl),b
inc l
ld (hl),c
call objectCopyPosition
jp interactionDelete
# randomRingDigSpot (0x265F5)
09/65f5/: jp handleRandomizedDigSpot
### SPAWNED ITEMS (Drops, etc...) ###########################################
0b//handleRandomizedSpawnedItem: |
ld (hl),INTERACID_TREASURE
inc l
jp staticItemsReplacementsLookup
# Call our custom handler in scriptCmd_spawnItem
0b/4416/: call handleRandomizedSpawnedItem
# stop d4 pool item from incrementing subindex when it hits the water,
# instead making it change behavior to item obtained when diving
09/40f5/: |
ld a,$04 ; diving
ld l,$71 ; Interaction.var31 - collect mode
ld (hl),a
nop
nop
nop
nop
nop
nop
# Remove useless stuff that makes dive items behave wrong on small keys
09/419e/: |
db $00,$00,$00
09/41a4/: |
db $00,$00,$00,$00,$00
# for the item dropped in the room *above* the trampoline.
15/55d8/aboveD7ZolButtonId: db locations.d7ZolButton.id
15/55db/aboveD7ZolButtonSubid: db locations.d7ZolButton.subid
### MAKU TREE MISSABLE GASHA SEEDS ###########################################
# Remove access to stairs behind Farore on 2 essences (this replaces the function that adds
# a sign in front of Bipin & Blossom's house when the game is completed)
04/6189/: |
call getEssenceCount
cp $03
ret nc
jp removeFaroreStairs
04//removeFaroreStairs: |
ld hl,$cf0c
ld (hl),$b0
ret
# Remove 3 essence original item
11/6373/: db $4c,$02,$38,$10,$ff
# Add an item inside the hallway (accessible at 3+ essences) that replaces the item removed above
11//hallwayMapObjects: |
db $f2
db $6b,$19,$58,$c8
db $ff
11/611d/: dw hallwayMapObjects
# Remove 5 essences original item
11/63ad/: db $4c,$02,$68,$10,$ff
# Add an item inside the first refill pool (accessible at 5+ essences) that replaces the item removed above
11//refillPool1Objects: |
db $f2
db $6b,$19,$80,$78
db $f3,$76,$40 ; spawn usual items
db $ff
11/611f/: dw refillPool1Objects
# Remove 7 essences original item
11/6387/: db $4c,$02,$28,$10,$4c,$03,$18,$90,$ff
# Add an item inside the second refill pool (accessible at 7+ essences) that replaces the item removed above
11//refillPool2Objects: |
db $f2
db $6b,$19,$80,$78
db $f3,$60,$40 ; spawn usual items
db $ff
11/6127/: dw refillPool2Objects