Files
dockipelago/worlds/tloz_oos/patching/asm/layouts.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

110 lines
2.7 KiB
YAML

# Data for applyAllTileSubstitutions:
# - room group
# - room ID
# - room flag mask required for the layout change to occur (00 means "always")
# - tile position as "yx"
# - tile to put in place of the original one
04//tileReplacementsTable: |
db $00,$01,$01,$52,$04 ; Permanently remove flower outside D6 when cut
/include additionalTileReplacements
db $ff
# look up tiles in custom replacement table after loading a room. the format
# is (group, room, bitmask, YX, tile ID), with ff ending the table. if the
# bitmask AND the current room flags is nonzero, the replacement is not made.
04//applyExtraTileSubstitutions: |
push bc
push de
call getThisRoomFlags
ld e,a
ld hl,tileReplacementsTable
ld a,(wActiveGroup)
ld b,a
ld a,(wActiveRoom)
ld c,a
@loop:
ldi a,(hl)
cp $ff
jr z,@done
cp b
jr nz,@groupMismatch
ldi a,(hl)
cp c
jr nz,@roomMismatch
ldi a,(hl)
or a
jr z,@alwaysOn
and e
jr z,@flagMismatch
@alwaysOn:
push de
ld d,$cf
ldi a,(hl)
ld e,a
ldi a,(hl)
ld (de),a
pop de
jr @loop
@groupMismatch:
inc hl
@roomMismatch:
inc hl
@flagMismatch:
inc hl
inc hl
jr @loop
@done:
pop de
pop bc
call $5d94 ; applyAllTileSubstitutions
ret
00/3854/: call applyExtraTileSubstitutions
# bank 21 = spring, 22 = summer, 23 = autumn, 24 = winter
# Remove most snow in Woods of Winter middle room
# 24/6c68/: db $04
# 24/6c70/: db $04
# 24/6c7e/: db $04
# 24/6c71/: db $9e,$8b
# 24/6c74/: db $c0,$04,$80,$81,$99,$9b,$70,$71
# set a room flag when the flower outside D6 is broken to make the pillar go away forever
06//checkBreakD6Flower: |
push af
push bc
ld bc,$0100
call compareRoom
pop bc
jr nz,@done
ldh a,($93) ; hBrokenTilePosition
cp $52
jr nz,@done
push hl
ld hl,$c701
set 0,(hl)
pop hl
@done:
pop af
jp setTile
06/4774/: call checkBreakD6Flower
# replace some currents in spool swamp in spring so that the player isn't
# trapped by them.
# 21/7ab1/: db $d3,$d3
# 21/7ab6/: db $d4,$d4,$d4
# 21/7abe/: db $d1
## The following portion affecting the eyeglass portal island has been disabled :
# replace the stairs outside the portal in eyeglass lake summer with a
# railing, since if the player jumps off they fall into lost woods.
# 22/791b/: db $40,$40,$40
# instead add a ledge to the left side of the platform, so that entering the
# portal without feather and resetting the season to summer isn't a softlock.
# 22/78fd/: db $37
# 22/7905/: db $25
# 22/7910/: db $47
# remove some snow outside d7 for the same reason - but off the right ledge,
# not in front of the stairs.
# 24/7910/: db $2b,$a0,$b9,$2b