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
164 lines
3.9 KiB
YAML
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
|