shithub: pokecrystal

Download patch

ref: 29afa24f0bf3368a1cba6869de4f8290d2a6f0dd
parent: 8bb8546497e8365740a83e40edda12e9328e5bc7
author: yenatch <[email protected]>
date: Fri Nov 22 21:33:53 EST 2013

split more event handling out of main

--- /dev/null
+++ b/engine/events_2.asm
@@ -1,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
+
--- a/main.asm
+++ b/main.asm
@@ -85542,657 +85542,12 @@
 
 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"