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

164 lines
3.9 KiB
YAML

# data for checkSetAnimalSavePoint:
# source room, animal room, saved y, saved x.
04//animalSavePointTable: |
db $c2,$c2,$18,$68 ; spool swamp cave
db $29,$2a,$38,$18 ; goron mountain east cave
db $8e,$8e,$58,$88 ; cave outside d2
db $87,$86,$48,$68 ; cave north of d1
db $28,$2a,$38,$18 ; goron mountain main
db $0f,$2f,$18,$68 ; spring banana cave
db $1f,$2f,$18,$68 ; cave below spring banana cave
db $9a,$9a,$38,$48 ; rosa portal
db $8d,$8d,$38,$38 ; d2 entrance
db $ff
# if entering certain warps blocked by snow piles, mushrooms, or bushes, set
# the animal companion to appear right outside the entrance instead of where
# you left them.
04//checkSetAnimalSavePoint: |
push bc
push de
ld a,(wActiveRoom)
ld b,a
ld a,(wRememberedCompanionRoom)
ld c,a
ld e,$02
ld hl,animalSavePointTable
call searchDoubleKey
jr nc,@done
ld de,wRememberedCompanionY
ldi a,(hl)
ld (de),a
inc de
ld a,(hl)
ld (de),a
@done:
pop de
pop bc
ld a,(wWarpDestRoom)
ret
04/461e/: call checkSetAnimalSavePoint
# vanilla game doesn't save non-natzu animal positions when it thinks you
# won't need them anymore. stop that.
05/45c9/: jr $28
# do this so that animals don't immediately stop walking onscreen when called
# on a bridge, namely the one to/from d1.
05//animalEntryIgnoreBridges: |
call $44aa ; _specialObjectGetRelativeTileWithDirectionTable
or a
ret z
cp $1a
ret z
cp $1b
ret
05/493b/: |
call animalEntryIgnoreBridges
nop
05/71ea/: |
call animalEntryIgnoreBridges
nop
# this is called to make moosh unrideable on mt cucco in the case of not
# having flute in a moosh seed.
05//checkFlute: |
ld a,TREASURE_FLUTE
jp checkTreasureObtained
05/776b/: call checkFlute
05/7a65/: call checkFlute
# animals called by flute normally veto any nonzero collision value for the
# purposes of entering a screen, but this allows double-wide bridges (1a and
# 1b) as well. this specifically fixes the problem of not being able to call
# an animal on the d1 screen, or on the bridge to the screen to the right.
# the vertical collision check isn't modified, since bridges only run
# horizontally.
09//checkFluteCollisions: |
ld b,$01
ld a,(hl)
cp $1a
jr z,@firstTileMatched
cp $1b
jr z,@firstTileMatched
or a
ret nz
@firstTileMatched:
ld a,l
add a,b
ld l,a
ld a,(hl)
cp $1a
jr z,@secondTileMatched
cp $1b
jr z,@secondTileMatched
or a
@secondTileMatched:
ld a,l
ret nz
call convertShortToLongPosition
xor a
ret
09/4d9a/: call checkFluteCollisions
09/4dad/: call checkFluteCollisions
# some of the ricky code here doesn't matter since ricky's flute isn't
# currently randomized (6cefde1), but it can stay in case things change.
# check flute icon instead of animal region for dimitri events:
# spawning dimitri + kids in sunken
09/4e4b/: |
ld a,($c6af)
cp $02
09/6f07/: |
ld a,($c6af)
cp $02
09/737d/: |
ld a,($c6af)
cp $02
# trying to leave sunken w/ dimitri
09/6f34/: |
ld a,($c6af)
cp $02
# check flute icon instead of animal region for ricky events:
# spawn ricky in pen
09/4e76/: |
ld a,(wFluteIcon)
cp $01
# say goodbye when reaching spool
09/6ccc/: |
ld a,(wFluteIcon)
cp $01
# prevent subrosian dancing from giving dimitri's flute.
09/5e37/: or $20
# stop ricky from giving his flute.
09/6e6c/: ret
0b/6b77/: |
db jumpifmemoryeq
dw wAnimalRegion
db $7f
# prevent holodrum plain from changing the animal region when entered.
09/6f79/: jr $08
# remove the moosh and dimitri events in spool swamp.
11/6572/: db $ff
11/68d4/: db $ff
# add proper treasure entries for each flute, like ages has.
15//fluteTreasureData: |
db $0a,$0b,$38,$3c
db $0a,$0c,$39,$3d
db $0a,$0d,$3a,$3e
15/5161/: |
db $80
dw fluteTreasureData
db $00