mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
split more event handling out of main
This commit is contained in:
parent
8bb8546497
commit
29afa24f0b
643
engine/events_2.asm
Normal file
643
engine/events_2.asm
Normal file
@ -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
|
||||
|
647
main.asm
647
main.asm
@ -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"
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user