mirror of https://github.com/pret/pokecrystal.git
Add missing files in engine/ and battle/
This commit is contained in:
parent
93ab6985d2
commit
77d0a8a396
|
@ -0,0 +1,457 @@
|
|||
EvolutionAnimation: ; 4e5e1
|
||||
push hl
|
||||
push de
|
||||
push bc
|
||||
ld a, [CurSpecies]
|
||||
push af
|
||||
ld a, [rOBP0]
|
||||
push af
|
||||
ld a, [BaseDexNo]
|
||||
push af
|
||||
|
||||
call _EvolutionAnimation
|
||||
|
||||
pop af
|
||||
ld [BaseDexNo], a
|
||||
pop af
|
||||
ld [rOBP0], a
|
||||
pop af
|
||||
ld [CurSpecies], a
|
||||
pop bc
|
||||
pop de
|
||||
pop hl
|
||||
|
||||
ld a, [wd1ed]
|
||||
and a
|
||||
ret z
|
||||
|
||||
scf
|
||||
ret
|
||||
; 4e607
|
||||
|
||||
_EvolutionAnimation: ; 4e607
|
||||
ld a, $e4
|
||||
ld [rOBP0], a
|
||||
|
||||
ld de, MUSIC_NONE
|
||||
call PlayMusic
|
||||
|
||||
callba Function8cf53
|
||||
|
||||
ld de, EvolutionGFX
|
||||
ld hl, VTiles0
|
||||
lb bc, BANK(EvolutionGFX), 8
|
||||
call Request2bpp
|
||||
|
||||
xor a
|
||||
ld [Danger], a
|
||||
call WaitBGMap
|
||||
xor a
|
||||
ld [hBGMapMode], a
|
||||
ld a, [Buffer1]
|
||||
ld [PlayerHPPal], a
|
||||
|
||||
ld c, $0
|
||||
call Function4e703
|
||||
ld a, [Buffer1]
|
||||
ld [CurPartySpecies], a
|
||||
ld [CurSpecies], a
|
||||
call Function4e708
|
||||
|
||||
ld de, VTiles2
|
||||
ld hl, VTiles2 tile $31
|
||||
ld bc, $31
|
||||
call Request2bpp
|
||||
|
||||
ld a, $31
|
||||
ld [wd1ec], a
|
||||
call Evolution_FlashFrontpics
|
||||
ld a, [Buffer2]
|
||||
ld [CurPartySpecies], a
|
||||
ld [CurSpecies], a
|
||||
call Function4e711
|
||||
ld a, [Buffer1]
|
||||
ld [CurPartySpecies], a
|
||||
ld [CurSpecies], a
|
||||
|
||||
ld a, $1
|
||||
ld [hBGMapMode], a
|
||||
call Function4e794
|
||||
jr c, .skip_cry
|
||||
|
||||
ld a, [Buffer1]
|
||||
call PlayCry
|
||||
|
||||
.skip_cry
|
||||
ld de, MUSIC_EVOLUTION
|
||||
call PlayMusic
|
||||
|
||||
ld c, 80
|
||||
call DelayFrames
|
||||
|
||||
ld c, $1
|
||||
call Function4e703
|
||||
call Function4e726
|
||||
jr c, .pressed_b
|
||||
|
||||
ld a, $cf
|
||||
ld [wd1ec], a
|
||||
|
||||
call Evolution_FlashFrontpics
|
||||
xor a
|
||||
ld [wd1ed], a
|
||||
|
||||
ld a, [Buffer2]
|
||||
ld [PlayerHPPal], a
|
||||
|
||||
ld c, $0
|
||||
call Function4e703
|
||||
call Function4e7a6
|
||||
callba Function8cf53
|
||||
call Function4e794
|
||||
jr c, .asm_4e6de
|
||||
|
||||
ld a, [wc2c6]
|
||||
push af
|
||||
ld a, $1
|
||||
ld [wc2c6], a
|
||||
ld a, [CurPartySpecies]
|
||||
push af
|
||||
|
||||
ld a, [PlayerHPPal]
|
||||
ld [CurPartySpecies], a
|
||||
hlcoord 7, 2
|
||||
ld d, $0
|
||||
ld e, ANIM_MON_EVOLVE
|
||||
predef AnimateFrontpic
|
||||
|
||||
pop af
|
||||
ld [CurPartySpecies], a
|
||||
pop af
|
||||
ld [wc2c6], a
|
||||
ret
|
||||
|
||||
.asm_4e6de
|
||||
ret
|
||||
|
||||
.pressed_b
|
||||
ld a, $1
|
||||
ld [wd1ed], a
|
||||
|
||||
ld a, [Buffer1]
|
||||
ld [PlayerHPPal], a
|
||||
|
||||
ld c, $0
|
||||
call Function4e703
|
||||
call Function4e7a6
|
||||
callba Function8cf53
|
||||
call Function4e794
|
||||
ret c
|
||||
|
||||
ld a, [PlayerHPPal]
|
||||
call PlayCry
|
||||
ret
|
||||
; 4e703
|
||||
|
||||
Function4e703: ; 4e703
|
||||
ld b, $b
|
||||
jp GetSGBLayout
|
||||
; 4e708
|
||||
|
||||
Function4e708: ; 4e708
|
||||
call GetBaseData
|
||||
hlcoord 7, 2
|
||||
jp Function3786
|
||||
; 4e711
|
||||
|
||||
Function4e711: ; 4e711
|
||||
call GetBaseData
|
||||
ld a, $1
|
||||
ld [wc2c6], a
|
||||
ld de, VTiles2
|
||||
predef Function5108b
|
||||
xor a
|
||||
ld [wc2c6], a
|
||||
ret
|
||||
; 4e726
|
||||
|
||||
Function4e726: ; 4e726
|
||||
call ClearJoypad
|
||||
lb bc, 1, 14
|
||||
.loop
|
||||
push bc
|
||||
call Evolution_CheckPressedB
|
||||
pop bc
|
||||
jr c, .pressed_b
|
||||
push bc
|
||||
call Evolution_NextFrame
|
||||
pop bc
|
||||
inc b
|
||||
rept 2
|
||||
dec c
|
||||
endr
|
||||
jr nz, .loop
|
||||
and a
|
||||
ret
|
||||
|
||||
.pressed_b
|
||||
scf
|
||||
ret
|
||||
; 4e741
|
||||
|
||||
Evolution_NextFrame: ; 4e741
|
||||
.loop
|
||||
ld a, -49
|
||||
ld [wd1ec], a
|
||||
call Evolution_FlashFrontpics
|
||||
ld a, 49
|
||||
ld [wd1ec], a
|
||||
call Evolution_FlashFrontpics
|
||||
dec b
|
||||
jr nz, .loop
|
||||
ret
|
||||
; 4e755
|
||||
|
||||
Evolution_FlashFrontpics: ; 4e755
|
||||
push bc
|
||||
xor a
|
||||
ld [hBGMapMode], a
|
||||
hlcoord 7, 2
|
||||
lb bc, 7, 7
|
||||
ld de, $d
|
||||
.loop1
|
||||
push bc
|
||||
.loop2
|
||||
ld a, [wd1ec]
|
||||
add [hl]
|
||||
ld [hli], a
|
||||
dec c
|
||||
jr nz, .loop2
|
||||
pop bc
|
||||
add hl, de
|
||||
dec b
|
||||
jr nz, .loop1
|
||||
ld a, $1
|
||||
ld [hBGMapMode], a
|
||||
call WaitBGMap
|
||||
pop bc
|
||||
ret
|
||||
; 4e779
|
||||
|
||||
Evolution_CheckPressedB: ; 4e779
|
||||
.loop
|
||||
call DelayFrame
|
||||
push bc
|
||||
call JoyTextDelay
|
||||
ld a, [hJoyDown]
|
||||
pop bc
|
||||
and B_BUTTON
|
||||
jr nz, .pressed_b
|
||||
.loop2
|
||||
dec c
|
||||
jr nz, .loop
|
||||
and a
|
||||
ret
|
||||
|
||||
.pressed_b
|
||||
ld a, [wd1e9]
|
||||
and a
|
||||
jr nz, .loop2
|
||||
scf
|
||||
ret
|
||||
; 4e794
|
||||
|
||||
Function4e794: ; 4e794
|
||||
ld a, [CurPartyMon]
|
||||
ld hl, PartyMon1Species
|
||||
call GetPartyLocation
|
||||
ld b, h
|
||||
ld c, l
|
||||
callba CheckFaintedFrzSlp
|
||||
ret
|
||||
; 4e7a6
|
||||
|
||||
Function4e7a6: ; 4e7a6
|
||||
ld a, [wd1ed]
|
||||
and a
|
||||
ret nz
|
||||
ld de, SFX_EVOLVED
|
||||
call PlaySFX
|
||||
ld hl, wJumptableIndex
|
||||
ld a, [hl]
|
||||
push af
|
||||
ld [hl], $0
|
||||
.asm_4e7b8
|
||||
call Function4e7cf
|
||||
jr nc, .asm_4e7c2
|
||||
call Function4e80c
|
||||
jr .asm_4e7b8
|
||||
|
||||
.asm_4e7c2
|
||||
ld c, $20
|
||||
.asm_4e7c4
|
||||
call Function4e80c
|
||||
dec c
|
||||
jr nz, .asm_4e7c4
|
||||
pop af
|
||||
ld [wJumptableIndex], a
|
||||
ret
|
||||
; 4e7cf
|
||||
|
||||
Function4e7cf: ; 4e7cf
|
||||
ld hl, wJumptableIndex
|
||||
ld a, [hl]
|
||||
cp $20
|
||||
ret nc
|
||||
ld d, a
|
||||
inc [hl]
|
||||
and $1
|
||||
jr nz, .asm_4e7e6
|
||||
ld e, $0
|
||||
call Function4e7e8
|
||||
ld e, $10
|
||||
call Function4e7e8
|
||||
|
||||
.asm_4e7e6
|
||||
scf
|
||||
ret
|
||||
; 4e7e8
|
||||
|
||||
Function4e7e8: ; 4e7e8
|
||||
push de
|
||||
ld de, $4858
|
||||
ld a, $13
|
||||
call Function3b2a
|
||||
ld hl, $b
|
||||
add hl, bc
|
||||
ld a, [wJumptableIndex]
|
||||
and $e
|
||||
sla a
|
||||
pop de
|
||||
add e
|
||||
ld [hl], a
|
||||
ld hl, $3
|
||||
add hl, bc
|
||||
ld [hl], $0
|
||||
ld hl, $c
|
||||
add hl, bc
|
||||
ld [hl], $10
|
||||
ret
|
||||
; 4e80c
|
||||
|
||||
Function4e80c: ; 4e80c
|
||||
push bc
|
||||
callab Function8cf69
|
||||
ld a, [$ff9b]
|
||||
and $e
|
||||
srl a
|
||||
rept 2
|
||||
inc a
|
||||
endr
|
||||
and $7
|
||||
ld b, a
|
||||
ld hl, Sprites + 3
|
||||
ld c, $28
|
||||
.asm_4e823
|
||||
ld a, [hl]
|
||||
or b
|
||||
ld [hli], a
|
||||
rept 3
|
||||
inc hl
|
||||
endr
|
||||
dec c
|
||||
jr nz, .asm_4e823
|
||||
pop bc
|
||||
call DelayFrame
|
||||
ret
|
||||
; 4e831
|
||||
|
||||
|
||||
EvolutionGFX:
|
||||
INCBIN "gfx/evo/bubble_large.2bpp"
|
||||
INCBIN "gfx/evo/bubble.2bpp"
|
||||
|
||||
Function4e881: ; 4e881
|
||||
call WhiteBGMap
|
||||
call ClearTileMap
|
||||
call ClearSprites
|
||||
call DisableLCD
|
||||
call LoadStandardFont
|
||||
call LoadFontsBattleExtra
|
||||
ld hl, VBGMap0
|
||||
ld bc, VBGMap1 - VBGMap0
|
||||
ld a, " "
|
||||
call ByteFill
|
||||
hlcoord 0, 0, AttrMap
|
||||
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
|
||||
xor a
|
||||
call ByteFill
|
||||
xor a
|
||||
ld [hSCY], a
|
||||
ld [hSCX], a
|
||||
call EnableLCD
|
||||
ld hl, UnknownText_0x4e8bd
|
||||
call PrintText
|
||||
call Function3200
|
||||
call SetPalettes
|
||||
ret
|
||||
; 4e8bd
|
||||
|
||||
UnknownText_0x4e8bd: ; 0x4e8bd
|
||||
; SAVING RECORD… DON'T TURN OFF!
|
||||
text_jump UnknownText_0x1bd39e
|
||||
db "@"
|
||||
; 0x4e8c2
|
||||
|
||||
|
||||
Function4e8c2: ; 4e8c2
|
||||
call WhiteBGMap
|
||||
call ClearTileMap
|
||||
call ClearSprites
|
||||
call DisableLCD
|
||||
call LoadStandardFont
|
||||
call LoadFontsBattleExtra
|
||||
ld hl, VBGMap0
|
||||
ld bc, VBGMap1 - VBGMap0
|
||||
ld a, " "
|
||||
call ByteFill
|
||||
hlcoord 0, 0, AttrMap
|
||||
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
|
||||
xor a
|
||||
call ByteFill
|
||||
ld hl, wd000
|
||||
ld c, $40
|
||||
.asm_4e8ee
|
||||
ld a, -1
|
||||
ld [hli], a
|
||||
ld a, " "
|
||||
ld [hli], a
|
||||
dec c
|
||||
jr nz, .asm_4e8ee
|
||||
xor a
|
||||
ld [hSCY], a
|
||||
ld [hSCX], a
|
||||
call EnableLCD
|
||||
call Function3200
|
||||
call SetPalettes
|
||||
ret
|
||||
; 4e906
|
||||
|
||||
Function4e906: ; 4e906
|
||||
ld a, [rSVBK]
|
||||
push af
|
||||
ld a, $6
|
||||
ld [rSVBK], a
|
||||
ld hl, w6_d000
|
||||
ld bc, w6_d400 - w6_d000
|
||||
ld a, " "
|
||||
call ByteFill
|
||||
ld hl, VBGMap0
|
||||
ld de, w6_d000
|
||||
ld b, $0
|
||||
ld c, $40
|
||||
call Request2bpp
|
||||
pop af
|
||||
ld [rSVBK], a
|
||||
ret
|
||||
; 4e929
|
|
@ -0,0 +1,940 @@
|
|||
SelectMonFromParty: ; 50000
|
||||
call DisableSpriteUpdates
|
||||
xor a
|
||||
ld [PartyMenuActionText], a
|
||||
call WhiteBGMap
|
||||
call Function5003f
|
||||
call WaitBGMap
|
||||
call Function32f9
|
||||
call DelayFrame
|
||||
call PartyMenuSelect
|
||||
call Function2b74
|
||||
ret
|
||||
; 5001d
|
||||
|
||||
|
||||
Function5001d: ; 5001d
|
||||
ld a, b
|
||||
ld [PartyMenuActionText], a
|
||||
call DisableSpriteUpdates
|
||||
call WhiteBGMap
|
||||
call Function5003f
|
||||
call WaitBGMap
|
||||
ld b, $a
|
||||
call GetSGBLayout
|
||||
call Function32f9
|
||||
call DelayFrame
|
||||
call PartyMenuSelect
|
||||
call Function2b74
|
||||
ret
|
||||
; 5003f
|
||||
|
||||
Function5003f: ; 5003f
|
||||
call Function5004f
|
||||
call Function50405
|
||||
call Function503e0
|
||||
call WritePartyMenuTilemap
|
||||
call PrintPartyMenuText
|
||||
ret
|
||||
; 5004f
|
||||
|
||||
Function5004f: ; 5004f
|
||||
call LoadFontsBattleExtra
|
||||
callab Function8ad1 ; engine/color.asm
|
||||
callab InefficientlyClear121BytesAtwc300
|
||||
ret
|
||||
; 5005f
|
||||
|
||||
|
||||
WritePartyMenuTilemap: ; 0x5005f
|
||||
ld hl, Options
|
||||
ld a, [hl]
|
||||
push af
|
||||
set 4, [hl] ; Disable text delay
|
||||
xor a
|
||||
ld [hBGMapMode], a
|
||||
hlcoord 0, 0
|
||||
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
|
||||
ld a, " "
|
||||
call ByteFill ; blank the tilemap
|
||||
call Function50396 ; This reads from a pointer table???
|
||||
.loop
|
||||
ld a, [hli]
|
||||
cp -1
|
||||
jr z, .asm_50084 ; 0x5007a $8
|
||||
push hl
|
||||
ld hl, .jumptable
|
||||
rst JumpTable
|
||||
pop hl
|
||||
jr .loop ; 0x50082 $f3
|
||||
|
||||
.asm_50084
|
||||
pop af
|
||||
ld [Options], a
|
||||
ret
|
||||
; 0x50089
|
||||
|
||||
.jumptable: ; 50089
|
||||
dw .displaynicks ; 0
|
||||
dw .drawhpbars ; 1
|
||||
dw Function50138 ; 2
|
||||
dw Function50176 ; 3
|
||||
dw Function501b2 ; 4
|
||||
dw Function501e0 ; 5
|
||||
dw Function5022f ; 6
|
||||
dw Function502b1 ; 7
|
||||
dw Function50307 ; 8
|
||||
; 5009b
|
||||
|
||||
.displaynicks: ; 5009b
|
||||
hlcoord 3, 1
|
||||
ld a, [PartyCount]
|
||||
and a
|
||||
jr z, .done
|
||||
ld c, a
|
||||
ld b, $0
|
||||
.loop2
|
||||
push bc
|
||||
push hl
|
||||
push hl
|
||||
ld hl, PartyMonNicknames
|
||||
ld a, b
|
||||
call GetNick
|
||||
pop hl
|
||||
call PlaceString
|
||||
pop hl
|
||||
ld de, $0028
|
||||
add hl, de
|
||||
pop bc
|
||||
inc b
|
||||
dec c
|
||||
jr nz, .loop2
|
||||
|
||||
.done
|
||||
rept 2
|
||||
dec hl
|
||||
endr
|
||||
ld de, .cancelstring
|
||||
call PlaceString
|
||||
ret
|
||||
; 500c8
|
||||
|
||||
.cancelstring: ; 500c8
|
||||
db "CANCEL@"
|
||||
; 500cf
|
||||
|
||||
|
||||
.drawhpbars: ; 500cf
|
||||
xor a
|
||||
ld [wcda9], a
|
||||
ld a, [PartyCount]
|
||||
and a
|
||||
ret z
|
||||
ld c, a
|
||||
ld b, $0
|
||||
hlcoord 11, 2
|
||||
.loop3
|
||||
push bc
|
||||
push hl
|
||||
call Function50389
|
||||
jr z, .skip
|
||||
push hl
|
||||
call _fillhpbar
|
||||
pop hl
|
||||
ld d, 6
|
||||
ld b, 0
|
||||
call DrawHPBar
|
||||
ld hl, wcd9b
|
||||
ld a, [wcda9]
|
||||
ld c, a
|
||||
ld b, $0
|
||||
add hl, bc
|
||||
call SetHPPal
|
||||
ld b, $fc
|
||||
call GetSGBLayout
|
||||
|
||||
.skip
|
||||
ld hl, wcda9
|
||||
inc [hl]
|
||||
pop hl
|
||||
ld de, $0028
|
||||
add hl, de
|
||||
pop bc
|
||||
inc b
|
||||
dec c
|
||||
jr nz, .loop3
|
||||
ld b, $a
|
||||
call GetSGBLayout
|
||||
ret
|
||||
; 50117
|
||||
|
||||
_fillhpbar: ; 50117
|
||||
ld a, b
|
||||
ld bc, PartyMon2 - PartyMon1
|
||||
ld hl, PartyMon1HP
|
||||
call AddNTimes
|
||||
ld a, [hli]
|
||||
or [hl]
|
||||
jr nz, .notfainted
|
||||
xor a
|
||||
ld e, a
|
||||
ld c, a
|
||||
ret
|
||||
|
||||
.notfainted
|
||||
dec hl
|
||||
ld a, [hli]
|
||||
ld b, a
|
||||
ld a, [hli]
|
||||
ld c, a
|
||||
ld a, [hli]
|
||||
ld d, a
|
||||
ld a, [hli]
|
||||
ld e, a
|
||||
predef ComputeHPBarLength
|
||||
ret
|
||||
; 50138
|
||||
|
||||
Function50138: ; 50138
|
||||
ld a, [PartyCount]
|
||||
and a
|
||||
ret z
|
||||
ld c, a
|
||||
ld b, $0
|
||||
hlcoord 13, 1
|
||||
.asm_50143
|
||||
push bc
|
||||
push hl
|
||||
call Function50389
|
||||
jr z, .asm_5016b
|
||||
push hl
|
||||
ld a, b
|
||||
ld bc, PartyMon2 - PartyMon1
|
||||
ld hl, PartyMon1HP
|
||||
call AddNTimes
|
||||
ld e, l
|
||||
ld d, h
|
||||
pop hl
|
||||
push de
|
||||
lb bc, 2, 3
|
||||
call PrintNum
|
||||
pop de
|
||||
ld a, $f3
|
||||
ld [hli], a
|
||||
rept 2
|
||||
inc de
|
||||
endr
|
||||
lb bc, 2, 3
|
||||
call PrintNum
|
||||
|
||||
.asm_5016b
|
||||
pop hl
|
||||
ld de, $0028
|
||||
add hl, de
|
||||
pop bc
|
||||
inc b
|
||||
dec c
|
||||
jr nz, .asm_50143
|
||||
ret
|
||||
; 50176
|
||||
|
||||
Function50176: ; 50176
|
||||
ld a, [PartyCount]
|
||||
and a
|
||||
ret z
|
||||
ld c, a
|
||||
ld b, 0
|
||||
hlcoord 8, 2
|
||||
.asm_50181
|
||||
push bc
|
||||
push hl
|
||||
call Function50389
|
||||
jr z, .asm_501a7
|
||||
push hl
|
||||
ld a, b
|
||||
ld bc, PartyMon2 - PartyMon1
|
||||
ld hl, PartyMon1Level
|
||||
call AddNTimes
|
||||
ld e, l
|
||||
ld d, h
|
||||
pop hl
|
||||
ld a, [de]
|
||||
cp 100 ; This is distinct from MAX_LEVEL.
|
||||
jr nc, .asm_501a1
|
||||
ld a, "<LV>"
|
||||
ld [hli], a
|
||||
ld bc, $4102
|
||||
.asm_501a1
|
||||
lb bc, PRINTNUM_RIGHTALIGN | 1, 3
|
||||
call PrintNum
|
||||
|
||||
.asm_501a7
|
||||
pop hl
|
||||
ld de, SCREEN_WIDTH * 2
|
||||
add hl, de
|
||||
pop bc
|
||||
inc b
|
||||
dec c
|
||||
jr nz, .asm_50181
|
||||
ret
|
||||
; 501b2
|
||||
|
||||
Function501b2: ; 501b2
|
||||
ld a, [PartyCount]
|
||||
and a
|
||||
ret z
|
||||
ld c, a
|
||||
ld b, 0
|
||||
hlcoord 5, 2
|
||||
.asm_501bd
|
||||
push bc
|
||||
push hl
|
||||
call Function50389
|
||||
jr z, .asm_501d5
|
||||
push hl
|
||||
ld a, b
|
||||
ld bc, PartyMon2 - PartyMon1
|
||||
ld hl, PartyMon1Status
|
||||
call AddNTimes
|
||||
ld e, l
|
||||
ld d, h
|
||||
pop hl
|
||||
call Function50d0a
|
||||
|
||||
.asm_501d5
|
||||
pop hl
|
||||
ld de, SCREEN_WIDTH * 2
|
||||
add hl, de
|
||||
pop bc
|
||||
inc b
|
||||
dec c
|
||||
jr nz, .asm_501bd
|
||||
ret
|
||||
; 501e0
|
||||
|
||||
Function501e0: ; 501e0
|
||||
ld a, [PartyCount]
|
||||
and a
|
||||
ret z
|
||||
ld c, a
|
||||
ld b, 0
|
||||
hlcoord 12, 2
|
||||
.asm_501eb
|
||||
push bc
|
||||
push hl
|
||||
call Function50389
|
||||
jr z, .asm_5020a
|
||||
push hl
|
||||
ld hl, PartySpecies
|
||||
ld e, b
|
||||
ld d, 0
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
ld [CurPartySpecies], a
|
||||
predef CanLearnTMHMMove
|
||||
pop hl
|
||||
call Function50215
|
||||
call PlaceString
|
||||
|
||||
.asm_5020a
|
||||
pop hl
|
||||
ld de, SCREEN_WIDTH * 2
|
||||
add hl, de
|
||||
pop bc
|
||||
inc b
|
||||
dec c
|
||||
jr nz, .asm_501eb
|
||||
ret
|
||||
; 50215
|
||||
|
||||
Function50215: ; 50215
|
||||
ld a, c
|
||||
and a
|
||||
jr nz, .asm_5021d
|
||||
ld de, String_50226
|
||||
ret
|
||||
|
||||
.asm_5021d
|
||||
ld de, String_50221
|
||||
ret
|
||||
; 50221
|
||||
|
||||
String_50221: ; 50221
|
||||
db "ABLE@"
|
||||
; 50226
|
||||
|
||||
String_50226: ; 50226
|
||||
db "NOT ABLE@"
|
||||
; 5022f
|
||||
|
||||
|
||||
Function5022f: ; 5022f
|
||||
ld a, [PartyCount]
|
||||
and a
|
||||
ret z
|
||||
ld c, a
|
||||
ld b, 0
|
||||
hlcoord 12, 2
|
||||
.asm_5023a
|
||||
push bc
|
||||
push hl
|
||||
call Function50389
|
||||
jr z, .asm_5025d
|
||||
push hl
|
||||
ld a, b
|
||||
ld bc, PartyMon2 - PartyMon1
|
||||
ld hl, PartyMon1Species
|
||||
call AddNTimes
|
||||
ld a, [hl]
|
||||
dec a
|
||||
ld e, a
|
||||
ld d, 0
|
||||
ld hl, EvosAttacksPointers
|
||||
rept 2
|
||||
add hl, de
|
||||
endr
|
||||
call Function50268
|
||||
pop hl
|
||||
call PlaceString
|
||||
|
||||
.asm_5025d
|
||||
pop hl
|
||||
ld de, $0028
|
||||
add hl, de
|
||||
pop bc
|
||||
inc b
|
||||
dec c
|
||||
jr nz, .asm_5023a
|
||||
ret
|
||||
; 50268
|
||||
|
||||
Function50268: ; 50268
|
||||
ld de, StringBuffer1
|
||||
ld a, BANK(EvosAttacksPointers)
|
||||
ld bc, 2
|
||||
call FarCopyBytes
|
||||
ld hl, StringBuffer1
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
ld de, StringBuffer1
|
||||
ld a, BANK(EvosAttacks)
|
||||
ld bc, $a
|
||||
call FarCopyBytes
|
||||
ld hl, StringBuffer1
|
||||
.asm_50287
|
||||
ld a, [hli]
|
||||
and a
|
||||
jr z, .asm_5029f
|
||||
rept 2
|
||||
inc hl
|
||||
endr
|
||||
cp EVOLVE_ITEM
|
||||
jr nz, .asm_50287
|
||||
rept 2
|
||||
dec hl
|
||||
endr
|
||||
ld a, [CurItem]
|
||||
cp [hl]
|
||||
rept 2
|
||||
inc hl
|
||||
endr
|
||||
jr nz, .asm_50287
|
||||
ld de, String_502a3
|
||||
ret
|
||||
|
||||
.asm_5029f
|
||||
ld de, String_502a8
|
||||
ret
|
||||
; 502a3
|
||||
|
||||
String_502a3: ; 502a3
|
||||
db "ABLE@"
|
||||
; 502a8
|
||||
String_502a8: ; 502a8
|
||||
db "NOT ABLE@"
|
||||
; 502b1
|
||||
|
||||
|
||||
Function502b1: ; 502b1
|
||||
ld a, [PartyCount]
|
||||
and a
|
||||
ret z
|
||||
ld c, a
|
||||
ld b, 0
|
||||
hlcoord 12, 2
|
||||
.asm_502bc
|
||||
push bc
|
||||
push hl
|
||||
call Function50389
|
||||
jr z, .asm_502e3
|
||||
ld [CurPartySpecies], a
|
||||
push hl
|
||||
ld a, b
|
||||
ld [CurPartyMon], a
|
||||
xor a
|
||||
ld [MonType], a
|
||||
call GetGender
|
||||
ld de, String_502fe
|
||||
jr c, .asm_502df
|
||||
ld de, String_502ee
|
||||
jr nz, .asm_502df
|
||||
ld de, String_502f5
|
||||
|
||||
.asm_502df
|
||||
pop hl
|
||||
call PlaceString
|
||||
|
||||
.asm_502e3
|
||||
pop hl
|
||||
ld de, $0028
|
||||
add hl, de
|
||||
pop bc
|
||||
inc b
|
||||
dec c
|
||||
jr nz, .asm_502bc
|
||||
ret
|
||||
; 502ee
|
||||
|
||||
String_502ee: ; 502ee
|
||||
db "♂…MALE@"
|
||||
; 502f5
|
||||
|
||||
String_502f5: ; 502f5
|
||||
db "♀…FEMALE@"
|
||||
; 502fe
|
||||
|
||||
String_502fe: ; 502fe
|
||||
db "…UNKNOWN@"
|
||||
; 50307
|
||||
|
||||
|
||||
Function50307: ; 50307
|
||||
ld a, [PartyCount]
|
||||
and a
|
||||
ret z
|
||||
ld c, a
|
||||
ld b, 0
|
||||
hlcoord 12, 1
|
||||
.asm_50312
|
||||
push bc
|
||||
push hl
|
||||
ld de, String_50372
|
||||
call PlaceString
|
||||
pop hl
|
||||
ld de, $0028
|
||||
add hl, de
|
||||
pop bc
|
||||
inc b
|
||||
dec c
|
||||
jr nz, .asm_50312
|
||||
ld a, l
|
||||
ld e, $b
|
||||
sub e
|
||||
ld l, a
|
||||
ld a, h
|
||||
sbc $0
|
||||
ld h, a
|
||||
ld de, String_50379
|
||||
call PlaceString
|
||||
ld b, $3
|
||||
ld c, $0
|
||||
ld hl, DefaultFlypoint
|
||||
ld a, [hl]
|
||||
.asm_5033b
|
||||
push hl
|
||||
push bc
|
||||
hlcoord 12, 1
|
||||
.asm_50340
|
||||
and a
|
||||
jr z, .asm_5034a
|
||||
ld de, $0028
|
||||
add hl, de
|
||||
dec a
|
||||
jr .asm_50340
|
||||
|
||||
.asm_5034a
|
||||
ld de, String_5036b
|
||||
push hl
|
||||
call PlaceString
|
||||
pop hl
|
||||
pop bc
|
||||
push bc
|
||||
push hl
|
||||
ld a, c
|
||||
ld hl, Strings_50383
|
||||
call GetNthString
|
||||
ld d, h
|
||||
ld e, l
|
||||
pop hl
|
||||
call PlaceString
|
||||
pop bc
|
||||
pop hl
|
||||
inc hl
|
||||
ld a, [hl]
|
||||
inc c
|
||||
dec b
|
||||
ret z
|
||||
jr .asm_5033b
|
||||
; 5036b
|
||||
|
||||
String_5036b: ; 5036b
|
||||
db " ばんめ @" ; Place
|
||||
; 50372
|
||||
String_50372: ; 50372
|
||||
db "さんかしない@" ; Cancel
|
||||
; 50379
|
||||
String_50379: ; 50379
|
||||
db "けってい やめる@" ; Quit
|
||||
; 50383
|
||||
Strings_50383: ; 50383
|
||||
db "1@", "2@", "3@" ; 1st, 2nd, 3rd
|
||||
; 50389
|
||||
|
||||
|
||||
Function50389: ; 50389
|
||||
ld a, PartySpecies % $100
|
||||
add b
|
||||
ld e, a
|
||||
ld a, PartySpecies / $100
|
||||
adc 0
|
||||
ld d, a
|
||||
ld a, [de]
|
||||
cp EGG
|
||||
ret
|
||||
; 50396
|
||||
|
||||
Function50396: ; 50396
|
||||
ld a, [PartyMenuActionText]
|
||||
and $f0
|
||||
jr nz, .override
|
||||
ld a, [PartyMenuActionText]
|
||||
and $f
|
||||
ld e, a
|
||||
ld d, 0
|
||||
ld hl, .selectmonmenuoptions
|
||||
rept 2
|
||||
add hl, de
|
||||
endr
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
ret
|
||||
|
||||
.override
|
||||
ld hl, .default
|
||||
ret
|
||||
; 503b2
|
||||
|
||||
.selectmonmenuoptions: ; 503b2
|
||||
dw .default
|
||||
dw .default
|
||||
dw .default
|
||||
dw .unknown1
|
||||
dw .default
|
||||
dw .unknown2
|
||||
dw .trade
|
||||
dw .trade
|
||||
dw .default
|
||||
dw .unknown3
|
||||
; 503c6
|
||||
|
||||
.default: db 0, 1, 2, 3, 4, -1
|
||||
.unknown1: db 0, 5, 3, 4, -1
|
||||
.unknown2: db 0, 6, 3, 4, -1
|
||||
.trade: db 0, 7, 3, 4, -1
|
||||
.unknown3: db 0, 8, 3, 4, -1
|
||||
; 503e0
|
||||
|
||||
Function503e0: ; 503e0
|
||||
ld hl, PartyCount
|
||||
ld a, [hli]
|
||||
and a
|
||||
ret z
|
||||
ld c, a
|
||||
xor a
|
||||
ld [hConnectedMapWidth], a
|
||||
.asm_503ea
|
||||
push bc
|
||||
push hl
|
||||
ld hl, Function8e83f
|
||||
ld a, BANK(Function8e83f)
|
||||
ld e, $0
|
||||
rst FarCall
|
||||
ld a, [hConnectedMapWidth]
|
||||
inc a
|
||||
ld [hConnectedMapWidth], a
|
||||
pop hl
|
||||
pop bc
|
||||
dec c
|
||||
jr nz, .asm_503ea
|
||||
callab Function8cf69
|
||||
ret
|
||||
; 50405
|
||||
Function50405: ; 50405
|
||||
xor a
|
||||
ld [wd0e3], a
|
||||
ld de, Unknown_5044f
|
||||
call Function1bb1
|
||||
ld a, [PartyCount]
|
||||
inc a
|
||||
ld [wcfa3], a
|
||||
dec a
|
||||
ld b, a
|
||||
ld a, [wd0d8]
|
||||
and a
|
||||
jr z, .asm_50422
|
||||
inc b
|
||||
cp b
|
||||
jr c, .asm_50424
|
||||
|
||||
.asm_50422
|
||||
ld a, $1
|
||||
|
||||
.asm_50424
|
||||
ld [wcfa9], a
|
||||
ld a, $3
|
||||
ld [wcfa8], a
|
||||
ret
|
||||
; 5042d
|
||||
|
||||
Function5042d: ; 0x5042d
|
||||
ld de, Unknown_5044f
|
||||
call Function1bb1
|
||||
ld a, [PartyCount]
|
||||
ld [wcfa3], a
|
||||
ld b, a
|
||||
ld a, [wd0d8]
|
||||
and a
|
||||
jr z, .asm_50444
|
||||
inc b
|
||||
cp b
|
||||
jr c, .asm_50446
|
||||
.asm_50444
|
||||
ld a, $1
|
||||
.asm_50446
|
||||
ld [wcfa9], a
|
||||
ld a, $3
|
||||
ld [wcfa8], a
|
||||
ret
|
||||
; 5044f (14:444f)
|
||||
|
||||
Unknown_5044f: ; 5044f
|
||||
; cursor y
|
||||
; cursor x
|
||||
; list length
|
||||
; ?
|
||||
; bit 6: animate sprites bit 5: wrap around
|
||||
; ?
|
||||
; distance between items (hi: y, lo: x)
|
||||
; allowed buttons (mask)
|
||||
db $01, $00, $00, $01, $60, $00, $20, $00
|
||||
; 50457
|
||||
|
||||
PartyMenuSelect: ; 0x50457
|
||||
; sets carry if exitted menu.
|
||||
call Function1bc9
|
||||
call Function1bee
|
||||
ld a, [PartyCount]
|
||||
inc a
|
||||
ld b, a
|
||||
ld a, [wcfa9] ; menu selection?
|
||||
cp b
|
||||
jr z, .exitmenu ; CANCEL
|
||||
ld [wd0d8], a
|
||||
ld a, [hJoyLast]
|
||||
ld b, a
|
||||
bit 1, b
|
||||
jr nz, .exitmenu ; B button?
|
||||
ld a, [wcfa9]
|
||||
dec a
|
||||
ld [CurPartyMon], a
|
||||
ld c, a
|
||||
ld b, $0
|
||||
ld hl, PartySpecies
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
ld [CurPartySpecies], a
|
||||
|
||||
ld de, SFX_READ_TEXT_2
|
||||
call PlaySFX
|
||||
call WaitSFX
|
||||
and a
|
||||
ret
|
||||
|
||||
.exitmenu
|
||||
ld de, SFX_READ_TEXT_2
|
||||
call PlaySFX
|
||||
call WaitSFX
|
||||
scf
|
||||
ret
|
||||
; 0x5049a
|
||||
|
||||
|
||||
PrintPartyMenuText: ; 5049a
|
||||
hlcoord 0, 14
|
||||
ld bc, $0212
|
||||
call TextBox
|
||||
ld a, [PartyCount]
|
||||
and a
|
||||
jr nz, .haspokemon
|
||||
ld de, YouHaveNoPKMNString
|
||||
jr .gotstring
|
||||
.haspokemon ; 504ae
|
||||
ld a, [PartyMenuActionText]
|
||||
and $f ; drop high nibble
|
||||
ld hl, PartyMenuStrings
|
||||
ld e, a
|
||||
ld d, $0
|
||||
rept 2
|
||||
add hl, de
|
||||
endr
|
||||
ld a, [hli]
|
||||
ld d, [hl]
|
||||
ld e, a
|
||||
.gotstring ; 504be
|
||||
ld a, [Options]
|
||||
push af
|
||||
set 4, a ; disable text delay
|
||||
ld [Options], a
|
||||
hlcoord 1, 16 ; Coord
|
||||
call PlaceString
|
||||
pop af
|
||||
ld [Options], a
|
||||
ret
|
||||
; 0x504d2
|
||||
|
||||
PartyMenuStrings: ; 0x504d2
|
||||
dw ChooseAMonString
|
||||
dw UseOnWhichPKMNString
|
||||
dw WhichPKMNString
|
||||
dw TeachWhichPKMNString
|
||||
dw MoveToWhereString
|
||||
dw UseOnWhichPKMNString
|
||||
dw ChooseAMonString ; Probably used to be ChooseAFemalePKMNString
|
||||
dw ChooseAMonString ; Probably used to be ChooseAMalePKMNString
|
||||
dw ToWhichPKMNString
|
||||
|
||||
ChooseAMonString: ; 0x504e4
|
||||
db "Choose a #MON.@"
|
||||
UseOnWhichPKMNString: ; 0x504f3
|
||||
db "Use on which <PK><MN>?@"
|
||||
WhichPKMNString: ; 0x50504
|
||||
db "Which <PK><MN>?@"
|
||||
TeachWhichPKMNString: ; 0x5050e
|
||||
db "Teach which <PK><MN>?@"
|
||||
MoveToWhereString: ; 0x5051e
|
||||
db "Move to where?@"
|
||||
ChooseAFemalePKMNString: ; 0x5052d ; UNUSED
|
||||
db "Choose a ♀<PK><MN>.@"
|
||||
ChooseAMalePKMNString: ; 0x5053b ; UNUSED
|
||||
db "Choose a ♂<PK><MN>.@"
|
||||
ToWhichPKMNString: ; 0x50549
|
||||
db "To which <PK><MN>?@"
|
||||
|
||||
YouHaveNoPKMNString: ; 0x50556
|
||||
db "You have no <PK><MN>!@"
|
||||
|
||||
|
||||
Function50566: ; 50566
|
||||
ld a, [CurPartyMon]
|
||||
ld hl, PartyMonNicknames
|
||||
call GetNick
|
||||
ld a, [PartyMenuActionText]
|
||||
and $f
|
||||
ld hl, Unknown_5057b
|
||||
call Function505c1
|
||||
ret
|
||||
; 5057b
|
||||
|
||||
Unknown_5057b: ; 5057b
|
||||
dw UnknownText_0x50594
|
||||
dw UnknownText_0x5059e
|
||||
dw UnknownText_0x505a3
|
||||
dw UnknownText_0x505a8
|
||||
dw UnknownText_0x50599
|
||||
dw UnknownText_0x5058f
|
||||
dw UnknownText_0x505ad
|
||||
dw UnknownText_0x505b2
|
||||
dw UnknownText_0x505b7
|
||||
dw UnknownText_0x505bc
|
||||
; 5058f
|
||||
|
||||
UnknownText_0x5058f: ; 0x5058f
|
||||
; recovered @ HP!
|
||||
text_jump UnknownText_0x1bc0a2
|
||||
db "@"
|
||||
; 0x50594
|
||||
|
||||
UnknownText_0x50594: ; 0x50594
|
||||
; 's cured of poison.
|
||||
text_jump UnknownText_0x1bc0bb
|
||||
db "@"
|
||||
; 0x50599
|
||||
|
||||
UnknownText_0x50599: ; 0x50599
|
||||
; 's rid of paralysis.
|
||||
text_jump UnknownText_0x1bc0d2
|
||||
db "@"
|
||||
; 0x5059e
|
||||
|
||||
UnknownText_0x5059e: ; 0x5059e
|
||||
; 's burn was healed.
|
||||
text_jump UnknownText_0x1bc0ea
|
||||
db "@"
|
||||
; 0x505a3
|
||||
|
||||
UnknownText_0x505a3: ; 0x505a3
|
||||
; was defrosted.
|
||||
text_jump UnknownText_0x1bc101
|
||||
db "@"
|
||||
; 0x505a8
|
||||
|
||||
UnknownText_0x505a8: ; 0x505a8
|
||||
; woke up.
|
||||
text_jump UnknownText_0x1bc115
|
||||
db "@"
|
||||
; 0x505ad
|
||||
|
||||
UnknownText_0x505ad: ; 0x505ad
|
||||
; 's health returned.
|
||||
text_jump UnknownText_0x1bc123
|
||||
db "@"
|
||||
; 0x505b2
|
||||
|
||||
UnknownText_0x505b2: ; 0x505b2
|
||||
; is revitalized.
|
||||
text_jump UnknownText_0x1bc13a
|
||||
db "@"
|
||||
; 0x505b7
|
||||
|
||||
UnknownText_0x505b7: ; 0x505b7
|
||||
; grew to level @ !@ @
|
||||
text_jump UnknownText_0x1bc14f
|
||||
db "@"
|
||||
; 0x505bc
|
||||
|
||||
UnknownText_0x505bc: ; 0x505bc
|
||||
; came to its senses.
|
||||
text_jump UnknownText_0x1bc16e
|
||||
db "@"
|
||||
; 0x505c1
|
||||
|
||||
Function505c1: ; 505c1
|
||||
ld e, a
|
||||
ld d, 0
|
||||
rept 2
|
||||
add hl, de
|
||||
endr
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
ld a, [Options]
|
||||
push af
|
||||
set 4, a
|
||||
ld [Options], a
|
||||
call PrintText
|
||||
pop af
|
||||
ld [Options], a
|
||||
ret
|
||||
; 505da
|
Loading…
Reference in New Issue