diff options
| -rw-r--r-- | engine/events_2.asm | 643 | ||||
| -rw-r--r-- | main.asm | 647 | 
2 files changed, 644 insertions, 646 deletions
| diff --git a/engine/events_2.asm b/engine/events_2.asm new file mode 100644 index 000000000..accfdd451 --- /dev/null +++ b/engine/events_2.asm @@ -0,0 +1,643 @@ +; More overworld event handling. + +Function97c28: ; 97c28 +	ld hl, StatusFlags2 +	res 1, [hl] +	res 2, [hl] +	ret +; 97c30 + +Function97c30: ; 97c30 +	ld a, [$d45c] +	and a +	ret z +	ld hl, $d45e +	ld a, [hli] +	ld h, [hl] +	ld l, a +	ld a, [$d45d] +	call CallScript +	scf +	push af +	xor a +	ld hl, $d45c +	ld bc, 8 +	call ByteFill +	pop af +	ret +; 97c4f + +Function97c4f: ; 97c4f +	ld hl, $d45c +	ld a, [hl] +	and a +	ret nz +	ld [hl], 1 +	inc hl +	ld [hl], b +	inc hl +	ld [hl], e +	inc hl +	ld [hl], d +	scf +	ret +; 97c5f + +Function97c5f: ; 97c5f +	call GetFacingTileCoord +	ld [EngineBuffer1], a +	ld c, a +	callba Function1365b +	jr c, .asm_97cb9 + +	call CheckCutTreeTile +	jr nz, .whirlpool +	callba TryCutOW +	jr .asm_97cb9 + +.whirlpool +	ld a, [EngineBuffer1] +	call CheckWhirlpoolTile +	jr nz, .waterfall +	callba TryWhirlpoolOW +	jr .asm_97cb9 + +.waterfall +	ld a, [EngineBuffer1] +	call CheckWaterfallTile +	jr nz, .headbutt +	callba TryWaterfallOW +	jr .asm_97cb9 + +.headbutt +	ld a, [EngineBuffer1] +	call CheckHeadbuttTreeTile +	jr nz, .surf +	callba TryHeadbuttOW +	jr c, .asm_97cb9 +	jr .asm_97cb7 + +.surf +	callba TrySurfOW +	jr nc, .asm_97cb7 +	jr .asm_97cb9 + +.asm_97cb7 +	xor a +	ret + +.asm_97cb9 +	call PlayClickSFX +	ld a, $ff +	scf +	ret +; 97cc0 + + +Function97cc0: ; 97cc0 +; Rock Smash encounter + +	call Function968c7 +	jr c, .asm_97ce2 +	call Function97cfd +	jr nc, .asm_97ce2 +	ld hl, StatusFlags2 +	bit 2, [hl] +	jr nz, .asm_97cdb +	callba Function2a0e7 +	jr nz, .asm_97ce2 +	jr .asm_97ce6 + +.asm_97cdb +	call Function97d23 +	jr nc, .asm_97ce2 +	jr .asm_97ced + +.asm_97ce2 +	ld a, 1 +	and a +	ret + +.asm_97ce6 +	ld a, BANK(RockSmashBattleScript) +	ld hl, RockSmashBattleScript +	jr .asm_97cf4 + +.asm_97ced +	ld a, BANK(UnknownScript_0x135eb) +	ld hl, UnknownScript_0x135eb +	jr .asm_97cf4 + +.asm_97cf4 +	call CallScript +	scf +	ret +; 97cf9 + +RockSmashBattleScript: ; 97cf9 +	battlecheck +	startbattle +	returnafterbattle +	end +; 97cfd + +Function97cfd: ; 97cfd +	ld hl, StatusFlags +	bit 5, [hl] +	jr nz, .asm_97d21 +	ld a, [$d19a] +	cp $4 +	jr z, .asm_97d17 +	cp $7 +	jr z, .asm_97d17 +	callba Function149dd +	jr nc, .asm_97d21 + +.asm_97d17 +	ld a, [StandingTile] +	call CheckIceTile +	jr z, .asm_97d21 +	scf +	ret + +.asm_97d21 +	and a +	ret +; 97d23 + +Function97d23: ; 97d23 +	call Function97d64 +	ret nc +	call Function97d31 +	callba Function2a1df +	ret +; 97d31 + +Function97d31: ; 97d31 +; Pick a random mon out of ContestMons. + +.asm_97d31 +	call Random +	cp 100 << 1 +	jr nc, .asm_97d31 +	srl a + +	ld hl, ContestMons +	ld de, 4 +.CheckMon +	sub [hl] +	jr c, .GotMon +	add hl, de +	jr .CheckMon + +.GotMon +	inc hl + +; Species +	ld a, [hli] +	ld [$d22e], a + +; Min level +	ld a, [hli] +	ld d, a + +; Max level +	ld a, [hl] + +	sub d +	jr nz, .RandomLevel + +; If min and max are the same. +	ld a, d +	jr .GotLevel + +.RandomLevel +; Get a random level between the min and max. +	ld c, a +	inc c +	call Random +	ld a, [hRandomAdd] +	call SimpleDivide +	add d + +.GotLevel +	ld [CurPartyLevel], a + +	xor a +	ret +; 97d64 + +Function97d64: ; 97d64 +	ld a, [StandingTile] +	call Function188e +	ld b, $66 +	jr z, .asm_97d70 +	ld b, $33 + +.asm_97d70 +	callba Function2a124 +	callba Function2a138 +	call Random +	ld a, [hRandomAdd] +	cp b +	ret c +	ld a, 1 +	and a +	ret +; 97d87 + +ContestMons: ; 97d87 +	;   %, species,   min, max +	db 20, CATERPIE,    7, 18 +	db 20, WEEDLE,      7, 18 +	db 10, METAPOD,     9, 18 +	db 10, KAKUNA,      9, 18 +	db  5, BUTTERFREE, 12, 15 +	db  5, BEEDRILL,   12, 15 +	db 10, VENONAT,    10, 16 +	db 10, PARAS,      10, 17 +	db  5, SCYTHER,    13, 14 +	db  5, PINSIR,     13, 14 +	db -1, VENOMOTH,   30, 40 +; 97db3 + +Function97db3: ; 97db3 +	nop +	nop +	; fallthrough +; 97db5 + +Function97db5: ; 97db5 +	ld hl, StatusFlags2 +	bit 4, [hl] +	jr z, .asm_97df7 +	ld a, [PlayerState] +	cp $1 +	jr nz, .asm_97df7 +	call Function2d05 +	and a +	jr nz, .asm_97df7 +	ld hl, $dca2 +	ld a, [hli] +	ld d, a +	ld e, [hl] +	cp $ff +	jr nz, .asm_97dd8 +	ld a, e +	cp $ff +	jr z, .asm_97ddc + +.asm_97dd8 +	inc de +	ld [hl], e +	dec hl +	ld [hl], d + +.asm_97ddc +	ld a, d +	cp $4 +	jr c, .asm_97df7 +	ld a, [$dc31] +	and a +	jr nz, .asm_97df7 +	ld a, $6 +	ld [$dc31], a +	xor a +	ld [$dc32], a +	ld hl, StatusFlags2 +	res 4, [hl] +	scf +	ret + +.asm_97df7 +	xor a +	ret +; 97df9 + +Function97df9: ; 97df9 +	ld hl, $d6de +	ld de, $0006 +	ld c, $4 +	xor a +.asm_97e02 +	ld [hl], a +	add hl, de +	dec c +	jr nz, .asm_97e02 +	ret +; 97e08 + +Function97e08: ; 97e08 +	ld hl, $d6de +	xor a +.asm_97e0c +	ld [hConnectionStripLength], a +	ld a, [hl] +	and a +	jr z, .asm_97e19 +	push hl +	ld b, h +	ld c, l +	call Function97e79 +	pop hl + +.asm_97e19 +	ld de, $0006 +	add hl, de +	ld a, [hConnectionStripLength] +	inc a +	cp $4 +	jr nz, .asm_97e0c +	ret +; 97e25 + +Function97e25: ; 97e25 +	ld hl, $d6de +	ld bc, 6 +	call AddNTimes +	ld b, h +	ld c, l +	ret +; 97e31 + +Function97e31: ; 97e31 +	push bc +	push de +	call Function97e45 +	ld d, h +	ld e, l +	pop hl +	pop bc +	ret c +	ld a, b +	ld bc, $0005 +	call FarCopyBytes +	xor a +	ld [hl], a +	ret +; 97e45 + +Function97e45: ; 97e45 +	ld hl, $d6de +	ld de, $0006 +	ld c, $4 +.asm_97e4d +	ld a, [hl] +	and a +	jr z, .asm_97e57 +	add hl, de +	dec c +	jr nz, .asm_97e4d +	scf +	ret + +.asm_97e57 +	ld a, $4 +	sub c +	and a +	ret +; 97e5c + +Function97e5c: ; 97e5c +	ld hl, $d6de +	ld de, $0006 +	ld c, $4 +.asm_97e64 +	ld a, [hl] +	cp b +	jr z, .asm_97e6e +	add hl, de +	dec c +	jr nz, .asm_97e64 +	and a +	ret + +.asm_97e6e +	xor a +	ld [hl], a +	scf +	ret +; 97e72 + +Function97e72: ; 97e72 +	ld hl, $0000 +	add hl, bc +	ld [hl], 0 +	ret +; 97e79 + +Function97e79: ; 97e79 +	ld hl, $0000 +	add hl, bc +	ld a, [hl] +	cp 5 +	jr c, .asm_97e83 +	xor a + +.asm_97e83 +	ld e, a +	ld d, 0 +	ld hl, Table97e94 +	add hl, de +	add hl, de +	add hl, de +	ld a, [hli] +	push af +	ld a, [hli] +	ld h, [hl] +	ld l, a +	pop af +	rst FarCall +	ret +; 97e94 + +Table97e94: ; 97e94 +	dbw BANK(Function97eb7), Function97eb7 +	dbw BANK(Function97eb8), Function97eb8 +	dbw BANK(Function97f42), Function97f42 +	dbw BANK(Function97ef9), Function97ef9 +	dbw BANK(Function97ebc), Function97ebc +; 97ea3 + +Function97ea3: ; 97ea3 +	ld hl, $0005 +	add hl, bc +	ld a, [hl] +	pop hl +	rst JumpTable +	ret +; 97eab + +Function97eab: ; 97eab +	ld hl, $0005 +	add hl, bc +	inc [hl] +	ret +; 97eb1 + +Function97eb1: ; 97eb1 +	ld hl, $0005 +	add hl, bc +	dec [hl] +	ret +; 97eb7 + +Function97eb7: ; 97eb7 +	ret +; 97eb8 + +Function97eb8: ; 97eb8 +	call Function2f3e +	ret +; 97ebc + +Function97ebc: ; 97ebc +	call Function97ea3 +	dw Function97ec3 +	dw Function97ecd +; 97ec3 + +Function97ec3: ; 97ec3 +	ld a, [hSCY] +	ld hl, $0004 +	add hl, bc +	ld [hl], a +	call Function97eab +; 97ecd + +Function97ecd: ; 97ecd +	ld hl, $0001 +	add hl, bc +	ld a, [hl] +	dec a +	ld [hl], a +	jr z, .asm_97eee +	and $1 +	jr z, .asm_97ee4 +	ld hl, $0002 +	add hl, bc +	ld a, [hSCY] +	sub [hl] +	ld [hSCY], a +	ret + +.asm_97ee4 +	ld hl, $0002 +	add hl, bc +	ld a, [hSCY] +	add [hl] +	ld [hSCY], a +	ret + +.asm_97eee +	ld hl, $0004 +	add hl, bc +	ld a, [hl] +	ld [hSCY], a +	call Function97e72 +	ret +; 97ef9 + +Function97ef9: ; 97ef9 +	call Function97ea3 +	dw Function97f02 +	dw Function97f0a +	dw Function97f1b +; 97f02 + +Function97f02: ; 97f02 +	call Function97f38 +	jr z, Function97f2c +	call Function97eab +; 97f0a + +Function97f0a: ; 97f0a +	call Function97f38 +	jr z, Function97f2c +	call Function97eab + +	ld hl, $0002 +	add hl, bc +	ld a, [hl] +	ld [$d173], a +	ret +; 97f1b + +Function97f1b: ; 97f1b +	call Function97f38 +	jr z, Function97f2c +	call Function97eb1 + +	ld hl, $0003 +	add hl, bc +	ld a, [hl] +	ld [$d173], a +	ret +; 97f2c + +Function97f2c: ; 97f2c +	ld a, $7f +	ld [$d173], a +	ld hl, $0005 +	add hl, bc +	ld [hl], 0 +	ret +; 97f38 + +Function97f38: ; 97f38 +	push bc +	ld bc, $d4d6 +	call GetSpriteDirection +	and a +	pop bc +	ret +; 97f42 + +Function97f42: ; 97f42 +	ld de, $d4d6 +	ld a, $d +.asm_97f47 +	push af + +	ld hl, $0000 +	add hl, de +	ld a, [hl] +	and a +	jr z, .asm_97f71 + +	ld hl, $0003 +	add hl, de +	ld a, [hl] +	cp $19 +	jr nz, .asm_97f71 + +	ld hl, $000e +	add hl, de +	ld a, [hl] +	call CheckPitTile +	jr nz, .asm_97f71 + +	ld hl, $0007 +	add hl, de +	ld a, [hl] +	cp $ff +	jr nz, .asm_97f71 +	call Function3567 +	jr c, .asm_97f7c + +.asm_97f71 +	ld hl, $0028 +	add hl, de +	ld d, h +	ld e, l + +	pop af +	dec a +	jr nz, .asm_97f47 +	ret + +.asm_97f7c +	pop af +	ret +; 97f7e + @@ -85542,657 +85542,12 @@ INCBIN "baserom.gbc",$93327,$93a31 - $93327  SECTION "bank25",ROMX,BANK[$25] -  INCLUDE "maps/map_headers.asm" -  INCLUDE "maps/second_map_headers.asm" -  INCLUDE "engine/events.asm" -  INCLUDE "engine/scripting.asm" - - -Function97c28: ; 97c28 -	ld hl, StatusFlags2 -	res 1, [hl] -	res 2, [hl] -	ret -; 97c30 - -Function97c30: ; 97c30 -	ld a, [$d45c] -	and a -	ret z -	ld hl, $d45e -	ld a, [hli] -	ld h, [hl] -	ld l, a -	ld a, [$d45d] -	call CallScript -	scf -	push af -	xor a -	ld hl, $d45c -	ld bc, 8 -	call ByteFill -	pop af -	ret -; 97c4f - -Function97c4f: ; 97c4f -	ld hl, $d45c -	ld a, [hl] -	and a -	ret nz -	ld [hl], 1 -	inc hl -	ld [hl], b -	inc hl -	ld [hl], e -	inc hl -	ld [hl], d -	scf -	ret -; 97c5f - -Function97c5f: ; 97c5f -	call GetFacingTileCoord -	ld [EngineBuffer1], a -	ld c, a -	callba Function1365b -	jr c, .asm_97cb9 - -	call CheckCutTreeTile -	jr nz, .whirlpool -	callba TryCutOW -	jr .asm_97cb9 - -.whirlpool -	ld a, [EngineBuffer1] -	call CheckWhirlpoolTile -	jr nz, .waterfall -	callba TryWhirlpoolOW -	jr .asm_97cb9 - -.waterfall -	ld a, [EngineBuffer1] -	call CheckWaterfallTile -	jr nz, .headbutt -	callba TryWaterfallOW -	jr .asm_97cb9 - -.headbutt -	ld a, [EngineBuffer1] -	call CheckHeadbuttTreeTile -	jr nz, .surf -	callba TryHeadbuttOW -	jr c, .asm_97cb9 -	jr .asm_97cb7 - -.surf -	callba TrySurfOW -	jr nc, .asm_97cb7 -	jr .asm_97cb9 - -.asm_97cb7 -	xor a -	ret - -.asm_97cb9 -	call PlayClickSFX -	ld a, $ff -	scf -	ret -; 97cc0 - - -Function97cc0: ; 97cc0 -; Rock Smash encounter - -	call Function968c7 -	jr c, .asm_97ce2 -	call Function97cfd -	jr nc, .asm_97ce2 -	ld hl, StatusFlags2 -	bit 2, [hl] -	jr nz, .asm_97cdb -	callba Function2a0e7 -	jr nz, .asm_97ce2 -	jr .asm_97ce6 - -.asm_97cdb -	call Function97d23 -	jr nc, .asm_97ce2 -	jr .asm_97ced - -.asm_97ce2 -	ld a, 1 -	and a -	ret - -.asm_97ce6 -	ld a, BANK(RockSmashBattleScript) -	ld hl, RockSmashBattleScript -	jr .asm_97cf4 - -.asm_97ced -	ld a, BANK(UnknownScript_0x135eb) -	ld hl, UnknownScript_0x135eb -	jr .asm_97cf4 - -.asm_97cf4 -	call CallScript -	scf -	ret -; 97cf9 - -RockSmashBattleScript: ; 97cf9 -	battlecheck -	startbattle -	returnafterbattle -	end -; 97cfd - -Function97cfd: ; 97cfd -	ld hl, StatusFlags -	bit 5, [hl] -	jr nz, .asm_97d21 -	ld a, [$d19a] -	cp $4 -	jr z, .asm_97d17 -	cp $7 -	jr z, .asm_97d17 -	callba Function149dd -	jr nc, .asm_97d21 - -.asm_97d17 -	ld a, [StandingTile] -	call CheckIceTile -	jr z, .asm_97d21 -	scf -	ret - -.asm_97d21 -	and a -	ret -; 97d23 - -Function97d23: ; 97d23 -	call Function97d64 -	ret nc -	call Function97d31 -	callba Function2a1df -	ret -; 97d31 - -Function97d31: ; 97d31 -; Pick a random mon out of ContestMons. - -.asm_97d31 -	call Random -	cp 100 << 1 -	jr nc, .asm_97d31 -	srl a - -	ld hl, ContestMons -	ld de, 4 -.CheckMon -	sub [hl] -	jr c, .GotMon -	add hl, de -	jr .CheckMon - -.GotMon -	inc hl - -; Species -	ld a, [hli] -	ld [$d22e], a - -; Min level -	ld a, [hli] -	ld d, a - -; Max level -	ld a, [hl] - -	sub d -	jr nz, .RandomLevel - -; If min and max are the same. -	ld a, d -	jr .GotLevel - -.RandomLevel -; Get a random level between the min and max. -	ld c, a -	inc c -	call Random -	ld a, [hRandomAdd] -	call SimpleDivide -	add d - -.GotLevel -	ld [CurPartyLevel], a - -	xor a -	ret -; 97d64 - -Function97d64: ; 97d64 -	ld a, [StandingTile] -	call Function188e -	ld b, $66 -	jr z, .asm_97d70 -	ld b, $33 - -.asm_97d70 -	callba Function2a124 -	callba Function2a138 -	call Random -	ld a, [hRandomAdd] -	cp b -	ret c -	ld a, 1 -	and a -	ret -; 97d87 - -ContestMons: ; 97d87 -	;   %, species,   min, max -	db 20, CATERPIE,    7, 18 -	db 20, WEEDLE,      7, 18 -	db 10, METAPOD,     9, 18 -	db 10, KAKUNA,      9, 18 -	db  5, BUTTERFREE, 12, 15 -	db  5, BEEDRILL,   12, 15 -	db 10, VENONAT,    10, 16 -	db 10, PARAS,      10, 17 -	db  5, SCYTHER,    13, 14 -	db  5, PINSIR,     13, 14 -	db -1, VENOMOTH,   30, 40 -; 97db3 - -Function97db3: ; 97db3 -	nop -	nop -	; fallthrough -; 97db5 - -Function97db5: ; 97db5 -	ld hl, StatusFlags2 -	bit 4, [hl] -	jr z, .asm_97df7 -	ld a, [PlayerState] -	cp $1 -	jr nz, .asm_97df7 -	call Function2d05 -	and a -	jr nz, .asm_97df7 -	ld hl, $dca2 -	ld a, [hli] -	ld d, a -	ld e, [hl] -	cp $ff -	jr nz, .asm_97dd8 -	ld a, e -	cp $ff -	jr z, .asm_97ddc - -.asm_97dd8 -	inc de -	ld [hl], e -	dec hl -	ld [hl], d - -.asm_97ddc -	ld a, d -	cp $4 -	jr c, .asm_97df7 -	ld a, [$dc31] -	and a -	jr nz, .asm_97df7 -	ld a, $6 -	ld [$dc31], a -	xor a -	ld [$dc32], a -	ld hl, StatusFlags2 -	res 4, [hl] -	scf -	ret - -.asm_97df7 -	xor a -	ret -; 97df9 - -Function97df9: ; 97df9 -	ld hl, $d6de -	ld de, $0006 -	ld c, $4 -	xor a -.asm_97e02 -	ld [hl], a -	add hl, de -	dec c -	jr nz, .asm_97e02 -	ret -; 97e08 - -Function97e08: ; 97e08 -	ld hl, $d6de -	xor a -.asm_97e0c -	ld [hConnectionStripLength], a -	ld a, [hl] -	and a -	jr z, .asm_97e19 -	push hl -	ld b, h -	ld c, l -	call Function97e79 -	pop hl - -.asm_97e19 -	ld de, $0006 -	add hl, de -	ld a, [hConnectionStripLength] -	inc a -	cp $4 -	jr nz, .asm_97e0c -	ret -; 97e25 - -Function97e25: ; 97e25 -	ld hl, $d6de -	ld bc, 6 -	call AddNTimes -	ld b, h -	ld c, l -	ret -; 97e31 - -Function97e31: ; 97e31 -	push bc -	push de -	call Function97e45 -	ld d, h -	ld e, l -	pop hl -	pop bc -	ret c -	ld a, b -	ld bc, $0005 -	call FarCopyBytes -	xor a -	ld [hl], a -	ret -; 97e45 - -Function97e45: ; 97e45 -	ld hl, $d6de -	ld de, $0006 -	ld c, $4 -.asm_97e4d -	ld a, [hl] -	and a -	jr z, .asm_97e57 -	add hl, de -	dec c -	jr nz, .asm_97e4d -	scf -	ret - -.asm_97e57 -	ld a, $4 -	sub c -	and a -	ret -; 97e5c - -Function97e5c: ; 97e5c -	ld hl, $d6de -	ld de, $0006 -	ld c, $4 -.asm_97e64 -	ld a, [hl] -	cp b -	jr z, .asm_97e6e -	add hl, de -	dec c -	jr nz, .asm_97e64 -	and a -	ret - -.asm_97e6e -	xor a -	ld [hl], a -	scf -	ret -; 97e72 - -Function97e72: ; 97e72 -	ld hl, $0000 -	add hl, bc -	ld [hl], 0 -	ret -; 97e79 - -Function97e79: ; 97e79 -	ld hl, $0000 -	add hl, bc -	ld a, [hl] -	cp 5 -	jr c, .asm_97e83 -	xor a - -.asm_97e83 -	ld e, a -	ld d, 0 -	ld hl, Table97e94 -	add hl, de -	add hl, de -	add hl, de -	ld a, [hli] -	push af -	ld a, [hli] -	ld h, [hl] -	ld l, a -	pop af -	rst FarCall -	ret -; 97e94 - -Table97e94: ; 97e94 -	dbw BANK(Function97eb7), Function97eb7 -	dbw BANK(Function97eb8), Function97eb8 -	dbw BANK(Function97f42), Function97f42 -	dbw BANK(Function97ef9), Function97ef9 -	dbw BANK(Function97ebc), Function97ebc -; 97ea3 - -Function97ea3: ; 97ea3 -	ld hl, $0005 -	add hl, bc -	ld a, [hl] -	pop hl -	rst JumpTable -	ret -; 97eab - -Function97eab: ; 97eab -	ld hl, $0005 -	add hl, bc -	inc [hl] -	ret -; 97eb1 - -Function97eb1: ; 97eb1 -	ld hl, $0005 -	add hl, bc -	dec [hl] -	ret -; 97eb7 - -Function97eb7: ; 97eb7 -	ret -; 97eb8 - -Function97eb8: ; 97eb8 -	call Function2f3e -	ret -; 97ebc - -Function97ebc: ; 97ebc -	call Function97ea3 -	dw Function97ec3 -	dw Function97ecd -; 97ec3 - -Function97ec3: ; 97ec3 -	ld a, [hSCY] -	ld hl, $0004 -	add hl, bc -	ld [hl], a -	call Function97eab -; 97ecd - -Function97ecd: ; 97ecd -	ld hl, $0001 -	add hl, bc -	ld a, [hl] -	dec a -	ld [hl], a -	jr z, .asm_97eee -	and $1 -	jr z, .asm_97ee4 -	ld hl, $0002 -	add hl, bc -	ld a, [hSCY] -	sub [hl] -	ld [hSCY], a -	ret - -.asm_97ee4 -	ld hl, $0002 -	add hl, bc -	ld a, [hSCY] -	add [hl] -	ld [hSCY], a -	ret - -.asm_97eee -	ld hl, $0004 -	add hl, bc -	ld a, [hl] -	ld [hSCY], a -	call Function97e72 -	ret -; 97ef9 - -Function97ef9: ; 97ef9 -	call Function97ea3 -	dw Function97f02 -	dw Function97f0a -	dw Function97f1b -; 97f02 - -Function97f02: ; 97f02 -	call Function97f38 -	jr z, Function97f2c -	call Function97eab -; 97f0a - -Function97f0a: ; 97f0a -	call Function97f38 -	jr z, Function97f2c -	call Function97eab - -	ld hl, $0002 -	add hl, bc -	ld a, [hl] -	ld [$d173], a -	ret -; 97f1b - -Function97f1b: ; 97f1b -	call Function97f38 -	jr z, Function97f2c -	call Function97eb1 - -	ld hl, $0003 -	add hl, bc -	ld a, [hl] -	ld [$d173], a -	ret -; 97f2c - -Function97f2c: ; 97f2c -	ld a, $7f -	ld [$d173], a -	ld hl, $0005 -	add hl, bc -	ld [hl], 0 -	ret -; 97f38 - -Function97f38: ; 97f38 -	push bc -	ld bc, $d4d6 -	call GetSpriteDirection -	and a -	pop bc -	ret -; 97f42 - -Function97f42: ; 97f42 -	ld de, $d4d6 -	ld a, $d -.asm_97f47 -	push af - -	ld hl, $0000 -	add hl, de -	ld a, [hl] -	and a -	jr z, .asm_97f71 - -	ld hl, $0003 -	add hl, de -	ld a, [hl] -	cp $19 -	jr nz, .asm_97f71 - -	ld hl, $000e -	add hl, de -	ld a, [hl] -	call CheckPitTile -	jr nz, .asm_97f71 - -	ld hl, $0007 -	add hl, de -	ld a, [hl] -	cp $ff -	jr nz, .asm_97f71 -	call Function3567 -	jr c, .asm_97f7c - -.asm_97f71 -	ld hl, $0028 -	add hl, de -	ld d, h -	ld e, l - -	pop af -	dec a -	jr nz, .asm_97f47 -	ret - -.asm_97f7c -	pop af -	ret -; 97f7e +INCLUDE "engine/events_2.asm" | 
