forked from mirror/Archipelago
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
110 lines
2.7 KiB
YAML
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
|