ref: 794410352fd92ccf06974763e4b3be0b807641ab
parent: 9c5473e965520f672640daf4ee76622640e0de15
parent: 4bcd71e3227181baa536357af3d87a8d02af3890
author: yenatch <yenatch@gmail.com>
date: Sat Nov 28 15:15:35 EST 2015
Merge pull request #328 from PikalaxALT/master Split out most of main.asm
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,8 @@
PYTHON := python
MD5 := md5sum -c --quiet
-.SUFFIXES:
.SUFFIXES: .asm .o .gbc .png .2bpp .1bpp .lz .pal .bin .blk .tilemap
-.PHONY: all clean crystal pngs
+.PHONY: all clean crystal crystal11 pngs
.SECONDEXPANSION:
poketools := extras/pokemontools
@@ -53,6 +52,8 @@
all: $(roms)
crystal: pokecrystal.gbc
+
+crystal11: pokecrystal11.gbc
clean:
rm -f $(roms) $(all_obj) $(roms:.gbc=.map) $(roms:.gbc=.sym)
--- a/battle/anim_commands.asm
+++ b/battle/anim_commands.asm
@@ -1172,7 +1172,7 @@
.done
pop af
ld [CurPartySpecies], a ; CurPartySpecies
- ld b, $1
+ ld b, SCGB_01
call GetSGBLayout
pop af
ld [rSVBK], a
@@ -1437,13 +1437,13 @@
ld a, $5
ld [rSVBK], a
ld hl, BGPals
- ld de, wMapPals
+ ld de, UnknBGPals
ld a, [rBGP]
ld b, a
ld c, $7
call CopyPals
ld hl, OBPals
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld a, [rBGP]
ld b, a
ld c, $2
@@ -1465,7 +1465,7 @@
ld a, $5
ld [rSVBK], a
ld hl, OBPals + $10
- ld de, Unkn2Pals + $10
+ ld de, UnknOBPals + $10
ld a, [rOBP0]
ld b, a
ld c, $2
--- a/battle/bg_effects.asm
+++ b/battle/bg_effects.asm
@@ -2571,12 +2571,12 @@
push bc
push af
ld hl, BGPals ; BGPals
- ld de, wMapPals ; wd000
+ ld de, UnknBGPals ; wd000
ld b, a
ld c, $1
call CopyPals
ld hl, OBPals + 8
- ld de, Unkn2Pals + 8
+ ld de, UnknOBPals + 8
pop af
ld b, a
ld c, $1
@@ -2598,12 +2598,12 @@
push bc
push af
ld hl, BGPals + 8
- ld de, wMapPals + 8
+ ld de, UnknBGPals + 8
ld b, a
ld c, $1
call CopyPals
ld hl, OBPals ; OBPals
- ld de, Unkn2Pals ; wd040
+ ld de, UnknOBPals ; wd040
pop af
ld b, a
ld c, $1
--- a/battle/core.asm
+++ b/battle/core.asm
@@ -7,7 +7,7 @@
xor a
ld [wBattleParticipantsNotFainted], a
ld [wc6fc], a
- ld [wd0ec], a
+ ld [wPlayerAction], a
ld [BattleEnded], a
inc a
ld [wd264], a
@@ -302,7 +302,7 @@
call HandleHealingItems
call UpdateBattleMonInParty
call LoadTileMapToTempTileMap
- jp Function3c4df
+ jp HandleEncore
; 3c23c
CheckFaint_PlayerThenEnemy: ; 3c23c
@@ -461,7 +461,7 @@
jr z, .use_move
sub BATTLEACTION_SWITCH1
jr c, .use_move
- ld a, [wd0ec]
+ ld a, [wPlayerAction]
cp $2
jr nz, .switch
ld a, [hLinkPlayerNumber]
@@ -486,7 +486,7 @@
jp .enemy_first
.use_move
- ld a, [wd0ec]
+ ld a, [wPlayerAction]
and a
jp nz, .player_first
call CompareMovePriority
@@ -629,7 +629,7 @@
jr .encored
.not_encored
- ld a, [wd0ec]
+ ld a, [wPlayerAction]
cp $2
jr z, .reset_rage
and a
@@ -638,7 +638,7 @@
and 1 << SUBSTATUS_BIDE
jr nz, .locked_in
xor a
- ld [wd235], a
+ ld [wMoveSelectionMenuType], a
inc a ; POUND
ld [FXAnimIDLo], a
call MoveSelectionScreen
@@ -714,16 +714,16 @@
ret
; 3c4df
-Function3c4df: ; 3c4df
+HandleEncore: ; 3c4df
ld a, [hLinkPlayerNumber]
cp $1
- jr z, .asm_3c4ea
- call .asm_3c4ed
- jr .asm_3c518
+ jr z, .player_1
+ call .do_player
+ jr .do_enemy
-.asm_3c4ea
- call .asm_3c518
-.asm_3c4ed
+.player_1
+ call .do_enemy
+.do_player
ld hl, PlayerSubStatus5
bit SUBSTATUS_ENCORED, [hl]
ret z
@@ -730,7 +730,7 @@
ld a, [PlayerEncoreCount]
dec a
ld [PlayerEncoreCount], a
- jr z, .asm_3c50a
+ jr z, .end_player_encore
ld hl, BattleMonPP
ld a, [CurMoveNum]
ld c, a
@@ -740,7 +740,7 @@
and $3f
ret nz
-.asm_3c50a
+.end_player_encore
ld hl, PlayerSubStatus5
res SUBSTATUS_ENCORED, [hl]
call SetEnemyTurn
@@ -747,7 +747,7 @@
ld hl, BattleText_TargetsEncoreEnded
jp StdBattleTextBox
-.asm_3c518
+.do_enemy
ld hl, EnemySubStatus5
bit SUBSTATUS_ENCORED, [hl]
ret z
@@ -754,7 +754,7 @@
ld a, [EnemyEncoreCount]
dec a
ld [EnemyEncoreCount], a
- jr z, .asm_3c535
+ jr z, .end_enemy_encore
ld hl, EnemyMonPP
ld a, [CurEnemyMoveNum]
ld c, a
@@ -764,7 +764,7 @@
and $3f
ret nz
-.asm_3c535
+.end_enemy_encore
ld hl, EnemySubStatus5
res SUBSTATUS_ENCORED, [hl]
call SetPlayerTurn
@@ -972,7 +972,7 @@
jp z, HandlePlayerMonFaint
call RefreshBattleHuds
xor a
- ld [wd0ec], a
+ ld [wPlayerAction], a
ret
; 3c664
@@ -1022,7 +1022,7 @@
jp z, HandleEnemyMonFaint
call RefreshBattleHuds
xor a
- ld [wd0ec], a
+ ld [wPlayerAction], a
ret
; 3c6cf
@@ -2004,7 +2004,8 @@
ret
; 3ccc2
-Function3ccc2: ; 3ccc2
+GetHalfHP: ; 3ccc2
+; unreferenced
ld hl, BattleMonHP
ld a, [hBattleTurn]
and a
@@ -2160,22 +2161,22 @@
jp c, WildFled_EnemyFled_LinkBattleCanceled
ld a, $1
- ld [wd0ec], a
+ ld [wPlayerAction], a
call Function3cf4a
jp z, WildFled_EnemyFled_LinkBattleCanceled
- jr Function3cdca
+ jr DoubleSwitch
.player_mon_not_fainted
ld a, $1
- ld [wd0ec], a
+ ld [wPlayerAction], a
call Function3cf4a
jp z, WildFled_EnemyFled_LinkBattleCanceled
xor a
- ld [wd0ec], a
+ ld [wPlayerAction], a
ret
; 3cdca
-Function3cdca: ; 3cdca
+DoubleSwitch: ; 3cdca
ld a, [hLinkPlayerNumber]
cp $1
jr z, .player_1
@@ -2201,7 +2202,7 @@
.done
xor a
- ld [wd0ec], a
+ ld [wPlayerAction], a
ret
; 3ce01
@@ -2412,7 +2413,7 @@
Function3cf4a: ; 3cf4a
ld hl, EnemyHPPal
ld e, HP_BAR_LENGTH_PX
- call Function3e12e
+ call UpdateHPPal
call WaitBGMap
callba Function2c012
ld a, [wLinkMode]
@@ -2419,7 +2420,7 @@
and a
jr z, .not_linked
- call Function3e8e4
+ call LinkBattleSendReceiveAction
ld a, [wBattleAction]
cp BATTLEACTION_FORFEIT
ret z
@@ -2459,7 +2460,7 @@
call SpikesDamage
xor a
ld [wEnemyMoveStruct + MOVE_ANIM], a
- ld [wd0ec], a
+ ld [wPlayerAction], a
inc a
ret
; 3cfa4
@@ -2532,48 +2533,48 @@
; 3d02b
Function3d02b: ; 3d02b
- ld a, [wc73d]
+ ld a, [wAmuletCoin]
and a
- call nz, Function3d099
- call Function3d0b1
+ call nz, .DoubleReward
+ call .CheckMaxedOutMomMoney
push af
ld a, $0
- jr nc, .asm_3d044
+ jr nc, .okay
ld a, [wMomSavingMoney]
and $7
cp $3
- jr nz, .asm_3d044
+ jr nz, .okay
inc a
-.asm_3d044
+.okay
ld b, a
ld c, $4
-.asm_3d047
+.loop
ld a, b
and a
- jr z, .asm_3d052
- call Function3d081
+ jr z, .loop2
+ call .SendMoneyToMom
dec c
dec b
- jr .asm_3d047
+ jr .loop
-.asm_3d052
+.loop2
ld a, c
and a
- jr z, .asm_3d05c
- call Function3d08d
+ jr z, .done
+ call .AddMoneyToWallet
dec c
- jr .asm_3d052
+ jr .loop2
-.asm_3d05c
- call Function3d099
- call Function3d099
+.done
+ call .DoubleReward
+ call .DoubleReward
pop af
jr nc, .KeepItAll
ld a, [wMomSavingMoney]
and $7
jr z, .KeepItAll
- ld hl, SentToMomTexts
+ ld hl, .SentToMomTexts
dec a
ld c, a
ld b, 0
@@ -2590,26 +2591,26 @@
jp StdBattleTextBox
; 3d081
-Function3d081: ; 3d081
+.SendMoneyToMom: ; 3d081
push bc
- ld hl, wc688
+ ld hl, wBattleReward + 2
ld de, wMomsMoney + 2
- call Function3d0be
+ call AddBattleMoneyToAccount
pop bc
ret
; 3d08d
-Function3d08d: ; 3d08d
+.AddMoneyToWallet: ; 3d08d
push bc
- ld hl, wc688
+ ld hl, wBattleReward + 2
ld de, Money + 2
- call Function3d0be
+ call AddBattleMoneyToAccount
pop bc
ret
; 3d099
-Function3d099: ; 3d099
- ld hl, wc688
+.DoubleReward: ; 3d099
+ ld hl, wBattleReward + 2
sla [hl]
dec hl
rl [hl]
@@ -2624,7 +2625,7 @@
ret
; 3d0ab
-SentToMomTexts: ; 3d0ab
+.SentToMomTexts: ; 3d0ab
dw SentSomeToMomText
dw SentHalfToMomText
dw SentAllToMomText
@@ -2631,7 +2632,7 @@
; 3d0b1
-Function3d0b1: ; 3d0b1
+.CheckMaxedOutMomMoney: ; 3d0b1
ld hl, wMomsMoney + 2
ld a, [hld]
cp 999999 % $100
@@ -2642,7 +2643,7 @@
ret
; 3d0be
-Function3d0be: ; 3d0be
+AddBattleMoneyToAccount: ; 3d0be
ld c, $3
and a
push de
@@ -2653,7 +2654,7 @@
callba MobileFn_106008
pop bc
pop hl
-.asm_3d0ce
+.loop
ld a, [de]
adc [hl]
ld [de], a
@@ -2660,7 +2661,7 @@
dec de
dec hl
dec c
- jr nz, .asm_3d0ce
+ jr nz, .loop
pop hl
ld a, [hld]
cp 999999 % $100
@@ -2813,10 +2814,10 @@
and a
ret nz
ld a, $1
- ld [wd0ec], a
+ ld [wPlayerAction], a
call Function3cf4a
jp z, WildFled_EnemyFled_LinkBattleCanceled
- jp Function3cdca
+ jp DoubleSwitch
; 3d1aa
PlayerMonFaintHappinessMod: ; 3d1aa
@@ -2823,7 +2824,7 @@
ld a, [CurBattleMon]
ld c, a
ld hl, wBattleParticipantsNotFainted
- ld b, $0
+ ld b, RESET_FLAG
predef FlagPredef
ld hl, EnemySubStatus3
res SUBSTATUS_IN_LOOP, [hl]
@@ -2896,12 +2897,12 @@
and a
jr z, .skip_link
ld a, $1
- ld [wd0ec], a
- call Function3e8e4
+ ld [wPlayerAction], a
+ call LinkBattleSendReceiveAction
.skip_link
xor a
- ld [wd0ec], a
+ ld [wPlayerAction], a
call CheckMobileBattleError
jr c, .enemy_fainted_mobile_error
ld hl, EnemyMonHP
@@ -2916,7 +2917,7 @@
call ExitMenu
call LoadTileMapToTempTileMap
call WaitBGMap
- call ClearSGB
+ call GetMemSGBLayout
call SetPalettes
xor a
ld c, a
@@ -2935,7 +2936,7 @@
call DelayFrame
call _LoadHPBar
call WriteBackup
- call ClearSGB
+ call GetMemSGBLayout
call SetPalettes
call SendOutPkmnText
call NewBattleMonStatus
@@ -2997,10 +2998,10 @@
Function3d2f7: ; 3d2f7
call ClearBGPalettes
Function3d2fa: ; switch to fullscreen menu?
- callba Function5004f
- callba Function50405
+ callba LoadPartyMenuGFX
+ callba InitPartyMenuWithCancel
callba Function8e85
- callba Function503e0
+ callba InitPartyMenuGFX
ret
; 3d313
@@ -3146,7 +3147,7 @@
jr nz, .LostLinkBattle
; Greyscale
- ld b, 0
+ ld b, SCGB_00
call GetSGBLayout
call SetPalettes
jr .end
@@ -3344,7 +3345,7 @@
xor a
ld [wBattleParticipantsNotFainted], a
ld [wc6fc], a
- ld [wd0ec], a
+ ld [wPlayerAction], a
inc a
ld [wEnemyIsSwitching], a
call LoadTileMapToTempTileMap
@@ -3938,9 +3939,9 @@
jp .can_escape
.no_flee_item
- ld a, [wd267]
+ ld a, [wNumFleeAttempts]
inc a
- ld [wd267], a
+ ld [wNumFleeAttempts], a
ld a, [hli]
ld [hStringCmpString2 + 0], a
ld a, [hl]
@@ -3981,12 +3982,12 @@
ld a, [hQuotient + 1]
and a
jr nz, .can_escape
- ld a, [wd267]
+ ld a, [wNumFleeAttempts]
ld c, a
.loop
dec c
jr z, .cant_escape_2
- ld b, $1e
+ ld b, 30
ld a, [hQuotient + 2]
add b
ld [hQuotient + 2], a
@@ -4000,7 +4001,7 @@
cp b
jr nc, .can_escape
ld a, $1
- ld [wd0ec], a
+ ld [wPlayerAction], a
ld hl, BattleText_CantEscape2
jr .print_inescapable_text
@@ -4014,7 +4015,7 @@
.print_inescapable_text
call StdBattleTextBox
ld a, $1
- ld [wd266], a
+ ld [wFailedToFlee], a
call LoadTileMapToTempTileMap
and a
ret
@@ -4026,12 +4027,12 @@
jr z, .fled
call LoadTileMapToTempTileMap
xor a
- ld [wd0ec], a
+ ld [wPlayerAction], a
ld a, $f
ld [CurMoveNum], a
xor a
ld [CurPlayerMove], a
- call Function3e8e4
+ call LinkBattleSendReceiveAction
call Call_LoadTempTileMapToTileMap
call CheckMobileBattleError
jr c, .mobile
@@ -4886,7 +4887,7 @@
UpdatePlayerHPPal: ; 3df98
ld hl, PlayerHPPal
- jp Function3e12e
+ jp UpdateHPPal
; 3df9e
CheckDanger: ; 3df9e
@@ -4917,7 +4918,7 @@
PrintPlayerHUD: ; 3dfbf
ld de, BattleMonNick
hlcoord 10, 7
- call Function3e138
+ call ret_3e138
call PlaceString
push bc
@@ -5005,7 +5006,7 @@
call GetBaseData
ld de, EnemyMonNick
hlcoord 1, 0
- call Function3e138
+ call ret_3e138
call PlaceString
ld h, b
ld l, c
@@ -5028,12 +5029,12 @@
ld [MonType], a
callab GetGender
ld a, " "
- jr c, .asm_3e09a
+ jr c, .got_gender
ld a, "♂"
- jr nz, .asm_3e09a
+ jr nz, .got_gender
ld a, "♀"
-.asm_3e09a
+.got_gender
hlcoord 9, 1
ld [hl], a
@@ -5044,16 +5045,16 @@
predef PlaceNonFaintStatus
pop hl
pop bc
- jr nz, .asm_3e0be
+ jr nz, .skip_level
ld a, b
cp " "
- jr nz, .asm_3e0b5
+ jr nz, .print_level
dec hl
-.asm_3e0b5
+.print_level
ld a, [EnemyMonLevel]
ld [TempMonLevel], a
call PrintLevel
-.asm_3e0be
+.skip_level
ld hl, EnemyMonHP
ld a, [hli]
@@ -5061,14 +5062,14 @@
ld a, [hld]
ld [hMultiplicand + 2], a
or [hl]
- jr nz, .asm_3e0d1
+ jr nz, .not_fainted
ld c, a
ld e, a
ld d, HP_BAR_LENGTH
- jp .asm_3e11a
+ jp .draw_bar
-.asm_3e0d1
+.not_fainted
xor a
ld [hMultiplicand], a
ld a, HP_BAR_LENGTH_PX
@@ -5081,7 +5082,7 @@
ld [hMultiplier], a
ld a, b
and a
- jr z, .asm_3e105
+ jr z, .less_than_256_max
ld a, [hMultiplier]
srl b
rr a
@@ -5099,12 +5100,12 @@
ld a, b
ld [hProduct + 2], a
-.asm_3e105
+.less_than_256_max
ld a, [hProduct + 2]
ld [hDividend + 0], a
ld a, [hProduct + 3]
ld [hDividend + 1], a
- ld a, $2
+ ld a, 2
ld b, a
call Divide
ld a, [hQuotient + 2]
@@ -5113,7 +5114,7 @@
ld d, a
ld c, a
-.asm_3e11a
+.draw_bar
xor a
ld [wd10a], a
hlcoord 2, 2
@@ -5124,11 +5125,11 @@
UpdateEnemyHPPal: ; 3e127
ld hl, EnemyHPPal
- call Function3e12e
+ call UpdateHPPal
ret
; 3e12e
-Function3e12e: ; 3e12e
+UpdateHPPal: ; 3e12e
ld b, [hl]
call SetHPPal
ld a, [hl]
@@ -5137,7 +5138,7 @@
jp FinishBattleAnim
; 3e138
-Function3e138: ; 3e138
+ret_3e138: ; 3e138
ret
; 3e139
@@ -5192,7 +5193,7 @@
BattleMenu_Fight: ; 3e192
xor a
- ld [wd267], a
+ ld [wNumFleeAttempts], a
call Call_LoadTempTileMapToTileMap
and a
ret
@@ -5242,13 +5243,13 @@
jr z, .contest
callba BattlePack
- ld a, [wd0ec]
+ ld a, [wPlayerAction]
and a
jr z, .didnt_use_item
jr .got_item
.tutorial
- callba Function107bb
+ callba TutorialPack
ld a, POKE_BALL
ld [CurItem], a
call DoItemEffect
@@ -5372,7 +5373,7 @@
call _LoadHPBar
call WriteBackup
call LoadTileMapToTempTileMap
- call ClearSGB
+ call GetMemSGBLayout
call SetPalettes
jp BattleMenu
; 3e2f5
@@ -5448,13 +5449,13 @@
ld a, [CurBattleMon]
ld [LastPlayerMon], a
ld a, $2
- ld [wd0ec], a
+ ld [wPlayerAction], a
call ClearPalettes
call DelayFrame
call ClearSprites
call _LoadHPBar
call WriteBackup
- call ClearSGB
+ call GetMemSGBLayout
call SetPalettes
ld a, [CurPartyMon]
ld [CurBattleMon], a
@@ -5468,7 +5469,7 @@
and a
jr z, .not_linked
call LoadStandardMenuDataHeader
- call Function3e8e4
+ call LinkBattleSendReceiveAction
call WriteBackup
.not_linked
@@ -5585,9 +5586,9 @@
ld de, EnemyMonSpeed
call TryToRunAwayFromBattle
ld a, $0
- ld [wd266], a
+ ld [wFailedToFlee], a
ret c
- ld a, [wd0ec]
+ ld a, [wPlayerAction]
and a
ret nz
jp BattleMenu
@@ -5602,33 +5603,33 @@
cp HELD_AMULET_COIN
ret nz
ld a, 1
- ld [wc73d], a
+ ld [wAmuletCoin], a
ret
; 3e4bc
MoveSelectionScreen: ; 3e4bc
call IsMobileBattle
- jr nz, .asm_3e4c8
- callba Function100b9f
+ jr nz, .not_mobile
+ callba MobileMoveSelectionScreen
ret
-.asm_3e4c8
+.not_mobile
ld hl, EnemyMonMoves
- ld a, [wd235]
+ ld a, [wMoveSelectionMenuType]
dec a
- jr z, .asm_3e4e2
+ jr z, .got_menu_type
dec a
- jr z, .asm_3e4dd
- call Function3e786
- ret z
+ jr z, .ether_elixer_menu
+ call CheckPlayerHasUsableMoves
+ ret z ; use Struggle
ld hl, BattleMonMoves
- jr .asm_3e4e2
+ jr .got_menu_type
-.asm_3e4dd
+.ether_elixer_menu
ld a, MON_MOVES
call GetPartyParamLocation
-.asm_3e4e2
+.got_menu_type
ld de, wListMoves_MoveIndicesBuffer
ld bc, NUM_MOVES
call CopyBytes
@@ -5638,44 +5639,44 @@
hlcoord 4, 17 - NUM_MOVES - 1
ld b, 4
ld c, 14
- ld a, [wd235]
+ ld a, [wMoveSelectionMenuType]
cp $2
- jr nz, .asm_3e503
+ jr nz, .got_dims
hlcoord 4, 17 - NUM_MOVES - 1 - 4
ld b, 4
ld c, 14
-.asm_3e503
+.got_dims
call TextBox
hlcoord 6, 17 - NUM_MOVES
- ld a, [wd235]
+ ld a, [wMoveSelectionMenuType]
cp $2
- jr nz, .asm_3e513
+ jr nz, .got_start_coord
hlcoord 6, 17 - NUM_MOVES - 4
-.asm_3e513
+.got_start_coord
ld a, SCREEN_WIDTH
ld [Buffer1], a
predef ListMoves
ld b, 5
- ld a, [wd235]
+ ld a, [wMoveSelectionMenuType]
cp $2
ld a, 17 - NUM_MOVES
- jr nz, .asm_3e52c
+ jr nz, .got_default_coord
ld b, 5
ld a, 17 - NUM_MOVES - 4
-.asm_3e52c
+.got_default_coord
ld [wcfa1], a
ld a, b
ld [wcfa2], a
- ld a, [wd235]
+ ld a, [wMoveSelectionMenuType]
cp $1
- jr z, .asm_3e53e
+ jr z, .skip_inc
ld a, [CurMoveNum]
inc a
-.asm_3e53e
+.skip_inc
ld [MenuSelection2], a
ld a, $1
ld [wcfaa], a
@@ -5685,19 +5686,19 @@
ld a, $1
ld [wcfa4], a
ld c, $2c
- ld a, [wd235]
+ ld a, [wMoveSelectionMenuType]
dec a
ld b, $c1
- jr z, .asm_3e569
+ jr z, .okay
dec a
ld b, $c3
- jr z, .asm_3e569
+ jr z, .okay
ld a, [wLinkMode]
and a
- jr nz, .asm_3e569
+ jr nz, .okay
ld b, $c7
-.asm_3e569
+.okay
ld a, b
ld [wcfa8], a
ld a, c
@@ -5706,22 +5707,22 @@
ld [wcfa6], a
ld a, $10
ld [wcfa7], a
-.asm_3e57a
- ld a, [wd235]
+.menu_loop
+ ld a, [wMoveSelectionMenuType]
and a
- jr z, .asm_3e58e
+ jr z, .battle_player_moves
dec a
- jr nz, .asm_3e5a3
+ jr nz, .interpret_joypad
hlcoord 11, 14
ld de, .string_3e61c
call PlaceString
- jr .asm_3e5a3
+ jr .interpret_joypad
-.asm_3e58e
+.battle_player_moves
call MoveInfoBox
- ld a, [wd0e3]
+ ld a, [wMoveSwapBuffer]
and a
- jr z, .asm_3e5a3
+ jr z, .interpret_joypad
hlcoord 5, 13
ld bc, SCREEN_WIDTH
dec a
@@ -5728,42 +5729,42 @@
call AddNTimes
ld [hl], "▷"
-.asm_3e5a3
+.interpret_joypad
ld a, $1
ld [hBGMapMode], a
call Function1bd3
- bit 6, a ; D_UP
- jp nz, .asm_3e61d
- bit 7, a ; D_DOWN
- jp nz, .asm_3e62e
- bit 2, a ; B_BUTTON
- jp nz, .asm_3e643
- bit 1, a ; A_BUTTON
+ bit D_UP_F, a
+ jp nz, .pressed_up
+ bit D_DOWN_F, a
+ jp nz, .pressed_down
+ bit SELECT_F, a
+ jp nz, .pressed_select
+ bit B_BUTTON_F, a
push af
xor a
- ld [wd0e3], a
+ ld [wMoveSwapBuffer], a
ld a, [MenuSelection2]
dec a
ld [MenuSelection2], a
ld b, a
- ld a, [wd235]
+ ld a, [wMoveSelectionMenuType]
dec a
- jr nz, .asm_3e5d0
+ jr nz, .not_enemy_moves_process_b
pop af
ret
-.asm_3e5d0
+.not_enemy_moves_process_b
dec a
ld a, b
ld [CurMoveNum], a
- jr nz, .asm_3e5d9
+ jr nz, .use_move
pop af
ret
-.asm_3e5d9
+.use_move
pop af
ret nz
@@ -5774,16 +5775,16 @@
add hl, bc
ld a, [hl]
and $3f
- jr z, .asm_3e610
+ jr z, .no_pp_left
ld a, [PlayerDisableCount]
swap a
and $f
dec a
cp c
- jr z, .asm_3e60b
+ jr z, .move_disabled
ld a, [wc6e1]
and a
- jr nz, .asm_3e606
+ jr nz, .skip2
ld a, [MenuSelection2]
ld hl, BattleMonMoves
ld c, a
@@ -5791,19 +5792,19 @@
add hl, bc
ld a, [hl]
-.asm_3e606
+.skip2
ld [CurPlayerMove], a
xor a
ret
-.asm_3e60b
+.move_disabled
ld hl, BattleText_TheMoveIsDisabled
- jr .asm_3e613
+ jr .place_textbox_start_over
-.asm_3e610
+.no_pp_left
ld hl, BattleText_TheresNoPPLeftForThisMove
-.asm_3e613
+.place_textbox_start_over
call StdBattleTextBox
call Call_LoadTempTileMapToTileMap
jp MoveSelectionScreen
@@ -5813,17 +5814,17 @@
db "@"
; 3e61d
-.asm_3e61d
+.pressed_up
ld a, [MenuSelection2]
and a
- jp nz, .asm_3e57a
+ jp nz, .menu_loop
ld a, [wd0eb]
inc a
ld [MenuSelection2], a
- jp .asm_3e57a
+ jp .menu_loop
; 3e62e
-.asm_3e62e ; 3e62e
+.pressed_down ; 3e62e
ld a, [MenuSelection2]
ld b, a
ld a, [wd0eb]
@@ -5831,20 +5832,20 @@
inc a
endr
cp b
- jp nz, .asm_3e57a
+ jp nz, .menu_loop
ld a, $1
ld [MenuSelection2], a
- jp .asm_3e57a
+ jp .menu_loop
; 3e643
-.asm_3e643 ; 3e643
- ld a, [wd0e3]
+.pressed_select ; 3e643
+ ld a, [wMoveSwapBuffer]
and a
- jr z, .asm_3e6bf
+ jr z, .start_swap
ld hl, BattleMonMoves
- call .asm_3e6a5
+ call .swap_bytes
ld hl, BattleMonPP
- call .asm_3e6a5
+ call .swap_bytes
ld hl, PlayerDisableCount
ld a, [hl]
swap a
@@ -5852,20 +5853,20 @@
ld b, a
ld a, [MenuSelection2]
cp b
- jr nz, .asm_3e671
+ jr nz, .not_swapping_disabled_move
ld a, [hl]
and $f
ld b, a
- ld a, [wd0e3]
+ ld a, [wMoveSwapBuffer]
swap a
add b
ld [hl], a
- jr .asm_3e682
+ jr .swap_moves_in_party_struct
-.asm_3e671
- ld a, [wd0e3]
+.not_swapping_disabled_move
+ ld a, [wMoveSwapBuffer]
cp b
- jr nz, .asm_3e682
+ jr nz, .swap_moves_in_party_struct
ld a, [hl]
and $f
ld b, a
@@ -5874,28 +5875,29 @@
add b
ld [hl], a
-.asm_3e682
+.swap_moves_in_party_struct
+; Fixes the COOLTRAINER glitch
ld a, [PlayerSubStatus5]
bit SUBSTATUS_TRANSFORMED, a
- jr nz, .asm_3e69e
+ jr nz, .transformed
ld hl, PartyMon1Moves
ld a, [CurBattleMon]
call GetPartyLocation
push hl
- call .asm_3e6a5
+ call .swap_bytes
pop hl
ld bc, MON_PP - MON_MOVES
add hl, bc
- call .asm_3e6a5
+ call .swap_bytes
-.asm_3e69e
+.transformed
xor a
- ld [wd0e3], a
+ ld [wMoveSwapBuffer], a
jp MoveSelectionScreen
-.asm_3e6a5
+.swap_bytes
push hl
- ld a, [wd0e3]
+ ld a, [wMoveSwapBuffer]
dec a
ld c, a
ld b, 0
@@ -5915,9 +5917,9 @@
ld [de], a
ret
-.asm_3e6bf
+.start_swap
ld a, [MenuSelection2]
- ld [wd0e3], a
+ ld [wMoveSwapBuffer], a
jp MoveSelectionScreen
; 3e6c8
@@ -5933,7 +5935,7 @@
ld a, [PlayerDisableCount]
and a
- jr z, .asm_3e6f4
+ jr z, .not_disabled
swap a
and $f
@@ -5940,7 +5942,7 @@
ld b, a
ld a, [MenuSelection2]
cp b
- jr nz, .asm_3e6f4
+ jr nz, .not_disabled
hlcoord 1, 10
ld de, .Disabled
@@ -5947,7 +5949,7 @@
call PlaceString
jr .done
-.asm_3e6f4
+.not_disabled
ld hl, MenuSelection2
dec [hl]
call SetPlayerTurn
@@ -5974,7 +5976,7 @@
ld a, [hl]
and $3f
ld [StringBuffer1], a
- call Function3e75f
+ call .PrintPP
hlcoord 1, 9
ld de, .Type
@@ -6000,7 +6002,7 @@
; 3e75f
-Function3e75f: ; 3e75f
+.PrintPP: ; 3e75f
hlcoord 5, 11
ld a, [wLinkMode] ; What's the point of this check?
cp LINK_MOBILE
@@ -6023,13 +6025,13 @@
ret
; 3e786
-Function3e786: ; 3e786
+CheckPlayerHasUsableMoves: ; 3e786
ld a, STRUGGLE
ld [CurPlayerMove], a
ld a, [PlayerDisableCount]
and a
ld hl, BattleMonPP
- jr nz, .asm_3e79f
+ jr nz, .disabled
ld a, [hli]
or [hl]
@@ -6039,29 +6041,29 @@
or [hl]
and $3f
ret nz
- jr .asm_3e7b4
+ jr .force_struggle
-.asm_3e79f
+.disabled
swap a
and $f
ld b, a
ld d, $5
xor a
-.asm_3e7a7
+.loop
dec d
- jr z, .asm_3e7b2
+ jr z, .done
ld c, [hl]
inc hl
dec b
- jr z, .asm_3e7a7
+ jr z, .loop
or c
- jr .asm_3e7a7
+ jr .loop
-.asm_3e7b2
+.done
and a
ret nz
-.asm_3e7b4
+.force_struggle
ld hl, BattleText_PkmnHasNoMovesLeft
call StdBattleTextBox
ld c, 60
@@ -6081,9 +6083,9 @@
jr z, .not_linked
call EmptyBattleTextBox
call LoadTileMapToTempTileMap
- ld a, [wd0ec]
+ ld a, [wPlayerAction]
and a
- call z, Function3e8e4
+ call z, LinkBattleSendReceiveAction
call Call_LoadTempTileMapToTileMap
ld a, [wBattleAction]
cp BATTLEACTION_E
@@ -6247,8 +6249,8 @@
ret
; 3e8e4
-Function3e8e4: ; 3e8e4
- callba Function100a09
+LinkBattleSendReceiveAction: ; 3e8e4
+ callba _LinkBattleSendReceiveAction
ret
; 3e8eb
@@ -6569,13 +6571,13 @@
xor a
ld [hli], a
-; Full HP...
+; Full HP..
ld a, [EnemyMonMaxHP]
ld [hli], a
ld a, [EnemyMonMaxHP + 1]
ld [hl], a
-; ...unless it's a RoamMon
+; ..unless it's a RoamMon
ld a, [BattleType]
cp a, BATTLETYPE_ROAMING
jr nz, .Moves
@@ -6678,7 +6680,7 @@
call CopyBytes
.Finish
-; Only the first five base stats are copied...
+; Only the first five base stats are copied..
ld hl, BaseStats
ld de, EnemyMonBaseStats
ld b, BaseSpecialDefense - BaseStats
@@ -6716,7 +6718,7 @@
ld a, [TempEnemyMonSpecies]
dec a
ld c, a
- ld b, 1 ; set
+ ld b, SET_FLAG
ld hl, PokedexSeen
predef FlagPredef
@@ -7375,7 +7377,7 @@
push bc
push de
push hl
- ld b, $1
+ ld b, SCGB_01
call GetSGBLayout
call SetPalettes
call DelayFrame
@@ -7741,7 +7743,7 @@
ld hl, EvolvableFlags
ld a, [CurPartyMon]
ld c, a
- ld b, $1
+ ld b, SET_FLAG
predef FlagPredef
pop af
ld [CurPartyLevel], a
@@ -8450,7 +8452,7 @@
ld hl, EnemyMonDVs
predef GetUnownLetter
ld de, VTiles2
- predef Function5108b
+ predef FrontpicPredef
pop af
ld [CurPartySpecies], a
ret
@@ -8510,7 +8512,7 @@
callba ClearBattleRAM
call InitEnemy
call BackUpVBGMap2
- ld b, $0
+ ld b, SCGB_00
call GetSGBLayout
ld hl, rLCDC
res 6, [hl]
@@ -8569,7 +8571,7 @@
ld a, $1
ld [rVBK], a
ld de, w6_d000
- ld hl, VBGMap0 ; VBGMap2
+ hlbgcoord 0, 0 ; VBGMap2
lb bc, BANK(BackUpVBGMap2), $40
call Request2bpp
pop af
@@ -8659,7 +8661,7 @@
ld [wdef4], a
.skip_unown
ld de, VTiles2
- predef Function5108b
+ predef FrontpicPredef
xor a
ld [TrainerClass], a
ld [hFillBox], a
@@ -8745,7 +8747,7 @@
call CheckPayDay
xor a
ld [wd1e9], a
- predef Function421e6
+ predef EvolveAfterBattle
callba Function2ed44
ret
; 3f6d0
@@ -8759,8 +8761,8 @@
ld [AttackMissed], a
ld [TempWildMonSpecies], a
ld [OtherTrainerClass], a
- ld [wd266], a
- ld [wd267], a
+ ld [wFailedToFlee], a
+ ld [wNumFleeAttempts], a
ld [wForcedSwitch], a
ld [wd0d8], a
ld [wKeyItemsPocketCursor], a
@@ -8768,13 +8770,13 @@
ld [wd0d2], a
ld [CurMoveNum], a
ld [wBallsPocketCursor], a
- ld [wd0d6], a
- ld [wd0e4], a
- ld [wd0e0], a
- ld [wd0df], a
- ld [wd0e1], a
+ ld [wLastPocket], a
+ ld [wMenuScrollPosition], a
+ ld [wKeyItemsPocketScrollPosition], a
+ ld [wItemsPocketScrollPosition], a
+ ld [wBallsPocketScrollPosition], a
ld hl, PlayerSubStatus1
- ld b, $18
+ ld b, EnemyFuryCutterCount - PlayerSubStatus1
.loop
ld [hli], a
dec b
@@ -8790,7 +8792,7 @@
inc hl
or [hl]
ret z
- ld a, [wc73d]
+ ld a, [wAmuletCoin]
and a
jr z, .okay
ld hl, wPayDayMoney + 2
@@ -8809,7 +8811,7 @@
.okay
ld hl, wPayDayMoney + 2
ld de, Money + 2
- call Function3d0be
+ call AddBattleMoneyToAccount
ld hl, BattleText_PlayerPickuedUpPayDayMoney
call StdBattleTextBox
ld a, [InBattleTowerBattle]
@@ -8924,7 +8926,7 @@
; 3f836
-Function3f836: ; 3f836
+DisplayLinkRecord: ; 3f836
ld a, BANK(sLinkBattleStats)
call GetSRAMBank
@@ -8936,7 +8938,7 @@
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call ByteFill
call Function3200
- ld b, $8
+ ld b, SCGB_08
call GetSGBLayout
call SetPalettes
ld c, $8
@@ -9438,7 +9440,7 @@
ld [rWY], a
call WaitBGMap
call HideSprites
- ld b, $1
+ ld b, SCGB_01
call GetSGBLayout
call SetPalettes
ld a, $90
@@ -9460,7 +9462,7 @@
call ByteFill
ld de, w6_d000
- ld hl, VBGMap0
+ hlbgcoord 0, 0
lb bc, BANK(.BlankBGMap), $40
call Request2bpp
@@ -9488,7 +9490,7 @@
; What gender are we?
ld a, [wPlayerSpriteSetupFlags]
- bit 2, a
+ bit 2, a ; transformed to male
jr nz, .Chris
ld a, [PlayerGender]
bit 0, a
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -8966,7 +8966,7 @@
hlcoord 1, 0
lb bc, 4, 10
call ClearBox
- ld b, 1
+ ld b, SCGB_01
call GetSGBLayout
call SetPalettes
call BatonPass_LinkPlayerSwitch
@@ -9028,7 +9028,7 @@
ld [wd0ec], a
call LoadStandardMenuDataHeader
- ld hl, Function3e8e4
+ ld hl, LinkBattleSendReceiveAction
call CallBattleCore
call WriteBackup
@@ -9044,7 +9044,7 @@
ret z
call LoadStandardMenuDataHeader
- ld hl, Function3e8e4
+ ld hl, LinkBattleSendReceiveAction
call CallBattleCore
ld a, [OTPartyCount]
--- /dev/null
+++ b/battle/used_move_text.asm
@@ -1,0 +1,349 @@
+DisplayUsedMoveText: ; 105db0
+; battle command 03
+ ld hl, UsedMoveText
+ call BattleTextBox
+ jp WaitBGMap
+; 105db9
+
+
+UsedMoveText: ; 105db9
+; this is a stream of text and asm from 105db9 to 105ef6
+
+ text_jump _ActorNameText
+ start_asm
+
+ ld a, [hBattleTurn]
+ and a
+ jr nz, .start
+
+ ld a, [wPlayerMoveStruct + MOVE_ANIM]
+ call UpdateUsedMoves
+
+.start
+ ld a, BATTLE_VARS_LAST_MOVE
+ call GetBattleVarAddr
+ ld d, h
+ ld e, l
+
+ ld a, BATTLE_VARS_LAST_COUNTER_MOVE
+ call GetBattleVarAddr
+
+ ld a, BATTLE_VARS_MOVE_ANIM
+ call GetBattleVar
+ ld [wd265], a
+
+ push hl
+ callba CheckUserIsCharging
+ pop hl
+ jr nz, .grammar
+
+ ; update last move
+ ld a, [wd265]
+ ld [hl], a
+ ld [de], a
+
+.grammar
+ call GetMoveGrammar
+; wd265 now contains MoveGrammar
+
+
+; everything except 'instead' made redundant in localization
+
+ ; check obedience
+ ld a, [AlreadyDisobeyed]
+ and a
+ ld hl, UsedMove2Text
+ ret nz
+
+ ; check move grammar
+ ld a, [wd265]
+ cp $3
+ ld hl, UsedMove2Text
+ ret c
+ ld hl, UsedMove1Text
+ ret
+; 105e04
+
+UsedMove1Text: ; 105e04
+ text_jump _UsedMove1Text
+ start_asm
+ jr Function105e10
+; 105e0b
+
+UsedMove2Text: ; 105e0b
+ text_jump _UsedMove2Text
+ start_asm
+; 105e10
+
+Function105e10: ; 105e10
+; check obedience
+ ld a, [AlreadyDisobeyed]
+ and a
+ jr z, GetMoveNameText
+; print "instead,"
+ ld hl, UsedInsteadText
+ ret
+; 105e1a
+
+UsedInsteadText: ; 105e1a
+ text_jump _UsedInsteadText
+ start_asm
+; 105e1f
+
+GetMoveNameText: ; 105e1f
+ ld hl, MoveNameText
+ ret
+; 105e23
+
+MoveNameText: ; 105e23
+ text_jump _MoveNameText
+ start_asm
+; 105e28
+
+GetUsedMoveTextEnder: ; 105e28
+; get start address
+ ld hl, .endusedmovetexts
+
+; get move id
+ ld a, [wd265]
+
+; 2-byte pointer
+ add a
+
+; seek
+ push bc
+ ld b, $0
+ ld c, a
+ add hl, bc
+ pop bc
+
+; get pointer to usedmovetext ender
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+; 105e39
+
+.endusedmovetexts ; 105e39
+ dw EndUsedMove1Text
+ dw EndUsedMove2Text
+ dw EndUsedMove3Text
+ dw EndUsedMove4Text
+ dw EndUsedMove5Text
+; 105e43
+
+EndUsedMove1Text: ; 105e43
+ text_jump _EndUsedMove1Text
+ db "@"
+; 105e48
+EndUsedMove2Text: ; 105e48
+ text_jump _EndUsedMove2Text
+ db "@"
+; 105e4d
+EndUsedMove3Text: ; 105e4d
+ text_jump _EndUsedMove3Text
+ db "@"
+; 105e52
+EndUsedMove4Text: ; 105e52
+ text_jump _EndUsedMove4Text
+ db "@"
+; 105e57
+EndUsedMove5Text: ; 105e57
+ text_jump _EndUsedMove5Text
+ db "@"
+; 105e5c
+
+
+GetMoveGrammar: ; 105e5c
+; store move grammar type in wd265
+
+ push bc
+; c = move id
+ ld a, [wd265]
+ ld c, a
+ ld b, $0
+
+; read grammar table
+ ld hl, MoveGrammar
+.loop
+ ld a, [hli]
+; end of table?
+ cp $ff
+ jr z, .end
+; match?
+ cp c
+ jr z, .end
+; advance grammar type at $00
+ and a
+ jr nz, .loop
+; next grammar type
+ inc b
+ jr .loop
+
+.end
+; wd265 now contains move grammar
+ ld a, b
+ ld [wd265], a
+
+; we're done
+ pop bc
+ ret
+; 105e7a
+
+MoveGrammar: ; 105e7a
+; made redundant in localization
+; each move is given an identifier for what usedmovetext to use (0-4):
+
+; 0
+ db SWORDS_DANCE
+ db GROWTH
+ db STRENGTH
+ db HARDEN
+ db MINIMIZE
+ db SMOKESCREEN
+ db WITHDRAW
+ db DEFENSE_CURL
+ db EGG_BOMB
+ db SMOG
+ db BONE_CLUB
+ db FLASH
+ db SPLASH
+ db ACID_ARMOR
+ db BONEMERANG
+ db REST
+ db SHARPEN
+ db SUBSTITUTE
+ db MIND_READER
+ db SNORE
+ db PROTECT
+ db SPIKES
+ db ENDURE
+ db ROLLOUT
+ db SWAGGER
+ db SLEEP_TALK
+ db HIDDEN_POWER
+ db PSYCH_UP
+ db EXTREMESPEED
+ db 0 ; end set
+
+; 1
+ db RECOVER
+ db TELEPORT
+ db BIDE
+ db SELFDESTRUCT
+ db AMNESIA
+ db FLAIL
+ db 0 ; end set
+
+; 2
+ db MEDITATE
+ db AGILITY
+ db MIMIC
+ db DOUBLE_TEAM
+ db BARRAGE
+ db TRANSFORM
+ db STRUGGLE
+ db SCARY_FACE
+ db 0 ; end set
+
+; 3
+ db POUND
+ db SCRATCH
+ db VICEGRIP
+ db WING_ATTACK
+ db FLY
+ db BIND
+ db SLAM
+ db HORN_ATTACK
+ db WRAP
+ db THRASH
+ db TAIL_WHIP
+ db LEER
+ db BITE
+ db GROWL
+ db ROAR
+ db SING
+ db PECK
+ db ABSORB
+ db STRING_SHOT
+ db EARTHQUAKE
+ db FISSURE
+ db DIG
+ db TOXIC
+ db SCREECH
+ db METRONOME
+ db LICK
+ db CLAMP
+ db CONSTRICT
+ db POISON_GAS
+ db BUBBLE
+ db SLASH
+ db SPIDER_WEB
+ db NIGHTMARE
+ db CURSE
+ db FORESIGHT
+ db CHARM
+ db ATTRACT
+ db ROCK_SMASH
+ db 0 ; end set
+
+; all other moves = 4
+ db $ff ; end
+; 105ed0
+
+
+UpdateUsedMoves: ; 105ed0
+; append move a to PlayerUsedMoves unless it has already been used
+
+ push bc
+; start of list
+ ld hl, PlayerUsedMoves
+; get move id
+ ld b, a
+; next count
+ ld c, NUM_MOVES
+
+.loop
+; get move from the list
+ ld a, [hli]
+; not used yet?
+ and a
+ jr z, .add
+; already used?
+ cp b
+ jr z, .quit
+; next byte
+ dec c
+ jr nz, .loop
+
+; if the list is full and the move hasn't already been used
+; shift the list back one byte, deleting the first move used
+; this can occur with struggle or a new learned move
+ ld hl, PlayerUsedMoves + 1
+; 1 = 2
+ ld a, [hld]
+ ld [hli], a
+; 2 = 3
+ inc hl
+ ld a, [hld]
+ ld [hli], a
+; 3 = 4
+ inc hl
+ ld a, [hld]
+ ld [hl], a
+; 4 = new move
+ ld a, b
+ ld [PlayerUsedMoves + 3], a
+ jr .quit
+
+.add
+; go back to the byte we just inced from
+ dec hl
+; add the new move
+ ld [hl], b
+
+.quit
+; list updated
+ pop bc
+ ret
+; 105ef6
--- a/constants.asm
+++ b/constants.asm
@@ -28,4 +28,5 @@
INCLUDE "constants/radio_constants.asm"
INCLUDE "constants/sprite_constants.asm"
INCLUDE "constants/tilemap_constants.asm"
+INCLUDE "constants/cgb_constants.asm"
INCLUDE "constants/battle_tower_constants.asm"
--- /dev/null
+++ b/constants/cgb_constants.asm
@@ -1,0 +1,35 @@
+ const_def
+ const SCGB_00
+ const SCGB_01
+ const SCGB_02
+ const SCGB_03
+ const SCGB_04
+ const SCGB_05
+ const SCGB_06
+ const SCGB_07
+ const SCGB_08
+ const SCGB_09
+ const SCGB_0A
+ const SCGB_0B
+ const SCGB_0C
+ const SCGB_0D
+ const SCGB_0E
+ const SCGB_0F
+ const SCGB_10
+ const SCGB_11
+ const SCGB_12
+ const SCGB_13
+ const SCGB_14
+ const SCGB_15
+ const SCGB_16
+ const SCGB_17
+ const SCGB_18
+ const SCGB_19
+ const SCGB_1A
+ const SCGB_1B
+ const SCGB_1C
+ const SCGB_1D
+ const SCGB_1E
+
+SCGB_FC EQU -4
+SCGB_RAM EQU -1
--- a/constants/deco_constants.asm
+++ b/constants/deco_constants.asm
@@ -52,12 +52,12 @@
const PUT_AWAY_ORNAMENT
const_value = 1
- const DECO_01
+ const DECO_BEDS
const DECO_FEATHERY_BED ; 2
const DECO_PINK_BED ; 3
const DECO_POLKADOT_BED ; 4
const DECO_PIKACHU_BED ; 5
- const DECO_06
+ const DECO_CARPETS
const DECO_RED_CARPET ; 7
const DECO_BLUE_CARPET ; 8
const DECO_YELLOW_CARPET ; 9
@@ -66,21 +66,21 @@
const DECO_MAGNAPLANT ; c
const DECO_TROPICPLANT ; d
const DECO_JUMBOPLANT ; e
- const DECO_0F
+ const DECO_POSTERS
const DECO_TOWN_MAP ; 10
const DECO_PIKACHU_POSTER ; 11
const DECO_CLEFAIRY_POSTER ; 12
const DECO_JIGGLYPUFF_POSTER ; 13
- const DECO_14
+ const DECO_CONSOLES
const DECO_FAMICOM ; 15
const DECO_SNES ; 16
const DECO_N64 ; 17
const DECO_VIRTUAL_BOY ; 18
- const DECO_19
+ const DECO_BIG_DOLLS
const DECO_BIG_SNORLAX_DOLL ; 1a
const DECO_BIG_ONIX_DOLL ; 1b
const DECO_BIG_LAPRAS_DOLL ; 1c
- const DECO_1D
+ const DECO_DOLLS
const DECO_PIKACHU_DOLL ; 1e
const DECO_SURF_PIKACHU_DOLL ; 1f
const DECO_CLEFAIRY_DOLL ; 20
@@ -104,3 +104,6 @@
const DECO_TENTACOOL_DOLL ; 32
const DECO_GOLD_TROPHY_DOLL ; 33
const DECO_SILVER_TROPHY_DOLL ; 34
+
+NUM_NON_TROPHY_DECOS EQU $2b
+NUM_DECOS EQU $2d
--- a/constants/map_constants.asm
+++ b/constants/map_constants.asm
@@ -527,20 +527,20 @@
const OBJECT_PALETTE
const OBJECT_DIRECTION_WALKING
const OBJECT_FACING
- const OBJECT_09
+ const OBJECT_STEP_TYPE
const OBJECT_STEP_DURATION
- const OBJECT_11
- const OBJECT_12
+ const OBJECT_ACTION
+ const OBJECT_STEP_FRAME
const OBJECT_FACING_STEP
- const OBJECT_STANDING_TILE
const OBJECT_NEXT_TILE
- const OBJECT_MAP_X
- const OBJECT_MAP_Y
+ const OBJECT_STANDING_TILE
const OBJECT_NEXT_MAP_X
const OBJECT_NEXT_MAP_Y
- const OBJECT_20
- const OBJECT_21
- const OBJECT_22
+ const OBJECT_MAP_X
+ const OBJECT_MAP_Y
+ const OBJECT_INIT_X
+ const OBJECT_INIT_Y
+ const OBJECT_RADIUS
const OBJECT_SPRITE_X
const OBJECT_SPRITE_Y
const OBJECT_SPRITE_X_OFFSET
@@ -550,7 +550,7 @@
const OBJECT_29
const OBJECT_30
const OBJECT_31
- const OBJECT_32
+ const OBJECT_RANGE
; 33-39 are not used
; map object struct
@@ -590,9 +590,9 @@
const EMOTE_BOLT ; 5
const EMOTE_SLEEP ; 6
const EMOTE_FISH ; 7
- const EMOTE_08 ; 8
- const EMOTE_09 ; 9
- const EMOTE_0A ; 10
+ const EMOTE_SHADOW ; 8
+ const EMOTE_ROD ; 9
+ const EMOTE_BOULDER_DUST ; 10
const EMOTE_0B ; 11
EMOTE_MEM EQU -1
@@ -651,3 +651,58 @@
const PALETTE_NITE
const PALETTE_MORN
const PALETTE_DARK
+
+INVISIBLE EQU 0
+FIXED_FACING EQU 2
+SLIDING EQU 3
+EMOTE_OBJECT EQU 7
+
+ const_def
+ const PERSONTYPE_SCRIPT
+ const PERSONTYPE_ITEMFRAGMENT
+ const PERSONTYPE_TRAINER
+ const PERSONTYPE_3
+ const PERSONTYPE_4
+ const PERSONTYPE_5
+ const PERSONTYPE_6
+
+; fruit trees
+const_value SET 1
+ const FRUITTREE_ROUTE_29
+ const FRUITTREE_ROUTE_30_1
+ const FRUITTREE_ROUTE_38
+ const FRUITTREE_ROUTE_46_1
+ const FRUITTREE_ROUTE_30_2
+ const FRUITTREE_ROUTE_33
+ const FRUITTREE_ROUTE_31
+ const FRUITTREE_ROUTE_43
+ const FRUITTREE_VIOLET_CITY
+ const FRUITTREE_ROUTE_46_2
+ const FRUITTREE_ROUTE_35
+ const FRUITTREE_ROUTE_45
+ const FRUITTREE_ROUTE_36
+ const FRUITTREE_ROUTE_26
+ const FRUITTREE_ROUTE_39
+ const FRUITTREE_ROUTE_44
+ const FRUITTREE_ROUTE_37_1
+ const FRUITTREE_ROUTE_37_2
+ const FRUITTREE_ROUTE_37_3
+ const FRUITTREE_AZALEA_TOWN
+ const FRUITTREE_ROUTE_42_1
+ const FRUITTREE_ROUTE_42_2
+ const FRUITTREE_ROUTE_42_3
+ const FRUITTREE_ROUTE_11
+ const FRUITTREE_ROUTE_2
+ const FRUITTREE_ROUTE_1
+ const FRUITTREE_ROUTE_8
+ const FRUITTREE_PEWTER_CITY_1
+ const FRUITTREE_PEWTER_CITY_2
+ const FRUITTREE_FUCHSIA_CITY
+
+CMDQUEUE_TYPE EQU 0
+CMDQUEUE_ADDR EQU 1
+CMDQUEUE_03 EQU 3
+CMDQUEUE_04 EQU 4
+CMDQUEUE_05 EQU 5
+CMDQUEUE_ENTRY_SIZE EQU 6
+CMDQUEUE_CAPACITY EQU 4
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -32,6 +32,11 @@
MONS_PER_BOX EQU 20
NUM_BOXES EQU 14
+MAIL_STRUCT_LENGTH EQU $2f
+MAILBOX_CAPACITY EQU 10
+MAIL_MSG_LENGTH EQU $20
+
; hall of fame
HOF_MON_LENGTH = 1 + 2 + 2 + 1 + (PKMN_NAME_LENGTH +- 1) ; species, id, dvs, level, nick
HOF_LENGTH = 1 + HOF_MON_LENGTH * PARTY_LENGTH + 1 ; win count, party, terminator
@@ -46,15 +51,25 @@
; joypad
+ const_def
+ const A_BUTTON_F
+ const B_BUTTON_F
+ const SELECT_F
+ const START_F
+ const D_RIGHT_F
+ const D_LEFT_F
+ const D_UP_F
+ const D_DOWN_F
+
NO_INPUT EQU %00000000
-A_BUTTON EQU %00000001
-B_BUTTON EQU %00000010
-SELECT EQU %00000100
-START EQU %00001000
-D_RIGHT EQU %00010000
-D_LEFT EQU %00100000
-D_UP EQU %01000000
-D_DOWN EQU %10000000
+A_BUTTON EQU 1 << A_BUTTON_F
+B_BUTTON EQU 1 << B_BUTTON_F
+SELECT EQU 1 << SELECT_F
+START EQU 1 << START_F
+D_RIGHT EQU 1 << D_RIGHT_F
+D_LEFT EQU 1 << D_LEFT_F
+D_UP EQU 1 << D_UP_F
+D_DOWN EQU 1 << D_DOWN_F
BUTTONS EQU A_BUTTON | B_BUTTON | SELECT | START
D_PAD EQU D_RIGHT | D_LEFT | D_UP | D_DOWN
@@ -70,8 +85,8 @@
SCREEN_WIDTH EQU 20
SCREEN_HEIGHT EQU 18
-SCREEN_WIDTH_PX EQU 160
-SCREEN_HEIGHT_PX EQU 144
+SCREEN_WIDTH_PX EQU SCREEN_WIDTH * 8
+SCREEN_HEIGHT_PX EQU SCREEN_HEIGHT * 8
BG_MAP_WIDTH EQU 32
BG_MAP_HEIGHT EQU 32
@@ -161,6 +176,10 @@
const LINK_COLOSSEUM
const LINK_MOBILE
+SERIAL_TIMECAPSULE EQU $60
+SERIAL_TRADECENTER EQU $70
+SERIAL_BATTLE EQU $80
+
HMENURETURN_SCRIPT EQU %10000000
HMENURETURN_ASM EQU %11111111
@@ -189,38 +208,87 @@
NUM_BADGES EQU NUM_JOHTO_BADGES + NUM_KANTO_BADGES
const_def
- const JUMPTABLE_8D24B_FUNCTION_00
- const JUMPTABLE_8D24B_FUNCTION_01
- const JUMPTABLE_8D24B_FUNCTION_02
- const JUMPTABLE_8D24B_FUNCTION_03
- const JUMPTABLE_8D24B_FUNCTION_04
- const JUMPTABLE_8D24B_FUNCTION_05
- const JUMPTABLE_8D24B_FUNCTION_06
- const JUMPTABLE_8D24B_FUNCTION_07
- const JUMPTABLE_8D24B_FUNCTION_08
- const JUMPTABLE_8D24B_FUNCTION_09
- const JUMPTABLE_8D24B_FUNCTION_0A
- const JUMPTABLE_8D24B_FUNCTION_0B
- const JUMPTABLE_8D24B_FUNCTION_0C
- const JUMPTABLE_8D24B_FUNCTION_0D
- const JUMPTABLE_8D24B_FUNCTION_0E
- const JUMPTABLE_8D24B_FUNCTION_0F
- const JUMPTABLE_8D24B_FUNCTION_10
- const JUMPTABLE_8D24B_FUNCTION_11
- const JUMPTABLE_8D24B_FUNCTION_12
- const JUMPTABLE_8D24B_FUNCTION_13
- const JUMPTABLE_8D24B_FUNCTION_14
- const JUMPTABLE_8D24B_FUNCTION_15
- const JUMPTABLE_8D24B_FUNCTION_16
- const JUMPTABLE_8D24B_FUNCTION_17
- const JUMPTABLE_8D24B_FUNCTION_18
- const JUMPTABLE_8D24B_FUNCTION_19
- const JUMPTABLE_8D24B_FUNCTION_1A
- const JUMPTABLE_8D24B_FUNCTION_1B
- const JUMPTABLE_8D24B_FUNCTION_1C
- const JUMPTABLE_8D24B_FUNCTION_1D
- const JUMPTABLE_8D24B_FUNCTION_1E
- const JUMPTABLE_8D24B_FUNCTION_1F
- const JUMPTABLE_8D24B_FUNCTION_20
- const JUMPTABLE_8D24B_FUNCTION_21
- const JUMPTABLE_8D24B_FUNCTION_22
+ const SPRITE_ANIM_SEQ_00
+ const SPRITE_ANIM_SEQ_01
+ const SPRITE_ANIM_SEQ_02
+ const SPRITE_ANIM_SEQ_03
+ const SPRITE_ANIM_SEQ_04
+ const SPRITE_ANIM_SEQ_05
+ const SPRITE_ANIM_SEQ_06
+ const SPRITE_ANIM_SEQ_07
+ const SPRITE_ANIM_SEQ_08
+ const SPRITE_ANIM_SEQ_09
+ const SPRITE_ANIM_SEQ_0A
+ const SPRITE_ANIM_SEQ_0B
+ const SPRITE_ANIM_SEQ_0C
+ const SPRITE_ANIM_SEQ_0D
+ const SPRITE_ANIM_SEQ_0E
+ const SPRITE_ANIM_SEQ_0F
+ const SPRITE_ANIM_SEQ_10
+ const SPRITE_ANIM_SEQ_11
+ const SPRITE_ANIM_SEQ_12
+ const SPRITE_ANIM_SEQ_13
+ const SPRITE_ANIM_SEQ_14
+ const SPRITE_ANIM_SEQ_15
+ const SPRITE_ANIM_SEQ_16
+ const SPRITE_ANIM_SEQ_17
+ const SPRITE_ANIM_SEQ_18
+ const SPRITE_ANIM_SEQ_19
+ const SPRITE_ANIM_SEQ_1A
+ const SPRITE_ANIM_SEQ_1B
+ const SPRITE_ANIM_SEQ_1C
+ const SPRITE_ANIM_SEQ_1D
+ const SPRITE_ANIM_SEQ_1E
+ const SPRITE_ANIM_SEQ_1F
+ const SPRITE_ANIM_SEQ_20
+ const SPRITE_ANIM_SEQ_21
+ const SPRITE_ANIM_SEQ_22
+
+ const_def
+ const SPRITE_ANIM_INDEX_00
+ const SPRITE_ANIM_INDEX_01
+ const SPRITE_ANIM_INDEX_02
+ const SPRITE_ANIM_INDEX_03
+ const SPRITE_ANIM_INDEX_04
+ const SPRITE_ANIM_INDEX_05
+ const SPRITE_ANIM_INDEX_06
+ const SPRITE_ANIM_INDEX_07
+ const SPRITE_ANIM_INDEX_08
+ const SPRITE_ANIM_INDEX_09
+ const SPRITE_ANIM_INDEX_0A
+ const SPRITE_ANIM_INDEX_0B
+ const SPRITE_ANIM_INDEX_0C
+ const SPRITE_ANIM_INDEX_0D
+ const SPRITE_ANIM_INDEX_0E
+ const SPRITE_ANIM_INDEX_0F
+ const SPRITE_ANIM_INDEX_10
+ const SPRITE_ANIM_INDEX_11
+ const SPRITE_ANIM_INDEX_12
+ const SPRITE_ANIM_INDEX_13
+ const SPRITE_ANIM_INDEX_14
+ const SPRITE_ANIM_INDEX_15
+ const SPRITE_ANIM_INDEX_16
+ const SPRITE_ANIM_INDEX_17
+ const SPRITE_ANIM_INDEX_18
+ const SPRITE_ANIM_INDEX_19
+ const SPRITE_ANIM_INDEX_1A
+ const SPRITE_ANIM_INDEX_1B
+ const SPRITE_ANIM_INDEX_1C
+ const SPRITE_ANIM_INDEX_1D
+ const SPRITE_ANIM_INDEX_1E
+ const SPRITE_ANIM_INDEX_1F
+ const SPRITE_ANIM_INDEX_20
+ const SPRITE_ANIM_INDEX_21
+ const SPRITE_ANIM_INDEX_22
+ const SPRITE_ANIM_INDEX_23
+ const SPRITE_ANIM_INDEX_24
+ const SPRITE_ANIM_INDEX_25
+ const SPRITE_ANIM_INDEX_26
+ const SPRITE_ANIM_INDEX_27
+ const SPRITE_ANIM_INDEX_28
+ const SPRITE_ANIM_INDEX_29
+ const SPRITE_ANIM_INDEX_2A
+ const SPRITE_ANIM_INDEX_2B
+ const SPRITE_ANIM_INDEX_2C
+
+NUM_KANA EQU $2d
--- a/constants/pokemon_constants.asm
+++ b/constants/pokemon_constants.asm
@@ -291,7 +291,6 @@
MON_SDF EQUS "(PartyMon1SpclDef - PartyMon1)"
BOXMON_STRUCT_LENGTH EQUS "(PartyMon1End - PartyMon1)"
PARTYMON_STRUCT_LENGTH EQUS "(PartyMon1StatsEnd - PartyMon1)"
-SCRATCHMON_STRUCT_LENGTH EQUS "(PartyMon1StatsEnd - PartyMon1Item)"
const_value SET 1
const MONMENU_CUT ; 1
--- a/constants/script_constants.asm
+++ b/constants/script_constants.asm
@@ -3,34 +3,34 @@
LAST_TALKED EQU -2
const_def
- const VAR_STRINGBUFFER2
- const VAR_PARTYCOUNT
- const VAR_BATTLERESULT
- const VAR_BATTLETYPE
- const VAR_TIMEOFDAY
- const VAR_DEXCAUGHT
- const VAR_DEXSEEN
- const VAR_BADGES
- const VAR_MOVEMENT
- const VAR_FACING
- const VAR_HOUR
- const VAR_WEEKDAY
- const VAR_MAPGROUP
- const VAR_MAPNUMBER
- const VAR_UNOWNCOUNT
- const VAR_ROOFPALETTE
- const VAR_BOXSPACE
- const VAR_CONTESTMINUTES
- const VAR_XCOORD
- const VAR_YCOORD
- const VAR_SPECIALPHONECALL
- const VAR_15
- const VAR_KURT_APRICORNS
- const VAR_CALLERID
- const VAR_BLUECARDBALANCE
- const VAR_BUENASPASSWORD
- const VAR_KENJI_BREAK
-NUM_VARS EQU const_value
+ const VAR_STRINGBUFFER2 ; 00
+ const VAR_PARTYCOUNT ; 01
+ const VAR_BATTLERESULT ; 02
+ const VAR_BATTLETYPE ; 03
+ const VAR_TIMEOFDAY ; 04
+ const VAR_DEXCAUGHT ; 05
+ const VAR_DEXSEEN ; 06
+ const VAR_BADGES ; 07
+ const VAR_MOVEMENT ; 08
+ const VAR_FACING ; 09
+ const VAR_HOUR ; 0a
+ const VAR_WEEKDAY ; 0b
+ const VAR_MAPGROUP ; 0c
+ const VAR_MAPNUMBER ; 0d
+ const VAR_UNOWNCOUNT ; 0e
+ const VAR_ROOFPALETTE ; 0f
+ const VAR_BOXSPACE ; 10
+ const VAR_CONTESTMINUTES ; 11
+ const VAR_XCOORD ; 12
+ const VAR_YCOORD ; 13
+ const VAR_SPECIALPHONECALL ; 14
+ const VAR_15 ; 15
+ const VAR_KURT_APRICORNS ; 16
+ const VAR_CALLERID ; 17
+ const VAR_BLUECARDBALANCE ; 18
+ const VAR_BUENASPASSWORD ; 19
+ const VAR_KENJI_BREAK ; 1a
+NUM_VARS EQU const_value ; 1b
RETVAR_STRBUF2 EQU (0 << 6)
RETVAR_ADDR_DE EQU (1 << 6)
--- a/constants/sprite_constants.asm
+++ b/constants/sprite_constants.asm
@@ -220,15 +220,15 @@
const SPRITEMOVEDATA_SMASHABLE_ROCK
const SPRITEMOVEDATA_STRENGTH_BOULDER
const SPRITEMOVEDATA_FOLLOWNOTEXACT
- const SPRITEMOVEDATA_1B
- const SPRITEMOVEDATA_1C
- const SPRITEMOVEDATA_1D
+ const SPRITEMOVEDATA_SHADOW
+ const SPRITEMOVEDATA_EMOTE
+ const SPRITEMOVEDATA_SCREENSHAKE
const SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE
const SPRITEMOVEDATA_SPINCLOCKWISE
const SPRITEMOVEDATA_20
const SPRITEMOVEDATA_BIGDOLL
- const SPRITEMOVEDATA_22
- const SPRITEMOVEDATA_23
+ const SPRITEMOVEDATA_BOULDERDUST
+ const SPRITEMOVEDATA_GRASS
const SPRITEMOVEDATA_LAPRAS
const SPRITEMOVEDATA_25
NUM_SPRITEMOVEDATA EQU const_value +- 1
@@ -255,14 +255,95 @@
const SPRITEMOVEFN_SCRIPTED
const SPRITEMOVEFN_STRENGTH
const SPRITEMOVEFN_FOLLOWNOTEXACT
- const SPRITEMOVEFN_13
- const SPRITEMOVEFN_14
+ const SPRITEMOVEFN_SHADOW
+ const SPRITEMOVEFN_EMOTE
const SPRITEMOVEFN_BIG_SNORLAX
const SPRITEMOVEFN_BOUNCE
- const SPRITEMOVEFN_17
+ const SPRITEMOVEFN_SCREENSHAKE
const SPRITEMOVEFN_SPIN_CLOCKWISE
const SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE
- const SPRITEMOVEFN_1A
- const SPRITEMOVEFN_1B
+ const SPRITEMOVEFN_BOULDERDUST
+ const SPRITEMOVEFN_GRASS
MAX_OUTDOOR_SPRITES EQU 23
+
+ const_def
+ const STEP_TYPE_00
+ const STEP_TYPE_STANDING
+ const STEP_TYPE_NPC_WALK
+ const STEP_TYPE_03
+ const STEP_TYPE_04
+ const STEP_TYPE_05
+ const STEP_TYPE_PLAYER_WALK
+ const STEP_TYPE_07
+ const STEP_TYPE_NPC_JUMP
+ const STEP_TYPE_PLAYER_JUMP
+ const STEP_TYPE_HALF_STEP
+ const STEP_TYPE_BUMP
+ const STEP_TYPE_TELEPORT_FROM
+ const STEP_TYPE_TELEPORT_TO
+ const STEP_TYPE_SKYFALL
+ const STEP_TYPE_0F
+ const STEP_TYPE_GOT_BITE
+ const STEP_TYPE_ROCK_SMASH
+ const STEP_TYPE_RETURN_DIG
+ const STEP_TYPE_13
+ const STEP_TYPE_14
+ const STEP_TYPE_15
+ const STEP_TYPE_16
+ const STEP_TYPE_17
+ const STEP_TYPE_18
+ const STEP_TYPE_19
+
+ const_def
+ const PERSON_ACTION_00
+ const PERSON_ACTION_STAND
+ const PERSON_ACTION_STEP
+ const PERSON_ACTION_BUMP
+ const PERSON_ACTION_SPIN
+ const PERSON_ACTION_SPIN_FLICKER
+ const PERSON_ACTION_FISHING
+ const PERSON_ACTION_07
+ const PERSON_ACTION_EMOTE
+ const PERSON_ACTION_09
+ const PERSON_ACTION_0A
+ const PERSON_ACTION_0B
+ const PERSON_ACTION_0C
+ const PERSON_ACTION_0D
+ const PERSON_ACTION_0E
+ const PERSON_ACTION_0F
+ const PERSON_ACTION_10
+
+ const_def
+ const FACING_00
+ const FACING_01
+ const FACING_02
+ const FACING_03
+ const FACING_04
+ const FACING_05
+ const FACING_06
+ const FACING_07
+ const FACING_08
+ const FACING_09
+ const FACING_0A
+ const FACING_0B
+ const FACING_0C
+ const FACING_0D
+ const FACING_0E
+ const FACING_0F
+ const FACING_10
+ const FACING_11
+ const FACING_12
+ const FACING_13
+ const FACING_EMOTE
+ const FACING_15
+ const FACING_16
+ const FACING_17
+ const FACING_18
+ const FACING_19
+ const FACING_1A
+ const FACING_1B
+ const FACING_1C
+ const FACING_1D
+ const FACING_1E
+ const FACING_1F
--- a/constants/tilemap_constants.asm
+++ b/constants/tilemap_constants.asm
@@ -5,39 +5,39 @@
TALK EQU 1 << 4
const_value SET 1
- const TILESET_JOHTO_OUTSIDE_1 ; 01
- const TILESET_JOHTO_OUTSIDE_2 ; 02
- const TILESET_KANTO_OUTSIDE ; 03
- const TILESET_BATTLE_TOWER_OUTSIDE ; 04
- const TILESET_HOUSE_1 ; 05
- const TILESET_KRISS_HOUSE ; 06
- const TILESET_POKECENTER ; 07
- const TILESET_GATE ; 08
- const TILESET_PORT ; 09
- const TILESET_LAB ; 0a
- const TILESET_POWER_PLANT ; 0b
- const TILESET_MART ; 0c
- const TILESET_CELADON_MANSION ; 0d
- const TILESET_GAME_CORNER ; 0e
- const TILESET_GYM_1 ; 0f
- const TILESET_KURT_HOUSE ; 10
- const TILESET_TRAIN_STATION ; 11
- const TILESET_OLIVINE_GYM ; 12
- const TILESET_LIGHTHOUSE ; 13
- const TILESET_KRISS_HOUSE_2F ; 14
- const TILESET_GOLDENROD_POKECOM_CENTER_2F_MOBILE ; 15
- const TILESET_BATTLE_TOWER ; 16
- const TILESET_SPROUT_TOWER ; 17
- const TILESET_CAVE ; 18
- const TILESET_PARK ; 19
- const TILESET_RUINS_OF_ALPH ; 1a
- const TILESET_RADIO_TOWER ; 1b
- const TILESET_UNDERGROUND ; 1c
- const TILESET_ICE_PATH ; 1d
- const TILESET_WHIRL_ISLANDS ; 1e
- const TILESET_ILEX_FOREST ; 1f
- const TILESET_20 ; 20
- const TILESET_HO_OH_WORD_ROOM ; 21
- const TILESET_KABUTO_WORD_ROOM ; 22
- const TILESET_OMANYTE_WORD_ROOM ; 23
- const TILESET_AERODACTYL_WORD_ROOM ; 24
+ const TILESET_JOHTO_1 ; 01
+ const TILESET_JOHTO_2 ; 02
+ const TILESET_KANTO ; 03
+ const TILESET_BATTLE_TOWER_OUTSIDE ; 04
+ const TILESET_HOUSE_1 ; 05
+ const TILESET_KRISS_HOUSE ; 06
+ const TILESET_POKECENTER ; 07
+ const TILESET_GATE ; 08
+ const TILESET_PORT ; 09
+ const TILESET_LAB ; 0a
+ const TILESET_POWER_PLANT ; 0b
+ const TILESET_MART ; 0c
+ const TILESET_CELADON_MANSION ; 0d
+ const TILESET_GAME_CORNER ; 0e
+ const TILESET_GYM_1 ; 0f
+ const TILESET_KURT_HOUSE ; 10
+ const TILESET_TRAIN_STATION ; 11
+ const TILESET_OLIVINE_GYM ; 12
+ const TILESET_LIGHTHOUSE ; 13
+ const TILESET_KRISS_HOUSE_2F ; 14
+ const TILESET_POKECOM_CENTER ; 15
+ const TILESET_BATTLE_TOWER ; 16
+ const TILESET_SPROUT_TOWER ; 17
+ const TILESET_CAVE ; 18
+ const TILESET_PARK ; 19
+ const TILESET_RUINS_OF_ALPH ; 1a
+ const TILESET_RADIO_TOWER ; 1b
+ const TILESET_UNDERGROUND ; 1c
+ const TILESET_ICE_PATH ; 1d
+ const TILESET_WHIRL_ISLANDS ; 1e
+ const TILESET_ILEX_FOREST ; 1f
+ const TILESET_20 ; 20
+ const TILESET_HO_OH_WORD_ROOM ; 21
+ const TILESET_KABUTO_WORD_ROOM ; 22
+ const TILESET_OMANYTE_WORD_ROOM ; 23
+ const TILESET_AERODACTYL_WORD_ROOM ; 24
--- a/constants/wram_constants.asm
+++ b/constants/wram_constants.asm
@@ -7,9 +7,24 @@
WILDMON EQU 4
; Options: ; cfcc
+FAST_TEXT EQU 0
+MED_TEXT EQU 1
+SLOW_TEXT EQU 2
NO_TEXT_SCROLL EQU 4
+; bits
+STEREO EQU 5
BATTLE_SHIFT EQU 6
BATTLE_SCENE EQU 7
+
+; Options2:
+MENU_ACCOUNT EQU 0
+
+; GBPrinter:
+PRINT_LIGHTEST EQU $00
+PRINT_LIGHTER EQU $20
+PRINT_NORMAL EQU $40
+PRINT_DARKER EQU $60
+PRINT_DARKEST EQU $7f
; WalkingDirection: ; d043
STANDING EQU -1
--- a/contents.asm
+++ b/contents.asm
@@ -48,6 +48,8 @@
UNOWN_PIC_POINTERS EQU $49
TRAINER_PIC_POINTERS EQU $4A
+PICS_FIX EQU $36
+
PICS_1 EQU $48
PICS_2 EQU $49
PICS_3 EQU $4A
--- a/data/battle_tower.asm
+++ b/data/battle_tower.asm
@@ -208,6 +208,9 @@
; 1f814e
BattleTowerTrainers: ; 1f814e
+; The trainer class is not used in Crystal 1.0 due to a bug.
+; Instead, the sixth character in the trainer's name is used.
+; See misc/battle_tower_47.asm
db "HANSON@@@@", FISHER
db "SAWYER@@@@", POKEMANIAC
db "MASUDA@@@@", GUITARIST
--- a/data/battle_tower_2.asm
+++ b/data/battle_tower_2.asm
@@ -1,72 +1,1405 @@
+
BattleTowerTrainerData:: ; What exactly it is, I don't know
; Size is 70 (Nr of Trainers in BattleTower) * 0x24 (Nr of Bytes that are copied)
- db $37, $03, $0e, $09, $25, $0b, $1c, $0d, $12, $0d, $00, $05, $0e, $09, $1a, $0b, $30, $04, $3f, $06, $20, $04, $21, $0d, $0e, $09, $30, $04, $20, $04, $0b, $06, $34, $03, $06, $05
- db $36, $03, $ca, $00, $22, $08, $20, $04, $33, $0d, $11, $0d, $37, $05, $06, $05, $3f, $06, $ca, $00, $20, $04, $06, $0d, $ca, $00, $21, $03, $09, $06, $12, $04, $28, $0b, $0c, $0d
- db $32, $06, $31, $04, $02, $02, $03, $04, $22, $02, $00, $05, $40, $04, $2d, $06, $13, $0d, $18, $03, $3f, $04, $13, $0d, $1a, $0c, $33, $04, $32, $0d, $09, $06, $22, $02, $13, $0d
- db $22, $0c, $22, $0c, $0a, $09, $0b, $08, $2f, $06, $22, $07, $22, $06, $2c, $04, $1a, $06, $0d, $07, $3f, $0d, $00, $05, $0b, $08, $09, $06, $2c, $04, $1f, $0e, $1c, $0b, $41, $0b
- db $a3, $00, $41, $03, $1f, $04, $29, $00, $1c, $04, $03, $02, $3d, $05, $38, $06, $71, $00, $18, $03, $30, $06, $53, $00, $1e, $05, $b9, $00, $21, $0d, $30, $06, $d1, $00, $0a, $06
- db $13, $02, $31, $06, $04, $02, $1c, $04, $0d, $0d, $31, $0d, $39, $07, $31, $06, $24, $07, $3d, $04, $40, $04, $30, $0d, $03, $06, $08, $05, $02, $05, $14, $07, $08, $05, $1a, $0d
- db $0d, $02, $07, $02, $00, $05, $22, $02, $10, $0b, $0a, $0d, $16, $02, $01, $02, $08, $0d, $2c, $04, $23, $07, $23, $0d, $16, $02, $01, $02, $08, $0d, $02, $03, $20, $04, $23, $0d
- db $1e, $02, $22, $02, $00, $05, $20, $08, $2c, $04, $03, $02, $1d, $05, $41, $08, $41, $08, $35, $05, $40, $0b, $00, $05, $0b, $05, $0b, $02, $00, $05, $04, $04, $14, $08, $00, $05
- db $06, $0c, $09, $06, $00, $00, $0b, $09, $1e, $0c, $37, $0d, $41, $03, $06, $04, $34, $06, $22, $0c, $15, $09, $23, $0d, $02, $03, $22, $08, $41, $0d, $26, $04, $31, $0d, $01, $05
- db $22, $0c, $30, $04, $01, $05, $2c, $04, $23, $07, $01, $05, $37, $03, $3d, $04, $3c, $0d, $1c, $03, $29, $08, $3c, $0d, $18, $04, $30, $0d, $06, $05, $14, $07, $30, $0d, $06, $05
- db $0e, $06, $04, $05, $2c, $04, $1e, $0c, $38, $0d, $00, $05, $3f, $03, $3f, $06, $20, $04, $33, $0d, $04, $0d, $00, $00, $20, $04, $26, $0d, $04, $05, $0c, $04, $26, $0d, $04, $05
- db $18, $02, $33, $03, $28, $04, $2c, $04, $09, $07, $03, $05, $30, $04, $08, $09, $00, $05, $1a, $02, $32, $03, $00, $05, $3f, $05, $26, $07, $01, $05, $26, $05, $0f, $02, $00, $05
- db $3a, $0b, $3a, $0b, $00, $05, $42, $03, $19, $08, $30, $04, $39, $03, $13, $06, $13, $06, $19, $08, $21, $0d, $00, $00, $39, $03, $09, $02, $00, $05, $40, $03, $3a, $08, $2a, $0d
- db $31, $05, $11, $0e, $30, $04, $1b, $08, $07, $08, $0c, $0d, $1b, $02, $1b, $02, $01, $05, $15, $02, $0a, $04, $0e, $0d, $22, $05, $31, $06, $02, $05, $1d, $06, $3b, $07, $0e, $0d
- db $1b, $02, $2c, $04, $0d, $0d, $34, $03, $00, $03, $11, $0d, $1b, $08, $31, $04, $0b, $0d, $2f, $08, $01, $05, $00, $00, $06, $05, $10, $05, $0f, $06, $11, $0d, $06, $05, $00, $00
- db $42, $03, $30, $04, $1f, $0b, $16, $0e, $10, $07, $34, $0d, $17, $0e, $04, $0d, $00, $00, $42, $03, $19, $08, $30, $04, $0c, $05, $35, $05, $01, $05, $1e, $06, $36, $08, $41, $0d
- db $18, $03, $42, $03, $43, $04, $3a, $0b, $3b, $0b, $03, $05, $2c, $05, $06, $05, $1b, $03, $43, $04, $39, $0b, $3c, $04, $14, $0b, $0f, $05, $06, $05, $40, $03, $3f, $04, $20, $0e
- db $0c, $05, $36, $07, $30, $04, $27, $0b, $10, $08, $31, $0d, $11, $0e, $30, $04, $41, $03, $07, $0d, $2f, $08, $03, $05, $06, $05, $3f, $06, $11, $0e, $30, $04, $30, $07, $06, $05
- db $36, $03, $06, $06, $44, $04, $0b, $0e, $16, $0d, $00, $05, $32, $0d, $08, $06, $09, $0e, $44, $04, $09, $08, $22, $0d, $04, $0e, $09, $0e, $44, $04, $29, $08, $05, $0d, $00, $00
- db $3f, $06, $2c, $04, $34, $0d, $14, $05, $13, $02, $04, $02, $0c, $05, $3f, $04, $38, $0d, $02, $03, $29, $08, $32, $0d, $35, $05, $15, $06, $40, $05, $02, $03, $34, $07, $04, $0d
- db $12, $03, $02, $04, $07, $07, $28, $04, $2c, $0d, $00, $05, $2c, $03, $12, $03, $2b, $06, $0a, $04, $06, $0d, $31, $0d, $2c, $03, $12, $03, $06, $04, $0d, $06, $28, $0b, $02, $05
- db $41, $04, $3c, $0b, $34, $0d, $40, $03, $00, $03, $0d, $0d, $13, $0c, $33, $08, $31, $0d, $1e, $09, $27, $07, $3b, $0d, $22, $08, $15, $04, $11, $0d, $2c, $03, $0c, $04, $3b, $0d
- db $03, $0a, $3a, $0d, $2c, $04, $1c, $0b, $35, $07, $26, $0d, $24, $09, $43, $04, $26, $0d, $0f, $03, $1f, $07, $04, $05, $02, $03, $24, $08, $26, $0d, $3f, $03, $13, $04, $04, $05
- db $06, $05, $06, $05, $06, $05, $06, $05, $2c, $04, $03, $05, $06, $05, $06, $05, $06, $05, $06, $05, $07, $04, $03, $05, $06, $05, $06, $05, $06, $05, $06, $05, $33, $04, $03, $05
- db $27, $05, $01, $05, $00, $00, $18, $04, $19, $0d, $01, $05, $41, $05, $00, $00, $00, $00, $16, $06, $3d, $04, $19, $0d, $20, $04, $05, $05, $00, $00, $21, $03, $0c, $04, $19, $0d
- db $03, $02, $43, $03, $27, $04, $28, $04, $2d, $0d, $00, $05, $30, $05, $04, $05, $02, $03, $38, $06, $3e, $04, $41, $0d, $16, $0e, $04, $05, $02, $03, $38, $06, $20, $04, $41, $0d
- db $34, $03, $00, $03, $11, $0d, $03, $04, $1c, $0b, $07, $0d, $29, $05, $00, $05, $00, $00, $40, $04, $11, $0d, $3e, $0d, $03, $06, $11, $0d, $00, $05, $16, $0e, $0d, $06, $20, $06
- db $19, $03, $17, $0b, $20, $06, $1b, $0b, $06, $0c, $1a, $0b, $34, $03, $06, $04, $20, $06, $1b, $0b, $06, $0c, $1a, $0b, $34, $03, $36, $04, $20, $06, $1b, $0b, $06, $0c, $1a, $0b
- db $0a, $03, $0c, $0c, $25, $0a, $21, $0e, $2c, $04, $03, $02, $10, $09, $03, $08, $09, $06, $0a, $03, $31, $04, $16, $0d, $27, $05, $17, $07, $04, $05, $02, $0c, $0a, $09, $2f, $0d
- db $15, $02, $2c, $04, $03, $02, $24, $04, $39, $04, $0f, $0d, $1e, $02, $11, $02, $01, $05, $0d, $04, $39, $08, $05, $0d, $29, $05, $08, $02, $00, $05, $43, $03, $0c, $04, $3b, $0d
- db $10, $0b, $04, $04, $00, $05, $05, $08, $21, $0d, $00, $00, $1f, $05, $01, $02, $00, $05, $18, $03, $3c, $08, $31, $0d, $02, $06, $23, $0b, $31, $03, $43, $03, $13, $07, $16, $0d
- db $0f, $0e, $19, $0d, $00, $05, $0b, $0e, $2c, $04, $19, $0d, $0e, $0e, $2c, $04, $06, $05, $1f, $07, $19, $0d, $01, $05, $06, $05, $37, $03, $29, $04, $32, $0d, $19, $0d, $01, $05
- db $35, $03, $06, $04, $0d, $06, $29, $0b, $05, $0d, $00, $00, $16, $0e, $30, $04, $0b, $0d, $29, $08, $16, $0d, $00, $05, $11, $0e, $30, $04, $30, $07, $06, $05, $29, $08, $03, $05
- db $18, $04, $03, $05, $0b, $0d, $2c, $04, $1e, $0c, $01, $05, $1f, $05, $1d, $07, $1d, $07, $2c, $04, $21, $07, $01, $05, $0a, $05, $12, $02, $32, $0d, $11, $0c, $0c, $06, $1a, $0d
- db $0c, $0c, $37, $03, $1a, $03, $40, $04, $23, $0b, $26, $0a, $3f, $06, $09, $04, $1b, $07, $37, $03, $22, $08, $27, $06, $04, $0e, $03, $05, $00, $00, $26, $0a, $3b, $08, $1b, $07
- db $18, $03, $1b, $08, $29, $0b, $40, $08, $32, $0d, $00, $05, $2f, $06, $29, $0b, $0b, $0d, $2f, $08, $23, $0d, $02, $0d, $35, $05, $13, $0e, $2e, $06, $22, $06, $2f, $08, $27, $06
- db $1c, $03, $02, $0e, $31, $03, $2a, $0d, $24, $0d, $00, $00, $18, $03, $0b, $0d, $30, $08, $40, $08, $04, $05, $00, $00, $1c, $05, $01, $05, $03, $03, $02, $0e, $27, $04, $34, $0d
- db $33, $03, $30, $04, $2c, $04, $1c, $0b, $35, $07, $00, $05, $30, $04, $2c, $04, $20, $06, $1e, $09, $40, $06, $40, $04, $30, $04, $2c, $04, $20, $06, $1e, $09, $40, $06, $22, $07
- db $22, $0c, $22, $0c, $16, $0a, $35, $0d, $1c, $0b, $3f, $0d, $13, $05, $16, $0a, $40, $06, $23, $07, $06, $0d, $06, $05, $3f, $06, $16, $0a, $16, $0d, $37, $03, $2c, $04, $26, $07
- db $0e, $06, $05, $08, $04, $0d, $00, $00, $00, $00, $00, $00, $14, $05, $06, $05, $12, $02, $00, $00, $00, $00, $00, $00, $23, $05, $01, $06, $18, $0d, $00, $00, $00, $00, $00, $00
- db $18, $03, $27, $03, $03, $05, $20, $0b, $27, $06, $06, $05, $20, $0e, $12, $07, $2b, $0d, $2c, $03, $0e, $08, $35, $07, $37, $03, $27, $03, $03, $05, $42, $07, $2f, $08, $06, $05
- db $36, $03, $30, $04, $17, $04, $2c, $03, $0c, $04, $3b, $0d, $18, $03, $32, $07, $15, $0d, $35, $05, $0d, $07, $07, $0d, $09, $05, $06, $05, $0f, $0c, $09, $04, $07, $0d, $3b, $0d
- db $0b, $05, $14, $06, $24, $04, $0a, $0d, $3c, $0d, $00, $05, $14, $05, $09, $02, $32, $0d, $1e, $06, $04, $07, $06, $0d, $1a, $05, $33, $04, $03, $05, $16, $02, $00, $02, $07, $05
- db $0a, $03, $32, $07, $0b, $0e, $22, $06, $2c, $04, $29, $0b, $0a, $03, $12, $0d, $24, $04, $1a, $0b, $33, $0d, $03, $0d, $0a, $03, $35, $04, $1b, $07, $06, $05, $1e, $06, $14, $07
- db $0e, $06, $2c, $04, $00, $0d, $06, $03, $31, $04, $04, $0d, $0c, $05, $12, $02, $00, $05, $40, $03, $09, $04, $01, $0d, $35, $05, $36, $08, $00, $05, $02, $03, $31, $04, $21, $0d
- db $22, $05, $07, $0e, $30, $04, $c5, $00, $10, $02, $01, $05, $0c, $0c, $00, $01, $30, $04, $82, $00, $21, $04, $01, $05, $10, $01, $11, $05, $30, $04, $c3, $00, $3f, $04, $06, $05
- db $3a, $07, $3b, $07, $36, $03, $30, $04, $21, $04, $06, $0d, $17, $0e, $03, $05, $00, $00, $3f, $06, $21, $04, $21, $0d, $36, $05, $36, $03, $30, $04, $33, $06, $3f, $04, $0c, $0d
- db $43, $03, $20, $04, $41, $0d, $17, $06, $06, $03, $0a, $04, $3a, $06, $13, $04, $04, $0d, $08, $06, $3f, $04, $31, $0d, $43, $03, $39, $04, $04, $05, $17, $06, $39, $04, $41, $0d
- db $36, $03, $16, $04, $08, $06, $09, $08, $06, $0d, $00, $00, $1f, $0b, $03, $05, $12, $0e, $0f, $0e, $2c, $0d, $00, $05, $3a, $06, $16, $04, $38, $06, $38, $06, $2c, $0d, $00, $05
- db $11, $05, $25, $03, $33, $04, $2f, $08, $19, $0d, $00, $05, $11, $05, $25, $03, $3f, $06, $26, $04, $19, $0d, $00, $05, $11, $05, $21, $03, $35, $04, $14, $07, $19, $0d, $06, $05
- db $2c, $04, $0a, $0d, $04, $05, $33, $03, $29, $0b, $05, $0d, $00, $06, $04, $05, $09, $02, $33, $03, $07, $04, $35, $07, $33, $03, $3a, $08, $05, $0d, $3f, $06, $29, $08, $05, $0d
- db $05, $03, $1b, $04, $41, $03, $39, $0b, $3a, $0b, $01, $05, $2c, $04, $03, $05, $00, $00, $40, $07, $3e, $0d, $00, $05, $00, $0e, $09, $05, $04, $05, $19, $09, $1d, $0b, $03, $05
- db $1c, $0c, $20, $06, $05, $08, $3e, $0d, $00, $05, $00, $00, $18, $03, $1f, $0e, $11, $0a, $1c, $0b, $15, $0b, $1c, $06, $03, $0e, $06, $0c, $21, $0c, $14, $0d, $06, $05, $1f, $08
- db $37, $03, $0e, $01, $08, $01, $19, $06, $27, $0b, $03, $02, $0e, $01, $08, $01, $1b, $08, $05, $08, $21, $0d, $00, $00, $36, $03, $33, $04, $04, $05, $00, $04, $41, $08, $3b, $0d
- db $06, $02, $00, $05, $34, $03, $00, $03, $0d, $0d, $00, $05, $3c, $06, $05, $08, $16, $04, $2f, $08, $33, $0d, $02, $0d, $1c, $05, $00, $05, $18, $03, $05, $08, $1b, $04, $0c, $0d
- db $2c, $04, $13, $09, $20, $06, $39, $03, $20, $04, $3c, $0d, $05, $03, $43, $04, $0b, $0d, $22, $04, $06, $0d, $31, $0d, $24, $08, $00, $05, $02, $03, $09, $08, $06, $0d, $3b, $0d
- db $06, $03, $20, $04, $24, $0d, $24, $04, $10, $0b, $00, $05, $39, $07, $00, $05, $2a, $06, $04, $04, $3c, $04, $00, $00, $24, $04, $1c, $0b, $07, $0d, $2f, $08, $09, $06, $06, $05
- db $44, $07, $23, $0b, $33, $0d, $2c, $04, $20, $06, $24, $08, $24, $08, $00, $05, $0e, $0e, $12, $08, $09, $0b, $28, $06, $24, $08, $00, $05, $02, $03, $13, $06, $11, $08, $41, $0d
- db $36, $03, $06, $06, $30, $04, $0f, $0b, $02, $0b, $3b, $0d, $31, $0d, $00, $05, $39, $03, $20, $04, $21, $0d, $00, $00, $04, $0e, $02, $05, $06, $06, $20, $0e, $0b, $06, $27, $06
- db $14, $05, $04, $02, $09, $0e, $08, $08, $2e, $08, $41, $0d, $34, $05, $2e, $08, $21, $0d, $3f, $03, $18, $08, $00, $05, $36, $05, $05, $02, $00, $05, $17, $06, $39, $04, $00, $05
- db $34, $03, $00, $03, $11, $0d, $41, $08, $0b, $06, $06, $04, $39, $07, $00, $05, $00, $00, $36, $03, $30, $04, $07, $08, $10, $05, $15, $08, $00, $05, $3a, $06, $1e, $06, $14, $0d
- db $37, $05, $37, $05, $00, $05, $38, $05, $38, $05, $41, $05, $25, $05, $04, $05, $32, $05, $31, $05, $41, $05, $41, $05, $0f, $05, $04, $05, $0f, $05, $0f, $05, $16, $05, $01, $05
- db $1f, $0e, $36, $04, $40, $0d, $2f, $08, $1a, $0d, $00, $05, $21, $06, $35, $05, $24, $06, $1a, $06, $12, $0e, $00, $00, $1b, $05, $31, $06, $02, $05, $28, $0d, $27, $0d, $00, $00
- db $41, $08, $0b, $06, $37, $03, $08, $06, $20, $04, $3b, $0d, $15, $02, $16, $06, $26, $07, $13, $0c, $33, $08, $32, $0d, $2d, $07, $00, $05, $35, $03, $0b, $04, $28, $06, $06, $05
- db $0c, $08, $2c, $04, $1c, $0b, $06, $07, $0a, $0d, $03, $05, $30, $06, $06, $07, $00, $05, $2c, $04, $20, $06, $24, $07, $30, $06, $0b, $07, $00, $05, $2c, $04, $20, $06, $22, $07
- db $22, $0c, $22, $0c, $0a, $09, $04, $0b, $02, $07, $27, $06, $0f, $0c, $0a, $0a, $22, $06, $02, $07, $27, $06, $04, $05, $3a, $06, $0e, $0a, $22, $06, $05, $08, $02, $07, $04, $05
- db $2d, $0b, $02, $08, $37, $0d, $10, $05, $29, $07, $03, $05, $20, $0e, $0e, $0e, $0d, $06, $42, $07, $30, $08, $28, $06, $10, $05, $04, $05, $04, $05, $10, $05, $10, $05, $04, $05
- db $3f, $03, $16, $0e, $3f, $08, $0b, $0d, $2f, $08, $41, $0d, $34, $05, $00, $05, $02, $03, $3a, $06, $31, $07, $31, $0d, $21, $0e, $03, $05, $3f, $03, $16, $0e, $26, $07, $03, $05
- db $3a, $06, $2c, $03, $12, $03, $17, $0c, $28, $0b, $06, $0d, $3a, $06, $17, $0c, $23, $0b, $0d, $06, $2f, $08, $22, $0d, $14, $07, $04, $05, $17, $0c, $1c, $0b, $1b, $07, $00, $05
- db $1b, $02, $00, $05, $0c, $08, $2c, $04, $23, $0b, $32, $0d, $2b, $07, $1f, $04, $3b, $0d, $09, $07, $09, $07, $00, $05, $26, $05, $00, $05, $3f, $03, $22, $07, $d1, $00, $32, $0d
+; Second argument points to an entry in Unknown_170470, to which the first argument is compared.
+
+BattleTowerTrainer1DataTable:
+ db $37, 3
+ db $0e, 9
+ db $25, 11
+ db $1c, 13
+ db $12, 13
+ db $00, 5
+ db $0e, 9
+ db $1a, 11
+ db $30, 4
+ db $3f, 6
+ db $20, 4
+ db $21, 13
+ db $0e, 9
+ db $30, 4
+ db $20, 4
+ db $0b, 6
+ db $34, 3
+ db $06, 5
+
+BattleTowerTrainer2DataTable:
+ db $36, 3
+ db $ca, 0
+ db $22, 8
+ db $20, 4
+ db $33, 13
+ db $11, 13
+ db $37, 5
+ db $06, 5
+ db $3f, 6
+ db $ca, 0
+ db $20, 4
+ db $06, 13
+ db $ca, 0
+ db $21, 3
+ db $09, 6
+ db $12, 4
+ db $28, 11
+ db $0c, 13
+
+BattleTowerTrainer3DataTable:
+ db $32, 6
+ db $31, 4
+ db $02, 2
+ db $03, 4
+ db $22, 2
+ db $00, 5
+ db $40, 4
+ db $2d, 6
+ db $13, 13
+ db $18, 3
+ db $3f, 4
+ db $13, 13
+ db $1a, 12
+ db $33, 4
+ db $32, 13
+ db $09, 6
+ db $22, 2
+ db $13, 13
+
+BattleTowerTrainer4DataTable:
+ db $22, 12
+ db $22, 12
+ db $0a, 9
+ db $0b, 8
+ db $2f, 6
+ db $22, 7
+ db $22, 6
+ db $2c, 4
+ db $1a, 6
+ db $0d, 7
+ db $3f, 13
+ db $00, 5
+ db $0b, 8
+ db $09, 6
+ db $2c, 4
+ db $1f, 14
+ db $1c, 11
+ db $41, 11
+
+BattleTowerTrainer5DataTable:
+ db $a3, 0
+ db $41, 3
+ db $1f, 4
+ db $29, 0
+ db $1c, 4
+ db $03, 2
+ db $3d, 5
+ db $38, 6
+ db $71, 0
+ db $18, 3
+ db $30, 6
+ db $53, 0
+ db $1e, 5
+ db $b9, 0
+ db $21, 13
+ db $30, 6
+ db $d1, 0
+ db $0a, 6
+
+BattleTowerTrainer6DataTable:
+ db $13, 2
+ db $31, 6
+ db $04, 2
+ db $1c, 4
+ db $0d, 13
+ db $31, 13
+ db $39, 7
+ db $31, 6
+ db $24, 7
+ db $3d, 4
+ db $40, 4
+ db $30, 13
+ db $03, 6
+ db $08, 5
+ db $02, 5
+ db $14, 7
+ db $08, 5
+ db $1a, 13
+
+BattleTowerTrainer7DataTable:
+ db $0d, 2
+ db $07, 2
+ db $00, 5
+ db $22, 2
+ db $10, 11
+ db $0a, 13
+ db $16, 2
+ db $01, 2
+ db $08, 13
+ db $2c, 4
+ db $23, 7
+ db $23, 13
+ db $16, 2
+ db $01, 2
+ db $08, 13
+ db $02, 3
+ db $20, 4
+ db $23, 13
+
+BattleTowerTrainer8DataTable:
+ db $1e, 2
+ db $22, 2
+ db $00, 5
+ db $20, 8
+ db $2c, 4
+ db $03, 2
+ db $1d, 5
+ db $41, 8
+ db $41, 8
+ db $35, 5
+ db $40, 11
+ db $00, 5
+ db $0b, 5
+ db $0b, 2
+ db $00, 5
+ db $04, 4
+ db $14, 8
+ db $00, 5
+
+BattleTowerTrainer9DataTable:
+ db $06, 12
+ db $09, 6
+ db $00, 0
+ db $0b, 9
+ db $1e, 12
+ db $37, 13
+ db $41, 3
+ db $06, 4
+ db $34, 6
+ db $22, 12
+ db $15, 9
+ db $23, 13
+ db $02, 3
+ db $22, 8
+ db $41, 13
+ db $26, 4
+ db $31, 13
+ db $01, 5
+
+BattleTowerTrainer10DataTable:
+ db $22, 12
+ db $30, 4
+ db $01, 5
+ db $2c, 4
+ db $23, 7
+ db $01, 5
+ db $37, 3
+ db $3d, 4
+ db $3c, 13
+ db $1c, 3
+ db $29, 8
+ db $3c, 13
+ db $18, 4
+ db $30, 13
+ db $06, 5
+ db $14, 7
+ db $30, 13
+ db $06, 5
+
+BattleTowerTrainer11DataTable:
+ db $0e, 6
+ db $04, 5
+ db $2c, 4
+ db $1e, 12
+ db $38, 13
+ db $00, 5
+ db $3f, 3
+ db $3f, 6
+ db $20, 4
+ db $33, 13
+ db $04, 13
+ db $00, 0
+ db $20, 4
+ db $26, 13
+ db $04, 5
+ db $0c, 4
+ db $26, 13
+ db $04, 5
+
+BattleTowerTrainer12DataTable:
+ db $18, 2
+ db $33, 3
+ db $28, 4
+ db $2c, 4
+ db $09, 7
+ db $03, 5
+ db $30, 4
+ db $08, 9
+ db $00, 5
+ db $1a, 2
+ db $32, 3
+ db $00, 5
+ db $3f, 5
+ db $26, 7
+ db $01, 5
+ db $26, 5
+ db $0f, 2
+ db $00, 5
+
+BattleTowerTrainer13DataTable:
+ db $3a, 11
+ db $3a, 11
+ db $00, 5
+ db $42, 3
+ db $19, 8
+ db $30, 4
+ db $39, 3
+ db $13, 6
+ db $13, 6
+ db $19, 8
+ db $21, 13
+ db $00, 0
+ db $39, 3
+ db $09, 2
+ db $00, 5
+ db $40, 3
+ db $3a, 8
+ db $2a, 13
+
+BattleTowerTrainer14DataTable:
+ db $31, 5
+ db $11, 14
+ db $30, 4
+ db $1b, 8
+ db $07, 8
+ db $0c, 13
+ db $1b, 2
+ db $1b, 2
+ db $01, 5
+ db $15, 2
+ db $0a, 4
+ db $0e, 13
+ db $22, 5
+ db $31, 6
+ db $02, 5
+ db $1d, 6
+ db $3b, 7
+ db $0e, 13
+
+BattleTowerTrainer15DataTable:
+ db $1b, 2
+ db $2c, 4
+ db $0d, 13
+ db $34, 3
+ db $00, 3
+ db $11, 13
+ db $1b, 8
+ db $31, 4
+ db $0b, 13
+ db $2f, 8
+ db $01, 5
+ db $00, 0
+ db $06, 5
+ db $10, 5
+ db $0f, 6
+ db $11, 13
+ db $06, 5
+ db $00, 0
+
+BattleTowerTrainer16DataTable:
+ db $42, 3
+ db $30, 4
+ db $1f, 11
+ db $16, 14
+ db $10, 7
+ db $34, 13
+ db $17, 14
+ db $04, 13
+ db $00, 0
+ db $42, 3
+ db $19, 8
+ db $30, 4
+ db $0c, 5
+ db $35, 5
+ db $01, 5
+ db $1e, 6
+ db $36, 8
+ db $41, 13
+
+BattleTowerTrainer17DataTable:
+ db $18, 3
+ db $42, 3
+ db $43, 4
+ db $3a, 11
+ db $3b, 11
+ db $03, 5
+ db $2c, 5
+ db $06, 5
+ db $1b, 3
+ db $43, 4
+ db $39, 11
+ db $3c, 4
+ db $14, 11
+ db $0f, 5
+ db $06, 5
+ db $40, 3
+ db $3f, 4
+ db $20, 14
+
+BattleTowerTrainer18DataTable:
+ db $0c, 5
+ db $36, 7
+ db $30, 4
+ db $27, 11
+ db $10, 8
+ db $31, 13
+ db $11, 14
+ db $30, 4
+ db $41, 3
+ db $07, 13
+ db $2f, 8
+ db $03, 5
+ db $06, 5
+ db $3f, 6
+ db $11, 14
+ db $30, 4
+ db $30, 7
+ db $06, 5
+
+BattleTowerTrainer19DataTable:
+ db $36, 3
+ db $06, 6
+ db $44, 4
+ db $0b, 14
+ db $16, 13
+ db $00, 5
+ db $32, 13
+ db $08, 6
+ db $09, 14
+ db $44, 4
+ db $09, 8
+ db $22, 13
+ db $04, 14
+ db $09, 14
+ db $44, 4
+ db $29, 8
+ db $05, 13
+ db $00, 0
+
+BattleTowerTrainer20DataTable:
+ db $3f, 6
+ db $2c, 4
+ db $34, 13
+ db $14, 5
+ db $13, 2
+ db $04, 2
+ db $0c, 5
+ db $3f, 4
+ db $38, 13
+ db $02, 3
+ db $29, 8
+ db $32, 13
+ db $35, 5
+ db $15, 6
+ db $40, 5
+ db $02, 3
+ db $34, 7
+ db $04, 13
+
+BattleTowerTrainer21DataTable:
+ db $12, 3
+ db $02, 4
+ db $07, 7
+ db $28, 4
+ db $2c, 13
+ db $00, 5
+ db $2c, 3
+ db $12, 3
+ db $2b, 6
+ db $0a, 4
+ db $06, 13
+ db $31, 13
+ db $2c, 3
+ db $12, 3
+ db $06, 4
+ db $0d, 6
+ db $28, 11
+ db $02, 5
+
+BattleTowerTrainer22DataTable:
+ db $41, 4
+ db $3c, 11
+ db $34, 13
+ db $40, 3
+ db $00, 3
+ db $0d, 13
+ db $13, 12
+ db $33, 8
+ db $31, 13
+ db $1e, 9
+ db $27, 7
+ db $3b, 13
+ db $22, 8
+ db $15, 4
+ db $11, 13
+ db $2c, 3
+ db $0c, 4
+ db $3b, 13
+
+BattleTowerTrainer23DataTable:
+ db $03, 10
+ db $3a, 13
+ db $2c, 4
+ db $1c, 11
+ db $35, 7
+ db $26, 13
+ db $24, 9
+ db $43, 4
+ db $26, 13
+ db $0f, 3
+ db $1f, 7
+ db $04, 5
+ db $02, 3
+ db $24, 8
+ db $26, 13
+ db $3f, 3
+ db $13, 4
+ db $04, 5
+
+BattleTowerTrainer24DataTable:
+ db $06, 5
+ db $06, 5
+ db $06, 5
+ db $06, 5
+ db $2c, 4
+ db $03, 5
+ db $06, 5
+ db $06, 5
+ db $06, 5
+ db $06, 5
+ db $07, 4
+ db $03, 5
+ db $06, 5
+ db $06, 5
+ db $06, 5
+ db $06, 5
+ db $33, 4
+ db $03, 5
+
+BattleTowerTrainer25DataTable:
+ db $27, 5
+ db $01, 5
+ db $00, 0
+ db $18, 4
+ db $19, 13
+ db $01, 5
+ db $41, 5
+ db $00, 0
+ db $00, 0
+ db $16, 6
+ db $3d, 4
+ db $19, 13
+ db $20, 4
+ db $05, 5
+ db $00, 0
+ db $21, 3
+ db $0c, 4
+ db $19, 13
+
+BattleTowerTrainer26DataTable:
+ db $03, 2
+ db $43, 3
+ db $27, 4
+ db $28, 4
+ db $2d, 13
+ db $00, 5
+ db $30, 5
+ db $04, 5
+ db $02, 3
+ db $38, 6
+ db $3e, 4
+ db $41, 13
+ db $16, 14
+ db $04, 5
+ db $02, 3
+ db $38, 6
+ db $20, 4
+ db $41, 13
+
+BattleTowerTrainer27DataTable:
+ db $34, 3
+ db $00, 3
+ db $11, 13
+ db $03, 4
+ db $1c, 11
+ db $07, 13
+ db $29, 5
+ db $00, 5
+ db $00, 0
+ db $40, 4
+ db $11, 13
+ db $3e, 13
+ db $03, 6
+ db $11, 13
+ db $00, 5
+ db $16, 14
+ db $0d, 6
+ db $20, 6
+
+BattleTowerTrainer28DataTable:
+ db $19, 3
+ db $17, 11
+ db $20, 6
+ db $1b, 11
+ db $06, 12
+ db $1a, 11
+ db $34, 3
+ db $06, 4
+ db $20, 6
+ db $1b, 11
+ db $06, 12
+ db $1a, 11
+ db $34, 3
+ db $36, 4
+ db $20, 6
+ db $1b, 11
+ db $06, 12
+ db $1a, 11
+
+BattleTowerTrainer29DataTable:
+ db $0a, 3
+ db $0c, 12
+ db $25, 10
+ db $21, 14
+ db $2c, 4
+ db $03, 2
+ db $10, 9
+ db $03, 8
+ db $09, 6
+ db $0a, 3
+ db $31, 4
+ db $16, 13
+ db $27, 5
+ db $17, 7
+ db $04, 5
+ db $02, 12
+ db $0a, 9
+ db $2f, 13
+
+BattleTowerTrainer30DataTable:
+ db $15, 2
+ db $2c, 4
+ db $03, 2
+ db $24, 4
+ db $39, 4
+ db $0f, 13
+ db $1e, 2
+ db $11, 2
+ db $01, 5
+ db $0d, 4
+ db $39, 8
+ db $05, 13
+ db $29, 5
+ db $08, 2
+ db $00, 5
+ db $43, 3
+ db $0c, 4
+ db $3b, 13
+
+BattleTowerTrainer31DataTable:
+ db $10, 11
+ db $04, 4
+ db $00, 5
+ db $05, 8
+ db $21, 13
+ db $00, 0
+ db $1f, 5
+ db $01, 2
+ db $00, 5
+ db $18, 3
+ db $3c, 8
+ db $31, 13
+ db $02, 6
+ db $23, 11
+ db $31, 3
+ db $43, 3
+ db $13, 7
+ db $16, 13
+
+BattleTowerTrainer32DataTable:
+ db $0f, 14
+ db $19, 13
+ db $00, 5
+ db $0b, 14
+ db $2c, 4
+ db $19, 13
+ db $0e, 14
+ db $2c, 4
+ db $06, 5
+ db $1f, 7
+ db $19, 13
+ db $01, 5
+ db $06, 5
+ db $37, 3
+ db $29, 4
+ db $32, 13
+ db $19, 13
+ db $01, 5
+
+BattleTowerTrainer33DataTable:
+ db $35, 3
+ db $06, 4
+ db $0d, 6
+ db $29, 11
+ db $05, 13
+ db $00, 0
+ db $16, 14
+ db $30, 4
+ db $0b, 13
+ db $29, 8
+ db $16, 13
+ db $00, 5
+ db $11, 14
+ db $30, 4
+ db $30, 7
+ db $06, 5
+ db $29, 8
+ db $03, 5
+
+BattleTowerTrainer34DataTable:
+ db $18, 4
+ db $03, 5
+ db $0b, 13
+ db $2c, 4
+ db $1e, 12
+ db $01, 5
+ db $1f, 5
+ db $1d, 7
+ db $1d, 7
+ db $2c, 4
+ db $21, 7
+ db $01, 5
+ db $0a, 5
+ db $12, 2
+ db $32, 13
+ db $11, 12
+ db $0c, 6
+ db $1a, 13
+
+BattleTowerTrainer35DataTable:
+ db $0c, 12
+ db $37, 3
+ db $1a, 3
+ db $40, 4
+ db $23, 11
+ db $26, 10
+ db $3f, 6
+ db $09, 4
+ db $1b, 7
+ db $37, 3
+ db $22, 8
+ db $27, 6
+ db $04, 14
+ db $03, 5
+ db $00, 0
+ db $26, 10
+ db $3b, 8
+ db $1b, 7
+
+BattleTowerTrainer36DataTable:
+ db $18, 3
+ db $1b, 8
+ db $29, 11
+ db $40, 8
+ db $32, 13
+ db $00, 5
+ db $2f, 6
+ db $29, 11
+ db $0b, 13
+ db $2f, 8
+ db $23, 13
+ db $02, 13
+ db $35, 5
+ db $13, 14
+ db $2e, 6
+ db $22, 6
+ db $2f, 8
+ db $27, 6
+
+BattleTowerTrainer37DataTable:
+ db $1c, 3
+ db $02, 14
+ db $31, 3
+ db $2a, 13
+ db $24, 13
+ db $00, 0
+ db $18, 3
+ db $0b, 13
+ db $30, 8
+ db $40, 8
+ db $04, 5
+ db $00, 0
+ db $1c, 5
+ db $01, 5
+ db $03, 3
+ db $02, 14
+ db $27, 4
+ db $34, 13
+
+BattleTowerTrainer38DataTable:
+ db $33, 3
+ db $30, 4
+ db $2c, 4
+ db $1c, 11
+ db $35, 7
+ db $00, 5
+ db $30, 4
+ db $2c, 4
+ db $20, 6
+ db $1e, 9
+ db $40, 6
+ db $40, 4
+ db $30, 4
+ db $2c, 4
+ db $20, 6
+ db $1e, 9
+ db $40, 6
+ db $22, 7
+
+BattleTowerTrainer39DataTable:
+ db $22, 12
+ db $22, 12
+ db $16, 10
+ db $35, 13
+ db $1c, 11
+ db $3f, 13
+ db $13, 5
+ db $16, 10
+ db $40, 6
+ db $23, 7
+ db $06, 13
+ db $06, 5
+ db $3f, 6
+ db $16, 10
+ db $16, 13
+ db $37, 3
+ db $2c, 4
+ db $26, 7
+
+BattleTowerTrainer40DataTable:
+ db $0e, 6
+ db $05, 8
+ db $04, 13
+ db $00, 0
+ db $00, 0
+ db $00, 0
+ db $14, 5
+ db $06, 5
+ db $12, 2
+ db $00, 0
+ db $00, 0
+ db $00, 0
+ db $23, 5
+ db $01, 6
+ db $18, 13
+ db $00, 0
+ db $00, 0
+ db $00, 0
+
+BattleTowerTrainer41DataTable:
+ db $18, 3
+ db $27, 3
+ db $03, 5
+ db $20, 11
+ db $27, 6
+ db $06, 5
+ db $20, 14
+ db $12, 7
+ db $2b, 13
+ db $2c, 3
+ db $0e, 8
+ db $35, 7
+ db $37, 3
+ db $27, 3
+ db $03, 5
+ db $42, 7
+ db $2f, 8
+ db $06, 5
+
+BattleTowerTrainer42DataTable:
+ db $36, 3
+ db $30, 4
+ db $17, 4
+ db $2c, 3
+ db $0c, 4
+ db $3b, 13
+ db $18, 3
+ db $32, 7
+ db $15, 13
+ db $35, 5
+ db $0d, 7
+ db $07, 13
+ db $09, 5
+ db $06, 5
+ db $0f, 12
+ db $09, 4
+ db $07, 13
+ db $3b, 13
+
+BattleTowerTrainer43DataTable:
+ db $0b, 5
+ db $14, 6
+ db $24, 4
+ db $0a, 13
+ db $3c, 13
+ db $00, 5
+ db $14, 5
+ db $09, 2
+ db $32, 13
+ db $1e, 6
+ db $04, 7
+ db $06, 13
+ db $1a, 5
+ db $33, 4
+ db $03, 5
+ db $16, 2
+ db $00, 2
+ db $07, 5
+
+BattleTowerTrainer44DataTable:
+ db $0a, 3
+ db $32, 7
+ db $0b, 14
+ db $22, 6
+ db $2c, 4
+ db $29, 11
+ db $0a, 3
+ db $12, 13
+ db $24, 4
+ db $1a, 11
+ db $33, 13
+ db $03, 13
+ db $0a, 3
+ db $35, 4
+ db $1b, 7
+ db $06, 5
+ db $1e, 6
+ db $14, 7
+
+BattleTowerTrainer45DataTable:
+ db $0e, 6
+ db $2c, 4
+ db $00, 13
+ db $06, 3
+ db $31, 4
+ db $04, 13
+ db $0c, 5
+ db $12, 2
+ db $00, 5
+ db $40, 3
+ db $09, 4
+ db $01, 13
+ db $35, 5
+ db $36, 8
+ db $00, 5
+ db $02, 3
+ db $31, 4
+ db $21, 13
+
+BattleTowerTrainer46DataTable:
+ db $22, 5
+ db $07, 14
+ db $30, 4
+ db $c5, 0
+ db $10, 2
+ db $01, 5
+ db $0c, 12
+ db $00, 1
+ db $30, 4
+ db $82, 0
+ db $21, 4
+ db $01, 5
+ db $10, 1
+ db $11, 5
+ db $30, 4
+ db $c3, 0
+ db $3f, 4
+ db $06, 5
+
+BattleTowerTrainer47DataTable:
+ db $3a, 7
+ db $3b, 7
+ db $36, 3
+ db $30, 4
+ db $21, 4
+ db $06, 13
+ db $17, 14
+ db $03, 5
+ db $00, 0
+ db $3f, 6
+ db $21, 4
+ db $21, 13
+ db $36, 5
+ db $36, 3
+ db $30, 4
+ db $33, 6
+ db $3f, 4
+ db $0c, 13
+
+BattleTowerTrainer48DataTable:
+ db $43, 3
+ db $20, 4
+ db $41, 13
+ db $17, 6
+ db $06, 3
+ db $0a, 4
+ db $3a, 6
+ db $13, 4
+ db $04, 13
+ db $08, 6
+ db $3f, 4
+ db $31, 13
+ db $43, 3
+ db $39, 4
+ db $04, 5
+ db $17, 6
+ db $39, 4
+ db $41, 13
+
+BattleTowerTrainer49DataTable:
+ db $36, 3
+ db $16, 4
+ db $08, 6
+ db $09, 8
+ db $06, 13
+ db $00, 0
+ db $1f, 11
+ db $03, 5
+ db $12, 14
+ db $0f, 14
+ db $2c, 13
+ db $00, 5
+ db $3a, 6
+ db $16, 4
+ db $38, 6
+ db $38, 6
+ db $2c, 13
+ db $00, 5
+
+BattleTowerTrainer50DataTable:
+ db $11, 5
+ db $25, 3
+ db $33, 4
+ db $2f, 8
+ db $19, 13
+ db $00, 5
+ db $11, 5
+ db $25, 3
+ db $3f, 6
+ db $26, 4
+ db $19, 13
+ db $00, 5
+ db $11, 5
+ db $21, 3
+ db $35, 4
+ db $14, 7
+ db $19, 13
+ db $06, 5
+
+BattleTowerTrainer51DataTable:
+ db $2c, 4
+ db $0a, 13
+ db $04, 5
+ db $33, 3
+ db $29, 11
+ db $05, 13
+ db $00, 6
+ db $04, 5
+ db $09, 2
+ db $33, 3
+ db $07, 4
+ db $35, 7
+ db $33, 3
+ db $3a, 8
+ db $05, 13
+ db $3f, 6
+ db $29, 8
+ db $05, 13
+
+BattleTowerTrainer52DataTable:
+ db $05, 3
+ db $1b, 4
+ db $41, 3
+ db $39, 11
+ db $3a, 11
+ db $01, 5
+ db $2c, 4
+ db $03, 5
+ db $00, 0
+ db $40, 7
+ db $3e, 13
+ db $00, 5
+ db $00, 14
+ db $09, 5
+ db $04, 5
+ db $19, 9
+ db $1d, 11
+ db $03, 5
+
+BattleTowerTrainer53DataTable:
+ db $1c, 12
+ db $20, 6
+ db $05, 8
+ db $3e, 13
+ db $00, 5
+ db $00, 0
+ db $18, 3
+ db $1f, 14
+ db $11, 10
+ db $1c, 11
+ db $15, 11
+ db $1c, 6
+ db $03, 14
+ db $06, 12
+ db $21, 12
+ db $14, 13
+ db $06, 5
+ db $1f, 8
+
+BattleTowerTrainer54DataTable:
+ db $37, 3
+ db $0e, 1
+ db $08, 1
+ db $19, 6
+ db $27, 11
+ db $03, 2
+ db $0e, 1
+ db $08, 1
+ db $1b, 8
+ db $05, 8
+ db $21, 13
+ db $00, 0
+ db $36, 3
+ db $33, 4
+ db $04, 5
+ db $00, 4
+ db $41, 8
+ db $3b, 13
+
+BattleTowerTrainer55DataTable:
+ db $06, 2
+ db $00, 5
+ db $34, 3
+ db $00, 3
+ db $0d, 13
+ db $00, 5
+ db $3c, 6
+ db $05, 8
+ db $16, 4
+ db $2f, 8
+ db $33, 13
+ db $02, 13
+ db $1c, 5
+ db $00, 5
+ db $18, 3
+ db $05, 8
+ db $1b, 4
+ db $0c, 13
+
+BattleTowerTrainer56DataTable:
+ db $2c, 4
+ db $13, 9
+ db $20, 6
+ db $39, 3
+ db $20, 4
+ db $3c, 13
+ db $05, 3
+ db $43, 4
+ db $0b, 13
+ db $22, 4
+ db $06, 13
+ db $31, 13
+ db $24, 8
+ db $00, 5
+ db $02, 3
+ db $09, 8
+ db $06, 13
+ db $3b, 13
+
+BattleTowerTrainer57DataTable:
+ db $06, 3
+ db $20, 4
+ db $24, 13
+ db $24, 4
+ db $10, 11
+ db $00, 5
+ db $39, 7
+ db $00, 5
+ db $2a, 6
+ db $04, 4
+ db $3c, 4
+ db $00, 0
+ db $24, 4
+ db $1c, 11
+ db $07, 13
+ db $2f, 8
+ db $09, 6
+ db $06, 5
+
+BattleTowerTrainer58DataTable:
+ db $44, 7
+ db $23, 11
+ db $33, 13
+ db $2c, 4
+ db $20, 6
+ db $24, 8
+ db $24, 8
+ db $00, 5
+ db $0e, 14
+ db $12, 8
+ db $09, 11
+ db $28, 6
+ db $24, 8
+ db $00, 5
+ db $02, 3
+ db $13, 6
+ db $11, 8
+ db $41, 13
+
+BattleTowerTrainer59DataTable:
+ db $36, 3
+ db $06, 6
+ db $30, 4
+ db $0f, 11
+ db $02, 11
+ db $3b, 13
+ db $31, 13
+ db $00, 5
+ db $39, 3
+ db $20, 4
+ db $21, 13
+ db $00, 0
+ db $04, 14
+ db $02, 5
+ db $06, 6
+ db $20, 14
+ db $0b, 6
+ db $27, 6
+
+BattleTowerTrainer60DataTable:
+ db $14, 5
+ db $04, 2
+ db $09, 14
+ db $08, 8
+ db $2e, 8
+ db $41, 13
+ db $34, 5
+ db $2e, 8
+ db $21, 13
+ db $3f, 3
+ db $18, 8
+ db $00, 5
+ db $36, 5
+ db $05, 2
+ db $00, 5
+ db $17, 6
+ db $39, 4
+ db $00, 5
+
+BattleTowerTrainer61DataTable:
+ db $34, 3
+ db $00, 3
+ db $11, 13
+ db $41, 8
+ db $0b, 6
+ db $06, 4
+ db $39, 7
+ db $00, 5
+ db $00, 0
+ db $36, 3
+ db $30, 4
+ db $07, 8
+ db $10, 5
+ db $15, 8
+ db $00, 5
+ db $3a, 6
+ db $1e, 6
+ db $14, 13
+
+BattleTowerTrainer62DataTable:
+ db $37, 5
+ db $37, 5
+ db $00, 5
+ db $38, 5
+ db $38, 5
+ db $41, 5
+ db $25, 5
+ db $04, 5
+ db $32, 5
+ db $31, 5
+ db $41, 5
+ db $41, 5
+ db $0f, 5
+ db $04, 5
+ db $0f, 5
+ db $0f, 5
+ db $16, 5
+ db $01, 5
+
+BattleTowerTrainer63DataTable:
+ db $1f, 14
+ db $36, 4
+ db $40, 13
+ db $2f, 8
+ db $1a, 13
+ db $00, 5
+ db $21, 6
+ db $35, 5
+ db $24, 6
+ db $1a, 6
+ db $12, 14
+ db $00, 0
+ db $1b, 5
+ db $31, 6
+ db $02, 5
+ db $28, 13
+ db $27, 13
+ db $00, 0
+
+BattleTowerTrainer64DataTable:
+ db $41, 8
+ db $0b, 6
+ db $37, 3
+ db $08, 6
+ db $20, 4
+ db $3b, 13
+ db $15, 2
+ db $16, 6
+ db $26, 7
+ db $13, 12
+ db $33, 8
+ db $32, 13
+ db $2d, 7
+ db $00, 5
+ db $35, 3
+ db $0b, 4
+ db $28, 6
+ db $06, 5
+
+BattleTowerTrainer65DataTable:
+ db $0c, 8
+ db $2c, 4
+ db $1c, 11
+ db $06, 7
+ db $0a, 13
+ db $03, 5
+ db $30, 6
+ db $06, 7
+ db $00, 5
+ db $2c, 4
+ db $20, 6
+ db $24, 7
+ db $30, 6
+ db $0b, 7
+ db $00, 5
+ db $2c, 4
+ db $20, 6
+ db $22, 7
+
+BattleTowerTrainer66DataTable:
+ db $22, 12
+ db $22, 12
+ db $0a, 9
+ db $04, 11
+ db $02, 7
+ db $27, 6
+ db $0f, 12
+ db $0a, 10
+ db $22, 6
+ db $02, 7
+ db $27, 6
+ db $04, 5
+ db $3a, 6
+ db $0e, 10
+ db $22, 6
+ db $05, 8
+ db $02, 7
+ db $04, 5
+
+BattleTowerTrainer67DataTable:
+ db $2d, 11
+ db $02, 8
+ db $37, 13
+ db $10, 5
+ db $29, 7
+ db $03, 5
+ db $20, 14
+ db $0e, 14
+ db $0d, 6
+ db $42, 7
+ db $30, 8
+ db $28, 6
+ db $10, 5
+ db $04, 5
+ db $04, 5
+ db $10, 5
+ db $10, 5
+ db $04, 5
+
+BattleTowerTrainer68DataTable:
+ db $3f, 3
+ db $16, 14
+ db $3f, 8
+ db $0b, 13
+ db $2f, 8
+ db $41, 13
+ db $34, 5
+ db $00, 5
+ db $02, 3
+ db $3a, 6
+ db $31, 7
+ db $31, 13
+ db $21, 14
+ db $03, 5
+ db $3f, 3
+ db $16, 14
+ db $26, 7
+ db $03, 5
+
+BattleTowerTrainer69DataTable:
+ db $3a, 6
+ db $2c, 3
+ db $12, 3
+ db $17, 12
+ db $28, 11
+ db $06, 13
+ db $3a, 6
+ db $17, 12
+ db $23, 11
+ db $0d, 6
+ db $2f, 8
+ db $22, 13
+ db $14, 7
+ db $04, 5
+ db $17, 12
+ db $1c, 11
+ db $1b, 7
+ db $00, 5
+
+BattleTowerTrainer70DataTable:
+ db $1b, 2
+ db $00, 5
+ db $0c, 8
+ db $2c, 4
+ db $23, 11
+ db $32, 13
+ db $2b, 7
+ db $1f, 4
+ db $3b, 13
+ db $09, 7
+ db $09, 7
+ db $00, 5
+ db $26, 5
+ db $00, 5
+ db $3f, 3
+ db $22, 7
+ db $d1, 0
+ db $32, 13
+BattleTowerTrainerDataEnd:
--- a/engine/battle_start.asm
+++ b/engine/battle_start.asm
@@ -26,8 +26,8 @@
ld a, $5
ld [rSVBK], a
- ld hl, wMapPals
- ld bc, $0040
+ ld hl, UnknBGPals
+ ld bc, 8 palettes
xor a
call ByteFill
@@ -84,7 +84,7 @@
Function8c2a0: ; 8c2a0
call LoadTrainerBattlePokeballTiles
- ld hl, VBGMap0
+ hlbgcoord 0, 0
call Function8c2cf
ret
; 8c2aa
@@ -308,9 +308,11 @@
StartTrainerBattle_SetUpForWavyOutro: ; 8c3e8 (23:43e8)
callba Function5602
- ld a, $5
+ ld a, $5 ; BANK(LYOverrides)
ld [rSVBK], a
+
call StartTrainerBattle_NextScene
+
ld a, $43
ld [hLCDStatCustom], a
xor a
@@ -342,8 +344,8 @@
ld d, [hl]
add [hl]
ld [hl], a
- ld a, $90
- ld bc, wd100
+ ld a, LYOverridesEnd - LYOverrides
+ ld bc, LYOverrides
ld e, $0
.loop
@@ -364,7 +366,7 @@
StartTrainerBattle_SetUpForSpinOutro: ; 8c43d (23:443d)
callba Function5602
- ld a, $5
+ ld a, $5 ; BANK(LYOverrides)
ld [rSVBK], a
call StartTrainerBattle_NextScene
xor a
@@ -507,7 +509,7 @@
StartTrainerBattle_SetUpForRandomScatterOutro: ; 8c578 (23:4578)
callba Function5602
- ld a, $5
+ ld a, $5 ; BANK(LYOverrides)
ld [rSVBK], a
call StartTrainerBattle_NextScene
ld a, $10
@@ -659,7 +661,7 @@
ld [rSVBK], a
call .copypals
push hl
- ld de, wMapPals + 8 * 7
+ ld de, UnknBGPals + 8 * 7
ld bc, $8
call CopyBytes
pop hl
@@ -678,15 +680,15 @@
ret
.copypals: ; 8c677 (23:4677)
- ld de, wMapPals + 8 * 7
+ ld de, UnknBGPals + 8 * 7
call .copy
ld de, BGPals + 8 * 7
call .copy
- ld de, Unkn2Pals + 8 * 6
+ ld de, UnknOBPals + 8 * 6
call .copy
ld de, OBPals + 8 * 6
call .copy
- ld de, Unkn2Pals + 8 * 7
+ ld de, UnknOBPals + 8 * 7
call .copy
ld de, OBPals + 8 * 7
@@ -739,10 +741,12 @@
push af
ld a, $5
ld [rSVBK], a
+
ld hl, LYOverrides
call .wipe
ld hl, LYOverridesBackup
call .wipe
+
pop af
ld [rSVBK], a
ret
--- a/engine/billspc.asm
+++ b/engine/billspc.asm
@@ -1165,13 +1165,13 @@
cp $f
jr z, .asm_e2bf5
ld b, a
- call Functione3396
+ call GetBoxPointer
ld a, b
call GetSRAMBank
push hl
- ld bc, $35
+ ld bc, sBoxMon1Level - sBox
add hl, bc
- ld bc, $20
+ ld bc, BOXMON_STRUCT_LENGTH
ld a, e
call AddNTimes
ld a, [hl]
@@ -1178,17 +1178,17 @@
ld [TempMonLevel], a
pop hl
push hl
- ld bc, $17
+ ld bc, sBoxMon1Item - sBox
add hl, bc
- ld bc, $20
+ ld bc, BOXMON_STRUCT_LENGTH
ld a, e
call AddNTimes
ld a, [hl]
ld [TempMonItem], a
pop hl
- ld bc, $2b
+ ld bc, sBoxMon1DVs - sBox
add hl, bc
- ld bc, $20
+ ld bc, BOXMON_STRUCT_LENGTH
ld a, e
call AddNTimes
ld de, TempMonDVs
@@ -1201,19 +1201,19 @@
ret
.asm_e2bc6
ld hl, PartyMon1Level
- ld bc, $30
+ ld bc, PARTYMON_STRUCT_LENGTH
ld a, e
call AddNTimes
ld a, [hl]
ld [TempMonLevel], a
ld hl, PartyMon1Item
- ld bc, $30
+ ld bc, PARTYMON_STRUCT_LENGTH
ld a, e
call AddNTimes
ld a, [hl]
ld [TempMonItem], a
ld hl, PartyMon1DVs
- ld bc, $30
+ ld bc, PARTYMON_STRUCT_LENGTH
ld a, e
call AddNTimes
ld de, TempMonDVs
@@ -1228,7 +1228,7 @@
ld a, BANK(sBox)
call GetSRAMBank
ld hl, sBoxMon1Level
- ld bc, $20
+ ld bc, BOXMON_STRUCT_LENGTH
ld a, e
call AddNTimes
ld a, [hl]
@@ -1235,7 +1235,7 @@
ld [TempMonLevel], a
ld hl, sBoxMon1Item
- ld bc, $20
+ ld bc, BOXMON_STRUCT_LENGTH
ld a, e
call AddNTimes
ld a, [hl]
@@ -1242,7 +1242,7 @@
ld [TempMonItem], a
ld hl, sBoxMon1DVs
- ld bc, $20
+ ld bc, BOXMON_STRUCT_LENGTH
ld a, e
call AddNTimes
ld de, TempMonDVs
@@ -1307,6 +1307,7 @@
ld de, String_e2c67
call PlaceString
ret
+
.asm_e2c7c
inc de
ld a, [de]
@@ -1320,13 +1321,13 @@
cp $f
jr z, .asm_e2cf1
push hl
- call Functione3396
+ call GetBoxPointer
ld a, b
call GetSRAMBank
push hl
- ld bc, $16
+ ld bc, sBoxMons - sBox
add hl, bc
- ld bc, $20
+ ld bc, BOXMON_STRUCT_LENGTH
ld a, e
call AddNTimes
ld a, [hl]
@@ -1333,13 +1334,13 @@
pop hl
and a
jr z, .asm_e2cc2
- ld bc, $372
+ ld bc, sBoxMonNicknames - sBox
add hl, bc
- ld bc, $b
+ ld bc, PKMN_NAME_LENGTH
ld a, e
call AddNTimes
ld de, StringBuffer1
- ld bc, $b
+ ld bc, PKMN_NAME_LENGTH
call CopyBytes
call CloseSRAM
pop hl
@@ -1346,10 +1347,12 @@
ld de, StringBuffer1
call PlaceString
ret
+
.asm_e2cc2
call CloseSRAM
pop hl
jr .asm_e2d23
+
.asm_e2cc8
push hl
ld hl, PartySpecies
@@ -1359,19 +1362,21 @@
and a
jr z, .asm_e2cee
ld hl, PartyMonNicknames
- ld bc, $b
+ ld bc, PKMN_NAME_LENGTH
ld a, e
call AddNTimes
ld de, StringBuffer1
- ld bc, $b
+ ld bc, PKMN_NAME_LENGTH
call CopyBytes
pop hl
ld de, StringBuffer1
call PlaceString
ret
+
.asm_e2cee
pop hl
jr .asm_e2d23
+
.asm_e2cf1
push hl
ld a, BANK(sBox)
@@ -1394,6 +1399,7 @@
ld de, StringBuffer1
call PlaceString
ret
+
.asm_e2d1f
call CloseSRAM
pop hl
@@ -1422,7 +1428,7 @@
cp $f
jr z, .asm_e2db7
ld b, a
- call Functione3396
+ call GetBoxPointer
ld a, b
call GetSRAMBank
inc hl
@@ -1447,6 +1453,7 @@
inc a
ld [wd004], a
jr .asm_e2d57
+
.asm_e2d79
call CloseSRAM
ld a, $ff
@@ -1455,6 +1462,7 @@
inc a
ld [wcb2c], a
ret
+
.asm_e2d87
ld hl, PartySpecies
.asm_e2d8a
@@ -1478,6 +1486,7 @@
inc a
ld [wd004], a
jr .asm_e2d8a
+
.asm_e2dac
ld a, $ff
ld [de], a
@@ -1485,6 +1494,7 @@
inc a
ld [wcb2c], a
ret
+
.asm_e2db7
ld a, BANK(sBox)
call GetSRAMBank
@@ -1510,6 +1520,7 @@
inc a
ld [wd004], a
jr .asm_e2dbf
+
.asm_e2de1
call CloseSRAM
ld a, $ff
@@ -1538,10 +1549,11 @@
jr nz, .asm_e2e0b
call ClearSprites
ret
+
.asm_e2e0b
ld hl, Unknown_e2e2b
ld de, Sprites
-.done1
+.loop
ld a, [hl]
cp $ff
ret z
@@ -1561,7 +1573,7 @@
ld a, [hli]
ld [de], a
inc de
- jr .done1
+ jr .loop
; e2e2b (38:6e2b)
Unknown_e2e2b: ; e2e2b
@@ -1795,11 +1807,11 @@
ld a, BANK(sBox)
call GetSRAMBank
ld hl, sBoxSpecies
- call Functione3357
+ call CopySpeciesToTemp
ld hl, sBoxMonNicknames
- call Functione3363
+ call CopyNicknameToTemp
ld hl, sBoxMonOT
- call Functione3376
+ call CopyOTNameToTemp
ld hl, sBoxMons
ld bc, BOXMON_STRUCT_LENGTH
ld a, [CurPartyMon]
@@ -1813,11 +1825,11 @@
.asm_e3020
ld hl, PartySpecies
- call Functione3357
+ call CopySpeciesToTemp
ld hl, PartyMonNicknames
- call Functione3363
+ call CopyNicknameToTemp
ld hl, PartyMonOT
- call Functione3376
+ call CopyOTNameToTemp
ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
ld bc, PARTYMON_STRUCT_LENGTH
ld a, [CurPartyMon]
@@ -1829,27 +1841,27 @@
.asm_e3048
ld b, a
- call Functione3396
+ call GetBoxPointer
ld a, b
call GetSRAMBank
push hl
inc hl
- call Functione3357
+ call CopySpeciesToTemp
pop hl
push hl
- ld bc, $372
+ ld bc, sBoxMonNicknames - sBox
add hl, bc
- call Functione3363
+ call CopyNicknameToTemp
pop hl
push hl
- ld bc, $296
+ ld bc, sBoxMonOT - sBox
add hl, bc
- call Functione3376
+ call CopyOTNameToTemp
pop hl
- ld bc, $16
+ ld bc, sBoxMons - sBox
add hl, bc
- ld bc, $20
- call Functione3389
+ ld bc, BOXMON_STRUCT_LENGTH
+ call CopyMonToTemp
call CloseSRAM
callba Function5088b
ret
@@ -2141,7 +2153,7 @@
ld a, [wcb31]
dec a
ld e, a
- callba Function14ac2
+ callba MovePkmnWOMail_SaveGame
ld a, [wcb30]
ld hl, wcb2f
add [hl]
@@ -2149,14 +2161,14 @@
ld a, $1
call GetSRAMBank
ld hl, sBoxSpecies
- call Functione3357
+ call CopySpeciesToTemp
ld hl, sBoxMonNicknames
- call Functione3363
+ call CopyNicknameToTemp
ld hl, sBoxMonOT
- call Functione3376
+ call CopyOTNameToTemp
ld hl, sBoxMons
ld bc, BOXMON_STRUCT_LENGTH
- call Functione3389
+ call CopyMonToTemp
call CloseSRAM
callba Function5088b
ld a, PC_DEPOSIT
@@ -2169,7 +2181,7 @@
ld a, [wcb2e]
dec a
ld e, a
- callba Function14ac2
+ callba MovePkmnWOMail_SaveGame
ld a, [wcb2b]
ld hl, wcb2a
add [hl]
@@ -2184,14 +2196,14 @@
add [hl]
ld [CurPartyMon], a
ld hl, PartySpecies
- call Functione3357
+ call CopySpeciesToTemp
ld hl, PartyMonNicknames
- call Functione3363
+ call CopyNicknameToTemp
ld hl, PartyMonOT
- call Functione3376
+ call CopyOTNameToTemp
ld hl, PartyMon1Species
ld bc, PARTYMON_STRUCT_LENGTH
- call Functione3389
+ call CopyMonToTemp
xor a
ld [wPokemonWithdrawDepositParameter], a
callba Functione039
@@ -2207,7 +2219,7 @@
ret
; e3357
-Functione3357: ; e3357 (38:7357)
+CopySpeciesToTemp: ; e3357 (38:7357)
ld a, [CurPartyMon]
ld c, a
ld b, $0
@@ -2216,36 +2228,36 @@
ld [CurPartySpecies], a
ret
-Functione3363: ; e3363 (38:7363)
- ld bc, $b
+CopyNicknameToTemp: ; e3363 (38:7363)
+ ld bc, PKMN_NAME_LENGTH
ld a, [CurPartyMon]
call AddNTimes
ld de, wd002
- ld bc, $b
+ ld bc, PKMN_NAME_LENGTH
call CopyBytes
ret
-Functione3376: ; e3376 (38:7376)
- ld bc, $b
+CopyOTNameToTemp: ; e3376 (38:7376)
+ ld bc, NAME_LENGTH
ld a, [CurPartyMon]
call AddNTimes
ld de, wd00d
- ld bc, $b
+ ld bc, NAME_LENGTH
call CopyBytes
ret
-Functione3389: ; e3389 (38:7389)
+CopyMonToTemp: ; e3389 (38:7389)
ld a, [CurPartyMon]
call AddNTimes
- ld de, wd018
+ ld de, wd018_Mon
call CopyBytes
ret
-Functione3396: ; e3396 (38:7396)
+GetBoxPointer: ; e3396 (38:7396)
dec b
ld c, b
ld b, 0
- ld hl, Unknown_e33a6
+ ld hl, .boxes
rept 3
add hl, bc
endr
@@ -2257,7 +2269,7 @@
ret
; e33a6 (38:73a6)
-Unknown_e33a6: ; e33a6
+.boxes: ; e33a6
; bank, address
dba sBox1
dba sBox2
@@ -2350,7 +2362,7 @@
ld hl, _ChangeBox_menudataheader
call CopyMenuDataHeader
xor a
- ld [wd0e4], a
+ ld [wMenuScrollPosition], a
hlcoord 0, 4
lb bc, 8, 9
call TextBox
@@ -2535,7 +2547,7 @@
; e36f9
Functione36f9: ; e36f9 (38:76f9)
- ld hl, MenuDataHeader_0xe377b
+ ld hl, .MenuDataHeader
call LoadMenuDataHeader
call InterpretMenu2
call ExitMenu
@@ -2542,34 +2554,34 @@
ret c
ld a, [MenuSelection2]
cp $1
- jr z, .asm_e3734
+ jr z, .Switch
cp $2
- jr z, .asm_e3745
+ jr z, .Name
cp $3
- jr z, .asm_e3717
+ jr z, .Print
and a
ret
-.asm_e3717
call GetBoxCount
and a
- jr z, .asm_e372f
+ jr z, .EmptyBox
ld e, l
ld d, h
ld a, [MenuSelection]
dec a
ld c, a
- callba Function844bc
+ callba PrintPCBox
call Functione35e2
and a
ret
-.asm_e372f
+.EmptyBox
call Functione37be
and a
ret
-.asm_e3734
+.Switch
ld a, [MenuSelection]
dec a
ld e, a
@@ -2576,11 +2588,11 @@
ld a, [wCurBox]
cp e
ret z
- callba Function14a83
+ callba ChangeBoxSaveGame
ret
-.asm_e3745
- ld b, $4
+.Name
+ ld b, $4 ; box
ld de, wd002
callba NamingScreen
call ClearTileMap
@@ -2604,15 +2616,15 @@
hlcoord 11, 7 ; XXX
-MenuDataHeader_0xe377b: ; 0xe377b
+.MenuDataHeader: ; 0xe377b
db $40 ; flags
db 04, 11 ; start coords
db 13, 19 ; end coords
- dw MenuData2_0xe3783
+ dw .MenuData2
db 1 ; default option
; 0xe3783
-MenuData2_0xe3783: ; 0xe3783
+.MenuData2: ; 0xe3783
db $80 ; flags
db 4 ; items
db "SWITCH@"
--- a/engine/breeding/egg.asm
+++ b/engine/breeding/egg.asm
@@ -192,7 +192,7 @@
call ResetWindow
call LoadStandardMenuDataHeader
call Function16f70
- call Function2b4d
+ call ExitAllMenus
call RestartMapMusic
jp LoadMoveSprites
; 16f70
@@ -219,7 +219,7 @@
push de
- callba Function4dbb8
+ callba SetEggMonCaughtData
callba MobileFn_10608d
ld a, [CurPartyMon]
ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
@@ -650,7 +650,7 @@
ld hl, BattleMonDVs
predef GetUnownLetter
pop de
- predef_jump Function5108b
+ predef_jump FrontpicPredef
Function17254: ; 17254 (5:7254)
push af
@@ -775,7 +775,7 @@
Function17363: ; 17363 (5:7363)
ld [PlayerHPPal], a
- ld b, $b
+ ld b, SCGB_0B
ld c, $0
jp GetSGBLayout
@@ -792,8 +792,8 @@
add $4c
ld d, a
ld e, $58
- ld a, $19
- call Function3b2a
+ ld a, SPRITE_ANIM_INDEX_19
+ call _InitSpriteAnimStruct
ld hl, $3
add hl, bc
ld [hl], $0
@@ -821,8 +821,8 @@
ld b, a
push hl
push bc
- ld a, $1c
- call Function3b2a
+ ld a, SPRITE_ANIM_INDEX_1C
+ call _InitSpriteAnimStruct
ld hl, $3
add hl, bc
ld [hl], $0
--- a/engine/buena_phone_scripts.asm
+++ b/engine/buena_phone_scripts.asm
@@ -1,168 +1,170 @@
BuenaPhoneScript1:
checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
- iftrue UnknownScript_0xa0b73
+ iftrue BuenaPhoneScript_Rocket
checkcode VAR_HOUR
- if_greater_than 17, UnknownScript_0xa0b4b
- scall UnknownScript_0xa0b32
- jump UnknownScript_0xa0c0e
+ if_greater_than 17, BuenaPhoneScript_AfterMidnight1
+ scall BuenaPhoneScript_CheckTimeOfDay1
+ jump BuenaPhoneScript_Random1
BuenaPhoneScript2:
checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
- iftrue UnknownScript_0xa0b73
- scall UnknownScript_0xa0b4f
- jump UnknownScript_0xa0b77
+ iftrue BuenaPhoneScript_Rocket
+ scall BuenaPhoneScript_CheckTimeOfDay2
+ jump BuenaPhoneScript_Random2
-UnknownScript_0xa0b32:
+BuenaPhoneScript_CheckTimeOfDay1:
checkmorn
- iftrue UnknownScript_0xa0b41
+ iftrue .morn
checkday
- iftrue UnknownScript_0xa0b46
+ iftrue .day
writetext UnknownText_0xa0d42
keeptextopen
end
-UnknownScript_0xa0b41:
+.morn:
writetext UnknownText_0xa0c28
keeptextopen
end
-UnknownScript_0xa0b46:
+.day:
writetext UnknownText_0xa0c72
keeptextopen
end
-UnknownScript_0xa0b4b:
+BuenaPhoneScript_AfterMidnight1:
writetext UnknownText_0xa0caf
end
-UnknownScript_0xa0b4f:
+BuenaPhoneScript_CheckTimeOfDay2:
checkcode VAR_HOUR
- if_greater_than 17, UnknownScript_0xa0b6e
+ if_greater_than 17, BuenaPhoneScript_AfterMidnight2
checkmorn
- iftrue UnknownScript_0xa0b64
+ iftrue .morn
checkday
- iftrue UnknownScript_0xa0b69
+ iftrue .day
writetext UnknownText_0xa0e29
keeptextopen
end
-UnknownScript_0xa0b64:
+.morn:
writetext UnknownText_0xa0d96
keeptextopen
end
-UnknownScript_0xa0b69:
+.day:
writetext UnknownText_0xa0dcf
keeptextopen
end
-UnknownScript_0xa0b6e:
+BuenaPhoneScript_AfterMidnight2:
writetext UnknownText_0xa0e01
keeptextopen
end
-UnknownScript_0xa0b73:
+BuenaPhoneScript_Rocket:
writetext UnknownText_0xa0e5e
end
-UnknownScript_0xa0b77:
+BuenaPhoneScript_Random2:
checkevent EVENT_BEAT_ELITE_FOUR
- iftrue UnknownScript_0xa0b82
+ iftrue .PostE4
random 11
- jump UnknownScript_0xa0b84
+ jump .Jumptable
-UnknownScript_0xa0b82:
+.PostE4:
random 14
-UnknownScript_0xa0b84:
- if_equal 0, UnknownScript_0xa0bbc
- if_equal 1, UnknownScript_0xa0bc2
- if_equal 2, UnknownScript_0xa0bc8
- if_equal 3, UnknownScript_0xa0bce
- if_equal 4, UnknownScript_0xa0bd4
- if_equal 5, UnknownScript_0xa0bda
- if_equal 6, UnknownScript_0xa0be0
- if_equal 7, UnknownScript_0xa0be6
- if_equal 8, UnknownScript_0xa0bec
- if_equal 9, UnknownScript_0xa0bf2
- if_equal 10, UnknownScript_0xa0bf8
- if_equal 11, UnknownScript_0xa0bfe
- if_equal 12, UnknownScript_0xa0c04
- if_equal 13, UnknownScript_0xa0c0a
+.Jumptable:
+ if_equal 0, .zero
+ if_equal 1, .one
+ if_equal 2, .two
+ if_equal 3, .three
+ if_equal 4, .four
+ if_equal 5, .five
+ if_equal 6, .six
+ if_equal 7, .seven
+ if_equal 8, .eight
+ if_equal 9, .nine
+ if_equal 10, .ten
+ if_equal 11, .eleven
+ if_equal 12, .twelve
+ if_equal 13, .thirteen
-UnknownScript_0xa0bbc:
+.zero:
writetext UnknownText_0xa0efb
- jump UnknownScript_0xa0c0d
+ jump .finish
-UnknownScript_0xa0bc2:
+.one:
writetext UnknownText_0xa0fcf
- jump UnknownScript_0xa0c0d
+ jump .finish
-UnknownScript_0xa0bc8:
+.two:
writetext UnknownText_0xa109d
- jump UnknownScript_0xa0c0d
+ jump .finish
-UnknownScript_0xa0bce:
+.three:
writetext UnknownText_0xa1143
- jump UnknownScript_0xa0c0d
+ jump .finish
-UnknownScript_0xa0bd4:
+.four:
writetext UnknownText_0xa1244
- jump UnknownScript_0xa0c0d
+ jump .finish
-UnknownScript_0xa0bda:
+.five:
writetext UnknownText_0xa1318
- jump UnknownScript_0xa0c0d
+ jump .finish
-UnknownScript_0xa0be0:
+.six:
writetext UnknownText_0xa13d8
- jump UnknownScript_0xa0c0d
+ jump .finish
-UnknownScript_0xa0be6:
+.seven:
writetext UnknownText_0xa1488
- jump UnknownScript_0xa0c0d
+ jump .finish
-UnknownScript_0xa0bec:
+.eight:
writetext UnknownText_0xa15de
- jump UnknownScript_0xa0c0d
+ jump .finish
-UnknownScript_0xa0bf2:
+.nine:
writetext UnknownText_0xa1717
- jump UnknownScript_0xa0c0d
+ jump .finish
-UnknownScript_0xa0bf8:
+.ten:
writetext UnknownText_0xa183d
- jump UnknownScript_0xa0c0d
+ jump .finish
-UnknownScript_0xa0bfe:
+.eleven:
writetext UnknownText_0xa19b1
- jump UnknownScript_0xa0c0d
+ jump .finish
-UnknownScript_0xa0c04:
+.twelve:
writetext UnknownText_0xa1ac0
- jump UnknownScript_0xa0c0d
+ jump .finish
-UnknownScript_0xa0c0a:
+.thirteen:
writetext UnknownText_0xa1bed
-UnknownScript_0xa0c0d:
+.finish:
end
-UnknownScript_0xa0c0e:
+BuenaPhoneScript_Random1:
random 3
- if_equal 0, UnknownScript_0xa0c1c
- if_equal 1, UnknownScript_0xa0c20
- if_equal 2, UnknownScript_0xa0c24
+ if_equal 0, .zero
+ if_equal 1, .one
+ if_equal 2, .two
-UnknownScript_0xa0c1c:
+.zero:
writetext UnknownText_0xa1c88
end
-UnknownScript_0xa0c20:
+.one:
writetext UnknownText_0xa1d5f
end
-UnknownScript_0xa0c24:
+.two:
writetext UnknownText_0xa1e2f
end
; a0c28
+
+INCLUDE "text/phone/buena.asm"
--- a/engine/card_flip.asm
+++ b/engine/card_flip.asm
@@ -1621,7 +1621,7 @@
ld a, $5
ld [rSVBK], a
ld hl, Palette_e0c93
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $48
call CopyBytes
pop af
@@ -1751,7 +1751,7 @@
ld a, $93
ld [rLCDC], a
call WaitBGMap
- ld b, $18
+ ld b, SCGB_18
call GetSGBLayout
ld a, $e4
call DmgToCgbBGPals
--- a/engine/color.asm
+++ b/engine/color.asm
@@ -1,4 +1,4 @@
-
+PALPACKET_LENGTH EQU $10
INCLUDE "predef/sgb.asm"
SHINY_ATK_BIT EQU 5
@@ -89,7 +89,7 @@
push bc
ld hl, PalPacket_9ce6
ld de, wcda9
- ld bc, PalPacket_9cf6 - PalPacket_9ce6
+ ld bc, PALPACKET_LENGTH
call CopyBytes
pop bc
pop de
@@ -117,7 +117,7 @@
ret
; 8ade
-Function8ade: ; 8ade
+Function8ade: ; 8ade SGB layout $fc
ld hl, wcd9b
ld a, [wcda9]
ld e, a
@@ -149,7 +149,7 @@
call CheckCGB
ret z
ld hl, Palette8b2f
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $0008
ld a, $5
call FarCopyWRAM
@@ -200,7 +200,7 @@
jp Function9809
.asm_8b5c
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld a, $3b
call GetAthPalletFromPalettes9df6
jp LoadHLPaletteIntoDE
@@ -216,7 +216,7 @@
jp Function9809
.asm_8b76
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld a, $3c
call GetAthPalletFromPalettes9df6
jp LoadHLPaletteIntoDE
@@ -232,7 +232,7 @@
push af
ld hl, PalPacket_9ce6
ld de, wcda9
- ld bc, $0010
+ ld bc, PALPACKET_LENGTH
call CopyBytes
pop af
call Function9775
@@ -248,7 +248,7 @@
jp Function9809
.asm_8bb2
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld a, c
call Function9775
call Function9643
@@ -275,7 +275,7 @@
asm_8bd7
push hl
- ld hl, wMapPals
+ ld hl, UnknBGPals
ld de, $0008
.asm_8bde
and a
@@ -318,8 +318,8 @@
lb bc, 6, 4
ld a, [EnemySafeguardCount]
and $3
- call Function9663
- call LoadDETile
+ call FillBoxCGB
+ call LoadEDTile
ret
; 8c1d
@@ -338,7 +338,7 @@
call Function976b
.asm_8c33
- ld de, wMapPals
+ ld de, UnknBGPals
call Function9643
call Function9699
call Function96b3
@@ -394,7 +394,7 @@
.asm_8c82
lb bc, 2, 8
ld a, e
- call Function9663
+ call FillBoxCGB
ret
; 8c8a
@@ -412,11 +412,11 @@
ld a, $5
ld [rSVBK], a
ld a, [hli]
- ld [wMapPals], a
- ld [wMapPals + 8 * 2], a
+ ld [UnknBGPals], a
+ ld [UnknBGPals + 8 * 2], a
ld a, [hl]
- ld [wMapPals + 1], a
- ld [wMapPals + 8 * 2 + 1], a
+ ld [UnknBGPals + 1], a
+ ld [UnknBGPals + 8 * 2 + 1], a
pop af
ld [rSVBK], a
call Function96a4
@@ -437,7 +437,7 @@
push hl
ld hl, PalPacket_9ce6
ld de, wcda9
- ld bc, $0010
+ ld bc, PALPACKET_LENGTH
call CopyBytes
pop hl
rept 2
@@ -458,7 +458,7 @@
ret
.asm_8cf0
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $0008
ld a, $5
call FarCopyWRAM
@@ -525,7 +525,7 @@
Function95f0: ; 95f0
ld hl, Palette_9608
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, 8
ld a, $5
call FarCopyWRAM
@@ -544,7 +544,7 @@
CopyFourPalettes: ; 9610
- ld de, wMapPals
+ ld de, UnknBGPals
ld c, $4
CopyPalettes: ; 9615
@@ -618,7 +618,7 @@
ret
; 9663
-Function9663: ; 9663
+FillBoxCGB: ; 9663
.row
push bc
push hl
@@ -644,9 +644,9 @@
push af
ld a, $5
ld [rSVBK], a
- ld hl, wMapPals
- ld c, $8
-.asm_9683
+ ld hl, UnknBGPals
+ ld c, 8
+.loop
ld a, $ff
rept 4
ld [hli], a
@@ -656,7 +656,7 @@
ld [hli], a
endr
dec c
- jr nz, .asm_9683
+ jr nz, .loop
pop af
ld [rSVBK], a
pop hl
@@ -676,7 +676,7 @@
; 96a4
Function96a4: ; 96a4
- ld hl, wMapPals
+ ld hl, UnknBGPals
ld de, BGPals
ld bc, $0080
ld a, $5
@@ -702,7 +702,7 @@
.asm_96d0
hlcoord 0, 0, AttrMap
- ld de, VBGMap0
+ debgcoord 0, 0
ld b, $12
ld a, $1
ld [rVBK], a
@@ -728,7 +728,7 @@
ret
; 96f3
-Function96f3: ; 96f3
+Function96f3: ; 96f3 CGB layout $fc
ld hl, wcd9b
ld a, [wcda9]
ld e, a
@@ -752,7 +752,7 @@
.asm_9712
lb bc, 2, 8
ld a, e
- call Function9663
+ call FillBoxCGB
ret
; 971a
@@ -759,7 +759,7 @@
Function971a: ; 971a
ld hl, Palettes_b681
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld bc, $0010
ld a, $5
call FarCopyWRAM
@@ -792,7 +792,7 @@
and a
jp nz, Function97f9
ld a, [wPlayerSpriteSetupFlags]
- bit 2, a
+ bit 2, a ; transformed to male
jr nz, .male
ld a, [PlayerGender]
and a
@@ -843,7 +843,7 @@
dec c
jr nz, .asm_9787
ld hl, Palettes_979c
- ld de, Unkn2Pals + 8 * 2
+ ld de, UnknOBPals + 8 * 2
ld bc, $0010
ld a, $5
call FarCopyWRAM
@@ -1047,7 +1047,7 @@
push af
ld a, $5
ld [rSVBK], a
- ld hl, wMapPals
+ ld hl, UnknBGPals
call Function98df
ld hl, BGPals
call Function98df
@@ -1058,13 +1058,13 @@
Function98df: ; 98df
ld c, $40
-.asm_98e1
+.loop
ld a, $ff
ld [hli], a
ld a, $7f
ld [hli], a
dec c
- jr nz, .asm_98e1
+ jr nz, .loop
ret
; 98eb
@@ -1212,7 +1212,7 @@
ld a, $e4
ld [rBGP], a
ld de, VTiles1
- ld bc, $0140
+ ld bc, 20 tiles
call CopyData
ld b, $12
.asm_99ea
@@ -1293,7 +1293,7 @@
DrawDefaultTiles: ; 0x9a64
; Draw 240 tiles (2/3 of the screen) from tiles in VRAM
- ld hl, VBGMap0 ; BG Map 0
+ hlbgcoord 0, 0 ; BG Map 0
ld de, 32 - 20
ld a, $80 ; starting tile
ld c, 12 + 1
@@ -1367,6 +1367,7 @@
; 9b96
; 9b96
+
PalPacket_9b96: db $51, $48, $00, $49, $00, $4a, $00, $4b, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9ba6: db $51, $2b, $00, $24, $00, $20, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9bb6: db $51, $41, $00, $42, $00, $43, $00, $44, $00, $00, $00, $00, $00, $00, $00, $00
@@ -1973,7 +1974,7 @@
push af
ld a, $5
ld [rSVBK], a
- ld hl, wMapPals
+ ld hl, UnknBGPals
ld b, $8
.asm_b210
ld a, [de]
@@ -2009,9 +2010,9 @@
ld bc, $40
ld hl, MapObjectPals
call AddNTimes
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld bc, $40
- ld a, $5 ; BANK(Unkn2Pals)
+ ld a, $5 ; BANK(UnknOBPals)
call FarCopyWRAM
ld a, [wPermission]
@@ -2036,7 +2037,7 @@
inc hl
endr
.asm_b26d
- ld de, wMapPals + 8 * 6 + 2
+ ld de, UnknBGPals + 8 * 6 + 2
ld bc, 4
ld a, $5
call FarCopyWRAM
--- /dev/null
+++ b/engine/compose_mail.asm
@@ -1,0 +1,498 @@
+_ComposeMailMessage: ; 11e75 (mail?)
+ ld hl, wc6d0
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld a, [hMapAnims]
+ push af
+ xor a
+ ld [hMapAnims], a
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ call .InitBlankMail
+ call DelayFrame
+
+.loop
+ call .DoMailEntry
+ jr nc, .loop
+
+ pop af
+ ld [hInMenu], a
+ pop af
+ ld [hMapAnims], a
+ ret
+
+.InitBlankMail: ; 11e9a (4:5e9a)
+ call ClearBGPalettes
+ call DisableLCD
+ call Function11c51
+ ld de, VTiles0 tile $00
+ ld hl, .MailIcon
+ ld bc, 8 tiles
+ ld a, BANK(.MailIcon)
+ call FarCopyBytes
+ xor a
+ ld hl, wc300
+ ld [hli], a
+ ld [hl], a
+
+ ; init mail icon
+ depixel 3, 2
+ ld a, SPRITE_ANIM_INDEX_00
+ call _InitSpriteAnimStruct
+
+ ld hl, $2
+ add hl, bc
+ ld [hl], $0
+ call .InitCharset
+ ld a, $e3
+ ld [rLCDC], a
+ call .initwc6d3
+ ld b, SCGB_08
+ call GetSGBLayout
+ call WaitBGMap
+ call WaitTop
+ ld a, %11100100
+ call DmgToCgbBGPals
+ ld a, %11100100
+ call Functioncf8
+ call Function11be0
+ ld hl, wc6d0
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $10
+ add hl, de
+ ld [hl], $4e
+ ret
+; 11ef4 (4:5ef4)
+
+.MailIcon: ; 11ef4
+INCBIN "gfx/icon/mail2.2bpp"
+; 11f74
+
+.initwc6d3: ; 11f74 (4:5f74)
+ ld a, $21
+ ld [wc6d3], a
+ ret
+; 11f7a (4:5f7a)
+
+.Dummy: ; dummied out
+ db "メールを かいてね@"
+; 11f84
+
+.InitCharset: ; 11f84 (4:5f84)
+ call WaitTop
+ hlcoord 0, 0
+ ld bc, 6 * SCREEN_WIDTH
+ ld a, $60 ; border
+ call ByteFill
+ hlcoord 0, 6
+ ld bc, 12 * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ hlcoord 1, 1
+ lb bc, 4, SCREEN_WIDTH - 2
+ call ClearBox
+ ld de, MailEntry_Uppercase
+
+.PlaceMailCharset: ; 11fa9 (4:5fa9)
+ hlcoord 1, 7
+ ld b, 6
+.next
+ ld c, SCREEN_WIDTH - 1
+.loop_
+ ld a, [de]
+ ld [hli], a
+ inc de
+ dec c
+ jr nz, .loop_
+ push de
+ ld de, SCREEN_WIDTH + 1
+ add hl, de
+ pop de
+ dec b
+ jr nz, .next
+ ret
+
+.DoMailEntry: ; 11fc0 (4:5fc0)
+ call JoyTextDelay
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .exit_mail
+ call .DoJumptable
+ callba Function8cf62
+ call .Update
+ call DelayFrame
+ and a
+ ret
+.exit_mail
+ callab Function8cf53
+ call ClearSprites
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ scf
+ ret
+
+.Update: ; 11feb (4:5feb)
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 1, 1
+ lb bc, 4, 18
+ call ClearBox
+ ld hl, wc6d0
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ hlcoord 2, 2
+ call PlaceString
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+
+.DoJumptable: ; 12008 (4:6008)
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, .Jumptable
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+.Jumptable: ; 12017 (4:6017)
+ dw .init_blinking_cursor
+ dw .process_joypad
+
+
+.init_blinking_cursor: ; 1201b (4:601b)
+ depixel 9, 2
+ ld a, SPRITE_ANIM_INDEX_09
+ call _InitSpriteAnimStruct
+ ld a, c
+ ld [wc6d5], a
+ ld a, b
+ ld [wc6d6], a
+ ld hl, $1
+ add hl, bc
+ ld a, [hl]
+ ld hl, $e
+ add hl, bc
+ ld [hl], a
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+
+.process_joypad: ; 1203a (4:603a)
+ ld hl, hJoyPressed ; $ffa7
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .a
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .b
+ ld a, [hl]
+ and START
+ jr nz, .start
+ ld a, [hl]
+ and SELECT
+ jr nz, .select
+ ret
+
+.a
+ call Function12185
+ cp $1
+ jr z, .select
+ cp $2
+ jr z, .b
+ cp $3
+ jr z, .finished
+ call Function11c11
+ call Function121ac
+ jr c, .start
+ ld hl, wc6d2
+ ld a, [hl]
+ cp $10
+ ret nz
+ inc [hl]
+ call Function11bd0
+ ld [hl], $f2
+ dec hl
+ ld [hl], $4e
+ ret
+
+.start
+ ld hl, wc6d5
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ ld hl, $c
+ add hl, bc
+ ld [hl], $9
+ ld hl, $d
+ add hl, bc
+ ld [hl], $5
+ ret
+
+.b
+ call Function11bbc
+ ld hl, wc6d2
+ ld a, [hl]
+ cp $10
+ ret nz
+ dec [hl]
+ call Function11bd0
+ ld [hl], $f2
+ inc hl
+ ld [hl], $4e
+ ret
+
+.finished
+ call Function11bf7
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+.select
+ ld hl, wcf64
+ ld a, [hl]
+ xor $1
+ ld [hl], a
+ jr nz, .switch_to_lowercase
+ ld de, MailEntry_Uppercase
+ call .PlaceMailCharset
+ ret
+.switch_to_lowercase
+ ld de, MailEntry_Lowercase
+ call .PlaceMailCharset
+ ret
+
+Function120c1: ; 120c1 (4:60c1)
+ call Function1210c
+ ld hl, SpriteAnim1Sprite0d - SpriteAnim1
+ add hl, bc
+ ld a, [hl]
+ ld e, a
+ swap e
+ ld hl, SpriteAnim1YOffset - SpriteAnim1
+ add hl, bc
+ ld [hl], e
+ cp $5
+ ld de, Unknown_120f8
+ ld a, $0
+ jr nz, .asm_120df
+ ld de, Unknown_12102
+ ld a, $1
+.asm_120df
+ ld hl, SpriteAnim1Sprite0e - SpriteAnim1
+ add hl, bc
+ add [hl]
+ ld hl, SpriteAnim1Sprite01 - SpriteAnim1
+ add hl, bc
+ ld [hl], a
+ ld hl, SpriteAnim1Sprite0c - SpriteAnim1
+ add hl, bc
+ ld l, [hl]
+ ld h, SpriteAnim1Index - SpriteAnim1
+ add hl, de
+ ld a, [hl]
+ ld hl, SpriteAnim1XOffset - SpriteAnim1
+ add hl, bc
+ ld [hl], a
+ ret
+; 120f8 (4:60f8)
+
+Unknown_120f8: ; 120f8
+ db $00, $10, $20, $30, $40, $50, $60, $70, $80, $90
+Unknown_12102: ; 12102
+ db $00, $00, $00, $30, $30, $30, $60, $60, $60, $60
+; 1210c
+
+Function1210c: ; 1210c (4:610c)
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .up
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .down
+ ld a, [hl]
+ and D_LEFT
+ jr nz, .left
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, .right
+ ret
+.right
+ call Function1218b
+ and a
+ jr nz, .asm_12138
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ cp $9
+ jr nc, .asm_12135
+ inc [hl]
+ ret
+.asm_12135
+ ld [hl], $0
+ ret
+.asm_12138
+ cp $3
+ jr nz, .asm_1213d
+ xor a
+.asm_1213d
+ ld e, a
+ add a
+ add e
+ ld hl, $c
+ add hl, bc
+ ld [hl], a
+ ret
+.left
+ call Function1218b
+ and a
+ jr nz, .asm_12159
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_12156
+ dec [hl]
+ ret
+.asm_12156
+ ld [hl], $9
+ ret
+.asm_12159
+ cp $1
+ jr nz, .asm_1215f
+ ld a, $4
+.asm_1215f
+rept 2
+ dec a
+endr
+ ld e, a
+ add a
+ add e
+ ld hl, $c
+ add hl, bc
+ ld [hl], a
+ ret
+.down
+ ld hl, $d
+ add hl, bc
+ ld a, [hl]
+ cp $5
+ jr nc, .asm_12175
+ inc [hl]
+ ret
+.asm_12175
+ ld [hl], $0
+ ret
+.up
+ ld hl, $d
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_12182
+ dec [hl]
+ ret
+.asm_12182
+ ld [hl], $5
+ ret
+
+Function12185: ; 12185 (4:6185)
+ ld hl, wc6d5
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+
+Function1218b: ; 1218b (4:618b)
+ ld hl, $d
+ add hl, bc
+ ld a, [hl]
+ cp $5
+ jr nz, .asm_121aa
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ cp $3
+ jr c, .asm_121a4
+ cp $6
+ jr c, .asm_121a7
+ ld a, $3
+ ret
+.asm_121a4
+ ld a, $1
+ ret
+.asm_121a7
+ ld a, $2
+ ret
+.asm_121aa
+ xor a
+ ret
+
+Function121ac: ; 121ac (4:61ac)
+ ld a, [wc6d7]
+ jp Function11b17
+; 121b2 (4:61b2)
+
+Function121b2: ; unreferenced
+ ld a, [wc6d2]
+ and a
+ ret z
+ cp $11
+ jr nz, .asm_121c3
+ push hl
+ ld hl, wc6d2
+rept 2
+ dec [hl]
+endr
+ jr .asm_121c8
+
+.asm_121c3
+ push hl
+ ld hl, wc6d2
+ dec [hl]
+
+.asm_121c8
+ call Function11bd0
+ ld c, [hl]
+ pop hl
+.asm_121cd
+ ld a, [hli]
+ cp $ff
+ jp z, Function11b27
+ cp c
+ jr z, .asm_121d9
+ inc hl
+ jr .asm_121cd
+
+.asm_121d9
+ ld a, [hl]
+ jp Function11b23
+; 121dd
+
+MailEntry_Uppercase: ; 122dd
+ db "A B C D E F G H I J"
+ db "K L M N O P Q R S T"
+ db "U V W X Y Z , ? !"
+ db "1 2 3 4 5 6 7 8 9 0"
+ db "<PK> <MN> <PO> <KE> é ♂ ♀ ¥ … ×"
+ db "lower DEL END "
+; 1224f
+
+MailEntry_Lowercase: ; 1224f
+ db "a b c d e f g h i j"
+ db "k l m n o p q r s t"
+ db "u v w x y z . - /"
+ db "'d 'l 'm 'r 's 't 'v & ( )"
+ db "<``> <''> [ ] ' : ; "
+ db "UPPER DEL END "
+; 122c1
--- a/engine/credits.asm
+++ b/engine/credits.asm
@@ -637,10 +637,10 @@
push af
push hl
- add wMapPals % $100
+ add UnknBGPals % $100
ld e, a
ld a, 0
- adc wMapPals / $100
+ adc UnknBGPals / $100
ld d, a
ld bc, 24
call CopyBytes
--- /dev/null
+++ b/engine/crystal_intro.asm
@@ -1,0 +1,2531 @@
+Functione455c: ; e455c
+ hlcoord 1, 1
+ ld de, SCREEN_WIDTH
+ ld c, $10
+.asm_e4564
+ ld [hl], $7f
+ add hl, de
+ dec c
+ jr nz, .asm_e4564
+ hlcoord 1, 2
+ ld bc, $28
+ ld a, [wJumptableIndex]
+ call AddNTimes
+ ld [hl], $ed
+ ret
+; e4579
+
+
+Functione4579: ; e4579
+ ld de, MUSIC_NONE
+ call PlayMusic
+ call ClearBGPalettes
+ call ClearTileMap
+ ld a, VBGMap0 / $100
+ ld [hBGMapAddress + 1], a
+ xor a
+ ld [hBGMapAddress], a
+ ld [hJoyDown], a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $90
+ ld [hWY], a
+ call WaitBGMap
+ ld b, SCGB_19
+ call GetSGBLayout
+ call SetPalettes
+ ld c, 10
+ call DelayFrames
+ callab Copyright
+ call WaitBGMap
+ ld c, 100
+ call DelayFrames
+ call ClearTileMap
+ callba GBCOnlyScreen
+ call Functione45e8
+.joy_loop
+ call JoyTextDelay
+ ld a, [hJoyLast]
+ and BUTTONS
+ jr nz, .pressed_button
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .finish
+ call PlaceGameFreakPresents
+ callba Function8cf69
+ call DelayFrame
+ jr .joy_loop
+
+.pressed_button
+ call Functione465e
+ scf
+ ret
+
+.finish
+ call Functione465e
+ and a
+ ret
+; e45e8
+
+Functione45e8: ; e45e8
+ ld de, GameFreakLogo
+ ld hl, VTiles2
+ lb bc, BANK(GameFreakLogo), $1c
+ call Get1bpp
+
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+
+ ld hl, IntroLogoGFX
+ ld de, w6_d000
+ ld a, BANK(IntroLogoGFX)
+ call FarDecompress
+
+ ld hl, VTiles0
+ ld de, w6_d000
+ lb bc, 1, 8 tiles
+ call Request2bpp
+
+ ld hl, VTiles1
+ ld de, w6_d000 + $80 tiles
+ lb bc, 1, 8 tiles
+ call Request2bpp
+
+ pop af
+ ld [rSVBK], a
+
+ callba Function8cf53
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_03
+ call _InitSpriteAnimStruct
+ ld hl, $7
+ add hl, bc
+ ld [hl], $a0
+ ld hl, $c
+ add hl, bc
+ ld [hl], $60
+ ld hl, $d
+ add hl, bc
+ ld [hl], $30
+ xor a
+ ld [wJumptableIndex], a
+ ld [wcf64], a
+ ld [wcf65], a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $1
+ ld [hBGMapMode], a
+ ld a, $90
+ ld [hWY], a
+ ld de, $e4e4
+ call DmgToCgbObjPals
+ ret
+; e465e
+
+Functione465e: ; e465e
+ callba Function8cf53
+ call ClearTileMap
+ call ClearSprites
+ ld c, 16
+ call DelayFrames
+ ret
+; e4670
+
+PlaceGameFreakPresents: ; e4670
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, .jumptable
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; e467f
+
+.jumptable: ; e467f
+ dw PlaceGameFreakPresents_0
+ dw PlaceGameFreakPresents_1
+ dw PlaceGameFreakPresents_2
+ dw PlaceGameFreakPresents_3
+; e4687
+
+PlaceGameFreakPresents_AdvanceIndex: ; e4687
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+; e468c
+
+PlaceGameFreakPresents_0: ; e468c
+ ret
+; e468d
+
+PlaceGameFreakPresents_1: ; e468d
+ ld hl, wcf65
+ ld a, [hl]
+ cp $20
+ jr nc, .PlaceGameFreak
+ inc [hl]
+ ret
+
+.PlaceGameFreak
+ ld [hl], 0
+ ld hl, .GAME_FREAK
+ decoord 5, 10
+ ld bc, .end - .GAME_FREAK
+ call CopyBytes
+ call PlaceGameFreakPresents_AdvanceIndex
+ ld de, SFX_GAME_FREAK_PRESENTS
+ call PlaySFX
+ ret
+; e46af
+
+.GAME_FREAK
+ ; G A M E _ F R E A K
+ db 0, 1, 2, 3, 13, 4, 5, 3, 1, 6
+.end
+ db "@"
+; e46ba
+
+PlaceGameFreakPresents_2: ; e46ba
+ ld hl, wcf65
+ ld a, [hl]
+ cp $40
+ jr nc, .place_presents
+ inc [hl]
+ ret
+
+.place_presents
+ ld [hl], 0
+ ld hl, .presents
+ decoord 7,11
+ ld bc, .end - .presents
+ call CopyBytes
+ call PlaceGameFreakPresents_AdvanceIndex
+ ret
+; e46d6
+
+.presents
+ db 7, 8, 9, 10, 11, 12
+.end
+ db "@"
+; e46dd
+
+PlaceGameFreakPresents_3: ; e46dd
+ ld hl, wcf65
+ ld a, [hl]
+ cp $80
+ jr nc, .finish
+ inc [hl]
+ ret
+
+.finish
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+; e46ed
+
+
+
+GameFreakLogoJumper: ; e46ed (39:46ed)
+ ld hl, $b
+ add hl, bc
+ ld e, [hl]
+ ld d, 0
+ ld hl, GameFreakLogoScenes
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+GameFreakLogoScenes: ; e46fd (39:46fd)
+ dw GameFreakLogoScene1
+ dw GameFreakLogoScene2
+ dw GameFreakLogoScene3
+ dw GameFreakLogoScene4
+ dw GameFreakLogoScene5
+
+
+GameFreakLogoScene1: ; e4707 (39:4707)
+ ld hl, $b
+ add hl, bc
+ inc [hl]
+ ret
+
+GameFreakLogoScene2: ; e470d (39:470d)
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_e4747
+ ld d, a
+ ld hl, $d
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ cp $20
+ jr nc, .asm_e4723
+ add $20
+.asm_e4723
+ ld e, a
+ callba Functionce765
+ ld hl, $7
+ add hl, bc
+ ld [hl], e
+ ld hl, $d
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ and $1f
+ ret nz
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ sub $30
+ ld [hl], a
+ ld de, SFX_DITTO_BOUNCE
+ call PlaySFX
+ ret
+.asm_e4747
+ ld hl, $b
+ add hl, bc
+ inc [hl]
+ ld hl, $d
+ add hl, bc
+ ld [hl], $0
+ ld de, SFX_DITTO_POP_UP
+ call PlaySFX
+ ret
+
+GameFreakLogoScene3: ; e4759 (39:4759)
+ ld hl, $d
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ jr nc, .asm_e4764
+ inc [hl]
+ ret
+.asm_e4764
+ ld hl, $b
+ add hl, bc
+ inc [hl]
+ ld hl, $d
+ add hl, bc
+ ld [hl], $0
+ ld de, SFX_DITTO_TRANSFORM
+ call PlaySFX
+ ret
+
+GameFreakLogoScene4: ; e4776 (39:4776)
+ ld hl, $d
+ add hl, bc
+ ld a, [hl]
+ cp $40
+ jr z, .asm_e47a3
+ inc [hl]
+ srl a
+ srl a
+ ld e, a
+ ld d, $0
+ ld hl, GameFreakLogoPalettes
+rept 2
+ add hl, de
+endr
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, [hli]
+ ld [OBPals + 12], a
+ ld a, [hli]
+ ld [OBPals + 13], a
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+.asm_e47a3
+ ld hl, $b
+ add hl, bc
+ inc [hl]
+ call PlaceGameFreakPresents_AdvanceIndex
+
+GameFreakLogoScene5: ; e47ab (39:47ab)
+ ret
+; e47ac (39:47ac)
+
+GameFreakLogoPalettes: ; e47ac
+; Ditto's color as it turns into the Game Freak logo.
+; Fade from pink to orange.
+; One color per step.
+ RGB 23, 12, 28
+ RGB 23, 12, 27
+ RGB 23, 13, 26
+ RGB 23, 13, 24
+ RGB 24, 14, 22
+ RGB 24, 14, 20
+ RGB 24, 15, 18
+ RGB 24, 15, 16
+ RGB 25, 16, 14
+ RGB 25, 16, 12
+ RGB 25, 17, 10
+ RGB 25, 17, 08
+ RGB 26, 18, 06
+ RGB 26, 18, 04
+ RGB 26, 19, 02
+ RGB 26, 19, 00
+;' e47cc
+
+GameFreakLogo: ; e47cc
+INCBIN "gfx/splash/logo.1bpp"
+; e48ac
+
+CrystalIntro: ; e48ac
+ ld a, [rSVBK]
+ push af
+ ld a, 5
+ ld [rSVBK], a
+ ld a, [hInMenu]
+ push af
+ ld a, [hVBlank]
+ push af
+ call Functione4901
+.loop: ; e48bc
+ call JoyTextDelay
+ ld a, [hJoyLast]
+ and BUTTONS
+ jr nz, .ShutOffMusic
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .done
+ call IntroSceneJumper
+ callba Function8cf69
+ call DelayFrame
+ jp .loop
+
+.ShutOffMusic
+ ld de, MUSIC_NONE
+ call PlayMusic
+
+.done
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ pop af
+ ld [hVBlank], a
+ pop af
+ ld [hInMenu], a
+ pop af
+ ld [rSVBK], a
+ ret
+; e4901
+
+Functione4901: ; e4901
+ xor a
+ ld [hVBlank], a
+ ld a, $1
+ ld [hInMenu], a
+ xor a
+ ld [hMapAnims], a
+ ld [wJumptableIndex], a
+ ret
+; e490f
+
+IntroSceneJumper: ; e490f
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, IntroScenes
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; e491e
+
+
+IntroScenes: ; e491e (39:491e)
+ dw IntroScene1
+ dw IntroScene2
+ dw IntroScene3
+ dw IntroScene4
+ dw IntroScene5
+ dw IntroScene6
+ dw IntroScene7
+ dw IntroScene8
+ dw IntroScene9
+ dw IntroScene10
+ dw IntroScene11
+ dw IntroScene12
+ dw IntroScene13
+ dw IntroScene14
+ dw IntroScene15
+ dw IntroScene16
+ dw IntroScene17
+ dw IntroScene18
+ dw IntroScene19
+ dw IntroScene20
+ dw IntroScene21
+ dw IntroScene22
+ dw IntroScene23
+ dw IntroScene24
+ dw IntroScene25
+ dw IntroScene26
+ dw IntroScene27
+ dw IntroScene28
+
+
+NextIntroScene: ; e4956 (39:4956)
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+
+IntroScene1: ; e495b (39:495b)
+; Setup the next scene.
+ call Functione54a3
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hBGMapMode], a
+ ld a, $1
+ ld [rVBK], a
+ ld hl, IntroTilemap001
+ debgcoord 0, 0
+ call Functione54fa
+ ld a, $0
+ ld [rVBK], a
+ ld hl, IntroUnownsGFX
+ ld de, VTiles2 tile $00
+ call Functione54c2
+ ld hl, IntroPulseGFX
+ ld de, VTiles0 tile $00
+ call Functione54c2
+ ld hl, IntroTilemap002
+ debgcoord 0, 0
+ call Functione54fa
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_365ad
+ ld de, UnknBGPals
+ ld bc, $80
+ call CopyBytes
+ ld hl, Palette_365ad
+ ld de, BGPals
+ ld bc, $80
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ callba Function8cf53
+ call Functione549e
+ xor a
+ ld [wIntroSceneFrameCounter], a
+ ld [wcf65], a
+ call NextIntroScene
+ ret
+
+IntroScene2: ; e49d6 (39:49d6)
+; First Unown (A) fades in, pulses, then fades out.
+ ld hl, wIntroSceneFrameCounter
+ ld a, [hl]
+ inc [hl]
+ cp $80
+ jr nc, .endscene
+ cp $60
+ jr nz, .DontPlaySound
+ push af
+ ld de, $5858
+ call Functione51dc
+ ld de, SFX_INTRO_UNOWN_1
+ call PlaySFX
+ pop af
+.DontPlaySound
+ ld [wcf65], a
+ xor a
+ call Functione5223
+ ret
+.endscene
+ call NextIntroScene
+ ret
+
+IntroScene3: ; e49fd (39:49fd)
+; More setup. Transition to the outdoor scene.
+ call Functione54a3
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hBGMapMode], a
+ ld a, $1
+ ld [rVBK], a
+ ld hl, IntroTilemap003
+ debgcoord 0, 0
+ call Functione54fa
+ ld a, $0
+ ld [rVBK], a
+ ld hl, IntroBackgroundGFX
+ ld de, VTiles2 tile $00
+ call Functione54c2
+ ld hl, IntroTilemap004
+ debgcoord 0, 0
+ call Functione54fa
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_e5edd
+ ld de, UnknBGPals
+ ld bc, $80
+ call CopyBytes
+ ld hl, Palette_e5edd
+ ld de, BGPals
+ ld bc, $80
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ call Functione5516
+ call Functione549e
+ xor a
+ ld [wIntroSceneFrameCounter], a
+ call NextIntroScene
+ ret
+
+IntroScene4: ; e4a69 (39:4a69)
+; Scroll the outdoor panorama for a bit.
+ call Functione552f
+ ld hl, wIntroSceneFrameCounter
+ ld a, [hl]
+ cp $80
+ jr z, .endscene
+ inc [hl]
+ ret
+.endscene
+ call NextIntroScene
+ ret
+
+IntroScene5: ; e4a7a (39:4a7a)
+; Go back to the Unown.
+ call Functione54a3
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hBGMapMode], a
+ ld [hLCDStatCustom], a
+ ld a, $1
+ ld [rVBK], a
+ ld hl, IntroTilemap005
+ debgcoord 0, 0
+ call Functione54fa
+ ld a, $0
+ ld [rVBK], a
+ ld hl, IntroUnownsGFX
+ ld de, VTiles2 tile $00
+ call Functione54c2
+ ld hl, IntroPulseGFX
+ ld de, VTiles0 tile $00
+ call Functione54c2
+ ld hl, IntroTilemap006
+ debgcoord 0, 0
+ call Functione54fa
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_365ad
+ ld de, UnknBGPals
+ ld bc, $80
+ call CopyBytes
+ ld hl, Palette_365ad
+ ld de, BGPals
+ ld bc, $80
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ callba Function8cf53
+ call Functione549e
+ xor a
+ ld [wcf64], a
+ ld [wcf65], a
+ call NextIntroScene
+ ret
+
+IntroScene6: ; e4af7 (39:4af7)
+; Two more Unown (I, H) fade in.
+ ld hl, wcf64
+ ld a, [hl]
+ inc [hl]
+ cp $80
+ jr nc, .endscene
+ cp $60
+ jr z, .SecondUnown
+ cp $40
+ jr nc, .StopUnown
+ cp $20
+ jr z, .FirstUnown
+ jr .NoUnown
+.FirstUnown
+ push af
+ ld de, $3878
+ call Functione51dc
+ ld de, SFX_INTRO_UNOWN_2
+ call PlaySFX
+ pop af
+.NoUnown
+ ld [wcf65], a
+ xor a
+ call Functione5223
+ ret
+.SecondUnown
+ push af
+ ld de, $7030
+ call Functione51dc
+ ld de, SFX_INTRO_UNOWN_1
+ call PlaySFX
+ pop af
+.StopUnown
+ ld [wcf65], a
+ ld a, $1
+ call Functione5223
+ ret
+.endscene
+ call NextIntroScene
+ ret
+
+IntroScene7: ; e4b3f (39:4b3f)
+; Back to the outdoor scene.
+ call Functione54a3
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hBGMapMode], a
+ ld a, $1
+ ld [rVBK], a
+ ld hl, IntroTilemap003
+ debgcoord 0, 0
+ call Functione54fa
+ ld hl, IntroPichuWooperGFX
+ ld de, VTiles0 tile $00
+ call Functione54c2
+ ld a, $0
+ ld [rVBK], a
+ ld hl, IntroSuicuneRunGFX
+ ld de, VTiles0 tile $00
+ call Functione54de
+ ld hl, IntroBackgroundGFX
+ ld de, VTiles2 tile $00
+ call Functione54c2
+ ld hl, IntroTilemap004
+ debgcoord 0, 0
+ call Functione54fa
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_e5edd
+ ld de, UnknBGPals
+ ld bc, $80
+ call CopyBytes
+ ld hl, Palette_e5edd
+ ld de, BGPals
+ ld bc, $80
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ call Functione5516
+ callba Function8cf53
+ depixel 13, 27, 4, 0
+ ld a, SPRITE_ANIM_INDEX_26
+ call _InitSpriteAnimStruct
+ ld a, $f0
+ ld [wc3c0], a
+ call Functione549e
+ xor a
+ ld [wIntroSceneFrameCounter], a
+ ld [wcf65], a
+ call NextIntroScene
+ ret
+
+IntroScene8: ; e4bd3 (39:4bd3)
+; Scroll the scene, then show Suicune running across the screen.
+ ld hl, wIntroSceneFrameCounter
+ ld a, [hl]
+ inc [hl]
+ cp $40
+ jr z, .asm_e4be2
+ jr nc, .asm_e4be8
+ call Functione552f
+ ret
+.asm_e4be2
+ ld de, SFX_INTRO_SUICUNE_3
+ call PlaySFX
+.asm_e4be8
+ ld a, [wc3c0]
+ and a
+ jr z, .asm_e4bf4
+ sub $8
+ ld [wc3c0], a
+ ret
+.asm_e4bf4
+ ld de, SFX_INTRO_SUICUNE_2
+ call PlaySFX
+ callba Function8d03d
+ call NextIntroScene
+ ret
+
+IntroScene9: ; e4c04 (39:4c04)
+; Set up the next scene (same bg).
+ xor a
+ ld [hLCDStatCustom], a
+ call ClearSprites
+ hlcoord 0, 0, AttrMap
+ ld bc, $f0
+ ld a, $1
+ call ByteFill
+ ld bc, $3c
+ ld a, $2
+ call ByteFill
+ ld bc, $3c
+ ld a, $3
+ call ByteFill
+ ld a, $2
+ ld [hBGMapMode], a
+ call DelayFrame
+ call DelayFrame
+ call DelayFrame
+ ld a, $c
+ ld [hBGMapAddress], a
+ call DelayFrame
+ call DelayFrame
+ call DelayFrame
+ xor a
+ ld [hBGMapMode], a
+ ld [hBGMapAddress], a
+ ld [wc3c0], a
+ xor a
+ ld [wcf64], a
+ call NextIntroScene
+ ret
+
+IntroScene10: ; e4c4f (39:4c4f)
+; Wooper and Pichu enter.
+ call Functione546d
+ ld hl, wcf64
+ ld a, [hl]
+ inc [hl]
+ cp $c0
+ jr z, .done
+ cp $20
+ jr z, .wooper
+ cp $40
+ jr z, .pichu
+ ret
+
+.pichu
+ depixel 21, 16, 1, 0
+ ld a, SPRITE_ANIM_INDEX_27
+ call _InitSpriteAnimStruct
+ ld de, SFX_INTRO_PICHU
+ call PlaySFX
+ ret
+
+.wooper
+ depixel 22, 6
+ ld a, SPRITE_ANIM_INDEX_28
+ call _InitSpriteAnimStruct
+ ld de, SFX_INTRO_PICHU
+ call PlaySFX
+ ret
+.done
+ call NextIntroScene
+ ret
+
+IntroScene11: ; e4c86 (39:4c86)
+; Back to Unown again.
+ call Functione54a3
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hBGMapMode], a
+ ld [hLCDStatCustom], a
+ ld a, $1
+ ld [rVBK], a
+ ld hl, IntroTilemap007
+ debgcoord 0, 0
+ call Functione54fa
+ ld a, $0
+ ld [rVBK], a
+ ld hl, IntroUnownsGFX
+ ld de, VTiles2 tile $00
+ call Functione54c2
+ ld hl, IntroTilemap008
+ debgcoord 0, 0
+ call Functione54fa
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_365ad
+ ld de, UnknBGPals
+ ld bc, $80
+ call CopyBytes
+ ld hl, Palette_365ad
+ ld de, BGPals
+ ld bc, $80
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ callba Function8cf53
+ call Functione549e
+ xor a
+ ld [wIntroSceneFrameCounter], a
+ ld [wcf65], a
+ call NextIntroScene
+ ret
+
+IntroScene12: ; e4cfa (39:4cfa)
+; Even more Unown.
+ call Functione4d36
+ ld hl, wIntroSceneFrameCounter
+ ld a, [hl]
+ inc [hl]
+ cp $c0
+ jr nc, .asm_e4d32
+ cp $80
+ jr nc, .asm_e4d1d
+ ld c, a
+ and $1f
+ sla a
+ ld [wcf65], a
+ ld a, c
+ and $e0
+ srl a
+ swap a
+ call Functione5223
+ ret
+.asm_e4d1d
+ ld c, a
+ and $f
+ sla a
+ sla a
+ ld [wcf65], a
+ ld a, c
+ and $70
+ or $40
+ swap a
+ call Functione5223
+ ret
+.asm_e4d32
+ call NextIntroScene
+ ret
+
+Functione4d36: ; e4d36 (39:4d36)
+ ld a, [wIntroSceneFrameCounter]
+ ld c, a
+ ld hl, .UnownSounds
+.loop
+ ld a, [hli]
+ cp -1
+ ret z
+ cp c
+ jr z, .playsound
+rept 2
+ inc hl
+endr
+ jr .loop
+.playsound
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ push de
+ call SFXChannelsOff
+ pop de
+ call PlaySFX
+ ret
+; e4d54 (39:4d54)
+
+.UnownSounds: ; e4d54
+ dbw $00, SFX_INTRO_UNOWN_3
+ dbw $20, SFX_INTRO_UNOWN_2
+ dbw $40, SFX_INTRO_UNOWN_1
+ dbw $60, SFX_INTRO_UNOWN_2
+ dbw $80, SFX_INTRO_UNOWN_3
+ dbw $90, SFX_INTRO_UNOWN_2
+ dbw $a0, SFX_INTRO_UNOWN_1
+ dbw $b0, SFX_INTRO_UNOWN_2
+ db $ff
+; e4d6d
+
+IntroScene13: ; e4d6d (39:4d6d)
+; Switch scenes again.
+ call Functione54a3
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hBGMapMode], a
+ ld a, $1
+ ld [rVBK], a
+ ld hl, IntroTilemap003
+ debgcoord 0, 0
+ call Functione54fa
+ ld a, $0
+ ld [rVBK], a
+ ld hl, IntroSuicuneRunGFX
+ ld de, VTiles0 tile $00
+ call Functione54de
+ ld hl, IntroBackgroundGFX
+ ld de, VTiles2 tile $00
+ call Functione54c2
+ ld hl, IntroTilemap004
+ debgcoord 0, 0
+ call Functione54fa
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_e5edd
+ ld de, UnknBGPals
+ ld bc, $80
+ call CopyBytes
+ ld hl, Palette_e5edd
+ ld de, BGPals
+ ld bc, $80
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ callba Function8cf53
+ depixel 13, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_26
+ call _InitSpriteAnimStruct
+ ld de, MUSIC_CRYSTAL_OPENING
+ call PlayMusic
+ xor a
+ ld [wc3c0], a
+ call Functione549e
+ xor a
+ ld [wcf64], a
+ ld [wcf65], a
+ call NextIntroScene
+ ret
+
+IntroScene14: ; e4dfa (39:4dfa)
+; Suicune runs then jumps.
+ ld a, [hSCX]
+ sub 10
+ ld [hSCX], a
+ ld hl, wcf64
+ ld a, [hl]
+ inc [hl]
+ cp $80
+ jr z, .done
+ cp $60
+ jr z, .jump
+ jr nc, .asm_e4e1a
+ cp $40
+ jr nc, .asm_e4e33
+ ret
+
+.jump
+ ld de, SFX_INTRO_SUICUNE_4
+ call PlaySFX
+
+.asm_e4e1a
+ ld a, $1
+ ld [wcf65], a
+ ld a, [wc3c0]
+ cp $88
+ jr c, .asm_e4e2c
+ sub $8
+ ld [wc3c0], a
+ ret
+
+.asm_e4e2c
+ callba Function8d03d
+ ret
+
+.asm_e4e33
+ ld a, [wc3c0]
+ sub $2
+ ld [wc3c0], a
+ ret
+
+.done
+ call NextIntroScene
+ ret
+
+IntroScene15: ; e4e40 (39:4e40)
+; Transition to a new scene.
+ call Functione54a3
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hBGMapMode], a
+ ld a, $1
+ ld [rVBK], a
+ ld hl, IntroTilemap009
+ debgcoord 0, 0
+ call Functione54fa
+ ld a, $0
+ ld [rVBK], a
+ ld hl, IntroSuicuneJumpGFX
+ ld de, VTiles2 tile $00
+ call Functione54c2
+ ld hl, IntroUnownBackGFX
+ ld de, VTiles0 tile $00
+ call Functione54c2
+ ld de, GFX_e7a5d
+ ld hl, VTiles1 tile $00
+ lb bc, BANK(GFX_e7a5d), 1
+ call Request2bpp
+ ld hl, IntroTilemap010
+ debgcoord 0, 0
+ call Functione54fa
+ call Functione541b
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_e77dd
+ ld de, UnknBGPals
+ ld bc, $80
+ call CopyBytes
+ ld hl, Palette_e77dd
+ ld de, BGPals
+ ld bc, $80
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ xor a
+ ld [hSCX], a
+ ld a, $90
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ callba Function8cf53
+ call Functione549e
+ depixel 8, 5
+ ld a, SPRITE_ANIM_INDEX_2A
+ call _InitSpriteAnimStruct
+ depixel 12, 0
+ ld a, SPRITE_ANIM_INDEX_2B
+ call _InitSpriteAnimStruct
+ xor a
+ ld [wcf64], a
+ ld [wcf65], a
+ call NextIntroScene
+ ret
+
+IntroScene16: ; e4edc (39:4edc)
+; Suicune shows its face. An Unown appears in front.
+ ld hl, wcf64
+ ld a, [hl]
+ inc [hl]
+ cp $80
+ jr nc, .done
+ call Functione5441
+ ld a, [hSCY]
+ and a
+ ret z
+ add 8
+ ld [hSCY], a
+ ret
+.done
+ call NextIntroScene
+ ret
+
+IntroScene17: ; e4ef5 (39:4ef5)
+; ...
+ call Functione54a3
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hBGMapMode], a
+ ld a, $1
+ ld [rVBK], a
+ ld hl, IntroTilemap011
+ debgcoord 0, 0
+ call Functione54fa
+ ld a, $0
+ ld [rVBK], a
+ ld hl, IntroSuicuneCloseGFX
+ ld de, VTiles1 tile $00
+ call Functione54de
+ ld hl, IntroTilemap012
+ debgcoord 0, 0
+ call Functione54fa
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_e6d6d
+ ld de, UnknBGPals
+ ld bc, $80
+ call CopyBytes
+ ld hl, Palette_e6d6d
+ ld de, BGPals
+ ld bc, $80
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ callba Function8cf53
+ call Functione549e
+ xor a
+ ld [wcf64], a
+ ld [wcf65], a
+ call NextIntroScene
+ ret
+
+IntroScene18: ; e4f67 (39:4f67)
+; Suicune close up.
+ ld hl, wcf64
+ ld a, [hl]
+ inc [hl]
+ cp $60
+ jr nc, .done
+ ld a, [hSCX]
+ cp $60
+ ret z
+ add 8
+ ld [hSCX], a
+ ret
+.done
+ call NextIntroScene
+ ret
+
+IntroScene19: ; e4f7e (39:4f7e)
+; More setup.
+ call Functione54a3
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hBGMapMode], a
+ ld a, $1
+ ld [rVBK], a
+ ld hl, IntroTilemap013
+ debgcoord 0, 0
+ call Functione54fa
+ ld a, $0
+ ld [rVBK], a
+ ld hl, IntroSuicuneBackGFX
+ ld de, VTiles2 tile $00
+ call Functione54c2
+ ld hl, IntroUnownsGFX
+ ld de, VTiles1 tile $00
+ call Functione54c2
+ ld de, GFX_e7a5d
+ ld hl, VTiles1 tile $7f
+ lb bc, BANK(GFX_e7a5d), 1
+ call Request2bpp
+ ld hl, IntroTilemap014
+ debgcoord 0, 0
+ call Functione54fa
+ call Functione541b
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_e77dd
+ ld de, UnknBGPals
+ ld bc, $80
+ call CopyBytes
+ ld hl, Palette_e77dd
+ ld de, BGPals
+ ld bc, $80
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ xor a
+ ld [hSCX], a
+ ld a, $d8
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ callba Function8cf53
+ ld hl, wc300
+ xor a
+ ld [hli], a
+ ld [hl], $7f
+ call Functione549e
+ depixel 12, 0
+ ld a, SPRITE_ANIM_INDEX_2B
+ call _InitSpriteAnimStruct
+ xor a
+ ld [wcf64], a
+ ld [wcf65], a
+ call NextIntroScene
+ ret
+
+IntroScene20: ; e5019 (39:5019)
+; Suicune running away. A bunch of Unown appear.
+ ld hl, wcf64
+ ld a, [hl]
+ inc [hl]
+ cp $98
+ jr nc, .asm_e5059
+ cp $58
+ ret nc
+ cp $40
+ jr nc, .asm_e5032
+ cp $28
+ ret nc
+ ld a, [hSCY]
+ inc a
+ ld [hSCY], a
+ ret
+
+.asm_e5032
+ sub $18
+ ld c, a
+ and $3
+ cp $3
+ ret nz
+ ld a, c
+ and $1c
+ srl a
+ srl a
+ ld [wcf65], a
+ xor a
+ call Functione5348
+ ret
+; e5049 (39:5049)
+
+ ld a, c
+ and $1c
+ srl a
+ srl a
+ ld [wcf65], a
+ ld a, 1
+ call Functione5348
+ ret
+
+.asm_e5059
+ call NextIntroScene
+ ret
+
+IntroScene21: ; e505d (39:505d)
+; Suicune gets more distant and turns black.
+ call Functione5451
+ ld c, 3
+ call DelayFrames
+ xor a
+ ld [hBGMapMode], a
+ ld [wcf64], a
+ ld [wcf65], a
+ call NextIntroScene
+ ret
+
+IntroScene22: ; e5072 (39:5072)
+ ld hl, wcf64
+ ld a, [hl]
+ inc [hl]
+ cp $8
+ jr nc, .done
+ ret
+.done
+ callba Function8d03d
+ call NextIntroScene
+ ret
+
+IntroScene23: ; e5086 (39:5086)
+ xor a
+ ld [wcf64], a
+ call NextIntroScene
+ ret
+
+IntroScene24: ; e508e (39:508e)
+; Fade to white.
+ ld hl, wcf64
+ ld a, [hl]
+ inc [hl]
+ cp $20
+ jr nc, .done
+
+ ld c, a
+ and $3
+ ret nz
+ ld a, c
+ and $1c
+ sla a
+ call Functione5172
+ ret
+
+.done
+ ld a, $40
+ ld [wcf64], a
+ call NextIntroScene
+ ret
+
+IntroScene25: ; e50ad (39:50ad)
+; Wait around a bit.
+ ld a, [wcf64]
+ dec a
+ jr z, .done
+ ld [wcf64], a
+ ret
+.done
+ call NextIntroScene
+ ret
+
+IntroScene26: ; e50bb (39:50bb)
+; Load the final scene.
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hBGMapMode], a
+ ld a, $1
+ ld [rVBK], a
+ ld hl, IntroTilemap015
+ debgcoord 0, 0
+ call Functione54fa
+ ld a, $0
+ ld [rVBK], a
+ ld hl, IntroCrystalUnownsGFX
+ ld de, VTiles2 tile $00
+ call Functione54c2
+ ld hl, IntroTilemap017
+ debgcoord 0, 0
+ call Functione54fa
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_e679d
+ ld de, UnknBGPals
+ ld bc, $80
+ call CopyBytes
+ ld hl, Palette_e679d
+ ld de, BGPals
+ ld bc, $80
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ callba Function8cf53
+ call Functione549e
+ xor a
+ ld [wcf64], a
+ ld [wcf65], a
+ call NextIntroScene
+ ret
+
+IntroScene27: ; e512d (39:512d)
+; Spell out C R Y S T A L with Unown.
+ ld hl, wcf65
+ inc [hl]
+ ld hl, wcf64
+ ld a, [hl]
+ inc [hl]
+ cp $80
+ jr nc, .done
+
+ ld c, a
+ and $f
+ ld [wcf65], a
+ ld a, c
+ and $70
+ swap a
+ call Functione539d
+ ret
+
+.done
+ call NextIntroScene
+ ld a, $80
+ ld [wcf64], a
+ ret
+
+IntroScene28: ; e5152 (39:5152)
+; Cut out when the music ends, and lead into the title screen.
+ ld hl, wcf64
+ ld a, [hl]
+ and a
+ jr z, .done
+ dec [hl]
+ cp $18
+ jr z, .clear
+ cp $8
+ ret nz
+
+ ld de, SFX_UNKNOWN_CB
+ call PlaySFX
+ ret
+
+.clear
+ call ClearBGPalettes
+ ret
+
+.done
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+
+Functione5172: ; e5172 (39:5172)
+ ld hl, Unknown_e519c
+ add l
+ ld l, a
+ ld a, $0
+ adc h
+ ld h, a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld de, BGPals
+ ld b, $8
+.asm_e5187
+ push hl
+ ld c, $8
+.asm_e518a
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_e518a
+ pop hl
+ dec b
+ jr nz, .asm_e5187
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; e519c (39:519c)
+
+Unknown_e519c: ; e519c
+; Fade to white.
+ RGB 24, 12, 09
+ RGB 31, 31, 31
+ RGB 12, 00, 31
+ RGB 00, 00, 00
+
+ RGB 31, 19, 05
+ RGB 31, 31, 31
+ RGB 15, 05, 31
+ RGB 07, 07, 07
+
+ RGB 31, 21, 09
+ RGB 31, 31, 31
+ RGB 18, 09, 31
+ RGB 11, 11, 11
+
+ RGB 31, 23, 13
+ RGB 31, 31, 31
+ RGB 21, 13, 31
+ RGB 15, 15, 15
+
+ RGB 31, 25, 17
+ RGB 31, 31, 31
+ RGB 25, 17, 31
+ RGB 19, 19, 19
+
+ RGB 31, 27, 21
+ RGB 31, 31, 31
+ RGB 27, 21, 31
+ RGB 23, 23, 23
+
+ RGB 31, 29, 25
+ RGB 31, 31, 31
+ RGB 29, 26, 31
+ RGB 27, 27, 27
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+; e51dc
+
+Functione51dc: ; e51dc (39:51dc)
+ push de
+ ld a, SPRITE_ANIM_INDEX_29
+ call _InitSpriteAnimStruct
+ ld hl, $c
+ add hl, bc
+ ld [hl], $8
+ ld a, $3c
+ call Function3b3c
+ pop de
+
+ push de
+ ld a, SPRITE_ANIM_INDEX_29
+ call _InitSpriteAnimStruct
+ ld hl, $c
+ add hl, bc
+ ld [hl], $18
+ ld a, $3b
+ call Function3b3c
+ pop de
+
+ push de
+ ld a, SPRITE_ANIM_INDEX_29
+ call _InitSpriteAnimStruct
+ ld hl, $c
+ add hl, bc
+ ld [hl], $28
+ ld a, $39
+ call Function3b3c
+ pop de
+
+ ld a, SPRITE_ANIM_INDEX_29
+ call _InitSpriteAnimStruct
+ ld hl, $c
+ add hl, bc
+ ld [hl], $38
+ ld a, $3a
+ call Function3b3c
+ ret
+
+Functione5223: ; e5223 (39:5223)
+rept 3
+ add a
+endr
+ ld e, a
+ ld d, $0
+ ld hl, BGPals
+ add hl, de
+rept 2
+ inc hl
+endr
+ ld a, [wcf65]
+ and $3f
+ cp $1f
+ jr z, .asm_e523e
+ jr c, .asm_e523e
+ ld c, a
+ ld a, $3f
+ sub c
+.asm_e523e
+ ld c, a
+ ld b, $0
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ push hl
+ push bc
+ ld hl, BGPals
+ ld bc, $40
+ xor a
+ call ByteFill
+ pop bc
+ pop hl
+ push hl
+ ld hl, Unknown_e5288
+rept 2
+ add hl, bc
+endr
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ pop hl
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ push hl
+ ld hl, Unknown_e52c8
+rept 2
+ add hl, bc
+endr
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ pop hl
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ push hl
+ ld hl, Unknown_e5308
+rept 2
+ add hl, bc
+endr
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ pop hl
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; e5288 (39:5288)
+
+Unknown_e5288: ; e5288
+; Fade between black and white.
+hue = 0
+rept 32
+ RGB hue, hue, hue
+hue = hue + 1
+endr
+; e52c8
+
+Unknown_e52c8: ; e52c8
+; Fade between black and light blue.
+hue = 0
+rept 32
+ RGB 0, hue / 2, hue
+hue = hue + 1
+endr
+; e5308
+
+Unknown_e5308: ; e5308
+; Fade between black and blue.
+hue = 0
+rept 32
+ RGB 0, 0, hue
+hue = hue + 1
+endr
+; e5348
+
+Functione5348: ; e5348 (39:5348)
+ and a
+ jr nz, .asm_e5350
+ ld hl, Palette_e538d
+ jr .asm_e5353
+.asm_e5350
+ ld hl, Palette_e5395
+.asm_e5353
+ ld a, [wcf65]
+ and $7
+rept 3
+ add a
+endr
+ ld c, a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ push bc
+ ld de, BGPals
+ ld a, c
+ add e
+ ld e, a
+ ld a, $0
+ adc d
+ ld d, a
+ ld bc, $8
+ call CopyBytes
+ pop bc
+ ld de, UnknBGPals
+ ld a, c
+ add e
+ ld e, a
+ ld a, $0
+ adc d
+ ld d, a
+ ld bc, $8
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; e538d (39:538d)
+
+Palette_e538d: ; e538d
+ RGB 24, 12, 09
+ RGB 31, 31, 31
+ RGB 12, 00, 31
+ RGB 00, 00, 00
+; e5395
+
+Palette_e5395: ; e5395
+ RGB 24, 12, 09
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+; e539d
+
+Functione539d: ; e539d (39:539d)
+rept 3
+ add a
+endr
+ ld e, a
+ ld d, $0
+ ld hl, BGPals
+ add hl, de
+rept 4
+ inc hl
+endr
+ ld a, [wcf65]
+ add a
+ ld c, a
+ ld b, $0
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ push hl
+ ld hl, Palette_e53db
+ add hl, bc
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ pop hl
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ push hl
+ ld hl, Palette_e53fb
+ add hl, bc
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ pop hl
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; e53db (39:53db)
+
+Palette_e53db: ; e53db
+hue = 31
+rept 8
+ RGB hue, hue, hue
+hue = hue + -1
+ RGB hue, hue, hue
+hue = hue + -2
+endr
+; e53fb
+
+Palette_e53fb: ; e53fb
+hue = 31
+rept 16
+ RGB hue, hue, hue
+hue = hue + -1
+endr
+; e541b
+
+Functione541b: ; e541b (39:541b)
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld hl, w6_d000
+ decoord 0, 0
+ ld b, SCREEN_HEIGHT
+.asm_e542a
+ ld c, SCREEN_WIDTH
+.asm_e542c
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_e542c
+ ld a, $c
+ add l
+ ld l, a
+ ld a, $0
+ adc h
+ ld h, a
+ dec b
+ jr nz, .asm_e542a
+ pop af
+ ld [rSVBK], a
+ ret
+
+Functione5441: ; e5441 (39:5441)
+ ld a, [wcf64]
+ and $3
+ jr z, Functione5451
+ cp $3
+ jr z, .asm_e544d
+ ret
+.asm_e544d
+ xor a
+ ld [hBGMapMode], a
+ ret
+
+Functione5451: ; e5451 (39:5451)
+ hlcoord 0, 0
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+.asm_e5457
+ ld a, [hl]
+ and a
+ jr z, .asm_e5462
+ cp $80
+ jr nc, .asm_e5462
+ xor $8
+ ld [hl], a
+.asm_e5462
+ inc hl
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_e5457
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+
+Functione546d: ; e546d (39:546d)
+ ld a, [wcf64]
+ cp $24
+ ret nc
+ and $c
+ srl a
+ ld e, a
+ ld d, $0
+ ld hl, Unknown_e5496
+ add hl, de
+ ld a, [hli]
+ ld [Requested2bppSource], a
+ ld a, [hli]
+ ld [Requested2bppSource + 1], a
+ ld a, (VTiles2 tile $09) % $100
+ ld [Requested2bppDest], a
+ ld a, (VTiles2 tile $09) / $100
+ ld [Requested2bppDest + 1], a
+ ld a, $4
+ ld [Requested2bpp], a
+ ret
+; e5496 (39:5496)
+
+Unknown_e5496: ; e5496
+ dw GFX_e799d
+ dw GFX_e79dd
+ dw GFX_e7a1d
+ dw GFX_e79dd
+; e549e
+
+Functione549e: ; e549e (39:549e)
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+
+Functione54a3: ; e54a3 (39:54a3)
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, BGPals
+ ld bc, $80
+ xor a
+ call ByteFill
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ call DelayFrame
+ call DelayFrame
+ ret
+
+Functione54c2: ; e54c2 (39:54c2)
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ push de
+ ld de, w6_d000
+ call Decompress
+ pop hl
+ ld de, w6_d000
+ ld bc, $180
+ call Request2bpp
+ pop af
+ ld [rSVBK], a
+ ret
+
+Functione54de: ; e54de (39:54de)
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ push de
+ ld de, w6_d000
+ call Decompress
+ pop hl
+ ld de, w6_d000
+ ld bc, $1ff
+ call Request2bpp
+ pop af
+ ld [rSVBK], a
+ ret
+
+Functione54fa: ; e54fa (39:54fa)
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ push de
+ ld de, w6_d000
+ call Decompress
+ pop hl
+ ld de, w6_d000
+ ld bc, $140
+ call Request2bpp
+ pop af
+ ld [rSVBK], a
+ ret
+
+Functione5516: ; e5516 (39:5516)
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, LYOverrides
+ ld bc, $90
+ xor a
+ call ByteFill
+ pop af
+ ld [rSVBK], a
+ ld a, $43
+ ld [hLCDStatCustom], a
+ ret
+
+Functione552f: ; e552f (39:552f)
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, [wcf64]
+ and $1
+ jr z, .asm_e5548
+ ld hl, LYOverrides
+ ld a, [hl]
+ inc a
+ ld bc, $5f
+ call ByteFill
+.asm_e5548
+ ld hl, LYOverrides + $5f
+ ld a, [hl]
+rept 2
+ inc a
+endr
+ ld bc, $31
+ call ByteFill
+ ld a, [LYOverrides + 0]
+ ld [hSCX], a
+ pop af
+ ld [rSVBK], a
+ ret
+
+IntroSuicuneRunGFX: ; e555d
+INCBIN "gfx/intro/suicune_run.2bpp.lz"
+; e592d
+
+IntroPichuWooperGFX: ; e592d
+INCBIN "gfx/intro/pichu_wooper.2bpp.lz"
+; e5c7d
+
+IntroBackgroundGFX: ; e5c7d
+INCBIN "gfx/intro/background.2bpp.lz"
+; e5e6d
+
+IntroTilemap004: ; e5e6d
+INCBIN "gfx/intro/004.tilemap.lz"
+; e5ecd
+
+IntroTilemap003: ; e5ecd
+INCBIN "gfx/intro/003.tilemap.lz"
+; e5edd
+
+Palette_e5edd: ; e5edd
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 0, 4, 5
+ RGB 1, 8, 5
+ RGB 4, 12, 9
+ RGB 24, 12, 9
+ RGB 0, 4, 5
+ RGB 9, 6, 8
+ RGB 8, 16, 5
+ RGB 5, 10, 4
+ RGB 31, 31, 31
+ RGB 9, 6, 8
+ RGB 18, 9, 9
+ RGB 13, 8, 9
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 2, 5, 22
+ RGB 1, 5, 12
+ RGB 31, 31, 31
+ RGB 31, 10, 25
+ RGB 31, 21, 0
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 21, 31
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+IntroUnownsGFX: ; e5f5d
+INCBIN "gfx/intro/unowns.2bpp.lz"
+; e634d
+
+IntroPulseGFX: ; e634d
+INCBIN "gfx/intro/pulse.2bpp.lz"
+; e63dd
+
+IntroTilemap002: ; e63dd
+INCBIN "gfx/intro/002.tilemap.lz"
+; e641d
+
+IntroTilemap001: ; e641d
+INCBIN "gfx/intro/001.tilemap.lz"
+; e642d
+
+IntroTilemap006: ; e642d
+INCBIN "gfx/intro/006.tilemap.lz"
+; e647d
+
+IntroTilemap005: ; e647d
+INCBIN "gfx/intro/005.tilemap.lz"
+; e649d
+
+IntroTilemap008: ; e649d
+INCBIN "gfx/intro/008.tilemap.lz"
+; e655d
+
+IntroTilemap007: ; e655d
+INCBIN "gfx/intro/007.tilemap.lz"
+; e65ad
+
+Palette_365ad: ; e65ad
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 10, 0, 10
+ RGB 19, 0, 19
+ RGB 31, 0, 31
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+IntroCrystalUnownsGFX: ; e662d
+INCBIN "gfx/intro/crystal_unowns.2bpp.lz"
+; e672d
+
+IntroTilemap017: ; e672d
+INCBIN "gfx/intro/017.tilemap.lz"
+; e676d
+
+IntroTilemap015: ; e676d
+INCBIN "gfx/intro/015.tilemap.lz"
+; e679d
+
+Palette_e679d: ; e679d
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+IntroSuicuneCloseGFX: ; e681d
+INCBIN "gfx/intro/suicune_close.2bpp.lz"
+; e6c3d
+
+IntroTilemap012: ; e6c3d
+INCBIN "gfx/intro/012.tilemap.lz"
+; e6d0d
+
+IntroTilemap011: ; e6d0d
+INCBIN "gfx/intro/011.tilemap.lz"
+; e6d6d
+
+Palette_e6d6d: ; e6d6d
+ RGB 24, 12, 9
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 24, 12, 9
+ RGB 31, 31, 31
+ RGB 8, 9, 31
+ RGB 0, 0, 0
+ RGB 24, 12, 9
+ RGB 12, 20, 31
+ RGB 19, 8, 31
+ RGB 0, 0, 0
+ RGB 12, 20, 31
+ RGB 8, 9, 31
+ RGB 19, 8, 31
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 12, 20, 31
+ RGB 8, 9, 31
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+IntroSuicuneJumpGFX: ; e6ded
+INCBIN "gfx/intro/suicune_jump.2bpp.lz"
+; e72ad
+
+IntroSuicuneBackGFX: ; e72ad
+INCBIN "gfx/intro/suicune_back.2bpp.lz"
+; e764d
+
+IntroTilemap010: ; e764d
+INCBIN "gfx/intro/010.tilemap.lz"
+; e76ad
+
+IntroTilemap009: ; e76ad
+INCBIN "gfx/intro/009.tilemap.lz"
+; e76bd
+
+IntroTilemap014: ; e76bd
+INCBIN "gfx/intro/014.tilemap.lz"
+; e778d
+
+IntroTilemap013: ; e778d
+INCBIN "gfx/intro/013.tilemap.lz"
+; e77dd
+
+Palette_e77dd: ; e77dd
+ RGB 24, 12, 9
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 24, 12, 9
+ RGB 31, 31, 31
+ RGB 8, 9, 31
+ RGB 0, 0, 0
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 12, 0, 31
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 21, 9, 0
+ RGB 21, 9, 0
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+IntroUnownBackGFX: ; e785d
+INCBIN "gfx/intro/unown_back.2bpp.lz"
+; e799d
+
+GFX_e799d: ; e799d
+INCBIN "gfx/unknown/0e799d.2bpp"
+GFX_e79dd: ; e79dd
+INCBIN "gfx/unknown/0e79dd.2bpp"
+GFX_e7a1d: ; e7a1d
+INCBIN "gfx/unknown/0e7a1d.2bpp"
+
+GFX_e7a5d: ; e7a5d
+INCBIN "gfx/unknown/0e7a5d.2bpp"
+
+
--- /dev/null
+++ b/engine/debug.asm
@@ -1,0 +1,1517 @@
+ColorTest: ; 818ac
+; A debug menu to test monster and trainer palettes at runtime.
+
+ ld a, [hCGB]
+ and a
+ jr nz, .asm_818b5
+ ld a, [hSGB]
+ and a
+ ret z
+
+.asm_818b5
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ call DisableLCD
+ call Function81948
+ call Function8197c
+ call Function819a7
+ call Function818f4
+ call EnableLCD
+ ld de, MUSIC_NONE
+ call PlayMusic
+ xor a
+ ld [wJumptableIndex], a
+ ld [wcf66], a
+ ld [wd003], a
+.asm_818de
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .asm_818f0
+ call Function81a74
+ call Function81f5e
+ call DelayFrame
+ jr .asm_818de
+
+.asm_818f0
+ pop af
+ ld [hInMenu], a
+ ret
+; 818f4
+
+Function818f4: ; 818f4
+ ld a, [wd002]
+ and a
+ jr nz, Function81911
+ ld hl, PokemonPalettes
+
+Function818fd: ; 818fd
+ ld de, OverworldMap
+ ld c, NUM_POKEMON + 1
+.asm_81902
+ push bc
+ push hl
+ call Function81928
+ pop hl
+ ld bc, 8
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .asm_81902
+ ret
+
+Function81911: ; 81911
+ ld hl, TrainerPalettes
+ ld de, OverworldMap
+ ld c, NUM_TRAINER_CLASSES
+.asm_81919
+ push bc
+ push hl
+ call Function81928
+ pop hl
+ ld bc, 4
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .asm_81919
+ ret
+; 81928
+
+Function81928: ; 81928
+ ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes)
+ call GetFarByte
+ ld [de], a
+ inc de
+ inc hl
+ ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes)
+ call GetFarByte
+ ld [de], a
+ inc de
+ inc hl
+ ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes)
+ call GetFarByte
+ ld [de], a
+ inc de
+ inc hl
+ ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes)
+ call GetFarByte
+ ld [de], a
+ inc de
+ ret
+; 81948
+
+Function81948: ; 81948
+ ld a, $1
+ ld [rVBK], a
+ ld hl, VTiles0
+ ld bc, sScratch - VTiles0
+ xor a
+ call ByteFill
+ ld a, $0
+ ld [rVBK], a
+ ld hl, VTiles0
+ ld bc, sScratch - VTiles0
+ xor a
+ call ByteFill
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ xor a
+ call ByteFill
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ xor a
+ call ByteFill
+ call ClearSprites
+ ret
+; 8197c
+
+Function8197c: ; 8197c
+ ld hl, DebugColorTestGFX + $10
+ ld de, VTiles2 tile $6a
+ ld bc, $160
+ call CopyBytes
+ ld hl, DebugColorTestGFX
+ ld de, VTiles0
+ ld bc, $10
+ call CopyBytes
+ call LoadStandardFont
+ ld hl, VTiles1
+ lb bc, 8, 0
+.asm_8199d
+ ld a, [hl]
+ xor $ff
+ ld [hli], a
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_8199d
+ ret
+; 819a7
+
+Function819a7: ; 819a7
+ ld a, [hCGB]
+ and a
+ ret z
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_819f4
+ ld de, BGPals
+ ld bc, $80
+ call CopyBytes
+ ld a, $80
+ ld [rBGPI], a
+ ld hl, Palette_819f4
+ ld c, $40
+ xor a
+.asm_819c8
+ ld [rBGPD], a
+ dec c
+ jr nz, .asm_819c8
+ ld a, $80
+ ld [rOBPI], a
+ ld hl, Palette_81a34
+ ld c, $40
+.asm_819d6
+ ld a, [hli]
+ ld [rOBPD], a
+ dec c
+ jr nz, .asm_819d6
+ ld a, $94
+ ld [wc608], a
+ ld a, $52
+ ld [wc608 + 1], a
+ ld a, $4a
+ ld [wc608 + 2], a
+ ld a, $29
+ ld [wc608 + 3], a
+ pop af
+ ld [rSVBK], a
+ ret
+; 819f4
+
+Palette_819f4: ; 819f4
+ ; white
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ ; red
+ RGB 31, 00, 00
+ RGB 31, 00, 00
+ RGB 31, 00, 00
+ RGB 00, 00, 00
+
+ ; green
+ RGB 00, 31, 00
+ RGB 00, 31, 00
+ RGB 00, 31, 00
+ RGB 00, 00, 00
+
+ ; blue
+ RGB 00, 00, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+Palette_81a34: ; 81a34
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ ; red
+ RGB 31, 31, 31
+ RGB 31, 00, 00
+ RGB 31, 00, 00
+ RGB 00, 00, 00
+
+ ; green
+ RGB 31, 31, 31
+ RGB 00, 31, 00
+ RGB 00, 31, 00
+ RGB 00, 00, 00
+
+ ; blue
+ RGB 31, 31, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 00
+; 81a74
+
+Function81a74: ; 81a74
+ call JoyTextDelay
+ ld a, [wJumptableIndex]
+ cp $4
+ jr nc, .asm_81a8b
+ ld hl, hJoyLast
+ ld a, [hl]
+ and SELECT
+ jr nz, .asm_81a9a
+ ld a, [hl]
+ and START
+ jr nz, .asm_81aab
+
+.asm_81a8b
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_81acf
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+.asm_81a9a
+ call Function81eca
+ call Function81ac3
+ ld e, a
+ ld a, [wcf66]
+ inc a
+ cp e
+ jr c, .asm_81aba
+ xor a
+ jr .asm_81aba
+
+.asm_81aab
+ call Function81eca
+ ld a, [wcf66]
+ dec a
+ cp $ff
+ jr nz, .asm_81aba
+ call Function81ac3
+ dec a
+
+.asm_81aba
+ ld [wcf66], a
+ ld a, $0
+ ld [wJumptableIndex], a
+ ret
+; 81ac3
+
+Function81ac3: ; 81ac3
+; Looping back around the pic set.
+ ld a, [wd002]
+ and a
+ jr nz, .asm_81acc
+ ld a, NUM_POKEMON ; CELEBI
+ ret
+
+.asm_81acc
+ ld a, NUM_TRAINER_CLASSES - 1 ; MYSTICALMAN
+ ret
+; 81acf
+
+Jumptable_81acf: ; 81acf
+ dw Function81adb
+ dw Function81c18
+ dw Function81c33
+ dw Function81cc2
+ dw Function81d8e
+ dw Function81daf
+; 81adb
+
+Function81adb: ; 81adb
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, $6f
+ call ByteFill
+ hlcoord 1, 3
+ lb bc, 7, 18
+ ld a, $6c
+ call Bank20_FillBoxWithByte
+ hlcoord 11, 0
+ lb bc, 2, 3
+ ld a, $6d
+ call Bank20_FillBoxWithByte
+ hlcoord 16, 0
+ lb bc, 2, 3
+ ld a, $6e
+ call Bank20_FillBoxWithByte
+ call Function81bc0
+ call Function81bf4
+ ld a, [wcf66]
+ inc a
+ ld [CurPartySpecies], a
+ ld [wd265], a
+ hlcoord 0, 1
+ ld de, wd265
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
+ call PrintNum
+ ld a, [wd002]
+ and a
+ jr nz, .asm_81b7a
+ ld a, $1
+ ld [UnownLetter], a
+ call GetPokemonName
+ hlcoord 4, 1
+ call PlaceString
+ xor a
+ ld [wc2c6], a
+ hlcoord 12, 3
+ call _PrepMonFrontpic
+ ld de, VTiles2 tile $31
+ predef GetBackpic
+ ld a, $31
+ ld [hFillBox], a
+ hlcoord 2, 4
+ lb bc, 6, 6
+ predef FillBox
+ ld a, [wd003]
+ and a
+ jr z, .asm_81b66
+ ld de, String_81baf
+ jr .asm_81b69
+
+.asm_81b66
+ ld de, String_81bb4
+
+.asm_81b69
+ hlcoord 7, 17
+ call PlaceString
+ hlcoord 0, 17
+ ld de, String_81bb9
+ call PlaceString
+ jr .asm_81ba9
+
+.asm_81b7a
+ ld a, [wd265]
+ ld [TrainerClass], a
+ callab Function3957b
+ ld de, StringBuffer1
+ hlcoord 4, 1
+ call PlaceString
+ ld de, VTiles2
+ callab GetTrainerPic
+ xor a
+ ld [TempEnemyMonSpecies], a
+ ld [hFillBox], a
+ hlcoord 2, 3
+ lb bc, 7, 7
+ predef FillBox
+
+.asm_81ba9
+ ld a, $1
+ ld [wJumptableIndex], a
+ ret
+; 81baf
+
+String_81baf: db "レア", $6f, $6f, "@" ; rare (shiny)
+String_81bb4: db "ノーマル@" ; normal
+String_81bb9: db $7a, "きりかえ▶@" ; (A) switches
+; 81bc0
+
+Function81bc0: ; 81bc0
+ decoord 0, 11, AttrMap
+ hlcoord 2, 11
+ ld a, $1
+ call Function81bde
+ decoord 0, 13, AttrMap
+ hlcoord 2, 13
+ ld a, $2
+ call Function81bde
+ decoord 0, 15, AttrMap
+ hlcoord 2, 15
+ ld a, $3
+
+Function81bde: ; 81bde
+ push af
+ ld a, $6a
+ ld [hli], a
+ ld bc, $f
+ ld a, $6b
+ call ByteFill
+ ld l, e
+ ld h, d
+ pop af
+ ld bc, $28
+ call ByteFill
+ ret
+; 81bf4
+
+Function81bf4: ; 81bf4
+ ld a, [wcf66]
+ inc a
+ ld l, a
+ ld h, $0
+rept 2
+ add hl, hl
+endr
+ ld de, OverworldMap
+ add hl, de
+ ld de, wc608
+ ld bc, 4
+ call CopyBytes
+ xor a
+ ld [wcf64], a
+ ld [wcf65], a
+ ld de, wc608
+ call Function81ea5
+ ret
+; 81c18
+
+Function81c18: ; 81c18
+ ld a, [hCGB]
+ and a
+ jr z, .asm_81c2a
+ ld a, $2
+ ld [hBGMapMode], a
+ call DelayFrame
+ call DelayFrame
+ call DelayFrame
+
+.asm_81c2a
+ call WaitBGMap
+ ld a, $2
+ ld [wJumptableIndex], a
+ ret
+; 81c33
+
+Function81c33: ; 81c33
+ ld a, [hCGB]
+ and a
+ jr z, .asm_81c69
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, BGPals
+ ld de, wc608
+ ld c, $1
+ call Function81ee3
+ hlcoord 10, 2
+ ld de, wc608
+ call Function81ca7
+ hlcoord 15, 2
+ ld de, wc608 + 2
+ call Function81ca7
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ld a, $3
+ ld [wJumptableIndex], a
+ pop af
+ ld [rSVBK], a
+ ret
+
+.asm_81c69
+ ld hl, wcda9
+ ld a, $1
+ ld [hli], a
+ ld a, $ff
+ ld [hli], a
+ ld a, $7f
+ ld [hli], a
+ ld a, [wc608]
+ ld [hli], a
+ ld a, [wc608 + 1]
+ ld [hli], a
+ ld a, [wc608 + 2]
+ ld [hli], a
+ ld a, [wc608 + 3]
+ ld [hli], a
+ xor a
+rept 2
+ ld [hli], a
+endr
+ ld [hl], a
+ ld hl, wcda9
+ call Function81f0c
+ hlcoord 10, 2
+ ld de, wc608
+ call Function81ca7
+ hlcoord 15, 2
+ ld de, wc608 + 2
+ call Function81ca7
+ ld a, $3
+ ld [wJumptableIndex], a
+ ret
+; 81ca7
+
+Function81ca7: ; 81ca7
+rept 3
+ inc hl
+endr
+ ld a, [de]
+ call Function81cbc
+ ld a, [de]
+ swap a
+ call Function81cbc
+ inc de
+ ld a, [de]
+ call Function81cbc
+ ld a, [de]
+ swap a
+
+Function81cbc: ; 81cbc
+ and $f
+ add $70
+ ld [hld], a
+ ret
+; 81cc2
+
+Function81cc2: ; 81cc2
+ ld a, [hJoyLast]
+ and B_BUTTON
+ jr nz, .asm_81cdf
+ ld a, [hJoyLast]
+ and A_BUTTON
+ jr nz, .asm_81ce5
+ ld a, [wcf64]
+ and $3
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_81d02
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+.asm_81cdf
+ ld a, $4
+ ld [wJumptableIndex], a
+ ret
+
+.asm_81ce5
+ ld a, [wd002]
+ and a
+ ret nz
+ ld a, [wd003]
+ xor $4
+ ld [wd003], a
+ ld c, a
+ ld b, 0
+ ld hl, PokemonPalettes
+ add hl, bc
+ call Function818fd
+ ld a, $0
+ ld [wJumptableIndex], a
+ ret
+; 81d02
+
+Jumptable_81d02: ; 81d02
+ dw Function81d0a
+ dw Function81d34
+ dw Function81d46
+ dw Function81d58
+; 81d0a
+
+Function81d0a: ; 81d0a
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_DOWN
+ jr nz, Function81d89
+ ld a, [hl]
+ and D_LEFT
+ jr nz, .asm_81d1d
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, .asm_81d28
+ ret
+
+.asm_81d1d
+ xor a
+ ld [wcf65], a
+ ld de, wc608
+ call Function81ea5
+ ret
+
+.asm_81d28
+ ld a, $1
+ ld [wcf65], a
+ ld de, wc608 + 2
+ call Function81ea5
+ ret
+
+Function81d34: ; 81d34
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_DOWN
+ jr nz, Function81d89
+ ld a, [hl]
+ and D_UP
+ jr nz, Function81d84
+ ld hl, wc608 + 10
+ jr Function81d63
+
+Function81d46: ; 81d46
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_DOWN
+ jr nz, Function81d89
+ ld a, [hl]
+ and D_UP
+ jr nz, Function81d84
+ ld hl, wc608 + 11
+ jr Function81d63
+
+Function81d58: ; 81d58
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, Function81d84
+ ld hl, wc608 + 12
+
+Function81d63: ; 81d63
+ ld a, [hJoyLast]
+ and D_RIGHT
+ jr nz, Function81d70
+ ld a, [hJoyLast]
+ and D_LEFT
+ jr nz, Function81d77
+ ret
+
+Function81d70: ; 81d70
+ ld a, [hl]
+ cp $1f
+ ret nc
+ inc [hl]
+ jr Function81d7b
+
+Function81d77: ; 81d77
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+
+Function81d7b: ; 81d7b
+ call Function81e67
+ ld a, $2
+ ld [wJumptableIndex], a
+ ret
+
+Function81d84: ; 81d84
+ ld hl, wcf64
+ dec [hl]
+ ret
+
+Function81d89: ; 81d89
+ ld hl, wcf64
+ inc [hl]
+ ret
+; 81d8e
+
+Function81d8e: ; 81d8e
+ hlcoord 0, 10
+ ld bc, $a0
+ ld a, $6f
+ call ByteFill
+ hlcoord 2, 12
+ ld de, String_81fcd
+ call PlaceString
+ xor a
+ ld [wd004], a
+ call Function81df4
+ ld a, $5
+ ld [wJumptableIndex], a
+ ret
+; 81daf
+
+Function81daf: ; 81daf
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .asm_81dbb
+ call Function81dc7
+ ret
+
+.asm_81dbb
+ ld a, $0
+ ld [wJumptableIndex], a
+ ret
+; 81dc1
+
+Function81dc1: ; 81dc1
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+; 81dc7
+
+Function81dc7: ; 81dc7
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .asm_81dd5
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .asm_81de2
+ ret
+
+.asm_81dd5
+ ld a, [wd004]
+ cp $3b
+ jr z, .asm_81ddf
+ inc a
+ jr .asm_81ded
+
+.asm_81ddf
+ xor a
+ jr .asm_81ded
+
+.asm_81de2
+ ld a, [wd004]
+ and a
+ jr z, .asm_81deb
+ dec a
+ jr .asm_81ded
+
+.asm_81deb
+ ld a, $3b
+
+.asm_81ded
+ ld [wd004], a
+ call Function81df4
+ ret
+; 81df4
+
+Function81df4: ; 81df4
+ hlcoord 10, 11
+ call Function81e5e
+ hlcoord 10, 12
+ call Function81e5e
+ hlcoord 10, 13
+ call Function81e5e
+ hlcoord 10, 14
+ call Function81e5e
+ ld a, [wd004]
+ inc a
+ ld [wd265], a
+ predef GetTMHMMove
+ ld a, [wd265]
+ ld [wd262], a
+ call GetMoveName
+ hlcoord 10, 12
+ call PlaceString
+ ld a, [wd004]
+ call Function81e55
+ ld [CurItem], a
+ predef CanLearnTMHMMove
+ ld a, c
+ and a
+ ld de, String_81e46
+ jr nz, .asm_81e3f
+ ld de, String_81e4d
+
+.asm_81e3f
+ hlcoord 10, 14
+ call PlaceString
+ ret
+; 81e46
+
+String_81e46: db "おぼえられる@" ; can be taught
+String_81e4d: db "おぼえられない@" ; cannot be taught
+; 81e55
+
+Function81e55: ; 81e55
+ cp $32
+ jr c, .asm_81e5b
+rept 2
+ inc a
+endr
+
+.asm_81e5b
+ add $bf
+ ret
+; 81e5e
+
+Function81e5e: ; 81e5e
+ ld bc, $a
+ ld a, $6f
+ call ByteFill
+ ret
+; 81e67
+
+Function81e67: ; 81e67
+ ld a, [wc608 + 10]
+ and $1f
+ ld e, a
+ ld a, [wc608 + 11]
+ and $7
+ sla a
+ swap a
+ or e
+ ld e, a
+ ld a, [wc608 + 11]
+ and $18
+ sla a
+ swap a
+ ld d, a
+ ld a, [wc608 + 12]
+ and $1f
+ sla a
+ sla a
+ or d
+ ld d, a
+ ld a, [wcf65]
+ and a
+ jr z, .asm_81e9c
+ ld a, e
+ ld [wc608 + 2], a
+ ld a, d
+ ld [wc608 + 3], a
+ ret
+
+.asm_81e9c
+ ld a, e
+ ld [wc608], a
+ ld a, d
+ ld [wc608 + 1], a
+ ret
+; 81ea5
+
+Function81ea5: ; 81ea5
+ ld a, [de]
+ and $1f
+ ld [wc608 + 10], a
+ ld a, [de]
+ and $e0
+ swap a
+ srl a
+ ld b, a
+ inc de
+ ld a, [de]
+ and $3
+ swap a
+ srl a
+ or b
+ ld [wc608 + 11], a
+ ld a, [de]
+ and $7c
+ srl a
+ srl a
+ ld [wc608 + 12], a
+ ret
+; 81eca
+
+Function81eca: ; 81eca
+ ld a, [wcf66]
+ inc a
+ ld l, a
+ ld h, $0
+rept 2
+ add hl, hl
+endr
+ ld de, OverworldMap
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, wc608
+ ld bc, 4
+ call CopyBytes
+ ret
+; 81ee3
+
+Function81ee3: ; 81ee3
+.asm_81ee3
+ ld a, $ff
+ ld [hli], a
+ ld a, $7f
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ xor a
+rept 2
+ ld [hli], a
+endr
+ dec c
+ jr nz, .asm_81ee3
+ ret
+; 81efc
+
+Bank20_FillBoxWithByte: ; 81efc
+; For some reason, we have another copy of FillBoxWithByte here
+.row
+ push bc
+ push hl
+.col
+ ld [hli], a
+ dec c
+ jr nz, .col
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .row
+ ret
+; 81f0c
+
+Function81f0c: ; 81f0c
+ ld a, [wcfbe]
+ push af
+ set 7, a
+ ld [wcfbe], a
+ call Function81f1d
+ pop af
+ ld [wcfbe], a
+ ret
+; 81f1d
+
+Function81f1d: ; 81f1d
+ ld a, [hl]
+ and $7
+ ret z
+ ld b, a
+.asm_81f22
+ push bc
+ xor a
+ ld [rJOYP], a
+ ld a, $30
+ ld [rJOYP], a
+ ld b, $10
+.asm_81f2c
+ ld e, $8
+ ld a, [hli]
+ ld d, a
+.asm_81f30
+ bit 0, d
+ ld a, $10
+ jr nz, .asm_81f38
+ ld a, $20
+
+.asm_81f38
+ ld [rJOYP], a
+ ld a, $30
+ ld [rJOYP], a
+ rr d
+ dec e
+ jr nz, .asm_81f30
+ dec b
+ jr nz, .asm_81f2c
+ ld a, $20
+ ld [rJOYP], a
+ ld a, $30
+ ld [rJOYP], a
+ ld de, 7000
+.asm_81f51
+ nop
+ nop
+ nop
+ dec de
+ ld a, d
+ or e
+ jr nz, .asm_81f51
+ pop bc
+ dec b
+ jr nz, .asm_81f22
+ ret
+; 81f5e
+
+Function81f5e: ; 81f5e
+ ld a, $6f
+ hlcoord 10, 0
+ ld [hl], a
+ hlcoord 15, 0
+ ld [hl], a
+ hlcoord 1, 11
+ ld [hl], a
+ hlcoord 1, 13
+ ld [hl], a
+ hlcoord 1, 15
+ ld [hl], a
+ ld a, [wJumptableIndex]
+ cp $3
+ jr nz, .asm_81fc9
+ ld a, [wcf64]
+ and a
+ jr z, .asm_81f8d
+ dec a
+ hlcoord 1, 11
+ ld bc, 2 * SCREEN_WIDTH
+ call AddNTimes
+ ld [hl], $ed
+
+.asm_81f8d
+ ld a, [wcf65]
+ and a
+ jr z, .asm_81f98
+ hlcoord 15, 0
+ jr .asm_81f9b
+
+.asm_81f98
+ hlcoord 10, 0
+
+.asm_81f9b
+ ld [hl], $ed
+ ld b, $70
+ ld c, $5
+ ld hl, Sprites
+ ld de, wc608 + 10
+ call .asm_81fb7
+ ld de, wc608 + 11
+ call .asm_81fb7
+ ld de, wc608 + 12
+ call .asm_81fb7
+ ret
+
+.asm_81fb7
+ ld a, b
+ ld [hli], a
+ ld a, [de]
+rept 2
+ add a
+endr
+ add $18
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld a, $10
+ add b
+ ld b, a
+ inc c
+ ret
+
+.asm_81fc9
+ call ClearSprites
+ ret
+; 81fcd
+
+String_81fcd: ; 81fcd
+ db "おわりますか?" ; Are you finished?
+ next "はい", $f2, $f2, $f2, $7a ; YES (A)
+ next "いいえ", $f2, $f2, $7b ; NO (B)
+ db "@"
+; 81fe3
+
+DebugColorTestGFX:
+INCBIN "gfx/debug/color_test.2bpp"
+
+
+TilesetColorTest:
+ ret
+ xor a
+ ld [wJumptableIndex], a
+ ld [wcf64], a
+ ld [wcf65], a
+ ld [wcf66], a
+ ld [hMapAnims], a
+ call ClearSprites
+ call OverworldTextModeSwitch
+ call Function3200
+ xor a
+ ld [hBGMapMode], a
+ ld de, DebugColorTestGFX + $10
+ ld hl, VTiles2 tile $6a
+ lb bc, BANK(DebugColorTestGFX), $16
+ call Request2bpp
+ ld de, DebugColorTestGFX
+ ld hl, VTiles1
+ lb bc, BANK(DebugColorTestGFX), 1
+ call Request2bpp
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, $6f
+ call ByteFill
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, $7
+ call ByteFill
+ ld de, $15
+ ld a, $6c
+ call Function821d2
+ ld de, $1a
+ ld a, $6d
+ call Function821d2
+ ld de, $1f
+ ld a, $6e
+ call Function821d2
+ ld de, $24
+ ld a, $6f
+ call Function821d2
+ call Function821f4
+ call Function8220f
+ call Function3200
+ ld [wJumptableIndex], a
+ ld a, $40
+ ld [hWY], a
+ ret
+; 821d2
+
+Function821d2: ; 821d2
+ hlcoord 0, 0
+ call Function821de
+
+Function821d8: ; 821d8
+ ld a, [wcf64]
+ hlcoord 0, 0, AttrMap
+
+Function821de: ; 821de
+ add hl, de
+rept 4
+ ld [hli], a
+endr
+ ld bc, $10
+ add hl, bc
+rept 4
+ ld [hli], a
+endr
+ ld bc, $10
+ add hl, bc
+rept 4
+ ld [hli], a
+endr
+ ret
+; 821f4
+
+Function821f4: ; 821f4
+ hlcoord 2, 4
+ call Function82203
+ hlcoord 2, 6
+ call Function82203
+ hlcoord 2, 8
+
+Function82203: ; 82203
+ ld a, $6a
+ ld [hli], a
+ ld bc, $10 - 1
+ ld a, $6b
+ call ByteFill
+ ret
+; 8220f
+
+Function8220f: ; 8220f
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, [wcf64]
+ ld l, a
+ ld h, $0
+rept 3
+ add hl, hl
+endr
+ ld de, UnknBGPals
+ add hl, de
+ ld de, wc608
+ ld bc, 8
+ call CopyBytes
+ ld de, wc608
+ call Function81ea5
+ pop af
+ ld [rSVBK], a
+ ret
+; 82236
+
+
+Function82236: ; 82236
+ ld hl, hJoyLast
+ ld a, [hl]
+ and SELECT
+ jr nz, .loop7
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .asm_82299
+ call Function822f0
+ ret
+
+.loop7
+ ld hl, wcf64
+ ld a, [hl]
+ inc a
+ and $7
+ cp $7
+ jr nz, .asm_82253
+ xor a
+
+.asm_82253
+ ld [hl], a
+ ld de, $15
+ call Function821d8
+ ld de, $1a
+ call Function821d8
+ ld de, $1f
+ call Function821d8
+ ld de, $24
+ call Function821d8
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, BGPals
+ ld a, [wcf64]
+ ld bc, 8
+ call AddNTimes
+ ld de, wc608
+ ld bc, 8
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ld a, $2
+ ld [hBGMapMode], a
+ ld c, 3
+ call DelayFrames
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+
+.asm_82299
+ call ClearSprites
+ ld a, [hWY]
+ xor $d0
+ ld [hWY], a
+ ret
+; 822a3
+
+Function822a3: ; 822a3
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, BGPals
+ ld a, [wcf64]
+ ld bc, 8
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ld hl, wc608
+ ld bc, 8
+ call CopyBytes
+ hlcoord 1, 0
+ ld de, wc608
+ call Function81ca7
+ hlcoord 6, 0
+ ld de, wc608 + 2
+ call Function81ca7
+ hlcoord 11, 0
+ ld de, wc608 + 4
+ call Function81ca7
+ hlcoord 16, 0
+ ld de, wc608 + 6
+ call Function81ca7
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ call DelayFrame
+ ret
+; 822f0
+
+Function822f0: ; 822f0
+ ld a, [wcf65]
+ and 3
+ ld e, a
+ ld d, 0
+ ld hl, .jumptable
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 82301
+
+.jumptable: ; 82301
+ dw Function82309
+ dw Function82339
+ dw Function8234b
+ dw Function8235d
+; 82309
+
+Function82309: ; 82309
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_DOWN
+ jr nz, Function8238c
+ ld a, [hl]
+ and D_LEFT
+ jr nz, .asm_8231c
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, .asm_82322
+ ret
+
+.asm_8231c
+ ld a, [wcf66]
+ dec a
+ jr .asm_82326
+
+.asm_82322
+ ld a, [wcf66]
+ inc a
+
+.asm_82326
+ and $3
+ ld [wcf66], a
+ ld e, a
+ ld d, $0
+ ld hl, wc608
+rept 2
+ add hl, de
+endr
+ ld e, l
+ ld d, h
+ call Function81ea5
+ ret
+
+Function82339: ; 82338
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_DOWN
+ jr nz, Function8238c
+ ld a, [hl]
+ and D_UP
+ jr nz, Function82387
+ ld hl, wc608 + 10
+ jr Function82368
+
+Function8234b: ; 8234b
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_DOWN
+ jr nz, Function8238c
+ ld a, [hl]
+ and D_UP
+ jr nz, Function82387
+ ld hl, wc608 + 11
+ jr Function82368
+
+Function8235d: ; 8235d
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, Function82387
+ ld hl, wc608 + 12
+
+Function82368: ; 82368
+ ld a, [hJoyLast]
+ and D_RIGHT
+ jr nz, .asm_82375
+ ld a, [hJoyLast]
+ and D_LEFT
+ jr nz, .asm_8237c
+ ret
+
+.asm_82375
+ ld a, [hl]
+ cp $1f
+ ret nc
+ inc [hl]
+ jr .asm_82380
+
+.asm_8237c
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+
+.asm_82380
+ call Function82391
+ call Function822a3
+ ret
+
+Function82387: ; 82387
+ ld hl, wcf65
+ dec [hl]
+ ret
+
+Function8238c: ; 8238c
+ ld hl, wcf65
+ inc [hl]
+ ret
+; 82391
+
+Function82391: ; 82391
+ ld a, [wc608 + 10]
+ and $1f
+ ld e, a
+ ld a, [wc608 + 11]
+ and $7
+ sla a
+ swap a
+ or e
+ ld e, a
+ ld a, [wc608 + 11]
+ and $18
+ sla a
+ swap a
+ ld d, a
+ ld a, [wc608 + 12]
+ and $1f
+ sla a
+ sla a
+ or d
+ ld d, a
+ ld a, [wcf66]
+ ld c, a
+ ld b, $0
+ ld hl, wc608
+rept 2
+ add hl, bc
+endr
+ ld a, e
+ ld [hli], a
+ ld [hl], d
+ ret
+; 823c6
+
+Function823c6: ; 823c6
+ ret
+
+Function823c7: ; 823c7
+ ret
+; 823c8
--- /dev/null
+++ b/engine/decorations.asm
@@ -1,0 +1,1438 @@
+InitDecorations: ; 26751 (9:6751)
+ ld a, DECO_FEATHERY_BED
+ ld [Bed], a
+ ld a, DECO_TOWN_MAP
+ ld [Poster], a
+ ret
+
+_KrisDecorationMenu: ; 0x2675c
+ ld a, [wcf76]
+ push af
+ ld hl, .MenuDataHeader
+ call LoadMenuDataHeader
+ xor a
+ ld [wd1ee], a
+ ld a, $1
+ ld [wd1ef], a
+.top_loop
+ ld a, [wd1ef]
+ ld [wMenuCursorBuffer], a
+ call .FindCategoriesWithOwnedDecos
+ call DoNthMenu
+ ld a, [MenuSelection2]
+ ld [wd1ef], a
+ jr c, .exit_menu
+ ld a, [MenuSelection]
+ ld hl, .pointers
+ call MenuJumptable
+ jr nc, .top_loop
+
+.exit_menu
+ call ExitMenu
+ pop af
+ ld [wcf76], a
+ ld a, [wd1ee]
+ ld c, a
+ ret
+; 0x2679a
+
+.MenuDataHeader: ; 0x2679a
+ db $40 ; flags
+ db 00, 05 ; start coords
+ db 17, 19 ; end coords
+ dw .MenuData2
+ db 1 ; default option
+; 0x267a2
+
+.MenuData2: ; 0x267a2
+ db $a0 ; flags
+ db 0 ; items
+ dw wd002
+ dw PlaceNthMenuStrings
+ dw .pointers
+; 0x267aa
+
+.pointers: ; 267aa
+ dw DecoBedMenu, .bed
+ dw DecoCarpetMenu, .carpet
+ dw DecoPlantMenu, .plant
+ dw DecoPosterMenu, .poster
+ dw DecoConsoleMenu, .game
+ dw DecoOrnamentMenu, .ornament
+ dw DecoBigDollMenu, .big_doll
+ dw DecoExitMenu, .exit
+
+.bed db "BED@"
+.carpet db "CARPET@"
+.plant db "PLANT@"
+.poster db "POSTER@"
+.game db "GAME CONSOLE@"
+.ornament db "ORNAMENT@"
+.big_doll db "BIG DOLL@"
+.exit db "EXIT@"
+; 26806
+
+.FindCategoriesWithOwnedDecos: ; 26806
+ xor a
+ ld [wcf76], a
+ call .ClearStringBuffer2
+ call .FindOwndDecos
+ ld a, 7
+ call .AppendToStringBuffer2
+ ld hl, StringBuffer2
+ ld de, wd002
+ ld bc, ITEM_NAME_LENGTH
+ call CopyBytes
+ ret
+
+.ClearStringBuffer2: ; 26822 (9:6822)
+ ld hl, StringBuffer2
+ xor a
+ ld [hli], a
+ ld bc, ITEM_NAME_LENGTH - 1
+ ld a, -1
+ call ByteFill
+ ret
+
+.AppendToStringBuffer2: ; 26830 (9:6830)
+ ld hl, StringBuffer2
+ inc [hl]
+ ld e, [hl]
+ ld d, 0
+ add hl, de
+ ld [hl], a
+ ret
+
+.FindOwndDecos: ; 2683a (9:683a)
+ ld hl, .jumptable
+.loop
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ or e
+ jr z, .done
+ push hl
+ call _de_
+ pop hl
+ jr nc, .next
+ ld a, [hl]
+ push hl
+ call .AppendToStringBuffer2
+ pop hl
+.next
+ inc hl
+ jr .loop
+.done
+ ret
+; 26855 (9:6855)
+
+.jumptable: ; 26855
+ dwb FindOwnedBeds, 0 ; bed
+ dwb FindOwnedCarpets, 1 ; carpet
+ dwb FindOwnedPlants, 2 ; plant
+ dwb FindOwnedPosters, 3 ; poster
+ dwb FindOwnedConsoles, 4 ; game console
+ dwb FindOwnedOrnaments, 5 ; ornament
+ dwb FindOwnedBigDolls, 6 ; big doll
+ dw 0 ; end
+; 2686c
+
+Deco_FillTempWithMinusOne: ; 2686c
+ xor a
+ ld hl, wd002
+ ld [hli], a
+ ld a, -1
+ ld bc, $10
+ call ByteFill
+ ret
+; 2687a
+
+CheckAllDecorationFlags: ; 2687a
+.loop
+ ld a, [hli]
+ cp -1
+ jr z, .done
+ push hl
+ push af
+ ld b, CHECK_FLAG
+ call DecorationFlagAction
+ ld a, c
+ and a
+ pop bc
+ ld a, b
+ call nz, AppendDecoIndex
+ pop hl
+ jr .loop
+
+.done
+ ret
+; 26891
+
+AppendDecoIndex: ; 26891
+ ld hl, wd002
+ inc [hl]
+ ld e, [hl]
+ ld d, $0
+ add hl, de
+ ld [hl], a
+ ret
+; 2689b
+
+FindOwnedDecosInCategory: ; 2689b
+ push bc
+ push hl
+ call Deco_FillTempWithMinusOne
+ pop hl
+ call CheckAllDecorationFlags
+ pop bc
+ ld a, [wd002]
+ and a
+ ret z
+
+ ld a, c
+ call AppendDecoIndex
+ ld a, 0
+ call AppendDecoIndex
+ scf
+ ret
+; 268b5
+
+DecoBedMenu: ; 268b5
+ call FindOwnedBeds
+ call PopulateDecoCategoryMenu
+ xor a
+ ret
+; 268bd
+
+FindOwnedBeds: ; 268bd
+ ld hl, .beds
+ ld c, DECO_BEDS
+ jp FindOwnedDecosInCategory
+; 268c5
+
+.beds: ; 268c5
+ db DECO_FEATHERY_BED ; 2
+ db DECO_PINK_BED ; 3
+ db DECO_POLKADOT_BED ; 4
+ db DECO_PIKACHU_BED ; 5
+ db -1
+; 268ca
+
+DecoCarpetMenu: ; 268ca
+ call FindOwnedCarpets
+ call PopulateDecoCategoryMenu
+ xor a
+ ret
+; 268d2
+
+FindOwnedCarpets: ; 268d2
+ ld hl, .carpets
+ ld c, DECO_CARPETS
+ jp FindOwnedDecosInCategory
+; 268da
+
+.carpets: ; 268da
+ db DECO_RED_CARPET ; 7
+ db DECO_BLUE_CARPET ; 8
+ db DECO_YELLOW_CARPET ; 9
+ db DECO_GREEN_CARPET ; a
+ db -1
+; 268df
+
+DecoPlantMenu: ; 268df
+ call FindOwnedPlants
+ call PopulateDecoCategoryMenu
+ xor a
+ ret
+; 268e7
+
+FindOwnedPlants: ; 268e7
+ ld hl, .plants
+ ld c, DECO_0B
+ jp FindOwnedDecosInCategory
+; 268ef
+
+.plants: ; 268ef
+ db DECO_MAGNAPLANT ; c
+ db DECO_TROPICPLANT ; d
+ db DECO_JUMBOPLANT ; e
+ db -1
+; 268f3
+
+DecoPosterMenu: ; 268f3
+ call FindOwnedPosters
+ call PopulateDecoCategoryMenu
+ xor a
+ ret
+; 268fb
+
+FindOwnedPosters: ; 268fb
+ ld hl, .posters
+ ld c, DECO_POSTERS
+ jp FindOwnedDecosInCategory
+; 26903
+
+.posters: ; 26903
+ db DECO_TOWN_MAP ; 10
+ db DECO_PIKACHU_POSTER ; 11
+ db DECO_CLEFAIRY_POSTER ; 12
+ db DECO_JIGGLYPUFF_POSTER ; 13
+ db -1
+; 26908
+
+DecoConsoleMenu: ; 26908
+ call FindOwnedConsoles
+ call PopulateDecoCategoryMenu
+ xor a
+ ret
+; 26910
+
+FindOwnedConsoles: ; 26910
+ ld hl, .consoles
+ ld c, DECO_CONSOLES
+ jp FindOwnedDecosInCategory
+; 26918
+
+.consoles: ; 26918
+ db DECO_FAMICOM ; 15
+ db DECO_SNES ; 16
+ db DECO_N64 ; 17
+ db DECO_VIRTUAL_BOY ; 18
+ db -1
+; 2691d
+
+DecoOrnamentMenu: ; 2691d
+ call FindOwnedOrnaments
+ call PopulateDecoCategoryMenu
+ xor a
+ ret
+; 26925
+
+FindOwnedOrnaments: ; 26925
+ ld hl, .ornaments
+ ld c, DECO_DOLLS
+ jp FindOwnedDecosInCategory
+; 2692d
+
+.ornaments: ; 2692d
+ db DECO_PIKACHU_DOLL ; 1e
+ db DECO_SURF_PIKACHU_DOLL ; 1f
+ db DECO_CLEFAIRY_DOLL ; 20
+ db DECO_JIGGLYPUFF_DOLL ; 21
+ db DECO_BULBASAUR_DOLL ; 22
+ db DECO_CHARMANDER_DOLL ; 23
+ db DECO_SQUIRTLE_DOLL ; 24
+ db DECO_POLIWAG_DOLL ; 25
+ db DECO_DIGLETT_DOLL ; 26
+ db DECO_STARMIE_DOLL ; 27
+ db DECO_MAGIKARP_DOLL ; 28
+ db DECO_ODDISH_DOLL ; 29
+ db DECO_GENGAR_DOLL ; 2a
+ db DECO_SHELLDER_DOLL ; 2b
+ db DECO_GRIMER_DOLL ; 2c
+ db DECO_VOLTORB_DOLL ; 2d
+ db DECO_WEEDLE_DOLL ; 2e
+ db DECO_UNOWN_DOLL ; 2f
+ db DECO_GEODUDE_DOLL ; 30
+ db DECO_MACHOP_DOLL ; 31
+ db DECO_TENTACOOL_DOLL ; 32
+ db DECO_GOLD_TROPHY_DOLL ; 33
+ db DECO_SILVER_TROPHY_DOLL ; 34
+ db -1
+; 26945
+
+DecoBigDollMenu: ; 26945
+ call FindOwnedBigDolls
+ call PopulateDecoCategoryMenu
+ xor a
+ ret
+; 2694d
+
+FindOwnedBigDolls: ; 2694d
+ ld hl, .big_dolls
+ ld c, DECO_BIG_DOLLS
+ jp FindOwnedDecosInCategory
+; 26955
+
+.big_dolls: ; 26955
+ db DECO_BIG_SNORLAX_DOLL ; 1a
+ db DECO_BIG_ONIX_DOLL ; 1b
+ db DECO_BIG_LAPRAS_DOLL ; 1c
+ db -1
+; 26959
+
+DecoExitMenu: ; 26959
+ scf
+ ret
+; 2695b
+
+PopulateDecoCategoryMenu: ; 2695b
+ ld a, [wd002]
+ and a
+ jr z, .empty
+ cp 8
+ jr nc, .beyond_eight
+ xor a
+ ld [wcf76], a
+ ld hl, .NonscrollingMenuDataHeader
+ call LoadMenuDataHeader
+ call DoNthMenu
+ jr c, .no_action_1
+ call DoDecorationAction2
+
+.no_action_1
+ call ExitMenu
+ ret
+
+.beyond_eight
+ ld hl, wd002
+ ld e, [hl]
+ dec [hl]
+ ld d, 0
+ add hl, de
+ ld [hl], -1
+ call LoadStandardMenuDataHeader
+ ld hl, .ScrollingMenuDataHeader
+ call CopyMenuDataHeader
+ xor a
+ ld [hBGMapMode], a
+ call InitScrollingMenu
+ xor a
+ ld [wMenuScrollPosition], a
+ call HandleScrollingMenu
+ ld a, [wcf73]
+ cp 2
+ jr z, .no_action_2
+ call DoDecorationAction2
+
+.no_action_2
+ call ExitMenu
+ ret
+
+.empty
+ ld hl, .Text_nothing_to_choose
+ call MenuTextBoxBackup
+ ret
+; 269b0
+
+.Text_nothing_to_choose: ; 0x269b0
+ ; There's nothing to choose.
+ text_jump UnknownText_0x1bc471
+ db "@"
+; 0x269b5
+
+.NonscrollingMenuDataHeader: ; 0x269b5
+ db $40 ; flags
+ db 00, 00 ; start coords
+ db 17, 19 ; end coords
+ dw .NonscrollingMenuData2
+ db 1 ; default option
+; 0x269bd
+
+.NonscrollingMenuData2: ; 0x269bd
+ db $a0 ; flags
+ db 0 ; items
+ dw wd002
+ dw DecorationMenuFunction
+ dw DecorationAttributes
+; 0x269c5
+
+.ScrollingMenuDataHeader: ; 0x269c5
+ db $40 ; flags
+ db 01, 01 ; start coords
+ db 16, 18 ; end coords
+ dw .ScrollingMenuData2
+ db 1 ; default option
+; 0x269cd
+
+.ScrollingMenuData2: ; 0x269cd
+ db $10 ; flags
+ db 8, 0 ; rows, columns
+ db 1 ; horizontal spacing
+ dbw 0, wd002 ; text pointer
+ dba DecorationMenuFunction
+ dbw 0, 0
+ dbw 0, 0
+; 269dd
+
+
+GetDecorationData: ; 269dd
+ ld hl, DecorationAttributes
+ ld bc, 6
+ call AddNTimes
+ ret
+; 269e7
+
+GetDecorationName: ; 269e7
+ push hl
+ call GetDecorationData
+ call GetDecoName
+ pop hl
+ call CopyName2
+ ret
+; 269f3
+
+DecorationMenuFunction: ; 269f3
+ ld a, [MenuSelection]
+ push de
+ call GetDecorationData
+ call GetDecoName
+ pop hl
+ call PlaceString
+ ret
+; 26a02
+
+DoDecorationAction2: ; 26a02
+ ld a, [MenuSelection]
+ call GetDecorationData
+ ld de, 2 ; function 2
+ add hl, de
+ ld a, [hl]
+ ld hl, .DecoActions
+ rst JumpTable
+ ret
+; 26a12
+
+.DecoActions: ; 26a12
+ dw DecoAction_nothing
+ dw DecoAction_setupbed
+ dw DecoAction_putawaybed
+ dw DecoAction_setupcarpet
+ dw DecoAction_putawaycarpet
+ dw DecoAction_setupplant
+ dw DecoAction_putawayplant
+ dw DecoAction_setupposter
+ dw DecoAction_putawayposter
+ dw DecoAction_setupconsole
+ dw DecoAction_putawayconsole
+ dw DecoAction_setupbigdoll
+ dw DecoAction_putawaybigdoll
+ dw DecoAction_setupornament
+ dw DecoAction_putawayornament
+; 26a30
+
+
+GetDecorationFlag: ; 26a30
+ call GetDecorationData
+ ld de, 3 ; event flag
+ add hl, de
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ ret
+; 26a3b
+
+DecorationFlagAction: ; 26a3b
+ push bc
+ call GetDecorationFlag
+ pop bc
+ call EventFlagAction
+ ret
+; 26a44
+
+GetDecorationSprite: ; 26a44
+ ld a, c
+ call GetDecorationData
+ ld de, 5 ; sprite
+ add hl, de
+ ld a, [hl]
+ ld c, a
+ ret
+; 26a4f
+
+decoration: MACRO
+ ; type, name, command, event flag, tile/sprite
+ db \1, \2, \3
+ dw \4
+ db \5
+ENDM
+
+DecorationAttributes: ; 26a4f
+ decoration DECO_PLANT, $00, $0, EVENT_GAVE_KURT_APRICORNS, $00
+ decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_BED, EVENT_GAVE_KURT_APRICORNS, $00
+ decoration DECO_BED, FEATHERY_BED, SET_UP_BED, EVENT_DECO_BED_1, $1b
+ decoration DECO_BED, PINK_BED, SET_UP_BED, EVENT_DECO_BED_2, $1c
+ decoration DECO_BED, POLKADOT_BED, SET_UP_BED, EVENT_DECO_BED_3, $1d
+ decoration DECO_BED, PIKACHU_BED, SET_UP_BED, EVENT_DECO_BED_4, $1e
+ decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_CARPET, EVENT_GAVE_KURT_APRICORNS, $00
+ decoration DECO_CARPET, RED_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_1, $08
+ decoration DECO_CARPET, BLUE_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_2, $0b
+ decoration DECO_CARPET, YELLOW_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_3, $0e
+ decoration DECO_CARPET, GREEN_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_4, $11
+ decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_PLANT, EVENT_GAVE_KURT_APRICORNS, $00
+ decoration DECO_PLANT, MAGNAPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_1, $20
+ decoration DECO_PLANT, TROPICPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_2, $21
+ decoration DECO_PLANT, JUMBOPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_3, $22
+ decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_POSTER, EVENT_GAVE_KURT_APRICORNS, $00
+ decoration DECO_PLANT, TOWN_MAP_D, SET_UP_POSTER, EVENT_DECO_PLANT_4, $1f
+ decoration DECO_POSTER, PIKACHU, SET_UP_POSTER, EVENT_DECO_POSTER_1, $23
+ decoration DECO_POSTER, CLEFAIRY, SET_UP_POSTER, EVENT_DECO_POSTER_2, $24
+ decoration DECO_POSTER, JIGGLYPUFF, SET_UP_POSTER, EVENT_DECO_POSTER_3, $25
+ decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_CONSOLE, EVENT_GAVE_KURT_APRICORNS, $00
+ decoration DECO_PLANT, FAMICOM, SET_UP_CONSOLE, EVENT_DECO_FAMICOM, SPRITE_FAMICOM
+ decoration DECO_PLANT, SUPER_NES, SET_UP_CONSOLE, EVENT_DECO_SNES, SPRITE_SNES
+ decoration DECO_PLANT, NINTENDO_64, SET_UP_CONSOLE, EVENT_DECO_N64, SPRITE_N64
+ decoration DECO_PLANT, VIRTUAL_BOY, SET_UP_CONSOLE, EVENT_DECO_VIRTUAL_BOY, SPRITE_VIRTUAL_BOY
+ decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_BIG_DOLL, EVENT_GAVE_KURT_APRICORNS, $00
+ decoration DECO_BIGDOLL, SNORLAX, SET_UP_BIG_DOLL, EVENT_DECO_BIG_SNORLAX_DOLL, SPRITE_BIG_SNORLAX
+ decoration DECO_BIGDOLL, ONIX, SET_UP_BIG_DOLL, EVENT_DECO_BIG_ONIX_DOLL, SPRITE_BIG_ONIX
+ decoration DECO_BIGDOLL, LAPRAS, SET_UP_BIG_DOLL, EVENT_DECO_BIG_LAPRAS_DOLL, SPRITE_BIG_LAPRAS
+ decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_DOLL, EVENT_GAVE_KURT_APRICORNS, $00
+ decoration DECO_DOLL, PIKACHU, SET_UP_DOLL, EVENT_DECO_PIKACHU_DOLL, SPRITE_PIKACHU
+ decoration DECO_PLANT, SURF_PIKA_DOLL, SET_UP_DOLL, EVENT_DECO_SURFING_PIKACHU_DOLL, SPRITE_SURFING_PIKACHU
+ decoration DECO_DOLL, CLEFAIRY, SET_UP_DOLL, EVENT_DECO_CLEFAIRY_DOLL, SPRITE_CLEFAIRY
+ decoration DECO_DOLL, JIGGLYPUFF, SET_UP_DOLL, EVENT_DECO_JIGGLYPUFF_DOLL, SPRITE_JIGGLYPUFF
+ decoration DECO_DOLL, BULBASAUR, SET_UP_DOLL, EVENT_DECO_BULBASAUR_DOLL, SPRITE_BULBASAUR
+ decoration DECO_DOLL, CHARMANDER, SET_UP_DOLL, EVENT_DECO_CHARMANDER_DOLL, SPRITE_CHARMANDER
+ decoration DECO_DOLL, SQUIRTLE, SET_UP_DOLL, EVENT_DECO_SQUIRTLE_DOLL, SPRITE_SQUIRTLE
+ decoration DECO_DOLL, POLIWAG, SET_UP_DOLL, EVENT_DECO_POLIWAG_DOLL, SPRITE_POLIWAG
+ decoration DECO_DOLL, DIGLETT, SET_UP_DOLL, EVENT_DECO_DIGLETT_DOLL, SPRITE_DIGLETT
+ decoration DECO_DOLL, STARYU, SET_UP_DOLL, EVENT_DECO_STARMIE_DOLL, SPRITE_STARMIE
+ decoration DECO_DOLL, MAGIKARP, SET_UP_DOLL, EVENT_DECO_MAGIKARP_DOLL, SPRITE_MAGIKARP
+ decoration DECO_DOLL, ODDISH, SET_UP_DOLL, EVENT_DECO_ODDISH_DOLL, SPRITE_ODDISH
+ decoration DECO_DOLL, GENGAR, SET_UP_DOLL, EVENT_DECO_GENGAR_DOLL, SPRITE_GENGAR
+ decoration DECO_DOLL, SHELLDER, SET_UP_DOLL, EVENT_DECO_SHELLDER_DOLL, SPRITE_SHELLDER
+ decoration DECO_DOLL, GRIMER, SET_UP_DOLL, EVENT_DECO_GRIMER_DOLL, SPRITE_GRIMER
+ decoration DECO_DOLL, VOLTORB, SET_UP_DOLL, EVENT_DECO_VOLTORB_DOLL, SPRITE_VOLTORB
+ decoration DECO_DOLL, WEEDLE, SET_UP_DOLL, EVENT_DECO_WEEDLE_DOLL, SPRITE_WEEDLE
+ decoration DECO_DOLL, UNOWN, SET_UP_DOLL, EVENT_DECO_UNOWN_DOLL, SPRITE_UNOWN
+ decoration DECO_DOLL, GEODUDE, SET_UP_DOLL, EVENT_DECO_GEODUDE_DOLL, SPRITE_GEODUDE
+ decoration DECO_DOLL, MACHOP, SET_UP_DOLL, EVENT_DECO_MACHOP_DOLL, SPRITE_MACHOP
+ decoration DECO_DOLL, TENTACOOL, SET_UP_DOLL, EVENT_DECO_TENTACOOL_DOLL, SPRITE_TENTACOOL
+ decoration DECO_PLANT, GOLD_TROPHY, SET_UP_DOLL, EVENT_DECO_GOLD_TROPHY, SPRITE_GOLD_TROPHY
+ decoration DECO_PLANT, SILVER_TROPHY, SET_UP_DOLL, EVENT_DECO_SILVER_TROPHY, SPRITE_SILVER_TROPHY
+; 26b8d
+
+
+DecorationNames: ; 26b8d
+ db "CANCEL@"
+ db "PUT IT AWAY@"
+ db "MAGNAPLANT@"
+ db "TROPICPLANT@"
+ db "JUMBOPLANT@"
+ db "TOWN MAP@"
+ db "NES@"
+ db "SUPER NES@"
+ db "NINTENDO 64@"
+ db "VIRTUAL BOY@"
+ db "GOLD TROPHY@"
+ db "SILVER TROPHY@"
+ db "SURF PIKACHU DOLL@"
+ db " BED@"
+ db " CARPET@"
+ db " POSTER@"
+ db " DOLL@"
+ db "BIG @"
+ db "FEATHERY@"
+ db "PIKACHU@"
+ db "PINK@"
+ db "POLKADOT@"
+ db "RED@"
+ db "BLUE@"
+ db "YELLOW@"
+ db "GREEN@"
+; 26c72
+
+GetDecoName: ; 26c72
+ ld a, [hli]
+ ld e, [hl]
+ ld bc, StringBuffer2
+ push bc
+ ld hl, .NameFunctions
+ rst JumpTable
+ pop de
+ ret
+; 26c7e
+
+.NameFunctions: ; 26c7e
+ dw .invalid
+ dw .plant
+ dw .bed
+ dw .carpet
+ dw .poster
+ dw .doll
+ dw .bigdoll
+; 26c8c
+
+
+.invalid: ; 26c8c
+ ret
+; 26c8d
+
+.plant: ; 26c8d
+ ld a, e
+ jr .getdeconame
+
+.bed: ; 26c90
+ call .plant
+ ld a, _BED
+ jr .getdeconame
+
+.carpet: ; 26c97
+ call .plant
+ ld a, _CARPET
+ jr .getdeconame
+
+.poster: ; 26c9e
+ ld a, e
+ call .getpokename
+ ld a, _POSTER
+ jr .getdeconame
+
+.doll: ; 26ca6
+ ld a, e
+ call .getpokename
+ ld a, _DOLL
+ jr .getdeconame
+
+.bigdoll: ; 26cae
+ push de
+ ld a, BIG_
+ call .getdeconame
+ pop de
+ ld a, e
+ jr .getpokename
+
+.unused: ; 26cb8
+ push de
+ call .getdeconame
+ pop de
+ ld a, e
+ jr .getdeconame
+
+.getpokename: ; 26cc0
+ push bc
+ ld [wd265], a
+ call GetPokemonName
+ pop bc
+ jr .copy
+
+.getdeconame: ; 26cca
+ call ._getdeconame
+ jr .copy
+
+._getdeconame: ; 26ccf
+ push bc
+ ld hl, DecorationNames
+ call GetNthString
+ ld d, h
+ ld e, l
+ pop bc
+ ret
+
+.copy: ; 26cda
+ ld h, b
+ ld l, c
+ call CopyName2
+ dec hl
+ ld b, h
+ ld c, l
+ ret
+; 26ce3
+
+DecoAction_nothing: ; 26ce3
+ scf
+ ret
+; 26ce5
+
+DecoAction_setupbed: ; 26ce5
+ ld hl, Bed
+ jp DecoAction_TrySetItUp
+; 26ceb
+
+DecoAction_putawaybed: ; 26ceb
+ ld hl, Bed
+ jp DecoAction_TryPutItAway
+; 26cf1
+
+DecoAction_setupcarpet: ; 26cf1
+ ld hl, Carpet
+ jp DecoAction_TrySetItUp
+; 26cf7
+
+DecoAction_putawaycarpet: ; 26cf7
+ ld hl, Carpet
+ jp DecoAction_TryPutItAway
+; 26cfd
+
+DecoAction_setupplant: ; 26cfd
+ ld hl, Plant
+ jp DecoAction_TrySetItUp
+; 26d03
+
+DecoAction_putawayplant: ; 26d03
+ ld hl, Plant
+ jp DecoAction_TryPutItAway
+; 26d09
+
+DecoAction_setupposter: ; 26d09
+ ld hl, Poster
+ jp DecoAction_TrySetItUp
+; 26d0f
+
+DecoAction_putawayposter: ; 26d0f
+ ld hl, Poster
+ jp DecoAction_TryPutItAway
+; 26d15
+
+DecoAction_setupconsole: ; 26d15
+ ld hl, Console
+ jp DecoAction_TrySetItUp
+; 26d1b
+
+DecoAction_putawayconsole: ; 26d1b
+ ld hl, Console
+ jp DecoAction_TryPutItAway
+; 26d21
+
+DecoAction_setupbigdoll: ; 26d21
+ ld hl, BigDoll
+ jp DecoAction_TrySetItUp
+; 26d27
+
+DecoAction_putawaybigdoll: ; 26d27
+ ld hl, BigDoll
+ jp DecoAction_TryPutItAway
+; 26d2d
+
+DecoAction_TrySetItUp: ; 26d2d
+ ld a, [hl]
+ ld [Buffer1], a
+ push hl
+ call DecoAction_SetItUp
+ jr c, .failed
+ ld a, 1
+ ld [wd1ee], a
+ pop hl
+ ld a, [MenuSelection]
+ ld [hl], a
+ xor a
+ ret
+
+.failed
+ pop hl
+ xor a
+ ret
+; 26d46
+
+DecoAction_SetItUp: ; 26d46
+; See if there's anything of the same type already out
+ ld a, [Buffer1]
+ and a
+ jr z, .nothingthere
+; See if that item is already out
+ ld b, a
+ ld a, [MenuSelection]
+ cp b
+ jr z, .alreadythere
+; Put away the item that's already out, and set up the new one
+ ld a, [MenuSelection]
+ ld hl, StringBuffer4
+ call GetDecorationName
+ ld a, [Buffer1]
+ ld hl, StringBuffer3
+ call GetDecorationName
+ ld hl, DecoText_PutAwayAndSetUp
+ call MenuTextBoxBackup
+ xor a
+ ret
+
+.nothingthere
+ ld a, [MenuSelection]
+ ld hl, StringBuffer3
+ call GetDecorationName
+ ld hl, DecoText_SetUpTheDeco
+ call MenuTextBoxBackup
+ xor a
+ ret
+
+.alreadythere
+ ld hl, DecoText_AlreadySetUp
+ call MenuTextBoxBackup
+ scf
+ ret
+; 26d86
+
+DecoAction_TryPutItAway: ; 26d86
+; If there is no item of that type already set, there is nothing to put away.
+ ld a, [hl]
+ ld [Buffer1], a
+ xor a
+ ld [hl], a
+ ld a, [Buffer1]
+ and a
+ jr z, .nothingthere
+; Put it away.
+ ld a, $1
+ ld [wd1ee], a
+ ld a, [Buffer1]
+ ld [MenuSelection], a
+ ld hl, StringBuffer3
+ call GetDecorationName
+ ld hl, DecoText_PutAwayTheDeco
+ call MenuTextBoxBackup
+ xor a
+ ret
+
+.nothingthere
+ ld hl, DecoText_NothingToPutAway
+ call MenuTextBoxBackup
+ xor a
+ ret
+; 26db3
+
+DecoAction_setupornament: ; 26db3
+ ld hl, UnknownText_0x26e41
+ call DecoAction_AskWhichSide
+ jr c, .cancel
+ call DecoAction_SetItUp_Ornament
+ jr c, .cancel
+ ld a, $1
+ ld [wd1ee], a
+ jr DecoAction_FinishUp_Ornament
+
+.cancel
+ xor a
+ ret
+
+DecoAction_putawayornament: ; 26dc9
+ ld hl, DecoText_WhichSide
+ call DecoAction_AskWhichSide
+ jr nc, .incave
+ xor a
+ ret
+
+.incave
+ call DecoAction_PutItAway_Ornament
+
+DecoAction_FinishUp_Ornament: ; 26dd6
+ call QueryWhichSide
+ ld a, [wd1ec]
+ ld [hl], a
+ ld a, [wd1ed]
+ ld [de], a
+ xor a
+ ret
+; 26de3
+
+DecoAction_SetItUp_Ornament: ; 26de3
+ ld a, [wd1ec]
+ and a
+ jr z, .nothingthere
+ ld b, a
+ ld a, [MenuSelection]
+ cp b
+ jr z, .failed
+ ld a, b
+ ld hl, StringBuffer3
+ call GetDecorationName
+ ld a, [MenuSelection]
+ ld hl, StringBuffer4
+ call GetDecorationName
+ ld a, [MenuSelection]
+ ld [wd1ec], a
+ call .getwhichside
+ ld hl, DecoText_PutAwayAndSetUp
+ call MenuTextBoxBackup
+ xor a
+ ret
+
+.nothingthere
+ ld a, [MenuSelection]
+ ld [wd1ec], a
+ call .getwhichside
+ ld a, [MenuSelection]
+ ld hl, StringBuffer3
+ call GetDecorationName
+ ld hl, DecoText_SetUpTheDeco
+ call MenuTextBoxBackup
+ xor a
+ ret
+
+.failed
+ ld hl, DecoText_AlreadySetUp
+ call MenuTextBoxBackup
+ scf
+ ret
+; 26e33
+
+.getwhichside: ; 26e33
+ ld a, [MenuSelection]
+ ld b, a
+ ld a, [wd1ed]
+ cp b
+ ret nz
+ xor a
+ ld [wd1ed], a
+ ret
+; 26e41
+
+UnknownText_0x26e41: ; 0x26e41
+ ; Which side do you want to put it on?
+ text_jump UnknownText_0x1bc48c
+ db "@"
+; 0x26e46
+
+DecoAction_PutItAway_Ornament: ; 26e46
+ ld a, [wd1ec]
+ and a
+ jr z, .nothingthere
+ ld hl, StringBuffer3
+ call GetDecorationName
+ ld a, $1
+ ld [wd1ee], a
+ xor a
+ ld [wd1ec], a
+ ld hl, DecoText_PutAwayTheDeco
+ call MenuTextBoxBackup
+ xor a
+ ret
+
+.nothingthere
+ ld hl, DecoText_NothingToPutAway
+ call MenuTextBoxBackup
+ xor a
+ ret
+; 26e6b
+
+DecoText_WhichSide: ; 0x26e6b
+ ; Which side do you want to put away?
+ text_jump UnknownText_0x1bc4b2
+ db "@"
+; 0x26e70
+
+DecoAction_AskWhichSide: ; 26e70
+ call MenuTextBox
+ ld hl, MenuDataHeader_0x26eab
+ call GetMenu2
+ call ExitMenu
+ call CopyMenuData2
+ jr c, .nope
+ ld a, [MenuSelection2]
+ cp 3
+ jr z, .nope
+ ld [Buffer2], a
+ call QueryWhichSide
+ ld a, [hl]
+ ld [wd1ec], a
+ ld a, [de]
+ ld [wd1ed], a
+ xor a
+ ret
+
+.nope
+ scf
+ ret
+; 26e9a
+
+QueryWhichSide: ; 26e9a
+ ld hl, RightOrnament
+ ld de, LeftOrnament
+ ld a, [Buffer2]
+ cp 1
+ ret z
+ push hl
+ ld h, d
+ ld l, e
+ pop de
+ ret
+; 26eab
+
+MenuDataHeader_0x26eab: ; 0x26eab
+ db $40 ; flags
+ db 00, 00 ; start coords
+ db 07, 13 ; end coords
+ dw MenuData2_0x26eb3
+ db 1 ; default option
+; 0x26eb3
+
+MenuData2_0x26eb3: ; 0x26eb3
+ db $80 ; flags
+ db 3 ; items
+ db "RIGHT SIDE@"
+ db "LEFT SIDE@"
+ db "CANCEL@"
+; 0x26ed1
+
+DecoText_PutAwayTheDeco: ; 0x26ed1
+ ; Put away the @ .
+ text_jump UnknownText_0x1bc4d7
+ db "@"
+; 0x26ed6
+
+DecoText_NothingToPutAway: ; 0x26ed6
+ ; There's nothing to put away.
+ text_jump UnknownText_0x1bc4ec
+ db "@"
+; 0x26edb
+
+DecoText_SetUpTheDeco: ; 0x26edb
+ ; Set up the @ .
+ text_jump UnknownText_0x1bc509
+ db "@"
+; 0x26ee0
+
+DecoText_PutAwayAndSetUp: ; 0x26ee0
+ ; Put away the @ and set up the @ .
+ text_jump UnknownText_0x1bc51c
+ db "@"
+; 0x26ee5
+
+DecoText_AlreadySetUp: ; 0x26ee5
+ ; That's already set up.
+ text_jump UnknownText_0x1bc546
+ db "@"
+; 0x26eea
+
+GetDecorationName_c_de: ; 26eea
+ ld a, c
+ ld h, d
+ ld l, e
+ call GetDecorationName
+ ret
+; 26ef1
+
+DecorationFlagAction_c: ; 26ef1
+ ld a, c
+ jp DecorationFlagAction
+; 26ef5
+
+
+GetDecorationName_c: ; 26ef5 (9:6ef5)
+ ld a, c
+ call GetDecorationID
+ ld hl, StringBuffer1
+ push hl
+ call GetDecorationName
+ pop de
+ ret
+
+
+SetSpecificDecorationFlag: ; 26f02
+ ld a, c
+ call GetDecorationID
+ ld b, SET_FLAG
+ call DecorationFlagAction
+ ret
+; 26f0c
+
+GetDecorationID: ; 26f0c
+ push hl
+ push de
+ ld e, a
+ ld d, 0
+ ld hl, DecorationIDs
+ add hl, de
+ ld a, [hl]
+ pop de
+ pop hl
+ ret
+; 26f19
+
+SetAllDecorationFlags: ; 26f19
+ ld hl, DecorationIDs
+.loop
+ ld a, [hli]
+ cp -1
+ jr z, .done
+ push hl
+ ld b, SET_FLAG
+ call DecorationFlagAction
+ pop hl
+ jr .loop
+
+.done
+ ret
+; 26f2b
+
+DecorationIDs: ; 26f2b
+ db DECO_FEATHERY_BED ; 2
+ db DECO_PINK_BED ; 3
+ db DECO_POLKADOT_BED ; 4
+ db DECO_PIKACHU_BED ; 5
+
+ db DECO_RED_CARPET ; 7
+ db DECO_BLUE_CARPET ; 8
+ db DECO_YELLOW_CARPET ; 9
+ db DECO_GREEN_CARPET ; a
+
+ db DECO_MAGNAPLANT ; c
+ db DECO_TROPICPLANT ; d
+ db DECO_JUMBOPLANT ; e
+
+ db DECO_TOWN_MAP ; 10
+ db DECO_PIKACHU_POSTER ; 11
+ db DECO_CLEFAIRY_POSTER ; 12
+ db DECO_JIGGLYPUFF_POSTER ; 13
+
+ db DECO_FAMICOM ; 15
+ db DECO_SNES ; 16
+ db DECO_N64 ; 17
+ db DECO_VIRTUAL_BOY ; 18
+
+ db DECO_PIKACHU_DOLL ; 1e
+ db DECO_SURF_PIKACHU_DOLL ; 1f
+ db DECO_CLEFAIRY_DOLL ; 20
+ db DECO_JIGGLYPUFF_DOLL ; 21
+ db DECO_BULBASAUR_DOLL ; 22
+ db DECO_CHARMANDER_DOLL ; 23
+ db DECO_SQUIRTLE_DOLL ; 24
+ db DECO_POLIWAG_DOLL ; 25
+ db DECO_DIGLETT_DOLL ; 26
+ db DECO_STARMIE_DOLL ; 27
+ db DECO_MAGIKARP_DOLL ; 28
+ db DECO_ODDISH_DOLL ; 29
+ db DECO_GENGAR_DOLL ; 2a
+ db DECO_SHELLDER_DOLL ; 2b
+ db DECO_GRIMER_DOLL ; 2c
+ db DECO_VOLTORB_DOLL ; 2d
+ db DECO_WEEDLE_DOLL ; 2e
+ db DECO_UNOWN_DOLL ; 2f
+ db DECO_GEODUDE_DOLL ; 30
+ db DECO_MACHOP_DOLL ; 31
+ db DECO_TENTACOOL_DOLL ; 32
+ db DECO_BIG_SNORLAX_DOLL ; 1a
+ db DECO_BIG_ONIX_DOLL ; 1b
+ db DECO_BIG_LAPRAS_DOLL ; 1c
+Trophys:
+ db DECO_GOLD_TROPHY_DOLL ; 33
+ db DECO_SILVER_TROPHY_DOLL ; 34
+ db -1
+; 26f59
+
+DescribeDecoration:: ; 26f59
+ ld a, b
+ ld hl, JumpTable_DecorationDesc
+ rst JumpTable
+ ret
+; 26f5f
+
+JumpTable_DecorationDesc: ; 26f5f
+ dw DecorationDesc_Poster
+ dw DecorationDesc_LeftOrnament
+ dw DecorationDesc_RightOrnament
+ dw DecorationDesc_GiantOrnament
+ dw DecorationDesc_Console
+; 26f69
+
+DecorationDesc_Poster: ; 26f69
+ ld a, [Poster]
+ ld hl, DecorationDesc_PosterPointers
+ ld de, 3
+ call IsInArray
+ jr c, .nope
+ ld de, DecorationDesc_NullPoster
+ ld b, BANK(DecorationDesc_NullPoster)
+ ret
+
+.nope
+ ld b, BANK(DecorationDesc_TownMapPoster)
+ inc hl
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ ret
+; 26f84
+
+DecorationDesc_PosterPointers: ; 26f84
+ dbw DECO_TOWN_MAP, DecorationDesc_TownMapPoster
+ dbw DECO_PIKACHU_POSTER, DecorationDesc_PikachuPoster
+ dbw DECO_CLEFAIRY_POSTER, DecorationDesc_ClefairyPoster
+ dbw DECO_JIGGLYPUFF_POSTER, DecorationDesc_JigglypuffPoster
+ db -1
+; 26f91
+
+DecorationDesc_TownMapPoster: ; 0x26f91
+ loadfont
+ writetext .TownMapText
+ closetext
+ special Special_TownMap
+ loadmovesprites
+ end
+; 0x26f9b
+
+.TownMapText: ; 0x26f9b
+ ; It's the TOWN MAP.
+ text_jump UnknownText_0x1bc55d
+ db "@"
+; 0x26fa0
+
+DecorationDesc_PikachuPoster: ; 0x26fa0
+ jumptext .PikaPosterText
+; 0x26fa3
+
+.PikaPosterText: ; 0x26fa3
+ ; It's a poster of a cute PIKACHU.
+ text_jump UnknownText_0x1bc570
+ db "@"
+; 0x26fa8
+
+DecorationDesc_ClefairyPoster: ; 0x26fa8
+ jumptext .ClefairyPosterText
+; 0x26fab
+
+.ClefairyPosterText: ; 0x26fab
+ ; It's a poster of a cute CLEFAIRY.
+ text_jump UnknownText_0x1bc591
+ db "@"
+; 0x26fb0
+
+DecorationDesc_JigglypuffPoster: ; 0x26fb0
+ jumptext .JigglypuffPosterText
+; 0x26fb3
+
+.JigglypuffPosterText: ; 0x26fb3
+ ; It's a poster of a cute JIGGLYPUFF.
+ text_jump UnknownText_0x1bc5b3
+ db "@"
+; 0x26fb8
+
+DecorationDesc_NullPoster: ; 26fb8
+ end
+; 26fb9
+
+DecorationDesc_LeftOrnament: ; 26fb9
+ ld a, [LeftOrnament]
+ jr DecorationDesc_OrnamentOrConsole
+
+DecorationDesc_RightOrnament: ; 26fbe
+ ld a, [RightOrnament]
+ jr DecorationDesc_OrnamentOrConsole
+
+DecorationDesc_Console: ; 26fc3
+ ld a, [Console]
+ jr DecorationDesc_OrnamentOrConsole
+
+DecorationDesc_OrnamentOrConsole: ; 26fc8
+ ld c, a
+ ld de, StringBuffer3
+ call GetDecorationName_c_de
+ ld b, BANK(.OrnamentConsoleScript)
+ ld de, .OrnamentConsoleScript
+ ret
+; 26fd5
+
+.OrnamentConsoleScript: ; 26fd5
+ jumptext .OrnamentConsoleText
+; 26fd8
+
+.OrnamentConsoleText: ; 0x26fd8
+ ; It's an adorable @ .
+ text_jump UnknownText_0x1bc5d7
+ db "@"
+; 0x26fdd
+
+DecorationDesc_GiantOrnament: ; 26fdd
+ ld b, BANK(.BigDollScript)
+ ld de, .BigDollScript
+ ret
+; 26fe3
+
+.BigDollScript: ; 26fe3
+ jumptext .BigDollText
+; 26fe6
+
+.BigDollText: ; 0x26fe6
+ ; A giant doll! It's fluffy and cuddly.
+ text_jump UnknownText_0x1bc5ef
+ db "@"
+; 0x26feb
+
+ToggleMaptileDecorations: ; 26feb
+ lb de, 0, 4
+ ld a, [Bed]
+ call SetDecorationTile
+ lb de, 7, 4
+ ld a, [Plant]
+ call SetDecorationTile
+ lb de, 6, 0
+ ld a, [Poster]
+ call SetDecorationTile
+ call SetPosterVisibility
+ lb de, 0, 0
+ call PadCoords_de
+ ld a, [Carpet]
+ and a
+ ret z
+ call _GetDecorationSprite
+ ld [hl], a
+ push af
+ lb de, 0, 2
+ call PadCoords_de
+ pop af
+ inc a
+ ld [hli], a
+ inc a
+ ld [hli], a
+ dec a
+ ld [hl], a
+ ret
+; 27027
+
+SetPosterVisibility: ; 27027
+ ld b, SET_FLAG
+ ld a, [Poster]
+ and a
+ jr nz, .ok
+ ld b, RESET_FLAG
+
+.ok
+ ld de, EVENT_KRISS_ROOM_POSTER
+ jp EventFlagAction
+; 27037
+
+SetDecorationTile: ; 27037
+ push af
+ call PadCoords_de
+ pop af
+ and a
+ ret z
+ call _GetDecorationSprite
+ ld [hl], a
+ ret
+; 27043
+
+ToggleDecorationsVisibility: ; 27043
+ ld de, EVENT_KRISS_HOUSE_2F_CONSOLE
+ ld hl, VariableSprites + SPRITE_CONSOLE - SPRITE_VARS
+ ld a, [Console]
+ call ToggleDecorationVisibility
+ ld de, EVENT_KRISS_HOUSE_2F_DOLL_1
+ ld hl, VariableSprites + SPRITE_DOLL_1 - SPRITE_VARS
+ ld a, [LeftOrnament]
+ call ToggleDecorationVisibility
+ ld de, EVENT_KRISS_HOUSE_2F_DOLL_2
+ ld hl, VariableSprites + SPRITE_DOLL_2 - SPRITE_VARS
+ ld a, [RightOrnament]
+ call ToggleDecorationVisibility
+ ld de, EVENT_KRISS_HOUSE_2F_BIG_DOLL
+ ld hl, VariableSprites + SPRITE_BIG_DOLL - SPRITE_VARS
+ ld a, [BigDoll]
+ call ToggleDecorationVisibility
+ ret
+; 27074
+
+ToggleDecorationVisibility: ; 27074
+ and a
+ jr z, .hide
+ call _GetDecorationSprite
+ ld [hl], a
+ ld b, RESET_FLAG
+ jp EventFlagAction
+
+.hide
+ ld b, SET_FLAG
+ jp EventFlagAction
+; 27085
+
+_GetDecorationSprite: ; 27085
+ ld c, a
+ push de
+ push hl
+ callba GetDecorationSprite
+ pop hl
+ pop de
+ ld a, c
+ ret
+; 27092
--- a/engine/diploma.asm
+++ b/engine/diploma.asm
@@ -1,5 +1,5 @@
-Function1dd702: ; 1dd702
+_Diploma: ; 1dd702
call Function1dd709
call WaitPressAorB_BlinkCursor
ret
@@ -31,7 +31,7 @@
call PlaceString
call EnableLCD
call WaitBGMap
- ld b, $8
+ ld b, SCGB_08
call GetSGBLayout
call SetPalettes
call DelayFrame
--- a/engine/dummy_game.asm
+++ b/engine/dummy_game.asm
@@ -8,7 +8,7 @@
Functione1e67: ; e1e67 (38:5e67)
call DisableLCD
- ld b, $8
+ ld b, SCGB_08
call GetSGBLayout
callab Function8cf53
ld hl, LZ_e2221
@@ -123,7 +123,7 @@
.asm_e1f30
ld de, $341c
ld a, $c
- call Function3b2a
+ call _InitSpriteAnimStruct
ld a, $5
ld [wc702], a
ld hl, wJumptableIndex
--- a/engine/engine_flags.asm
+++ b/engine/engine_flags.asm
@@ -1,3 +1,90 @@
+EngineFlagAction:: ; 80430
+; Do action b on engine flag de
+;
+; b = 0: reset flag
+; = 1: set flag
+; > 1: check flag, result in c
+;
+; Setting/resetting does not return a result.
+
+
+; 16-bit flag ids are considered invalid, but it's nice
+; to know that the infrastructure is there.
+
+ ld a, d
+ cp 0
+ jr z, .ceiling
+ jr c, .read ; cp 0 can't set carry!
+ jr .invalid
+
+; There are only $a2 engine flags, so
+; anything beyond that is invalid too.
+
+.ceiling
+ ld a, e
+ cp NUM_ENGINE_FLAGS
+ jr c, .read
+
+; Invalid flags are treated as flag 00.
+
+.invalid
+ xor a
+ ld e, a
+ ld d, a
+
+; Get this flag's location.
+
+.read
+ ld hl, EngineFlags
+; location
+rept 2
+ add hl, de
+endr
+; bit
+ add hl, de
+
+; location
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+; bit
+ ld c, [hl]
+
+; What are we doing with this flag?
+
+ ld a, b
+ cp 1
+ jr c, .reset ; b = 0
+ jr z, .set ; b = 1
+
+; Return the given flag in c.
+.check
+ ld a, [de]
+ and c
+ ld c, a
+ ret
+
+; Set the given flag.
+.set
+ ld a, [de]
+ or c
+ ld [de], a
+ ret
+
+; Reset the given flag.
+.reset
+ ld a, c
+ cpl ; AND all bits except the one in question
+ ld c, a
+ ld a, [de]
+ and c
+ ld [de], a
+ ret
+; 80462
+
+
+EngineFlags: ; 80462
; All locations are in WRAM bank 1.
engine_flag: MACRO
dwb \1, 1 << \2
@@ -22,7 +109,7 @@
engine_flag wMomSavingMoney, 0 ; mom saving money ; $8
engine_flag wMomSavingMoney, 7 ; dst
- engine_flag wdc39, 0
+ engine_flag wdc39, 0 ; unused, possibly related to a 2-day timer
engine_flag StatusFlags, 0 ; pokedex
engine_flag StatusFlags, 1 ; unown dex
@@ -31,7 +118,7 @@
engine_flag StatusFlags, 6 ; credits skip
engine_flag StatusFlags, 7 ; bug contest on ; $10
engine_flag StatusFlags2, 2 ; bug contest timer
- engine_flag StatusFlags2, 1
+ engine_flag StatusFlags2, 1 ; ???
engine_flag StatusFlags2, 0 ; rockets in radio tower
engine_flag StatusFlags2, 4 ; bike shop call enabled (1024 bike steps reqd)
engine_flag StatusFlags2, 5 ; give pokerus
@@ -71,14 +158,14 @@
engine_flag UnlockedUnowns, 7 ; 8
; fly
- engine_flag VisitedSpawns, 0 ; your house
- engine_flag VisitedSpawns, 1 ; viridian pokecenter
- engine_flag VisitedSpawns, 2 ; pallet
- engine_flag VisitedSpawns, 3 ; viridian
- engine_flag VisitedSpawns, 4 ; pewter
- engine_flag VisitedSpawns, 5 ; cerulean ; $38
- engine_flag VisitedSpawns, 6 ; rock tunnel
- engine_flag VisitedSpawns, 7 ; vermilion
+ engine_flag VisitedSpawns, 0 ; your house
+ engine_flag VisitedSpawns, 1 ; viridian pokecenter
+ engine_flag VisitedSpawns, 2 ; pallet
+ engine_flag VisitedSpawns, 3 ; viridian
+ engine_flag VisitedSpawns, 4 ; pewter
+ engine_flag VisitedSpawns, 5 ; cerulean ; $38
+ engine_flag VisitedSpawns, 6 ; rock tunnel
+ engine_flag VisitedSpawns, 7 ; vermilion
engine_flag VisitedSpawns + 1, 0 ; lavender
engine_flag VisitedSpawns + 1, 1 ; saffron
engine_flag VisitedSpawns + 1, 2 ; celadon
@@ -88,6 +175,7 @@
engine_flag VisitedSpawns + 1, 6 ; new bark
engine_flag VisitedSpawns + 1, 7 ; cherrygrove
engine_flag VisitedSpawns + 2, 0 ; violet
+ ; union cave
engine_flag VisitedSpawns + 2, 2 ; azalea
engine_flag VisitedSpawns + 2, 3 ; cianwood
engine_flag VisitedSpawns + 2, 4 ; goldenrod
@@ -97,6 +185,7 @@
engine_flag VisitedSpawns + 3, 0 ; lake of rage
engine_flag VisitedSpawns + 3, 1 ; blackthorn
engine_flag VisitedSpawns + 3, 2 ; silver cave
+ ; fast ship
engine_flag VisitedSpawns + 3, 4 ; unused
engine_flag wLuckyNumberShowFlag, 0 ; lucky number show
@@ -157,7 +246,7 @@
engine_flag wDailyPhoneItemFlags, 0 ; beverly has nugget
engine_flag wDailyPhoneItemFlags, 1 ; jose has star piece
- engine_flag wDailyPhoneItemFlags, 2 ; wade has item (see bittable1 $032b-e)
+ engine_flag wDailyPhoneItemFlags, 2 ; wade has item (see EVENT_WADE_HAS_*** in constants/event_flags.asm)
engine_flag wDailyPhoneItemFlags, 3 ; gina has leaf stone ; $80
engine_flag wDailyPhoneItemFlags, 4 ; alan has fire stone
engine_flag wDailyPhoneItemFlags, 5 ; liz has thunderstone
@@ -165,7 +254,7 @@
engine_flag wDailyPhoneItemFlags, 7 ; tully has water stone
engine_flag wDailyPhoneItemFlags + 1, 0 ; tiffany has pink bow
- engine_flag wDailyPhoneItemFlags + 1, 1 ; wilton has item (see bittable1 $032f-31)
+ engine_flag wDailyPhoneItemFlags + 1, 1 ; wilton has item (see EVENT_WILTON_HAS_*** in constants/event_flags.asm)
engine_flag wDailyPhoneTimeOfDayFlags, 0
engine_flag wDailyPhoneTimeOfDayFlags, 1 ; $88
--- a/engine/events.asm
+++ b/engine/events.asm
@@ -24,13 +24,13 @@
; 966cb
-ClearAllScriptFlags3: ; 966cb
+DisableEvents: ; 966cb
xor a
ld [ScriptFlags3], a
ret
; 966d0
-SetAll_ScriptFlags3:: ; 966d0
+EnableEvents:: ; 966d0
ld a, $ff
ld [ScriptFlags3], a
ret
@@ -42,73 +42,73 @@
ret
; 966dc
-ResetBit2_ScriptFlags3: ; 966dc
+DisableWarpsConnxns: ; 966dc
ld hl, ScriptFlags3
res 2, [hl]
ret
; 966e2
-ResetBit1_ScriptFlags3: ; 966e2
+DisableCoordEvents: ; 966e2
ld hl, ScriptFlags3
res 1, [hl]
ret
; 966e8
-ResetBit0_ScriptFlags3: ; 966e8
+DisableStepCount: ; 966e8
ld hl, ScriptFlags3
res 0, [hl]
ret
; 966ee
-ResetBit4_ScriptFlags3: ; 966ee
+DisableWildEncounters: ; 966ee
ld hl, ScriptFlags3
res 4, [hl]
ret
; 966f4
-SetBit2_ScriptFlags3: ; 966f4
+EnableWarpsConnxns: ; 966f4
ld hl, ScriptFlags3
set 2, [hl]
ret
; 966fa
-SetBit1_ScriptFlags3: ; 966fa
+EnableCoordEvents: ; 966fa
ld hl, ScriptFlags3
set 1, [hl]
ret
; 96700
-SetBit0_ScriptFlags3: ; 96700
+EnableStepCount: ; 96700
ld hl, ScriptFlags3
set 0, [hl]
ret
; 96706
-SetBit4_ScriptFlags3: ; 96706
+EnableWildEncounters: ; 96706
ld hl, ScriptFlags3
set 4, [hl]
ret
; 9670c
-CheckBit2_ScriptFlags3: ; 9670c
+CheckWarpConnxnScriptFlag: ; 9670c
ld hl, ScriptFlags3
bit 2, [hl]
ret
; 96712
-CheckBit1_ScriptFlags3: ; 96712
+CheckCoordEventScriptFlag: ; 96712
ld hl, ScriptFlags3
bit 1, [hl]
ret
; 96718
-CheckBit0_ScriptFlags3: ; 96718
+CheckStepCountScriptFlag: ; 96718
ld hl, ScriptFlags3
bit 0, [hl]
ret
; 9671e
-CheckBit4_ScriptFlags3: ; 9671e
+CheckWildEncountersScriptFlag: ; 9671e
ld hl, ScriptFlags3
bit 4, [hl]
ret
@@ -135,13 +135,13 @@
ld [wd454], a
call SetUpFiveStepWildEncounterCooldown
callba RunMapSetupScript
- call ClearAllScriptFlags3
+ call DisableEvents
ld a, [hMapEntryMethod]
cp MAPSETUP_CONNECTION
- jr nz, .dontset
- call SetAll_ScriptFlags3
-.dontset
+ jr nz, .dont_enable
+ call EnableEvents
+.dont_enable
ld a, [hMapEntryMethod]
cp MAPSETUP_RELOADMAP
@@ -168,7 +168,7 @@
HandleMap: ; 96773
call ResetOverworldDelay
call Function967c1
- callba Function97e08
+ callba HandleCmdQueue ; no need to farcall
call MapEvents
; Not immediately entering a connected map will cause problems.
@@ -197,7 +197,7 @@
.events ; 967a1
call PlayerEvents
- call ClearAllScriptFlags3
+ call DisableEvents
callba ScriptEvents
ret
; 967ae
@@ -238,7 +238,7 @@
; 967d1
Function967d1: ; 967d1
- callba Function576a
+ callba Function576a ; engine/map_objects.asm
callba Functiond497
call Function96812
ret
@@ -245,7 +245,7 @@
; 967e1
Function967e1: ; 967e1
- callba RefreshMapAppearDisappear
+ callba _UpdateSprites
callba Functiond4d2
callba PlaceMapNameSign
ret
@@ -252,7 +252,7 @@
; 967f4
Function967f4: ; 967f4
- ld a, [wd150]
+ ld a, [wPlayerStepFlags]
bit 5, a
jr z, .events
bit 6, a
@@ -259,7 +259,7 @@
jr z, .noevents
bit 4, a
jr nz, .noevents
- call SetAll_ScriptFlags3
+ call EnableEvents
.events
ld a, 0 ; events
@@ -273,7 +273,7 @@
; 96812
Function96812: ; 96812
- ld hl, wd150
+ ld hl, wPlayerStepFlags
bit 6, [hl]
ret z
@@ -355,8 +355,8 @@
CheckTileEvent: ; 96874
; Check for warps, tile triggers or wild battles.
- call CheckBit2_ScriptFlags3
- jr z, .bit2
+ call CheckWarpConnxnScriptFlag
+ jr z, .connections_disabled
callba CheckMovingOffEdgeOfMap
jr c, .map_connection
@@ -364,22 +364,22 @@
call CheckWarpTile
jr c, .warp_tile
-.bit2
- call CheckBit1_ScriptFlags3
- jr z, .bit1
+.connections_disabled
+ call CheckCoordEventScriptFlag
+ jr z, .coord_events_disabled
- call CheckCurrentMapXYTriggers
- jr c, .movement
+ call CheckCurrentNextMapXYTriggers
+ jr c, .coord_event
-.bit1
- call CheckBit0_ScriptFlags3
- jr z, .bit0
+.coord_events_disabled
+ call CheckStepCountScriptFlag
+ jr z, .step_count_disabled
call CountStep
ret c
-.bit0
- call CheckBit4_ScriptFlags3
+.step_count_disabled
+ call CheckWildEncountersScriptFlag
jr z, .ok
call RandomEncounter
@@ -396,7 +396,7 @@
ret
.warp_tile
- ld a, [PlayerStandingTile]
+ ld a, [PlayerNextTile]
call CheckPitTile
jr nz, .not_pit
ld a, PLAYEREVENT_FALL
@@ -408,8 +408,8 @@
scf
ret
-.movement
- ld hl, MovementAnimation
+.coord_event
+ ld hl, EngineBuffer5
ld a, [hli]
ld h, [hl]
ld l, a
@@ -511,7 +511,7 @@
jr nz, .nothing
ld hl, StatusFlags2
- bit 2, [hl]
+ bit 2, [hl] ; bug contest
jr z, .do_daily
callba CheckBugContestTimer
@@ -552,7 +552,7 @@
jr nz, .NoAction
; Can't perform button actions while sliding on ice.
- callba Function80404
+ callba CheckStandingOnIce
jr c, .NoAction
call CheckAPressOW
@@ -635,21 +635,23 @@
jp [hl]
.nope_bugged
+ ; pop bc
xor a
ret
.pointers
- dbw 0, .zero
- dbw 1, .one
- dbw 2, .two
- dbw 3, .three
- dbw 4, .four
- dbw 5, .five
- dbw 6, .six
+ dbw PERSONTYPE_SCRIPT, .script
+ dbw PERSONTYPE_ITEMFRAGMENT, .itemfragment
+ dbw PERSONTYPE_TRAINER, .trainer
+ ; the remaining four are dummy events
+ dbw PERSONTYPE_3, .three
+ dbw PERSONTYPE_4, .four
+ dbw PERSONTYPE_5, .five
+ dbw PERSONTYPE_6, .six
db -1
; 96a04
-.zero ; 96a04
+.script ; 96a04
ld hl, MAPOBJECT_SCRIPT_POINTER
add hl, bc
ld a, [hli]
@@ -657,11 +659,10 @@
ld l, a
call GetMapScriptHeaderBank
call CallScript
-; ld a, -1
ret
; 96a12
-.one ; 96a12
+.itemfragment ; 96a12
ld hl, MAPOBJECT_SCRIPT_POINTER
add hl, bc
ld a, [hli]
@@ -671,14 +672,14 @@
ld de, EngineBuffer1
ld bc, 2
call FarCopyBytes
- ld a, 3
+ ld a, PLAYEREVENT_ITEMBALL
scf
ret
; 96a29
-.two ; 96a29
- call Function3674
- ld a, 2
+.trainer ; 96a29
+ call TalkToTrainer
+ ld a, PLAYEREVENT_TALKTOTRAINER
scf
ret
; 96a30
@@ -729,16 +730,16 @@
; 96a59
.up
- ld b, UP << 2
+ ld b, OW_UP
jr .checkdir
.down
- ld b, DOWN << 2
+ ld b, OW_DOWN
jr .checkdir
.right
- ld b, RIGHT << 2
+ ld b, OW_RIGHT
jr .checkdir
.left
- ld b, LEFT << 2
+ ld b, OW_LEFT
jr .checkdir
.checkdir
@@ -1077,12 +1078,12 @@
dba SeenByTrainerScript ; 1
dba TalkToTrainerScript ; 2
dba FindItemInBallScript ; 3
- dba UnknownScript_0x96c4d ; 4
+ dba EdgeWarpScript ; 4
dba WarpToNewMapScript ; 5
dba FallIntoMapScript ; 6
dba Script_OverworldWhiteout ; 7
dba HatchEggScript ; 8
- dba UnknownScript_0x96c4f ; 9
+ dba ChangeDirectionScript ; 9
dba Invalid_0x96c2d ; 10
; 96c2d
@@ -1124,13 +1125,13 @@
end
; 96c4d
-UnknownScript_0x96c4d: ; 4
+EdgeWarpScript: ; 4
reloadandreturn MAPSETUP_CONNECTION
; 96c4f
-UnknownScript_0x96c4f: ; 9
- deactivatefacing $3
- callasm SetBit4_ScriptFlags3
+ChangeDirectionScript: ; 9
+ deactivatefacing 3
+ callasm EnableWildEncounters
end
; 96c56
--- a/engine/events_2.asm
+++ b/engine/events_2.asm
@@ -3,8 +3,8 @@
WarpToSpawnPoint:: ; 97c28
ld hl, StatusFlags2
- res 1, [hl]
- res 2, [hl]
+ res 1, [hl] ; ??
+ res 2, [hl] ; bug contest
ret
; 97c30
@@ -161,7 +161,7 @@
jr nc, .no
.ice_check
- ld a, [PlayerStandingTile]
+ ld a, [PlayerNextTile]
call CheckIceTile
jr z, .no
scf
@@ -235,7 +235,7 @@
; 97d64
TryWildEncounter_BugContest: ; 97d64
- ld a, [PlayerStandingTile]
+ ld a, [PlayerNextTile]
call CheckSuperTallGrassTile
ld b, 40 percent
jr z, .ok
@@ -275,7 +275,7 @@
; if we've already gotten the call, we don't have to
; be here.
ld hl, StatusFlags2
- bit 4, [hl]
+ bit 4, [hl] ; bike shop call
jr z, .NoCall
; If we're not on the bike, we don't have to be here.
@@ -326,7 +326,7 @@
xor a
ld [wSpecialPhoneCallID + 1], a
ld hl, StatusFlags2
- res 4, [hl]
+ res 4, [hl] ; bike shop call
scf
ret
@@ -335,8 +335,8 @@
ret
; 97df9
-Function97df9:: ; 97df9
- ld hl, wd6de
+ClearCmdQueue:: ; 97df9
+ ld hl, wCmdQueue
ld de, 6
ld c, 4
xor a
@@ -348,8 +348,8 @@
ret
; 97e08
-Function97e08:: ; 97e08
- ld hl, wd6de
+HandleCmdQueue:: ; 97e08
+ ld hl, wCmdQueue
xor a
.loop
ld [hMapObjectIndexBuffer], a
@@ -359,22 +359,22 @@
push hl
ld b, h
ld c, l
- call Function97e79
+ call HandleQueuedCommand
pop hl
.skip
- ld de, $0006
+ ld de, CMDQUEUE_ENTRY_SIZE
add hl, de
ld a, [hMapObjectIndexBuffer]
inc a
- cp $4
+ cp CMDQUEUE_CAPACITY
jr nz, .loop
ret
; 97e25
-Function97e25: ; 97e25
- ld hl, wd6de
- ld bc, 6
+GetNthCmdQueueEntry: ; 97e25 unreferenced
+ ld hl, wCmdQueue
+ ld bc, CMDQUEUE_ENTRY_SIZE
call AddNTimes
ld b, h
ld c, l
@@ -381,10 +381,10 @@
ret
; 97e31
-Function97e31:: ; 97e31
+WriteCmdQueue:: ; 97e31
push bc
push de
- call Function97e45
+ call .GetNextEmptyEntry
ld d, h
ld e, l
pop hl
@@ -391,7 +391,7 @@
pop bc
ret c
ld a, b
- ld bc, $0005
+ ld bc, CMDQUEUE_ENTRY_SIZE - 1
call FarCopyBytes
xor a
ld [hl], a
@@ -398,42 +398,42 @@
ret
; 97e45
-Function97e45: ; 97e45
- ld hl, wd6de
- ld de, $0006
- ld c, $4
-.asm_97e4d
+.GetNextEmptyEntry: ; 97e45
+ ld hl, wCmdQueue
+ ld de, CMDQUEUE_ENTRY_SIZE
+ ld c, CMDQUEUE_CAPACITY
+.loop
ld a, [hl]
and a
- jr z, .asm_97e57
+ jr z, .done
add hl, de
dec c
- jr nz, .asm_97e4d
+ jr nz, .loop
scf
ret
-.asm_97e57
- ld a, $4
+.done
+ ld a, CMDQUEUE_CAPACITY
sub c
and a
ret
; 97e5c
-Function97e5c:: ; 97e5c
- ld hl, wd6de
- ld de, $0006
- ld c, $4
-.asm_97e64
+DelCmdQueue:: ; 97e5c
+ ld hl, wCmdQueue
+ ld de, CMDQUEUE_ENTRY_SIZE
+ ld c, CMDQUEUE_CAPACITY
+.loop
ld a, [hl]
cp b
- jr z, .asm_97e6e
+ jr z, .done
add hl, de
dec c
- jr nz, .asm_97e64
+ jr nz, .loop
and a
ret
-.asm_97e6e
+.done
xor a
ld [hl], a
scf
@@ -440,25 +440,25 @@
ret
; 97e72
-Function97e72: ; 97e72
- ld hl, 0
+_DelCmdQueue: ; 97e72
+ ld hl, CMDQUEUE_TYPE
add hl, bc
ld [hl], 0
ret
; 97e79
-Function97e79: ; 97e79
- ld hl, 0
+HandleQueuedCommand: ; 97e79
+ ld hl, CMDQUEUE_TYPE
add hl, bc
ld a, [hl]
cp 5
- jr c, .asm_97e83
+ jr c, .okay
xor a
-.asm_97e83
+.okay
ld e, a
ld d, 0
- ld hl, Table97e94
+ ld hl, .Jumptable_ba
rept 3
add hl, de
endr
@@ -472,16 +472,16 @@
ret
; 97e94
-Table97e94: ; 97e94
- dba Function97eb7
- dba Function97eb8
- dba Function97f42
- dba Function97ef9
- dba Function97ebc
+.Jumptable_ba: ; 97e94
+ dba CmdQueue_Null
+ dba CmdQueue_Null2
+ dba CmdQueue_StoneTable
+ dba CmdQueue_Type3
+ dba CmdQueue_Type4
; 97ea3
-Function97ea3: ; 97ea3
- ld hl, $0005
+CmdQueueAnonymousJumptable: ; 97ea3
+ ld hl, CMDQUEUE_05
add hl, bc
ld a, [hl]
pop hl
@@ -489,45 +489,44 @@
ret
; 97eab
-Function97eab: ; 97eab
- ld hl, $0005
+CmdQueueAnonJT_Increment: ; 97eab
+ ld hl, CMDQUEUE_05
add hl, bc
inc [hl]
ret
; 97eb1
-Function97eb1: ; 97eb1
- ld hl, $0005
+CmdQueueAnonJT_Decrement: ; 97eb1
+ ld hl, CMDQUEUE_05
add hl, bc
dec [hl]
ret
; 97eb7
-Function97eb7: ; 97eb7
+CmdQueue_Null: ; 97eb7
ret
; 97eb8
-Function97eb8: ; 97eb8
+CmdQueue_Null2: ; 97eb8
call ret_2f3e
ret
; 97ebc
-Function97ebc: ; 97ebc
- call Function97ea3
- dw Function97ec3
- dw Function97ecd
+CmdQueue_Type4: ; 97ebc
+ call CmdQueueAnonymousJumptable
+ ; anonymous jumptable
+ dw .zero
+ dw .one
; 97ec3
-Function97ec3: ; 97ec3
+.zero: ; 97ec3
ld a, [hSCY]
- ld hl, $0004
+ ld hl, 4
add hl, bc
ld [hl], a
- call Function97eab
-; 97ecd
-
-Function97ecd: ; 97ecd
- ld hl, $0001
+ call CmdQueueAnonJT_Increment
+.one: ; 97ecd
+ ld hl, 1
add hl, bc
ld a, [hl]
dec a
@@ -535,7 +534,7 @@
jr z, .asm_97eee
and $1
jr z, .asm_97ee4
- ld hl, $0002
+ ld hl, 2
add hl, bc
ld a, [hSCY]
sub [hl]
@@ -543,7 +542,7 @@
ret
.asm_97ee4
- ld hl, $0002
+ ld hl, 2
add hl, bc
ld a, [hSCY]
add [hl]
@@ -551,33 +550,32 @@
ret
.asm_97eee
- ld hl, $0004
+ ld hl, 4
add hl, bc
ld a, [hl]
ld [hSCY], a
- call Function97e72
+ call _DelCmdQueue
ret
; 97ef9
-Function97ef9: ; 97ef9
- call Function97ea3
- dw Function97f02
- dw Function97f0a
- dw Function97f1b
+CmdQueue_Type3: ; 97ef9
+ call CmdQueueAnonymousJumptable
+ ; anonymous jumptable
+ dw .zero
+ dw .one
+ dw .two
; 97f02
-Function97f02: ; 97f02
- call Function97f38
- jr z, Function97f2c
- call Function97eab
-; 97f0a
+.zero: ; 97f02
+ call .IsPlayerFacingDown
+ jr z, .PlayerNotFacingDown
+ call CmdQueueAnonJT_Increment
+.one: ; 97f0a
+ call .IsPlayerFacingDown
+ jr z, .PlayerNotFacingDown
+ call CmdQueueAnonJT_Increment
-Function97f0a: ; 97f0a
- call Function97f38
- jr z, Function97f2c
- call Function97eab
-
- ld hl, $0002
+ ld hl, 2
add hl, bc
ld a, [hl]
ld [wd173], a
@@ -584,12 +582,12 @@
ret
; 97f1b
-Function97f1b: ; 97f1b
- call Function97f38
- jr z, Function97f2c
- call Function97eb1
+.two: ; 97f1b
+ call .IsPlayerFacingDown
+ jr z, .PlayerNotFacingDown
+ call CmdQueueAnonJT_Decrement
- ld hl, $0003
+ ld hl, 3
add hl, bc
ld a, [hl]
ld [wd173], a
@@ -596,16 +594,16 @@
ret
; 97f2c
-Function97f2c: ; 97f2c
+.PlayerNotFacingDown: ; 97f2c
ld a, $7f
ld [wd173], a
- ld hl, $0005
+ ld hl, 5
add hl, bc
ld [hl], 0
ret
; 97f38
-Function97f38: ; 97f38
+.IsPlayerFacingDown: ; 97f38
push bc
ld bc, PlayerStruct
call GetSpriteDirection
@@ -614,40 +612,40 @@
ret
; 97f42
-Function97f42: ; 97f42
+CmdQueue_StoneTable: ; 97f42
ld de, PlayerStruct
- ld a, $d
-.asm_97f47
+ ld a, NUM_OBJECT_STRUCTS
+.loop
push af
- ld hl, 0
+ ld hl, OBJECT_SPRITE
add hl, de
ld a, [hl]
and a
- jr z, .asm_97f71
+ jr z, .next
- ld hl, $0003
+ ld hl, OBJECT_MOVEMENTTYPE
add hl, de
ld a, [hl]
- cp $19
- jr nz, .asm_97f71
+ cp STEP_TYPE_19
+ jr nz, .next
- ld hl, $000e
+ ld hl, OBJECT_NEXT_TILE
add hl, de
ld a, [hl]
call CheckPitTile
- jr nz, .asm_97f71
+ jr nz, .next
- ld hl, $0007
+ ld hl, OBJECT_DIRECTION_WALKING
add hl, de
ld a, [hl]
- cp $ff
- jr nz, .asm_97f71
- call Function3567
- jr c, .asm_97f7c
+ cp STANDING
+ jr nz, .next
+ call HandleStoneQueue
+ jr c, .fall_down_hole
-.asm_97f71
- ld hl, $0028
+.next
+ ld hl, OBJECT_STRUCT_LENGTH
add hl, de
ld d, h
ld e, l
@@ -654,10 +652,10 @@
pop af
dec a
- jr nz, .asm_97f47
+ jr nz, .loop
ret
-.asm_97f7c
+.fall_down_hole
pop af
ret
; 97f7e
--- a/engine/evolution_animation.asm
+++ b/engine/evolution_animation.asm
@@ -52,11 +52,11 @@
ld [PlayerHPPal], a
ld c, $0
- call Function4e703
+ call .GetSGBLayout
ld a, [Buffer1]
ld [CurPartySpecies], a
ld [CurSpecies], a
- call Function4e708
+ call .PlaceFrontpic
ld de, VTiles2
ld hl, VTiles2 tile $31
@@ -65,11 +65,11 @@
ld a, $31
ld [wd1ec], a
- call Evolution_FlashFrontpics
+ call .ReplaceFrontpic
ld a, [Buffer2]
ld [CurPartySpecies], a
ld [CurSpecies], a
- call Function4e711
+ call .LoadFrontpic
ld a, [Buffer1]
ld [CurPartySpecies], a
ld [CurSpecies], a
@@ -90,14 +90,14 @@
call DelayFrames
ld c, $1
- call Function4e703
- call Function4e726
- jr c, .pressed_b
+ call .GetSGBLayout
+ call .AnimationSequence
+ jr c, .cancel_evo
- ld a, $cf
+ ld a, -7 * 7
ld [wd1ec], a
- call Evolution_FlashFrontpics
+ call .ReplaceFrontpic
xor a
ld [wd1ed], a
@@ -105,7 +105,7 @@
ld [PlayerHPPal], a
ld c, $0
- call Function4e703
+ call .GetSGBLayout
call Function4e7a6
callba Function8cf53
call Function4e794
@@ -134,7 +134,7 @@
.asm_4e6de
ret
-.pressed_b
+.cancel_evo
ld a, $1
ld [wd1ed], a
@@ -142,7 +142,7 @@
ld [PlayerHPPal], a
ld c, $0
- call Function4e703
+ call .GetSGBLayout
call Function4e7a6
callba Function8cf53
call Function4e794
@@ -153,38 +153,38 @@
ret
; 4e703
-Function4e703: ; 4e703
- ld b, $b
+.GetSGBLayout: ; 4e703
+ ld b, SCGB_0B
jp GetSGBLayout
; 4e708
-Function4e708: ; 4e708
+.PlaceFrontpic: ; 4e708
call GetBaseData
hlcoord 7, 2
jp PrepMonFrontpic
; 4e711
-Function4e711: ; 4e711
+.LoadFrontpic: ; 4e711
call GetBaseData
ld a, $1
ld [wc2c6], a
ld de, VTiles2
- predef Function5108b
+ predef FrontpicPredef
xor a
ld [wc2c6], a
ret
; 4e726
-Function4e726: ; 4e726
+.AnimationSequence: ; 4e726
call ClearJoypad
- lb bc, 1, 14
+ lb bc, 1, 2 * 7 ; flash b times, wait c frames in between
.loop
push bc
- call Evolution_CheckPressedB
+ call .WaitFrames_CheckPressedB
pop bc
- jr c, .pressed_b
+ jr c, .exit_sequence
push bc
- call Evolution_NextFrame
+ call .Flash
pop bc
inc b
rept 2
@@ -194,31 +194,30 @@
and a
ret
-.pressed_b
+.exit_sequence
scf
ret
; 4e741
-Evolution_NextFrame: ; 4e741
-.loop
- ld a, -49
+.Flash: ; 4e741
+ ld a, -7 * 7 ; new stage
ld [wd1ec], a
- call Evolution_FlashFrontpics
- ld a, 49
+ call .ReplaceFrontpic
+ ld a, 7 * 7 ; previous stage
ld [wd1ec], a
- call Evolution_FlashFrontpics
+ call .ReplaceFrontpic
dec b
- jr nz, .loop
+ jr nz, .Flash
ret
; 4e755
-Evolution_FlashFrontpics: ; 4e755
+.ReplaceFrontpic: ; 4e755
push bc
xor a
ld [hBGMapMode], a
hlcoord 7, 2
lb bc, 7, 7
- ld de, $d
+ ld de, SCREEN_WIDTH - 7
.loop1
push bc
.loop2
@@ -238,8 +237,7 @@
ret
; 4e779
-Evolution_CheckPressedB: ; 4e779
-.loop
+.WaitFrames_CheckPressedB: ; 4e779
call DelayFrame
push bc
call JoyTextDelay
@@ -247,9 +245,9 @@
pop bc
and B_BUTTON
jr nz, .pressed_b
-.loop2
+.loop3
dec c
- jr nz, .loop
+ jr nz, .WaitFrames_CheckPressedB
and a
ret
@@ -256,7 +254,7 @@
.pressed_b
ld a, [wd1e9]
and a
- jr nz, .loop2
+ jr nz, .loop3
scf
ret
; 4e794
@@ -281,18 +279,18 @@
ld a, [hl]
push af
ld [hl], $0
-.asm_4e7b8
+.loop
call Function4e7cf
- jr nc, .asm_4e7c2
+ jr nc, .done
call Function4e80c
- jr .asm_4e7b8
+ jr .loop
-.asm_4e7c2
+.done
ld c, $20
-.asm_4e7c4
+.loop2
call Function4e80c
dec c
- jr nz, .asm_4e7c4
+ jr nz, .loop2
pop af
ld [wJumptableIndex], a
ret
@@ -319,9 +317,9 @@
Function4e7e8: ; 4e7e8
push de
- ld de, $4858
+ lb de, $48, $58
ld a, $13
- call Function3b2a
+ call _InitSpriteAnimStruct
ld hl, $b
add hl, bc
ld a, [wJumptableIndex]
@@ -342,6 +340,7 @@
Function4e80c: ; 4e80c
push bc
callab Function8cf69
+ ; a = (([hVBlankCounter] + 4) / 2) % NUM_PALETTES
ld a, [hVBlankCounter]
and $e
srl a
@@ -350,9 +349,9 @@
endr
and $7
ld b, a
- ld hl, Sprites + 3
- ld c, $28
-.asm_4e823
+ ld hl, Sprites + 3 ; attributes
+ ld c, 40
+.loop
ld a, [hl]
or b
ld [hli], a
@@ -360,7 +359,7 @@
inc hl
endr
dec c
- jr nz, .asm_4e823
+ jr nz, .loop
pop bc
call DelayFrame
ret
@@ -378,7 +377,7 @@
call DisableLCD
call LoadStandardFont
call LoadFontsBattleExtra
- ld hl, VBGMap0
+ hlbgcoord 0, 0
ld bc, VBGMap1 - VBGMap0
ld a, " "
call ByteFill
@@ -411,7 +410,7 @@
call DisableLCD
call LoadStandardFont
call LoadFontsBattleExtra
- ld hl, VBGMap0
+ hlbgcoord 0, 0
ld bc, VBGMap1 - VBGMap0
ld a, " "
call ByteFill
@@ -446,7 +445,7 @@
ld bc, w6_d400 - w6_d000
ld a, " "
call ByteFill
- ld hl, VBGMap0
+ hlbgcoord 0, 0
ld de, w6_d000
ld b, $0
ld c, $40
--- /dev/null
+++ b/engine/evolve.asm
@@ -1,0 +1,682 @@
+EvolvePokemon: ; 421d8
+ ld hl, EvolvableFlags
+ xor a
+ ld [hl], a
+ ld a, [CurPartyMon]
+ ld c, a
+ ld b, SET_FLAG
+ call EvoFlagAction
+
+EvolveAfterBattle: ; 421e6
+ xor a
+ ld [wMonTriedToEvolve], a
+ dec a
+ ld [CurPartyMon], a
+ push hl
+ push bc
+ push de
+ ld hl, PartyCount
+
+ push hl
+
+CheckForEvolvablePokemon: ; 421f5
+ ld hl, CurPartyMon
+ inc [hl]
+
+ pop hl
+
+ inc hl
+ ld a, [hl]
+ cp $ff
+ jp z, Evolution_ReturnToMap
+
+ ld [Buffer1], a
+
+ push hl
+ ld a, [CurPartyMon]
+ ld c, a
+ ld hl, EvolvableFlags
+ ld b, CHECK_FLAG
+ call EvoFlagAction
+ ld a, c
+ and a
+ jp z, CheckForEvolvablePokemon
+
+ ld a, [Buffer1]
+ dec a
+ ld b, 0
+ ld c, a
+ ld hl, EvosAttacksPointers
+rept 2
+ add hl, bc
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+
+ push hl
+ xor a
+ ld [MonType], a
+ predef CopyPkmnToTempMon
+ pop hl
+
+.loop
+ ld a, [hli]
+ and a
+ jr z, CheckForEvolvablePokemon
+
+ ld b, a
+
+ cp EVOLVE_TRADE
+ jr z, .trade
+
+ ld a, [wLinkMode]
+ and a
+ jp nz, .dont_evolve_2
+
+ ld a, b
+ cp EVOLVE_ITEM
+ jp z, .item
+
+ ld a, [wd1e9]
+ and a
+ jp nz, .dont_evolve_2
+
+ ld a, b
+ cp EVOLVE_LEVEL
+ jp z, .level
+
+ cp EVOLVE_HAPPINESS
+ jr z, .happiness
+
+
+; EVOLVE_STAT
+ ld a, [TempMonLevel]
+ cp [hl]
+ jp c, .dont_evolve_1
+
+ call IsMonHoldingEverstone
+ jp z, .dont_evolve_1
+
+ push hl
+ ld de, TempMonAttack
+ ld hl, TempMonDefense
+ ld c, 2
+ call StringCmp
+ ld a, ATK_EQ_DEF
+ jr z, .got_tyrogue_evo
+ ld a, ATK_LT_DEF
+ jr c, .got_tyrogue_evo
+ ld a, ATK_GT_DEF
+.got_tyrogue_evo
+ pop hl
+
+ inc hl
+ cp [hl]
+ jp nz, .dont_evolve_2
+
+ inc hl
+ jr .proceed
+
+
+.happiness
+ ld a, [TempMonHappiness]
+ cp 220
+ jp c, .dont_evolve_2
+
+ call IsMonHoldingEverstone
+ jp z, .dont_evolve_2
+
+ ld a, [hli]
+ cp TR_ANYTIME
+ jr z, .proceed
+ cp TR_MORNDAY
+ jr z, .happiness_daylight
+
+; TR_NITE
+ ld a, [TimeOfDay]
+ cp NITE
+ jp nz, .dont_evolve_3
+ jr .proceed
+
+.happiness_daylight
+ ld a, [TimeOfDay]
+ cp NITE
+ jp z, .dont_evolve_3
+ jr .proceed
+
+
+.trade
+ ld a, [wLinkMode]
+ and a
+ jp z, .dont_evolve_2
+
+ call IsMonHoldingEverstone
+ jp z, .dont_evolve_2
+
+ ld a, [hli]
+ ld b, a
+ inc a
+ jr z, .proceed
+
+ ld a, [wLinkMode]
+ cp LINK_TIMECAPSULE
+ jp z, .dont_evolve_3
+
+ ld a, [TempMonItem]
+ cp b
+ jp nz, .dont_evolve_3
+
+ xor a
+ ld [TempMonItem], a
+ jr .proceed
+
+
+.item
+ ld a, [hli]
+ ld b, a
+ ld a, [CurItem]
+ cp b
+ jp nz, .dont_evolve_3
+
+ ld a, [wd1e9]
+ and a
+ jp z, .dont_evolve_3
+ ld a, [wLinkMode]
+ and a
+ jp nz, .dont_evolve_3
+ jr .proceed
+
+
+.level
+ ld a, [hli]
+ ld b, a
+ ld a, [TempMonLevel]
+ cp b
+ jp c, .dont_evolve_3
+ call IsMonHoldingEverstone
+ jp z, .dont_evolve_3
+
+.proceed
+ ld a, [TempMonLevel]
+ ld [CurPartyLevel], a
+ ld a, $1
+ ld [wMonTriedToEvolve], a
+
+ push hl
+
+ ld a, [hl]
+ ld [Buffer2], a
+ ld a, [CurPartyMon]
+ ld hl, PartyMonNicknames
+ call GetNick
+ call CopyName1
+ ld hl, Text_WhatEvolving
+ call PrintText
+
+ ld c, 50
+ call DelayFrames
+
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 0, 0
+ lb bc, 12, 20
+ call ClearBox
+
+ ld a, $1
+ ld [hBGMapMode], a
+ call ClearSprites
+
+ callba EvolutionAnimation
+
+ push af
+ call ClearSprites
+ pop af
+ jp c, CancelEvolution
+
+ ld hl, Text_CongratulationsYourPokemon
+ call PrintText
+
+ pop hl
+
+ ld a, [hl]
+ ld [CurSpecies], a
+ ld [TempMonSpecies], a
+ ld [Buffer2], a
+ ld [wd265], a
+ call GetPokemonName
+
+ push hl
+ ld hl, Text_EvolvedIntoPKMN
+ call PrintTextBoxText
+ callba MobileFn_106094
+
+ ld de, MUSIC_NONE
+ call PlayMusic
+ ld de, SFX_CAUGHT_MON
+ call PlaySFX
+ call WaitSFX
+
+ ld c, 40
+ call DelayFrames
+
+ call ClearTileMap
+ call UpdateSpeciesNameIfNotNicknamed
+ call GetBaseData
+
+ ld hl, TempMonExp + 2
+ ld de, TempMonMaxHP
+ ld b, $1
+ predef CalcPkmnStats
+
+ ld a, [CurPartyMon]
+ ld hl, PartyMons
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ld bc, MON_MAXHP
+ add hl, bc
+ ld a, [hli]
+ ld b, a
+ ld c, [hl]
+ ld hl, TempMonMaxHP + 1
+ ld a, [hld]
+ sub c
+ ld c, a
+ ld a, [hl]
+ sbc b
+ ld b, a
+ ld hl, TempMonHP + 1
+ ld a, [hl]
+ add c
+ ld [hld], a
+ ld a, [hl]
+ adc b
+ ld [hl], a
+
+ ld hl, TempMonSpecies
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call CopyBytes
+
+ ld a, [CurSpecies]
+ ld [wd265], a
+ xor a
+ ld [MonType], a
+ call LearnLevelMoves
+ ld a, [wd265]
+ dec a
+ call SetSeenAndCaughtMon
+
+ ld a, [wd265]
+ cp UNOWN
+ jr nz, .skip_unown
+
+ ld hl, TempMonDVs
+ predef GetUnownLetter
+ callab UpdateUnownDex
+
+.skip_unown
+ pop de
+ pop hl
+ ld a, [TempMonSpecies]
+ ld [hl], a
+ push hl
+ ld l, e
+ ld h, d
+ jp CheckForEvolvablePokemon
+; 423f8
+
+.dont_evolve_1
+ inc hl
+.dont_evolve_2
+ inc hl
+.dont_evolve_3
+ inc hl
+ jp .loop
+; 423fe
+
+; dummy pop
+ pop hl
+
+Evolution_ReturnToMap: ; 423ff
+ pop de
+ pop bc
+ pop hl
+ ld a, [wLinkMode]
+ and a
+ ret nz
+ ld a, [wBattleMode]
+ and a
+ ret nz
+ ld a, [wMonTriedToEvolve]
+ and a
+ call nz, RestartMapMusic
+ ret
+; 42414
+
+UpdateSpeciesNameIfNotNicknamed: ; 42414
+ ld a, [CurSpecies]
+ push af
+ ld a, [BaseDexNo]
+ ld [wd265], a
+ call GetPokemonName
+ pop af
+ ld [CurSpecies], a
+ ld hl, StringBuffer1
+ ld de, StringBuffer2
+.loop
+ ld a, [de]
+ inc de
+ cp [hl]
+ inc hl
+ ret nz
+ cp "@"
+ jr nz, .loop
+
+ ld a, [CurPartyMon]
+ ld bc, PKMN_NAME_LENGTH
+ ld hl, PartyMonNicknames
+ call AddNTimes
+ push hl
+ ld a, [CurSpecies]
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ pop de
+ ld bc, PKMN_NAME_LENGTH
+ jp CopyBytes
+; 42454
+
+CancelEvolution: ; 42454
+ ld hl, Text_StoppedEvolving
+ call PrintText
+ call ClearTileMap
+ pop hl
+ jp CheckForEvolvablePokemon
+; 42461
+
+IsMonHoldingEverstone: ; 42461
+ push hl
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Item
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ ld a, [hl]
+ cp EVERSTONE
+ pop hl
+ ret
+; 42473
+
+Text_CongratulationsYourPokemon: ; 0x42473
+ ; Congratulations! Your @ @
+ text_jump UnknownText_0x1c4b92
+ db "@"
+; 0x42478
+
+Text_EvolvedIntoPKMN: ; 0x42478
+ ; evolved into @ !
+ text_jump UnknownText_0x1c4baf
+ db "@"
+; 0x4247d
+
+Text_StoppedEvolving: ; 0x4247d
+ ; Huh? @ stopped evolving!
+ text_jump UnknownText_0x1c4bc5
+ db "@"
+; 0x42482
+
+Text_WhatEvolving: ; 0x42482
+ ; What? @ is evolving!
+ text_jump UnknownText_0x1c4be3
+ db "@"
+; 0x42487
+
+
+LearnLevelMoves: ; 42487
+ ld a, [wd265]
+ ld [CurPartySpecies], a
+ dec a
+ ld b, 0
+ ld c, a
+ ld hl, EvosAttacksPointers
+rept 2
+ add hl, bc
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+
+.skip_evos
+ ld a, [hli]
+ and a
+ jr nz, .skip_evos
+
+.find_move
+ ld a, [hli]
+ and a
+ jr z, .done
+
+ ld b, a
+ ld a, [CurPartyLevel]
+ cp b
+ ld a, [hli]
+ jr nz, .find_move
+
+ push hl
+ ld d, a
+ ld hl, PartyMon1Moves
+ ld a, [CurPartyMon]
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+
+ ld b, NUM_MOVES
+.check_move
+ ld a, [hli]
+ cp d
+ jr z, .has_move
+ dec b
+ jr nz, .check_move
+ jr .learn
+.has_move
+
+ pop hl
+ jr .find_move
+
+.learn
+ ld a, d
+ ld [wd262], a
+ ld [wd265], a
+ call GetMoveName
+ call CopyName1
+ predef LearnMove
+ pop hl
+ jr .find_move
+
+.done
+ ld a, [CurPartySpecies]
+ ld [wd265], a
+ ret
+; 424e1
+
+
+FillMoves: ; 424e1
+; Fill in moves at de for CurPartySpecies at CurPartyLevel
+
+ push hl
+ push de
+ push bc
+ ld hl, EvosAttacksPointers
+ ld b, 0
+ ld a, [CurPartySpecies]
+ dec a
+ add a
+ rl b
+ ld c, a
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+.GoToAttacks
+ ld a, [hli]
+ and a
+ jr nz, .GoToAttacks
+ jr .GetLevel
+
+.NextMove
+ pop de
+.GetMove
+ inc hl
+.GetLevel
+ ld a, [hli]
+ and a
+ jp z, .done
+ ld b, a
+ ld a, [CurPartyLevel]
+ cp b
+ jp c, .done
+ ld a, [Buffer1]
+ and a
+ jr z, .CheckMove
+ ld a, [wd002]
+ cp b
+ jr nc, .GetMove
+
+.CheckMove
+ push de
+ ld c, NUM_MOVES
+.CheckRepeat
+ ld a, [de]
+ inc de
+ cp [hl]
+ jr z, .NextMove
+ dec c
+ jr nz, .CheckRepeat
+ pop de
+ push de
+ ld c, NUM_MOVES
+.CheckSlot
+ ld a, [de]
+ and a
+ jr z, .LearnMove
+ inc de
+ dec c
+ jr nz, .CheckSlot
+ pop de
+ push de
+ push hl
+ ld h, d
+ ld l, e
+ call ShiftMoves
+ ld a, [Buffer1]
+ and a
+ jr z, .ShiftedMove
+ push de
+ ld bc, PartyMon1PP - (PartyMon1Moves + NUM_MOVES - 1)
+ add hl, bc
+ ld d, h
+ ld e, l
+ call ShiftMoves
+ pop de
+
+.ShiftedMove
+ pop hl
+
+.LearnMove
+ ld a, [hl]
+ ld [de], a
+ ld a, [Buffer1]
+ and a
+ jr z, .NextMove
+ push hl
+ ld a, [hl]
+ ld hl, MON_PP - MON_MOVES
+ add hl, de
+ push hl
+ dec a
+ ld hl, Moves + MOVE_PP
+ ld bc, MOVE_LENGTH
+ call AddNTimes
+ ld a, BANK(Moves)
+ call GetFarByte
+ pop hl
+ ld [hl], a
+ pop hl
+ jr .NextMove
+
+.done
+ pop bc
+ pop de
+ pop hl
+ ret
+; 4256e
+
+ShiftMoves: ; 4256e
+ ld c, NUM_MOVES - 1
+.loop
+ inc de
+ ld a, [de]
+ ld [hli], a
+ dec c
+ jr nz, .loop
+ ret
+; 42577
+
+
+EvoFlagAction: ; 42577
+ push de
+ ld d, $0
+ predef FlagPredef
+ pop de
+ ret
+; 42581
+
+GetPreEvolution: ; 42581
+; Find the first mon to evolve into CurPartySpecies.
+
+; Return carry and the new species in CurPartySpecies
+; if a pre-evolution is found.
+
+ ld c, 0
+.loop ; For each Pokemon...
+ ld hl, EvosAttacksPointers
+ ld b, 0
+rept 2
+ add hl, bc
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+.loop2 ; For each evolution...
+ ld a, [hli]
+ and a
+ jr z, .no_evolve ; If we jump, this Pokemon does not evolve into CurPartySpecies.
+ cp EVOLVE_STAT ; This evolution type has the extra parameter of stat comparison.
+ jr nz, .not_tyrogue
+ inc hl
+
+.not_tyrogue
+ inc hl
+ ld a, [CurPartySpecies]
+ cp [hl]
+ jr z, .found_preevo
+ inc hl
+ ld a, [hl]
+ and a
+ jr nz, .loop2
+
+.no_evolve
+ inc c
+ ld a, c
+ cp NUM_POKEMON
+ jr c, .loop
+ and a
+ ret
+
+.found_preevo
+ inc c
+ ld a, c
+ ld [CurPartySpecies], a
+ scf
+ ret
+; 425b1
--- a/engine/facings.asm
+++ b/engine/facings.asm
@@ -50,7 +50,7 @@
Facing00:
Facing02:
Facing24:
-Facing26: ; 408b
+Facing26: ; standing down
db 4 ; #
db 0, 0, 0, $00
db 0, 8, 0, $01
@@ -58,7 +58,7 @@
db 8, 8, 2, $03
; 409c
-Facing01: ; 409c
+Facing01: ; walking down 1
db 4 ; #
db 0, 0, 0, $80
db 0, 8, 0, $81
@@ -66,7 +66,7 @@
db 8, 8, 2, $83
; 40ad
-Facing03: ; 40ad
+Facing03: ; walking down 2
db 4 ; #
db 0, 8, X_FLIP, $80
db 0, 0, X_FLIP, $81
@@ -75,7 +75,7 @@
; 40be
Facing04:
-Facing06: ; 40be
+Facing06: ; standing up
db 4 ; #
db 0, 0, 0, $04
db 0, 8, 0, $05
@@ -83,7 +83,7 @@
db 8, 8, 2, $07
; 40cf
-Facing05: ; 40cf
+Facing05: ; walking up 1
db 4 ; #
db 0, 0, 0, $84
db 0, 8, 0, $85
@@ -91,7 +91,7 @@
db 8, 8, 2, $87
; 40e0
-Facing07: ; 40e0
+Facing07: ; walking up 2
db 4 ; #
db 0, 8, X_FLIP, $84
db 0, 0, X_FLIP, $85
@@ -100,7 +100,7 @@
; 40f1
Facing08:
-Facing10: ; 40f1
+Facing10: ; standing left
db 4 ; #
db 0, 0, 0, $08
db 0, 8, 0, $09
@@ -109,7 +109,7 @@
; 4102
Facing12:
-Facing14: ; 4102
+Facing14: ; standing right
db 4 ; #
db 0, 8, X_FLIP, $08
db 0, 0, X_FLIP, $09
@@ -118,7 +118,7 @@
; 4113
Facing09:
-Facing11: ; 4113
+Facing11: ; walking left
db 4 ; #
db 0, 0, 0, $88
db 0, 8, 0, $89
@@ -127,7 +127,7 @@
; 4124
Facing13:
-Facing15: ; 4124
+Facing15: ; walking right
db 4 ; #
db 0, 8, X_FLIP, $88
db 0, 0, X_FLIP, $89
@@ -135,7 +135,7 @@
db 8, 0, 2 | X_FLIP, $8b
; 4135
-Facing16: ; 4135
+Facing16: ; fishing down
db 5 ; #
db 0, 0, 0, $00
db 0, 8, 0, $01
@@ -144,7 +144,7 @@
db 16, 0, 4, $fc
; 414a
-Facing17: ; 414a
+Facing17: ; fishing up
db 5 ; #
db 0, 0, 0, $04
db 0, 8, 0, $05
@@ -153,7 +153,7 @@
db -8, 0, 4, $fc
; 415f
-Facing18: ; 415f
+Facing18: ; fishing left
db 5 ; #
db 0, 0, 0, $08
db 0, 8, 0, $09
@@ -162,7 +162,7 @@
db 5, -8, 4 | X_FLIP, $fd
; 4174
-Facing19: ; 4174
+Facing19: ; fishing right
db 5 ; #
db 0, 8, X_FLIP, $08
db 0, 0, X_FLIP, $09
@@ -171,7 +171,7 @@
db 5, 16, 4, $fd
; 4189
-Facing20: ; 4189
+Facing20: ; emote
db 4 ; #
db 0, 0, 4, $f8
db 0, 8, 4, $f9
@@ -179,13 +179,13 @@
db 8, 8, 4, $fb
; 419a
-Facing21: ; 419a
+Facing21: ; shadow
db 2 ; #
db 0, 0, 4, $fc
db 0, 8, 4 | X_FLIP, $fc
; 41a3
-Facing23: ; 41a3
+Facing23: ; big snorlax or lapras doll
db 16 ; #
db 0, 0, 0, $00
db 0, 8, 0, $01
@@ -221,7 +221,7 @@
db 8, 0, X_FLIP, $07
; 4206
-Facing22: ; 4206
+Facing22: ; big doll other than snorlax or lapras
db 14 ; #
db 0, 0, 0, $00
db 0, 8, 0, $01
@@ -239,7 +239,7 @@
db 24, 16, 0, $0b
; 423f
-Facing28: ; 423f
+Facing28: ; boulder dust 1
db 4 ; #
db 0, 0, 4, $fe
db 0, 8, 4, $fe
@@ -247,7 +247,7 @@
db 8, 8, 4, $fe
; 4250
-Facing29: ; 4250
+Facing29: ; boulder dust 2
db 4 ; #
db 0, 0, 4, $ff
db 0, 8, 4, $ff
--- a/engine/flypoints.asm
+++ /dev/null
@@ -1,916 +1,0 @@
-_FlyMap: ; 91af3
- call ClearBGPalettes
- call ClearTileMap
- call ClearSprites
- ld hl, hInMenu
- ld a, [hl]
- push af
- ld [hl], $1
- xor a
- ld [hBGMapMode], a
- callba Function8cf53
- call Function91ff2
- ld de, GFX_922e1
- ld hl, VTiles2 tile $30
- lb bc, BANK(GFX_922e1), 6
- call Request1bpp
- call FlyMap
- call Function91c8f
- ld b, $2
- call GetSGBLayout
- call SetPalettes
-.loop
- call JoyTextDelay
- ld hl, hJoyPressed
- ld a, [hl]
- and B_BUTTON
- jr nz, .pressedB
- ld a, [hl]
- and A_BUTTON
- jr nz, .pressedA
- call FlyMapScroll
- call GetMapCursorCoordinates
- callba Function8cf69
- call DelayFrame
- jr .loop
-
-.pressedB
- ld a, -1
- jr .exit
-
-.pressedA
- ld a, [wd002]
- ld l, a
- ld h, 0
- add hl, hl
- ld de, Flypoints + 1
- add hl, de
- ld a, [hl]
-
-.exit
- ld [wd002], a
- pop af
- ld [hInMenu], a
- call ClearBGPalettes
- ld a, $90
- ld [hWY], a
- xor a
- ld [hBGMapAddress], a
- ld a, VBGMap0 / $100
- ld [hBGMapAddress + 1], a
- ld a, [wd002]
- ld e, a
- ret
-; 91b73
-
-FlyMapScroll: ; 91b73
- ld a, [StartFlypoint]
- ld e, a
- ld a, [EndFlypoint]
- ld d, a
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .ScrollNext
- ld a, [hl]
- and D_DOWN
- jr nz, .ScrollPrev
- ret
-
-.ScrollNext
- ld hl, wd002
- ld a, [hl]
- cp d
- jr nz, .NotAtEndYet
- ld a, e
- dec a
- ld [hl], a
-
-.NotAtEndYet
- inc [hl]
- call CheckIfVisitedFlypoint
- jr z, .ScrollNext
- jr .Finally
-
-.ScrollPrev
- ld hl, wd002
- ld a, [hl]
- cp e
- jr nz, .NotAtStartYet
- ld a, d
- inc a
- ld [hl], a
-
-.NotAtStartYet
- dec [hl]
- call CheckIfVisitedFlypoint
- jr z, .ScrollPrev
-
-.Finally
- call TownMapBubble
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- ret
-; 91bb5
-
-TownMapBubble: ; 91bb5
-; Draw the bubble containing the location text in the town map HUD
-
-; Top-left corner
- hlcoord 1, 0
- ld a, $30
- ld [hli], a
-
-; Top row
- ld bc, 16
- ld a, " "
- call ByteFill
-
-; Top-right corner
- ld a, $31
- ld [hl], a
- hlcoord 1, 1
-
-
-; Middle row
- ld bc, 18
- ld a, " "
- call ByteFill
-
-
-; Bottom-left corner
- hlcoord 1, 2
- ld a, $32
- ld [hli], a
-
-; Bottom row
- ld bc, 16
- ld a, " "
- call ByteFill
-
-; Bottom-right corner
- ld a, $33
- ld [hl], a
-
-
-; Print "Where?"
- hlcoord 2, 0
- ld de, .Where
- call PlaceString
-
-; Print the name of the default flypoint
- call .Name
-
-; Up/down arrows
- hlcoord 18, 1
- ld [hl], $34
- ret
-
-.Where
- db "Where?@"
-
-.Name
-; We need the map location of the default flypoint
- ld a, [wd002]
- ld l, a
- ld h, 0
- add hl, hl ; two bytes per flypoint
- ld de, Flypoints
- add hl, de
- ld e, [hl]
-
- callba GetLandmarkName
-
- hlcoord 2, 1
- ld de, StringBuffer1
- call PlaceString
- ret
-; 91c17
-
-GetMapCursorCoordinates: ; 91c17
- ld a, [wd002]
- ld l, a
- ld h, $0
- add hl, hl
- ld de, Flypoints
- add hl, de
- ld e, [hl]
- callba GetLandmarkCoords
- ld a, [wd003]
- ld c, a
- ld a, [wd004]
- ld b, a
- ld hl, $4
- add hl, bc
- ld [hl], e
- ld hl, $5
- add hl, bc
- ld [hl], d
- ret
-; 91c3c
-
-CheckIfVisitedFlypoint: ; 91c3c
-; Check if the flypoint loaded in [hl] has been visited yet.
- push bc
- push de
- push hl
- ld l, [hl]
- ld h, 0
- add hl, hl
- ld de, Flypoints + 1
- add hl, de
- ld c, [hl]
- call HasVisitedSpawn
- pop hl
- pop de
- pop bc
- and a
- ret
-; 91c50
-
-HasVisitedSpawn: ; 91c50
-; Check if spawn point c has been visited.
- ld hl, VisitedSpawns
- ld b, CHECK_FLAG
- ld d, 0
- predef FlagPredef
- ld a, c
- ret
-; 91c5e
-
-Flypoints: ; 91c5e
-; landmark, spawn point
-
- const_def
-
-flypoint: MACRO
-; \1\@FLY EQUS "FLY_\1"
-; \1\@SPAWN EQUS "SPAWN_\1"
- ; const \1\@FLY
- ; db \2, \1\@SPAWN
- const FLY_\1
- db \2, SPAWN_\1
-ENDM
-
-; Johto
- flypoint NEW_BARK, NEW_BARK_TOWN
- flypoint CHERRYGROVE, CHERRYGROVE_CITY
- flypoint VIOLET, VIOLET_CITY
- flypoint AZALEA, AZALEA_TOWN
- flypoint GOLDENROD, GOLDENROD_CITY
- flypoint ECRUTEAK, ECRUTEAK_CITY
- flypoint OLIVINE, OLIVINE_CITY
- flypoint CIANWOOD, CIANWOOD_CITY
- flypoint MAHOGANY, MAHOGANY_TOWN
- flypoint LAKE, LAKE_OF_RAGE
- flypoint BLACKTHORN, BLACKTHORN_CITY
- flypoint MT_SILVER, SILVER_CAVE
-
-; Kanto
-KANTO_FLYPOINT EQU const_value
-
- flypoint PALLET, PALLET_TOWN
- flypoint VIRIDIAN, VIRIDIAN_CITY
- flypoint PEWTER, PEWTER_CITY
- flypoint CERULEAN, CERULEAN_CITY
- flypoint VERMILION, VERMILION_CITY
- flypoint ROCK_TUNNEL, ROCK_TUNNEL
- flypoint LAVENDER, LAVENDER_TOWN
- flypoint CELADON, CELADON_CITY
- flypoint SAFFRON, SAFFRON_CITY
- flypoint FUCHSIA, FUCHSIA_CITY
- flypoint CINNABAR, CINNABAR_ISLAND
- flypoint INDIGO, INDIGO_PLATEAU
-
- db -1
-; 91c8f
-
-Function91c8f: ; 91c8f
- ret
-; 91c90
-
-FlyMap: ; 91c90
-
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetWorldMapLocation
-
-; If we're not in a valid location, i.e. Pokecenter floor 2F,
-; the backup map information is used
-
- cp SPECIAL_MAP
- jr nz, .CheckRegion
-
- ld a, [BackupMapGroup]
- ld b, a
- ld a, [BackupMapNumber]
- ld c, a
- call GetWorldMapLocation
-
-.CheckRegion
-; The first 46 locations are part of Johto. The rest are in Kanto
- cp KANTO_LANDMARK
- jr nc, .KantoFlyMap
-
-.JohtoFlyMap
-; Note that .NoKanto should be modified in tandem with this branch
-
- push af
-
-; Start from New Bark Town
- ld a, FLY_NEW_BARK
- ld [wd002], a
-
-; Flypoints begin at New Bark Town...
- ld [StartFlypoint], a
-; ..and end at Silver Cave
- ld a, FLY_MT_SILVER
- ld [EndFlypoint], a
-
-; Fill out the map
- call FillJohtoMap
- call .MapHud
- pop af
- call TownMapPlayerIcon
- ret
-
-.KantoFlyMap
-
-; The event that there are no flypoints enabled in a map is not
-; accounted for. As a result, if you attempt to select a flypoint
-; when there are none enabled, the game will crash. Additionally,
-; the flypoint selection has a default starting point that
-; can be flown to even if none are enabled
-
-; To prevent both of these things from happening when the player
-; enters Kanto, fly access is restricted until Indigo Plateau is
-; visited and its flypoint enabled
-
- push af
- ld c, SPAWN_INDIGO
- call HasVisitedSpawn
- and a
- jr z, .NoKanto
-
-; Kanto's map is only loaded if we've visited Indigo Plateau
-
-; Flypoints begin at Pallet Town...
- ld a, FLY_PALLET
- ld [StartFlypoint], a
-; ...and end at Indigo Plateau
- ld a, FLY_INDIGO
- ld [EndFlypoint], a
-
-; Because Indigo Plateau is the first flypoint the player
-; visits, it's made the default flypoint
- ld [wd002], a
-
-; Fill out the map
- call FillKantoMap
- call .MapHud
- pop af
- call TownMapPlayerIcon
- ret
-
-.NoKanto
-; If Indigo Plateau hasn't been visited, we use Johto's map instead
-
-; Start from New Bark Town
- ld a, FLY_NEW_BARK
- ld [wd002], a
-
-; Flypoints begin at New Bark Town...
- ld [StartFlypoint], a
-; ..and end at Silver Cave
- ld a, FLY_MT_SILVER
- ld [EndFlypoint], a
-
- call FillJohtoMap
-
- pop af
-
-.MapHud
- call TownMapBubble
- call TownMapPals
-
- ld hl, VBGMap0 ; BG Map 0
- call TownMapBGUpdate
-
- call TownMapMon
- ld a, c
- ld [wd003], a
- ld a, b
- ld [wd004], a
- ret
-; 91d11
-
-Function91d11: ; 91d11
- ld a, [wd002]
- push af
- ld a, [wd003]
- push af
- ld a, e
- ld [wd002], a
- call ClearSprites
- xor a
- ld [hBGMapMode], a
- ld a, $1
- ld [hInMenu], a
- ld de, GFX_922d1
- ld hl, VTiles0 tile $7f
- lb bc, BANK(GFX_922d1), 1
- call Request2bpp ; actually 1bpp
- call Function91ed0
- ld hl, VTiles0 tile $78
- ld c, $4
- call Request2bpp
- call Function91ff2
- call FillKantoMap
- call Function91de9
- call TownMapPals
- ld hl, VBGMap1
- call TownMapBGUpdate
- call FillJohtoMap
- call Function91de9
- call TownMapPals
- ld hl, VBGMap0
- call TownMapBGUpdate
- ld b, $2
- call GetSGBLayout
- call SetPalettes
- xor a
- ld [hBGMapMode], a
- xor a
- call Function91e1e
-.asm_91d6e
- call JoyTextDelay
- ld hl, hJoyPressed
- ld a, [hl]
- and A_BUTTON | B_BUTTON
- jr nz, .asm_91d8f
- ld a, [hJoypadDown]
- and SELECT
- jr nz, .asm_91d87
- call Function91d9b
- call Function91dcd
- jr .asm_91d8a
-
-.asm_91d87
- call Function91e5a
-
-.asm_91d8a
- call DelayFrame
- jr .asm_91d6e
-
-.asm_91d8f
- call ClearSprites
- pop af
- ld [wd003], a
- pop af
- ld [wd002], a
- ret
-; 91d9b
-
-Function91d9b: ; 91d9b
- ld a, [hl]
- and $20
- jr nz, .asm_91da6
- ld a, [hl]
- and $10
- jr nz, .asm_91db7
- ret
-
-.asm_91da6
- ld a, [hWY]
- cp $90
- ret z
- call ClearSprites
- ld a, $90
- ld [hWY], a
- xor a
- call Function91e1e
- ret
-
-.asm_91db7
- ld a, [StatusFlags]
- bit 6, a
- ret z
- ld a, [hWY]
- and a
- ret z
- call ClearSprites
- xor a
- ld [hWY], a
- ld a, $1
- call Function91e1e
- ret
-; 91dcd
-
-Function91dcd: ; 91dcd
- ld a, [hVBlankCounter]
- ld e, a
- and $f
- ret nz
- ld a, e
- and $10
- jr nz, .asm_91ddc
- call ClearSprites
- ret
-
-.asm_91ddc
- hlcoord 0, 0
- ld de, Sprites
- ld bc, $a0
- call CopyBytes
- ret
-; 91de9
-
-Function91de9: ; 91de9
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH
- ld a, $7f
- call ByteFill
- hlcoord 0, 1
- ld a, $6
- ld [hli], a
- ld bc, SCREEN_HEIGHT
- ld a, $7
- call ByteFill
- ld [hl], $17
- call GetPokemonName
- hlcoord 2, 0
- call PlaceString
- ld h, b
- ld l, c
- ld de, String_91e16
- call PlaceString
- ret
-; 91e16
-
-String_91e16:
- db "'S NEST@"
-; 91e1e
-
-Function91e1e: ; 91e1e
- ld [wd003], a
- ld e, a
- callba Function2a01f
- decoord 0, 0
- ld hl, Sprites
-.asm_91e2e
- ld a, [de]
- and a
- jr z, .asm_91e4d
- push de
- ld e, a
- push hl
- callba GetLandmarkCoords
- pop hl
- ld a, d
- sub $4
- ld [hli], a
- ld a, e
- sub $4
- ld [hli], a
- ld a, $7f
- ld [hli], a
- xor a
- ld [hli], a
- pop de
- inc de
- jr .asm_91e2e
-
-.asm_91e4d
- ld hl, Sprites
- decoord 0, 0
- ld bc, $a0
- call CopyBytes
- ret
-; 91e5a
-
-Function91e5a: ; 91e5a
- call Function91ea9
- ret c
-
- ld a, [wd002]
- ld e, a
- callba GetLandmarkCoords
- ld c, e
- ld b, d
- ld de, Unknown_91e9c
- ld hl, Sprites
-.asm_91e70
- ld a, [de]
- cp $80
- jr z, .asm_91e91
-
- add b
- ld [hli], a
- inc de
-
- ld a, [de]
- add c
- ld [hli], a
- inc de
-
- ld a, [de]
- add $78
- ld [hli], a
- inc de
-
- push bc
- ld c, 0
- ld a, [PlayerGender]
- bit 0, a
- jr z, .asm_91e8c
- inc c
-.asm_91e8c
- ld a, c
- ld [hli], a
- pop bc
-
- jr .asm_91e70
-
-.asm_91e91
- ld hl, Sprites + $10
- ld bc, SpritesEnd - (Sprites + $10)
- xor a
- call ByteFill
- ret
-; 91e9c
-
-Unknown_91e9c: ; 91e9c
- db -8, -8, 0
- db -8, 0, 1
- db 0, -8, 2
- db 0, 0, 3
- db $80 ; terminator
-; 91ea9
-
-Function91ea9: ; 91ea9
- ld a, [wd002]
- cp FAST_SHIP
- jr z, .johto
- cp KANTO_LANDMARK
- jr c, .johto
-
-.kanto
- ld a, [wd003]
- and a
- jr z, .clear
- jr .ok
-
-.johto
- ld a, [wd003]
- and a
- jr nz, .clear
-
-.ok
- and a
- ret
-
-.clear
- ld hl, Sprites
- ld bc, SpritesEnd - Sprites
- xor a
- call ByteFill
- scf
- ret
-; 91ed0
-
-Function91ed0: ; 91ed0
- ld a, [wd002]
- cp FAST_SHIP
- jr z, .asm_91ede
- callba GetPlayerIcon
- ret
-
-.asm_91ede
- ld de, FastShipGFX
- ld b, BANK(FastShipGFX)
- ret
-; 91ee4
-
-TownMapBGUpdate: ; 91ee4
-; Update BG Map tiles and attributes
-
-; BG Map address
- ld a, l
- ld [hBGMapAddress], a
- ld a, h
- ld [hBGMapAddress + 1], a
-
-; Only update palettes on CGB
- ld a, [hCGB]
- and a
- jr z, .tiles
-
-; BG Map mode 2 (palettes)
- ld a, 2
- ld [hBGMapMode], a
-
-; The BG Map is updated in thirds, so we wait
-; 3 frames to update the whole screen's palettes.
- ld c, 3
- call DelayFrames
-
-.tiles
-; Update BG Map tiles
- call WaitBGMap
-
-; Turn off BG Map update
- xor a
- ld [hBGMapMode], a
- ret
-; 91eff
-
-FillJohtoMap: ; 91eff
- ld de, JohtoMap
- jr FillTownMap
-
-FillKantoMap: ; 91f04
- ld de, KantoMap
-
-FillTownMap: ; 91f07
- hlcoord 0, 0
-.loop
- ld a, [de]
- cp $ff
- ret z
- ld a, [de]
- ld [hli], a
- inc de
- jr .loop
-; 91f13
-
-TownMapPals: ; 91f13
-; Assign palettes based on tile ids
-
- hlcoord 0, 0
- decoord 0, 0, AttrMap
- ld bc, 360
-.loop
-; Current tile
- ld a, [hli]
- push hl
-
-; HP/borders use palette 0
- cp $60
- jr nc, .pal0
-
-; The palette data is condensed to nybbles,
-; least-significant first.
- ld hl, TownMapPalMap
- srl a
- jr c, .odd
-
-; Even-numbered tile ids take the bottom nybble...
- add l
- ld l, a
- ld a, h
- adc 0
- ld h, a
- ld a, [hl]
- and %111
- jr .update
-
-.odd
-; ...and odd ids take the top.
- add l
- ld l, a
- ld a, h
- adc 0
- ld h, a
- ld a, [hl]
- swap a
- and %111
- jr .update
-
-.pal0
- xor a
-
-.update
- pop hl
- ld [de], a
- inc de
- dec bc
- ld a, b
- or c
- jr nz, .loop
- ret
-
-TownMapPalMap:
- db $11, $21, $22, $00, $11, $13, $54, $54, $11, $21, $22, $00
- db $11, $10, $01, $00, $11, $21, $22, $00, $00, $00, $00, $00
- db $00, $00, $44, $04, $00, $00, $00, $00, $33, $33, $33, $33
- db $33, $33, $33, $03, $33, $33, $33, $33, $00, $00, $00, $00
-; 91f7b
-
-TownMapMon: ; 91f7b
-; Draw the FlyMon icon at town map location in
-
-; Get FlyMon species
- ld a, [CurPartyMon]
- ld hl, PartySpecies
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- ld [wd265], a
-
-; Get FlyMon icon
- ld e, 8 ; starting tile in VRAM
- callba GetSpeciesIcon
-
-; Animation/palette
- ld de, 0
- ld a, $0
- call Function3b2a
-
- ld hl, 3
- add hl, bc
- ld [hl], 8
- ld hl, 2
- add hl, bc
- ld [hl], 0
- ret
-; 91fa6
-
-TownMapPlayerIcon: ; 91fa6
-; Draw the player icon at town map location in a
- push af
-
- callba GetPlayerIcon
-
-; Standing icon
- ld hl, VTiles0 tile $10
- ld c, 4 ; # tiles
- call Request2bpp
-
-; Walking icon
- ld hl, $c0
- add hl, de
- ld d, h
- ld e, l
- ld hl, VTiles0 tile $14
- ld c, 4 ; # tiles
- ld a, BANK(ChrisSpriteGFX) ; does nothing
- call Request2bpp
-
-; Animation/palette
- ld de, 0
- ld b, $0a ; Male
- ld a, [PlayerGender]
- bit 0, a
- jr z, .asm_91fd3
- ld b, $1e ; Female
-.asm_91fd3
- ld a, b
- call Function3b2a
-
- ld hl, $3
- add hl, bc
- ld [hl], $10
-
- pop af
- ld e, a
- push bc
- callba GetLandmarkCoords
- pop bc
-
- ld hl, 4
- add hl, bc
- ld [hl], e
- ld hl, 5
- add hl, bc
- ld [hl], d
- ret
-; 0x91ff2
-
-Function91ff2: ; 91ff2
- ld hl, TownMapGFX
- ld de, VTiles2
- lb bc, BANK(TownMapGFX), $30
- call DecompressRequest2bpp
- ret
-; 91fff
-
-
-JohtoMap: ; 91fff
-INCBIN "gfx/misc/johto.bin"
-; 92168
-
-KantoMap: ; 92168
-INCBIN "gfx/misc/kanto.bin"
-; 922d1
-
-
-GFX_922d1: ; 922d1
-INCBIN "gfx/unknown/0922d1.2bpp"
-GFX_922e1: ; 922e1
-INCBIN "gfx/unknown/0922e1.2bpp"
-GFX_92301: ; 92301
-INCBIN "gfx/unknown/092301.2bpp"
--- /dev/null
+++ b/engine/intro_menu.asm
@@ -1,0 +1,1427 @@
+_MainMenu: ; 5ae8
+ ld de, MUSIC_NONE
+ call PlayMusic
+ call DelayFrame
+ ld de, MUSIC_MAIN_MENU
+ ld a, e
+ ld [wMapMusic], a
+ call PlayMusic
+ callba MainMenu
+ jp Function6219
+; 5b04
+
+; unreferenced
+ ret
+; 5b05
+
+PrintDayOfWeek: ; 5b05
+ push de
+ ld hl, .Days
+ ld a, b
+ call GetNthString
+ ld d, h
+ ld e, l
+ pop hl
+ call PlaceString
+ ld h, b
+ ld l, c
+ ld de, .Day
+ call PlaceString
+ ret
+; 5b1c
+
+.Days ; 5b1c
+ db "SUN@"
+ db "MON@"
+ db "TUES@"
+ db "WEDNES@"
+ db "THURS@"
+ db "FRI@"
+ db "SATUR@"
+; 5b40
+
+.Day ; 5b40
+ db "DAY@"
+; 5b44
+
+NewGame_ClearTileMapEtc: ; 5b44
+ xor a
+ ld [hMapAnims], a
+ call ClearTileMap
+ call LoadFontsExtra
+ call LoadStandardFont
+ call ResetTextRelatedRAM
+ ret
+; 5b54
+
+MysteryGift: ; 5b54
+ call UpdateTime
+ callba DoMysteryGiftIfDayHasPassed
+ callba DoMysteryGift
+ ret
+; 5b64
+
+OptionsMenu: ; 5b64
+ callba _OptionsMenu
+ ret
+; 5b6b
+
+NewGame: ; 5b6b
+ xor a
+ ld [wc2cc], a
+ call ResetWRAM
+ call NewGame_ClearTileMapEtc
+ call AreYouABoyOrAreYouAGirl
+ call OakSpeech
+ call InitializeWorld
+ ld a, 1
+ ld [wPreviousLandmark], a
+
+ ld a, SPAWN_HOME
+ ld [DefaultSpawnpoint], a
+
+ ld a, MAPSETUP_WARP
+ ld [hMapEntryMethod], a
+ jp FinishContinueFunction
+; 5b8f
+
+AreYouABoyOrAreYouAGirl: ; 5b8f
+ callba Function10632f ; some mobile stuff
+ jr c, .ok
+ callba InitGender
+ ret
+
+.ok
+ ld c, 0
+ callba InitMobileProfile ; mobile
+ ret
+; 5ba7
+
+ResetWRAM: ; 5ba7
+ xor a
+ ld [hBGMapMode], a
+ call _ResetWRAM
+ ret
+; 5bae
+
+_ResetWRAM: ; 5bae
+
+ ld hl, Sprites
+ ld bc, Options - Sprites
+ xor a
+ call ByteFill
+
+ ld hl, wd000
+ ld bc, wGameData - wd000
+ xor a
+ call ByteFill
+
+ ld hl, wGameData
+ ld bc, wGameDataEnd - wGameData
+ xor a
+ call ByteFill
+
+ ld a, [rLY]
+ ld [hSecondsBackup], a
+ call DelayFrame
+ ld a, [hRandomSub]
+ ld [PlayerID], a
+
+ ld a, [rLY]
+ ld [hSecondsBackup], a
+ call DelayFrame
+ ld a, [hRandomAdd]
+ ld [PlayerID + 1], a
+
+ call Random
+ ld [wSecretID], a
+ call DelayFrame
+ call Random
+ ld [wSecretID + 1], a
+
+ ld hl, PartyCount
+ call InitList
+
+ xor a
+ ld [wCurBox], a
+ ld [wSavedAtLeastOnce], a
+
+ call SetDefaultBoxNames
+
+ ld a, BANK(sBoxCount)
+ call GetSRAMBank
+ ld hl, sBoxCount
+ call InitList
+ call CloseSRAM
+
+ ld hl, NumItems
+ call InitList
+
+ ld hl, NumKeyItems
+ call InitList
+
+ ld hl, NumBalls
+ call InitList
+
+ ld hl, PCItems
+ call InitList
+
+ xor a
+ ld [wRoamMon1Species], a
+ ld [wRoamMon2Species], a
+ ld [wRoamMon3Species], a
+ ld a, -1
+ ld [wRoamMon1MapGroup], a
+ ld [wRoamMon2MapGroup], a
+ ld [wRoamMon3MapGroup], a
+ ld [wRoamMon1MapNumber], a
+ ld [wRoamMon2MapNumber], a
+ ld [wRoamMon3MapNumber], a
+
+ ld a, BANK(sMysteryGiftItem)
+ call GetSRAMBank
+ ld hl, sMysteryGiftItem
+ xor a
+ ld [hli], a
+ dec a
+ ld [hl], a
+ call CloseSRAM
+
+ call LoadOrRegenerateLuckyIDNumber
+ call InitializeMagikarpHouse
+
+ xor a
+ ld [MonType], a
+
+ ld [JohtoBadges], a
+ ld [KantoBadges], a
+
+ ld [Coins], a
+ ld [Coins + 1], a
+
+START_MONEY EQU 3000
+
+IF START_MONEY / $10000
+ ld a, START_MONEY / $10000
+ENDC
+ ld [Money], a
+ ld a, START_MONEY / $100 % $100
+ ld [Money + 1], a
+ ld a, START_MONEY % $100
+ ld [Money + 2], a
+
+ xor a
+ ld [wdc17], a
+
+ ld hl, wdc19
+ ld [hl], 2300 / $10000
+ inc hl
+ ld [hl], 2300 / $100 % $100
+ inc hl
+ ld [hl], 2300 % $100
+
+ call InitializeNPCNames
+
+ callba InitDecorations
+
+ callba DeletePartyMonMail
+
+ callba DeleteMobileEventIndex
+
+ call ResetGameTime
+ ret
+; 5ca1
+
+InitList: ; 5ca1
+; Loads 0 in the count and -1 in the first item or mon slot.
+ xor a
+ ld [hli], a
+ dec a
+ ld [hl], a
+ ret
+; 5ca6
+
+SetDefaultBoxNames: ; 5ca6
+ ld hl, wBoxNames
+ ld c, 0
+.loop
+ push hl
+ ld de, .Box
+ call CopyName2
+ dec hl
+ ld a, c
+ inc a
+ cp 10
+ jr c, .less
+ sub 10
+ ld [hl], "1"
+ inc hl
+
+.less
+ add "0"
+ ld [hli], a
+ ld [hl], "@"
+ pop hl
+ ld de, 9
+ add hl, de
+ inc c
+ ld a, c
+ cp NUM_BOXES
+ jr c, .loop
+ ret
+
+.Box
+ db "BOX@"
+; 5cd3
+
+InitializeMagikarpHouse: ; 5cd3
+ ld hl, wBestMagikarpLengthFeet
+ ld a, $3
+ ld [hli], a
+ ld a, $6
+ ld [hli], a
+ ld de, .Ralph
+ call CopyName2
+ ret
+; 5ce3
+
+.Ralph ; 5ce3
+ db "RALPH@"
+; 5ce9
+
+InitializeNPCNames: ; 5ce9
+ ld hl, .Rival
+ ld de, RivalName
+ call .Copy
+
+ ld hl, .Mom
+ ld de, MomsName
+ call .Copy
+
+ ld hl, .Red
+ ld de, RedsName
+ call .Copy
+
+ ld hl, .Green
+ ld de, GreensName
+
+.Copy
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ret
+
+.Rival db "???@"
+.Red db "RED@"
+.Green db "GREEN@"
+.Mom db "MOM@"
+; 5d23
+
+InitializeWorld: ; 5d23
+ call ShrinkPlayer
+ callba GetSpawnCoord
+ callba _InitializeStartDay
+ ret
+; 5d33
+
+LoadOrRegenerateLuckyIDNumber: ; 5d33
+ ld a, BANK(sLuckyIDNumber)
+ call GetSRAMBank
+ ld a, [CurDay]
+ inc a
+ ld b, a
+ ld a, [sLuckyNumberDay]
+ cp b
+ ld a, [sLuckyIDNumber + 1]
+ ld c, a
+ ld a, [sLuckyIDNumber]
+ jr z, .skip
+ ld a, b
+ ld [sLuckyNumberDay], a
+ call Random
+ ld c, a
+ call Random
+
+.skip
+ ld [wLuckyIDNumber], a
+ ld [sLuckyIDNumber], a
+ ld a, c
+ ld [wLuckyIDNumber + 1], a
+ ld [sLuckyIDNumber + 1], a
+ jp CloseSRAM
+; 5d65
+
+Continue: ; 5d65
+ callba TryLoadSaveFile
+ jr c, .FailToLoad
+ callba Function150b9
+ call LoadStandardMenuDataHeader
+ call DisplaySaveInfoOnContinue
+ ld a, $1
+ ld [hBGMapMode], a
+ ld c, 20
+ call DelayFrames
+ call ConfirmContinue
+ jr nc, .Check1Pass
+ call WriteBackup
+ jr .FailToLoad
+
+.Check1Pass
+ call Continue_CheckRTC_RestartClock
+ jr nc, .Check2Pass
+ call WriteBackup
+ jr .FailToLoad
+
+.Check2Pass
+ ld a, $8
+ ld [MusicFade], a
+ ld a, MUSIC_NONE % $100
+ ld [MusicFadeIDLo], a
+ ld a, MUSIC_NONE / $100
+ ld [MusicFadeIDHi], a
+ call ClearBGPalettes
+ call Continue_MobileAdapterMenu
+ call WriteBackup
+ call ClearTileMap
+ ld c, 20
+ call DelayFrames
+ callba JumpRoamMons
+ callba Function105091 ; Mystery Gift
+ callba Function140ae ; time-related
+ ld a, [wSpawnAfterChampion]
+ cp SPAWN_LANCE
+ jr z, .SpawnAfterE4
+ ld a, MAPSETUP_CONTINUE
+ ld [hMapEntryMethod], a
+ jp FinishContinueFunction
+
+.FailToLoad
+ ret
+
+.SpawnAfterE4
+ ld a, SPAWN_NEW_BARK
+ ld [wd001], a
+ call PostCreditsSpawn
+ jp FinishContinueFunction
+; 5de2
+
+SpawnAfterRed: ; 5de2
+ ld a, SPAWN_MT_SILVER
+ ld [wd001], a
+; 5de7
+
+PostCreditsSpawn: ; 5de7
+ xor a
+ ld [wSpawnAfterChampion], a
+ ld a, MAPSETUP_WARP
+ ld [hMapEntryMethod], a
+ ret
+; 5df0
+
+Continue_MobileAdapterMenu: ; 5df0
+ callba Function10632f ; mobile check
+ ret nc
+ ld hl, wd479
+ bit 1, [hl]
+ ret nz
+ ld a, 5
+ ld [MusicFade], a
+ ld a, MUSIC_MOBILE_ADAPTER_MENU % $100
+ ld [MusicFadeIDLo], a
+ ld a, MUSIC_MOBILE_ADAPTER_MENU / $100
+ ld [MusicFadeIDHi], a
+ ld c, 20
+ call DelayFrames
+ ld c, $1
+ callba InitMobileProfile ; mobile
+ callba _SaveData
+ ld a, 8
+ ld [MusicFade], a
+ ld a, MUSIC_NONE % $100
+ ld [MusicFadeIDLo], a
+ ld a, MUSIC_NONE / $100
+ ld [MusicFadeIDHi], a
+ ld c, 35
+ call DelayFrames
+ ret
+; 5e34
+
+ConfirmContinue: ; 5e34
+.loop
+ call DelayFrame
+ call GetJoypad
+ ld hl, hJoyPressed
+ bit 0, [hl]
+ jr nz, .PressA
+ bit 1, [hl]
+ jr z, .loop
+ scf
+ ret
+
+.PressA
+ ret
+; 5e48
+
+Continue_CheckRTC_RestartClock: ; 5e48
+ call CheckRTCStatus
+ and %10000000 ; Day count exceeded 16383
+ jr z, .pass
+ callba RestartClock
+ ld a, c
+ and a
+ jr z, .pass
+ scf
+ ret
+
+.pass
+ xor a
+ ret
+; 5e5d
+
+FinishContinueFunction: ; 5e5d
+.loop
+ xor a
+ ld [wc2c1], a
+ ld [wLinkMode], a
+ ld hl, GameTimerPause
+ set 0, [hl]
+ res 7, [hl]
+ ld hl, wEnteredMapFromContinue
+ set 1, [hl]
+ callba OverworldLoop
+ ld a, [wSpawnAfterChampion]
+ cp SPAWN_RED
+ jr z, .AfterRed
+ jp Reset
+
+.AfterRed
+ call SpawnAfterRed
+ jr .loop
+; 5e85
+
+DisplaySaveInfoOnContinue: ; 5e85
+ call CheckRTCStatus
+ and %10000000
+ jr z, .clock_ok
+ lb de, 4, 8
+ call DisplayContinueDataWithRTCError
+ ret
+
+.clock_ok
+ lb de, 4, 8
+ call DisplayNormalContinueData
+ ret
+; 5e9a
+
+DisplaySaveInfoOnSave: ; 5e9a
+ lb de, 4, 0
+ jr DisplayNormalContinueData
+; 5e9f
+
+DisplayNormalContinueData: ; 5e9f
+ call Continue_LoadMenuHeader
+ call Continue_DisplayBadgesDexPlayerName
+ call Continue_PrintGameTime
+ call LoadFontsExtra
+ call UpdateSprites
+ ret
+; 5eaf
+
+DisplayContinueDataWithRTCError: ; 5eaf
+ call Continue_LoadMenuHeader
+ call Continue_DisplayBadgesDexPlayerName
+ call Continue_UnknownGameTime
+ call LoadFontsExtra
+ call UpdateSprites
+ ret
+; 5ebf
+
+Continue_LoadMenuHeader: ; 5ebf
+ xor a
+ ld [hBGMapMode], a
+ ld hl, .MenuDataHeader_Dex
+ ld a, [StatusFlags]
+ bit 0, a ; pokedex
+ jr nz, .pokedex_header
+ ld hl, .MenuDataHeader_NoDex
+
+.pokedex_header
+ call Function1e35
+ call MenuBox
+ call Function1c89
+ ret
+; 5ed9
+
+.MenuDataHeader_Dex: ; 5ed9
+ db $40 ; flags
+ db 00, 00 ; start coords
+ db 09, 15 ; end coords
+ dw .MenuData2_Dex
+ db 1 ; default option
+; 5ee1
+
+.MenuData2_Dex: ; 5ee1
+ db $00 ; flags
+ db 4 ; items
+ db "PLAYER@"
+ db "BADGES@"
+ db "#DEX@"
+ db "TIME@"
+; 5efb
+
+.MenuDataHeader_NoDex: ; 5efb
+ db $40 ; flags
+ db 00, 00 ; start coords
+ db 09, 15 ; end coords
+ dw .MenuData2_NoDex
+ db 1 ; default option
+; 5f03
+
+.MenuData2_NoDex: ; 5f03
+ db $00 ; flags
+ db 4 ; items
+ db "PLAYER <PLAYER>@"
+ db "BADGES@"
+ db " @"
+ db "TIME@"
+; 5f1c
+
+
+Continue_DisplayBadgesDexPlayerName: ; 5f1c
+ call MenuBoxCoord2Tile
+ push hl
+ decoord 13, 4, 0
+ add hl, de
+ call Continue_DisplayBadgeCount
+ pop hl
+ push hl
+ decoord 12, 6, 0
+ add hl, de
+ call Continue_DisplayPokedexNumCaught
+ pop hl
+ push hl
+ decoord 8, 2, 0
+ add hl, de
+ ld de, .Player
+ call PlaceString
+ pop hl
+ ret
+
+.Player
+ db "<PLAYER>@"
+; 5f40
+
+Continue_PrintGameTime: ; 5f40
+ decoord 9, 8, 0
+ add hl, de
+ call Continue_DisplayGameTime
+ ret
+; 5f48
+
+Continue_UnknownGameTime: ; 5f48
+ decoord 9, 8, 0
+ add hl, de
+ ld de, .three_question_marks
+ call PlaceString
+ ret
+
+.three_question_marks
+ db " ???@"
+; 5f58
+
+Continue_DisplayBadgeCount: ; 5f58
+ push hl
+ ld hl, JohtoBadges
+ ld b, 2
+ call CountSetBits
+ pop hl
+ ld de, wd265
+ lb bc, 1, 2
+ jp PrintNum
+; 5f6b
+
+Continue_DisplayPokedexNumCaught: ; 5f6b
+ ld a, [StatusFlags]
+ bit 0, a
+ ret z
+ push hl
+ ld hl, PokedexCaught
+IF NUM_POKEMON % 8
+ ld b, NUM_POKEMON / 8 + 1
+ELSE
+ ld b, NUM_POKEMON / 8
+ENDC
+ call CountSetBits
+ pop hl
+ ld de, wd265
+ lb bc, 1, 3
+ jp PrintNum
+; 5f84
+
+Continue_DisplayGameTime: ; 5f84
+ ld de, GameTimeHours
+ lb bc, 2, 3
+ call PrintNum
+ ld [hl], "<COLON>"
+ inc hl
+ ld de, GameTimeMinutes
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ jp PrintNum
+; 5f99
+
+
+OakSpeech: ; 0x5f99
+ callba InitClock
+ call RotateFourPalettesLeft
+ call ClearTileMap
+
+ ld de, MUSIC_ROUTE_30
+ call PlayMusic
+
+ call RotateFourPalettesRight
+ call RotateThreePalettesRight
+ xor a
+ ld [CurPartySpecies], a
+ ld a, POKEMON_PROF
+ ld [TrainerClass], a
+ call Intro_PrepTrainerPic
+
+ ld b, SCGB_1C
+ call GetSGBLayout
+ call Intro_RotatePalettesLeftFrontpic
+
+ ld hl, OakText1
+ call PrintText
+ call RotateThreePalettesRight
+ call ClearTileMap
+
+ ld a, WOOPER
+ ld [CurSpecies], a
+ ld [CurPartySpecies], a
+ call GetBaseData
+
+ hlcoord 6, 4
+ call PrepMonFrontpic
+
+ xor a
+ ld [TempMonDVs], a
+ ld [TempMonDVs + 1], a
+
+ ld b, SCGB_1C
+ call GetSGBLayout
+ call Intro_WipeInFrontpic
+
+ ld hl, OakText2
+ call PrintText
+ ld hl, OakText4
+ call PrintText
+ call RotateThreePalettesRight
+ call ClearTileMap
+
+ xor a
+ ld [CurPartySpecies], a
+ ld a, POKEMON_PROF
+ ld [TrainerClass], a
+ call Intro_PrepTrainerPic
+
+ ld b, SCGB_1C
+ call GetSGBLayout
+ call Intro_RotatePalettesLeftFrontpic
+
+ ld hl, OakText5
+ call PrintText
+ call RotateThreePalettesRight
+ call ClearTileMap
+
+ xor a
+ ld [CurPartySpecies], a
+ callba DrawIntroPlayerPic
+
+ ld b, SCGB_1C
+ call GetSGBLayout
+ call Intro_RotatePalettesLeftFrontpic
+
+ ld hl, OakText6
+ call PrintText
+ call NamePlayer
+ ld hl, OakText7
+ call PrintText
+ ret
+
+OakText1: ; 0x6045
+ text_jump _OakText1
+ db "@"
+
+OakText2: ; 0x604a
+ text_jump _OakText2
+ start_asm
+ ld a, WOOPER
+ call PlayCry
+ call WaitSFX
+ ld hl, OakText3
+ ret
+
+OakText3: ; 0x605b
+ text_jump _OakText3
+ db "@"
+
+OakText4: ; 0x6060
+ text_jump _OakText4
+ db "@"
+
+OakText5: ; 0x6065
+ text_jump _OakText5
+ db "@"
+
+OakText6: ; 0x606a
+ text_jump _OakText6
+ db "@"
+
+OakText7: ; 0x606f
+ text_jump _OakText7
+ db "@"
+
+NamePlayer: ; 0x6074
+ callba MovePlayerPicRight
+ callba ShowPlayerNamingChoices
+ ld a, [MenuSelection2]
+ dec a
+ jr z, .NewName
+ call StorePlayerName
+ callba Function8c1d
+ callba MovePlayerPicLeft
+ ret
+
+.NewName
+ ld b, 1
+ ld de, PlayerName
+ callba NamingScreen
+
+ call RotateThreePalettesRight
+ call ClearTileMap
+
+ call LoadFontsExtra
+ call WaitBGMap
+
+ xor a
+ ld [CurPartySpecies], a
+ callba DrawIntroPlayerPic
+
+ ld b, SCGB_1C
+ call GetSGBLayout
+ call RotateThreePalettesLeft
+
+ ld hl, PlayerName
+ ld de, .Chris
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .Male
+ ld de, .Kris
+.Male
+ call InitName
+ ret
+
+.Chris
+ db "CHRIS@@@@@@"
+.Kris
+ db "KRIS@@@@@@@"
+; 60e9
+
+Function60e9: ; Unreferenced
+ call LoadMenuDataHeader
+ call InterpretMenu2
+ ld a, [MenuSelection2]
+ dec a
+ call CopyNameFromMenu
+ call WriteBackup
+ ret
+; 60fa
+
+StorePlayerName: ; 60fa
+ ld a, "@"
+ ld bc, NAME_LENGTH
+ ld hl, PlayerName
+ call ByteFill
+ ld hl, PlayerName
+ ld de, StringBuffer2
+ call CopyName2
+ ret
+; 610f
+
+ShrinkPlayer: ; 610f
+
+ ld a, [hROMBank]
+ push af
+
+ ld a, 0 << 7 | 32 ; fade out
+ ld [MusicFade], a
+ ld de, MUSIC_NONE
+ ld a, e
+ ld [MusicFadeIDLo], a
+ ld a, d
+ ld [MusicFadeIDHi], a
+
+ ld de, SFX_ESCAPE_ROPE
+ call PlaySFX
+ pop af
+ rst Bankswitch
+
+ ld c, 8
+ call DelayFrames
+
+ ld hl, Shrink1Pic
+ ld b, BANK(Shrink1Pic)
+ call ShrinkFrame
+
+ ld c, 8
+ call DelayFrames
+
+ ld hl, Shrink2Pic
+ ld b, BANK(Shrink2Pic)
+ call ShrinkFrame
+
+ ld c, 8
+ call DelayFrames
+
+ hlcoord 6, 5
+ ld b, 7
+ ld c, 7
+ call ClearBox
+
+ ld c, 3
+ call DelayFrames
+
+ call Intro_PlacePlayerSprite
+ call LoadFontsExtra
+
+ ld c, 50
+ call DelayFrames
+
+ call RotateThreePalettesRight
+ call ClearTileMap
+ ret
+; 616a
+
+Intro_RotatePalettesLeftFrontpic: ; 616a
+ ld hl, IntroFadePalettes
+ ld b, IntroFadePalettesEnd - IntroFadePalettes
+.loop
+ ld a, [hli]
+ call DmgToCgbBGPals
+ ld c, 10
+ call DelayFrames
+ dec b
+ jr nz, .loop
+ ret
+; 617c
+
+IntroFadePalettes: ; 0x617c
+ db %01010100
+ db %10101000
+ db %11111100
+ db %11111000
+ db %11110100
+ db %11100100
+IntroFadePalettesEnd
+; 6182
+
+Intro_WipeInFrontpic: ; 6182
+ ld a, $77
+ ld [hWX], a
+ call DelayFrame
+ ld a, %11100100
+ call DmgToCgbBGPals
+.loop
+ call DelayFrame
+ ld a, [hWX]
+ sub $8
+ cp -1
+ ret z
+ ld [hWX], a
+ jr .loop
+; 619c
+
+Intro_PrepTrainerPic: ; 619c
+ ld de, VTiles2
+ callba GetTrainerPic
+ xor a
+ ld [hFillBox], a
+ hlcoord 6, 4
+ lb bc, 7, 7
+ predef FillBox
+ ret
+; 61b4
+
+ShrinkFrame: ; 61b4
+ ld de, VTiles2
+ ld c, $31
+ predef DecompressPredef
+ xor a
+ ld [hFillBox], a
+ hlcoord 6, 4
+ lb bc, 7, 7
+ predef FillBox
+ ret
+; 61cd
+
+Intro_PlacePlayerSprite: ; 61cd
+
+ callba GetPlayerIcon
+ ld c, $c
+ ld hl, VTiles0
+ call Request2bpp
+
+ ld hl, Sprites
+ ld de, .sprites
+ ld a, [de]
+ inc de
+
+ ld c, a
+.loop
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+
+ ld b, 0
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .male
+ ld b, 1
+.male
+ ld a, b
+
+ ld [hli], a
+ dec c
+ jr nz, .loop
+ ret
+; 61fe
+
+.sprites ; 61fe
+ db 4
+ db $4c, $48, 0
+ db $4c, $50, 1
+ db $54, $48, 2
+ db $54, $50, 3
+; 620b
+
+
+Function620b: ; 620b
+ callab Functione4579
+ jr c, Function6219
+ callba CrystalIntro
+
+Function6219: ; 6219
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+
+ call .TitleScreen
+ call DelayFrame
+.loop
+ call Function627b
+ jr nc, .loop
+
+ call ClearSprites
+ call ClearBGPalettes
+
+ pop af
+ ld [rSVBK], a
+
+ ld hl, rLCDC
+ res 2, [hl]
+ call ClearScreen
+ call Function3200
+ xor a
+ ld [hLCDStatCustom], a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ ld b, SCGB_08
+ call GetSGBLayout
+ call UpdateTimePals
+ ld a, [wcf64]
+ cp $5
+ jr c, .ok
+ xor a
+.ok
+ ld e, a
+ ld d, 0
+ ld hl, .jumptable
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 626a
+
+.jumptable
+ dw _MainMenu
+ dw Function6389
+ dw Function620b
+ dw Function620b
+ dw ResetClock
+; 6274
+
+
+.TitleScreen: ; 6274
+ callba _TitleScreen
+ ret
+; 627b
+
+Function627b: ; 627b
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .done_title
+ call TitleScreenScene
+ callba SuicuneFrameIterator
+ call DelayFrame
+ and a
+ ret
+
+.done_title
+ scf
+ ret
+; 6292
+
+Function6292: ; 6292 ; unreferenced
+ ld a, [hVBlankCounter]
+ and $7
+ ret nz
+ ld hl, LYOverrides + $5f
+ ld a, [hl]
+ dec a
+ ld bc, 2 * SCREEN_WIDTH
+ call ByteFill
+ ret
+; 62a3
+
+TitleScreenScene: ; 62a3
+ ld e, a
+ ld d, 0
+ ld hl, .scenes
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 62af
+
+.scenes
+ dw TitleScreenEntrance
+ dw TitleScreenTimer
+ dw TitleScreenMain
+ dw TitleScreenEnd
+; 62b7
+
+Function62b7: ; Unreferenced
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+; 62bc
+
+
+TitleScreenEntrance: ; 62bc
+
+; Animate the logo:
+; Move each line by 4 pixels until our count hits 0.
+ ld a, [hSCX]
+ and a
+ jr z, .done
+ sub 4
+ ld [hSCX], a
+
+; Lay out a base (all lines scrolling together).
+ ld e, a
+ ld hl, LYOverrides
+ ld bc, 8 * 10 ; logo height
+ call ByteFill
+
+; Reversed signage for every other line's position.
+; This is responsible for the interlaced effect.
+ ld a, e
+ xor -1
+ inc a
+
+ ld b, 8 * 10 / 2 ; logo height / 2
+ ld hl, LYOverrides + 1
+.loop
+ ld [hli], a
+ inc hl
+ dec b
+ jr nz, .loop
+
+ callba AnimateTitleCrystal
+ ret
+
+.done
+; Next scene
+ ld hl, wJumptableIndex
+ inc [hl]
+ xor a
+ ld [hLCDStatCustom], a
+
+; Play the title screen music.
+ ld de, MUSIC_TITLE
+ call PlayMusic
+
+ ld a, $88
+ ld [hWY], a
+ ret
+; 62f6
+
+
+TitleScreenTimer: ; 62f6
+
+; Next scene
+ ld hl, wJumptableIndex
+ inc [hl]
+
+; Start a timer
+ ld hl, wcf65
+ ld de, $1140 ; 73.6 seconds
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ret
+; 6304
+
+TitleScreenMain: ; 6304
+
+; Run the timer down.
+ ld hl, wcf65
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, e
+ or d
+ jr z, .end
+
+ dec de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+
+; Save data can be deleted by pressing Up + B + Select.
+ call GetJoypad
+ ld hl, hJoyDown
+ ld a, [hl]
+ and D_UP + B_BUTTON + SELECT
+ cp D_UP + B_BUTTON + SELECT
+ jr z, .delete_save_data
+
+; To bring up the clock reset dialog:
+
+; Hold Down + B + Select to initiate the sequence.
+ ld a, [$ffeb]
+ cp $34
+ jr z, .check_clock_reset
+
+ ld a, [hl]
+ and D_DOWN + B_BUTTON + SELECT
+ cp D_DOWN + B_BUTTON + SELECT
+ jr nz, .check_start
+
+ ld a, $34
+ ld [$ffeb], a
+ jr .check_start
+
+; Keep Select pressed, and hold Left + Up.
+; Then let go of Select.
+.check_clock_reset
+ bit 2, [hl] ; SELECT
+ jr nz, .check_start
+
+ xor a
+ ld [$ffeb], a
+
+ ld a, [hl]
+ and D_LEFT + D_UP
+ cp D_LEFT + D_UP
+ jr z, .clock_reset
+
+; Press Start or A to start the game.
+.check_start
+ ld a, [hl]
+ and START | A_BUTTON
+ jr nz, .incave
+ ret
+
+.incave
+ ld a, 0
+ jr .done
+
+.delete_save_data
+ ld a, 1
+
+.done
+ ld [wcf64], a
+
+; Return to the intro sequence.
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+.end
+; Next scene
+ ld hl, wJumptableIndex
+ inc [hl]
+
+; Fade out the title screen music
+ xor a
+ ld [MusicFadeIDLo], a
+ ld [MusicFadeIDHi], a
+ ld hl, MusicFade
+ ld [hl], 8 ; 1 second
+
+ ld hl, wcf65
+ inc [hl]
+ ret
+
+.clock_reset
+ ld a, 4
+ ld [wcf64], a
+
+; Return to the intro sequence.
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+; 6375
+
+TitleScreenEnd: ; 6375
+
+; Wait until the music is done fading.
+
+ ld hl, wcf65
+ inc [hl]
+
+ ld a, [MusicFade]
+ and a
+ ret nz
+
+ ld a, 2
+ ld [wcf64], a
+
+; Back to the intro.
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+; 6389
+
+Function6389: ; 6389
+ callba Function4d54c
+ jp Init
+; 6392
+
+ResetClock: ; 6392
+ callba _ResetClock
+ jp Init
+; 639b
+
+Function639b: ; unreferenced
+ ; If bit 0 or 1 of [wcf65] is set, we don't need to be here.
+ ld a, [wcf65]
+ and $3
+ ret nz
+ ld bc, SpriteAnim10
+ ld hl, SpriteAnim10FrameIndex - SpriteAnim10
+ add hl, bc ; over-the-top compicated way to load wc3ae into hl
+ ld l, [hl]
+ ld h, 0
+rept 2
+ add hl, hl
+endr
+ ld de, Data63ca
+ add hl, de
+ ; If bit 2 of [wcf65] is set, get the second dw; else, get the first dw
+ ld a, [wcf65]
+ and %00000100
+rept 2
+ srl a
+endr
+ ld e, a
+ ld d, 0
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ and a
+ ret z
+ ld e, a
+ ld d, [hl]
+ ld a, SPRITE_ANIM_INDEX_01
+ call _InitSpriteAnimStruct
+ ret
+; 63ca
+
+Data63ca: ; 63ca
+; frame 0 y, x; frame 1 y, x
+ db $5c, $50, $00, $00
+ db $5c, $68, $5c, $58
+ db $5c, $68, $5c, $78
+ db $5c, $88, $5c, $78
+ db $00, $00, $5c, $78
+ db $00, $00, $5c, $58
+; 63e2
+
+Copyright: ; 63e2
+ call ClearTileMap
+ call LoadFontsExtra
+ ld de, CopyrightGFX
+ ld hl, VTiles2 tile $60
+ lb bc, BANK(CopyrightGFX), $1d
+ call Request2bpp
+ hlcoord 2, 7
+ ld de, CopyrightString
+ jp PlaceString
+; 63fd
+
+CopyrightString: ; 63fd
+ ; ©1995-2001 Nintendo
+ db $60, $61, $62, $63, $64, $65, $66
+ db $67, $68, $69, $6a, $6b, $6c
+
+ db $4e
+
+ ; ©1995-2001 Creatures inc.
+ db $60, $61, $62, $63, $64, $65, $66, $6d
+ db $6e, $6f, $70, $71, $72, $7a, $7b, $7c
+
+ db $4e
+
+ ; ©1995-2001 GAME FREAK inc.
+ db $60, $61, $62, $63, $64, $65, $66, $73, $74
+ db $75, $76, $77, $78, $79, $7a, $7b, $7c
+
+ db "@"
+; 642e
+
+GameInit:: ; 642e
+ callba TryLoadSaveData
+ call ResetTextRelatedRAM
+ call ClearBGPalettes
+ call ClearTileMap
+ ld a, VBGMap0 / $100
+ ld [hBGMapAddress + 1], a
+ xor a
+ ld [hBGMapAddress], a
+ ld [hJoyDown], a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $90
+ ld [hWY], a
+ call WaitBGMap
+ jp Function620b
+; 6454
--- a/engine/link.asm
+++ b/engine/link.asm
@@ -40,7 +40,7 @@
call Function28499
call Function28434
xor a
- ld [wcf56], a
+ ld [wPlayerLinkAction], a
call Function87d
ld a, [hLinkPlayerNumber]
cp $2
@@ -83,8 +83,8 @@
ld a, $fe
ld [de], a
ld hl, wc608
- ld de, wc6d0
- ld bc, $c8
+ ld de, wPlayerTrademonSpecies
+ ld bc, wPlayerTrademonSpecies - wc608
call Function75f
xor a
ld [rIF], a
@@ -105,7 +105,7 @@
ld de, OverworldMap
ld bc, $1a2
call Function2879e
- ld de, wc6d0
+ ld de, wPlayerTrademonSpecies
ld hl, wc813
ld c, $2
.asm_280fe
@@ -226,7 +226,7 @@
ld a, $fe
ld [de], a
ld hl, wc608
- ld de, wc6d0
+ ld de, wPlayerTrademonSpecies
ld bc, $c8
call Function75f
ld a, [wLinkMode]
@@ -250,7 +250,7 @@
ld de, OverworldMap
ld bc, $1b9
call Function2879e
- ld de, wc6d0
+ ld de, wPlayerTrademonSpecies
ld hl, wc813
ld c, $2
.asm_28224
@@ -363,23 +363,23 @@
.asm_282cc
push bc
push de
- callba Function1de5c8
+ callba IsMailEuropean
ld a, c
or a
- jr z, .asm_282ee
+ jr z, .next
sub $3
- jr nc, .asm_282e4
- callba Function1df203
- jr .asm_282ee
+ jr nc, .skip
+ callba DeutenEnglischenPost
+ jr .next
-.asm_282e4
+.skip
cp $2
- jr nc, .asm_282ee
- callba Function1df220
+ jr nc, .next
+ callba HandleSpanishItalianMail
-.asm_282ee
+.next
pop de
- ld hl, $2f
+ ld hl, MAIL_STRUCT_LENGTH
add hl, de
ld d, h
ld e, l
@@ -474,7 +474,7 @@
ld b, $a
.asm_283b7
call DelayFrame
- call Function908
+ call LinkCommunicationsSignalDataReceived
dec b
jr nz, .asm_283b7
xor a
@@ -493,9 +493,9 @@
pop hl
bccoord 1, 14
call PlaceWholeStringInBoxAtOnce
- call FadeToWhite
+ call RotateThreePalettesRight
call ClearScreen
- ld b, $8
+ ld b, SCGB_08
call GetSGBLayout
call Function3200
ret
@@ -802,64 +802,79 @@
; 28595
Function28595: ; 28595
- ld de, OverworldMap
- ld a, $fd
- ld b, $6
+ ld de, wc800
+ ld a, EGG
+ ld b, PARTY_LENGTH
.loop1
ld [de], a
inc de
dec b
jr nz, .loop1
+ ; de = $c806
ld hl, PlayerName
ld bc, NAME_LENGTH
call CopyBytes
+ ; de = $c811
ld hl, PartyCount
- ld bc, 8
+ ld bc, 1 + PARTY_LENGTH + 1
call CopyBytes
+ ; de = $c819
ld hl, PlayerID
ld bc, 2
call CopyBytes
+ ; de = $c81b
ld hl, PartyMon1Species
- ld bc, $120
+ ld bc, PARTY_LENGTH * PARTYMON_STRUCT_LENGTH
call CopyBytes
+ ; de = $c93b
ld hl, PartyMonOT
- ld bc, $42
+ ld bc, PARTY_LENGTH * NAME_LENGTH
call CopyBytes
+ ; de = $c97d
ld hl, PartyMonNicknames
- ld bc, $42
+ ld bc, PARTY_LENGTH * PKMN_NAME_LENGTH
call CopyBytes
+ ; de = $c9bf
+
+; Okay, we did all that. Now, are we in the trade center?
ld a, [wLinkMode]
cp LINK_TRADECENTER
ret nz
+
+; Fill 5 bytes at wc9f4 with $20
ld de, wc9f4
ld a, $20
call Function28682
- ld a, BANK(sPartyScratch1)
+
+; Copy all the mail messages to wc9f9
+ ld a, BANK(sPartyMail)
call GetSRAMBank
- ld hl, sPartyScratch1
+ ld hl, sPartyMail
ld b, PARTY_LENGTH
.loop2
push bc
- ld bc, $21
+ ld bc, MAIL_MSG_LENGTH + 1
call CopyBytes
- ld bc, $e
+ ld bc, sPartyMon1MailEnd - sPartyMon1MailAuthor
add hl, bc
pop bc
dec b
jr nz, .loop2
- ld hl, sPartyScratch1
+; Copy the mail metadata to wcabf
+ ld hl, sPartyMail
ld b, PARTY_LENGTH
.loop3
push bc
- ld bc, $21
+ ld bc, MAIL_MSG_LENGTH + 1
add hl, bc
- ld bc, $e
+ ld bc, sPartyMon1MailEnd - sPartyMon1MailAuthor
call CopyBytes
pop bc
dec b
jr nz, .loop3
+
ld b, PARTY_LENGTH
- ld de, sPartyScratch1
+ ld de, sPartyMail
ld hl, wc9f9
.loop4
push bc
@@ -866,29 +881,29 @@
push hl
push de
push hl
- callba Function1de5c8
+ callba IsMailEuropean
pop de
ld a, c
or a
jr z, .next
sub $3
- jr nc, .skip
- callba Function1df1e6
+ jr nc, .italian_spanish
+ callba HandleFrenchGermanMail
jr .next
-.skip
+.italian_spanish
cp $2
jr nc, .next
- callba Function1df220
+ callba HandleSpanishItalianMail
.next
pop de
- ld hl, SCRATCHMON_STRUCT_LENGTH
+ ld hl, MAIL_STRUCT_LENGTH
add hl, de
ld d, h
ld e, l
pop hl
- ld bc, $21
+ ld bc, sPartyMon1MailAuthor - sPartyMon1Mail
add hl, bc
pop bc
dec b
@@ -895,12 +910,12 @@
jr nz, .loop4
call CloseSRAM
ld hl, wc9f9
- ld bc, $c6
+ ld bc, PARTY_LENGTH * (sPartyMon1MailAuthor - sPartyMon1Mail)
.loop5
ld a, [hl]
cp $fe
jr nz, .skip2
- ld [hl], $21
+ ld [hl], sPartyMon1MailAuthor - sPartyMon1Mail
.skip2
inc hl
@@ -910,7 +925,7 @@
jr nz, .loop5
ld hl, wcabf
ld de, wcb13
- ld b, $54
+ ld b, PARTY_LENGTH * (sPartyMon1MailEnd - sPartyMon1MailAuthor)
ld c, $0
.loop6
inc c
@@ -1198,7 +1213,7 @@
call Function28ef8
callba Function16d673
xor a
- ld hl, wcf51
+ ld hl, wOtherPlayerLinkMode
rept 3
ld [hli], a
endr
@@ -1206,7 +1221,7 @@
ld a, $1
ld [MenuSelection2], a
inc a
- ld [wcf56], a
+ ld [wPlayerLinkAction], a
jp Function2888b
; 28803
@@ -1363,7 +1378,7 @@
hlcoord 0, 15
ld b, $1
ld c, $12
- call Function28eef
+ call Predef_LinkTextbox
hlcoord 2, 16
ld de, String28ab4
call PlaceString
@@ -1453,9 +1468,9 @@
ld [MenuSelection2], a
dec a
ld [wd002], a
- ld [wcf56], a
+ ld [wPlayerLinkAction], a
callba Function16d6ce
- ld a, [wcf51]
+ ld a, [wOtherPlayerLinkMode]
cp $f
jp z, Function287e3
ld [wd003], a
@@ -1468,11 +1483,11 @@
jp nc, Function28b87
xor a
ld [wcf57], a
- ld [wcf52], a
+ ld [wOtherPlayerLinkAction], a
hlcoord 0, 12
ld b, $4
ld c, $12
- call Function28eef
+ call Predef_LinkTextbox
callba Function4d354
ld hl, UnknownText_0x28aaf
bccoord 1, 14
@@ -1482,7 +1497,7 @@
.asm_28a58
xor a
ld [wcf57], a
- ld [wcf52], a
+ ld [wOtherPlayerLinkAction], a
ld a, [wd003]
ld hl, OTPartySpecies
ld c, a
@@ -1494,7 +1509,7 @@
hlcoord 0, 12
ld b, $4
ld c, $12
- call Function28eef
+ call Predef_LinkTextbox
callba Function4d354
ld hl, UnknownText_0x28ac4
bccoord 1, 14
@@ -1504,12 +1519,12 @@
hlcoord 0, 12
ld b, $4
ld c, $12
- call Function28eef
+ call Predef_LinkTextbox
hlcoord 1, 14
ld de, String28ece
call PlaceString
ld a, $1
- ld [wcf56], a
+ ld [wPlayerLinkAction], a
callba Function16d6ce
ld c, $64
call DelayFrames
@@ -1576,16 +1591,16 @@
ld a, $ec
ldcoord_a 9, 17
ld a, $f
- ld [wcf56], a
+ ld [wPlayerLinkAction], a
callba Function16d6ce
- ld a, [wcf51]
+ ld a, [wOtherPlayerLinkMode]
cp $f
jr nz, .asm_28ade
Function28b22: ; 28b22
- call FadeToWhite
+ call RotateThreePalettesRight
call ClearScreen
- ld b, $8
+ ld b, SCGB_08
call GetSGBLayout
call Function3200
xor a
@@ -1619,7 +1634,7 @@
; 28b68
Function28b68: ; 28b68
- ld a, [wcf51]
+ ld a, [wOtherPlayerLinkMode]
hlcoord 6, 9
ld bc, SCREEN_WIDTH
call AddNTimes
@@ -1647,11 +1662,11 @@
Function28b87: ; 28b87
xor a
ld [wcf57], a
- ld [wcf52], a
+ ld [wOtherPlayerLinkAction], a
hlcoord 0, 12
ld b, $4
ld c, $12
- call Function28eef
+ call Predef_LinkTextbox
callba Function4d354
ld a, [wd002]
ld hl, PartySpecies
@@ -1680,7 +1695,7 @@
hlcoord 10, 7
ld b, $3
ld c, $7
- call Function28eef
+ call Predef_LinkTextbox
ld de, String28eab
hlcoord 12, 8
call PlaceString
@@ -1716,11 +1731,11 @@
.asm_28c33
ld a, $1
- ld [wcf56], a
+ ld [wPlayerLinkAction], a
hlcoord 0, 12
ld b, 4
ld c, 18
- call Function28eef
+ call Predef_LinkTextbox
hlcoord 1, 14
ld de, String28ece
call PlaceString
@@ -1729,15 +1744,15 @@
.asm_28c54
ld a, $2
- ld [wcf56], a
+ ld [wPlayerLinkAction], a
callba Function16d6ce
- ld a, [wcf51]
+ ld a, [wOtherPlayerLinkMode]
dec a
jr nz, .asm_28c7b
hlcoord 0, 12
ld b, 4
ld c, 18
- call Function28eef
+ call Predef_LinkTextbox
hlcoord 1, 14
ld de, String28ece
call PlaceString
@@ -1744,15 +1759,15 @@
jp Function28ea3
.asm_28c7b
- ld hl, sPartyScratch1
+ ld hl, sPartyMail
ld a, [wd002]
- ld bc, SCRATCHMON_STRUCT_LENGTH
+ ld bc, MAIL_STRUCT_LENGTH
call AddNTimes
- ld a, BANK(sPartyScratch1)
+ ld a, BANK(sPartyMail)
call GetSRAMBank
ld d, h
ld e, l
- ld bc, SCRATCHMON_STRUCT_LENGTH
+ ld bc, MAIL_STRUCT_LENGTH
add hl, bc
ld a, [wd002]
ld c, a
@@ -1762,28 +1777,28 @@
cp $6
jr z, .asm_28ca6
push bc
- ld bc, SCRATCHMON_STRUCT_LENGTH
+ ld bc, MAIL_STRUCT_LENGTH
call CopyBytes
pop bc
jr .asm_28c96
.asm_28ca6
- ld hl, sPartyScratch1
+ ld hl, sPartyMail
ld a, [PartyCount]
dec a
- ld bc, SCRATCHMON_STRUCT_LENGTH
+ ld bc, MAIL_STRUCT_LENGTH
call AddNTimes
push hl
ld hl, wc9f4
ld a, [wd003]
- ld bc, SCRATCHMON_STRUCT_LENGTH
+ ld bc, MAIL_STRUCT_LENGTH
call AddNTimes
pop de
- ld bc, SCRATCHMON_STRUCT_LENGTH
+ ld bc, MAIL_STRUCT_LENGTH
call CopyBytes
call CloseSRAM
ld hl, PlayerName
- ld de, wc6e7
+ ld de, wPlayerTrademonSenderName
ld bc, NAME_LENGTH
call CopyBytes
ld a, [wd002]
@@ -1792,12 +1807,12 @@
ld c, a
add hl, bc
ld a, [hl]
- ld [wc6d0], a
+ ld [wPlayerTrademonSpecies], a
push af
ld a, [wd002]
ld hl, PartyMonOT
call SkipNames
- ld de, wc6f2
+ ld de, wPlayerTrademonOTName
ld bc, NAME_LENGTH
call CopyBytes
ld hl, PartyMon1ID
@@ -1804,16 +1819,16 @@
ld a, [wd002]
call GetPartyLocation
ld a, [hli]
- ld [PlayerScreens], a
+ ld [wPlayerTrademonID], a
ld a, [hl]
- ld [EnemyScreens], a
+ ld [wPlayerTrademonID + 1], a
ld hl, PartyMon1DVs
ld a, [wd002]
call GetPartyLocation
ld a, [hli]
- ld [wc6fd], a
+ ld [wPlayerTrademonDVs], a
ld a, [hl]
- ld [wPlayerMinimized], a
+ ld [wPlayerTrademonDVs + 1], a
ld a, [wd002]
ld hl, PartyMon1Species
call GetPartyLocation
@@ -1821,9 +1836,9 @@
ld c, l
callba GetCaughtGender
ld a, c
- ld [wc701], a
+ ld [wPlayerTrademonCaughtData], a
ld hl, wd26b
- ld de, wc719
+ ld de, wOTTrademonSenderName
ld bc, NAME_LENGTH
call CopyBytes
ld a, [wd003]
@@ -1832,11 +1847,11 @@
ld c, a
add hl, bc
ld a, [hl]
- ld [wc702], a
+ ld [wOTTrademonSpecies], a
ld a, [wd003]
ld hl, OTPartyMonOT
call SkipNames
- ld de, wc724
+ ld de, wOTTrademonOTName
ld bc, NAME_LENGTH
call CopyBytes
ld hl, OTPartyMon1ID
@@ -1843,16 +1858,16 @@
ld a, [wd003]
call GetPartyLocation
ld a, [hli]
- ld [wEnemyWrapCount], a
+ ld [wOTTrademonID], a
ld a, [hl]
- ld [wPlayerCharging], a
+ ld [wOTTrademonID + 1], a
ld hl, OTPartyMon1DVs
ld a, [wd003]
call GetPartyLocation
ld a, [hli]
- ld [wEnemyTrappingMove], a
+ ld [wOTTrademonDVs], a
ld a, [hl]
- ld [wPlayerWrapCount], a
+ ld [wOTTrademonDVs + 1], a
ld a, [wd003]
ld hl, OTPartyMon1Species
call GetPartyLocation
@@ -1860,7 +1875,7 @@
ld c, l
callba GetCaughtGender
ld a, c
- ld [wEnemyCharging], a
+ ld [wOTTrademonCaughtData], a
ld a, [wd002]
ld [CurPartyMon], a
ld hl, PartySpecies
@@ -1889,18 +1904,18 @@
call DelayFrames
call ClearTileMap
call LoadFontsBattleExtra
- ld b, $8
+ ld b, SCGB_08
call GetSGBLayout
ld a, [hLinkPlayerNumber]
cp $1
- jr z, .asm_28de4
- predef Function28f24
- jr .asm_28de9
+ jr z, .player_2
+ predef TradeAnimation
+ jr .done_animation
-.asm_28de4
- predef Function28f63
+.player_2
+ predef TradeAnimationPlayer2
-.asm_28de9
+.done_animation
pop af
ld c, a
ld [CurPartyMon], a
@@ -1916,11 +1931,11 @@
ld de, TempMonSpecies
ld bc, PARTYMON_STRUCT_LENGTH
call CopyBytes
- predef Functionda96
+ predef AddTempmonToParty
ld a, [PartyCount]
dec a
ld [CurPartyMon], a
- callab Function421d8
+ callab EvolvePokemon
call ClearScreen
call Function28ef8
call Function28eff
@@ -1944,7 +1959,7 @@
.asm_28e49
ld a, b
- ld [wcf56], a
+ ld [wPlayerLinkAction], a
push bc
call Function862
pop bc
@@ -1954,7 +1969,7 @@
ld a, b
and a
jr z, .asm_28e63
- ld a, [wcf52]
+ ld a, [wOtherPlayerLinkAction]
cp b
jr nz, .asm_28e49
@@ -1967,7 +1982,7 @@
hlcoord 0, 12
ld b, 4
ld c, 18
- call Function28eef
+ call Predef_LinkTextbox
hlcoord 1, 14
ld de, String28ebd
call PlaceString
@@ -2004,10 +2019,10 @@
next "was canceled!@"
-Function28eef: ; 28eef
+Predef_LinkTextbox: ; 28eef
ld d, h
ld e, l
- callba Function16d6ca
+ callba LinkTextbox
ret
; 28ef8
@@ -2026,1552 +2041,17 @@
hlcoord 0, 0
ld b, 6
ld c, 18
- call Function28eef
+ call Predef_LinkTextbox
hlcoord 0, 8
ld b, 6
ld c, 18
- call Function28eef
+ call Predef_LinkTextbox
callba Functionfb60d
ret
; 28f24
-Function28f24: ; 28f24
- xor a
- ld [wcf66], a
- ld hl, wc6e7
- ld de, wc719
- call Function297ff
- ld hl, wc6d0
- ld de, wc702
- call Function29814
- ld de, .data_28f3f
- jr Function28fa1
+INCLUDE "engine/trade/animation.asm"
-.data_28f3f
- db $1b
- db $1
- db $1c
- db $21
- db $2d
- db $27
- db $23
- db $3
- db $25
- db $28
- db $25
- db $1e
- db $29
- db $6
- db $16
- db $1f
- db $19
- db $17
- db $22
- db $1f
- db $2a
- db $e
- db $3
- db $24
- db $5
- db $25
- db $2
- db $27
- db $25
- db $1d
- db $2c
- db $2e
- db $1e
- db $18
- db $1f
- db $2b
-
-Function28f63: ; 28f63
- xor a
- ld [wcf66], a
- ld hl, wc719
- ld de, wc6e7
- call Function297ff
- ld hl, wc702
- ld de, wc6d0
- call Function29814
- ld de, .data_28f7e
- jr Function28fa1
-
-.data_28f7e
- db $1a
- db $17
- db $22
- db $1f
- db $2a
- db $6
- db $3
- db $24
- db $5
- db $25
- db $2
- db $27
- db $25
- db $1d
- db $2c
- db $2f
- db $1e
- db $18
- db $1f
- db $1b
- db $1
- db $1c
- db $22
- db $27
- db $23
- db $3
- db $25
- db $28
- db $25
- db $1e
- db $29
- db $e
- db $16
- db $1f
- db $2b
-
-Function28fa1: ; 28fa1
- ld hl, BattleEnded
- ld [hl], e
- inc hl
- ld [hl], d
- ld a, [hMapAnims]
- push af
- xor a
- ld [hMapAnims], a
- ld hl, VramState
- ld a, [hl]
- push af
- res 0, [hl]
- ld hl, Options
- ld a, [hl]
- push af
- set 4, [hl]
- call Function28fdb
- ld a, [wcf66]
- and a
- jr nz, .asm_28fca
- ld de, MUSIC_EVOLUTION
- call PlayMusic2
-.asm_28fca
- call Function29082
- jr nc, .asm_28fca
- pop af
- ld [Options], a
- pop af
- ld [VramState], a
- pop af
- ld [hMapAnims], a
- ret
-; 28fdb
-
-Function28fdb: ; 28fdb
- xor a
- ld [wJumptableIndex], a
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- call DisableLCD
- call LoadFontsBattleExtra
- callab Function8cf53
- ld a, [hCGB]
- and a
- jr z, .asm_2900b
- ld a, $1
- ld [rVBK], a
- ld hl, VTiles0
- ld bc, sScratch - VTiles0
- xor a
- call ByteFill
- ld a, $0
- ld [rVBK], a
-
-.asm_2900b
- ld hl, VBGMap0
- ld bc, sScratch - VBGMap0
- ld a, " "
- call ByteFill
- ld hl, TradeGameBoyLZ
- ld de, VTiles2 tile $31
- call Decompress
- ld hl, TradeArrowGFX
- ld de, VTiles1 tile $6d
- ld bc, $10
- ld a, BANK(TradeArrowGFX)
- call FarCopyBytes
- ld hl, TradeArrowGFX + $10
- ld de, VTiles1 tile $6e
- ld bc, $10
- ld a, BANK(TradeArrowGFX)
- call FarCopyBytes
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- callba Function4d7fd
- call EnableLCD
- call Function2982b
- ld a, [wc6d0]
- ld hl, wc6fd
- ld de, VTiles0
- call Function29491
- ld a, [wc702]
- ld hl, wEnemyTrappingMove
- ld de, VTiles0 tile $31
- call Function29491
- ld a, [wc6d0]
- ld de, wc6d1
- call Function294a9
- ld a, [wc702]
- ld de, wc703
- call Function294a9
- call Function297ed
- ret
-; 29082
-
-Function29082: ; 29082
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_2909b
- call Function290a0
- callab Function8cf69
- ld hl, wcf65
- inc [hl]
- call DelayFrame
- and a
- ret
-
-.asm_2909b
- call LoadStandardFont
- scf
- ret
-; 290a0
-
-Function290a0: ; 290a0
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, JumpTable290af
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 290af
-
-JumpTable290af: ; 290af
- dw Function29114
- dw Function2942e
- dw Function29461
- dw Function29348
- dw Function2937e
- dw Function29391
- dw Function29129
- dw Function291af
- dw Function291c4
- dw Function291d9
- dw Function2925d
- dw Function29220
- dw Function2925d
- dw Function29229
- dw Function2913c
- dw Function2925d
- dw Function291e8
- dw Function291fd
- dw Function29211
- dw Function29220
- dw Function2925d
- dw Function29229
- dw Function29701
- dw Function2973c
- dw Function2975c
- dw Function2977f
- dw Function297a4
- dw Function293a6
- dw Function293b6
- dw Function293d2
- dw Function293de
- dw Function293ea
- dw Function2940c
- dw Function294e7
- dw Function294f0
- dw Function2961b
- dw Function2962c
- dw Function29879
- dw Function29886
- dw Function29649
- dw Function29660
- dw Function2926d
- dw Function29277
- dw Function29123
- dw Function29487
- dw Function294f9
- dw Function29502
- dw Function2950c
-; 2910f
-
-Function2910f: ; 2910f
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; 29114
-
-Function29114: ; 29114
- ld hl, BattleEnded
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, [de]
- ld [wJumptableIndex], a
- inc de
- ld [hl], d
- dec hl
- ld [hl], e
- ret
-; 29123
-
-Function29123: ; 29123
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-; 29129
-
-Function29129: ; 29129
- ld a, $ed
- call Function292f6
- ld a, [wc74c]
- ld [wd265], a
- xor a
- ld de, $2c58
- ld b, $0
- jr Function2914e
-
-Function2913c: ; 2913c
- ld a, $ee
- call Function292f6
- ld a, [wc74d]
- ld [wd265], a
- ld a, $2
- lb de, $4c, $94
- ld b, $4
-
-Function2914e: ; 2914e
- push bc
- push de
- push bc
- push de
- push af
- call DisableLCD
- callab Function8cf53
- ld hl, $9874
- ld bc, $c
- ld a, $60
- call ByteFill
- pop af
- call Function29281
- xor a
- ld [hSCX], a
- ld a, $7
- ld [hWX], a
- ld a, $70
- ld [hWY], a
- call EnableLCD
- call Function2985a
- pop de
- ld a, $11
- call Function3b2a
- ld hl, $b
- add hl, bc
- pop bc
- ld [hl], b
- pop de
- ld a, $12
- call Function3b2a
- ld hl, $b
- add hl, bc
- pop bc
- ld [hl], b
- call WaitBGMap
- ld b, $1b
- call GetSGBLayout
- ld a, $e4
- call DmgToCgbBGPals
- ld a, $d0
- call Functioncf8
- call Function2910f
- ld a, $5c
- ld [wcf64], a
- ret
-; 291af
-
-Function291af: ; 291af
- call Function2981d
- ld a, [hSCX]
- add $2
- ld [hSCX], a
- cp $50
- ret nz
- ld a, $1
- call Function29281
- call Function2910f
- ret
-; 291c4
-
-Function291c4: ; 291c4
- call Function2981d
- ld a, [hSCX]
- add $2
- ld [hSCX], a
- cp $a0
- ret nz
- ld a, $2
- call Function29281
- call Function2910f
- ret
-; 291d9
-
-Function291d9: ; 291d9
- call Function2981d
- ld a, [hSCX]
- add $2
- ld [hSCX], a
- and a
- ret nz
- call Function2910f
- ret
-; 291e8
-
-Function291e8: ; 291e8
- call Function2981d
- ld a, [hSCX]
- sub $2
- ld [hSCX], a
- cp $b0
- ret nz
- ld a, $1
- call Function29281
- call Function2910f
- ret
-; 291fd
-
-Function291fd: ; 291fd
- call Function2981d
- ld a, [hSCX]
- sub $2
- ld [hSCX], a
- cp $60
- ret nz
- xor a
- call Function29281
- call Function2910f
- ret
-; 29211
-
-Function29211: ; 29211
- call Function2981d
- ld a, [hSCX]
- sub $2
- ld [hSCX], a
- and a
- ret nz
- call Function2910f
- ret
-; 29220
-
-Function29220: ; 29220
- ld a, $80
- ld [wcf64], a
- call Function2910f
- ret
-; 29229
-
-Function29229: ; 29229
- call ClearBGPalettes
- call ClearTileMap
- call ClearSprites
- call DisableLCD
- callab Function8cf53
- ld hl, VBGMap0
- ld bc, sScratch - VBGMap0
- ld a, " "
- call ByteFill
- xor a
- ld [hSCX], a
- ld a, $90
- ld [hWY], a
- call EnableLCD
- call Function2982b
- call WaitBGMap
- call Function297ed
- call Function29114
- ret
-; 2925d
-
-Function2925d: ; 2925d
- call Function2981d
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .asm_29269
- dec [hl]
- ret
-
-.asm_29269
- call Function2910f
- ret
-; 2926d
-
-Function2926d: ; 2926d
- call Function29114
- ld de, SFX_GIVE_TRADEMON
- call PlaySFX
- ret
-; 29277
-
-Function29277: ; 29277
- call Function29114
- ld de, SFX_GET_TRADEMON
- call PlaySFX
- ret
-; 29281
-
-Function29281: ; 29281
- and 3
- ld e, a
- ld d, 0
- ld hl, Jumptable_2928f
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 2928f
-
-Jumptable_2928f: ; 2928f
- dw Function29297
- dw Function292af
- dw Function292be
- dw Function29297
-; 29297
-
-Function29297: ; 29297
- call Function297cf
- hlcoord 9, 3
- ld [hl], $5b
- inc hl
- ld bc, $a
- ld a, $60
- call ByteFill
- hlcoord 3, 2
- call Function292ec
- ret
-; 292af
-
-Function292af: ; 292af
- call Function297cf
- hlcoord 0, 3
- ld bc, SCREEN_WIDTH
- ld a, $60
- call ByteFill
- ret
-; 292be
-
-Function292be: ; 292be
- call Function297cf
- hlcoord 0, 3
- ld bc, $11
- ld a, $60
- call ByteFill
- hlcoord 17, 3
- ld a, $5d
- ld [hl], a
- ld a, $61
- ld de, SCREEN_WIDTH
- ld c, $3
-.asm_292d9
- add hl, de
- ld [hl], a
- dec c
- jr nz, .asm_292d9
- add hl, de
- ld a, $5f
- ld [hld], a
- ld a, $5b
- ld [hl], a
- hlcoord 10, 6
- call Function292ec
- ret
-; 292ec
-
-Function292ec: ; 292ec
- ld de, TradeGameBoyTilemap
- lb bc, 8, 6
- call Function297db
- ret
-; 292f6
-
-Function292f6: ; 292f6
- push af
- call ClearBGPalettes
- call WaitTop
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- call ClearTileMap
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH
- ld a, "─"
- call ByteFill
- hlcoord 0, 1
- ld de, wc736
- call PlaceString
- ld hl, wc741
- ld de, 0
-.asm_2931e
- ld a, [hli]
- cp "@"
- jr z, .asm_29326
- dec de
- jr .asm_2931e
-
-.asm_29326
- hlcoord 0, 4
- add hl, de
- ld de, wc741
- call PlaceString
- hlcoord 7, 2
- ld bc, 6
- pop af
- call ByteFill
- call WaitBGMap
- call WaitTop
- ld a, VBGMap0 / $100
- ld [hBGMapAddress + 1], a
- call ClearTileMap
- ret
-; 29348
-
-Function29348: ; 29348
- call ClearTileMap
- call WaitTop
- ld a, $a0
- ld [hSCX], a
- call DelayFrame
- hlcoord 8, 2
- ld de, Tilemap_298f7
- lb bc, 3, 12
- call Function297db
- call WaitBGMap
- ld b, $1b
- call GetSGBLayout
- ld a, $e4
- call DmgToCgbBGPals
- ld de, $e4e4
- call DmgToCgbObjPals
- ld de, SFX_POTION
- call PlaySFX
- call Function2910f
- ret
-; 2937e
-
-Function2937e: ; 2937e
- ld a, [hSCX]
- and a
- jr z, .asm_29388
- add $4
- ld [hSCX], a
- ret
-
-.asm_29388
- ld c, $50
- call DelayFrames
- call Function29114
- ret
-; 29391
-
-Function29391: ; 29391
- ld a, [hSCX]
- cp $a0
- jr z, .asm_2939c
- sub $4
- ld [hSCX], a
- ret
-
-.asm_2939c
- call ClearTileMap
- xor a
- ld [hSCX], a
- call Function29114
- ret
-; 293a6
-
-Function293a6: ; 293a6
- ld a, $8f
- ld [hWX], a
- ld a, $88
- ld [hSCX], a
- ld a, $50
- ld [hWY], a
- call Function29114
- ret
-; 293b6
-
-Function293b6: ; 293b6
- ld a, [hWX]
- cp $7
- jr z, .asm_293c7
- sub $4
- ld [hWX], a
- ld a, [hSCX]
- sub $4
- ld [hSCX], a
- ret
-
-.asm_293c7
- ld a, $7
- ld [hWX], a
- xor a
- ld [hSCX], a
- call Function29114
- ret
-; 293d2
-
-Function293d2: ; 293d2
- ld a, $7
- ld [hWX], a
- ld a, $50
- ld [hWY], a
- call Function29114
- ret
-; 293de
-
-Function293de: ; 293de
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- call Function29114
- ret
-; 293ea
-
-Function293ea: ; 293ea
- call WaitTop
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- call WaitBGMap
- ld a, $7
- ld [hWX], a
- xor a
- ld [hWY], a
- call DelayFrame
- call WaitTop
- ld a, VBGMap0 / $100
- ld [hBGMapAddress + 1], a
- call ClearTileMap
- call Function2910f
- ret
-; 2940c
-
-Function2940c: ; 2940c
- ld a, [hWX]
- cp $a1
- jr nc, .asm_29417
- add $4
- ld [hWX], a
- ret
-
-.asm_29417
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- call WaitBGMap
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- ld a, VBGMap0 / $100
- ld [hBGMapAddress + 1], a
- call Function29114
- ret
-; 2942e
-
-Function2942e: ; 2942e
- call Function2951f
- ld a, [wc6d0]
- ld [CurPartySpecies], a
- ld a, [wc6fd]
- ld [TempMonDVs], a
- ld a, [wPlayerMinimized]
- ld [TempMonDVs + 1], a
- ld b, $1a
- call GetSGBLayout
- ld a, $e4
- call DmgToCgbBGPals
- call Function294bb
-
- ld a, [wc6d0]
- call GetCryIndex
- jr c, .asm_2945d
- ld e, c
- ld d, b
- call PlayCryHeader
-.asm_2945d
-
- call Function29114
- ret
-; 29461
-
-Function29461: ; 29461
- call Function29549
- ld a, [wc702]
- ld [CurPartySpecies], a
- ld a, [wEnemyTrappingMove]
- ld [TempMonDVs], a
- ld a, [wPlayerWrapCount]
- ld [TempMonDVs + 1], a
- ld b, $1a
- call GetSGBLayout
- ld a, $e4
- call DmgToCgbBGPals
- call Function294c0
- call Function29114
- ret
-; 29487
-
-Function29487: ; 29487
- callba Function4d81e
- call Function29114
- ret
-; 29491
-
-Function29491: ; 29491
- push de
- push af
- predef GetUnownLetter
- pop af
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- call GetBaseData
- pop de
- predef GetFrontpic
- ret
-; 294a9
-
-Function294a9: ; 294a9
- push de
- ld [wd265], a
- call GetPokemonName
- ld hl, StringBuffer1
- pop de
- ld bc, NAME_LENGTH
- call CopyBytes
- ret
-; 294bb
-
-Function294bb: ; 294bb
- ld de, VTiles0
- jr Function294c3
-
-Function294c0: ; 294c0
- ld de, VTiles0 tile $31
-
-Function294c3: ; 294c3
- call DelayFrame
- ld hl, VTiles2
- ld bc, $a31
- call Request2bpp
- call WaitTop
- call Function297cf
- hlcoord 7, 2
- xor a
- ld [hFillBox], a
- lb bc, 7, 7
- predef FillBox
- call WaitBGMap
- ret
-; 294e7
-
-Function294e7: ; 294e7
- ld c, $50
- call DelayFrames
- call Function29114
- ret
-; 294f0
-
-Function294f0: ; 294f0
- ld c, $28
- call DelayFrames
- call Function29114
- ret
-; 294f9
-
-Function294f9: ; 294f9
- ld c, $60
- call DelayFrames
- call Function29114
- ret
-; 29502
-
-Function29502: ; 29502
- call Function29516
- ret nz
- ld c, $50
- call DelayFrames
- ret
-; 2950c
-
-Function2950c: ; 2950c
- call Function29516
- ret nz
- ld c, $b4
- call DelayFrames
- ret
-; 29516
-
-Function29516: ; 29516
- call Function29114
- ld a, [wc702]
- cp $fd
- ret
-; 2951f
-
-Function2951f: ; 2951f
- ld de, wc6d0
- ld a, [de]
- cp $fd
- jr z, Function295a1
- call Function29573
- ld de, wc6d0
- call Function295e3
- ld de, wc6d1
- call Function295ef
- ld a, [wc701]
- ld de, wc6f2
- call Function295f6
- ld de, PlayerScreens
- call Function29611
- call Function295d8
- ret
-; 29549
-
-Function29549: ; 29549
- ld de, wc702
- ld a, [de]
- cp $fd
- jr z, Function295a1
- call Function29573
- ld de, wc702
- call Function295e3
- ld de, wc703
- call Function295ef
- ld a, [wEnemyCharging]
- ld de, wc724
- call Function295f6
- ld de, wEnemyWrapCount
- call Function29611
- call Function295d8
- ret
-; 29573
-
-Function29573: ; 29573
- call WaitTop
- call Function297cf
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- hlcoord 3, 0
- ld b, $6
- ld c, $d
- call TextBox
- hlcoord 4, 0
- ld de, String29591
- call PlaceString
- ret
-; 29591
-
-String29591: ; 29591
- db "─── №."
- next ""
- next "OT/"
- next $73, "№.@"
-; 295a1
-
-Function295a1: ; 295a1
- call WaitTop
- call Function297cf
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- hlcoord 3, 0
- ld b, $6
- ld c, $d
- call TextBox
- hlcoord 4, 2
- ld de, String295c2
- call PlaceString
- call Function295d8
- ret
-; 295c2
-
-String295c2: ; 295c2
- db "EGG"
- next "OT/?????"
- next $73, "№.?????@"
-; 295d8
-
-Function295d8: ; 295d8
- call WaitBGMap
- call WaitTop
- ld a, VBGMap0 / $100
- ld [hBGMapAddress + 1], a
- ret
-; 295e3
-
-Function295e3: ; 295e3
- hlcoord 10, 0
- lb bc, PRINTNUM_LEADINGZEROS | 1, 3
- call PrintNum
- ld [hl], $7f
- ret
-; 295ef
-
-Function295ef: ; 295ef
- hlcoord 4, 2
- call PlaceString
- ret
-; 295f6
-
-Function295f6: ; 295f6
- cp 3
- jr c, .asm_295fb
- xor a
-
-.asm_295fb
- push af
- hlcoord 7, 4
- call PlaceString
- inc bc
- pop af
- ld hl, Unknown_2960e
- ld d, 0
- ld e, a
- add hl, de
- ld a, [hl]
- ld [bc], a
- ret
-; 2960e
-
-Unknown_2960e: ; 2960e
- db " ", "♂", "♀"
-; 29611
-
-Function29611: ; 29611
- hlcoord 7, 6
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- ret
-; 2961b
-
-Function2961b: ; 2961b
- lb de, $54, $58
- ld a, $e
- call Function3b2a
- call Function29114
- ld a, $20
- ld [wcf64], a
- ret
-; 2962c
-
-Function2962c: ; 2962c
- lb de, $54, $58
- ld a, $e
- call Function3b2a
- ld hl, $b
- add hl, bc
- ld [hl], $1
- ld hl, $7
- add hl, bc
- ld [hl], $dc
- call Function29114
- ld a, $38
- ld [wcf64], a
- ret
-; 29649
-
-Function29649: ; 29649
- lb de, $54, $58
- ld a, $f
- call Function3b2a
- call Function29114
- ld a, $10
- ld [wcf64], a
- ld de, SFX_BALL_POOF
- call PlaySFX
- ret
-; 29660
-
-Function29660: ; 29660
- ld a, $e4
- call Functioncf8
- lb de, $28, $58
- ld a, $10
- call Function3b2a
- call Function29114
- ld a, $40
- ld [wcf64], a
- ret
-; 29676
-
-Function29676: ; 29676 (a:5676)
- ld hl, $b
- add hl, bc
- ld e, [hl]
- ld d, 0
- ld hl, Jumptable_29686
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 29686
-
-Jumptable_29686: ; 29686 (a:5686)
- dw Function2969a
- dw Function296a4
- dw Function296af
- dw Function296bd
- dw Function296cf
- dw Function296dd
- dw Function296f2
-; 2969a
-
-Function29694: ; 29694 (a:5694)
- ld hl, $b
- add hl, bc
- inc [hl]
- ret
-
-Function2969a: ; 2969a (a:569a)
- call Function29694
- ld hl, $c
- add hl, bc
- ld [hl], $80
- ret
-
-Function296a4: ; 296a4 (a:56a4)
- ld hl, $c
- add hl, bc
- ld a, [hl]
- dec [hl]
- and a
- ret nz
- call Function29694
-
-Function296af: ; 296af (a:56af)
- ld hl, $4
- add hl, bc
- ld a, [hl]
- cp $94
- jr nc, .asm_296ba
- inc [hl]
- ret
-.asm_296ba
- call Function29694
-
-Function296bd: ; 296bd (a:56bd)
- ld hl, $5
- add hl, bc
- ld a, [hl]
- cp $4c
- jr nc, .asm_296c8
- inc [hl]
- ret
-.asm_296c8
- ld hl, $
- add hl, bc
- ld [hl], $0
- ret
-
-Function296cf: ; 296cf (a:56cf)
- ld hl, $5
- add hl, bc
- ld a, [hl]
- cp $2c
- jr z, .asm_296da
- dec [hl]
- ret
-.asm_296da
- call Function29694
-
-Function296dd: ; 296dd (a:56dd)
- ld hl, $4
- add hl, bc
- ld a, [hl]
- cp $58
- jr z, .asm_296e8
- dec [hl]
- ret
-.asm_296e8
- call Function29694
- ld hl, $c
- add hl, bc
- ld [hl], $80
- ret
-
-Function296f2: ; 296f2 (a:56f2)
- ld hl, $c
- add hl, bc
- ld a, [hl]
- dec [hl]
- and a
- ret nz
- ld hl, $
- add hl, bc
- ld [hl], $0
- ret
-; 29701 (a:5701)
-
-Function29701: ; 29701
- ld a, [wLinkMode]
- cp LINK_TIMECAPSULE
- jr z, .asm_29725
- ld hl, UnknownText_0x29737
- call PrintText
- ld c, $bd
- call DelayFrames
- ld hl, UnknownText_0x29732
- call PrintText
- call Function297c9
- ld c, $80
- call DelayFrames
- call Function29114
- ret
-
-.asm_29725
- ld hl, UnknownText_0x29732
- call PrintText
- call Function297c9
- call Function29114
- ret
-; 29732
-
-UnknownText_0x29732: ; 0x29732
- ; was sent to @ .
- text_jump UnknownText_0x1bc6e9
- db "@"
-; 0x29737
-
-UnknownText_0x29737: ; 0x29737
- ;
- text_jump UnknownText_0x1bc701
- db "@"
-; 0x2973c
-
-Function2973c: ; 2973c
- ld hl, UnknownText_0x29752
- call PrintText
- call Function297c9
- ld hl, UnknownText_0x29757
- call PrintText
- call Function297c9
- call Function29114
- ret
-; 29752
-
-UnknownText_0x29752: ; 0x29752
- ; bids farewell to
- text_jump UnknownText_0x1bc703
- db "@"
-; 0x29757
-
-UnknownText_0x29757: ; 0x29757
- ; .
- text_jump UnknownText_0x1bc719
- db "@"
-; 0x2975c
-
-Function2975c: ; 2975c
- call WaitTop
- hlcoord 0, 10
- ld bc, 8 * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- call WaitBGMap
- ld hl, UnknownText_0x2977a
- call PrintText
- call Function297c9
- call Function29114
- ret
-; 2977a
-
-UnknownText_0x2977a: ; 0x2977a
- ; Take good care of @ .
- text_jump UnknownText_0x1bc71f
- db "@"
-; 0x2977f
-
-Function2977f: ; 2977f
- ld hl, UnknownText_0x2979a
- call PrintText
- call Function297c9
- ld hl, UnknownText_0x2979f
- call PrintText
- call Function297c9
- ld c, $e
- call DelayFrames
- call Function29114
- ret
-; 2979a
-
-UnknownText_0x2979a: ; 0x2979a
- ; For @ 's @ ,
- text_jump UnknownText_0x1bc739
- db "@"
-; 0x2979f
-
-UnknownText_0x2979f: ; 0x2979f
- ; sends @ .
- text_jump UnknownText_0x1bc74c
- db "@"
-; 0x297a4
-
-Function297a4: ; 297a4
- ld hl, UnknownText_0x297bf
- call PrintText
- call Function297c9
- ld hl, UnknownText_0x297c4
- call PrintText
- call Function297c9
- ld c, $e
- call DelayFrames
- call Function29114
- ret
-; 297bf
-
-UnknownText_0x297bf: ; 0x297bf
- ; will trade @ @
- text_jump UnknownText_0x1bc75e
- db "@"
-; 0x297c4
-
-UnknownText_0x297c4: ; 0x297c4
- ; for @ 's @ .
- text_jump UnknownText_0x1bc774
- db "@"
-; 0x297c9
-
-Function297c9: ; 297c9
- ld c, $50
- call DelayFrames
- ret
-; 297cf
-
-Function297cf: ; 297cf
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- ret
-; 297db
-
-Function297db: ; 297db
-.asm_297db
- push bc
- push hl
-.asm_297dd
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr nz, .asm_297dd
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_297db
- ret
-; 297ed
-
-Function297ed: ; 297ed
- ld a, [hSGB]
- and a
- ld a, $e4
- jr z, .asm_297f6
- ld a, $f0
-
-.asm_297f6
- call Functioncf8
- ld a, $e4
- call DmgToCgbBGPals
- ret
-; 297ff
-
-Function297ff: ; 297ff
- push de
- ld de, wc736
- ld bc, NAME_LENGTH
- call CopyBytes
- pop hl
- ld de, wc741
- ld bc, NAME_LENGTH
- call CopyBytes
- ret
-; 29814
-
-Function29814: ; 29814
- ld a, [hl]
- ld [wc74c], a
- ld a, [de]
- ld [wc74d], a
- ret
-; 2981d
-
-Function2981d: ; 2981d
- ld a, [wcf65]
- and $7
- ret nz
- ld a, [rBGP]
- xor $3c
- call DmgToCgbBGPals
- ret
-; 2982b
-
-Function2982b: ; 2982b
- call DelayFrame
- ld de, TradeBallGFX
- ld hl, VTiles0 tile $62
- lb bc, BANK(TradeBallGFX), $6
- call Request2bpp
- ld de, TradePoofGFX
- ld hl, VTiles0 tile $68
- lb bc, BANK(TradePoofGFX), $c
- call Request2bpp
- ld de, TradeCableGFX
- ld hl, VTiles0 tile $74
- lb bc, BANK(TradeCableGFX), $4
- call Request2bpp
- xor a
- ld hl, wc300
- ld [hli], a
- ld [hl], $62
- ret
-; 2985a
-
-Function2985a: ; 2985a
- call DelayFrame
- ld e, $3
- callab Function8e83f
- ld de, TradeBubbleGFX
- ld hl, VTiles0 tile $72
- lb bc, BANK(TradeBubbleGFX), $4
- call Request2bpp
- xor a
- ld hl, wc300
- ld [hli], a
- ld [hl], $62
- ret
-; 29879
-
-Function29879: ; 29879
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .asm_29882
- dec [hl]
- ret
-
-.asm_29882
- call Function29114
- ret
-; 29886
-
-Function29886: ; 29886
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .asm_2988f
- dec [hl]
- ret
-
-.asm_2988f
- call Function29114
- ret
-; 29893
-
-
-Function29893: ; 29893
-; This function is unreferenced.
-; It was meant for use in Japanese versions, so the
-; constant used for copy length was changed by accident.
-
- ld hl, Unknown_298b5
-
- ld a, [hli]
- ld [wc6d0], a
- ld de, wc6e7
- ld c, 13 ; jp: 8
-.asm_2989f
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .asm_2989f
-
- ld a, [hli]
- ld [wc702], a
- ld de, wc719
- ld c, 13 ; jp: 8
-.asm_298ae
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .asm_298ae
- ret
-; 298b5
-
-Unknown_298b5: ; 298b5
- db $03, "ゲーフり@@", $23, $01 ; GAME FREAK
- db $06, "クりーチャ@", $56, $04 ; Creatures Inc.
-; 298c7
-
-
-TradeGameBoyTilemap: ; 298c7
-; 6x8
- db $31, $32, $32, $32, $32, $33
- db $34, $35, $36, $36, $37, $38
- db $34, $39, $3a, $3a, $3b, $38
- db $3c, $3d, $3e, $3e, $3f, $40
- db $41, $42, $43, $43, $44, $45
- db $46, $47, $43, $48, $49, $4a
- db $41, $43, $4b, $4c, $4d, $4e
- db $4f, $50, $50, $50, $51, $52
-; 297f7
-
-Tilemap_298f7: ; 297f7
-; 12x3
- db $43, $55, $56, $53, $53, $53, $53, $53, $53, $53, $53, $53
- db $43, $57, $58, $54, $54, $54, $54, $54, $54, $54, $54, $54
- db $43, $59, $5a, $43, $43, $43, $43, $43, $43, $43, $43, $43
-; 2991b
-
-TradeArrowGFX: INCBIN "gfx/trade/arrow.2bpp"
-TradeCableGFX: INCBIN "gfx/trade/cable.2bpp"
-TradeBubbleGFX: INCBIN "gfx/trade/bubble.2bpp"
-TradeGameBoyLZ: INCBIN "gfx/trade/game_boy.2bpp.lz"
-TradeBallGFX: INCBIN "gfx/trade/ball.2bpp"
-TradePoofGFX: INCBIN "gfx/trade/poof.2bpp"
-
Special_CheckTimeCapsuleCompatibility: ; 29bfb
; Checks to see if your Party is compatible with the generation 1 games. Returns the following in ScriptVar:
; 0: Party is okay
@@ -3668,11 +2148,11 @@
; 29c7b
Special_EnterTimeCapsule: ; 29c7b
- ld c, $a
+ ld c, 10
call DelayFrames
ld a, $4
call Function29f17
- ld c, $28
+ ld c, 40
call DelayFrames
xor a
ld [hVBlank], a
@@ -3730,15 +2210,15 @@
; 29ce8
Special_SetBitsForLinkTradeRequest: ; 29ce8
- ld a, $1
- ld [wcf56], a
+ ld a, LINK_TRADECENTER - 1
+ ld [wPlayerLinkAction], a
ld [wd265], a
ret
; 29cf1
Special_SetBitsForBattleRequest: ; 29cf1
- ld a, $2
- ld [wcf56], a
+ ld a, LINK_COLOSSEUM - 1
+ ld [wPlayerLinkAction], a
ld [wd265], a
ret
; 29cfa
@@ -3752,14 +2232,14 @@
ld [rSC], a
ld a, $80
ld [rSC], a
- xor a
- ld [wcf56], a
+ xor a ; LINK_TIMECAPSULE - 1
+ ld [wPlayerLinkAction], a
ld [wd265], a
ret
; 29d11
Special_WaitForLinkedFriend: ; 29d11
- ld a, [wcf56]
+ ld a, [wPlayerLinkAction]
and a
jr z, .asm_29d2f
ld a, $2
@@ -3815,9 +2295,9 @@
jr .asm_29d39
.asm_29d79
- call Function908
+ call LinkCommunicationsSignalDataReceived
call DelayFrame
- call Function908
+ call LinkCommunicationsSignalDataReceived
ld c, $32
call DelayFrames
ld a, $1
@@ -3832,7 +2312,7 @@
Special_CheckLinkTimeout: ; 29d92
ld a, $1
- ld [wcf56], a
+ ld [wPlayerLinkAction], a
ld hl, wcf5b
ld a, $3
ld [hli], a
@@ -3854,7 +2334,7 @@
Function29dba: ; 29dba
ld a, $5
- ld [wcf56], a
+ ld [wPlayerLinkAction], a
ld hl, wcf5b
ld a, $3
ld [hli], a
@@ -3875,17 +2355,17 @@
ld a, b
or c
jr nz, .asm_29de0
- ld a, [wcf51]
+ ld a, [wOtherPlayerLinkMode]
cp $5
jr nz, .asm_29e03
ld a, $6
- ld [wcf56], a
+ ld [wPlayerLinkAction], a
ld hl, wcf5b
ld a, $1
ld [hli], a
ld [hl], $32
call Function29e0c
- ld a, [wcf51]
+ ld a, [wOtherPlayerLinkMode]
cp $6
jr z, .asm_29e08
@@ -3946,7 +2426,7 @@
ld b, $a
.asm_29e49
call DelayFrame
- call Function908
+ call LinkCommunicationsSignalDataReceived
dec b
jr nz, .asm_29e49
ret
@@ -3969,7 +2449,7 @@
Special_TryQuickSave: ; 29e66
ld a, [wd265]
push af
- callba Function14ab2
+ callba Link_SaveGame
ld a, $1
jr nc, .asm_29e75
xor a
@@ -3987,14 +2467,14 @@
ld a, [wd265]
call Function29f17
push af
- call Function908
+ call LinkCommunicationsSignalDataReceived
call DelayFrame
- call Function908
+ call LinkCommunicationsSignalDataReceived
pop af
ld b, a
ld a, [wd265]
cp b
- jr nz, .asm_29eaa
+ jr nz, .fail
ld a, [wd265]
inc a
ld [wLinkMode], a
@@ -4004,7 +2484,7 @@
ld [ScriptVar], a
ret
-.asm_29eaa
+.fail
xor a
ld [ScriptVar], a
ret
@@ -4052,7 +2532,7 @@
; 29efa
Special_FailedLinkToPast: ; 29efa
- ld c, $28
+ ld c, 40
call DelayFrames
ld a, $e
jp Function29f17
@@ -4059,7 +2539,7 @@
; 29f04
Function29f04: ; 29f04
- ld c, $3
+ ld c, 3
call DelayFrames
ld a, -1
ld [hLinkPlayerNumber], a
@@ -4073,26 +2553,26 @@
Function29f17: ; 29f17
add $d0
- ld [wcf56], a
+ ld [wPlayerLinkAction], a
ld [wcf57], a
ld a, $2
ld [hVBlank], a
call DelayFrame
call DelayFrame
-.asm_29f29
+.receive_loop
call Function83b
- ld a, [wcf51]
+ ld a, [wOtherPlayerLinkMode]
ld b, a
and $f0
cp $d0
- jr z, .asm_29f40
- ld a, [wcf52]
+ jr z, .done
+ ld a, [wOtherPlayerLinkAction]
ld b, a
and $f0
cp $d0
- jr nz, .asm_29f29
+ jr nz, .receive_loop
-.asm_29f40
+.done
xor a
ld [hVBlank], a
ld a, b
--- /dev/null
+++ b/engine/mail.asm
@@ -1,0 +1,589 @@
+SendMailToPC: ; 4456e
+ ld a, MON_ITEM
+ call GetPartyParamLocation
+ ld d, [hl]
+ callba ItemIsMail
+ jr nc, .full
+ call GetMailboxCount
+ cp MAILBOX_CAPACITY
+ jr nc, .full
+ ld bc, MAIL_STRUCT_LENGTH
+ ld hl, sMailbox
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld a, [CurPartyMon]
+ ld bc, MAIL_STRUCT_LENGTH
+ ld hl, sPartyMail
+ call AddNTimes
+ push hl
+ ld a, BANK(sMailboxCount)
+ call GetSRAMBank
+ ld bc, MAIL_STRUCT_LENGTH
+ call CopyBytes
+ pop hl
+ xor a
+ ld bc, MAIL_STRUCT_LENGTH
+ call ByteFill
+ ld a, MON_ITEM
+ call GetPartyParamLocation
+ ld [hl], $0
+ ld hl, sMailboxCount
+ inc [hl]
+ call CloseSRAM
+ xor a
+ ret
+
+.full
+ scf
+ ret
+; 445c0
+
+DeleteMailFromPC: ; 445c0 (11:45c0)
+; Shift all mail messages in the mailbox
+ ld a, BANK(sMailboxCount)
+ call GetSRAMBank
+ ld a, b
+ push bc
+ ld hl, sMailbox
+ ld bc, MAIL_STRUCT_LENGTH
+ call AddNTimes
+ push hl
+ add hl, bc
+ pop de
+ pop bc
+.loop
+ ld a, b
+ cp MAILBOX_CAPACITY - 1
+ jr z, .done
+ push bc
+ ld bc, MAIL_STRUCT_LENGTH
+ call CopyBytes
+ pop bc
+ inc b
+ jr .loop
+.done
+ ld h, d
+ ld l, e
+ xor a
+ ld bc, MAIL_STRUCT_LENGTH
+ call ByteFill
+ ld hl, sMailboxCount
+ dec [hl]
+ jp CloseSRAM
+; 445f4 (11:45f4)
+
+ReadMailMessage: ; 445f4
+ ld a, b
+ ld hl, sMailbox
+ ld bc, MAIL_STRUCT_LENGTH
+ call AddNTimes
+ ld d, h
+ ld e, l
+ callba ReadAnyMail
+ ret
+
+MoveMailFromPCToParty: ; 44607
+ ld a, BANK(sMailboxCount)
+ call GetSRAMBank
+ push bc
+ ld a, b
+ ld bc, MAIL_STRUCT_LENGTH
+ ld hl, sMailbox
+ call AddNTimes
+ push hl
+ ld a, [CurPartyMon]
+ ld bc, MAIL_STRUCT_LENGTH
+ ld hl, sPartyMail
+ call AddNTimes
+ ld d, h
+ ld e, l
+ pop hl
+ push hl
+ ld bc, MAIL_STRUCT_LENGTH
+ call CopyBytes
+ pop hl
+ ld de, PARTYMON_STRUCT_LENGTH - MON_MOVES
+ add hl, de
+ ld d, [hl]
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Item
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ ld [hl], d
+ call CloseSRAM
+ pop bc
+ jp DeleteMailFromPC
+; 44648 (11:4648)
+
+GetMailboxCount: ; 44648
+ ld a, BANK(sMailboxCount)
+ call GetSRAMBank
+ ld a, [sMailboxCount]
+ ld c, a
+ jp CloseSRAM
+; 44654
+
+CheckPokeItem:: ; 44654
+ push bc
+ push de
+ callba SelectMonFromParty
+ ld a, $2
+ jr c, .pop_return
+
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Item
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ ld d, [hl]
+ callba ItemIsMail
+ ld a, $3
+ jr nc, .pop_return
+
+ ld a, BANK(sPartyMail)
+ call GetSRAMBank
+ ld a, [CurPartyMon]
+ ld hl, sPartyMail
+ ld bc, MAIL_STRUCT_LENGTH
+ call AddNTimes
+ ld d, h
+ ld e, l
+ pop hl
+ pop bc
+
+; Compare the mail message, byte for byte, with the expected message.
+ ld a, MAIL_MSG_LENGTH
+ ld [wd265], a
+.loop
+ ld a, [de]
+ ld c, a
+ ld a, b
+ call GetFarByte
+ cp "@"
+ jr z, .done
+ cp c
+ ld a, $0
+ jr nz, .close_sram_return
+ inc hl
+ inc de
+ ld a, [wd265]
+ dec a
+ ld [wd265], a
+ jr nz, .loop
+
+.done
+ callba CheckCurPartyMonFainted
+ ld a, $4
+ jr c, .close_sram_return
+ xor a
+ ld [wPokemonWithdrawDepositParameter], a
+ callba Functione039
+ ld a, $1
+
+.close_sram_return
+ call CloseSRAM
+ jr .return
+
+.pop_return
+ pop de
+ pop bc
+
+.return
+ ld [ScriptVar], a
+ ret
+; 446cc
+
+
+GivePokeItem:: ; 446cc
+ ld a, [PartyCount]
+ dec a
+ push af
+ push bc
+ ld hl, PartyMon1Item
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ pop bc
+ ld [hl], b
+ pop af
+ push bc
+ push af
+ ld hl, sPartyMail
+ ld bc, $2f
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld hl, wd002
+ ld bc, $21
+ ld a, BANK(sPartyMail)
+ call GetSRAMBank
+ call CopyBytes
+ pop af
+ push af
+ ld hl, PartyMonOT
+ ld bc, NAME_LENGTH
+ call AddNTimes
+ ld bc, $a
+ call CopyBytes
+ pop af
+ ld hl, PartyMon1ID
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ inc de
+ ld a, [CurPartySpecies]
+ ld [de], a
+ inc de
+ pop bc
+ ld a, b
+ ld [de], a
+ jp CloseSRAM
+; 44725
+
+
+BackupPartyMonMail: ; 44725
+ ld a, BANK(sPartyMail)
+ call GetSRAMBank
+ ld hl, sPartyMail
+ ld de, sPartyMailBackup
+ ld bc, 6 * MAIL_STRUCT_LENGTH
+ call CopyBytes
+ ld hl, sMailboxCount
+ ld de, sMailboxCountBackup
+ ld bc, 1 + 10 * MAIL_STRUCT_LENGTH
+ call CopyBytes
+ jp CloseSRAM
+; 44745
+
+RestorePartyMonMail: ; 44745 (11:4745)
+ ld a, BANK(sPartyMail)
+ call GetSRAMBank
+ ld hl, sPartyMailBackup
+ ld de, sPartyMail
+ ld bc, 6 * MAIL_STRUCT_LENGTH
+ call CopyBytes
+ ld hl, sMailboxCountBackup
+ ld de, sMailboxCount
+ ld bc, 1 + 10 * MAIL_STRUCT_LENGTH
+ call CopyBytes
+ jp CloseSRAM
+
+DeletePartyMonMail: ; 44765 (11:4765)
+ ld a, BANK(sPartyMail)
+ call GetSRAMBank
+ xor a
+ ld hl, sPartyMail
+ ld bc, 6 * MAIL_STRUCT_LENGTH
+ call ByteFill
+ xor a
+ ld hl, sMailboxCount
+ ld bc, 1 + 10 * MAIL_STRUCT_LENGTH
+ call ByteFill
+ jp CloseSRAM
+; 44781 (11:4781)
+
+
+IsAnyMonHoldingMail: ; 44781
+ ld a, [PartyCount]
+ and a
+ jr z, .no_mons
+ ld e, a
+ ld hl, PartyMon1Item
+.loop
+ ld d, [hl]
+ push hl
+ push de
+ callba ItemIsMail
+ pop de
+ pop hl
+ ret c
+ ld bc, PARTYMON_STRUCT_LENGTH
+ add hl, bc
+ dec e
+ jr nz, .loop
+
+.no_mons
+ and a
+ ret
+; 447a0
+
+_KrisMailBoxMenu: ; 0x447a0
+ call InitMail
+ jr z, .nomail
+ call LoadStandardMenuDataHeader
+ call MailboxPC
+ jp WriteBackup
+
+.nomail
+ ld hl, .EmptyMailboxText
+ jp MenuTextBoxBackup
+; 0x447b4
+
+.EmptyMailboxText ; 0x447b4
+ text_jump _EmptyMailboxText
+ db "@"
+
+InitMail: ; 0x447b9
+; initialize wMailboxCount and beyond with incrementing values, one per mail
+; set z if no mail
+ ld a, BANK(sMailboxCount)
+ call GetSRAMBank
+ ld a, [sMailboxCount]
+ call CloseSRAM
+ ld hl, wMailboxCount
+ ld [hli], a
+ and a
+
+ jr z, .done ; if no mail, we're done
+
+ ; load values in memory with incrementing values starting at wMailboxCount
+ ld b, a
+ ld a, 1
+.loop
+ ld [hli], a
+ inc a
+ dec b
+ jr nz, .loop
+.done
+ ld [hl], -1 ; terminate
+
+ ld a, [wMailboxCount]
+ and a
+ ret
+; 0x447da
+
+Function447da: ; 0x447da
+ dec a
+ ld hl, sMailbox1Author
+ ld bc, MAIL_STRUCT_LENGTH
+ call AddNTimes
+ ld a, BANK(sMailboxCount)
+ call GetSRAMBank
+ ld de, StringBuffer2
+ push de
+ ld bc, NAME_LENGTH - 1
+ call CopyBytes
+ ld a, "@"
+ ld [de], a
+ call CloseSRAM
+ pop de
+ ret
+; 0x447fb
+
+Function447fb: ; 0x447fb
+ push de
+ ld a, [MenuSelection]
+ call Function447da
+ pop hl
+ jp PlaceString
+; 0x44806
+
+MailboxPC: ; 0x44806
+ xor a
+ ld [OBPals + 8 * 6], a
+ ld a, $1
+ ld [wCurMessageIndex], a
+.loop
+ call InitMail
+ ld hl, MenuData4494c
+ call CopyMenuDataHeader
+ xor a
+ ld [hBGMapMode], a
+ call InitScrollingMenu
+ call UpdateSprites
+
+ ld a, [wCurMessageIndex]
+ ld [wMenuCursorBuffer], a
+ ld a, [OBPals + 8 * 6]
+ ld [wMenuScrollPosition], a
+ call HandleScrollingMenu
+ ld a, [wMenuScrollPosition]
+ ld [OBPals + 8 * 6], a
+ ld a, [MenuSelection2]
+ ld [wCurMessageIndex], a
+
+ ld a, [wcf73]
+ cp $2
+ jr z, .exit
+ call Function4484a
+ jr .loop
+
+.exit
+ xor a
+ ret
+; 0x4484a
+
+Function4484a: ; 0x4484a
+ ld hl, MenuData44964
+ call LoadMenuDataHeader
+ call InterpretMenu2
+ call ExitMenu
+ jr c, .exit
+ ld a, [MenuSelection2]
+ dec a
+ ld hl, .JumpTable
+ rst JumpTable
+
+.exit
+ ret
+; 0x44861
+
+.JumpTable
+ dw .ReadMail
+ dw .PutInPack
+ dw .AttachMail
+ dw .Cancel
+
+.ReadMail ; 0x44869
+ call FadeToMenu
+ ld a, [MenuSelection]
+ dec a
+ ld b, a
+ call ReadMailMessage
+ jp ReturnToCallingMenu
+; 0x44877
+
+.PutInPack ; 0x44877
+ ld hl, .MessageLostText
+ call MenuTextBox
+ call YesNoBox
+ call ExitMenu
+ ret c
+ ld a, [MenuSelection]
+ dec a
+ call .GetMailType
+ ld a, $1
+ ld [wItemQuantityChangeBuffer], a
+ ld hl, NumItems
+ call ReceiveItem
+ jr c, .put_in_bag
+ ld hl, .PackFullText
+ jp MenuTextBoxBackup
+
+.put_in_bag
+ ld a, [MenuSelection]
+ dec a
+ ld b, a
+ call DeleteMailFromPC
+ ld hl, .PutAwayText
+ jp MenuTextBoxBackup
+; 0x448ac
+
+.PutAwayText ; 0x448ac
+ text_jump ClearedMailPutAwayText
+ db "@"
+
+.PackFullText ; 0x448b1
+ text_jump MailPackFullText
+ db "@"
+
+.MessageLostText ; 0x448b6
+ text_jump MailMessageLostText
+ db "@"
+
+.GetMailType: ; 0x448bb
+ push af
+ ld a, BANK(sMailboxCount)
+ call GetSRAMBank
+ pop af
+ ld hl, sMailbox1Type
+ ld bc, MAIL_STRUCT_LENGTH
+ call AddNTimes
+ ld a, [hl]
+ ld [CurItem], a
+ jp CloseSRAM
+; 0x448d2
+
+.AttachMail ; 0x448d2
+ call FadeToMenu
+ xor a
+ ld [PartyMenuActionText], a
+ call ClearBGPalettes
+.try_again
+ callba LoadPartyMenuGFX
+ callba InitPartyMenuWithCancel
+ callba InitPartyMenuGFX
+ callba WritePartyMenuTilemap
+ callba PrintPartyMenuText
+ call WaitBGMap
+ call SetPalettes
+ call DelayFrame
+ callba PartyMenuSelect
+ jr c, .exit2
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .egg
+ ld a, MON_ITEM
+ call GetPartyParamLocation
+ ld a, [hl]
+ and a
+ jr z, .attach_mail
+ ld hl, .HoldingMailText
+ call PrintText
+ jr .try_again
+
+.egg
+ ld hl, .EggText
+ call PrintText
+ jr .try_again
+
+.attach_mail
+ ld a, [MenuSelection]
+ dec a
+ ld b, a
+ call MoveMailFromPCToParty
+ ld hl, .MailMovedText
+ call PrintText
+
+.exit2
+ jp ReturnToCallingMenu
+; 0x4493c
+
+.HoldingMailText ; 0x4493c
+ text_jump MailAlreadyHoldingItemText
+ db "@"
+
+.EggText ; 0x44941
+ text_jump MailEggText
+ db "@"
+
+.MailMovedText ; 0x44946
+ text_jump MailMovedFromBoxText
+ db "@"
+
+.Cancel
+ ret
+
+MenuData4494c: ; 0x4494c
+ db %01000000 ; flags
+ db 1, 8 ; start coords
+ db 10, 18 ; end coords
+ dw .MenuData2
+ db 1 ; default option
+
+.MenuData2
+ db %00010000 ; flags
+ db 4, 0 ; rows/columns?
+ db 1 ; horizontal spacing?
+ dbw 0, wMailboxCount ; text pointer
+ dba Function447fb
+ dbw 0,0
+ dbw 0,0
+
+MenuData44964: ; 0x44964
+ db %01000000 ; flags
+ db 0, 0 ; start coords
+ db 9, $d ; end coords
+ dw .MenuData2
+ db 1 ; default option
+
+.MenuData2
+ db %10000000 ; flags
+ db 4 ; items
+ db "READ MAIL@"
+ db "PUT IN PACK@"
+ db "ATTACH MAIL@"
+ db "CANCEL@"
--- /dev/null
+++ b/engine/main_menu.asm
@@ -1,0 +1,1242 @@
+GFX_49c0c: ; 49c0c
+INCBIN "gfx/unknown/049c0c.2bpp"
+; 49cdc
+
+MainMenu: ; 49cdc
+ xor a
+ ld [wc2d7], a
+ call Function49ed0
+ ld b, SCGB_08
+ call GetSGBLayout
+ call SetPalettes
+ ld hl, GameTimerPause
+ res 0, [hl]
+ call Function49da4
+ ld [wcf76], a
+ call Function49e09
+ ld hl, MenuDataHeader_0x49d14
+ call LoadMenuDataHeader
+ call Function49de4
+ call WriteBackup
+ jr c, .quit
+ call ClearTileMap
+ ld a, [MenuSelection]
+ ld hl, Jumptable_49d60
+ rst JumpTable
+ jr MainMenu
+
+.quit
+ ret
+; 49d14
+
+MenuDataHeader_0x49d14: ; 49d14
+ db $40 ; flags
+ db 00, 00 ; start coords
+ db 07, 16 ; end coords
+ dw MenuData2_0x49d1c
+ db 1 ; default option
+; 49d1c
+
+MenuData2_0x49d1c: ; 49d1c
+ db $80 ; flags
+ db 0 ; items
+ dw MainMenuItems
+ dw Function1f79
+ dw MainMenuText
+; 49d20
+
+MainMenuText: ; 49d24
+ db "CONTINUE@"
+ db "NEW GAME@"
+ db "OPTION@"
+ db "MYSTERY GIFT@"
+ db "MOBILE@"
+ db "MOBILE STUDIUM@"
+
+Jumptable_49d60: ; 0x49d60
+ dw MainMenu_Continue
+ dw MainMenu_NewGame
+ dw MainMenu_Options
+ dw MainMenu_MysteryGift
+ dw MainMenu_Mobile
+ dw MainMenu_MobileStudium
+; 0x49d6c
+
+CONTINUE EQU 0
+NEW_GAME EQU 1
+OPTION EQU 2
+MYSTERY_GIFT EQU 3
+MOBILE EQU 4
+MOBILE_STUDIUM EQU 5
+
+MainMenuItems:
+
+NewGameMenu: ; 0x49d6c
+ db 2
+ db NEW_GAME
+ db OPTION
+ db $ff
+
+ContinueMenu: ; 0x49d70
+ db 3
+ db CONTINUE
+ db NEW_GAME
+ db OPTION
+ db $ff
+
+MobileMysteryMenu: ; 0x49d75
+ db 5
+ db CONTINUE
+ db NEW_GAME
+ db OPTION
+ db MYSTERY_GIFT
+ db MOBILE
+ db $ff
+
+MobileMenu: ; 0x49d7c
+ db 4
+ db CONTINUE
+ db NEW_GAME
+ db OPTION
+ db MOBILE
+ db $ff
+
+MobileStudiumMenu: ; 0x49d82
+ db 5
+ db CONTINUE
+ db NEW_GAME
+ db OPTION
+ db MOBILE
+ db MOBILE_STUDIUM
+ db $ff
+
+MysteryMobileStudiumMenu: ; 0x49d89
+ db 6
+ db CONTINUE
+ db NEW_GAME
+ db OPTION
+ db MYSTERY_GIFT
+ db MOBILE
+ db MOBILE_STUDIUM
+ db $ff
+
+MysteryMenu: ; 0x49d91
+ db 4
+ db CONTINUE
+ db NEW_GAME
+ db OPTION
+ db MYSTERY_GIFT
+ db $ff
+
+MysteryStudiumMenu: ; 0x49d97
+ db 5
+ db CONTINUE
+ db NEW_GAME
+ db OPTION
+ db MYSTERY_GIFT
+ db MOBILE_STUDIUM
+ db $ff
+
+StudiumMenu: ; 0x49d9e
+ db 4
+ db CONTINUE
+ db NEW_GAME
+ db OPTION
+ db MOBILE_STUDIUM
+ db $ff
+
+
+Function49da4: ; 49da4
+ nop
+ nop
+ nop
+ ld a, [wSaveFileExists]
+ and a
+ jr nz, .next
+ ld a, $0
+ ret
+
+.next
+ ld a, [hCGB]
+ cp $1
+ ld a, $1
+ ret nz
+ ld a, BANK(sNumDailyMysteryGiftPartnerIDs)
+ call GetSRAMBank
+ ld a, [sNumDailyMysteryGiftPartnerIDs]
+ cp $ff
+ call CloseSRAM
+ jr nz, .done
+ ld a, [StatusFlags]
+ bit 7, a
+ ld a, $1
+ jr z, .ok
+ jr .ok
+
+.ok
+ jr .ok2
+
+.ok2
+ ld a, $1
+ ret
+
+.done
+ ld a, [StatusFlags]
+ bit 7, a
+ jr z, .ok3
+ jr .ok3
+
+.ok3
+ jr .ok4
+
+.ok4
+ ld a, $6
+ ret
+; 49de4
+
+Function49de4: ; 49de4
+ call SetUpMenu
+.asm_49de7
+ call Function49e09
+ ld a, [wcfa5]
+ set 5, a
+ ld [wcfa5], a
+ call Function1f1a
+ ld a, [wcf73]
+ cp $2
+ jr z, .asm_49e07
+ cp $1
+ jr z, .asm_49e02
+ jr .asm_49de7
+
+.asm_49e02
+ call PlayClickSFX
+ and a
+ ret
+
+.asm_49e07
+ scf
+ ret
+; 49e09
+
+Function49e09: ; 49e09
+ ld a, [wSaveFileExists]
+ and a
+ ret z
+ xor a
+ ld [hBGMapMode], a
+ call Function49e27
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ call Function49e3d
+ pop af
+ ld [Options], a
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 49e27
+
+
+Function49e27: ; 49e27
+ call CheckRTCStatus
+ and $80
+ jr nz, .asm_49e39
+ hlcoord 0, 14
+ ld b, $2
+ ld c, $12
+ call TextBox
+ ret
+
+.asm_49e39
+ call SpeechTextBox
+ ret
+; 49e3d
+
+
+Function49e3d: ; 49e3d
+ ld a, [wSaveFileExists]
+ and a
+ ret z
+ call CheckRTCStatus
+ and $80
+ jp nz, Function49e75
+ call UpdateTime
+ call GetWeekday
+ ld b, a
+ decoord 1, 15
+ call Function49e91
+ decoord 4, 16
+ ld a, [hHours]
+ ld c, a
+ callba PrintHour
+ ld [hl], ":"
+ inc hl
+ ld de, hMinutes
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNum
+ ret
+; 49e70
+
+; 49e70
+ db "min.@"
+; 49e75
+
+Function49e75: ; 49e75
+ hlcoord 1, 14
+ ld de, .TimeNotSet
+ call PlaceString
+ ret
+; 49e7f
+
+.TimeNotSet ; 49e7f
+ db "TIME NOT SET@"
+; 49e8c
+
+UnknownText_0x49e8c: ; 49e8c
+ text_jump UnknownText_0x1c5182
+ db "@"
+; 49e91
+
+Function49e91: ; 49e91
+ push de
+ ld hl, .Days
+ ld a, b
+ call GetNthString
+ ld d, h
+ ld e, l
+ pop hl
+ call PlaceString
+ ld h, b
+ ld l, c
+ ld de, .Day
+ call PlaceString
+ ret
+; 49ea8
+
+.Days
+ db "SUN@"
+ db "MON@"
+ db "TUES@"
+ db "WEDNES@"
+ db "THURS@"
+ db "FRI@"
+ db "SATUR@"
+.Day
+ db "DAY@"
+; 49ed0
+
+Function49ed0: ; 49ed0
+ xor a
+ ld [hMapAnims], a
+ call ClearTileMap
+ call LoadFontsExtra
+ call LoadStandardFont
+ call ResetTextRelatedRAM
+ ret
+; 49ee0
+
+
+MainMenu_NewGame: ; 49ee0
+ callba NewGame
+ ret
+; 49ee7
+
+MainMenu_Options: ; 49ee7
+ callba OptionsMenu
+ ret
+; 49eee
+
+MainMenu_Continue: ; 49eee
+ callba Continue
+ ret
+; 49ef5
+
+MainMenu_MysteryGift: ; 49ef5
+ callba MysteryGift
+ ret
+; 49efc
+
+MainMenu_Mobile: ; 49efc
+ call ClearBGPalettes
+ ld a, MUSIC_MOBILE_ADAPTER_MENU
+ ld [wMapMusic], a
+ ld de, MUSIC_MOBILE_ADAPTER_MENU
+ call Function4a6c5
+Function49f0a: ; 49f0a
+ call ClearBGPalettes
+ call Function4a3a7
+ call Function4a492
+ call ClearBGPalettes
+Function49f16: ; 49f16
+ call Function4a071
+ ld c, 12
+ call DelayFrames
+ hlcoord 4, 0
+ ld b, $a
+ ld c, $a
+ call Function48cdc
+ hlcoord 6, 2
+ ld de, MobileString1
+ call PlaceString
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ xor a
+ ld de, String_0x49fe9
+ hlcoord 1, 14
+ call PlaceString
+ call Function3200
+ call SetPalettes
+ call Function1bc9
+ ld hl, MenuSelection2
+ ld b, [hl]
+ push bc
+ jr .asm_49f5d
+
+.asm_49f55
+ call Function1bd3
+ ld hl, MenuSelection2
+ ld b, [hl]
+ push bc
+
+.asm_49f5d
+ bit 0, a
+ jr nz, .asm_49f67
+ bit 1, a
+ jr nz, .asm_49f84
+ jr .asm_49f97
+
+.asm_49f67
+ ld hl, MenuSelection2
+ ld a, [hl]
+ cp $1
+ jp z, Function4a098
+ cp $2
+ jp z, Function4a0b9
+ cp $3
+ jp z, Function4a0c2
+ cp $4
+ jp z, Function4a100
+ ld a, $1
+ call Function1ff8
+
+.asm_49f84
+ pop bc
+ call ClearBGPalettes
+ call ClearTileMap
+ ld a, MUSIC_MAIN_MENU
+ ld [wMapMusic], a
+ ld de, MUSIC_MAIN_MENU
+ call Function4a6c5
+ ret
+
+.asm_49f97
+ ld hl, MenuSelection2
+ ld a, [hl]
+ dec a
+ ld hl, MobileStrings2
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 13
+ ld b, $4
+ ld c, $12
+ call ClearBox
+ hlcoord 1, 14
+ call PlaceString
+ jp .asm_49fb7
+
+.asm_49fb7
+ call Function4a071
+ pop bc
+ ld hl, MenuSelection2
+ ld [hl], b
+ ld b, $a
+ ld c, $1
+ hlcoord 5, 1
+ call ClearBox
+ jp .asm_49f55
+; 49fcc
+
+
+MobileString1: ; 49fcc
+ db "めいしフ,ルダー"
+ next "あいさつ"
+ next "プロフィール"
+ next "せ", $1e, "い"
+ next "もどる"
+ db "@"
+; 49fe9
+
+
+MobileStrings2:
+
+String_0x49fe9: ; 49fe9
+ db "めいし¯つくったり"
+ next "ほぞんしておける フ,ルダーです@"
+; 4a004
+
+String_0x4a004: ; 4a004
+ db "モバイルたいせんや じぶんのめいしで"
+ next "つかう あいさつ¯つくります@"
+; 4a026
+
+String_0x4a026: ; 4a026
+ db "あなた%じゅうしょや ねんれいの"
+ next "せ", $1e, "い¯かえられます@"
+; 4a042
+
+String_0x4a042: ; 4a042
+ db "モバイルセンター", $1d, "せつぞくするとき"
+ next "ひつような こと¯きめます@"
+; 4a062
+
+String_0x4a062: ; 4a062
+ db "まえ%がめん ", $1d, "もどります"
+ next "@"
+; 4a071
+
+Function4a071: ; 4a071 (12:6071)
+ ld hl, wcfa1
+ ld a, $2
+ ld [hli], a
+ ld a, $5
+ ld [hli], a
+ ld a, $5
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld [hl], $0
+ set 5, [hl]
+ inc hl
+ xor a
+ ld [hli], a
+ ld a, $20
+ ld [hli], a
+ ld a, $1
+ add $40
+ add $80
+ add $2
+ ld [hli], a
+ ld a, $1
+rept 2
+ ld [hli], a
+endr
+ ret
+
+Function4a098: ; 4a098 (12:6098)
+ ld a, $2
+ call Function1ff8
+ call Function1bee
+ call WaitBGMap
+ call LoadStandardMenuDataHeader
+ callba Function89de0
+ call Call_ExitMenu
+ call Function49351
+ call Function4a485
+ pop bc
+ jp Function49f16
+
+Function4a0b9: ; 4a0b9 (12:60b9)
+ ld a, $2
+ call Function1ff8
+ pop bc
+ jp Function4a4c4
+
+Function4a0c2: ; 4a0c2 (12:60c2)
+ ld a, $2
+ call Function1ff8
+ ld a, BANK(sPlayerData)
+ call GetSRAMBank
+ ld hl, sPlayerData + PlayerName - wPlayerData
+ ld de, PlayerName
+ ld bc, $6
+ call CopyBytes
+ call CloseSRAM
+ callba Function150b9
+ ld c, 2
+ call DelayFrames
+ ld c, $1
+ call InitMobileProfile
+ push af
+ call ClearBGPalettes
+ pop af
+ and a
+ jr nz, .asm_4a0f9
+ callba _SaveData
+.asm_4a0f9
+ ld c, 5
+ call DelayFrames
+ jr asm_4a111
+
+Function4a100: ; 4a100 (12:6100)
+ ld a, $2
+ call Function1ff8
+ call ClearBGPalettes
+ call Function4a13b
+ call ClearBGPalettes
+ call ClearTileMap
+
+asm_4a111: ; 4a111 (12:6111)
+ pop bc
+ call LoadFontsExtra
+ jp Function49f0a
+
+Function4a118: ; 4a118 (12:6118)
+ ld hl, wcfa1
+ ld a, $1
+ ld [hli], a
+ ld a, $d
+ ld [hli], a
+ ld a, $3
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld [hl], $0
+ set 5, [hl]
+ inc hl
+ xor a
+ ld [hli], a
+ ld a, $20
+ ld [hli], a
+ ld a, $1
+ add $2
+ ld [hli], a
+ ld a, $1
+rept 2
+ ld [hli], a
+endr
+ ret
+
+Function4a13b: ; 4a13b (12:613b)
+ call Function4a3a7
+ call Function4a492
+ call Function4a373
+ ld c, 10
+ call DelayFrames
+
+Function4a149: ; 4a149 (12:6149)
+ hlcoord 1, 2
+ ld b, $6
+ ld c, $10
+ call Function48cdc
+ hlcoord 3, 4
+ ld de, String_4a1ef
+ call PlaceString
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ ld a, [MenuSelection2]
+ dec a
+ ld hl, Strings_4a23d
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 13
+ ld b, $4
+ ld c, $12
+ call ClearBox
+ hlcoord 1, 14
+ call PlaceString
+ callba Function104148
+ call SetPalettes
+ call Function1bc9
+ ld hl, MenuSelection2
+ ld b, [hl]
+ push bc
+ jr asm_4a19d
+
+Function4a195: ; 4a195 (12:6195)
+ call Function1bd3
+ ld hl, MenuSelection2
+ ld b, [hl]
+ push bc
+
+asm_4a19d: ; 4a19d (12:619d)
+ bit 0, a
+ jr nz, .asm_4a1a7
+ bit 1, a
+ jr nz, .asm_4a1ba
+ jr .asm_4a1bc
+.asm_4a1a7
+ ld hl, MenuSelection2
+ ld a, [hl]
+ cp $1
+ jp z, Function4a20e
+ cp $2
+ jp z, Function4a221
+ ld a, $1
+ call Function1ff8
+.asm_4a1ba
+ pop bc
+ ret
+.asm_4a1bc
+ ld hl, MenuSelection2
+ ld a, [hl]
+ dec a
+ ld hl, Strings_4a23d
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 13
+ ld b, $4
+ ld c, $12
+ call ClearBox
+ hlcoord 1, 14
+ call PlaceString
+ jr .asm_4a1db
+.asm_4a1db
+ call Function4a373
+ pop bc
+ ld hl, MenuSelection2
+ ld [hl], b
+ lb bc, 6, 1
+ hlcoord 2, 3
+ call ClearBox
+ jp Function4a195
+; 4a1ef (12:61ef)
+
+String_4a1ef: ; 4a1ef
+ db "モバイルセンター¯えらぶ"
+ next "ログインパスワード¯いれる"
+ next "もどる@"
+; 4a20e
+
+Function4a20e: ; 4a20e (12:620e)
+ ld a, $1
+ call Function1ff8
+ callba Function1719c8
+ call ClearBGPalettes
+ call DelayFrame
+ jr Function4a239
+
+Function4a221: ; 4a221 (12:6221)
+ ld a, $1
+ call Function1ff8
+ call Function4a28a
+ jr c, Function4a239
+ call Function4a373
+ ld a, $2
+ ld [MenuSelection2], a
+ jr .asm_4a235
+.asm_4a235
+ pop bc
+ jp Function4a149
+
+Function4a239: ; 4a239 (12:6239)
+ pop bc
+ jp Function4a13b
+; 4a23d (12:623d)
+
+Strings_4a23d: ; 4a23d
+ db "いつも せつぞく¯する"
+ next "モバイルセンター¯えらびます@"
+
+ db "モバイルセンター", $1d, "せつぞくするとき"
+ next "つかうパスワード¯ほぞんできます@"
+
+ db "まえ%がめん ", $1d, "もどります@"
+
+ db "@"
+; 4a28a
+
+Function4a28a: ; 4a28a (12:628a)
+ hlcoord 2, 3
+ lb bc, 6, 1
+ ld a, " "
+ call Function4a6d8
+ call Function1bee
+ call WaitBGMap
+ call LoadStandardMenuDataHeader
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa4b]
+ call CloseSRAM
+ and a
+ jr z, .asm_4a2df
+ hlcoord 12, 0
+ ld b, $5
+ ld c, $6
+ call Function48cdc
+ hlcoord 14, 1
+ ld de, String_4a34b
+ call PlaceString
+ callba Function104148
+ call Function4a118
+ call Function1bd3
+ push af
+ call PlayClickSFX
+ pop af
+ bit 1, a
+ jr nz, .asm_4a33b
+ ld a, [MenuSelection2]
+ cp $2
+ jr z, .asm_4a2f0
+ cp $3
+ jr z, .asm_4a33b
+.asm_4a2df
+ callba Function11765d
+ call ClearBGPalettes
+ call Call_ExitMenu
+ call LoadFontsExtra
+ scf
+ ret
+.asm_4a2f0
+ call Function1bee
+ ld hl, UnknownText_0x4a358
+ call PrintText
+ hlcoord 14, 7
+ ld b, $3
+ ld c, $4
+ call TextBox
+ callba Function104148
+ ld hl, MenuDataHeader_0x4a362
+ call LoadMenuDataHeader
+ call InterpretMenu2
+ bit 1, a
+ jr nz, .asm_4a338
+ ld a, [MenuSelection2]
+ cp $2
+ jr z, .asm_4a338
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $aa4b
+ xor a
+ ld bc, $11
+ call ByteFill
+ call CloseSRAM
+ ld hl, UnknownText_0x4a35d
+ call PrintText
+ call JoyWaitAorB
+.asm_4a338
+ call ExitMenu
+.asm_4a33b
+ call Call_ExitMenu
+ callba Function104148
+ xor a
+ ret
+; 4a346 (12:6346)
+
+MenuDataHeader_0x4a346: ; 0x4a346
+ db $40 ; flags
+ db 00, 12 ; start coords
+ db 06, 19 ; end coords
+
+String_4a34b: ; 4a34b
+ db "いれなおす"
+ next "けす"
+ next "もどる@"
+; 4a358
+
+UnknownText_0x4a358: ; 0x4a358
+ ; Delete the saved LOG-IN PASSWORD?
+ text_jump UnknownText_0x1c5196
+ db "@"
+; 0x4a35d
+
+UnknownText_0x4a35d: ; 0x4a35d
+ ; Deleted the LOG-IN PASSWORD.
+ text_jump UnknownText_0x1c51b9
+ db "@"
+; 0x4a362
+
+MenuDataHeader_0x4a362: ; 0x4a362
+ db $40 ; flags
+ db 07, 14 ; start coords
+ db 11, 19 ; end coords
+ dw MenuData2_0x4a36a
+ db 2 ; default option
+; 0x4a36a
+
+MenuData2_0x4a36a: ; 0x4a36a
+ db $e0 ; flags
+ db 2 ; items
+ db "はい@"
+ db "いいえ@"
+; 0x4a373
+
+Function4a373: ; 4a373 (12:6373)
+ ld hl, wcfa1
+ ld a, $4
+ ld [hli], a
+ ld a, $2
+ ld [hli], a
+ ld a, $3
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld [hl], $0
+ set 5, [hl]
+ inc hl
+ xor a
+ ld [hli], a
+ ld a, $20
+ ld [hli], a
+ ld a, $1
+ add $40
+ add $80
+ add $2
+ ld [hli], a
+ ld a, $1
+rept 2
+ ld [hli], a
+endr
+ ret
+; 4a39a (12:639a)
+
+Function4a39a: ; 4a39a
+ call Function4a485
+ call Function4a492
+ call Function4a3aa
+ call SetPalettes
+ ret
+; 4a3a7
+
+Function4a3a7: ; 4a3a7 (12:63a7)
+ call Function4a485
+Function4a3aa: ; 4a3aa
+ hlcoord 0, 0
+ lb bc, 3, 1
+ xor a
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $1
+ call Function4a6d8
+ lb bc, 1, 1
+ xor a
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $1
+ call Function4a6d8
+ lb bc, 4, 1
+ ld a, $2
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $3
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, " "
+ call Function4a6d8
+ hlcoord 1, 0
+ ld a, $1
+ lb bc, 3, 18
+ call Function4a6d8
+ lb bc, 1, 18
+ ld a, $0
+ call Function4a6d8
+ lb bc, 1, 18
+ ld a, $1
+ call Function4a6d8
+ lb bc, 1, 18
+ ld a, $2
+ call Function4a6d8
+ lb bc, 11, 18
+ ld a, " "
+ call Function4a6d8
+ hlcoord 19, 0
+ lb bc, 3, 1
+ ld a, $0
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $1
+ call Function4a6d8
+ lb bc, 1, 1
+ xor a
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $1
+ call Function4a6d8
+ lb bc, 4, 1
+ ld a, $2
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $3
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, " "
+ call Function4a6d8
+ ret
+; 4a449 (12:6449)
+
+Function4a449: ; 4a449
+ ld bc, 3 * SCREEN_WIDTH
+ ld a, $0
+ hlcoord 0, 0
+ call ByteFill
+ ld bc, 2 * SCREEN_WIDTH
+ ld a, $1
+ call ByteFill
+ ld bc, 2 * SCREEN_WIDTH
+ ld a, $0
+ call ByteFill
+ ld bc, 2 * SCREEN_WIDTH
+ ld a, $1
+ call ByteFill
+ ld bc, SCREEN_WIDTH
+ ld a, $2
+ call ByteFill
+ ld bc, SCREEN_WIDTH
+ ld a, $3
+ call ByteFill
+ ld bc, SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ ret
+; 4a485
+
+Function4a485: ; 4a485 (12:6485)
+ ld de, GFX_49c0c
+ ld hl, VTiles2 tile $00
+ lb bc, BANK(GFX_49c0c), $d
+ call Get2bpp
+ ret
+
+Function4a492: ; 4a492 (12:6492)
+ call Function4936e
+ ret
+
+
+MainMenu_MobileStudium: ; 4a496
+ ld a, [StartDay]
+ ld b, a
+ ld a, [StartHour]
+ ld c, a
+ ld a, [StartMinute]
+ ld d, a
+ ld a, [StartSecond]
+ ld e, a
+ push bc
+ push de
+ callba MobileStudium
+ call ClearBGPalettes
+ pop de
+ pop bc
+ ld a, b
+ ld [StartDay], a
+ ld a, c
+ ld [StartHour], a
+ ld a, d
+ ld [StartMinute], a
+ ld a, e
+ ld [StartSecond], a
+ ret
+; 4a4c4
+
+
+Function4a4c4: ; 4a4c4 (12:64c4)
+ call ClearBGPalettes
+ call Function4a3a7
+ call Function4a492
+ call Function4a680
+ call ClearBGPalettes
+ ld c, 20
+ call DelayFrames
+ hlcoord 2, 0
+ ld b, $a
+ ld c, $e
+ call Function48cdc
+ hlcoord 4, 2
+ ld de, String_4a5c5
+ call PlaceString
+ hlcoord 4, 4
+ ld de, String_4a5cd
+ call PlaceString
+ hlcoord 4, 6
+ ld de, String_4a5da
+ call PlaceString
+ hlcoord 4, 8
+ ld de, String_4a5e6
+ call PlaceString
+ hlcoord 4, 10
+ ld de, String_4a5f2
+ call PlaceString
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ xor a
+ ld hl, Strings_4a5f6
+ ld d, h
+ ld e, l
+ hlcoord 1, 14
+ call PlaceString
+ ld a, $1
+ ld hl, Strings_4a5f6
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 16
+ call PlaceString
+ call Function3200
+ call SetPalettes
+ call Function1bc9
+ ld hl, MenuSelection2
+ ld b, [hl]
+ push bc
+ jr asm_4a54d
+
+Function4a545: ; 4a545 (12:6545)
+ call Function1bd3
+ ld hl, MenuSelection2
+ ld b, [hl]
+ push bc
+
+asm_4a54d: ; 4a54d (12:654d)
+ bit 0, a
+ jr nz, .asm_4a557
+ bit 1, a
+ jr nz, .asm_4a574
+ jr .asm_4a57e
+.asm_4a557
+ ld hl, MenuSelection2
+ ld a, [hl]
+ cp $1
+ jp z, Function4a6ab
+ cp $2
+ jp z, Function4a6ab
+ cp $3
+ jp z, Function4a6ab
+ cp $4
+ jp z, Function4a6ab
+ ld a, $1
+ call Function1ff8
+.asm_4a574
+ pop bc
+ call ClearBGPalettes
+ call ClearTileMap
+ jp Function49f0a
+.asm_4a57e
+ ld hl, MenuSelection2
+ ld a, [hl]
+ dec a
+ add a
+ push af
+ ld hl, Strings_4a5f6
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 13
+ ld b, $4
+ ld c, $12
+ call ClearBox
+ hlcoord 1, 14
+ call PlaceString
+ pop af
+ inc a
+ ld hl, Strings_4a5f6
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 16
+ call PlaceString
+ jp Function4a5b0
+
+Function4a5b0: ; 4a5b0 (12:65b0)
+ call Function4a680
+ pop bc
+ ld hl, MenuSelection2
+ ld [hl], b
+ ld b, $a
+ ld c, $1
+ hlcoord 3, 1
+ call ClearBox
+ jp Function4a545
+; 4a5c5 (12:65c5)
+
+String_4a5c5: ; 4a5c5
+ db "じこしょうかい@"
+String_4a5cd: ; 4a5cd
+ db "たいせん ", $4a, "はじまるとき@"
+String_4a5da: ; 4a5da
+ db "たいせん ", $1d, "かったとき@"
+String_4a5e6: ; 4a5e6
+ db "たいせん ", $1d, "まけたとき@"
+String_4a5f2: ; 4a5f2
+ db "もどる@"
+; 4a5f6
+
+Strings_4a5f6: ; 4a5f6
+ db "めいし や ニュース ", $1d, "のせる@"
+ db "あなた%あいさつです@"
+ db "モバイル たいせん", $4a, "はじまるとき@"
+ db "あいて", $1d, "みえる あいさつです@"
+ db "モバイル たいせんで かったとき@"
+ db "あいて", $1d, "みえる あいさつです@"
+ db "モバイル たいせんで まけたとき@"
+ db "あいて", $1d, "みえる あいさつです@"
+ db "まえ%がめん ", $1d, "もどります@"
+ db "@"
+; 4a680
+
+Function4a680: ; 4a680 (12:6680)
+ ld hl, wcfa1
+ ld a, $2
+ ld [hli], a
+ ld a, $3
+ ld [hli], a
+ ld a, $5
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld [hl], $0
+ set 5, [hl]
+ inc hl
+ xor a
+ ld [hli], a
+ ld a, $20
+ ld [hli], a
+ ld a, $1
+ add $40
+ add $80
+ add $2
+ ld [hli], a
+ ld a, $1
+rept 2
+ ld [hli], a
+endr
+ xor a
+rept 3
+ ld [hli], a
+endr
+ ret
+
+Function4a6ab: ; 4a6ab (12:66ab)
+ ld a, $2
+ call Function1ff8
+ call ClearBGPalettes
+ ld b, SCGB_08
+ call GetSGBLayout
+ callba Function11c1ab
+ pop bc
+ call LoadFontsExtra
+ jp Function4a4c4
+
+Function4a6c5: ; 4a6c5 (12:66c5)
+ ld a, $5
+ ld [MusicFade], a
+ ld a, e
+ ld [MusicFadeIDLo], a
+ ld a, d
+ ld [MusicFadeIDHi], a
+ ld c, 22
+ call DelayFrames
+ ret
+
+Function4a6d8: ; 4a6d8 (12:66d8)
+ push bc
+ push hl
+.asm_4a6da
+ ld [hli], a
+ dec c
+ jr nz, .asm_4a6da
+ pop hl
+ ld bc, $14
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, Function4a6d8
+ ret
--- a/engine/map_objects.asm
+++ b/engine/map_objects.asm
@@ -2,45 +2,50 @@
INCLUDE "engine/facings.asm"
SpriteMovementData:: ; 4273
- ; function, facing, ?, ?, ?, ?
- db SPRITEMOVEFN_00, DOWN, $01, $02, $00, $00 ; 00
- db SPRITEMOVEFN_STANDING, DOWN, $01, $0c, $00, $00 ; 01
- db SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, $01, $00, $00, $00 ; 02
- db SPRITEMOVEFN_SLOW_RANDOM_SPIN, DOWN, $01, $00, $00, $00 ; 03
- db SPRITEMOVEFN_RANDOM_WALK_Y, DOWN, $01, $00, $00, $00 ; 04
- db SPRITEMOVEFN_RANDOM_WALK_X, DOWN, $01, $00, $00, $00 ; 05
- db SPRITEMOVEFN_STANDING, DOWN, $01, $00, $00, $00 ; 06
- db SPRITEMOVEFN_STANDING, UP, $01, $00, $00, $00 ; 07
- db SPRITEMOVEFN_STANDING, LEFT, $01, $00, $00, $00 ; 08
- db SPRITEMOVEFN_STANDING, RIGHT, $01, $00, $00, $00 ; 09
- db SPRITEMOVEFN_FAST_RANDOM_SPIN, DOWN, $01, $00, $00, $00 ; 0a
- db SPRITEMOVEFN_OBEY_DPAD, DOWN, $01, $02, $00, $00 ; 0b
- db SPRITEMOVEFN_08, DOWN, $01, $00, $00, $00 ; 0c
- db SPRITEMOVEFN_09, DOWN, $01, $00, $00, $00 ; 0d
- db SPRITEMOVEFN_0A, DOWN, $01, $00, $00, $00 ; 0e
- db SPRITEMOVEFN_0B, DOWN, $01, $00, $00, $00 ; 0f
- db SPRITEMOVEFN_0C, DOWN, $01, $00, $00, $00 ; 10
- db SPRITEMOVEFN_0D, DOWN, $01, $00, $00, $00 ; 11
- db SPRITEMOVEFN_0E, DOWN, $01, $00, $00, $00 ; 12
- db SPRITEMOVEFN_FOLLOW, DOWN, $01, $02, $00, $00 ; 13
- db SPRITEMOVEFN_SCRIPTED, DOWN, $01, $02, $00, $00 ; 14
- db SPRITEMOVEFN_BIG_SNORLAX, DOWN, $09, $2e, $01, $c0 ; 15
- db SPRITEMOVEFN_BOUNCE, DOWN, $0a, $2e, $00, $00 ; 16
- db SPRITEMOVEFN_STANDING, DOWN, $01, $0c, $00, $00 ; 17
- db SPRITEMOVEFN_STANDING, DOWN, $01, $2e, $10, $00 ; 18
- db SPRITEMOVEFN_STRENGTH, DOWN, $01, $2e, $00, $40 ; 19
- db SPRITEMOVEFN_FOLLOWNOTEXACT, DOWN, $01, $02, $00, $00 ; 1a
- db SPRITEMOVEFN_13, DOWN, $00, $8e, $01, $00 ; 1b
- db SPRITEMOVEFN_14, DOWN, $08, $8e, $02, $00 ; 1c
- db SPRITEMOVEFN_17, DOWN, $00, $82, $00, $00 ; 1d
- db SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE, LEFT, $01, $00, $00, $00 ; 1e
- db SPRITEMOVEFN_SPIN_CLOCKWISE, RIGHT, $01, $00, $00, $00 ; 1f
- db SPRITEMOVEFN_STRENGTH, DOWN, $0c, $2e, $01, $c0 ; 20
- db SPRITEMOVEFN_STRENGTH, DOWN, $0d, $2e, $01, $c0 ; 21
- db SPRITEMOVEFN_1A, DOWN, $0e, $8e, $01, $00 ; 22
- db SPRITEMOVEFN_1B, DOWN, $0f, $8e, $02, $00 ; 23
- db SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, $01, $00, $00, $20 ; 24
- db SPRITEMOVEFN_00, DOWN, $01, $00, $00, $00 ; 25
+
+sprite_movement_data: macro
+ db \1, \2, \3, \4, \5
+ dn \6, 0
+ endm
+ ; function, facing, action, flags1, flags2, palette flags
+ sprite_movement_data SPRITEMOVEFN_00, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 00
+ sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_STAND, $0c, $00, %0000 ; 01
+ sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 02
+ sprite_movement_data SPRITEMOVEFN_SLOW_RANDOM_SPIN, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 03
+ sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_Y, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 04
+ sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_X, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 05
+ sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 06
+ sprite_movement_data SPRITEMOVEFN_STANDING, UP, PERSON_ACTION_STAND, $00, $00, %0000 ; 07
+ sprite_movement_data SPRITEMOVEFN_STANDING, LEFT, PERSON_ACTION_STAND, $00, $00, %0000 ; 08
+ sprite_movement_data SPRITEMOVEFN_STANDING, RIGHT, PERSON_ACTION_STAND, $00, $00, %0000 ; 09
+ sprite_movement_data SPRITEMOVEFN_FAST_RANDOM_SPIN, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0a
+ sprite_movement_data SPRITEMOVEFN_OBEY_DPAD, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 0b
+ sprite_movement_data SPRITEMOVEFN_08, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0c
+ sprite_movement_data SPRITEMOVEFN_09, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0d
+ sprite_movement_data SPRITEMOVEFN_0A, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0e
+ sprite_movement_data SPRITEMOVEFN_0B, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0f
+ sprite_movement_data SPRITEMOVEFN_0C, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 10
+ sprite_movement_data SPRITEMOVEFN_0D, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 11
+ sprite_movement_data SPRITEMOVEFN_0E, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 12
+ sprite_movement_data SPRITEMOVEFN_FOLLOW, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 13
+ sprite_movement_data SPRITEMOVEFN_SCRIPTED, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 14
+ sprite_movement_data SPRITEMOVEFN_BIG_SNORLAX, DOWN, PERSON_ACTION_09, $2e, $01, %1100 ; 15
+ sprite_movement_data SPRITEMOVEFN_BOUNCE, DOWN, PERSON_ACTION_0A, $2e, $00, %0000 ; 16
+ sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_STAND, $0c, $00, %0000 ; 17
+ sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_STAND, $2e, $10, %0000 ; 18
+ sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, PERSON_ACTION_STAND, $2e, $00, %0100 ; 19
+ sprite_movement_data SPRITEMOVEFN_FOLLOWNOTEXACT, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 1a
+ sprite_movement_data SPRITEMOVEFN_SHADOW, DOWN, PERSON_ACTION_00, $8e, $01, %0000 ; 1b
+ sprite_movement_data SPRITEMOVEFN_EMOTE, DOWN, PERSON_ACTION_EMOTE, $8e, $02, %0000 ; 1c
+ sprite_movement_data SPRITEMOVEFN_SCREENSHAKE, DOWN, PERSON_ACTION_00, $82, $00, %0000 ; 1d
+ sprite_movement_data SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE, LEFT, PERSON_ACTION_STAND, $00, $00, %0000 ; 1e
+ sprite_movement_data SPRITEMOVEFN_SPIN_CLOCKWISE, RIGHT, PERSON_ACTION_STAND, $00, $00, %0000 ; 1f
+ sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, PERSON_ACTION_0C, $2e, $01, %1100 ; 20
+ sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, PERSON_ACTION_0D, $2e, $01, %1100 ; 21
+ sprite_movement_data SPRITEMOVEFN_BOULDERDUST, DOWN, PERSON_ACTION_0E, $8e, $01, %0000 ; 22
+ sprite_movement_data SPRITEMOVEFN_GRASS, DOWN, PERSON_ACTION_0F, $8e, $02, %0000 ; 23
+ sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, PERSON_ACTION_STAND, $00, $00, %0010 ; 24
+ sprite_movement_data SPRITEMOVEFN_00, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 25
; 4357
@@ -84,7 +89,7 @@
res 6, [hl]
ld a, [XCoord]
ld e, a
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld a, [hl]
add 1
@@ -94,7 +99,7 @@
jr nc, .ok
ld a, [YCoord]
ld e, a
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld a, [hl]
add 1
@@ -110,7 +115,7 @@
set 6, [hl]
ld a, [XCoord]
ld e, a
- ld hl, OBJECT_20
+ ld hl, OBJECT_INIT_X
add hl, bc
ld a, [hl]
add 1
@@ -120,7 +125,7 @@
jr nc, .ok2
ld a, [YCoord]
ld e, a
- ld hl, OBJECT_21
+ ld hl, OBJECT_INIT_Y
add hl, bc
ld a, [hl]
add 1
@@ -151,16 +156,18 @@
; 43f3
Function43f3: ; 43f3
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
ld a, [hl]
and a
jr z, .zero
+
ld hl, OBJECT_FLAGS2
add hl, bc
bit 5, [hl]
jr nz, .bit5
- cp 1
+
+ cp STEP_TYPE_STANDING
jr z, .one
jr .ok
@@ -173,12 +180,13 @@
.one
call Function47dd
- ld hl, OBJECT_09
+
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
ld a, [hl]
and a
ret z
- cp 1
+ cp STEP_TYPE_STANDING
ret z
.ok
@@ -193,13 +201,13 @@
Function4427: ; 4427
ld hl, OBJECT_FLAGS1
add hl, bc
- bit 0, [hl]
- jr nz, Function44a3
+ bit INVISIBLE, [hl]
+ jr nz, SetFacingStanding
ld hl, OBJECT_FLAGS2
add hl, bc
bit 6, [hl]
- jr nz, Function44a3
+ jr nz, SetFacingStanding
bit 5, [hl]
jr nz, Function4448
@@ -211,11 +219,8 @@
Function4440: ; 4440
ld hl, OBJECT_FLAGS1
add hl, bc
- bit 0, [hl]
- jr nz, Function44a3
- ; fallthrough
-; 4448
-
+ bit INVISIBLE, [hl]
+ jr nz, SetFacingStanding
Function4448: ; 4448
ld de, Pointers445f + 2
jr Function444d
@@ -222,7 +227,8 @@
; 444d
Function444d: ; 444d
- ld hl, OBJECT_11
+; call [4 * ObjectStructs[ObjInd, OBJECT_ACTION] + de]
+ ld hl, OBJECT_ACTION
add hl, bc
ld a, [hl]
ld l, a
@@ -239,52 +245,35 @@
; 445f
Pointers445f: ; 445f
- dw Function44a3 ; 00
- dw Function44a3 ; 01
- dw Function44b5 ; 02
- dw Function44aa ; 03
- dw Function44c1 ; 04
- dw Function44aa ; 05
- dw Function4508 ; 06
- dw Function44aa ; 07
- dw Function4529 ; 08
- dw Function44aa ; 09
- dw Function4539 ; 0a
- dw Function44a3 ; 0b
- dw Function456e ; 0c
- dw Function456e ; 0d
- dw Function457b ; 0e
- dw Function44a3 ; 0f
- dw Function4582 ; 10
- dw Function4582 ; 11
- dw Function4589 ; 12
- dw Function4589 ; 13
- dw Function4590 ; 14
- dw Function45a4 ; 15
- dw Function45ab ; 16
- dw Function44aa ; 17
- dw Function45be ; 18
- dw Function45be ; 19
- dw Function45c5 ; 1a
- dw Function45c5 ; 1b
- dw Function45da ; 1c
- dw Function44a3 ; 1d
- dw Function45ed ; 1e
- dw Function44a3 ; 1f
- dw Function44e4 ; 20
- dw Function44aa ; 21
+ dw SetFacingStanding, SetFacingStanding ; 00
+ dw Function44b5, SetFacingCurrent ; 01 standing?
+ dw Function44c1, SetFacingCurrent ; 02 walking?
+ dw Function4508, SetFacingCurrent ; 03 bumping?
+ dw Function4529, SetFacingCurrent ; 04
+ dw Function4539, SetFacingStanding ; 05
+ dw Function456e, Function456e ; 06
+ dw Function457b, SetFacingStanding ; 07
+ dw Function4582, Function4582 ; 08
+ dw Function4589, Function4589 ; 09
+ dw Function4590, Function45a4 ; 0a
+ dw Function45ab, SetFacingCurrent ; 0c
+ dw Function45be, Function45be ; 0b
+ dw Function45c5, Function45c5 ; 0d
+ dw Function45da, SetFacingStanding ; 0e
+ dw Function45ed, SetFacingStanding ; 0f
+ dw Function44e4, SetFacingCurrent ; 10
; 44a3
-Function44a3: ; 44a3
+SetFacingStanding: ; 44a3
ld hl, OBJECT_FACING_STEP
add hl, bc
- ld [hl], -1
+ ld [hl], STANDING
ret
; 44aa
-Function44aa: ; 44aa
+SetFacingCurrent: ; 44aa
call GetSpriteDirection
- or 0
+ or 0 ; useless
ld hl, OBJECT_FACING_STEP
add hl, bc
ld [hl], a
@@ -297,26 +286,29 @@
ld a, [hl]
and 1
jr nz, Function44c1
- jp Function44aa
+ jp SetFacingCurrent
; 44c1
Function44c1: ; 44c1
ld hl, OBJECT_FLAGS1
add hl, bc
- bit 3, [hl]
- jp nz, Function44aa
- ld hl, OBJECT_12
+ bit SLIDING, [hl]
+ jp nz, SetFacingCurrent
+
+ ld hl, OBJECT_STEP_FRAME
add hl, bc
ld a, [hl]
inc a
and %00001111
ld [hl], a
+
rrca
rrca
and %00000011
ld d, a
+
call GetSpriteDirection
- or 0
+ or 0 ; useless
or d
ld hl, OBJECT_FACING_STEP
add hl, bc
@@ -327,20 +319,23 @@
Function44e4: ; 44e4
ld hl, OBJECT_FLAGS1
add hl, bc
- bit 3, [hl]
- jp nz, Function44aa
- ld hl, OBJECT_12
+ bit SLIDING, [hl]
+ jp nz, SetFacingCurrent
+
+ ld hl, OBJECT_STEP_FRAME
add hl, bc
ld a, [hl]
add 2
and %00001111
ld [hl], a
+
rrca
rrca
and %00000011
ld d, a
+
call GetSpriteDirection
- or 0
+ or 0 ; useless
or d
ld hl, OBJECT_FACING_STEP
add hl, bc
@@ -351,11 +346,13 @@
Function4508: ; 4508
ld hl, OBJECT_FLAGS1
add hl, bc
- bit 3, [hl]
- jp nz, Function44aa
- ld hl, OBJECT_12
+ bit SLIDING, [hl]
+ jp nz, SetFacingCurrent
+
+ ld hl, OBJECT_STEP_FRAME
add hl, bc
inc [hl]
+
ld a, [hl]
rrca
rrca
@@ -362,8 +359,9 @@
rrca
and %00000011
ld d, a
+
call GetSpriteDirection
- or 0
+ or 0 ; useless
or d
ld hl, OBJECT_FACING_STEP
add hl, bc
@@ -376,7 +374,7 @@
ld hl, OBJECT_FACING
add hl, bc
ld a, [hl]
- or 0
+ or 0 ; useless
ld hl, OBJECT_FACING_STEP
add hl, bc
ld [hl], a
@@ -385,15 +383,16 @@
Function4539: ; 4539
call Function453f
- jp Function44a3
+ jp SetFacingStanding
; 453f
Function453f: ; 453f
- ld hl, OBJECT_12
+ ld hl, OBJECT_STEP_FRAME
add hl, bc
ld a, [hl]
and %11110000
ld e, a
+
ld a, [hl]
inc a
and %00001111
@@ -400,6 +399,7 @@
ld d, a
cp 4
jr c, .ok
+
ld d, 0
ld a, e
add $10
@@ -410,6 +410,7 @@
ld a, d
or e
ld [hl], a
+
swap e
ld d, 0
ld hl, .Directions
@@ -422,7 +423,7 @@
; 456a
.Directions ; 456a
- db DOWN << 2, RIGHT << 2, UP << 2, LEFT << 2
+ db OW_DOWN, OW_RIGHT, OW_UP, OW_LEFT
; 456e
Function456e: ; 456e
@@ -439,14 +440,14 @@
Function457b: ; 457b
ld hl, OBJECT_FACING_STEP
add hl, bc
- ld [hl], $15
+ ld [hl], FACING_15
ret
; 4582
-Function4582: ; 4582
+Function4582: ; 4582 emote
ld hl, OBJECT_FACING_STEP
add hl, bc
- ld [hl], $14
+ ld [hl], FACING_EMOTE
ret
; 4589
@@ -453,12 +454,12 @@
Function4589: ; 4589
ld hl, OBJECT_FACING_STEP
add hl, bc
- ld [hl], $17
+ ld [hl], FACING_17
ret
; 4590
Function4590: ; 4590
- ld hl, OBJECT_12
+ ld hl, OBJECT_STEP_FRAME
add hl, bc
ld a, [hl]
inc a
@@ -468,7 +469,7 @@
jr z, Function45a4
ld hl, OBJECT_FACING_STEP
add hl, bc
- ld [hl], $4
+ ld [hl], FACING_04
ret
; 45a4
@@ -480,7 +481,7 @@
; 45ab
Function45ab: ; 45ab
- ld hl, OBJECT_12
+ ld hl, OBJECT_STEP_FRAME
add hl, bc
ld a, [hl]
inc a
@@ -498,18 +499,18 @@
Function45be: ; 45be
ld hl, OBJECT_FACING_STEP
add hl, bc
- ld [hl], $16
+ ld [hl], FACING_16
ret
; 45c5
Function45c5: ; 45c5
ld a, [VariableSprites + SPRITE_BIG_DOLL - SPRITE_VARS]
- ld d, $17
+ ld d, FACING_17
cp SPRITE_BIG_SNORLAX
jr z, .ok
cp SPRITE_BIG_LAPRAS
jr z, .ok
- ld d, $16
+ ld d, FACING_16
.ok
ld hl, OBJECT_FACING_STEP
@@ -519,7 +520,7 @@
; 45da
Function45da: ; 45da
- ld hl, OBJECT_12
+ ld hl, OBJECT_STEP_FRAME
add hl, bc
inc [hl]
ld a, [hl]
@@ -527,9 +528,9 @@
ld hl, OBJECT_FACING_STEP
add hl, bc
and 2
- ld a, $1c
+ ld a, FACING_1C
jr z, .ok
- inc a
+ inc a ; FACING_1D
.ok
ld [hl], a
ret
@@ -536,7 +537,7 @@
; 45ed
Function45ed: ; 45ed
- ld hl, OBJECT_12
+ ld hl, OBJECT_STEP_FRAME
add hl, bc
inc [hl]
ld a, [hl]
@@ -543,9 +544,9 @@
ld hl, OBJECT_FACING_STEP
add hl, bc
and 4
- ld a, $1e
+ ld a, FACING_1E
jr z, .ok
- inc a
+ inc a ; FACING_1F
.ok
ld [hl], a
@@ -554,49 +555,49 @@
Function4600: ; 4600
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld a, [hl]
- ld hl, OBJECT_NEXT_MAP_X
+ ld hl, OBJECT_MAP_X
add hl, bc
ld [hl], a
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld a, [hl]
- ld hl, OBJECT_NEXT_MAP_Y
+ ld hl, OBJECT_MAP_Y
add hl, bc
ld [hl], a
- ld hl, OBJECT_STANDING_TILE
+ ld hl, OBJECT_NEXT_TILE
add hl, bc
ld a, [hl]
- ld hl, OBJECT_NEXT_TILE
+ ld hl, OBJECT_STANDING_TILE
add hl, bc
ld [hl], a
- call Function4661
- ld hl, OBJECT_STANDING_TILE
+ call SetTallGrassFlags
+ ld hl, OBJECT_NEXT_TILE
add hl, bc
ld a, [hl]
- call Function4679
+ call UselessAndA
ret
; 462a
Function462a: ; 462a
- ld hl, OBJECT_NEXT_MAP_X
+ ld hl, OBJECT_MAP_X
add hl, bc
ld a, [hl]
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld [hl], a
- ld hl, OBJECT_NEXT_MAP_Y
+ ld hl, OBJECT_MAP_Y
add hl, bc
ld a, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld [hl], a
@@ -606,30 +607,30 @@
Function463f: ; 463f
ld hl, OBJECT_FLAGS2
add hl, bc
- bit 3, [hl]
+ bit 3, [hl] ; is current tile grass?
jr z, .ok
- ld hl, OBJECT_STANDING_TILE
+ ld hl, OBJECT_NEXT_TILE
add hl, bc
ld a, [hl]
- call Function4661
+ call SetTallGrassFlags
.ok
- ld hl, OBJECT_STANDING_TILE
+ ld hl, OBJECT_NEXT_TILE
add hl, bc
ld a, [hl]
- call Function4679
- ret c
- ld hl, OBJECT_NEXT_TILE
+ call UselessAndA
+ ret c ; never happens
+ ld hl, OBJECT_STANDING_TILE
add hl, bc
ld a, [hl]
- call Function4679
+ call UselessAndA
ret
; 4661
-Function4661: ; 4661
+SetTallGrassFlags: ; 4661
call CheckSuperTallGrassTile
jr z, .set
- call Function1875
+ call CheckGrassTile
jr c, .reset
.set
@@ -645,7 +646,7 @@
ret
; 4679
-Function4679: ; 4679
+UselessAndA: ; 4679
and a
ret
; 467b
@@ -652,7 +653,7 @@
Function467b: ; 467b
xor a
- ld hl, OBJECT_12
+ ld hl, OBJECT_STEP_FRAME
add hl, bc
ld [hl], a
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
@@ -660,7 +661,7 @@
rept 3
ld [hli], a
endr
- ld [hl], a
+ ld [hl], a ; OBJECT_30
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], STANDING
@@ -673,8 +674,8 @@
ld [hl], a
ld hl, OBJECT_FLAGS1
add hl, bc
- bit 2, [hl]
- jr nz, .ok
+ bit FIXED_FACING, [hl]
+ jr nz, GetNextTile
rept 2
add a
@@ -684,12 +685,7 @@
add hl, bc
ld [hl], a
-.ok
- ; fallthrough
-; 46a6
-
-Function46a6: ; 46a6
-
+GetNextTile: ; 46a6
call GetStepVector
ld hl, OBJECT_STEP_DURATION
@@ -697,30 +693,30 @@
ld [hl], a
ld a, d
- call Function4730
- ld hl, OBJECT_NEXT_MAP_X
+ call GetStepVectorSign
+ ld hl, OBJECT_MAP_X
add hl, bc
add [hl]
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld [hl], a
ld d, a
ld a, e
- call Function4730
- ld hl, OBJECT_NEXT_MAP_Y
+ call GetStepVectorSign
+ ld hl, OBJECT_MAP_Y
add hl, bc
add [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld [hl], a
ld e, a
push bc
- call Function2a3c
+ call GetCoordTile
pop bc
- ld hl, OBJECT_STANDING_TILE
+ ld hl, OBJECT_NEXT_TILE
add hl, bc
ld [hl], a
@@ -727,7 +723,7 @@
ret
; 46d7
-Function46d7: ; 46d7
+AddStepVector: ; 46d7
call GetStepVector
@@ -787,13 +783,15 @@
db 4, 0, 4, 4
; 4730
-Function4730: ; 4730
+GetStepVectorSign: ; 4730
add a
- ret z
+ ret z ; 0 or 128
+
ld a, 1
- ret nc
+ ret nc ; 1 - 127
+
ld a, -1
- ret
+ ret ; 129 - 255
; 4738
Function4738: ; 4738
@@ -801,15 +799,15 @@
add hl, bc
ld a, [hl]
and %00000011
- ld [wd151], a
- call Function46d7
- ld a, [wd14e]
+ ld [wPlayerStepDirection], a
+ call AddStepVector
+ ld a, [wPlayerStepVectorX]
add d
- ld [wd14e], a
- ld a, [wd14f]
+ ld [wPlayerStepVectorX], a
+ ld a, [wPlayerStepVectorY]
add e
- ld [wd14f], a
- ld hl, wd150
+ ld [wPlayerStepVectorY], a
+ ld hl, wPlayerStepFlags
set 5, [hl]
ret
; 4759
@@ -847,7 +845,7 @@
ret
; 4780
-ClearObjectStructField27: ; 4780
+ClearObjectMovementByteIndex: ; 4780
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
ld [hl], 0
@@ -854,7 +852,7 @@
ret
; 4787
-IncrementObjectStructField27: ; 4787
+IncrementObjectMovementByteIndex: ; 4787
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
inc [hl]
@@ -861,7 +859,7 @@
ret
; 478d
-DecrementObjectStructField27: ; 478d
+DecrementObjectMovementByteIndex: ; 478d
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
dec [hl]
@@ -868,7 +866,7 @@
ret
; 4793
-JumptoObjectStructField27: ; 4793
+MovementAnonymousJumptable: ; 4793
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
ld a, [hl]
@@ -891,7 +889,8 @@
ret
; 47a8
-JumptoObjectStructField28: ; 47a8
+Object28AnonymousJumptable: ; 47a8
+; anonymous jumptable
ld hl, OBJECT_28
add hl, bc
ld a, [hl]
@@ -915,23 +914,23 @@
; 47bc
Function47bc: ; 47bc
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld d, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld e, [hl]
push bc
- call Function2a3c
+ call GetCoordTile
pop bc
- ld hl, OBJECT_STANDING_TILE
+ ld hl, OBJECT_NEXT_TILE
add hl, bc
ld [hl], a
call Function4600
call Function467b
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 1
+ ld [hl], STEP_TYPE_STANDING
ret
; 47dd
@@ -964,15 +963,15 @@
dw .Script ; 10
dw .Strength ; 11
dw .FollowNotExact ; 12
- dw .Movement13 ; 13
- dw .Movement14 ; 14
+ dw .MovementShadow ; 13
+ dw .MovementEmote ; 14
dw .MovementBigStanding ; 15
dw .MovementBouncing ; 16
- dw .Movement17 ; 17
+ dw .MovementScreenShake ; 17
dw .MovementSpinClockwise ; 18
dw .MovementSpinCounterclockwise ; 19
- dw .Movement1a ; 1a
- dw .Movement1b ; 1b
+ dw .MovementBoulderDust ; 1a
+ dw .MovementShakingGrass ; 1b
; 4821
.Null_00: ; 4821
@@ -1008,7 +1007,7 @@
ld hl, OBJECT_FACING
add hl, bc
ld [hl], a
- jp Function4b1d
+ jp RandomStepDuration_Slow
; 4851
.RandomSpin2: ; 4851
@@ -1026,18 +1025,18 @@
.keep
ld [hl], a
- jp Function4b26
+ jp RandomStepDuration_Fast
; 4869
.Standing: ; 4869
call Function462a
call Function467b
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], 1
- ld hl, OBJECT_09
+ ld [hl], PERSON_ACTION_STAND
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 5
+ ld [hl], STEP_TYPE_05
ret
; 487c
@@ -1088,13 +1087,13 @@
; 48ac
.Strength: ; 48ac
- call JumptoObjectStructField27
+ call MovementAnonymousJumptable
dw .Strength_Start
dw .Strength_Stop
; 48b3
.Strength_Start: ; 48b3
- ld hl, OBJECT_STANDING_TILE
+ ld hl, OBJECT_NEXT_TILE
add hl, bc
ld a, [hl]
call CheckPitTile
@@ -1106,7 +1105,7 @@
res 2, [hl]
jr z, .ok
- ld hl, OBJECT_32
+ ld hl, OBJECT_RANGE
add hl, bc
ld a, [hl]
and %00000011
@@ -1117,11 +1116,11 @@
ld de, SFX_STRENGTH
call PlaySFX
- call Function5538
+ call SpawnStrengthBoulderDust
call Function463f
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $f
+ ld [hl], STEP_TYPE_0F
ret
.ok2
@@ -1134,9 +1133,7 @@
ret
.on_pit
- call IncrementObjectStructField27
- ; fallthrough
-; 48f8
+ call IncrementObjectMovementByteIndex
.Strength_Stop: ; 48f8
ld hl, OBJECT_DIRECTION_WALKING
@@ -1146,15 +1143,15 @@
; 48ff
.FollowNotExact: ; 48ff
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld d, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld e, [hl]
- ld hl, OBJECT_32
+ ld hl, OBJECT_RANGE
add hl, bc
ld a, [hl]
@@ -1166,7 +1163,7 @@
cp STANDING
jr z, .standing
- ld hl, OBJECT_NEXT_MAP_X
+ ld hl, OBJECT_MAP_X
add hl, bc
ld a, [hl]
cp d
@@ -1180,7 +1177,7 @@
jr .done
.equal
- ld hl, OBJECT_NEXT_MAP_Y
+ ld hl, OBJECT_MAP_Y
add hl, bc
ld a, [hl]
cp e
@@ -1207,9 +1204,9 @@
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], STANDING
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], 1
+ ld [hl], PERSON_ACTION_STAND
ret
; 4958
@@ -1218,12 +1215,12 @@
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], STANDING
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], 9
- ld hl, OBJECT_09
+ ld [hl], PERSON_ACTION_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 4
+ ld [hl], STEP_TYPE_04
ret
; 496e
@@ -1232,17 +1229,17 @@
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], STANDING
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], 10
- ld hl, OBJECT_09
+ ld [hl], PERSON_ACTION_0A
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 4
+ ld [hl], STEP_TYPE_04
ret
; 4984
.MovementSpinCounterclockwise: ; 4984
- call JumptoObjectStructField27
+ call MovementAnonymousJumptable
dw .MovementSpinInit
dw .MovementSpinRepeat
dw .MovementSpinTurnLeft
@@ -1249,7 +1246,7 @@
; 498d
.MovementSpinClockwise: ; 498d
- call JumptoObjectStructField27
+ call MovementAnonymousJumptable
dw .MovementSpinInit
dw .MovementSpinRepeat
dw .MovementSpinTurnRight
@@ -1257,15 +1254,12 @@
.MovementSpinInit: ; 4996
call Function467b
- call IncrementObjectStructField27
- ; fallthrough
-; 499c
-
+ call IncrementObjectMovementByteIndex
.MovementSpinRepeat: ; 499c
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], 1
- ld hl, OBJECT_32
+ ld [hl], PERSON_ACTION_STAND
+ ld hl, OBJECT_RANGE
add hl, bc
ld a, [hl]
ld a, $10
@@ -1272,10 +1266,10 @@
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 3
- call IncrementObjectStructField27
+ ld [hl], STEP_TYPE_03
+ call IncrementObjectMovementByteIndex
ret
; 49b8
@@ -1286,7 +1280,7 @@
; 49c0
.DirectionData_Counterclockwise ; 49c0
- db RIGHT << 2, LEFT << 2, DOWN << 2, UP << 2
+ db OW_RIGHT, OW_LEFT, OW_DOWN, OW_UP
; 49c4
.MovementSpinTurnRight: ; 49c4
@@ -1296,7 +1290,7 @@
; 49cc
.DirectionData_Clockwise ; 49cc
- db LEFT << 2, RIGHT << 2, UP << 2, DOWN << 2
+ db OW_LEFT, OW_RIGHT, OW_UP, OW_DOWN
; 49d0
.MovementSpinNextFacing: ; 49d0
@@ -1313,15 +1307,15 @@
ld a, [hl]
pop hl
ld [hl], a
- call DecrementObjectStructField27
+ call DecrementObjectMovementByteIndex
ret
; 49e5
-.Movement13: ; 49e5
- call ._Movement13_14_1a_1b
- ld hl, OBJECT_11
+.MovementShadow: ; 49e5
+ call ._MovementShadow_Grass_Emote_BoulderDust
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], $7
+ ld [hl], PERSON_ACTION_07
ld hl, OBJECT_STEP_DURATION
add hl, de
ld a, [hl]
@@ -1349,39 +1343,39 @@
ld hl, OBJECT_SPRITE_X_OFFSET
add hl, bc
ld [hl], 0
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $13
+ ld [hl], STEP_TYPE_13
ret
; 4a21
-.Movement14: ; 4a21
+.MovementEmote: ; 4a21
call Function467b
- call ._Movement13_14_1a_1b
- ld hl, OBJECT_11
+ call ._MovementShadow_Grass_Emote_BoulderDust
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], 8
+ ld [hl], PERSON_ACTION_EMOTE
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], 0
ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
- ld [hl], $f0
+ ld [hl], -$10
ld hl, OBJECT_SPRITE_X_OFFSET
add hl, bc
ld [hl], 0
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $13
+ ld [hl], STEP_TYPE_13
ret
; 4a46
-.Movement1a: ; 4a46
+.MovementBoulderDust: ; 4a46
call Function467b
- call ._Movement13_14_1a_1b
- ld hl, OBJECT_11
+ call ._MovementShadow_Grass_Emote_BoulderDust
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], $e
+ ld [hl], PERSON_ACTION_0E
ld hl, OBJECT_STEP_DURATION
add hl, de
ld a, [hl]
@@ -1409,9 +1403,9 @@
ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], e
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $13
+ ld [hl], STEP_TYPE_13
ret
; 4a81
@@ -1423,12 +1417,12 @@
db -6, 2
; 4a89
-.Movement1b: ; 4a89
+.MovementShakingGrass: ; 4a89
call Function467b
- call ._Movement13_14_1a_1b
- ld hl, OBJECT_11
+ call ._MovementShadow_Grass_Emote_BoulderDust
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], $f
+ ld [hl], PERSON_ACTION_0F
ld hl, OBJECT_STEP_DURATION
add hl, de
ld a, [hl]
@@ -1436,14 +1430,14 @@
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $13
+ ld [hl], STEP_TYPE_13
ret
; 4aa8
-._Movement13_14_1a_1b: ; 4aa8
- ld hl, OBJECT_32
+._MovementShadow_Grass_Emote_BoulderDust: ; 4aa8
+ ld hl, OBJECT_RANGE
add hl, bc
ld a, [hl]
push bc
@@ -1459,15 +1453,15 @@
ret
; 4abc
-.Movement17: ; 4abc
+.MovementScreenShake: ; 4abc
call Function467b
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], 0
- ld hl, OBJECT_32
+ ld [hl], PERSON_ACTION_00
+ ld hl, OBJECT_RANGE
add hl, bc
ld a, [hl]
- call ._Movement17
+ call ._MovementScreenShake
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], e
@@ -1474,13 +1468,13 @@
ld hl, OBJECT_30
add hl, bc
ld [hl], a
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $15
+ ld [hl], STEP_TYPE_15
ret
; 4ade
-._Movement17: ; 4ade
+._MovementScreenShake: ; 4ade
ld d, a
and %00111111
ld e, a
@@ -1500,48 +1494,45 @@
.RandomWalkContinue: ; 4af0
call Function4690
- call Function6ec1
- jr c, Function4b17
+ call Function6ec1 ; check whether the object can move in that direction
+ jr c, .NewDuration
+
call Function463f
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], 2
- ld hl, wd4cf
+ ld [hl], PERSON_ACTION_STEP
+
+ ld hl, wCenteredObject
ld a, [hMapObjectIndexBuffer]
cp [hl]
jr z, .load_6
- ld hl, OBJECT_09
+
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 7
+ ld [hl], STEP_TYPE_07
ret
.load_6
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 6
+ ld [hl], STEP_TYPE_PLAYER_WALK
ret
-Function4b17: ; 4b17
+.NewDuration: ; 4b17
call Function467b
call Function462a
- ; fallthrough
-; 4b1d
-
-Function4b1d: ; 4b1d
+RandomStepDuration_Slow: ; 4b1d
call Random
ld a, [hRandomAdd]
and %01111111
- jr Function4b2d
+ jr SetRandomStepDuration
; 4b26
-Function4b26: ; 4b26
+RandomStepDuration_Fast: ; 4b26
call Random
ld a, [hRandomAdd]
and %00011111
- ; fallthrough
-; 4b2d
-
-Function4b2d: ; 4b2d
+SetRandomStepDuration: ; 4b2d
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
@@ -1548,42 +1539,43 @@
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], STANDING
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], 1
- ld hl, OBJECT_09
+ ld [hl], PERSON_ACTION_STAND
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 3
+ ld [hl], STEP_TYPE_03
ret
; 4b45
Pointers4b45: ; 4b45
- dw Function47bc
- dw Function47dd
- dw Function4e2b
- dw Function4ddd
- dw Function4e21
- dw Function4e0c
- dw Function4e56
- dw Function4e47
- dw Function4b86
- dw Function4bbf
- dw Function4e83
- dw Function4dff
- dw Function4c18
- dw Function4c89
- dw Function4d14
- dw Function4ecd
- dw Function4d7e
- dw Function4daf
- dw Function4dc8
- dw Function4f04
- dw Function4f33
- dw Function4f33
- dw Function4f77
- dw Function4f7a
- dw Function4df0
- dw Function4f83
+; These pointers use OBJECT_STEP_TYPE. See constants/sprite_constants.asm
+ dw Function47bc ; 00
+ dw Function47dd ; 01
+ dw Function4e2b ; 02 npc walk
+ dw Function4ddd ; 03
+ dw Function4e21 ; 04
+ dw Function4e0c ; 05
+ dw Function4e56 ; 06 player walk
+ dw Function4e47 ; 07
+ dw Function4b86 ; 08 npc jump step
+ dw Function4bbf ; 09 player jump step
+ dw Function4e83 ; 0a half step
+ dw Function4dff ; 0b
+ dw Function4c18 ; 0c teleport from
+ dw Function4c89 ; 0d teleport to
+ dw Function4d14 ; 0e skyfall
+ dw Function4ecd ; 0f
+ dw Function4d7e ; 10
+ dw Function4daf ; 11
+ dw Function4dc8 ; 12
+ dw Function4f04 ; 13
+ dw Function4f33 ; 14
+ dw Function4f33 ; 15
+ dw Function4f77 ; 16
+ dw Function4f7a ; 17
+ dw Function4df0 ; 18
+ dw Function4f83 ; 19
; 4b79
Function4b79: ; 4b79
@@ -1591,20 +1583,21 @@
add hl, bc
dec [hl]
ret nz
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 1
+ ld [hl], STEP_TYPE_STANDING
ret
; 4b86
Function4b86: ; 4b86
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4b8d
dw Function4ba9
; 4b8d
Function4b8d: ; 4b8d
- call Function46d7
+ call AddStepVector
call UpdateJumpPosition
ld hl, OBJECT_STEP_DURATION
add hl, bc
@@ -1611,7 +1604,7 @@
dec [hl]
ret nz
call Function4600
- call Function46a6
+ call GetNextTile
ld hl, OBJECT_FLAGS2
add hl, bc
res 3, [hl]
@@ -1620,7 +1613,7 @@
; 4ba9
Function4ba9: ; 4ba9
- call Function46d7
+ call AddStepVector
call UpdateJumpPosition
ld hl, OBJECT_STEP_DURATION
add hl, bc
@@ -1627,14 +1620,15 @@
dec [hl]
ret nz
call Function4600
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 1
+ ld [hl], STEP_TYPE_STANDING
ret
; 4bbf
Function4bbf: ; 4bbf
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4bca
dw Function4bd2
dw Function4bf2
@@ -1642,12 +1636,9 @@
; 4bca
Function4bca: ; 4bca
- ld hl, wd150
+ ld hl, wPlayerStepFlags
set 7, [hl]
call IncrementObjectStructField28
-; fallthrough
-; 4bd2
-
Function4bd2: ; 4bd2
call UpdateJumpPosition
call Function4738
@@ -1659,7 +1650,7 @@
ld hl, OBJECT_FLAGS2
add hl, bc
res 3, [hl]
- ld hl, wd150
+ ld hl, wPlayerStepFlags
set 6, [hl]
set 4, [hl]
call IncrementObjectStructField28
@@ -1667,13 +1658,10 @@
; 4bf2
Function4bf2: ; 4bf2
- call Function46a6
- ld hl, wd150
+ call GetNextTile
+ ld hl, wPlayerStepFlags
set 7, [hl]
call IncrementObjectStructField28
-; fallthrough
-; 4bfd
-
Function4bfd: ; 4bfd
call UpdateJumpPosition
call Function4738
@@ -1681,17 +1669,18 @@
add hl, bc
dec [hl]
ret nz
- ld hl, wd150
+ ld hl, wPlayerStepFlags
set 6, [hl]
call Function4600
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 1
+ ld [hl], STEP_TYPE_STANDING
ret
; 4c18
Function4c18: ; 4c18
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4c23
dw Function4c32
dw Function4c42
@@ -1699,7 +1688,7 @@
; 4c23
Function4c23: ; 4c23
- ld hl, OBJECT_12
+ ld hl, OBJECT_STEP_FRAME
add hl, bc
ld [hl], 0
ld hl, OBJECT_STEP_DURATION
@@ -1706,13 +1695,10 @@
add hl, bc
ld [hl], $10
call IncrementObjectStructField28
-; fallthrough
-; 4c32
-
Function4c32: ; 4c32
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], 4
+ ld [hl], PERSON_ACTION_SPIN
ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
@@ -1722,7 +1708,7 @@
; 4c42
Function4c42: ; 4c42
- ld hl, OBJECT_12
+ ld hl, OBJECT_STEP_FRAME
add hl, bc
ld [hl], 0
ld hl, OBJECT_31
@@ -1735,13 +1721,10 @@
add hl, bc
res 3, [hl]
call IncrementObjectStructField28
-; fallthrough
-; 4c5d
-
Function4c5d: ; 4c5d
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], 4
+ ld [hl], PERSON_ACTION_SPIN
ld hl, OBJECT_31
add hl, bc
inc [hl]
@@ -1757,17 +1740,18 @@
add hl, bc
dec [hl]
ret nz
- ld hl, OBJECT_12
+ ld hl, OBJECT_STEP_FRAME
add hl, bc
ld [hl], 0
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 1
+ ld [hl], STEP_TYPE_STANDING
ret
; 4c89
Function4c89: ; 4c89
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4c9a
dw Function4caa
dw Function4cb3
@@ -1778,9 +1762,9 @@
; 4c9a
Function4c9a: ; 4c9a
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], 0
+ ld [hl], PERSON_ACTION_00
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $10
@@ -1794,11 +1778,8 @@
dec [hl]
ret nz
call IncrementObjectStructField28
-; fallthrough
-; 4cb3
-
Function4cb3: ; 4cb3
- ld hl, OBJECT_12
+ ld hl, OBJECT_STEP_FRAME
add hl, bc
ld [hl], 0
ld hl, OBJECT_31
@@ -1812,9 +1793,9 @@
; 4cc9
Function4cc9: ; 4cc9
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], 4
+ ld [hl], PERSON_ACTION_SPIN
ld hl, OBJECT_31
add hl, bc
inc [hl]
@@ -1831,9 +1812,6 @@
dec [hl]
ret nz
call IncrementObjectStructField28
-; fallthrough
-; 4ceb
-
Function4ceb: ; 4ceb
ld hl, OBJECT_STEP_DURATION
add hl, bc
@@ -1843,30 +1821,29 @@
; 4cf5
Function4cf5: ; 4cf5
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], 4
+ ld [hl], PERSON_ACTION_SPIN
ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
-; 4d01
-
Function4d01: ; 4d01
- ld hl, OBJECT_12
+ ld hl, OBJECT_STEP_FRAME
add hl, bc
ld [hl], 0
ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], 0
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 1
+ ld [hl], STEP_TYPE_STANDING
ret
; 4d14
Function4d14: ; 4d14
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4d1f
dw Function4d2e
dw Function4d4f
@@ -1874,25 +1851,22 @@
; 4d1f
Function4d1f: ; 4d1f
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], 0
+ ld [hl], PERSON_ACTION_00
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $10
call IncrementObjectStructField28
-; fallthrough
-; 4d2e
-
Function4d2e: ; 4d2e
ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], 2
- ld hl, OBJECT_12
+ ld [hl], PERSON_ACTION_STEP
+ ld hl, OBJECT_STEP_FRAME
add hl, bc
ld [hl], 0
ld hl, OBJECT_31
@@ -1902,9 +1876,6 @@
add hl, bc
ld [hl], $10
call IncrementObjectStructField28
-; fallthrough
-; 4d4f
-
Function4d4f: ; 4d4f
ld hl, OBJECT_31
add hl, bc
@@ -1922,24 +1893,22 @@
dec [hl]
ret nz
call IncrementObjectStructField28
-; fallthrough
-; 4d6b
-
Function4d6b: ; 4d6b
- ld hl, OBJECT_12
+ ld hl, OBJECT_STEP_FRAME
add hl, bc
ld [hl], 0
ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], 0
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 1
+ ld [hl], STEP_TYPE_STANDING
ret
; 4d7e
Function4d7e: ; 4d7e
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4d85
dw Function4d94
; 4d85
@@ -1952,9 +1921,6 @@
add hl, bc
ld [hl], 0
call IncrementObjectStructField28
- ; fallthrough
-; 4d94
-
Function4d94: ; 4d94
ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
@@ -1968,9 +1934,9 @@
ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], 0
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 1
+ ld [hl], STEP_TYPE_STANDING
ret
; 4daf
@@ -1984,12 +1950,12 @@
add hl, bc
ld a, [hl]
and %00000001
- ld a, 1
+ ld a, PERSON_ACTION_STAND
jr z, .yes
- ld a, 0
+ ld a, PERSON_ACTION_00
.yes
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], a
ret
@@ -2000,12 +1966,12 @@
add hl, bc
ld a, [hl]
and %00000001
- ld a, 4
+ ld a, PERSON_ACTION_SPIN
jr z, .yes
- ld a, 5
+ ld a, PERSON_ACTION_SPIN_FLICKER
.yes
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], a
jp Function4b79
@@ -2019,9 +1985,9 @@
add hl, bc
dec [hl]
ret nz
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 1
+ ld [hl], STEP_TYPE_STANDING
ret
; 4df0
@@ -2041,14 +2007,15 @@
add hl, bc
dec [hl]
ret nz
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 1
+ ld [hl], STEP_TYPE_STANDING
ret
; 4e0c
Function4e0c: ; 4e0c
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4e13
dw Function4e21
; 4e13
@@ -2055,14 +2022,11 @@
Function4e13: ; 4e13
call RestoreDefaultMovement
- call Function1a47
+ call GetInitialFacing
ld hl, OBJECT_FACING
add hl, bc
ld [hl], a
call IncrementObjectStructField28
- ; fallthrough
-; 4e21
-
Function4e21: ; 4e21
call Function4fb2
ld hl, OBJECT_DIRECTION_WALKING
@@ -2073,7 +2037,7 @@
Function4e2b: ; 4e2b
call Function4fb2
- call Function46d7
+ call AddStepVector
ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
@@ -2082,36 +2046,34 @@
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], STANDING
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 1
+ ld [hl], STEP_TYPE_STANDING
ret
; 4e47
Function4e47: ; 4e47
- call Function46d7
+ call AddStepVector
ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
call Function4600
- jp Function4b1d
+ jp RandomStepDuration_Slow
; 4e56
Function4e56: ; 4e56
; AnimateStep?
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4e5d
dw Function4e65
; 4e5d
Function4e5d: ; 4e5d
- ld hl, wd150
+ ld hl, wPlayerStepFlags
set 7, [hl]
call IncrementObjectStructField28
- ; fallthrough
-; 4e65
-
Function4e65: ; 4e65
call Function4738
ld hl, OBJECT_STEP_DURATION
@@ -2118,20 +2080,22 @@
add hl, bc
dec [hl]
ret nz
- ld hl, wd150
+
+ ld hl, wPlayerStepFlags
set 6, [hl]
call Function4600
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], STANDING
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 1
+ ld [hl], STEP_TYPE_STANDING
ret
; 4e83
Function4e83: ; 4e83
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4e8e
dw Function4ea4
dw Function4ead
@@ -2142,7 +2106,7 @@
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], STANDING
- ld hl, OBJECT_12
+ ld hl, OBJECT_STEP_FRAME
add hl, bc
ld a, [hl]
ld [hl], 2
@@ -2150,9 +2114,6 @@
add hl, bc
ld [hl], 2
call IncrementObjectStructField28
- ; fallthrough
-; 4ea4
-
Function4ea4: ; 4ea4
ld hl, OBJECT_STEP_DURATION
add hl, bc
@@ -2159,9 +2120,6 @@
dec [hl]
ret nz
call IncrementObjectStructField28
- ; fallthrough
-; 4ead
-
Function4ead: ; 4ead
ld hl, OBJECT_29
add hl, bc
@@ -2173,31 +2131,28 @@
add hl, bc
ld [hl], $2
call IncrementObjectStructField28
- ; fallthrough
-; 4ec0
-
Function4ec0: ; 4ec0
ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 1
+ ld [hl], STEP_TYPE_STANDING
ret
; 4ecd
Function4ecd: ; 4ecd
- call Function46d7
+ call AddStepVector
ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
push bc
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld d, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld e, [hl]
ld hl, OBJECT_MAP_OBJECT_INDEX
@@ -2213,9 +2168,9 @@
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], STANDING
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 1
+ ld [hl], STEP_TYPE_STANDING
ret
; 4f04
@@ -2255,7 +2210,8 @@
; 4f33
Function4f33: ; 4f33
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4f3a
dw Function4f43
; 4f3a
@@ -2266,16 +2222,13 @@
add hl, bc
ld [hl], a
call IncrementObjectStructField28
- ; fallthrough
-; 4f43
-
Function4f43: ; 4f43
ld hl, OBJECT_29
add hl, bc
ld d, [hl]
- ld a, [wd14f]
+ ld a, [wPlayerStepVectorY]
sub d
- ld [wd14f], a
+ ld [wPlayerStepVectorY], a
ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
@@ -2286,9 +2239,9 @@
add hl, bc
ld [hl], a
ld d, a
- ld a, [wd14f]
+ ld a, [wPlayerStepVectorY]
add d
- ld [wd14f], a
+ ld [wPlayerStepVectorY], a
ret
.ok
@@ -2308,11 +2261,12 @@
; 4f77
Function4f77: ; 4f77
- call JumptoObjectStructField28 ; ????
+ call Object28AnonymousJumptable ; ????
; 4f7a
Function4f7a: ; 4f7a
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4f83
dw Function4f83
dw Function4f83
@@ -2319,18 +2273,19 @@
; 4f83
Function4f83: ; 4f83
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4f8a
dw Function4f99
; 4f8a
Function4f8a: ; 4f8a
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], $10
+ ld [hl], PERSON_ACTION_10
ld hl, OBJECT_STEP_DURATION
add hl, bc
- ld [hl], $10
+ ld [hl], 16
call IncrementObjectStructField28
; 4f99
@@ -2342,12 +2297,12 @@
ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], $60
- ld hl, OBJECT_12
+ ld hl, OBJECT_STEP_FRAME
add hl, bc
ld [hl], 0
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 1
+ ld [hl], STEP_TYPE_STANDING
ret
; 4fb2
@@ -2404,7 +2359,7 @@
; 5000
Function5000: ; unscripted?
-; copy [wc3de] to [wc2df]
+; copy [wc2de] to [wc2df]
ld a, [wc2de]
ld hl, wc2df
ld [hl], a
@@ -2598,79 +2553,80 @@
ret
; 5529
-Function5529: ; 5529
+SpawnShadow: ; 5529
push bc
- ld de, .data_5535
- call Function55b9
- call Function55ac
+ ld de, .ShadowObject
+ call CopyTempObjectData
+ call InitTempObject
pop bc
ret
-.data_5535
- db $00, $05, $1b
+.ShadowObject
+ ; vtile, palette, movement
+ db $00, PAL_OW_SILVER, SPRITEMOVEDATA_SHADOW
; 5538
-Function5538: ; 5538
+SpawnStrengthBoulderDust: ; 5538
push bc
- ld de, .data_5544
- call Function55b9
- call Function55ac
+ ld de, .BoulderDustObject
+ call CopyTempObjectData
+ call InitTempObject
pop bc
ret
-.data_5544
- db $00, $05, $22
+.BoulderDustObject
+ db $00, PAL_OW_SILVER, SPRITEMOVEDATA_BOULDERDUST
; 5547
-Function5547: ; 5547
+SpawnEmote: ; 5547
push bc
- ld de, .data_5553
- call Function55b9
- call Function55ac
+ ld de, .EmoteObject
+ call CopyTempObjectData
+ call InitTempObject
pop bc
ret
-.data_5553
- db $00, $05, $1c
+.EmoteObject
+ db $00, PAL_OW_SILVER, SPRITEMOVEDATA_EMOTE
; 5556
-Function5556: ; 5556
+ShakeGrass: ; 5556
push bc
ld de, .data_5562
- call Function55b9
- call Function55ac
+ call CopyTempObjectData
+ call InitTempObject
pop bc
ret
.data_5562
- db $00, $06, $23
+ db $00, PAL_OW_TREE, SPRITEMOVEDATA_GRASS
; 5565
-Function5565: ; 5565
+ShakeScreen: ; 5565
push bc
push af
- ld de, .data_5576
- call Function55b9
+ ld de, .ScreenShakeObject
+ call CopyTempObjectData
pop af
- ld [wc2f5], a
- call Function55ac
+ ld [wTempObjectCopyRange], a
+ call InitTempObject
pop bc
ret
-.data_5576
- db $00, $05, $1d
+.ScreenShakeObject
+ db $00, PAL_OW_SILVER, SPRITEMOVEDATA_SCREENSHAKE
; 5579
-Function5579: ; 5579
+DespawnEmote: ; 5579
push bc
ld a, [hMapObjectIndexBuffer]
ld c, a
- call Function5582
+ call .DeleteEmote
pop bc
ret
; 5582
-Function5582: ; 5582
+.DeleteEmote: ; 5582
ld de, ObjectStructs
ld a, NUM_OBJECT_STRUCTS
.loop
@@ -2677,7 +2633,7 @@
push af
ld hl, OBJECT_FLAGS1
add hl, de
- bit 7, [hl]
+ bit EMOTE_OBJECT, [hl]
jr z, .next
ld hl, OBJECT_SPRITE
add hl, de
@@ -2701,20 +2657,21 @@
ret
; 55ac
-Function55ac: ; 55ac
+InitTempObject: ; 55ac
call FindFirstEmptyObjectStruct
ret nc
ld d, h
ld e, l
- callba Function8286
+ callba CopyTempObjectToObjectStruct
ret
; 55b9
-Function55b9: ; 55b9
-; load into wc2f0:
-; -1, -1, [de], [de + 1], [de + 2], [hMapObjectIndexBuffer], [MapX], [MapY], -1
- ld hl, wc2f0
+CopyTempObjectData: ; 55b9
+; load into wTempObjectCopy:
+; -1, -1, [de], [de + 1], [de + 2], [hMapObjectIndexBuffer], [NextMapX], [NextMapY], -1
+; This spawns the object at the same place as whichever object is loaded into bc.
+ ld hl, wTempObjectCopyMapObjectIndex
ld [hl], -1
inc hl
ld [hl], -1
@@ -2733,10 +2690,10 @@
ld [hli], a
push hl
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld d, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld e, [hl]
pop hl
@@ -2753,6 +2710,7 @@
ld a, [VramState]
bit 0, a
ret z
+
ld bc, ObjectStructs
xor a
.loop
@@ -2773,28 +2731,30 @@
ret
; 5602
-Function5602: ; 5602
- call Function5645
- ld a, 0
- call Function5629
- ld a, [wd459]
+Function5602: ; 5602, called at battle start
+ call Function5645 ; clear sprites
+ ld a, PLAYER
+ call Function5629 ; respawn player
+
+ ld a, [wBattleScriptFlags]
bit 7, a
jr z, .ok
+
ld a, [hLastTalked]
and a
jr z, .ok
- call Function5629
+ call Function5629 ; respawn opponent
.ok
- call RefreshMapAppearDisappear
+ call _UpdateSprites
ret
; 561d
Function561d: ; 561d
- call Function5645
- ld a, 0
- call Function5629
- call RefreshMapAppearDisappear
+ call Function5645 ; clear sprites
+ ld a, PLAYER
+ call Function5629 ; respawn player
+ call _UpdateSprites
ret
; 5629
@@ -2825,7 +2785,7 @@
ld bc, ObjectStructs
.loop
ld [hMapObjectIndexBuffer], a
- call Function5680
+ call SetFacing_Standing
ld hl, OBJECT_STRUCT_LENGTH
add hl, bc
ld b, h
@@ -2841,9 +2801,9 @@
push bc
call Function56cd
pop bc
- jr c, Function5680
+ jr c, SetFacing_Standing
call Function56a3
- jr c, Function5680
+ jr c, SetFacing_Standing
call Function5688
callba Function4440
xor a
@@ -2852,13 +2812,13 @@
Function5673: ; 5673
call Function56a3
- jr c, Function5680
- callba Function4440
+ jr c, SetFacing_Standing
+ callba Function4440 ; no need to farcall
xor a
ret
; 5680
-Function5680: ; 5680
+SetFacing_Standing: ; 5680
ld hl, OBJECT_FACING_STEP
add hl, bc
ld [hl], STANDING
@@ -2868,26 +2828,26 @@
Function5688: ; 5688
push bc
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld d, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld e, [hl]
- call Function2a3c
+ call GetCoordTile
pop bc
- ld hl, OBJECT_STANDING_TILE
+ ld hl, OBJECT_NEXT_TILE
add hl, bc
ld [hl], a
- callba Function463f
+ callba Function463f ; no need to farcall
ret
; 56a3
Function56a3: ; 56a3
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld d, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld e, [hl]
inc d
@@ -3043,11 +3003,11 @@
Function5771: ; 5771
xor a
- ld [wd14e], a
- ld [wd14f], a
- ld [wd150], a
+ ld [wPlayerStepVectorX], a
+ ld [wPlayerStepVectorY], a
+ ld [wPlayerStepFlags], a
ld a, -1
- ld [wd151], a
+ ld [wPlayerStepDirection], a
ret
; 5781
@@ -3078,11 +3038,11 @@
ld [wc2df], a
xor a
ld [wd04e], a
- ld [PlayerObject12], a
+ ld [PlayerObjectStepFrame], a
call Function57bc
callba CheckWarpCollision
call c, SpawnInFacingDown
- call Function57ca
+ call SpawnInCustomFacing
ret
; 57bc
@@ -3093,12 +3053,12 @@
ret
.ok
- ld a, 0
+ ld a, PERSON_ACTION_00
ld [PlayerAction], a
ret
; 57ca
-Function57ca: ; 57ca
+SpawnInCustomFacing: ; 57ca
ld hl, wPlayerSpriteSetupFlags
bit 5, [hl]
ret z
@@ -3107,24 +3067,22 @@
rept 2
add a
endr
- jr Function57db
+ jr ContinueSpawnFacing
; 57d9
SpawnInFacingDown: ; 57d9
ld a, 0
- ; fallthrough
-; 57db
-
-Function57db: ; 57db
+ContinueSpawnFacing: ; 57db
ld bc, PlayerStruct
call SetSpriteDirection
ret
; 57e2
-Function57e2: ; 57e2
+SetPlayerPalette: ; 57e2
ld a, d
and %10000000
ret z
+
ld bc, 0 ; debug?
ld hl, OBJECT_FACING
add hl, bc
@@ -3131,6 +3089,7 @@
ld a, [hl]
or d
ld [hl], a
+
ld a, d
swap a
and %00000111
@@ -3186,9 +3145,9 @@
ld hl, OBJECT_MOVEMENTTYPE
add hl, bc
ld [hl], SPRITEMOVEDATA_FOLLOWING
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 0
+ ld [hl], STEP_TYPE_00
ld a, [hObjectStructIndexBuffer]
ld [wObjectFollow_Follower], a
ret
@@ -3326,9 +3285,9 @@
add hl, bc
ld [hl], a
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 0
+ ld [hl], STEP_TYPE_00
ret
; 5903
@@ -3345,9 +3304,9 @@
add hl, bc
ld [hl], a
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], 0
+ ld [hl], STEP_TYPE_00
ret
.standing_movefns
@@ -3357,7 +3316,7 @@
db SPRITEMOVEDATA_STANDING_RIGHT
; 5920
-RefreshMapAppearDisappear:: ; 5920
+_UpdateSprites:: ; 5920
ld a, [VramState]
bit 0, a
ret z
@@ -3367,19 +3326,19 @@
push af
ld a, 1
ld [hOAMUpdate], a
- call Function5991
- call Function593a
+ call InitSprites
+ call .fill
pop af
ld [hOAMUpdate], a
ret
; 593a
-Function593a: ; 593a
+.fill: ; 593a
ld a, [VramState]
bit 1, a
- ld b, $a0
+ ld b, SpritesEnd % $100
jr z, .ok
- ld b, $70
+ ld b, 28 * 4
.ok
ld a, [hUsedSpriteIndex]
@@ -3386,10 +3345,10 @@
cp b
ret nc
ld l, a
- ld h, $c4
- ld de, OBJECT_FLAGS1
+ ld h, Sprites / $100
+ ld de, 4
ld a, b
- ld c, $a0
+ ld c, SCREEN_HEIGHT_PX + 16
.loop
ld [hl], c
add hl, de
@@ -3444,26 +3403,29 @@
ret
; 5991
-Function5991: ; 5991
- call Function59a4
- ld c, $30
- call Function59f3
- ld c, $20
- call Function59f3
- ld c, $10
- call Function59f3
+InitSprites: ; 5991
+PRIORITY_LOW EQU $10
+PRIORITY_NORM EQU $20
+PRIORITY_HIGH EQU $30
+ call .DeterminePriorities
+ ld c, PRIORITY_HIGH
+ call .InitSpritesByPriority
+ ld c, PRIORITY_NORM
+ call .InitSpritesByPriority
+ ld c, PRIORITY_LOW
+ call .InitSpritesByPriority
ret
; 59a4
-Function59a4: ; 59a4
+.DeterminePriorities: ; 59a4
xor a
- ld hl, wMovementPointer
- ld bc, 13
+ ld hl, wc2eb
+ ld bc, NUM_OBJECT_STRUCTS
call ByteFill
ld d, 0
ld bc, ObjectStructs
- ld hl, wMovementPointer
+ ld hl, wc2eb
.loop
push hl
call GetObjectSprite
@@ -3472,19 +3434,19 @@
ld hl, OBJECT_FACING_STEP
add hl, bc
ld a, [hl]
- cp -1
+ cp STANDING
jr z, .skip
; Define the sprite priority.
- ld e, $10
+ ld e, PRIORITY_LOW
ld hl, OBJECT_FLAGS2
add hl, bc
bit 0, [hl]
jr nz, .add
- ld e, $20
+ ld e, PRIORITY_NORM
bit 1, [hl]
jr z, .add
- ld e, $30
+ ld e, PRIORITY_HIGH
jr .add
.skip
@@ -3513,15 +3475,15 @@
ret
; 59f3
-Function59f3: ; 59f3
+.InitSpritesByPriority: ; 59f3
ld hl, wMovementPointer
-.next
+.next_sprite
ld a, [hli]
ld d, a
and $f0
ret z
cp c
- jr nz, .next
+ jr nz, .next_sprite
push bc
push hl
@@ -3528,13 +3490,13 @@
ld a, d
and $f
call .GetObjectStructPointer
- call .asm_5a0d
+ call .InitSprite
pop hl
pop bc
- jr .next
+ jr .next_sprite
; 5a0d
-.asm_5a0d: ; 5a0d
+.InitSprite: ; 5a0d
ld hl, OBJECT_SPRITE_TILE
add hl, bc
ld a, [hl]
@@ -3608,7 +3570,7 @@
ld hl, OBJECT_FACING_STEP
add hl, bc
ld a, [hl]
- cp -1
+ cp STANDING
jp z, .done
cp NUM_FACINGS
jp nc, .done
--- a/engine/map_setup.asm
+++ b/engine/map_setup.asm
@@ -249,10 +249,10 @@
dba PlayMapMusic ; 03
dba RestartMapMusic ; 04
dba FadeToMapMusic ; 05
- dba FadeOutMapAndMusic ; 06
+ dba RotatePalettesRightMapAndMusic ; 06
dba EnterMapMusic ; 07
dba ForceMapMusic ; 08
- dba FadeInMusic ; 09
+ dba RotatePalettesLeftMusic ; 09
dba LoadBlockData ; 0a
dba LoadNeighboringBlockData ; 0b
dba SaveScreen ; 0c
@@ -311,10 +311,10 @@
; 154d7
LoadObjectsRunCallback_02: ; 154d7
- ld a, $2
+ ld a, 2
call RunMapCallback
callba LoadObjectMasks
- callba Function8177
+ callba InitializeVisibleSprites
ret
; 154ea (5:54ea)
@@ -417,7 +417,7 @@
callba _UpdateTimePals
ret
-FadeOutMapAndMusic: ; 15574
+RotatePalettesRightMapAndMusic: ; 15574
ld e, 0
ld a, [MusicFadeIDLo]
ld d, 0
@@ -424,7 +424,7 @@
ld a, [MusicFadeIDHi]
ld a, $4
ld [MusicFade], a
- call FadeToWhite
+ call RotateThreePalettesRight
ret
; 15587
--- a/engine/mart.asm
+++ b/engine/mart.asm
@@ -29,7 +29,7 @@
ld a, 0
ld [EngineBuffer1], a
xor a
- ld [MovementAnimation], a
+ ld [EngineBuffer5], a
call StandardMart
ret
; 15a6e
@@ -129,7 +129,7 @@
ld bc, 16
call ByteFill
xor a
- ld [MovementAnimation], a
+ ld [EngineBuffer5], a
ld [wBargainShopFlags], a
ld [FacingDirection], a
ret
@@ -157,10 +157,10 @@
StandardMart: ; 15b47
.loop
- ld a, [MovementAnimation]
+ ld a, [EngineBuffer5]
ld hl, .MartFunctions
rst JumpTable
- ld [MovementAnimation], a
+ ld [EngineBuffer5], a
cp $ff
jr nz, .loop
ret
@@ -377,7 +377,7 @@
.loop
call BuyMenuLoop ; menu loop
jr nc, .loop
- call Function2b3c
+ call ReturnToCallingMenu
ret
; 15c7d
@@ -470,7 +470,7 @@
BuyMenuLoop: ; 15cef
- callba Function24ae8
+ callba PlaceMoneyTopRightOW
call UpdateSprites
ld hl, MenuDataHeader_Buy
call CopyMenuDataHeader
@@ -477,9 +477,9 @@
ld a, [wd045]
ld [wMenuCursorBuffer], a
ld a, [wd045 + 1]
- ld [wd0e4], a
+ ld [wMenuScrollPosition], a
call HandleScrollingMenu
- ld a, [wd0e4]
+ ld a, [wMenuScrollPosition]
ld [wd045 + 1], a
ld a, [MenuSelection2]
ld [wd045], a
@@ -658,7 +658,7 @@
dbw 0, CurMart
dba PlaceMenuItemName
dba .PrintBCDPrices
- dba Function244c3
+ dba UpdateItemDescription
; 15e30
.PrintBCDPrices: ; 15e30
@@ -875,7 +875,7 @@
.okay_to_sell
ld hl, Text_Mart_SellHowMany
call PrintText
- callba Function24af8
+ callba PlaceMoneyTopRightMenu
callba Function24fe1
call ExitMenu
jr c, .declined
@@ -899,7 +899,7 @@
ld hl, Text_Mart_SoldForAmount
call PrintTextBoxText
call PlayTransactionSound
- callba Function24af0
+ callba PlaceMoneyBottomLeftOW
call JoyWaitAorB
.declined
--- a/engine/menu.asm
+++ b/engine/menu.asm
@@ -4,7 +4,7 @@
rst FarCall
call Function24085
call UpdateSprites
- call Function321c
+ call ApplyTilemap
call Function2408f
ret
; 24022
@@ -16,7 +16,7 @@
call Function24085
callba MobileTextBorder
call UpdateSprites
- call Function321c
+ call ApplyTilemap
call Function2408f
ret
; 2403c
@@ -28,7 +28,7 @@
call Function24085
callba MobileTextBorder
call UpdateSprites
- call Function321c
+ call ApplyTilemap
call Function2411a
ld hl, wcfa5
set 7, [hl]
--- /dev/null
+++ b/engine/money.asm
@@ -1,0 +1,209 @@
+GiveMoney:: ; 15fd7
+ ld a, $3
+ call AddMoney
+ ld bc, MaxMoney
+ ld a, $3
+ call CompareMoney
+ jr z, .asm_15ff5
+ jr c, .asm_15ff5
+ ld hl, MaxMoney
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ scf
+ ret
+
+.asm_15ff5
+ and a
+ ret
+; 15ff7
+
+MaxMoney: ; 15ff7
+ dt 999999
+; 15ffa
+
+
+TakeMoney:: ; 15ffa
+ ld a, 3
+ call SubtractMoney
+ jr nc, .asm_16009
+ xor a
+ ld [de], a
+ inc de
+ ld [de], a
+ inc de
+ ld [de], a
+ scf
+ ret
+
+.asm_16009
+ and a
+ ret
+; 1600b
+
+CompareMoney:: ; 1600b
+ ld a, $3
+CompareFunds: ; 1600d
+ push hl
+ push de
+ push bc
+ ld h, b
+ ld l, c
+ ld c, $0
+ ld b, a
+.loop1
+ dec a
+ jr z, .done
+ inc de
+ inc hl
+ jr .loop1
+
+.done
+ and a
+.loop2
+ ld a, [de]
+ sbc [hl]
+ jr z, .okay
+ inc c
+
+.okay
+ dec de
+ dec hl
+ dec b
+ jr nz, .loop2
+ jr c, .set_carry
+ ld a, c
+ and a
+ jr .skip_carry
+
+.set_carry
+ ld a, $1
+ and a
+ scf
+
+.skip_carry
+ pop bc
+ pop de
+ pop hl
+ ret
+; 16035
+
+SubtractMoney: ; 16035
+ ld a, 3
+SubtractFunds: ; 16037
+ push hl
+ push de
+ push bc
+ ld h, b
+ ld l, c
+ ld b, a
+ ld c, 0
+.loop
+ dec a
+ jr z, .done
+ inc de
+ inc hl
+ jr .loop
+
+.done
+ and a
+.loop2
+ ld a, [de]
+ sbc [hl]
+ ld [de], a
+ dec de
+ dec hl
+ dec b
+ jr nz, .loop2
+ pop bc
+ pop de
+ pop hl
+ ret
+; 16053
+
+AddMoney: ; 16053
+ ld a, $3
+AddFunds: ; 16055
+ push hl
+ push de
+ push bc
+ ld h, b
+ ld l, c
+ ld b, a
+.loop1
+ dec a
+ jr z, .done
+ inc de
+ inc hl
+ jr .loop1
+
+.done
+ and a
+.loop2
+ ld a, [de]
+ adc [hl]
+ ld [de], a
+ dec de
+ dec hl
+ dec b
+ jr nz, .loop2
+ pop bc
+ pop de
+ pop hl
+ ret
+; 1606f
+
+GiveCoins:: ; 1606f
+ ld a, 2
+ ld de, Coins
+ call AddFunds
+ ld a, 2
+ ld bc, .maxcoins
+ call CompareFunds
+ jr c, .not_maxed
+ ld hl, .maxcoins
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ scf
+ ret
+
+.not_maxed
+ and a
+ ret
+; 1608d
+
+.maxcoins: ; 1608d
+ bigdw 9999
+; 1608f
+
+
+TakeCoins:: ; 1608f
+ ld a, 2
+ ld de, Coins
+ call SubtractFunds
+ jr nc, .asm_1609f
+ xor a
+ ld [de], a
+ inc de
+ ld [de], a
+ scf
+ ret
+
+.asm_1609f
+ and a
+ ret
+; 160a1
+
+CheckCoins:: ; 160a1
+ ld a, $2
+ ld de, Coins
+ jp CompareFunds
+; 160a9
--- a/engine/more_phone_scripts.asm
+++ b/engine/more_phone_scripts.asm
@@ -56,105 +56,105 @@
UnknownScript_0xa007c:
checkcode VAR_CALLERID
- if_equal $5, UnknownScript_0xa00c2
- if_equal $b, UnknownScript_0xa00c8
- if_equal $d, UnknownScript_0xa00ce
- if_equal $f, UnknownScript_0xa00d4
- if_equal $10, UnknownScript_0xa00da
- if_equal $11, UnknownScript_0xa00e0
- if_equal $13, UnknownScript_0xa00e6
- if_equal $14, UnknownScript_0xa00ec
- if_equal $17, UnknownScript_0xa00f2
- if_equal $18, UnknownScript_0xa00f8
- if_equal $1b, UnknownScript_0xa00fe
- if_equal $1c, UnknownScript_0xa0104
- if_equal $1d, UnknownScript_0xa010a
- if_equal $1e, UnknownScript_0xa0110
- if_equal $20, UnknownScript_0xa0116
- if_equal $21, UnknownScript_0xa011c
- if_equal $23, UnknownScript_0xa0122
+ if_equal PHONE_SCHOOLBOY_JACK, .Jack
+ if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+ if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+ if_equal PHONE_YOUNGSTER_JOEY, .Joey
+ if_equal PHONE_BUG_CATCHER_WADE, .Wade
+ if_equal PHONE_FISHER_RALPH, .Ralph
+ if_equal PHONE_HIKER_ANTHONY, .Anthony
+ if_equal PHONE_CAMPER_TODD, .Todd
+ if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+ if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+ if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+ if_equal PHONE_POKEFANM_DEREK, .Derek
+ if_equal PHONE_FISHER_TULLY, .Tully
+ if_equal PHONE_POKEMANIAC_BRENT, .Brent
+ if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+ if_equal PHONE_FISHER_WILTON, .Wilton
+ if_equal PHONE_HIKER_PARRY, .Parry
-UnknownScript_0xa00c2:
+.Jack:
farwritetext UnknownText_0x1740c0
keeptextopen
end
-UnknownScript_0xa00c8:
+.Gaven:
farwritetext UnknownText_0x174a24
keeptextopen
end
-UnknownScript_0xa00ce:
+.Jose:
farwritetext UnknownText_0x174f2f
keeptextopen
end
-UnknownScript_0xa00d4:
+.Joey:
farwritetext UnknownText_0x175530
keeptextopen
end
-UnknownScript_0xa00da:
+.Wade:
farwritetext UnknownText_0x1757d4
keeptextopen
end
-UnknownScript_0xa00e0:
+.Ralph:
farwritetext UnknownText_0x175bc4
keeptextopen
end
-UnknownScript_0xa00e6:
+.Anthony:
farwritetext UnknownText_0x176a2f
keeptextopen
end
-UnknownScript_0xa00ec:
+.Todd:
farwritetext UnknownText_0x176e5d
keeptextopen
end
-UnknownScript_0xa00f2:
+.Arnie:
farwritetext UnknownText_0x649dc
keeptextopen
end
-UnknownScript_0xa00f8:
+.Alan:
farwritetext UnknownText_0x64cbd
keeptextopen
end
-UnknownScript_0xa00fe:
+.Chad:
farwritetext UnknownText_0x65271
keeptextopen
end
-UnknownScript_0xa0104:
+.Derek:
farwritetext UnknownText_0x65ab2
keeptextopen
end
-UnknownScript_0xa010a:
+.Tully:
farwritetext UnknownText_0x65de4
keeptextopen
end
-UnknownScript_0xa0110:
+.Brent:
farwritetext UnknownText_0x660be
keeptextopen
end
-UnknownScript_0xa0116:
+.Vance:
farwritetext UnknownText_0x66980
keeptextopen
end
-UnknownScript_0xa011c:
+.Wilton:
farwritetext UnknownText_0x66afc
keeptextopen
end
-UnknownScript_0xa0122:
+.Parry:
farwritetext UnknownText_0x66f9f
keeptextopen
end
@@ -161,51 +161,51 @@
UnknownScript_0xa0128:
checkcode VAR_CALLERID
- if_equal $6, UnknownScript_0xa014a
- if_equal $c, UnknownScript_0xa0150
- if_equal $e, UnknownScript_0xa0156
- if_equal $12, UnknownScript_0xa015c
- if_equal $15, UnknownScript_0xa0162
- if_equal $1a, UnknownScript_0xa0168
- if_equal $1f, UnknownScript_0xa016e
- if_equal $24, UnknownScript_0xa0174
+ if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+ if_equal PHONE_COOLTRAINERF_BETH, .Beth
+ if_equal PHONE_COOLTRAINERF_REENA, .Reena
+ if_equal PHONE_PICNICKER_LIZ, .Liz
+ if_equal PHONE_PICNICKER_GINA, .Gina
+ if_equal PHONE_LASS_DANA, .Dana
+ if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+ if_equal PHONE_PICNICKER_ERIN, .Erin
-UnknownScript_0xa014a:
+.Beverly:
farwritetext UnknownText_0x174688
keeptextopen
end
-UnknownScript_0xa0150:
+.Beth:
farwritetext UnknownText_0x174c7f
keeptextopen
end
-UnknownScript_0xa0156:
+.Reena:
farwritetext UnknownText_0x1752f5
keeptextopen
end
-UnknownScript_0xa015c:
+.Liz:
farwritetext UnknownText_0x175fda
keeptextopen
end
-UnknownScript_0xa0162:
+.Gina:
farwritetext UnknownText_0x1771fd
keeptextopen
end
-UnknownScript_0xa0168:
+.Dana:
farwritetext UnknownText_0x64f74
keeptextopen
end
-UnknownScript_0xa016e:
+.Tiffany:
farwritetext UnknownText_0x665ad
keeptextopen
end
-UnknownScript_0xa0174:
+.Erin:
farwritetext UnknownText_0x6717a
keeptextopen
end
@@ -212,105 +212,105 @@
UnknownScript_0xa017a:
checkcode VAR_CALLERID
- if_equal $5, UnknownScript_0xa01c0
- if_equal $b, UnknownScript_0xa01c6
- if_equal $d, UnknownScript_0xa01cc
- if_equal $f, UnknownScript_0xa01d2
- if_equal $10, UnknownScript_0xa01d8
- if_equal $11, UnknownScript_0xa01de
- if_equal $13, UnknownScript_0xa01e4
- if_equal $14, UnknownScript_0xa01ea
- if_equal $17, UnknownScript_0xa01f0
- if_equal $18, UnknownScript_0xa01f6
- if_equal $1b, UnknownScript_0xa01fc
- if_equal $1c, UnknownScript_0xa0202
- if_equal $1d, UnknownScript_0xa0208
- if_equal $1e, UnknownScript_0xa020e
- if_equal $20, UnknownScript_0xa0214
- if_equal $21, UnknownScript_0xa021a
- if_equal $23, UnknownScript_0xa0220
+ if_equal PHONE_SCHOOLBOY_JACK, .Jack
+ if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+ if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+ if_equal PHONE_YOUNGSTER_JOEY, .Joey
+ if_equal PHONE_BUG_CATCHER_WADE, .Wade
+ if_equal PHONE_FISHER_RALPH, .Ralph
+ if_equal PHONE_HIKER_ANTHONY, .Anthony
+ if_equal PHONE_CAMPER_TODD, .Todd
+ if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+ if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+ if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+ if_equal PHONE_POKEFANM_DEREK, .Derek
+ if_equal PHONE_FISHER_TULLY, .Tully
+ if_equal PHONE_POKEMANIAC_BRENT, .Brent
+ if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+ if_equal PHONE_FISHER_WILTON, .Wilton
+ if_equal PHONE_HIKER_PARRY, .Parry
-UnknownScript_0xa01c0:
+.Jack:
farwritetext UnknownText_0x174106
keeptextopen
end
-UnknownScript_0xa01c6:
+.Gaven:
farwritetext UnknownText_0x174a80
keeptextopen
end
-UnknownScript_0xa01cc:
+.Jose:
farwritetext UnknownText_0x174f90
keeptextopen
end
-UnknownScript_0xa01d2:
+.Joey:
farwritetext UnknownText_0x175591
keeptextopen
end
-UnknownScript_0xa01d8:
+.Wade:
farwritetext UnknownText_0x175869
keeptextopen
end
-UnknownScript_0xa01de:
+.Ralph:
farwritetext UnknownText_0x175c24
keeptextopen
end
-UnknownScript_0xa01e4:
+.Anthony:
farwritetext UnknownText_0x176aef
keeptextopen
end
-UnknownScript_0xa01ea:
+.Todd:
farwritetext UnknownText_0x176e9c
keeptextopen
end
-UnknownScript_0xa01f0:
+.Arnie:
farwritetext UnknownText_0x64a13
keeptextopen
end
-UnknownScript_0xa01f6:
+.Alan:
farwritetext UnknownText_0x64cf3
keeptextopen
end
-UnknownScript_0xa01fc:
+.Chad:
farwritetext UnknownText_0x65318
keeptextopen
end
-UnknownScript_0xa0202:
+.Derek:
farwritetext UnknownText_0x65b29
keeptextopen
end
-UnknownScript_0xa0208:
+.Tully:
farwritetext UnknownText_0x65e42
keeptextopen
end
-UnknownScript_0xa020e:
+.Brent:
farwritetext UnknownText_0x6613c
keeptextopen
end
-UnknownScript_0xa0214:
+.Vance:
farwritetext UnknownText_0x669b2
keeptextopen
end
-UnknownScript_0xa021a:
+.Wilton:
farwritetext UnknownText_0x66b3e
keeptextopen
end
-UnknownScript_0xa0220:
+.Parry:
farwritetext UnknownText_0x66fc0
keeptextopen
end
@@ -317,51 +317,51 @@
UnknownScript_0xa0226:
checkcode VAR_CALLERID
- if_equal $6, UnknownScript_0xa0248
- if_equal $c, UnknownScript_0xa024e
- if_equal $e, UnknownScript_0xa0254
- if_equal $12, UnknownScript_0xa025a
- if_equal $15, UnknownScript_0xa0260
- if_equal $1a, UnknownScript_0xa0266
- if_equal $1f, UnknownScript_0xa026c
- if_equal $24, UnknownScript_0xa0272
+ if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+ if_equal PHONE_COOLTRAINERF_BETH, .Beth
+ if_equal PHONE_COOLTRAINERF_REENA, .Reena
+ if_equal PHONE_PICNICKER_LIZ, .Liz
+ if_equal PHONE_PICNICKER_GINA, .Gina
+ if_equal PHONE_LASS_DANA, .Dana
+ if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+ if_equal PHONE_PICNICKER_ERIN, .Erin
-UnknownScript_0xa0248:
+.Beverly:
farwritetext UnknownText_0x1746c3
keeptextopen
end
-UnknownScript_0xa024e:
+.Beth:
farwritetext UnknownText_0x174cf6
keeptextopen
end
-UnknownScript_0xa0254:
+.Reena:
farwritetext UnknownText_0x17536b
keeptextopen
end
-UnknownScript_0xa025a:
+.Liz:
farwritetext UnknownText_0x17602d
keeptextopen
end
-UnknownScript_0xa0260:
+.Gina:
farwritetext UnknownText_0x177237
keeptextopen
end
-UnknownScript_0xa0266:
+.Dana:
farwritetext UnknownText_0x64fb2
keeptextopen
end
-UnknownScript_0xa026c:
+.Tiffany:
farwritetext UnknownText_0x66605
keeptextopen
end
-UnknownScript_0xa0272:
+.Erin:
farwritetext UnknownText_0x671a4
keeptextopen
end
@@ -368,105 +368,105 @@
UnknownScript_0xa0278:
checkcode VAR_CALLERID
- if_equal $5, UnknownScript_0xa02be
- if_equal $b, UnknownScript_0xa02c4
- if_equal $d, UnknownScript_0xa02ca
- if_equal $f, UnknownScript_0xa02d0
- if_equal $10, UnknownScript_0xa02d6
- if_equal $11, UnknownScript_0xa02dc
- if_equal $13, UnknownScript_0xa02e2
- if_equal $14, UnknownScript_0xa02e8
- if_equal $17, UnknownScript_0xa02ee
- if_equal $18, UnknownScript_0xa02f4
- if_equal $1b, UnknownScript_0xa02fa
- if_equal $1c, UnknownScript_0xa0300
- if_equal $1d, UnknownScript_0xa0306
- if_equal $1e, UnknownScript_0xa030c
- if_equal $20, UnknownScript_0xa0312
- if_equal $21, UnknownScript_0xa0318
- if_equal $23, UnknownScript_0xa031e
+ if_equal PHONE_SCHOOLBOY_JACK, .Jack
+ if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+ if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+ if_equal PHONE_YOUNGSTER_JOEY, .Joey
+ if_equal PHONE_BUG_CATCHER_WADE, .Wade
+ if_equal PHONE_FISHER_RALPH, .Ralph
+ if_equal PHONE_HIKER_ANTHONY, .Anthony
+ if_equal PHONE_CAMPER_TODD, .Todd
+ if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+ if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+ if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+ if_equal PHONE_POKEFANM_DEREK, .Derek
+ if_equal PHONE_FISHER_TULLY, .Tully
+ if_equal PHONE_POKEMANIAC_BRENT, .Brent
+ if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+ if_equal PHONE_FISHER_WILTON, .Wilton
+ if_equal PHONE_HIKER_PARRY, .Parry
-UnknownScript_0xa02be:
+.Jack:
farwritetext UnknownText_0x174165
keeptextopen
end
-UnknownScript_0xa02c4:
+.Gaven:
farwritetext UnknownText_0x174b2d
keeptextopen
end
-UnknownScript_0xa02ca:
+.Jose:
farwritetext UnknownText_0x174ffd
keeptextopen
end
-UnknownScript_0xa02d0:
+.Joey:
farwritetext UnknownText_0x175611
keeptextopen
end
-UnknownScript_0xa02d6:
+.Wade:
farwritetext UnknownText_0x1758e4
keeptextopen
end
-UnknownScript_0xa02dc:
+.Ralph:
farwritetext UnknownText_0x175c9f
keeptextopen
end
-UnknownScript_0xa02e2:
+.Anthony:
farwritetext UnknownText_0x176b45
keeptextopen
end
-UnknownScript_0xa02e8:
+.Todd:
farwritetext UnknownText_0x176eee
keeptextopen
end
-UnknownScript_0xa02ee:
+.Arnie:
farwritetext UnknownText_0x64a71
keeptextopen
end
-UnknownScript_0xa02f4:
+.Alan:
farwritetext UnknownText_0x64d4f
keeptextopen
end
-UnknownScript_0xa02fa:
+.Chad:
farwritetext UnknownText_0x65399
keeptextopen
end
-UnknownScript_0xa0300:
+.Derek:
farwritetext UnknownText_0x65bc8
keeptextopen
end
-UnknownScript_0xa0306:
+.Tully:
farwritetext UnknownText_0x65eac
keeptextopen
end
-UnknownScript_0xa030c:
+.Brent:
farwritetext UnknownText_0x6618c
keeptextopen
end
-UnknownScript_0xa0312:
+.Vance:
farwritetext UnknownText_0x669ed
keeptextopen
end
-UnknownScript_0xa0318:
+.Wilton:
farwritetext UnknownText_0x66b8f
keeptextopen
end
-UnknownScript_0xa031e:
+.Parry:
farwritetext UnknownText_0x67001
keeptextopen
end
@@ -473,51 +473,51 @@
UnknownScript_0xa0324:
checkcode VAR_CALLERID
- if_equal $6, UnknownScript_0xa0346
- if_equal $c, UnknownScript_0xa034c
- if_equal $e, UnknownScript_0xa0352
- if_equal $12, UnknownScript_0xa0358
- if_equal $15, UnknownScript_0xa035e
- if_equal $1a, UnknownScript_0xa0364
- if_equal $1f, UnknownScript_0xa036a
- if_equal $24, UnknownScript_0xa0370
+ if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+ if_equal PHONE_COOLTRAINERF_BETH, .Beth
+ if_equal PHONE_COOLTRAINERF_REENA, .Reena
+ if_equal PHONE_PICNICKER_LIZ, .Liz
+ if_equal PHONE_PICNICKER_GINA, .Gina
+ if_equal PHONE_LASS_DANA, .Dana
+ if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+ if_equal PHONE_PICNICKER_ERIN, .Erin
-UnknownScript_0xa0346:
+.Beverly:
farwritetext UnknownText_0x174734
keeptextopen
end
-UnknownScript_0xa034c:
+.Beth:
farwritetext UnknownText_0x174d86
keeptextopen
end
-UnknownScript_0xa0352:
+.Reena:
farwritetext UnknownText_0x1753c5
keeptextopen
end
-UnknownScript_0xa0358:
+.Liz:
farwritetext UnknownText_0x176095
keeptextopen
end
-UnknownScript_0xa035e:
+.Gina:
farwritetext UnknownText_0x177297
keeptextopen
end
-UnknownScript_0xa0364:
+.Dana:
farwritetext UnknownText_0x6501c
keeptextopen
end
-UnknownScript_0xa036a:
+.Tiffany:
farwritetext UnknownText_0x66688
keeptextopen
end
-UnknownScript_0xa0370:
+.Erin:
farwritetext UnknownText_0x671eb
keeptextopen
end
@@ -532,105 +532,105 @@
UnknownScript_0xa0386:
checkcode VAR_CALLERID
- if_equal $5, UnknownScript_0xa03cc
- if_equal $7, UnknownScript_0xa03d2
- if_equal $b, UnknownScript_0xa03d8
- if_equal $d, UnknownScript_0xa03de
- if_equal $f, UnknownScript_0xa03e4
- if_equal $10, UnknownScript_0xa03ea
- if_equal $11, UnknownScript_0xa03f0
- if_equal $13, UnknownScript_0xa03f6
- if_equal $14, UnknownScript_0xa03fc
- if_equal $17, UnknownScript_0xa0402
- if_equal $18, UnknownScript_0xa0408
- if_equal $1b, UnknownScript_0xa040e
- if_equal $1d, UnknownScript_0xa0414
- if_equal $1e, UnknownScript_0xa041a
- if_equal $20, UnknownScript_0xa0420
- if_equal $21, UnknownScript_0xa0426
- if_equal $23, UnknownScript_0xa042c
+ if_equal PHONE_SCHOOLBOY_JACK, .Jack
+ if_equal PHONE_SAILOR_HUEY, .Huey
+ if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+ if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+ if_equal PHONE_YOUNGSTER_JOEY, .Joey
+ if_equal PHONE_BUG_CATCHER_WADE, .Wade
+ if_equal PHONE_FISHER_RALPH, .Ralph
+ if_equal PHONE_HIKER_ANTHONY, .Anthony
+ if_equal PHONE_CAMPER_TODD, .Todd
+ if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+ if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+ if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+ if_equal PHONE_FISHER_TULLY, .Tully
+ if_equal PHONE_POKEMANIAC_BRENT, .Brent
+ if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+ if_equal PHONE_FISHER_WILTON, .Wilton
+ if_equal PHONE_HIKER_PARRY, .Parry
-UnknownScript_0xa03cc:
+.Jack:
farwritetext UnknownText_0x1741e1
keeptextopen
end
-UnknownScript_0xa03d2:
+.Huey:
farwritetext UnknownText_0x1748ea
keeptextopen
end
-UnknownScript_0xa03d8:
+.Gaven:
farwritetext UnknownText_0x174bc5
keeptextopen
end
-UnknownScript_0xa03de:
+.Jose:
farwritetext UnknownText_0x17507d
keeptextopen
end
-UnknownScript_0xa03e4:
+.Joey:
farwritetext UnknownText_0x175693
keeptextopen
end
-UnknownScript_0xa03ea:
+.Wade:
farwritetext UnknownText_0x175976
keeptextopen
end
-UnknownScript_0xa03f0:
+.Ralph:
farwritetext UnknownText_0x175d40
keeptextopen
end
-UnknownScript_0xa03f6:
+.Anthony:
farwritetext UnknownText_0x176bee
keeptextopen
end
-UnknownScript_0xa03fc:
+.Todd:
farwritetext UnknownText_0x176f60
keeptextopen
end
-UnknownScript_0xa0402:
+.Arnie:
farwritetext UnknownText_0x64ada
keeptextopen
end
-UnknownScript_0xa0408:
+.Alan:
farwritetext UnknownText_0x64da4
keeptextopen
end
-UnknownScript_0xa040e:
+.Chad:
farwritetext UnknownText_0x65419
keeptextopen
end
-UnknownScript_0xa0414:
+.Tully:
farwritetext UnknownText_0x65f17
keeptextopen
end
-UnknownScript_0xa041a:
+.Brent:
farwritetext UnknownText_0x66214
keeptextopen
end
-UnknownScript_0xa0420:
+.Vance:
farwritetext UnknownText_0x66a3a
keeptextopen
end
-UnknownScript_0xa0426:
+.Wilton:
farwritetext UnknownText_0x66bf3
keeptextopen
end
-UnknownScript_0xa042c:
+.Parry:
farwritetext UnknownText_0x67096
keeptextopen
end
@@ -637,45 +637,45 @@
UnknownScript_0xa0432:
checkcode VAR_CALLERID
- if_equal $c, UnknownScript_0xa0450
- if_equal $e, UnknownScript_0xa0456
- if_equal $12, UnknownScript_0xa045c
- if_equal $15, UnknownScript_0xa0462
- if_equal $1a, UnknownScript_0xa0468
- if_equal $1f, UnknownScript_0xa046e
- if_equal $24, UnknownScript_0xa0474
+ if_equal PHONE_COOLTRAINERF_BETH, .Beth
+ if_equal PHONE_COOLTRAINERF_REENA, .Reena
+ if_equal PHONE_PICNICKER_LIZ, .Liz
+ if_equal PHONE_PICNICKER_GINA, .Gina
+ if_equal PHONE_LASS_DANA, .Dana
+ if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+ if_equal PHONE_PICNICKER_ERIN, .Erin
-UnknownScript_0xa0450:
+.Beth:
farwritetext UnknownText_0x174e4e
keeptextopen
end
-UnknownScript_0xa0456:
+.Reena:
farwritetext UnknownText_0x17543a
keeptextopen
end
-UnknownScript_0xa045c:
+.Liz:
farwritetext UnknownText_0x17610a
keeptextopen
end
-UnknownScript_0xa0462:
+.Gina:
farwritetext UnknownText_0x1772e2
keeptextopen
end
-UnknownScript_0xa0468:
+.Dana:
farwritetext UnknownText_0x65091
keeptextopen
end
-UnknownScript_0xa046e:
+.Tiffany:
farwritetext UnknownText_0x66730
keeptextopen
end
-UnknownScript_0xa0474:
+.Erin:
farwritetext UnknownText_0x6722e
keeptextopen
end
@@ -690,147 +690,147 @@
UnknownScript_0xa0484:
checkcode VAR_CALLERID
- if_equal $5, UnknownScript_0xa04d6
- if_equal $7, UnknownScript_0xa04db
- if_equal $b, UnknownScript_0xa04e0
- if_equal $d, UnknownScript_0xa04e5
- if_equal $f, UnknownScript_0xa04ea
- if_equal $10, UnknownScript_0xa04ef
- if_equal $11, UnknownScript_0xa04f4
- if_equal $13, UnknownScript_0xa04f9
- if_equal $14, UnknownScript_0xa04fe
- if_equal $16, UnknownScript_0xa0503
- if_equal $17, UnknownScript_0xa0508
- if_equal $18, UnknownScript_0xa050d
- if_equal $1b, UnknownScript_0xa0512
- if_equal $1c, UnknownScript_0xa0517
- if_equal $1d, UnknownScript_0xa051c
- if_equal $1e, UnknownScript_0xa0521
- if_equal $20, UnknownScript_0xa0526
- if_equal $21, UnknownScript_0xa052b
- if_equal $22, UnknownScript_0xa0530
- if_equal $23, UnknownScript_0xa0535
+ if_equal PHONE_SCHOOLBOY_JACK, .Jack
+ if_equal PHONE_SAILOR_HUEY, .Huey
+ if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+ if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+ if_equal PHONE_YOUNGSTER_JOEY, .Joey
+ if_equal PHONE_BUG_CATCHER_WADE, .Wade
+ if_equal PHONE_FISHER_RALPH, .Ralph
+ if_equal PHONE_HIKER_ANTHONY, .Anthony
+ if_equal PHONE_CAMPER_TODD, .Todd
+ if_equal PHONE_JUGGLER_IRWIN, .Irwin
+ if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+ if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+ if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+ if_equal PHONE_POKEFANM_DEREK, .Derek
+ if_equal PHONE_FISHER_TULLY, .Tully
+ if_equal PHONE_POKEMANIAC_BRENT, .Brent
+ if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+ if_equal PHONE_FISHER_WILTON, .Wilton
+ if_equal PHONE_BLACKBELT_KENJI, .Kenji
+ if_equal PHONE_HIKER_PARRY, .Parry
-UnknownScript_0xa04d6:
+.Jack:
farwritetext UnknownText_0x174251
end
-UnknownScript_0xa04db:
+.Huey:
farwritetext UnknownText_0x174962
end
-UnknownScript_0xa04e0:
+.Gaven:
farwritetext UnknownText_0x174c0e
end
-UnknownScript_0xa04e5:
+.Jose:
farwritetext UnknownText_0x175106
end
-UnknownScript_0xa04ea:
+.Joey:
farwritetext UnknownText_0x17570a
end
-UnknownScript_0xa04ef:
+.Wade:
farwritetext UnknownText_0x1759e7
end
-UnknownScript_0xa04f4:
+.Ralph:
farwritetext UnknownText_0x175db7
end
-UnknownScript_0xa04f9:
+.Anthony:
farwritetext UnknownText_0x176c47
end
-UnknownScript_0xa04fe:
+.Todd:
farwritetext UnknownText_0x176fdb
end
-UnknownScript_0xa0503:
+.Irwin:
farwritetext UnknownText_0x64000
end
-UnknownScript_0xa0508:
+.Arnie:
farwritetext UnknownText_0x64b48
end
-UnknownScript_0xa050d:
+.Alan:
farwritetext UnknownText_0x64e1f
end
-UnknownScript_0xa0512:
+.Chad:
farwritetext UnknownText_0x65471
end
-UnknownScript_0xa0517:
+.Derek:
farwritetext UnknownText_0x65c4e
end
-UnknownScript_0xa051c:
+.Tully:
farwritetext UnknownText_0x65f6e
end
-UnknownScript_0xa0521:
+.Brent:
farwritetext UnknownText_0x662a9
end
-UnknownScript_0xa0526:
+.Vance:
farwritetext UnknownText_0x66a93
end
-UnknownScript_0xa052b:
+.Wilton:
farwritetext UnknownText_0x66c58
end
-UnknownScript_0xa0530:
+.Kenji:
farwritetext UnknownText_0x66dab
end
-UnknownScript_0xa0535:
+.Parry:
farwritetext UnknownText_0x670eb
end
UnknownScript_0xa053a:
checkcode VAR_CALLERID
- if_equal $6, UnknownScript_0xa055c
- if_equal $c, UnknownScript_0xa0561
- if_equal $e, UnknownScript_0xa0566
- if_equal $12, UnknownScript_0xa056b
- if_equal $15, UnknownScript_0xa0570
- if_equal $1a, UnknownScript_0xa0575
- if_equal $1f, UnknownScript_0xa057a
- if_equal $24, UnknownScript_0xa057f
+ if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+ if_equal PHONE_COOLTRAINERF_BETH, .Beth
+ if_equal PHONE_COOLTRAINERF_REENA, .Reena
+ if_equal PHONE_PICNICKER_LIZ, .Liz
+ if_equal PHONE_PICNICKER_GINA, .Gina
+ if_equal PHONE_LASS_DANA, .Dana
+ if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+ if_equal PHONE_PICNICKER_ERIN, .Erin
-UnknownScript_0xa055c:
+.Beverly:
farwritetext UnknownText_0x1747ac
end
-UnknownScript_0xa0561:
+.Beth:
farwritetext UnknownText_0x174eb7
end
-UnknownScript_0xa0566:
+.Reena:
farwritetext UnknownText_0x175488
end
-UnknownScript_0xa056b:
+.Liz:
farwritetext UnknownText_0x17620a
end
-UnknownScript_0xa0570:
+.Gina:
farwritetext UnknownText_0x177361
end
-UnknownScript_0xa0575:
+.Dana:
farwritetext UnknownText_0x650e2
end
-UnknownScript_0xa057a:
+.Tiffany:
farwritetext UnknownText_0x667f7
end
-UnknownScript_0xa057f:
+.Erin:
farwritetext UnknownText_0x67281
end
@@ -856,15 +856,15 @@
UnknownScript_0xa05a4:
checkcode VAR_CALLERID
- if_equal $10, UnknownScript_0xa05ae
- if_equal $1c, UnknownScript_0xa05b6
+ if_equal PHONE_BUG_CATCHER_WADE, .Wade
+ if_equal PHONE_POKEFANM_DEREK, .Derek
-UnknownScript_0xa05ae:
+.Wade:
farwritetext UnknownText_0x1759f7
keeptextopen
jump UnknownScript_0xa0484
-UnknownScript_0xa05b6:
+.Derek:
farwritetext UnknownText_0x65c66
keeptextopen
jump UnknownScript_0xa0484
@@ -896,57 +896,57 @@
UnknownScript_0xa05e6:
checkcode VAR_CALLERID
- if_equal $d, UnknownScript_0xa0600
- if_equal $10, UnknownScript_0xa0605
- if_equal $18, UnknownScript_0xa060a
- if_equal $1c, UnknownScript_0xa060f
- if_equal $1d, UnknownScript_0xa0614
- if_equal $21, UnknownScript_0xa0619
+ if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+ if_equal PHONE_BUG_CATCHER_WADE, .Wade
+ if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+ if_equal PHONE_POKEFANM_DEREK, .Derek
+ if_equal PHONE_FISHER_TULLY, .Tully
+ if_equal PHONE_FISHER_WILTON, .Wilton
-UnknownScript_0xa0600:
+.Jose:
farwritetext UnknownText_0x175116
end
-UnknownScript_0xa0605:
+.Wade:
farwritetext UnknownText_0x175a60
end
-UnknownScript_0xa060a:
+.Alan:
farwritetext UnknownText_0x64e2f
end
-UnknownScript_0xa060f:
+.Derek:
farwritetext UnknownText_0x65cf9
end
-UnknownScript_0xa0614:
+.Tully:
farwritetext UnknownText_0x65f88
end
-UnknownScript_0xa0619:
+.Wilton:
farwritetext UnknownText_0x66c6b
end
UnknownScript_0xa061e:
checkcode VAR_CALLERID
- if_equal $6, UnknownScript_0xa0630
- if_equal $15, UnknownScript_0xa0635
- if_equal $1a, UnknownScript_0xa063a
- if_equal $1f, UnknownScript_0xa063f
+ if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+ if_equal PHONE_PICNICKER_GINA, .Gina
+ if_equal PHONE_LASS_DANA, .Dana
+ if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
-UnknownScript_0xa0630:
+.Beverly:
farwritetext UnknownText_0x1747cc
end
-UnknownScript_0xa0635:
+.Gina:
farwritetext UnknownText_0x1773e7
end
-UnknownScript_0xa063a:
+.Dana:
farwritetext UnknownText_0x650ec
end
-UnknownScript_0xa063f:
+.Tiffany:
farwritetext UnknownText_0x66801
end
--- a/engine/movement.asm
+++ b/engine/movement.asm
@@ -59,7 +59,7 @@
dw Movement_39 ; 39
dw Movement_remove_fixed_facing ; 3a
dw Movement_fix_facing ; 3b
- dw Movement_3c ; 3c
+ dw Movement_show_person ; 3c
dw Movement_hide_person ; 3d
dw Movement_step_sleep_1 ; 3e
dw Movement_step_sleep_2 ; 3f
@@ -78,8 +78,8 @@
dw Movement_teleport_from ; 4c
dw Movement_teleport_to ; 4d
dw Movement_skyfall ; 4e
- dw Movement_step_wait5 ; 4f
- dw Movement_50 ; 50
+ dw Movement_step_dig ; 4f
+ dw Movement_step_bump ; 50
dw Movement_fish_got_bite ; 51
dw Movement_fish_cast_rod ; 52
dw Movement_hide_emote ; 53
@@ -87,56 +87,56 @@
dw Movement_step_shake ; 55
dw Movement_56 ; 56
dw Movement_rock_smash ; 57
- dw Movement_58 ; 58
+ dw Movement_return_dig ; 58
dw Movement_59 ; 59
; 5129
Movement_teleport_from: ; 5129
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $c
+ ld [hl], STEP_TYPE_TELEPORT_FROM
ret
; 5130
Movement_teleport_to: ; 5130
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $d
+ ld [hl], STEP_TYPE_TELEPORT_TO
ret
; 5137
Movement_skyfall: ; 5137
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $e
+ ld [hl], STEP_TYPE_SKYFALL
ret
; 513e
Movement_59: ; 513e
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $19
+ ld [hl], STEP_TYPE_19
ret
; 5145
-Movement_step_wait5: ; 5145
+Movement_step_dig: ; 5145
call GetSpriteDirection
rlca
rlca
- ld hl, OBJECT_12
+ ld hl, OBJECT_STEP_FRAME
add hl, bc
ld [hl], a
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], $4
+ ld [hl], PERSON_ACTION_SPIN
call GetMovementByte
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $3
+ ld [hl], STEP_TYPE_03
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], STANDING
@@ -143,11 +143,11 @@
ret
; 516a
-Movement_58: ; 516a
+Movement_return_dig: ; 516a
call GetSpriteDirection
rlca
rlca
- ld hl, OBJECT_12
+ ld hl, OBJECT_STEP_FRAME
add hl, bc
ld [hl], a
call GetMovementByte
@@ -157,19 +157,19 @@
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], STANDING
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $12
+ ld [hl], STEP_TYPE_RETURN_DIG
ret
; 5189
Movement_fish_got_bite: ; 5189
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], $6
- ld hl, OBJECT_09
+ ld [hl], PERSON_ACTION_FISHING
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $10
+ ld [hl], STEP_TYPE_GOT_BITE
ret
; 5196
@@ -178,22 +178,22 @@
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], $1
- ld hl, OBJECT_09
+ ld [hl], PERSON_ACTION_STAND
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $11
+ ld [hl], STEP_TYPE_ROCK_SMASH
ret
; 51ab
Movement_fish_cast_rod: ; 51ab
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], $6
- ld hl, OBJECT_09
+ ld [hl], PERSON_ACTION_FISHING
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $1
+ ld [hl], STEP_TYPE_STANDING
ret
; 51b8
@@ -217,9 +217,9 @@
ld hl, VramState
res 7, [hl]
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $1
+ ld [hl], STEP_TYPE_STANDING
ret
; 51db
@@ -238,9 +238,9 @@
add hl, bc
ld [hl], a
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $3
+ ld [hl], STEP_TYPE_03
ld hl, VramState
res 7, [hl]
@@ -262,13 +262,13 @@
; 5210
Movement_4b: ; 5210
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], $1
+ ld [hl], PERSON_ACTION_STAND
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $4
+ ld [hl], STEP_TYPE_04
ld hl, VramState
res 7, [hl]
@@ -276,36 +276,36 @@
; 5222
Movement_step_sleep_1: ; 5222
- ld a, $1
- jr Function5247
+ ld a, 1
+ jr Movement_step_sleep_common
Movement_step_sleep_2: ; 5226
- ld a, $2
- jr Function5247
+ ld a, 2
+ jr Movement_step_sleep_common
Movement_step_sleep_3: ; 522a
- ld a, $3
- jr Function5247
+ ld a, 3
+ jr Movement_step_sleep_common
Movement_step_sleep_4: ; 522e
- ld a, $4
- jr Function5247
+ ld a, 4
+ jr Movement_step_sleep_common
Movement_step_sleep_5: ; 5232
- ld a, $5
- jr Function5247
+ ld a, 5
+ jr Movement_step_sleep_common
Movement_step_sleep_6: ; 5236
- ld a, $6
- jr Function5247
+ ld a, 6
+ jr Movement_step_sleep_common
Movement_step_sleep_7: ; 523a
- ld a, $7
- jr Function5247
+ ld a, 7
+ jr Movement_step_sleep_common
Movement_step_sleep_8: ; 523e
- ld a, $8
- jr Function5247
+ ld a, 8
+ jr Movement_step_sleep_common
Movement_step_sleep: ; 5242
; parameters:
@@ -312,20 +312,20 @@
; duration (DecimalParam)
call GetMovementByte
- jr Function5247
+ jr Movement_step_sleep_common
-Function5247: ; 5247
+Movement_step_sleep_common: ; 5247
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $3
+ ld [hl], STEP_TYPE_03
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], $1
+ ld [hl], PERSON_ACTION_STAND
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
@@ -333,17 +333,20 @@
ret
; 525f
-Movement_50: ; 525f
- ld a, $1
+Movement_step_bump: ; 525f
+ ld a, 1
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
- ld hl, OBJECT_09
+
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $b
- ld hl, OBJECT_11
+ ld [hl], STEP_TYPE_BUMP
+
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], $3
+ ld [hl], PERSON_ACTION_BUMP
+
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], STANDING
@@ -351,16 +354,19 @@
; 5279
Movement_56: ; 5279
- ld a, $18
+ ld a, 24
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
- ld hl, OBJECT_09
+
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $3
- ld hl, OBJECT_11
+ ld [hl], STEP_TYPE_03
+
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], $b
+ ld [hl], PERSON_ACTION_0B
+
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], STANDING
@@ -370,7 +376,7 @@
Movement_38: ; 5293
ld hl, OBJECT_FLAGS1
add hl, bc
- res 3, [hl]
+ res SLIDING, [hl]
jp ContinueReadingMovement
; 529c
@@ -377,7 +383,7 @@
Movement_39: ; 529c
ld hl, OBJECT_FLAGS1
add hl, bc
- set 3, [hl]
+ set SLIDING, [hl]
jp ContinueReadingMovement
; 52a5
@@ -384,7 +390,7 @@
Movement_remove_fixed_facing: ; 52a5
ld hl, OBJECT_FLAGS1
add hl, bc
- res 2, [hl]
+ res FIXED_FACING, [hl]
jp ContinueReadingMovement
; 52ae
@@ -391,14 +397,14 @@
Movement_fix_facing: ; 52ae
ld hl, OBJECT_FLAGS1
add hl, bc
- set 2, [hl]
+ set FIXED_FACING, [hl]
jp ContinueReadingMovement
; 52b7
-Movement_3c: ; 52b7
+Movement_show_person: ; 52b7
ld hl, OBJECT_FLAGS1
add hl, bc
- res 0, [hl]
+ res INVISIBLE, [hl]
jp ContinueReadingMovement
; 52c0
@@ -405,17 +411,17 @@
Movement_hide_person: ; 52c0
ld hl, OBJECT_FLAGS1
add hl, bc
- set 0, [hl]
+ set INVISIBLE, [hl]
jp ContinueReadingMovement
; 52c9
Movement_hide_emote: ; 52c9
- call Function5579
+ call DespawnEmote
jp ContinueReadingMovement
; 52cf
Movement_show_emote: ; 52cf
- call Function5547
+ call SpawnEmote
jp ContinueReadingMovement
; 52d5
@@ -424,7 +430,7 @@
; displacement (DecimalParam)
call GetMovementByte
- call Function5565
+ call ShakeScreen
jp ContinueReadingMovement
; 52de
@@ -448,9 +454,11 @@
ld hl, OBJECT_FACING
add hl, bc
ld [hl], a
- ld hl, OBJECT_11
+
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], $1
+ ld [hl], PERSON_ACTION_STAND
+
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], STANDING
@@ -721,12 +729,14 @@
ld hl, OBJECT_29
add hl, bc
ld [hl], a
- ld hl, OBJECT_11
+
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], $2
- ld hl, OBJECT_09
+ ld [hl], PERSON_ACTION_STEP
+
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $a
+ ld [hl], STEP_TYPE_HALF_STEP
ret
; 5412
@@ -733,36 +743,37 @@
NormalStep: ; 5412
call Function4690
call Function463f
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], $2
- ld hl, OBJECT_STANDING_TILE
+ ld [hl], PERSON_ACTION_STEP
+
+ ld hl, OBJECT_NEXT_TILE
add hl, bc
ld a, [hl]
call CheckSuperTallGrassTile
- jr z, .asm_542d
+ jr z, .shake_grass
- call Function1875
- jr c, .asm_5430
+ call CheckGrassTile
+ jr c, .skip_grass
-.asm_542d
- call Function5556
+.shake_grass
+ call ShakeGrass
-.asm_5430
- ld hl, wd4cf
+.skip_grass
+ ld hl, wCenteredObject
ld a, [hMapObjectIndexBuffer]
cp [hl]
- jr z, .asm_543f
+ jr z, .player
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $2
+ ld [hl], STEP_TYPE_NPC_WALK
ret
-.asm_543f
- ld hl, OBJECT_09
+.player
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $6
+ ld [hl], STEP_TYPE_PLAYER_WALK
ret
; 5446
@@ -769,22 +780,25 @@
TurningStep: ; 5446
call Function4690
call Function463f
- ld hl, OBJECT_11
+
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], $4
- ld hl, wd4cf
+ ld [hl], PERSON_ACTION_SPIN
+
+ ld hl, wCenteredObject
ld a, [hMapObjectIndexBuffer]
cp [hl]
- jr z, .asm_5461
- ld hl, OBJECT_09
+ jr z, .player
+
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $2
+ ld [hl], STEP_TYPE_NPC_WALK
ret
-.asm_5461
- ld hl, OBJECT_09
+.player
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $6
+ ld [hl], STEP_TYPE_PLAYER_WALK
ret
; 5468
@@ -792,22 +806,25 @@
SlideStep: ; 5468
call Function4690
call Function463f
- ld hl, OBJECT_11
+
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], $1
- ld hl, wd4cf
+ ld [hl], PERSON_ACTION_STAND
+
+ ld hl, wCenteredObject
ld a, [hMapObjectIndexBuffer]
cp [hl]
- jr z, .asm_5483
- ld hl, OBJECT_09
+ jr z, .player
+
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $2
+ ld [hl], STEP_TYPE_NPC_WALK
ret
-.asm_5483
- ld hl, OBJECT_09
+.player
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $6
+ ld [hl], STEP_TYPE_PLAYER_WALK
ret
; 548a
@@ -817,25 +834,30 @@
ld hl, OBJECT_31
add hl, bc
ld [hl], $0
+
ld hl, OBJECT_FLAGS2
add hl, bc
res 3, [hl]
- ld hl, OBJECT_11
+
+ ld hl, OBJECT_ACTION
add hl, bc
- ld [hl], $2
- call Function5529
- ld hl, wd4cf
+ ld [hl], PERSON_ACTION_STEP
+
+ call SpawnShadow
+
+ ld hl, wCenteredObject
ld a, [hMapObjectIndexBuffer]
cp [hl]
- jr z, .asm_54b1
- ld hl, OBJECT_09
+ jr z, .player
+
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $8
+ ld [hl], STEP_TYPE_NPC_JUMP
ret
-.asm_54b1
- ld hl, OBJECT_09
+.player
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
- ld [hl], $9
+ ld [hl], STEP_TYPE_PLAYER_JUMP
ret
; 54b8
--- /dev/null
+++ b/engine/mysterygift.asm
@@ -1,0 +1,1702 @@
+DoMysteryGift: ; 1048ba (41:48ba)
+ call ClearTileMap
+ call ClearSprites
+ call WaitBGMap
+ call Function105153
+ hlcoord 3, 8
+ ld de, .String_PressAToLink_BToCancel
+ call PlaceString
+ call WaitBGMap
+ callba Function2c642
+ call Function1050fb
+ ld a, $2
+ ld [wca01], a
+ ld a, $14
+ ld [wca02], a
+ ld a, [rIE]
+ push af
+ call Function104a95
+ ld d, a
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ push de
+ call ClearTileMap
+ call EnableLCD
+ call WaitBGMap
+ ld b, SCGB_08
+ call GetSGBLayout
+ call SetPalettes
+ pop de
+ hlcoord 2, 8
+ ld a, d
+ ld de, .Text_LinkCanceled ; Link has been canceled
+ cp $10
+ jp z, .LinkCanceled
+ cp $6c
+ jp nz, .CommunicationError
+ ld a, [wc900]
+ cp $3
+ jr z, .skip_checks
+ call .CheckAlreadyGotFiveGiftsToday
+ ld hl, .Text_MaxFiveGifts ; Only 5 gifts a day
+ jp nc, .PrintTextAndExit
+ call .CheckAlreadyGotAGiftFromThatPerson
+ ld hl, .Text_MaxOneGiftPerPerson ; Only one gift a day per person
+ jp c, .PrintTextAndExit
+.skip_checks
+ ld a, [wc962]
+ and a
+ jp nz, .GiftWaiting
+ ld a, [wc912]
+ and a
+ jp nz, .FriendNotReady
+ ld a, [wc900]
+ cp $3
+ jr z, .skip_append_save
+ call .AddMysteryGiftPartnerID
+ ld a, [wc900]
+ cp $4
+ jr z, .skip_append_save
+ call .SaveMysteryGiftTrainerName
+ callba RestoreMobileEventIndex
+ callba MobileFn_1060a9
+ callba BackupMobileEventIndex
+.skip_append_save
+ ld a, [wc90f]
+ and a
+ jr z, .item
+ ld a, [wc911]
+ ld c, a
+ callba MysteryGiftGetDecoration
+ push bc
+ call Function105069
+ pop bc
+ jr nz, .item
+ callab GetDecorationName_c
+ ld h, d
+ ld l, e
+ ld de, StringBuffer1
+ ld bc, ITEM_NAME_LENGTH
+ call CopyBytes
+ ld hl, .Text_SentToHome ; sent decoration to home
+ jr .PrintTextAndExit
+
+.item
+ call GetMysteryGiftBank
+ ld a, [wc910]
+ ld c, a
+ callba MysteryGiftGetItemHeldEffect
+ ld a, c
+ ld [sBackupMysteryGiftItem], a
+ ld [wNamedObjectIndexBuffer], a
+ call CloseSRAM
+ call GetItemName
+ ld hl, .Text_Sent ; sent item
+ jr .PrintTextAndExit
+
+.LinkCanceled: ; 1049af (41:49af)
+ ld hl, .Text_LinkCanceled ; Link has been canceled
+ jr .PrintTextAndExit
+
+.CommunicationError: ; 1049b4 (41:49b4)
+ ld hl, .Text_CommunicationError ; Communication error
+ call PrintText
+ jp DoMysteryGift
+
+.GiftWaiting: ; 1049bd (41:49bd)
+ ld hl, .Text_ReceiveGiftAtCounter ; receive gift at counter
+ jr .PrintTextAndExit
+
+.FriendNotReady: ; 1049c2 (41:49c2)
+ ld hl, .Text_FriendNotReady ; friend not ready
+
+.PrintTextAndExit: ; 1049c5 (41:49c5)
+ call PrintText
+ ld a, $e3
+ ld [rLCDC], a
+ ret
+; 1049cd (41:49cd)
+
+.String_PressAToLink_BToCancel: ; 1049cd
+ db "Press A to"
+ next "link IR-Device"
+ next "Press B to"
+ next "cancel it."
+ db "@"
+; 1049fd
+
+.Text_LinkCanceled: ; 1049fd
+ text_jump UnknownText_0x1c0436
+ db "@"
+; 104a02
+
+.Text_CommunicationError: ; 104a02
+ text_jump UnknownText_0x1c0454
+ db "@"
+; 104a07
+
+.Text_ReceiveGiftAtCounter: ; 104a07
+ text_jump UnknownText_0x1c046a
+ db "@"
+; 104a0c
+
+.Text_FriendNotReady: ; 104a0c
+ text_jump UnknownText_0x1c048e
+ db "@"
+; 104a11
+
+.Text_MaxFiveGifts: ; 104a11
+ text_jump UnknownText_0x1c04a7
+ db "@"
+; 104a16
+
+.Text_MaxOneGiftPerPerson: ; 104a16
+ text_jump UnknownText_0x1c04c6
+ db "@"
+; 104a1b
+
+.Text_Sent: ; 104a1b
+ text_jump UnknownText_0x1c04e9
+ db "@"
+; 104a20
+
+.Text_SentToHome: ; 104a20
+ text_jump UnknownText_0x1c04fa
+ db "@"
+; 104a25
+
+.CheckAlreadyGotFiveGiftsToday: ; 104a25 (41:4a25)
+ call GetMysteryGiftBank
+ ld a, [sNumDailyMysteryGiftPartnerIDs]
+ cp $5
+ jp CloseSRAM
+
+.CheckAlreadyGotAGiftFromThatPerson: ; 104a30 (41:4a30)
+ call GetMysteryGiftBank
+ ld a, [wMysteryGiftPartnerID]
+ ld b, a
+ ld a, [wMysteryGiftPartnerID + 1]
+ ld c, a
+ ld a, [sNumDailyMysteryGiftPartnerIDs]
+ ld d, a
+ ld hl, sDailyMysteryGiftPartnerIDs
+.loop
+ ld a, d
+ and a
+ jr z, .No
+ ld a, [hli]
+ cp b
+ jr nz, .skip
+ ld a, [hl]
+ cp c
+ jr z, .Yes
+.skip
+ inc hl
+ dec d
+ jr .loop
+.Yes
+ scf
+.No
+ jp CloseSRAM
+
+.AddMysteryGiftPartnerID: ; 104a56 (41:4a56)
+ call GetMysteryGiftBank
+ ld hl, sNumDailyMysteryGiftPartnerIDs
+ ld a, [hl]
+ inc [hl]
+ ld hl, sDailyMysteryGiftPartnerIDs ; inc hl
+ ld e, a
+ ld d, $0
+rept 2
+ add hl, de
+endr
+ ld a, [wMysteryGiftPartnerID]
+ ld [hli], a
+ ld a, [wMysteryGiftPartnerID + 1]
+ ld [hl], a
+ jp CloseSRAM
+
+.SaveMysteryGiftTrainerName: ; 104a71 (41:4a71)
+ call GetMysteryGiftBank
+ ld a, $1
+ ld [sMysteryGiftTrainerHouseFlag], a
+ ld hl, wMysteryGiftPartnerName
+ ld de, sMysteryGiftPartnerName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld a, $1
+ ld [de], a
+ inc de
+ ld hl, wMysteryGiftTrainerData
+ ld bc, (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 2
+ call CopyBytes
+ jp CloseSRAM
+
+Function104a95: ; 104a95 (41:4a95)
+ di
+ callba ClearChannels
+ call Function104d5e
+.loop2
+ call Function104d96
+ call Function104ddd
+ ld a, [hPrintNum10]
+ cp $10
+ jp z, Function104bd0
+ cp $6c
+ jr nz, .loop2
+ ld a, [hPrintNum9]
+ cp $2
+ jr z, Function104b22
+ ld hl, $ffb3
+ ld b, $1
+ call Function104d56
+ jr nz, .ly_loop
+ call Function104b49
+ jp nz, Function104bd0
+ jr asm_104b0a
+.ly_loop
+ ld a, [rLY]
+ cp $90
+ jr c, .ly_loop
+ ld c, rRP % $100
+ ld a, $c0
+ ld [$ff00+c], a
+ ld b, $f0
+.loop3
+ push bc
+ call Function105038
+ ld b, $2
+ ld c, rRP % $100
+.ly_loop2
+ ld a, [$ff00+c]
+ and b
+ ld b, a
+ ld a, [rLY]
+ cp $90
+ jr nc, .ly_loop2
+.ly_loop3
+ ld a, [$ff00+c]
+ and b
+ ld b, a
+ ld a, [rLY]
+ cp $90
+ jr c, .ly_loop3
+ ld a, b
+ pop bc
+ dec b
+ jr z, .loop2
+ or a
+ jr nz, .loop2
+ ld a, [hMoneyTemp + 1]
+ bit 1, a
+ jr z, .loop3
+ ld a, $10
+ ld [hPrintNum10], a
+ jp Function104bd0
+
+Function104b04: ; 104b04 (41:4b04)
+ call Function104b40
+ jp nz, Function104bd0
+
+asm_104b0a: ; 104b0a (41:4b0a)
+ call Function104d38
+ jp nz, Function104bd0
+ call Function104b88
+ jp nz, Function104bd0
+ call Function104d43
+ jp nz, Function104bd0
+ call Function105033
+ jp Function104bd0
+
+Function104b22: ; 104b22 (41:4b22)
+ call Function104b88
+ jp nz, Function104bd0
+ call Function104d43
+ jp nz, Function104bd0
+ call Function104b40
+ jp nz, Function104bd0
+ call Function104d38
+ jp nz, Function104bd0
+ call Function10502e
+ jp Function104bd0
+
+Function104b40: ; 104b40 (41:4b40)
+ ld hl, $ffb3
+ ld b, $1
+ call Function104d56
+ ret nz
+
+Function104b49: ; 104b49 (41:4b49)
+ call Function105033
+ ld a, [hPrintNum10]
+ cp $6c
+ ret nz
+ ld a, [$ffb3]
+ cp $96
+ jp nz, Function104d32
+ ld a, $90
+ ld [$ffb3], a
+ call Function104d38
+ ret nz
+ ld hl, $ffb3
+ ld b, $1
+ call Function104d4e
+ ret nz
+ call Function10502e
+ ld a, [hPrintNum10]
+ cp $6c
+ ret nz
+ call Function104d43
+ ret nz
+ ld hl, wMysteryGiftTrainerData
+ ld a, [wca02]
+ ld b, a
+ call Function104d56
+ ret nz
+ call Function105033
+ ld a, [hPrintNum10]
+ cp $6c
+ ret
+
+Function104b88: ; 104b88 (41:4b88)
+ ld a, $96
+ ld [$ffb3], a
+ ld hl, $ffb3
+ ld b, $1
+ call Function104d4e
+ ret nz
+ call Function10502e
+ ld a, [hPrintNum10]
+ cp $6c
+ ret nz
+ call Function104d43
+ ret nz
+ ld hl, $ffb3
+ ld b, $1
+ call Function104d56
+ ret nz
+ call Function105033
+ ld a, [hPrintNum10]
+ cp $6c
+ ret nz
+ ld a, [$ffb3]
+ cp $90
+ jp nz, Function104d32
+ call Function104d38
+ ret nz
+ ld hl, OverworldMap
+ ld a, [wca02]
+ ld b, a
+ call Function104d4e
+ ret nz
+ call Function10502e
+ ld a, [hPrintNum10]
+ cp $6c
+ ret
+
+Function104bd0: ; 104bd0 (41:4bd0)
+ nop
+ ld a, [hPrintNum10]
+ cp $10
+ jr z, .asm_104c18
+ cp $6c
+ jr nz, .asm_104c18
+ ld hl, wca01
+ dec [hl]
+ jr z, .asm_104c18
+ ld hl, wMysteryGiftTrainerData
+ ld de, wc900
+ ld bc, $14
+ call CopyBytes
+ ld a, [wMysteryGiftTrainerData]
+ cp $3
+ jr nc, .asm_104c18
+ callba Function10510b
+ call Function1050fb
+ ld a, $26
+ ld [wca02], a
+ ld a, [hPrintNum9]
+ cp $2
+ jr z, .asm_104c10
+ call Function104d43
+ jr nz, Function104bd0
+ jp Function104b04
+.asm_104c10
+ call Function104d38
+ jr nz, Function104bd0
+ jp Function104b22
+.asm_104c18
+ ld a, [hPrintNum10]
+ push af
+ call Function104da0
+ xor a
+ ld [rIF], a
+ ld a, [rIE]
+ or $1
+ ld [rIE], a
+ ei
+ call DelayFrame
+ pop af
+ ret
+
+Function104c2d: ; 104c2d (41:4c2d)
+ di
+ callba ClearChannels
+ call Function104d5e
+.asm_104c37
+ call Function104d96
+ call Function104ddd
+ ld a, [hPrintNum10]
+ cp $10
+ jp z, Function104d1c
+ cp $6c
+ jr nz, .asm_104c37
+ ld a, [hPrintNum9]
+ cp $2
+ jr z, .asm_104c6c
+ call Function104c8a
+ jp nz, Function104d1c
+ call Function104d38
+ jp nz, Function104d1c
+ call Function104cd2
+ jp nz, Function104d1c
+ call Function104d43
+ jp nz, Function104d1c
+ call Function105033
+ jp Function104d1c
+.asm_104c6c
+ call Function104cd2
+ jp nz, Function104d1c
+ call Function104d43
+ jp nz, Function104d1c
+ call Function104c8a
+ jp nz, Function104d1c
+ call Function104d38
+ jp nz, Function104d1c
+ call Function10502e
+ jp Function104d1c
+
+Function104c8a: ; 104c8a (41:4c8a)
+ ld hl, $ffb3
+ ld b, $1
+ call Function104d56
+ ret nz
+ call Function105033
+ ld a, [hPrintNum10]
+ cp $6c
+ ret nz
+ ld a, [$ffb3]
+ cp $3c
+ jp nz, Function104d32
+ swap a
+ ld [$ffb3], a
+ call Function104d38
+ ret nz
+ ld hl, $ffb3
+ ld b, $1
+ call Function104d4e
+ ret nz
+ call Function10502e
+ ld a, [hPrintNum10]
+ cp $6c
+ ret nz
+ call Function104d43
+ ret nz
+ ld hl, wMysteryGiftTrainerData
+ ld a, [wca02]
+ ld b, a
+ call Function104d56
+ ret nz
+ call Function105033
+ ld a, [hPrintNum10]
+ cp $6c
+ ret
+
+Function104cd2: ; 104cd2 (41:4cd2)
+ ld a, $3c
+ ld [$ffb3], a
+ ld hl, $ffb3
+ ld b, $1
+ call Function104d4e
+ ret nz
+ call Function10502e
+ ld a, [hPrintNum10]
+ cp $6c
+ ret nz
+ call Function104d43
+ ret nz
+ ld hl, $ffb3
+ ld b, $1
+ call Function104d56
+ ret nz
+ call Function105033
+ ld a, [hPrintNum10]
+ cp $6c
+ ret nz
+ ld a, [$ffb3]
+ swap a
+ cp $3c
+ jp nz, Function104d32
+ call Function104d38
+ ret nz
+ ld hl, OverworldMap
+ ld a, [wca02]
+ ld b, a
+ call Function104d4e
+ ret nz
+ call Function10502e
+ ld a, [hPrintNum10]
+ cp $6c
+ ret
+
+Function104d1c: ; 104d1c (41:4d1c)
+ nop
+ ld a, [hPrintNum10]
+ push af
+ call Function104da0
+ xor a
+ ld [rIF], a
+ ld a, [rIE]
+ or $1
+ ld [rIE], a
+ ei
+ call DelayFrame
+ pop af
+ ret
+
+Function104d32: ; 104d32 (41:4d32)
+ ld a, $80
+ ld [hPrintNum10], a
+ and a
+ ret
+
+Function104d38: ; 104d38 (41:4d38)
+ call Function104d96
+ call Function104e46
+ ld a, [hPrintNum10]
+ cp $6c
+ ret
+
+Function104d43: ; 104d43 (41:4d43)
+ call Function104d96
+ call Function104dfe
+ ld a, [hPrintNum10]
+ cp $6c
+ ret
+
+Function104d4e: ; 104d4e (41:4d4e)
+ call Function104e93
+ ld a, [hPrintNum10]
+ cp $6c
+ ret
+
+Function104d56: ; 104d56 (41:4d56)
+ call Function104f57
+ ld a, [hPrintNum10]
+ cp $6c
+ ret
+
+Function104d5e: ; 104d5e (41:4d5e)
+ call Function104d74
+ ld a, $4
+ ld [rIE], a
+ xor a
+ ld [rIF], a
+ call Function104d96
+ xor a
+ ld b, a
+.asm_104d6d
+ inc a
+ jr nz, .asm_104d6d
+ inc b
+ jr nz, .asm_104d6d
+ ret
+
+Function104d74: ; 104d74 (41:4d74)
+ xor a
+ ld [rTAC], a
+ ld a, $fe
+ ld [rTMA], a
+ ld [rTIMA], a
+ ld a, $2
+ ld [rTAC], a
+ or $4
+ ld [rTAC], a
+ ret
+
+Function104d86: ; 104d86 (41:4d86)
+ xor a
+ ld [rTAC], a
+ ld [rTMA], a
+ ld [rTIMA], a
+ ld a, $2
+ ld [rTAC], a
+ or $4
+ ld [rTAC], a
+ ret
+
+Function104d96: ; 104d96 (41:4d96)
+ ld a, $c0
+ call Function104e8c
+ ld a, $1
+ ld [hPrintNum9], a
+ ret
+
+Function104da0: ; 104da0 (41:4da0)
+ xor a
+ call Function104e8c
+ ld a, $2
+ ld [rTAC], a
+ ret
+
+Function104da9: ; 104da9 (41:4da9)
+ inc d
+ ret z
+ xor a
+ ld [rIF], a
+ halt
+ ld a, [$ff00+c]
+ bit 1, a
+ jr z, Function104da9
+ or a
+ ret
+
+Function104db7: ; 104db7 (41:4db7)
+ inc d
+ ret z
+ xor a
+ ld [rIF], a
+ halt
+ ld a, [$ff00+c]
+ bit 1, a
+ jr nz, Function104db7
+ or a
+ ret
+
+Function104dc5: ; 104dc5 (41:4dc5)
+ ld a, $c1
+ ld [$ff00+c], a
+.asm_104dc8
+ dec d
+ ret z
+ xor a
+ ld [rIF], a
+ halt
+ jr .asm_104dc8
+
+Function104dd1: ; 104dd1 (41:4dd1)
+ ld a, $c0
+ ld [$ff00+c], a
+.asm_104dd4
+ dec d
+ ret z
+ xor a
+ ld [rIF], a
+ halt
+ jr .asm_104dd4
+
+Function104ddd: ; 104ddd (41:4ddd)
+ ld d, $0
+ ld e, d
+ ld a, $1
+ ld [hPrintNum9], a
+.asm_104de4
+ call Function105038
+ ld b, $2
+ ld c, rRP % $100
+ ld a, [hMoneyTemp + 1]
+ bit 1, a
+ jr z, .asm_104df6
+ ld a, $10
+ ld [hPrintNum10], a
+ ret
+.asm_104df6
+ bit 0, a
+ jr nz, asm_104e3a
+ ld a, [$ff00+c]
+ and b
+ jr nz, .asm_104de4
+
+Function104dfe: ; 104dfe (41:4dfe)
+ ld c, rRP % $100
+ ld d, $0
+ ld e, d
+ call Function104db7
+ jp z, Function104f42
+ ld d, e
+ call Function104da9
+ jp z, Function104f42
+ call Function104db7
+ jp z, Function104f42
+ call Function104da9
+ jp z, Function104f42
+ ld a, $6c
+ ld [hPrintNum10], a
+ ld d, $3d
+ call Function104dd1
+ ld d, $5
+ call Function104dc5
+ ld d, $15
+ call Function104dd1
+ ld d, $5
+ call Function104dc5
+ ld d, $5
+ call Function104dd1
+ ret
+
+asm_104e3a: ; 104e3a (41:4e3a)
+ call Random
+ ld e, a
+ and $f
+ ld d, a
+.asm_104e41
+ dec de
+ ld a, d
+ or e
+ jr nz, .asm_104e41
+
+Function104e46: ; 104e46 (41:4e46)
+ ld a, $2
+ ld [hPrintNum9], a
+ ld c, $56
+ ld d, $0
+ ld e, d
+ ld d, $3d
+ call Function104dd1
+ ld d, $5
+ call Function104dc5
+ ld d, $15
+ call Function104dd1
+ ld d, $5
+ call Function104dc5
+ ld d, $5
+ call Function104dd1
+ ld d, e
+ call Function104db7
+ jp z, Function104f42
+ ld d, e
+ call Function104da9
+ jp z, Function104f42
+ call Function104db7
+ jp z, Function104f42
+ call Function104da9
+ jp z, Function104f42
+ ld d, $3d
+ call Function104dd1
+ ld a, $6c
+ ld [hPrintNum10], a
+ ret
+
+Function104e8c: ; 104e8c (41:4e8c)
+ ld [rRP], a
+ ld a, $ff
+ ld [hPrintNum10], a
+ ret
+
+Function104e93: ; 104e93 (41:4e93)
+ xor a
+ ld [hDivisor], a
+ ld [hMathBuffer], a
+ push hl
+ push bc
+ ld c, $56
+ ld d, $3d
+ call Function104dd1
+ ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand)
+ ld a, $5a
+ ld [hli], a
+ ld [hl], b
+ dec hl
+ ld b, $2
+ call Function104ed6
+ pop bc
+ pop hl
+ call Function104ed6
+ ld a, [hDivisor]
+ ld [hQuotient], a
+ ld a, [hMathBuffer]
+ ld [$ffb5], a
+ push hl
+ ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand)
+ ld b, $2
+ call Function104ed6
+ ld hl, hPrintNum10
+ ld b, $1
+ call Function104faf
+ ld a, [hQuotient]
+ ld [hDivisor], a
+ ld a, [$ffb5]
+ ld [hMathBuffer], a
+ pop hl
+ ret
+
+Function104ed6: ; 104ed6 (41:4ed6)
+ ld c, $56
+ ld d, $5
+ call Function104dd1
+ ld d, $5
+ call Function104dc5
+ ld d, $15
+ call Function104dd1
+ ld a, b
+ cpl
+ ld b, a
+ ld a, $f4
+ ld [rTMA], a
+.asm_104eee
+ inc b
+ jr z, .asm_104f2e
+ ld a, $8
+ ld [$ffb6], a
+ ld a, [hli]
+ ld e, a
+ ld a, [hDivisor]
+ add e
+ ld [hDivisor], a
+ ld a, [hMathBuffer]
+ adc $0
+ ld [hMathBuffer], a
+.asm_104f02
+ xor a
+ ld [rIF], a
+ halt
+ ld a, $c1
+ ld [rRP], a
+ ld d, $1
+ ld a, e
+ rlca
+ ld e, a
+ jr nc, .asm_104f13
+ inc d
+.asm_104f13
+ ld a, [rTIMA]
+ cp $f8
+ jr c, .asm_104f13
+ ld a, $c0
+ ld [rRP], a
+ dec d
+ jr z, .asm_104f25
+ xor a
+ ld [rIF], a
+ halt
+.asm_104f25
+ ld a, [$ffb6]
+ dec a
+ jr z, .asm_104eee
+ ld [$ffb6], a
+ jr .asm_104f02
+.asm_104f2e
+ ld a, $fe
+ ld [rTMA], a
+ xor a
+ ld [rIF], a
+ halt
+ ld d, $5
+ call Function104dc5
+ ld d, $11
+ call Function104dd1
+ ret
+
+Function104f42: ; 104f42 (41:4f42)
+ ld a, [hPrintNum10]
+ or $2
+ ld [hPrintNum10], a
+ ret
+
+Function104f49: ; 104f49 (41:4f49)
+ ld a, [hPrintNum10]
+ or $1
+ ld [hPrintNum10], a
+ ret
+
+Function104f50: ; 104f50 (41:4f50)
+ ld a, [hPrintNum10]
+ or $80
+ ld [hPrintNum10], a
+ ret
+
+Function104f57: ; 104f57 (41:4f57)
+ xor a
+ ld [hDivisor], a
+ ld [hMathBuffer], a
+ push bc
+ push hl
+ ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand)
+ ld b, $2
+ call Function104faf
+ ld a, [$ffb5]
+ ld [$ffba], a
+ ld b, a
+ pop hl
+ pop af
+ cp b
+ jp c, Function104f50
+ ld a, [hQuotient]
+ cp $5a
+ jp nz, Function104f50
+ call Function104faf
+ ld a, [hDivisor]
+ ld d, a
+ ld a, [hMathBuffer]
+ ld e, a
+ push hl
+ push de
+ ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand)
+ ld b, $2
+ call Function104faf
+ pop de
+ ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand)
+ ld a, [hli]
+ xor d
+ ld b, a
+ ld a, [hl]
+ xor e
+ or b
+ call nz, Function104f49
+ push de
+ ld d, $3d
+ call Function104dd1
+ ld hl, hPrintNum10
+ ld b, $1
+ call Function104ed6
+ pop de
+ pop hl
+ ld a, d
+ ld [hDivisor], a
+ ld a, e
+ ld [hMathBuffer], a
+ ret
+
+Function104faf: ; 104faf (41:4faf)
+ ld c, rRP % $100
+ ld d, $0
+ call Function104db7
+ jp z, Function104f42
+ ld d, $0
+ call Function104da9
+ jp z, Function104f42
+ ld d, $0
+ call Function104db7
+ jp z, Function104f42
+ ld a, b
+ cpl
+ ld b, a
+ xor a
+ ld [hMoneyTemp + 2], a
+ call Function104d86
+.asm_104fd2
+ inc b
+ jr z, .asm_10501a
+ ld a, $8
+ ld [$ffb6], a
+.asm_104fd9
+ ld d, $0
+.asm_104fdb
+ inc d
+ jr z, .asm_104fe5
+ ld a, [$ff00+c]
+ bit 1, a
+ jr z, .asm_104fdb
+ ld d, $0
+.asm_104fe5
+ inc d
+ jr z, .asm_104fed
+ ld a, [$ff00+c]
+ bit 1, a
+ jr nz, .asm_104fe5
+.asm_104fed
+ ld a, [hMoneyTemp + 2]
+ ld d, a
+ ld a, [rTIMA]
+ ld [hMoneyTemp + 2], a
+ sub d
+ cp $12
+ jr c, .asm_104ffd
+ set 0, e
+ jr .asm_104fff
+.asm_104ffd
+ res 0, e
+.asm_104fff
+ ld a, [$ffb6]
+ dec a
+ ld [$ffb6], a
+ jr z, .asm_10500b
+ ld a, e
+ rlca
+ ld e, a
+ jr .asm_104fd9
+.asm_10500b
+ ld a, e
+ ld [hli], a
+ ld a, [hDivisor]
+ add e
+ ld [hDivisor], a
+ ld a, [hMathBuffer]
+ adc $0
+ ld [hMathBuffer], a
+ jr .asm_104fd2
+.asm_10501a
+ call Function104d74
+ xor a
+ ld [rIF], a
+ ld d, $0
+ call Function104da9
+ jp z, Function104f42
+ ld d, $10
+ call Function104dd1
+ ret
+
+Function10502e: ; 10502e (41:502e)
+ ld b, $0
+ jp Function104e93
+
+Function105033: ; 105033 (41:5033)
+ ld b, $0
+ jp Function104f57
+
+Function105038: ; 105038 (41:5038)
+ ld a, $20
+ ld [rJOYP], a
+rept 2
+ ld a, [rJOYP]
+endr
+ cpl
+ and $f
+ swap a
+ ld b, a
+ ld a, $10
+ ld [rJOYP], a
+rept 6
+ ld a, [rJOYP]
+endr
+ cpl
+ and $f
+ or b
+ ld c, a
+ ld a, [hMoneyTemp]
+ xor c
+ and c
+ ld [hMoneyTemp + 1], a
+ ld a, c
+ ld [hMoneyTemp], a
+ ld a, $30
+ ld [rJOYP], a
+ ret
+
+Function105069: ; 105069 (41:5069)
+ call GetMysteryGiftBank
+ ld d, $0
+ ld b, CHECK_FLAG
+ ld hl, sMysteryGiftDecorationsReceived
+ predef_id FlagPredef
+ push hl
+ push bc
+ call Predef
+ call CloseSRAM
+ ld a, c
+ and a
+ pop bc
+ pop hl
+ ret nz
+ call GetMysteryGiftBank
+ ld b, SET_FLAG
+ predef FlagPredef
+ call CloseSRAM
+ xor a
+ ret
+
+Function105091: ; 105091 (41:5091)
+ call GetMysteryGiftBank
+ ld c, $0
+.loop
+ push bc
+ ld d, $0
+ ld b, CHECK_FLAG
+ ld hl, sMysteryGiftDecorationsReceived
+ predef FlagPredef
+ ld a, c
+ and a
+ pop bc
+ jr z, .skip
+ push bc
+ callab SetSpecificDecorationFlag
+ pop bc
+.skip
+ inc c
+ ld a, c
+ cp Trophys - DecorationIDs
+ jr c, .loop
+ jp CloseSRAM
+
+Special_UnlockMysteryGift: ; 1050b9
+ call GetMysteryGiftBank
+ ld hl, sMysteryGiftUnlocked
+ ld a, [hl]
+ inc a
+ jr nz, .ok
+ ld [hld], a
+ ld [hl], a
+.ok
+ jp CloseSRAM
+; 1050c8
+
+Function1050c8: ; 1050c8
+ call GetMysteryGiftBank
+ ld a, [sNumDailyMysteryGiftPartnerIDs]
+ cp $ff
+ jr z, .okay
+ xor a
+ ld [sNumDailyMysteryGiftPartnerIDs], a
+.okay
+ jp CloseSRAM
+; 1050d9
+
+
+BackupMysteryGift: ; 1050d9
+ call GetMysteryGiftBank
+ ld hl, sMysteryGiftItem
+ ld de, sBackupMysteryGiftItem
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ jp CloseSRAM
+; 1050ea
+
+
+RestoreMysteryGift: ; 1050ea (41:50ea)
+ call GetMysteryGiftBank
+ ld hl, sBackupMysteryGiftItem
+ ld de, sMysteryGiftItem
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ jp CloseSRAM
+
+Function1050fb: ; 1050fb (41:50fb)
+ ld hl, wMysteryGiftTrainerData
+ xor a
+ ld b, $26
+.asm_105101
+ ld [hli], a
+ dec b
+ jr nz, .asm_105101
+ ret
+
+
+GetMysteryGiftBank: ; 105106
+ ld a, BANK(sBackupMysteryGiftItem)
+ jp GetSRAMBank
+; 10510b
+
+
+Function10510b: ; 10510b (41:510b)
+ ld a, BANK(sPokemonData)
+ call GetSRAMBank
+ ld de, OverworldMap
+ ld bc, sPokemonData + PartyMons - wPokemonData
+ ld hl, sPokemonData + PartySpecies - wPokemonData
+.asm_105119
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_105148
+ cp EGG
+ jr z, .asm_10513e
+ push hl
+ ld hl, MON_LEVEL
+ add hl, bc
+ ld a, [hl]
+ ld [de], a
+ inc de
+ ld hl, MON_SPECIES
+ add hl, bc
+ ld a, [hl]
+ ld [de], a
+ inc de
+ ld hl, MON_MOVES
+ add hl, bc
+ push bc
+ ld bc, NUM_MOVES
+ call CopyBytes
+ pop bc
+ pop hl
+.asm_10513e
+ push hl
+ ld hl, PARTYMON_STRUCT_LENGTH
+ add hl, bc
+ ld b, h
+ ld c, l
+ pop hl
+ jr .asm_105119
+.asm_105148
+ ld a, $ff
+ ld [de], a
+ ld a, $26
+ ld [wca00], a
+ jp CloseSRAM
+
+Function105153: ; 105153 (41:5153)
+ call ClearBGPalettes
+ call DisableLCD
+ ld hl, MysteryGiftGFX
+ ld de, VTiles2 tile $00
+ ld a, BANK(MysteryGiftGFX)
+ ld bc, Function105688 - MysteryGiftGFX
+ call FarCopyBytes
+ hlcoord 0, 0
+ ld a, $42
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ call ByteFill
+ hlcoord 3, 7
+ lb bc, 9, 15
+ call ClearBox
+ hlcoord 0, 0
+ ld a, $0
+ ld [hli], a
+ inc a
+ ld [hl], a
+ hlcoord 0, 1
+ inc a
+ ld [hli], a
+ inc a
+ ld [hl], a
+ hlcoord 7, 1
+ ld a, $12
+ call Function10522e
+ hlcoord 2, 2
+ ld a, $17
+ call Function105236
+ hlcoord 2, 3
+ ld a, $27
+ call Function105236
+ hlcoord 9, 4
+ ld a, $37
+ ld [hli], a
+ inc a
+ ld [hl], a
+ hlcoord 1, 2
+ ld [hl], $4
+ hlcoord 1, 3
+ ld a, $5
+ call Function105246
+ ld a, $9
+ hlcoord 18, 5
+ call Function105242
+ hlcoord 2, 5
+ ld a, $b
+ call Function105251
+ hlcoord 2, 16
+ ld a, $7
+ call Function105251
+ hlcoord 2, 5
+ ld a, $d
+ call Function10522e
+ hlcoord 7, 5
+ ld [hl], $c
+ hlcoord 18, 5
+ ld [hl], $a
+ hlcoord 18, 16
+ ld [hl], $8
+ hlcoord 1, 16
+ ld [hl], $6
+ hlcoord 2, 6
+ ld a, $3a
+ call Function105251
+ hlcoord 2, 15
+ ld a, $40
+ call Function105251
+ hlcoord 2, 6
+ ld a, $3c
+ call Function10523e
+ hlcoord 17, 6
+ ld a, $3e
+ call Function10523e
+ hlcoord 2, 6
+ ld [hl], $39
+ hlcoord 17, 6
+ ld [hl], $3b
+ hlcoord 2, 15
+ ld [hl], $3f
+ hlcoord 17, 15
+ ld [hl], $41
+ call EnableLCD
+ call WaitBGMap
+ ld b, SCGB_1D
+ call GetSGBLayout
+ call SetPalettes
+ ret
+
+Function10522e: ; 10522e (41:522e)
+ ld b, $5
+ jr asm_105238
+; 105232 (41:5232)
+
+Function105232: ; unreferenced
+ ld b, 6
+ jr asm_105238
+
+Function105236: ; 105236 (41:5236)
+ ld b, $10
+
+asm_105238: ; 105238 (41:5238)
+ ld [hli], a
+ inc a
+ dec b
+ jr nz, asm_105238
+ ret
+
+Function10523e: ; 10523e (41:523e)
+ ld b, $9
+ jr asm_105248
+
+Function105242: ; 105242 (41:5242)
+ ld b, $b
+ jr asm_105248
+
+Function105246: ; 105246 (41:5246)
+ ld b, $e
+
+asm_105248: ; 105248 (41:5248)
+ ld [hl], a
+ ld de, $14
+ add hl, de
+ dec b
+ jr nz, asm_105248
+ ret
+
+Function105251: ; 105251 (41:5251)
+ ld b, $10
+.asm_105253
+ ld [hli], a
+ dec b
+ jr nz, .asm_105253
+ ret
+
+MysteryGiftGFX: ; 105258
+INCBIN "gfx/misc/mystery_gift.2bpp"
+
+
+Function105688: ; 105688 (41:5688)
+ call ClearTileMap
+ call ClearSprites
+ call WaitBGMap
+ call Function1057d7
+ hlcoord 3, 8
+ ld de, String_10572e
+ call PlaceString
+ call WaitBGMap
+ call Function10578c
+ call Function1050fb
+ ld a, $24
+ ld [wca02], a
+ ld a, [rIE]
+ push af
+ call Function104c2d
+ ld d, a
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ ld a, d
+ cp $10
+ jp z, Function105712
+ cp $6c
+ jp nz, Function10571a
+ call Function1056eb
+ ld c, 60
+ call DelayFrames
+ call Function105777
+ ld hl, Text_10575e
+ call PrintText
+ ld de, wMysteryGiftTrainerData
+ callba Function8ac70
+ ld a, c
+ ld [wd265], a
+ ld hl, Text_105768
+ jr c, asm_105726
+ ld hl, Text_105763
+ jr asm_105726
+
+Function1056eb: ; 1056eb (41:56eb)
+ ld c, $10
+.asm_1056ed
+ ld hl, Sprites
+ ld b, $8
+.asm_1056f2
+ dec [hl]
+rept 4
+ inc hl
+endr
+ dec b
+ jr nz, .asm_1056f2
+ ld hl, Sprites + $20
+ ld b, $8
+.asm_1056ff
+ inc [hl]
+rept 4
+ inc hl
+endr
+ dec b
+ jr nz, .asm_1056ff
+ dec c
+ ret z
+ push bc
+ ld c, 4
+ call DelayFrames
+ pop bc
+ jr .asm_1056ed
+
+Function105712: ; 105712 (41:5712)
+ call Function105777
+ ld hl, Text_10576d
+ jr asm_105726
+
+Function10571a: ; 10571a (41:571a)
+ call Function105777
+ ld hl, Text_105772
+ call PrintText
+ jp Function105688
+
+asm_105726: ; 105726 (41:5726)
+ call PrintText
+ ld a, $e3
+ ld [rLCDC], a
+ ret
+; 10572e (41:572e)
+
+String_10572e: ; 10572e
+ db "エーボタン¯おすと"
+ next "つうしん", $4a, "おこなわれるよ!"
+ next "ビーボタン¯おすと"
+ next "つうしん¯ちゅうし します"
+ db "@"
+
+; 10575e
+
+Text_10575e: ; 10575e
+ text_jump UnknownText_0x1c051a
+ db "@"
+
+Text_105763: ; 105763
+ text_jump UnknownText_0x1c0531
+ db "@"
+
+Text_105768: ; 105768
+ text_jump UnknownText_0x1c0555
+ db "@"
+
+Text_10576d: ; 10576d
+ text_jump UnknownText_0x1c0573
+ db "@"
+
+Text_105772: ; 105772
+ text_jump UnknownText_0x1c0591
+ db "@"
+; 105777
+
+Function105777: ; 105777 (41:5777)
+ call ClearSprites
+ call ClearTileMap
+ call EnableLCD
+ call WaitBGMap
+ ld b, SCGB_08
+ call GetSGBLayout
+ call SetPalettes
+ ret
+
+Function10578c: ; 10578c (41:578c)
+ ld de, OverworldMap
+ ld a, BANK(sPlayerData)
+ call GetSRAMBank
+ ld hl, sPlayerData + PlayerName - wPlayerData
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld hl, sPlayerData + PlayerID - wPlayerData
+ ld bc, 2
+ call CopyBytes
+ ld hl, sPlayerData + wSecretID - wPlayerData
+ ld bc, 2
+ call CopyBytes
+ call CloseSRAM
+ ld a, BANK(sCrystalData)
+ call GetSRAMBank
+ ld a, [sCrystalData + 0]
+ ld [de], a
+ inc de
+ ld a, $4
+ call GetSRAMBank
+ ld hl, $a603
+ ld bc, $8
+ call CopyBytes
+ ld hl, $a007
+ ld bc, $c
+ call CopyBytes
+ call CloseSRAM
+ ret
+
+Function1057d7: ; 1057d7 (41:57d7)
+ call ClearBGPalettes
+ call DisableLCD
+ ld hl, MysteryGiftJP_GFX
+ ld de, VTiles2 tile $00
+ ld a, BANK(MysteryGiftJP_GFX)
+ lb bc, 4, 0
+ call FarCopyBytes
+ ld hl, MysteryGiftJP_GFX + $400
+ ld de, VTiles0 tile $00
+ ld a, BANK(MysteryGiftJP_GFX)
+ ld bc, $80
+ call FarCopyBytes
+ hlcoord 0, 0
+ ld a, $3f
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ call ByteFill
+ hlcoord 3, 7
+ lb bc, 9, 15
+ call ClearBox
+ hlcoord 0, 0
+ ld a, $0
+ ld [hli], a
+ inc a
+ ld [hl], a
+ hlcoord 0, 1
+ inc a
+ ld [hli], a
+ inc a
+ ld [hl], a
+ hlcoord 4, 2
+ ld a, $13
+ call Function1058ca
+ hlcoord 4, 3
+ ld a, $1e
+ call Function1058ce
+ hlcoord 4, 4
+ ld a, $2a
+ call Function1058ce
+ hlcoord 1, 2
+ ld [hl], $4
+ hlcoord 1, 3
+ ld a, $5
+ call Function1058de
+ ld a, $9
+ hlcoord 18, 5
+ call Function1058da
+ hlcoord 2, 5
+ ld a, $b
+ call Function1058e9
+ hlcoord 2, 16
+ ld a, $7
+ call Function1058e9
+ hlcoord 2, 5
+ ld a, $d
+ call Function1058c6
+ hlcoord 8, 5
+ ld [hl], $c
+ hlcoord 18, 5
+ ld [hl], $a
+ hlcoord 18, 16
+ ld [hl], $8
+ hlcoord 1, 16
+ ld [hl], $6
+ hlcoord 2, 6
+ ld a, $37
+ call Function1058e9
+ hlcoord 2, 15
+ ld a, $3d
+ call Function1058e9
+ hlcoord 2, 6
+ ld a, $39
+ call Function1058d6
+ hlcoord 17, 6
+ ld a, $3b
+ call Function1058d6
+ hlcoord 2, 6
+ ld [hl], $36
+ hlcoord 17, 6
+ ld [hl], $38
+ hlcoord 2, 15
+ ld [hl], $3c
+ hlcoord 17, 15
+ ld [hl], $3e
+ ld de, Sprites
+ ld hl, OAM_1058f0
+ ld bc, $40
+ call CopyBytes
+ call EnableLCD
+ call WaitBGMap
+ ld b, $2
+ callba Function4930f
+ jp SetPalettes
+
+Function1058c6: ; 1058c6 (41:58c6)
+ ld b, $6
+ jr asm_1058d0
+
+Function1058ca: ; 1058ca (41:58ca)
+ ld b, $b
+ jr asm_1058d0
+
+Function1058ce: ; 1058ce (41:58ce)
+ ld b, $c
+
+asm_1058d0: ; 1058d0 (41:58d0)
+ ld [hli], a
+ inc a
+ dec b
+ jr nz, asm_1058d0
+ ret
+
+Function1058d6: ; 1058d6 (41:58d6)
+ ld b, $9
+ jr asm_1058e0
+
+Function1058da: ; 1058da (41:58da)
+ ld b, $b
+ jr asm_1058e0
+
+Function1058de: ; 1058de (41:58de)
+ ld b, $e
+
+asm_1058e0: ; 1058e0 (41:58e0)
+ ld [hl], a
+ ld de, SCREEN_WIDTH
+ add hl, de
+ dec b
+ jr nz, asm_1058e0
+ ret
+
+Function1058e9: ; 1058e9 (41:58e9)
+ ld b, $10
+.asm_1058eb
+ ld [hli], a
+ dec b
+ jr nz, .asm_1058eb
+ ret
+; 1058f0 (41:58f0)
+
+OAM_1058f0: ; 1058f0
+ db $11, $34, $00, $00
+ db $11, $3c, $01, $00
+ db $11, $44, $02, $00
+ db $11, $4c, $03, $00
+ db $19, $34, $04, $00
+ db $19, $3c, $05, $00
+ db $19, $44, $06, $00
+ db $19, $4c, $07, $00
+ db $01, $5c, $00, $00
+ db $01, $64, $01, $00
+ db $01, $6c, $02, $00
+ db $01, $74, $03, $00
+ db $09, $5c, $04, $00
+ db $09, $64, $05, $00
+ db $09, $6c, $06, $00
+ db $09, $74, $07, $00
+
+; japanese mystery gift gfx
+MysteryGiftJP_GFX: ; 105930
+INCBIN "gfx/misc/mystery_gift_jp.2bpp"
--- a/engine/namingscreen.asm
+++ b/engine/namingscreen.asm
@@ -41,7 +41,7 @@
Function116f8: ; 116f8
call ClearBGPalettes
- ld b, $8
+ ld b, SCGB_08
call GetSGBLayout
call DisableLCD
call Function11c51
@@ -173,9 +173,9 @@
ld hl, wc300
ld [hli], a
ld [hl], a
- ld de, $2420
- ld a, $a
- call Function3b2a
+ depixel 4, 4, 4, 0
+ ld a, SPRITE_ANIM_INDEX_0A
+ call _InitSpriteAnimStruct
ld hl, $1
add hl, bc
ld [hl], $0
@@ -220,7 +220,7 @@
ld [hli], a
ld [hl], a
pop de
- ld b, $a
+ ld b, SPRITE_ANIM_INDEX_0A
ld a, d
cp $7a
jr nz, .asm_11873
@@ -227,11 +227,11 @@
ld a, e
cp $40
jr nz, .asm_11873
- ld b, $1e
+ ld b, SPRITE_ANIM_INDEX_1E
.asm_11873
ld a, b
- ld de, $2420
- call Function3b2a
+ depixel 4, 4, 4, 0
+ call _InitSpriteAnimStruct
ret
Function1187b: ; 1187b (4:587b)
@@ -400,13 +400,13 @@
Function1197b: ; 1197b (4:597b)
- lb de, $50, $18
+ depixel 10, 3
call Function1189c
jr nz, .asm_11985
- ld d, $40
+ ld d, 8 * 8
.asm_11985
- ld a, $2
- call Function3b2a
+ ld a, SPRITE_ANIM_INDEX_02
+ call _InitSpriteAnimStruct
ld a, c
ld [wc6d5], a
ld a, b
--- /dev/null
+++ b/engine/npctrade.asm
@@ -1,0 +1,635 @@
+
+; Trade struct
+TRADE_DIALOG EQU 0
+TRADE_GIVEMON EQU 1
+TRADE_GETMON EQU 2
+TRADE_NICK EQU 3
+TRADE_DVS EQU 14
+TRADE_ITEM EQU 16
+TRADE_OT_ID EQU 17
+TRADE_OT_NAME EQU 19
+TRADE_GENDER EQU 30
+TRADE_PADDING EQU 31
+
+; Trade dialogs
+TRADE_INTRO EQU 0
+TRADE_CANCEL EQU 1
+TRADE_WRONG EQU 2
+TRADE_COMPLETE EQU 3
+TRADE_AFTER EQU 4
+
+TRADE_EITHER_GENDER EQU 0
+TRADE_MALE_ONLY EQU 1
+TRADE_FEMALE_ONLY EQU 2
+
+NPCTrade:: ; fcba8
+ ld a, e
+ ld [wJumptableIndex], a
+ call Trade_GetDialog
+ ld b, CHECK_FLAG
+ call TradeFlagAction
+ ld a, TRADE_AFTER
+ jr nz, .done
+
+ ld a, TRADE_INTRO
+ call PrintTradeText
+
+ call YesNoBox
+ ld a, TRADE_CANCEL
+ jr c, .done
+
+; Select givemon from party
+ ld b, 6
+ callba Function5001d
+ ld a, TRADE_CANCEL
+ jr c, .done
+
+ ld e, TRADE_GIVEMON
+ call GetTradeAttribute
+ ld a, [CurPartySpecies]
+ cp [hl]
+ ld a, TRADE_WRONG
+ jr nz, .done
+
+ call CheckTradeGender
+ ld a, TRADE_WRONG
+ jr c, .done
+
+ ld b, SET_FLAG
+ call TradeFlagAction
+
+ ld hl, ConnectLinkCableText
+ call PrintText
+
+ call DoNPCTrade
+ call .TradeAnimation
+ call GetTradeMonNames
+
+ ld hl, TradedForText
+ call PrintText
+
+ call RestartMapMusic
+
+ ld a, TRADE_COMPLETE
+
+.done
+ call PrintTradeText
+ ret
+; fcc07
+
+.TradeAnimation: ; fcc07
+ call DisableSpriteUpdates
+ ld a, [wJumptableIndex]
+ push af
+ ld a, [wcf64]
+ push af
+ predef TradeAnimation
+ pop af
+ ld [wcf64], a
+ pop af
+ ld [wJumptableIndex], a
+ call Function2b74
+ ret
+; fcc23
+
+CheckTradeGender: ; fcc23
+ xor a
+ ld [MonType], a
+
+ ld e, TRADE_GENDER
+ call GetTradeAttribute
+ ld a, [hl]
+ and a
+ jr z, .asm_fcc46
+ cp 1
+ jr z, .asm_fcc3e
+
+ callba GetGender
+ jr nz, .asm_fcc48
+ jr .asm_fcc46
+
+.asm_fcc3e
+ callba GetGender
+ jr z, .asm_fcc48
+
+.asm_fcc46
+ and a
+ ret
+
+.asm_fcc48
+ scf
+ ret
+; fcc4a
+
+TradeFlagAction: ; fcc4a
+ ld hl, wTradeFlags
+ ld a, [wJumptableIndex]
+ ld c, a
+ predef FlagPredef
+ ld a, c
+ and a
+ ret
+; fcc59
+
+Trade_GetDialog: ; fcc59
+ ld e, TRADE_DIALOG
+ call GetTradeAttribute
+ ld a, [hl]
+ ld [wcf64], a
+ ret
+; fcc63
+
+DoNPCTrade: ; fcc63
+ ld e, TRADE_GIVEMON
+ call GetTradeAttribute
+ ld a, [hl]
+ ld [wPlayerTrademonSpecies], a
+
+ ld e, TRADE_GETMON
+ call GetTradeAttribute
+ ld a, [hl]
+ ld [wOTTrademonSpecies], a
+
+ ld a, [wPlayerTrademonSpecies]
+ ld de, wPlayerTrademonSpeciesName
+ call GetTradeMonName
+ call CopyTradeName
+
+ ld a, [wOTTrademonSpecies]
+ ld de, wOTTrademonSpeciesName
+ call GetTradeMonName
+ call CopyTradeName
+
+ ld hl, PartyMonOT
+ ld bc, NAME_LENGTH
+ call Trade_GetAttributeOfCurrentPartymon
+ ld de, wPlayerTrademonOTName
+ call CopyTradeName
+
+ ld hl, PlayerName
+ ld de, wPlayerTrademonSenderName
+ call CopyTradeName
+
+ ld hl, PartyMon1ID
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call Trade_GetAttributeOfCurrentPartymon
+ ld de, wPlayerTrademonID
+ call Trade_CopyTwoBytes
+
+ ld hl, PartyMon1DVs
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call Trade_GetAttributeOfCurrentPartymon
+ ld de, wPlayerTrademonDVs
+ call Trade_CopyTwoBytes
+
+ ld hl, PartyMon1Species
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call Trade_GetAttributeOfCurrentPartymon
+ ld b, h
+ ld c, l
+ callba GetCaughtGender
+ ld a, c
+ ld [wPlayerTrademonCaughtData], a
+
+ ld e, TRADE_DIALOG
+ call GetTradeAttribute
+ ld a, [hl]
+ cp 3
+ ld a, 1
+ jr c, .okay
+ ld a, 2
+.okay
+ ld [wOTTrademonCaughtData], a
+
+ ld hl, PartyMon1Level
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call Trade_GetAttributeOfCurrentPartymon
+ ld a, [hl]
+ ld [CurPartyLevel], a
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ xor a
+ ld [MonType], a
+ ld [wPokemonWithdrawDepositParameter], a
+ callab Functione039
+ predef TryAddMonToParty
+
+ ld e, TRADE_DIALOG
+ call GetTradeAttribute
+ ld a, [hl]
+ cp TRADE_COMPLETE
+ ld b, RESET_FLAG
+ jr c, .asm_fcd1c
+ ld b, SET_FLAG
+.asm_fcd1c
+ callba SetGiftPartyMonCaughtData
+
+ ld e, TRADE_NICK
+ call GetTradeAttribute
+ ld de, wOTTrademonNickname
+ call CopyTradeName
+
+ ld hl, PartyMonNicknames
+ ld bc, PKMN_NAME_LENGTH
+ call Trade_GetAttributeOfLastPartymon
+ ld hl, wOTTrademonNickname
+ call CopyTradeName
+
+ ld e, TRADE_OT_NAME
+ call GetTradeAttribute
+ push hl
+ ld de, wOTTrademonOTName
+ call CopyTradeName
+ pop hl
+ ld de, wOTTrademonSenderName
+ call CopyTradeName
+
+ ld hl, PartyMonOT
+ ld bc, NAME_LENGTH
+ call Trade_GetAttributeOfLastPartymon
+ ld hl, wOTTrademonOTName
+ call CopyTradeName
+
+ ld e, TRADE_DVS
+ call GetTradeAttribute
+ ld de, wOTTrademonDVs
+ call Trade_CopyTwoBytes
+
+ ld hl, PartyMon1DVs
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call Trade_GetAttributeOfLastPartymon
+ ld hl, wOTTrademonDVs
+ call Trade_CopyTwoBytes
+
+ ld e, TRADE_OT_ID
+ call GetTradeAttribute
+ ld de, wOTTrademonID + 1
+ call Trade_CopyTwoBytesReverseEndian
+
+ ld hl, PartyMon1ID
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call Trade_GetAttributeOfLastPartymon
+ ld hl, wOTTrademonID
+ call Trade_CopyTwoBytes
+
+ ld e, TRADE_ITEM
+ call GetTradeAttribute
+ push hl
+ ld hl, PartyMon1Item
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call Trade_GetAttributeOfLastPartymon
+ pop hl
+ ld a, [hl]
+ ld [de], a
+
+ push af
+ push bc
+ push de
+ push hl
+ ld a, [CurPartyMon]
+ push af
+ ld a, [PartyCount]
+ dec a
+ ld [CurPartyMon], a
+ callba Functione134
+ pop af
+ ld [CurPartyMon], a
+ pop hl
+ pop de
+ pop bc
+ pop af
+ ret
+; fcdc2
+
+
+GetTradeAttribute: ; 0xfcdc2
+ ld d, 0
+ push de
+ ld a, [wJumptableIndex]
+ and $f
+ swap a
+ ld e, a
+ ld d, 0
+ ld hl, NPCTrades
+rept 2
+ add hl, de
+endr
+ pop de
+ add hl, de
+ ret
+; 0xfcdd7
+
+Trade_GetAttributeOfCurrentPartymon: ; fcdd7
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ret
+; fcdde
+
+Trade_GetAttributeOfLastPartymon: ; fcdde
+ ld a, [PartyCount]
+ dec a
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ret
+; fcde8
+
+GetTradeMonName: ; fcde8
+ push de
+ ld [wd265], a
+ call GetBasePokemonName
+ ld hl, StringBuffer1
+ pop de
+ ret
+; fcdf4
+
+CopyTradeName: ; fcdf4
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ret
+; fcdfb
+
+Functionfcdfb: ; fcdfb
+; unreferenced
+ ld bc, 4
+ call CopyBytes
+ ld a, "@"
+ ld [de], a
+ ret
+; fce05
+
+Functionfce05: ; fce05
+; unreferenced
+ ld bc, 3
+ call CopyBytes
+ ld a, "@"
+ ld [de], a
+ ret
+; fce0f
+
+Trade_CopyTwoBytes: ; fce0f
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ ret
+; fce15
+
+Trade_CopyTwoBytesReverseEndian: ; fce15
+ ld a, [hli]
+ ld [de], a
+ dec de
+ ld a, [hl]
+ ld [de], a
+ ret
+; fce1b
+
+GetTradeMonNames: ; fce1b
+ ld e, TRADE_GETMON
+ call GetTradeAttribute
+ ld a, [hl]
+ call GetTradeMonName
+
+ ld de, StringBuffer2
+ call CopyTradeName
+
+ ld e, TRADE_GIVEMON
+ call GetTradeAttribute
+ ld a, [hl]
+ call GetTradeMonName
+
+ ld de, wd050
+ call CopyTradeName
+
+ ld hl, StringBuffer1
+.loop
+ ld a, [hli]
+ cp "@"
+ jr nz, .loop
+
+ dec hl
+ push hl
+ ld e, TRADE_GENDER
+ call GetTradeAttribute
+ ld a, [hl]
+ pop hl
+ and a
+ ret z
+
+ cp 1
+ ld a, "♂"
+ jr z, .done
+ ld a, "♀"
+.done
+ ld [hli], a
+ ld [hl], "@"
+ ret
+; fce58
+
+
+NPCTrades: ; fce58
+npctrade: MACRO
+ db \1, \2, \3, \4
+ dw \5
+ db \6
+ dw \7
+ db \8, \9, 0
+ENDM
+
+
+ npctrade 0, ABRA, MACHOP, "MUSCLE@@@@@", $6637, GOLD_BERRY, 37460, "MIKE@@@@@@@", TRADE_EITHER_GENDER
+ npctrade 0, BELLSPROUT, ONIX, "ROCKY@@@@@@", $6696, BITTER_BERRY, 48926, "KYLE@@@@@@@", TRADE_EITHER_GENDER
+ npctrade 1, KRABBY, VOLTORB, "VOLTY@@@@@@", $8898, PRZCUREBERRY, 29189, "TIM@@@@@@@@", TRADE_EITHER_GENDER
+ npctrade 3, DRAGONAIR, DODRIO, "DORIS@@@@@@", $6677, SMOKE_BALL, 00283, "EMY@@@@@@@@", TRADE_FEMALE_ONLY
+ npctrade 2, HAUNTER, XATU, "PAUL@@@@@@@", $8696, MYSTERYBERRY, 15616, "CHRIS@@@@@@", TRADE_EITHER_GENDER
+ npctrade 3, CHANSEY, AERODACTYL, "AEROY@@@@@@", $6696, GOLD_BERRY, 26491, "KIM@@@@@@@@", TRADE_EITHER_GENDER
+ npctrade 0, DUGTRIO, MAGNETON, "MAGGIE@@@@@", $6696, METAL_COAT, 50082, "FOREST@@@@@", TRADE_EITHER_GENDER
+; fcf38
+
+
+PrintTradeText: ; fcf38
+ push af
+ call GetTradeMonNames
+ pop af
+ ld bc, 2 * 4
+ ld hl, TradeTexts
+ call AddNTimes
+ ld a, [wcf64]
+ ld c, a
+rept 2
+ add hl, bc
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call PrintText
+ ret
+; fcf53
+
+TradeTexts: ; fcf53
+; intro
+ dw TradeIntroText1
+ dw TradeIntroText2
+ dw TradeIntroText3
+ dw TradeIntroText4
+
+; cancel
+ dw TradeCancelText1
+ dw TradeCancelText2
+ dw TradeCancelText3
+ dw TradeCancelText4
+
+; wrong mon
+ dw TradeWrongText1
+ dw TradeWrongText2
+ dw TradeWrongText3
+ dw TradeWrongText4
+
+; completed
+ dw TradeCompleteText1
+ dw TradeCompleteText2
+ dw TradeCompleteText3
+ dw TradeCompleteText4
+
+; after
+ dw TradeAfterText1
+ dw TradeAfterText2
+ dw TradeAfterText3
+ dw TradeAfterText4
+; fcf7b
+
+
+ConnectLinkCableText: ; 0xfcf7b
+ ; OK, connect the Game Link Cable.
+ text_jump UnknownText_0x1bd407
+ db "@"
+; 0xfcf80
+
+
+TradedForText: ; 0xfcf80
+ ; traded givemon for getmon
+ text_jump UnknownText_0x1bd429
+ start_asm
+
+ ld de, MUSIC_NONE
+ call PlayMusic
+ call DelayFrame
+ ld hl, .done
+ ret
+
+.done
+ ; sound_dex_fanfare_80_109
+ ; interpret_data
+ text_jump UnknownText_0x1bd445
+ db "@"
+; 0xfcf97
+
+
+TradeIntroText1: ; 0xfcf97
+ ; I collect #MON. Do you have @ ? Want to trade it for my @ ?
+ text_jump UnknownText_0x1bd449
+ db "@"
+; 0xfcf9c
+
+TradeCancelText1: ; 0xfcf9c
+ ; You don't want to trade? Aww…
+ text_jump UnknownText_0x1bd48c
+ db "@"
+; 0xfcfa1
+
+TradeWrongText1: ; 0xfcfa1
+ ; Huh? That's not @ . What a letdown…
+ text_jump UnknownText_0x1bd4aa
+ db "@"
+; 0xfcfa6
+
+TradeCompleteText1: ; 0xfcfa6
+ ; Yay! I got myself @ ! Thanks!
+ text_jump UnknownText_0x1bd4d2
+ db "@"
+; 0xfcfab
+
+TradeAfterText1: ; 0xfcfab
+ ; Hi, how's my old @ doing?
+ text_jump UnknownText_0x1bd4f4
+ db "@"
+; 0xfcfb0
+
+
+TradeIntroText2:
+TradeIntroText3: ; 0xfcfb0
+ ; Hi, I'm looking for this #MON. If you have @ , would you trade it for my @ ?
+ text_jump UnknownText_0x1bd512
+ db "@"
+; 0xfcfb5
+
+TradeCancelText2:
+TradeCancelText3: ; 0xfcfb5
+ ; You don't have one either? Gee, that's really disappointing…
+ text_jump UnknownText_0x1bd565
+ db "@"
+; 0xfcfba
+
+TradeWrongText2:
+TradeWrongText3: ; 0xfcfba
+ ; You don't have @ ? That's too bad, then.
+ text_jump UnknownText_0x1bd5a1
+ db "@"
+; 0xfcfbf
+
+TradeCompleteText2: ; 0xfcfbf
+ ; Great! Thank you! I finally got @ .
+ text_jump UnknownText_0x1bd5cc
+ db "@"
+; 0xfcfc4
+
+TradeAfterText2: ; 0xfcfc4
+ ; Hi! The @ you traded me is doing great!
+ text_jump UnknownText_0x1bd5f4
+ db "@"
+; 0xfcfc9
+
+
+TradeIntroText4: ; 0xfcfc9
+ ; 's cute, but I don't have it. Do you have @ ? Want to trade it for my @ ?
+ text_jump UnknownText_0x1bd621
+ db "@"
+; 0xfcfce
+
+TradeCancelText4: ; 0xfcfce
+ ; You don't want to trade? Oh, darn…
+ text_jump UnknownText_0x1bd673
+ db "@"
+; 0xfcfd3
+
+TradeWrongText4: ; 0xfcfd3
+ ; That's not @ . Please trade with me if you get one.
+ text_jump UnknownText_0x1bd696
+ db "@"
+; 0xfcfd8
+
+TradeCompleteText4: ; 0xfcfd8
+ ; Wow! Thank you! I always wanted @ !
+ text_jump UnknownText_0x1bd6cd
+ db "@"
+; 0xfcfdd
+
+TradeAfterText4: ; 0xfcfdd
+ ; How is that @ I traded you doing? Your @ 's so cute!
+ text_jump UnknownText_0x1bd6f5
+ db "@"
+; 0xfcfe2
+
+
+TradeCompleteText3: ; 0xfcfe2
+ ; Uh? What happened?
+ text_jump UnknownText_0x1bd731
+ db "@"
+; 0xfcfe7
+
+TradeAfterText3: ; 0xfcfe7
+ ; Trading is so odd… I still have a lot to learn about it.
+ text_jump UnknownText_0x1bd745
+ db "@"
+; 0xfcfec
--- /dev/null
+++ b/engine/options_menu.asm
@@ -1,0 +1,565 @@
+_OptionsMenu: ; e41d0
+ ld hl, hInMenu
+ ld a, [hl]
+ push af
+ ld [hl], $1
+ call ClearBGPalettes
+ hlcoord 0, 0
+ ld b, $10
+ ld c, $12
+ call TextBox
+ hlcoord 2, 2
+ ld de, StringOptions
+ call PlaceString
+ xor a
+ ld [wJumptableIndex], a
+ ld c, $6 ; number of items on the menu minus 1 (for cancel)
+
+.print_text_loop ; this next will display the settings of each option when the menu is opened
+ push bc
+ xor a
+ ld [hJoyLast], a
+ call GetOptionPointer
+ pop bc
+ ld hl, wJumptableIndex
+ inc [hl]
+ dec c
+ jr nz, .print_text_loop
+
+ call UpdateFrame
+ xor a
+ ld [wJumptableIndex], a
+ inc a
+ ld [hBGMapMode], a
+ call WaitBGMap
+ ld b, SCGB_08
+ call GetSGBLayout
+ call SetPalettes
+
+.joypad_loop
+ call JoyTextDelay
+ ld a, [hJoyPressed]
+ and START | B_BUTTON
+ jr nz, .ExitOptions
+ call OptionsControl
+ jr c, .dpad
+ call GetOptionPointer
+ jr c, .ExitOptions
+
+.dpad
+ call Functione455c
+ ld c, 3
+ call DelayFrames
+ jr .joypad_loop
+
+.ExitOptions
+ ld de, SFX_TRANSACTION
+ call PlaySFX
+ call WaitSFX
+ pop af
+ ld [hInMenu], a
+ ret
+; e4241
+
+StringOptions: ; e4241
+ db "TEXT SPEED<LNBRK>"
+ db " :<LNBRK>"
+ db "BATTLE SCENE<LNBRK>"
+ db " :<LNBRK>"
+ db "BATTLE STYLE<LNBRK>"
+ db " :<LNBRK>"
+ db "SOUND<LNBRK>"
+ db " :<LNBRK>"
+ db "PRINT<LNBRK>"
+ db " :<LNBRK>"
+ db "MENU ACCOUNT<LNBRK>"
+ db " :<LNBRK>"
+ db "FRAME<LNBRK>"
+ db " :TYPE<LNBRK>"
+ db "CANCEL@"
+; e42d6
+
+
+GetOptionPointer: ; e42d6
+ ld a, [wJumptableIndex] ; load the cursor position to a
+ ld e, a ; copy it to de
+ ld d, 0
+ ld hl, .Pointers
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl] ; jump to the code of the current highlighted item
+; e42e5
+
+.Pointers
+ dw Options_TextSpeed
+ dw Options_BattleScene
+ dw Options_BattleStyle
+ dw Options_Sound
+ dw Options_Print
+ dw Options_MenuAccount
+ dw Options_Frame
+ dw Options_Cancel
+; e42f5
+
+
+Options_TextSpeed: ; e42f5
+ call GetTextSpeed
+ ld a, [hJoyPressed]
+ bit D_LEFT_F, a
+ jr nz, .LeftPressed
+ bit D_RIGHT_F, a
+ jr z, .NonePressed
+ ld a, c ; right pressed
+ cp SLOW_TEXT
+ jr c, .Increase
+ ld c, FAST_TEXT +- 1
+
+.Increase
+ inc c
+ ld a, e
+ jr .Save
+
+.LeftPressed
+ ld a, c
+ and a
+ jr nz, .Decrease
+ ld c, SLOW_TEXT + 1
+
+.Decrease
+ dec c
+ ld a, d
+
+.Save
+ ld b, a
+ ld a, [Options]
+ and $f0
+ or b
+ ld [Options], a
+
+.NonePressed
+ ld b, 0
+ ld hl, .Strings
+rept 2
+ add hl, bc
+endr
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ hlcoord 11, 3
+ call PlaceString
+ and a
+ ret
+; e4331
+
+.Strings
+ dw .Fast
+ dw .Mid
+ dw .Slow
+
+.Fast
+ db "FAST@"
+.Mid
+ db "MID @"
+.Slow
+ db "SLOW@"
+; e4346
+
+
+GetTextSpeed: ; e4346
+ ld a, [Options] ; This converts the number of frames, to 0, 1, 2 representing speed
+ and 7
+ cp 5 ; 5 frames of delay is slow
+ jr z, .slow
+ cp 1 ; 1 frame of delay is fast
+ jr z, .fast
+ ld c, MED_TEXT ; set it to mid if not one of the above
+ lb de, 1, 5
+ ret
+
+.slow
+ ld c, SLOW_TEXT
+ lb de, 3, 1
+ ret
+
+.fast
+ ld c, FAST_TEXT
+ lb de, 5, 3
+ ret
+; e4365
+
+
+Options_BattleScene: ; e4365
+ ld hl, Options
+ ld a, [hJoyPressed]
+ bit D_LEFT_F, a
+ jr nz, .LeftPressed
+ bit D_RIGHT_F, a
+ jr z, .NonePressed
+ bit BATTLE_SCENE, [hl]
+ jr nz, .ToggleOn
+ jr .ToggleOff
+
+.LeftPressed
+ bit BATTLE_SCENE, [hl]
+ jr z, .ToggleOff
+ jr .ToggleOn
+
+.NonePressed
+ bit BATTLE_SCENE, [hl]
+ jr z, .ToggleOn
+ jr .ToggleOff
+
+.ToggleOn
+ res BATTLE_SCENE, [hl]
+ ld de, .On
+ jr .Display
+
+.ToggleOff
+ set BATTLE_SCENE, [hl]
+ ld de, .Off
+
+.Display
+ hlcoord 11, 5
+ call PlaceString
+ and a
+ ret
+; e4398
+
+.On
+ db "ON @"
+.Off
+ db "OFF@"
+; e43a0
+
+
+Options_BattleStyle: ; e43a0
+ ld hl, Options
+ ld a, [hJoyPressed]
+ bit D_LEFT_F, a
+ jr nz, .LeftPressed
+ bit D_RIGHT_F, a
+ jr z, .NonePressed
+ bit BATTLE_SHIFT, [hl]
+ jr nz, .ToggleShift
+ jr .ToggleSet
+
+.LeftPressed
+ bit BATTLE_SHIFT, [hl]
+ jr z, .ToggleSet
+ jr .ToggleShift
+
+.NonePressed
+ bit BATTLE_SHIFT, [hl]
+ jr nz, .ToggleSet
+
+.ToggleShift
+ res BATTLE_SHIFT, [hl]
+ ld de, .Shift
+ jr .Display
+
+.ToggleSet
+ set BATTLE_SHIFT, [hl]
+ ld de, .Set
+
+.Display
+ hlcoord 11, 7
+ call PlaceString
+ and a
+ ret
+; e43d1
+
+.Shift
+ db "SHIFT@"
+.Set
+ db "SET @"
+; e43dd
+
+
+Options_Sound: ; e43dd
+ ld hl, Options
+ ld a, [hJoyPressed]
+ bit D_LEFT_F, a
+ jr nz, .LeftPressed
+ bit D_RIGHT_F, a
+ jr z, .NonePressed
+ bit STEREO, [hl]
+ jr nz, .SetMono
+ jr .SetStereo
+
+.LeftPressed
+ bit STEREO, [hl]
+ jr z, .SetStereo
+ jr .SetMono
+
+.NonePressed
+ bit STEREO, [hl]
+ jr nz, .ToggleStereo
+ jr .ToggleMono
+
+.SetMono
+ res STEREO, [hl]
+ call RestartMapMusic
+
+.ToggleMono
+ ld de, .Mono
+ jr .Display
+
+.SetStereo
+ set STEREO, [hl]
+ call RestartMapMusic
+
+.ToggleStereo
+ ld de, .Stereo
+
+.Display
+ hlcoord 11, 9
+ call PlaceString
+ and a
+ ret
+; e4416
+
+.Mono
+ db "MONO @"
+.Stereo
+ db "STEREO@"
+; e4424
+
+
+Options_Print: ; e4424
+ call GetPrinterSetting
+ ld a, [hJoyPressed]
+ bit D_LEFT_F, a
+ jr nz, .LeftPressed
+ bit D_RIGHT_F, a
+ jr z, .NonePressed
+ ld a, c
+ cp 4
+ jr c, .Increase
+ ld c, -1
+
+.Increase
+ inc c
+ ld a, e
+ jr .Save
+
+.LeftPressed
+ ld a, c
+ and a
+ jr nz, .Decrease
+ ld c, 5
+
+.Decrease
+ dec c
+ ld a, d
+
+.Save
+ ld b, a
+ ld [GBPrinter], a
+
+.NonePressed
+ ld b, $0
+ ld hl, .Strings
+rept 2
+ add hl, bc
+endr
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ hlcoord 11, 11
+ call PlaceString
+ and a
+ ret
+; e445a
+
+.Strings
+ dw .Lightest
+ dw .Lighter
+ dw .Normal
+ dw .Darker
+ dw .Darkest
+
+.Lightest
+ db "LIGHTEST@"
+.Lighter
+ db "LIGHTER @"
+.Normal
+ db "NORMAL @"
+.Darker
+ db "DARKER @"
+.Darkest
+ db "DARKEST @"
+; e4491
+
+
+GetPrinterSetting: ; e4491
+ ld a, [GBPrinter] ; converts from the stored printer setting to 0,1,2,3,4
+ and a
+ jr z, .IsLightest
+ cp PRINT_LIGHTER
+ jr z, .IsLight
+ cp PRINT_DARKER
+ jr z, .IsDark
+ cp PRINT_DARKEST
+ jr z, .IsDarkest
+ ld c, 2 ; normal if none of the above
+ lb de, PRINT_LIGHTER, PRINT_DARKER ; the 2 values next to this setting
+ ret
+
+.IsLightest
+ ld c, 0
+ lb de, PRINT_DARKEST, PRINT_LIGHTER ; the 2 values next to this setting
+ ret
+
+.IsLight
+ ld c, 1
+ lb de, PRINT_LIGHTEST, PRINT_NORMAL ; the 2 values next to this setting
+ ret
+
+.IsDark
+ ld c, 3
+ lb de, PRINT_NORMAL, PRINT_DARKEST ; the 2 values next to this setting
+ ret
+
+.IsDarkest
+ ld c, 4
+ lb de, PRINT_DARKER, PRINT_LIGHTEST ; the 2 values next to this setting
+ ret
+; e44c1
+
+Options_MenuAccount: ; e44c1
+ ld hl, Options2
+ ld a, [hJoyPressed]
+ bit D_LEFT_F, a
+ jr nz, .LeftPressed
+ bit D_RIGHT_F, a
+ jr z, .NonePressed
+ bit MENU_ACCOUNT, [hl]
+ jr nz, .ToggleOff
+ jr .ToggleOn
+
+.LeftPressed
+ bit MENU_ACCOUNT, [hl]
+ jr z, .ToggleOn
+ jr .ToggleOff
+
+.NonePressed
+ bit MENU_ACCOUNT, [hl]
+ jr nz, .ToggleOn
+
+.ToggleOff
+ res MENU_ACCOUNT, [hl]
+ ld de, .Off
+ jr .Display
+
+.ToggleOn
+ set MENU_ACCOUNT, [hl]
+ ld de, .On
+
+.Display
+ hlcoord 11, 13
+ call PlaceString
+ and a
+ ret
+; e44f2
+
+.Off
+ db "OFF@"
+.On
+ db "ON @"
+; e44fa
+
+
+Options_Frame: ; e44fa
+ ld hl, TextBoxFrame
+ ld a, [hJoyPressed]
+ bit D_LEFT_F, a
+ jr nz, .LeftPressed
+ bit D_RIGHT_F, a
+ jr nz, .RightPressed
+ and a
+ ret
+
+.RightPressed
+ ld a, [hl]
+ inc a
+ jr .Save
+
+.LeftPressed
+ ld a, [hl]
+ dec a
+
+.Save
+ and $7
+ ld [hl], a
+UpdateFrame: ; e4512
+ ld a, [TextBoxFrame]
+ hlcoord 16, 15 ; where on the screen the number is drawn
+ add "1"
+ ld [hl], a
+ call LoadFontsExtra
+ and a
+ ret
+; e4520
+
+Options_Cancel: ; e4520
+ ld a, [hJoyPressed]
+ and A_BUTTON
+ jr nz, .Exit
+ and a
+ ret
+
+.Exit
+ scf
+ ret
+; e452a
+
+OptionsControl: ; e452a
+ ld hl, wJumptableIndex
+ ld a, [hJoyLast]
+ cp D_DOWN
+ jr z, .DownPressed
+ cp D_UP
+ jr z, .UpPressed
+ and a
+ ret
+
+.DownPressed
+ ld a, [hl] ; load the cursor position to a
+ cp $7 ; maximum number of items in option menu
+ jr nz, .CheckFive
+ ld [hl], $0
+ scf
+ ret
+
+.CheckFive ; I have no idea why this exists...
+ cp $5
+ jr nz, .Increase
+ ld [hl], $5
+
+.Increase
+ inc [hl]
+ scf
+ ret
+
+.UpPressed
+ ld a, [hl]
+ cp $6
+ jr nz, .NotSix
+ ld [hl], $5 ; Another thing where I'm not sure why it exists
+ scf
+ ret
+
+.NotSix
+ and a
+ jr nz, .Decrease
+ ld [hl], $8 ; number of option items +1
+
+.Decrease
+ dec [hl]
+ scf
+ ret
+; e455c
--- /dev/null
+++ b/engine/overworld.asm
@@ -1,0 +1,1488 @@
+GetEmote2bpp: ; 1412a
+ ld a, $1
+ ld [rVBK], a
+ call Get2bpp
+ xor a
+ ld [rVBK], a
+ ret
+; 14135
+
+_ReplaceKrisSprite:: ; 14135
+ call GetPlayerSprite
+ ld a, [UsedSprites]
+ ld [hUsedSpriteIndex], a
+ ld a, [UsedSprites + 1]
+ ld [hUsedSpriteTile], a
+ call GetUsedSprite
+ ret
+; 14146
+
+Function14146: ; mobile
+ ld hl, wSpriteFlags
+ ld a, [hl]
+ push af
+ res 7, [hl]
+ set 6, [hl]
+ call RunCallback_04
+ pop af
+ ld [wSpriteFlags], a
+ ret
+; 14157
+
+Function14157: ; mobile
+ ld hl, wSpriteFlags
+ ld a, [hl]
+ push af
+ set 7, [hl]
+ res 6, [hl]
+ call RunCallback_04
+ pop af
+ ld [wSpriteFlags], a
+ ret
+; 14168
+
+RefreshSprites:: ; 14168
+ call .Refresh
+ call RunCallback_04
+ ret
+; 1416f
+
+.Refresh: ; 1416f
+ xor a
+ ld bc, UsedSpritesEnd - UsedSprites
+ ld hl, UsedSprites
+ call ByteFill
+ call GetPlayerSprite
+ call AddMapSprites
+ call LoadAndSortSprites
+ ret
+; 14183
+
+GetPlayerSprite: ; 14183
+; Get Chris or Kris's sprite.
+ ld hl, .Chris
+ ld a, [wPlayerSpriteSetupFlags]
+ bit 2, a
+ jr nz, .go
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .go
+ ld hl, .Kris
+
+.go
+ ld a, [PlayerState]
+ ld c, a
+.loop
+ ld a, [hli]
+ cp c
+ jr z, .good
+ inc hl
+ cp $ff
+ jr nz, .loop
+
+; Any player state not in the array defaults to Chris's sprite.
+ xor a ; ld a, PLAYER_NORMAL
+ ld [PlayerState], a
+ ld a, SPRITE_CHRIS
+ jr .finish
+
+.good
+ ld a, [hl]
+
+.finish
+ ld [UsedSprites + 0], a
+ ld [PlayerSprite], a
+ ld [PlayerObjectSprite], a
+ ret
+
+.Chris
+ db PLAYER_NORMAL, SPRITE_CHRIS
+ db PLAYER_BIKE, SPRITE_CHRIS_BIKE
+ db PLAYER_SURF, SPRITE_SURF
+ db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU
+ db $ff
+
+.Kris
+ db PLAYER_NORMAL, SPRITE_KRIS
+ db PLAYER_BIKE, SPRITE_KRIS_BIKE
+ db PLAYER_SURF, SPRITE_SURF
+ db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU
+ db $ff
+; 141c9
+
+
+AddMapSprites: ; 141c9
+ call GetMapPermission
+ call CheckOutdoorMap
+ jr z, .outdoor
+ call AddIndoorSprites
+ ret
+
+.outdoor
+ call AddOutdoorSprites
+ ret
+; 141d9
+
+
+AddIndoorSprites: ; 141d9
+ ld hl, Map1ObjectSprite
+ ld a, 1
+.loop
+ push af
+ ld a, [hl]
+ call AddSpriteGFX
+ ld de, OBJECT_LENGTH
+ add hl, de
+ pop af
+ inc a
+ cp NUM_OBJECTS
+ jr nz, .loop
+ ret
+; 141ee
+
+
+AddOutdoorSprites: ; 141ee
+ ld a, [MapGroup]
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, OutdoorSprites
+rept 2
+ add hl, bc
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld c, MAX_OUTDOOR_SPRITES
+.loop
+ push bc
+ ld a, [hli]
+ call AddSpriteGFX
+ pop bc
+ dec c
+ jr nz, .loop
+ ret
+; 14209
+
+
+RunCallback_04: ; 14209
+ ld a, $4
+ call RunMapCallback
+ call GetUsedSprites
+ call .LoadMiscTiles
+ ret
+; 14215
+
+.LoadMiscTiles: ; 14215
+ ld a, [wSpriteFlags]
+ bit 6, a
+ ret nz
+
+ ld c, EMOTE_SHADOW
+ callba LoadEmote
+ call GetMapPermission
+ call CheckOutdoorMap
+ ld c, EMOTE_0B
+ jr z, .outdoor
+ ld c, EMOTE_BOULDER_DUST
+.outdoor
+ callba LoadEmote
+ ret
+; 14236
+
+
+
+SafeGetSprite: ; 14236
+ push hl
+ call GetSprite
+ pop hl
+ ret
+; 1423c
+
+GetSprite: ; 1423c
+ call GetMonSprite
+ ret c
+
+ ld hl, SpriteHeaders ; address
+ dec a
+ ld c, a
+ ld b, 0
+ ld a, 6
+ call AddNTimes
+ ; load the address into de
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ; load the length into c
+ ld a, [hli]
+ swap a
+ ld c, a
+ ; load the sprite bank into both b and h
+ ld b, [hl]
+ ld a, [hli]
+ ; load the sprite type into l
+ ld l, [hl]
+ ld h, a
+ ret
+; 14259
+
+
+GetMonSprite: ; 14259
+; Return carry if a monster sprite was loaded.
+
+ cp SPRITE_POKEMON
+ jr c, .Normal
+ cp SPRITE_DAYCARE_MON_1
+ jr z, .wBreedMon1
+ cp SPRITE_DAYCARE_MON_2
+ jr z, .wBreedMon2
+ cp SPRITE_VARS
+ jr nc, .Variable
+ jr .Icon
+
+.Normal
+ and a
+ ret
+
+.Icon
+ sub SPRITE_POKEMON
+ ld e, a
+ ld d, 0
+ ld hl, SpriteMons
+ add hl, de
+ ld a, [hl]
+ jr .Mon
+
+.wBreedMon1
+ ld a, [wBreedMon1Species]
+ jr .Mon
+
+.wBreedMon2
+ ld a, [wBreedMon2Species]
+
+.Mon
+ ld e, a
+ and a
+ jr z, .NoBreedmon
+
+ callba Function8e82b
+
+ ld l, 1
+ ld h, 0
+ scf
+ ret
+
+.Variable
+ sub SPRITE_VARS
+ ld e, a
+ ld d, 0
+ ld hl, VariableSprites
+ add hl, de
+ ld a, [hl]
+ and a
+ jp nz, GetMonSprite
+
+.NoBreedmon
+ ld a, 1
+ ld l, 1
+ ld h, 0
+ and a
+ ret
+; 142a7
+
+
+_DoesSpriteHaveFacings:: ; 142a7
+; Checks to see whether we can apply a facing to a sprite.
+; Returns carry unless the sprite is a Pokemon or a Still Sprite.
+ cp SPRITE_POKEMON
+ jr nc, .only_down
+
+ push hl
+ push bc
+ ld hl, SpriteHeaders + SPRITEHEADER_TYPE ; type
+ dec a
+ ld c, a
+ ld b, 0
+ ld a, NUM_SPRITEHEADER_FIELDS
+ call AddNTimes
+ ld a, [hl]
+ pop bc
+ pop hl
+ cp STILL_SPRITE
+ jr nz, .only_down
+ scf
+ ret
+
+.only_down
+ and a
+ ret
+; 142c4
+
+
+_GetSpritePalette:: ; 142c4
+ ld a, c
+ call GetMonSprite
+ jr c, .is_pokemon
+
+ ld hl, SpriteHeaders + 5 ; palette
+ dec a
+ ld c, a
+ ld b, 0
+ ld a, 6
+ call AddNTimes
+ ld c, [hl]
+ ret
+
+.is_pokemon
+ xor a
+ ld c, a
+ ret
+; 142db
+
+
+LoadAndSortSprites: ; 142db
+ call LoadSpriteGFX
+ call SortUsedSprites
+ call ArrangeUsedSprites
+ ret
+; 142e5
+
+
+AddSpriteGFX: ; 142e5
+; Add any new sprite ids to a list of graphics to be loaded.
+; Return carry if the list is full.
+
+ push hl
+ push bc
+ ld b, a
+ ld hl, UsedSprites + 2
+ ld c, SPRITE_GFX_LIST_CAPACITY - 1
+.loop
+ ld a, [hl]
+ cp b
+ jr z, .exists
+ and a
+ jr z, .new
+rept 2
+ inc hl
+endr
+ dec c
+ jr nz, .loop
+
+ pop bc
+ pop hl
+ scf
+ ret
+
+.exists
+ pop bc
+ pop hl
+ and a
+ ret
+
+.new
+ ld [hl], b
+ pop bc
+ pop hl
+ and a
+ ret
+; 14306
+
+
+LoadSpriteGFX: ; 14306
+; Bug: b is not preserved, so
+; it's useless as a next count.
+
+ ld hl, UsedSprites
+ ld b, SPRITE_GFX_LIST_CAPACITY
+.loop
+ ld a, [hli]
+ and a
+ jr z, .done
+ push hl
+ call .LoadSprite
+ pop hl
+ ld [hli], a
+ dec b
+ jr nz, .loop
+
+.done
+ ret
+
+.LoadSprite
+ call GetSprite
+ ld a, l
+ ret
+; 1431e
+
+
+SortUsedSprites: ; 1431e
+; Bubble-sort sprites by type.
+
+; Run backwards through UsedSprites to find the last one.
+
+ ld c, SPRITE_GFX_LIST_CAPACITY
+ ld de, UsedSprites + (SPRITE_GFX_LIST_CAPACITY - 1) * 2
+.FindLastSprite
+ ld a, [de]
+ and a
+ jr nz, .FoundLastSprite
+rept 2
+ dec de
+endr
+ dec c
+ jr nz, .FindLastSprite
+.FoundLastSprite
+ dec c
+ jr z, .quit
+
+; If the length of the current sprite is
+; higher than a later one, swap them.
+
+ inc de
+ ld hl, UsedSprites + 1
+
+.CheckSprite
+ push bc
+ push de
+ push hl
+
+.CheckFollowing
+ ld a, [de]
+ cp [hl]
+ jr nc, .loop
+
+; Swap the two sprites.
+
+ ld b, a
+ ld a, [hl]
+ ld [hl], b
+ ld [de], a
+ dec de
+ dec hl
+ ld a, [de]
+ ld b, a
+ ld a, [hl]
+ ld [hl], b
+ ld [de], a
+ inc de
+ inc hl
+
+; Keep doing this until everything's in order.
+
+.loop
+rept 2
+ dec de
+endr
+ dec c
+ jr nz, .CheckFollowing
+
+ pop hl
+rept 2
+ inc hl
+endr
+ pop de
+ pop bc
+ dec c
+ jr nz, .CheckSprite
+
+.quit
+ ret
+; 14355
+
+
+ArrangeUsedSprites: ; 14355
+; Get the length of each sprite and space them out in VRAM.
+; Crystal introduces a second table in VRAM bank 0.
+
+ ld hl, UsedSprites
+ ld c, SPRITE_GFX_LIST_CAPACITY
+ ld b, 0
+.FirstTableLength
+; Keep going until the end of the list.
+ ld a, [hli]
+ and a
+ jr z, .quit
+
+ ld a, [hl]
+ call GetSpriteLength
+
+; Spill over into the second table after $80 tiles.
+ add b
+ cp $80
+ jr z, .loop
+ jr nc, .SecondTable
+
+.loop
+ ld [hl], b
+ inc hl
+ ld b, a
+
+; Assumes the next table will be reached before c hits 0.
+ dec c
+ jr nz, .FirstTableLength
+
+.SecondTable
+; The second tile table starts at tile $80.
+ ld b, $80
+ dec hl
+.SecondTableLength
+; Keep going until the end of the list.
+ ld a, [hli]
+ and a
+ jr z, .quit
+
+ ld a, [hl]
+ call GetSpriteLength
+
+; There are only two tables, so don't go any further than that.
+ add b
+ jr c, .quit
+
+ ld [hl], b
+ ld b, a
+ inc hl
+
+ dec c
+ jr nz, .SecondTableLength
+
+.quit
+ ret
+; 14386
+
+
+GetSpriteLength: ; 14386
+; Return the length of sprite type a in tiles.
+
+ cp WALKING_SPRITE
+ jr z, .AnyDirection
+ cp STANDING_SPRITE
+ jr z, .AnyDirection
+ cp STILL_SPRITE
+ jr z, .OneDirection
+
+ ld a, 12
+ ret
+
+.AnyDirection
+ ld a, 12
+ ret
+
+.OneDirection
+ ld a, 4
+ ret
+; 1439b
+
+
+GetUsedSprites: ; 1439b
+ ld hl, UsedSprites
+ ld c, SPRITE_GFX_LIST_CAPACITY
+
+.loop
+ ld a, [wSpriteFlags]
+ res 5, a
+ ld [wSpriteFlags], a
+
+ ld a, [hli]
+ and a
+ jr z, .done
+ ld [hUsedSpriteIndex], a
+
+ ld a, [hli]
+ ld [hUsedSpriteTile], a
+
+ bit 7, a
+ jr z, .dont_set
+
+ ld a, [wSpriteFlags]
+ set 5, a ; load VBank0
+ ld [wSpriteFlags], a
+
+.dont_set
+ push bc
+ push hl
+ call GetUsedSprite
+ pop hl
+ pop bc
+ dec c
+ jr nz, .loop
+
+.done
+ ret
+; 143c8
+
+GetUsedSprite: ; 143c8
+ ld a, [hUsedSpriteIndex]
+ call SafeGetSprite
+ ld a, [hUsedSpriteTile]
+ call .GetTileAddr
+ push hl
+ push de
+ push bc
+ ld a, [wSpriteFlags]
+ bit 7, a
+ jr nz, .skip
+ call .CopyToVram
+
+.skip
+ pop bc
+ ld l, c
+ ld h, $0
+rept 4
+ add hl, hl
+endr
+ pop de
+ add hl, de
+ ld d, h
+ ld e, l
+ pop hl
+
+ ld a, [wSpriteFlags]
+ bit 5, a
+ jr nz, .done
+ bit 6, a
+ jr nz, .done
+
+ ld a, [hUsedSpriteIndex]
+ call _DoesSpriteHaveFacings
+ jr c, .done
+
+ ld a, h
+ add $8
+ ld h, a
+ call .CopyToVram
+
+.done
+ ret
+; 14406
+
+.GetTileAddr: ; 14406
+; Return the address of tile (a) in (hl).
+ and $7f
+ ld l, a
+ ld h, 0
+rept 4
+ add hl, hl
+endr
+ ld a, l
+ add VTiles0 % $100
+ ld l, a
+ ld a, h
+ adc VTiles0 / $100
+ ld h, a
+ ret
+; 14418
+
+.CopyToVram: ; 14418
+ ld a, [rVBK]
+ push af
+ ld a, [wSpriteFlags]
+ bit 5, a
+ ld a, $1
+ jr z, .bankswitch
+ ld a, $0
+
+.bankswitch
+ ld [rVBK], a
+ call Get2bpp
+ pop af
+ ld [rVBK], a
+ ret
+; 1442f
+
+LoadEmote:: ; 1442f
+; Get the address of the pointer to emote c.
+ ld a, c
+ ld bc, 6
+ ld hl, EmotesPointers
+ call AddNTimes
+; Load the emote address into de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+; load the length of the emote (in tiles) into c
+ inc hl
+ ld c, [hl]
+ swap c
+; load the emote pointer bank into b
+ inc hl
+ ld b, [hl]
+; load the VRAM destination into hl
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+; if the emote has a length of 0, do not proceed (error handling)
+ ld a, c
+ and a
+ ret z
+ call GetEmote2bpp
+ ret
+; 1444d
+
+emote_header: MACRO
+ dw \1
+ db \2 tiles, BANK(\1)
+ dw VTiles1 tile \3
+ENDM
+
+EmotesPointers: ; 144d
+; dw source address
+; db length, bank
+; dw dest address
+
+ emote_header ShockEmote, 4, $78
+ emote_header QuestionEmote, 4, $78
+ emote_header HappyEmote, 4, $78
+ emote_header SadEmote, 4, $78
+ emote_header HeartEmote, 4, $78
+ emote_header BoltEmote, 4, $78
+ emote_header SleepEmote, 4, $78
+ emote_header FishEmote, 4, $78
+ emote_header JumpShadowGFX, 1, $7c
+ emote_header FishingRodGFX2, 2, $7c
+ emote_header BoulderDustGFX, 2, $7e
+ emote_header FishingRodGFX4, 1, $7e
+; 14495
+
+
+SpriteMons: ; 14495
+ db UNOWN
+ db GEODUDE
+ db GROWLITHE
+ db WEEDLE
+ db SHELLDER
+ db ODDISH
+ db GENGAR
+ db ZUBAT
+ db MAGIKARP
+ db SQUIRTLE
+ db TOGEPI
+ db BUTTERFREE
+ db DIGLETT
+ db POLIWAG
+ db PIKACHU
+ db CLEFAIRY
+ db CHARMANDER
+ db JYNX
+ db STARMIE
+ db BULBASAUR
+ db JIGGLYPUFF
+ db GRIMER
+ db EKANS
+ db PARAS
+ db TENTACOOL
+ db TAUROS
+ db MACHOP
+ db VOLTORB
+ db LAPRAS
+ db RHYDON
+ db MOLTRES
+ db SNORLAX
+ db GYARADOS
+ db LUGIA
+ db HO_OH
+; 144b8
+
+
+OutdoorSprites: ; 144b8
+; Valid sprite IDs for each map group.
+
+ dw Group1Sprites
+ dw Group2Sprites
+ dw Group3Sprites
+ dw Group4Sprites
+ dw Group5Sprites
+ dw Group6Sprites
+ dw Group7Sprites
+ dw Group8Sprites
+ dw Group9Sprites
+ dw Group10Sprites
+ dw Group11Sprites
+ dw Group12Sprites
+ dw Group13Sprites
+ dw Group14Sprites
+ dw Group15Sprites
+ dw Group16Sprites
+ dw Group17Sprites
+ dw Group18Sprites
+ dw Group19Sprites
+ dw Group20Sprites
+ dw Group21Sprites
+ dw Group22Sprites
+ dw Group23Sprites
+ dw Group24Sprites
+ dw Group25Sprites
+ dw Group26Sprites
+; 144ec
+
+
+Group13Sprites: ; 144ec
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_BLUE
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SWIMMER_GUY
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14503
+
+Group23Sprites: ; 14503
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_BLUE
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SWIMMER_GUY
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 1451a
+
+Group14Sprites: ; 1451a
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_BLUE
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SWIMMER_GUY
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14531
+
+Group6Sprites: ; 14531
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_BLUE
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SWIMMER_GUY
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14548
+
+Group7Sprites: ; 14548
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_SUPER_NERD
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_POKEFAN_M
+ db SPRITE_ROCKET
+ db SPRITE_MISTY
+ db SPRITE_POKE_BALL
+ db SPRITE_SLOWPOKE
+; 1455f
+
+Group25Sprites: ; 1455f
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_SUPER_NERD
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_POKEFAN_M
+ db SPRITE_ROCKET
+ db SPRITE_MISTY
+ db SPRITE_POKE_BALL
+ db SPRITE_SLOWPOKE
+; 14576
+
+Group21Sprites: ; 14576
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_FISHER
+ db SPRITE_POLIWAG
+ db SPRITE_TEACHER
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_BIKER
+ db SPRITE_SILVER
+ db SPRITE_BLUE
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 1458d
+
+Group18Sprites: ; 1458d
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_POKEFAN_M
+ db SPRITE_MACHOP
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_FISHER
+ db SPRITE_TEACHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_BIKER
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 145a4
+
+Group12Sprites: ; 145a4
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_POKEFAN_M
+ db SPRITE_MACHOP
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_FISHER
+ db SPRITE_TEACHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_BIKER
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 145bb
+
+Group17Sprites: ; 145bb
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_POKEFAN_M
+ db SPRITE_MACHOP
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_FISHER
+ db SPRITE_TEACHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_BIKER
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 145d2
+
+Group16Sprites: ; 145d2
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_POKEFAN_M
+ db SPRITE_BUENA
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_FISHER
+ db SPRITE_TEACHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_MACHOP
+ db SPRITE_BIKER
+ db SPRITE_POKE_BALL
+ db SPRITE_BOULDER
+; 145e9
+
+Group24Sprites: ; 145e9
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_SILVER
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_YOUNGSTER
+ db SPRITE_MONSTER
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14600
+
+Group26Sprites: ; 14600
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_SILVER
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_YOUNGSTER
+ db SPRITE_MONSTER
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14617
+
+Group19Sprites: ; 14617
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_SILVER
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_YOUNGSTER
+ db SPRITE_MONSTER
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 1462e
+
+Group10Sprites: ; 1462e
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_FISHER
+ db SPRITE_LASS
+ db SPRITE_OFFICER
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_BUG_CATCHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_WEIRD_TREE
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14645
+
+Group4Sprites: ; 14645
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_FISHER
+ db SPRITE_LASS
+ db SPRITE_OFFICER
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_BUG_CATCHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_WEIRD_TREE
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 1465c
+
+Group8Sprites: ; 1465c
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_KURT_OUTSIDE
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_OFFICER
+ db SPRITE_POKEFAN_M
+ db SPRITE_BLACK_BELT
+ db SPRITE_TEACHER
+ db SPRITE_AZALEA_ROCKET
+ db SPRITE_LASS
+ db SPRITE_SILVER
+ db SPRITE_FRUIT_TREE
+ db SPRITE_SLOWPOKE
+; 14673
+
+Group11Sprites: ; 14673
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_POKE_BALL
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_OFFICER
+ db SPRITE_POKEFAN_M
+ db SPRITE_DAYCARE_MON_1
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_ROCKET
+ db SPRITE_LASS
+ db SPRITE_DAYCARE_MON_2
+ db SPRITE_FRUIT_TREE
+ db SPRITE_SLOWPOKE
+; 1468a
+
+Group22Sprites: ; 1468a
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_STANDING_YOUNGSTER
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_OLIVINE_RIVAL
+ db SPRITE_POKEFAN_M
+ db SPRITE_LASS
+ db SPRITE_BUENA
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SAILOR
+ db SPRITE_POKEFAN_F
+ db SPRITE_SUPER_NERD
+ db SPRITE_TAUROS
+ db SPRITE_FRUIT_TREE
+ db SPRITE_ROCK
+; 146a1
+
+Group1Sprites: ; 146a1
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_STANDING_YOUNGSTER
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_OLIVINE_RIVAL
+ db SPRITE_POKEFAN_M
+ db SPRITE_LASS
+ db SPRITE_BUENA
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SAILOR
+ db SPRITE_POKEFAN_F
+ db SPRITE_SUPER_NERD
+ db SPRITE_TAUROS
+ db SPRITE_FRUIT_TREE
+ db SPRITE_ROCK
+; 146b8
+
+Group9Sprites: ; 146b8
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_LANCE
+ db SPRITE_GRAMPS
+ db SPRITE_SUPER_NERD
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_FISHER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_LASS
+ db SPRITE_YOUNGSTER
+ db SPRITE_GYARADOS
+ db SPRITE_FRUIT_TREE
+ db SPRITE_POKE_BALL
+; 146cf
+
+Group2Sprites: ; 146cf
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_SUPER_NERD
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_POKEFAN_M
+ db SPRITE_BLACK_BELT
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_FISHER
+ db SPRITE_FRUIT_TREE
+ db SPRITE_POKE_BALL
+; 146e6
+
+Group5Sprites: ; 146e6
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_SUPER_NERD
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_POKEFAN_M
+ db SPRITE_BLACK_BELT
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_FISHER
+ db SPRITE_FRUIT_TREE
+ db SPRITE_POKE_BALL
+; 146fd
+
+Group3Sprites: ; 146fd
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_GAMEBOY_KID
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_LASS
+ db SPRITE_POKEFAN_F
+ db SPRITE_TEACHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_GROWLITHE
+ db SPRITE_POKEFAN_M
+ db SPRITE_ROCKER
+ db SPRITE_FISHER
+ db SPRITE_SCIENTIST
+ db SPRITE_POKE_BALL
+ db SPRITE_BOULDER
+; 14714
+
+Group15Sprites: ; 14714
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_SAILOR
+ db SPRITE_FISHING_GURU
+ db SPRITE_GENTLEMAN
+ db SPRITE_SUPER_NERD
+ db SPRITE_HO_OH
+ db SPRITE_TEACHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_YOUNGSTER
+ db SPRITE_FAIRY
+ db SPRITE_POKE_BALL
+ db SPRITE_ROCK
+; 1472b
+
+Group20Sprites: ; 1472b
+ db SPRITE_OAK
+ db SPRITE_FISHER
+ db SPRITE_TEACHER
+ db SPRITE_TWIN
+ db SPRITE_POKEFAN_M
+ db SPRITE_GRAMPS
+ db SPRITE_FAIRY
+ db SPRITE_SILVER
+ db SPRITE_FISHING_GURU
+ db SPRITE_POKE_BALL
+ db SPRITE_POKEDEX
+; 14736
+
+
+SpriteHeaders: ; 14736
+INCLUDE "gfx/overworld/sprite_headers.asm"
+; 1499a
--- a/engine/pack.asm
+++ b/engine/pack.asm
@@ -1,7 +1,7 @@
Pack: ; 10000
ld hl, Options
- set 4, [hl]
+ set NO_TEXT_SCROLL, [hl]
call Function1068a
.loop
call JoyTextDelay
@@ -14,9 +14,9 @@
.done
ld a, [wcf65]
- ld [wd0d6], a
+ ld [wLastPocket], a
ld hl, Options
- res 4, [hl]
+ res NO_TEXT_SCROLL, [hl]
ret
; 10026
@@ -65,11 +65,11 @@
call CopyMenuDataHeader
ld a, [wItemsPocketCursor]
ld [wMenuCursorBuffer], a
- ld a, [wd0df]
- ld [wd0e4], a
+ ld a, [wItemsPocketScrollPosition]
+ ld [wMenuScrollPosition], a
call HandleScrollingMenu
- ld a, [wd0e4]
- ld [wd0df], a
+ ld a, [wMenuScrollPosition]
+ ld [wItemsPocketScrollPosition], a
ld a, [MenuSelection2]
ld [wItemsPocketCursor], a
ld b, $7
@@ -93,11 +93,11 @@
call CopyMenuDataHeader
ld a, [wKeyItemsPocketCursor]
ld [wMenuCursorBuffer], a
- ld a, [wd0e0]
- ld [wd0e4], a
+ ld a, [wKeyItemsPocketScrollPosition]
+ ld [wMenuScrollPosition], a
call HandleScrollingMenu
- ld a, [wd0e4]
- ld [wd0e0], a
+ ld a, [wMenuScrollPosition]
+ ld [wKeyItemsPocketScrollPosition], a
ld a, [MenuSelection2]
ld [wKeyItemsPocketCursor], a
ld b, $3
@@ -164,7 +164,7 @@
Jumptable_10137: ; 10137
dw Function10159
- dw Function10492_ret
+ dw QuitItemSubmenu
; 1013b
MenuDataHeader_0x1013b: ; 0x1013b
@@ -185,8 +185,8 @@
Jumptable_10153: ; 10153
dw Function10159
- dw Function103fd
- dw Function10492_ret
+ dw GiveItem
+ dw QuitItemSubmenu
; 10159
Function10159: ; 10159
@@ -223,11 +223,11 @@
call CopyMenuDataHeader
ld a, [wBallsPocketCursor]
ld [wMenuCursorBuffer], a
- ld a, [wd0e1]
- ld [wd0e4], a
+ ld a, [wBallsPocketScrollPosition]
+ ld [wMenuScrollPosition], a
call HandleScrollingMenu
- ld a, [wd0e4]
- ld [wd0e1], a
+ ld a, [wMenuScrollPosition]
+ ld [wBallsPocketScrollPosition], a
ld a, [MenuSelection2]
ld [wBallsPocketCursor], a
ld b, $1
@@ -267,32 +267,32 @@
jr .tossable_unselectable
.usable
- ld hl, MenuDataHeader_0x10249
+ ld hl, MenuDataHeader_UsableKeyItem
ld de, Jumptable_1026a
jr .build_menu
.selectable_usable
- ld hl, MenuDataHeader_0x10274
+ ld hl, MenuDataHeader_UsableItem
ld de, Jumptable_10291
jr .build_menu
.tossable_selectable
- ld hl, MenuDataHeader_0x10299
+ ld hl, MenuDataHeader_UnusableItem
ld de, Jumptable_102ac
jr .build_menu
.tossable_unselectable
- ld hl, MenuDataHeader_0x102b0
+ ld hl, MenuDataHeader_UnusableKeyItem
ld de, Jumptable_102c7
jr .build_menu
.unusable
- ld hl, MenuDataHeader_0x102cd
+ ld hl, MenuDataHeader_HoldableKeyItem
ld de, Jumptable_102ea
jr .build_menu
.selectable_unusable
- ld hl, MenuDataHeader_0x102f2
+ ld hl, MenuDataHeader_HoldableItem
ld de, Jumptable_1030b
.build_menu
push de
@@ -307,15 +307,15 @@
jp [hl]
; 10249 (4:4249)
-MenuDataHeader_0x10249: ; 0x10249
+MenuDataHeader_UsableKeyItem: ; 0x10249
db $40 ; flags
db 01, 13 ; start coords
db 11, 19 ; end coords
- dw MenuData2_0x10251
+ dw .MenuData2
db 1 ; default option
; 0x10251
-MenuData2_0x10251: ; 0x10251
+.MenuData2: ; 0x10251
db $c0 ; flags
db 5 ; items
db "USE@"
@@ -326,22 +326,22 @@
; 0x1026a
Jumptable_1026a: ; 1026a
- dw Function10311
- dw Function103fd
- dw Function10364
- dw Function103c2
- dw Function10492_ret
+ dw UseItem
+ dw GiveItem
+ dw TossMenu
+ dw RegisterItem
+ dw QuitItemSubmenu
; 10274
-MenuDataHeader_0x10274: ; 0x10274
+MenuDataHeader_UsableItem: ; 0x10274
db $40 ; flags
db 03, 13 ; start coords
db 11, 19 ; end coords
- dw MenuData2_0x1027c
+ dw .MenuData2
db 1 ; default option
; 0x1027c
-MenuData2_0x1027c: ; 0x1027c
+.MenuData2: ; 0x1027c
db $c0 ; flags
db 4 ; items
db "USE@"
@@ -351,21 +351,21 @@
; 0x10291
Jumptable_10291: ; 10291
- dw Function10311
- dw Function103fd
- dw Function10364
- dw Function10492_ret
+ dw UseItem
+ dw GiveItem
+ dw TossMenu
+ dw QuitItemSubmenu
; 10299
-MenuDataHeader_0x10299: ; 0x10299
+MenuDataHeader_UnusableItem: ; 0x10299
db %01000000 ; flags
db 07, 13 ; start coords
db 11, 19 ; end coords
- dw MenuData2_0x102a1
+ dw .MenuData2
db 1 ; default option
; 0x102a1
-MenuData2_0x102a1: ; 0x102a1
+.MenuData2: ; 0x102a1
db $c0 ; flags
db 2 ; items
db "USE@"
@@ -373,19 +373,19 @@
; 0x102ac
Jumptable_102ac: ; 102ac
- dw Function10311
- dw Function10492_ret
+ dw UseItem
+ dw QuitItemSubmenu
; 102b0
-MenuDataHeader_0x102b0: ; 0x102b0
+MenuDataHeader_UnusableKeyItem: ; 0x102b0
db %01000000 ; flags
db 05, 13 ; start coords
db 11, 19 ; end coords
- dw MenuData2_0x102b8
+ dw .MenuData2
db 1 ; default option
; 0x102b8
-MenuData2_0x102b8: ; 0x102b8
+.MenuData2: ; 0x102b8
db $c0 ; flags
db 3 ; items
db "USE@"
@@ -394,20 +394,20 @@
; 0x102c7
Jumptable_102c7: ; 102c7
- dw Function10311
- dw Function103c2
- dw Function10492_ret
+ dw UseItem
+ dw RegisterItem
+ dw QuitItemSubmenu
; 102cd
-MenuDataHeader_0x102cd: ; 0x102cd
+MenuDataHeader_HoldableKeyItem: ; 0x102cd
db $40 ; flags
db 03, 13 ; start coords
db 11, 19 ; end coords
- dw MenuData2_0x102d5
+ dw .MenuData2
db 1 ; default option
; 0x102d5
-MenuData2_0x102d5: ; 0x102d5
+.MenuData2: ; 0x102d5
db $c0 ; flags
db 4 ; items
db "GIVE@"
@@ -417,21 +417,21 @@
; 0x102ea
Jumptable_102ea: ; 102ea
- dw Function103fd
- dw Function10364
- dw Function103c2
- dw Function10492_ret
+ dw GiveItem
+ dw TossMenu
+ dw RegisterItem
+ dw QuitItemSubmenu
; 102f2
-MenuDataHeader_0x102f2: ; 0x102f2
+MenuDataHeader_HoldableItem: ; 0x102f2
db $40 ; flags
db 05, 13 ; start coords
db 11, 19 ; end coords
- dw MenuData2_0x102fa
+ dw .MenuData2
db 1 ; default option
; 0x102fa
-MenuData2_0x102fa: ; 0x102fa
+.MenuData2: ; 0x102fa
db $c0 ; flags
db 3 ; items
db "GIVE@"
@@ -440,12 +440,12 @@
; 0x1030b
Jumptable_1030b: ; 1030b
- dw Function103fd
- dw Function10364
- dw Function10492_ret
+ dw GiveItem
+ dw TossMenu
+ dw QuitItemSubmenu
; 10311
-Function10311: ; 10311
+UseItem: ; 10311
callba CheckItemMenu
ld a, [wItemAttributeParamBuffer]
ld hl, .jumptable
@@ -464,7 +464,7 @@
; 1035c
.Oak: ; 1032d (4:432d)
- ld hl, UnknownText_0x10af3
+ ld hl, Text_ThisIsntTheTime
call Function10889
ret
@@ -498,30 +498,30 @@
ret
; 10364 (4:4364)
-Function10364: ; 10364
- ld hl, UnknownText_0x10ae4
+TossMenu: ; 10364
+ ld hl, Text_ThrowAwayHowMany
call Function10889
callba Function24fbf
push af
call ExitMenu
pop af
- jr c, .asm_1039c
- call Function10a1d
- ld hl, UnknownText_0x10ae9
+ jr c, .finish
+ call Pack_GetItemName
+ ld hl, Text_ConfirmThrowAway
call MenuTextBox
call YesNoBox
push af
call ExitMenu
pop af
- jr c, .asm_1039c
+ jr c, .finish
ld hl, NumItems
- ld a, [wd107]
+ ld a, [ItemCountBuffer]
call TossItem
- call Function10a1d
- ld hl, UnknownText_0x10aee
+ call Pack_GetItemName
+ ld hl, Text_ThrewAway
call Function10889
-.asm_1039c
+.finish
ret
; 1039d
@@ -538,23 +538,23 @@
.asm_103aa
xor a
ld [wBallsPocketCursor], a
- ld [wd0e1], a
+ ld [wBallsPocketScrollPosition], a
ret
.asm_103b2
xor a
ld [wItemsPocketCursor], a
- ld [wd0df], a
+ ld [wItemsPocketScrollPosition], a
ret
.asm_103ba
xor a
ld [wKeyItemsPocketCursor], a
- ld [wd0e0], a
+ ld [wKeyItemsPocketScrollPosition], a
ret
; 103c2
-Function103c2: ; 103c2
+RegisterItem: ; 103c2
callba CheckSelectableItem
ld a, [wItemAttributeParamBuffer]
and a
@@ -564,7 +564,7 @@
rrca
and $c0
ld b, a
- ld a, [wd107]
+ ld a, [ItemCountBuffer]
inc a
and $3f
or b
@@ -571,20 +571,20 @@
ld [WhichRegisteredItem], a
ld a, [CurItem]
ld [RegisteredItem], a
- call Function10a1d
+ call Pack_GetItemName
ld de, SFX_FULL_HEAL
call WaitPlaySFX
- ld hl, UnknownText_0x10afd
+ ld hl, Text_RegisteredItem
call Function10889
ret
.asm_103f6
- ld hl, UnknownText_0x10b02
+ ld hl, Text_CantRegister
call Function10889
ret
; 103fd
-Function103fd: ; 103fd
+GiveItem: ; 103fd
ld a, [PartyCount]
and a
jp z, Function10486
@@ -595,9 +595,9 @@
ld a, $8
ld [PartyMenuActionText], a
call ClearBGPalettes
- callba Function5004f
- callba Function50405
- callba Function503e0
+ callba LoadPartyMenuGFX
+ callba InitPartyMenuWithCancel
+ callba InitPartyMenuGFX
.asm_10427
callba WritePartyMenuTilemap
callba PrintPartyMenuText
@@ -652,7 +652,7 @@
db "@"
; 0x10492
-Function10492_ret: ; 10492
+QuitItemSubmenu: ; 10492
ret
; 10493
@@ -661,18 +661,18 @@
ld hl, Options
set 4, [hl]
call Function1068a
-.asm_1049b
+.loop
call JoyTextDelay
ld a, [wJumptableIndex]
bit 7, a
- jr nz, .asm_104ad
+ jr nz, .end
call Function104b9
call DelayFrame
- jr .asm_1049b
+ jr .loop
-.asm_104ad
+.end
ld a, [wcf65]
- ld [wd0d6], a
+ ld [wLastPocket], a
ld hl, Options
res 4, [hl]
ret
@@ -723,11 +723,11 @@
call CopyMenuDataHeader
ld a, [wItemsPocketCursor]
ld [wMenuCursorBuffer], a
- ld a, [wd0df]
- ld [wd0e4], a
+ ld a, [wItemsPocketScrollPosition]
+ ld [wMenuScrollPosition], a
call HandleScrollingMenu
- ld a, [wd0e4]
- ld [wd0df], a
+ ld a, [wMenuScrollPosition]
+ ld [wItemsPocketScrollPosition], a
ld a, [MenuSelection2]
ld [wItemsPocketCursor], a
ld b, $7
@@ -751,11 +751,11 @@
call CopyMenuDataHeader
ld a, [wKeyItemsPocketCursor]
ld [wMenuCursorBuffer], a
- ld a, [wd0e0]
- ld [wd0e4], a
+ ld a, [wKeyItemsPocketScrollPosition]
+ ld [wMenuScrollPosition], a
call HandleScrollingMenu
- ld a, [wd0e4]
- ld [wd0e0], a
+ ld a, [wMenuScrollPosition]
+ ld [wKeyItemsPocketScrollPosition], a
ld a, [MenuSelection2]
ld [wKeyItemsPocketCursor], a
ld b, $3
@@ -773,7 +773,7 @@
xor a
ld [hBGMapMode], a
call WaitBGMap_DrawPackGFX
- ld hl, UnknownText_0x10b0c
+ ld hl, Text_PackEmptyString
call Function10889
call Function10866
ret
@@ -802,11 +802,11 @@
call CopyMenuDataHeader
ld a, [wBallsPocketCursor]
ld [wMenuCursorBuffer], a
- ld a, [wd0e1]
- ld [wd0e4], a
+ ld a, [wBallsPocketScrollPosition]
+ ld [wMenuScrollPosition], a
call HandleScrollingMenu
- ld a, [wd0e4]
- ld [wd0e1], a
+ ld a, [wMenuScrollPosition]
+ ld [wBallsPocketScrollPosition], a
ld a, [MenuSelection2]
ld [wBallsPocketCursor], a
ld b, $1
@@ -898,7 +898,7 @@
.Oak: ; 10645 (4:4645)
- ld hl, UnknownText_0x10af3
+ ld hl, Text_ThisIsntTheTime
call Function10889
ret
@@ -951,7 +951,7 @@
Function1068a: ; 1068a
xor a
ld [wJumptableIndex], a
- ld a, [wd0d6]
+ ld a, [wLastPocket]
and $3
ld [wcf65], a
inc a
@@ -1008,33 +1008,33 @@
call CopyMenuDataHeader
ld a, [wItemsPocketCursor]
ld [wMenuCursorBuffer], a
- ld a, [wd0df]
- ld [wd0e4], a
+ ld a, [wItemsPocketScrollPosition]
+ ld [wMenuScrollPosition], a
call HandleScrollingMenu
- ld a, [wd0e4]
- ld [wd0df], a
+ ld a, [wMenuScrollPosition]
+ ld [wItemsPocketScrollPosition], a
ld a, [MenuSelection2]
ld [wItemsPocketCursor], a
ret
.KeyItemsPocket: ; 106ff (4:46ff)
- ld a, $2
+ ld a, 2
call InitPocket
ld hl, MenuDataHeader_0x10a97
call CopyMenuDataHeader
ld a, [wKeyItemsPocketCursor]
ld [wMenuCursorBuffer], a
- ld a, [wd0e0]
- ld [wd0e4], a
+ ld a, [wKeyItemsPocketScrollPosition]
+ ld [wMenuScrollPosition], a
call HandleScrollingMenu
- ld a, [wd0e4]
- ld [wd0e0], a
+ ld a, [wMenuScrollPosition]
+ ld [wKeyItemsPocketScrollPosition], a
ld a, [MenuSelection2]
ld [wKeyItemsPocketCursor], a
ret
.TMHMPocket: ; 10726 (4:4726)
- ld a, $3
+ ld a, 3
call InitPocket
call WaitBGMap_DrawPackGFX
callba Function2c76f
@@ -1043,17 +1043,17 @@
ret
.BallsPocket: ; 1073b (4:473b)
- ld a, $1
+ ld a, 1
call InitPocket
ld hl, MenuDataHeader_0x10ac7
call CopyMenuDataHeader
ld a, [wBallsPocketCursor]
ld [wMenuCursorBuffer], a
- ld a, [wd0e1]
- ld [wd0e4], a
+ ld a, [wBallsPocketScrollPosition]
+ ld [wMenuScrollPosition], a
call HandleScrollingMenu
- ld a, [wd0e4]
- ld [wd0e1], a
+ ld a, [wMenuScrollPosition]
+ ld [wBallsPocketScrollPosition], a
ld a, [MenuSelection2]
ld [wBallsPocketCursor], a
ret
@@ -1120,17 +1120,17 @@
ret
; 107bb
-Function107bb: ; 107bb
+TutorialPack: ; 107bb
call Function106a5
ld a, [InputType]
or a
- jr z, .asm_107ca
+ jr z, .loop
callba _DudeAutoInput_RightA
-.asm_107ca
+.loop
call Function107d7
call Function1076f
- jr c, .asm_107ca
+ jr c, .loop
xor a
ld [wcf66], a
ret
@@ -1138,13 +1138,13 @@
Function107d7: ; 107d7
ld a, [wJumptableIndex]
- ld hl, Jumptable_107e1
+ ld hl, .jumptable
call Function1086b
jp [hl]
; 107e1
-Jumptable_107e1: ; 107e1 (4:47e1)
+.jumptable: ; 107e1 (4:47e1)
dw Function107e9
dw Function1083b
dw Function10807
@@ -1161,11 +1161,11 @@
db $40 ; flags
db 01, 07 ; start coords
db 11, 19 ; end coords
- dw MenuData2_0x107f7
+ dw .MenuData2
db 1 ; default option
; 0x107f7
-MenuData2_0x107f7: ; 0x107f7
+.MenuData2: ; 0x107f7
db $ae ; flags
db 5, 8 ; rows, columns
db 2 ; horizontal spacing
@@ -1172,11 +1172,11 @@
dbw 0, OTPartyMons
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
- dba Function244c3
+ dba UpdateItemDescription
; 10807
Function10807: ; 10807 (4:4807)
- ld a, $2
+ ld a, 2
ld hl, MenuDataHeader_0x1080e
jr Function1085a
; 1080e (4:480e)
@@ -1185,11 +1185,11 @@
db $40 ; flags
db 01, 07 ; start coords
db 11, 19 ; end coords
- dw MenuData2_0x10816
+ dw .MenuData2
db 1 ; default option
; 0x10816
-MenuData2_0x10816: ; 0x10816
+.MenuData2: ; 0x10816
db $ae ; flags
db 5, 8 ; rows, columns
db 1 ; horizontal spacing
@@ -1196,11 +1196,11 @@
dbw 0, OTPartyMon1Exp + 2
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
- dba Function244c3
+ dba UpdateItemDescription
; 10826
Function10826: ; 10826 (4:4826)
- ld a, $3
+ ld a, 3
call InitPocket
call WaitBGMap_DrawPackGFX
callba Function2c76f
@@ -1209,7 +1209,7 @@
ret
Function1083b: ; 1083b (4:483b)
- ld a, $1
+ ld a, 1
ld hl, MenuDataHeader_0x10842
jr Function1085a
; 10842 (4:4842)
@@ -1218,11 +1218,11 @@
db $40 ; flags
db 01, 07 ; start coords
db 11, 19 ; end coords
- dw MenuData2_0x1084a
+ dw .MenuData2
db 1 ; default option
; 0x1084a
-MenuData2_0x1084a: ; 0x1084a
+.MenuData2: ; 0x1084a
db $ae ; flags
db 5, 8 ; rows, columns
db 2 ; horizontal spacing
@@ -1229,7 +1229,7 @@
dbw 0, OTPartyMon1CaughtGender
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
- dba Function244c3
+ dba UpdateItemDescription
; 1085a
Function1085a: ; 1085a (4:485a)
@@ -1374,7 +1374,7 @@
ret
.asm_10923
callba Function2490c
- ld hl, UnknownText_0x10b07
+ ld hl, Text_MoveItemWhere
call Function10889
scf
ret
@@ -1410,13 +1410,19 @@
ld bc, $60 tiles
ld a, BANK(PackMenuGFX)
call FarCopyBytes
+
+; Background (blue if male, pink if female)
hlcoord 0, 1
ld bc, 11 * SCREEN_WIDTH
ld a, $24
call ByteFill
+
+; This is where the items themselves will be listed.
hlcoord 5, 1
lb bc, 11, 15
call ClearBox
+
+; ◀▶ POCKET ▼▲ ITEMS
hlcoord 0, 0
ld a, $28
ld c, SCREEN_WIDTH
@@ -1425,10 +1431,13 @@
inc a
dec c
jr nz, .loop
+
call DrawPocketName
- call Function109a5
- hlcoord 0, 12
- lb bc, 4, 18
+ call PlacePackGFX
+
+; Place the textbox for displaying the item description
+ hlcoord 0, SCREEN_HEIGHT - 4 - 2
+ lb bc, 4, SCREEN_WIDTH - 2
call TextBox
call EnableLCD
call DrawPackGFX
@@ -1435,21 +1444,21 @@
ret
; 109a5
-Function109a5: ; 109a5
+PlacePackGFX: ; 109a5
hlcoord 0, 3
ld a, $50
- ld de, 15
+ ld de, SCREEN_WIDTH - 5
ld b, 3
-.asm_109af
+.row
ld c, 5
-.asm_109b1
+.column
ld [hli], a
inc a
dec c
- jr nz, .asm_109b1
+ jr nz, .column
add hl, de
dec b
- jr nz, .asm_109af
+ jr nz, .row
ret
; 109bb
@@ -1487,21 +1496,33 @@
; 109e1
.tilemap: ; 109e1
- db $00, $04, $04, $04, $01, $06, $07, $08, $09, $0a, $02, $05, $05, $05, $03
- db $00, $04, $04, $04, $01, $15, $16, $17, $18, $19, $02, $05, $05, $05, $03
- db $00, $04, $04, $04, $01, $0b, $0c, $0d, $0e, $0f, $02, $05, $05, $05, $03
- db $00, $04, $04, $04, $01, $10, $11, $12, $13, $14, $02, $05, $05, $05, $03
+ db $00, $04, $04, $04, $01 ; top border
+ db $06, $07, $08, $09, $0a ; Items
+ db $02, $05, $05, $05, $03 ; bottom border
+
+ db $00, $04, $04, $04, $01 ; top border
+ db $15, $16, $17, $18, $19 ; Balls
+ db $02, $05, $05, $05, $03 ; bottom border
+
+ db $00, $04, $04, $04, $01 ; top border
+ db $0b, $0c, $0d, $0e, $0f ; Key Items
+ db $02, $05, $05, $05, $03 ; bottom border
+
+ db $00, $04, $04, $04, $01 ; top border
+ db $10, $11, $12, $13, $14 ; TM/HM
+ db $02, $05, $05, $05, $03 ; bottom border
; 10a1d
-Function10a1d: ; 10a1d
+Pack_GetItemName: ; 10a1d
ld a, [CurItem]
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
call GetItemName
call CopyName1
ret
; 10a2a
-Function10a2a: ; 10a2a
+Pack_ClearTilemap: ; 10a2a
+; unreferenced
hlcoord 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, " "
@@ -1540,7 +1561,7 @@
dbw 0, NumItems
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
- dba Function244c3
+ dba UpdateItemDescription
; 10a67
MenuDataHeader_0x10a67: ; 0x10a67
@@ -1558,7 +1579,7 @@
dbw 0, NumItems
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
- dba Function244c3
+ dba UpdateItemDescription
; 10a7f
MenuDataHeader_0x10a7f: ; 0x10a7f
@@ -1576,7 +1597,7 @@
dbw 0, NumKeyItems
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
- dba Function244c3
+ dba UpdateItemDescription
; 10a97
MenuDataHeader_0x10a97: ; 0x10a97
@@ -1594,7 +1615,7 @@
dbw 0, NumKeyItems
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
- dba Function244c3
+ dba UpdateItemDescription
; 10aaf
MenuDataHeader_0x10aaf: ; 0x10aaf
@@ -1612,7 +1633,7 @@
dbw 0, NumBalls
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
- dba Function244c3
+ dba UpdateItemDescription
; 10ac7
MenuDataHeader_0x10ac7: ; 0x10ac7
@@ -1630,34 +1651,34 @@
dbw 0, NumBalls
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
- dba Function244c3
+ dba UpdateItemDescription
; 10adf
-UnknownText_0x10adf: ; 0x10adf
+Text_PackNoItems: ; 0x10adf
; No items.
text_jump UnknownText_0x1c0b9a
db "@"
; 0x10ae4
-UnknownText_0x10ae4: ; 0x10ae4
+Text_ThrowAwayHowMany: ; 0x10ae4
; Throw away how many?
text_jump UnknownText_0x1c0ba5
db "@"
; 0x10ae9
-UnknownText_0x10ae9: ; 0x10ae9
+Text_ConfirmThrowAway: ; 0x10ae9
; Throw away @ @ (S)?
text_jump UnknownText_0x1c0bbb
db "@"
; 0x10aee
-UnknownText_0x10aee: ; 0x10aee
+Text_ThrewAway: ; 0x10aee
; Threw away @ (S).
text_jump UnknownText_0x1c0bd8
db "@"
; 0x10af3
-UnknownText_0x10af3: ; 0x10af3
+Text_ThisIsntTheTime: ; 0x10af3
; OAK: ! This isn't the time to use that!
text_jump UnknownText_0x1c0bee
db "@"
@@ -1669,25 +1690,25 @@
db "@"
; 0x10afd
-UnknownText_0x10afd: ; 0x10afd
+Text_RegisteredItem: ; 0x10afd
; Registered the @ .
text_jump UnknownText_0x1c0c2e
db "@"
; 0x10b02
-UnknownText_0x10b02: ; 0x10b02
+Text_CantRegister: ; 0x10b02
; You can't register that item.
text_jump UnknownText_0x1c0c45
db "@"
; 0x10b07
-UnknownText_0x10b07: ; 0x10b07
+Text_MoveItemWhere: ; 0x10b07
; Where should this be moved to?
text_jump UnknownText_0x1c0c63
db "@"
; 0x10b0c
-UnknownText_0x10b0c: ; 0x10b0c
+Text_PackEmptyString: ; 0x10b0c
;
text_jump UnknownText_0x1c0c83
db "@"
--- a/engine/party_menu.asm
+++ b/engine/party_menu.asm
@@ -20,7 +20,7 @@
call ClearBGPalettes
call Function5003f
call WaitBGMap
- ld b, $a
+ ld b, SCGB_0A
call GetSGBLayout
call SetPalettes
call DelayFrame
@@ -30,18 +30,18 @@
; 5003f
Function5003f: ; 5003f
- call Function5004f
- call Function50405
- call Function503e0
+ call LoadPartyMenuGFX
+ call InitPartyMenuWithCancel
+ call InitPartyMenuGFX
call WritePartyMenuTilemap
call PrintPartyMenuText
ret
; 5004f
-Function5004f: ; 5004f
+LoadPartyMenuGFX: ; 5004f
call LoadFontsBattleExtra
callab Function8ad1 ; engine/color.asm
- callab InefficientlyClear121BytesAtwc300
+ callab ClearSpriteAnims
ret
; 5005f
@@ -149,7 +149,7 @@
ld b, $0
add hl, bc
call SetHPPal
- ld b, $fc
+ ld b, SCGB_FC
call GetSGBLayout
.skip
@@ -162,7 +162,7 @@
inc b
dec c
jr nz, .loop
- ld b, $a
+ ld b, SCGB_0A
call GetSGBLayout
ret
; 50117
@@ -648,7 +648,7 @@
; 503e0
-Function503e0: ; 503e0
+InitPartyMenuGFX: ; 503e0
ld hl, PartyCount
ld a, [hli]
and a
@@ -656,7 +656,7 @@
ld c, a
xor a
ld [hObjectStructIndexBuffer], a
-.asm_503ea
+.loop
push bc
push hl
ld hl, Function8e83f
@@ -669,60 +669,62 @@
pop hl
pop bc
dec c
- jr nz, .asm_503ea
+ jr nz, .loop
callab Function8cf69
ret
; 50405
-Function50405: ; 50405
+InitPartyMenuWithCancel: ; 50405
+; with cancel
xor a
- ld [wd0e3], a
- ld de, Unknown_5044f
- call Function1bb1
+ ld [wSwitchMon], a
+ ld de, PartyMenuAttributes
+ call InitMenu3
ld a, [PartyCount]
inc a
- ld [wcfa3], a
+ ld [wcfa3], a ; list length
dec a
ld b, a
- ld a, [wd0d8]
+ ld a, [wPartyMenuCursor]
and a
- jr z, .asm_50422
+ jr z, .skip
inc b
cp b
- jr c, .asm_50424
+ jr c, .done
-.asm_50422
+.skip
ld a, $1
-.asm_50424
+.done
ld [MenuSelection2], a
- ld a, $3
+ ld a, A_BUTTON | B_BUTTON
ld [wcfa8], a
ret
; 5042d
-Function5042d: ; 0x5042d
- ld de, Unknown_5044f
- call Function1bb1
+InitPartyMenuNoCancel: ; 0x5042d
+; no cancel
+ ld de, PartyMenuAttributes
+ call InitMenu3
ld a, [PartyCount]
- ld [wcfa3], a
+ ld [wcfa3], a ; list length
ld b, a
- ld a, [wd0d8]
+ ld a, [wPartyMenuCursor]
and a
- jr z, .asm_50444
+ jr z, .skip
inc b
cp b
- jr c, .asm_50446
-.asm_50444
+ jr c, .done
+.skip
ld a, $1
-.asm_50446
+.done
ld [MenuSelection2], a
- ld a, $3
+ ld a, A_BUTTON | B_BUTTON
ld [wcfa8], a
ret
; 5044f (14:444f)
-Unknown_5044f: ; 5044f
+PartyMenuAttributes: ; 5044f
; cursor y
; cursor x
; list length
@@ -744,7 +746,7 @@
ld a, [MenuSelection2] ; menu selection?
cp b
jr z, .exitmenu ; CANCEL
- ld [wd0d8], a
+ ld [wPartyMenuCursor], a
ld a, [hJoyLast]
ld b, a
bit 1, b
@@ -839,85 +841,85 @@
db "You have no <PK><MN>!@"
-Function50566: ; 50566
+PrintPartyMenuActionText: ; 50566
ld a, [CurPartyMon]
ld hl, PartyMonNicknames
call GetNick
ld a, [PartyMenuActionText]
and $f
- ld hl, Unknown_5057b
- call Function505c1
+ ld hl, .MenuActionTexts
+ call .PrintText
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
+.MenuActionTexts: ; 5057b
+ dw .Text_CuredOfPoison
+ dw .Text_BurnWasHealed
+ dw .Text_Defrosted
+ dw .Text_WokeUp
+ dw .Text_RidOfParalysis
+ dw .Text_RecoveredSomeHP
+ dw .Text_HealthReturned
+ dw .Text_Revitalized
+ dw .Text_GrewToLevel
+ dw .Text_CameToItsSenses
; 5058f
-UnknownText_0x5058f: ; 0x5058f
+.Text_RecoveredSomeHP: ; 0x5058f
; recovered @ HP!
text_jump UnknownText_0x1bc0a2
db "@"
; 0x50594
-UnknownText_0x50594: ; 0x50594
+.Text_CuredOfPoison: ; 0x50594
; 's cured of poison.
text_jump UnknownText_0x1bc0bb
db "@"
; 0x50599
-UnknownText_0x50599: ; 0x50599
+.Text_RidOfParalysis: ; 0x50599
; 's rid of paralysis.
text_jump UnknownText_0x1bc0d2
db "@"
; 0x5059e
-UnknownText_0x5059e: ; 0x5059e
+.Text_BurnWasHealed: ; 0x5059e
; 's burn was healed.
text_jump UnknownText_0x1bc0ea
db "@"
; 0x505a3
-UnknownText_0x505a3: ; 0x505a3
+.Text_Defrosted: ; 0x505a3
; was defrosted.
text_jump UnknownText_0x1bc101
db "@"
; 0x505a8
-UnknownText_0x505a8: ; 0x505a8
+.Text_WokeUp: ; 0x505a8
; woke up.
text_jump UnknownText_0x1bc115
db "@"
; 0x505ad
-UnknownText_0x505ad: ; 0x505ad
+.Text_HealthReturned: ; 0x505ad
; 's health returned.
text_jump UnknownText_0x1bc123
db "@"
; 0x505b2
-UnknownText_0x505b2: ; 0x505b2
+.Text_Revitalized: ; 0x505b2
; is revitalized.
text_jump UnknownText_0x1bc13a
db "@"
; 0x505b7
-UnknownText_0x505b7: ; 0x505b7
+.Text_GrewToLevel: ; 0x505b7
; grew to level @ !@ @
text_jump UnknownText_0x1bc14f
db "@"
; 0x505bc
-UnknownText_0x505bc: ; 0x505bc
+.Text_CameToItsSenses: ; 0x505bc
; came to its senses.
text_jump UnknownText_0x1bc16e
db "@"
@@ -924,7 +926,7 @@
; 0x505c1
-Function505c1: ; 505c1
+.PrintText: ; 505c1
ld e, a
ld d, 0
rept 2
@@ -935,7 +937,7 @@
ld l, a
ld a, [Options]
push af
- set 4, a
+ set NO_TEXT_SCROLL, a
ld [Options], a
call PrintText
pop af
--- a/engine/phone.asm
+++ b/engine/phone.asm
@@ -604,7 +604,7 @@
call PlaySFX
call Phone_CallerTextbox
call UpdateSprites
- callba Function4d188
+ callba PhoneRing_LoadEDTile
ret
; 90355
@@ -614,7 +614,7 @@
Phone_Wait20Frames
ld c, 20
call DelayFrames
- callba Function4d188
+ callba PhoneRing_LoadEDTile
ret
; 90363
--- a/engine/phone_scripts.asm
+++ b/engine/phone_scripts.asm
@@ -1914,123 +1914,123 @@
checknite
iftrue UnknownScript_0xbdfec
checkcode VAR_CALLERID
- if_equal PHONE_SCHOOLBOY_JACK, UnknownScript_0xbdeaa
- if_equal PHONE_SAILOR_HUEY, UnknownScript_0xbdeb0
- if_equal PHONE_COOLTRAINERM_GAVEN, UnknownScript_0xbdeb6
- if_equal PHONE_BIRDKEEPER_JOSE, UnknownScript_0xbdebc
- if_equal PHONE_YOUNGSTER_JOEY, UnknownScript_0xbdec2
- if_equal PHONE_BUG_CATCHER_WADE, UnknownScript_0xbdec8
- if_equal PHONE_FISHER_RALPH, UnknownScript_0xbdece
- if_equal PHONE_HIKER_ANTHONY, UnknownScript_0xbded4
- if_equal PHONE_CAMPER_TODD, UnknownScript_0xbdeda
- if_equal PHONE_JUGGLER_IRWIN, UnknownScript_0xbdee0
- if_equal PHONE_BUG_CATCHER_ARNIE, UnknownScript_0xbdee6
- if_equal PHONE_SCHOOLBOY_ALAN, UnknownScript_0xbdeec
- if_equal PHONE_SCHOOLBOY_CHAD, UnknownScript_0xbdef2
- if_equal PHONE_POKEFANM_DEREK, UnknownScript_0xbdef8
- if_equal PHONE_FISHER_TULLY, UnknownScript_0xbdefe
- if_equal PHONE_POKEMANIAC_BRENT, UnknownScript_0xbdf04
- if_equal PHONE_BIRDKEEPER_VANCE, UnknownScript_0xbdf0a
- if_equal PHONE_FISHER_WILTON, UnknownScript_0xbdf10
- if_equal PHONE_BLACKBELT_KENJI, UnknownScript_0xbdf16
- if_equal PHONE_HIKER_PARRY, UnknownScript_0xbdf1c
+ if_equal PHONE_SCHOOLBOY_JACK, .Jack
+ if_equal PHONE_SAILOR_HUEY, .Huey
+ if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+ if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+ if_equal PHONE_YOUNGSTER_JOEY, .Joey
+ if_equal PHONE_BUG_CATCHER_WADE, .Wade
+ if_equal PHONE_FISHER_RALPH, .Ralph
+ if_equal PHONE_HIKER_ANTHONY, .Anthony
+ if_equal PHONE_CAMPER_TODD, .Todd
+ if_equal PHONE_JUGGLER_IRWIN, .Irwin
+ if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+ if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+ if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+ if_equal PHONE_POKEFANM_DEREK, .Derek
+ if_equal PHONE_FISHER_TULLY, .Tully
+ if_equal PHONE_POKEMANIAC_BRENT, .Brent
+ if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+ if_equal PHONE_FISHER_WILTON, .Wilton
+ if_equal PHONE_BLACKBELT_KENJI, .Kenji
+ if_equal PHONE_HIKER_PARRY, .Parry
-UnknownScript_0xbdeaa:
+.Jack:
farwritetext UnknownText_0x1b4dc5
keeptextopen
end
-UnknownScript_0xbdeb0:
+.Huey:
farwritetext UnknownText_0x1b5073
keeptextopen
end
-UnknownScript_0xbdeb6:
+.Gaven:
farwritetext UnknownText_0x1b5270
keeptextopen
end
-UnknownScript_0xbdebc:
+.Jose:
farwritetext UnknownText_0x1b55ae
keeptextopen
end
-UnknownScript_0xbdec2:
+.Joey:
farwritetext UnknownText_0x1b589a
keeptextopen
end
-UnknownScript_0xbdec8:
+.Wade:
farwritetext UnknownText_0x1b5a3b
keeptextopen
end
-UnknownScript_0xbdece:
+.Ralph:
farwritetext UnknownText_0x1b5c10
keeptextopen
end
-UnknownScript_0xbded4:
+.Anthony:
farwritetext UnknownText_0x1b5f7a
keeptextopen
end
-UnknownScript_0xbdeda:
+.Todd:
farwritetext UnknownText_0x1b60f5
keeptextopen
end
-UnknownScript_0xbdee0:
+.Irwin:
farwritetext UnknownText_0x1b638c
keeptextopen
end
-UnknownScript_0xbdee6:
+.Arnie:
farwritetext UnknownText_0x1b6454
keeptextopen
end
-UnknownScript_0xbdeec:
+.Alan:
farwritetext UnknownText_0x1b659d
keeptextopen
end
-UnknownScript_0xbdef2:
+.Chad:
farwritetext UnknownText_0x1b67e2
keeptextopen
end
-UnknownScript_0xbdef8:
+.Derek:
farwritetext UnknownText_0x1b69a8
keeptextopen
end
-UnknownScript_0xbdefe:
+.Tully:
farwritetext UnknownText_0x1b6b39
keeptextopen
end
-UnknownScript_0xbdf04:
+.Brent:
farwritetext UnknownText_0x1b6c96
keeptextopen
end
-UnknownScript_0xbdf0a:
+.Vance:
farwritetext UnknownText_0x1b7019
keeptextopen
end
-UnknownScript_0xbdf10:
+.Wilton:
farwritetext UnknownText_0x1b71d5
keeptextopen
end
-UnknownScript_0xbdf16:
+.Kenji:
farwritetext UnknownText_0x1b730b
keeptextopen
end
-UnknownScript_0xbdf1c:
+.Parry:
farwritetext UnknownText_0x1b73c7
keeptextopen
end
@@ -2037,123 +2037,123 @@
UnknownScript_0xbdf22:
checkcode VAR_CALLERID
- if_equal PHONE_SCHOOLBOY_JACK, UnknownScript_0xbdf74
- if_equal PHONE_SAILOR_HUEY, UnknownScript_0xbdf7a
- if_equal PHONE_COOLTRAINERM_GAVEN, UnknownScript_0xbdf80
- if_equal PHONE_BIRDKEEPER_JOSE, UnknownScript_0xbdf86
- if_equal PHONE_YOUNGSTER_JOEY, UnknownScript_0xbdf8c
- if_equal PHONE_BUG_CATCHER_WADE, UnknownScript_0xbdf92
- if_equal PHONE_FISHER_RALPH, UnknownScript_0xbdf98
- if_equal PHONE_HIKER_ANTHONY, UnknownScript_0xbdf9e
- if_equal PHONE_CAMPER_TODD, UnknownScript_0xbdfa4
- if_equal PHONE_JUGGLER_IRWIN, UnknownScript_0xbdfaa
- if_equal PHONE_BUG_CATCHER_ARNIE, UnknownScript_0xbdfb0
- if_equal PHONE_SCHOOLBOY_ALAN, UnknownScript_0xbdfb6
- if_equal PHONE_SCHOOLBOY_CHAD, UnknownScript_0xbdfbc
- if_equal PHONE_POKEFANM_DEREK, UnknownScript_0xbdfc2
- if_equal PHONE_FISHER_TULLY, UnknownScript_0xbdfc8
- if_equal PHONE_POKEMANIAC_BRENT, UnknownScript_0xbdfce
- if_equal PHONE_BIRDKEEPER_VANCE, UnknownScript_0xbdfd4
- if_equal PHONE_FISHER_WILTON, UnknownScript_0xbdfda
- if_equal PHONE_BLACKBELT_KENJI, UnknownScript_0xbdfe0
- if_equal PHONE_HIKER_PARRY, UnknownScript_0xbdfe6
+ if_equal PHONE_SCHOOLBOY_JACK, .Jack
+ if_equal PHONE_SAILOR_HUEY, .Huey
+ if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+ if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+ if_equal PHONE_YOUNGSTER_JOEY, .Joey
+ if_equal PHONE_BUG_CATCHER_WADE, .Wade
+ if_equal PHONE_FISHER_RALPH, .Ralph
+ if_equal PHONE_HIKER_ANTHONY, .Anthony
+ if_equal PHONE_CAMPER_TODD, .Todd
+ if_equal PHONE_JUGGLER_IRWIN, .Irwin
+ if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+ if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+ if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+ if_equal PHONE_POKEFANM_DEREK, .Derek
+ if_equal PHONE_FISHER_TULLY, .Tully
+ if_equal PHONE_POKEMANIAC_BRENT, .Brent
+ if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+ if_equal PHONE_FISHER_WILTON, .Wilton
+ if_equal PHONE_BLACKBELT_KENJI, .Kenji
+ if_equal PHONE_HIKER_PARRY, .Parry
-UnknownScript_0xbdf74:
+.Jack:
farwritetext UnknownText_0x1b4ded
keeptextopen
end
-UnknownScript_0xbdf7a:
+.Huey:
farwritetext UnknownText_0x1b509b
keeptextopen
end
-UnknownScript_0xbdf80:
+.Gaven:
farwritetext UnknownText_0x1b52a5
keeptextopen
end
-UnknownScript_0xbdf86:
+.Jose:
farwritetext UnknownText_0x1b55da
keeptextopen
end
-UnknownScript_0xbdf8c:
+.Joey:
farwritetext UnknownText_0x1b58c2
keeptextopen
end
-UnknownScript_0xbdf92:
+.Wade:
farwritetext UnknownText_0x1b5a74
keeptextopen
end
-UnknownScript_0xbdf98:
+.Ralph:
farwritetext UnknownText_0x1b5c63
keeptextopen
end
-UnknownScript_0xbdf9e:
+.Anthony:
farwritetext UnknownText_0x1b5f9e
keeptextopen
end
-UnknownScript_0xbdfa4:
+.Todd:
farwritetext UnknownText_0x1b611b
keeptextopen
end
-UnknownScript_0xbdfaa:
+.Irwin:
farwritetext UnknownText_0x1b63a8
keeptextopen
end
-UnknownScript_0xbdfb0:
+.Arnie:
farwritetext UnknownText_0x1b647e
keeptextopen
end
-UnknownScript_0xbdfb6:
+.Alan:
farwritetext UnknownText_0x1b65c7
keeptextopen
end
-UnknownScript_0xbdfbc:
+.Chad:
farwritetext UnknownText_0x1b680e
keeptextopen
end
-UnknownScript_0xbdfc2:
+.Derek:
farwritetext UnknownText_0x1b69d2
keeptextopen
end
-UnknownScript_0xbdfc8:
+.Tully:
farwritetext UnknownText_0x1b6b65
keeptextopen
end
-UnknownScript_0xbdfce:
+.Brent:
farwritetext UnknownText_0x1b6cc6
keeptextopen
end
-UnknownScript_0xbdfd4:
+.Vance:
farwritetext UnknownText_0x1b7057
keeptextopen
end
-UnknownScript_0xbdfda:
+.Wilton:
farwritetext UnknownText_0x1b71fc
keeptextopen
end
-UnknownScript_0xbdfe0:
+.Kenji:
farwritetext UnknownText_0x1b7331
keeptextopen
end
-UnknownScript_0xbdfe6:
+.Parry:
farwritetext UnknownText_0x1b73ef
keeptextopen
end
@@ -2160,123 +2160,123 @@
UnknownScript_0xbdfec:
checkcode VAR_CALLERID
- if_equal PHONE_SCHOOLBOY_JACK, UnknownScript_0xbe03e
- if_equal PHONE_SAILOR_HUEY, UnknownScript_0xbe044
- if_equal PHONE_COOLTRAINERM_GAVEN, UnknownScript_0xbe04a
- if_equal PHONE_BIRDKEEPER_JOSE, UnknownScript_0xbe050
- if_equal PHONE_YOUNGSTER_JOEY, UnknownScript_0xbe056
- if_equal PHONE_BUG_CATCHER_WADE, UnknownScript_0xbe05c
- if_equal PHONE_FISHER_RALPH, UnknownScript_0xbe062
- if_equal PHONE_HIKER_ANTHONY, UnknownScript_0xbe068
- if_equal PHONE_CAMPER_TODD, UnknownScript_0xbe06e
- if_equal PHONE_JUGGLER_IRWIN, UnknownScript_0xbe074
- if_equal PHONE_BUG_CATCHER_ARNIE, UnknownScript_0xbe07a
- if_equal PHONE_SCHOOLBOY_ALAN, UnknownScript_0xbe080
- if_equal PHONE_SCHOOLBOY_CHAD, UnknownScript_0xbe086
- if_equal PHONE_POKEFANM_DEREK, UnknownScript_0xbe08c
- if_equal PHONE_FISHER_TULLY, UnknownScript_0xbe092
- if_equal PHONE_POKEMANIAC_BRENT, UnknownScript_0xbe098
- if_equal PHONE_BIRDKEEPER_VANCE, UnknownScript_0xbe09e
- if_equal PHONE_FISHER_WILTON, UnknownScript_0xbe0a4
- if_equal PHONE_BLACKBELT_KENJI, UnknownScript_0xbe0aa
- if_equal PHONE_HIKER_PARRY, UnknownScript_0xbe0b0
+ if_equal PHONE_SCHOOLBOY_JACK, .Jack
+ if_equal PHONE_SAILOR_HUEY, .Huey
+ if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+ if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+ if_equal PHONE_YOUNGSTER_JOEY, .Joey
+ if_equal PHONE_BUG_CATCHER_WADE, .Wade
+ if_equal PHONE_FISHER_RALPH, .Ralph
+ if_equal PHONE_HIKER_ANTHONY, .Anthony
+ if_equal PHONE_CAMPER_TODD, .Todd
+ if_equal PHONE_JUGGLER_IRWIN, .Irwin
+ if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+ if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+ if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+ if_equal PHONE_POKEFANM_DEREK, .Derek
+ if_equal PHONE_FISHER_TULLY, .Tully
+ if_equal PHONE_POKEMANIAC_BRENT, .Brent
+ if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+ if_equal PHONE_FISHER_WILTON, .Wilton
+ if_equal PHONE_BLACKBELT_KENJI, .Kenji
+ if_equal PHONE_HIKER_PARRY, .Parry
-UnknownScript_0xbe03e:
+.Jack:
farwritetext UnknownText_0x1b4e16
keeptextopen
end
-UnknownScript_0xbe044:
+.Huey:
farwritetext UnknownText_0x1b50c2
keeptextopen
end
-UnknownScript_0xbe04a:
+.Gaven:
farwritetext UnknownText_0x1b52cc
keeptextopen
end
-UnknownScript_0xbe050:
+.Jose:
farwritetext UnknownText_0x1b55fc
keeptextopen
end
-UnknownScript_0xbe056:
+.Joey:
farwritetext UnknownText_0x1b58ea
keeptextopen
end
-UnknownScript_0xbe05c:
+.Wade:
farwritetext UnknownText_0x1b5a9f
keeptextopen
end
-UnknownScript_0xbe062:
+.Ralph:
farwritetext UnknownText_0x1b5cb6
keeptextopen
end
-UnknownScript_0xbe068:
+.Anthony:
farwritetext UnknownText_0x1b5fc9
keeptextopen
end
-UnknownScript_0xbe06e:
+.Todd:
farwritetext UnknownText_0x1b6149
keeptextopen
end
-UnknownScript_0xbe074:
+.Irwin:
farwritetext UnknownText_0x1b63c4
keeptextopen
end
-UnknownScript_0xbe07a:
+.Arnie:
farwritetext UnknownText_0x1b64a8
keeptextopen
end
-UnknownScript_0xbe080:
+.Alan:
farwritetext UnknownText_0x1b65e3
keeptextopen
end
-UnknownScript_0xbe086:
+.Chad:
farwritetext UnknownText_0x1b6836
keeptextopen
end
-UnknownScript_0xbe08c:
+.Derek:
farwritetext UnknownText_0x1b69f8
keeptextopen
end
-UnknownScript_0xbe092:
+.Tully:
farwritetext UnknownText_0x1b6b92
keeptextopen
end
-UnknownScript_0xbe098:
+.Brent:
farwritetext UnknownText_0x1b6cf6
keeptextopen
end
-UnknownScript_0xbe09e:
+.Vance:
farwritetext UnknownText_0x1b7092
keeptextopen
end
-UnknownScript_0xbe0a4:
+.Wilton:
farwritetext UnknownText_0x1b722a
keeptextopen
end
-UnknownScript_0xbe0aa:
+.Kenji:
farwritetext UnknownText_0x1b7357
keeptextopen
end
-UnknownScript_0xbe0b0:
+.Parry:
farwritetext UnknownText_0x1b7417
keeptextopen
end
@@ -2287,51 +2287,51 @@
checknite
iftrue UnknownScript_0xbe164
checkcode VAR_CALLERID
- if_equal PHONE_POKEFAN_BEVERLY, UnknownScript_0xbe0e2
- if_equal PHONE_COOLTRAINERF_BETH, UnknownScript_0xbe0e8
- if_equal PHONE_COOLTRAINERF_REENA, UnknownScript_0xbe0ee
- if_equal PHONE_PICNICKER_LIZ, UnknownScript_0xbe0f4
- if_equal PHONE_PICNICKER_GINA, UnknownScript_0xbe0fa
- if_equal PHONE_LASS_DANA, UnknownScript_0xbe100
- if_equal PHONE_PICNICKER_TIFFANY, UnknownScript_0xbe106
- if_equal PHONE_PICNICKER_ERIN, UnknownScript_0xbe10c
+ if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+ if_equal PHONE_COOLTRAINERF_BETH, .Beth
+ if_equal PHONE_COOLTRAINERF_REENA, .Reena
+ if_equal PHONE_PICNICKER_LIZ, .Liz
+ if_equal PHONE_PICNICKER_GINA, .Gina
+ if_equal PHONE_LASS_DANA, .Dana
+ if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+ if_equal PHONE_PICNICKER_ERIN, .Erin
-UnknownScript_0xbe0e2:
+.Beverly:
farwritetext UnknownText_0x1b4f21
keeptextopen
end
-UnknownScript_0xbe0e8:
+.Beth:
farwritetext UnknownText_0x1b53f7
keeptextopen
end
-UnknownScript_0xbe0ee:
+.Reena:
farwritetext UnknownText_0x1b5702
keeptextopen
end
-UnknownScript_0xbe0f4:
+.Liz:
farwritetext UnknownText_0x1b5d9f
keeptextopen
end
-UnknownScript_0xbe0fa:
+.Gina:
farwritetext UnknownText_0x1b626a
keeptextopen
end
-UnknownScript_0xbe100:
+.Dana:
farwritetext UnknownText_0x1b66c8
keeptextopen
end
-UnknownScript_0xbe106:
+.Tiffany:
farwritetext UnknownText_0x1b6e7c
keeptextopen
end
-UnknownScript_0xbe10c:
+.Erin:
farwritetext UnknownText_0x1b751a
keeptextopen
end
@@ -2338,51 +2338,51 @@
UnknownScript_0xbe112:
checkcode VAR_CALLERID
- if_equal PHONE_POKEFAN_BEVERLY, UnknownScript_0xbe134
- if_equal PHONE_COOLTRAINERF_BETH, UnknownScript_0xbe13a
- if_equal PHONE_COOLTRAINERF_REENA, UnknownScript_0xbe140
- if_equal PHONE_PICNICKER_LIZ, UnknownScript_0xbe146
- if_equal PHONE_PICNICKER_GINA, UnknownScript_0xbe14c
- if_equal PHONE_LASS_DANA, UnknownScript_0xbe152
- if_equal PHONE_PICNICKER_TIFFANY, UnknownScript_0xbe158
- if_equal PHONE_PICNICKER_ERIN, UnknownScript_0xbe15e
+ if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+ if_equal PHONE_COOLTRAINERF_BETH, .Beth
+ if_equal PHONE_COOLTRAINERF_REENA, .Reena
+ if_equal PHONE_PICNICKER_LIZ, .Liz
+ if_equal PHONE_PICNICKER_GINA, .Gina
+ if_equal PHONE_LASS_DANA, .Dana
+ if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+ if_equal PHONE_PICNICKER_ERIN, .Erin
-UnknownScript_0xbe134:
+.Beverly:
farwritetext UnknownText_0x1b4f4d
keeptextopen
end
-UnknownScript_0xbe13a:
+.Beth:
farwritetext UnknownText_0x1b5424
keeptextopen
end
-UnknownScript_0xbe140:
+.Reena:
farwritetext UnknownText_0x1b572e
keeptextopen
end
-UnknownScript_0xbe146:
+.Liz:
farwritetext UnknownText_0x1b5dcc
keeptextopen
end
-UnknownScript_0xbe14c:
+.Gina:
farwritetext UnknownText_0x1b6296
keeptextopen
end
-UnknownScript_0xbe152:
+.Dana:
farwritetext UnknownText_0x1b66ec
keeptextopen
end
-UnknownScript_0xbe158:
+.Tiffany:
farwritetext UnknownText_0x1b6ea6
keeptextopen
end
-UnknownScript_0xbe15e:
+.Erin:
farwritetext UnknownText_0x1b7548
keeptextopen
end
@@ -2389,51 +2389,51 @@
UnknownScript_0xbe164:
checkcode VAR_CALLERID
- if_equal PHONE_POKEFAN_BEVERLY, UnknownScript_0xbe186
- if_equal PHONE_COOLTRAINERF_BETH, UnknownScript_0xbe18c
- if_equal PHONE_COOLTRAINERF_REENA, UnknownScript_0xbe192
- if_equal PHONE_PICNICKER_LIZ, UnknownScript_0xbe198
- if_equal PHONE_PICNICKER_GINA, UnknownScript_0xbe19e
- if_equal PHONE_LASS_DANA, UnknownScript_0xbe1a4
- if_equal PHONE_PICNICKER_TIFFANY, UnknownScript_0xbe1aa
- if_equal PHONE_PICNICKER_ERIN, UnknownScript_0xbe1b0
+ if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+ if_equal PHONE_COOLTRAINERF_BETH, .Beth
+ if_equal PHONE_COOLTRAINERF_REENA, .Reena
+ if_equal PHONE_PICNICKER_LIZ, .Liz
+ if_equal PHONE_PICNICKER_GINA, .Gina
+ if_equal PHONE_LASS_DANA, .Dana
+ if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+ if_equal PHONE_PICNICKER_ERIN, .Erin
-UnknownScript_0xbe186:
+.Beverly:
farwritetext UnknownText_0x1b4f75
keeptextopen
end
-UnknownScript_0xbe18c:
+.Beth:
farwritetext UnknownText_0x1b5446
keeptextopen
end
-UnknownScript_0xbe192:
+.Reena:
farwritetext UnknownText_0x1b575a
keeptextopen
end
-UnknownScript_0xbe198:
+.Liz:
farwritetext UnknownText_0x1b5df8
keeptextopen
end
-UnknownScript_0xbe19e:
+.Gina:
farwritetext UnknownText_0x1b62c5
keeptextopen
end
-UnknownScript_0xbe1a4:
+.Dana:
farwritetext UnknownText_0x1b6713
keeptextopen
end
-UnknownScript_0xbe1aa:
+.Tiffany:
farwritetext UnknownText_0x1b6ec9
keeptextopen
end
-UnknownScript_0xbe1b0:
+.Erin:
farwritetext UnknownText_0x1b756f
keeptextopen
end
@@ -2444,123 +2444,123 @@
checknite
iftrue UnknownScript_0xbe354
checkcode VAR_CALLERID
- if_equal PHONE_SCHOOLBOY_JACK, UnknownScript_0xbe212
- if_equal PHONE_SAILOR_HUEY, UnknownScript_0xbe218
- if_equal PHONE_COOLTRAINERM_GAVEN, UnknownScript_0xbe21e
- if_equal PHONE_BIRDKEEPER_JOSE, UnknownScript_0xbe224
- if_equal PHONE_YOUNGSTER_JOEY, UnknownScript_0xbe22a
- if_equal PHONE_BUG_CATCHER_WADE, UnknownScript_0xbe230
- if_equal PHONE_FISHER_RALPH, UnknownScript_0xbe236
- if_equal PHONE_HIKER_ANTHONY, UnknownScript_0xbe23c
- if_equal PHONE_CAMPER_TODD, UnknownScript_0xbe242
- if_equal PHONE_JUGGLER_IRWIN, UnknownScript_0xbe248
- if_equal PHONE_BUG_CATCHER_ARNIE, UnknownScript_0xbe24e
- if_equal PHONE_SCHOOLBOY_ALAN, UnknownScript_0xbe254
- if_equal PHONE_SCHOOLBOY_CHAD, UnknownScript_0xbe25a
- if_equal PHONE_POKEFANM_DEREK, UnknownScript_0xbe260
- if_equal PHONE_FISHER_TULLY, UnknownScript_0xbe266
- if_equal PHONE_POKEMANIAC_BRENT, UnknownScript_0xbe26c
- if_equal PHONE_BIRDKEEPER_VANCE, UnknownScript_0xbe272
- if_equal PHONE_FISHER_WILTON, UnknownScript_0xbe278
- if_equal PHONE_BLACKBELT_KENJI, UnknownScript_0xbe27e
- if_equal PHONE_HIKER_PARRY, UnknownScript_0xbe284
+ if_equal PHONE_SCHOOLBOY_JACK, .Jack
+ if_equal PHONE_SAILOR_HUEY, .Huey
+ if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+ if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+ if_equal PHONE_YOUNGSTER_JOEY, .Joey
+ if_equal PHONE_BUG_CATCHER_WADE, .Wade
+ if_equal PHONE_FISHER_RALPH, .Ralph
+ if_equal PHONE_HIKER_ANTHONY, .Anthony
+ if_equal PHONE_CAMPER_TODD, .Todd
+ if_equal PHONE_JUGGLER_IRWIN, .Irwin
+ if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+ if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+ if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+ if_equal PHONE_POKEFANM_DEREK, .Derek
+ if_equal PHONE_FISHER_TULLY, .Tully
+ if_equal PHONE_POKEMANIAC_BRENT, .Brent
+ if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+ if_equal PHONE_FISHER_WILTON, .Wilton
+ if_equal PHONE_BLACKBELT_KENJI, .Kenji
+ if_equal PHONE_HIKER_PARRY, .Parry
-UnknownScript_0xbe212:
+.Jack:
farwritetext UnknownText_0x1b4e3e
keeptextopen
end
-UnknownScript_0xbe218:
+.Huey:
farwritetext UnknownText_0x1b50e9
keeptextopen
end
-UnknownScript_0xbe21e:
+.Gaven:
farwritetext UnknownText_0x1b5301
keeptextopen
end
-UnknownScript_0xbe224:
+.Jose:
farwritetext UnknownText_0x1b5628
keeptextopen
end
-UnknownScript_0xbe22a:
+.Joey:
farwritetext UnknownText_0x1b5912
keeptextopen
end
-UnknownScript_0xbe230:
+.Wade:
farwritetext UnknownText_0x1b5ad8
keeptextopen
end
-UnknownScript_0xbe236:
+.Ralph:
farwritetext UnknownText_0x1b5d09
keeptextopen
end
-UnknownScript_0xbe23c:
+.Anthony:
farwritetext UnknownText_0x1b5ff6
keeptextopen
end
-UnknownScript_0xbe242:
+.Todd:
farwritetext UnknownText_0x1b616e
keeptextopen
end
-UnknownScript_0xbe248:
+.Irwin:
farwritetext UnknownText_0x1b63e3
keeptextopen
end
-UnknownScript_0xbe24e:
+.Arnie:
farwritetext UnknownText_0x1b64d2
keeptextopen
end
-UnknownScript_0xbe254:
+.Alan:
farwritetext UnknownText_0x1b660d
keeptextopen
end
-UnknownScript_0xbe25a:
+.Chad:
farwritetext UnknownText_0x1b6862
keeptextopen
end
-UnknownScript_0xbe260:
+.Derek:
farwritetext UnknownText_0x1b6a22
keeptextopen
end
-UnknownScript_0xbe266:
+.Tully:
farwritetext UnknownText_0x1b6bb9
keeptextopen
end
-UnknownScript_0xbe26c:
+.Brent:
farwritetext UnknownText_0x1b6d26
keeptextopen
end
-UnknownScript_0xbe272:
+.Vance:
farwritetext UnknownText_0x1b70e7
keeptextopen
end
-UnknownScript_0xbe278:
+.Wilton:
farwritetext UnknownText_0x1b725c
keeptextopen
end
-UnknownScript_0xbe27e:
+.Kenji:
farwritetext UnknownText_0x1b737f
keeptextopen
end
-UnknownScript_0xbe284:
+.Parry:
farwritetext UnknownText_0x1b743f
keeptextopen
end
@@ -2567,123 +2567,123 @@
UnknownScript_0xbe28a:
checkcode VAR_CALLERID
- if_equal PHONE_SCHOOLBOY_JACK, UnknownScript_0xbe2dc
- if_equal PHONE_SAILOR_HUEY, UnknownScript_0xbe2e2
- if_equal PHONE_COOLTRAINERM_GAVEN, UnknownScript_0xbe2e8
- if_equal PHONE_BIRDKEEPER_JOSE, UnknownScript_0xbe2ee
- if_equal PHONE_YOUNGSTER_JOEY, UnknownScript_0xbe2f4
- if_equal PHONE_BUG_CATCHER_WADE, UnknownScript_0xbe2fa
- if_equal PHONE_FISHER_RALPH, UnknownScript_0xbe300
- if_equal PHONE_HIKER_ANTHONY, UnknownScript_0xbe306
- if_equal PHONE_CAMPER_TODD, UnknownScript_0xbe30c
- if_equal PHONE_JUGGLER_IRWIN, UnknownScript_0xbe312
- if_equal PHONE_BUG_CATCHER_ARNIE, UnknownScript_0xbe318
- if_equal PHONE_SCHOOLBOY_ALAN, UnknownScript_0xbe31e
- if_equal PHONE_SCHOOLBOY_CHAD, UnknownScript_0xbe324
- if_equal PHONE_POKEFANM_DEREK, UnknownScript_0xbe32a
- if_equal PHONE_FISHER_TULLY, UnknownScript_0xbe330
- if_equal PHONE_POKEMANIAC_BRENT, UnknownScript_0xbe336
- if_equal PHONE_BIRDKEEPER_VANCE, UnknownScript_0xbe33c
- if_equal PHONE_FISHER_WILTON, UnknownScript_0xbe342
- if_equal PHONE_BLACKBELT_KENJI, UnknownScript_0xbe348
- if_equal PHONE_HIKER_PARRY, UnknownScript_0xbe34e
+ if_equal PHONE_SCHOOLBOY_JACK, .Jack
+ if_equal PHONE_SAILOR_HUEY, .Huey
+ if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+ if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+ if_equal PHONE_YOUNGSTER_JOEY, .Joey
+ if_equal PHONE_BUG_CATCHER_WADE, .Wade
+ if_equal PHONE_FISHER_RALPH, .Ralph
+ if_equal PHONE_HIKER_ANTHONY, .Anthony
+ if_equal PHONE_CAMPER_TODD, .Todd
+ if_equal PHONE_JUGGLER_IRWIN, .Irwin
+ if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+ if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+ if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+ if_equal PHONE_POKEFANM_DEREK, .Derek
+ if_equal PHONE_FISHER_TULLY, .Tully
+ if_equal PHONE_POKEMANIAC_BRENT, .Brent
+ if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+ if_equal PHONE_FISHER_WILTON, .Wilton
+ if_equal PHONE_BLACKBELT_KENJI, .Kenji
+ if_equal PHONE_HIKER_PARRY, .Parry
-UnknownScript_0xbe2dc:
+.Jack:
farwritetext UnknownText_0x1b4e72
keeptextopen
end
-UnknownScript_0xbe2e2:
+.Huey:
farwritetext UnknownText_0x1b511a
keeptextopen
end
-UnknownScript_0xbe2e8:
+.Gaven:
farwritetext UnknownText_0x1b5335
keeptextopen
end
-UnknownScript_0xbe2ee:
+.Jose:
farwritetext UnknownText_0x1b564c
keeptextopen
end
-UnknownScript_0xbe2f4:
+.Joey:
farwritetext UnknownText_0x1b5948
keeptextopen
end
-UnknownScript_0xbe2fa:
+.Wade:
farwritetext UnknownText_0x1b5b0b
keeptextopen
end
-UnknownScript_0xbe300:
+.Ralph:
farwritetext UnknownText_0x1b5d21
keeptextopen
end
-UnknownScript_0xbe306:
+.Anthony:
farwritetext UnknownText_0x1b6017
keeptextopen
end
-UnknownScript_0xbe30c:
+.Todd:
farwritetext UnknownText_0x1b618f
keeptextopen
end
-UnknownScript_0xbe312:
+.Irwin:
farwritetext UnknownText_0x1b6407
keeptextopen
end
-UnknownScript_0xbe318:
+.Arnie:
farwritetext UnknownText_0x1b6506
keeptextopen
end
-UnknownScript_0xbe31e:
+.Alan:
farwritetext UnknownText_0x1b6624
keeptextopen
end
-UnknownScript_0xbe324:
+.Chad:
farwritetext UnknownText_0x1b6890
keeptextopen
end
-UnknownScript_0xbe32a:
+.Derek:
farwritetext UnknownText_0x1b6a56
keeptextopen
end
-UnknownScript_0xbe330:
+.Tully:
farwritetext UnknownText_0x1b6bef
keeptextopen
end
-UnknownScript_0xbe336:
+.Brent:
farwritetext UnknownText_0x1b6d57
keeptextopen
end
-UnknownScript_0xbe33c:
+.Vance:
farwritetext UnknownText_0x1b7112
keeptextopen
end
-UnknownScript_0xbe342:
+.Wilton:
farwritetext UnknownText_0x1b7283
keeptextopen
end
-UnknownScript_0xbe348:
+.Kenji:
farwritetext UnknownText_0x1b7397
keeptextopen
end
-UnknownScript_0xbe34e:
+.Parry:
farwritetext UnknownText_0x1b746f
keeptextopen
end
@@ -2690,123 +2690,123 @@
UnknownScript_0xbe354:
checkcode VAR_CALLERID
- if_equal PHONE_SCHOOLBOY_JACK, UnknownScript_0xbe3a6
- if_equal PHONE_SAILOR_HUEY, UnknownScript_0xbe3ac
- if_equal PHONE_COOLTRAINERM_GAVEN, UnknownScript_0xbe3b2
- if_equal PHONE_BIRDKEEPER_JOSE, UnknownScript_0xbe3b8
- if_equal PHONE_YOUNGSTER_JOEY, UnknownScript_0xbe3be
- if_equal PHONE_BUG_CATCHER_WADE, UnknownScript_0xbe3c4
- if_equal PHONE_FISHER_RALPH, UnknownScript_0xbe3ca
- if_equal PHONE_HIKER_ANTHONY, UnknownScript_0xbe3d0
- if_equal PHONE_CAMPER_TODD, UnknownScript_0xbe3d6
- if_equal PHONE_JUGGLER_IRWIN, UnknownScript_0xbe3dc
- if_equal PHONE_BUG_CATCHER_ARNIE, UnknownScript_0xbe3e2
- if_equal PHONE_SCHOOLBOY_ALAN, UnknownScript_0xbe3e8
- if_equal PHONE_SCHOOLBOY_CHAD, UnknownScript_0xbe3ee
- if_equal PHONE_POKEFANM_DEREK, UnknownScript_0xbe3f4
- if_equal PHONE_FISHER_TULLY, UnknownScript_0xbe3fa
- if_equal PHONE_POKEMANIAC_BRENT, UnknownScript_0xbe400
- if_equal PHONE_BIRDKEEPER_VANCE, UnknownScript_0xbe406
- if_equal PHONE_FISHER_WILTON, UnknownScript_0xbe40c
- if_equal PHONE_BLACKBELT_KENJI, UnknownScript_0xbe412
- if_equal PHONE_HIKER_PARRY, UnknownScript_0xbe418
+ if_equal PHONE_SCHOOLBOY_JACK, .Jack
+ if_equal PHONE_SAILOR_HUEY, .Huey
+ if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+ if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+ if_equal PHONE_YOUNGSTER_JOEY, .Joey
+ if_equal PHONE_BUG_CATCHER_WADE, .Wade
+ if_equal PHONE_FISHER_RALPH, .Ralph
+ if_equal PHONE_HIKER_ANTHONY, .Anthony
+ if_equal PHONE_CAMPER_TODD, .Todd
+ if_equal PHONE_JUGGLER_IRWIN, .Irwin
+ if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+ if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+ if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+ if_equal PHONE_POKEFANM_DEREK, .Derek
+ if_equal PHONE_FISHER_TULLY, .Tully
+ if_equal PHONE_POKEMANIAC_BRENT, .Brent
+ if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+ if_equal PHONE_FISHER_WILTON, .Wilton
+ if_equal PHONE_BLACKBELT_KENJI, .Kenji
+ if_equal PHONE_HIKER_PARRY, .Parry
-UnknownScript_0xbe3a6:
+.Jack:
farwritetext UnknownText_0x1b4e9e
keeptextopen
end
-UnknownScript_0xbe3ac:
+.Huey:
farwritetext UnknownText_0x1b5154
keeptextopen
end
-UnknownScript_0xbe3b2:
+.Gaven:
farwritetext UnknownText_0x1b535f
keeptextopen
end
-UnknownScript_0xbe3b8:
+.Jose:
farwritetext UnknownText_0x1b5670
keeptextopen
end
-UnknownScript_0xbe3be:
+.Joey:
farwritetext UnknownText_0x1b597c
keeptextopen
end
-UnknownScript_0xbe3c4:
+.Wade:
farwritetext UnknownText_0x1b5b37
keeptextopen
end
-UnknownScript_0xbe3ca:
+.Ralph:
farwritetext UnknownText_0x1b5d39
keeptextopen
end
-UnknownScript_0xbe3d0:
+.Anthony:
farwritetext UnknownText_0x1b6041
keeptextopen
end
-UnknownScript_0xbe3d6:
+.Todd:
farwritetext UnknownText_0x1b61bd
keeptextopen
end
-UnknownScript_0xbe3dc:
+.Irwin:
farwritetext UnknownText_0x1b642c
keeptextopen
end
-UnknownScript_0xbe3e2:
+.Arnie:
farwritetext UnknownText_0x1b6539
keeptextopen
end
-UnknownScript_0xbe3e8:
+.Alan:
farwritetext UnknownText_0x1b663b
keeptextopen
end
-UnknownScript_0xbe3ee:
+.Chad:
farwritetext UnknownText_0x1b68ba
keeptextopen
end
-UnknownScript_0xbe3f4:
+.Derek:
farwritetext UnknownText_0x1b6a8b
keeptextopen
end
-UnknownScript_0xbe3fa:
+.Tully:
farwritetext UnknownText_0x1b6c23
keeptextopen
end
-UnknownScript_0xbe400:
+.Brent:
farwritetext UnknownText_0x1b6d88
keeptextopen
end
-UnknownScript_0xbe406:
+.Vance:
farwritetext UnknownText_0x1b7132
keeptextopen
end
-UnknownScript_0xbe40c:
+.Wilton:
farwritetext UnknownText_0x1b72a5
keeptextopen
end
-UnknownScript_0xbe412:
+.Kenji:
farwritetext UnknownText_0x1b73af
keeptextopen
end
-UnknownScript_0xbe418:
+.Parry:
farwritetext UnknownText_0x1b749b
keeptextopen
end
@@ -2817,51 +2817,51 @@
checknite
iftrue UnknownScript_0xbe4cc
checkcode VAR_CALLERID
- if_equal PHONE_POKEFAN_BEVERLY, UnknownScript_0xbe44a
- if_equal PHONE_COOLTRAINERF_BETH, UnknownScript_0xbe450
- if_equal PHONE_COOLTRAINERF_REENA, UnknownScript_0xbe456
- if_equal PHONE_PICNICKER_LIZ, UnknownScript_0xbe45c
- if_equal PHONE_PICNICKER_GINA, UnknownScript_0xbe462
- if_equal PHONE_LASS_DANA, UnknownScript_0xbe468
- if_equal PHONE_PICNICKER_TIFFANY, UnknownScript_0xbe46e
- if_equal PHONE_PICNICKER_ERIN, UnknownScript_0xbe474
+ if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+ if_equal PHONE_COOLTRAINERF_BETH, .Beth
+ if_equal PHONE_COOLTRAINERF_REENA, .Reena
+ if_equal PHONE_PICNICKER_LIZ, .Liz
+ if_equal PHONE_PICNICKER_GINA, .Gina
+ if_equal PHONE_LASS_DANA, .Dana
+ if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+ if_equal PHONE_PICNICKER_ERIN, .Erin
-UnknownScript_0xbe44a:
+.Beverly:
farwritetext UnknownText_0x1b4fa1
keeptextopen
end
-UnknownScript_0xbe450:
+.Beth:
farwritetext UnknownText_0x1b5472
keeptextopen
end
-UnknownScript_0xbe456:
+.Reena:
farwritetext UnknownText_0x1b5786
keeptextopen
end
-UnknownScript_0xbe45c:
+.Liz:
farwritetext UnknownText_0x1b5e25
keeptextopen
end
-UnknownScript_0xbe462:
+.Gina:
farwritetext UnknownText_0x1b62f1
keeptextopen
end
-UnknownScript_0xbe468:
+.Dana:
farwritetext UnknownText_0x1b6738
keeptextopen
end
-UnknownScript_0xbe46e:
+.Tiffany:
farwritetext UnknownText_0x1b6ef3
keeptextopen
end
-UnknownScript_0xbe474:
+.Erin:
farwritetext UnknownText_0x1b758f
keeptextopen
end
@@ -2868,51 +2868,51 @@
UnknownScript_0xbe47a:
checkcode VAR_CALLERID
- if_equal PHONE_POKEFAN_BEVERLY, UnknownScript_0xbe49c
- if_equal PHONE_COOLTRAINERF_BETH, UnknownScript_0xbe4a2
- if_equal PHONE_COOLTRAINERF_REENA, UnknownScript_0xbe4a8
- if_equal PHONE_PICNICKER_LIZ, UnknownScript_0xbe4ae
- if_equal PHONE_PICNICKER_GINA, UnknownScript_0xbe4b4
- if_equal PHONE_LASS_DANA, UnknownScript_0xbe4ba
- if_equal PHONE_PICNICKER_TIFFANY, UnknownScript_0xbe4c0
- if_equal PHONE_PICNICKER_ERIN, UnknownScript_0xbe4c6
+ if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+ if_equal PHONE_COOLTRAINERF_BETH, .Beth
+ if_equal PHONE_COOLTRAINERF_REENA, .Reena
+ if_equal PHONE_PICNICKER_LIZ, .Liz
+ if_equal PHONE_PICNICKER_GINA, .Gina
+ if_equal PHONE_LASS_DANA, .Dana
+ if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+ if_equal PHONE_PICNICKER_ERIN, .Erin
-UnknownScript_0xbe49c:
+.Beverly:
farwritetext UnknownText_0x1b4fda
keeptextopen
end
-UnknownScript_0xbe4a2:
+.Beth:
farwritetext UnknownText_0x1b54a6
keeptextopen
end
-UnknownScript_0xbe4a8:
+.Reena:
farwritetext UnknownText_0x1b57b7
keeptextopen
end
-UnknownScript_0xbe4ae:
+.Liz:
farwritetext UnknownText_0x1b5e59
keeptextopen
end
-UnknownScript_0xbe4b4:
+.Gina:
farwritetext UnknownText_0x1b630e
keeptextopen
end
-UnknownScript_0xbe4ba:
+.Dana:
farwritetext UnknownText_0x1b6757
keeptextopen
end
-UnknownScript_0xbe4c0:
+.Tiffany:
farwritetext UnknownText_0x1b6f1c
keeptextopen
end
-UnknownScript_0xbe4c6:
+.Erin:
farwritetext UnknownText_0x1b75ac
keeptextopen
end
@@ -2919,51 +2919,51 @@
UnknownScript_0xbe4cc:
checkcode VAR_CALLERID
- if_equal PHONE_POKEFAN_BEVERLY, UnknownScript_0xbe4ee
- if_equal PHONE_COOLTRAINERF_BETH, UnknownScript_0xbe4f4
- if_equal PHONE_COOLTRAINERF_REENA, UnknownScript_0xbe4fa
- if_equal PHONE_PICNICKER_LIZ, UnknownScript_0xbe500
- if_equal PHONE_PICNICKER_GINA, UnknownScript_0xbe506
- if_equal PHONE_LASS_DANA, UnknownScript_0xbe50c
- if_equal PHONE_PICNICKER_TIFFANY, UnknownScript_0xbe512
- if_equal PHONE_PICNICKER_ERIN, UnknownScript_0xbe518
+ if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+ if_equal PHONE_COOLTRAINERF_BETH, .Beth
+ if_equal PHONE_COOLTRAINERF_REENA, .Reena
+ if_equal PHONE_PICNICKER_LIZ, .Liz
+ if_equal PHONE_PICNICKER_GINA, .Gina
+ if_equal PHONE_LASS_DANA, .Dana
+ if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+ if_equal PHONE_PICNICKER_ERIN, .Erin
-UnknownScript_0xbe4ee:
+.Beverly:
farwritetext UnknownText_0x1b5004
keeptextopen
end
-UnknownScript_0xbe4f4:
+.Beth:
farwritetext UnknownText_0x1b54d4
keeptextopen
end
-UnknownScript_0xbe4fa:
+.Reena:
farwritetext UnknownText_0x1b57e8
keeptextopen
end
-UnknownScript_0xbe500:
+.Liz:
farwritetext UnknownText_0x1b5e8e
keeptextopen
end
-UnknownScript_0xbe506:
+.Gina:
farwritetext UnknownText_0x1b6331
keeptextopen
end
-UnknownScript_0xbe50c:
+.Dana:
farwritetext UnknownText_0x1b6776
keeptextopen
end
-UnknownScript_0xbe512:
+.Tiffany:
farwritetext UnknownText_0x1b6f37
keeptextopen
end
-UnknownScript_0xbe518:
+.Erin:
farwritetext UnknownText_0x1b75c9
keeptextopen
end
@@ -2970,110 +2970,110 @@
UnknownScript_0xbe51e:
checkcode VAR_CALLERID
- if_equal PHONE_SCHOOLBOY_JACK, UnknownScript_0xbe564
- if_equal PHONE_COOLTRAINERM_GAVEN, UnknownScript_0xbe570
- if_equal PHONE_BIRDKEEPER_JOSE, UnknownScript_0xbe576
- if_equal PHONE_YOUNGSTER_JOEY, UnknownScript_0xbe57c
- if_equal PHONE_BUG_CATCHER_WADE, UnknownScript_0xbe582
- if_equal PHONE_FISHER_RALPH, UnknownScript_0xbe588
- if_equal PHONE_HIKER_ANTHONY, UnknownScript_0xbe58e
- if_equal PHONE_CAMPER_TODD, UnknownScript_0xbe594
- if_equal PHONE_BUG_CATCHER_ARNIE, UnknownScript_0xbe59a
- if_equal PHONE_SCHOOLBOY_ALAN, UnknownScript_0xbe5a0
- if_equal PHONE_SCHOOLBOY_CHAD, UnknownScript_0xbe5a6
- if_equal PHONE_POKEFANM_DEREK, UnknownScript_0xbe5ac
- if_equal PHONE_FISHER_TULLY, UnknownScript_0xbe5b2
- if_equal PHONE_POKEMANIAC_BRENT, UnknownScript_0xbe5b8
- if_equal PHONE_BIRDKEEPER_VANCE, UnknownScript_0xbe5be
- if_equal PHONE_FISHER_WILTON, UnknownScript_0xbe5c4
- if_equal PHONE_HIKER_PARRY, UnknownScript_0xbe5ca
+ if_equal PHONE_SCHOOLBOY_JACK, .Jack
+ if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+ if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+ if_equal PHONE_YOUNGSTER_JOEY, .Joey
+ if_equal PHONE_BUG_CATCHER_WADE, .Wade
+ if_equal PHONE_FISHER_RALPH, .Ralph
+ if_equal PHONE_HIKER_ANTHONY, .Anthony
+ if_equal PHONE_CAMPER_TODD, .Todd
+ if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+ if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+ if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+ if_equal PHONE_POKEFANM_DEREK, .Derek
+ if_equal PHONE_FISHER_TULLY, .Tully
+ if_equal PHONE_POKEMANIAC_BRENT, .Brent
+ if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+ if_equal PHONE_FISHER_WILTON, .Wilton
+ if_equal PHONE_HIKER_PARRY, .Parry
-UnknownScript_0xbe564:
+.Jack:
farwritetext UnknownText_0x1b4ecd
keeptextopen
end
-UnknownScript_0xbe56a:
+.Unknown:
farwritetext UnknownText_0x1b518b
keeptextopen
end
-UnknownScript_0xbe570:
+.Gaven:
farwritetext UnknownText_0x1b5393
keeptextopen
end
-UnknownScript_0xbe576:
+.Jose:
farwritetext UnknownText_0x1b5694
keeptextopen
end
-UnknownScript_0xbe57c:
+.Joey:
farwritetext UnknownText_0x1b59b2
keeptextopen
end
-UnknownScript_0xbe582:
+.Wade:
farwritetext UnknownText_0x1b5b68
keeptextopen
end
-UnknownScript_0xbe588:
+.Ralph:
farwritetext UnknownText_0x1b5d51
keeptextopen
end
-UnknownScript_0xbe58e:
+.Anthony:
farwritetext UnknownText_0x1b606f
keeptextopen
end
-UnknownScript_0xbe594:
+.Todd:
farwritetext UnknownText_0x1b61f2
keeptextopen
end
-UnknownScript_0xbe59a:
+.Arnie:
farwritetext UnknownText_0x1b656c
keeptextopen
end
-UnknownScript_0xbe5a0:
+.Alan:
farwritetext UnknownText_0x1b6652
keeptextopen
end
-UnknownScript_0xbe5a6:
+.Chad:
farwritetext UnknownText_0x1b68e8
keeptextopen
end
-UnknownScript_0xbe5ac:
+.Derek:
farwritetext UnknownText_0x1b6ac2
keeptextopen
end
-UnknownScript_0xbe5b2:
+.Tully:
farwritetext UnknownText_0x1b6c56
keeptextopen
end
-UnknownScript_0xbe5b8:
+.Brent:
farwritetext UnknownText_0x1b6db9
keeptextopen
end
-UnknownScript_0xbe5be:
+.Vance:
farwritetext UnknownText_0x1b7161
keeptextopen
end
-UnknownScript_0xbe5c4:
+.Wilton:
farwritetext UnknownText_0x1b72d0
keeptextopen
end
-UnknownScript_0xbe5ca:
+.Parry:
farwritetext UnknownText_0x1b74c8
keeptextopen
end
@@ -3080,51 +3080,51 @@
UnknownScript_0xbe5d0:
checkcode VAR_CALLERID
- if_equal PHONE_POKEFAN_BEVERLY, UnknownScript_0xbe5f2
- if_equal PHONE_COOLTRAINERF_BETH, UnknownScript_0xbe5f8
- if_equal PHONE_COOLTRAINERF_REENA, UnknownScript_0xbe5fe
- if_equal PHONE_PICNICKER_LIZ, UnknownScript_0xbe604
- if_equal PHONE_PICNICKER_GINA, UnknownScript_0xbe60a
- if_equal PHONE_LASS_DANA, UnknownScript_0xbe610
- if_equal PHONE_PICNICKER_TIFFANY, UnknownScript_0xbe616
- if_equal PHONE_PICNICKER_ERIN, UnknownScript_0xbe61c
+ if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+ if_equal PHONE_COOLTRAINERF_BETH, .Beth
+ if_equal PHONE_COOLTRAINERF_REENA, .Reena
+ if_equal PHONE_PICNICKER_LIZ, .Liz
+ if_equal PHONE_PICNICKER_GINA, .Gina
+ if_equal PHONE_LASS_DANA, .Dana
+ if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+ if_equal PHONE_PICNICKER_ERIN, .Erin
-UnknownScript_0xbe5f2:
+.Beverly:
farwritetext UnknownText_0x1b502b
keeptextopen
end
-UnknownScript_0xbe5f8:
+.Beth:
farwritetext UnknownText_0x1b5510
keeptextopen
end
-UnknownScript_0xbe5fe:
+.Reena:
farwritetext UnknownText_0x1b5819
keeptextopen
end
-UnknownScript_0xbe604:
+.Liz:
farwritetext UnknownText_0x1b5ebe
keeptextopen
end
-UnknownScript_0xbe60a:
+.Gina:
farwritetext UnknownText_0x1b6352
keeptextopen
end
-UnknownScript_0xbe610:
+.Dana:
farwritetext UnknownText_0x1b6795
keeptextopen
end
-UnknownScript_0xbe616:
+.Tiffany:
farwritetext UnknownText_0x1b6f60
keeptextopen
end
-UnknownScript_0xbe61c:
+.Erin:
farwritetext UnknownText_0x1b75e5
keeptextopen
end
--- /dev/null
+++ b/engine/pokecenter_pc.asm
@@ -1,0 +1,705 @@
+PokemonCenterPC: ; 1559a
+ call PC_CheckPartyForPokemon
+ ret c
+ call PC_PlayBootSound
+ ld hl, UnknownText_0x15a27
+ call PC_DisplayText
+ ld hl, UnknownText_0x15a2c
+ call PC_DisplayTextWaitMenu
+ ld hl, .TopMenu
+ call LoadMenuDataHeader
+.loop
+ xor a
+ ld [hBGMapMode], a
+ call .ChooseWhichPCListToUse
+ ld [wcf76], a
+ call DoNthMenu
+ jr c, .shutdown
+ ld a, [MenuSelection]
+ ld hl, .JumpTable
+ call MenuJumptable
+ jr nc, .loop
+
+.shutdown
+ call PC_PlayShutdownSound
+ call ExitMenu
+ call WriteBackup
+ ret
+; 155d6
+
+.TopMenu: ; 0x155d6
+ db $48 ; flags
+ db 00, 00 ; start coords
+ db 12, 15 ; end coords
+ dw .MenuData2
+ db 1 ; default option
+; 0x155de
+
+.MenuData2: ; 0x155de
+ db $a0 ; flags
+ db 0 ; items
+ dw .WhichPC
+ dw PlaceNthMenuStrings
+ dw .JumpTable
+; 0x155e6
+
+.JumpTable: ; 155e6
+ dw PlayersPC, .String_PlayersPC
+ dw BillsPC, .String_BillsPC
+ dw OaksPC, .String_OaksPC
+ dw HallOfFamePC, .String_HallOfFame
+ dw TurnOffPC, .String_TurnOff
+; 155fa
+
+.String_PlayersPC: db "<PLAYER>'s PC@"
+.String_BillsPC: db "BILL's PC@"
+.String_OaksPC: db "PROF.OAK's PC@"
+.String_HallOfFame: db "HALL OF FAME@"
+.String_TurnOff: db "TURN OFF@"
+; 1562c
+
+.WhichPC: ; 1562c
+ ; before pokedex
+ db 3 ; items
+ db 1, 0, 4 ; bill's, player's, turn off
+ db -1
+
+ ; before Hall Of Fame
+ db 4 ; items
+ db 1, 0, 2, 4 ; bill's, player's, oak's, turn off
+ db -1
+
+ ; postgame
+ db 5 ; items
+ db 1, 0, 2, 3, 4 ; bill's, player's, oak's, hall of fame, turn off
+ db -1
+; 1563e
+
+.ChooseWhichPCListToUse: ; 1563e
+ call CheckReceivedDex
+ jr nz, .got_dex
+ ld a, $0
+ ret
+
+.got_dex
+ ld a, [wHallOfFameCount]
+ and a
+ ld a, $1
+ ret z
+ ld a, $2
+ ret
+; 15650
+
+PC_CheckPartyForPokemon: ; 15650
+ ld a, [PartyCount]
+ and a
+ ret nz
+ ld de, SFX_CHOOSE_PC_OPTION
+ call PlaySFX
+ ld hl, UnknownText_0x15663
+ call PC_DisplayText
+ scf
+ ret
+; 15663
+
+UnknownText_0x15663: ; 0x15663
+ ; Bzzzzt! You must have a #MON to use this!
+ text_jump UnknownText_0x1c1328
+ db "@"
+; 0x15668
+
+BillsPC: ; 15668
+ call PC_PlayChoosePCSound
+ ld hl, UnknownText_0x15a31
+ call PC_DisplayText
+ callba _BillsPC
+ and a
+ ret
+; 15679 (5:5679)
+
+PlayersPC: ; 15679
+ call PC_PlayChoosePCSound
+ ld hl, UnknownText_0x15a36
+ call PC_DisplayText
+ ld b, $0
+ call _PlayersPC
+ and a
+ ret
+; 15689
+
+OaksPC: ; 15689
+ call PC_PlayChoosePCSound
+ ld hl, UnknownText_0x15a3b
+ call PC_DisplayText
+ callba ProfOaksPC
+ and a
+ ret
+; 1569a
+
+HallOfFamePC: ; 1569a
+ call PC_PlayChoosePCSound
+ call FadeToMenu
+ callba _HallOfFamePC
+ call ReturnToCallingMenu
+ and a
+ ret
+; 156ab
+
+TurnOffPC: ; 156ab
+ ld hl, UnknownText_0x15a40
+ call PrintText
+ scf
+ ret
+; 156b3
+
+PC_PlayBootSound: ; 156b3
+ ld de, SFX_BOOT_PC
+ jr PC_WaitPlaySFX
+
+PC_PlayShutdownSound: ; 156b8
+ ld de, SFX_SHUT_DOWN_PC
+ call PC_WaitPlaySFX
+ call WaitSFX
+ ret
+
+PC_PlayChoosePCSound: ; 156c2
+ ld de, SFX_CHOOSE_PC_OPTION
+ jr PC_WaitPlaySFX
+
+Function156c7: ; 156c7
+ ld de, SFX_SWITCH_POKEMON
+ call PC_WaitPlaySFX
+ ld de, SFX_SWITCH_POKEMON
+
+PC_WaitPlaySFX: ; 156d0
+ push de
+ call WaitSFX
+ pop de
+ call PlaySFX
+ ret
+; 156d9
+
+_KrissHousePC: ; 156d9
+ call PC_PlayBootSound
+ ld hl, UnknownText_0x156ff
+ call PC_DisplayText
+ ld b, $1
+ call _PlayersPC
+ and a
+ jr nz, .asm_156f9
+ call OverworldTextModeSwitch
+ call ApplyTilemap
+ call UpdateSprites
+ call PC_PlayShutdownSound
+ ld c, $0
+ ret
+
+.asm_156f9
+ call ClearBGPalettes
+ ld c, $1
+ ret
+; 156ff
+
+UnknownText_0x156ff: ; 0x156ff
+ ; turned on the PC.
+ text_jump UnknownText_0x1c1353
+ db "@"
+; 0x15704
+
+_PlayersPC: ; 15704
+ ld a, b
+ ld [wcf76], a
+ ld hl, UnknownText_0x157cc
+ call PC_DisplayTextWaitMenu
+ call Function15715
+ call ExitMenu
+ ret
+; 15715
+
+Function15715: ; 15715
+ xor a
+ ld [wd0d7], a
+ ld [wd0dd], a
+ ld hl, KrissPCMenuData
+ call LoadMenuDataHeader
+.asm_15722
+ call UpdateTimePals
+ call DoNthMenu
+ jr c, .asm_15731
+ call MenuJumptable
+ jr nc, .asm_15722
+ jr .asm_15732
+
+.asm_15731
+ xor a
+
+.asm_15732
+ call ExitMenu
+ ret
+; 15736
+
+KrissPCMenuData: ; 0x15736
+ db %01000000
+ db 0, 0 ; top left corner coords (y, x)
+ db 12, 15 ; bottom right corner coords (y, x)
+ dw .KrissPCMenuData2
+ db 1 ; default selected option
+
+.KrissPCMenuData2
+ db %10100000 ; bit7
+ db 0 ; # items?
+ dw .KrissPCMenuList1
+ dw PlaceNthMenuStrings
+ dw .KrissPCMenuPointers
+
+.KrissPCMenuPointers ; 0x15746
+ dw KrisWithdrawItemMenu, .WithdrawItem
+ dw KrisDepositItemMenu, .DepositItem
+ dw KrisTossItemMenu, .TossItem
+ dw KrisMailBoxMenu, .MailBox
+ dw KrisDecorationMenu, .Decoration
+ dw KrisLogOffMenu, .LogOff
+ dw KrisLogOffMenu, .TurnOff
+
+.WithdrawItem db "WITHDRAW ITEM@"
+.DepositItem db "DEPOSIT ITEM@"
+.TossItem db "TOSS ITEM@"
+.MailBox db "MAIL BOX@"
+.Decoration db "DECORATION@"
+.TurnOff db "TURN OFF@"
+.LogOff db "LOG OFF@"
+
+WITHDRAW_ITEM EQU 0
+DEPOSIT_ITEM EQU 1
+TOSS_ITEM EQU 2
+MAIL_BOX EQU 3
+DECORATION EQU 4
+TURN_OFF EQU 5
+LOG_OFF EQU 6
+
+.KrissPCMenuList1
+ db 5
+ db WITHDRAW_ITEM
+ db DEPOSIT_ITEM
+ db TOSS_ITEM
+ db MAIL_BOX
+ db TURN_OFF
+ db -1
+
+.KrissPCMenuList2
+ db 6
+ db WITHDRAW_ITEM
+ db DEPOSIT_ITEM
+ db TOSS_ITEM
+ db MAIL_BOX
+ db DECORATION
+ db LOG_OFF
+ db -1
+
+PC_DisplayTextWaitMenu: ; 157bb
+ ld a, [Options]
+ push af
+ set NO_TEXT_SCROLL, a
+ ld [Options], a
+ call MenuTextBox
+ pop af
+ ld [Options], a
+ ret
+; 157cc
+
+UnknownText_0x157cc: ; 0x157cc
+ ; What do you want to do?
+ text_jump UnknownText_0x1c1368
+ db "@"
+; 0x157d1
+
+KrisWithdrawItemMenu: ; 0x157d1
+ call LoadStandardMenuDataHeader
+ callba ClearPCItemScreen
+.asm_157da
+ call Function15985
+ jr c, .asm_157e4
+ call Function157e9
+ jr .asm_157da
+
+.asm_157e4
+ call ReturnToCallingMenu
+ xor a
+ ret
+; 0x157e9
+
+Function157e9: ; 0x157e9
+ ; check if the item has a quantity
+ callba _CheckTossableItem
+ ld a, [wItemAttributeParamBuffer]
+ and a
+ jr z, .askquantity
+
+ ; items without quantity are always ×1
+ ld a, 1
+ ld [wItemQuantityChangeBuffer], a
+ jr .withdraw
+
+.askquantity
+ ld hl, .HowManyText
+ call MenuTextBox
+ callba Function24fbf
+ call ExitMenu
+ call ExitMenu
+ jr c, .done
+
+.withdraw
+ ld a, [wItemQuantityChangeBuffer]
+ ld [Buffer1], a ; quantity
+ ld a, [wd107]
+ ld [Buffer2], a
+ ld hl, NumItems
+ call ReceiveItem
+ jr nc, .PackFull
+ ld a, [Buffer1]
+ ld [wItemQuantityChangeBuffer], a
+ ld a, [Buffer2]
+ ld [wd107], a
+ ld hl, PCItems
+ call TossItem
+ predef PartyMonItemName
+ ld hl, .WithdrewText
+ call MenuTextBox
+ xor a
+ ld [hBGMapMode], a
+ call ExitMenu
+ ret
+
+.PackFull
+ ld hl, .NoRoomText
+ call MenuTextBoxBackup
+ ret
+
+.done
+ ret
+; 0x15850
+
+.HowManyText ; 0x15850
+ text_jump _KrissPCHowManyWithdrawText
+ db "@"
+
+.WithdrewText ; 0x15855
+ text_jump _KrissPCWithdrewItemsText
+ db "@"
+
+.NoRoomText ; 0x1585a
+ text_jump _KrissPCNoRoomWithdrawText
+ db "@"
+
+
+KrisTossItemMenu: ; 0x1585f
+ call LoadStandardMenuDataHeader
+ callba ClearPCItemScreen
+.asm_15868
+ call Function15985
+ jr c, .asm_15878
+ ld de, PCItems
+ callba Function129f4
+ jr .asm_15868
+
+.asm_15878
+ call ReturnToCallingMenu
+ xor a
+ ret
+; 0x1587d
+
+
+KrisDecorationMenu: ; 0x1587d
+ callba _KrisDecorationMenu
+ ld a, c
+ and a
+ ret z
+ scf
+ ret
+; 0x15888
+
+
+KrisLogOffMenu: ; 0x15888
+ xor a
+ scf
+ ret
+; 0x1588b
+
+
+KrisDepositItemMenu: ; 0x1588b
+ call Function158b8
+ jr c, .asm_158b6
+ call DisableSpriteUpdates
+ call LoadStandardMenuDataHeader
+ callba Function106a5
+.asm_1589c
+ callba Function106be
+ ld a, [wcf66]
+ and a
+ jr z, .asm_158b3
+ call Function158cc
+ callba CheckRegisteredItem
+ jr .asm_1589c
+
+.asm_158b3
+ call ReturnToCallingMenu
+
+.asm_158b6
+ xor a
+ ret
+; 0x158b8
+
+Function158b8: ; 0x158b8
+ callba HasNoItems
+ ret nc
+ ld hl, UnknownText_0x158c7
+ call MenuTextBoxBackup
+ scf
+ ret
+; 0x158c7
+
+UnknownText_0x158c7: ; 0x158c7
+ ; No items here!
+ text_jump UnknownText_0x1c13df
+ db "@"
+; 0x158cc
+
+
+Function158cc: ; 0x158cc
+ ld a, [wSpriteUpdatesEnabled]
+ push af
+ ld a, $0
+ ld [wSpriteUpdatesEnabled], a
+ callba CheckItemMenu
+ ld a, [wItemAttributeParamBuffer]
+ ld hl, .jumptable
+ rst JumpTable
+ pop af
+ ld [wSpriteUpdatesEnabled], a
+ ret
+; 0x158e7
+
+.jumptable: ; 0x158e7
+ dw .tossable
+ dw .no_toss
+ dw .no_toss
+ dw .no_toss
+ dw .tossable
+ dw .tossable
+ dw .tossable
+
+.no_toss:
+ ret
+
+.tossable:
+ ld a, [Buffer1]
+ push af
+ ld a, [Buffer2]
+ push af
+ call Function1590a
+ pop af
+ ld [Buffer2], a
+ pop af
+ ld [Buffer1], a
+ ret
+; 0x1590a
+
+Function1590a: ; 0x1590a
+ callba _CheckTossableItem
+ ld a, [wItemAttributeParamBuffer]
+ and a
+ jr z, .asm_1591d
+ ld a, $1
+ ld [wItemQuantityChangeBuffer], a
+ jr .asm_15933
+
+.asm_1591d
+ ld hl, .HowManyText
+ call MenuTextBox
+ callba Function24fbf
+ push af
+ call ExitMenu
+ call ExitMenu
+ pop af
+ jr c, .asm_1596c
+
+.asm_15933
+ ld a, [wItemQuantityChangeBuffer]
+ ld [Buffer1], a
+ ld a, [wd107]
+ ld [Buffer2], a
+ ld hl, PCItems
+ call ReceiveItem
+ jr nc, .asm_15965
+ ld a, [Buffer1]
+ ld [wItemQuantityChangeBuffer], a
+ ld a, [Buffer2]
+ ld [wd107], a
+ ld hl, NumItems
+ call TossItem
+ predef PartyMonItemName
+ ld hl, .DepositText
+ call PrintText
+ ret
+
+.asm_15965
+ ld hl, .NoRoomText
+ call PrintText
+ ret
+
+.asm_1596c
+ and a
+ ret
+; 0x1596e
+
+
+.HowManyText ; 0x1596e
+ text_jump _KrissPCHowManyDepositText
+ db "@"
+
+.DepositText ; 0x15973
+ text_jump _KrissPCDepositItemsText
+ db "@"
+
+.NoRoomText ; 0x15978
+ text_jump _KrissPCNoRoomDepositText
+ db "@"
+
+
+KrisMailBoxMenu: ; 0x1597d
+ callba _KrisMailBoxMenu
+ xor a
+ ret
+; 0x15985
+
+
+Function15985: ; 0x15985
+ xor a
+ ld [wd0e3], a
+.asm_15989
+ ld a, [wSpriteUpdatesEnabled]
+ push af
+ ld a, $0
+ ld [wSpriteUpdatesEnabled], a
+ ld hl, MenuData15a08
+ call CopyMenuDataHeader
+ hlcoord 0, 0
+ ld b, $a
+ ld c, $12
+ call TextBox
+ ld a, [wd0d7]
+ ld [wMenuCursorBuffer], a
+ ld a, [wd0dd]
+ ld [wMenuScrollPosition], a
+ call HandleScrollingMenu
+ ld a, [wMenuScrollPosition]
+ ld [wd0dd], a
+ ld a, [MenuSelection2]
+ ld [wd0d7], a
+ pop af
+ ld [wSpriteUpdatesEnabled], a
+ ld a, [wd0e3]
+ and a
+ jr nz, .asm_159d8
+ ld a, [wcf73]
+ cp $2
+ jr z, .asm_15a06
+ cp $1
+ jr z, .asm_159fb
+ cp $4
+ jr z, .asm_159f2
+ jr .asm_159f8
+
+.asm_159d8
+ ld a, [wcf73]
+ cp $2
+ jr z, .asm_159e9
+ cp $1
+ jr z, .asm_159ef
+ cp $4
+ jr z, .asm_159ef
+ jr .asm_159f8
+
+.asm_159e9
+ xor a
+ ld [wd0e3], a
+ jr .asm_159f8
+
+.asm_159ef
+ call Function156c7
+
+.asm_159f2
+ callba Function2490c
+
+.asm_159f8
+ jp .asm_15989
+
+.asm_159fb
+ callba Function24706
+ call Function1bee
+ and a
+ ret
+
+.asm_15a06
+ scf
+ ret
+; 0x15a08
+
+MenuData15a08: ; 0x15a08
+ db %01000000
+ db 1, 4 ; start coords
+ db 10, 18 ; end coords
+ dw .MenuData2
+ db 1 ; default option
+
+.MenuData2
+ db %10110000
+ db 4, 8 ; rows/cols?
+ db 2 ; horizontal spacing?
+ dbw 0, PCItems
+ dba PlaceMenuItemName
+ dba PlaceMenuItemQuantity
+ dba UpdateItemDescription
+
+PC_DisplayText: ; 15a20
+ call MenuTextBox
+ call ExitMenu
+ ret
+; 15a27
+
+
+UnknownText_0x15a27: ; 0x15a27
+ ; turned on the PC.
+ text_jump UnknownText_0x1c144d
+ db "@"
+; 0x15a2c
+
+UnknownText_0x15a2c: ; 0x15a2c
+ ; Access whose PC?
+ text_jump UnknownText_0x1c1462
+ db "@"
+; 0x15a31
+
+UnknownText_0x15a31: ; 0x15a31
+ ; BILL's PC accessed. #MON Storage System opened.
+ text_jump UnknownText_0x1c1474
+ db "@"
+; 0x15a36
+
+UnknownText_0x15a36: ; 0x15a36
+ ; Accessed own PC. Item Storage System opened.
+ text_jump UnknownText_0x1c14a4
+ db "@"
+; 0x15a3b
+
+UnknownText_0x15a3b: ; 0x15a3b
+ ; PROF.OAK's PC accessed. #DEX Rating System opened.
+ text_jump UnknownText_0x1c14d2
+ db "@"
+; 0x15a40
+
+UnknownText_0x15a40: ; 0x15a40
+ ; … Link closed…
+ text_jump UnknownText_0x1c1505
+ db "@"
+; 0x15a45
--- a/engine/pokedex.asm
+++ b/engine/pokedex.asm
@@ -65,12 +65,8 @@
call ClearTileMap
call Function414b7
- ld hl, wc6d0
-IF DEF(CRYSTAL11)
- ld bc, $0116
-ELSE
- ld bc, $0115
-ENDC
+ ld hl, wPokedexDataStart
+ ld bc, wPokedexDataEnd - wPokedexDataStart
xor a
call ByteFill
@@ -480,7 +476,7 @@
push af
ld a, [wJumptableIndex]
push af
- callba Function8442c
+ callba PrintDexEntry
pop af
ld [wJumptableIndex], a
pop af
@@ -2367,7 +2363,7 @@
push af
ld a, $5
ld [rSVBK], a
- ld hl, wMapPals
+ ld hl, UnknBGPals
ld bc, $40
xor a
call ByteFill
--- /dev/null
+++ b/engine/pokegear.asm
@@ -1,0 +1,2990 @@
+PokeGear: ; 90b8d (24:4b8d)
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set NO_TEXT_SCROLL, [hl]
+
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+
+ ld a, [VramState]
+ push af
+ xor a
+ ld [VramState], a
+
+ call Function90bea
+ call DelayFrame
+
+.loop
+ call UpdateTime
+ call JoyTextDelay
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .done
+ call Function90f04
+ callba Function8cf69
+ call DelayFrame
+ jr .loop
+
+.done
+ ld de, SFX_READ_TEXT_2
+ call PlaySFX
+ call WaitSFX
+ pop af
+ ld [VramState], a
+ pop af
+ ld [hInMenu], a
+ pop af
+ ld [Options], a
+ call ClearBGPalettes
+ xor a
+ ld [hBGMapAddress], a
+ ld a, VBGMap0 / $100
+ ld [hBGMapAddress + 1], a
+ ld a, $90
+ ld [hWY], a
+ call Function91492
+ ret
+
+Function90bea: ; 90bea (24:4bea)
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ call DisableLCD
+ xor a
+ ld [hSCY], a
+ ld [hSCX], a
+ ld a, $7
+ ld [hWX], a
+ call Function90c4e
+ callba Function8cf53
+ call Function90d32
+ ld a, 8
+ call SkipMusic
+ ld a, $e3
+ ld [rLCDC], a
+ call Function90d70
+ xor a
+ ld [wJumptableIndex], a
+ ld [wcf64], a
+ ld [wcf65], a
+ ld [wcf66], a
+ ld [wc6d2], a
+ ld [wc6d1], a
+ ld [wc6d3], a
+ ld [wc6d9], a
+ ld [wc6da], a
+ ld [wc6db], a
+ call Function90d9e
+ call Function90da8
+ ld b, SCGB_02
+ call GetSGBLayout
+ call SetPalettes
+ ld a, [hCGB]
+ and a
+ ret z
+ ld a, $e4
+ call Functioncf8
+ ret
+
+Function90c4e: ; 90c4e
+ call ClearVBank1
+ ld hl, TownMapGFX
+ ld de, VTiles2
+ ld a, BANK(TownMapGFX)
+ call FarDecompress
+
+ ld hl, PokegearGFX
+ ld de, VTiles2 + $30 tiles
+ ld a, BANK(PokegearGFX)
+ call FarDecompress
+
+ ld hl, PokegearSpritesGFX
+ ld de, VTiles0
+ ld a, BANK(PokegearSpritesGFX)
+ call Decompress
+
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetWorldMapLocation
+ cp FAST_SHIP
+ jr z, .ssaqua
+
+ callba GetPlayerIcon
+
+ push de
+ ld h, d
+ ld l, e
+ ld a, b
+
+ push af
+ ld de, VTiles0 tile $10
+ ld bc, 4 tiles
+ call FarCopyBytes
+ pop af
+
+ pop hl
+
+ ld de, $c0
+ add hl, de
+ ld de, VTiles0 tile $14
+ ld bc, 4 tiles
+ call FarCopyBytes
+ ret
+
+.ssaqua
+ ld hl, FastShipGFX
+ ld de, VTiles0 tile $10
+ ld bc, 8 tiles
+ call CopyBytes
+ ret
+; 90cb2
+
+FastShipGFX: ; 90cb2
+INCBIN "gfx/misc/fast_ship.2bpp"
+; 90d32
+
+Function90d32: ; 90d32 (24:4d32)
+ depixel 4, 2, 4, 0
+ ld a, SPRITE_ANIM_INDEX_0D
+ call _InitSpriteAnimStruct
+ ld hl, $3
+ add hl, bc
+ ld [hl], $0
+ ret
+
+Function90d41: ; 90d41 (24:4d41)
+ ld hl, wcf64
+ ld e, [hl]
+ ld d, 0
+ ld hl, Unknown_90d52
+ add hl, de
+ ld a, [hl]
+ ld hl, $6
+ add hl, bc
+ ld [hl], a
+ ret
+; 90d52 (24:4d52)
+
+Unknown_90d52: ; 90d52
+ db $00, $10, $20, $30
+; 90d56
+
+Function90d56: ; 90d56
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetWorldMapLocation
+ cp SPECIAL_MAP
+ ret nz
+ ld a, [BackupMapGroup]
+ ld b, a
+ ld a, [BackupMapNumber]
+ ld c, a
+ call GetWorldMapLocation
+ ret
+; 90d70
+
+
+Function90d70: ; 90d70 (24:4d70)
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetWorldMapLocation
+
+ cp FAST_SHIP
+ jr z, .asm_90d95
+
+ cp SPECIAL_MAP
+ jr nz, .asm_90d8e
+
+ ld a, [BackupMapGroup]
+ ld b, a
+ ld a, [BackupMapNumber]
+ ld c, a
+ call GetWorldMapLocation
+
+.asm_90d8e
+ ld [wc6d8], a
+ ld [wc6d7], a
+ ret
+
+.asm_90d95
+ ld [wc6d8], a
+ ld a, NEW_BARK_TOWN
+ ld [wc6d7], a
+ ret
+
+Function90d9e: ; 90d9e (24:4d9e)
+ ld a, $0
+ ld [wJumptableIndex], a
+ xor a
+ ld [wcf64], a
+ ret
+
+Function90da8: ; 90da8 (24:4da8)
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 0, 0
+ ld bc, TileMapEnd - TileMap
+ ld a, $4f
+ call ByteFill
+ ld a, [wcf64]
+ and $3
+ add a
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_90e12
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, .asm_90dcb
+ push de
+ jp [hl]
+
+.asm_90dcb
+ call Function90eb0
+ callba TownMapPals
+ ld a, [wcf65]
+ and a
+ jr nz, .asm_90de8
+
+ xor a
+ ld [hBGMapAddress], a
+ ld a, VBGMap0 / $100
+ ld [hBGMapAddress + 1], a
+ call Function90e00
+ ld a, $90
+ jr .asm_90df3
+
+.asm_90de8
+ xor a
+ ld [hBGMapAddress], a
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ call Function90e00
+ xor a
+
+.asm_90df3
+ ld [hWY], a
+ ld a, [wcf65]
+ and 1
+ xor 1
+ ld [wcf65], a
+ ret
+
+Function90e00: ; 90e00 (24:4e00)
+ ld a, [hCGB]
+ and a
+ jr z, .asm_90e0e
+ ld a, $2
+ ld [hBGMapMode], a
+ ld c, 3
+ call DelayFrames
+.asm_90e0e
+ call WaitBGMap
+ ret
+; 90e12 (24:4e12)
+
+Jumptable_90e12: ; 90e12
+ dw Function90e1a
+ dw Function90e3f
+ dw Function90e82
+ dw Function90e72
+; 90e1a
+
+Function90e1a: ; 90e1a
+ ld de, ClockTilemapRLE
+ call Function914bb
+ hlcoord 12, 1
+ ld de, .switch
+ call PlaceString
+ hlcoord 0, 12
+ lb bc, 4, 18
+ call TextBox
+ call Function90f86
+ ret
+; 90e36 (24:4e36)
+
+.switch
+ db " SWITCH▶@"
+; 90e3f
+
+Function90e3f: ; 90e3f
+
+ ld a, [wc6d8]
+ cp FAST_SHIP
+ jr z, .johto
+ cp KANTO_LANDMARK
+ jr nc, .kanto
+.johto
+ ld e, 0
+ jr .ok
+.kanto
+ ld e, 1
+.ok
+ callba PokegearMap
+ ld a, $7
+ ld bc, $12
+ hlcoord 1, 2
+ call ByteFill
+ hlcoord 0, 2
+ ld [hl], $6
+ hlcoord 19, 2
+ ld [hl], $17
+ ld a, [wc6d7]
+ call Function910b4
+ ret
+; 90e72
+
+Function90e72: ; 90e72
+ ld de, RadioTilemapRLE
+ call Function914bb
+ hlcoord 0, 12
+ lb bc, 4, 18
+ call TextBox
+ ret
+; 90e82
+
+Function90e82: ; 90e82
+ ld de, PhoneTilemapRLE
+ call Function914bb
+ hlcoord 0, 12
+ lb bc, 4, 18
+ call TextBox
+ call Function90e98
+ call Function912d8
+ ret
+; 90e98
+
+Function90e98: ; 90e98 (24:4e98)
+ hlcoord 17, 1
+ ld a, $3c
+ ld [hli], a
+ inc a
+ ld [hl], a
+ hlcoord 17, 2
+ inc a
+ ld [hli], a
+ call GetMapHeaderPhoneServiceNybble
+ and a
+ ret nz
+ hlcoord 18, 2
+ ld [hl], $3f
+ ret
+
+Function90eb0: ; 90eb0 (24:4eb0)
+ hlcoord 0, 0
+ ld bc, $8
+ ld a, $4f
+ call ByteFill
+ hlcoord 0, 1
+ ld bc, $8
+ ld a, $4f
+ call ByteFill
+ ld de, wPokegearFlags
+ ld a, [de]
+ bit 0, a
+ call nz, Function90ee4
+ ld a, [de]
+ bit 2, a
+ call nz, Function90eeb
+ ld a, [de]
+ bit 1, a
+ call nz, Function90ef2
+ hlcoord 0, 0
+ ld a, $46
+ call Function90ef7
+ ret
+
+Function90ee4: ; 90ee4 (24:4ee4)
+ hlcoord 2, 0
+ ld a, $40
+ jr Function90ef7
+
+Function90eeb: ; 90eeb (24:4eeb)
+ hlcoord 4, 0
+ ld a, $44
+ jr Function90ef7
+
+Function90ef2: ; 90ef2 (24:4ef2)
+ hlcoord 6, 0
+ ld a, $42
+
+Function90ef7: ; 90ef7 (24:4ef7)
+ ld [hli], a
+ inc a
+ ld [hld], a
+ ld bc, $14
+ add hl, bc
+ add $f
+ ld [hli], a
+ inc a
+ ld [hld], a
+ ret
+
+Function90f04: ; 90f04 (24:4f04)
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_90f13
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+Jumptable_90f13: ; 90f13 (24:4f13)
+ dw Function90f2d
+ dw Function90f3e
+ dw Function90fb4
+ dw Function90fcd
+ dw Function90fee
+ dw Function90fcd
+ dw Function90fe9
+ dw Function91156
+ dw Function91171
+ dw Function911eb
+ dw Function91256
+ dw Function910f9
+ dw Function91112
+
+
+Function90f2d: ; 90f2d (24:4f2d)
+ call Function90da8
+ ld hl, UnknownText_0x914d3
+ call PrintText
+ ld hl, wJumptableIndex
+ inc [hl]
+ call Function91492
+ ret
+
+Function90f3e: ; 90f3e (24:4f3e)
+ call Function90f7b
+ ld hl, hJoyLast
+
+ ld a, [hl]
+ and A_BUTTON + B_BUTTON + START + SELECT
+ jr nz, .asm_90f75
+
+ ld a, [hl]
+ and D_RIGHT
+ ret z
+
+ ld a, [wPokegearFlags]
+ bit 0, a
+ jr z, .asm_90f5a
+ ld c, $2
+ ld b, $1
+ jr .asm_90f71
+.asm_90f5a
+
+ ld a, [wPokegearFlags]
+ bit 2, a
+ jr z, .asm_90f67
+ ld c, $7
+ ld b, $2
+ jr .asm_90f71
+.asm_90f67
+
+ ld a, [wPokegearFlags]
+ bit 1, a
+ ret z
+
+ ld c, $b
+ ld b, $3
+
+.asm_90f71
+ call Function91480
+ ret
+
+.asm_90f75
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+Function90f7b: ; 90f7b (24:4f7b)
+ xor a
+ ld [hBGMapMode], a
+ call Function90f86
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+
+Function90f86: ; 90f86 (24:4f86)
+ hlcoord 3, 5
+ lb bc, 5, 14
+ call ClearBox
+ ld a, [hHours]
+ ld b, a
+ ld a, [hMinutes]
+ ld c, a
+ decoord 6, 8
+ callba PrintHoursMins
+ ld hl, UnknownText_0x90faf
+ bccoord 6, 6
+ call PlaceWholeStringInBoxAtOnce
+ ret
+; 90fa8 (24:4fa8)
+
+String_90fa8: db "ごぜん@"
+String_90fac: db "ごご@"
+
+UnknownText_0x90faf: ; 0x90faf
+ text_jump UnknownText_0x1c5821
+ db "@"
+; 0x90fb4
+
+Function90fb4: ; 90fb4 (24:4fb4)
+ ld a, [wc6d8]
+ cp FAST_SHIP
+ jr z, .johto
+ cp KANTO_LANDMARK
+ jr nc, .kanto
+.johto
+ ld a, 3
+ jr .done
+
+ ret
+
+.kanto
+ ld a, 5
+.done
+ ld [wJumptableIndex], a
+ call Function91492
+ ret
+
+Function90fcd: ; 90fcd (24:4fcd)
+ call Function90da8
+ ld a, [wc6d8]
+ call Function9106a
+ ld a, [wc6d7]
+ call Function91098
+ ld a, c
+ ld [wc6d5], a
+ ld a, b
+ ld [wc6d6], a
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+
+Function90fe9: ; 90fe9 (24:4fe9)
+ call Function910e8
+ jr Function90ff2
+
+Function90fee: ; 90fee (24:4fee)
+ ld d, $2e
+ ld e, $1
+Function90ff2: ; 90ff2 (24:4ff2)
+ ld hl, hJoyLast
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .cancel
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, .right
+ ld a, [hl]
+ and D_LEFT
+ jr nz, .left
+ call Function9102f
+ ret
+
+.right
+ ld a, [wPokegearFlags]
+ bit 2, a
+ jr z, .asm_91015
+ ld c, $7
+ ld b, $2
+ jr .done
+
+.asm_91015
+ ld a, [wPokegearFlags]
+ bit 1, a
+ ret z
+ ld c, $b
+ ld b, $3
+ jr .done
+
+.left
+ ld c, $0
+ ld b, $0
+.done
+ call Function91480
+ ret
+.cancel
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+Function9102f: ; 9102f (24:502f)
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .up
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .down
+ ret
+.up
+ ld hl, wc6d7
+ ld a, [hl]
+ cp d
+ jr c, .asm_91047
+ ld a, e
+ dec a
+ ld [hl], a
+.asm_91047
+ inc [hl]
+ jr .done
+
+.down
+ ld hl, wc6d7
+ ld a, [hl]
+ cp e
+ jr nz, .asm_91054
+ ld a, d
+ inc a
+ ld [hl], a
+.asm_91054
+ dec [hl]
+
+.done
+ ld a, [wc6d7]
+ call Function910b4
+ ld a, [wc6d5]
+ ld c, a
+ ld a, [wc6d6]
+ ld b, a
+ ld a, [wc6d7]
+ call Function910d4
+ ret
+
+Function9106a: ; 9106a
+ push af
+ ld de, 0
+ ld b, SPRITE_ANIM_INDEX_0A
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .asm_91079
+ ld b, SPRITE_ANIM_INDEX_1E
+
+.asm_91079
+ ld a, b
+ call _InitSpriteAnimStruct
+ ld hl, $3
+ add hl, bc
+ ld [hl], $10
+ pop af
+ ld e, a
+ push bc
+ callba GetLandmarkCoords
+ pop bc
+ ld hl, $4
+ add hl, bc
+ ld [hl], e
+ ld hl, $5
+ add hl, bc
+ ld [hl], d
+ ret
+; 91098
+
+Function91098: ; 91098
+ push af
+ ld de, 0
+ ld a, SPRITE_ANIM_INDEX_0D
+ call _InitSpriteAnimStruct
+ ld hl, $3
+ add hl, bc
+ ld [hl], $4
+ ld hl, $2
+ add hl, bc
+ ld [hl], $0
+ pop af
+ push bc
+ call Function910d4
+ pop bc
+ ret
+; 910b4
+
+Function910b4: ; 910b4
+ push af
+ hlcoord 8, 0
+ lb bc, 2, 12
+ call ClearBox
+ pop af
+ ld e, a
+ push de
+ callba GetLandmarkName
+ pop de
+ callba Function1de2c5
+ hlcoord 8, 0
+ ld [hl], $34
+ ret
+; 910d4
+
+Function910d4: ; 910d4
+ push bc
+ ld e, a
+ callba GetLandmarkCoords
+ pop bc
+ ld hl, $4
+ add hl, bc
+ ld [hl], e
+ ld hl, $5
+ add hl, bc
+ ld [hl], d
+ ret
+; 910e8
+
+Function910e8: ; 910e8
+ ld a, [StatusFlags]
+ bit 6, a
+ jr z, .asm_910f4
+ ld d, $5e
+ ld e, $2f
+ ret
+
+.asm_910f4
+ ld d, $5e
+ ld e, $58
+ ret
+; 910f9
+
+
+Function910f9: ; 910f9 (24:50f9)
+ call Function90da8
+ depixel 4, 10, 4, 4
+ ld a, SPRITE_ANIM_INDEX_14
+ call _InitSpriteAnimStruct
+ ld hl, $3
+ add hl, bc
+ ld [hl], $8
+ call _UpdateRadioStation
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+
+Function91112: ; 91112 (24:5112)
+ ld hl, hJoyLast
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .cancel
+ ld a, [hl]
+ and D_LEFT
+ jr nz, .left
+ ld a, [wc6da]
+ ld l, a
+ ld a, [wc6db]
+ ld h, a
+ ld a, [wc6d9]
+ and a
+ ret z
+ rst FarCall
+ ret
+
+.left
+ ld a, [wPokegearFlags]
+ bit 2, a
+ jr z, .asm_9113b
+ ld c, $7
+ ld b, $2
+ jr .asm_9114c
+
+.asm_9113b
+ ld a, [wPokegearFlags]
+ bit 0, a
+ jr z, .asm_91148
+ ld c, $2
+ ld b, $1
+ jr .asm_9114c
+
+.asm_91148
+ ld c, $0
+ ld b, $0
+.asm_9114c
+ call Function91480
+ ret
+
+.cancel
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+Function91156: ; 91156 (24:5156)
+ ld hl, wJumptableIndex
+ inc [hl]
+ xor a
+ ld [wc6d2], a
+ ld [wc6d1], a
+ ld [wc6d3], a
+ call Function90da8
+ call Function91492
+ ld hl, UnknownText_0x914ce
+ call PrintText
+ ret
+
+Function91171: ; 91171 (24:5171)
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .b
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .a
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_LEFT
+ jr nz, .left
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, .right
+ call Function9126d
+ ret
+
+.left
+ ld a, [wPokegearFlags]
+ bit 0, a
+ jr z, .asm_9119c
+ ld c, $2
+ ld b, $1
+ jr .asm_911ac
+.asm_9119c
+ ld c, $0
+ ld b, $0
+ jr .asm_911ac
+
+.right
+ ld a, [wPokegearFlags]
+ bit 1, a
+ ret z
+ ld c, $b
+ ld b, $3
+.asm_911ac
+ call Function91480
+ ret
+
+.b
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+.a
+ ld hl, wPhoneList
+ ld a, [wc6d2]
+ ld e, a
+ ld d, 0
+ add hl, de
+ ld a, [wc6d1]
+ ld e, a
+ ld d, 0
+ add hl, de
+ ld a, [hl]
+ and a
+ ret z
+
+ ld [wc6d3], a
+ hlcoord 1, 4
+ ld a, [wc6d1]
+ ld bc, 20 * 2
+ call AddNTimes
+ ld [hl], "▷"
+ call Function91342
+ jr c, .asm_911e5
+
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+
+.asm_911e5
+ ld a, $8
+ ld [wJumptableIndex], a
+ ret
+
+Function911eb: ; 911eb (24:51eb)
+ call GetMapHeaderPhoneServiceNybble
+ and a
+ jr nz, .asm_91234
+ ld hl, Options
+ res NO_TEXT_SCROLL, [hl]
+ xor a
+ ld [hInMenu], a
+ ld de, SFX_CALL
+ call PlaySFX
+ ld hl, UnknownText_0x9124c
+ call PrintText
+ call WaitSFX
+ ld de, SFX_CALL
+ call PlaySFX
+ ld hl, UnknownText_0x9124c
+ call PrintText
+ call WaitSFX
+ ld a, [wc6d3]
+ ld b, a
+ call Function90199
+ ld c, 10
+ call DelayFrames
+ ld hl, Options
+ set NO_TEXT_SCROLL, [hl]
+ ld a, $1
+ ld [hInMenu], a
+ call Function912b7
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+.asm_91234
+ callba Phone_NoSignal
+ ld hl, OutOfServiceAreaText
+ call PrintText
+ ld a, $8
+ ld [wJumptableIndex], a
+ ld hl, UnknownText_0x914ce
+ call PrintText
+ ret
+; 9124c (24:524c)
+
+UnknownText_0x9124c: ; 0x9124c
+ ;
+ text_jump UnknownText_0x1c5824
+ db "@"
+; 0x91251
+
+OutOfServiceAreaText: ; 0x91251
+ ; You're out of the service area.
+ text_jump UnknownText_0x1c5827
+ db "@"
+; 0x91256
+
+Function91256: ; 91256 (24:5256)
+ ld a, [hJoyPressed]
+ and A_BUTTON | B_BUTTON
+ ret z
+ callba HangUp
+ ld a, $8
+ ld [wJumptableIndex], a
+ ld hl, UnknownText_0x914ce
+ call PrintText
+ ret
+
+Function9126d: ; 9126d (24:526d)
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .up
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .down
+ ret
+
+.up
+ ld hl, wc6d1
+ ld a, [hl]
+ and a
+ jr z, .asm_91285
+ dec [hl]
+ jr .asm_912a3
+
+.asm_91285
+ ld hl, wc6d2
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ jr .asm_912ad
+
+.down
+ ld hl, wc6d1
+ ld a, [hl]
+ cp $3
+ jr nc, .asm_91299
+ inc [hl]
+ jr .asm_912a3
+
+.asm_91299
+ ld hl, wc6d2
+ ld a, [hl]
+ cp $6
+ ret nc
+ inc [hl]
+ jr .asm_912ad
+
+.asm_912a3
+ xor a
+ ld [hBGMapMode], a
+ call Function912b7
+ call WaitBGMap
+ ret
+
+.asm_912ad
+ xor a
+ ld [hBGMapMode], a
+ call Function912d8
+ call WaitBGMap
+ ret
+
+Function912b7: ; 912b7 (24:52b7)
+ ld a, " "
+ hlcoord 1, 4
+ ld [hl], a
+ hlcoord 1, 6
+ ld [hl], a
+ hlcoord 1, 8
+ ld [hl], a
+ hlcoord 1, 10
+ ld [hl], a
+ hlcoord 1, 4
+ ld a, [wc6d1]
+ ld bc, $28
+ call AddNTimes
+ ld [hl], "▶"
+ ret
+
+Function912d8: ; 912d8 (24:52d8)
+ hlcoord 1, 3
+ ld b, $9
+ ld a, $7f
+.asm_912df
+ ld c, $12
+.asm_912e1
+ ld [hli], a
+ dec c
+ jr nz, .asm_912e1
+rept 2
+ inc hl
+endr
+ dec b
+ jr nz, .asm_912df
+ ld a, [wc6d2]
+ ld e, a
+ ld d, $0
+ ld hl, wPhoneList
+ add hl, de
+ xor a
+ ld [wc6d0], a
+.asm_912f8
+ ld a, [hli]
+ push hl
+ push af
+ hlcoord 2, 4
+ ld a, [wc6d0]
+ ld bc, $28
+ call AddNTimes
+ ld d, h
+ ld e, l
+ pop af
+ ld b, a
+ call Function90380
+ pop hl
+ ld a, [wc6d0]
+ inc a
+ ld [wc6d0], a
+ cp $4
+ jr c, .asm_912f8
+ call Function912b7
+ ret
+; 9131e (24:531e)
+
+Function9131e: ; 9131e
+ ld hl, wPhoneList
+ ld a, [wc6d2]
+ ld e, a
+ ld d, 0
+ add hl, de
+ ld a, [wc6d1]
+ ld e, a
+ ld d, 0
+ add hl, de
+ ld [hl], 0
+ ld hl, wPhoneList
+ ld c, $a
+.asm_91336
+ ld a, [hli]
+ and a
+ jr nz, .asm_9133e
+ ld a, [hld]
+ ld [hli], a
+ ld [hl], 0
+.asm_9133e
+ dec c
+ jr nz, .asm_91336
+ ret
+; 91342
+
+Function91342: ; 91342 (24:5342)
+ ld hl, wPhoneList
+ ld a, [wc6d2]
+ ld e, a
+ ld d, 0
+ add hl, de
+ ld a, [wc6d1]
+ ld e, a
+ ld d, 0
+ add hl, de
+ ld c, [hl]
+ callba Function9038a
+ ld a, c
+ and a
+ jr z, .asm_91366
+
+ ld hl, Jumptable_91455
+ ld de, Unknown_9143f
+ jr .asm_9136c
+
+.asm_91366
+ ld hl, Jumptable_9146a
+ ld de, Unknown_9145b
+
+.asm_9136c
+ xor a
+ ld [hBGMapMode], a
+ push hl
+ push de
+ ld a, [de]
+ ld l, a
+ inc de
+ ld a, [de]
+ ld h, a
+ inc de
+ push hl
+ ld bc, hBGMapAddress + 1
+ add hl, bc
+ ld a, [de]
+ inc de
+ sla a
+ ld b, a
+ ld c, 8
+ push de
+ call TextBox
+ pop de
+ pop hl
+ inc hl
+ call PlaceString
+ pop de
+ xor a
+ ld [wc6d4], a
+ call Function9141d
+ call WaitBGMap
+
+.asm_91398
+ push de
+ call JoyTextDelay
+ pop de
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and D_UP
+ jr nz, .asm_913b4
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .asm_913c1
+ ld a, [hl]
+ and A_BUTTON | B_BUTTON
+ jr nz, .asm_913d4
+ call DelayFrame
+ jr .asm_91398
+
+.asm_913b4
+ ld hl, wc6d4
+ ld a, [hl]
+ and a
+ jr z, .asm_91398
+ dec [hl]
+ call Function9141d
+ jr .asm_91398
+
+.asm_913c1
+ ld hl, 2
+ add hl, de
+ ld a, [wc6d4]
+ inc a
+ cp [hl]
+ jr nc, .asm_91398
+ ld [wc6d4], a
+ call Function9141d
+ jr .asm_91398
+
+.asm_913d4
+ xor a
+ ld [hBGMapMode], a
+ call Function912d8
+ ld a, $1
+ ld [hBGMapMode], a
+ pop hl
+ ld a, [hJoyPressed]
+ and B_BUTTON
+ jr nz, Function913f1
+
+ ld a, [wc6d4]
+ ld e, a
+ ld d, 0
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+Function913f1: ; 913f1
+ ld hl, UnknownText_0x914ce
+ call PrintText
+ scf
+ ret
+; 913f9 (24:53f9)
+
+Function913f9: ; 913f9
+ ld hl, UnknownText_0x914d8
+ call MenuTextBox
+ call YesNoBox
+ call ExitMenu
+ jr c, .asm_91419
+ call Function9131e
+ xor a
+ ld [hBGMapMode], a
+ call Function912d8
+ ld hl, UnknownText_0x914ce
+ call PrintText
+ call WaitBGMap
+.asm_91419
+ scf
+ ret
+; 9141b
+
+Function9141b: ; 9141b
+ and a
+ ret
+; 9141d
+
+Function9141d: ; 9141d (24:541d)
+ push de
+ ld a, [de]
+ inc de
+ ld l, a
+ ld a, [de]
+ inc de
+ ld h, a
+ ld a, [de]
+ ld c, a
+ push hl
+ ld a, " "
+ ld de, 20 * 2
+.asm_9142c
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .asm_9142c
+ pop hl
+ ld a, [wc6d4]
+ ld bc, 20 * 2
+ call AddNTimes
+ ld [hl], "▶"
+ pop de
+ ret
+; 9143f (24:543f)
+
+Unknown_9143f: ; 9143f
+ dwcoord 10, 6
+ db 3
+ db "CALL"
+ next "DELETE"
+ next "CANCEL"
+ db "@"
+; 91455
+
+Jumptable_91455: ; 91455
+ dw Function9141b
+ dw Function913f9
+ dw Function913f1
+; 9145b
+
+Unknown_9145b: ; 9145b
+ dwcoord 10, 8
+ db 2
+ db "CALL"
+ next "CANCEL"
+ db "@"
+; 9146a
+
+Jumptable_9146a: ; 9146a
+ dw Function9141b
+ dw Function913f1
+; 9146e
+
+
+Function9146e: ; 9146e
+ ld a, [hHours]
+ cp 12
+ jr c, .asm_9147b
+ sub 12
+ ld [wd265], a
+ scf
+ ret
+
+.asm_9147b
+ ld [wd265], a
+ and a
+ ret
+; 91480
+
+
+Function91480: ; 91480 (24:5480)
+ ld de, SFX_READ_TEXT_2
+ call PlaySFX
+ ld a, c
+ ld [wJumptableIndex], a
+ ld a, b
+ ld [wcf64], a
+ call DeleteSpriteAnimStruct2ToEnd
+ ret
+
+Function91492: ; 91492
+ ld a, [wc6dc]
+ cp $fe
+ jr z, .asm_914a3
+ cp $ff
+ call z, EnterMapMusic
+ xor a
+ ld [wc6dc], a
+ ret
+
+.asm_914a3
+ call RestartMapMusic
+ xor a
+ ld [wc6dc], a
+ ret
+; 914ab
+
+
+DeleteSpriteAnimStruct2ToEnd: ; 914ab (24:54ab)
+ ld hl, SpriteAnim2
+ ld bc, wSpriteAnimationStructsEnd - SpriteAnim2
+ xor a
+ call ByteFill
+ ld a, 2
+ ld [wSpriteAnimCount], a
+ ret
+
+Function914bb: ; 914bb (24:54bb)
+ hlcoord 0, 0
+.asm_914be
+ ld a, [de]
+ cp $ff
+ ret z
+ ld b, a
+ inc de
+ ld a, [de]
+ ld c, a
+ inc de
+ ld a, b
+.asm_914c8
+ ld [hli], a
+ dec c
+ jr nz, .asm_914c8
+ jr .asm_914be
+; 914ce (24:54ce)
+
+UnknownText_0x914ce: ; 0x914ce
+ ; Whom do you want to call?
+ text_jump UnknownText_0x1c5847
+ db "@"
+; 0x914d3
+
+UnknownText_0x914d3: ; 0x914d3
+ ; Press any button to exit.
+ text_jump UnknownText_0x1c5862
+ db "@"
+; 0x914d8
+
+UnknownText_0x914d8: ; 0x914d8
+ ; Delete this stored phone number?
+ text_jump UnknownText_0x1c587d
+ db "@"
+; 0x914dd
+
+
+PokegearSpritesGFX: ; 914dd
+INCBIN "gfx/misc/pokegear_sprites.2bpp.lz"
+; 9150d
+
+RadioTilemapRLE: ; 9150d
+INCBIN "gfx/unknown/09150d.tilemap.rle"
+
+PhoneTilemapRLE: ; 9158a
+INCBIN "gfx/unknown/09158a.tilemap.rle"
+
+ClockTilemapRLE: ; 915db
+INCBIN "gfx/unknown/0915db.tilemap.rle"
+; 9163e
+_UpdateRadioStation: ; 9163e (24:563e)
+ jr UpdateRadioStation
+
+Function91640: ; 91640 (24:5640)
+ push bc
+ call .TuningKnob
+ pop bc
+ ld a, [wRadioTuningKnob]
+ ld hl, $6
+ add hl, bc
+ ld [hl], a
+ ret
+
+.TuningKnob: ; 9164e (24:564e)
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .down
+ ld a, [hl]
+ and D_UP
+ jr nz, .up
+ ret
+
+.down
+ ld hl, wRadioTuningKnob
+ ld a, [hl]
+ and a
+ ret z
+rept 2
+ dec [hl]
+endr
+ jr .update
+
+.up
+ ld hl, wRadioTuningKnob
+ ld a, [hl]
+ cp 80
+ ret nc
+rept 2
+ inc [hl]
+endr
+
+.update
+
+UpdateRadioStation: ; 9166f (24:566f)
+ ld hl, wRadioTuningKnob
+ ld d, [hl]
+ ld hl, RadioChannels
+.loop
+ ld a, [hli]
+ cp -1
+ jr z, .nostation
+ cp d
+ jr z, .foundstation
+rept 2
+ inc hl
+endr
+ jr .loop
+
+.nostation
+ call NoRadioStation
+ ret
+
+.foundstation
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, .returnafterstation
+ push de
+ jp [hl]
+.returnafterstation
+ ld a, [wc6d9]
+ and a
+ ret z
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 2, 9
+ call PlaceString
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 916a1 (24:56a1)
+
+Function916a1: ; 916a1
+ ld [wc6d9], a
+ ld a, [hli]
+ ld [wc6da], a
+ ld a, [hli]
+ ld [wc6db], a
+ ret
+; 916ad
+
+
+RadioChannels:
+; frequencies and the shows that play on them.
+; frequency value given here = 4 × ingame_frequency − 2
+ dbw 16, .PkmnTalkAndPokedexShow
+ dbw 28, .PokemonMusic
+ dbw 32, .LuckyChannel
+ dbw 40, .BuenasPassword
+ dbw 52, .RuinsOfAlphRadio
+ dbw 64, .PlacesAndPeople
+ dbw 72, .LetsAllSing
+ dbw 78, .PokeFluteRadio
+ dbw 80, .EvolutionRadio
+ db $ff
+
+.PkmnTalkAndPokedexShow
+; Pokédex Show in the morning
+; Oak's Pokémon Talk in the afternoon and evening
+ call .InJohto
+ jr nc, .NoSignal
+ ld a, [TimeOfDay]
+ and a
+ jp z, LoadStation_PokedexShow
+ jp LoadStation_OaksPokemonTalk
+
+.PokemonMusic
+ call .InJohto
+ jr nc, .NoSignal
+ jp LoadStation_PokemonMusic
+
+.LuckyChannel
+ call .InJohto
+ jr nc, .NoSignal
+ jp LoadStation_LuckyChannel
+
+.BuenasPassword
+ call .InJohto
+ jr nc, .NoSignal
+ jp LoadStation_BuenasPassword
+
+.RuinsOfAlphRadio
+ ld a, [wc6d8]
+ cp RUINS_OF_ALPH
+ jr nz, .NoSignal
+ jp LoadStation_UnownRadio
+
+.PlacesAndPeople
+ call .InJohto
+ jr c, .NoSignal
+ ld a, [wPokegearFlags]
+ bit 3, a
+ jr z, .NoSignal
+ jp LoadStation_PlacesAndPeople
+
+.LetsAllSing
+ call .InJohto
+ jr c, .NoSignal
+ ld a, [wPokegearFlags]
+ bit 3, a
+ jr z, .NoSignal
+ jp LoadStation_LetsAllSing
+
+.PokeFluteRadio
+ call .InJohto
+ jr c, .NoSignal
+ ld a, [wPokegearFlags]
+ bit 3, a
+ jr z, .NoSignal
+ jp LoadStation_PokeFluteRadio
+
+.EvolutionRadio
+; This station airs in the Lake of Rage area when Rocket are still in Mahogany.
+
+ ld a, [StatusFlags]
+ bit 4, a
+ jr z, .NoSignal
+
+ ld a, [wc6d8]
+ cp MAHOGANY_TOWN
+ jr z, .ok
+ cp ROUTE_43
+ jr z, .ok
+ cp LAKE_OF_RAGE
+ jr nz, .NoSignal
+.ok
+ jp LoadStation_EvolutionRadio
+
+.NoSignal
+ call NoRadioStation
+ ret
+
+.InJohto
+; if in Johto or on the S.S. Aqua, set carry
+; otherwise clear carry
+ ld a, [wc6d8]
+ cp FAST_SHIP
+ jr z, .johto
+ cp KANTO_LANDMARK
+ jr c, .johto
+.kanto
+ and a
+ ret
+.johto
+ scf
+ ret
+
+
+
+LoadStation_OaksPokemonTalk: ; 91753 (24:5753)
+ xor a ; OAKS_POKEMON_TALK
+ ld [wd002], a
+ ld [wd005], a
+ ld a, BANK(PlayRadioShow)
+ ld hl, PlayRadioShow
+ call Radio_BackUpFarCallParams
+ ld de, OaksPkmnTalkName
+ ret
+
+LoadStation_PokedexShow: ; 91766 (24:5766)
+ ld a, POKEDEX_SHOW
+ ld [wd002], a
+ xor a
+ ld [wd005], a
+ ld a, BANK(PlayRadioShow)
+ ld hl, PlayRadioShow
+ call Radio_BackUpFarCallParams
+ ld de, PokedexShowName
+ ret
+
+LoadStation_PokemonMusic: ; 9177b (24:577b)
+ ld a, POKEMON_MUSIC
+ ld [wd002], a
+ xor a
+ ld [wd005], a
+ ld a, BANK(PlayRadioShow)
+ ld hl, PlayRadioShow
+ call Radio_BackUpFarCallParams
+ ld de, PokemonMusicName
+ ret
+
+LoadStation_LuckyChannel: ; 91790 (24:5790)
+ ld a, LUCKY_CHANNEL
+ ld [wd002], a
+ xor a
+ ld [wd005], a
+ ld a, BANK(PlayRadioShow)
+ ld hl, PlayRadioShow
+ call Radio_BackUpFarCallParams
+ ld de, LuckyChannelName
+ ret
+
+LoadStation_BuenasPassword: ; 917a5 (24:57a5)
+ ld a, BUENAS_PASSWORD
+ ld [wd002], a
+ xor a
+ ld [wd005], a
+ ld a, BANK(PlayRadioShow)
+ ld hl, PlayRadioShow
+ call Radio_BackUpFarCallParams
+ ld de, NotBuenasPasswordName
+ ld a, [StatusFlags2]
+ bit 0, a
+ ret z
+ ld de, BuenasPasswordName
+ ret
+; 917c3 (24:57c3)
+
+BuenasPasswordName: db "BUENA'S PASSWORD@"
+NotBuenasPasswordName: db "@"
+
+LoadStation_UnownRadio: ; 917d5 (24:57d5)
+ ld a, UNOWN_RADIO
+ ld [wd002], a
+ xor a
+ ld [wd005], a
+ ld a, BANK(PlayRadioShow)
+ ld hl, PlayRadioShow
+ call Radio_BackUpFarCallParams
+ ld de, UnknownStationName
+ ret
+
+LoadStation_PlacesAndPeople: ; 917ea (24:57ea)
+ ld a, PLACES_AND_PEOPLE
+ ld [wd002], a
+ xor a
+ ld [wd005], a
+ ld a, BANK(PlayRadioShow)
+ ld hl, PlayRadioShow
+ call Radio_BackUpFarCallParams
+ ld de, PlacesAndPeopleName
+ ret
+
+LoadStation_LetsAllSing: ; 917ff (24:57ff)
+ ld a, LETS_ALL_SING
+ ld [wd002], a
+ xor a
+ ld [wd005], a
+ ld a, BANK(PlayRadioShow)
+ ld hl, PlayRadioShow
+ call Radio_BackUpFarCallParams
+ ld de, LetsAllSingName
+ ret
+; 91814 (24:5814)
+
+LoadStation_RocketRadio: ; 91814
+ ld a, ROCKET_RADIO
+ ld [wd002], a
+ xor a
+ ld [wd005], a
+ ld a, BANK(PlayRadioShow)
+ ld hl, PlayRadioShow
+ call Radio_BackUpFarCallParams
+ ld de, LetsAllSingName
+ ret
+; 91829
+
+LoadStation_PokeFluteRadio: ; 91829 (24:5829)
+ ld a, POKE_FLUTE_RADIO
+ ld [wd002], a
+ xor a
+ ld [wd005], a
+ ld a, BANK(PlayRadioShow)
+ ld hl, PlayRadioShow
+ call Radio_BackUpFarCallParams
+ ld de, PokeFluteStationName
+ ret
+
+LoadStation_EvolutionRadio: ; 9183e (24:583e)
+ ld a, EVOLUTION_RADIO
+ ld [wd002], a
+ xor a
+ ld [wd005], a
+ ld a, BANK(PlayRadioShow)
+ ld hl, PlayRadioShow
+ call Radio_BackUpFarCallParams
+ ld de, UnknownStationName
+ ret
+; 91853 (24:5853)
+
+LoadStation_Dummy: ; 91853
+ ret
+
+RadioMusicRestartDE: ; 91854 (24:5854)
+ push de
+ ld a, e
+ ld [wc6dc], a
+ ld de, MUSIC_NONE
+ call PlayMusic
+ pop de
+ ld a, e
+ ld [wMapMusic], a
+ call PlayMusic
+ ret
+
+RadioMusicRestartPokemonChannel: ; 91868 (24:5868)
+ push de
+ ld a, $fe
+ ld [wc6dc], a
+ ld de, MUSIC_NONE
+ call PlayMusic
+ pop de
+ ld de, MUSIC_POKEMON_CHANNEL
+ call PlayMusic
+ ret
+
+Radio_BackUpFarCallParams: ; 9187c (24:587c)
+ ld [wc6d9], a
+ ld a, l
+ ld [wc6da], a
+ ld a, h
+ ld [wc6db], a
+ ret
+
+NoRadioStation: ; 91888 (24:5888)
+ call NoRadioMusic
+ call NoRadioName
+ xor a
+ ld [wc6d9], a
+ ld [wc6da], a
+ ld [wc6db], a
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+
+NoRadioMusic: ; 9189d (24:589d)
+ ld de, MUSIC_NONE
+ call PlayMusic
+ ld a, $ff
+ ld [wc6dc], a
+ ret
+
+NoRadioName: ; 918a9 (24:58a9)
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 1, 8
+ lb bc, 3, 18
+ call ClearBox
+ hlcoord 0, 12
+ ld bc, $412
+ call TextBox
+ ret
+; 918bf
+
+OaksPkmnTalkName: db "OAK's <PK><MN> Talk@"
+PokedexShowName: db "#DEX Show@"
+PokemonMusicName: db "#MON Music@"
+LuckyChannelName: db "Lucky Channel@"
+UnknownStationName: db "?????@"
+PlacesAndPeopleName: db "Places & People@"
+LetsAllSingName: db "Let's All Sing!@"
+PokeFluteStationName: db "# FLUTE@"
+; 9191c
+
+INCLUDE "engine/town_map.asm"
+
+PlayRadio: ; 91a53
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ call .PlayStation
+ ld c, 100
+ call DelayFrames
+.loop
+ call JoyTextDelay
+ ld a, [hJoyPressed]
+ and A_BUTTON | B_BUTTON
+ jr nz, .stop
+ ld a, [wc6da]
+ ld l, a
+ ld a, [wc6db]
+ ld h, a
+ ld a, [wc6d9]
+ and a
+ jr z, .zero
+ rst FarCall
+
+.zero
+ call DelayFrame
+ jr .loop
+
+.stop
+ pop af
+ ld [Options], a
+ call Function91492
+ ret
+; 91a87
+
+.PlayStation: ; 91a87
+ ld a, -1
+ ld [EnemyTurnsTaken], a
+ ld hl, .StationPointers
+ ld d, $0
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, .jump_return
+ push de
+ jp [hl]
+
+.jump_return
+ push de
+ hlcoord 0, 12
+ lb bc, 4, 18
+ call TextBox
+ hlcoord 1, 14
+ ld [hl], $72
+ pop de
+ hlcoord 2, 14
+ call PlaceString
+ ld h, b
+ ld l, c
+ ld [hl], $73
+ call WaitBGMap
+ ret
+; 91ab9
+
+.StationPointers: ; 91ab9
+ dw .OakOrPnP
+ dw LoadStation_OaksPokemonTalk
+ dw LoadStation_PokedexShow
+ dw LoadStation_PokemonMusic
+ dw LoadStation_LuckyChannel
+ dw LoadStation_UnownRadio
+ dw LoadStation_PlacesAndPeople
+ dw LoadStation_LetsAllSing
+ dw LoadStation_RocketRadio
+; 91acb
+
+.OakOrPnP: ; 91acb
+ call IsInJohto
+ and a
+ jr nz, .kanto
+ call UpdateTime
+ ld a, [TimeOfDay]
+ and a
+ jp z, LoadStation_PokedexShow
+ jp LoadStation_OaksPokemonTalk
+
+.kanto
+ jp LoadStation_PlacesAndPeople
+; 91ae1
+
+PokegearMap: ; 91ae1
+ ld a, e
+ and a
+ jr nz, .kanto
+ call Function91ff2
+ call FillJohtoMap
+ ret
+
+.kanto
+ call Function91ff2
+ call FillKantoMap
+ ret
+; 91af3
+
+_FlyMap: ; 91af3
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ ld hl, hInMenu
+ ld a, [hl]
+ push af
+ ld [hl], $1
+ xor a
+ ld [hBGMapMode], a
+ callba Function8cf53
+ call Function91ff2
+ ld de, GFX_922e1
+ ld hl, VTiles2 tile $30
+ lb bc, BANK(GFX_922e1), 6
+ call Request1bpp
+ call FlyMap
+ call Function91c8f
+ ld b, SCGB_02
+ call GetSGBLayout
+ call SetPalettes
+.loop
+ call JoyTextDelay
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .pressedB
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .pressedA
+ call FlyMapScroll
+ call GetMapCursorCoordinates
+ callba Function8cf69
+ call DelayFrame
+ jr .loop
+
+.pressedB
+ ld a, -1
+ jr .exit
+
+.pressedA
+ ld a, [wd002]
+ ld l, a
+ ld h, 0
+ add hl, hl
+ ld de, Flypoints + 1
+ add hl, de
+ ld a, [hl]
+
+.exit
+ ld [wd002], a
+ pop af
+ ld [hInMenu], a
+ call ClearBGPalettes
+ ld a, $90
+ ld [hWY], a
+ xor a
+ ld [hBGMapAddress], a
+ ld a, VBGMap0 / $100
+ ld [hBGMapAddress + 1], a
+ ld a, [wd002]
+ ld e, a
+ ret
+; 91b73
+
+FlyMapScroll: ; 91b73
+ ld a, [StartFlypoint]
+ ld e, a
+ ld a, [EndFlypoint]
+ ld d, a
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .ScrollNext
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .ScrollPrev
+ ret
+
+.ScrollNext
+ ld hl, wd002
+ ld a, [hl]
+ cp d
+ jr nz, .NotAtEndYet
+ ld a, e
+ dec a
+ ld [hl], a
+
+.NotAtEndYet
+ inc [hl]
+ call CheckIfVisitedFlypoint
+ jr z, .ScrollNext
+ jr .Finally
+
+.ScrollPrev
+ ld hl, wd002
+ ld a, [hl]
+ cp e
+ jr nz, .NotAtStartYet
+ ld a, d
+ inc a
+ ld [hl], a
+
+.NotAtStartYet
+ dec [hl]
+ call CheckIfVisitedFlypoint
+ jr z, .ScrollPrev
+
+.Finally
+ call TownMapBubble
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ret
+; 91bb5
+
+TownMapBubble: ; 91bb5
+; Draw the bubble containing the location text in the town map HUD
+
+; Top-left corner
+ hlcoord 1, 0
+ ld a, $30
+ ld [hli], a
+
+; Top row
+ ld bc, 16
+ ld a, " "
+ call ByteFill
+
+; Top-right corner
+ ld a, $31
+ ld [hl], a
+ hlcoord 1, 1
+
+
+; Middle row
+ ld bc, 18
+ ld a, " "
+ call ByteFill
+
+
+; Bottom-left corner
+ hlcoord 1, 2
+ ld a, $32
+ ld [hli], a
+
+; Bottom row
+ ld bc, 16
+ ld a, " "
+ call ByteFill
+
+; Bottom-right corner
+ ld a, $33
+ ld [hl], a
+
+
+; Print "Where?"
+ hlcoord 2, 0
+ ld de, .Where
+ call PlaceString
+
+; Print the name of the default flypoint
+ call .Name
+
+; Up/down arrows
+ hlcoord 18, 1
+ ld [hl], $34
+ ret
+
+.Where
+ db "Where?@"
+
+.Name
+; We need the map location of the default flypoint
+ ld a, [wd002]
+ ld l, a
+ ld h, 0
+ add hl, hl ; two bytes per flypoint
+ ld de, Flypoints
+ add hl, de
+ ld e, [hl]
+
+ callba GetLandmarkName
+
+ hlcoord 2, 1
+ ld de, StringBuffer1
+ call PlaceString
+ ret
+; 91c17
+
+GetMapCursorCoordinates: ; 91c17
+ ld a, [wd002]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ ld de, Flypoints
+ add hl, de
+ ld e, [hl]
+ callba GetLandmarkCoords
+ ld a, [wd003]
+ ld c, a
+ ld a, [wd004]
+ ld b, a
+ ld hl, $4
+ add hl, bc
+ ld [hl], e
+ ld hl, $5
+ add hl, bc
+ ld [hl], d
+ ret
+; 91c3c
+
+CheckIfVisitedFlypoint: ; 91c3c
+; Check if the flypoint loaded in [hl] has been visited yet.
+ push bc
+ push de
+ push hl
+ ld l, [hl]
+ ld h, 0
+ add hl, hl
+ ld de, Flypoints + 1
+ add hl, de
+ ld c, [hl]
+ call HasVisitedSpawn
+ pop hl
+ pop de
+ pop bc
+ and a
+ ret
+; 91c50
+
+HasVisitedSpawn: ; 91c50
+; Check if spawn point c has been visited.
+ ld hl, VisitedSpawns
+ ld b, CHECK_FLAG
+ ld d, 0
+ predef FlagPredef
+ ld a, c
+ ret
+; 91c5e
+
+Flypoints: ; 91c5e
+; landmark, spawn point
+
+ const_def
+
+flypoint: MACRO
+; \1\@FLY EQUS "FLY_\1"
+; \1\@SPAWN EQUS "SPAWN_\1"
+ ; const \1\@FLY
+ ; db \2, \1\@SPAWN
+ const FLY_\1
+ db \2, SPAWN_\1
+ENDM
+
+; Johto
+ flypoint NEW_BARK, NEW_BARK_TOWN
+ flypoint CHERRYGROVE, CHERRYGROVE_CITY
+ flypoint VIOLET, VIOLET_CITY
+ flypoint AZALEA, AZALEA_TOWN
+ flypoint GOLDENROD, GOLDENROD_CITY
+ flypoint ECRUTEAK, ECRUTEAK_CITY
+ flypoint OLIVINE, OLIVINE_CITY
+ flypoint CIANWOOD, CIANWOOD_CITY
+ flypoint MAHOGANY, MAHOGANY_TOWN
+ flypoint LAKE, LAKE_OF_RAGE
+ flypoint BLACKTHORN, BLACKTHORN_CITY
+ flypoint MT_SILVER, SILVER_CAVE
+
+; Kanto
+KANTO_FLYPOINT EQU const_value
+
+ flypoint PALLET, PALLET_TOWN
+ flypoint VIRIDIAN, VIRIDIAN_CITY
+ flypoint PEWTER, PEWTER_CITY
+ flypoint CERULEAN, CERULEAN_CITY
+ flypoint VERMILION, VERMILION_CITY
+ flypoint ROCK_TUNNEL, ROCK_TUNNEL
+ flypoint LAVENDER, LAVENDER_TOWN
+ flypoint CELADON, CELADON_CITY
+ flypoint SAFFRON, SAFFRON_CITY
+ flypoint FUCHSIA, FUCHSIA_CITY
+ flypoint CINNABAR, CINNABAR_ISLAND
+ flypoint INDIGO, INDIGO_PLATEAU
+
+ db -1
+; 91c8f
+
+Function91c8f: ; 91c8f
+ ret
+; 91c90
+
+FlyMap: ; 91c90
+
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetWorldMapLocation
+
+; If we're not in a valid location, i.e. Pokecenter floor 2F,
+; the backup map information is used
+
+ cp SPECIAL_MAP
+ jr nz, .CheckRegion
+
+ ld a, [BackupMapGroup]
+ ld b, a
+ ld a, [BackupMapNumber]
+ ld c, a
+ call GetWorldMapLocation
+
+.CheckRegion
+; The first 46 locations are part of Johto. The rest are in Kanto
+ cp KANTO_LANDMARK
+ jr nc, .KantoFlyMap
+
+.JohtoFlyMap
+; Note that .NoKanto should be modified in tandem with this branch
+
+ push af
+
+; Start from New Bark Town
+ ld a, FLY_NEW_BARK
+ ld [wd002], a
+
+; Flypoints begin at New Bark Town...
+ ld [StartFlypoint], a
+; ..and end at Silver Cave
+ ld a, FLY_MT_SILVER
+ ld [EndFlypoint], a
+
+; Fill out the map
+ call FillJohtoMap
+ call .MapHud
+ pop af
+ call TownMapPlayerIcon
+ ret
+
+.KantoFlyMap
+
+; The event that there are no flypoints enabled in a map is not
+; accounted for. As a result, if you attempt to select a flypoint
+; when there are none enabled, the game will crash. Additionally,
+; the flypoint selection has a default starting point that
+; can be flown to even if none are enabled
+
+; To prevent both of these things from happening when the player
+; enters Kanto, fly access is restricted until Indigo Plateau is
+; visited and its flypoint enabled
+
+ push af
+ ld c, SPAWN_INDIGO
+ call HasVisitedSpawn
+ and a
+ jr z, .NoKanto
+
+; Kanto's map is only loaded if we've visited Indigo Plateau
+
+; Flypoints begin at Pallet Town...
+ ld a, FLY_PALLET
+ ld [StartFlypoint], a
+; ...and end at Indigo Plateau
+ ld a, FLY_INDIGO
+ ld [EndFlypoint], a
+
+; Because Indigo Plateau is the first flypoint the player
+; visits, it's made the default flypoint
+ ld [wd002], a
+
+; Fill out the map
+ call FillKantoMap
+ call .MapHud
+ pop af
+ call TownMapPlayerIcon
+ ret
+
+.NoKanto
+; If Indigo Plateau hasn't been visited, we use Johto's map instead
+
+; Start from New Bark Town
+ ld a, FLY_NEW_BARK
+ ld [wd002], a
+
+; Flypoints begin at New Bark Town...
+ ld [StartFlypoint], a
+; ..and end at Silver Cave
+ ld a, FLY_MT_SILVER
+ ld [EndFlypoint], a
+
+ call FillJohtoMap
+
+ pop af
+
+.MapHud
+ call TownMapBubble
+ call TownMapPals
+
+ hlbgcoord 0, 0 ; BG Map 0
+ call TownMapBGUpdate
+
+ call TownMapMon
+ ld a, c
+ ld [wd003], a
+ ld a, b
+ ld [wd004], a
+ ret
+; 91d11
+
+Function91d11: ; 91d11
+ ld a, [wd002]
+ push af
+ ld a, [wd003]
+ push af
+ ld a, e
+ ld [wd002], a
+ call ClearSprites
+ xor a
+ ld [hBGMapMode], a
+ ld a, $1
+ ld [hInMenu], a
+
+ ld de, GFX_922d1
+ ld hl, VTiles0 tile $7f
+ lb bc, BANK(GFX_922d1), 1
+ call Request2bpp ; actually 1bpp
+
+ call Function91ed0
+
+ ld hl, VTiles0 tile $78
+ ld c, $4
+ call Request2bpp
+
+ call Function91ff2
+ call FillKantoMap
+ call Function91de9
+ call TownMapPals
+ hlbgcoord 0, 0, VBGMap1
+ call TownMapBGUpdate
+ call FillJohtoMap
+ call Function91de9
+ call TownMapPals
+ hlbgcoord 0, 0
+ call TownMapBGUpdate
+ ld b, SCGB_02
+ call GetSGBLayout
+ call SetPalettes
+ xor a
+ ld [hBGMapMode], a
+ xor a
+ call Function91e1e
+.loop
+ call JoyTextDelay
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and A_BUTTON | B_BUTTON
+ jr nz, .a_b
+ ld a, [hJoypadDown]
+ and SELECT
+ jr nz, .select
+ call Function91d9b
+ call Function91dcd
+ jr .next
+
+.select
+ call Function91e5a
+
+.next
+ call DelayFrame
+ jr .loop
+
+.a_b
+ call ClearSprites
+ pop af
+ ld [wd003], a
+ pop af
+ ld [wd002], a
+ ret
+; 91d9b
+
+Function91d9b: ; 91d9b
+ ld a, [hl]
+ and $20
+ jr nz, .asm_91da6
+ ld a, [hl]
+ and $10
+ jr nz, .asm_91db7
+ ret
+
+.asm_91da6
+ ld a, [hWY]
+ cp $90
+ ret z
+ call ClearSprites
+ ld a, $90
+ ld [hWY], a
+ xor a
+ call Function91e1e
+ ret
+
+.asm_91db7
+ ld a, [StatusFlags]
+ bit 6, a ; hall of fame
+ ret z
+ ld a, [hWY]
+ and a
+ ret z
+ call ClearSprites
+ xor a
+ ld [hWY], a
+ ld a, $1
+ call Function91e1e
+ ret
+; 91dcd
+
+Function91dcd: ; 91dcd
+ ld a, [hVBlankCounter]
+ ld e, a
+ and $f
+ ret nz
+ ld a, e
+ and $10
+ jr nz, .asm_91ddc
+ call ClearSprites
+ ret
+
+.asm_91ddc
+ hlcoord 0, 0
+ ld de, Sprites
+ ld bc, $a0
+ call CopyBytes
+ ret
+; 91de9
+
+Function91de9: ; 91de9
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH
+ ld a, $7f
+ call ByteFill
+ hlcoord 0, 1
+ ld a, $6
+ ld [hli], a
+ ld bc, SCREEN_HEIGHT
+ ld a, $7
+ call ByteFill
+ ld [hl], $17
+ call GetPokemonName
+ hlcoord 2, 0
+ call PlaceString
+ ld h, b
+ ld l, c
+ ld de, String_91e16
+ call PlaceString
+ ret
+; 91e16
+
+String_91e16:
+ db "'S NEST@"
+; 91e1e
+
+Function91e1e: ; 91e1e
+ ld [wd003], a
+ ld e, a
+ callba Function2a01f
+ decoord 0, 0
+ ld hl, Sprites
+.asm_91e2e
+ ld a, [de]
+ and a
+ jr z, .asm_91e4d
+ push de
+ ld e, a
+ push hl
+ callba GetLandmarkCoords
+ pop hl
+ ld a, d
+ sub $4
+ ld [hli], a
+ ld a, e
+ sub $4
+ ld [hli], a
+ ld a, $7f
+ ld [hli], a
+ xor a
+ ld [hli], a
+ pop de
+ inc de
+ jr .asm_91e2e
+
+.asm_91e4d
+ ld hl, Sprites
+ decoord 0, 0
+ ld bc, $a0
+ call CopyBytes
+ ret
+; 91e5a
+
+Function91e5a: ; 91e5a
+ call Function91ea9
+ ret c
+
+ ld a, [wd002]
+ ld e, a
+ callba GetLandmarkCoords
+ ld c, e
+ ld b, d
+ ld de, Unknown_91e9c
+ ld hl, Sprites
+.asm_91e70
+ ld a, [de]
+ cp $80
+ jr z, .asm_91e91
+
+ add b
+ ld [hli], a
+ inc de
+
+ ld a, [de]
+ add c
+ ld [hli], a
+ inc de
+
+ ld a, [de]
+ add $78
+ ld [hli], a
+ inc de
+
+ push bc
+ ld c, 0
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .asm_91e8c
+ inc c
+.asm_91e8c
+ ld a, c
+ ld [hli], a
+ pop bc
+
+ jr .asm_91e70
+
+.asm_91e91
+ ld hl, Sprites + $10
+ ld bc, SpritesEnd - (Sprites + $10)
+ xor a
+ call ByteFill
+ ret
+; 91e9c
+
+Unknown_91e9c: ; 91e9c
+ db -8, -8, 0
+ db -8, 0, 1
+ db 0, -8, 2
+ db 0, 0, 3
+ db $80 ; terminator
+; 91ea9
+
+Function91ea9: ; 91ea9
+ ld a, [wd002]
+ cp FAST_SHIP
+ jr z, .johto
+ cp KANTO_LANDMARK
+ jr c, .johto
+
+.kanto
+ ld a, [wd003]
+ and a
+ jr z, .clear
+ jr .ok
+
+.johto
+ ld a, [wd003]
+ and a
+ jr nz, .clear
+
+.ok
+ and a
+ ret
+
+.clear
+ ld hl, Sprites
+ ld bc, SpritesEnd - Sprites
+ xor a
+ call ByteFill
+ scf
+ ret
+; 91ed0
+
+Function91ed0: ; 91ed0
+ ld a, [wd002]
+ cp FAST_SHIP
+ jr z, .asm_91ede
+ callba GetPlayerIcon
+ ret
+
+.asm_91ede
+ ld de, FastShipGFX
+ ld b, BANK(FastShipGFX)
+ ret
+; 91ee4
+
+TownMapBGUpdate: ; 91ee4
+; Update BG Map tiles and attributes
+
+; BG Map address
+ ld a, l
+ ld [hBGMapAddress], a
+ ld a, h
+ ld [hBGMapAddress + 1], a
+
+; Only update palettes on CGB
+ ld a, [hCGB]
+ and a
+ jr z, .tiles
+
+; BG Map mode 2 (palettes)
+ ld a, 2
+ ld [hBGMapMode], a
+
+; The BG Map is updated in thirds, so we wait
+; 3 frames to update the whole screen's palettes.
+ ld c, 3
+ call DelayFrames
+
+.tiles
+; Update BG Map tiles
+ call WaitBGMap
+
+; Turn off BG Map update
+ xor a
+ ld [hBGMapMode], a
+ ret
+; 91eff
+
+FillJohtoMap: ; 91eff
+ ld de, JohtoMap
+ jr FillTownMap
+
+FillKantoMap: ; 91f04
+ ld de, KantoMap
+
+FillTownMap: ; 91f07
+ hlcoord 0, 0
+.loop
+ ld a, [de]
+ cp $ff
+ ret z
+ ld a, [de]
+ ld [hli], a
+ inc de
+ jr .loop
+; 91f13
+
+TownMapPals: ; 91f13
+; Assign palettes based on tile ids
+
+ hlcoord 0, 0
+ decoord 0, 0, AttrMap
+ ld bc, 360
+.loop
+; Current tile
+ ld a, [hli]
+ push hl
+
+; HP/borders use palette 0
+ cp $60
+ jr nc, .pal0
+
+; The palette data is condensed to nybbles,
+; least-significant first.
+ ld hl, TownMapPalMap
+ srl a
+ jr c, .odd
+
+; Even-numbered tile ids take the bottom nybble...
+ add l
+ ld l, a
+ ld a, h
+ adc 0
+ ld h, a
+ ld a, [hl]
+ and %111
+ jr .update
+
+.odd
+; ...and odd ids take the top.
+ add l
+ ld l, a
+ ld a, h
+ adc 0
+ ld h, a
+ ld a, [hl]
+ swap a
+ and %111
+ jr .update
+
+.pal0
+ xor a
+
+.update
+ pop hl
+ ld [de], a
+ inc de
+ dec bc
+ ld a, b
+ or c
+ jr nz, .loop
+ ret
+
+TownMapPalMap:
+ db $11, $21, $22, $00, $11, $13, $54, $54, $11, $21, $22, $00
+ db $11, $10, $01, $00, $11, $21, $22, $00, $00, $00, $00, $00
+ db $00, $00, $44, $04, $00, $00, $00, $00, $33, $33, $33, $33
+ db $33, $33, $33, $03, $33, $33, $33, $33, $00, $00, $00, $00
+; 91f7b
+
+TownMapMon: ; 91f7b
+; Draw the FlyMon icon at town map location in
+
+; Get FlyMon species
+ ld a, [CurPartyMon]
+ ld hl, PartySpecies
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [hl]
+ ld [wd265], a
+
+; Get FlyMon icon
+ ld e, 8 ; starting tile in VRAM
+ callba GetSpeciesIcon
+
+; Animation/palette
+ ld de, 0
+ ld a, $0
+ call _InitSpriteAnimStruct
+
+ ld hl, 3
+ add hl, bc
+ ld [hl], 8
+ ld hl, 2
+ add hl, bc
+ ld [hl], 0
+ ret
+; 91fa6
+
+TownMapPlayerIcon: ; 91fa6
+; Draw the player icon at town map location in a
+ push af
+
+ callba GetPlayerIcon
+
+; Standing icon
+ ld hl, VTiles0 tile $10
+ ld c, 4 ; # tiles
+ call Request2bpp
+
+; Walking icon
+ ld hl, $c0
+ add hl, de
+ ld d, h
+ ld e, l
+ ld hl, VTiles0 tile $14
+ ld c, 4 ; # tiles
+ ld a, BANK(ChrisSpriteGFX) ; does nothing
+ call Request2bpp
+
+; Animation/palette
+ ld de, 0
+ ld b, $0a ; Male
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .asm_91fd3
+ ld b, $1e ; Female
+.asm_91fd3
+ ld a, b
+ call _InitSpriteAnimStruct
+
+ ld hl, $3
+ add hl, bc
+ ld [hl], $10
+
+ pop af
+ ld e, a
+ push bc
+ callba GetLandmarkCoords
+ pop bc
+
+ ld hl, 4
+ add hl, bc
+ ld [hl], e
+ ld hl, 5
+ add hl, bc
+ ld [hl], d
+ ret
+; 0x91ff2
+
+Function91ff2: ; 91ff2
+ ld hl, TownMapGFX
+ ld de, VTiles2
+ lb bc, BANK(TownMapGFX), $30
+ call DecompressRequest2bpp
+ ret
+; 91fff
+
+
+JohtoMap: ; 91fff
+INCBIN "gfx/misc/johto.bin"
+; 92168
+
+KantoMap: ; 92168
+INCBIN "gfx/misc/kanto.bin"
+; 922d1
+
+
+GFX_922d1: ; 922d1
+INCBIN "gfx/unknown/0922d1.2bpp"
+GFX_922e1: ; 922e1
+INCBIN "gfx/unknown/0922e1.2bpp"
+GFX_92301: ; 92301
+INCBIN "gfx/unknown/092301.2bpp"
+Function92311: ; unreferenced
+ xor a
+ ld [wd002], a
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ ld hl, hInMenu
+ ld a, [hl]
+ push af
+ ld [hl], $1
+ xor a
+ ld [hBGMapMode], a
+ callba Function8cf53
+ call Function91ff2
+ ld de, GFX_922e1
+ ld hl, VTiles2 tile $30
+ lb bc, BANK(GFX_922e1), 6
+ call Request1bpp
+ call FillKantoMap
+ call TownMapBubble
+ call TownMapPals
+ hlbgcoord 0, 0, VBGMap1
+ call TownMapBGUpdate
+ call FillJohtoMap
+ call TownMapBubble
+ call TownMapPals
+ hlbgcoord 0, 0
+ call TownMapBGUpdate
+ call TownMapMon
+ ld a, c
+ ld [wd003], a
+ ld a, b
+ ld [wd004], a
+ ld b, SCGB_02
+ call GetSGBLayout
+ call SetPalettes
+.loop
+ call JoyTextDelay
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .pressedB
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .pressedA
+ call Function923b8
+ call GetMapCursorCoordinates
+ callba Function8cf69
+ call DelayFrame
+ jr .loop
+
+.pressedB
+ ld a, -1
+ jr .asm_9239f
+
+.pressedA
+ ld a, [wd002]
+ ld l, a
+ ld h, 0
+ add hl, hl
+ ld de, Flypoints + 1
+ add hl, de
+ ld a, [hl]
+
+.asm_9239f
+ ld [wd002], a
+ pop af
+ ld [hInMenu], a
+ call ClearBGPalettes
+ ld a, $90
+ ld [hWY], a
+ xor a
+ ld [hBGMapAddress], a
+ ld a, VBGMap0 / $100
+ ld [hBGMapAddress + 1], a
+ ld a, [wd002]
+ ld e, a
+ ret
+; 923b8
+
+Function923b8: ; 923b8
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_DOWN | D_RIGHT
+ jr nz, .asm_923c6
+ ld a, [hl]
+ and D_UP | D_LEFT
+ jr nz, .asm_923d3
+ ret
+
+.asm_923c6
+ ld hl, wd002
+ ld a, [hl]
+ cp FLY_INDIGO
+ jr c, .asm_923d0
+ ld [hl], -1
+.asm_923d0
+ inc [hl]
+ jr .asm_923dd
+
+.asm_923d3
+ ld hl, wd002
+ ld a, [hl]
+ and a
+ jr nz, .asm_923dc
+ ld [hl], FLY_INDIGO + 1
+.asm_923dc
+ dec [hl]
+
+.asm_923dd
+ ld a, [wd002]
+ cp KANTO_FLYPOINT
+ jr c, .johto
+
+ call FillKantoMap
+ xor a
+ ld b, $9c
+ jr .asm_923f3
+
+.johto
+ call FillJohtoMap
+ ld a, $90
+ ld b, $98
+
+.asm_923f3
+ ld [hWY], a
+ ld a, b
+ ld [hBGMapAddress + 1], a
+ call TownMapBubble
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ret
+; 92402
--- a/engine/predef.asm
+++ b/engine/predef.asm
@@ -37,7 +37,7 @@
add_predef DrawPartyMenuHPBar
add_predef FillPP
add_predef TryAddMonToParty
- add_predef Functionda96
+ add_predef AddTempmonToParty
add_predef SentGetPkmnIntoFromBox
add_predef SentPkmnIntoBox
add_predef GiveEgg
@@ -46,7 +46,7 @@
add_predef CalcPkmnStatC
add_predef CanLearnTMHMMove
add_predef GetTMHMMove
- add_predef Function28eef ; $ 10
+ add_predef Predef_LinkTextbox ; $ 10
add_predef PrintMoveDesc
add_predef UpdatePlayerHUD
add_predef FillBox
@@ -58,9 +58,9 @@
add_predef GetMonFrontpic
add_predef LearnLevelMoves
add_predef FillMoves
- add_predef Function421e6
- add_predef Function28f63
- add_predef Function28f24
+ add_predef EvolveAfterBattle
+ add_predef TradeAnimationPlayer2
+ add_predef TradeAnimation
add_predef CopyPkmnToTempMon
add_predef ListMoves ; $20
add_predef PlaceNonFaintStatus
@@ -92,12 +92,12 @@
add_predef PartyMonItemName
add_predef GetFrontpic
add_predef GetBackpic
- add_predef Function5108b
+ add_predef FrontpicPredef
add_predef GetTrainerPic
add_predef DecompressPredef ; $40
add_predef CheckTypeMatchup
add_predef ConvertMon_1to2
- add_predef Functionfb877
+ add_predef NewPokedexEntry
add_predef AnimateMon_Slow_Normal
add_predef PlaceStatusString
add_predef LoadMonAnimation
--- /dev/null
+++ b/engine/printer.asm
@@ -1,0 +1,1493 @@
+Function84000: ; 84000
+ ld hl, OverworldMap
+ lb bc, 4, 12
+ xor a
+ call Function842ab
+ xor a
+ ld [rSB], a
+ ld [rSC], a
+ ld [wc2d5], a
+ ld hl, wc2d4
+ set 0, [hl]
+ ld a, [GBPrinter]
+ ld [wcbfb], a
+ xor a
+ ld [wJumptableIndex], a
+ ret
+; 84022
+
+Function84022: ; 84022
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_84031
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 84031
+
+
+Jumptable_84031: ; 84031 (21:4031)
+ dw Function84077
+ dw Function84143
+ dw Function84120
+ dw Function84099
+ dw Function84180
+ dw Function8412e
+ dw Function840c5
+ dw Function84180
+ dw Function84120
+ dw Function840de
+ dw Function84180
+ dw Function84120
+ dw Function841a1
+ dw Function84063
+ dw Function8406d
+ dw Function84120
+ dw Function84103
+ dw Function84071
+ dw Function841b0
+ dw Function841b3
+
+
+Function84059: ; 84059 (21:4059)
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+
+Function8405e: ; 8405e (21:405e)
+ ld hl, wJumptableIndex
+ dec [hl]
+ ret
+
+Function84063: ; 84063 (21:4063)
+ xor a
+ ld [wca89], a
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+Function8406d: ; 8406d (21:406d)
+ call Function84059
+ ret
+
+Function84071: ; 84071 (21:4071)
+ ld a, $1
+ ld [wJumptableIndex], a
+ ret
+
+Function84077: ; 84077 (21:4077)
+ call Function841fb
+ ld hl, Unknown_842b7
+ call Function841e2
+ xor a
+ ld [wca8e], a
+ ld [wca8f], a
+ ld a, [wcf65]
+ ld [wca81], a
+ call Function84059
+ call Function841c3
+ ld a, $1
+ ld [wcbf8], a
+ ret
+
+Function84099: ; 84099 (21:4099)
+ call Function841fb
+ ld hl, wca81
+ ld a, [hl]
+ and a
+ jr z, Function840c5
+ ld hl, Unknown_842c3
+ call Function841e2
+ call Function84260
+ ld a, $80
+ ld [wca8e], a
+ ld a, $2
+ ld [wca8f], a
+ call Function84219
+ call Function84059
+ call Function841c3
+ ld a, $2
+ ld [wcbf8], a
+ ret
+
+Function840c5: ; 840c5 (21:40c5)
+ ld a, $6
+ ld [wJumptableIndex], a
+ ld hl, Unknown_842c9
+ call Function841e2
+ xor a
+ ld [wca8e], a
+ ld [wca8f], a
+ call Function84059
+ call Function841c3
+ ret
+
+Function840de: ; 840de (21:40de)
+ call Function841fb
+ ld hl, Unknown_842bd
+ call Function841e2
+ call Function84249
+ ld a, $4
+ ld [wca8e], a
+ ld a, $0
+ ld [wca8f], a
+ call Function84219
+ call Function84059
+ call Function841c3
+ ld a, $3
+ ld [wcbf8], a
+ ret
+
+Function84103: ; 84103 (21:4103)
+ call Function841fb
+ ld hl, Unknown_842b7
+ call Function841e2
+ xor a
+ ld [wca8e], a
+ ld [wca8f], a
+ ld a, [wcf65]
+ ld [wca81], a
+ call Function84059
+ call Function841c3
+ ret
+
+Function84120: ; 84120 (21:4120)
+ ld hl, wca8b
+ inc [hl]
+ ld a, [hl]
+ cp $6
+ ret c
+ xor a
+ ld [hl], a
+ call Function84059
+ ret
+
+Function8412e: ; 8412e (21:412e)
+ ld hl, wca8b
+ inc [hl]
+ ld a, [hl]
+ cp $6
+ ret c
+ xor a
+ ld [hl], a
+ ld hl, wca81
+ dec [hl]
+ call Function8405e
+ call Function8405e
+ ret
+
+Function84143: ; 84143 (21:4143)
+ ld a, [wc2d5]
+ and a
+ ret nz
+ ld a, [wca88]
+ cp $ff
+ jr nz, .printer_connected
+ ld a, [wca89]
+ cp $ff
+ jr z, .printer_error
+
+.printer_connected
+ ld a, [wca88]
+ cp $81
+ jr nz, .printer_error
+ ld a, [wca89]
+ cp $0
+ jr nz, .printer_error
+ ld hl, wc2d4
+ set 1, [hl]
+ ld a, $5
+ ld [wca8a], a
+ call Function84059
+ ret
+
+.printer_error
+ ld a, $ff
+ ld [wca88], a
+ ld [wca89], a
+ ld a, $e
+ ld [wJumptableIndex], a
+ ret
+
+Function84180: ; 84180 (21:4180)
+ ld a, [wc2d5]
+ and a
+ ret nz
+ ld a, [wca89]
+ and $f0
+ jr nz, .asm_8419b
+ ld a, [wca89]
+ and $1
+ jr nz, .asm_84197
+ call Function84059
+ ret
+.asm_84197
+ call Function8405e
+ ret
+.asm_8419b
+ ld a, $12
+ ld [wJumptableIndex], a
+ ret
+
+Function841a1: ; 841a1 (21:41a1)
+ ld a, [wc2d5]
+ and a
+ ret nz
+ ld a, [wca89]
+ and $f3
+ ret nz
+ call Function84059
+ ret
+
+Function841b0: ; 841b0 (21:41b0)
+ call Function84059
+
+Function841b3: ; 841b3 (21:41b3)
+ ld a, [wc2d5]
+ and a
+ ret nz
+ ld a, [wca89]
+ and $f0
+ ret nz
+ xor a
+ ld [wJumptableIndex], a
+ ret
+
+Function841c3: ; 841c3 (21:41c3)
+ ld a, [wc2d5]
+ and a
+ jr nz, Function841c3
+ xor a
+ ld [wca8c], a
+ ld [wca8d], a
+ ld a, $1
+ ld [wc2d5], a
+ ld a, $88
+ ld [rSB], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ ret
+
+Function841e2: ; 841e2 (21:41e2)
+ ld a, [hli]
+ ld [wca82], a
+ ld a, [hli]
+ ld [wca83], a
+ ld a, [hli]
+ ld [wca84], a
+ ld a, [hli]
+ ld [wca85], a
+ ld a, [hli]
+ ld [wca86], a
+ ld a, [hl]
+ ld [wca87], a
+ ret
+
+Function841fb: ; 841fb (21:41fb)
+ xor a
+ ld hl, wca82
+rept 3
+ ld [hli], a
+endr
+ ld [hl], a
+ ld hl, wca86
+ ld [hli], a
+ ld [hl], a
+ xor a
+ ld [wca8e], a
+ ld [wca8f], a
+ ld hl, OverworldMap
+ ld bc, $280
+ call Function842ab
+ ret
+
+Function84219: ; 84219 (21:4219)
+ ld hl, 0
+ ld bc, $4
+ ld de, wca82
+ call Function8423c
+ ld a, [wca8e]
+ ld c, a
+ ld a, [wca8f]
+ ld b, a
+ ld de, OverworldMap
+ call Function8423c
+ ld a, l
+ ld [wca86], a
+ ld a, h
+ ld [wca87], a
+ ret
+
+Function8423c: ; 8423c (21:423c)
+ ld a, [de]
+ inc de
+ add l
+ jr nc, .asm_84242
+ inc h
+.asm_84242
+ ld l, a
+ dec bc
+ ld a, c
+ or b
+ jr nz, Function8423c
+ ret
+
+Function84249: ; 84249 (21:4249)
+ ld a, $1
+ ld [OverworldMap], a
+ ld a, [wcbfa]
+ ld [wc801], a
+ ld a, $e4
+ ld [wc802], a
+ ld a, [wcbfb]
+ ld [wc803], a
+ ret
+
+Function84260: ; 84260 (21:4260)
+ ld a, [wca81]
+ xor $ff
+ ld d, a
+ ld a, [wcf65]
+ inc a
+ add d
+ ld hl, wca90
+ ld de, $28
+.asm_84271
+ and a
+ jr z, .asm_84278
+ add hl, de
+ dec a
+ jr .asm_84271
+.asm_84278
+ ld e, l
+ ld d, h
+ ld hl, OverworldMap
+ ld c, $28
+.asm_8427f
+ ld a, [de]
+ inc de
+ push bc
+ push de
+ push hl
+ swap a
+ ld d, a
+ and $f0
+ ld e, a
+ ld a, d
+ and $f
+ ld d, a
+ and $8
+ ld a, d
+ jr nz, .asm_84297
+ or $90
+ jr .asm_84299
+.asm_84297
+ or $80
+.asm_84299
+ ld d, a
+ lb bc, $21, 1
+ call Request2bpp
+ pop hl
+ ld de, $10
+ add hl, de
+ pop de
+ pop bc
+ dec c
+ jr nz, .asm_8427f
+ ret
+
+Function842ab: ; 842ab
+ push de
+ ld e, a
+.asm_842ad
+ ld [hl], e
+ inc hl
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_842ad
+ ld a, e
+ pop de
+ ret
+; 842b7
+
+Unknown_842b7: db 1, 0, $00, 0, 1, 0
+Unknown_842bd: db 2, 0, $04, 0, 0, 0
+Unknown_842c3: db 4, 0, $80, 2, 0, 0
+Unknown_842c9: db 4, 0, $00, 0, 4, 0
+Unknown_842cf: db 8, 0, $00, 0, 8, 0 ; unused
+Unknown_842d5: db 15, 0, $00, 0, 15, 0 ; unused
+; 842db
+
+
+Function842db:: ; 842db
+ ld a, [wc2d5]
+ add a
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_842ea
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 842ea
+
+
+Jumptable_842ea: ; 842ea (21:42ea)
+ dw Function8432f
+ dw Function84330
+ dw Function84339
+ dw Function84343
+ dw Function8434d
+ dw Function84357
+ dw Function84361
+ dw Function8438b
+ dw Function84395
+ dw Function8439f
+ dw Function843a8
+ dw Function843b6
+ dw Function84330
+ dw Function843c0
+ dw Function843c9
+ dw Function843c9
+ dw Function843c9
+ dw Function843c0
+ dw Function843c9
+ dw Function8439f
+ dw Function843a8
+ dw Function843e6
+ dw Function84330
+ dw Function843d2
+ dw Function843c9
+ dw Function843c9
+ dw Function843c9
+ dw Function843d2
+ dw Function843c9
+ dw Function8439f
+ dw Function843a8
+ dw Function843b6
+
+
+Function8432a: ; 8432a (21:432a)
+ ld hl, wc2d5
+ inc [hl]
+ ret
+
+Function8432f: ; 8432f (21:432f)
+ ret
+
+Function84330: ; 84330 (21:4330)
+ ld a, $33
+ call Function843db
+ call Function8432a
+ ret
+
+Function84339: ; 84339 (21:4339)
+ ld a, [wca82]
+ call Function843db
+ call Function8432a
+ ret
+
+Function84343: ; 84343 (21:4343)
+ ld a, [wca83]
+ call Function843db
+ call Function8432a
+ ret
+
+Function8434d: ; 8434d (21:434d)
+ ld a, [wca84]
+ call Function843db
+ call Function8432a
+ ret
+
+Function84357: ; 84357 (21:4357)
+ ld a, [wca85]
+ call Function843db
+ call Function8432a
+ ret
+
+Function84361: ; 84361 (21:4361)
+ ld hl, wca8e
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ or d
+ jr z, .asm_84388
+ dec de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ ld a, [wca8c]
+ ld e, a
+ ld a, [wca8d]
+ ld d, a
+ ld hl, OverworldMap
+ add hl, de
+ inc de
+ ld a, e
+ ld [wca8c], a
+ ld a, d
+ ld [wca8d], a
+ ld a, [hl]
+ call Function843db
+ ret
+.asm_84388
+ call Function8432a
+
+Function8438b: ; 8438b (21:438b)
+ ld a, [wca86]
+ call Function843db
+ call Function8432a
+ ret
+
+Function84395: ; 84395 (21:4395)
+ ld a, [wca87]
+ call Function843db
+ call Function8432a
+ ret
+
+Function8439f: ; 8439f (21:439f)
+ ld a, $0
+ call Function843db
+ call Function8432a
+ ret
+
+Function843a8: ; 843a8 (21:43a8)
+ ld a, [rSB]
+ ld [wca88], a
+ ld a, $0
+ call Function843db
+ call Function8432a
+ ret
+
+Function843b6: ; 843b6 (21:43b6)
+ ld a, [rSB]
+ ld [wca89], a
+ xor a
+ ld [wc2d5], a
+ ret
+
+Function843c0: ; 843c0 (21:43c0)
+ ld a, $f
+ call Function843db
+ call Function8432a
+ ret
+
+Function843c9: ; 843c9 (21:43c9)
+ ld a, $0
+ call Function843db
+ call Function8432a
+ ret
+
+Function843d2: ; 843d2 (21:43d2)
+ ld a, $8
+ call Function843db
+ call Function8432a
+ ret
+
+Function843db: ; 843db (21:43db)
+ ld [rSB], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ ret
+
+Function843e6: ; 843e6 (21:43e6)
+ ld a, [rSB]
+ ld [wca89], a
+ xor a
+ ld [wc2d5], a
+ ret
+
+Function843f0: ; 843f0
+.asm_843f0
+ call JoyTextDelay
+ call Function846f6
+ jr c, .asm_8440f
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .asm_8440d
+ call Function84022
+ call Function84757
+ call Function84785
+ call DelayFrame
+ jr .asm_843f0
+
+.asm_8440d
+ and a
+ ret
+
+.asm_8440f
+ scf
+ ret
+; 84411
+
+Function84411: ; 84411
+ xor a
+ ld [wc2d4], a
+ ld [wc2d5], a
+ ret
+; 84419
+
+Function84419: ; 84419
+ push af
+ call Function84000
+ pop af
+ ld [wcbfa], a
+ call Function84728
+ ret
+; 84425
+
+Function84425: ; 84425
+ call ReturnToMapFromSubmenu
+ call Function84753
+ ret
+; 8442c
+
+PrintDexEntry: ; 8442c
+ ld a, [wcf65]
+ push af
+ ld hl, VTiles1
+ ld de, FontInversed
+ lb bc, BANK(FontInversed), $80
+ call Request1bpp
+ xor a
+ ld [hPrinter], a
+ call Function8474c
+ ld a, [rIE]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, $9
+ ld [rIE], a
+ call Function84000
+ ld a, $10
+ ld [wcbfa], a
+ callba Function1dc1b0
+ call ClearTileMap
+ ld a, $e4
+ call DmgToCgbBGPals
+ call DelayFrame
+ ld hl, hVBlank
+ ld a, [hl]
+ push af
+ ld [hl], $4
+ ld a, $8
+ ld [wcf65], a
+ call Function84742
+ call Function843f0
+ jr c, .asm_8449d
+ call Function84411
+ ld c, 12
+ call DelayFrames
+ xor a
+ ld [hBGMapMode], a
+ call Function84000
+ ld a, $3
+ ld [wcbfa], a
+ callba Function1dc213
+ call Function84742
+ ld a, $4
+ ld [wcf65], a
+ call Function843f0
+
+.asm_8449d
+ pop af
+ ld [hVBlank], a
+ call Function84411
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ call Function84425
+ ld c, $8
+.asm_844ae
+ call LowVolume
+ call DelayFrame
+ dec c
+ jr nz, .asm_844ae
+ pop af
+ ld [wcf65], a
+ ret
+; 844bc
+
+PrintPCBox: ; 844bc (21:44bc)
+ ld a, [wcf65]
+ push af
+ ld a, $9
+ ld [wcf65], a
+ ld a, e
+ ld [wd004], a
+ ld a, d
+ ld [wd005], a
+ ld a, b
+ ld [wd006], a
+ ld a, c
+ ld [wd007], a
+ xor a
+ ld [hPrinter], a
+ ld [wd003], a
+ call Function8474c
+ ld a, [rIE]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, $9
+ ld [rIE], a
+ ld hl, hVBlank
+ ld a, [hl]
+ push af
+ ld [hl], $4
+ xor a
+ ld [hBGMapMode], a
+ call Function84817
+ ld a, $10
+ call Function84419
+ call Function84559
+ jr c, .asm_84545
+ call Function84411
+ ld c, 12
+ call DelayFrames
+ xor a
+ ld [hBGMapMode], a
+ call Function8486f
+ ld a, $0
+ call Function84419
+ call Function84559
+ jr c, .asm_84545
+ call Function84411
+ ld c, 12
+ call DelayFrames
+ xor a
+ ld [hBGMapMode], a
+ call Function84893
+ ld a, $0
+ call Function84419
+ call Function84559
+ jr c, .asm_84545
+ call Function84411
+ ld c, 12
+ call DelayFrames
+ xor a
+ ld [hBGMapMode], a
+ call Function848b7
+ ld a, $3
+ call Function84419
+ call Function84559
+.asm_84545
+ pop af
+ ld [hVBlank], a
+ call Function84411
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ call Function84425
+ pop af
+ ld [wcf65], a
+ ret
+
+Function84559: ; 84559 (21:4559)
+ call Function84742
+ call Function843f0
+ ret
+
+PrintUnownStamp: ; 84560
+ ld a, [wcf65]
+ push af
+ xor a
+ ld [hPrinter], a
+ call Function8474c
+ ld a, [rIE]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, $9
+ ld [rIE], a
+ ld hl, hVBlank
+ ld a, [hl]
+ push af
+ ld [hl], $4
+ xor a
+ ld [hBGMapMode], a
+ call LoadTileMapToTempTileMap
+ callba Function16dac
+ ld a, $0
+ call Function84419
+ call Call_LoadTempTileMapToTileMap
+ call Function84742
+ ld a, $9
+ ld [wcf65], a
+.asm_84597
+ call JoyTextDelay
+ call Function846f6
+ jr c, .asm_845c0
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .asm_845c0
+ call Function84022
+ ld a, [wJumptableIndex]
+ cp $2
+ jr nc, .asm_845b5
+ ld a, $3
+ ld [wca81], a
+
+.asm_845b5
+ call Function84757
+ call Function84785
+ call DelayFrame
+ jr .asm_84597
+
+.asm_845c0
+ pop af
+ ld [hVBlank], a
+ call Function84411
+ call Call_LoadTempTileMapToTileMap
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ pop af
+ ld [wcf65], a
+ ret
+; 845d4
+
+PrintMail: ; 845d4
+ call Function845db
+ call Function84425
+ ret
+; 845db
+
+Function845db: ; 845db
+ ld a, [wcf65]
+ push af
+ xor a
+ ld [hPrinter], a
+ call Function8474c
+ ld a, [rIE]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, $9
+ ld [rIE], a
+ xor a
+ ld [hBGMapMode], a
+ ld a, $13
+ call Function84419
+ ld hl, hVBlank
+ ld a, [hl]
+ push af
+ ld [hl], $4
+ ld a, $9
+ ld [wcf65], a
+ call Function843f0
+ pop af
+ ld [hVBlank], a
+ call Function84411
+ call Function84735
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ pop af
+ ld [wcf65], a
+ ret
+; 8461a
+
+PrintPartymon: ; 8461a
+ ld a, [wcf65]
+ push af
+ xor a
+ ld [hPrinter], a
+ call Function8474c
+ ld a, [rIE]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, $9
+ ld [rIE], a
+ xor a
+ ld [hBGMapMode], a
+ callba Function1dc381
+ ld a, $10
+ call Function84419
+ ld hl, hVBlank
+ ld a, [hl]
+ push af
+ ld [hl], $4
+ ld a, $8
+ ld [wcf65], a
+ call Function84742
+ call Function843f0
+ jr c, .asm_84671
+ call Function84411
+ ld c, 12
+ call DelayFrames
+ xor a
+ ld [hBGMapMode], a
+ callba Function1dc47b
+ ld a, $3
+ call Function84419
+ ld a, $9
+ ld [wcf65], a
+ call Function84742
+ call Function843f0
+
+.asm_84671
+ pop af
+ ld [hVBlank], a
+ call Function84411
+ call Function84735
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ call Function84425
+ pop af
+ ld [wcf65], a
+ ret
+; 84688
+
+_PrintDiploma: ; 84688
+ ld a, [wcf65]
+ push af
+ callba Function1dd709
+ xor a
+ ld [hPrinter], a
+ call Function8474c
+ ld a, [rIE]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, $9
+ ld [rIE], a
+ ld hl, hVBlank
+ ld a, [hl]
+ push af
+ ld [hl], $4
+ ld a, $10
+ call Function84419
+ call Function84742
+ ld a, $9
+ ld [wcf65], a
+ call Function843f0
+ jr c, .asm_846e2
+ call Function84411
+ ld c, 12
+ call DelayFrames
+ call LoadTileMapToTempTileMap
+ xor a
+ ld [hBGMapMode], a
+ callba Function1dd7ae
+ ld a, $3
+ call Function84419
+ call Call_LoadTempTileMapToTileMap
+ call Function84742
+ ld a, $9
+ ld [wcf65], a
+ call Function843f0
+
+.asm_846e2
+ pop af
+ ld [hVBlank], a
+ call Function84411
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ call Function84425
+ pop af
+ ld [wcf65], a
+ ret
+; 846f6
+
+Function846f6: ; 846f6
+ ld a, [hJoyDown]
+ and B_BUTTON
+ jr nz, .asm_846fe
+ and a
+ ret
+
+.asm_846fe
+ ld a, [wca80]
+ cp $c
+ jr nz, .asm_84722
+.asm_84705
+ ld a, [wc2d5]
+ and a
+ jr nz, .asm_84705
+ ld a, $16
+ ld [wc2d5], a
+ ld a, $88
+ ld [rSB], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+.asm_8471c
+ ld a, [wc2d5]
+ and a
+ jr nz, .asm_8471c
+
+.asm_84722
+ ld a, $1
+ ld [hPrinter], a
+ scf
+ ret
+; 84728
+
+Function84728: ; 84728
+ hlcoord 0, 0
+ ld de, wca90
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call CopyBytes
+ ret
+; 84735
+
+Function84735: ; 84735
+ ld hl, wca90
+ decoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call CopyBytes
+ ret
+; 84742
+
+Function84742: ; 84742
+ xor a
+ ld [hJoyReleased], a
+ ld [hJoyPressed], a
+ ld [hJoyDown], a
+ ld [hJoyLast], a
+ ret
+; 8474c
+
+Function8474c: ; 8474c
+ ld de, MUSIC_PRINTER
+ call PlayMusic2
+ ret
+; 84753
+
+Function84753: ; 84753
+ call RestartMapMusic
+ ret
+; 84757
+
+Function84757: ; 84757
+ ld a, [wca88]
+ cp -1
+ jr nz, .printer_connected
+ ld a, [wca89]
+ cp -1
+ jr z, .error_2
+
+.printer_connected
+ ld a, [wca89]
+ and %11100000
+ ret z ; no error
+
+ bit 7, a
+ jr nz, .error_1
+ bit 6, a
+ jr nz, .error_4
+ ld a, 6 ; error 3
+ jr .load_text_index
+
+.error_4
+ ld a, 7 ; error 4
+ jr .load_text_index
+
+.error_1
+ ld a, 4 ; error 1
+ jr .load_text_index
+
+.error_2
+ ld a, 5 ; error 2
+
+.load_text_index
+ ld [wcbf8], a
+ ret
+; 84785
+
+Function84785: ; 84785
+ ld a, [wcbf8]
+ and a
+ ret z
+ push af
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 0, 5
+ lb bc, 10, 18
+ call TextBox
+ pop af
+ ld e, a
+ ld d, 0
+ ld hl, PrinterStatusStringPointers
+rept 2
+ add hl, de
+endr
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ hlcoord 1, 7
+ ld a, BANK(GBPrinterStrings)
+ call FarString
+ hlcoord 2, 15
+ ld de, String_PressBToCancel
+ call PlaceString
+ ld a, $1
+ ld [hBGMapMode], a
+ xor a
+ ld [wcbf8], a
+ ret
+; 847bd
+
+Function847bd: ; 847bd
+ ld a, [wcbf8]
+ and a
+ ret z
+ push af
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 2, 4
+ lb bc, 13, 16
+ call ClearBox
+ pop af
+ ld e, a
+ ld d, 0
+ ld hl, PrinterStatusStringPointers
+rept 2
+ add hl, de
+endr
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ hlcoord 4, 7
+ ld a, BANK(GBPrinterStrings)
+ call FarString
+ hlcoord 4, 15
+ ld de, String_PressBToCancel
+ call PlaceString
+ ld a, $1
+ ld [hBGMapMode], a
+ xor a
+ ld [wcbf8], a
+ ret
+; 847f5
+
+String_PressBToCancel:
+ db "Press B to Cancel@"
+; 84807
+
+PrinterStatusStringPointers: ; 84807
+ dw String_1dc275 ; @
+ dw String_1dc276 ; CHECKING LINK
+ dw String_1dc289 ; TRANSMITTING
+ dw String_1dc29c ; PRINTING
+ dw String_1dc2ad ; error 1
+ dw String_1dc2e2 ; error 2
+ dw String_1dc317 ; error 3
+ dw String_1dc34c ; error 4
+; 84817
+
+Function84817: ; 84817 (21:4817)
+ xor a
+ ld [wd002], a
+ hlcoord 0, 0
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ call Printer_PlaceEmptyBoxSlotString
+ hlcoord 0, 0
+ ld bc, 9 * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ call Printer_PlaceSideBorders
+ call Printer_PlaceTopBorder
+ hlcoord 4, 3
+ ld de, .String_PokemonList
+ call PlaceString
+ ld a, [wd007]
+ ld bc, BOX_NAME_LENGTH
+ ld hl, wBoxNames
+ call AddNTimes
+ ld d, h
+ ld e, l
+ hlcoord 6, 5
+ call PlaceString
+ ld a, $1
+ call Function849c6
+ hlcoord 2, 9
+ ld c, $3
+ call Function848e7
+ ret
+; 84865 (21:4865)
+
+.String_PokemonList:
+ db "#MON LIST@"
+; 8486f
+
+Function8486f: ; 8486f (21:486f)
+ hlcoord 0, 0
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ call Printer_PlaceEmptyBoxSlotString
+ call Printer_PlaceSideBorders
+ ld a, [wd003]
+ and a
+ ret nz
+ ld a, $4
+ call Function849c6
+ hlcoord 2, 0
+ ld c, $6
+ call Function848e7
+ ret
+
+Function84893: ; 84893 (21:4893)
+ hlcoord 0, 0
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ call Printer_PlaceEmptyBoxSlotString
+ call Printer_PlaceSideBorders
+ ld a, [wd003]
+ and a
+ ret nz
+ ld a, $a
+ call Function849c6
+ hlcoord 2, 0
+ ld c, $6
+ call Function848e7
+ ret
+
+Function848b7: ; 848b7 (21:48b7)
+ hlcoord 0, 0
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ call Printer_PlaceEmptyBoxSlotString
+ hlcoord 1, 15
+ lb bc, 2, 18
+ call ClearBox
+ call Printer_PlaceSideBorders
+ call Printer_PlaceBottomBorders
+ ld a, [wd003]
+ and a
+ ret nz
+ ld a, $10
+ call Function849c6
+ hlcoord 2, 0
+ ld c, $5
+ call Function848e7
+ ret
+
+Function848e7: ; 848e7 (21:48e7)
+ ld a, [wd006]
+ call GetSRAMBank
+
+Function848ed: ; 848ed (21:48ed)
+ ld a, c
+ and a
+ jp z, Function84986
+ dec c
+ ld a, [de]
+ cp $ff
+ jp z, Function84981
+ ld [wd265], a
+ ld [CurPartySpecies], a
+ push bc
+ push hl
+ push de
+ push hl
+ ld bc, $10
+ ld a, " "
+ call ByteFill
+ pop hl
+ push hl
+ call GetBasePokemonName
+ pop hl
+ push hl
+ call PlaceString
+ ld a, [CurPartySpecies]
+ cp EGG
+ pop hl
+ jr z, .ok2
+ ld bc, $b
+ add hl, bc
+ call Function8498a
+ ld bc, $9
+ add hl, bc
+ ld a, "/"
+ ld [hli], a
+ push hl
+ ld bc, $e
+ ld a, " "
+ call ByteFill
+ pop hl
+ push hl
+ ld a, [wd004]
+ ld l, a
+ ld a, [wd005]
+ ld h, a
+ ld bc, $372
+ add hl, bc
+ ld bc, $b
+ ld a, [wd002]
+ call AddNTimes
+ ld e, l
+ ld d, h
+ pop hl
+ push hl
+ call PlaceString
+ pop hl
+ ld bc, $b
+ add hl, bc
+ push hl
+ ld a, [wd004]
+ ld l, a
+ ld a, [wd005]
+ ld h, a
+ ld bc, $35
+ add hl, bc
+ ld bc, $20
+ ld a, [wd002]
+ call AddNTimes
+ ld a, [hl]
+ pop hl
+ call Function383d
+.ok2
+ ld hl, wd002
+ inc [hl]
+ pop de
+ pop hl
+ ld bc, $3c
+ add hl, bc
+ pop bc
+ inc de
+ jp Function848ed
+
+Function84981: ; 84981 (21:4981)
+ ld a, $1
+ ld [wd003], a
+
+Function84986: ; 84986 (21:4986)
+ call CloseSRAM
+ ret
+
+Function8498a: ; 8498a (21:498a)
+ push hl
+ ld a, [wd004]
+ ld l, a
+ ld a, [wd005]
+ ld h, a
+ ld bc, $2b
+ add hl, bc
+ ld bc, $20
+ ld a, [wd002]
+ call AddNTimes
+ ld de, TempMonDVs
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ ld a, [wd002]
+ ld [CurPartyMon], a
+ ld a, $3
+ ld [MonType], a
+ callba GetGender
+ ld a, $7f
+ jr c, .asm_849c3
+ ld a, $ef
+ jr nz, .asm_849c3
+ ld a, $f5
+.asm_849c3
+ pop hl
+ ld [hli], a
+ ret
+
+Function849c6: ; 849c6 (21:49c6)
+ push hl
+ ld e, a
+ ld d, $0
+ ld a, [wd004]
+ ld l, a
+ ld a, [wd005]
+ ld h, a
+ add hl, de
+ ld e, l
+ ld d, h
+ pop hl
+ ret
+
+Printer_PlaceTopBorder: ; 849d7 (21:49d7)
+ hlcoord 0, 0
+ ld a, "┌"
+ ld [hli], a
+ ld a, "─"
+ ld c, SCREEN_WIDTH - 2
+.loop
+ ld [hli], a
+ dec c
+ jr nz, .loop
+ ld a, "┐"
+ ld [hl], a
+ ret
+
+Printer_PlaceSideBorders: ; 849e9 (21:49e9)
+ hlcoord 0, 0
+ ld de, SCREEN_WIDTH - 1
+ ld c, SCREEN_HEIGHT
+.loop
+ ld a, "│"
+ ld [hl], a
+ add hl, de
+ ld a, "│"
+ ld [hli], a
+ dec c
+ jr nz, .loop
+ ret
+
+Printer_PlaceBottomBorders: ; 849fc (21:49fc)
+ hlcoord 0, 17
+ ld a, "└"
+ ld [hli], a
+ ld a, "─"
+ ld c, SCREEN_WIDTH - 2
+.loop
+ ld [hli], a
+ dec c
+ jr nz, .loop
+ ld a, "┘"
+ ld [hl], a
+ ret
+
+Printer_PlaceEmptyBoxSlotString: ; 84a0e (21:4a0e)
+ hlcoord 2, 0
+ ld c, $6
+.loop
+ push bc
+ push hl
+ ld de, String84a25
+ call PlaceString
+ pop hl
+ ld bc, 3 * SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .loop
+ ret
+; 84a25 (21:4a25)
+
+String84a25: ; 84a25
+ db " ------@"
+; 84a2e
--- a/engine/radio2.asm
+++ /dev/null
@@ -1,404 +1,0 @@
-_UpdateRadioStation: ; 9163e (24:563e)
- jr UpdateRadioStation
-
-Function91640: ; 91640 (24:5640)
- push bc
- call .TuningKnob
- pop bc
- ld a, [wRadioTuningKnob]
- ld hl, $6
- add hl, bc
- ld [hl], a
- ret
-
-.TuningKnob: ; 9164e (24:564e)
- ld hl, hJoyLast
- ld a, [hl]
- and D_DOWN
- jr nz, .down
- ld a, [hl]
- and D_UP
- jr nz, .up
- ret
-
-.down
- ld hl, wRadioTuningKnob
- ld a, [hl]
- and a
- ret z
-rept 2
- dec [hl]
-endr
- jr .update
-
-.up
- ld hl, wRadioTuningKnob
- ld a, [hl]
- cp 80
- ret nc
-rept 2
- inc [hl]
-endr
-
-.update
-
-UpdateRadioStation: ; 9166f (24:566f)
- ld hl, wRadioTuningKnob
- ld d, [hl]
- ld hl, RadioChannels
-.loop
- ld a, [hli]
- cp -1
- jr z, .nostation
- cp d
- jr z, .foundstation
-rept 2
- inc hl
-endr
- jr .loop
-
-.nostation
- call NoRadioStation
- ret
-
-.foundstation
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, .returnafterstation
- push de
- jp [hl]
-.returnafterstation
- ld a, [wc6d9]
- and a
- ret z
- xor a
- ld [hBGMapMode], a
- hlcoord 2, 9
- call PlaceString
- ld a, $1
- ld [hBGMapMode], a
- ret
-; 916a1 (24:56a1)
-
-Function916a1: ; 916a1
- ld [wc6d9], a
- ld a, [hli]
- ld [wc6da], a
- ld a, [hli]
- ld [wc6db], a
- ret
-; 916ad
-
-
-RadioChannels:
-; frequencies and the shows that play on them.
-; frequency value given here = 4 × ingame_frequency − 2
- dbw 16, .PkmnTalkAndPokedexShow
- dbw 28, .PokemonMusic
- dbw 32, .LuckyChannel
- dbw 40, .BuenasPassword
- dbw 52, .RuinsOfAlphRadio
- dbw 64, .PlacesAndPeople
- dbw 72, .LetsAllSing
- dbw 78, .PokeFluteRadio
- dbw 80, .EvolutionRadio
- db $ff
-
-.PkmnTalkAndPokedexShow
-; Pokédex Show in the morning
-; Oak's Pokémon Talk in the afternoon and evening
- call .InJohto
- jr nc, .NoSignal
- ld a, [TimeOfDay]
- and a
- jp z, LoadStation_PokedexShow
- jp LoadStation_OaksPokemonTalk
-
-.PokemonMusic
- call .InJohto
- jr nc, .NoSignal
- jp LoadStation_PokemonMusic
-
-.LuckyChannel
- call .InJohto
- jr nc, .NoSignal
- jp LoadStation_LuckyChannel
-
-.BuenasPassword
- call .InJohto
- jr nc, .NoSignal
- jp LoadStation_BuenasPassword
-
-.RuinsOfAlphRadio
- ld a, [wc6d8]
- cp RUINS_OF_ALPH
- jr nz, .NoSignal
- jp LoadStation_UnownRadio
-
-.PlacesAndPeople
- call .InJohto
- jr c, .NoSignal
- ld a, [wPokegearFlags]
- bit 3, a
- jr z, .NoSignal
- jp LoadStation_PlacesAndPeople
-
-.LetsAllSing
- call .InJohto
- jr c, .NoSignal
- ld a, [wPokegearFlags]
- bit 3, a
- jr z, .NoSignal
- jp LoadStation_LetsAllSing
-
-.PokeFluteRadio
- call .InJohto
- jr c, .NoSignal
- ld a, [wPokegearFlags]
- bit 3, a
- jr z, .NoSignal
- jp LoadStation_PokeFluteRadio
-
-.EvolutionRadio
-; This station airs in the Lake of Rage area when Rocket are still in Mahogany.
-
- ld a, [StatusFlags]
- bit 4, a
- jr z, .NoSignal
-
- ld a, [wc6d8]
- cp MAHOGANY_TOWN
- jr z, .ok
- cp ROUTE_43
- jr z, .ok
- cp LAKE_OF_RAGE
- jr nz, .NoSignal
-.ok
- jp LoadStation_EvolutionRadio
-
-.NoSignal
- call NoRadioStation
- ret
-
-.InJohto
-; if in Johto or on the S.S. Aqua, set carry
-; otherwise clear carry
- ld a, [wc6d8]
- cp FAST_SHIP
- jr z, .johto
- cp KANTO_LANDMARK
- jr c, .johto
-.kanto
- and a
- ret
-.johto
- scf
- ret
-
-
-
-LoadStation_OaksPokemonTalk: ; 91753 (24:5753)
- xor a ; OAKS_POKEMON_TALK
- ld [wd002], a
- ld [wd005], a
- ld a, BANK(PlayRadioShow)
- ld hl, PlayRadioShow
- call Radio_BackUpFarCallParams
- ld de, OaksPkmnTalkName
- ret
-
-LoadStation_PokedexShow: ; 91766 (24:5766)
- ld a, POKEDEX_SHOW
- ld [wd002], a
- xor a
- ld [wd005], a
- ld a, BANK(PlayRadioShow)
- ld hl, PlayRadioShow
- call Radio_BackUpFarCallParams
- ld de, PokedexShowName
- ret
-
-LoadStation_PokemonMusic: ; 9177b (24:577b)
- ld a, POKEMON_MUSIC
- ld [wd002], a
- xor a
- ld [wd005], a
- ld a, BANK(PlayRadioShow)
- ld hl, PlayRadioShow
- call Radio_BackUpFarCallParams
- ld de, PokemonMusicName
- ret
-
-LoadStation_LuckyChannel: ; 91790 (24:5790)
- ld a, LUCKY_CHANNEL
- ld [wd002], a
- xor a
- ld [wd005], a
- ld a, BANK(PlayRadioShow)
- ld hl, PlayRadioShow
- call Radio_BackUpFarCallParams
- ld de, LuckyChannelName
- ret
-
-LoadStation_BuenasPassword: ; 917a5 (24:57a5)
- ld a, BUENAS_PASSWORD
- ld [wd002], a
- xor a
- ld [wd005], a
- ld a, BANK(PlayRadioShow)
- ld hl, PlayRadioShow
- call Radio_BackUpFarCallParams
- ld de, NotBuenasPasswordName
- ld a, [StatusFlags2]
- bit 0, a
- ret z
- ld de, BuenasPasswordName
- ret
-; 917c3 (24:57c3)
-
-BuenasPasswordName: db "BUENA'S PASSWORD@"
-NotBuenasPasswordName: db "@"
-
-LoadStation_UnownRadio: ; 917d5 (24:57d5)
- ld a, UNOWN_RADIO
- ld [wd002], a
- xor a
- ld [wd005], a
- ld a, BANK(PlayRadioShow)
- ld hl, PlayRadioShow
- call Radio_BackUpFarCallParams
- ld de, UnknownStationName
- ret
-
-LoadStation_PlacesAndPeople: ; 917ea (24:57ea)
- ld a, PLACES_AND_PEOPLE
- ld [wd002], a
- xor a
- ld [wd005], a
- ld a, BANK(PlayRadioShow)
- ld hl, PlayRadioShow
- call Radio_BackUpFarCallParams
- ld de, PlacesAndPeopleName
- ret
-
-LoadStation_LetsAllSing: ; 917ff (24:57ff)
- ld a, LETS_ALL_SING
- ld [wd002], a
- xor a
- ld [wd005], a
- ld a, BANK(PlayRadioShow)
- ld hl, PlayRadioShow
- call Radio_BackUpFarCallParams
- ld de, LetsAllSingName
- ret
-; 91814 (24:5814)
-
-LoadStation_RocketRadio: ; 91814
- ld a, ROCKET_RADIO
- ld [wd002], a
- xor a
- ld [wd005], a
- ld a, BANK(PlayRadioShow)
- ld hl, PlayRadioShow
- call Radio_BackUpFarCallParams
- ld de, LetsAllSingName
- ret
-; 91829
-
-LoadStation_PokeFluteRadio: ; 91829 (24:5829)
- ld a, POKE_FLUTE_RADIO
- ld [wd002], a
- xor a
- ld [wd005], a
- ld a, BANK(PlayRadioShow)
- ld hl, PlayRadioShow
- call Radio_BackUpFarCallParams
- ld de, PokeFluteStationName
- ret
-
-LoadStation_EvolutionRadio: ; 9183e (24:583e)
- ld a, EVOLUTION_RADIO
- ld [wd002], a
- xor a
- ld [wd005], a
- ld a, BANK(PlayRadioShow)
- ld hl, PlayRadioShow
- call Radio_BackUpFarCallParams
- ld de, UnknownStationName
- ret
-; 91853 (24:5853)
-
-LoadStation_Dummy: ; 91853
- ret
-
-RadioMusicRestartDE: ; 91854 (24:5854)
- push de
- ld a, e
- ld [wc6dc], a
- ld de, MUSIC_NONE
- call PlayMusic
- pop de
- ld a, e
- ld [wMapMusic], a
- call PlayMusic
- ret
-
-RadioMusicRestartPokemonChannel: ; 91868 (24:5868)
- push de
- ld a, $fe
- ld [wc6dc], a
- ld de, MUSIC_NONE
- call PlayMusic
- pop de
- ld de, MUSIC_POKEMON_CHANNEL
- call PlayMusic
- ret
-
-Radio_BackUpFarCallParams: ; 9187c (24:587c)
- ld [wc6d9], a
- ld a, l
- ld [wc6da], a
- ld a, h
- ld [wc6db], a
- ret
-
-NoRadioStation: ; 91888 (24:5888)
- call NoRadioMusic
- call NoRadioName
- xor a
- ld [wc6d9], a
- ld [wc6da], a
- ld [wc6db], a
- ld a, $1
- ld [hBGMapMode], a
- ret
-
-NoRadioMusic: ; 9189d (24:589d)
- ld de, MUSIC_NONE
- call PlayMusic
- ld a, $ff
- ld [wc6dc], a
- ret
-
-NoRadioName: ; 918a9 (24:58a9)
- xor a
- ld [hBGMapMode], a
- hlcoord 1, 8
- lb bc, 3, 18
- call ClearBox
- hlcoord 0, 12
- ld bc, $412
- call TextBox
- ret
-; 918bf
-
-OaksPkmnTalkName: db "OAK's <PK><MN> Talk@"
-PokedexShowName: db "#DEX Show@"
-PokemonMusicName: db "#MON Music@"
-LuckyChannelName: db "Lucky Channel@"
-UnknownStationName: db "?????@"
-PlacesAndPeopleName: db "Places & People@"
-LetsAllSingName: db "Let's All Sing!@"
-PokeFluteStationName: db "# FLUTE@"
-; 9191c
--- a/engine/save.asm
+++ b/engine/save.asm
@@ -1,13 +1,13 @@
-Function14a1a: ; 14a1a
+SaveMenu: ; 14a1a
call LoadStandardMenuDataHeader
- callba Function5e9a
+ callba DisplaySaveInfoOnSave
call SpeechTextBox
call UpdateSprites
- callba Function4cf45
+ callba SaveMenu_LoadEDTile
ld hl, UnknownText_0x15283
call SaveTheGame_yesorno
jr nz, .refused
- call CheckForExistingSaveFile
+ call AskOverwriteSaveFile
jr c, .refused
call SetWRAMStateForSave
call _SavingDontTurnOffThePower
@@ -15,29 +15,30 @@
call ExitMenu
and a
ret
+
.refused
call ExitMenu
call Functiond90
- callba Function4cf45
+ callba SaveMenu_LoadEDTile
scf
ret
Function14a58: ; 14a58
call SetWRAMStateForSave
- callba Function14056
- callba Function1050d9
+ callba StageRTCTimeForSave
+ callba BackupMysteryGift
call SavePokemonData
- call Function14e13
+ call SaveChecksum
call SaveBackupPokemonData
call SaveBackupChecksum
- callba BackupScratchmons
- callba Function1406a
+ callba BackupPartyMonMail
+ callba SaveRTC
call ClearWRAMStateAfterSave
ret
; 14a83
-Function14a83: ; 14a83 (5:4a83)
+ChangeBoxSaveGame: ; 14a83 (5:4a83)
push de
ld hl, UnknownText_0x152a1
call MenuTextBox
@@ -44,7 +45,7 @@
call YesNoBox
call ExitMenu
jr c, .refused
- call CheckForExistingSaveFile
+ call AskOverwriteSaveFile
jr c, .refused
call SetWRAMStateForSave
call SavingDontTurnOffThePower
@@ -61,8 +62,8 @@
pop de
ret
-Function14ab2: ; 14ab2
- call CheckForExistingSaveFile
+Link_SaveGame: ; 14ab2
+ call AskOverwriteSaveFile
jr c, .refused
call SetWRAMStateForSave
call _SavingDontTurnOffThePower
@@ -73,7 +74,7 @@
ret
; 14ac2
-Function14ac2: ; 14ac2
+MovePkmnWOMail_SaveGame: ; 14ac2
call SetWRAMStateForSave
push de
call SaveBox
@@ -93,39 +94,39 @@
ld a, e
ld [wCurBox], a
ld a, $1
- ld [wcfcd], a
- callba Function14056
- callba Function1050d9
+ ld [wSaveFileExists], a
+ callba StageRTCTimeForSave
+ callba BackupMysteryGift
call ValidateSave
call SaveOptions
call SavePlayerData
call SavePokemonData
- call Function14e13
+ call SaveChecksum
call ValidateBackupSave
call SaveBackupOptions
call SaveBackupPlayerData
call SaveBackupPokemonData
call SaveBackupChecksum
- callba BackupScratchmons
+ callba BackupPartyMonMail
callba BackupMobileEventIndex
- callba Function1406a
+ callba SaveRTC
call LoadBox
call ClearWRAMStateAfterSave
ld de, SFX_SAVE
call PlaySFX
- ld c, $18
+ ld c, 24
call DelayFrames
ret
; 14b34
-Function14b34: ; 14b34
+StartMovePkmnWOMail_SaveGame: ; 14b34
ld hl, UnknownText_0x152a6
call MenuTextBox
call YesNoBox
call ExitMenu
- jr c, .asm_14b52
- call CheckForExistingSaveFile
- jr c, .asm_14b52
+ jr c, .refused
+ call AskOverwriteSaveFile
+ jr c, .refused
call SetWRAMStateForSave
call _SavingDontTurnOffThePower
call ClearWRAMStateAfterSave
@@ -132,7 +133,7 @@
and a
ret
-.asm_14b52
+.refused
scf
ret
; 14b54
@@ -177,8 +178,8 @@
ret
; 14b89
-CheckForExistingSaveFile: ; 14b89
- ld a, [wcfcd]
+AskOverwriteSaveFile: ; 14b89
+ ld a, [wSaveFileExists]
and a
jr z, .erase
call Function14bcb
@@ -269,15 +270,15 @@
SaveGameData_: ; 14c10
ld a, 1
- ld [wcfcd], a
- callba Function14056
- callba Function1050d9
+ ld [wSaveFileExists], a
+ callba StageRTCTimeForSave
+ callba BackupMysteryGift
call ValidateSave
call SaveOptions
call SavePlayerData
call SavePokemonData
call SaveBox
- call Function14e13
+ call SaveChecksum
call ValidateBackupSave
call SaveBackupOptions
call SaveBackupPlayerData
@@ -284,16 +285,16 @@
call SaveBackupPokemonData
call SaveBackupChecksum
call UpdateStackTop
- callba BackupScratchmons
+ callba BackupPartyMonMail
callba BackupMobileEventIndex
- callba Function1406a
- ld a, BANK(s1_be45)
+ callba SaveRTC
+ ld a, BANK(sBattleTowerChallengeState)
call GetSRAMBank
- ld a, [s1_be45]
+ ld a, [sBattleTowerChallengeState]
cp $4
jr nz, .ok
xor a
- ld [s1_be45], a
+ ld [sBattleTowerChallengeState], a
.ok
call CloseSRAM
ret
@@ -371,7 +372,7 @@
call EraseHallOfFame
call EraseLinkBattleStats
call EraseMysteryGift
- call Function14d68
+ call SaveData
call Function14d5c
ld a, BANK(sStackTop)
call GetSRAMBank
@@ -395,10 +396,10 @@
; 14cf4
EraseMysteryGift: ; 14cf4
- ld a, BANK(s0_abe4)
+ ld a, BANK(sBackupMysteryGiftItem)
call GetSRAMBank
- ld hl, s0_abe4
- ld bc, s0_abe4End - s0_abe4
+ ld hl, sBackupMysteryGiftItem
+ ld bc, sBackupMysteryGiftItemEnd - sBackupMysteryGiftItem
xor a
call ByteFill
jp CloseSRAM
@@ -437,15 +438,15 @@
; 14d5c
Function14d5c: ; 14d5c
- ld a, BANK(s1_be45)
+ ld a, BANK(sBattleTowerChallengeState)
call GetSRAMBank
xor a
- ld [s1_be45], a
+ ld [sBattleTowerChallengeState], a
jp CloseSRAM
; 14d68
-Function14d68: ; 14d68
- call Function1509a
+SaveData: ; 14d68
+ call _SaveData
ret
; 14d6c
@@ -496,9 +497,9 @@
ValidateSave: ; 14da9
ld a, BANK(s1_a008)
call GetSRAMBank
- ld a, $63
+ ld a, 99
ld [s1_a008], a
- ld a, $7f
+ ld a, " "
ld [s1_ad0f], a
jp CloseSRAM
; 14dbb
@@ -547,7 +548,7 @@
ret
; 14e13
-Function14e13: ; 14e13
+SaveChecksum: ; 14e13
ld hl, sGameData
ld bc, sGameDataEnd - sGameData
ld a, BANK(sGameData)
@@ -564,9 +565,9 @@
ValidateBackupSave: ; 14e2d
ld a, BANK(s0_b208)
call GetSRAMBank
- ld a, $63
+ ld a, 99
ld [s0_b208], a
- ld a, $7f
+ ld a, " "
ld [s0_bf0f], a
call CloseSRAM
ret
@@ -630,9 +631,9 @@
call LoadPlayerData
call LoadPokemonData
call LoadBox
- callba RestoreScratchmons
+ callba RestorePartyMonMail
callba RestoreMobileEventIndex
- callba Function1050ea
+ callba RestoreMysteryGift
call ValidateBackupSave
call SaveBackupOptions
call SaveBackupPlayerData
@@ -647,14 +648,14 @@
call LoadBackupPlayerData
call LoadBackupPokemonData
call LoadBox
- callba RestoreScratchmons
+ callba RestorePartyMonMail
callba RestoreMobileEventIndex
- callba Function1050ea
+ callba RestoreMysteryGift
call ValidateSave
call SaveOptions
call SavePlayerData
call SavePokemonData
- call Function14e13
+ call SaveChecksum
and a
ret
@@ -661,7 +662,7 @@
.corrupt
ld a, [Options]
push af
- set 4, a
+ set NO_TEXT_SCROLL, a
ld [Options], a
ld hl, UnknownText_0x1529c
call PrintText
@@ -671,11 +672,11 @@
ret
-Function14f1c: ; 14f1c
+TryLoadSaveData: ; 14f1c
xor a
- ld [wcfcd], a
- call Function14f84
- ld a, [wcfcd]
+ ld [wSaveFileExists], a
+ call CheckPrimarySaveFile
+ ld a, [wSaveFileExists]
and a
jr z, .backup
@@ -693,8 +694,8 @@
ret
.backup
- call Function14faf
- ld a, [wcfcd]
+ call CheckBackupSaveFile
+ ld a, [wSaveFileExists]
and a
jr z, .corrupt
@@ -716,7 +717,7 @@
ld de, Options
ld bc, OptionsEnd - Options
call CopyBytes
- call Function67e
+ call PanicResetClock
ret
; 14f7c
@@ -731,14 +732,14 @@
db $00
; 14f84
-Function14f84: ; 14f84
+CheckPrimarySaveFile: ; 14f84
ld a, BANK(s1_a008)
call GetSRAMBank
ld a, [s1_a008]
- cp $63
+ cp 99
jr nz, .nope
ld a, [s1_ad0f]
- cp $7f
+ cp " "
jr nz, .nope
ld hl, sOptions
ld de, Options
@@ -746,7 +747,7 @@
call CopyBytes
call CloseSRAM
ld a, $1
- ld [wcfcd], a
+ ld [wSaveFileExists], a
.nope
call CloseSRAM
@@ -753,14 +754,14 @@
ret
; 14faf
-Function14faf: ; 14faf
+CheckBackupSaveFile: ; 14faf
ld a, BANK(s0_b208)
call GetSRAMBank
ld a, [s0_b208]
- cp $63
+ cp 99
jr nz, .nope
ld a, [s0_bf0f]
- cp $7f
+ cp " "
jr nz, .nope
ld hl, sBackupOptions
ld de, Options
@@ -767,7 +768,7 @@
ld bc, OptionsEnd - Options
call CopyBytes
ld a, $2
- ld [wcfcd], a
+ ld [wSaveFileExists], a
.nope
call CloseSRAM
@@ -787,14 +788,14 @@
ld bc, wMapDataEnd - wMapData
call CopyBytes
call CloseSRAM
- ld a, BANK(s1_be45)
+ ld a, BANK(sBattleTowerChallengeState)
call GetSRAMBank
- ld a, [s1_be45]
+ ld a, [sBattleTowerChallengeState]
cp $4
- jr nz, .asm_15008
+ jr nz, .not_4
ld a, $3
- ld [s1_be45], a
-.asm_15008
+ ld [sBattleTowerChallengeState], a
+.not_4
call CloseSRAM
ret
@@ -822,10 +823,10 @@
call Checksum
ld a, [sChecksum + 0]
cp e
- jr nz, .asm_15040
+ jr nz, .fail
ld a, [sChecksum + 1]
cp d
-.asm_15040
+.fail
push af
call CloseSRAM
pop af
@@ -863,10 +864,10 @@
call Checksum
ld a, [sBackupChecksum + 0]
cp e
- jr nz, .asm_15094
+ jr nz, .fail
ld a, [sBackupChecksum + 1]
cp d
-.asm_15094
+.fail
push af
call CloseSRAM
pop af
@@ -873,7 +874,7 @@
ret
-Function1509a: ; 1509a
+_SaveData: ; 1509a
ld a, BANK(sCrystalData)
call GetSRAMBank
ld hl, wCrystalData
--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -69,13 +69,13 @@
; 96cb1
-ScriptCommandTable: ; 0x96cb1
- dw Script_2call
- dw Script_3call
- dw Script_2ptcall
- dw Script_2jump
- dw Script_3jump
- dw Script_2ptjump
+ScriptCommandTable: ; 96cb1
+ dw Script_scall
+ dw Script_farscall
+ dw Script_ptcall
+ dw Script_jump
+ dw Script_farjump
+ dw Script_ptjump
dw Script_if_equal
dw Script_if_not_equal
dw Script_iffalse
@@ -84,9 +84,9 @@
dw Script_if_less_than
dw Script_jumpstd
dw Script_callstd
- dw Script_3callasm
+ dw Script_callasm
dw Script_special
- dw Script_2ptcallasm
+ dw Script_ptcallasm
dw Script_checkmaptriggers
dw Script_domaptrigger
dw Script_checktriggers
@@ -144,9 +144,9 @@
dw Script_loadfont
dw Script_refreshscreen
dw Script_loadmovesprites
- dw Script_loadbytec1ce
- dw Script_3writetext
- dw Script_2writetext
+ dw Script_loadbytec2cf
+ dw Script_farwritetext
+ dw Script_writetext
dw Script_repeattext
dw Script_yesorno
dw Script_loadmenudata
@@ -153,7 +153,7 @@
dw Script_writebackup
dw Script_jumptextfaceplayer
IF _CRYSTAL
- dw Script_3jumptext
+ dw Script_farjumptext
ENDC
dw Script_jumptext
dw Script_closetext
@@ -241,28 +241,28 @@
dw Script_trainerclassname
dw Script_name
dw Script_wait
- dw Script_unknown0xa9
-; 0x96e05
+ dw Script_check_save
+; 96e05
-StartScript: ; 0x96e05
+StartScript: ; 96e05
ld hl, ScriptFlags
set SCRIPT_RUNNING, [hl]
ret
-; 0x96e0b
+; 96e0b
-CheckScript: ; 0x96e0b
+CheckScript: ; 96e0b
ld hl, ScriptFlags
bit SCRIPT_RUNNING, [hl]
ret
-; 0x96e11
+; 96e11
-StopScript: ; 0x96e11
+StopScript: ; 96e11
ld hl, ScriptFlags
res SCRIPT_RUNNING, [hl]
ret
-; 0x96e17
+; 96e17
-Script_3callasm: ; 0x96e17
+Script_callasm: ; 96e17
; script command 0xe
; parameters:
; asm (AsmPointerParam)
@@ -276,9 +276,9 @@
ld a, b
rst FarCall
ret
-; 0x96e26
+; 96e26
-Script_special: ; 0x96e26
+Script_special: ; 96e26
; script command 0xf
; parameters:
; predefined_script (MultiByteParam)
@@ -289,9 +289,9 @@
ld d, a
callba Special
ret
-; 0x96e35
+; 96e35
-Script_2ptcallasm: ; 0x96e35
+Script_ptcallasm: ; 96e35
; script command 0x10
; parameters:
; asm (PointerToAsmPointerParam)
@@ -308,9 +308,9 @@
ld a, b
rst FarCall
ret
-; 0x96e45
+; 96e45
-Script_jumptextfaceplayer: ; 0x96e45
+Script_jumptextfaceplayer: ; 96e45
; script command 0x51
; parameters:
; text_pointer (RawTextPointerLabelParam)
@@ -324,9 +324,9 @@
ld b, BANK(JumpTextFacePlayerScript)
ld hl, JumpTextFacePlayerScript
jp ScriptJump
-; 0x96e5f
+; 96e5f
-Script_jumptext: ; 0x96e5f
+Script_jumptext: ; 96e5f
; script command 0x53
; parameters:
; text_pointer (RawTextPointerLabelParam)
@@ -340,22 +340,22 @@
ld b, BANK(JumpTextScript)
ld hl, JumpTextScript
jp ScriptJump
-; 0x96e79
+; 96e79
-JumpTextFacePlayerScript: ; 0x96e79
+JumpTextFacePlayerScript: ; 96e79
faceplayer
-JumpTextScript: ; 0x96e7a
+JumpTextScript: ; 96e7a
loadfont
repeattext -1, -1
closetext
loadmovesprites
end
-; 0x96e81
+; 96e81
IF _CRYSTAL
-Script_3jumptext: ; 0x96e81
+Script_farjumptext: ; 96e81
; script command 0x52
; parameters:
; text_pointer (PointerLabelBeforeBank)
@@ -369,12 +369,12 @@
ld b, BANK(JumpTextScript)
ld hl, JumpTextScript
jp ScriptJump
-; 0x96e9b
+; 96e9b
ENDC
-Script_2writetext: ; 0x96e9b
+Script_writetext: ; 96e9b
; script command 0x4c
; parameters:
; text_pointer (RawTextPointerLabelParam)
@@ -387,9 +387,9 @@
ld b, a
call MapTextbox
ret
-; 0x96eab
+; 96eab
-Script_3writetext: ; 0x96eab
+Script_farwritetext: ; 96eab
; script command 0x4b
; parameters:
; text_pointer (PointerLabelBeforeBank)
@@ -402,9 +402,9 @@
ld h, a
call MapTextbox
ret
-; 0x96ebb
+; 96ebb
-Script_repeattext: ; 0x96ebb
+Script_repeattext: ; 96ebb
; script command 0x4d
; parameters:
; byte (SingleByteParam)
@@ -415,10 +415,10 @@
call GetScriptByte
ld h, a
cp -1
- jr nz, .done ; 0x96ec5 $11
+ jr nz, .done
ld a, l
cp -1
- jr nz, .done ; 0x96eca $c
+ jr nz, .done
ld hl, wd44e
ld a, [hli]
ld b, a
@@ -429,15 +429,15 @@
ret
.done
ret
-; 0x96ed9
+; 96ed9
-Script_closetext: ; 0x96ed9
+Script_closetext: ; 96ed9
; script command 0x54
jp CloseText
-; 0x96edc
+; 96edc
-Script_keeptextopen: ; 0x96edc
+Script_keeptextopen: ; 96edc
; script command 0x55
ld a, [hOAMUpdate]
@@ -449,21 +449,21 @@
pop af
ld [hOAMUpdate], a
ret
-; 0x96eed
+; 96eed
-Script_yesorno: ; 0x96eed
+Script_yesorno: ; 96eed
; script command 0x4e
call YesNoBox
ld a, 0
- jr c, .no ; 0x96ef2 $2
+ jr c, .no
ld a, 1
.no
ld [ScriptVar], a
ret
-; 0x96efa
+; 96efa
-Script_loadmenudata: ; 0x96efa
+Script_loadmenudata: ; 96efa
; script command 0x4f
; parameters:
; data (MenuDataPointerParam)
@@ -477,17 +477,17 @@
call Call_a_de
call UpdateSprites
ret
-; 0x96f0f
+; 96f0f
-Script_writebackup: ; 0x96f0f
+Script_writebackup: ; 96f0f
; script command 0x50
call WriteBackup
call UpdateSprites
ret
-; 0x96f16
+; 96f16
-Script_pokepic: ; 0x96f16
+Script_pokepic: ; 96f16
; script command 0x56
; parameters:
; pokemon (PokemonParam)
@@ -500,16 +500,16 @@
ld [CurPartySpecies], a
callba Pokepic
ret
-; 0x96f29
+; 96f29
-Script_pokepicyesorno: ; 0x96f29
+Script_pokepicyesorno: ; 96f29
; script command 0x57
callba PokepicYesOrNo
ret
-; 0x96f30
+; 96f30
-Script_interpretmenu2: ; 0x96f30
+Script_interpretmenu2: ; 96f30
; script command 0x59
ld a, [ScriptBank]
@@ -521,9 +521,9 @@
.ok
ld [ScriptVar], a
ret
-; 0x96f41
+; 96f41
-Script_interpretmenu: ; 0x96f41
+Script_interpretmenu: ; 96f41
; script command 0x58
ld a, [ScriptBank]
@@ -535,9 +535,9 @@
.ok
ld [ScriptVar], a
ret
-; 0x96f52
+; 96f52
-Script_battletowertext: ; 0x96f52
+Script_battletowertext: ; 96f52
; script command 0xa4
; parameters:
; pointer (PointerLabelBeforeBank)
@@ -548,9 +548,9 @@
ld c, a
callba BattleTowerText
ret
-; 0x96f60
+; 96f60
-Script_verbosegiveitem: ; 0x96f60
+Script_verbosegiveitem: ; 96f60
; script command 0x9e
; parameters:
; item (ItemLabelByte)
@@ -564,15 +564,15 @@
ld b, BANK(GiveItemScript)
ld de, GiveItemScript
jp ScriptCall
-; 0x96f76
+; 96f76
-Function96f76: ; 96f76
+ret_96f76: ; 96f76
ret
; 96f77
GiveItemScript: ; 96f77
- callasm Function96f76
+ callasm ret_96f76
writetext ReceivedItemText
iffalse .Full
waitbutton
@@ -593,7 +593,7 @@
; 96f8e
-Script_verbosegiveitem2: ; 0x96f8e
+Script_verbosegiveitem2: ; 96f8e
; script command 0x9f
; parameters:
; item (ItemLabelByte)
@@ -623,9 +623,9 @@
ld b, BANK(GiveItemScript)
ld de, GiveItemScript
jp ScriptCall
-; 0x96fc6
+; 96fc6
-Script_itemnotify: ; 0x96fc6
+Script_itemnotify: ; 96fc6
; script command 0x45
call GetPocketName
@@ -634,9 +634,9 @@
ld hl, PutItemInPocketText
call MapTextbox
ret
-; 0x96fd5
+; 96fd5
-Script_pocketisfull: ; 0x96fd5
+Script_pocketisfull: ; 96fd5
; script command 0x46
call GetPocketName
@@ -645,9 +645,9 @@
ld hl, PocketIsFullText
call MapTextbox
ret
-; 0x96fe4
+; 96fe4
-Script_specialsound: ; 0x96fe4
+Script_specialsound: ; 96fe4
; script command 0x88
callba CheckItemPocket
@@ -660,7 +660,7 @@
call PlaySFX
call WaitSFX
ret
-; 0x96ffe
+; 96ffe
GetPocketName: ; 96ffe
@@ -715,7 +715,7 @@
; 97065
-Script_pokemart: ; 0x97065
+Script_pokemart: ; 97065
; script command 0x94
; parameters:
; dialog_id (SingleByteParam)
@@ -731,9 +731,9 @@
ld b, a
callba OpenMartDialog
ret
-; 0x9707c
+; 9707c
-Script_elevator: ; 0x9707c
+Script_elevator: ; 9707c
; script command 0x95
; parameters:
; floor_list_pointer (PointerLabelParam)
@@ -751,9 +751,9 @@
ld a, $1
ld [ScriptVar], a
ret
-; 0x97099
+; 97099
-Script_trade: ; 0x97099
+Script_trade: ; 97099
; script command 0x96
; parameters:
; trade_id (SingleByteParam)
@@ -762,9 +762,9 @@
ld e, a
callba NPCTrade
ret
-; 0x970a4
+; 970a4
-Script_phonecall: ; 0x970a4
+Script_phonecall: ; 970a4
; script command 0x98
; parameters:
; caller_name (RawTextPointerLabelParam)
@@ -777,31 +777,31 @@
ld b, a
callba PhoneCall
ret
-; 0x970b7
+; 970b7
-Script_hangup: ; 0x970b7
+Script_hangup: ; 970b7
; script command 0x99
callba HangUp
ret
-; 0x970be
+; 970be
-Script_askforphonenumber: ; 0x970be
+Script_askforphonenumber: ; 970be
; script command 0x97
; parameters:
; number (SingleByteParam)
call YesNoBox
- jr c, .refused ; 0x970c1 $13
+ jr c, .refused
call GetScriptByte
ld c, a
callba AddPhoneNumber
- jr c, .phonefull ; 0x970cd $3
+ jr c, .phonefull
xor a
- jr .done ; 0x970d0 $9
+ jr .done
.phonefull
ld a, 1
- jr .done ; 0x970d4 $5
+ jr .done
.refused
call GetScriptByte
ld a, 2
@@ -808,9 +808,9 @@
.done
ld [ScriptVar], a
ret
-; 0x970df
+; 970df
-Script_describedecoration: ; 0x970df
+Script_describedecoration: ; 970df
; script command 0x9a
; parameters:
; byte (SingleByteParam)
@@ -821,9 +821,9 @@
ld h, d
ld l, e
jp ScriptJump
-; 0x970ee
+; 970ee
-Script_fruittree: ; 0x970ee
+Script_fruittree: ; 970ee
; script command 0x9b
; parameters:
; tree_id (SingleByteParam)
@@ -833,9 +833,9 @@
ld b, BANK(FruitTreeScript)
ld hl, FruitTreeScript
jp ScriptJump
-; 0x970fc
+; 970fc
-Script_loadwilddata: ; 0x970fc
+Script_loadwilddata: ; 970fc
; script command 0xa0
; parameters:
; flag (SingleByteParam)
@@ -850,9 +850,9 @@
ld e, a
callba LoadWildData
ret
-; 0x9710f
+; 9710f
-Script_trainertext: ; 0x9710f
+Script_trainertext: ; 9710f
; script command 0x62
; parameters:
; which_text (SingleByteParam)
@@ -871,9 +871,9 @@
ld b, a
call MapTextbox
ret
-; 0x97125
+; 97125
-Script_scripttalkafter: ; 0x97125
+Script_scripttalkafter: ; 97125
; script command 0x65
ld hl, wd04b
@@ -883,9 +883,9 @@
ld a, [EngineBuffer1]
ld b, a
jp ScriptJump
-; 0x97132
+; 97132
-Script_trainerstatus: ; 0x97132
+Script_trainerstatus: ; 97132
; script command 0x63
; parameters:
; action (SingleByteParam)
@@ -905,9 +905,9 @@
ld a, 1
ld [ScriptVar], a
ret
-; 0x9714c
+; 9714c
-Script_winlosstext: ; 0x9714c
+Script_winlosstext: ; 9714c
; script command 0x64
; parameters:
; win_text_pointer (TextPointerLabelParam)
@@ -924,31 +924,31 @@
call GetScriptByte
ld [hli], a
ret
-; 0x97163
+; 97163
-Script_talkaftercancel: ; 0x97163
+Script_talkaftercancel: ; 97163
; script command 0x66
- ld a, [wd04d]
+ ld a, [wRunningTrainerBattleScript]
and a
ret z
jp Script_end
-; 0x9716b
+; 9716b
-Script_talkaftercheck: ; 0x9716b
+Script_talkaftercheck: ; 9716b
; script command 0x67
ld a, 1
ld [ScriptVar], a
- ld a, [wd04d]
+ ld a, [wRunningTrainerBattleScript]
and a
ret nz
xor a
ld [ScriptVar], a
ret
-; 0x9717a
+; 9717a
-Script_playrammusic: ; 0x9717a
+Script_playrammusic: ; 9717a
; script command 0x80
ld a, [OtherTrainerClass]
@@ -955,16 +955,16 @@
ld e, a
callba PlayTrainerEncounterMusic
ret
-; 0x97185
+; 97185
-Script_playmapmusic: ; 0x97185
+Script_playmapmusic: ; 97185
; script command 0x82
call PlayMapMusic
ret
-; 0x97189
+; 97189
-Script_playmusic: ; 0x97189
+Script_playmusic: ; 97189
; script command 0x7f
; parameters:
; music_pointer (MultiByteParam)
@@ -980,9 +980,9 @@
ld d, a
call PlayMusic
ret
-; 0x971a2
+; 971a2
-Script_musicfadeout: ; 0x971a2
+Script_musicfadeout: ; 971a2
; script command 0x81
; parameters:
; music (MultiByteParam)
@@ -996,9 +996,9 @@
and $7f
ld [MusicFade], a
ret
-; 0x971b7
+; 971b7
-Script_playsound: ; 0x971b7
+Script_playsound: ; 971b7
; script command 0x85
; parameters:
; sound_pointer (MultiByteParam)
@@ -1009,24 +1009,24 @@
ld d, a
call PlaySFX
ret
-; 0x971c3
+; 971c3
-Script_waitbutton: ; 0x971c3
+Script_waitbutton: ; 971c3
; script command 0x86
call WaitSFX
ret
-; 0x971c7
+; 971c7
-Script_warpsound: ; 0x971c7
+Script_warpsound: ; 971c7
; script command 0x87
callba Function14a07
call PlaySFX
ret
-; 0x971d1
+; 971d1
-Script_cry: ; 0x971d1
+Script_cry: ; 971d1
; script command 0x84
; parameters:
; cry_id (MultiByteParam)
@@ -1041,9 +1041,9 @@
.ok
call PlayCry
ret
-; 0x971e3
+; 971e3
-GetScriptPerson: ; 0x971e3
+GetScriptPerson: ; 971e3
and a
ret z
cp LAST_TALKED
@@ -1050,9 +1050,9 @@
ret z
dec a
ret
-; 0x971ea
+; 971ea
-Script_setlasttalked: ; 0x971ea
+Script_setlasttalked: ; 971ea
; script command 0x68
; parameters:
; person (SingleByteParam)
@@ -1061,9 +1061,9 @@
call GetScriptPerson
ld [hLastTalked], a
ret
-; 0x971f3
+; 971f3
-Script_applymovement: ; 0x971f3
+Script_applymovement: ; 971f3
; script command 0x69
; parameters:
; person (SingleByteParam)
@@ -1097,14 +1097,14 @@
ld [ScriptMode], a
call StopScript
ret
-; 0x97221
+; 97221
-SetFlagsForMovement_2: ; 0x97221
+SetFlagsForMovement_2: ; 97221
callba _SetFlagsForMovement_2
ret
-; 0x97228
+; 97228
-Script_applymovement2: ; 0x97228
+Script_applymovement2: ; 97228
; apply movement to last talked
; script command 0x6a
; parameters:
@@ -1113,9 +1113,9 @@
ld a, [hLastTalked]
ld c, a
jp ApplyMovement
-; 0x9722e
+; 9722e
-Script_faceplayer: ; 0x9722e
+Script_faceplayer: ; 9722e
; script command 0x6b
ld a, [hLastTalked]
@@ -1134,9 +1134,9 @@
ld d, a
call ApplyPersonFacing
ret
-; 0x97248
+; 97248
-Script_faceperson: ; 0x97248
+Script_faceperson: ; 97248
; script command 0x6c
; parameters:
; person1 (SingleByteParam)
@@ -1168,9 +1168,9 @@
ld d, c
call ApplyPersonFacing
ret
-; 0x97274
+; 97274
-Script_spriteface: ; 0x97274
+Script_spriteface: ; 97274
; script command 0x76
; parameters:
; person (SingleByteParam)
@@ -1190,13 +1190,13 @@
ld e, a
call ApplyPersonFacing
ret
-; 0x9728b
+; 9728b
-ApplyPersonFacing: ; 0x9728b
+ApplyPersonFacing: ; 9728b
ld a, d
push de
call CheckObjectVisibility
- jr c, .not_visible ; 0x97290 $27
+ jr c, .not_visible
ld hl, OBJECT_SPRITE
add hl, bc
ld a, [hl]
@@ -1207,13 +1207,13 @@
ld hl, OBJECT_FLAGS1
add hl, bc
bit 2, [hl]
- jr nz, .not_visible ; 0x972a4 $13
+ jr nz, .not_visible
pop de
ld a, e
call SetSpriteDirection
ld hl, VramState
bit 6, [hl]
- jr nz, .text_state ; 0x972b0 $3
+ jr nz, .text_state
call .DisableTextTiles
.text_state
call UpdateSprites
@@ -1223,9 +1223,9 @@
pop de
scf
ret
-; 0x972bc
+; 972bc
-.DisableTextTiles: ; 0x972bc
+.DisableTextTiles: ; 972bc
call LoadMapPart
hlcoord 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
@@ -1235,11 +1235,11 @@
dec bc
ld a, b
or c
- jr nz, .loop ; 0x972cb $f8
+ jr nz, .loop
ret
-; 0x972ce
+; 972ce
-Script_variablesprite: ; 0x972ce
+Script_variablesprite: ; 972ce
; script command 0x6d
; parameters:
; byte (SingleByteParam)
@@ -1253,9 +1253,9 @@
call GetScriptByte
ld [hl], a
ret
-; 0x972dd
+; 972dd
-Script_appear: ; 0x972dd
+Script_appear: ; 972dd
; script command 0x6f
; parameters:
; person (SingleByteParam)
@@ -1267,9 +1267,9 @@
ld b, 0 ; clear
call ApplyEventActionAppearDisappear
ret
-; 0x972ee
+; 972ee
-Script_disappear: ; 0x972ee
+Script_disappear: ; 972ee
; script command 0x6e
; parameters:
; person (SingleByteParam)
@@ -1284,11 +1284,11 @@
ld a, [hMapObjectIndexBuffer]
ld b, 1 ; set
call ApplyEventActionAppearDisappear
- callba RefreshMapAppearDisappear
+ callba _UpdateSprites
ret
-; 0x9730b
+; 9730b
-ApplyEventActionAppearDisappear: ; 0x9730b
+ApplyEventActionAppearDisappear: ; 9730b
push bc
call GetMapObject
ld hl, MAPOBJECT_EVENT_FLAG
@@ -1299,17 +1299,17 @@
ld d, [hl]
ld a, -1
cp e
- jr nz, .okay ; 0x9731a $5
+ jr nz, .okay
cp d
- jr nz, .okay ; 0x9731d $2
+ jr nz, .okay
xor a
ret
.okay
call EventFlagAction
ret
-; 0x97325
+; 97325
-Script_follow: ; 0x97325
+Script_follow: ; 97325
; script command 0x70
; parameters:
; person2 (SingleByteParam)
@@ -1323,16 +1323,16 @@
ld c, a
callba StartFollow
ret
-; 0x9733a
+; 9733a
-Script_stopfollow: ; 0x9733a
+Script_stopfollow: ; 9733a
; script command 0x71
callba StopFollow
ret
-; 0x97341
+; 97341
-Script_moveperson: ; 0x97341
+Script_moveperson: ; 97341
; script command 0x72
; parameters:
; person (SingleByteParam)
@@ -1350,9 +1350,9 @@
ld e, a
callba CopyDECoordsToMapObject
ret
-; 0x9735b
+; 9735b
-Script_writepersonxy: ; 0x9735b
+Script_writepersonxy: ; 9735b
; script command 0x73
; parameters:
; person (SingleByteParam)
@@ -1366,9 +1366,9 @@
ld b, a
callba WritePersonXY
ret
-; 0x9736f
+; 9736f
-Script_follownotexact: ; 0x9736f
+Script_follownotexact: ; 9736f
; script command 0x77
; parameters:
; person2 (SingleByteParam)
@@ -1382,9 +1382,9 @@
ld c, a
callba FollowNotExact
ret
-; 0x97384
+; 97384
-Script_loademote: ; 0x97384
+Script_loademote: ; 97384
; script command 0x74
; parameters:
; bubble (SingleByteParam)
@@ -1391,15 +1391,15 @@
call GetScriptByte
cp -1
- jr nz, .not_var_emote ; 0x97389 $3
+ jr nz, .not_var_emote
ld a, [ScriptVar]
.not_var_emote
ld c, a
callba LoadEmote
ret
-; 0x97396
+; 97396
-Script_showemote: ; 0x97396
+Script_showemote: ; 97396
; script command 0x75
; parameters:
; bubble (SingleByteParam)
@@ -1419,7 +1419,7 @@
ld b, BANK(ShowEmoteScript)
ld de, ShowEmoteScript
jp ScriptCall
-; 0x973b6
+; 973b6
ShowEmoteScript: ; 973b6
loademote EMOTE_MEM
@@ -1440,7 +1440,7 @@
; 973c7
-Script_earthquake: ; 0x973c7
+Script_earthquake: ; 973c7
; script command 0x78
; parameters:
; param (DecimalParam)
@@ -1456,7 +1456,7 @@
ld b, BANK(.script)
ld de, .script
jp ScriptCall
-; 0x973e6
+; 973e6
.script: ; 973e6
applymovement PLAYER, wd002
@@ -1471,7 +1471,7 @@
; 973f0
-Script_loadpikachudata: ; 0x973f0
+Script_loadpikachudata: ; 973f0
; script command 0x5a
ld a, PIKACHU
@@ -1479,29 +1479,29 @@
ld a, 5
ld [CurPartyLevel], a
ret
-; 0x973fb
+; 973fb
-Script_battlecheck: ; 0x973fb
+Script_battlecheck: ; 973fb
; script command 0x5b
xor a
- ld [wd459], a
+ ld [wBattleScriptFlags], a
ret
-; 0x97400
+; 97400
-Script_loadtrainerdata: ; 0x97400
+Script_loadtrainerdata: ; 97400
; script command 0x5c
ld a, (1 << 7) | 1
- ld [wd459], a
+ ld [wBattleScriptFlags], a
ld a, [WalkingDirection]
ld [OtherTrainerClass], a
ld a, [FacingDirection]
ld [OtherTrainerID], a
ret
-; 0x97412
+; 97412
-Script_loadpokedata: ; 0x97412
+Script_loadpokedata: ; 97412
; script command 0x5d
; parameters:
; pokemon (PokemonParam)
@@ -1508,15 +1508,15 @@
; level (DecimalParam)
ld a, (1 << 7)
- ld [wd459], a
+ ld [wBattleScriptFlags], a
call GetScriptByte
ld [TempWildMonSpecies], a
call GetScriptByte
ld [CurPartyLevel], a
ret
-; 0x97424
+; 97424
-Script_loadtrainer: ; 0x97424
+Script_loadtrainer: ; 97424
; script command 0x5e
; parameters:
; trainer_group (TrainerGroupParam)
@@ -1523,15 +1523,15 @@
; trainer_id (TrainerIdParam)
ld a, (1 << 7) | 1
- ld [wd459], a
+ ld [wBattleScriptFlags], a
call GetScriptByte
ld [OtherTrainerClass], a
call GetScriptByte
ld [OtherTrainerID], a
ret
-; 0x97436
+; 97436
-Script_startbattle: ; 0x97436
+Script_startbattle: ; 97436
; script command 0x5f
call BufferScreen
@@ -1540,9 +1540,9 @@
and $3f
ld [ScriptVar], a
ret
-; 0x97447
+; 97447
-Script_catchtutorial: ; 0x97447
+Script_catchtutorial: ; 97447
; script command 0x61
; parameters:
; byte (SingleByteParam)
@@ -1552,18 +1552,18 @@
call BufferScreen
callba CatchTutorial
jp Script_reloadmap
-; 0x97459
+; 97459
-Script_returnafterbattle: ; 0x97459
+Script_returnafterbattle: ; 97459
; script command 0x60
- ld hl, wd459
+ ld hl, wBattleScriptFlags
ld d, [hl]
ld [hl], $0
ld a, [wBattleResult]
and $3f
cp $1
- jr nz, .notblackedout ; 0x97466 $8
+ jr nz, .notblackedout
ld b, BANK(Script_BattleWhiteout)
ld hl, Script_BattleWhiteout
jp ScriptJump
@@ -1570,26 +1570,26 @@
.notblackedout
bit 0, d
- jr z, .was_wild ; 0x97472 $8
+ jr z, .was_wild
callba MomTriesToBuySomething
- jr .done ; 0x9747a $12
+ jr .done
.was_wild
ld a, [wBattleResult]
bit 7, a
- jr z, .done ; 0x97481 $b
+ jr z, .done
ld b, BANK(Script_SpecialBillCall)
ld de, Script_SpecialBillCall
callba LoadScriptBDE
.done
jp Script_reloadmap
-; 0x97491
+; 97491
-Script_reloadmap: ; 0x97491
+Script_reloadmap: ; 97491
; script command 0x7b
xor a
- ld [wd459], a
+ ld [wBattleScriptFlags], a
ld a, MAPSETUP_RELOADMAP
ld [hMapEntryMethod], a
ld a, $1
@@ -1596,9 +1596,9 @@
call LoadMapStatus
call StopScript
ret
-; 0x974a2
+; 974a2
-Script_2call: ; 0x974a2
+Script_scall: ; 974a2
; script command 0x0
; parameters:
; pointer (ScriptPointerLabelParam)
@@ -1610,9 +1610,9 @@
call GetScriptByte
ld d, a
jr ScriptCall
-; 0x974b0
+; 974b0
-Script_3call: ; 0x974b0
+Script_farscall: ; 974b0
; script command 0x1
; parameters:
; pointer (ScriptPointerLabelBeforeBank)
@@ -1624,9 +1624,9 @@
call GetScriptByte
ld d, a
jr ScriptCall
-; 0x974be
+; 974be
-Script_2ptcall: ; 0x974be
+Script_ptcall: ; 974be
; script command 0x2
; parameters:
; pointer (PointerLabelToScriptPointer)
@@ -1642,13 +1642,19 @@
ld d, [hl]
; fallthrough
-ScriptCall: ; 0x974cb
+ScriptCall: ; 974cb
+; Bug: The script stack has a capacity of 5 scripts, yet there is
+; nothing to stop you from pushing a sixth script. The high part
+; of the script address can then be overwritten by modifications
+; to ScriptDelay, causing the script to return to the rst/interrupt
+; space.
+
push de
- ld hl, wd43c
+ ld hl, wScriptStackSize
ld e, [hl]
inc [hl]
ld d, $0
- ld hl, wd43d
+ ld hl, wScriptStackBA1
rept 3
add hl, de
endr
@@ -1666,16 +1672,16 @@
ld a, d
ld [ScriptPos + 1], a
ret
-; 0x974f3
+; 974f3
-CallCallback:: ; 0x974f3
+CallCallback:: ; 974f3
ld a, [ScriptBank]
or $80
ld [ScriptBank], a
jp ScriptCall
-; 0x974fe
+; 974fe
-Script_2jump: ; 0x974fe
+Script_jump: ; 974fe
; script command 0x3
; parameters:
; pointer (ScriptPointerLabelParam)
@@ -1687,9 +1693,9 @@
ld a, [ScriptBank]
ld b, a
jp ScriptJump
-; 0x9750d
+; 9750d
-Script_3jump: ; 0x9750d
+Script_farjump: ; 9750d
; script command 0x4
; parameters:
; pointer (ScriptPointerLabelBeforeBank)
@@ -1701,9 +1707,9 @@
call GetScriptByte
ld h, a
jp ScriptJump
-; 0x9751c
+; 9751c
-Script_2ptjump: ; 0x9751c
+Script_ptjump: ; 9751c
; script command 0x5
; parameters:
; pointer (PointerLabelToScriptPointer)
@@ -1718,9 +1724,9 @@
ld h, [hl]
ld l, a
jp ScriptJump
-; 0x9752c
+; 9752c
-Script_iffalse: ; 0x9752c
+Script_iffalse: ; 9752c
; script command 0x8
; parameters:
; pointer (ScriptPointerLabelParam)
@@ -1728,10 +1734,10 @@
ld a, [ScriptVar]
and a
jp nz, SkipTwoScriptBytes
- jp Script_2jump
-; 0x97536
+ jp Script_jump
+; 97536
-Script_iftrue: ; 0x97536
+Script_iftrue: ; 97536
; script command 0x9
; parameters:
; pointer (ScriptPointerLabelParam)
@@ -1738,11 +1744,11 @@
ld a, [ScriptVar]
and a
- jp nz, Script_2jump
+ jp nz, Script_jump
jp SkipTwoScriptBytes
-; 0x97540
+; 97540
-Script_if_equal: ; 0x97540
+Script_if_equal: ; 97540
; script command 0x6
; parameters:
; byte (SingleByteParam)
@@ -1751,11 +1757,11 @@
call GetScriptByte
ld hl, ScriptVar
cp [hl]
- jr z, Script_2jump ; 0x97547 $b5
- jr SkipTwoScriptBytes ; 0x97549 $4b
-; 0x9754b
+ jr z, Script_jump
+ jr SkipTwoScriptBytes
+; 9754b
-Script_if_not_equal: ; 0x9754b
+Script_if_not_equal: ; 9754b
; script command 0x7
; parameters:
; byte (SingleByteParam)
@@ -1764,11 +1770,11 @@
call GetScriptByte
ld hl, ScriptVar
cp [hl]
- jr nz, Script_2jump ; 0x97552 $aa
- jr SkipTwoScriptBytes ; 0x97554 $40
-; 0x97556
+ jr nz, Script_jump
+ jr SkipTwoScriptBytes
+; 97556
-Script_if_greater_than: ; 0x97556
+Script_if_greater_than: ; 97556
; script command 0xa
; parameters:
; byte (SingleByteParam)
@@ -1778,11 +1784,11 @@
ld b, a
call GetScriptByte
cp b
- jr c, Script_2jump ; 0x9755e $9e
- jr SkipTwoScriptBytes ; 0x97560 $34
-; 0x97562
+ jr c, Script_jump
+ jr SkipTwoScriptBytes
+; 97562
-Script_if_less_than: ; 0x97562
+Script_if_less_than: ; 97562
; script command 0xb
; parameters:
; byte (SingleByteParam)
@@ -1792,20 +1798,20 @@
ld b, a
ld a, [ScriptVar]
cp b
- jr c, Script_2jump ; 0x9756a $92
- jr SkipTwoScriptBytes ; 0x9756c $28
-; 0x9756e
+ jr c, Script_jump
+ jr SkipTwoScriptBytes
+; 9756e
-Script_jumpstd: ; 0x9756e
+Script_jumpstd: ; 9756e
; script command 0xc
; parameters:
; predefined_script (MultiByteParam)
call StdScript
- jr ScriptJump ; 0x97571 $2a
-; 0x97573
+ jr ScriptJump
+; 97573
-Script_callstd: ; 0x97573
+Script_callstd: ; 97573
; script command 0xd
; parameters:
; predefined_script (MultiByteParam)
@@ -1814,9 +1820,9 @@
ld d, h
ld e, l
jp ScriptCall
-; 0x9757b
+; 9757b
-StdScript: ; 0x9757b
+StdScript: ; 9757b
call GetScriptByte
ld e, a
call GetScriptByte
@@ -1832,15 +1838,15 @@
ld a, BANK(StdScripts)
call GetFarHalfword
ret
-; 0x97596
+; 97596
-SkipTwoScriptBytes: ; 0x97596
+SkipTwoScriptBytes: ; 97596
call GetScriptByte
call GetScriptByte
ret
-; 0x9759d
+; 9759d
-ScriptJump: ; 0x9759d
+ScriptJump: ; 9759d
ld a, b
ld [ScriptBank], a
ld a, l
@@ -1848,9 +1854,9 @@
ld a, h
ld [ScriptPos + 1], a
ret
-; 0x975aa
+; 975aa
-Script_priorityjump: ; 0x975aa
+Script_priorityjump: ; 975aa
; script command 0x8d
; parameters:
; pointer (ScriptPointerLabelParam)
@@ -1864,22 +1870,23 @@
ld hl, ScriptFlags
set 3, [hl]
ret
-; 0x975c2
+; 975c2
-Script_checktriggers: ; 0x975c2
+Script_checktriggers: ; 975c2
; script command 0x13
call CheckTriggers
- jr z, .asm_975cb ; 0x975c5 $4
+ jr z, .no_triggers
ld [ScriptVar], a
ret
-.asm_975cb
+
+.no_triggers
ld a, $ff
ld [ScriptVar], a
ret
-; 0x975d1
+; 975d1
-Script_checkmaptriggers: ; 0x975d1
+Script_checkmaptriggers: ; 975d1
; script command 0x11
; parameters:
; map_group (SingleByteParam)
@@ -1892,17 +1899,18 @@
call GetMapTrigger
ld a, d
or e
- jr z, .asm_975e5 ; 0x975de $5
+ jr z, .no_triggers
ld a, [de]
ld [ScriptVar], a
ret
-.asm_975e5
+
+.no_triggers
ld a, $ff
ld [ScriptVar], a
ret
-; 0x975eb
+; 975eb
-Script_dotrigger: ; 0x975eb
+Script_dotrigger: ; 975eb
; script command 0x14
; parameters:
; trigger_id (SingleByteParam)
@@ -1911,10 +1919,10 @@
ld b, a
ld a, [MapNumber]
ld c, a
- jr Unknown_975fd ; 0x975f3 $8
-; 0x975f5
+ jr DoTrigger
+; 975f5
-Script_domaptrigger: ; 0x975f5
+Script_domaptrigger: ; 975f5
; script command 0x12
; parameters:
; map_group (MapGroupParam)
@@ -1925,20 +1933,18 @@
ld b, a
call GetScriptByte
ld c, a
- ; fallthrough
-
-Unknown_975fd: ; 0x975fd
+DoTrigger: ; 975fd
call GetMapTrigger
ld a, d
or e
- jr z, .asm_97608 ; 0x97602 $4
+ jr z, .no_trigger
call GetScriptByte
ld [de], a
-.asm_97608
+.no_trigger
ret
-; 0x97609
+; 97609
-Script_copybytetovar: ; 0x97609
+Script_copybytetovar: ; 97609
; script command 0x19
; parameters:
; address (RAMAddressParam)
@@ -1950,9 +1956,9 @@
ld a, [hl]
ld [ScriptVar], a
ret
-; 0x97616
+; 97616
-Script_copyvartobyte: ; 0x97616
+Script_copyvartobyte: ; 97616
; script command 0x1a
; parameters:
; address (RAMAddressParam)
@@ -1964,9 +1970,9 @@
ld a, [ScriptVar]
ld [hl], a
ret
-; 0x97623
+; 97623
-Script_loadvar: ; 0x97623
+Script_loadvar: ; 97623
; script command 0x1b
; parameters:
; address (RAMAddressParam)
@@ -1979,9 +1985,9 @@
call GetScriptByte
ld [hl], a
ret
-; 0x97630
+; 97630
-Script_writebyte: ; 0x97630
+Script_writebyte: ; 97630
; script command 0x15
; parameters:
; value (SingleByteParam)
@@ -1989,9 +1995,9 @@
call GetScriptByte
ld [ScriptVar], a
ret
-; 0x97637
+; 97637
-Script_addvar: ; 0x97637
+Script_addvar: ; 97637
; script command 0x16
; parameters:
; value (SingleByteParam)
@@ -2001,9 +2007,9 @@
add [hl]
ld [hl], a
ret
-; 0x97640
+; 97640
-Script_random: ; 0x97640
+Script_random: ; 97640
; script command 0x17
; parameters:
; input (SingleByteParam)
@@ -2012,28 +2018,31 @@
ld [ScriptVar], a
and a
ret z
+
ld c, a
- call Function97673
+ call .Divide256byC
and a
- jr z, .asm_9765f ; 0x9764d $10
+ jr z, .no_restriction ; 256 % b == 0
ld b, a
xor a
sub b
ld b, a
-.asm_97653
+.loop
push bc
call Random
pop bc
- ld a, [$ffe1]
+ ld a, [hRandomAdd]
cp b
- jr nc, .asm_97653 ; 0x9765b $f6
- jr .asm_97666 ; 0x9765d $7
-.asm_9765f
+ jr nc, .loop
+ jr .finish
+
+.no_restriction
push bc
call Random
pop bc
- ld a, [$ffe1]
-.asm_97666
+ ld a, [hRandomAdd]
+
+.finish
push af
ld a, [ScriptVar]
ld c, a
@@ -2041,22 +2050,22 @@
call SimpleDivide
ld [ScriptVar], a
ret
-; 0x97673
+; 97673
-Function97673: ; 0x97673
+.Divide256byC: ; 97673
xor a
ld b, a
sub c
-.asm_97676
+.mod_loop
inc b
sub c
- jr nc, .asm_97676 ; 0x97678 $fc
+ jr nc, .mod_loop
dec b
add c
ret
-; 0x9767d
+; 9767d
-Script_checkcode: ; 0x9767d
+Script_checkcode: ; 9767d
; script command 0x1c
; parameters:
; variable_id (SingleByteParam)
@@ -2066,9 +2075,9 @@
ld a, [de]
ld [ScriptVar], a
ret
-; 0x97688
+; 97688
-Script_writevarcode: ; 0x97688
+Script_writevarcode: ; 97688
; script command 0x1d
; parameters:
; variable_id (SingleByteParam)
@@ -2078,9 +2087,9 @@
ld a, [ScriptVar]
ld [de], a
ret
-; 0x97693
+; 97693
-Script_writecode: ; 0x97693
+Script_writecode: ; 97693
; script command 0x1e
; parameters:
; variable_id (SingleByteParam)
@@ -2091,27 +2100,27 @@
call GetScriptByte
ld [de], a
ret
-; 0x9769e
+; 9769e
-GetVarAction: ; 0x9769e
+GetVarAction: ; 9769e
ld c, a
callba _GetVarAction
ret
-; 0x976a6
+; 976a6
-Script_checkver: ; 0x976a6
+Script_checkver: ; 976a6
; script command 0x18
ld a, [Version]
ld [ScriptVar], a
ret
-; 0x976ad
+; 976ad
Version: ; 976ad
db VERSION
; 976ae
-Script_pokenamemem: ; 0x976ae
+Script_pokenamemem: ; 976ae
; script command 0x40
; parameters:
; pokemon (PokemonParam); leave $0 to draw from script var
@@ -2119,7 +2128,7 @@
call GetScriptByte
and a
- jr nz, .gotit ; 0x976b2 $3
+ jr nz, .gotit
ld a, [ScriptVar]
.gotit
ld [wd265], a
@@ -2126,7 +2135,7 @@
call GetPokemonName
ld de, StringBuffer1
-ConvertMemToText: ; 0x976c0
+ConvertMemToText: ; 976c0
call GetScriptByte
cp 3
jr c, .ok
@@ -2139,26 +2148,26 @@
call AddNTimes
call CopyName2
ret
-; 0x976d5
+; 976d5
-Script_itemtotext: ; 0x976d5
+Script_itemtotext: ; 976d5
; script command 0x41
; parameters:
-; item (ItemLabelByte)
+; item (ItemLabelByte); use 0 to draw from ScriptVar
; memory (SingleByteParam)
call GetScriptByte
and a
- jr nz, .ok ; 0x976d9 $3
+ jr nz, .ok
ld a, [ScriptVar]
.ok
ld [wd265], a
call GetItemName
ld de, StringBuffer1
- jr ConvertMemToText ; 0x976e7 $d7
-; 0x976e9
+ jr ConvertMemToText
+; 976e9
-Script_mapnametotext: ; 0x976e9
+Script_mapnametotext: ; 976e9
; script command 0x42
; parameters:
; memory (SingleByteParam)
@@ -2169,14 +2178,14 @@
ld c, a
call GetWorldMapLocation
-ConvertLandmarkToText: ; 0x976f4
+ConvertLandmarkToText: ; 976f4
ld e, a
callba GetLandmarkName
ld de, StringBuffer1
jp ConvertMemToText
-; 0x97701
+; 97701
-Script_displaylocation: ; 0x97701
+Script_displaylocation: ; 97701
; script command 0xa5
; parameters:
; id (SingleByteParam)
@@ -2183,10 +2192,10 @@
; memory (SingleByteParam)
call GetScriptByte
- jr ConvertLandmarkToText ; 0x97704 $ee
-; 0x97706
+ jr ConvertLandmarkToText
+; 97706
-Script_trainertotext: ; 0x97706
+Script_trainertotext: ; 97706
; script command 0x43
; parameters:
; trainer_id (TrainerGroupParam)
@@ -2198,10 +2207,10 @@
call GetScriptByte
ld b, a
callba GetTrainerName
- jr ConvertMemToText ; 0x97714 $aa
-; 0x97716
+ jr ConvertMemToText
+; 97716
-Script_name: ; 0x97716
+Script_name: ; 97716
; script command 0xa7
; parameters:
; type (SingleByteParam)
@@ -2211,15 +2220,15 @@
call GetScriptByte
ld [wNamedObjectTypeBuffer], a
-ContinueToGetName: ; 0x9771c
+ContinueToGetName: ; 9771c
call GetScriptByte
ld [CurSpecies], a
call GetName
ld de, StringBuffer1
jp ConvertMemToText
-; 0x9772b
+; 9772b
-Script_trainerclassname: ; 0x9772b
+Script_trainerclassname: ; 9772b
; script command 0xa6
; parameters:
; id (SingleByteParam)
@@ -2227,10 +2236,10 @@
ld a, TRAINER_NAME
ld [wNamedObjectTypeBuffer], a
- jr ContinueToGetName ; 0x97730 $ea
-; 0x97732
+ jr ContinueToGetName
+; 97732
-Script_readmoney: ; 0x97732
+Script_readmoney: ; 97732
; script command 0x3d
; parameters:
; account (SingleByteParam)
@@ -2243,9 +2252,9 @@
call PrintNum
ld de, StringBuffer1
jp ConvertMemToText
-; 0x97747
+; 97747
-Script_readcoins: ; 0x97747
+Script_readcoins: ; 97747
; script command 0x3e
; parameters:
; memory (SingleByteParam)
@@ -2257,9 +2266,9 @@
call PrintNum
ld de, StringBuffer1
jp ConvertMemToText
-; 0x9775c
+; 9775c
-Script_RAM2MEM: ; 0x9775c
+Script_RAM2MEM: ; 9775c
; script command 0x3f
; parameters:
; memory (SingleByteParam)
@@ -2271,17 +2280,17 @@
call PrintNum
ld de, StringBuffer1
jp ConvertMemToText
-; 0x97771
+; 97771
-ResetStringBuffer1: ; 0x97771
+ResetStringBuffer1: ; 97771
ld hl, StringBuffer1
ld bc, NAME_LENGTH
ld a, "@"
call ByteFill
ret
-; 0x9777d
+; 9777d
-Script_stringtotext: ; 0x9777d
+Script_stringtotext: ; 9777d
; script command 0x44
; parameters:
; text_pointer (EncodedTextLabelParam)
@@ -2296,9 +2305,9 @@
rst FarCall
ld de, StringBuffer2
jp ConvertMemToText
-; 0x97792
+; 97792
-Script_givepokeitem: ; 0x97792
+Script_givepokeitem: ; 97792
; script command 0x2f
; parameters:
; pointer (PointerParamToItemAndLetter)
@@ -2319,9 +2328,9 @@
pop bc
callba GivePokeItem
ret
-; 0x977b7
+; 977b7
-Script_checkpokeitem: ; 0x977b7
+Script_checkpokeitem: ; 977b7
; script command 0x30
; parameters:
; pointer (PointerParamToItemAndLetter)
@@ -2332,11 +2341,11 @@
ld d, a
ld a, [ScriptBank]
ld b, a
- callba Function44654
+ callba CheckPokeItem
ret
-; 0x977ca
+; 977ca
-Script_giveitem: ; 0x977ca
+Script_giveitem: ; 977ca
; script command 0x1f
; parameters:
; item (ItemLabelByte)
@@ -2344,7 +2353,7 @@
call GetScriptByte
cp ITEM_FROM_MEM
- jr nz, .ok ; 0x977cf $3
+ jr nz, .ok
ld a, [ScriptVar]
.ok
ld [CurItem], a
@@ -2352,7 +2361,7 @@
ld [wItemQuantityChangeBuffer], a
ld hl, NumItems
call ReceiveItem
- jr nc, .full ; 0x977e3 $6
+ jr nc, .full
ld a, $1
ld [ScriptVar], a
ret
@@ -2360,9 +2369,9 @@
xor a
ld [ScriptVar], a
ret
-; 0x977f0
+; 977f0
-Script_takeitem: ; 0x977f0
+Script_takeitem: ; 977f0
; script command 0x20
; parameters:
; item (ItemLabelByte)
@@ -2382,9 +2391,9 @@
ld a, $1
ld [ScriptVar], a
ret
-; 0x97812
+; 97812
-Script_checkitem: ; 0x97812
+Script_checkitem: ; 97812
; script command 0x21
; parameters:
; item (ItemLabelByte)
@@ -2399,9 +2408,9 @@
ld a, 1
ld [ScriptVar], a
ret
-; 0x97829
+; 97829
-Script_givemoney: ; 0x97829
+Script_givemoney: ; 97829
; script command 0x22
; parameters:
; account (SingleByteParam)
@@ -2411,9 +2420,9 @@
call LoadMoneyAmountToMem
callba GiveMoney
ret
-; 0x97836
+; 97836
-Script_takemoney: ; 0x97836
+Script_takemoney: ; 97836
; script command 0x23
; parameters:
; account (SingleByteParam)
@@ -2423,9 +2432,9 @@
call LoadMoneyAmountToMem
callba TakeMoney
ret
-; 0x97843
+; 97843
-Script_checkmoney: ; 0x97843
+Script_checkmoney: ; 97843
; script command 0x24
; parameters:
; account (SingleByteParam)
@@ -2434,9 +2443,9 @@
call GetMoneyAccount
call LoadMoneyAmountToMem
callba CompareMoney
-; 0x9784f
+; 9784f
-CompareMoneyAction: ; 0x9784f
+CompareMoneyAction: ; 9784f
jr c, .two
jr z, .one
ld a, 0
@@ -2449,9 +2458,9 @@
.done
ld [ScriptVar], a
ret
-; 0x97861
+; 97861
-GetMoneyAccount: ; 0x97861
+GetMoneyAccount: ; 97861
call GetScriptByte
and a
ld de, Money
@@ -2458,9 +2467,9 @@
ret z
ld de, wMomsMoney
ret
-; 0x9786d
+; 9786d
-LoadMoneyAmountToMem: ; 0x9786d
+LoadMoneyAmountToMem: ; 9786d
ld bc, hMoneyTemp
push bc
call GetScriptByte
@@ -2473,9 +2482,9 @@
ld [bc], a
pop bc
ret
-; 0x97881
+; 97881
-Script_givecoins: ; 0x97881
+Script_givecoins: ; 97881
; script command 0x25
; parameters:
; coins (CoinByteParam)
@@ -2483,9 +2492,9 @@
call LoadCoinAmountToMem
callba GiveCoins
ret
-; 0x9788b
+; 9788b
-Script_takecoins: ; 0x9788b
+Script_takecoins: ; 9788b
; script command 0x26
; parameters:
; coins (CoinByteParam)
@@ -2493,9 +2502,9 @@
call LoadCoinAmountToMem
callba TakeCoins
ret
-; 0x97895
+; 97895
-Script_checkcoins: ; 0x97895
+Script_checkcoins: ; 97895
; script command 0x27
; parameters:
; coins (CoinByteParam)
@@ -2512,9 +2521,9 @@
ld [hMoneyTemp], a
ld bc, hMoneyTemp
ret
-; 0x978ae
+; 978ae
-Script_checktime: ; 0x978ae
+Script_checktime: ; 978ae
; script command 0x2b
; parameters:
; time (SingleByteParam)
@@ -2528,9 +2537,9 @@
ld a, $1
ld [ScriptVar], a
ret
-; 0x978c3
+; 978c3
-Script_checkpoke: ; 0x978c3
+Script_checkpoke: ; 978c3
; script command 0x2c
; parameters:
; pkmn (PokemonParam)
@@ -2545,9 +2554,9 @@
ld a, 1
ld [ScriptVar], a
ret
-; 0x978da
+; 978da
-Script_addcellnum: ; 0x978da
+Script_addcellnum: ; 978da
; script command 0x28
; parameters:
; person (SingleByteParam)
@@ -2561,9 +2570,9 @@
ld a, $1
ld [ScriptVar], a
ret
-; 0x978ef
+; 978ef
-Script_delcellnum: ; 0x978ef
+Script_delcellnum: ; 978ef
; script command 0x29
; parameters:
; person (SingleByteParam)
@@ -2577,9 +2586,9 @@
ld a, $1
ld [ScriptVar], a
ret
-; 0x97904
+; 97904
-Script_checkcellnum: ; 0x97904
+Script_checkcellnum: ; 97904
; script command 0x2a
; parameters:
; person (SingleByteParam)
@@ -2594,9 +2603,9 @@
ld a, $1
ld [ScriptVar], a
ret
-; 0x97919
+; 97919
-Script_specialphonecall: ; 0x97919
+Script_specialphonecall: ; 97919
; script command 0x9c
; parameters:
; call_id (MultiByteParam)
@@ -2606,9 +2615,9 @@
call GetScriptByte
ld [wSpecialPhoneCallID + 1], a
ret
-; 0x97926
+; 97926
-Script_checkphonecall: ; 0x97926
+Script_checkphonecall: ; 97926
; script command 0x9d
; returns false if no special phone call is stored
@@ -2619,9 +2628,9 @@
.ok
ld [ScriptVar], a
ret
-; 0x97932
+; 97932
-Script_givepoke: ; 0x97932
+Script_givepoke: ; 97932
; script command 0x2d
; parameters:
; pokemon (PokemonParam)
@@ -2654,9 +2663,9 @@
ld a, b
ld [ScriptVar], a
ret
-; 0x97968
+; 97968
-Script_giveegg: ; 0x97968
+Script_giveegg: ; 97968
; script command 0x2e
; parameters:
; pkmn (PokemonParam)
@@ -2675,9 +2684,9 @@
ld a, 2
ld [ScriptVar], a
ret
-; 0x97988
+; 97988
-Script_setevent: ; 0x97988
+Script_setevent: ; 97988
; script command 0x33
; parameters:
; bit_number (MultiByteParam)
@@ -2689,9 +2698,9 @@
ld b, SET_FLAG
call EventFlagAction
ret
-; 0x97996
+; 97996
-Script_clearevent: ; 0x97996
+Script_clearevent: ; 97996
; script command 0x32
; parameters:
; bit_number (MultiByteParam)
@@ -2703,9 +2712,9 @@
ld b, RESET_FLAG
call EventFlagAction
ret
-; 0x979a4
+; 979a4
-Script_checkevent: ; 0x979a4
+Script_checkevent: ; 979a4
; script command 0x31
; parameters:
; bit_number (MultiByteParam)
@@ -2718,14 +2727,14 @@
call EventFlagAction
ld a, c
and a
- jr z, .false ; 0x979b3 $2
+ jr z, .false
ld a, 1
.false
ld [ScriptVar], a
ret
-; 0x979bb
+; 979bb
-Script_setflag: ; 0x979bb
+Script_setflag: ; 979bb
; script command 0x36
; parameters:
; bit_number (MultiByteParam)
@@ -2737,9 +2746,9 @@
ld b, 1 ; set
call _EngineFlagAction
ret
-; 0x979c9
+; 979c9
-Script_clearflag: ; 0x979c9
+Script_clearflag: ; 979c9
; script command 0x35
; parameters:
; bit_number (MultiByteParam)
@@ -2751,9 +2760,9 @@
ld b, 0 ; clear
call _EngineFlagAction
ret
-; 0x979d7
+; 979d7
-Script_checkflag: ; 0x979d7
+Script_checkflag: ; 979d7
; script command 0x34
; parameters:
; bit_number (MultiByteParam)
@@ -2766,35 +2775,35 @@
call _EngineFlagAction
ld a, c
and a
- jr z, .false ; 0x979e6 $2
+ jr z, .false
ld a, 1
.false
ld [ScriptVar], a
ret
-; 0x979ee
+; 979ee
-_EngineFlagAction: ; 0x979ee
+_EngineFlagAction: ; 979ee
callba EngineFlagAction
ret
-; 0x979f5
+; 979f5
-Script_wildoff: ; 0x979f5
+Script_wildoff: ; 979f5
; script command 0x38
ld hl, StatusFlags
set 5, [hl]
ret
-; 0x979fb
+; 979fb
-Script_wildon: ; 0x979fb
+Script_wildon: ; 979fb
; script command 0x37
ld hl, StatusFlags
res 5, [hl]
ret
-; 0x97a01
+; 97a01
-Script_xycompare: ; 0x97a01
+Script_xycompare: ; 97a01
; script command 0x39
; parameters:
; pointer (MultiByteParam)
@@ -2804,9 +2813,9 @@
call GetScriptByte
ld [wd454], a
ret
-; 0x97a0e
+; 97a0e
-Script_warpfacing: ; 0x97a0e
+Script_warpfacing: ; 97a0e
; script command 0xa3
; parameters:
; facing (SingleByteParam)
@@ -2824,7 +2833,7 @@
ld [wPlayerSpriteSetupFlags], a
; fall through
-Script_warp: ; 0x97a1d
+Script_warp: ; 97a1d
; script command 0x3c
; parameters:
; map_group (MapGroupParam)
@@ -2835,7 +2844,7 @@
; This seems to be some sort of error handling case.
call GetScriptByte
and a
- jr z, .not_ok ; 0x97a21 $27
+ jr z, .not_ok
ld [MapGroup], a
call GetScriptByte
ld [MapNumber], a
@@ -2864,9 +2873,9 @@
call LoadMapStatus
call StopScript
ret
-; 0x97a65
+; 97a65
-Script_warpmod: ; 0x97a65
+Script_warpmod: ; 97a65
; script command 0x3a
; parameters:
; warp_id (SingleByteParam)
@@ -2880,9 +2889,9 @@
call GetScriptByte
ld [BackupMapNumber], a
ret
-; 0x97a78
+; 97a78
-Script_blackoutmod: ; 0x97a78
+Script_blackoutmod: ; 97a78
; script command 0x3b
; parameters:
; map_group (MapGroupParam)
@@ -2893,17 +2902,17 @@
call GetScriptByte
ld [wLastSpawnMapNumber], a
ret
-; 0x97a85
+; 97a85
-Script_reloadmapmusic: ; 0x97a85
+Script_reloadmapmusic: ; 97a85
; script command 0x83
ld a, 1
ld [wc2c1], a
ret
-; 0x97a8b
+; 97a8b
-Script_writecmdqueue: ; 0x97a8b
+Script_writecmdqueue: ; 97a8b
; script command 0x7d
; parameters:
; queue_pointer (MultiByteParam)
@@ -2914,11 +2923,11 @@
ld d, a
ld a, [ScriptBank]
ld b, a
- callba Function97e31
+ callba WriteCmdQueue ; no need to farcall
ret
-; 0x97a9e
+; 97a9e
-Script_delcmdqueue: ; 0x97a9e
+Script_delcmdqueue: ; 97a9e
; script command 0x7e
; parameters:
; byte (SingleByteParam)
@@ -2927,14 +2936,14 @@
ld [ScriptVar], a
call GetScriptByte
ld b, a
- callba Function97e5c
+ callba DelCmdQueue ; no need to farcall
ret c
ld a, 1
ld [ScriptVar], a
ret
-; 0x97ab3
+; 97ab3
-Script_changemap: ; 0x97ab3
+Script_changemap: ; 97ab3
; script command 0x79
; parameters:
; map_data_pointer (MapDataPointerParam)
@@ -2948,9 +2957,9 @@
call ChangeMap
call BufferScreen
ret
-; 0x97acc
+; 97acc
-Script_changeblock: ; 0x97acc
+Script_changeblock: ; 97acc
; script command 0x7a
; parameters:
; x (SingleByteParam)
@@ -2968,35 +2977,35 @@
ld [hl], a
call BufferScreen
ret
-; 0x97ae3
+; 97ae3
-Script_reloadmappart:: ; 0x97ae3
+Script_reloadmappart:: ; 97ae3
; script command 0x7c
xor a
ld [hBGMapMode], a
call OverworldTextModeSwitch
- call Function2914
- callba Function104061
+ call GetMovementPermissions
+ callba ReloadMapPart
call UpdateSprites
ret
-; 0x97af6
+; 97af6
-Script_warpcheck: ; 0x97af6
+Script_warpcheck: ; 97af6
; script command 0x8e
call WarpCheck
ret nc
- callba SetAll_ScriptFlags3
+ callba EnableEvents
ret
-; 0x97b01
+; 97b01
-Function97b01: ; 0x97b01
- callba SetAll_ScriptFlags3
+Script_enableevents: ; unreferenced
+ callba EnableEvents
ret
-; 0x97b08
+; 97b08
-Script_newloadmap: ; 0x97b08
+Script_newloadmap: ; 97b08
; script command 0x8a
; parameters:
; which_method (SingleByteParam)
@@ -3007,23 +3016,23 @@
call LoadMapStatus
call StopScript
ret
-; 0x97b16
+; 97b16
-Script_reloadandreturn: ; 0x97b16
+Script_reloadandreturn: ; 97b16
; script command 0x92
call Script_newloadmap
jp Script_end
-; 0x97b1c
+; 97b1c
-Script_loadfont: ; 0x97b1c
+Script_loadfont: ; 97b1c
; script command 0x47
call LoadFont
ret
-; 0x97b20
+; 97b20
-Script_refreshscreen: ; 0x97b20
+Script_refreshscreen: ; 97b20
; script command 0x48
; parameters:
; dummy (SingleByteParam)
@@ -3031,9 +3040,9 @@
call ResetWindow
call GetScriptByte
ret
-; 0x97b27
+; 97b27
-Script_loadbytec1ce: ; 0x97b27
+Script_loadbytec2cf: ; 97b27
; script command 0x4a
; parameters:
; byte (SingleByteParam)
@@ -3041,7 +3050,7 @@
call GetScriptByte
ld [wc2cf], a
ret
-; 0x97b2e
+; 97b2e
LoadMoveSpritesScript: ; 97b2e
@@ -3048,16 +3057,16 @@
loadmovesprites
; 97b2f
-Script_loadmovesprites: ; 0x97b2f
+Script_loadmovesprites: ; 97b2f
; script command 0x49
call Function2e20
call LoadMoveSprites
ret
-; 0x97b36
+; 97b36
-Script_passtoengine: ; 0x97b36
+Script_passtoengine: ; 97b36
; script command 0x89
; parameters:
; data_pointer (PointerLabelBeforeBank)
@@ -3071,9 +3080,9 @@
pop af
call StartAutoInput
ret
-; 0x97b47
+; 97b47
-Script_pause: ; 0x97b47
+Script_pause: ; 97b47
; script command 0x8b
; parameters:
; length (DecimalParam)
@@ -3080,7 +3089,7 @@
call GetScriptByte
and a
- jr z, .loop ; 0x97b4b $3
+ jr z, .loop
ld [ScriptDelay], a
.loop
ld c, 2
@@ -3087,11 +3096,11 @@
call DelayFrames
ld hl, ScriptDelay
dec [hl]
- jr nz, .loop ; 0x97b59 $f5
+ jr nz, .loop
ret
-; 0x97b5c
+; 97b5c
-Script_deactivatefacing: ; 0x97b5c
+Script_deactivatefacing: ; 97b5c
; script command 0x8c
; parameters:
; time (SingleByteParam)
@@ -3098,7 +3107,7 @@
call GetScriptByte
and a
- jr z, .no_time ; 0x97b60 $3
+ jr z, .no_time
ld [ScriptDelay], a
.no_time
ld a, SCRIPT_WAIT
@@ -3105,18 +3114,18 @@
ld [ScriptMode], a
call StopScript
ret
-; 0x97b6e
+; 97b6e
-Script_ptpriorityjump: ; 0x97b6e
+Script_ptpriorityjump: ; 97b6e
; script command 0x8f
; parameters:
; pointer (ScriptPointerLabelParam)
call StopScript
- jp Script_2jump
-; 0x97b74
+ jp Script_jump
+; 97b74
-Script_end: ; 0x97b74
+Script_end: ; 97b74
; script command 0x91
call ExitScriptSubroutine
@@ -3132,9 +3141,9 @@
res 0, [hl]
call StopScript
ret
-; 0x97b8c
+; 97b8c
-Script_return: ; 0x97b8c
+Script_return: ; 97b8c
; script command 0x90
call ExitScriptSubroutine
@@ -3144,19 +3153,19 @@
res 0, [hl]
call StopScript
ret
-; 0x97b9a
+; 97b9a
-ExitScriptSubroutine: ; 0x97b9a
+ExitScriptSubroutine: ; 97b9a
; Return carry if there's no parent to return to.
- ld hl, wd43c
+ ld hl, wScriptStackSize
ld a, [hl]
and a
- jr z, .done ; 0x97b9f $1d
+ jr z, .done
dec [hl]
ld e, [hl]
ld d, $0
- ld hl, wd43d
+ ld hl, wScriptStackBA1
rept 3
add hl,de
endr
@@ -3175,13 +3184,13 @@
.done
scf
ret
-; 0x97bc0
+; 97bc0
-Script_resetfuncs: ; 0x97bc0
+Script_resetfuncs: ; 97bc0
; script command 0x93
xor a
- ld [wd43c], a
+ ld [wScriptStackSize], a
ld [ScriptRunning], a
ld a, SCRIPT_OFF
ld [ScriptMode], a
@@ -3189,9 +3198,9 @@
res 0, [hl]
call StopScript
ret
-; 0x97bd5
+; 97bd5
-Script_halloffame: ; 0x97bd5
+Script_halloffame: ; 97bd5
; script command 0xa1
ld hl, GameTimerPause
@@ -3202,9 +3211,9 @@
ld hl, GameTimerPause
set 0, [hl]
jr DisplayCredits
-; 0x97bf3
+; 97bf3
-Script_credits: ; 0x97bf3
+Script_credits: ; 97bf3
; script command 0xa2
callba RedCredits
@@ -3216,9 +3225,9 @@
call LoadMapStatus
call StopScript
ret
-; 0x97c051
+; 97c051
-Script_wait: ; 0x97c05
+Script_wait: ; 97c05
; script command 0xa8
; parameters:
; unknown (SingleByteParam)
@@ -3231,22 +3240,22 @@
call DelayFrames
pop af
dec a
- jr nz, .loop ; 0x97c11 $f6
+ jr nz, .loop
pop bc
ret
-; 0x97c15
+; 97c15
-Script_unknown0xa9: ; 0x97c15
+Script_check_save: ; 97c15
; script command 0xa9
- callba Function4cffe
+ callba CheckSave
ld a, c
ld [ScriptVar], a
ret
-; 0x97c20
+; 97c20
-Function97c20: ; 97c20 unreferenced
+; 97c20 unreferenced
ld a, [.byte]
ld [ScriptVar], a
ret
--- a/engine/selectmenu.asm
+++ b/engine/selectmenu.asm
@@ -158,7 +158,7 @@
call ResetWindow
call FadeToMenu
call DoItemEffect
- call Function2b3c
+ call ReturnToCallingMenu
call LoadMoveSprites
and a
ret
--- a/engine/slot_machine.asm
+++ b/engine/slot_machine.asm
@@ -26,11 +26,11 @@
call PlayMusic
call DelayFrame
call DisableLCD
- ld hl, VBGMap0 tile $00
+ hlbgcoord 0, 0
lb bc, 4, 0
- ld a, $7f
+ ld a, " "
call ByteFill
- ld b, $5
+ ld b, SCGB_05
call GetSGBLayout
callab Function8cf53
ld hl, wc6d0
@@ -1037,9 +1037,9 @@
call Function92fc0
push bc
push af
- ld de, $6068
- ld a, $6
- call Function3b2a
+ depixel 12, 13
+ ld a, SPRITE_ANIM_INDEX_06
+ call _InitSpriteAnimStruct
ld hl, $e
add hl, bc
pop af
@@ -1096,9 +1096,9 @@
add hl, bc
ld [hl], $0
push bc
- ld de, $6000
- ld a, $7
- call Function3b2a
+ depixel 12, 0
+ ld a, SPRITE_ANIM_INDEX_07
+ call _InitSpriteAnimStruct
pop bc
xor a
ld [wcf64], a
@@ -2063,9 +2063,9 @@
add hl, bc
dec [hl]
push bc
- ld de, $606c
- ld a, $8
- call Function3b2a
+ depixel 12, 13, 0, 4
+ ld a, SPRITE_ANIM_INDEX_08
+ call _InitSpriteAnimStruct
pop bc
ret
; 93316 (24:7316)
--- a/engine/specials.asm
+++ b/engine/specials.asm
@@ -101,7 +101,7 @@
add_special SpecialCheckPokerus
add_special Special_DisplayCoinCaseBalance
add_special Special_DisplayMoneyAndCoinBalance
- add_special Function24ae8
+ add_special PlaceMoneyTopRightOW
add_special Special_CheckForLuckyNumberWinners
add_special Special_CheckLuckyNumberShowFlag
add_special Special_ResetLuckyNumberShowFlag
@@ -108,7 +108,7 @@
add_special Special_PrintTodaysLuckyNumber
add_special Special_SelectApricornForKurt
add_special SpecialNameRater
- add_special Functionc2da
+ add_special Special_DisplayLinkRecord
add_special GetFirstPokemonHappiness
add_special CheckFirstMonIsEgg
add_special RandomPhoneRareWildMon
@@ -120,15 +120,17 @@
add_special Special_YoungerHaircutBrother
add_special Special_OlderHaircutBrother
add_special Special_DaisyMassage
- add_special Functionc472
+ add_special PlayCurMonCry
add_special ProfOaksPCBoot
add_special SpecialGameboyCheck
add_special SpecialTrainerHouse
add_special PhotoStudio
add_special InitRoamMons
- add_special Functionc48f
- add_special Functionc49f
- add_special Functionc4ac
+ add_special Special_RotatePalettesRightMusic
+ add_special Diploma
+ add_special PrintDiploma
+
+ ; Crystal
add_special Function11ac3e
add_special Function11b444
add_special Function11b5e8
@@ -151,7 +153,7 @@
add_special Function101220
add_special Function101225
add_special Function101231
- add_special Function4925b
+ add_special Special_MoveTutor
add_special SpecialOmanyteChamber
add_special Function11c1ab
add_special BattleTowerAction
@@ -160,11 +162,11 @@
add_special Function17d2b6
add_special Function17d2ce
add_special Function17f53d
- add_special Function103612
+ add_special AskMobileOrCable
add_special SpecialHoOhChamber
add_special Function102142
add_special Special_CelebiShrineEvent
- add_special Function49bf9
+ add_special CheckCaughtCelebi
add_special SpecialPokeSeer
add_special SpecialBuenasPassword
add_special SpecialBuenaPrize
@@ -172,7 +174,7 @@
add_special Special_SampleKenjiBreakCountdown
add_special SpecialBeastsCheck
add_special SpecialMonCheck
- add_special Functionc225
+ add_special Special_SetPlayerPalette
add_special Function170bd2
add_special Mobile_SelectThreeMons
add_special Function1037eb
@@ -180,12 +182,12 @@
add_special Mobile_HealParty
add_special RefreshSprites
add_special Function1037c2
- add_special Function10630f
+ add_special Mobile_DummyReturnFalse
add_special Function103780
add_special Function10387b
- add_special Function4ae12
+ add_special AskRememberPassword
add_special LoadMapPalettes
- add_special Function4a927
+ add_special FindItemInPCOrBag
add_special Special_InitialSetDSTFlag
add_special Special_InitialClearDSTFlag
add_special SpecialNone
@@ -195,10 +197,10 @@
ret
; c225
-Functionc225: ; c225
+Special_SetPlayerPalette: ; c225
ld a, [ScriptVar]
ld d, a
- callba Function57e2
+ callba SetPlayerPalette
ret
; c230
@@ -213,8 +215,8 @@
call FadeToMenu
ld a, [ScriptVar]
ld [wd265], a
- callba Functionfb877
- call Function2b4d
+ callba NewPokedexEntry
+ call ExitAllMenus
ret
; c252
@@ -285,22 +287,22 @@
Special_TownMap: ; c2c0
call FadeToMenu
- callba Function9191c
- call Function2b4d
+ callba _TownMap
+ call ExitAllMenus
ret
; c2cd
Special_UnownPrinter: ; c2cd
call FadeToMenu
- callba Function16be4
- call Function2b4d
+ callba UnownPrinter
+ call ExitAllMenus
ret
; c2da
-Functionc2da: ; c2da
+Special_DisplayLinkRecord: ; c2da
call FadeToMenu
- callba Function3f836
- call Function2b4d
+ callba DisplayLinkRecord
+ call ExitAllMenus
ret
; c2e7
@@ -307,7 +309,7 @@
Special_KrissHousePC: ; c2e7
xor a
ld [ScriptVar], a
- callba Function156d9
+ callba _KrissHousePC
ld a, c
ld [ScriptVar], a
ret
@@ -381,7 +383,7 @@
callba Functione1190
ld a, [wd0ec]
ld [ScriptVar], a
- call Function2b4d
+ call ExitAllMenus
ret
; c373
@@ -423,7 +425,7 @@
ld l, a
pop af
rst FarCall
- call Function2b4d
+ call ExitAllMenus
ret
; c3ae
@@ -586,7 +588,7 @@
db $ff
-Functionc472: ; c472
+PlayCurMonCry: ; c472
ld a, [CurPartySpecies]
jp PlayCry
; c478
@@ -614,7 +616,7 @@
ret
-Functionc48f: ; c48f
+Special_RotatePalettesRightMusic: ; c48f
ld a, MUSIC_NONE % $100
ld [MusicFadeIDLo], a
ld a, MUSIC_NONE / $100
@@ -624,17 +626,17 @@
ret
; c49f
-Functionc49f: ; c49f
+Diploma: ; c49f
call FadeToMenu
- callba Function1dd702
- call Function2b4d
+ callba _Diploma
+ call ExitAllMenus
ret
; c4ac
-Functionc4ac: ; c4ac
+PrintDiploma: ; c4ac
call FadeToMenu
- callba Function84688
- call Function2b4d
+ callba _PrintDiploma
+ call ExitAllMenus
ret
; c4b9
--- a/engine/sprites.asm
+++ b/engine/sprites.asm
@@ -1,1480 +1,3424 @@
-GetEmote2bpp: ; 1412a
- ld a, $1
- ld [rVBK], a
- call Get2bpp
- xor a
- ld [rVBK], a
+Function8cf53: ; 8cf53
+ ld hl, wc300
+ ld bc, wc3c1 - wc300
+.loop
+ ld [hl], $0
+ inc hl
+ dec bc
+ ld a, c
+ or b
+ jr nz, .loop
ret
-; 14135
+; 8cf62
-_ReplaceKrisSprite:: ; 14135
- call GetPlayerSprite
- ld a, [UsedSprites]
- ld [hUsedSpriteIndex], a
- ld a, [UsedSprites + 1]
- ld [hUsedSpriteTile], a
- call Function143c8
+Function8cf62: ; 8cf62
+ call Function8cf69
+ call DelayFrame
ret
-; 14146
+; 8cf69
-Function14146: ; 14146
- ld hl, wSpriteFlags
- ld a, [hl]
+Function8cf69: ; 8cf69
+ push hl
+ push de
+ push bc
push af
- res 7, [hl]
- set 6, [hl]
- call RunCallback_04
+
+ ld a, $0
+ ld [wc3b5], a
+ call Function8cf7a
+
pop af
- ld [wSpriteFlags], a
+ pop bc
+ pop de
+ pop hl
ret
-; 14157
+; 8cf7a
-Function14157: ; 14157
- ld hl, wSpriteFlags
+Function8cf7a: ; 8cf7a
+ ld hl, wc314
+ ld e, 10 ; There are 10 structs here.
+
+.loop
ld a, [hl]
- push af
- set 7, [hl]
- res 6, [hl]
- call RunCallback_04
- pop af
- ld [wSpriteFlags], a
- ret
-; 14168
+ and a
+ jr z, .next ; This struct is deinitialized.
+ ld c, l
+ ld b, h
+ push hl
+ push de
+ call Function8d24b ; Uses a massive jumptable
+ call Function8d04c
+ pop de
+ pop hl
+ jr c, .done
-RefreshSprites:: ; 14168
- call .Refresh
- call RunCallback_04
- ret
-; 1416f
+.next
+ ld bc, $10
+ add hl, bc
+ dec e
+ jr nz, .loop
-.Refresh: ; 1416f
+ ld a, [wc3b5]
+ ld l, a
+ ld h, Sprites / $0100
+
+.loop2 ; Clear (Sprites + [wc3b5] --> SpritesEnd)
+ ld a, l
+ cp SpritesEnd % $100
+ jr nc, .done
xor a
- ld bc, UsedSpritesEnd - UsedSprites
- ld hl, UsedSprites
- call ByteFill
- call GetPlayerSprite
- call AddMapSprites
- call LoadAndSortSprites
+ ld [hli], a
+ jr .loop2
+
+.done
ret
-; 14183
+; 8cfa8
-GetPlayerSprite: ; 14183
-; Get Chris or Kris's sprite.
- ld hl, .Chris
- ld a, [wPlayerSpriteSetupFlags]
- bit 2, a
- jr nz, .go
- ld a, [PlayerGender]
- bit 0, a
- jr z, .go
- ld hl, .Kris
+Function8cfa8: ; 8cfa8 (23:4fa8)
+ ld hl, wSpriteAnimationStructs
+ ld e, 10
-.go
- ld a, [PlayerState]
- ld c, a
.loop
- ld a, [hli]
- cp c
- jr z, .good
- inc hl
- cp $ff
+ ld a, [hl]
+ and a
+ jr z, .next
+ ld c, l
+ ld b, h
+ push hl
+ push de
+ call Function8d24b ; Uses a massive jumptable
+ call Function8d04c
+ pop de
+ pop hl
+ jr c, .done
+
+.next
+ ld bc, $10
+ add hl, bc
+ dec e
jr nz, .loop
-; Any player state not in the array defaults to Chris's sprite.
- xor a ; ld a, PLAYER_NORMAL
- ld [PlayerState], a
- ld a, SPRITE_CHRIS
- jr .finish
+ ld a, [wc3b5]
+ ld l, a
+ ld h, (Sprites + $40) / $100
-.good
- ld a, [hl]
+.loop2 ; Clear (Sprites + [wc3b5] --> Sprites + $40)
+ ld a, l
+ cp (Sprites + $40) % $100
+ jr nc, .done
+ xor a
+ ld [hli], a
+ jr .loop2
-.finish
- ld [UsedSprites + 0], a
- ld [PlayerSprite], a
- ld [PlayerObjectSprite], a
+.done
ret
-.Chris
- db PLAYER_NORMAL, SPRITE_CHRIS
- db PLAYER_BIKE, SPRITE_CHRIS_BIKE
- db PLAYER_SURF, SPRITE_SURF
- db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU
- db $ff
+InitSpriteAnimStruct:: ; 8cfd6
+; Find if there's any room in the wc314 array, which is 10x16
+ push de
+ push af
+ ld hl, wc314
+ ld e, 10
+.loop
+ ld a, [hl]
+ and a
+ jr z, .found
+ ld bc, $10
+ add hl, bc
+ dec e
+ jr nz, .loop
+; We've reached the end. There is no more room here.
+; Return carry.
+ pop af
+ pop de
+ scf
+ ret
-.Kris
- db PLAYER_NORMAL, SPRITE_KRIS
- db PLAYER_BIKE, SPRITE_KRIS_BIKE
- db PLAYER_SURF, SPRITE_SURF
- db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU
- db $ff
-; 141c9
+.found
+; Back up the structure address to bc.
+ ld c, l
+ ld b, h
+; Value [wc3b4] is initially set to -1. Set it to
+; the number of objects loaded into this array.
+ ld hl, wc3b4
+ inc [hl]
+ ld a, [hl]
+ and a
+ jr nz, .initialized
+ inc [hl]
-
-AddMapSprites: ; 141c9
- call GetMapPermission
- call CheckOutdoorMap
- jr z, .outdoor
- call AddIndoorSprites
+.initialized
+; Get row a of Unknown_8d1c4, copy the pointer into de
+ pop af
+ ld e, a
+ ld d, 0
+ ld hl, Unknown_8d1c4
+rept 3
+ add hl, de
+endr
+ ld e, l
+ ld d, h
+; Set hl to the first field (field 0) in the current structure.
+ ld hl, 0
+ add hl, bc
+; Load the index.
+ ld a, [wc3b4]
+ ld [hli], a
+; Copy the table entry to the next two fields.
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+; Look up the third field from the table in the wc300 array (10x2).
+; Take the value and load it in
+ ld a, [de]
+ call LookUpInwSpriteAnimDict
+ ld [hli], a
+ pop de
+; Set hl to field 4. Kinda pointless, because we're presumably already here.
+ ld hl, $4
+ add hl, bc
+; Load the original value of de into here.
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+; load 0 into the next four fields
+ xor a
+rept 2
+ ld [hli], a
+endr
+ xor a
+rept 2
+ ld [hli], a
+endr
+; load -1 into the next field
+ dec a
+ ld [hli], a
+; load 0 into the last five fields
+ xor a
+rept 4
+ ld [hli], a
+endr
+ ld [hl], a
+; back up the address of the first field to wc3b8
+ ld a, c
+ ld [wc3b8], a
+ ld a, b
+ ld [wc3b8 + 1], a
ret
+; 8d036
-.outdoor
- call AddOutdoorSprites
+Function8d036: ; 8d036
+; Clear the index field of the struct in bc.
+ ld hl, 0
+ add hl, bc
+ ld [hl], $0
ret
-; 141d9
+; 8d03d
-AddIndoorSprites: ; 141d9
- ld hl, Map1ObjectSprite
- ld a, 1
+Function8d03d: ; 8d03d (23:503d)
+; Clear the index field of every struct in the wc314 array.
+ ld hl, wc314
+ ld bc, $10
+ ld e, 10
+ xor a
.loop
- push af
- ld a, [hl]
- call AddSpriteGFX
- ld de, OBJECT_LENGTH
- add hl, de
- pop af
- inc a
- cp NUM_OBJECTS
+ ld [hl], a
+ add hl, bc
+ dec e
jr nz, .loop
ret
-; 141ee
-AddOutdoorSprites: ; 141ee
- ld a, [MapGroup]
- dec a
- ld c, a
- ld b, 0
- ld hl, OutdoorSprites
-rept 2
- add hl, bc
-endr
+Function8d04c: ; 8d04c
+ call Function8d0ec ; init WRAM
+ call Function8d132 ; read from a memory array
+ cp -3
+ jr z, .done
+ cp -4
+ jr z, .almost
+ call Function8d1a2 ; read from a pointer table
+ ld a, [wc3ba]
+ add [hl]
+ ld [wc3ba], a
+ inc hl
ld a, [hli]
ld h, [hl]
ld l, a
- ld c, MAX_OUTDOOR_SPRITES
-.loop
push bc
+ ld a, [wc3b5]
+ ld e, a
+ ld d, Sprites / $100
ld a, [hli]
- call AddSpriteGFX
- pop bc
+ ld c, a
+.loop
+ ld a, [wc3bc]
+ ld b, a
+ ld a, [wc3be]
+ add b
+ ld b, a
+ ld a, [wc3bf]
+ add b
+ ld b, a
+ call Function8d0be
+ add b
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [wc3bb]
+ ld b, a
+ ld a, [wc3bd]
+ add b
+ ld b, a
+ ld a, [wc3c0]
+ add b
+ ld b, a
+ call Function8d0ce
+ add b
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [wc3ba]
+ add [hl]
+ ld [de], a
+ inc hl
+ inc de
+ call Function8d0de
+ ld [de], a
+ inc hl
+ inc de
+ ld a, e
+ ld [wc3b5], a
+ cp SpritesEnd % $100
+ jr nc, .outofroom
dec c
jr nz, .loop
- ret
-; 14209
+ pop bc
+ jr .done
+.almost
+ call Function8d036
-RunCallback_04: ; 14209
- ld a, $4
- call RunMapCallback
- call Function1439b
- call Function14215
+.done
+ and a
ret
-; 14215
-Function14215: ; 14215
- ld a, [wSpriteFlags]
- bit 6, a
- ret nz
- ld c, EMOTE_08
- callba LoadEmote
- call GetMapPermission
- call CheckOutdoorMap
- ld c, EMOTE_0B
- jr z, .outdoor
- ld c, EMOTE_0A
-
-.outdoor
- callba LoadEmote
+.outofroom
+ pop bc
+ scf
ret
-; 14236
+; 8d0be
+Function8d0be: ; 8d0be
+ push hl
+ ld a, [hl]
+ ld hl, wc3b8
+ bit 6, [hl]
+ jr z, .ok
+ add $8
+ xor $ff
+ inc a
+.ok
+ pop hl
+ ret
+; 8d0ce
-SafeGetSprite: ; 14236
+Function8d0ce: ; 8d0ce
push hl
- call GetSprite
+ ld a, [hl]
+ ld hl, wc3b8
+ bit 5, [hl]
+ jr z, .ok
+ add $8
+ xor $ff
+ inc a
+
+.ok
pop hl
ret
-; 1423c
+; 8d0de
-GetSprite: ; 1423c
- call GetMonSprite
- ret c
+Function8d0de: ; 8d0de
+ ld a, [wc3b8]
+ ld b, a
+ ld a, [hl]
+ xor b
+ and $e0
+ ld b, a
+ ld a, [hl]
+ and $1f
+ or b
+ ret
+; 8d0ec
- ld hl, SpriteHeaders ; address
- dec a
- ld c, a
- ld b, 0
- ld a, 6
- call AddNTimes
- ; load the address into de
+Function8d0ec: ; 8d0ec
+ xor a
+ ld [wc3b8], a
+ ld hl, $3
+ add hl, bc
ld a, [hli]
- ld e, a
+ ld [wc3ba], a
ld a, [hli]
- ld d, a
- ; load the length into c
+ ld [wc3bb], a
ld a, [hli]
- swap a
- ld c, a
- ; load the sprite bank into both b and h
- ld b, [hl]
+ ld [wc3bc], a
ld a, [hli]
- ; load the sprite type into l
- ld l, [hl]
- ld h, a
+ ld [wc3bd], a
+ ld a, [hli]
+ ld [wc3be], a
ret
-; 14259
+; 8d109
+LookUpInwSpriteAnimDict: ; 8d109
+; a = wSpriteAnimDict[a] if a in wSpriteAnimDict else 0
+ push hl
+ push bc
+ ld hl, wSpriteAnimDict
+ ld b, a
+ ld c, 10
+.loop
+ ld a, [hli]
+ cp b
+ jr z, .ok
+ inc hl
+ dec c
+ jr nz, .loop
+ xor a
+ jr .done
-GetMonSprite: ; 14259
-; Return carry if a monster sprite was loaded.
+.ok
+ ld a, [hl]
- cp SPRITE_POKEMON
- jr c, .Normal
- cp SPRITE_DAYCARE_MON_1
- jr z, .wBreedMon1
- cp SPRITE_DAYCARE_MON_2
- jr z, .wBreedMon2
- cp SPRITE_VARS
- jr nc, .Variable
- jr .Icon
+.done
+ pop bc
+ pop hl
+ ret
+; 8d120
-.Normal
- and a
+Function8d120:: ; 8d120
+ ld hl, $1
+ add hl, bc
+ ld [hl], a
+ ld hl, $8
+ add hl, bc
+ ld [hl], $0
+ ld hl, $a
+ add hl, bc
+ ld [hl], $ff
ret
+; 8d132
-.Icon
- sub SPRITE_POKEMON
- ld e, a
- ld d, 0
- ld hl, SpriteMons
- add hl, de
+
+Function8d132: ; 8d132
+.loop
+ ld hl, $8
+ add hl, bc
ld a, [hl]
- jr .Mon
+ and a
+ jr z, .ok
+ dec [hl]
+ call Function8d189
+ ld a, [hli]
+ push af
+ jr .skip
-.wBreedMon1
- ld a, [wBreedMon1Species]
- jr .Mon
+.ok
+ ld hl, $a
+ add hl, bc
+ inc [hl]
+ call Function8d189
+ ld a, [hli]
+ cp $fe
+ jr z, .minus_2
+ cp $ff
+ jr z, .minus_1
+ push af
+ ld a, [hl]
+ push hl
+ and $3f
+ ld hl, $9
+ add hl, bc
+ add [hl]
+ ld hl, $8
+ add hl, bc
+ ld [hl], a
+ pop hl
-.wBreedMon2
- ld a, [wBreedMon2Species]
+.skip
+ ld a, [hl]
+ and $c0
+ srl a
+ ld [wc3b8], a
+ pop af
+ ret
-.Mon
- ld e, a
- and a
- jr z, .NoBreedmon
+.minus_1
+ xor a
+ ld hl, $8
+ add hl, bc
+ ld [hl], a
+ ld hl, $a
+ add hl, bc
+rept 2
+ dec [hl]
+endr
+ jr .loop
- callba Function8e82b
+.minus_2
+ xor a
+ ld hl, $8
+ add hl, bc
+ ld [hl], a
+ dec a
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+ jr .loop
+; 8d189
- ld l, 1
+Function8d189: ; 8d189
+ ; Get the [bc+10]th entry in the data table
+ ; indexed at [bc+1] in Unknown_8d6e6
+ ld hl, $1
+ add hl, bc
+ ld e, [hl]
+ ld d, 0
+ ld hl, Unknown_8d6e6
+rept 2
+ add hl, de
+endr
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $a
+ add hl, bc
+ ld l, [hl]
ld h, 0
- scf
+ add hl, hl
+ add hl, de
ret
+; 8d1a2
-.Variable
- sub SPRITE_VARS
+Function8d1a2: ; 8d1a2
ld e, a
ld d, 0
- ld hl, VariableSprites
+ ld hl, Unknown_8d94d
+rept 3
add hl, de
- ld a, [hl]
- and a
- jp nz, GetMonSprite
+endr
+ ret
+; 8d1ac
-.NoBreedmon
- ld a, 1
- ld l, 1
+Function8d1ac: ; unreferenced
+ push hl
+ ld l, a
ld h, 0
- and a
+rept 2
+ add hl, hl
+endr
+ ld de, Unknown_8e706 ; broken 2bpp pointers
+ add hl, de
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ inc hl
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ pop hl
+ push bc
+ call Request2bpp
+ pop bc
ret
-; 142a7
+; 8d1c4
+Unknown_8d1c4: ; 8d1c4
+ db $01, SPRITE_ANIM_SEQ_01, $00 ; 00
+ db $07, SPRITE_ANIM_SEQ_04, $00 ; 01
+ db $08, SPRITE_ANIM_SEQ_05, $05 ; 02
+ db $0a, SPRITE_ANIM_SEQ_06, $00 ; 03
+ db $0b, SPRITE_ANIM_SEQ_07, $06 ; 04
+ db $0c, SPRITE_ANIM_SEQ_08, $06 ; 05
+ db $0d, SPRITE_ANIM_SEQ_09, $07 ; 06
+ db $0e, SPRITE_ANIM_SEQ_0A, $07 ; 07
+ db $10, SPRITE_ANIM_SEQ_0B, $07 ; 08
+ db $08, SPRITE_ANIM_SEQ_0C, $05 ; 09
+ db $11, SPRITE_ANIM_SEQ_00, $00 ; 0a
+ db $12, SPRITE_ANIM_SEQ_0D, $08 ; 0b
+ db $12, SPRITE_ANIM_SEQ_0E, $08 ; 0c
+ db $12, SPRITE_ANIM_SEQ_0F, $08 ; 0d
+ db $13, SPRITE_ANIM_SEQ_10, $00 ; 0e
+ db $15, SPRITE_ANIM_SEQ_00, $00 ; 0f
+ db $16, SPRITE_ANIM_SEQ_11, $00 ; 10
+ db $17, SPRITE_ANIM_SEQ_12, $00 ; 11
+ db $18, SPRITE_ANIM_SEQ_12, $00 ; 12
+ db $19, SPRITE_ANIM_SEQ_13, $00 ; 13
+ db $1a, SPRITE_ANIM_SEQ_14, $00 ; 14
+ db $1b, SPRITE_ANIM_SEQ_00, $00 ; 15
+ db $1d, SPRITE_ANIM_SEQ_15, $00 ; 16
+ db $1e, SPRITE_ANIM_SEQ_00, $00 ; 17
+ db $1d, SPRITE_ANIM_SEQ_17, $00 ; 18
+ db $1f, SPRITE_ANIM_SEQ_00, $00 ; 19
+ db $24, SPRITE_ANIM_SEQ_19, $00 ; 1a
+ db $25, SPRITE_ANIM_SEQ_00, $00 ; 1b
+ db $20, SPRITE_ANIM_SEQ_13, $00 ; 1c
+ db $26, SPRITE_ANIM_SEQ_1A, $00 ; 1d
+ db $2d, SPRITE_ANIM_SEQ_00, $00 ; 1e
+ db $2e, SPRITE_ANIM_SEQ_00, $00 ; 1f
+ db $2f, SPRITE_ANIM_SEQ_00, $00 ; 20
+ db $30, SPRITE_ANIM_SEQ_00, $00 ; 21
+ db $31, SPRITE_ANIM_SEQ_00, $00 ; 22
+ db $32, SPRITE_ANIM_SEQ_1B, $00 ; 23
+ db $33, SPRITE_ANIM_SEQ_1C, $00 ; 24
+ db $34, SPRITE_ANIM_SEQ_00, $00 ; 25
+ db $35, SPRITE_ANIM_SEQ_1D, $00 ; 26
+ db $37, SPRITE_ANIM_SEQ_1E, $00 ; 27
+ db $38, SPRITE_ANIM_SEQ_1E, $00 ; 28
+ db $39, SPRITE_ANIM_SEQ_20, $00 ; 29
+ db $3f, SPRITE_ANIM_SEQ_21, $00 ; 2a
+ db $3e, SPRITE_ANIM_SEQ_22, $00 ; 2b
+ db $40, SPRITE_ANIM_SEQ_00, $00 ; 2c
+; 8d24b
-_DoesSpriteHaveFacings:: ; 142a7
-; Checks to see whether we can apply a facing to a sprite.
-; Returns carry unless the sprite is a Pokemon or a Still Sprite.
- cp SPRITE_POKEMON
- jr nc, .only_down
- push hl
- push bc
- ld hl, SpriteHeaders + SPRITEHEADER_TYPE ; type
- dec a
- ld c, a
- ld b, 0
- ld a, NUM_SPRITEHEADER_FIELDS
- call AddNTimes
- ld a, [hl]
- pop bc
- pop hl
- cp STILL_SPRITE
- jr nz, .only_down
- scf
+Function8d24b: ; 8d24b
+ ld hl, $2 ; field 2, see the second column in the above table
+ add hl, bc
+ ld e, [hl]
+ ld d, 0
+ ld hl, .Jumptable
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 8d25b
+
+
+.Jumptable: ; 8d25b (23:525b)
+ dw .zero ; town map
+ dw .one ; bouncing mon icons
+ dw .two
+ dw .three
+ dw .four
+ dw .five
+ dw .six ; Game Freak logo
+ dw .seven
+ dw .eight
+ dw .nine
+ dw .ten
+ dw .eleven
+ dw .twelve ; blinking cursor
+ dw .thirteen
+ dw .fourteen
+ dw .fifteen
+ dw .sixteen
+ dw .seventeen
+ dw .eighteen
+ dw .nineteen
+ dw .twenty
+ dw .twentyone
+ dw .twentytwo ; flying sprite
+ dw .twentythree ; flying leaves
+ dw .twentyfour
+ dw .twentyfive
+ dw .twentysix
+ dw .twentyseven
+ dw .twentyeight
+ dw .twentynine ; intro suicune
+ dw .thirty ; intro pichu wooper
+ dw .thirtyone
+ dw .thirtytwo ; intro unown
+ dw .thirtythree ; intro unown F with suicune leaping up
+ dw .thirtyfour ; intro suicune facing away from us
+
+
+.zero: ; 8d2a1 (23:52a1)
ret
-.only_down
+.one: ; 8d2a2 (23:52a2)
+ ld a, [MenuSelection2]
+ ld hl, 0
+ add hl, bc
+ cp [hl]
+ jr z, .two
+ ld hl, $4
+ add hl, bc
+ ld [hl], $10
+ ld hl, $7
+ add hl, bc
+ ld [hl], $0
+ ret
+
+.two: ; 8d2b9 (23:52b9)
+ ld hl, $4
+ add hl, bc
+ ld [hl], $18
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ ld d, a
+ inc [hl]
+ and $f
+ ret nz
+ ld hl, $d
+ add hl, bc
+ ld e, [hl]
+ ld hl, $7
+ add hl, bc
+ ld a, d
+ and $10 ; bit 4
+ jr z, .asm_8d2df
+ ld a, e
and a
+ jr z, .asm_8d2e6
+ cp $1
+ jr z, .asm_8d2e2
+.asm_8d2df
+ xor a
+ ld [hl], a
ret
-; 142c4
+.asm_8d2e2
+ ld a, $ff
+ ld [hl], a
+ ret
+.asm_8d2e6
+ ld a, $fe
+ ld [hl], a
+ ret
+.three: ; 8d2ea (23:52ea)
+ ld a, [MenuSelection2]
+ ld hl, 0
+ add hl, bc
+ cp [hl]
+ jr z, .asm_8d2fb
+ ld hl, $4
+ add hl, bc
+ ld [hl], $10
+ ret
+.asm_8d2fb
+ ld hl, $4
+ add hl, bc
+ ld [hl], $18
+ ret
-_GetSpritePalette:: ; 142c4
- ld a, c
- call GetMonSprite
- jr c, .is_pokemon
+.four: ; 8d302 (23:5302)
+ call .anonymous_jumptable
+ jp [hl]
+; 8d306 (23:5306)
- ld hl, SpriteHeaders + 5 ; palette
- dec a
- ld c, a
- ld b, 0
- ld a, 6
- call AddNTimes
- ld c, [hl]
+; Anonymous jumptable (see .anonymous_jumptable)
+ dw .four_zero
+ dw .four_one
+; 8d30a
+
+.four_zero: ; 8d30a
+ call .asm_8d6d8
+ ld hl, 0
+ add hl, bc
+ ld a, [hl]
+ ld hl, $d
+ add hl, bc
+ and $3
+ ld [hl], a
+ inc [hl]
+ swap a
+ ld hl, $c
+ add hl, bc
+ ld [hl], a
+
+.four_one: ; 8d321
+ ld hl, $4
+ add hl, bc
+ ld a, [hl]
+ cp $a4
+ jr nc, .asm_8d356
+ ld hl, $d
+ add hl, bc
+ add $4
+ ld hl, $4
+ add hl, bc
+ ld [hl], a
+ ld hl, $5
+ add hl, bc
+ inc [hl]
+ ld hl, $d
+ add hl, bc
+ ld a, [hl]
+ sla a
+ sla a
+ ld d, $2
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ add $3
+ ld [hl], a
+ call .asm_8d6de
+ ld hl, $7
+ add hl, bc
+ ld [hl], a
ret
-.is_pokemon
- xor a
- ld c, a
+.asm_8d356
+ call Function8d036
ret
-; 142db
+; 8d35a
+.twentyfive: ; 8d35a (23:535a)
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ inc a
+ ld [hl], a
+ ld d, $2
+ call .asm_8d6de
+ ld hl, $7
+ add hl, bc
+ ld [hl], a
+ ret
-LoadAndSortSprites: ; 142db
- call LoadSpriteGFX
- call SortUsedSprites
- call ArrangeUsedSprites
+.five: ; 8d36c (23:536c)
+ callab Function11a3b
ret
-; 142e5
+.twelve: ; 8d373 (23:5373)
+ callab Function120c1
+ ret
-AddSpriteGFX: ; 142e5
-; Add any new sprite ids to a list of graphics to be loaded.
-; Return carry if the list is full.
+.six: ; 8d37a (23:537a)
+ callab GameFreakLogoJumper
+ ret
- push hl
- push bc
- ld b, a
- ld hl, UsedSprites + 2
- ld c, SPRITE_GFX_LIST_CAPACITY - 1
-.loop
+.seven: ; 8d381 (23:5381)
+ ld hl, $c
+ add hl, bc
ld a, [hl]
- cp b
- jr z, .exists
and a
- jr z, .new
+ jr z, .asm_8d3ba
rept 2
- inc hl
+ dec [hl]
endr
- dec c
- jr nz, .loop
+ ld d, a
+ and $1f
+ jr nz, .asm_8d395
+ ld hl, $d
+ add hl, bc
+ dec [hl]
+.asm_8d395
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ push af
+ push de
+ call .asm_8d6de
+ ld hl, $7
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call .asm_8d6e2
+ ld hl, $6
+ add hl, bc
+ ld [hl], a
+ ld hl, $d
+ add hl, bc
+ ld a, [hl]
+ ld hl, $b
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ret
+.asm_8d3ba
+ ld a, $1
+ ld [wcf64], a
+ call Function8d036
+ ret
- pop bc
- pop hl
- scf
+.eight: ; 8d3c3 (23:53c3)
+ ld hl, $c
+ add hl, bc
+ ld a, [hli]
+ or [hl]
+ jr z, .asm_8d41e
+ ld hl, $f
+ add hl, bc
+ ld d, [hl]
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ push af
+ push de
+ call .asm_8d6de
+ ld hl, $7
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call .asm_8d6e2
+ ld hl, $6
+ add hl, bc
+ ld [hl], a
+ ld hl, $c
+ add hl, bc
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $e
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $e
+ add hl, bc
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld hl, $c
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, -$10
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $c
+ add hl, bc
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ xor $20
+ ld [hl], a
ret
+.asm_8d41e
+ call Function8d036
+ ret
-.exists
- pop bc
- pop hl
- and a
+.nine: ; 8d422 (23:5422)
+ callab Function9321d
ret
-.new
- ld [hl], b
- pop bc
- pop hl
- and a
+.ten: ; 8d429 (23:5429)
+ callab Function932ac
+ ld hl, wcf64
+ ld a, [hl]
+ cp $2
+ ret nz
+ ld [hl], $3
+ ld a, $f
+ call Function8d120
ret
-; 14306
+.eleven: ; 8d43e (23:543e)
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ ld e, a
+ and $1
+ jr z, .asm_8d462
+ ld hl, $4
+ add hl, bc
+ ld a, [hl]
+ cp $78
+ jr c, .asm_8d461
+ call Function8d036
+ ld a, $4
+ ld [wcf64], a
+ ld de, SFX_PLACE_PUZZLE_PIECE_DOWN
+ call PlaySFX
+ ret
+.asm_8d461
+ inc [hl]
+.asm_8d462
+ ld a, e
+ ld d, $20
+ call .asm_8d6de
+ ld hl, $7
+ add hl, bc
+ ld [hl], a
+ ret
-LoadSpriteGFX: ; 14306
-; Bug: b is not preserved, so
-; it's useless as a next count.
+.thirteen: ; 8d46e (23:546e)
+ callab Functione00ed
+ ret
- ld hl, UsedSprites
- ld b, SPRITE_GFX_LIST_CAPACITY
-.loop
- ld a, [hli]
- and a
- jr z, .done
- push hl
- call .LoadSprite
- pop hl
- ld [hli], a
- dec b
- jr nz, .loop
+.fifteen: ; 8d475 (23:5475)
+ callab Function90d41
+ ret
-.done
+.fourteen: ; 8d47c (23:547c)
+ callab Functione21a1
ret
-.LoadSprite
- call GetSprite
- ld a, l
+.sixteen: ; 8d483 (23:5483)
+ call .anonymous_jumptable
+ jp [hl]
+; 8d487 (23:5487)
+
+; Anonymous jumptable (see .anonymous_jumptable)
+ dw .sixteen_zero
+ dw .sixteen_one
+ dw .sixteen_two
+ dw .sixteen_three
+ dw .sixteen_four
+ dw .sixteen_five
+; 8d493
+
+.sixteen_zero: ; 8d493
+ ld a, $14
+ call Function8d120
+ ld hl, $b
+ add hl, bc
+ ld [hl], $2
+ ld hl, $c
+ add hl, bc
+ ld [hl], $20
ret
-; 1431e
+; 8d4a5
+.sixteen_two: ; 8d4a5
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_8d4af
+ dec [hl]
+ ret
-SortUsedSprites: ; 1431e
-; Bubble-sort sprites by type.
+.asm_8d4af
+ call .asm_8d6d8
+ ld hl, $c
+ add hl, bc
+ ld [hl], $40
-; Run backwards through UsedSprites to find the last one.
+.sixteen_three: ; 8d4b8
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ cp $30
+ jr c, .asm_8d4cd
+ dec [hl]
+ ld d, $28
+ call .asm_8d6de
+ ld hl, $7
+ add hl, bc
+ ld [hl], a
+ ret
- ld c, SPRITE_GFX_LIST_CAPACITY
- ld de, UsedSprites + (SPRITE_GFX_LIST_CAPACITY - 1) * 2
-.FindLastSprite
- ld a, [de]
+.asm_8d4cd
+ ld de, SFX_GOT_SAFARI_BALLS
+ call PlaySFX
+ jr .sixteen_five
+; 8d4d5
+
+.sixteen_one: ; 8d4d5
+ ld hl, $b
+ add hl, bc
+ ld [hl], $4
+ ld hl, $c
+ add hl, bc
+ ld [hl], $30
+ ld hl, $d
+ add hl, bc
+ ld [hl], $24
+ ret
+; 8d4e8
+
+.sixteen_four: ; 8d4e8
+ ld hl, $d
+ add hl, bc
+ ld a, [hl]
and a
- jr nz, .FoundLastSprite
+ jr z, .asm_8d51c
+ ld d, a
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ call Function8e72c
+ ld hl, $7
+ add hl, bc
+ ld [hl], a
+ ld hl, $c
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $3f
+ ret nz
+ ld hl, $c
+ add hl, bc
+ ld [hl], $20
+ ld hl, $d
+ add hl, bc
+ ld a, [hl]
+ sub $c
+ ld [hl], a
+ ld de, SFX_SWITCH_POKEMON
+ call PlaySFX
+ ret
+
+.asm_8d51c
+ xor a
+ ld hl, $7
+ add hl, bc
+ ld [hl], a
+ call .asm_8d6d8
+ ret
+
+.sixteen_five: ; 8d526
+ call Function8d036
+ ret
+; 8d52a
+
+.seventeen: ; 8d52a (23:552a)
+ ld hl, $4
+ add hl, bc
+ ld a, [hl]
rept 2
- dec de
+ inc [hl]
endr
- dec c
- jr nz, .FindLastSprite
-.FoundLastSprite
- dec c
- jr z, .quit
+ cp $b0
+ jr nc, .asm_8d53f
+ and $3
+ ret nz
+ ld de, SFX_POKEBALLS_PLACED_ON_TABLE
+ call PlaySFX
+ ret
-; If the length of the current sprite is
-; higher than a later one, swap them.
+.asm_8d53f
+ call Function8d036
+ ret
- inc de
- ld hl, UsedSprites + 1
+.eighteen: ; 8d543 (23:5543)
+ callab Function29676
+ ret
-.CheckSprite
- push bc
+.nineteen: ; 8d54a (23:554a)
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ cp $80
+ jr nc, .asm_8d574
+ ld d, a
+ add $8
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ xor $20
+ ld [hl], a
+ push af
push de
- push hl
+ call .asm_8d6de
+ ld hl, $7
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call .asm_8d6e2
+ ld hl, $6
+ add hl, bc
+ ld [hl], a
+ ret
+.asm_8d574
+ call Function8d036
+ ret
-.CheckFollowing
- ld a, [de]
- cp [hl]
- jr nc, .loop
+.twenty: ; 8d578 (23:5578)
+ callab Function91640
+ ret
-; Swap the two sprites.
+.twentyone: ; 8d57f (23:557f)
+ ld hl, $d
+ add hl, bc
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $80
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $d
+ add hl, bc
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+rept 3
+ inc [hl]
+endr
+ push af
+ push de
+ call .asm_8d6de
+ ld hl, $7
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call .asm_8d6e2
+ ld hl, $6
+ add hl, bc
+ ld [hl], a
+ ret
- ld b, a
+.twentytwo: ; 8d5b0 (23:55b0)
+ ld hl, $5
+ add hl, bc
ld a, [hl]
- ld [hl], b
- ld [de], a
- dec de
- dec hl
- ld a, [de]
- ld b, a
+ and a
+ ret z
+ ld hl, $d
+ add hl, bc
ld a, [hl]
- ld [hl], b
- ld [de], a
- inc de
- inc hl
+ inc [hl]
+ cp $40
+ ret c
+ ld hl, $5
+ add hl, bc
+rept 2
+ dec [hl]
+endr
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ ld d, a
+ cp $40
+ jr nc, .asm_8d5d3
+ add $8
+ ld [hl], a
+.asm_8d5d3
+ ld hl, $e
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ call .asm_8d6e2
+ ld hl, $6
+ add hl, bc
+ ld [hl], a
+ ret
-; Keep doing this until everything's in order.
-
-.loop
+.twentythree: ; 8d5e2 (23:55e2)
+ ld hl, $4
+ add hl, bc
+ ld a, [hl]
+ cp $b8
+ jr nc, .asm_8d603
rept 2
- dec de
+ inc [hl]
endr
- dec c
- jr nz, .CheckFollowing
+ ld hl, $5
+ add hl, bc
+ dec [hl]
+ ld d, $40
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ call .asm_8d6e2
+ ld hl, $6
+ add hl, bc
+ ld [hl], a
+ ret
+.asm_8d603
+ call Function8d036
+ ret
- pop hl
+.twentyfour: ; 8d607 (23:5607)
+ ld hl, $5
+ add hl, bc
+ ld a, [hl]
+ cp $54
+ ret z
+ ld hl, $5
+ add hl, bc
rept 2
- inc hl
+ inc [hl]
endr
- pop de
- pop bc
- dec c
- jr nz, .CheckSprite
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ ld d, a
+ and a
+ jr z, .asm_8d621
+ sub $2
+ ld [hl], a
+.asm_8d621
+ ld hl, $e
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ call .asm_8d6e2
+ ld hl, $6
+ add hl, bc
+ ld [hl], a
+ ret
-.quit
+.twentyseven: ; 8d630 (23:5630)
+ callba Function108bc7
ret
-; 14355
+.twentyeight: ; 8d637 (23:5637)
+ callba Function108be0
+ ret
-ArrangeUsedSprites: ; 14355
-; Get the length of each sprite and space them out in VRAM.
-; Crystal introduces a second table in VRAM bank 0.
-
- ld hl, UsedSprites
- ld c, SPRITE_GFX_LIST_CAPACITY
- ld b, 0
-.FirstTableLength
-; Keep going until the end of the list.
- ld a, [hli]
+.twentynine: ; 8d63e (23:563e)
+ ld a, [wcf65]
and a
- jr z, .quit
+ jr nz, .asm_8d645
+ ret
+.asm_8d645
+ ld hl, $7
+ add hl, bc
+ ld [hl], $0
+ ld hl, $d
+ add hl, bc
+ ld a, [hl]
+ add $2
+ ld [hl], a
+ xor $ff
+ inc a
+ ld d, $20
+ call .asm_8d6de
+ ld hl, $7
+ add hl, bc
+ ld [hl], a
+ ld a, $36
+ call Function8d120
+ ret
+.thirty: ; 8d666 (23:5666)
+ ld hl, $c
+ add hl, bc
ld a, [hl]
- call GetSpriteLength
+ cp $14
+ jr nc, .asm_8d67f
+ add $2
+ ld [hl], a
+ xor $ff
+ inc a
+ ld d, $20
+ call .asm_8d6de
+ ld hl, $7
+ add hl, bc
+ ld [hl], a
+.asm_8d67f
+ ret
-; Spill over into the second table after $80 tiles.
- add b
- cp $80
- jr z, .loop
- jr nc, .SecondTable
+.thirtytwo: ; 8d680 (23:5680)
+ ld hl, $b
+ add hl, bc
+ ld d, [hl]
+rept 3
+ inc [hl]
+endr
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ push af
+ push de
+ call .asm_8d6de
+ ld hl, $7
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call .asm_8d6e2
+ ld hl, $6
+ add hl, bc
+ ld [hl], a
+ ret
-.loop
- ld [hl], b
+.thirtythree: ; 8d6a2 (23:56a2)
+ ld a, [wcf64]
+ cp $40
+ ret nz
+ ld a, $3d
+ call Function8d120
+ ret
+
+.thirtyfour: ; 8d6ae (23:56ae)
+ ld hl, $5
+ add hl, bc
+ ld a, [hl]
+ add $10
+ ld [hl], a
+ ret
+
+.twentysix: ; 8d6b7 (23:56b7)
+ callba Function11d0b6
+ ret
+
+.thirtyone: ; 8d6be (23:56be)
+ callba Function49aa2
+ ret
+
+.anonymous_jumptable: ; 8d6c5 (23:56c5)
+ ld hl, [sp+$0]
+ ld e, [hl]
inc hl
- ld b, a
+ ld d, [hl]
+ inc de
+ ld hl, $b
+ add hl, bc
+ ld l, [hl]
+ ld h, $0
+ add hl, hl
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+; 8d6d8 (23:56d8)
-; Assumes the next table will be reached before c hits 0.
- dec c
- jr nz, .FirstTableLength
+.asm_8d6d8: ; 8d6d8
+ ld hl, $b
+ add hl, bc
+ inc [hl]
+ ret
+; 8d6de
-.SecondTable
-; The second tile table starts at tile $80.
- ld b, $80
- dec hl
-.SecondTableLength
-; Keep going until the end of the list.
- ld a, [hli]
- and a
- jr z, .quit
+.asm_8d6de: ; 8d6de (23:56de)
+ call Function8e72c
+ ret
+
+.asm_8d6e2: ; 8d6e2 (23:56e2)
+ call Function8e72a
+ ret
+; 8d6e6 (23:56e6)
+
+Unknown_8d6e6: ; 8d6e6
+ dw Unknown_8d76a
+ dw Unknown_8d76d
+ dw Unknown_8d772
+ dw Unknown_8d777
+ dw Unknown_8d77c
+ dw Unknown_8d781
+ dw Unknown_8d786
+ dw Unknown_8d7a6
+ dw Unknown_8d7ab
+ dw Unknown_8d7b0
+ dw Unknown_8d7b5
+ dw Unknown_8d7d4
+ dw Unknown_8d7d9
+ dw Unknown_8d7e2
+ dw Unknown_8d7eb
+ dw Unknown_8d7f4
+ dw Unknown_8d7ff
+ dw Unknown_8d78b
+ dw Unknown_8d802
+ dw Unknown_8d805
+ dw Unknown_8d808
+ dw Unknown_8d811
+ dw Unknown_8d818
+ dw Unknown_8d81d
+ dw Unknown_8d822
+ dw Unknown_8d825
+ dw Unknown_8d82c
+ dw Unknown_8d82f
+ dw Unknown_8d861
+ dw Unknown_8d864
+ dw Unknown_8d867
+ dw Unknown_8d874
+ dw Unknown_8d877
+ dw Unknown_8d87a
+ dw Unknown_8d87d
+ dw Unknown_8d880
+ dw Unknown_8d883
+ dw Unknown_8d890
+ dw Unknown_8d899
+ dw Unknown_8d89c
+ dw Unknown_8d89f
+ dw Unknown_8d8a2
+ dw Unknown_8d8a5
+ dw Unknown_8d8a8
+ dw Unknown_8d8ab
+ dw Unknown_8d794
+ dw Unknown_8d79d
+ dw Unknown_8d8ae
+ dw Unknown_8d8cd
+ dw Unknown_8d8ec
+ dw Unknown_8d8f1
+ dw Unknown_8d8f4
+ dw Unknown_8d8f7
+ dw Unknown_8d8fe
+ dw Unknown_8d907
+ dw Unknown_8d90c
+ dw Unknown_8d913
+ dw Unknown_8d916
+ dw Unknown_8d91d
+ dw Unknown_8d924
+ dw Unknown_8d92b
+ dw Unknown_8d932
+ dw Unknown_8d93d
+ dw Unknown_8d940
+ dw Unknown_8d943
+ dw Unknown_8d948
+; 8d76a
+
+Unknown_8d76a: dw $2000
+ db -1
+Unknown_8d76d: dw $0800, $0801
+ db -2
+Unknown_8d772: dw $083d, $083e
+ db -2
+Unknown_8d777: dw $083f, $0840
+ db -2
+Unknown_8d77c: dw $0400, $0401
+ db -2
+Unknown_8d781: dw $043d, $043e
+ db -2
+Unknown_8d786: dw $043f, $0440
+ db -2
+Unknown_8d78b: dw $0800, $0801, $0800, $4801
+ db -2
+Unknown_8d794: dw $0863, $0864, $0863, $4864
+ db -2
+Unknown_8d79d: dw $0865, $0866, $0865, $4866
+ db -2
+Unknown_8d7a6: dw $011e, $011f
+ db -2
+Unknown_8d7ab: dw $0120, $01fd
+ db -2
+Unknown_8d7b0: dw $0121, $01fd
+ db -2
+Unknown_8d7b5: dw $0c81, $0182, $0183, $0482, $0c81, $0c82, $0483, $2084, $0385, $0386, $0487, $0488, $0489, $0a8a, $078b
+ db -1
+Unknown_8d7d4: dw $0323, $8323
+ db -2
+Unknown_8d7d9: dw $0224, $0225, $0226, $0225
+ db -2
+Unknown_8d7e2: dw $0727, $0728, $8727, $4728
+ db -2
+Unknown_8d7eb: dw $0729, $072a, $0729, $072b
+ db -2
+Unknown_8d7f4: dw $0729, $072c, $072d, $072c, $0729
+ db -1
+Unknown_8d7ff: dw $142e
+ db -1
+Unknown_8d802: dw $202f
+ db -1
+Unknown_8d805: dw $2030
+ db -1
+Unknown_8d808: dw $0330, $0331, $0330, $4331
+ db -2
+Unknown_8d811: dw $0432, $0433, $0434
+ db -4
+Unknown_8d818: dw $0335, $0336
+ db -2
+Unknown_8d81d: dw $0737, $0738
+ db -2
+Unknown_8d822: dw $2039
+ db -1
+Unknown_8d825: dw $023b, $023a, $023b
+ db -1
+Unknown_8d82c: dw $203c
+ db -1
+Unknown_8d82f: dw $0841, $0842, $0841, $4842
+ db -2
+ dw $0843, $0844
+ db -2
+ dw $0845, $0846
+ db -2
+ dw $0847, $0848
+ db -2
+ dw $0149, $4149, $c149, $8149
+ db -2
+ dw $204a
+ db -1
+ dw $204b
+ db -1
+ dw $204c
+ db -1
+ dw $204d
+ db -1
+ dw $034e, $03fd
+ db -2
+Unknown_8d861: dw $20fd
+ db -1
+Unknown_8d864: dw $204f
+ db -1
+Unknown_8d867: dw $0250, $1051, $01fd, $0152, $01fd, $0153
+ db -4
+Unknown_8d874: dw $2054
+ db -1
+Unknown_8d877: dw $2055
+ db -1
+Unknown_8d87a: dw $6055
+ db -1
+Unknown_8d87d: dw $a055
+ db -1
+Unknown_8d880: dw $e055
+ db -1
+Unknown_8d883: dw $0a56, $0957, $0a58, $0a59, $0958, $0a5a
+ db -2
+Unknown_8d890: dw $0250, $025b, $0250, $425b
+ db -2
+Unknown_8d899: dw $025c
+ db -1
+Unknown_8d89c: dw $025d
+ db -1
+Unknown_8d89f: dw $025e
+ db -1
+Unknown_8d8a2: dw $025f
+ db -1
+Unknown_8d8a5: dw $0260
+ db -1
+Unknown_8d8a8: dw $0261
+ db -1
+Unknown_8d8ab: dw $0262
+ db -1
+Unknown_8d8ae: dw $0332, $0333, $0334, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331
+ db -1
+Unknown_8d8cd: dw $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0332, $0333, $0334
+ db -4
+Unknown_8d8ec: dw $0367, $0368
+ db -2
+Unknown_8d8f1: dw $036c
+ db -1
+Unknown_8d8f4: dw $036d
+ db -1
+Unknown_8d8f7: dw $0269, $026a, $026b
+ db -4
+Unknown_8d8fe: dw $036e, $036f, $0370, $0371
+ db -2
+Unknown_8d907: dw $0371, $076e
+ db -1
+Unknown_8d90c: dw $2072, $0773, $0774
+ db -1
+Unknown_8d913: dw $0375
+ db -1
+Unknown_8d916: dw $0376, $0377, $0778
+ db -4
+Unknown_8d91d: dw $4376, $4377, $4778
+ db -4
+Unknown_8d924: dw $8376, $8377, $8778
+ db -4
+Unknown_8d92b: dw $c376, $c377, $c778
+ db -4
+Unknown_8d932: dw $0379, $037a, $037b, $077c, $077d
+ db -1
+Unknown_8d93d: dw $037e
+ db -1
+Unknown_8d940: dw $00fd
+ db -1
+Unknown_8d943: dw $087f, $0880
+ db -1
+Unknown_8d948: dw $487f, $4880
+ db -1
+; 8d94d
+
+Unknown_8d94d: ; 8d94d
+ dbw $00, Unknown_8dd8a ; 00
+ dbw $04, Unknown_8dd8a ; 01
+ dbw $4c, Unknown_8daf1 ; 02
+ dbw $5c, Unknown_8daf1 ; 03
+ dbw $6c, Unknown_8daf6 ; 04
+ dbw $6e, Unknown_8daf6 ; 05
+ dbw $2d, Unknown_8ddf0 ; 06
+ dbw $4d, Unknown_8ddf0 ; 07
+ dbw $60, Unknown_8de09 ; 08
+ dbw $00, Unknown_8de09 ; 09
+ dbw $00, Unknown_8de09 ; 0a
+ dbw $06, Unknown_8de09 ; 0b
+ dbw $0c, Unknown_8de7e ; 0c
+ dbw $0d, Unknown_8daf1 ; 0d
+ dbw $00, Unknown_8dc53 ; 0e
+ dbw $04, Unknown_8dc53 ; 0f
+ dbw $08, Unknown_8dc53 ; 10
+ dbw $40, Unknown_8dc53 ; 11
+ dbw $44, Unknown_8dc53 ; 12
+ dbw $48, Unknown_8dc53 ; 13
+ dbw $4c, Unknown_8dc53 ; 14
+ dbw $80, Unknown_8de87 ; 15
+ dbw $85, Unknown_8de87 ; 16
+ dbw $8a, Unknown_8de87 ; 17
+ dbw $00, Unknown_8db29 ; 18
+ dbw $01, Unknown_8db5c ; 19
+ dbw $09, Unknown_8db9d ; 1a
+ dbw $10, Unknown_8dc94 ; 1b
+ dbw $29, Unknown_8dc94 ; 1c
+ dbw $42, Unknown_8dc94 ; 1d
+ dbw $f8, Unknown_8e17e ; 1e
+ dbw $fa, Unknown_8e17e ; 1f
+ dbw $00, Unknown_8deb2 ; 20
+ dbw $00, Unknown_8dec3 ; 21
+ dbw $00, Unknown_8deec ; 22
+ dbw $0f, Unknown_8db07 ; 23
+ dbw $11, Unknown_8daf1 ; 24
+ dbw $12, Unknown_8daf1 ; 25
+ dbw $13, Unknown_8daf1 ; 26
+ dbw $00, Unknown_8df29 ; 27
+ dbw $08, Unknown_8df29 ; 28
+ dbw $10, Unknown_8df42 ; 29
+ dbw $10, Unknown_8df5b ; 2a
+ dbw $10, Unknown_8df74 ; 2b
+ dbw $10, Unknown_8df8d ; 2c
+ dbw $10, Unknown_8dfa6 ; 2d
+ dbw $3a, Unknown_8daf1 ; 2e
+ dbw $00, Unknown_8dd8a ; 2f
+ dbw $00, Unknown_8db18 ; 30
+ dbw $02, Unknown_8dd9b ; 31
+ dbw $06, Unknown_8db5c ; 32
+ dbw $0a, Unknown_8db5c ; 33
+ dbw $0e, Unknown_8db5c ; 34
+ dbw $12, Unknown_8db3a ; 35
+ dbw $13, Unknown_8db3a ; 36
+ dbw $00, Unknown_8dd8a ; 37
+ dbw $04, Unknown_8dd8a ; 38
+ dbw $10, Unknown_8db5c ; 39
+ dbw $00, Unknown_8dd9b ; 3a
+ dbw $04, Unknown_8daf1 ; 3b
+ dbw $00, Unknown_8dfbf ; 3c
+ dbw $00, Unknown_8ddac ; 3d
+ dbw $00, Unknown_8ddbd ; 3e
+ dbw $00, Unknown_8ddce ; 3f
+ dbw $00, Unknown_8dddf ; 40
+ dbw $00, Unknown_8dd9b ; 41
+ dbw $04, Unknown_8dd9b ; 42
+ dbw $00, Unknown_8dc2e ; 43
+ dbw $30, Unknown_8dc2e ; 44
+ dbw $03, Unknown_8dc2e ; 45
+ dbw $33, Unknown_8dc2e ; 46
+ dbw $06, Unknown_8dc2e ; 47
+ dbw $36, Unknown_8dc2e ; 48
+ dbw $09, Unknown_8dc2e ; 49
+ dbw $39, Unknown_8dc2e ; 4a
+ dbw $0c, Unknown_8dfcc ; 4b
+ dbw $0c, Unknown_8dfe5 ; 4c
+ dbw $3c, Unknown_8daf1 ; 4d
+ dbw $3e, Unknown_8daf1 ; 4e
+ dbw $00, Unknown_8de9c ; 4f
+ dbw $00, Unknown_8dea1 ; 50
+ dbw $00, Unknown_8dff6 ; 51
+ dbw $00, Unknown_8e007 ; 52
+ dbw $00, Unknown_8e018 ; 53
+ dbw $00, Unknown_8daf1 ; 54
+ dbw $01, Unknown_8daf1 ; 55
+ dbw $00, Unknown_8e029 ; 56
+ dbw $00, Unknown_8e076 ; 57
+ dbw $00, Unknown_8e0b7 ; 58
+ dbw $00, Unknown_8e0f4 ; 59
+ dbw $00, Unknown_8e139 ; 5a
+ dbw $04, Unknown_8dea1 ; 5b
+ dbw $00, Unknown_8e183 ; 5c
+ dbw $00, Unknown_8e1b4 ; 5d
+ dbw $00, Unknown_8e1b9 ; 5e
+ dbw $00, Unknown_8e1ca ; 5f
+ dbw $00, Unknown_8e1eb ; 60
+ dbw $00, Unknown_8e1f0 ; 61
+ dbw $00, Unknown_8e1f9 ; 62
+ dbw $00, Unknown_8e202 ; 63
+ dbw $04, Unknown_8e202 ; 64
+ dbw $00, Unknown_8e213 ; 65
+ dbw $04, Unknown_8e213 ; 66
+ dbw $20, Unknown_8e224 ; 67
+ dbw $21, Unknown_8e224 ; 68
+ dbw $22, Unknown_8e24b ; 69
+ dbw $23, Unknown_8e25c ; 6a
+ dbw $27, Unknown_8e27d ; 6b
+ dbw $2a, Unknown_8e229 ; 6c
+ dbw $2a, Unknown_8e23a ; 6d
+ dbw $00, Unknown_8e2ae ; 6e
+ dbw $08, Unknown_8e33f ; 6f
+ dbw $60, Unknown_8e3b0 ; 70
+ dbw $68, Unknown_8e429 ; 71
+ dbw $00, Unknown_8e4a6 ; 72
+ dbw $05, Unknown_8e4a6 ; 73
+ dbw $0a, Unknown_8e4a6 ; 74
+ dbw $50, Unknown_8e50b ; 75
+ dbw $00, Unknown_8e54c ; 76
+ dbw $01, Unknown_8e551 ; 77
+ dbw $04, Unknown_8e55e ; 78
+ dbw $00, Unknown_8db29 ; 79
+ dbw $01, Unknown_8e57b ; 7a
+ dbw $03, Unknown_8e59c ; 7b
+ dbw $08, Unknown_8e5cd ; 7c
+ dbw $1c, Unknown_8e5cd ; 7d
+ dbw $80, Unknown_8e61e ; 7e
+ dbw $00, Unknown_8e66f ; 7f
+ dbw $04, Unknown_8e66f ; 80
+ dbw $d0, Unknown_8e680 ; 81
+ dbw $d3, Unknown_8e680 ; 82
+ dbw $d6, Unknown_8e680 ; 83
+ dbw $6c, Unknown_8e6a5 ; 84
+ dbw $68, Unknown_8e6a5 ; 85
+ dbw $64, Unknown_8e6a5 ; 86
+ dbw $60, Unknown_8e6a5 ; 87
+ dbw $0c, Unknown_8e6a5 ; 88
+ dbw $08, Unknown_8e6a5 ; 89
+ dbw $04, Unknown_8e6a5 ; 8a
+ dbw $00, Unknown_8e6a5 ; 8b
+; 8daf1
- ld a, [hl]
- call GetSpriteLength
-; There are only two tables, so don't go any further than that.
- add b
- jr c, .quit
+Unknown_8daf1: ; 8daf1
+ db 1
+ db $fc, $fc, $00, $00
+; 8daf6
- ld [hl], b
- ld b, a
- inc hl
+Unknown_8daf6: ; 8daf6
+ db 4
+ db $f8, $f8, $00, $00
+ db $f8, $00, $01, $00
+ db $00, $f8, $10, $00
+ db $00, $00, $11, $00
+; 8db07
- dec c
- jr nz, .SecondTableLength
+Unknown_8db07: ; 8db07
+ db 4
+ db $f8, $f8, $00, $00
+ db $f8, $00, $00, $20
+ db $00, $f8, $01, $00
+ db $00, $00, $01, $20
+; 8db18
-.quit
- ret
-; 14386
+Unknown_8db18: ; 8db18
+ db 4
+ db $f8, $f8, $00, $80
+ db $f8, $00, $00, $a0
+ db $00, $f8, $01, $80
+ db $00, $00, $01, $a0
+; 8db29
+Unknown_8db29: ; 8db29
+ db 4
+ db $f8, $f8, $00, $00
+ db $f8, $00, $00, $20
+ db $00, $f8, $00, $40
+ db $00, $00, $00, $60
+; 8db3a
-GetSpriteLength: ; 14386
-; Return the length of sprite type a in tiles.
+Unknown_8db3a: ; 8db3a
+ db 4
+ db $f8, $f8, $00, $07
+ db $f8, $00, $00, $27
+ db $00, $f8, $00, $47
+ db $00, $00, $00, $67
+; 8db4b
- cp WALKING_SPRITE
- jr z, .AnyDirection
- cp STANDING_SPRITE
- jr z, .AnyDirection
- cp STILL_SPRITE
- jr z, .OneDirection
+; 8db4b
+ db 4
+ db $f8, $f8, $00, $80
+ db $f8, $00, $00, $a0
+ db $00, $f8, $00, $c0
+ db $00, $00, $00, $e0
+; 8db5c
- ld a, 12
+Unknown_8db5c: ; 8db5c
+ db 16
+ db $f0, $f0, $00, $00
+ db $f0, $f8, $01, $00
+ db $f8, $f0, $02, $00
+ db $f8, $f8, $03, $00
+ db $f0, $00, $01, $20
+ db $f0, $08, $00, $20
+ db $f8, $00, $03, $20
+ db $f8, $08, $02, $20
+ db $00, $f0, $02, $40
+ db $00, $f8, $03, $40
+ db $08, $f0, $00, $40
+ db $08, $f8, $01, $40
+ db $00, $00, $03, $60
+ db $00, $08, $02, $60
+ db $08, $00, $01, $60
+ db $08, $08, $00, $60
+; 8db9d
+
+Unknown_8db9d: ; 8db9d
+ db 36
+ db $e8, $e8, $00, $00
+ db $e8, $f0, $01, $00
+ db $e8, $f8, $02, $00
+ db $f0, $e8, $03, $00
+ db $f0, $f0, $04, $00
+ db $f0, $f8, $05, $00
+ db $f8, $e8, $06, $00
+ db $f8, $f0, $05, $00
+ db $f8, $f8, $05, $00
+ db $e8, $00, $02, $20
+ db $e8, $08, $01, $20
+ db $e8, $10, $00, $20
+ db $f0, $00, $05, $20
+ db $f0, $08, $04, $20
+ db $f0, $10, $03, $20
+ db $f8, $00, $05, $20
+ db $f8, $08, $05, $20
+ db $f8, $10, $06, $20
+ db $00, $e8, $06, $40
+ db $00, $f0, $05, $40
+ db $00, $f8, $05, $40
+ db $08, $e8, $03, $40
+ db $08, $f0, $04, $40
+ db $08, $f8, $05, $40
+ db $10, $e8, $00, $40
+ db $10, $f0, $01, $40
+ db $10, $f8, $02, $40
+ db $00, $00, $05, $60
+ db $00, $08, $05, $60
+ db $00, $10, $06, $60
+ db $08, $00, $05, $60
+ db $08, $08, $04, $60
+ db $08, $10, $03, $60
+ db $10, $00, $02, $60
+ db $10, $08, $01, $60
+ db $10, $10, $00, $60
+; 8dc2e
+
+Unknown_8dc2e: ; 8dc2e
+ db 9
+ db $f4, $f4, $00, $00
+ db $f4, $fc, $01, $00
+ db $f4, $04, $02, $00
+ db $fc, $f4, $10, $00
+ db $fc, $fc, $11, $00
+ db $fc, $04, $12, $00
+ db $04, $f4, $20, $00
+ db $04, $fc, $21, $00
+ db $04, $04, $22, $00
+; 8dc53
+
+Unknown_8dc53: ; 8dc53
+ db 16
+ db $f0, $f0, $00, $00
+ db $f0, $f8, $01, $00
+ db $f0, $00, $02, $00
+ db $f0, $08, $03, $00
+ db $f8, $f0, $10, $00
+ db $f8, $f8, $11, $00
+ db $f8, $00, $12, $00
+ db $f8, $08, $13, $00
+ db $00, $f0, $20, $00
+ db $00, $f8, $21, $00
+ db $00, $00, $22, $00
+ db $00, $08, $23, $00
+ db $08, $f0, $30, $00
+ db $08, $f8, $31, $00
+ db $08, $00, $32, $00
+ db $08, $08, $33, $00
+; 8dc94
+
+Unknown_8dc94: ; 8dc94
+ db 25
+ db $ec, $ec, $00, $00
+ db $f4, $ec, $01, $00
+ db $fc, $ec, $02, $00
+ db $04, $ec, $03, $00
+ db $0c, $ec, $04, $00
+ db $ec, $f4, $05, $00
+ db $f4, $f4, $06, $00
+ db $fc, $f4, $07, $00
+ db $04, $f4, $08, $00
+ db $0c, $f4, $09, $00
+ db $ec, $fc, $0a, $00
+ db $f4, $fc, $0b, $00
+ db $fc, $fc, $0c, $00
+ db $04, $fc, $0d, $00
+ db $0c, $fc, $0e, $00
+ db $ec, $04, $0f, $00
+ db $f4, $04, $10, $00
+ db $fc, $04, $11, $00
+ db $04, $04, $12, $00
+ db $0c, $04, $13, $00
+ db $ec, $0c, $14, $00
+ db $f4, $0c, $15, $00
+ db $fc, $0c, $16, $00
+ db $04, $0c, $17, $00
+ db $0c, $0c, $18, $00
+; 8dcf9
+
+; 8dcf9
+ db 36
+ db $e8, $e8, $00, $00
+ db $e8, $f0, $01, $00
+ db $e8, $f8, $02, $00
+ db $e8, $00, $03, $00
+ db $e8, $08, $04, $00
+ db $e8, $10, $05, $00
+ db $f0, $e8, $06, $00
+ db $f0, $f0, $07, $00
+ db $f0, $f8, $08, $00
+ db $f0, $00, $09, $00
+ db $f0, $08, $0a, $00
+ db $f0, $10, $0b, $00
+ db $f8, $e8, $0c, $00
+ db $f8, $f0, $0d, $00
+ db $f8, $f8, $0e, $00
+ db $f8, $00, $0f, $00
+ db $f8, $08, $10, $00
+ db $f8, $10, $11, $00
+ db $00, $e8, $12, $00
+ db $00, $f0, $13, $00
+ db $00, $f8, $14, $00
+ db $00, $00, $15, $00
+ db $00, $08, $16, $00
+ db $00, $10, $17, $00
+ db $08, $e8, $18, $00
+ db $08, $f0, $19, $00
+ db $08, $f8, $1a, $00
+ db $08, $00, $1b, $00
+ db $08, $08, $1c, $00
+ db $08, $10, $1d, $00
+ db $10, $e8, $1e, $00
+ db $10, $f0, $1f, $00
+ db $10, $f8, $20, $00
+ db $10, $00, $21, $00
+ db $10, $08, $22, $00
+ db $10, $10, $23, $00
+; 8dd8a
+
+Unknown_8dd8a: ; 8dd8a
+ db 4
+ db $f8, $f8, $00, $00
+ db $f8, $00, $01, $00
+ db $00, $f8, $02, $00
+ db $00, $00, $03, $00
+; 8dd9b
+
+Unknown_8dd9b: ; 8dd9b
+ db 4
+ db $f8, $f8, $00, $80
+ db $f8, $00, $01, $80
+ db $00, $f8, $02, $80
+ db $00, $00, $03, $80
+; 8ddac
+
+Unknown_8ddac: ; 8ddac
+ db 4
+ db $f8, $f8, $00, $00
+ db $f8, $00, $01, $00
+ db $00, $f8, $08, $00
+ db $00, $00, $03, $00
+; 8ddbd
+
+Unknown_8ddbd: ; 8ddbd
+ db 4
+ db $f8, $f8, $04, $00
+ db $f8, $00, $05, $00
+ db $00, $f8, $08, $00
+ db $00, $00, $07, $00
+; 8ddce
+
+Unknown_8ddce: ; 8ddce
+ db 4
+ db $f8, $f8, $00, $00
+ db $f8, $00, $01, $00
+ db $00, $f8, $09, $00
+ db $00, $00, $03, $00
+; 8dddf
+
+Unknown_8dddf: ; 8dddf
+ db 4
+ db $f8, $f8, $04, $00
+ db $f8, $00, $05, $00
+ db $00, $f8, $09, $00
+ db $00, $00, $07, $00
+; 8ddf0
+
+Unknown_8ddf0: ; 8ddf0
+ db 6
+ db $f8, $f4, $00, $01
+ db $f8, $fc, $01, $01
+ db $f8, $04, $02, $01
+ db $00, $f4, $10, $01
+ db $00, $fc, $11, $01
+ db $00, $04, $12, $01
+; 8de09
+
+Unknown_8de09: ; 8de09
+ db 29
+ db $e8, $e8, $00, $00
+ db $e8, $f0, $01, $00
+ db $e8, $f8, $02, $00
+ db $e8, $00, $03, $00
+ db $f0, $e8, $10, $00
+ db $f0, $f0, $11, $00
+ db $f0, $f8, $12, $00
+ db $f0, $00, $13, $00
+ db $f8, $e8, $20, $00
+ db $f8, $f0, $21, $00
+ db $f8, $f8, $22, $00
+ db $f8, $00, $23, $00
+ db $f8, $08, $24, $00
+ db $00, $e8, $30, $80
+ db $00, $f0, $31, $80
+ db $00, $f8, $32, $80
+ db $00, $00, $33, $80
+ db $00, $08, $34, $80
+ db $08, $e8, $40, $80
+ db $08, $f0, $41, $80
+ db $08, $f8, $42, $80
+ db $08, $00, $43, $80
+ db $08, $08, $44, $80
+ db $08, $10, $45, $80
+ db $10, $f0, $51, $80
+ db $10, $f8, $52, $80
+ db $10, $00, $53, $80
+ db $10, $08, $54, $80
+ db $10, $10, $55, $80
+; 8de7e
+
+Unknown_8de7e: ; 8de7e
+ db 2
+ db $f8, $fc, $00, $00
+ db $00, $fc, $10, $00
+; 8de87
+
+Unknown_8de87: ; 8de87
+ db 5
+ db $f0, $18, $00, $00
+ db $f0, $20, $01, $00
+ db $f8, $10, $02, $00
+ db $f8, $18, $03, $00
+ db $00, $10, $04, $00
+; 8de9c
+
+Unknown_8de9c: ; 8de9c
+ db 1
+ db $fc, $fc, $00, $06
+; 8dea1
+
+Unknown_8dea1: ; 8dea1
+ db 4
+ db $f8, $f8, $00, $06
+ db $f8, $00, $01, $06
+ db $00, $f8, $02, $06
+ db $00, $00, $03, $06
+; 8deb2
+
+Unknown_8deb2: ; 8deb2
+ db 4
+ db $ff, $ff, $00, $00
+ db $ff, $00, $00, $20
+ db $00, $ff, $00, $40
+ db $00, $00, $00, $60
+; 8dec3
+
+Unknown_8dec3: ; 8dec3
+ db 10
+ db $ff, $00, $00, $00
+ db $ff, $08, $01, $00
+ db $ff, $10, $01, $00
+ db $ff, $18, $01, $00
+ db $ff, $20, $00, $20
+ db $00, $00, $00, $40
+ db $00, $08, $01, $40
+ db $00, $10, $01, $40
+ db $00, $18, $01, $40
+ db $00, $20, $00, $60
+; 8deec
+
+Unknown_8deec: ; 8deec
+ db 15
+ db $ec, $f4, $00, $11
+ db $ec, $fc, $01, $11
+ db $ec, $04, $02, $11
+ db $f4, $f4, $03, $11
+ db $f4, $fc, $04, $11
+ db $f4, $04, $05, $11
+ db $fc, $f4, $06, $11
+ db $fc, $fc, $07, $11
+ db $fc, $04, $08, $11
+ db $04, $f4, $09, $11
+ db $04, $fc, $0a, $11
+ db $04, $04, $0b, $11
+ db $0c, $f4, $0c, $11
+ db $0c, $fc, $0d, $11
+ db $0c, $04, $0e, $11
+; 8df29
+
+Unknown_8df29: ; 8df29
+ db 6
+ db $f4, $f4, $00, $15
+ db $f4, $fc, $02, $15
+ db $f4, $04, $00, $35
+ db $04, $f4, $04, $15
+ db $04, $fc, $06, $15
+ db $04, $04, $04, $35
+; 8df42
+
+Unknown_8df42: ; 8df42
+ db 6
+ db $f4, $f4, $00, $16
+ db $f4, $fc, $02, $16
+ db $f4, $04, $04, $16
+ db $04, $f4, $06, $16
+ db $04, $fc, $08, $16
+ db $04, $04, $0a, $16
+; 8df5b
+
+Unknown_8df5b: ; 8df5b
+ db 6
+ db $f4, $f4, $00, $16
+ db $f4, $fc, $02, $16
+ db $f4, $04, $04, $16
+ db $04, $f4, $0c, $16
+ db $04, $fc, $0e, $16
+ db $04, $04, $10, $16
+; 8df74
+
+Unknown_8df74: ; 8df74
+ db 6
+ db $f4, $f4, $00, $16
+ db $f4, $fc, $02, $16
+ db $f4, $04, $04, $16
+ db $04, $f4, $12, $16
+ db $04, $fc, $14, $16
+ db $04, $04, $16, $16
+; 8df8d
+
+Unknown_8df8d: ; 8df8d
+ db 6
+ db $f4, $f4, $00, $16
+ db $f4, $fc, $02, $16
+ db $f4, $04, $04, $16
+ db $04, $f4, $18, $16
+ db $04, $fc, $1a, $16
+ db $04, $04, $1c, $16
+; 8dfa6
+
+Unknown_8dfa6: ; 8dfa6
+ db 6
+ db $f4, $f4, $1e, $16
+ db $f4, $fc, $20, $16
+ db $f4, $04, $22, $16
+ db $04, $f4, $24, $16
+ db $04, $fc, $26, $16
+ db $04, $04, $28, $16
+; 8dfbf
+
+Unknown_8dfbf: ; 8dfbf
+ db 3
+ db $f4, $fc, $00, $10
+ db $fc, $fc, $00, $10
+ db $04, $fc, $00, $10
+; 8dfcc
+
+Unknown_8dfcc: ; 8dfcc
+ db 6
+ db $00, $00, $00, $00
+ db $00, $08, $01, $00
+ db $00, $10, $01, $00
+ db $00, $18, $01, $00
+ db $00, $20, $02, $00
+ db $00, $28, $03, $00
+; 8dfe5
+
+Unknown_8dfe5: ; 8dfe5
+ db 4
+ db $00, $00, $00, $00
+ db $00, $08, $01, $00
+ db $00, $10, $02, $00
+ db $00, $18, $03, $00
+; 8dff6
+
+Unknown_8dff6: ; 8dff6
+ db 4
+ db $f8, $f6, $00, $06
+ db $f8, $02, $01, $06
+ db $00, $f6, $02, $06
+ db $00, $02, $03, $06
+; 8e007
+
+Unknown_8e007: ; 8e007
+ db 4
+ db $f8, $f4, $00, $06
+ db $f8, $04, $01, $06
+ db $00, $f4, $02, $06
+ db $00, $04, $03, $06
+; 8e018
+
+Unknown_8e018: ; 8e018
+ db 4
+ db $f8, $f0, $00, $06
+ db $f8, $08, $01, $06
+ db $00, $f0, $02, $06
+ db $00, $08, $03, $06
+; 8e029
+
+Unknown_8e029: ; 8e029
+ db 19
+ db $f8, $e0, $00, $00
+ db $f0, $e8, $02, $00
+ db $00, $e8, $04, $00
+ db $e8, $f0, $06, $00
+ db $f8, $f0, $08, $00
+ db $08, $f0, $0a, $00
+ db $e8, $f8, $0c, $00
+ db $f8, $f8, $0e, $00
+ db $08, $f8, $10, $00
+ db $e8, $00, $12, $00
+ db $f8, $00, $14, $00
+ db $08, $00, $16, $00
+ db $e8, $08, $18, $00
+ db $f8, $08, $1a, $00
+ db $08, $08, $1c, $00
+ db $f8, $10, $1e, $00
+ db $08, $10, $20, $00
+ db $f0, $18, $22, $00
+ db $00, $18, $24, $00
+; 8e076
+
+Unknown_8e076: ; 8e076
+ db 16
+ db $f8, $e0, $00, $00
+ db $f0, $e8, $02, $00
+ db $00, $e8, $04, $00
+ db $f8, $f0, $26, $00
+ db $08, $f0, $0a, $00
+ db $e8, $f8, $28, $00
+ db $f8, $f8, $2a, $00
+ db $08, $f8, $10, $00
+ db $f8, $00, $2c, $00
+ db $08, $00, $16, $00
+ db $f8, $08, $30, $00
+ db $08, $08, $1c, $00
+ db $f8, $10, $1e, $00
+ db $08, $10, $20, $00
+ db $f0, $18, $22, $00
+ db $00, $18, $24, $00
+; 8e0b7
+
+Unknown_8e0b7: ; 8e0b7
+ db 15
+ db $f8, $e0, $00, $00
+ db $f0, $e8, $02, $00
+ db $00, $e8, $32, $00
+ db $f8, $f0, $34, $00
+ db $08, $f0, $36, $00
+ db $f8, $f8, $38, $00
+ db $08, $f8, $3a, $00
+ db $f8, $00, $3c, $00
+ db $08, $00, $3e, $00
+ db $f8, $08, $30, $00
+ db $08, $08, $1c, $00
+ db $f8, $10, $1e, $00
+ db $08, $10, $20, $00
+ db $f0, $18, $22, $00
+ db $00, $18, $24, $00
+; 8e0f4
+
+Unknown_8e0f4: ; 8e0f4
+ db 17
+ db $f8, $e0, $00, $00
+ db $f0, $e8, $02, $00
+ db $00, $e8, $04, $00
+ db $f8, $f0, $40, $00
+ db $08, $f0, $42, $00
+ db $18, $f0, $44, $00
+ db $f8, $f8, $46, $00
+ db $08, $f8, $48, $00
+ db $18, $f8, $4a, $00
+ db $f8, $00, $4c, $00
+ db $08, $00, $4e, $00
+ db $f8, $08, $30, $00
+ db $08, $08, $1c, $00
+ db $f8, $10, $1e, $00
+ db $08, $10, $20, $00
+ db $f0, $18, $22, $00
+ db $00, $18, $24, $00
+; 8e139
+
+Unknown_8e139: ; 8e139
+ db 17
+ db $f8, $e0, $00, $00
+ db $f0, $e8, $02, $00
+ db $00, $e8, $04, $00
+ db $f8, $f0, $50, $00
+ db $08, $f0, $0a, $00
+ db $e8, $f8, $52, $00
+ db $f8, $f8, $54, $00
+ db $08, $f8, $10, $00
+ db $e8, $00, $56, $00
+ db $f8, $00, $2e, $00
+ db $08, $00, $16, $00
+ db $f8, $08, $30, $00
+ db $08, $08, $1c, $00
+ db $f8, $10, $1e, $00
+ db $08, $10, $20, $00
+ db $f0, $18, $22, $00
+ db $00, $18, $24, $00
+; 8e17e
+
+Unknown_8e17e: ; 8e17e
+ db 1
+ db $fc, $fc, $00, $11
+; 8e183
+
+Unknown_8e183: ; 8e183
+ db 12
+ db $00, $00, $30, $00
+ db $00, $08, $31, $00
+ db $00, $10, $31, $00
+ db $00, $18, $31, $00
+ db $00, $20, $31, $00
+ db $00, $28, $32, $00
+ db $08, $00, $33, $00
+ db $08, $08, $34, $00
+ db $08, $10, $34, $00
+ db $08, $18, $34, $00
+ db $08, $20, $34, $00
+ db $08, $28, $35, $00
+; 8e1b4
+
+Unknown_8e1b4: ; 8e1b4
+ db 1
+ db $00, $00, $ed, $00
+; 8e1b9
+
+Unknown_8e1b9: ; 8e1b9
+ db 4
+ db $ff, $ff, $30, $00
+ db $ff, $01, $32, $00
+ db $01, $ff, $33, $00
+ db $01, $01, $35, $00
+; 8e1ca
+
+Unknown_8e1ca: ; 8e1ca
+ db 8
+ db $ff, $ff, $30, $00
+ db $ff, $04, $31, $00
+ db $ff, $0c, $31, $00
+ db $ff, $11, $32, $00
+ db $01, $ff, $33, $00
+ db $01, $04, $34, $00
+ db $01, $0c, $34, $00
+ db $01, $11, $35, $00
+; 8e1eb
+
+Unknown_8e1eb: ; 8e1eb
+ db 1
+ db $00, $00, $34, $00
+; 8e1f0
+
+Unknown_8e1f0: ; 8e1f0
+ db 2
+ db $00, $00, $30, $00
+ db $08, $00, $33, $00
+; 8e1f9
+
+Unknown_8e1f9: ; 8e1f9
+ db 2
+ db $00, $00, $32, $00
+ db $08, $00, $35, $00
+; 8e202
+
+Unknown_8e202: ; 8e202
+ db 4
+ db $f8, $f8, $00, $01
+ db $f8, $00, $01, $01
+ db $00, $f8, $02, $01
+ db $00, $00, $03, $01
+; 8e213
+
+Unknown_8e213: ; 8e213
+ db 4
+ db $f8, $f8, $00, $81
+ db $f8, $00, $01, $81
+ db $00, $f8, $02, $81
+ db $00, $00, $03, $81
+; 8e224
+
+Unknown_8e224: ; 8e224
+ db 1
+ db $fc, $fc, $00, $02
+; 8e229
+
+Unknown_8e229: ; 8e229
+ db 4
+ db $f0, $fc, $00, $03
+ db $f8, $fc, $01, $03
+ db $00, $fc, $02, $03
+ db $08, $fc, $03, $03
+; 8e23a
+
+Unknown_8e23a: ; 8e23a
+ db 4
+ db $f0, $fc, $03, $44
+ db $f8, $fc, $02, $44
+ db $00, $fc, $01, $44
+ db $08, $fc, $00, $44
+; 8e24b
+
+Unknown_8e24b: ; 8e24b
+ db 4
+ db $f8, $f8, $00, $01
+ db $f8, $00, $00, $21
+ db $00, $f8, $00, $41
+ db $00, $00, $00, $61
+; 8e25c
+
+Unknown_8e25c: ; 8e25c
+ db 8
+ db $f4, $f4, $00, $01
+ db $f4, $fc, $01, $01
+ db $f4, $04, $00, $21
+ db $fc, $f4, $02, $01
+ db $fc, $04, $02, $21
+ db $04, $f4, $00, $41
+ db $04, $fc, $01, $41
+ db $04, $04, $00, $61
+; 8e27d
+
+Unknown_8e27d: ; 8e27d
+ db 12
+ db $f0, $f0, $00, $01
+ db $f0, $f8, $01, $01
+ db $f8, $f0, $02, $01
+ db $f0, $00, $01, $21
+ db $f0, $08, $00, $21
+ db $f8, $08, $02, $21
+ db $00, $f0, $02, $41
+ db $08, $f0, $00, $41
+ db $08, $f8, $01, $41
+ db $00, $08, $02, $61
+ db $08, $00, $01, $61
+ db $08, $08, $00, $61
+; 8e2ae
+
+Unknown_8e2ae: ; 8e2ae
+ db 36
+ db $e8, $08, $05, $00
+ db $e8, $10, $06, $00
+ db $e8, $18, $07, $00
+ db $f0, $e8, $11, $00
+ db $f0, $f0, $12, $00
+ db $f0, $f8, $13, $00
+ db $f0, $00, $14, $00
+ db $f0, $08, $15, $00
+ db $f0, $10, $16, $00
+ db $f0, $18, $17, $00
+ db $f8, $e0, $20, $00
+ db $f8, $e8, $21, $00
+ db $f8, $f0, $22, $00
+ db $f8, $f8, $23, $00
+ db $f8, $00, $24, $00
+ db $f8, $08, $25, $00
+ db $f8, $10, $26, $00
+ db $f8, $18, $27, $00
+ db $00, $e0, $30, $00
+ db $00, $e8, $31, $00
+ db $00, $f0, $32, $00
+ db $00, $f8, $33, $00
+ db $00, $00, $34, $00
+ db $00, $08, $35, $00
+ db $00, $10, $36, $00
+ db $08, $e0, $40, $00
+ db $08, $e8, $41, $00
+ db $08, $f0, $42, $00
+ db $08, $f8, $43, $00
+ db $08, $00, $44, $00
+ db $08, $08, $45, $00
+ db $08, $10, $46, $00
+ db $08, $18, $47, $00
+ db $10, $e0, $50, $00
+ db $10, $e8, $51, $00
+ db $10, $18, $57, $00
+; 8e33f
+
+Unknown_8e33f: ; 8e33f
+ db 28
+ db $e8, $00, $04, $00
+ db $e8, $08, $05, $00
+ db $e8, $10, $06, $00
+ db $f0, $e8, $11, $00
+ db $f0, $f0, $12, $00
+ db $f0, $f8, $13, $00
+ db $f0, $00, $14, $00
+ db $f0, $08, $15, $00
+ db $f0, $10, $16, $00
+ db $f8, $e8, $21, $00
+ db $f8, $f0, $22, $00
+ db $f8, $f8, $23, $00
+ db $f8, $00, $24, $00
+ db $f8, $08, $25, $00
+ db $f8, $10, $26, $00
+ db $00, $e0, $30, $00
+ db $00, $e8, $31, $00
+ db $00, $f0, $32, $00
+ db $00, $f8, $33, $00
+ db $00, $00, $34, $00
+ db $00, $08, $35, $00
+ db $08, $f0, $42, $00
+ db $08, $f8, $43, $00
+ db $08, $00, $44, $00
+ db $08, $08, $45, $00
+ db $10, $f8, $53, $00
+ db $10, $00, $54, $00
+ db $10, $08, $55, $00
+; 8e3b0
+
+Unknown_8e3b0: ; 8e3b0
+ db 30
+ db $e8, $00, $04, $00
+ db $e8, $08, $05, $00
+ db $f0, $e8, $11, $00
+ db $f0, $f0, $12, $00
+ db $f0, $f8, $13, $00
+ db $f0, $00, $14, $00
+ db $f0, $08, $15, $00
+ db $f0, $10, $16, $00
+ db $f0, $18, $17, $00
+ db $f8, $e0, $20, $00
+ db $f8, $e8, $21, $00
+ db $f8, $f0, $22, $00
+ db $f8, $f8, $23, $00
+ db $f8, $00, $24, $00
+ db $f8, $08, $25, $00
+ db $f8, $10, $26, $00
+ db $00, $e0, $30, $00
+ db $00, $e8, $31, $00
+ db $00, $f0, $32, $00
+ db $00, $f8, $33, $00
+ db $00, $00, $34, $00
+ db $00, $08, $35, $00
+ db $08, $f0, $42, $00
+ db $08, $f8, $43, $00
+ db $08, $00, $44, $00
+ db $08, $08, $45, $00
+ db $10, $f0, $52, $00
+ db $10, $f8, $53, $00
+ db $10, $00, $54, $00
+ db $10, $08, $55, $00
+; 8e429
+
+Unknown_8e429: ; 8e429
+ db 31
+ db $f0, $e8, $11, $00
+ db $f0, $f0, $12, $00
+ db $f0, $f8, $13, $00
+ db $f0, $00, $14, $00
+ db $f0, $08, $15, $00
+ db $f0, $10, $16, $00
+ db $f0, $18, $17, $00
+ db $f8, $e0, $20, $00
+ db $f8, $e8, $21, $00
+ db $f8, $f0, $22, $00
+ db $f8, $f8, $23, $00
+ db $f8, $00, $24, $00
+ db $f8, $08, $25, $00
+ db $f8, $10, $26, $00
+ db $f8, $18, $27, $00
+ db $00, $e0, $30, $00
+ db $00, $e8, $31, $00
+ db $00, $f0, $32, $00
+ db $00, $f8, $33, $00
+ db $00, $00, $34, $00
+ db $00, $08, $35, $00
+ db $00, $10, $36, $00
+ db $08, $e8, $41, $00
+ db $08, $f0, $42, $00
+ db $08, $f8, $43, $00
+ db $08, $00, $44, $00
+ db $08, $08, $45, $00
+ db $10, $e8, $51, $00
+ db $10, $f0, $52, $00
+ db $10, $00, $54, $00
+ db $10, $08, $55, $00
+; 8e4a6
+
+Unknown_8e4a6: ; 8e4a6
+ db 25
+ db $ec, $ec, $00, $09
+ db $ec, $f4, $01, $09
+ db $ec, $fc, $02, $09
+ db $ec, $04, $03, $09
+ db $ec, $0c, $04, $09
+ db $f4, $ec, $10, $09
+ db $f4, $f4, $11, $09
+ db $f4, $fc, $12, $09
+ db $f4, $04, $13, $09
+ db $f4, $0c, $14, $09
+ db $fc, $ec, $20, $09
+ db $fc, $f4, $21, $09
+ db $fc, $fc, $22, $09
+ db $fc, $04, $23, $09
+ db $fc, $0c, $24, $09
+ db $04, $ec, $30, $09
+ db $04, $f4, $31, $09
+ db $04, $fc, $32, $09
+ db $04, $04, $33, $09
+ db $04, $0c, $34, $09
+ db $0c, $ec, $40, $09
+ db $0c, $f4, $41, $09
+ db $0c, $fc, $42, $09
+ db $0c, $04, $43, $09
+ db $0c, $0c, $44, $09
+; 8e50b
+
+Unknown_8e50b: ; 8e50b
+ db 16
+ db $f0, $ec, $00, $0a
+ db $f0, $f4, $01, $0a
+ db $f0, $fc, $02, $0a
+ db $f0, $04, $03, $0a
+ db $f8, $ec, $04, $0a
+ db $f8, $f4, $05, $0a
+ db $f8, $fc, $06, $0a
+ db $f8, $04, $07, $0a
+ db $00, $ec, $08, $0a
+ db $00, $f4, $09, $0a
+ db $00, $fc, $0a, $0a
+ db $00, $04, $0b, $0a
+ db $08, $ec, $0c, $0a
+ db $08, $f4, $0d, $0a
+ db $08, $fc, $0e, $0a
+ db $08, $04, $0f, $0a
+; 8e54c
+
+Unknown_8e54c: ; 8e54c
+ db 1
+ db $fc, $fc, $00, $00
+; 8e551
+
+Unknown_8e551: ; 8e551
+ db 3
+ db $00, $f8, $00, $00
+ db $f8, $f8, $01, $00
+ db $f8, $00, $02, $00
+; 8e55e
+
+Unknown_8e55e: ; 8e55e
+ db 7
+ db $08, $f0, $00, $00
+ db $00, $f0, $01, $00
+ db $f8, $f0, $02, $00
+ db $f8, $f8, $03, $00
+ db $f0, $f8, $04, $00
+ db $f0, $00, $05, $00
+ db $f0, $08, $06, $00
+; 8e57b
+
+Unknown_8e57b: ; 8e57b
+ db 8
+ db $f8, $f0, $00, $00
+ db $f8, $f8, $01, $00
+ db $f8, $00, $01, $20
+ db $f8, $08, $00, $20
+ db $00, $f0, $00, $40
+ db $00, $f8, $01, $40
+ db $00, $00, $01, $60
+ db $00, $08, $00, $60
+; 8e59c
+
+Unknown_8e59c: ; 8e59c
+ db 12
+ db $e8, $f8, $00, $00
+ db $f0, $f8, $01, $00
+ db $f8, $f8, $02, $00
+ db $e8, $00, $00, $20
+ db $f0, $00, $01, $20
+ db $f8, $00, $02, $20
+ db $00, $f8, $02, $40
+ db $08, $f8, $01, $40
+ db $10, $f8, $00, $40
+ db $00, $00, $02, $60
+ db $08, $00, $01, $60
+ db $10, $00, $00, $60
+; 8e5cd
+
+Unknown_8e5cd: ; 8e5cd
+ db 20
+ db $ec, $f0, $00, $00
+ db $ec, $f8, $01, $00
+ db $ec, $00, $02, $00
+ db $ec, $08, $03, $00
+ db $f4, $f0, $04, $00
+ db $f4, $f8, $05, $00
+ db $f4, $00, $06, $00
+ db $f4, $08, $07, $00
+ db $fc, $f0, $08, $00
+ db $fc, $f8, $09, $00
+ db $fc, $00, $0a, $00
+ db $fc, $08, $0b, $00
+ db $04, $f0, $0c, $00
+ db $04, $f8, $0d, $00
+ db $04, $00, $0e, $00
+ db $04, $08, $0f, $00
+ db $0c, $f0, $10, $00
+ db $0c, $f8, $11, $00
+ db $0c, $00, $12, $00
+ db $0c, $08, $13, $00
+; 8e61e
+
+Unknown_8e61e: ; 8e61e
+ db 20
+ db $00, $08, $00, $81
+ db $08, $10, $00, $81
+ db $10, $18, $00, $81
+ db $18, $20, $00, $81
+ db $20, $28, $00, $81
+ db $18, $30, $00, $81
+ db $10, $38, $00, $81
+ db $08, $40, $00, $81
+ db $00, $48, $00, $81
+ db $08, $50, $00, $81
+ db $10, $58, $00, $81
+ db $18, $60, $00, $81
+ db $20, $68, $00, $81
+ db $18, $70, $00, $81
+ db $10, $78, $00, $81
+ db $08, $80, $00, $81
+ db $00, $88, $00, $81
+ db $08, $90, $00, $81
+ db $10, $98, $00, $81
+ db $18, $a0, $00, $81
+; 8e66f
+
+Unknown_8e66f: ; 8e66f
+ db 4
+ db $f8, $f8, $00, $02
+ db $f8, $00, $01, $02
+ db $00, $f8, $02, $02
+ db $00, $00, $03, $02
+; 8e680
+
+Unknown_8e680: ; 8e680
+ db 9
+ db $f0, $f4, $00, $01
+ db $f0, $fc, $01, $01
+ db $f0, $04, $02, $01
+ db $f8, $f4, $10, $01
+ db $f8, $fc, $11, $01
+ db $f8, $04, $12, $01
+ db $00, $f4, $20, $01
+ db $00, $fc, $21, $01
+ db $00, $04, $22, $01
+; 8e6a5
+
+Unknown_8e6a5: ; 8e6a5
+ db 24
+ db $d8, $f4, $00, $01
+ db $d8, $fc, $01, $01
+ db $d8, $04, $02, $01
+ db $d8, $0c, $03, $01
+ db $e0, $f4, $10, $01
+ db $e0, $fc, $11, $01
+ db $e0, $04, $12, $01
+ db $e0, $0c, $13, $01
+ db $e8, $f4, $20, $01
+ db $e8, $fc, $21, $01
+ db $e8, $04, $22, $01
+ db $e8, $0c, $23, $01
+ db $f0, $f4, $30, $01
+ db $f0, $fc, $31, $01
+ db $f0, $04, $32, $01
+ db $f0, $0c, $33, $01
+ db $f8, $f4, $40, $01
+ db $f8, $fc, $41, $01
+ db $f8, $04, $42, $01
+ db $f8, $0c, $43, $01
+ db $00, $f4, $50, $01
+ db $00, $fc, $51, $01
+ db $00, $04, $52, $01
+ db $00, $0c, $53, $01
+; 8e706
+Unknown_8e706: ; Broken 2bpp pointers
+ dbbw $80, $01, $672a ; 128-tile 2bpp at 1:672a (inside Multiply)
+ dbbw $80, $01, $672a
+ dbbw $80, $01, $672a
+ dbbw $80, $01, $672a
+ dbbw $10, $37, $672a ; 16-tile 2bpp at 37:672a (within Tileset11GFX)
+ dbbw $10, $11, $672a ; 16-tile 2bpp at 11:672a (empty data)
+ dbbw $10, $39, $672a ; 16-tile 2bpp at 39:672a (empty data)
+ dbbw $10, $24, $672a ; 16-tile 2bpp at 24:672a (inside Function926f7)
+ dbbw $10, $21, $672a ; 16-tile 2bpp at 21:672a (inside Function8671c)
+
+Function8e72a: ; 8e72a
+ add $10
+Function8e72c: ; 8e72c
+ and $3f
+ cp $20
+ jr nc, .asm_8e737
+ call Function8e741
+ ld a, h
ret
-.AnyDirection
- ld a, 12
+.asm_8e737
+ and $1f
+ call Function8e741
+ ld a, h
+ xor $ff ; cpl
+ inc a
ret
+; 8e741
-.OneDirection
- ld a, 4
+Function8e741: ; 8e741
+ ld e, a
+ ld a, d
+ ld d, 0
+ ld hl, Unknown_8e75d
+rept 2
+ add hl, de
+endr
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, 0
+.asm_8e750
+ srl a
+ jr nc, .asm_8e755
+ add hl, de
+
+.asm_8e755
+ sla e
+ rl d
+ and a
+ jr nz, .asm_8e750
ret
-; 1439b
+; 8e75d
+Unknown_8e75d: ; 8e75d
+ sine_wave $100
-Function1439b: ; 1439b
- ld hl, UsedSprites
- ld c, SPRITE_GFX_LIST_CAPACITY
-.loop
- ld a, [wSpriteFlags]
- res 5, a
- ld [wSpriteFlags], a
- ld a, [hli]
+
+Function8e79d: ; 8e79d
+ ld a, [hSGB]
+ ld de, GFX_8e7f4
and a
- jr z, .done
- ld [hUsedSpriteIndex], a
- ld a, [hli]
- ld [hUsedSpriteTile], a
- bit 7, a
- jr z, .dont_set
- ld a, [wSpriteFlags]
- set 5, a
- ld [wSpriteFlags], a
+ jr z, .asm_8e7a8
+ ld de, GFX_8e804
-.dont_set
+.asm_8e7a8
+ ld hl, VTiles0
+ lb bc, BANK(GFX_8e7f4), 1
+ call Request2bpp
+ ld c, $8
+ ld d, $0
+.asm_8e7b5
push bc
- push hl
- call Function143c8
- pop hl
+ call Function8e7c6
+ call DelayFrame
pop bc
+rept 2
+ inc d
+endr
dec c
- jr nz, .loop
-
-.done
+ jr nz, .asm_8e7b5
+ call ClearSprites
ret
-; 143c8
+; 8e7c6
-Function143c8: ; 143c8
- ld a, [hUsedSpriteIndex]
- call SafeGetSprite
- ld a, [hUsedSpriteTile]
- call .GetTileAddr
+Function8e7c6: ; 8e7c6
+ ld hl, Sprites
+ ld c, $8
+.asm_8e7cb
+ ld a, c
+ and a
+ ret z
+ dec c
+ ld a, c
+ sla a
+ sla a
+ sla a
+ push af
+ push de
push hl
+ call Function8e72c
+ pop hl
+ pop de
+ add $68
+ ld [hli], a
+ pop af
push de
- push bc
- ld a, [wSpriteFlags]
- bit 7, a
- jr nz, .skip
- call .CopyToVram
+ push hl
+ call Function8e72a
+ pop hl
+ pop de
+ add $54
+ ld [hli], a
+ ld a, $0
+ ld [hli], a
+ ld a, $6
+ ld [hli], a
+ jr .asm_8e7cb
+; 8e7f4
-.skip
+GFX_8e7f4: ; 8e7f4
+INCBIN "gfx/unknown/08e7f4.2bpp"
+GFX_8e804: ; 8e804
+INCBIN "gfx/unknown/08e804.2bpp"
+
+ClearSpriteAnims: ; 8e814
+ push hl
+ push de
+ push bc
+ push af
+ ld hl, wSpriteAnimDict
+ ld bc, wSpriteAnimsEnd - wSpriteAnimDict
+.loop
+ ld [hl], $0
+ inc hl
+ dec bc
+ ld a, c
+ or b
+ jr nz, .loop
+ pop af
pop bc
- ld l, c
- ld h, $0
-rept 4
- add hl, hl
-endr
pop de
- add hl, de
- ld d, h
- ld e, l
pop hl
- ld a, [wSpriteFlags]
- bit 5, a
- jr nz, .done
- bit 6, a
- jr nz, .done
- ld a, [hUsedSpriteIndex]
- call _DoesSpriteHaveFacings
- jr c, .done
- ld a, h
- add $8
- ld h, a
- call .CopyToVram
-
-.done
ret
-; 14406
+; 8e82b
-.GetTileAddr: ; 14406
-; Return the address of tile (a) in (hl).
- and $7f
+Function8e82b: ; 8e82b
+ ld a, e
+ call ReadMonMenuIcon
ld l, a
ld h, 0
-rept 4
add hl, hl
-endr
- ld a, l
- add VTiles0 % $100
- ld l, a
- ld a, h
- adc VTiles0 / $100
- ld h, a
+ ld de, IconPointers
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ ld b, BANK(Icons)
+ ld c, 8
ret
-; 14418
+; 8e83f
-.CopyToVram: ; 14418
- ld a, [rVBK]
- push af
- ld a, [wSpriteFlags]
- bit 5, a
- ld a, $1
- jr z, .bankswitch
- ld a, $0
-
-.bankswitch
- ld [rVBK], a
- call Get2bpp
- pop af
- ld [rVBK], a
+Function8e83f: ; 8e83f
+ push hl
+ push de
+ push bc
+ call Function8e849
+ pop bc
+ pop de
+ pop hl
ret
-; 1442f
+; 8e849
-LoadEmote:: ; 1442f
-; Get the address of the pointer to emote c.
- ld a, c
- ld bc, 6
- ld hl, EmotesPointers
- call AddNTimes
-; Load the emote address into de
- ld e, [hl]
- inc hl
- ld d, [hl]
-; load the length of the emote (in tiles) into c
- inc hl
- ld c, [hl]
- swap c
-; load the emote pointer bank into b
- inc hl
- ld b, [hl]
-; load the VRAM destination into hl
- inc hl
+Function8e849: ; 8e849
+ ld d, 0
+ ld hl, Jumptable_8e854
+rept 2
+ add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
-; if the emote has a length of 0, do not proceed (error handling)
- ld a, c
- and a
- ret z
- call GetEmote2bpp
- ret
-; 1444d
+ jp [hl]
+; 8e854
-emote_header: MACRO
- dw \1
- db \2 tiles, BANK(\1)
- dw \3
-ENDM
-EmotesPointers: ; 144d
-; dw source address
-; db length, bank
-; dw dest address
+Jumptable_8e854: ; 8e854 (23:6854)
+ dw Function8e8d5
+ dw Function8e961
+ dw Function8e97d
+ dw Function8e99a
+ dw Function8e898
+ dw Function8e8b1
+ dw Function8e862
- emote_header ShockEmote, 4, VTiles1 tile $78
- emote_header QuestionEmote, 4, VTiles1 tile $78
- emote_header HappyEmote, 4, VTiles1 tile $78
- emote_header SadEmote, 4, VTiles1 tile $78
- emote_header HeartEmote, 4, VTiles1 tile $78
- emote_header BoltEmote, 4, VTiles1 tile $78
- emote_header SleepEmote, 4, VTiles1 tile $78
- emote_header FishEmote, 4, VTiles1 tile $78
- emote_header FishingRodGFX1, 1, VTiles1 tile $7c
- emote_header FishingRodGFX2, 2, VTiles1 tile $7c
- emote_header FishingRodGFX3, 2, VTiles1 tile $7e
- emote_header FishingRodGFX4, 1, VTiles1 tile $7e
-; 14495
+Function8e862: ; 8e862 (23:6862)
+ call Function8e908
+ call Function8e86c
+ call Function8e936
+ ret
-SpriteMons: ; 14495
- db UNOWN
- db GEODUDE
- db GROWLITHE
- db WEEDLE
- db SHELLDER
- db ODDISH
- db GENGAR
- db ZUBAT
- db MAGIKARP
- db SQUIRTLE
- db TOGEPI
- db BUTTERFREE
- db DIGLETT
- db POLIWAG
- db PIKACHU
- db CLEFAIRY
- db CHARMANDER
- db JYNX
- db STARMIE
- db BULBASAUR
- db JIGGLYPUFF
- db GRIMER
- db EKANS
- db PARAS
- db TENTACOOL
- db TAUROS
- db MACHOP
- db VOLTORB
- db LAPRAS
- db RHYDON
- db MOLTRES
- db SNORLAX
- db GYARADOS
- db LUGIA
- db HO_OH
-; 144b8
+Function8e86c: ; 8e86c (23:686c)
+ push bc
+ ld a, [hObjectStructIndexBuffer]
+ ld hl, PartyMon1Item
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ pop bc
+ ld a, [hl]
+ and a
+ jr z, .asm_8e890
+ push hl
+ push bc
+ ld d, a
+ callab ItemIsMail
+ pop bc
+ pop hl
+ jr c, .asm_8e88e
+ ld a, $6
+ jr .asm_8e892
+.asm_8e88e
+ ld a, $5
+.asm_8e890
+ ld a, $4
+.asm_8e892
+ ld hl, $1
+ add hl, bc
+ ld [hl], a
+ ret
+Function8e898: ; 8e898 (23:6898)
+ call Function8e8d5
+ ld hl, $2
+ add hl, bc
+ ld a, $0
+ ld [hl], a
+ ld hl, $4
+ add hl, bc
+ ld a, $48
+ ld [hl], a
+ ld hl, $5
+ add hl, bc
+ ld a, $48
+ ld [hl], a
+ ret
-OutdoorSprites: ; 144b8
-; Valid sprite IDs for each map group.
+Function8e8b1: ; 8e8b1 (23:68b1)
+ call Function8e908
+ call Function8e936
+ ld hl, $2
+ add hl, bc
+ ld a, $0
+ ld [hl], a
+ ld hl, $4
+ add hl, bc
+ ld a, $18
+ ld [hl], a
+ ld hl, $5
+ add hl, bc
+ ld a, $60
+ ld [hl], a
+ ld a, c
+ ld [wc608], a
+ ld a, b
+ ld [wc608 + 1], a
+ ret
- dw Group1Sprites
- dw Group2Sprites
- dw Group3Sprites
- dw Group4Sprites
- dw Group5Sprites
- dw Group6Sprites
- dw Group7Sprites
- dw Group8Sprites
- dw Group9Sprites
- dw Group10Sprites
- dw Group11Sprites
- dw Group12Sprites
- dw Group13Sprites
- dw Group14Sprites
- dw Group15Sprites
- dw Group16Sprites
- dw Group17Sprites
- dw Group18Sprites
- dw Group19Sprites
- dw Group20Sprites
- dw Group21Sprites
- dw Group22Sprites
- dw Group23Sprites
- dw Group24Sprites
- dw Group25Sprites
- dw Group26Sprites
-; 144ec
+Function8e8d5: ; 8e8d5 (23:68d5)
+ call Function8e908
+ call Function8e8df
+ call Function8e936
+ ret
+Function8e8df: ; 8e8df (23:68df)
+ push bc
+ ld a, [hObjectStructIndexBuffer]
+ ld hl, PartyMon1Item
+ ld bc, $30
+ call AddNTimes
+ pop bc
+ ld a, [hl]
+ and a
+ ret z
+ push hl
+ push bc
+ ld d, a
+ callab ItemIsMail
+ pop bc
+ pop hl
+ jr c, .asm_8e900
+ ld a, $3
+ jr .asm_8e902
+.asm_8e900
+ ld a, $2
+.asm_8e902
+ ld hl, $1
+ add hl, bc
+ ld [hl], a
+ ret
-Group13Sprites: ; 144ec
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_TEACHER
- db SPRITE_FISHER
- db SPRITE_YOUNGSTER
- db SPRITE_BLUE
- db SPRITE_GRAMPS
- db SPRITE_BUG_CATCHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_SWIMMER_GIRL
- db SPRITE_SWIMMER_GUY
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 14503
+Function8e908: ; 8e908 (23:6908)
+ ld a, [wc3b7]
+ push af
+ ld a, [hObjectStructIndexBuffer]
+ ld hl, PartySpecies
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [hl]
+ call ReadMonMenuIcon
+ ld [CurIcon], a
+ call Function8e9db
+ ld a, [hObjectStructIndexBuffer]
+; y coord
+rept 4
+ add a
+endr
+ add $1c
+ ld d, a
+; x coord
+ ld e, $10
+; type is partymon icon
+ ld a, SPRITE_ANIM_INDEX_00
+ call InitSpriteAnimStruct
+ pop af
+ ld hl, $3
+ add hl, bc
+ ld [hl], a
+ ret
-Group23Sprites: ; 14503
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_TEACHER
- db SPRITE_FISHER
- db SPRITE_YOUNGSTER
- db SPRITE_BLUE
- db SPRITE_GRAMPS
- db SPRITE_BUG_CATCHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_SWIMMER_GIRL
- db SPRITE_SWIMMER_GUY
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 1451a
+Function8e936: ; 8e936 (23:6936)
+ push bc
+ ld a, [hObjectStructIndexBuffer]
+ ld b, a
+ call Function8e94c
+ ld a, b
+ pop bc
+ ld hl, $9
+ add hl, bc
+ ld [hl], a
+ rlca
+ rlca
+ ld hl, $d
+ add hl, bc
+ ld [hl], a
+ ret
-Group14Sprites: ; 1451a
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_TEACHER
- db SPRITE_FISHER
- db SPRITE_YOUNGSTER
- db SPRITE_BLUE
- db SPRITE_GRAMPS
- db SPRITE_BUG_CATCHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_SWIMMER_GIRL
- db SPRITE_SWIMMER_GUY
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 14531
+Function8e94c: ; 8e94c (23:694c)
+ callba PlacePartymonHPBar
+ call GetHPPal
+ ld e, d
+ ld d, 0
+ ld hl, Unknown_8e95e
+ add hl, de
+ ld b, [hl]
+ ret
+; 8e95e (23:695e)
-Group6Sprites: ; 14531
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_TEACHER
- db SPRITE_FISHER
- db SPRITE_YOUNGSTER
- db SPRITE_BLUE
- db SPRITE_GRAMPS
- db SPRITE_BUG_CATCHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_SWIMMER_GIRL
- db SPRITE_SWIMMER_GUY
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 14548
+Unknown_8e95e: ; 8e95e
+ db $00, $40, $80
+; 8e961
-Group7Sprites: ; 14548
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_COOLTRAINER_M
- db SPRITE_SUPER_NERD
- db SPRITE_COOLTRAINER_F
- db SPRITE_FISHER
- db SPRITE_YOUNGSTER
- db SPRITE_LASS
- db SPRITE_POKEFAN_M
- db SPRITE_ROCKET
- db SPRITE_MISTY
- db SPRITE_POKE_BALL
- db SPRITE_SLOWPOKE
-; 1455f
+Function8e961: ; 8e961 (23:6961)
+ ld a, [wd265]
+ call ReadMonMenuIcon
+ ld [CurIcon], a
+ xor a
+ call GetIconGFX
+ lb de, $24, $20
+ ld a, SPRITE_ANIM_INDEX_00
+ call InitSpriteAnimStruct
+ ld hl, $2
+ add hl, bc
+ ld [hl], $0
+ ret
-Group25Sprites: ; 1455f
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_COOLTRAINER_M
- db SPRITE_SUPER_NERD
- db SPRITE_COOLTRAINER_F
- db SPRITE_FISHER
- db SPRITE_YOUNGSTER
- db SPRITE_LASS
- db SPRITE_POKEFAN_M
- db SPRITE_ROCKET
- db SPRITE_MISTY
- db SPRITE_POKE_BALL
- db SPRITE_SLOWPOKE
-; 14576
+Function8e97d: ; 8e97d (23:697d)
+ ld a, [wd265]
+ call ReadMonMenuIcon
+ ld [CurIcon], a
+ xor a
+ call GetIconGFX
+ ld d, $1a
+ ld e, $24
+ ld a, SPRITE_ANIM_INDEX_00
+ call InitSpriteAnimStruct
+ ld hl, $2
+ add hl, bc
+ ld [hl], $0
+ ret
-Group21Sprites: ; 14576
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_FISHER
- db SPRITE_POLIWAG
- db SPRITE_TEACHER
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_LASS
- db SPRITE_BIKER
- db SPRITE_SILVER
- db SPRITE_BLUE
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 1458d
+Function8e99a: ; 8e99a (23:699a)
+ ld a, [wd265]
+ call ReadMonMenuIcon
+ ld [CurIcon], a
+ ld a, $62
+ ld [wc3b7], a
+ call Function8e9db
+ ret
-Group18Sprites: ; 1458d
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_POKEFAN_M
- db SPRITE_MACHOP
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_FISHER
- db SPRITE_TEACHER
- db SPRITE_SUPER_NERD
- db SPRITE_BIG_SNORLAX
- db SPRITE_BIKER
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 145a4
+GetSpeciesIcon: ; 8e9ac
+; Load species icon into VRAM at tile a
+ push de
+ ld a, [wd265]
+ call ReadMonMenuIcon
+ ld [CurIcon], a
+ pop de
+ ld a, e
+ call GetIconGFX
+ ret
+; 8e9bc
-Group12Sprites: ; 145a4
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_POKEFAN_M
- db SPRITE_MACHOP
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_FISHER
- db SPRITE_TEACHER
- db SPRITE_SUPER_NERD
- db SPRITE_BIG_SNORLAX
- db SPRITE_BIKER
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 145bb
-Group17Sprites: ; 145bb
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_POKEFAN_M
- db SPRITE_MACHOP
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_FISHER
- db SPRITE_TEACHER
- db SPRITE_SUPER_NERD
- db SPRITE_BIG_SNORLAX
- db SPRITE_BIKER
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 145d2
+Function8e9bc: ; 8e9bc (23:69bc)
+ push de
+ ld a, [wd265]
+ call ReadMonMenuIcon
+ ld [CurIcon], a
+ pop de
+ ld a, e
+ call GetIcon_a
+ ret
+; 8e9cc (23:69cc)
-Group16Sprites: ; 145d2
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_POKEFAN_M
- db SPRITE_BUENA
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_FISHER
- db SPRITE_TEACHER
- db SPRITE_SUPER_NERD
- db SPRITE_MACHOP
- db SPRITE_BIKER
- db SPRITE_POKE_BALL
- db SPRITE_BOULDER
-; 145e9
+Function8e9cc: ; 8e9cc
+ push de
+ ld a, [wd265]
+ call ReadMonMenuIcon
+ ld [CurIcon], a
+ pop de
+ call GetIcon_de
+ ret
+; 8e9db
-Group24Sprites: ; 145e9
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_SILVER
- db SPRITE_TEACHER
- db SPRITE_FISHER
- db SPRITE_COOLTRAINER_M
- db SPRITE_YOUNGSTER
- db SPRITE_MONSTER
- db SPRITE_GRAMPS
- db SPRITE_BUG_CATCHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 14600
+Function8e9db: ; 8e9db (23:69db)
+ ld a, [wc3b7]
-Group26Sprites: ; 14600
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_SILVER
- db SPRITE_TEACHER
- db SPRITE_FISHER
- db SPRITE_COOLTRAINER_M
- db SPRITE_YOUNGSTER
- db SPRITE_MONSTER
- db SPRITE_GRAMPS
- db SPRITE_BUG_CATCHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 14617
+GetIconGFX: ; 8e9de
+ call GetIcon_a
+ ld de, $80 ; 8 tiles
+ add hl, de
+ ld de, HeldItemIcons
+ lb bc, BANK(HeldItemIcons), 2
+ call GetGFXUnlessMobile
+ ld a, [wc3b7]
+ add 10
+ ld [wc3b7], a
+ ret
-Group19Sprites: ; 14617
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_SILVER
- db SPRITE_TEACHER
- db SPRITE_FISHER
- db SPRITE_COOLTRAINER_M
- db SPRITE_YOUNGSTER
- db SPRITE_MONSTER
- db SPRITE_GRAMPS
- db SPRITE_BUG_CATCHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 1462e
+HeldItemIcons:
+INCBIN "gfx/icon/mail.2bpp"
+INCBIN "gfx/icon/item.2bpp"
+; 8ea17
-Group10Sprites: ; 1462e
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_FISHER
- db SPRITE_LASS
- db SPRITE_OFFICER
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_COOLTRAINER_M
- db SPRITE_BUG_CATCHER
- db SPRITE_SUPER_NERD
- db SPRITE_WEIRD_TREE
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 14645
+GetIcon_de: ; 8ea17
+; Load icon graphics into VRAM starting from tile de.
+ ld l, e
+ ld h, d
+ jr GetIcon
-Group4Sprites: ; 14645
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_FISHER
- db SPRITE_LASS
- db SPRITE_OFFICER
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_COOLTRAINER_M
- db SPRITE_BUG_CATCHER
- db SPRITE_SUPER_NERD
- db SPRITE_WEIRD_TREE
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 1465c
+GetIcon_a: ; 8ea1b
+; Load icon graphics into VRAM starting from tile a.
+ ld l, a
+ ld h, 0
-Group8Sprites: ; 1465c
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_KURT_OUTSIDE
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_OFFICER
- db SPRITE_POKEFAN_M
- db SPRITE_BLACK_BELT
- db SPRITE_TEACHER
- db SPRITE_AZALEA_ROCKET
- db SPRITE_LASS
- db SPRITE_SILVER
- db SPRITE_FRUIT_TREE
- db SPRITE_SLOWPOKE
-; 14673
+GetIcon: ; 8ea1e
+; Load icon graphics into VRAM starting from tile hl.
-Group11Sprites: ; 14673
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_POKE_BALL
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_OFFICER
- db SPRITE_POKEFAN_M
- db SPRITE_DAYCARE_MON_1
- db SPRITE_COOLTRAINER_F
- db SPRITE_ROCKET
- db SPRITE_LASS
- db SPRITE_DAYCARE_MON_2
- db SPRITE_FRUIT_TREE
- db SPRITE_SLOWPOKE
-; 1468a
+; One tile is 16 bytes long.
+rept 4
+ add hl, hl
+endr
-Group22Sprites: ; 1468a
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_STANDING_YOUNGSTER
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_OLIVINE_RIVAL
- db SPRITE_POKEFAN_M
- db SPRITE_LASS
- db SPRITE_BUENA
- db SPRITE_SWIMMER_GIRL
- db SPRITE_SAILOR
- db SPRITE_POKEFAN_F
- db SPRITE_SUPER_NERD
- db SPRITE_TAUROS
- db SPRITE_FRUIT_TREE
- db SPRITE_ROCK
-; 146a1
+ ld de, VTiles0
+ add hl, de
+ push hl
-Group1Sprites: ; 146a1
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_STANDING_YOUNGSTER
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_OLIVINE_RIVAL
- db SPRITE_POKEFAN_M
- db SPRITE_LASS
- db SPRITE_BUENA
- db SPRITE_SWIMMER_GIRL
- db SPRITE_SAILOR
- db SPRITE_POKEFAN_F
- db SPRITE_SUPER_NERD
- db SPRITE_TAUROS
- db SPRITE_FRUIT_TREE
- db SPRITE_ROCK
-; 146b8
+; The icons are contiguous, in order and of the same
+; size, so the pointer table is somewhat redundant.
+ ld a, [CurIcon]
+ push hl
+ ld l, a
+ ld h, 0
+ add hl, hl
+ ld de, IconPointers
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ pop hl
-Group9Sprites: ; 146b8
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_LANCE
- db SPRITE_GRAMPS
- db SPRITE_SUPER_NERD
- db SPRITE_COOLTRAINER_F
- db SPRITE_FISHER
- db SPRITE_COOLTRAINER_M
- db SPRITE_LASS
- db SPRITE_YOUNGSTER
- db SPRITE_GYARADOS
- db SPRITE_FRUIT_TREE
- db SPRITE_POKE_BALL
-; 146cf
+ lb bc, BANK(Icons), 8
+ call GetGFXUnlessMobile
-Group2Sprites: ; 146cf
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_LASS
- db SPRITE_SUPER_NERD
- db SPRITE_COOLTRAINER_M
- db SPRITE_POKEFAN_M
- db SPRITE_BLACK_BELT
- db SPRITE_COOLTRAINER_F
- db SPRITE_FISHER
- db SPRITE_FRUIT_TREE
- db SPRITE_POKE_BALL
-; 146e6
+ pop hl
+ ret
+; 8ea3f
-Group5Sprites: ; 146e6
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_LASS
- db SPRITE_SUPER_NERD
- db SPRITE_COOLTRAINER_M
- db SPRITE_POKEFAN_M
- db SPRITE_BLACK_BELT
- db SPRITE_COOLTRAINER_F
- db SPRITE_FISHER
- db SPRITE_FRUIT_TREE
- db SPRITE_POKE_BALL
-; 146fd
+GetGFXUnlessMobile: ; 8ea3f
+ ld a, [wLinkMode]
+ cp LINK_MOBILE
+ jp nz, Request2bpp
+ jp Get2bpp_2
+; 8ea4a
-Group3Sprites: ; 146fd
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_GAMEBOY_KID
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_LASS
- db SPRITE_POKEFAN_F
- db SPRITE_TEACHER
- db SPRITE_YOUNGSTER
- db SPRITE_GROWLITHE
- db SPRITE_POKEFAN_M
- db SPRITE_ROCKER
- db SPRITE_FISHER
- db SPRITE_SCIENTIST
- db SPRITE_POKE_BALL
- db SPRITE_BOULDER
-; 14714
+Function8ea4a: ; 8ea4a
+ ld hl, wSpriteAnimationStructs
+ ld e, $6
+ ld a, [MenuSelection2]
+ ld d, a
+.loop
+ ld a, [hl]
+ and a
+ jr z, .next
+ cp d
+ jr z, .loadwithtwo
+ ld a, $0
+ jr .ok
-Group15Sprites: ; 14714
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_SAILOR
- db SPRITE_FISHING_GURU
- db SPRITE_GENTLEMAN
- db SPRITE_SUPER_NERD
- db SPRITE_HO_OH
- db SPRITE_TEACHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_YOUNGSTER
- db SPRITE_FAIRY
- db SPRITE_POKE_BALL
- db SPRITE_ROCK
-; 1472b
+.loadwithtwo
+ ld a, $2
-Group20Sprites: ; 1472b
- db SPRITE_OAK
- db SPRITE_FISHER
- db SPRITE_TEACHER
- db SPRITE_TWIN
- db SPRITE_POKEFAN_M
- db SPRITE_GRAMPS
- db SPRITE_FAIRY
- db SPRITE_SILVER
- db SPRITE_FISHING_GURU
- db SPRITE_POKE_BALL
- db SPRITE_POKEDEX
-; 14736
+.ok
+ push hl
+ ld c, l
+ ld b, h
+ ld hl, $2
+ add hl, bc
+ ld [hl], a
+ pop hl
+.next
+ ld bc, $10
+ add hl, bc
+ dec e
+ jr nz, .loop
+ ret
+; 8ea71
-SpriteHeaders: ; 14736
-INCLUDE "gfx/overworld/sprite_headers.asm"
-; 1499a
+Function8ea71: ; 8ea71
+ ld hl, wSpriteAnimationStructs
+ ld e, $6
+.loop
+ ld a, [hl]
+ and a
+ jr z, .zero
+ push hl
+ ld c, l
+ ld b, h
+ ld hl, $2
+ add hl, bc
+ ld [hl], $1
+ pop hl
+.zero
+ ld bc, $10
+ add hl, bc
+ dec e
+ jr nz, .loop
+ ret
+; 8ea8c (23:6a8c)
+
+Function8ea8c: ; 8ea8c
+ ld hl, wSpriteAnimationStructs
+ ld e, $6
+ ld a, [wd0e3]
+ ld d, a
+.asm_8ea95
+ ld a, [hl]
+ and a
+ jr z, .asm_8eaab
+ cp d
+ jr z, .asm_8eaa0
+ ld a, $3
+ jr .asm_8eaa2
+.asm_8eaa0
+ ld a, $2
+.asm_8eaa2
+ push hl
+ ld c, l
+ ld b, h
+ ld hl, $2
+ add hl, bc
+ ld [hl], a
+ pop hl
+.asm_8eaab
+ ld bc, $10
+ add hl, bc
+ dec e
+ jr nz, .asm_8ea95
+ ret
+
+INCLUDE "menu/mon_icons.asm"
--- a/engine/startmenu.asm
+++ b/engine/startmenu.asm
@@ -422,7 +422,7 @@
; Retire from the bug catching contest.
ld hl, .EndTheContestText
- call Function12cf5
+ call StartMenuYesNo
jr c, .DontEndContest
ld a, BANK(BugCatchingContestReturnToGateScript)
ld hl, BugCatchingContestReturnToGateScript
@@ -444,7 +444,7 @@
; Save the game.
call BufferScreen
- callba Function14a1a
+ callba SaveMenu
jr nc, .asm_12919
ld a, 0
ret
@@ -468,8 +468,8 @@
; Player status.
call FadeToMenu
- callba Function25105
- call Function2b3c
+ callba TrainerCard
+ call ReturnToCallingMenu
ld a, 0
ret
; 12937
@@ -483,7 +483,7 @@
call FadeToMenu
callba Pokedex
- call Function2b3c
+ call ReturnToCallingMenu
.asm_12949
ld a, 0
@@ -494,8 +494,8 @@
StartMenu_Pokegear: ; 1294c
call FadeToMenu
- callba Function90b8d
- call Function2b3c
+ callba PokeGear
+ call ReturnToCallingMenu
ld a, 0
ret
; 1295b
@@ -507,12 +507,13 @@
callba Pack
ld a, [wcf66]
and a
- jr nz, .asm_12970
- call Function2b3c
+ jr nz, .used_item
+ call ReturnToCallingMenu
ld a, 0
ret
-.asm_12970
- call Function2b4d
+
+.used_item
+ call ExitAllMenus
ld a, 4
ret
; 12976
@@ -532,9 +533,9 @@
call ClearBGPalettes
.menu
- callba Function5004f
- callba Function50405
- callba Function503e0
+ callba LoadPartyMenuGFX
+ callba InitPartyMenuWithCancel
+ callba InitPartyMenuGFX
.menunoreload
callba WritePartyMenuTilemap
@@ -556,7 +557,7 @@
jr z, .quit
.return
- call Function2b3c
+ call ReturnToCallingMenu
ld a, 0
ret
@@ -563,12 +564,12 @@
.quit
ld a, b
push af
- call Function2b4d
+ call ExitAllMenus
pop af
ret
; 129d5
-Function129d5: ; 129d5
+HasNoItems: ; 129d5
ld a, [NumItems]
and a
ret nz
@@ -580,15 +581,15 @@
ret nz
ld hl, TMsHMs
ld b, NUM_TMS + NUM_HMS
-.asm_129e9
+.loop
ld a, [hli]
and a
- jr nz, .asm_129f2
+ jr nz, .done
dec b
- jr nz, .asm_129e9
+ jr nz, .loop
scf
ret
-.asm_129f2
+.done
and a
ret
@@ -663,7 +664,7 @@
CantUseItem: ; 12a60
ld hl, CantUseItemText
- call Function2012
+ call MenuTextBoxWaitButton
ret
; 12a67
@@ -683,7 +684,7 @@
CancelPokemonAction: ; 12a79
- callba Function50405
+ callba InitPartyMenuWithCancel
callba Function8ea71
ld a, 1
ret
@@ -745,10 +746,10 @@
ld a, [CurPartyMon]
inc a
- ld [wd0e3], a
+ ld [wSwitchMon], a
callba Function8ea8c
- callba Function5042d
+ callba InitPartyMenuNoCancel
ld a, 4
ld [PartyMenuActionText], a
@@ -757,7 +758,7 @@
hlcoord 0, 1
ld bc, 20 * 2
- ld a, [wd0e3]
+ ld a, [wSwitchMon]
dec a
call AddNTimes
ld [hl], "▷"
@@ -774,9 +775,9 @@
xor a
ld [PartyMenuActionText], a
- callba Function5004f
- callba Function50405
- callba Function503e0
+ callba LoadPartyMenuGFX
+ callba InitPartyMenuWithCancel
+ callba InitPartyMenuGFX
ld a, 1
ret
@@ -882,7 +883,7 @@
jr .asm_12c08
.asm_12bf4
- call Function12cea
+ call GiveItemToPokemon
ld hl, MadeHoldText
call MenuTextBoxBackup
call GivePartyItem
@@ -897,10 +898,10 @@
ld [wd265], a
call GetItemName
ld hl, SwitchAlreadyHoldingText
- call Function12cf5
+ call StartMenuYesNo
jr c, .asm_12c4b
- call Function12cea
+ call GiveItemToPokemon
ld a, [wd265]
push af
ld a, [CurItem]
@@ -907,7 +908,7 @@
ld [wd265], a
pop af
ld [CurItem], a
- call Function12cdf
+ call ReceiveItemFromPokemon
jr nc, .asm_12c3c
ld hl, TookAndMadeHoldText
@@ -920,7 +921,7 @@
.asm_12c3c
ld a, [wd265]
ld [CurItem], a
- call Function12cdf
+ call ReceiveItemFromPokemon
ld hl, ItemStorageIsFullText
call MenuTextBoxBackup
@@ -936,10 +937,10 @@
ld [hl], a
ld d, a
callba ItemIsMail
- jr nc, .asm_12c5f
- call Function12cfe
+ jr nc, .done
+ call ComposeMailMessage
-.asm_12c5f
+.done
ret
; 12c60
@@ -953,7 +954,7 @@
jr z, .asm_12c8c
ld [CurItem], a
- call Function12cdf
+ call ReceiveItemFromPokemon
jr nc, .asm_12c94
callba ItemIsMail
@@ -1045,7 +1046,7 @@
; 12cdf
-Function12cdf: ; 12cdf
+ReceiveItemFromPokemon: ; 12cdf
ld a, $1
ld [wItemQuantityChangeBuffer], a
ld hl, NumItems
@@ -1053,13 +1054,13 @@
; 12cea
-Function12cea: ; 12cea (4:6cea)
+GiveItemToPokemon: ; 12cea (4:6cea)
ld a, $1
ld [wItemQuantityChangeBuffer], a
ld hl, NumItems
jp TossItem
-Function12cf5: ; 12cf5
+StartMenuYesNo: ; 12cf5
call MenuTextBox
call YesNoBox
jp ExitMenu
@@ -1066,15 +1067,15 @@
; 12cfe
-Function12cfe: ; 12cfe (4:6cfe)
- ld de, wd002
- callba Function11e75
+ComposeMailMessage: ; 12cfe (4:6cfe)
+ ld de, wTempMailMessage
+ callba _ComposeMailMessage
ld hl, PlayerName
- ld de, wd023
- ld bc, $a
+ ld de, wTempMailAuthor
+ ld bc, NAME_LENGTH - 1
call CopyBytes
ld hl, PlayerID
- ld bc, $2
+ ld bc, 2
call CopyBytes
ld a, [CurPartySpecies]
ld [de], a
@@ -1082,14 +1083,14 @@
ld a, [CurItem]
ld [de], a
ld a, [CurPartyMon]
- ld hl, sPartyScratch1
- ld bc, SCRATCHMON_STRUCT_LENGTH
+ ld hl, sPartyMail
+ ld bc, MAIL_STRUCT_LENGTH
call AddNTimes
ld d, h
ld e, l
- ld hl, wd002
- ld bc, SCRATCHMON_STRUCT_LENGTH
- ld a, BANK(sPartyScratch1)
+ ld hl, wTempMail
+ ld bc, MAIL_STRUCT_LENGTH
+ ld a, BANK(sPartyMail)
call GetSRAMBank
call CopyBytes
call CloseSRAM
@@ -1127,11 +1128,11 @@
.take
ld hl, .sendmailtopctext
- call Function12cf5
+ call StartMenuYesNo
jr c, .RemoveMailToBag
ld a, [CurPartyMon]
ld b, a
- callba Function4456e
+ callba SendMailToPC
jr c, .MailboxFull
ld hl, .sentmailtopctext
call MenuTextBoxBackup
@@ -1144,12 +1145,12 @@
.RemoveMailToBag
ld hl, .mailwilllosemessagetext
- call Function12cf5
+ call StartMenuYesNo
jr c, .done
call GetPartyItemLocation
ld a, [hl]
ld [CurItem], a
- call Function12cdf
+ call ReceiveItemFromPokemon
jr nc, .BagIsFull
call GetPartyItemLocation
ld [hl], $0
@@ -1240,14 +1241,14 @@
MonMenu_Cut: ; 12e1b
callba CutFunction
- ld a, [wd0ec]
+ ld a, [wFieldMoveSucceeded]
cp $1
- jr nz, .asm_12e2d
+ jr nz, .Fail
ld b, $4
ld a, $2
ret
-.asm_12e2d
+.Fail
ld a, $3
ret
; 12e30
@@ -1255,25 +1256,25 @@
MonMenu_Fly: ; 12e30
callba FlyFunction
- ld a, [wd0ec]
+ ld a, [wFieldMoveSucceeded]
cp $2
- jr z, .asm_12e4c
+ jr z, .Fail
cp $0
- jr z, .asm_12e4f
+ jr z, .Error
callba MobileFn_1060b5
ld b, $4
ld a, $2
ret
-.asm_12e4c
+.Fail
ld a, $3
ret
-.asm_12e4f
+.Error
ld a, $0
ret
-.asm_12e52
+.Unused
ld a, $1
ret
; 12e55
@@ -1280,14 +1281,14 @@
MonMenu_Flash: ; 12e55
callba Functionc8ac
- ld a, [wd0ec]
+ ld a, [wFieldMoveSucceeded]
cp $1
- jr nz, .asm_12e67
+ jr nz, .Fail
ld b, $4
ld a, $2
ret
-.asm_12e67
+.Fail
ld a, $3
ret
; 12e6a
@@ -1294,14 +1295,14 @@
MonMenu_Strength: ; 12e6a
callba StrengthFunction
- ld a, [wd0ec]
+ ld a, [wFieldMoveSucceeded]
cp $1
- jr nz, .asm_12e7c
+ jr nz, .Fail
ld b, $4
ld a, $2
ret
-.asm_12e7c
+.Fail
ld a, $3
ret
; 12e7f
@@ -1308,14 +1309,14 @@
MonMenu_Whirlpool: ; 12e7f
callba WhirlpoolFunction
- ld a, [wd0ec]
+ ld a, [wFieldMoveSucceeded]
cp $1
- jr nz, .asm_12e91
+ jr nz, .Fail
ld b, $4
ld a, $2
ret
-.asm_12e91
+.Fail
ld a, $3
ret
; 12e94
@@ -1322,14 +1323,14 @@
MonMenu_Waterfall: ; 12e94
callba Functioncade
- ld a, [wd0ec]
+ ld a, [wFieldMoveSucceeded]
cp $1
- jr nz, .asm_12ea6
+ jr nz, .Fail
ld b, $4
ld a, $2
ret
-.asm_12ea6
+.Fail
ld a, $3
ret
; 12ea9
@@ -1336,14 +1337,14 @@
MonMenu_Teleport: ; 12ea9
callba TeleportFunction
- ld a, [wd0ec]
+ ld a, [wFieldMoveSucceeded]
and a
- jr z, .asm_12eba
+ jr z, .Fail
ld b, $4
ld a, $2
ret
-.asm_12eba
+.Fail
ld a, $3
ret
; 12ebd
@@ -1350,14 +1351,14 @@
MonMenu_Surf: ; 12ebd
callba SurfFunction
- ld a, [wd0ec]
+ ld a, [wFieldMoveSucceeded]
and a
- jr z, .asm_12ece
+ jr z, .Fail
ld b, $4
ld a, $2
ret
-.asm_12ece
+.Fail
ld a, $3
ret
; 12ed1
@@ -1364,29 +1365,29 @@
MonMenu_Dig: ; 12ed1
callba DigFunction
- ld a, [wd0ec]
+ ld a, [wFieldMoveSucceeded]
cp $1
- jr nz, .asm_12ee3
+ jr nz, .Fail
ld b, $4
ld a, $2
ret
-.asm_12ee3
+.Fail
ld a, $3
ret
; 12ee6
MonMenu_Softboiled_MilkDrink: ; 12ee6
- call Function12f05
- jr nc, .asm_12ef3
- callba Functionf3df
- jr .asm_12ef9
+ call .CheckMonHasEnoughHP
+ jr nc, .NotEnoughHP
+ callba Softboiled_MilkDrinkFunction
+ jr .finish
-.asm_12ef3
- ld hl, UnknownText_0x12f00
+.NotEnoughHP
+ ld hl, .Text_NotEnoughHP
call PrintText
-.asm_12ef9
+.finish
xor a
ld [PartyMenuActionText], a
ld a, $3
@@ -1393,13 +1394,14 @@
ret
; 12f00
-UnknownText_0x12f00: ; 0x12f00
+.Text_NotEnoughHP: ; 0x12f00
; Not enough HP!
text_jump UnknownText_0x1c1ce3
db "@"
; 0x12f05
-Function12f05: ; 12f05
+.CheckMonHasEnoughHP: ; 12f05
+; Need to have at least (MaxHP / 5) HP left.
ld a, MON_MAXHP
call GetPartyParamLocation
ld a, [hli]
@@ -1406,9 +1408,9 @@
ld [hDividend + 0], a
ld a, [hl]
ld [hDividend + 1], a
- ld a, $5
+ ld a, 5
ld [hDivisor], a
- ld b, $2
+ ld b, 2
call Divide
ld a, MON_HP + 1
call GetPartyParamLocation
@@ -1422,14 +1424,14 @@
MonMenu_Headbutt: ; 12f26
callba HeadbuttFunction
- ld a, [wd0ec]
+ ld a, [wFieldMoveSucceeded]
cp $1
- jr nz, .asm_12f38
+ jr nz, .Fail
ld b, $4
ld a, $2
ret
-.asm_12f38
+.Fail
ld a, $3
ret
; 12f3b
@@ -1436,14 +1438,14 @@
MonMenu_RockSmash: ; 12f3b
callba RockSmashFunction
- ld a, [wd0ec]
+ ld a, [wFieldMoveSucceeded]
cp $1
- jr nz, .asm_12f4d
+ jr nz, .Fail
ld b, $4
ld a, $2
ret
-.asm_12f4d
+.Fail
ld a, $3
ret
; 12f50
@@ -1474,7 +1476,7 @@
Function12f73: ; 12f73
call SetUpMoveScreenBG
ld de, Unknown_12fb2
- call Function1bb1
+ call InitMenu3
call Function131ef
ld hl, wcfa5
set 6, [hl]
@@ -1503,7 +1505,7 @@
Function12fa0: ; 12fa0
push af
xor a
- ld [wd0e3], a
+ ld [wSwitchMon], a
ld hl, wcfa5
res 6, [hl]
call ClearSprites
@@ -1541,7 +1543,7 @@
call SetUpMoveScreenBG
call Function132d3
ld de, Unknown_13163
- call Function1bb1
+ call InitMenu3
.loop
call Function131ef
ld hl, wcfa5
@@ -1759,7 +1761,7 @@
xor a
ld [hBGMapMode], a
callba Functionfb571
- callba InefficientlyClear121BytesAtwc300
+ callba ClearSpriteAnims
ld a, [CurPartyMon]
ld e, a
ld d, $0
@@ -1793,7 +1795,7 @@
call PrintLevel
ld hl, PlayerHPPal
call SetHPPal
- ld b, $e
+ ld b, SCGB_0E
call GetSGBLayout
hlcoord 16, 0
lb bc, 1, 3
--- /dev/null
+++ b/engine/stats_screen.asm
@@ -1,0 +1,1150 @@
+Function4dc7b: ; 4dc7b (13:5c7b)
+ ld a, [wLinkMode]
+ cp LINK_MOBILE
+ jr nz, StatsScreenInit
+
+ ld a, [wBattleMode] ; wd22d (aliases: EnemyMonEnd)
+ and a
+ jr z, StatsScreenInit
+ jr Function4dc8f
+
+StatsScreenInit: ; 4dc8a
+ ld hl, StatsScreenMain
+ jr StatsScreenInit_gotaddress
+
+Function4dc8f: ; 4dc8f
+ ld hl, StatsScreenBattle
+ jr StatsScreenInit_gotaddress
+
+StatsScreenInit_gotaddress: ; 4dc94
+ ld a, [hMapAnims]
+ push af
+ xor a
+ ld [hMapAnims], a ; disable overworld tile animations
+ ld a, [wc2c6] ; whether sprite is to be mirrorred
+ push af
+ ld a, [wJumptableIndex]
+ ld b, a
+ ld a, [wcf64]
+ ld c, a
+
+ push bc
+ push hl
+ call ClearBGPalettes
+ call ClearTileMap
+ call UpdateSprites
+ callba Functionfb53e
+ pop hl
+ call _hl_
+ call ClearBGPalettes
+ call ClearTileMap
+ pop bc
+
+ ; restore old values
+ ld a, b
+ ld [wJumptableIndex], a
+ ld a, c
+ ld [wcf64], a
+ pop af
+ ld [wc2c6], a
+ pop af
+ ld [hMapAnims], a
+ ret
+; 0x4dcd2
+
+StatsScreenMain: ; 0x4dcd2
+ xor a
+ ld [wJumptableIndex], a
+ ; stupid interns
+ ld [wcf64], a
+ ld a, [wcf64]
+ and $fc
+ or $1
+ ld [wcf64], a
+.loop ; 4dce3
+ ld a, [wJumptableIndex]
+ and $7f
+ ld hl, StatsScreenPointerTable
+ rst JumpTable
+ call Function4dd3a ; check for keys?
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr z, .loop
+ ret
+; 0x4dcf7
+
+StatsScreenBattle: ; 4dcf7
+ xor a
+ ld [wJumptableIndex], a
+ ; stupid interns
+ ld [wcf64], a
+ ld a, [wcf64]
+ and $fc
+ or $1
+ ld [wcf64], a
+.loop
+ callba Function100dd2
+ ld a, [wJumptableIndex]
+ and $7f
+ ld hl, StatsScreenPointerTable
+ rst JumpTable
+ call Function4dd3a
+ callba Function100dfd
+ jr c, .exit
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr z, .loop
+
+.exit
+ ret
+; 4dd2a
+
+StatsScreenPointerTable: ; 4dd2a
+ dw MonStatsInit ; regular pokémon
+ dw EggStatsInit ; egg
+ dw StatsScreenWaitCry
+ dw Function4ddac
+ dw Function4ddc6
+ dw StatsScreenWaitCry
+ dw Function4ddd6
+ dw Function4dd6c
+; 4dd3a
+
+
+Function4dd3a: ; 4dd3a (13:5d3a)
+ ld hl, wcf64
+ bit 6, [hl]
+ jr nz, .asm_4dd49
+ bit 5, [hl]
+ jr nz, .asm_4dd56
+ call DelayFrame
+ ret
+.asm_4dd49
+ callba Functiond00b4
+ jr nc, .asm_4dd56
+ ld hl, wcf64
+ res 6, [hl]
+.asm_4dd56
+ ld hl, wcf64
+ res 5, [hl]
+ callba Function10402d
+ ret
+
+Function4dd62: ; 4dd62 (13:5d62)
+ ld a, [wJumptableIndex]
+ and $80
+ or h
+ ld [wJumptableIndex], a
+ ret
+
+Function4dd6c: ; 4dd6c (13:5d6c)
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+MonStatsInit: ; 4dd72 (13:5d72)
+ ld hl, wcf64
+ res 6, [hl]
+ call ClearBGPalettes
+ call ClearTileMap
+ callba Function10402d
+ call Function4ddf2
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .asm_4dd9b
+ call Function4deea
+ ld hl, wcf64
+ set 4, [hl]
+ ld h, $4
+ call Function4dd62
+ ret
+.asm_4dd9b
+ ld h, $1
+ call Function4dd62
+ ret
+
+EggStatsInit: ; 4dda1
+ call EggStatsScreen
+ ld a, [wJumptableIndex]
+ inc a
+ ld [wJumptableIndex], a
+ ret
+; 0x4ddac
+
+
+Function4ddac: ; 4ddac (13:5dac)
+ call Function4de2c
+ jr nc, .asm_4ddb7
+ ld h, $0
+ call Function4dd62
+ ret
+.asm_4ddb7
+ bit 0, a
+ jr nz, .asm_4ddc0
+ and $c3
+ jp Function4de54
+.asm_4ddc0
+ ld h, $7
+ call Function4dd62
+ ret
+
+Function4ddc6: ; 4ddc6 (13:5dc6)
+ call Function4dfb6
+ ld hl, wcf64
+ res 4, [hl]
+ ld a, [wJumptableIndex]
+ inc a
+ ld [wJumptableIndex], a
+ ret
+
+Function4ddd6: ; 4ddd6 (13:5dd6)
+ call Function4de2c
+ jr nc, .asm_4dde1
+ ld h, $0
+ call Function4dd62
+ ret
+
+.asm_4dde1
+ and $f3
+ jp Function4de54
+
+StatsScreenWaitCry: ; 4dde6 (13:5de6)
+ call IsSFXPlaying
+ ret nc
+ ld a, [wJumptableIndex]
+ inc a
+ ld [wJumptableIndex], a
+ ret
+
+Function4ddf2: ; 4ddf2 (13:5df2)
+ ld a, [MonType]
+ cp BREEDMON
+ jr nz, .asm_4de10
+ ld a, [wd018_Mon]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, wd018_Mon
+ ld de, TempMon
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call CopyBytes
+ jr .asm_4de2a
+.asm_4de10
+ callba CopyPkmnToTempMon
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .asm_4de2a
+ ld a, [MonType]
+ cp BOXMON
+ jr c, .asm_4de2a
+ callba Function50890
+.asm_4de2a
+ and a
+ ret
+
+Function4de2c: ; 4de2c (13:5e2c)
+ call GetJoypad
+ ld a, [MonType]
+ cp BREEDMON
+ jr nz, .notbreedmon
+ push hl
+ push de
+ push bc
+ callba Functione2f95
+ pop bc
+ pop de
+ pop hl
+ ld a, [wcf73]
+ and $c0
+ jr nz, .set_carry
+ ld a, [wcf73]
+ jr .clear_flags
+
+.notbreedmon
+ ld a, [hJoyPressed]
+.clear_flags
+ and a
+ ret
+
+.set_carry
+ scf
+ ret
+
+Function4de54: ; 4de54 (13:5e54)
+ push af
+ ld a, [wcf64]
+ and $3
+ ld c, a
+ pop af
+ bit 1, a
+ jp nz, Function4dee4
+ bit 5, a
+ jr nz, .asm_4dec7
+ bit 4, a
+ jr nz, .asm_4debd
+ bit 0, a
+ jr nz, .asm_4deb8
+ bit 6, a
+ jr nz, .asm_4dea0
+ bit 7, a
+ jr nz, .asm_4de77
+ jr .asm_4dece
+.asm_4de77
+ ld a, [MonType]
+ cp BOXMON
+ jr nc, .asm_4dece
+ and a
+ ld a, [PartyCount]
+ jr z, .asm_4de87
+ ld a, [OTPartyCount]
+.asm_4de87
+ ld b, a
+ ld a, [CurPartyMon]
+ inc a
+ cp b
+ jr z, .asm_4dece
+ ld [CurPartyMon], a
+ ld b, a
+ ld a, [MonType]
+ and a
+ jr nz, .asm_4dede
+ ld a, b
+ inc a
+ ld [wd0d8], a
+ jr .asm_4dede
+.asm_4dea0
+ ld a, [CurPartyMon]
+ and a
+ jr z, .asm_4dece
+ dec a
+ ld [CurPartyMon], a
+ ld b, a
+ ld a, [MonType]
+ and a
+ jr nz, .asm_4dede
+ ld a, b
+ inc a
+ ld [wd0d8], a
+ jr .asm_4dede
+.asm_4deb8
+ ld a, c
+ cp $3
+ jr z, Function4dee4
+.asm_4debd
+ inc c
+ ld a, $3
+ cp c
+ jr nc, .asm_4decf
+ ld c, $1
+ jr .asm_4decf
+.asm_4dec7
+ dec c
+ jr nz, .asm_4decf
+ ld c, $3
+ jr .asm_4decf
+.asm_4dece
+ ret
+.asm_4decf
+ ld a, [wcf64]
+ and $fc
+ or c
+ ld [wcf64], a
+ ld h, $4
+ call Function4dd62
+ ret
+.asm_4dede
+ ld h, $0
+ call Function4dd62
+ ret
+
+Function4dee4: ; 4dee4 (13:5ee4)
+ ld h, $7
+ call Function4dd62
+ ret
+
+Function4deea: ; 4deea (13:5eea)
+ call Function4df45
+ xor a
+ ld [hBGMapMode], a
+ ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo)
+ ld [wd265], a
+ ld [CurSpecies], a
+ hlcoord 8, 0
+ ld [hl], "№"
+ inc hl
+ ld [hl], "."
+ inc hl
+ hlcoord 10, 0
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
+ ld de, wd265
+ call PrintNum
+ hlcoord 14, 0
+ call PrintLevel
+ ld hl, Unknown_4df77
+ call Function4e528
+ call Function4e505
+ hlcoord 8, 2
+ call PlaceString
+ hlcoord 18, 0
+ call Function4df66
+ hlcoord 9, 4
+ ld a, "/"
+ ld [hli], a
+ ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo)
+ ld [wd265], a
+ call GetPokemonName
+ call PlaceString
+ call Function4df8f
+ call Function4df9b
+ call Function4dfa6
+ ret
+
+Function4df45: ; 4df45 (13:5f45)
+ ld hl, TempMonHP
+ ld a, [hli]
+ ld b, a
+ ld c, [hl]
+ ld hl, TempMonMaxHP
+ ld a, [hli]
+ ld d, a
+ ld e, [hl]
+ callba DrawPartyMenuHPBar
+ ld hl, wcda1
+ call SetHPPal
+ ld b, SCGB_03
+ call GetSGBLayout
+ call DelayFrame
+ ret
+
+Function4df66: ; 4df66 (13:5f66)
+ push hl
+ callba GetGender
+ pop hl
+ ret c
+ ld a, "♂"
+ jr nz, .got_gender
+ ld a, "♀"
+.got_gender
+ ld [hl], a
+ ret
+; 4df77 (13:5f77)
+
+Unknown_4df77: ; 4df77
+ dw PartyMonNicknames
+ dw OTPartyMonNicknames
+ dw sBoxMonNicknames
+ dw wd002
+; 4df7f
+
+Function4df7f: ; 4df7f
+ hlcoord 7, 0
+ ld bc, SCREEN_WIDTH
+ ld d, SCREEN_HEIGHT
+.loop
+ ld a, $31
+ ld [hl], a
+ add hl, bc
+ dec d
+ jr nz, .loop
+ ret
+; 4df8f
+
+Function4df8f: ; 4df8f (13:5f8f)
+ hlcoord 0, 7
+ ld b, SCREEN_WIDTH
+ ld a, "_"
+.loop
+ ld [hli], a
+ dec b
+ jr nz, .loop
+ ret
+
+Function4df9b: ; 4df9b (13:5f9b)
+ hlcoord 12, 6
+ ld [hl], "◀"
+ hlcoord 19, 6
+ ld [hl], "▶"
+ ret
+
+Function4dfa6: ; 4dfa6 (13:5fa6)
+ ld bc, TempMonDVs
+ callba CheckShininess
+ ret nc
+ hlcoord 19, 0
+ ld [hl], "<SHINY>"
+ ret
+
+Function4dfb6: ; 4dfb6 (13:5fb6)
+ ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo)
+ ld [wd265], a
+ ld [CurSpecies], a
+ xor a
+ ld [hBGMapMode], a
+ call Function4dfda
+ call Function4e002
+ call Function4dfed
+ ld hl, wcf64
+ bit 4, [hl]
+ jr nz, .asm_4dfd6
+ call SetPalettes
+ ret
+
+.asm_4dfd6
+ call Function4e226
+ ret
+
+Function4dfda: ; 4dfda (13:5fda)
+ ld a, [wcf64]
+ and $3
+ ld c, a
+ call Function4e4cd
+ hlcoord 0, 8
+ lb bc, 10, 20
+ call ClearBox
+ ret
+
+Function4dfed: ; 4dfed (13:5fed)
+ ld a, [wcf64]
+ and $3
+ ld c, a
+ callba Function8c8a
+ call DelayFrame
+ ld hl, wcf64
+ set 5, [hl]
+ ret
+
+Function4e002: ; 4e002 (13:6002)
+ ld a, [wcf64]
+ and $3
+ dec a
+ ld hl, Jumptable_4e00d
+ rst JumpTable
+ ret
+
+Jumptable_4e00d: ; 4e00d (13:600d)
+ dw Function4e013
+ dw Function4e147
+ dw Function4e1ae
+
+
+Function4e013: ; 4e013 (13:6013)
+ hlcoord 0, 9
+ ld b, $0
+ predef DrawPlayerHP
+ hlcoord 8, 9
+ ld [hl], $41
+ ld de, String_4e119
+ hlcoord 0, 12
+ call PlaceString
+ ld a, [TempMonPokerusStatus]
+ ld b, a
+ and $f
+ jr nz, .asm_4e055
+ ld a, b
+ and $f0
+ jr z, .asm_4e03d
+ hlcoord 8, 8
+ ld [hl], $e8
+.asm_4e03d
+ ld a, [MonType]
+ cp $2
+ jr z, .asm_4e060
+ hlcoord 6, 13
+ push hl
+ ld de, TempMonStatus
+ predef PlaceStatusString
+ pop hl
+ jr nz, .asm_4e066
+ jr .asm_4e060
+.asm_4e055
+ ld de, String_4e142
+ hlcoord 1, 13
+ call PlaceString
+ jr .asm_4e066
+.asm_4e060
+ ld de, String_4e127
+ call PlaceString
+.asm_4e066
+ hlcoord 1, 15
+ predef PrintMonTypes
+ hlcoord 9, 8
+ ld de, $14
+ ld b, $a
+ ld a, $31
+.asm_4e078
+ ld [hl], a
+ add hl, de
+ dec b
+ jr nz, .asm_4e078
+ ld de, String_4e12b
+ hlcoord 10, 9
+ call PlaceString
+ hlcoord 17, 14
+ call Function4e0d3
+ hlcoord 13, 10
+ lb bc, 3, 7
+ ld de, TempMonExp
+ call PrintNum
+ call Function4e0e7
+ hlcoord 13, 13
+ lb bc, 3, 7
+ ld de, Buffer1 ; wd1ea (aliases: MagikarpLength)
+ call PrintNum
+ ld de, String_4e136
+ hlcoord 10, 12
+ call PlaceString
+ ld de, String_4e13f
+ hlcoord 14, 14
+ call PlaceString
+ hlcoord 11, 16
+ ld a, [TempMonLevel]
+ ld b, a
+ ld de, TempMonExp + 2
+ predef FillInExpBar
+ hlcoord 10, 16
+ ld [hl], $40
+ hlcoord 19, 16
+ ld [hl], $41
+ ret
+
+Function4e0d3: ; 4e0d3 (13:60d3)
+ ld a, [TempMonLevel]
+ push af
+ cp MAX_LEVEL
+ jr z, .asm_4e0df
+ inc a
+ ld [TempMonLevel], a
+.asm_4e0df
+ call PrintLevel
+ pop af
+ ld [TempMonLevel], a
+ ret
+
+Function4e0e7: ; 4e0e7 (13:60e7)
+ ld a, [TempMonLevel]
+ cp MAX_LEVEL
+ jr z, .asm_4e111
+ inc a
+ ld d, a
+ callba CalcExpAtLevel
+rept 2
+ ld hl, TempMonExp + 2
+endr
+ ld a, [$ffb6]
+ sub [hl]
+ dec hl
+ ld [wd1ec], a
+ ld a, [$ffb5]
+ sbc [hl]
+ dec hl
+ ld [Buffer2], a ; wd1eb (aliases: MovementType)
+ ld a, [hQuotient]
+ sbc [hl]
+ ld [Buffer1], a ; wd1ea (aliases: MagikarpLength)
+ ret
+.asm_4e111
+ ld hl, Buffer1 ; wd1ea (aliases: MagikarpLength)
+ xor a
+rept 2
+ ld [hli], a
+endr
+ ld [hl], a
+ ret
+; 4e119 (13:6119)
+
+String_4e119: ; 4e119
+ db "STATUS/"
+ next "TYPE/@"
+; 4e127
+
+String_4e127: ; 4e127
+ db "OK @"
+; 4e12b
+
+String_4e12b: ; 4e12b
+ db "EXP POINTS@"
+; 4e136
+
+String_4e136: ; 4e136
+ db "LEVEL UP@"
+; 4e13f
+
+String_4e13f: ; 4e13f
+ db "TO@"
+; 4e142
+
+String_4e142: ; 4e142
+ db "#RUS@"
+; 4e147
+
+Function4e147: ; 4e147 (13:6147)
+ ld de, String_4e1a0
+ hlcoord 0, 8
+ call PlaceString
+ call Function4e189
+ hlcoord 8, 8
+ call PlaceString
+ ld de, String_4e1a9
+ hlcoord 0, 10
+ call PlaceString
+ ld hl, TempMonMoves
+ ld de, wListMoves_MoveIndicesBuffer
+ ld bc, NUM_MOVES
+ call CopyBytes
+ hlcoord 8, 10
+ ld a, SCREEN_WIDTH * 2
+ ld [Buffer1], a
+ predef ListMoves
+ hlcoord 12, 11
+ ld a, $28
+ ld [Buffer1], a
+ predef Function50c50
+ ret
+
+Function4e189: ; 4e189 (13:6189)
+ ld de, String_4e1a5
+ ld a, [TempMonItem]
+ and a
+ ret z
+ ld b, a
+ callba Function28771
+ ld a, b
+ ld [wd265], a
+ call GetItemName
+ ret
+; 4e1a0 (13:61a0)
+
+String_4e1a0: ; 4e1a0
+ db "ITEM@"
+; 4e1a5
+
+String_4e1a5: ; 4e1a5
+ db "---@"
+; 4e1a9
+
+String_4e1a9: ; 4e1a9
+ db "MOVE@"
+; 4e1ae
+
+Function4e1ae: ; 4e1ae (13:61ae)
+ call Function4e1cc
+ hlcoord 10, 8
+ ld de, $14
+ ld b, $a
+ ld a, $31
+.asm_4e1bb
+ ld [hl], a
+ add hl, de
+ dec b
+ jr nz, .asm_4e1bb
+ hlcoord 11, 8
+ ld bc, $6
+ predef PrintTempMonStats
+ ret
+
+Function4e1cc: ; 4e1cc (13:61cc)
+ ld de, IDNoString
+ hlcoord 0, 9
+ call PlaceString
+ ld de, OTString
+ hlcoord 0, 12
+ call PlaceString
+ hlcoord 2, 10
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ ld de, TempMonID
+ call PrintNum
+ ld hl, Unknown_4e216
+ call Function4e528
+ call Function4e505
+ callba CheckNickErrors
+ hlcoord 2, 13
+ call PlaceString
+ ld a, [TempMonCaughtGender]
+ and a
+ jr z, .asm_4e215
+ cp $7f
+ jr z, .asm_4e215
+ and $80
+ ld a, "♂"
+ jr z, .asm_4e211
+ ld a, "♀"
+.asm_4e211
+ hlcoord 9, 13
+ ld [hl], a
+.asm_4e215
+ ret
+; 4e216 (13:6216)
+
+Unknown_4e216: ; 4e216
+ dw PartyMonOT
+ dw OTPartyMonOT
+ dw sBoxMonOT
+ dw wd00d
+; 4e21e
+
+IDNoString: ; 4e21e
+ db $73, "№.@"
+
+OTString: ; 4e222
+ db "OT/@"
+; 4e226
+
+
+Function4e226: ; 4e226 (13:6226)
+ ld hl, TempMonDVs
+ predef GetUnownLetter
+ call Function4e2ad
+ jr c, .asm_4e238
+ and a
+ jr z, .asm_4e23f
+ jr .asm_4e246
+.asm_4e238
+ call Function4e271
+ call SetPalettes
+ ret
+.asm_4e23f
+ call Function4e253
+ call SetPalettes
+ ret
+.asm_4e246
+ call SetPalettes
+ call Function4e253
+ ld a, [CurPartySpecies]
+ call PlayCry2
+ ret
+
+Function4e253: ; 4e253 (13:6253)
+ ld hl, wcf64
+ set 5, [hl]
+ ld a, [CurPartySpecies]
+ cp UNOWN
+ jr z, .asm_4e266
+ hlcoord 0, 0
+ call PrepMonFrontpic
+ ret
+.asm_4e266
+ xor a
+ ld [wc2c6], a
+ hlcoord 0, 0
+ call _PrepMonFrontpic
+ ret
+
+Function4e271: ; 4e271 (13:6271)
+ ld a, [CurPartySpecies]
+ cp UNOWN
+ jr z, .asm_4e281
+ ld a, $1
+ ld [wc2c6], a
+ call Function4e289
+ ret
+.asm_4e281
+ xor a
+ ld [wc2c6], a
+ call Function4e289
+ ret
+
+Function4e289: ; 4e289 (13:6289)
+ ld a, [CurPartySpecies]
+ call IsAPokemon
+ ret c
+ call Function4e307
+ ld de, VTiles2 tile $00
+ predef FrontpicPredef
+ hlcoord 0, 0
+ ld d, $0
+ ld e, $2
+ predef LoadMonAnimation
+ ld hl, wcf64
+ set 6, [hl]
+ ret
+
+Function4e2ad: ; 4e2ad (13:62ad)
+ ld a, [MonType]
+ ld hl, .Jumptable
+ rst JumpTable
+ ret
+
+.Jumptable: ; 4e2b5 (13:62b5)
+ dw Function4e2bf
+ dw Function4e2cf
+ dw Function4e2d1
+ dw Function4e2ed
+ dw Function4e301
+
+
+Function4e2bf: ; 4e2bf (13:62bf)
+ ld a, [CurPartyMon]
+ ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ ld b, h
+ ld c, l
+ jr Function4e2f2
+
+Function4e2cf: ; 4e2cf (13:62cf)
+ xor a
+ ret
+
+Function4e2d1: ; 4e2d1 (13:62d1)
+ ld hl, sBoxMons
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld b, h
+ ld c, l
+ ld a, BANK(sBoxMons)
+ call GetSRAMBank
+ call Function4e2f2
+ push af
+ call CloseSRAM
+ pop af
+ ret
+
+Function4e2ed: ; 4e2ed (13:62ed)
+ ld bc, TempMonSpecies ; wd10e (aliases: TempMon)
+ jr Function4e2f2 ; utterly pointless
+
+Function4e2f2: ; 4e2f2 (13:62f2)
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .egg
+ call CheckFaintedFrzSlp
+ jr c, Function4e305
+.egg
+ xor a
+ scf
+ ret
+
+Function4e301: ; 4e301 (13:6301)
+ ld a, $1
+ and a
+ ret
+Function4e305: ; 4e305 (13:6305)
+ xor a
+ ret
+
+Function4e307: ; 4e307 (13:6307)
+ nop
+ push hl
+ push de
+ push bc
+ push af
+ call DelayFrame
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+ ld de, TextBoxSpaceGFX
+ lb bc, BANK(TextBoxSpaceGFX), 1
+ ld hl, VTiles2 tile $7f
+ call Get2bpp
+ pop af
+ ld [rVBK], a
+ pop af
+ pop bc
+ pop de
+ pop hl
+ ret
+; 4e32a (13:632a)
+
+Unknown_4e32a: ; 4e32a
+; A blank tile?
+ ds 16
+; 4e33a
+
+EggStatsScreen: ; 4e33a
+ xor a
+ ld [hBGMapMode], a
+ ld hl, wcda1
+ call SetHPPal
+ ld b, SCGB_03
+ call GetSGBLayout
+ call Function4df8f
+ ld de, EggString
+ hlcoord 8, 1
+ call PlaceString
+ ld de, IDNoString
+ hlcoord 8, 3
+ call PlaceString
+ ld de, OTString
+ hlcoord 8, 5
+ call PlaceString
+ ld de, FiveQMarkString
+ hlcoord 11, 3
+ call PlaceString
+ ld de, FiveQMarkString
+ hlcoord 11, 5
+ call PlaceString
+ ld a, [TempMonHappiness] ; egg status
+ ld de, EggSoonString
+ cp $6
+ jr c, .picked
+ ld de, EggCloseString
+ cp $b
+ jr c, .picked
+ ld de, EggMoreTimeString
+ cp $29
+ jr c, .picked
+ ld de, EggALotMoreTimeString
+.picked
+ hlcoord 1, 9
+ call PlaceString
+ ld hl, wcf64
+ set 5, [hl]
+ call SetPalettes ; pals
+ call DelayFrame
+ hlcoord 0, 0
+ call PrepMonFrontpic
+ callba Function10402d
+ call Function4e497
+
+ ld a, [TempMonHappiness]
+ cp 6
+ ret nc
+ ld de, SFX_2_BOOPS
+ call PlaySFX
+ ret
+; 0x4e3c0
+
+EggString: ; 4e3c0
+ db "EGG@"
+
+FiveQMarkString: ; 4e3c4
+ db "?????@"
+
+EggSoonString: ; 0x4e3ca
+ db "It's making sounds"
+ next "inside. It's going"
+ next "to hatch soon!@"
+
+EggCloseString: ; 0x4e3fd
+ db "It moves around"
+ next "inside sometimes."
+ next "It must be close"
+ next "to hatching.@"
+
+EggMoreTimeString: ; 0x4e43d
+ db "Wonder what's"
+ next "inside? It needs"
+ next "more time, though.@"
+
+EggALotMoreTimeString: ; 0x4e46e
+ db "This EGG needs a"
+ next "lot more time to"
+ next "hatch.@"
+; 0x4e497
+
+
+Function4e497: ; 4e497 (13:6497)
+ call Function4e2ad
+ ret nc
+ ld a, [TempMonHappiness]
+ ld e, $7
+ cp $6
+ jr c, .asm_4e4ab
+ ld e, $8
+ cp $b
+ jr c, .asm_4e4ab
+ ret
+.asm_4e4ab
+ push de
+ ld a, $1
+ ld [wc2c6], a
+ call Function4e307
+ ld de, VTiles2 tile $00
+ predef FrontpicPredef
+ pop de
+ hlcoord 0, 0
+ ld d, $0
+ predef LoadMonAnimation
+ ld hl, wcf64
+ set 6, [hl]
+ ret
+
+Function4e4cd: ; 4e4cd (13:64cd)
+ hlcoord 13, 5
+ ld a, $36
+ call .load_square
+ hlcoord 15, 5
+ ld a, $36
+ call .load_square
+ hlcoord 17, 5
+ ld a, $36
+ call .load_square
+ ld a, c
+ cp $2
+ ld a, $3a
+ hlcoord 13, 5
+ jr c, .load_square
+ hlcoord 15, 5
+ jr z, .load_square
+ hlcoord 17, 5
+.load_square: ; 4e4f7 (13:64f7)
+ push bc
+ ld [hli], a
+ inc a
+ ld [hld], a
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ inc a
+ ld [hli], a
+ inc a
+ ld [hl], a
+ pop bc
+ ret
+
+Function4e505: ; 4e505 (13:6505)
+ ld de, StringBuffer1
+ ld bc, PKMN_NAME_LENGTH
+ jr .okay ; uuterly pointless
+.okay
+ ld a, [MonType]
+ cp BOXMON
+ jr nz, .partymon
+ ld a, BANK(sBoxMonNicknames)
+ call GetSRAMBank
+ push de
+ call CopyBytes
+ pop de
+ call CloseSRAM
+ ret
+
+.partymon
+ push de
+ call CopyBytes
+ pop de
+ ret
+
+Function4e528: ; 4e528 (13:6528)
+ ld a, [MonType]
+ add a
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [MonType]
+ cp $3
+ ret z
+ ld a, [CurPartyMon]
+ jp SkipNames
+
+
+CheckFaintedFrzSlp: ; 4e53f
+ ld hl, MON_HP
+ add hl, bc
+ ld a, [hli]
+ or [hl]
+ jr z, .fainted_frz_slp
+ ld hl, MON_STATUS
+ add hl, bc
+ ld a, [hl]
+ and (1 << FRZ) | SLP
+ jr nz, .fainted_frz_slp
+ and a
+ ret
+
+.fainted_frz_slp
+ scf
+ ret
+; 4e554
--- /dev/null
+++ b/engine/time_capsule/conversion.asm
@@ -1,0 +1,684 @@
+; These functions seem to be related to backwards compatibility
+
+Functionfb57e: ; fb57e
+ ld a, [wd003]
+ ld hl, OTPartyMon1Species
+ call GetPartyLocation
+ push hl
+ ld a, [wd003]
+ inc a
+ ld c, a
+ ld b, 0
+ ld hl, OTPartyCount
+ add hl, bc
+ ld a, [hl]
+ pop hl
+ cp EGG
+ jr z, .asm_fb59c
+ cp [hl]
+ jr nz, .asm_fb5db
+
+.asm_fb59c
+ ld b, h
+ ld c, l
+ ld hl, MON_LEVEL
+ add hl, bc
+ ld a, [hl]
+ cp 101
+ jr nc, .asm_fb5db
+ ld a, [wLinkMode]
+ cp LINK_TIMECAPSULE
+ jr nz, .asm_fb5d9
+ ld hl, OTPartySpecies
+ ld a, [wd003]
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld a, [hl]
+
+ ; Magnemite and Magneton's types changed
+ ; from Electric to Electric/Steel.
+ cp MAGNEMITE
+ jr z, .asm_fb5d9
+ cp MAGNETON
+ jr z, .asm_fb5d9
+
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, wcbea
+rept 2
+ add hl, bc
+endr
+ ld a, [BaseType1]
+ cp [hl]
+ jr nz, .asm_fb5db
+ inc hl
+ ld a, [BaseType2]
+ cp [hl]
+ jr nz, .asm_fb5db
+
+.asm_fb5d9
+ and a
+ ret
+
+.asm_fb5db
+ scf
+ ret
+; fb5dd
+
+Functionfb5dd: ; fb5dd
+ ld a, [wd002]
+ ld d, a
+ ld a, [PartyCount]
+ ld b, a
+ ld c, $0
+.asm_fb5e7
+ ld a, c
+ cp d
+ jr z, .asm_fb5f8
+ push bc
+ ld a, c
+ ld hl, PartyMon1HP
+ call GetPartyLocation
+ pop bc
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_fb60b
+
+.asm_fb5f8
+ inc c
+ dec b
+ jr nz, .asm_fb5e7
+ ld a, [wd003]
+ ld hl, OTPartyMon1HP
+ call GetPartyLocation
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_fb60b
+ scf
+ ret
+
+.asm_fb60b
+ and a
+ ret
+; fb60d
+
+Functionfb60d: ; fb60d
+ hlcoord 4, 0
+ ld de, PlayerName
+ call PlaceString
+ ld a, $14
+ ld [bc], a
+ hlcoord 4, 8
+ ld de, wd26b
+ call PlaceString
+ ld a, $14
+ ld [bc], a
+ hlcoord 7, 1
+ ld de, PartySpecies
+ call Functionfb634
+ hlcoord 7, 9
+ ld de, OTPartySpecies
+
+Functionfb634: ; fb634
+ ld c, $0
+.asm_fb636
+ ld a, [de]
+ cp $ff
+ ret z
+ ld [wd265], a
+ push bc
+ push hl
+ push de
+ push hl
+ ld a, c
+ ld [hProduct], a
+ call GetPokemonName
+ pop hl
+ call PlaceString
+ pop de
+ inc de
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ inc c
+ jr .asm_fb636
+; fb656
+
+KantoMonSpecials: ; fb656
+; The original special base stat for
+; each Kanto monster from Red/Blue.
+ db 65 ; BULBASAUR
+ db 80 ; IVYSAUR
+ db 100 ; VENUSAUR
+ db 50 ; CHARMANDER
+ db 65 ; CHARMELEON
+ db 85 ; CHARIZARD
+ db 50 ; SQUIRTLE
+ db 65 ; WARTORTLE
+ db 85 ; BLASTOISE
+ db 20 ; CATERPIE
+ db 25 ; METAPOD
+ db 80 ; BUTTERFREE
+ db 20 ; WEEDLE
+ db 25 ; KAKUNA
+ db 45 ; BEEDRILL
+ db 35 ; PIDGEY
+ db 50 ; PIDGEOTTO
+ db 70 ; PIDGEOT
+ db 25 ; RATTATA
+ db 50 ; RATICATE
+ db 31 ; SPEAROW
+ db 61 ; FEAROW
+ db 40 ; EKANS
+ db 65 ; ARBOK
+ db 50 ; PIKACHU
+ db 90 ; RAICHU
+ db 30 ; SANDSHREW
+ db 55 ; SANDSLASH
+ db 40 ; NIDORAN_F
+ db 55 ; NIDORINA
+ db 75 ; NIDOQUEEN
+ db 40 ; NIDORAN_M
+ db 55 ; NIDORINO
+ db 75 ; NIDOKING
+ db 60 ; CLEFAIRY
+ db 85 ; CLEFABLE
+ db 65 ; VULPIX
+ db 100 ; NINETALES
+ db 25 ; JIGGLYPUFF
+ db 50 ; WIGGLYTUFF
+ db 40 ; ZUBAT
+ db 75 ; GOLBAT
+ db 75 ; ODDISH
+ db 85 ; GLOOM
+ db 100 ; VILEPLUME
+ db 55 ; PARAS
+ db 80 ; PARASECT
+ db 40 ; VENONAT
+ db 90 ; VENOMOTH
+ db 45 ; DIGLETT
+ db 70 ; DUGTRIO
+ db 40 ; MEOWTH
+ db 65 ; PERSIAN
+ db 50 ; PSYDUCK
+ db 80 ; GOLDUCK
+ db 35 ; MANKEY
+ db 60 ; PRIMEAPE
+ db 50 ; GROWLITHE
+ db 80 ; ARCANINE
+ db 40 ; POLIWAG
+ db 50 ; POLIWHIRL
+ db 70 ; POLIWRATH
+ db 105 ; ABRA
+ db 120 ; KADABRA
+ db 135 ; ALAKAZAM
+ db 35 ; MACHOP
+ db 50 ; MACHOKE
+ db 65 ; MACHAMP
+ db 70 ; BELLSPROUT
+ db 85 ; WEEPINBELL
+ db 100 ; VICTREEBEL
+ db 100 ; TENTACOOL
+ db 120 ; TENTACRUEL
+ db 30 ; GEODUDE
+ db 45 ; GRAVELER
+ db 55 ; GOLEM
+ db 65 ; PONYTA
+ db 80 ; RAPIDASH
+ db 40 ; SLOWPOKE
+ db 80 ; SLOWBRO
+ db 95 ; MAGNEMITE
+ db 120 ; MAGNETON
+ db 58 ; FARFETCH_D
+ db 35 ; DODUO
+ db 60 ; DODRIO
+ db 70 ; SEEL
+ db 95 ; DEWGONG
+ db 40 ; GRIMER
+ db 65 ; MUK
+ db 45 ; SHELLDER
+ db 85 ; CLOYSTER
+ db 100 ; GASTLY
+ db 115 ; HAUNTER
+ db 130 ; GENGAR
+ db 30 ; ONIX
+ db 90 ; DROWZEE
+ db 115 ; HYPNO
+ db 25 ; KRABBY
+ db 50 ; KINGLER
+ db 55 ; VOLTORB
+ db 80 ; ELECTRODE
+ db 60 ; EXEGGCUTE
+ db 125 ; EXEGGUTOR
+ db 40 ; CUBONE
+ db 50 ; MAROWAK
+ db 35 ; HITMONLEE
+ db 35 ; HITMONCHAN
+ db 60 ; LICKITUNG
+ db 60 ; KOFFING
+ db 85 ; WEEZING
+ db 30 ; RHYHORN
+ db 45 ; RHYDON
+ db 105 ; CHANSEY
+ db 100 ; TANGELA
+ db 40 ; KANGASKHAN
+ db 70 ; HORSEA
+ db 95 ; SEADRA
+ db 50 ; GOLDEEN
+ db 80 ; SEAKING
+ db 70 ; STARYU
+ db 100 ; STARMIE
+ db 100 ; MR__MIME
+ db 55 ; SCYTHER
+ db 95 ; JYNX
+ db 85 ; ELECTABUZZ
+ db 85 ; MAGMAR
+ db 55 ; PINSIR
+ db 70 ; TAUROS
+ db 20 ; MAGIKARP
+ db 100 ; GYARADOS
+ db 95 ; LAPRAS
+ db 48 ; DITTO
+ db 65 ; EEVEE
+ db 110 ; VAPOREON
+ db 110 ; JOLTEON
+ db 110 ; FLAREON
+ db 75 ; PORYGON
+ db 90 ; OMANYTE
+ db 115 ; OMASTAR
+ db 45 ; KABUTO
+ db 70 ; KABUTOPS
+ db 60 ; AERODACTYL
+ db 65 ; SNORLAX
+ db 125 ; ARTICUNO
+ db 125 ; ZAPDOS
+ db 125 ; MOLTRES
+ db 50 ; DRATINI
+ db 70 ; DRAGONAIR
+ db 100 ; DRAGONITE
+ db 154 ; MEWTWO
+ db 100 ; MEW
+; fb6ed
+
+
+INCLUDE "event/name_rater.asm"
+
+
+PlaySlowCry: ; fb841
+ ld a, [ScriptVar]
+ call LoadCryHeader
+ jr c, .done
+
+ ld hl, CryPitch
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld bc, -$140
+ add hl, bc
+ ld a, l
+ ld [CryPitch], a
+ ld a, h
+ ld [CryPitch + 1], a
+ ld hl, CryLength
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld bc, $60
+ add hl, bc
+ ld a, l
+ ld [CryLength], a
+ ld a, h
+ ld [CryLength + 1], a
+ callba _PlayCryHeader
+ call WaitSFX
+
+.done
+ ret
+; fb877
+
+NewPokedexEntry: ; fb877
+ ld a, [hMapAnims]
+ push af
+ xor a
+ ld [hMapAnims], a
+ call LowVolume
+ call ClearBGPalettes
+ call ClearTileMap
+ call UpdateSprites
+ call ClearSprites
+ ld a, [wPokedexStatus]
+ push af
+ ld a, [hSCX]
+ add $5
+ ld [hSCX], a
+ xor a
+ ld [wPokedexStatus], a
+ callba Function41a7f
+ call WaitPressAorB_BlinkCursor
+ ld a, $1
+ ld [wPokedexStatus], a
+ callba Function4424d
+ call WaitPressAorB_BlinkCursor
+ pop af
+ ld [wPokedexStatus], a
+ call MaxVolume
+ call RotateThreePalettesRight
+ ld a, [hSCX]
+ add $fb
+ ld [hSCX], a
+ call Functionfb8c8
+ pop af
+ ld [hMapAnims], a
+ ret
+; fb8c8
+
+Functionfb8c8: ; fb8c8
+ call ClearTileMap
+ call LoadFontsExtra
+ call LoadStandardFont
+ callba Function40ab2
+ call Function3200
+ callba GetEnemyMonDVs
+ ld a, [hli]
+ ld [TempMonDVs], a
+ ld a, [hl]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_1C
+ call GetSGBLayout
+ call SetPalettes
+ ret
+; fb8f1
+
+ConvertMon_2to1: ; fb8f1
+; Takes the Gen-2 Pokemon number stored in wd265, finds it in the Pokered_MonIndices table, and returns its index in wd265.
+ push bc
+ push hl
+ ld a, [wd265]
+ ld b, a
+ ld c, 0
+ ld hl, Pokered_MonIndices
+.loop
+ inc c
+ ld a, [hli]
+ cp b
+ jr nz, .loop
+ ld a, c
+ ld [wd265], a
+ pop hl
+ pop bc
+ ret
+; fb908
+
+ConvertMon_1to2: ; fb908
+; Takes the Gen-1 Pokemon number stored in wd265 and returns the corresponding value from Pokered_MonIndices in wd265.
+ push bc
+ push hl
+ ld a, [wd265]
+ dec a
+ ld hl, Pokered_MonIndices
+ ld b, 0
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ ld [wd265], a
+ pop hl
+ pop bc
+ ret
+; fb91c
+
+Pokered_MonIndices: ; fb91c
+ db RHYDON
+ db KANGASKHAN
+ db NIDORAN_M
+ db CLEFAIRY
+ db SPEAROW
+ db VOLTORB
+ db NIDOKING
+ db SLOWBRO
+ db IVYSAUR
+ db EXEGGUTOR
+ db LICKITUNG
+ db EXEGGCUTE
+ db GRIMER
+ db GENGAR
+ db NIDORAN_F
+ db NIDOQUEEN
+ db CUBONE
+ db RHYHORN
+ db LAPRAS
+ db ARCANINE
+ db MEW
+ db GYARADOS
+ db SHELLDER
+ db TENTACOOL
+ db GASTLY
+ db SCYTHER
+ db STARYU
+ db BLASTOISE
+ db PINSIR
+ db TANGELA
+ db SCIZOR
+ db SHUCKLE
+ db GROWLITHE
+ db ONIX
+ db FEAROW
+ db PIDGEY
+ db SLOWPOKE
+ db KADABRA
+ db GRAVELER
+ db CHANSEY
+ db MACHOKE
+ db MR__MIME
+ db HITMONLEE
+ db HITMONCHAN
+ db ARBOK
+ db PARASECT
+ db PSYDUCK
+ db DROWZEE
+ db GOLEM
+ db HERACROSS
+ db MAGMAR
+ db HO_OH
+ db ELECTABUZZ
+ db MAGNETON
+ db KOFFING
+ db SNEASEL
+ db MANKEY
+ db SEEL
+ db DIGLETT
+ db TAUROS
+ db TEDDIURSA
+ db URSARING
+ db SLUGMA
+ db FARFETCH_D
+ db VENONAT
+ db DRAGONITE
+ db MAGCARGO
+ db SWINUB
+ db PILOSWINE
+ db DODUO
+ db POLIWAG
+ db JYNX
+ db MOLTRES
+ db ARTICUNO
+ db ZAPDOS
+ db DITTO
+ db MEOWTH
+ db KRABBY
+ db CORSOLA
+ db REMORAID
+ db OCTILLERY
+ db VULPIX
+ db NINETALES
+ db PIKACHU
+ db RAICHU
+ db DELIBIRD
+ db MANTINE
+ db DRATINI
+ db DRAGONAIR
+ db KABUTO
+ db KABUTOPS
+ db HORSEA
+ db SEADRA
+ db SKARMORY
+ db HOUNDOUR
+ db SANDSHREW
+ db SANDSLASH
+ db OMANYTE
+ db OMASTAR
+ db JIGGLYPUFF
+ db WIGGLYTUFF
+ db EEVEE
+ db FLAREON
+ db JOLTEON
+ db VAPOREON
+ db MACHOP
+ db ZUBAT
+ db EKANS
+ db PARAS
+ db POLIWHIRL
+ db POLIWRATH
+ db WEEDLE
+ db KAKUNA
+ db BEEDRILL
+ db HOUNDOOM
+ db DODRIO
+ db PRIMEAPE
+ db DUGTRIO
+ db VENOMOTH
+ db DEWGONG
+ db KINGDRA
+ db PHANPY
+ db CATERPIE
+ db METAPOD
+ db BUTTERFREE
+ db MACHAMP
+ db DONPHAN
+ db GOLDUCK
+ db HYPNO
+ db GOLBAT
+ db MEWTWO
+ db SNORLAX
+ db MAGIKARP
+ db PORYGON2
+ db STANTLER
+ db MUK
+ db SMEARGLE
+ db KINGLER
+ db CLOYSTER
+ db TYROGUE
+ db ELECTRODE
+ db CLEFABLE
+ db WEEZING
+ db PERSIAN
+ db MAROWAK
+ db HITMONTOP
+ db HAUNTER
+ db ABRA
+ db ALAKAZAM
+ db PIDGEOTTO
+ db PIDGEOT
+ db STARMIE
+ db BULBASAUR
+ db VENUSAUR
+ db TENTACRUEL
+ db SMOOCHUM
+ db GOLDEEN
+ db SEAKING
+ db ELEKID
+ db MAGBY
+ db MILTANK
+ db BLISSEY
+ db PONYTA
+ db RAPIDASH
+ db RATTATA
+ db RATICATE
+ db NIDORINO
+ db NIDORINA
+ db GEODUDE
+ db PORYGON
+ db AERODACTYL
+ db RAIKOU
+ db MAGNEMITE
+ db ENTEI
+ db SUICUNE
+ db CHARMANDER
+ db SQUIRTLE
+ db CHARMELEON
+ db WARTORTLE
+ db CHARIZARD
+ db LARVITAR
+ db PUPITAR
+ db TYRANITAR
+ db LUGIA
+ db ODDISH
+ db GLOOM
+ db VILEPLUME
+ db BELLSPROUT
+ db WEEPINBELL
+ db VICTREEBEL
+ db CHIKORITA
+ db BAYLEEF
+ db MEGANIUM
+ db CYNDAQUIL
+ db QUILAVA
+ db TYPHLOSION
+ db TOTODILE
+ db CROCONAW
+ db FERALIGATR
+ db SENTRET
+ db FURRET
+ db HOOTHOOT
+ db NOCTOWL
+ db LEDYBA
+ db LEDIAN
+ db SPINARAK
+ db ARIADOS
+ db CROBAT
+ db CHINCHOU
+ db LANTURN
+ db PICHU
+ db CLEFFA
+ db IGGLYBUFF
+ db TOGEPI
+ db TOGETIC
+ db NATU
+ db XATU
+ db MAREEP
+ db FLAAFFY
+ db AMPHAROS
+ db BELLOSSOM
+ db MARILL
+ db AZUMARILL
+ db SUDOWOODO
+ db POLITOED
+ db HOPPIP
+ db SKIPLOOM
+ db JUMPLUFF
+ db AIPOM
+ db SUNKERN
+ db SUNFLORA
+ db YANMA
+ db WOOPER
+ db QUAGSIRE
+ db ESPEON
+ db UMBREON
+ db MURKROW
+ db SLOWKING
+ db MISDREAVUS
+ db UNOWN
+ db WOBBUFFET
+ db GIRAFARIG
+ db PINECO
+ db FORRETRESS
+ db DUNSPARCE
+ db GLIGAR
+ db STEELIX
+ db SNUBBULL
+ db GRANBULL
+ db QWILFISH
+ db WOBBUFFET
+ db WOBBUFFET
+; fba18
--- a/engine/timeofdaypals.asm
+++ b/engine/timeofdaypals.asm
@@ -39,7 +39,7 @@
; save bg palette 8
- ld hl, wMapPals + 8 * 7 ; wMapPals + 7 pals
+ ld hl, UnknBGPals + 8 * 7 ; UnknBGPals + 7 pals
; save wram bank
ld a, [rSVBK]
@@ -65,12 +65,12 @@
; update sgb pals
- ld b, $9
+ ld b, SCGB_09
call GetSGBLayout
; restore bg palette 8
- ld hl, Unkn2Pals - 1 ; last byte in wMapPals
+ ld hl, UnknOBPals - 1 ; last byte in UnknBGPals
; save wram bank
ld a, [rSVBK]
@@ -172,12 +172,12 @@
push af
ld a, $5
ld [rSVBK], a
- ld hl, wMapPals
+ ld hl, UnknBGPals
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
- ld hl, wMapPals + 8
+ ld hl, UnknBGPals + 8
ld c, $6
.asm_8c0d4
ld a, e
--- /dev/null
+++ b/engine/timeset.asm
@@ -1,0 +1,771 @@
+InitClock: ; 90672 (24:4672)
+; Ask the player to set the time.
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+
+ ld a, $0
+ ld [wSpriteUpdatesEnabled], a
+ ld a, $10
+ ld [MusicFade], a
+ ld a, MUSIC_NONE % $100
+ ld [MusicFadeIDLo], a
+ ld a, MUSIC_NONE / $100
+ ld [MusicFadeIDHi], a
+ ld c, 8
+ call DelayFrames
+ call RotateFourPalettesLeft
+ call ClearTileMap
+ call ClearSprites
+ ld b, SCGB_08
+ call GetSGBLayout
+ xor a
+ ld [hBGMapMode], a
+ call LoadStandardFont
+ ld de, GFX_908fb
+ ld hl, VTiles2 tile $00
+ lb bc, BANK(GFX_908fb), 1
+ call Request1bpp
+ ld de, GFX_90903
+ ld hl, VTiles2 tile $01
+ lb bc, BANK(GFX_90903), 1
+ call Request1bpp
+ ld de, GFX_9090b
+ ld hl, VTiles2 tile $02
+ lb bc, BANK(GFX_9090b), 1
+ call Request1bpp
+ call .ClearScreen
+ call WaitBGMap
+ call RotateFourPalettesRight
+ ld hl, UnknownText_0x90874
+ call PrintText
+ ld hl, wc608
+ ld bc, 50
+ xor a
+ call ByteFill
+ ld a, $a
+ ld [wInitHourBuffer], a
+
+.loop
+ ld hl, UnknownText_0x90879
+ call PrintText
+ hlcoord 3, 7
+ ld b, 2
+ ld c, 15
+ call TextBox
+ hlcoord 11, 7
+ ld [hl], $1
+ hlcoord 11, 10
+ ld [hl], $2
+ hlcoord 4, 9
+ call DisplayHourOClock
+ ld c, 10
+ call DelayFrames
+
+.SetHourLoop
+ call JoyTextDelay
+ call SetHour
+ jr nc, .SetHourLoop
+
+ ld a, [wInitHourBuffer]
+ ld [StringBuffer2 + 1], a
+ call .ClearScreen
+ ld hl, UnknownText_0x90886
+ call PrintText
+ call YesNoBox
+ jr nc, .HourIsSet
+ call .ClearScreen
+ jr .loop
+
+.HourIsSet
+ ld hl, UnknownText_0x9089a
+ call PrintText
+ hlcoord 11, 7
+ lb bc, 2, 7
+ call TextBox
+ hlcoord 15, 7
+ ld [hl], $1
+ hlcoord 15, 10
+ ld [hl], $2
+ hlcoord 12, 9
+ call DisplayMinutesWithMinString
+ ld c, 10
+ call DelayFrames
+
+.SetMinutesLoop
+ call JoyTextDelay
+ call SetMinutes
+ jr nc, .SetMinutesLoop
+
+ ld a, [BattleMonNick + 5]
+ ld [StringBuffer2 + 2], a
+ call .ClearScreen
+ ld hl, UnknownText_0x908a4
+ call PrintText
+ call YesNoBox
+ jr nc, .MinutesAreSet
+ call .ClearScreen
+ jr .HourIsSet
+
+.MinutesAreSet
+ call Function658
+ ld hl, OakText_ResponseToSetTime
+ call PrintText
+ call WaitPressAorB_BlinkCursor
+ pop af
+ ld [hInMenu], a
+ ret
+
+.ClearScreen: ; 90783 (24:4783)
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 0, 0
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ xor a
+ call ByteFill
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+
+SetHour: ; 90795 (24:4795)
+ ld a, [hJoyPressed]
+ and A_BUTTON
+ jr nz, .Confirm
+
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .up
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .down
+ call DelayFrame
+ and a
+ ret
+
+.down
+ ld hl, wInitHourBuffer
+ ld a, [hl]
+ and a
+ jr nz, .DecreaseThroughMidnight
+ ld a, 23 + 1
+.DecreaseThroughMidnight
+ dec a
+ ld [hl], a
+ jr .okay
+
+.up
+ ld hl, wInitHourBuffer
+ ld a, [hl]
+ cp 23
+ jr c, .AdvanceThroughMidnight
+ ld a, -1
+.AdvanceThroughMidnight
+ inc a
+ ld [hl], a
+
+.okay
+ hlcoord 4, 9
+ ld a, " "
+ ld bc, 15
+ call ByteFill
+ hlcoord 4, 9
+ call DisplayHourOClock
+ call WaitBGMap
+ and a
+ ret
+
+.Confirm
+ scf
+ ret
+
+DisplayHourOClock: ; 907de (24:47de)
+ push hl
+ ld a, [wInitHourBuffer]
+ ld c, a
+ ld e, l
+ ld d, h
+ call PrintHour
+ inc hl
+ ld de, String_oclock
+ call PlaceString
+ pop hl
+ ret
+; 907f1 (24:47f1)
+
+Function907f1: ; 907f1
+ ld h, d
+ ld l, e
+ push hl
+ call DisplayHourOClock
+ pop de
+rept 2
+ inc de
+endr
+ ld a, $9c
+ ld [de], a
+ inc de
+ push de
+ ld hl, $3
+ add hl, de
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ ld [hl], a
+ pop hl
+ call DisplayMinutesWithMinString
+rept 3
+ inc hl
+endr
+ ret
+; 90810
+
+SetMinutes: ; 90810 (24:4810)
+ ld a, [hJoyPressed]
+ and A_BUTTON
+ jr nz, .asm_90857
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .asm_90835
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .asm_90828
+ call DelayFrame
+ and a
+ ret
+.asm_90828
+ ld hl, BattleMonNick + 5
+ ld a, [hl]
+ and a
+ jr nz, .asm_90831
+ ld a, 59 + 1
+.asm_90831
+ dec a
+ ld [hl], a
+ jr .asm_90841
+.asm_90835
+ ld hl, BattleMonNick + 5
+ ld a, [hl]
+ cp 59
+ jr c, .asm_9083f
+ ld a, -1
+.asm_9083f
+ inc a
+ ld [hl], a
+.asm_90841
+ hlcoord 12, 9
+ ld a, " "
+ ld bc, 7
+ call ByteFill
+ hlcoord 12, 9
+ call DisplayMinutesWithMinString
+ call WaitBGMap
+ and a
+ ret
+.asm_90857
+ scf
+ ret
+
+DisplayMinutesWithMinString: ; 90859 (24:4859)
+ ld de, BattleMonNick + 5
+ call PrintTwoDigitNumberRightAlign
+ inc hl
+ ld de, String_min
+ call PlaceString
+ ret
+
+PrintTwoDigitNumberRightAlign: ; 90867 (24:4867)
+ push hl
+ ld a, " "
+ ld [hli], a
+ ld [hl], a
+ pop hl
+ lb bc, PRINTNUM_RIGHTALIGN | 1, 2
+ call PrintNum
+ ret
+; 90874 (24:4874)
+
+UnknownText_0x90874: ; 0x90874
+ ; Zzz… Hm? Wha…? You woke me up! Will you check the clock for me?
+ text_jump UnknownText_0x1bc29c
+ db "@"
+; 0x90879
+
+UnknownText_0x90879: ; 0x90879
+ ; What time is it?
+ text_jump UnknownText_0x1bc2eb
+ db "@"
+; 0x9087e
+
+String_oclock:
+ db "o'clock@"
+; 90886
+
+UnknownText_0x90886: ; 0x90886
+ ; What?@ @
+ text_jump UnknownText_0x1bc2fd
+ start_asm
+ hlcoord 1, 16
+ call DisplayHourOClock
+ ld hl, UnknownText_0x90895
+ ret
+; 90895 (24:4895)
+
+UnknownText_0x90895: ; 0x90895
+ ; ?
+ text_jump UnknownText_0x1bc305
+ db "@"
+; 0x9089a
+
+UnknownText_0x9089a: ; 0x9089a
+ ; How many minutes?
+ text_jump UnknownText_0x1bc308
+ db "@"
+; 0x9089f
+
+String_min:
+ db "min.@"
+; 908a4
+
+UnknownText_0x908a4: ; 0x908a4
+ ; Whoa!@ @
+ text_jump UnknownText_0x1bc31b
+ start_asm
+; 0x908a9
+ hlcoord 7, 14
+ call DisplayMinutesWithMinString
+ ld hl, UnknownText_0x908b3
+ ret
+; 908b3 (24:48b3)
+
+UnknownText_0x908b3: ; 0x908b3
+ ; ?
+ text_jump UnknownText_0x1bc323
+ db "@"
+; 0x908b8
+
+OakText_ResponseToSetTime: ; 0x908b8
+ start_asm
+ decoord 1, 14
+ ld a, [wInitHourBuffer]
+ ld c, a
+ call PrintHour
+ ld [hl], ":"
+ inc hl
+ ld de, BattleMonNick + 5
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNum
+ ld b, h
+ ld c, l
+ ld a, [wInitHourBuffer]
+ cp 4
+ jr c, .NITE
+ cp 11
+ jr c, .MORN
+ cp 18
+ jr c, .DAY
+.NITE
+ ld hl, .sodark
+ ret
+.MORN
+ ld hl, .overslept
+ ret
+.DAY
+ ld hl, .yikes
+ ret
+; 908ec (24:48ec)
+
+.overslept: ; 0x908ec
+ ; ! I overslept!
+ text_jump UnknownText_0x1bc326
+ db "@"
+; 0x908f1
+
+.yikes: ; 0x908f1
+ ; ! Yikes! I over- slept!
+ text_jump UnknownText_0x1bc336
+ db "@"
+; 0x908f6
+
+.sodark: ; 0x908f6
+ ; ! No wonder it's so dark!
+ text_jump UnknownText_0x1bc34f
+ db "@"
+; 0x908fb
+
+GFX_908fb: ; 908fb
+INCBIN "gfx/unknown/0908fb.2bpp"
+GFX_90903: ; 90903
+INCBIN "gfx/unknown/090903.2bpp"
+GFX_9090b: ; 9090b
+INCBIN "gfx/unknown/09090b.2bpp"
+; 90913
+
+Special_SetDayOfWeek: ; 90913
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ ld de, GFX_90903
+ ld hl, VTiles1 tile $6f
+ lb bc, BANK(GFX_90903), 1
+ call Request1bpp
+ ld de, GFX_9090b
+ ld hl, VTiles1 tile $75
+ lb bc, BANK(GFX_9090b), 1
+ call Request1bpp
+ xor a
+ ld [wd002], a
+.asm_90936
+ hlcoord 0, 12
+ lb bc, 4, 18
+ call TextBox
+ call LoadStandardMenuDataHeader
+ ld hl, UnknownText_0x90a3f
+ call PrintText
+ hlcoord 9, 3
+ ld b, 2
+ ld c, 9
+ call TextBox
+ hlcoord 14, 3
+ ld [hl], $ef
+ hlcoord 14, 6
+ ld [hl], $f5
+ hlcoord 10, 5
+ call Function909de
+ call ApplyTilemap
+ ld c, 10
+ call DelayFrames
+.asm_9096a
+ call JoyTextDelay
+ call Function90993
+ jr nc, .asm_9096a
+ call ExitMenu
+ call UpdateSprites
+ ld hl, UnknownText_0x90a44
+ call PrintText
+ call YesNoBox
+ jr c, .asm_90936
+ ld a, [wd002]
+ ld [StringBuffer2], a
+ call Function663
+ call LoadStandardFont
+ pop af
+ ld [hInMenu], a
+ ret
+; 90993
+
+Function90993: ; 90993
+ ld a, [hJoyPressed]
+ and A_BUTTON
+ jr z, .asm_9099b
+ scf
+ ret
+
+.asm_9099b
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .asm_909ba
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .asm_909ad
+ call DelayFrame
+ and a
+ ret
+
+.asm_909ad
+ ld hl, wd002
+ ld a, [hl]
+ and a
+ jr nz, .asm_909b6
+ ld a, 6 + 1
+
+.asm_909b6
+ dec a
+ ld [hl], a
+ jr .asm_909c6
+
+.asm_909ba
+ ld hl, wd002
+ ld a, [hl]
+ cp 6
+ jr c, .asm_909c4
+ ld a, -1
+
+.asm_909c4
+ inc a
+ ld [hl], a
+
+.asm_909c6
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 10, 4
+ ld b, $2
+ ld c, $9
+ call ClearBox
+ hlcoord 10, 5
+ call Function909de
+ call WaitBGMap
+ and a
+ ret
+; 909de
+
+Function909de: ; 909de
+ push hl
+ ld a, [wd002]
+ ld e, a
+ ld d, 0
+ ld hl, WeekdaysStrings
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ pop hl
+ call PlaceString
+ ret
+; 909f2
+
+WeekdaysStrings: ; 909f2
+ dw Sunday
+ dw Monday
+ dw Tuesday
+ dw Wednesday
+ dw Thursday
+ dw Friday
+ dw Saturday
+ dw Sunday
+
+Sunday: db " SUNDAY@"
+Monday: db " MONDAY@"
+Tuesday: db " TUESDAY@"
+Wednesday: db "WEDNESDAY@"
+Thursday: db "THURSDAY@"
+Friday: db " FRIDAY@"
+Saturday: db "SATURDAY@"
+
+
+UnknownText_0x90a3f: ; 0x90a3f
+ ; What day is it?
+ text_jump UnknownText_0x1bc369
+ db "@"
+; 0x90a44
+
+UnknownText_0x90a44: ; 0x90a44
+ start_asm
+ hlcoord 1, 14
+ call Function909de
+ ld hl, UnknownText_0x90a4f
+ ret
+; 90a4f (24:4a4f)
+
+UnknownText_0x90a4f: ; 0x90a4f
+ ; , is it?
+ text_jump UnknownText_0x1bc37a
+ db "@"
+; 0x90a54
+
+Special_InitialSetDSTFlag: ; 90a54
+ ld a, [wDST]
+ set 7, a
+ ld [wDST], a
+ hlcoord 1, 14
+ lb bc, 3, 18
+ call ClearBox
+ ld hl, UnknownText_0x90a6c
+ call PlaceWholeStringInBoxAtOnce
+ ret
+; 90a6c
+
+UnknownText_0x90a6c: ; 90a6c
+ start_asm
+ call UpdateTime
+ ld a, [hHours]
+ ld b, a
+ ld a, [hMinutes]
+ ld c, a
+ decoord 1, 14
+ callba PrintHoursMins
+ ld hl, TextJump_DSTIsThatOK
+ ret
+; 90a83 (24:4a83)
+
+TextJump_DSTIsThatOK: ; 0x90a83
+ ; DST, is that OK?
+ text_jump Text_DSTIsThatOK
+ db "@"
+; 0x90a88
+
+Special_InitialClearDSTFlag: ; 90a88
+ ld a, [wDST]
+ res 7, a
+ ld [wDST], a
+ hlcoord 1, 14
+ lb bc, 3, 18
+ call ClearBox
+ ld hl, UnknownText_0x90aa0
+ call PlaceWholeStringInBoxAtOnce
+ ret
+; 90aa0
+
+UnknownText_0x90aa0: ; 90aa0
+ start_asm
+ call UpdateTime
+ ld a, [hHours]
+ ld b, a
+ ld a, [hMinutes]
+ ld c, a
+ decoord 1, 14
+ callba PrintHoursMins
+ ld hl, UnknownText_0x90ab7
+ ret
+; 90ab7
+
+UnknownText_0x90ab7: ; 0x90ab7
+ ; , is that OK?
+ text_jump UnknownText_0x1c5ff1
+ db "@"
+; 0x90abc
+
+Function90abc: ; 90abc
+ hlcoord 1, 14
+ lb bc, 3, SCREEN_WIDTH - 2
+ call ClearBox
+ ld hl, UnknownText_0x90acc
+ call PlaceWholeStringInBoxAtOnce
+ ret
+; 90acc
+
+UnknownText_0x90acc: ; 0x90acc
+ start_asm
+
+ call UpdateTime
+
+ hlcoord 1, 14
+ ld [hl], "R"
+ inc hl
+ ld [hl], "T"
+ inc hl
+ ld [hl], " "
+ inc hl
+
+ ld de, hRTCDayLo
+ call Function90b23
+
+ hlcoord 1, 16
+ ld [hl], "D"
+ inc hl
+ ld [hl], "F"
+ inc hl
+ ld [hl], " "
+ inc hl
+
+ ld de, StartDay
+ call Function90b23
+
+ ld [hl], " "
+ inc hl
+
+ ld a, [wDST]
+ bit 7, a
+ jr z, .off
+
+ ld [hl], "O"
+ inc hl
+ ld [hl], "N"
+ inc hl
+ jr .done
+
+.off
+ ld [hl], "O"
+ inc hl
+ ld [hl], "F"
+ inc hl
+ ld [hl], "F"
+ inc hl
+
+.done
+ ld hl, UnknownText_0x90b13
+ ret
+; 90b13
+
+UnknownText_0x90b13: ; 0x90b13
+ text "<PARA>Now on DEBUG…"
+ prompt
+; 0x90b23
+
+Function90b23: ; 90b23
+ lb bc, 1, 3
+ call PrintNum
+ ld [hl], "."
+ inc hl
+ inc de
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNum
+ ld [hl], ":"
+ inc hl
+ inc de
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNum
+ ret
+; 90b3e
+
+PrintHour: ; 90b3e (24:4b3e)
+ ld l, e
+ ld h, d
+ push bc
+ call GetTimeOfDayString
+ call PlaceString
+ ld l, c
+ ld h, b
+ inc hl
+ pop bc
+ call AdjustHourForAMorPM
+ ld [wd265], a
+ ld de, wd265
+ call PrintTwoDigitNumberRightAlign
+ ret
+
+GetTimeOfDayString: ; 90b58 (24:4b58)
+ ld a, c
+ cp 4
+ jr c, .nite
+ cp 10
+ jr c, .morn
+ cp 18
+ jr c, .day
+.nite
+ ld de, .NITE
+ ret
+.morn
+ ld de, .MORN
+ ret
+.day
+ ld de, .DAY
+ ret
+; 90b71 (24:4b71)
+
+.NITE: db "NITE@"
+.MORN: db "MORN@"
+.DAY: db "DAY@"
+; 90b7f
+
+AdjustHourForAMorPM:
+; Convert the hour stored in c (0-23) to a 1-12 value
+ ld a, c
+ or a
+ jr z, .midnight
+ cp 12
+ ret c
+ ret z
+ sub 12
+ ret
+
+.midnight
+ ld a, 12
+ ret
--- a/engine/title.asm
+++ b/engine/title.asm
@@ -31,8 +31,8 @@
; Clear screen palettes
- ld hl, VBGMap0
- ld bc, $0280
+ hlbgcoord 0, 0
+ ld bc, 20 bgrows
xor a
call ByteFill
@@ -42,8 +42,8 @@
; BG Map 1:
; line 0 (copyright)
- ld hl, VBGMap1
- ld bc, $0020 ; one row
+ hlbgcoord 0, 0, VBGMap1
+ ld bc, 1 bgrows
ld a, 7 ; palette
call ByteFill
@@ -53,41 +53,41 @@
; Apply logo gradient:
; lines 3-4
- ld hl, VBGMap0 tile $06 ; (0,3)
- ld bc, $0040 ; 2 rows
+ hlbgcoord 0, 3
+ ld bc, 2 bgrows
ld a, 2
call ByteFill
; line 5
- ld hl, VBGMap0 tile $0a ; (0,5)
- ld bc, $0020 ; 1 row
+ hlbgcoord 0, 5
+ ld bc, 1 bgrows
ld a, 3
call ByteFill
; line 6
- ld hl, VBGMap0 tile $0c ; (0,6)
- ld bc, $0020 ; 1 row
+ hlbgcoord 0, 6
+ ld bc, 1 bgrows
ld a, 4
call ByteFill
; line 7
- ld hl, VBGMap0 tile $0e ; (0,7)
- ld bc, $0020 ; 1 row
+ hlbgcoord 0, 7
+ ld bc, 1 bgrows
ld a, 5
call ByteFill
; lines 8-9
- ld hl, VBGMap0 tile $10 ; (0,8)
- ld bc, $0040 ; 2 rows
+ hlbgcoord 0, 8
+ ld bc, 2 bgrows
ld a, 6
call ByteFill
; 'CRYSTAL VERSION'
- ld hl, $9925 ; (5,9)
- ld bc, $000b ; length of version text
+ hlbgcoord 5, 9
+ ld bc, NAME_LENGTH ; length of version text
ld a, 1
call ByteFill
; Suicune gfx
- ld hl, VBGMap0 tile $18 ; (0,12)
- ld bc, $00c0 ; the rest of the screen
+ hlbgcoord 0, 12
+ ld bc, 6 bgrows ; the rest of the screen
ld a, 8
call ByteFill
@@ -109,9 +109,9 @@
; Clear screen tiles
- ld hl, VBGMap0
- ld bc, $0800
- ld a, $7f
+ hlbgcoord 0, 0
+ ld bc, 64 bgrows
+ ld a, " "
call ByteFill
; Draw Pokemon logo
@@ -122,7 +122,7 @@
call DrawTitleGraphic
; Draw copyright text
- ld hl, $9c03 ; BGMap1(3,0)
+ hlbgcoord 3, 0, VBGMap1
lb bc, 1, 13
ld d, $c
ld e, $10
@@ -144,7 +144,7 @@
; Update palette colors
ld hl, TitleScreenPalettes
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, 4 * 32
call CopyBytes
@@ -220,7 +220,7 @@
ld [hBGMapMode], a
xor a
- ld [wMapPals + 2], a
+ ld [UnknBGPals + 2], a
; Play starting sound effect
call SFXChannelsOff
@@ -231,7 +231,7 @@
; 10eea7
SuicuneFrameIterator: ; 10eea7
- ld hl, wMapPals + 2
+ ld hl, UnknBGPals + 2
ld a, [hl]
ld c, a
inc [hl]
@@ -270,7 +270,7 @@
LoadSuicuneFrame: ; 10eed2
hlcoord 6, 12
ld b, 6
-.row
+.bgrows
ld c, 8
.col
ld a, d
@@ -288,7 +288,7 @@
add d
ld d, a
dec b
- jr nz, .row
+ jr nz, .bgrows
ret
; 10eeef
@@ -298,8 +298,8 @@
; b: height
; c: width
; d: tile to start drawing from
-; e: number of tiles to advance for each row
-.row
+; e: number of tiles to advance for each bgrows
+.bgrows
push de
push bc
push hl
@@ -318,7 +318,7 @@
add d
ld d, a
dec b
- jr nz, .row
+ jr nz, .bgrows
ret
; 10ef06
--- /dev/null
+++ b/engine/town_map.asm
@@ -1,0 +1,173 @@
+
+_TownMap: ; 9191c
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set NO_TEXT_SCROLL, [hl]
+
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+
+ ld a, [VramState]
+ push af
+ xor a
+ ld [VramState], a
+
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ call DisableLCD
+ call Function90c4e
+ callba Function8cf53
+ ld a, 8
+ call SkipMusic
+ ld a, $e3
+ ld [rLCDC], a
+ call Function90d56
+ ld [wd002], a
+ ld [wd003], a
+ xor a
+ ld [hBGMapMode], a
+ call Function91a04
+ call Function3200
+ ld a, [wd002]
+ call Function9106a
+ ld a, [wd003]
+ call Function91098
+ ld a, c
+ ld [wd004], a
+ ld a, b
+ ld [wd005], a
+ ld b, SCGB_02
+ call GetSGBLayout
+ call SetPalettes
+ ld a, [hCGB]
+ and a
+ jr z, .sgb
+ ld a, $e4
+ call Functioncf8
+ call DelayFrame
+
+.sgb
+ ld a, [wd002]
+ cp KANTO_LANDMARK
+ jr nc, .kanto
+ ld d, KANTO_LANDMARK - 1
+ ld e, 1
+ call Function919b0
+ jr .resume
+
+.kanto
+ call Function910e8
+ call Function919b0
+
+.resume
+ pop af
+ ld [VramState], a
+ pop af
+ ld [hInMenu], a
+ pop af
+ ld [Options], a
+ call ClearBGPalettes
+ ret
+; 919b0
+
+Function919b0: ; 919b0
+.loop
+ call JoyTextDelay
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and B_BUTTON
+ ret nz
+
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .pressed_up
+
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .pressed_down
+.loop2
+ push de
+ callba Function8cf69
+ pop de
+ call DelayFrame
+ jr .loop
+
+.pressed_up
+ ld hl, wd003
+ ld a, [hl]
+ cp d
+ jr c, .okay
+ ld a, e
+ dec a
+ ld [hl], a
+
+.okay
+ inc [hl]
+ jr .next
+
+.pressed_down
+ ld hl, wd003
+ ld a, [hl]
+ cp e
+ jr nz, .okay2
+ ld a, d
+ inc a
+ ld [hl], a
+
+.okay2
+ dec [hl]
+
+.next
+ push de
+ ld a, [wd003]
+ call Function910b4
+ ld a, [wd004]
+ ld c, a
+ ld a, [wd005]
+ ld b, a
+ ld a, [wd003]
+ call Function910d4
+ pop de
+ jr .loop2
+; 91a04
+
+Function91a04: ; 91a04
+ ld a, [wd002]
+ cp KANTO_LANDMARK
+ jr nc, .kanto
+ ld e, $0
+ jr .okay
+
+.kanto
+ ld e, $1
+
+.okay
+ callba PokegearMap
+ ld a, $7
+ ld bc, 6
+ hlcoord 1, 0
+ call ByteFill
+ hlcoord 0, 0
+ ld [hl], $6
+ hlcoord 7, 0
+ ld [hl], $17
+ hlcoord 7, 1
+ ld [hl], $16
+ hlcoord 7, 2
+ ld [hl], $26
+ ld a, $7
+ ld bc, NAME_LENGTH
+ hlcoord 8, 2
+ call ByteFill
+ hlcoord 19, 2
+ ld [hl], $17
+ ld a, [wd003]
+ call Function910b4
+ callba TownMapPals
+ ret
+; 91a53
--- /dev/null
+++ b/engine/trade/animation.asm
@@ -1,0 +1,1542 @@
+TradeAnimation: ; 28f24
+ xor a
+ ld [wcf66], a
+ ld hl, wPlayerTrademonSenderName
+ ld de, wOTTrademonSenderName
+ call Function297ff
+ ld hl, wPlayerTrademonSpecies
+ ld de, wOTTrademonSpecies
+ call Function29814
+ ld de, .data_28f3f
+ jr Function28fa1
+
+.data_28f3f
+ tradeanim_setup_givemon_scroll
+ tradeanim_show_givemon_data
+ tradeanim_do_givemon_scroll
+ tradeanim_wait_80
+ tradeanim_wait_96
+ tradeanim_poof
+ tradeanim_rocking_ball
+ tradeanim_enter_link_tube
+ tradeanim_wait_anim
+ tradeanim_bulge_through_tube
+ tradeanim_wait_anim
+ tradeanim_1e
+ tradeanim_give_trademon_sfx
+ tradeanim_tube_to_ot
+ tradeanim_sent_to_ot_text
+ tradeanim_scroll_out_right
+
+ tradeanim_ot_sends_text_1
+ tradeanim_ot_bids_farewell
+ tradeanim_wait_40
+ tradeanim_scroll_out_right
+ tradeanim_get_trademon_sfx
+ tradeanim_tube_to_player
+ tradeanim_enter_link_tube
+ tradeanim_drop_ball
+ tradeanim_exit_link_tube
+ tradeanim_wait_anim
+ tradeanim_show_getmon_data
+ tradeanim_poof
+ tradeanim_wait_anim
+ tradeanim_1d
+ tradeanim_animate_frontpic
+ tradeanim_wait_80_if_ot_egg
+ tradeanim_1e
+ tradeanim_take_care_of_text
+ tradeanim_scroll_out_right
+ tradeanim_end
+
+TradeAnimationPlayer2: ; 28f63
+ xor a
+ ld [wcf66], a
+ ld hl, wOTTrademonSenderName
+ ld de, wPlayerTrademonSenderName
+ call Function297ff
+ ld hl, wOTTrademonSpecies
+ ld de, wPlayerTrademonSpecies
+ call Function29814
+ ld de, .data_28f7e
+ jr Function28fa1
+
+.data_28f7e
+ tradeanim_ot_sends_text_2
+ tradeanim_ot_bids_farewell
+ tradeanim_wait_40
+ tradeanim_scroll_out_right
+ tradeanim_get_trademon_sfx
+ tradeanim_tube_to_ot
+ tradeanim_enter_link_tube
+ tradeanim_drop_ball
+ tradeanim_exit_link_tube
+ tradeanim_wait_anim
+ tradeanim_show_getmon_data
+ tradeanim_poof
+ tradeanim_wait_anim
+ tradeanim_1d
+ tradeanim_animate_frontpic
+ tradeanim_wait_180_if_ot_egg
+ tradeanim_1e
+ tradeanim_take_care_of_text
+ tradeanim_scroll_out_right
+
+ tradeanim_setup_givemon_scroll
+ tradeanim_show_givemon_data
+ tradeanim_do_givemon_scroll
+ tradeanim_wait_40
+ tradeanim_poof
+ tradeanim_rocking_ball
+ tradeanim_enter_link_tube
+ tradeanim_wait_anim
+ tradeanim_bulge_through_tube
+ tradeanim_wait_anim
+ tradeanim_1e
+ tradeanim_give_trademon_sfx
+ tradeanim_tube_to_player
+ tradeanim_sent_to_ot_text
+ tradeanim_scroll_out_right
+ tradeanim_end
+
+Function28fa1: ; 28fa1
+ ld hl, wTradeAnimPointer
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld a, [hMapAnims]
+ push af
+ xor a
+ ld [hMapAnims], a
+ ld hl, VramState
+ ld a, [hl]
+ push af
+ res 0, [hl]
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ call Function28fdb
+ ld a, [wcf66]
+ and a
+ jr nz, .anim_loop
+ ld de, MUSIC_EVOLUTION
+ call PlayMusic2
+.anim_loop
+ call DoTradeAnimation
+ jr nc, .anim_loop
+ pop af
+ ld [Options], a
+ pop af
+ ld [VramState], a
+ pop af
+ ld [hMapAnims], a
+ ret
+; 28fdb
+
+Function28fdb: ; 28fdb
+ xor a
+ ld [wJumptableIndex], a
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call LoadFontsBattleExtra
+ callab Function8cf53
+ ld a, [hCGB]
+ and a
+ jr z, .asm_2900b
+ ld a, $1
+ ld [rVBK], a
+ ld hl, VTiles0
+ ld bc, sScratch - VTiles0
+ xor a
+ call ByteFill
+ ld a, $0
+ ld [rVBK], a
+
+.asm_2900b
+ hlbgcoord 0, 0
+ ld bc, sScratch - VBGMap0
+ ld a, " "
+ call ByteFill
+ ld hl, TradeGameBoyLZ
+ ld de, VTiles2 tile $31
+ call Decompress
+ ld hl, TradeArrowGFX
+ ld de, VTiles1 tile $6d
+ ld bc, $10
+ ld a, BANK(TradeArrowGFX)
+ call FarCopyBytes
+ ld hl, TradeArrowGFX + $10
+ ld de, VTiles1 tile $6e
+ ld bc, $10
+ ld a, BANK(TradeArrowGFX)
+ call FarCopyBytes
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ callba Function4d7fd
+ call EnableLCD
+ call Function2982b
+ ld a, [wPlayerTrademonSpecies]
+ ld hl, wPlayerTrademonDVs
+ ld de, VTiles0
+ call Function29491
+ ld a, [wOTTrademonSpecies]
+ ld hl, wOTTrademonDVs
+ ld de, VTiles0 tile $31
+ call Function29491
+ ld a, [wPlayerTrademonSpecies]
+ ld de, wPlayerTrademonSpeciesName
+ call Function294a9
+ ld a, [wOTTrademonSpecies]
+ ld de, wOTTrademonSpeciesName
+ call Function294a9
+ call Function297ed
+ ret
+; 29082
+
+DoTradeAnimation: ; 29082
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .finished
+ call .DoTradeAnimCommand
+ callab Function8cf69
+ ld hl, wcf65
+ inc [hl]
+ call DelayFrame
+ and a
+ ret
+
+.finished
+ call LoadStandardFont
+ scf
+ ret
+; 290a0
+
+.DoTradeAnimCommand: ; 290a0
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, .JumpTable
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 290af
+
+.JumpTable: ; 290af
+ dw TradeAnim_Next ; 00
+ dw TradeAnim_ShowGivemonData ; 01
+ dw TradeAnim_ShowGetmonData ; 02
+ dw TradeAnim_EnterLinkTube ; 03
+ dw TradeAnim_04 ; 04
+ dw TradeAnim_ExitLinkTube ; 05
+ dw TradeAnim_TubeToOT1 ; 06
+ dw TradeAnim_TubeToOT2 ; 07
+ dw TradeAnim_TubeToOT3 ; 08
+ dw TradeAnim_TubeToOT4 ; 09
+ dw TradeAnim_TubeToOT5 ; 0a
+ dw TradeAnim_TubeToOT6 ; 0b
+ dw TradeAnim_TubeToOT7 ; 0c
+ dw TradeAnim_TubeToOT8 ; 0d
+ dw TradeAnim_TubeToPlayer1 ; 0e
+ dw TradeAnim_TubeToPlayer2 ; 0f
+ dw TradeAnim_TubeToPlayer3 ; 10
+ dw TradeAnim_TubeToPlayer4 ; 11
+ dw TradeAnim_TubeToPlayer5 ; 12
+ dw TradeAnim_TubeToPlayer6 ; 13
+ dw TradeAnim_TubeToPlayer7 ; 14
+ dw TradeAnim_TubeToPlayer8 ; 15
+ dw TradeAnim_SentToOTText ; 16
+ dw TradeAnim_OTBidsFarewell ; 17
+ dw TradeAnim_TakeCareOfText ; 18
+ dw TradeAnim_OTSendsText1 ; 19
+ dw TradeAnim_OTSendsText2 ; 1a
+ dw TradeAnim_SetupGivemonScroll ; 1b
+ dw TradeAnim_DoGivemonScroll ; 1c
+ dw TradeAnim_1d ; 1d
+ dw TradeAnim_1e ; 1e
+ dw TradeAnim_ScrollOutRight ; 1f
+ dw TradeAnim_ScrollOutRight2 ; 20
+ dw TraideAnim_Wait80 ; 21
+ dw TraideAnim_Wait40 ; 22
+ dw TradeAnim_RockingBall ; 23
+ dw TradeAnim_DropBall ; 24
+ dw TradeAnim_WaitAnim ; 25
+ dw TradeAnim_WaitAnim2 ; 26
+ dw TradeAnim_Poof ; 27
+ dw TradeAnim_BulgeThroughTube ; 28
+ dw TradeAnim_GiveTrademonSFX ; 29
+ dw TradeAnim_GetTrademonSFX ; 2a
+ dw TradeAnim_End ; 2b
+ dw TradeAnim_AnimateFrontpic ; 2c
+ dw TraideAnim_Wait96 ; 2d
+ dw TraideAnim_Wait80IfOTEgg ; 2e
+ dw TraideAnim_Wait180IfOTEgg ; 2f
+; 2910f
+
+NextTradeAnim: ; 2910f
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+; 29114
+
+TradeAnim_Next: ; 29114
+ ld hl, wTradeAnimPointer
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, [de]
+ ld [wJumptableIndex], a
+ inc de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ ret
+; 29123
+
+TradeAnim_End: ; 29123
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+; 29129
+
+TradeAnim_TubeToOT1: ; 29129
+ ld a, $ed
+ call Function292f6
+ ld a, [wc74c]
+ ld [wd265], a
+ xor a
+ depixel 5, 11, 4, 0
+ ld b, $0
+ jr Function2914e
+
+TradeAnim_TubeToPlayer1: ; 2913c
+ ld a, $ee
+ call Function292f6
+ ld a, [wc74d]
+ ld [wd265], a
+ ld a, $2
+ depixel 9, 18, 4, 4
+ ld b, $4
+
+Function2914e: ; 2914e
+ push bc
+ push de
+ push bc
+ push de
+ push af
+ call DisableLCD
+ callab Function8cf53
+ hlbgcoord 20, 3
+ ld bc, $c
+ ld a, $60
+ call ByteFill
+ pop af
+ call Function29281
+ xor a
+ ld [hSCX], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $70
+ ld [hWY], a
+ call EnableLCD
+ call Function2985a
+ pop de
+ ld a, SPRITE_ANIM_INDEX_11
+ call _InitSpriteAnimStruct
+ ld hl, $b
+ add hl, bc
+ pop bc
+ ld [hl], b
+ pop de
+ ld a, SPRITE_ANIM_INDEX_12
+ call _InitSpriteAnimStruct
+ ld hl, $b
+ add hl, bc
+ pop bc
+ ld [hl], b
+ call WaitBGMap
+ ld b, SCGB_1B
+ call GetSGBLayout
+ ld a, $e4
+ call DmgToCgbBGPals
+ ld a, $d0
+ call Functioncf8
+ call NextTradeAnim
+ ld a, $5c
+ ld [wcf64], a
+ ret
+; 291af
+
+TradeAnim_TubeToOT2: ; 291af
+ call Function2981d
+ ld a, [hSCX]
+ add $2
+ ld [hSCX], a
+ cp $50
+ ret nz
+ ld a, $1
+ call Function29281
+ call NextTradeAnim
+ ret
+; 291c4
+
+TradeAnim_TubeToOT3: ; 291c4
+ call Function2981d
+ ld a, [hSCX]
+ add $2
+ ld [hSCX], a
+ cp $a0
+ ret nz
+ ld a, $2
+ call Function29281
+ call NextTradeAnim
+ ret
+; 291d9
+
+TradeAnim_TubeToOT4: ; 291d9
+ call Function2981d
+ ld a, [hSCX]
+ add $2
+ ld [hSCX], a
+ and a
+ ret nz
+ call NextTradeAnim
+ ret
+; 291e8
+
+TradeAnim_TubeToPlayer3: ; 291e8
+ call Function2981d
+ ld a, [hSCX]
+ sub $2
+ ld [hSCX], a
+ cp $b0
+ ret nz
+ ld a, $1
+ call Function29281
+ call NextTradeAnim
+ ret
+; 291fd
+
+TradeAnim_TubeToPlayer4: ; 291fd
+ call Function2981d
+ ld a, [hSCX]
+ sub $2
+ ld [hSCX], a
+ cp $60
+ ret nz
+ xor a
+ call Function29281
+ call NextTradeAnim
+ ret
+; 29211
+
+TradeAnim_TubeToPlayer5: ; 29211
+ call Function2981d
+ ld a, [hSCX]
+ sub $2
+ ld [hSCX], a
+ and a
+ ret nz
+ call NextTradeAnim
+ ret
+; 29220
+
+TradeAnim_TubeToOT6:
+TradeAnim_TubeToPlayer6: ; 29220
+ ld a, $80
+ ld [wcf64], a
+ call NextTradeAnim
+ ret
+; 29229
+
+TradeAnim_TubeToOT8:
+TradeAnim_TubeToPlayer8: ; 29229
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ call DisableLCD
+ callab Function8cf53
+ hlbgcoord 0, 0
+ ld bc, sScratch - VBGMap0
+ ld a, " "
+ call ByteFill
+ xor a
+ ld [hSCX], a
+ ld a, $90
+ ld [hWY], a
+ call EnableLCD
+ call Function2982b
+ call WaitBGMap
+ call Function297ed
+ call TradeAnim_Next
+ ret
+; 2925d
+
+TradeAnim_TubeToOT5:
+TradeAnim_TubeToOT7:
+TradeAnim_TubeToPlayer2:
+TradeAnim_TubeToPlayer7: ; 2925d
+ call Function2981d
+ ld hl, wcf64
+ ld a, [hl]
+ and a
+ jr z, .done
+ dec [hl]
+ ret
+
+.done
+ call NextTradeAnim
+ ret
+; 2926d
+
+TradeAnim_GiveTrademonSFX: ; 2926d
+ call TradeAnim_Next
+ ld de, SFX_GIVE_TRADEMON
+ call PlaySFX
+ ret
+; 29277
+
+TradeAnim_GetTrademonSFX: ; 29277
+ call TradeAnim_Next
+ ld de, SFX_GET_TRADEMON
+ call PlaySFX
+ ret
+; 29281
+
+Function29281: ; 29281
+ and 3
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_2928f
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 2928f
+
+Jumptable_2928f: ; 2928f
+ dw Function29297
+ dw Function292af
+ dw Function292be
+ dw Function29297
+; 29297
+
+Function29297: ; 29297
+ call Function297cf
+ hlcoord 9, 3
+ ld [hl], $5b
+ inc hl
+ ld bc, 10
+ ld a, $60
+ call ByteFill
+ hlcoord 3, 2
+ call Function292ec
+ ret
+; 292af
+
+Function292af: ; 292af
+ call Function297cf
+ hlcoord 0, 3
+ ld bc, SCREEN_WIDTH
+ ld a, $60
+ call ByteFill
+ ret
+; 292be
+
+Function292be: ; 292be
+ call Function297cf
+ hlcoord 0, 3
+ ld bc, $11
+ ld a, $60
+ call ByteFill
+ hlcoord 17, 3
+ ld a, $5d
+ ld [hl], a
+ ld a, $61
+ ld de, SCREEN_WIDTH
+ ld c, $3
+.loop
+ add hl, de
+ ld [hl], a
+ dec c
+ jr nz, .loop
+ add hl, de
+ ld a, $5f
+ ld [hld], a
+ ld a, $5b
+ ld [hl], a
+ hlcoord 10, 6
+ call Function292ec
+ ret
+; 292ec
+
+Function292ec: ; 292ec
+ ld de, TradeGameBoyTilemap
+ lb bc, 8, 6
+ call Function297db
+ ret
+; 292f6
+
+Function292f6: ; 292f6
+ push af
+ call ClearBGPalettes
+ call WaitTop
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ call ClearTileMap
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH
+ ld a, "─"
+ call ByteFill
+ hlcoord 0, 1
+ ld de, wLinkPlayer1Name
+ call PlaceString
+ ld hl, wLinkPlayer2Name
+ ld de, 0
+.find_name_end_loop
+ ld a, [hli]
+ cp "@"
+ jr z, .done
+ dec de
+ jr .find_name_end_loop
+
+.done
+ hlcoord 0, 4
+ add hl, de
+ ld de, wLinkPlayer2Name
+ call PlaceString
+ hlcoord 7, 2
+ ld bc, 6
+ pop af
+ call ByteFill
+ call WaitBGMap
+ call WaitTop
+ ld a, VBGMap0 / $100
+ ld [hBGMapAddress + 1], a
+ call ClearTileMap
+ ret
+; 29348
+
+TradeAnim_EnterLinkTube: ; 29348
+ call ClearTileMap
+ call WaitTop
+ ld a, $a0
+ ld [hSCX], a
+ call DelayFrame
+ hlcoord 8, 2
+ ld de, Tilemap_298f7
+ lb bc, 3, 12
+ call Function297db
+ call WaitBGMap
+ ld b, SCGB_1B
+ call GetSGBLayout
+ ld a, $e4
+ call DmgToCgbBGPals
+ ld de, $e4e4
+ call DmgToCgbObjPals
+ ld de, SFX_POTION
+ call PlaySFX
+ call NextTradeAnim
+ ret
+; 2937e
+
+TradeAnim_04: ; 2937e
+ ld a, [hSCX]
+ and a
+ jr z, .done
+ add $4
+ ld [hSCX], a
+ ret
+
+.done
+ ld c, 80
+ call DelayFrames
+ call TradeAnim_Next
+ ret
+; 29391
+
+TradeAnim_ExitLinkTube: ; 29391
+ ld a, [hSCX]
+ cp $a0
+ jr z, .asm_2939c
+ sub $4
+ ld [hSCX], a
+ ret
+
+.asm_2939c
+ call ClearTileMap
+ xor a
+ ld [hSCX], a
+ call TradeAnim_Next
+ ret
+; 293a6
+
+TradeAnim_SetupGivemonScroll: ; 293a6
+ ld a, $8f
+ ld [hWX], a
+ ld a, $88
+ ld [hSCX], a
+ ld a, $50
+ ld [hWY], a
+ call TradeAnim_Next
+ ret
+; 293b6
+
+TradeAnim_DoGivemonScroll: ; 293b6
+ ld a, [hWX]
+ cp $7
+ jr z, .done
+ sub $4
+ ld [hWX], a
+ ld a, [hSCX]
+ sub $4
+ ld [hSCX], a
+ ret
+
+.done
+ ld a, $7
+ ld [hWX], a
+ xor a
+ ld [hSCX], a
+ call TradeAnim_Next
+ ret
+; 293d2
+
+TradeAnim_1d: ; 293d2
+ ld a, $7
+ ld [hWX], a
+ ld a, $50
+ ld [hWY], a
+ call TradeAnim_Next
+ ret
+; 293de
+
+TradeAnim_1e: ; 293de
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ call TradeAnim_Next
+ ret
+; 293ea
+
+TradeAnim_ScrollOutRight: ; 293ea
+ call WaitTop
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ call WaitBGMap
+ ld a, $7
+ ld [hWX], a
+ xor a
+ ld [hWY], a
+ call DelayFrame
+ call WaitTop
+ ld a, VBGMap0 / $100
+ ld [hBGMapAddress + 1], a
+ call ClearTileMap
+ call NextTradeAnim
+ ret
+; 2940c
+
+TradeAnim_ScrollOutRight2: ; 2940c
+ ld a, [hWX]
+ cp $a1
+ jr nc, .done
+ add $4
+ ld [hWX], a
+ ret
+
+.done
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ call WaitBGMap
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ ld a, VBGMap0 / $100
+ ld [hBGMapAddress + 1], a
+ call TradeAnim_Next
+ ret
+; 2942e
+
+TradeAnim_ShowGivemonData: ; 2942e
+ call Function2951f
+ ld a, [wPlayerTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld a, [wPlayerTrademonDVs]
+ ld [TempMonDVs], a
+ ld a, [wPlayerTrademonDVs + 1]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_1A
+ call GetSGBLayout
+ ld a, $e4
+ call DmgToCgbBGPals
+ call Function294bb
+
+ ld a, [wPlayerTrademonSpecies]
+ call GetCryIndex
+ jr c, .skip_cry
+ ld e, c
+ ld d, b
+ call PlayCryHeader
+.skip_cry
+
+ call TradeAnim_Next
+ ret
+; 29461
+
+TradeAnim_ShowGetmonData: ; 29461
+ call Function29549
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld a, [wOTTrademonDVs]
+ ld [TempMonDVs], a
+ ld a, [wOTTrademonDVs + 1]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_1A
+ call GetSGBLayout
+ ld a, $e4
+ call DmgToCgbBGPals
+ call Function294c0
+ call TradeAnim_Next
+ ret
+; 29487
+
+TradeAnim_AnimateFrontpic: ; 29487
+ callba Function4d81e
+ call TradeAnim_Next
+ ret
+; 29491
+
+Function29491: ; 29491
+ push de
+ push af
+ predef GetUnownLetter
+ pop af
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ pop de
+ predef GetFrontpic
+ ret
+; 294a9
+
+Function294a9: ; 294a9
+ push de
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ pop de
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ret
+; 294bb
+
+Function294bb: ; 294bb
+ ld de, VTiles0
+ jr Function294c3
+
+Function294c0: ; 294c0
+ ld de, VTiles0 tile $31
+
+Function294c3: ; 294c3
+ call DelayFrame
+ ld hl, VTiles2
+ lb bc, 10, $31
+ call Request2bpp
+ call WaitTop
+ call Function297cf
+ hlcoord 7, 2
+ xor a
+ ld [hFillBox], a
+ lb bc, 7, 7
+ predef FillBox
+ call WaitBGMap
+ ret
+; 294e7
+
+TraideAnim_Wait80: ; 294e7
+ ld c, 80
+ call DelayFrames
+ call TradeAnim_Next
+ ret
+; 294f0
+
+TraideAnim_Wait40: ; 294f0
+ ld c, 40
+ call DelayFrames
+ call TradeAnim_Next
+ ret
+; 294f9
+
+TraideAnim_Wait96: ; 294f9
+ ld c, 96
+ call DelayFrames
+ call TradeAnim_Next
+ ret
+; 29502
+
+TraideAnim_Wait80IfOTEgg: ; 29502
+ call IsOTTrademonEgg
+ ret nz
+ ld c, 80
+ call DelayFrames
+ ret
+; 2950c
+
+TraideAnim_Wait180IfOTEgg: ; 2950c
+ call IsOTTrademonEgg
+ ret nz
+ ld c, 180
+ call DelayFrames
+ ret
+; 29516
+
+IsOTTrademonEgg: ; 29516
+ call TradeAnim_Next
+ ld a, [wOTTrademonSpecies]
+ cp EGG
+ ret
+; 2951f
+Function2951f: ; 2951f
+ ld de, wPlayerTrademonSpecies
+ ld a, [de]
+ cp EGG
+ jr z, Function295a1
+ call Function29573
+ ld de, wPlayerTrademonSpecies
+ call Function295e3
+ ld de, wPlayerTrademonSpeciesName
+ call Function295ef
+ ld a, [wPlayerTrademonCaughtData]
+ ld de, wPlayerTrademonOTName
+ call Function295f6
+ ld de, PlayerScreens
+ call Function29611
+ call Function295d8
+ ret
+; 29549
+
+Function29549: ; 29549
+ ld de, wOTTrademonSpecies
+ ld a, [de]
+ cp EGG
+ jr z, Function295a1
+ call Function29573
+ ld de, wOTTrademonSpecies
+ call Function295e3
+ ld de, wOTTrademonSpeciesName
+ call Function295ef
+ ld a, [wOTTrademonCaughtData]
+ ld de, wOTTrademonOTName
+ call Function295f6
+ ld de, wOTTrademonID
+ call Function29611
+ call Function295d8
+ ret
+; 29573
+
+Function29573: ; 29573
+ call WaitTop
+ call Function297cf
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ hlcoord 3, 0
+ ld b, $6
+ ld c, $d
+ call TextBox
+ hlcoord 4, 0
+ ld de, String29591
+ call PlaceString
+ ret
+; 29591
+
+String29591: ; 29591
+ db "─── №."
+ next ""
+ next "OT/"
+ next "<ID>№.@"
+; 295a1
+
+Function295a1: ; 295a1
+ call WaitTop
+ call Function297cf
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ hlcoord 3, 0
+ ld b, $6
+ ld c, $d
+ call TextBox
+ hlcoord 4, 2
+ ld de, String295c2
+ call PlaceString
+ call Function295d8
+ ret
+; 295c2
+
+String295c2: ; 295c2
+ db "EGG"
+ next "OT/?????"
+ next "<ID>№.?????@"
+; 295d8
+
+Function295d8: ; 295d8
+ call WaitBGMap
+ call WaitTop
+ ld a, VBGMap0 / $100
+ ld [hBGMapAddress + 1], a
+ ret
+; 295e3
+
+Function295e3: ; 295e3
+ hlcoord 10, 0
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
+ call PrintNum
+ ld [hl], " "
+ ret
+; 295ef
+
+Function295ef: ; 295ef
+ hlcoord 4, 2
+ call PlaceString
+ ret
+; 295f6
+
+Function295f6: ; 295f6
+ cp 3
+ jr c, .asm_295fb
+ xor a
+
+.asm_295fb
+ push af
+ hlcoord 7, 4
+ call PlaceString
+ inc bc
+ pop af
+ ld hl, Unknown_2960e
+ ld d, 0
+ ld e, a
+ add hl, de
+ ld a, [hl]
+ ld [bc], a
+ ret
+; 2960e
+
+Unknown_2960e: ; 2960e
+ db " ", "♂", "♀"
+; 29611
+
+Function29611: ; 29611
+ hlcoord 7, 6
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ ret
+; 2961b
+
+TradeAnim_RockingBall: ; 2961b
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_0E
+ call _InitSpriteAnimStruct
+ call TradeAnim_Next
+ ld a, $20
+ ld [wcf64], a
+ ret
+; 2962c
+
+TradeAnim_DropBall: ; 2962c
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_0E
+ call _InitSpriteAnimStruct
+ ld hl, $b
+ add hl, bc
+ ld [hl], $1
+ ld hl, $7
+ add hl, bc
+ ld [hl], $dc
+ call TradeAnim_Next
+ ld a, $38
+ ld [wcf64], a
+ ret
+; 29649
+
+TradeAnim_Poof: ; 29649
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_0F
+ call _InitSpriteAnimStruct
+ call TradeAnim_Next
+ ld a, $10
+ ld [wcf64], a
+ ld de, SFX_BALL_POOF
+ call PlaySFX
+ ret
+; 29660
+
+TradeAnim_BulgeThroughTube: ; 29660
+ ld a, $e4
+ call Functioncf8
+ depixel 5, 11
+ ld a, SPRITE_ANIM_INDEX_10
+ call _InitSpriteAnimStruct
+ call TradeAnim_Next
+ ld a, $40
+ ld [wcf64], a
+ ret
+; 29676
+
+Function29676: ; 29676 (a:5676)
+ ld hl, $b
+ add hl, bc
+ ld e, [hl]
+ ld d, 0
+ ld hl, Jumptable_29686
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 29686
+
+Jumptable_29686: ; 29686 (a:5686)
+ dw Function2969a
+ dw Function296a4
+ dw Function296af
+ dw Function296bd
+ dw Function296cf
+ dw Function296dd
+ dw Function296f2
+; 2969a
+
+Function29694: ; 29694 (a:5694)
+ ld hl, $b
+ add hl, bc
+ inc [hl]
+ ret
+
+Function2969a: ; 2969a (a:569a)
+ call Function29694
+ ld hl, $c
+ add hl, bc
+ ld [hl], $80
+ ret
+
+Function296a4: ; 296a4 (a:56a4)
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ and a
+ ret nz
+ call Function29694
+
+Function296af: ; 296af (a:56af)
+ ld hl, $4
+ add hl, bc
+ ld a, [hl]
+ cp $94
+ jr nc, .asm_296ba
+ inc [hl]
+ ret
+.asm_296ba
+ call Function29694
+
+Function296bd: ; 296bd (a:56bd)
+ ld hl, $5
+ add hl, bc
+ ld a, [hl]
+ cp $4c
+ jr nc, .asm_296c8
+ inc [hl]
+ ret
+.asm_296c8
+ ld hl, $
+ add hl, bc
+ ld [hl], $0
+ ret
+
+Function296cf: ; 296cf (a:56cf)
+ ld hl, $5
+ add hl, bc
+ ld a, [hl]
+ cp $2c
+ jr z, .asm_296da
+ dec [hl]
+ ret
+.asm_296da
+ call Function29694
+
+Function296dd: ; 296dd (a:56dd)
+ ld hl, $4
+ add hl, bc
+ ld a, [hl]
+ cp $58
+ jr z, .asm_296e8
+ dec [hl]
+ ret
+.asm_296e8
+ call Function29694
+ ld hl, $c
+ add hl, bc
+ ld [hl], $80
+ ret
+
+Function296f2: ; 296f2 (a:56f2)
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ and a
+ ret nz
+ ld hl, $
+ add hl, bc
+ ld [hl], $0
+ ret
+; 29701 (a:5701)
+
+TradeAnim_SentToOTText: ; 29701
+ ld a, [wLinkMode]
+ cp LINK_TIMECAPSULE
+ jr z, .time_capsule
+ ld hl, UnknownText_0x29737
+ call PrintText
+ ld c, 189
+ call DelayFrames
+ ld hl, UnknownText_0x29732
+ call PrintText
+ call Function297c9
+ ld c, 128
+ call DelayFrames
+ call TradeAnim_Next
+ ret
+
+.time_capsule
+ ld hl, UnknownText_0x29732
+ call PrintText
+ call Function297c9
+ call TradeAnim_Next
+ ret
+; 29732
+
+UnknownText_0x29732: ; 0x29732
+ ; was sent to @ .
+ text_jump UnknownText_0x1bc6e9
+ db "@"
+; 0x29737
+
+UnknownText_0x29737: ; 0x29737
+ ;
+ text_jump UnknownText_0x1bc701
+ db "@"
+; 0x2973c
+
+TradeAnim_OTBidsFarewell: ; 2973c
+ ld hl, UnknownText_0x29752
+ call PrintText
+ call Function297c9
+ ld hl, UnknownText_0x29757
+ call PrintText
+ call Function297c9
+ call TradeAnim_Next
+ ret
+; 29752
+
+UnknownText_0x29752: ; 0x29752
+ ; bids farewell to
+ text_jump UnknownText_0x1bc703
+ db "@"
+; 0x29757
+
+UnknownText_0x29757: ; 0x29757
+ ; .
+ text_jump UnknownText_0x1bc719
+ db "@"
+; 0x2975c
+
+TradeAnim_TakeCareOfText: ; 2975c
+ call WaitTop
+ hlcoord 0, 10
+ ld bc, 8 * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ call WaitBGMap
+ ld hl, UnknownText_0x2977a
+ call PrintText
+ call Function297c9
+ call TradeAnim_Next
+ ret
+; 2977a
+
+UnknownText_0x2977a: ; 0x2977a
+ ; Take good care of @ .
+ text_jump UnknownText_0x1bc71f
+ db "@"
+; 0x2977f
+
+TradeAnim_OTSendsText1: ; 2977f
+ ld hl, UnknownText_0x2979a
+ call PrintText
+ call Function297c9
+ ld hl, UnknownText_0x2979f
+ call PrintText
+ call Function297c9
+ ld c, 14
+ call DelayFrames
+ call TradeAnim_Next
+ ret
+; 2979a
+
+UnknownText_0x2979a: ; 0x2979a
+ ; For @ 's @ ,
+ text_jump UnknownText_0x1bc739
+ db "@"
+; 0x2979f
+
+UnknownText_0x2979f: ; 0x2979f
+ ; sends @ .
+ text_jump UnknownText_0x1bc74c
+ db "@"
+; 0x297a4
+
+TradeAnim_OTSendsText2: ; 297a4
+ ld hl, UnknownText_0x297bf
+ call PrintText
+ call Function297c9
+ ld hl, UnknownText_0x297c4
+ call PrintText
+ call Function297c9
+ ld c, 14
+ call DelayFrames
+ call TradeAnim_Next
+ ret
+; 297bf
+
+UnknownText_0x297bf: ; 0x297bf
+ ; will trade @ @
+ text_jump UnknownText_0x1bc75e
+ db "@"
+; 0x297c4
+
+UnknownText_0x297c4: ; 0x297c4
+ ; for @ 's @ .
+ text_jump UnknownText_0x1bc774
+ db "@"
+; 0x297c9
+
+Function297c9: ; 297c9
+ ld c, 80
+ call DelayFrames
+ ret
+; 297cf
+
+Function297cf: ; 297cf
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, " "
+ call ByteFill
+ ret
+; 297db
+
+Function297db: ; 297db
+.asm_297db
+ push bc
+ push hl
+.asm_297dd
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec c
+ jr nz, .asm_297dd
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_297db
+ ret
+; 297ed
+
+Function297ed: ; 297ed
+ ld a, [hSGB]
+ and a
+ ld a, $e4
+ jr z, .asm_297f6
+ ld a, $f0
+
+.asm_297f6
+ call Functioncf8
+ ld a, $e4
+ call DmgToCgbBGPals
+ ret
+; 297ff
+
+Function297ff: ; 297ff
+ push de
+ ld de, wLinkPlayer1Name
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ pop hl
+ ld de, wLinkPlayer2Name
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ret
+; 29814
+
+Function29814: ; 29814
+ ld a, [hl]
+ ld [wc74c], a
+ ld a, [de]
+ ld [wc74d], a
+ ret
+; 2981d
+
+Function2981d: ; 2981d
+ ld a, [wcf65]
+ and $7
+ ret nz
+ ld a, [rBGP]
+ xor $3c
+ call DmgToCgbBGPals
+ ret
+; 2982b
+
+Function2982b: ; 2982b
+ call DelayFrame
+ ld de, TradeBallGFX
+ ld hl, VTiles0 tile $62
+ lb bc, BANK(TradeBallGFX), $6
+ call Request2bpp
+ ld de, TradePoofGFX
+ ld hl, VTiles0 tile $68
+ lb bc, BANK(TradePoofGFX), $c
+ call Request2bpp
+ ld de, TradeCableGFX
+ ld hl, VTiles0 tile $74
+ lb bc, BANK(TradeCableGFX), $4
+ call Request2bpp
+ xor a
+ ld hl, wc300
+ ld [hli], a
+ ld [hl], $62
+ ret
+; 2985a
+
+Function2985a: ; 2985a
+ call DelayFrame
+ ld e, $3
+ callab Function8e83f
+ ld de, TradeBubbleGFX
+ ld hl, VTiles0 tile $72
+ lb bc, BANK(TradeBubbleGFX), $4
+ call Request2bpp
+ xor a
+ ld hl, wc300
+ ld [hli], a
+ ld [hl], $62
+ ret
+; 29879
+
+TradeAnim_WaitAnim: ; 29879
+ ld hl, wcf64
+ ld a, [hl]
+ and a
+ jr z, .done
+ dec [hl]
+ ret
+
+.done
+ call TradeAnim_Next
+ ret
+; 29886
+
+TradeAnim_WaitAnim2: ; 29886
+ ld hl, wcf64
+ ld a, [hl]
+ and a
+ jr z, .done
+ dec [hl]
+ ret
+
+.done
+ call TradeAnim_Next
+ ret
+; 29893
+
+
+DebugTrade: ; 29893
+; This function is unreferenced.
+; It was meant for use in Japanese versions, so the
+; constant used for copy length was changed by accident.
+
+ ld hl, Unknown_298b5
+
+ ld a, [hli]
+ ld [wPlayerTrademonSpecies], a
+ ld de, wPlayerTrademonSenderName
+ ld c, 11 + 2 ; jp: 6 + 2
+.loop1
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .loop1
+
+ ld a, [hli]
+ ld [wOTTrademonSpecies], a
+ ld de, wOTTrademonSenderName
+ ld c, 11 + 2 ; jp: 6 + 2
+.loop2
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .loop2
+ ret
+; 298b5
+
+Unknown_298b5: ; 298b5
+ db VENUSAUR, "ゲーフり@@", $23, $01 ; GAME FREAK
+ db CHARIZARD, "クりーチャ@", $56, $04 ; Creatures Inc.
+; 298c7
+
+
+TradeGameBoyTilemap: ; 298c7
+; 6x8
+ db $31, $32, $32, $32, $32, $33
+ db $34, $35, $36, $36, $37, $38
+ db $34, $39, $3a, $3a, $3b, $38
+ db $3c, $3d, $3e, $3e, $3f, $40
+ db $41, $42, $43, $43, $44, $45
+ db $46, $47, $43, $48, $49, $4a
+ db $41, $43, $4b, $4c, $4d, $4e
+ db $4f, $50, $50, $50, $51, $52
+; 297f7
+
+Tilemap_298f7: ; 297f7
+; 12x3
+ db $43, $55, $56, $53, $53, $53, $53, $53, $53, $53, $53, $53
+ db $43, $57, $58, $54, $54, $54, $54, $54, $54, $54, $54, $54
+ db $43, $59, $5a, $43, $43, $43, $43, $43, $43, $43, $43, $43
+; 2991b
+
+TradeArrowGFX: INCBIN "gfx/trade/arrow.2bpp"
+TradeCableGFX: INCBIN "gfx/trade/cable.2bpp"
+TradeBubbleGFX: INCBIN "gfx/trade/bubble.2bpp"
+TradeGameBoyLZ: INCBIN "gfx/trade/game_boy.2bpp.lz"
+TradeBallGFX: INCBIN "gfx/trade/ball.2bpp"
+TradePoofGFX: INCBIN "gfx/trade/poof.2bpp"
--- /dev/null
+++ b/engine/trainer_card.asm
@@ -1,0 +1,619 @@
+TrainerCard: ; 25105
+ ld a, [VramState]
+ push af
+ xor a
+ ld [VramState], a
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ call Function2513b
+.asm_25117
+ call UpdateTime
+ call JoyTextDelay
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .asm_25132
+ ld a, [hJoyLast]
+ and B_BUTTON
+ jr nz, .asm_25132
+ call Function2518e
+ call DelayFrame
+ jr .asm_25117
+.asm_25132
+ pop af
+ ld [Options], a
+ pop af
+ ld [VramState], a
+ ret
+
+Function2513b: ; 2513b (9:513b)
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+
+ callba Function8833e
+
+ ld hl, CardRightCornerGFX
+ ld de, VTiles2 tile $1c
+ ld bc, 1 tiles
+ ld a, BANK(CardRightCornerGFX)
+ call FarCopyBytes
+
+ ld hl, CardStatusGFX
+ ld de, VTiles2 tile $29
+ ld bc, $56 tiles
+ ld a, BANK(CardStatusGFX)
+ call FarCopyBytes
+
+ call Function25299
+
+ hlcoord 0, 8
+ ld d, $6
+ call Function253b0
+
+ call EnableLCD
+ call WaitBGMap
+ ld b, SCGB_15
+ call GetSGBLayout
+ call SetPalettes
+ call WaitBGMap
+ ld hl, wJumptableIndex
+ xor a
+rept 3
+ ld [hli], a
+endr
+ ld [hl], a
+ ret
+
+Function2518e: ; 2518e (9:518e)
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, $0
+ ld hl, Jumptable_2519d
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+Jumptable_2519d: ; 2519d (9:519d)
+ dw Function251b6
+ dw Function251d7
+ dw Function251f4
+ dw Function25221
+ dw Function2524c
+ dw Function25279
+ dw Function251b0
+
+
+Function251ab: ; 251ab (9:51ab)
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+
+Function251b0: ; 251b0 (9:51b0)
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+Function251b6: ; 251b6 (9:51b6)
+ call ClearSprites
+ hlcoord 0, 8
+ ld d, $6
+ call Function253b0
+ call WaitBGMap
+ ld de, CardStatusGFX
+ ld hl, VTiles2 tile $29
+ lb bc, BANK(CardStatusGFX), $56
+ call Request2bpp
+ call Function2530a
+ call Function251ab
+ ret
+
+Function251d7: ; 251d7 (9:51d7)
+ call Function25415
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_RIGHT | A_BUTTON
+ jr nz, .pressed_right_a
+ ret
+
+.pressed_right_a
+ ld a, $2
+ ld [wJumptableIndex], a
+ ret
+; 251e9 (9:51e9)
+
+Function251e9: ; 251e9
+ ld a, [KantoBadges]
+ and a
+ ret z
+
+ ld a, $4
+ ld [wJumptableIndex], a
+ ret
+; 251f4
+
+Function251f4: ; 251f4 (9:51f4)
+ call ClearSprites
+ hlcoord 0, 8
+ ld d, $6
+ call Function253b0
+ call WaitBGMap
+ ld de, LeaderGFX
+ ld hl, VTiles2 tile $29
+ lb bc, BANK(LeaderGFX), $56
+ call Request2bpp
+ ld de, BadgeGFX
+ ld hl, VTiles0 tile $00
+ lb bc, BANK(BadgeGFX), $2c
+ call Request2bpp
+ call Function2536c
+ call Function251ab
+ ret
+
+Function25221: ; 25221 (9:5221)
+ ld hl, Unknown_254c9
+ call Function25438
+ ld hl, hJoyLast
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, Function25246
+ ld a, [hl]
+ and D_LEFT
+ jr nz, .asm_25235
+ ret
+.asm_25235
+ ld a, $0
+ ld [wJumptableIndex], a
+ ret
+; 2523b (9:523b)
+
+Function2523b: ; 2523b
+ ld a, [KantoBadges]
+ and a
+ ret z
+ ld a, $4
+ ld [wJumptableIndex], a
+ ret
+; 25246
+
+Function25246: ; 25246
+ ld a, $6
+ ld [wJumptableIndex], a
+ ret
+
+Function2524c: ; 2524c (9:524c)
+ call ClearSprites
+ hlcoord 0, 8
+ ld d, $6
+ call Function253b0
+ call WaitBGMap
+ ld de, LeaderGFX2
+ ld hl, VTiles2 tile $29
+ lb bc, BANK(LeaderGFX2), $56
+ call Request2bpp
+ ld de, BadgeGFX2
+ ld hl, VTiles0 tile $00
+ lb bc, BANK(BadgeGFX2), $2c
+ call Request2bpp
+ call Function2536c
+ call Function251ab
+ ret
+
+Function25279: ; 25279 (9:5279)
+ ld hl, Unknown_254c9
+ call Function25438
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_LEFT
+ jr nz, .left
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, .right
+ ret
+
+.left
+ ld a, $2
+ ld [wJumptableIndex], a
+ ret
+
+.right
+ ld a, $0
+ ld [wJumptableIndex], a
+ ret
+
+Function25299: ; 25299 (9:5299)
+ hlcoord 0, 0
+ ld d, $5
+ call Function253b0
+ hlcoord 2, 2
+ ld de, String_252ec
+ call PlaceString
+ hlcoord 2, 4
+ ld de, Tilemap_252f9
+ call Function253a8
+ hlcoord 7, 2
+ ld de, PlayerName
+ call PlaceString
+ hlcoord 5, 4
+ ld de, PlayerID
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ hlcoord 7, 6
+ ld de, Money
+ lb bc, PRINTNUM_MONEY | 3, 6
+ call PrintNum
+ hlcoord 1, 3
+ ld de, Tilemap_252fc
+ call Function253a8
+ hlcoord 14, 1
+ lb bc, 5, 7
+ xor a
+ ld [hFillBox], a
+ predef FillBox
+ ret
+; 252ec (9:52ec)
+
+String_252ec: ; 252ec
+ db "NAME/"
+ next ""
+ next "MONEY@"
+
+Tilemap_252f9: ; 252f9
+ db $27, $28, $ff ; ID NO
+
+Tilemap_252fc: ; 252fc
+ db $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $26, $ff ; ____________>
+; 2530a
+
+Function2530a: ; 2530a (9:530a)
+ hlcoord 2, 10
+ ld de, String_2534c
+ call PlaceString
+ hlcoord 10, 15
+ ld de, String_2535c
+ call PlaceString
+ ld hl, PokedexCaught
+ ld b, $20
+ call CountSetBits
+ ld de, wd265
+ hlcoord 15, 10
+ lb bc, 1, 3
+ call PrintNum
+ call Function25415
+ hlcoord 2, 8
+ ld de, Tilemap_25366
+ call Function253a8
+ ld a, [StatusFlags] ; pokedex
+ bit 0, a
+ ret nz
+ hlcoord 1, 9
+ lb bc, 2, 17
+ call ClearBox
+ ret
+; 2534c (9:534c)
+
+String_2534c: ; 2534c
+ db "#DEX"
+ next "PLAY TIME"
+ db "@"
+
+String_2535b: ; 2535b
+ db "@"
+
+String_2535c: ; 2535c
+ db " BADGES▶@"
+
+Tilemap_25366: ; 25366
+ db $29, $2a, $2b, $2c, $2d, $ff
+; 2536c
+
+Function2536c: ; 2536c (9:536c)
+ hlcoord 2, 8
+ ld de, Tilemap_253a2
+ call Function253a8
+ hlcoord 2, 10
+ ld a, $29
+ ld c, $4
+.asm_2537c
+ call Function253f4
+rept 4
+ inc hl
+endr
+ dec c
+ jr nz, .asm_2537c
+ hlcoord 2, 13
+ ld a, $51
+ ld c, $4
+.asm_2538d
+ call Function253f4
+rept 4
+ inc hl
+endr
+ dec c
+ jr nz, .asm_2538d
+ xor a
+ ld [wcf64], a
+ ld hl, Unknown_254c9
+ call Function25448
+ ret
+; 253a2 (9:53a2)
+
+Tilemap_253a2: ; 253a2
+ db $79, $7a, $7b, $7c, $7d, $ff ; "BADGES"
+; 253a8
+
+Function253a8: ; 253a8 (9:53a8)
+ ld a, [de]
+ cp $ff
+ ret z
+ ld [hli], a
+ inc de
+ jr Function253a8
+
+Function253b0: ; 253b0 (9:53b0)
+ ld e, $14
+.asm_253b2
+ ld a, $23
+ ld [hli], a
+ dec e
+ jr nz, .asm_253b2
+ ld a, $23
+ ld [hli], a
+ ld e, $11
+ ld a, $7f
+.asm_253bf
+ ld [hli], a
+ dec e
+ jr nz, .asm_253bf
+ ld a, $1c
+ ld [hli], a
+ ld a, $23
+ ld [hli], a
+.asm_253c9
+ ld a, $23
+ ld [hli], a
+ ld e, $12
+ ld a, $7f
+.asm_253d0
+ ld [hli], a
+ dec e
+ jr nz, .asm_253d0
+ ld a, $23
+ ld [hli], a
+ dec d
+ jr nz, .asm_253c9
+ ld a, $23
+ ld [hli], a
+ ld a, $24
+ ld [hli], a
+ ld e, $11
+ ld a, $7f
+.asm_253e4
+ ld [hli], a
+ dec e
+ jr nz, .asm_253e4
+ ld a, $23
+ ld [hli], a
+ ld e, $14
+.asm_253ed
+ ld a, $23
+ ld [hli], a
+ dec e
+ jr nz, .asm_253ed
+ ret
+
+Function253f4: ; 253f4 (9:53f4)
+ push de
+ push hl
+ ld [hli], a
+ inc a
+ ld [hli], a
+ inc a
+ ld [hli], a
+ inc a
+ ld [hli], a
+ inc a
+ ld de, $11
+ add hl, de
+ ld [hli], a
+ inc a
+ ld [hli], a
+ inc a
+ ld [hli], a
+ inc a
+ ld de, $11
+ add hl, de
+ ld [hli], a
+ inc a
+ ld [hli], a
+ inc a
+ ld [hli], a
+ inc a
+ pop hl
+ pop de
+ ret
+
+Function25415: ; 25415 (9:5415)
+ hlcoord 11, 12
+ ld de, GameTimeHours
+ lb bc, 2, 4
+ call PrintNum
+ inc hl
+ ld de, GameTimeMinutes
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNum
+ ld a, [hVBlankCounter]
+ and $1f
+ ret nz
+ hlcoord 15, 12
+ ld a, [hl]
+ xor $51
+ ld [hl], a
+ ret
+
+Function25438: ; 25438 (9:5438)
+ ld a, [hVBlankCounter]
+ and $7
+ ret nz
+ ld a, [wcf64]
+ inc a
+ and $7
+ ld [wcf64], a
+ jr Function25448
+
+Function25448: ; 25448 (9:5448)
+; copy flag array pointer
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+; get flag array
+ ld d, a
+ ld a, [de]
+ ld c, a
+ ld de, Sprites
+ ld b, 8
+.loop
+ srl c
+ push bc
+ jr nc, .skip_badge
+ push hl
+ ld a, [hli] ; y
+ ld b, a
+ ld a, [hli] ; x
+ ld c, a
+ ld a, [hli] ; pal
+ ld [wcf66], a
+ ld a, [wcf64]
+ add l
+ ld l, a
+ ld a, 0
+ adc h
+ ld h, a
+ ld a, [hl]
+ ld [wcf65], a
+ call Function2547b
+ pop hl
+.skip_badge
+ ld bc, $b ; 3 + 2 * 4
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .loop
+ ret
+
+Function2547b: ; 2547b (9:547b)
+ ld a, [wcf65]
+ and $80
+ jr nz, .xflip
+ ld hl, .facing1
+ jr .loop
+.xflip
+ ld hl, .facing2
+.loop
+ ld a, [hli]
+ cp $ff
+ ret z
+ add b
+ ld [de], a
+ inc de
+
+ ld a, [hli]
+ add c
+ ld [de], a
+ inc de
+
+ ld a, [wcf65]
+ and $7f
+ add [hl]
+ ld [de], a
+ inc hl
+ inc de
+
+ ld a, [wcf66]
+ add [hl]
+ ld [de], a
+ inc hl
+ inc de
+ jr .loop
+; 254a7 (9:54a7)
+
+.facing1: ; 254a7
+ ; y, x, tile, OAM attributes
+ db 0, 0, 0, 0
+ db 0, 8, 1, 0
+ db 8, 0, 2, 0
+ db 8, 8, 3, 0
+ db -1
+
+.facing2: ; 254b8
+ db 0, 0, 1, X_FLIP
+ db 0, 8, 0, X_FLIP
+ db 8, 0, 3, X_FLIP
+ db 8, 8, 2, X_FLIP
+ db -1
+
+Unknown_254c9: ; 254c9
+; Template OAM data for each badge on the trainer card.
+; Format:
+ ; y, x, palette
+ ; cycle 1: face tile, in1 tile, in2 tile, in3 tile
+ ; cycle 2: face tile, in1 tile, in2 tile, in3 tile
+
+ dw JohtoBadges
+
+ ; Zephyrbadge
+ db $68, $18, 0
+ db $00, $20, $24, $20 | $80
+ db $00, $20, $24, $20 | $80
+
+ ; Hivebadge
+ db $68, $38, 0
+ db $04, $20, $24, $20 | $80
+ db $04, $20, $24, $20 | $80
+
+ ; Plainbadge
+ db $68, $58, 0
+ db $08, $20, $24, $20 | $80
+ db $08, $20, $24, $20 | $80
+
+ ; Fogbadge
+ db $68, $78, 0
+ db $0c, $20, $24, $20 | $80
+ db $0c, $20, $24, $20 | $80
+
+ ; Mineralbadge
+ db $80, $38, 0
+ db $10, $20, $24, $20 | $80
+ db $10, $20, $24, $20 | $80
+
+ ; Stormbadge
+ db $80, $18, 0
+ db $14, $20, $24, $20 | $80
+ db $14, $20, $24, $20 | $80
+
+ ; Glacierbadge
+ db $80, $58, 0
+ db $18, $20, $24, $20 | $80
+ db $18, $20, $24, $20 | $80
+
+ ; Risingbadge
+ ; X-flips on alternate cycles.
+ db $80, $78, 0
+ db $1c, $20, $24, $20 | $80
+ db $1c | $80, $20, $24, $20 | $80
+; 25523
+
+CardStatusGFX: INCBIN "gfx/misc/card_status.2bpp"
+
+LeaderGFX: INCBIN "gfx/misc/leaders.w24.2bpp"
+LeaderGFX2: INCBIN "gfx/misc/leaders.w24.2bpp"
+BadgeGFX: INCBIN "gfx/misc/badges.2bpp"
+BadgeGFX2: INCBIN "gfx/misc/badges.2bpp"
+
+CardRightCornerGFX: INCBIN "gfx/misc/card_right_corner.2bpp"
--- /dev/null
+++ b/engine/variables.asm
@@ -1,0 +1,150 @@
+_GetVarAction:: ; 80648 (20:4648)
+ ld a, c
+ cp NUM_VARS
+ jr c, .valid
+ xor a
+.valid
+ ld c, a
+ ld b, 0
+ ld hl, .VarActionTable
+rept 3
+ add hl, bc
+endr
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ ld b, [hl]
+ ld a, b
+ and RETVAR_EXECUTE
+ jr nz, .call
+ ld a, b
+ and RETVAR_ADDR_DE
+ ret nz
+ ld a, [de]
+ jr .loadstringbuffer2
+
+.call
+ call _de_
+ ret
+
+.loadstringbuffer2: ; 8066c (20:466c)
+ ld de, StringBuffer2
+ ld [de], a
+ ret
+; 80671 (20:4671)
+
+.VarActionTable: ; 80671
+; $00: copy [de] to StringBuffer2
+; $40: return address in de
+; $80: call function
+ dwb StringBuffer2, RETVAR_STRBUF2
+ dwb PartyCount, RETVAR_STRBUF2
+ dwb .BattleResult, RETVAR_EXECUTE
+ dwb BattleType, RETVAR_ADDR_DE
+ dwb TimeOfDay, RETVAR_STRBUF2
+ dwb .CountCaughtMons, RETVAR_EXECUTE
+ dwb .CountSeenMons, RETVAR_EXECUTE
+ dwb .CountBadges, RETVAR_EXECUTE
+ dwb PlayerState, RETVAR_ADDR_DE
+ dwb .PlayerFacing, RETVAR_EXECUTE
+ dwb hHours, RETVAR_STRBUF2
+ dwb .DayOfWeek, RETVAR_EXECUTE
+ dwb MapGroup, RETVAR_STRBUF2
+ dwb MapNumber, RETVAR_STRBUF2
+ dwb .UnownCaught, RETVAR_EXECUTE
+ dwb wPermission, RETVAR_STRBUF2
+ dwb .BoxFreeSpace, RETVAR_EXECUTE
+ dwb wBugContestMinsRemaining, RETVAR_STRBUF2
+ dwb XCoord, RETVAR_STRBUF2
+ dwb YCoord, RETVAR_STRBUF2
+ dwb wSpecialPhoneCallID, RETVAR_STRBUF2
+ dwb wcf64, RETVAR_STRBUF2
+ dwb wKurtApricornQuantity, RETVAR_STRBUF2
+ dwb wCurrentCaller, RETVAR_ADDR_DE
+ dwb wBlueCardBalance, RETVAR_ADDR_DE
+ dwb wBuenasPassword, RETVAR_ADDR_DE
+ dwb wdc58, RETVAR_STRBUF2
+ dwb NULL, RETVAR_STRBUF2
+; 806c5
+
+.CountCaughtMons: ; 806c5
+; Caught mons.
+ ld hl, PokedexCaught
+ ld b, EndPokedexCaught - PokedexCaught
+ call CountSetBits
+ ld a, [wd265]
+ jp .loadstringbuffer2
+; 806d3
+
+.CountSeenMons: ; 806d3
+; Seen mons.
+ ld hl, PokedexSeen
+ ld b, EndPokedexSeen - PokedexSeen
+ call CountSetBits
+ ld a, [wd265]
+ jp .loadstringbuffer2
+; 806e1
+
+.CountBadges: ; 806e1
+; Number of owned badges.
+ ld hl, Badges
+ ld b, 2
+ call CountSetBits
+ ld a, [wd265]
+ jp .loadstringbuffer2
+; 806ef
+
+.PlayerFacing: ; 806ef
+; The direction the player is facing.
+ ld a, [PlayerDirection]
+ and $c
+ rrca
+ rrca
+ jp .loadstringbuffer2
+; 806f9
+
+.DayOfWeek: ; 806f9
+; The day of the week.
+ call GetWeekday
+ jp .loadstringbuffer2
+; 806ff
+
+.UnownCaught: ; 806ff
+; Number of unique Unown caught.
+ call .count
+ ld a, b
+ jp .loadstringbuffer2
+
+.count
+ ld hl, UnownDex
+ ld b, 0
+.loop
+ ld a, [hli]
+ and a
+ ret z
+ inc b
+ ld a, b
+ cp 26
+ jr c, .loop
+ ret
+; 80715
+
+.BoxFreeSpace: ; 80715
+; Remaining slots in the current box.
+ ld a, BANK(sBoxCount)
+ call GetSRAMBank
+ ld hl, sBoxCount
+ ld a, MONS_PER_BOX
+ sub [hl]
+ ld b, a
+ call CloseSRAM
+ ld a, b
+ jp .loadstringbuffer2
+; 80728
+
+.BattleResult: ; 80728
+ ld a, [wBattleResult]
+ and $3f
+ jp .loadstringbuffer2
+; 80730
--- /dev/null
+++ b/engine/wildmons.asm
@@ -1,0 +1,1057 @@
+LoadWildMonData: ; 29ff8
+ call _GrassWildmonLookup
+ jr c, .copy
+ ld hl, wd25a
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ jr .done_copy
+.copy
+ inc hl
+ inc hl
+ ld de, wd25a
+ ld bc, $3
+ call CopyBytes
+.done_copy
+ call _WaterWildmonLookup
+ ld a, $0
+ jr nc, .no_copy
+ inc hl
+ inc hl
+ ld a, [hl]
+.no_copy
+ ld [wd25d], a
+ ret
+
+Function2a01f: ; 2a01f
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ xor a
+ call ByteFill
+ ld a, e
+ and a
+ jr nz, .kanto
+ decoord 0, 0
+ ld hl, JohtoGrassWildMons
+ call Function2a052
+ ld hl, JohtoWaterWildMons
+ call Function2a06e
+ call Function2a0b7
+ call Function2a0cf
+ ret
+
+.kanto
+ decoord 0, 0
+ ld hl, KantoGrassWildMons
+ call Function2a052
+ ld hl, KantoWaterWildMons
+ jp Function2a06e
+; 2a052
+
+Function2a052: ; 2a052
+.loop
+ ld a, [hl]
+ cp $ff
+ ret z
+ push hl
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld c, a
+rept 3
+ inc hl
+endr
+ ld a, $15
+ call Function2a088
+ jr nc, .next
+ ld [de], a
+ inc de
+
+.next
+ pop hl
+ ld bc, $2f
+ add hl, bc
+ jr .loop
+; 2a06e
+
+Function2a06e: ; 2a06e
+.loop
+ ld a, [hl]
+ cp $ff
+ ret z
+ push hl
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld c, a
+ inc hl
+ ld a, $3
+ call Function2a088
+ jr nc, .next
+ ld [de], a
+ inc de
+
+.next
+ pop hl
+ ld bc, 9
+ add hl, bc
+ jr .loop
+; 2a088
+
+Function2a088: ; 2a088
+ inc hl
+.loop
+ push af
+ ld a, [wd265]
+ cp [hl]
+ jr z, .found
+rept 2
+ inc hl
+endr
+ pop af
+ dec a
+ jr nz, .loop
+ and a
+ ret
+
+.found
+ pop af
+ jp Function2a09c
+; 2a09c
+
+Function2a09c: ; 2a09c
+ push de
+ call GetWorldMapLocation
+ ld c, a
+ hlcoord 0, 0
+ ld de, SCREEN_WIDTH * SCREEN_HEIGHT
+.loop
+ ld a, [hli]
+ cp c
+ jr z, .found
+ dec de
+ ld a, e
+ or d
+ jr nz, .loop
+ ld a, c
+ pop de
+ scf
+ ret
+
+.found
+ pop de
+ and a
+ ret
+; 2a0b7
+
+Function2a0b7: ; 2a0b7
+ ld a, [wRoamMon1Species]
+ ld b, a
+ ld a, [wd265]
+ cp b
+ ret nz
+ ld a, [wRoamMon1MapGroup]
+ ld b, a
+ ld a, [wRoamMon1MapNumber]
+ ld c, a
+ call Function2a09c
+ ret nc
+ ld [de], a
+ inc de
+ ret
+; 2a0cf
+
+Function2a0cf: ; 2a0cf
+ ld a, [wRoamMon2Species]
+ ld b, a
+ ld a, [wd265]
+ cp b
+ ret nz
+ ld a, [wRoamMon2MapGroup]
+ ld b, a
+ ld a, [wRoamMon2MapNumber]
+ ld c, a
+ call Function2a09c
+ ret nc
+ ld [de], a
+ inc de
+ ret
+; 2a0e7
+
+TryWildEncounter:: ; 2a0e7
+; Try to trigger a wild encounter.
+ call .EncounterRate
+ jr nc, .no_battle
+ call ChooseWildEncounter
+ jr nz, .no_battle
+ call CheckRepelEffect
+ jr nc, .no_battle
+ xor a
+ ret
+
+.no_battle
+ xor a ; BATTLETYPE_NORMAL
+ ld [TempWildMonSpecies], a
+ ld [BattleType], a
+ ld a, 1
+ and a
+ ret
+; 2a103
+
+.EncounterRate: ; 2a103
+ call GetMapEncounterRate
+ call ApplyMusicEffectOnEncounterRate
+ call ApplyCleanseTagEffectOnEncounterRate
+ call Random
+ cp b
+ ret
+; 2a111
+
+GetMapEncounterRate: ; 2a111
+ ld hl, wd25a
+ call CheckOnWater
+ ld a, 3
+ jr z, .ok
+ ld a, [TimeOfDay]
+.ok
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld b, [hl]
+ ret
+; 2a124
+
+ApplyMusicEffectOnEncounterRate:: ; 2a124
+; Pokemon March and Ruins of Alph signal double encounter rate.
+; Pokemon Lullaby halves encounter rate.
+ ld a, [wMapMusic]
+ cp MUSIC_POKEMON_MARCH
+ jr z, .double
+ cp MUSIC_RUINS_OF_ALPH_RADIO
+ jr z, .double
+ cp MUSIC_POKEMON_LULLABY
+ ret nz
+ srl b
+ ret
+
+.double
+ sla b
+ ret
+; 2a138
+
+ApplyCleanseTagEffectOnEncounterRate:: ; 2a138
+; Cleanse Tag halves encounter rate.
+ ld hl, PartyMon1Item
+ ld de, PARTYMON_STRUCT_LENGTH
+ ld a, [PartyCount]
+ ld c, a
+.loop
+ ld a, [hl]
+ cp CLEANSE_TAG
+ jr z, .cleansetag
+ add hl, de
+ dec c
+ jr nz, .loop
+ ret
+
+.cleansetag
+ srl b
+ ret
+; 2a14f
+
+ChooseWildEncounter: ; 2a14f
+ call LoadWildMonDataPointer
+ jp nc, .nowildbattle
+ call CheckEncounterRoamMon
+ jp c, .startwildbattle
+
+rept 3
+ inc hl
+endr
+ call CheckOnWater
+ ld de, .WaterMonTable
+ jr z, .watermon
+rept 2
+ inc hl
+endr
+ ld a, [TimeOfDay]
+ ld bc, $e
+ call AddNTimes
+ ld de, .GrassMonTable
+
+.watermon
+; hl contains the pointer to the wild mon data, let's save that to the stack
+ push hl
+.randomloop
+ call Random
+ cp 100
+ jr nc, .randomloop
+ inc a ; 1 <= a <= 100
+ ld b, a
+ ld h, d
+ ld l, e
+; This next loop chooses which mon to load up.
+.prob_bracket_loop
+ ld a, [hli]
+ cp b
+ jr nc, .got_it
+ inc hl
+ jr .prob_bracket_loop
+
+.got_it
+ ld c, [hl]
+ ld b, 0
+ pop hl
+ add hl, bc ; this selects our mon
+ ld a, [hli]
+ ld b, a
+; If the Pokemon is encountered by surfing, we need to give the levels some variety.
+ call CheckOnWater
+ jr nz, .ok
+; Check if we buff the wild mon, and by how much.
+ call Random
+ cp 35 percent
+ jr c, .ok
+ inc b
+ cp 65 percent
+ jr c, .ok
+ inc b
+ cp 85 percent
+ jr c, .ok
+ inc b
+ cp 95 percent
+ jr c, .ok
+ inc b
+; Store the level
+.ok
+ ld a, b
+ ld [CurPartyLevel], a
+ ld b, [hl]
+ ; ld a, b
+ call ValidateTempWildMonSpecies
+ jr c, .nowildbattle
+
+ ld a, b ; This is in the wrong place.
+ cp UNOWN
+ jr nz, .done
+
+ ld a, [UnlockedUnowns]
+ and a
+ jr z, .nowildbattle
+
+.done
+ jr .loadwildmon
+
+.nowildbattle
+ ld a, 1
+ and a
+ ret
+
+.loadwildmon
+ ld a, b
+ ld [TempWildMonSpecies], a
+
+.startwildbattle
+ xor a
+ ret
+; 2a1cb
+
+.GrassMonTable: ; 2a1cb
+ db 30, $0 ; 30% chance
+ db 60, $2 ; 30% chance
+ db 80, $4 ; 20% chance
+ db 90, $6 ; 10% chance
+ db 95, $8 ; 5% chance
+ db 99, $a ; 4% chance
+ db 100, $c ; 1% chance
+; 2a1d9
+
+.WaterMonTable: ; 2a1d9
+ db 60, $0 ; 60% chance
+ db 90, $2 ; 30% chance
+ db 100, $4 ; 10% chance
+; 2a1df
+
+CheckRepelEffect:: ; 2a1df
+; If there is no active Repel, there's no need to be here.
+ ld a, [wRepelEffect]
+ and a
+ jr z, .encounter
+; Get the first Pokemon in your party that isn't fainted.
+ ld hl, PartyMon1HP
+ ld bc, PARTYMON_STRUCT_LENGTH - 1
+.loop
+ ld a, [hli]
+ or [hl]
+ jr nz, .ok
+ add hl, bc
+ jr .loop
+
+.ok
+; to PartyMonLevel
+rept 4
+ dec hl
+endr
+
+ ld a, [CurPartyLevel]
+ cp [hl]
+ jr nc, .encounter
+ and a
+ ret
+
+.encounter
+ scf
+ ret
+; 2a200
+
+LoadWildMonDataPointer: ; 2a200
+ call CheckOnWater
+ jr z, _WaterWildmonLookup
+
+_GrassWildmonLookup: ; 2a205
+ ld hl, SwarmGrassWildMons
+ ld bc, GRASS_WILDDATA_LENGTH
+ call _SwarmWildmonCheck
+ ret c
+ ld hl, JohtoGrassWildMons
+ ld de, KantoGrassWildMons
+ call _JohtoWildmonCheck
+ ld bc, GRASS_WILDDATA_LENGTH
+ jr _NormalWildmonOK
+
+_WaterWildmonLookup: ; 2a21d
+ ld hl, SwarmWaterWildMons
+ ld bc, WATER_WILDDATA_LENGTH
+ call _SwarmWildmonCheck
+ ret c
+ ld hl, JohtoWaterWildMons
+ ld de, KantoWaterWildMons
+ call _JohtoWildmonCheck
+ ld bc, WATER_WILDDATA_LENGTH
+ jr _NormalWildmonOK
+
+_JohtoWildmonCheck
+ call IsInJohto
+ and a
+ ret z
+ ld h, d
+ ld l, e
+ ret
+
+_SwarmWildmonCheck
+ call CopyCurrMapDE
+ push hl
+ ld hl, SwarmFlags
+ bit 2, [hl]
+ pop hl
+ jr z, .CheckYanma
+ ld a, [wdfcc]
+ cp d
+ jr nz, .CheckYanma
+ ld a, [wdfcd]
+ cp e
+ jr nz, .CheckYanma
+ call LookUpWildmonsForMapDE
+ jr nc, _NoSwarmWildmon
+ scf
+ ret
+
+.CheckYanma
+ push hl
+ ld hl, SwarmFlags
+ bit 3, [hl]
+ pop hl
+ jr z, _NoSwarmWildmon
+ ld a, [wdc5a]
+ cp d
+ jr nz, _NoSwarmWildmon
+ ld a, [wdc5b]
+ cp e
+ jr nz, _NoSwarmWildmon
+ call LookUpWildmonsForMapDE
+ jr nc, _NoSwarmWildmon
+ scf
+ ret
+
+_NoSwarmWildmon
+ and a
+ ret
+
+_NormalWildmonOK
+ call CopyCurrMapDE
+ jr LookUpWildmonsForMapDE
+; 2a27f
+
+CopyCurrMapDE: ; 2a27f
+ ld a, [MapGroup]
+ ld d, a
+ ld a, [MapNumber]
+ ld e, a
+ ret
+; 2a288
+
+LookUpWildmonsForMapDE: ; 2a288
+ push hl
+ ld a, [hl]
+ inc a
+ jr z, .nope
+ ld a, d
+ cp [hl]
+ jr nz, .next
+ inc hl
+ ld a, e
+ cp [hl]
+ jr z, .yup
+
+.next
+ pop hl
+ add hl, bc
+ jr LookUpWildmonsForMapDE
+
+.nope
+ pop hl
+ and a
+ ret
+
+.yup
+ pop hl
+ scf
+ ret
+; 2a2a0
+
+
+InitRoamMons: ; 2a2a0
+; initialize wRoamMon structs
+
+; species
+ ld a, RAIKOU
+ ld [wRoamMon1Species], a
+ ld a, ENTEI
+ ld [wRoamMon2Species], a
+; ld a, SUICUNE
+; ld [wRoamMon3Species], a
+
+; level
+ ld a, 40
+ ld [wRoamMon1Level], a
+ ld [wRoamMon2Level], a
+; ld [wRoamMon3Level], a
+
+; raikou starting map
+ ld a, GROUP_ROUTE_42
+ ld [wRoamMon1MapGroup], a
+ ld a, MAP_ROUTE_42
+ ld [wRoamMon1MapNumber], a
+
+; entei starting map
+ ld a, GROUP_ROUTE_37
+ ld [wRoamMon2MapGroup], a
+ ld a, MAP_ROUTE_37
+ ld [wRoamMon2MapNumber], a
+
+; suicune starting map
+; ld a, GROUP_ROUTE_38
+; ld [wRoamMon3MapGroup], a
+; ld a, MAP_ROUTE_38
+; ld [wRoamMon3MapNumber], a
+
+; hp
+ xor a ; generate new stats
+ ld [wRoamMon1HP], a
+ ld [wRoamMon2HP], a
+; ld [wRoamMon3HP], a
+
+ ret
+; 2a2ce
+
+
+CheckEncounterRoamMon: ; 2a2ce
+ push hl
+; Don't trigger an encounter if we're on water.
+ call CheckOnWater
+ jr z, .DontEncounterRoamMon
+; Load the current map group and number to de
+ call CopyCurrMapDE
+; Randomly select a beast.
+ call Random
+ cp 100 ; 25/64 chance
+ jr nc, .DontEncounterRoamMon
+ and %00000011 ; Of that, a 3/4 chance. Running total: 75/256, or around 29.3%.
+ jr z, .DontEncounterRoamMon
+ dec a ; 1/3 chance that it's Entei, 1/3 chance that it's Raikou
+; Compare its current location with yours
+ ld hl, wRoamMon1MapGroup
+ ld c, a
+ ld b, 0
+ ld a, 7 ; length of the RoamMon struct
+ call AddNTimes
+ ld a, d
+ cp [hl]
+ jr nz, .DontEncounterRoamMon
+ inc hl
+ ld a, e
+ cp [hl]
+ jr nz, .DontEncounterRoamMon
+; We've decided to take on a beast, so stage its information for battle.
+rept 3
+ dec hl
+endr
+ ld a, [hli]
+ ld [TempWildMonSpecies], a
+ ld a, [hl]
+ ld [CurPartyLevel], a
+ ld a, BATTLETYPE_ROAMING
+ ld [BattleType], a
+
+ pop hl
+ scf
+ ret
+
+.DontEncounterRoamMon
+ pop hl
+ and a
+ ret
+; 2a30d
+
+
+UpdateRoamMons: ; 2a30d
+ ld a, [wRoamMon1MapGroup]
+ cp GROUP_N_A
+ jr z, .SkipRaikou
+ ld b, a
+ ld a, [wRoamMon1MapNumber]
+ ld c, a
+ call .Update
+ ld a, b
+ ld [wRoamMon1MapGroup], a
+ ld a, c
+ ld [wRoamMon1MapNumber], a
+
+.SkipRaikou
+ ld a, [wRoamMon2MapGroup]
+ cp GROUP_N_A
+ jr z, .SkipEntei
+ ld b, a
+ ld a, [wRoamMon2MapNumber]
+ ld c, a
+ call .Update
+ ld a, b
+ ld [wRoamMon2MapGroup], a
+ ld a, c
+ ld [wRoamMon2MapNumber], a
+
+.SkipEntei
+ ld a, [wRoamMon3MapGroup]
+ cp GROUP_N_A
+ jr z, .SkipSuicune
+ ld b, a
+ ld a, [wRoamMon3MapNumber]
+ ld c, a
+ call .Update
+ ld a, b
+ ld [wRoamMon3MapGroup], a
+ ld a, c
+ ld [wRoamMon3MapNumber], a
+
+.SkipSuicune
+ jp _BackUpMapIndices
+; 2a355
+
+
+.Update: ; 2a355
+ ld hl, RoamMaps
+.loop
+; Are we at the end of the table?
+ ld a, [hl]
+ cp -1
+ ret z
+; Is this the correct entry?
+ ld a, b
+ cp [hl]
+ jr nz, .next
+ inc hl
+ ld a, c
+ cp [hl]
+ jr z, .yes
+; We don't have the correct entry yet, so let's continue. A 0 terminates each entry.
+.next
+ ld a, [hli]
+ and a
+ jr nz, .next
+ jr .loop
+
+; We have the correct entry now, so let's choose a random map from it.
+.yes
+ inc hl
+ ld d, h
+ ld e, l
+.update_loop
+ ld h, d
+ ld l, e
+; Choose which map to warp to.
+ call Random
+ and $1f ; 1/8n chance it moves to a completely random map, where n is the number of roaming connections from the current map.
+ jr z, JumpRoamMon
+ and 3
+ cp [hl]
+ jr nc, .update_loop ; invalid index, try again
+ inc hl
+ ld c, a
+ ld b, $0
+rept 2
+ add hl, bc
+endr
+ ld a, [wdfe7]
+ cp [hl]
+ jr nz, .done
+ inc hl
+ ld a, [wdfe6]
+ cp [hl]
+ jr z, .update_loop
+ dec hl
+
+.done
+ ld a, [hli]
+ ld b, a
+ ld c, [hl]
+ ret
+
+JumpRoamMons: ; 2a394
+ ld a, [wRoamMon1MapGroup]
+ cp GROUP_N_A
+ jr z, .SkipRaikou
+ call JumpRoamMon
+ ld a, b
+ ld [wRoamMon1MapGroup], a
+ ld a, c
+ ld [wRoamMon1MapNumber], a
+.SkipRaikou
+
+ ld a, [wRoamMon2MapGroup]
+ cp GROUP_N_A
+ jr z, .SkipEntei
+ call JumpRoamMon
+ ld a, b
+ ld [wRoamMon2MapGroup], a
+ ld a, c
+ ld [wRoamMon2MapNumber], a
+.SkipEntei
+
+ ld a, [wRoamMon3MapGroup]
+ cp GROUP_N_A
+ jr z, .SkipSuicune
+ call JumpRoamMon
+ ld a, b
+ ld [wRoamMon3MapGroup], a
+ ld a, c
+ ld [wRoamMon3MapNumber], a
+.SkipSuicune
+
+ jp _BackUpMapIndices
+
+JumpRoamMon: ; 2a3cd
+.loop
+ ld hl, RoamMaps
+.innerloop1 ; This loop is completely unnecessary.
+ call Random ; Choose a random number
+ and $f ; Take the lower nybble only. This gives a number between 0 and 15.
+ cp $10 ; If the number is greater than or equal to 16, loop back and try again.
+ jr nc, .innerloop1 ; I'm sure you can guess why this check is bogus.
+ inc a
+ ld b, a
+.innerloop2 ; Loop to get hl to the address of the chosen roam map.
+ dec b
+ jr z, .ok
+.innerloop3 ; Loop to skip the current roam map, which is terminated by a 0.
+ ld a, [hli]
+ and a
+ jr nz, .innerloop3
+ jr .innerloop2
+; Check to see if the selected map is the one the player is currently in. If so, try again.
+.ok
+ ld a, [MapGroup]
+ cp [hl]
+ jr nz, .done
+ inc hl
+ ld a, [MapNumber]
+ cp [hl]
+ jr z, .loop
+ dec hl
+; Return the map group and number in bc.
+.done
+ ld a, [hli]
+ ld b, a
+ ld c, [hl]
+ ret
+; 2a3f6
+
+_BackUpMapIndices: ; 2a3f6
+ ld a, [wdfe4]
+ ld [wdfe6], a
+ ld a, [wdfe5]
+ ld [wdfe7], a
+ ld a, [MapNumber]
+ ld [wdfe4], a
+ ld a, [MapGroup]
+ ld [wdfe5], a
+ ret
+; 2a40f
+
+RoamMaps: ; 2a40f
+; Maps that roaming monsters can be on,
+; and possible maps they can jump to.
+; Notably missing are Route 40 and
+; Route 41, which are water routes.
+ roam_map ROUTE_29, 2, ROUTE_30, ROUTE_46
+ roam_map ROUTE_30, 2, ROUTE_29, ROUTE_31
+ roam_map ROUTE_31, 3, ROUTE_30, ROUTE_32, ROUTE_36
+ roam_map ROUTE_32, 3, ROUTE_36, ROUTE_31, ROUTE_33
+ roam_map ROUTE_33, 2, ROUTE_32, ROUTE_34
+ roam_map ROUTE_34, 2, ROUTE_33, ROUTE_35
+ roam_map ROUTE_35, 2, ROUTE_34, ROUTE_36
+ roam_map ROUTE_36, 4, ROUTE_35, ROUTE_31, ROUTE_32, ROUTE_37
+ roam_map ROUTE_37, 3, ROUTE_36, ROUTE_38, ROUTE_42
+ roam_map ROUTE_38, 3, ROUTE_37, ROUTE_39, ROUTE_42
+ roam_map ROUTE_39, 1, ROUTE_38
+ roam_map ROUTE_42, 4, ROUTE_43, ROUTE_44, ROUTE_37, ROUTE_38
+ roam_map ROUTE_43, 2, ROUTE_42, ROUTE_44
+ roam_map ROUTE_44, 3, ROUTE_42, ROUTE_43, ROUTE_45
+ roam_map ROUTE_45, 2, ROUTE_44, ROUTE_46
+ roam_map ROUTE_46, 2, ROUTE_45, ROUTE_29
+ db -1
+; 2a4a0
+
+ValidateTempWildMonSpecies: ; 2a4a0
+; Due to a development oversight, this function is called with the wild Pokemon's level, not its species, in a.
+ and a
+ jr z, .nowildmon ; = 0
+ cp NUM_POKEMON + 1 ; 252
+ jr nc, .nowildmon ; >= 252
+ and a ; 1 <= Species <= 251
+ ret
+
+.nowildmon
+ scf
+ ret
+; 2a4ab
+
+RandomPhoneRareWildMon: ; 2a4ab
+; Related to the phone?
+ callba GetCallerLocation
+ ld d, b
+ ld e, c
+ ld hl, JohtoGrassWildMons
+ ld bc, GRASS_WILDDATA_LENGTH
+ call LookUpWildmonsForMapDE
+ jr c, .GetGrassmon
+ ld hl, KantoGrassWildMons
+ call LookUpWildmonsForMapDE
+ jr nc, .done
+
+.GetGrassmon
+ push hl
+ ld bc, 5 + 4 * 2 ; Location of the level of the 5th wild Pokemon in that map
+ add hl, bc
+ ld a, [TimeOfDay]
+ ld bc, 7 * 2
+ call AddNTimes
+.randloop1
+ call Random
+ and $3
+ jr z, .randloop1
+ dec a
+ ld c, a
+ ld b, $0
+rept 2
+ add hl, bc
+endr
+; We now have the pointer to one of the last (rarest) three wild Pokemon found in that area.
+ inc hl
+ ld c, [hl] ; Contains the species index of this rare Pokemon
+ pop hl
+ ld de, 5 + 0 * 2
+ add hl, de
+ inc hl ; Species index of the most common Pokemon on that route
+ ld b, 4
+.loop2
+ ld a, [hli]
+ cp c ; Compare this most common Pokemon with the rare one stored in c.
+ jr z, .done
+ inc hl
+ dec b
+ jr nz, .loop2
+; This Pokemon truly is rare.
+ push bc
+ dec c
+ ld a, c
+ call CheckSeenMon
+ pop bc
+ jr nz, .done
+; Since we haven't seen it, have the caller tell us about it.
+ ld de, StringBuffer1
+ call CopyName1
+ ld a, c
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, UnknownText_0x2a51a
+ call PrintText
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.done
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; 2a51a
+
+UnknownText_0x2a51a: ; 0x2a51a
+ ; I just saw some rare @ in @ . I'll call you if I see another rare #MON, OK?
+ text_jump UnknownText_0x1bd34b
+ db "@"
+; 0x2a51f
+
+RandomPhoneWildMon: ; 2a51f
+ callba GetCallerLocation
+ ld d, b
+ ld e, c
+ ld hl, JohtoGrassWildMons
+ ld bc, GRASS_WILDDATA_LENGTH
+ call LookUpWildmonsForMapDE
+ jr c, .ok
+ ld hl, KantoGrassWildMons
+ call LookUpWildmonsForMapDE
+
+.ok
+ ld bc, 5 + 0 * 2
+ add hl, bc
+ ld a, [TimeOfDay]
+ inc a
+ ld bc, 7 * 2
+.loop
+ dec a
+ jr z, .done
+ add hl, bc
+ jr .loop
+
+.done
+ call Random
+ and $3
+ ld c, a
+ ld b, $0
+rept 2
+ add hl, bc
+endr
+ inc hl
+ ld a, [hl]
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ ld de, StringBuffer4
+ ld bc, PKMN_NAME_LENGTH
+ jp CopyBytes
+; 2a567
+
+RandomPhoneMon: ; 2a567
+; Get a random monster owned by the trainer who's calling.
+ callba GetCallerLocation
+ ld hl, TrainerGroups
+ ld a, d
+ dec a
+ ld c, a
+ ld b, 0
+rept 2
+ add hl, bc
+endr
+ ld a, BANK(TrainerGroups)
+ call GetFarHalfword
+
+.skip_trainer
+ dec e
+ jr z, .skipped
+.skip
+ ld a, BANK(Trainers)
+ call GetFarByte
+ inc hl
+ cp -1
+ jr nz, .skip
+ jr .skip_trainer
+.skipped
+
+.skip_name
+ ld a, BANK(Trainers)
+ call GetFarByte
+ inc hl
+ cp "@"
+ jr nz, .skip_name
+
+ ld a, BANK(Trainers)
+ call GetFarByte
+ inc hl
+ ld bc, 2
+ cp 0
+ jr z, .got_mon_length
+ ld bc, 2 + NUM_MOVES
+ cp 1
+ jr z, .got_mon_length
+ ld bc, 2 + 1
+ cp 2
+ jr z, .got_mon_length
+ ld bc, 2 + 1 + NUM_MOVES
+.got_mon_length
+
+ ld e, 0
+ push hl
+.count_mon
+ inc e
+ add hl, bc
+ ld a, BANK(Trainers)
+ call GetFarByte
+ cp -1
+ jr nz, .count_mon
+ pop hl
+
+.rand
+ call Random
+ and 7
+ cp e
+ jr nc, .rand
+
+ inc a
+.get_mon
+ dec a
+ jr z, .got_mon
+ add hl, bc
+ jr .get_mon
+.got_mon
+
+ inc hl ; species
+ ld a, BANK(Trainers)
+ call GetFarByte
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ ld de, StringBuffer4
+ ld bc, PKMN_NAME_LENGTH
+ jp CopyBytes
+; 2a5e9
+
+
+JohtoGrassWildMons: ; 0x2a5e9
+INCLUDE "data/wild/johto_grass.asm"
+
+JohtoWaterWildMons: ; 0x2b11d
+INCLUDE "data/wild/johto_water.asm"
+
+KantoGrassWildMons: ; 0x2b274
+INCLUDE "data/wild/kanto_grass.asm"
+
+KantoWaterWildMons: ; 0x2b7f7
+INCLUDE "data/wild/kanto_water.asm"
+
+SwarmGrassWildMons: ; 0x2b8d0
+INCLUDE "data/wild/swarm_grass.asm"
+
+SwarmWaterWildMons: ; 0x2b92f
+INCLUDE "data/wild/swarm_water.asm"
--- a/event/buena.asm
+++ b/event/buena.asm
@@ -11,8 +11,8 @@
add $2
ld [wMenuBorderRightCoord], a
call BackUpTiles
- call Function1e5d ; menu
- callba Function4ae5e
+ call DoNthMenu ; menu
+ callba Buena_ExitMenu
ld b, $0
ld a, [MenuSelection]
ld c, a
@@ -66,7 +66,7 @@
SpecialBuenaPrize: ; 8afd4
xor a
- ld [wd0e4], a
+ ld [wMenuScrollPosition], a
ld a, $1
ld [MenuSelection], a
call Function8b0d6
@@ -250,7 +250,7 @@
xor a
ld [wcf76], a
ld [hBGMapMode], a
- call Function352f
+ call InitScrollingMenu
call UpdateSprites
call HandleScrollingMenu
ld a, [MenuSelection]
--- a/event/bug_contest_judging.asm
+++ b/event/bug_contest_judging.asm
@@ -2,24 +2,24 @@
call ContestScore
callba MobileFn_105f79
call Function13819
- ld a, [wd00a]
+ ld a, [wBugContestThirdPlacePersonID]
call LoadContestantName
- ld a, [wd00b]
- ld [wd265], a
+ ld a, [wBugContestThirdPlaceMon]
+ ld [wNamedObjectIndexBuffer], a
call GetPokemonName
ld hl, BugContest_ThirdPlaceText
call PrintText
- ld a, [EndFlypoint]
+ ld a, [wBugContestSecondPlacePersonID]
call LoadContestantName
- ld a, [MovementBuffer]
- ld [wd265], a
+ ld a, [wBugContestSecondPlaceMon]
+ ld [wNamedObjectIndexBuffer], a
call GetPokemonName
ld hl, BugContest_SecondPlaceText
call PrintText
- ld a, [wd002]
+ ld a, [wBugContestFirstPlacePersonID]
call LoadContestantName
- ld a, [wd003]
- ld [wd265], a
+ ld a, [wBugContestFirstPlaceMon]
+ ld [wNamedObjectIndexBuffer], a
call GetPokemonName
ld hl, BugContest_FirstPlaceText
call PrintText
@@ -85,7 +85,7 @@
; If a = 0, get your name.
dec a
- jr z, .done
+ jr z, .player
; Find the pointer for the trainer class of the Bug Catching Contestant whose ID is in a.
ld c, a
ld b, 0
@@ -102,13 +102,13 @@
; Save hl and bc for later.
push hl
push bc
-; Get the Trainer Class name and copy it into wd016.
+; Get the Trainer Class name and copy it into wBugContestWinnerName.
callab GetTrainerClassName
ld hl, StringBuffer1
- ld de, wd016
+ ld de, wBugContestWinnerName
ld bc, TRAINER_CLASS_NAME_LENGTH
call CopyBytes
- ld hl, wd016
+ ld hl, wBugContestWinnerName
; Delete the trailing terminator and replace it with a space.
.next
ld a, [hli]
@@ -127,15 +127,15 @@
ld a, [hl]
ld b, a
callab GetTrainerName
-; Append the name to wd016.
+; Append the name to wBugContestWinnerName.
ld hl, StringBuffer1
pop de
ld bc, NAME_LENGTH - 1
jp CopyBytes
-.done
+.player
ld hl, PlayerName
- ld de, wd016
+ ld de, wBugContestWinnerName
ld bc, NAME_LENGTH
jp CopyBytes
; 13783
@@ -216,7 +216,7 @@
; 13807
Function13807: ; 13807
- ld hl, wd00a
+ ld hl, wBugContestThirdPlacePersonID
ld de, -4
ld b, 3
.loop
@@ -232,9 +232,9 @@
; 13819
Function13819: ; 13819
- call Function13833
- call Function138b0
- ld hl, wd00e
+ call ClearContestResults
+ call ComputeAIContestantScores
+ ld hl, wBugContestTempPersonID
ld a, 1
ld [hli], a
ld a, [wContestMon]
@@ -243,12 +243,12 @@
ld [hli], a
ld a, [hMultiplicand]
ld [hl], a
- call Function1383e
+ call DetermineContestWinners
ret
; 13833
-Function13833: ; 13833
- ld hl, wd002
+ClearContestResults: ; 13833
+ ld hl, wBugContestFirstPlacePersonID
ld b, 12
xor a
.loop
@@ -258,69 +258,66 @@
ret
; 1383e
-Function1383e: ; 1383e
- ld de, wd010
- ld hl, wd004
+DetermineContestWinners: ; 1383e
+ ld de, wBugContestTempScore
+ ld hl, wBugContestFirstPlaceScore
ld c, 2
call StringCmp
- jr c, .next
- ld hl, EndFlypoint
- ld de, wd00a
+ jr c, .not_first_place
+ ld hl, wBugContestSecondPlacePersonID
+ ld de, wBugContestThirdPlacePersonID
ld bc, 4
call CopyBytes
- ld hl, wd002
- ld de, EndFlypoint
+ ld hl, wBugContestFirstPlacePersonID
+ ld de, wBugContestSecondPlacePersonID
ld bc, 4
call CopyBytes
- ld hl, wd002
- call Function138a0
+ ld hl, wBugContestFirstPlacePersonID
+ call CopyTempContestant
jr .done
-.next
- ld de, wd010
- ld hl, wd008
+.not_first_place
+ ld de, wBugContestTempScore
+ ld hl, wBugContestSecondPlaceScore
ld c, 2
call StringCmp
- jr c, .next2
- ld hl, EndFlypoint
- ld de, wd00a
+ jr c, .not_second_place
+ ld hl, wBugContestSecondPlacePersonID
+ ld de, wBugContestThirdPlacePersonID
ld bc, 4
call CopyBytes
- ld hl, EndFlypoint
- call Function138a0
+ ld hl, wBugContestSecondPlacePersonID
+ call CopyTempContestant
jr .done
-.next2
- ld de, wd010
- ld hl, wd00c
+.not_second_place
+ ld de, wBugContestTempScore
+ ld hl, wBugContestThirdPlaceScore
ld c, 2
call StringCmp
jr c, .done
- ld hl, wd00a
- call Function138a0
+ ld hl, wBugContestThirdPlacePersonID
+ call CopyTempContestant
.done
ret
; 138a0
-Function138a0: ; 138a0
- ld de, wd00e
+CopyTempContestant: ; 138a0
+; Could've just called CopyBytes.
+ ld de, wBugContestTempPersonID
+rept 3
ld a, [de]
inc de
ld [hli], a
+endr
ld a, [de]
inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
ld [hl], a
ret
; 138b0
-Function138b0: ; 138b0
+ComputeAIContestantScores: ; 138b0
ld e, 0
.loop
push de
@@ -331,7 +328,7 @@
rept 2
inc a
endr
- ld [wd00e], a
+ ld [wBugContestTempPersonID], a
dec a
ld c, a
ld b, 0
@@ -356,7 +353,7 @@
add hl, bc
endr
ld a, [hli]
- ld [wd00f], a
+ ld [wBugContestTempMon], a
ld a, [hli]
ld h, [hl]
ld l, a
@@ -366,11 +363,11 @@
ld b, 0
add hl, bc
ld a, h
- ld [wd010], a
+ ld [wBugContestTempScore], a
ld a, l
- ld [wd011], a
+ ld [wBugContestTempScore + 1], a
push de
- call Function1383e
+ call DetermineContestWinners
pop de
.done
--- /dev/null
+++ b/event/celebi.asm
@@ -1,0 +1,354 @@
+Special_CelebiShrineEvent: ; 4989a
+ call DelayFrame
+ ld a, [VramState]
+ push af
+ xor a
+ ld [VramState], a
+ call LoadCelebiGFX
+ depixel 0, 10, 7, 0
+ ld a, SPRITE_ANIM_INDEX_2C
+ call _InitSpriteAnimStruct
+ ld hl, $3
+ add hl, bc
+ ld [hl], $84
+ ld hl, $2
+ add hl, bc
+ ld [hl], $1f
+ ld hl, $f
+ add hl, bc
+ ld a, $80
+ ld [hl], a
+ ld a, $a0
+ ld [wcf64], a
+ ld d, $0
+.loop
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .done
+ push bc
+ call Function49bae
+ inc d
+ push de
+ ld a, $90
+ ld [wc3b5], a
+ callba Function8cf7a
+ call Function49935
+ ld c, 2
+ call DelayFrames
+ pop de
+ pop bc
+ jr .loop
+
+.done
+ pop af
+ ld [VramState], a
+ call Function498f9
+ call Function49bf3
+ ret
+; 498f9
+
+Function498f9: ; 498f9
+ ld hl, Sprites + 2
+ xor a
+ ld c, $4
+.loop
+ ld [hli], a
+rept 3
+ inc hl
+endr
+ inc a
+ dec c
+ jr nz, .loop
+ ld hl, Sprites + $10
+ ld bc, $90
+ xor a
+ call ByteFill
+ ret
+; 49912
+
+LoadCelebiGFX: ; 49912
+ callba Function8cf53
+ ld de, SpecialCelebiLeafGFX
+ ld hl, VTiles1
+ lb bc, BANK(SpecialCelebiLeafGFX), 4
+ call Request2bpp
+ ld de, SpecialCelebiGFX
+ ld hl, VTiles1 tile $04
+ lb bc, BANK(SpecialCelebiGFX), $10
+ call Request2bpp
+ xor a
+ ld [wJumptableIndex], a
+ ret
+; 49935
+
+Function49935: ; 49935
+ ld hl, wcf64
+ ld a, [hl]
+ and a
+ jr z, .asm_4993e
+ dec [hl]
+ ret
+
+.asm_4993e
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+; 49944
+
+Function49944: ; 49944
+ ld hl, wcf65
+ ld a, [hl]
+ inc [hl]
+ and $7
+ ret nz
+ ld a, [hl]
+ and $18
+ sla a
+ add $40
+ ld d, a
+ ld e, $0
+ ld a, SPRITE_ANIM_INDEX_18 ; fly land
+ call _InitSpriteAnimStruct
+ ld hl, $3
+ add hl, bc
+ ld [hl], $80
+ ret
+; 49962
+
+SpecialCelebiLeafGFX: ; 49962
+INCBIN "gfx/special/celebi/leaf.2bpp"
+SpecialCelebiGFX: ; 499a2
+INCBIN "gfx/special/celebi/1.2bpp"
+INCBIN "gfx/special/celebi/2.2bpp"
+INCBIN "gfx/special/celebi/3.2bpp"
+INCBIN "gfx/special/celebi/4.2bpp"
+
+
+Function49aa2: ; 49aa2 (12:5aa2)
+ ld hl, $6
+ add hl, bc
+ ld a, [hl]
+ push af
+ ld hl, $5
+ add hl, bc
+ ld a, [hl]
+ cp $52
+ jp nc, Function49b30
+ ld hl, $5
+ add hl, bc
+ inc [hl]
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ ld d, a
+ cp $3a
+ jr c, .asm_49ac6
+ jr z, .asm_49ac6
+ sub $3
+ ld [hl], a
+.asm_49ac6
+ ld hl, $e
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ call Function49b3b
+ ld hl, $6
+ add hl, bc
+ ld [hl], a
+ ld d, a
+ ld hl, $4
+ add hl, bc
+ add [hl]
+ cp $5c
+ jr nc, .asm_49ae2
+ cp $44
+ jr nc, .asm_49b0d
+.asm_49ae2
+ pop af
+ push af
+ cp d
+ jr nc, .asm_49af2
+ ld hl, $4
+ add hl, bc
+ add [hl]
+ cp $50
+ jr c, .asm_49b05
+ jr .asm_49afb
+.asm_49af2
+ ld hl, $4
+ add hl, bc
+ add [hl]
+ cp $50
+ jr nc, .asm_49b05
+.asm_49afb
+ ld hl, $5
+ add hl, bc
+ ld a, [hl]
+ sub $2
+ ld [hl], a
+ jr .asm_49b0d
+.asm_49b05
+ ld hl, $5
+ add hl, bc
+ ld a, [hl]
+ add $1
+ ld [hl], a
+.asm_49b0d
+ pop af
+ ld hl, $4
+ add hl, bc
+ add [hl]
+ cp $50
+ jr c, .asm_49b26
+ cp $e6
+ jr nc, .asm_49b26
+ ld hl, $1
+ add hl, bc
+ ld a, $41
+ call Function3b3c
+ jr .asm_49b2f
+.asm_49b26
+ ld hl, $1
+ add hl, bc
+ ld a, $40
+ call Function3b3c
+.asm_49b2f
+ ret
+
+Function49b30: ; 49b30 (12:5b30)
+ pop af
+ ld hl, $1
+ add hl, bc
+ ld a, $40
+ call Function3b3c
+ ret
+
+Function49b3b: ; 49b3b (12:5b3b)
+ add $10
+ and $3f
+ cp $20
+ jr nc, .asm_49b48
+ call Function49b52
+ ld a, h
+ ret
+.asm_49b48
+ and $1f
+ call Function49b52
+ ld a, h
+ xor $ff
+ inc a
+ ret
+
+Function49b52: ; 49b52 (12:5b52)
+ ld e, a
+ ld a, d
+ ld d, $0
+ ld hl, Unknown_49b6e
+rept 2
+ add hl, de
+endr
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, 0
+.asm_49b61
+ srl a
+ jr nc, .asm_49b66
+ add hl, de
+.asm_49b66
+ sla e
+ rl d
+ and a
+ jr nz, .asm_49b61
+ ret
+; 49b6e (12:5b6e)
+
+Unknown_49b6e: ; 49b6e
+ sine_wave $100
+; 49bae
+
+Function49bae: ; 49bae
+ push hl
+ push bc
+ push de
+ ld a, d
+ ld d, $3
+ ld e, d
+ cp $0
+ jr z, .asm_49bd0
+ cp d
+ jr z, .asm_49bd4
+ call Function49bed
+ cp d
+ jr z, .asm_49bd8
+ call Function49bed
+ cp d
+ jr z, .asm_49bdc
+ call Function49bed
+ cp d
+ jr c, .asm_49be9
+ jr .asm_49be5
+
+.asm_49bd0
+ ld a, $84
+ jr .asm_49bde
+
+.asm_49bd4
+ ld a, $88
+ jr .asm_49bde
+
+.asm_49bd8
+ ld a, $8c
+ jr .asm_49bde
+
+.asm_49bdc
+ ld a, $90
+
+.asm_49bde
+ ld hl, $3
+ add hl, bc
+ ld [hl], a
+ jr .asm_49be9
+
+.asm_49be5
+ pop de
+ ld d, $ff
+ push de
+
+.asm_49be9
+ pop de
+ pop bc
+ pop hl
+ ret
+; 49bed
+
+Function49bed: ; 49bed
+ push af
+ ld a, d
+ add e
+ ld d, a
+ pop af
+ ret
+; 49bf3
+
+Function49bf3: ; 49bf3
+ ld a, BATTLETYPE_CELEBI
+ ld [BattleType], a
+ ret
+; 49bf9
+
+CheckCaughtCelebi: ; 49bf9
+ ld a, [wBattleResult]
+ bit 6, a
+ jr z, .false
+ ld a, $1
+ ld [ScriptVar], a
+ jr .done
+
+.false
+ xor a
+ ld [ScriptVar], a
+
+.done
+ ret
+; 49c0c
--- /dev/null
+++ b/event/daycare.asm
@@ -1,0 +1,768 @@
+Special_DayCareMan: ; 166d6
+ ld hl, wDaycareMan
+ bit 0, [hl]
+ jr nz, .asm_166fe
+ ld hl, wDaycareMan
+ ld a, $0
+ call Function1678f
+ jr c, .asm_16724
+ call Function16798
+ jr c, .asm_16721
+ callba Functionde2a
+ ld hl, wDaycareMan
+ set 0, [hl]
+ call Function167f6
+ call Function16a3b
+ ret
+
+.asm_166fe
+ callba Functione698
+ ld hl, wBreedMon1Nick
+ call Function1686d
+ call Function16807
+ jr c, .asm_16721
+ callba Functiondd21
+ call Function16850
+ ld hl, wDaycareMan
+ res 0, [hl]
+ res 5, [hl]
+ jr .asm_16724
+
+.asm_16721
+ call Function1689b
+
+.asm_16724
+ ld a, $13
+ call Function1689b
+ ret
+; 1672a
+
+Special_DayCareLady: ; 1672a
+ ld hl, wDaycareLady
+ bit 0, [hl]
+ jr nz, .asm_16752
+ ld hl, wDaycareLady
+ ld a, $2
+ call Function16781
+ jr c, .asm_1677b
+ call Function16798
+ jr c, .asm_16778
+ callba Functionde37
+ ld hl, wDaycareLady
+ set 0, [hl]
+ call Function167f6
+ call Function16a3b
+ ret
+
+.asm_16752
+ callba Functione6b3
+ ld hl, wBreedMon2Nick
+ call Function1686d
+ call Function16807
+ jr c, .asm_16778
+ callba Functiondd42
+ call Function16850
+ ld hl, wDaycareLady
+ res 0, [hl]
+ ld hl, wDaycareMan
+ res 5, [hl]
+ jr .asm_1677b
+
+.asm_16778
+ call Function1689b
+
+.asm_1677b
+ ld a, $13
+ call Function1689b
+ ret
+; 16781
+
+Function16781: ; 16781
+ bit 7, [hl]
+ jr nz, .asm_16788
+ set 7, [hl]
+ inc a
+
+.asm_16788
+ call Function1689b
+ call YesNoBox
+ ret
+; 1678f
+
+Function1678f: ; 1678f
+ set 7, [hl]
+ call Function1689b
+ call YesNoBox
+ ret
+; 16798
+
+Function16798: ; 16798
+ ld a, [PartyCount]
+ cp 2
+ jr c, .asm_167e5
+ ld a, 4
+ call Function1689b
+ ld b, 6
+ callba Function5001d
+ jr c, .asm_167dd
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .asm_167e1
+ callba CheckCurPartyMonFainted
+ jr c, .asm_167e9
+ ld hl, PartyMon1Item
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld d, [hl]
+ callba ItemIsMail
+ jr c, .asm_167ed
+ ld hl, PartyMonNicknames
+ ld a, [CurPartyMon]
+ call GetNick
+ and a
+ ret
+
+.asm_167dd
+ ld a, $12
+ scf
+ ret
+
+.asm_167e1
+ ld a, $6
+ scf
+ ret
+
+.asm_167e5
+ ld a, $7
+ scf
+ ret
+
+.asm_167e9
+ ld a, $8
+ scf
+ ret
+
+.asm_167ed
+ ld a, $a
+ scf
+ ret
+; 167f1
+
+UnknownText_0x167f1: ; 0x167f1
+ ;
+ text_jump UnknownText_0x1bdaa7
+ db "@"
+; 0x167f6
+
+Function167f6: ; 167f6
+ ld a, $5
+ call Function1689b
+ ld a, [CurPartySpecies]
+ call PlayCry
+ ld a, $9
+ call Function1689b
+ ret
+; 16807
+
+Function16807: ; 16807
+ ld a, [StringBuffer2 + 1]
+ and a
+ jr nz, .asm_16819
+ ld a, $f
+ call Function1689b
+ call YesNoBox
+ jr c, .asm_16844
+ jr .asm_1682d
+
+.asm_16819
+ ld a, $b
+ call Function1689b
+ call YesNoBox
+ jr c, .asm_16844
+ ld a, $c
+ call Function1689b
+ call YesNoBox
+ jr c, .asm_16844
+
+.asm_1682d
+ ld de, Money
+ ld bc, StringBuffer2 + 2
+ callba CompareMoney
+ jr c, .asm_16848
+ ld a, [PartyCount]
+ cp $6
+ jr nc, .asm_1684c
+ and a
+ ret
+
+.asm_16844
+ ld a, $12
+ scf
+ ret
+
+.asm_16848
+ ld a, $11
+ scf
+ ret
+
+.asm_1684c
+ ld a, $10
+ scf
+ ret
+; 16850
+
+Function16850: ; 16850
+ ld bc, StringBuffer2 + 2
+ ld de, Money
+ callba TakeMoney
+ ld a, $d
+ call Function1689b
+ ld a, [CurPartySpecies]
+ call PlayCry
+ ld a, $e
+ call Function1689b
+ ret
+; 1686d
+
+Function1686d: ; 1686d
+ ld a, b
+ ld [StringBuffer2], a
+ ld a, d
+ ld [StringBuffer2 + 1], a
+ ld de, StringBuffer1
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld hl, 0
+ ld bc, $64
+ ld a, [StringBuffer2 + 1]
+ call AddNTimes
+ ld de, $64
+ add hl, de
+ xor a
+ ld [StringBuffer2 + 2], a
+ ld a, h
+ ld [StringBuffer2 + 3], a
+ ld a, l
+ ld [StringBuffer2 + 4], a
+ ret
+; 1689b
+
+Function1689b: ; 1689b
+ ld e, a
+ ld d, 0
+ ld hl, TextTable_168aa
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call PrintText
+ ret
+; 168aa
+
+TextTable_168aa: ; 168aa
+ dw UnknownText_0x168d2
+ dw UnknownText_0x168d7
+ dw UnknownText_0x168dc
+ dw UnknownText_0x168e1
+ dw UnknownText_0x168e6
+ dw UnknownText_0x168ff
+ dw UnknownText_0x168f0
+ dw UnknownText_0x168eb
+ dw UnknownText_0x168fa
+ dw UnknownText_0x16904
+ dw UnknownText_0x168f5
+ dw UnknownText_0x16909
+ dw UnknownText_0x1690e
+ dw UnknownText_0x16913
+ dw UnknownText_0x16918
+ dw UnknownText_0x1691d
+ dw UnknownText_0x16922
+ dw UnknownText_0x16927
+ dw UnknownText_0x1692c
+ dw UnknownText_0x16931
+; 168d2
+
+UnknownText_0x168d2: ; 0x168d2
+ ; I'm the DAY-CARE MAN. Want me to raise a #MON?
+ text_jump UnknownText_0x1bdaa9
+ db "@"
+; 0x168d7
+
+UnknownText_0x168d7: ; 0x168d7
+ ; I'm the DAY-CARE MAN. Do you know about EGGS? I was raising #MON with my wife, you see. We were shocked to find an EGG! How incredible is that? So, want me to raise a #MON?
+ text_jump UnknownText_0x1bdad8
+ db "@"
+; 0x168dc
+
+UnknownText_0x168dc: ; 0x168dc
+ ; I'm the DAY-CARE LADY. Should I raise a #MON for you?
+ text_jump UnknownText_0x1bdb85
+ db "@"
+; 0x168e1
+
+UnknownText_0x168e1: ; 0x168e1
+ ; I'm the DAY-CARE LADY. Do you know about EGGS? My husband and I were raising some #MON, you see. We were shocked to find an EGG! How incredible could that be? Should I raise a #MON for you?
+ text_jump UnknownText_0x1bdbbb
+ db "@"
+; 0x168e6
+
+UnknownText_0x168e6: ; 0x168e6
+ ; What should I raise for you?
+ text_jump UnknownText_0x1bdc79
+ db "@"
+; 0x168eb
+
+UnknownText_0x168eb: ; 0x168eb
+ ; Oh? But you have just one #MON.
+ text_jump UnknownText_0x1bdc97
+ db "@"
+; 0x168f0
+
+UnknownText_0x168f0: ; 0x168f0
+ ; Sorry, but I can't accept an EGG.
+ text_jump UnknownText_0x1bdcb8
+ db "@"
+; 0x168f5
+
+UnknownText_0x168f5: ; 0x168f5
+ ; Remove MAIL before you come see me.
+ text_jump UnknownText_0x1bdcda
+ db "@"
+; 0x168fa
+
+UnknownText_0x168fa: ; 0x168fa
+ ; If you give me that, what will you battle with?
+ text_jump UnknownText_0x1bdcff
+ db "@"
+; 0x168ff
+
+UnknownText_0x168ff: ; 0x168ff
+ ; OK. I'll raise your @ .
+ text_jump UnknownText_0x1bdd30
+ db "@"
+; 0x16904
+
+UnknownText_0x16904: ; 0x16904
+ ; Come back for it later.
+ text_jump UnknownText_0x1bdd4b
+ db "@"
+; 0x16909
+
+UnknownText_0x16909: ; 0x16909
+ ; Are we geniuses or what? Want to see your @ ?
+ text_jump UnknownText_0x1bdd64
+ db "@"
+; 0x1690e
+
+UnknownText_0x1690e: ; 0x1690e
+ ; Your @ has grown a lot. By level, it's grown by @ . If you want your #MON back, it will cost ¥@ .
+ text_jump UnknownText_0x1bdd96
+ db "@"
+; 0x16913
+
+UnknownText_0x16913: ; 0x16913
+ ; Perfect! Here's your #MON.
+ text_jump UnknownText_0x1bde04
+ db "@"
+; 0x16918
+
+UnknownText_0x16918: ; 0x16918
+ ; got back @ .
+ text_jump UnknownText_0x1bde1f
+ db "@"
+; 0x1691d
+
+UnknownText_0x1691d: ; 0x1691d
+ ; Huh? Back already? Your @ needs a little more time with us. If you want your #MON back, it will cost ¥100.
+ text_jump UnknownText_0x1bde32
+ db "@"
+; 0x16922
+
+UnknownText_0x16922: ; 0x16922
+ ; You have no room for it.
+ text_jump UnknownText_0x1bdea2
+ db "@"
+; 0x16927
+
+UnknownText_0x16927: ; 0x16927
+ ; You don't have enough money.
+ text_jump UnknownText_0x1bdebc
+ db "@"
+; 0x1692c
+
+UnknownText_0x1692c: ; 0x1692c
+ ; Oh, fine then.
+ text_jump UnknownText_0x1bded9
+ db "@"
+; 0x16931
+
+UnknownText_0x16931: ; 0x16931
+ ; Come again.
+ text_jump UnknownText_0x1bdee9
+ db "@"
+; 0x16936
+
+Special_DayCareManOutside: ; 16936
+ ld hl, wDaycareMan
+ bit 6, [hl]
+ jr nz, Function16949
+ ld hl, UnknownText_0x16944
+ call PrintText
+ ret
+
+UnknownText_0x16944: ; 0x16944
+ ; Not yet…
+ text_jump UnknownText_0x1bdef6
+ db "@"
+; 0x16949
+
+Function16949: ; 16949
+ ld hl, UnknownText_0x16993
+ call PrintText
+ call YesNoBox
+ jr c, .asm_1697c
+ ld a, [PartyCount]
+ cp PARTY_LENGTH
+ jr nc, .asm_16987
+ call Function169ac
+ ld hl, wDaycareMan
+ res 6, [hl]
+ call Function16a3b
+ ld hl, UnknownText_0x16998
+ call PrintText
+ ld de, SFX_GET_EGG_FROM_DAYCARE_LADY
+ call PlaySFX
+ ld c, 120
+ call DelayFrames
+ ld hl, UnknownText_0x1699d
+ jr .asm_1697f
+
+.asm_1697c
+ ld hl, UnknownText_0x169a2
+
+.asm_1697f
+ call PrintText
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_16987
+ ld hl, UnknownText_0x169a7
+ call PrintText
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; 16993
+
+UnknownText_0x16993: ; 0x16993
+ ; Ah, it's you! We were raising your #MON, and my goodness, were we surprised! Your #MON had an EGG! We don't know how it got there, but your #MON had it. You want it?
+ text_jump UnknownText_0x1bdf00
+ db "@"
+; 0x16998
+
+UnknownText_0x16998: ; 0x16998
+ ; received the EGG!
+ text_jump UnknownText_0x1bdfa5
+ db "@"
+; 0x1699d
+
+UnknownText_0x1699d: ; 0x1699d
+ ; Take good care of it.
+ text_jump UnknownText_0x1bdfba
+ db "@"
+; 0x169a2
+
+UnknownText_0x169a2: ; 0x169a2
+ ; Well then, I'll keep it. Thanks!
+ text_jump UnknownText_0x1bdfd1
+ db "@"
+; 0x169a7
+
+UnknownText_0x169a7: ; 0x169a7
+ ; You have no room in your party. Come back later.
+ text_jump UnknownText_0x1bdff2
+ db "@"
+; 0x169ac
+
+Function169ac: ; 169ac
+ ld a, [wEggMonLevel]
+ ld [CurPartyLevel], a
+ ld hl, PartyCount
+ ld a, [hl]
+ cp PARTY_LENGTH
+ jr nc, .asm_16a2f
+ inc a
+ ld [hl], a
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld a, EGG
+ ld [hli], a
+ ld a, [wEggMonSpecies]
+ ld [CurSpecies], a
+ ld [CurPartySpecies], a
+ ld a, $ff
+ ld [hl], a
+ ld hl, PartyMonNicknames
+ ld bc, PKMN_NAME_LENGTH
+ call Function16a31
+ ld hl, wEggNick
+ call CopyBytes
+ ld hl, PartyMonOT
+ ld bc, NAME_LENGTH
+ call Function16a31
+ ld hl, wEggOT
+ call CopyBytes
+ ld hl, PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call Function16a31
+ ld hl, wEggMon
+ ld bc, wEggMonEnd - wEggMon
+ call CopyBytes
+ call GetBaseData
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ ld b, h
+ ld c, l
+ ld hl, MON_ID + 1
+ add hl, bc
+ push hl
+ ld hl, MON_MAXHP
+ add hl, bc
+ ld d, h
+ ld e, l
+ pop hl
+ push bc
+ ld b, $0
+ predef CalcPkmnStats
+ pop bc
+ ld hl, MON_HP
+ add hl, bc
+ xor a
+ ld [hli], a
+ ld [hl], a
+ and a
+ ret
+
+.asm_16a2f
+ scf
+ ret
+; 16a31
+
+Function16a31: ; 16a31
+ ld a, [PartyCount]
+ dec a
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ret
+; 16a3b
+
+Function16a3b: ; 16a3b
+ ld a, [wDaycareLady]
+ bit 0, a
+ ret z
+ ld a, [wDaycareMan]
+ bit 0, a
+ ret z
+ callab Function16e1d
+ ld a, [wd265]
+ and a
+ ret z
+ inc a
+ ret z
+ ld hl, wDaycareMan
+ set 5, [hl]
+.asm_16a59
+ call Random
+ cp 150
+ jr c, .asm_16a59
+ ld [wStepsToEgg], a
+ jp Function16a66
+; 16a66
+
+Function16a66: ; 16a66
+ xor a
+ ld hl, wEggMon
+ ld bc, wEggMonEnd - wEggMon
+ call ByteFill
+ ld hl, wEggNick
+ ld bc, PKMN_NAME_LENGTH
+ call ByteFill
+ ld hl, wEggOT
+ ld bc, NAME_LENGTH
+ call ByteFill
+ ld a, [wBreedMon1DVs]
+ ld [TempMonDVs], a
+ ld a, [wBreedMon1DVs + 1]
+ ld [TempMonDVs + 1], a
+ ld a, [wBreedMon1Species]
+ ld [CurPartySpecies], a
+ ld a, $3
+ ld [MonType], a
+ ld a, [wBreedMon1Species]
+ cp DITTO
+ ld a, $1
+ jr z, .asm_16ab6
+ ld a, [wBreedMon2Species]
+ cp DITTO
+ ld a, $0
+ jr z, .asm_16ab6
+ callba GetGender
+ ld a, $0
+ jr z, .asm_16ab6
+ inc a
+
+.asm_16ab6
+ ld [wDittoInDaycare], a
+ and a
+ ld a, [wBreedMon1Species]
+ jr z, .asm_16ac2
+ ld a, [wBreedMon2Species]
+
+.asm_16ac2
+ ld [CurPartySpecies], a
+ callab GetPreEvolution
+ callab GetPreEvolution
+ ld a, EGG_LEVEL
+ ld [CurPartyLevel], a
+
+ ld a, [CurPartySpecies]
+ cp NIDORAN_F
+ jr nz, .asm_16ae8
+ call Random
+ cp $80
+ ld a, NIDORAN_F
+ jr c, .asm_16ae8
+ ld a, NIDORAN_M
+.asm_16ae8
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ ld [wEggMonSpecies], a
+
+ call GetBaseData
+ ld hl, wEggNick
+ ld de, String_16be0
+ call CopyName2
+ ld hl, PlayerName
+ ld de, wEggOT
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ xor a
+ ld [wEggMonItem], a
+ ld de, wEggMonMoves
+ xor a
+ ld [Buffer1], a
+ predef FillMoves
+ callba Function170bf
+ ld hl, wEggMonID
+ ld a, [PlayerID]
+ ld [hli], a
+ ld a, [PlayerID + 1]
+ ld [hl], a
+ ld a, [CurPartyLevel]
+ ld d, a
+ callab CalcExpAtLevel
+ ld hl, wEggMonExp
+ ld a, [hMultiplicand]
+ ld [hli], a
+ ld a, [$ffb5]
+ ld [hli], a
+ ld a, [$ffb6]
+ ld [hl], a
+ xor a
+ ld b, $a
+ ld hl, wEggMonStatExp
+.asm_16b46
+ ld [hli], a
+ dec b
+ jr nz, .asm_16b46
+ ld hl, wEggMonDVs
+ call Random
+ ld [hli], a
+ ld [TempMonDVs], a
+ call Random
+ ld [hld], a
+ ld [TempMonDVs + 1], a
+ ld de, wBreedMon1DVs
+ ld a, [wBreedMon1Species]
+ cp DITTO
+ jr z, .asm_16b98
+ ld de, wBreedMon2DVs
+ ld a, [wBreedMon2Species]
+ cp DITTO
+ jr z, .asm_16b98
+ ld a, $3
+ ld [MonType], a
+ push hl
+ callba GetGender
+ pop hl
+ ld de, wBreedMon1DVs
+ ld bc, wBreedMon2DVs
+ jr c, .asm_16bab
+ jr z, .asm_16b90
+ ld a, [wDittoInDaycare]
+ and a
+ jr z, .asm_16b98
+ ld d, b
+ ld e, c
+ jr .asm_16b98
+
+.asm_16b90
+ ld a, [wDittoInDaycare]
+ and a
+ jr nz, .asm_16b98
+ ld d, b
+ ld e, c
+
+.asm_16b98
+ ld a, [de]
+ inc de
+ and $f
+ ld b, a
+ ld a, [hl]
+ and $f0
+ add b
+ ld [hli], a
+ ld a, [de]
+ and $7
+ ld b, a
+ ld a, [hl]
+ and $f8
+ add b
+ ld [hl], a
+
+.asm_16bab
+ ld hl, StringBuffer1
+ ld de, wd050
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld hl, wEggMonMoves
+ ld de, wEggMonPP
+ predef FillPP
+ ld hl, wd050
+ ld de, StringBuffer1
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld a, [BaseEggSteps]
+ ld hl, wEggMonHappiness
+ ld [hli], a
+ xor a
+rept 2
+ ld [hli], a
+endr
+ ld [hl], a
+ ld a, [CurPartyLevel]
+ ld [wEggMonLevel], a
+ ret
+; 16be0
+
+String_16be0: ; 16be0
+ db "EGG@"
+; 16be4
--- a/event/elevator.asm
+++ b/event/elevator.asm
@@ -127,10 +127,10 @@
call Elevator_GetCurrentFloorText
ld hl, Elevator_MenuDataHeader
call CopyMenuDataHeader
- call Function352f
+ call InitScrollingMenu
call UpdateSprites
xor a
- ld [wd0e4], a
+ ld [wMenuScrollPosition], a
call HandleScrollingMenu
call WriteBackup
ld a, [wcf73]
--- /dev/null
+++ b/event/field_moves.asm
@@ -1,0 +1,312 @@
+PlayWhirlpoolSound: ; 8c7d4
+ call WaitSFX
+ ld de, SFX_SURF
+ call PlaySFX
+ call WaitSFX
+ ret
+; 8c7e1
+
+BlindingFlash: ; 8c7e1
+ callba FadeOutPalettes
+ ld hl, StatusFlags
+ set 2, [hl]
+ callba Function8c0e5
+ callba Function8c001
+ ld b, SCGB_09
+ call GetSGBLayout
+ callba Function49409
+ callba FadeInPalettes
+ ret
+; 8c80a
+
+ShakeHeadbuttTree: ; 8c80a
+ callba Function8cf53
+ ld de, CutGrassGFX
+ ld hl, VTiles1
+ lb bc, BANK(CutGrassGFX), 4
+ call Request2bpp
+ ld de, HeadbuttTreeGFX
+ ld hl, VTiles1 tile $04
+ lb bc, BANK(HeadbuttTreeGFX), 8
+ call Request2bpp
+ call Function8cad3
+ ld a, SPRITE_ANIM_INDEX_1B
+ call _InitSpriteAnimStruct
+ ld hl, $3
+ add hl, bc
+ ld [hl], $84
+ ld a, $90
+ ld [wc3b5], a
+ callba Function8cf7a
+ call GetHeadbuttTreeRelativeLocation
+ ld a, $20
+ ld [wcf64], a
+ call WaitSFX
+ ld de, SFX_SANDSTORM
+ call PlaySFX
+.loop
+ ld hl, wcf64
+ ld a, [hl]
+ and a
+ jr z, .done
+ dec [hl]
+ ld a, $90
+ ld [wc3b5], a
+ callba Function8cf7a
+ call DelayFrame
+ jr .loop
+
+.done
+ call OverworldTextModeSwitch
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ callba Function8cf53
+ ld hl, Sprites + $90
+ ld bc, $10
+ xor a
+ call ByteFill
+ ld de, Font
+ ld hl, VTiles1
+ lb bc, BANK(Font), $c
+ call Get1bpp
+ call ReplaceKrisSprite
+ ret
+; 8c893
+
+HeadbuttTreeGFX: ; 8c893
+INCBIN "gfx/unknown/08c893.2bpp"
+; 8c913
+
+GetHeadbuttTreeRelativeLocation: ; 8c913
+ xor a
+ ld [hBGMapMode], a
+ ld a, [PlayerDirection]
+ and %00001100
+ srl a
+ ld e, a
+ ld d, 0
+ ld hl, TreeRelativeLocationTable
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+
+ ld a, $5
+ ld [hli], a
+ ld [hld], a
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld [hli], a
+ ld [hld], a
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ret
+; 8c938
+
+TreeRelativeLocationTable: ; 8c938
+ dwcoord 8, 8 + 2 ; RIGHT
+ dwcoord 8, 8 - 2 ; LEFT
+ dwcoord 8 - 2, 8 ; DOWN
+ dwcoord 8 + 2, 8 ; UP
+; 8c940
+
+OWCutAnimation: ; 8c940
+ ld a, e
+ and $1
+ ld [wJumptableIndex], a
+ call .LoadCutGFX
+ call WaitSFX
+ ld de, SFX_PLACE_PUZZLE_PIECE_DOWN
+ call PlaySFX
+.loop
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .finish
+ ld a, $90
+ ld [wc3b5], a
+ callab Function8cf7a
+ call OWCutJumptable
+ call DelayFrame
+ jr .loop
+
+.finish
+ ret
+; 8c96d
+
+.LoadCutGFX: ; 8c96d
+ callab Function8cf53 ; pointless to farcall
+ ld de, CutGrassGFX
+ ld hl, VTiles1
+ lb bc, BANK(CutGrassGFX), 4
+ call Request2bpp
+ ld de, CutTreeGFX
+ ld hl, VTiles1 tile $4
+ lb bc, BANK(CutTreeGFX), 4
+ call Request2bpp
+ ret
+; 8c98c
+
+CutTreeGFX: ; c898c
+INCBIN "gfx/misc/cut_tree.2bpp"
+; c89cc
+
+CutGrassGFX: ; 8c9cc
+INCBIN "gfx/misc/cut_grass.2bpp"
+; 8ca0c
+
+OWCutJumptable: ; 8ca0c
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, .jumptable
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 8ca1b
+
+
+.jumptable: ; 8ca1b (23:4a1b)
+ dw Function8ca23
+ dw Function8ca3c
+ dw Function8ca5c
+ dw Function8ca64
+
+
+Function8ca23: ; 8ca23 (23:4a23)
+ call Function8cad3
+ ld a, SPRITE_ANIM_INDEX_17 ; leaf
+ call _InitSpriteAnimStruct
+ ld hl, $3
+ add hl, bc
+ ld [hl], $84
+ ld a, $20
+ ld [wcf64], a
+ ld hl, wJumptableIndex
+rept 2
+ inc [hl]
+endr
+ ret
+
+Function8ca3c: ; 8ca3c (23:4a3c)
+ call Function8ca8e
+ xor a
+ call Function8ca73
+ ld a, $10
+ call Function8ca73
+ ld a, $20
+ call Function8ca73
+ ld a, $30
+ call Function8ca73
+ ld a, $20
+ ld [wcf64], a
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+
+Function8ca5c: ; 8ca5c (23:4a5c)
+ ld a, $1
+ ld [hBGMapMode], a
+ ld hl, wJumptableIndex
+ inc [hl]
+
+Function8ca64: ; 8ca64 (23:4a64)
+ ld hl, wcf64
+ ld a, [hl]
+ and a
+ jr z, .asm_8ca6d
+ dec [hl]
+ ret
+.asm_8ca6d
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+Function8ca73: ; 8ca73 (23:4a73)
+ push de
+ push af
+ ld a, SPRITE_ANIM_INDEX_16 ; fly takeoff
+ call _InitSpriteAnimStruct
+ ld hl, $3
+ add hl, bc
+ ld [hl], $80
+ ld hl, $e
+ add hl, bc
+ ld [hl], $4
+ pop af
+ ld hl, $c
+ add hl, bc
+ ld [hl], a
+ pop de
+ ret
+
+Function8ca8e: ; 8ca8e (23:4a8e)
+ ld de, 0
+ ld a, [wd197]
+ bit 0, a
+ jr z, .asm_8ca9a
+ set 0, e
+.asm_8ca9a
+ ld a, [wd196]
+ bit 0, a
+ jr z, .asm_8caa3
+ set 1, e
+.asm_8caa3
+ ld a, [PlayerDirection]
+ and $c
+ add e
+ ld e, a
+ ld hl, Unknown_8cab3
+rept 2
+ add hl, de
+endr
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ret
+; 8cab3 (23:4ab3)
+
+Unknown_8cab3: ; 8cab3
+ db $58, $60
+ db $48, $60
+ db $58, $70
+ db $48, $70
+ db $58, $40
+ db $48, $40
+ db $58, $50
+ db $48, $50
+ db $38, $60
+ db $48, $60
+ db $38, $50
+ db $48, $50
+ db $58, $60
+ db $68, $60
+ db $58, $50
+ db $68, $50
+; 8cad3
+
+Function8cad3: ; 8cad3 (23:4ad3)
+ ld a, [PlayerDirection]
+ and $c
+ srl a
+ ld e, a
+ ld d, 0
+ ld hl, Unknown_8cae5
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ret
+; 8cae5 (23:4ae5)
+
+Unknown_8cae5: ; 8cae5
+ db $50, $68
+ db $50, $48
+ db $40, $58
+ db $60, $58
+; 8caed
--- a/event/forced_movement.asm
+++ b/event/forced_movement.asm
@@ -28,41 +28,33 @@
; 0x12564
.MovementData_up: ; 0x12564
- step_wait5
- big_step_down
+ step_dig 16
turn_in_down
- step_wait5
- big_step_down
+ step_dig 16
turn_head_down
step_end
; 0x1256b
.MovementData_down: ; 0x1256b
- step_wait5
- big_step_down
+ step_dig 16
turn_in_up
- step_wait5
- big_step_down
+ step_dig 16
turn_head_up
step_end
; 0x12572
.MovementData_right: ; 0x12572
- step_wait5
- big_step_down
+ step_dig 16
turn_in_left
- step_wait5
- big_step_down
+ step_dig 16
turn_head_left
step_end
; 0x12579
.MovementData_left: ; 0x12579
- step_wait5
- big_step_down
+ step_dig 16
turn_in_right
- step_wait5
- big_step_down
+ step_dig 16
turn_head_right
step_end
; 0x12580
--- /dev/null
+++ b/event/halloffame.asm
@@ -1,0 +1,628 @@
+HallOfFame:: ; 0x8640e
+ call Function8648e
+ ld a, [StatusFlags]
+ push af
+ ld a, 1
+ ld [wc2cd], a
+ call DisableSpriteUpdates
+ ld a, SPAWN_LANCE
+ ld [wSpawnAfterChampion], a
+
+ ; Enable the Pokégear map to cycle through all of Kanto
+ ld hl, StatusFlags
+ set 6, [hl] ; hall of fame
+
+ callba Function14da0
+
+ ld hl, wHallOfFameCount
+ ld a, [hl]
+ cp 200
+ jr nc, .ok
+ inc [hl]
+.ok
+ callba SaveGameData
+ call GetHallOfFameParty
+ callba AddHallOfFameEntry
+
+ xor a
+ ld [wc2cd], a
+ call Function864c3
+ pop af
+ ld b, a
+ callba Function109847
+ ret
+; 0x86455
+
+RedCredits:: ; 86455
+ ld a, MUSIC_NONE % $100
+ ld [MusicFadeIDLo], a
+ ld a, MUSIC_NONE / $100
+ ld [MusicFadeIDHi], a
+ ld a, $a
+ ld [MusicFade], a
+ callba FadeOutPalettes
+ xor a
+ ld [VramState], a
+ ld [hMapAnims], a
+ callba Function4e8c2
+ ld c, 8
+ call DelayFrames
+ call DisableSpriteUpdates
+ ld a, SPAWN_RED
+ ld [wSpawnAfterChampion], a
+ ld a, [StatusFlags]
+ ld b, a
+ callba Function109847
+ ret
+; 8648e
+
+Function8648e: ; 8648e
+ ld a, MUSIC_NONE % $100
+ ld [MusicFadeIDLo], a
+ ld a, MUSIC_NONE / $100
+ ld [MusicFadeIDHi], a
+ ld a, 10
+ ld [MusicFade], a
+ callba FadeOutPalettes
+ xor a
+ ld [VramState], a
+ ld [hMapAnims], a
+ callba Function4e881
+ ld c, 100
+ jp DelayFrames
+; 864b4
+
+Function864b4: ; 864b4
+ push de
+ ld de, MUSIC_NONE
+ call PlayMusic
+ call DelayFrame
+ pop de
+ call PlayMusic
+ ret
+; 864c3
+
+Function864c3: ; 864c3
+ xor a
+ ld [wJumptableIndex], a
+ call Function8671c
+ jr c, .done
+ ld de, SCREEN_WIDTH
+ call Function864b4
+ xor a
+ ld [wcf64], a
+.loop
+ ld a, [wcf64]
+ cp 6
+ jr nc, .done
+ ld hl, wc608 + 1
+ ld bc, $10
+ call AddNTimes
+ ld a, [hl]
+ cp -1
+ jr z, .done
+ push hl
+ call Function865b5
+ pop hl
+ call Function8650c
+ jr c, .done
+ ld hl, wcf64
+ inc [hl]
+ jr .loop
+
+.done
+ call Function86810
+ ld a, $4
+ ld [MusicFade], a
+ call RotateThreePalettesRight
+ ld c, 8
+ call DelayFrames
+ ret
+; 8650c
+
+Function8650c: ; 8650c
+ call Function86748
+ ld de, String_8652c
+ hlcoord 1, 2
+ call PlaceString
+ call WaitBGMap
+ decoord 6, 5
+ ld c, $6
+ predef Functiond066e
+ ld c, 60
+ call DelayFrames
+ and a
+ ret
+; 8652c
+
+String_8652c:
+ db "New Hall of Famer!@"
+; 8653f
+
+
+GetHallOfFameParty: ; 8653f
+ ld hl, OverworldMap
+ ld bc, HOF_LENGTH
+ xor a
+ call ByteFill
+ ld a, [wHallOfFameCount]
+ ld de, OverworldMap
+ ld [de], a
+ inc de
+ ld hl, PartySpecies
+ ld c, 0
+.next
+ ld a, [hli]
+ cp -1
+ jr z, .done
+ cp EGG
+ jr nz, .mon
+ inc c
+ jr .next
+
+.mon
+ push hl
+ push de
+ push bc
+
+ ld a, c
+ ld hl, PartyMons
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ ld c, l
+ ld b, h
+
+ ld hl, MON_SPECIES
+ add hl, bc
+ ld a, [hl]
+ ld [de], a
+ inc de
+
+ ld hl, MON_ID
+ add hl, bc
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ inc de
+
+ ld hl, MON_DVS
+ add hl, bc
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ inc de
+
+ ld hl, MON_LEVEL
+ add hl, bc
+ ld a, [hl]
+ ld [de], a
+ inc de
+
+ pop bc
+ push bc
+ ld a, c
+ ld hl, PartyMonNicknames
+ ld bc, PKMN_NAME_LENGTH
+ call AddNTimes
+ ld bc, PKMN_NAME_LENGTH - 1
+ call CopyBytes
+
+ pop bc
+ inc c
+ pop de
+ ld hl, HOF_MON_LENGTH
+ add hl, de
+ ld e, l
+ ld d, h
+ pop hl
+ jr .next
+
+.done
+ ld a, $ff
+ ld [de], a
+ ret
+; 865b5
+
+Function865b5: ; 865b5
+ push hl
+ call ClearBGPalettes
+ callba Function4e906
+ pop hl
+ ld a, [hli]
+ ld [TempMonSpecies], a
+ ld [CurPartySpecies], a
+rept 2
+ inc hl
+endr
+ ld a, [hli]
+ ld [TempMonDVs], a
+ ld a, [hli]
+ ld [TempMonDVs + 1], a
+ ld hl, TempMonDVs
+ predef GetUnownLetter
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, " "
+ call ByteFill
+ ld de, VTiles2 tile $31
+ predef GetBackpic
+ ld a, $31
+ ld [hFillBox], a
+ hlcoord 6, 6
+ lb bc, 6, 6
+ predef FillBox
+ ld a, $d0
+ ld [hSCY], a
+ ld a, $90
+ ld [hSCX], a
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ld b, SCGB_1A
+ call GetSGBLayout
+ call SetPalettes
+ call Function86635
+ xor a
+ ld [wc2c6], a
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, " "
+ call ByteFill
+ hlcoord 6, 5
+ call _PrepMonFrontpic
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ld [hSCY], a
+ call Function86643
+ ret
+; 86635
+
+Function86635: ; 86635
+.loop
+ ld a, [hSCX]
+ cp $70
+ ret z
+ add $4
+ ld [hSCX], a
+ call DelayFrame
+ jr .loop
+; 86643
+
+Function86643: ; 86643
+.loop
+ ld a, [hSCX]
+ and a
+ ret z
+rept 2
+ dec a
+endr
+ ld [hSCX], a
+ call DelayFrame
+ jr .loop
+; 86650
+
+_HallOfFamePC: ; 86650
+ call LoadFontsBattleExtra
+ xor a
+ ld [wJumptableIndex], a
+.loop
+ call Function8671c
+ ret c
+ call Function86665
+ ret c
+ ld hl, wJumptableIndex
+ inc [hl]
+ jr .loop
+; 86665
+
+Function86665: ; 86665
+ xor a
+ ld [wcf64], a
+.next
+ call Function86692
+ jr c, .start_button
+.loop
+ call JoyTextDelay
+ ld hl, hJoyLast
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .b_button
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .a_button
+ ld a, [hl]
+ and START
+ jr nz, .start_button
+ call DelayFrame
+ jr .loop
+
+.a_button
+ ld hl, wcf64
+ inc [hl]
+ jr .next
+
+.b_button
+ scf
+ ret
+
+.start_button
+ and a
+ ret
+; 86692
+
+Function86692: ; 86692
+; Print the number of times the player has entered the Hall of Fame.
+; If that number is above 200, print "HOF Master!" instead.
+ ld a, [wcf64]
+ cp $6
+ jr nc, .fail
+ ld hl, wc608 + 1
+ ld bc, $10
+ call AddNTimes
+ ld a, [hl]
+ cp $ff
+ jr nz, .okay
+
+.fail
+ scf
+ ret
+
+.okay
+ push hl
+ call ClearBGPalettes
+ pop hl
+ call Function86748
+ ld a, [wc608]
+ cp 200 + 1
+ jr c, .print_num_hof
+ ld de, String_866fc
+ hlcoord 1, 2
+ call PlaceString
+ hlcoord 13, 2
+ jr .finish
+
+.print_num_hof
+ ld de, String_8670c
+ hlcoord 1, 2
+ call PlaceString
+ hlcoord 2, 2
+ ld de, wc608
+ lb bc, 1, 3
+ call PrintNum
+ hlcoord 11, 2
+
+.finish
+ ld de, String_866fb
+ call PlaceString
+ call WaitBGMap
+ ld b, SCGB_1A
+ call GetSGBLayout
+ call SetPalettes
+ decoord 6, 5
+ ld c, $6
+ predef Functiond066e
+ and a
+ ret
+; 866fb
+
+String_866fb:
+ db "@"
+; 866fc
+
+String_866fc:
+ db " HOF Master!@"
+; 8670c
+
+String_8670c:
+ db " -Time Famer@"
+; 8671c
+
+
+Function8671c: ; 8671c
+ ld a, [wJumptableIndex]
+ cp NUM_HOF_TEAMS
+ jr nc, .full
+ ld hl, sHallOfFame
+ ld bc, HOF_LENGTH
+ call AddNTimes
+ ld a, BANK(sHallOfFame)
+ call GetSRAMBank
+ ld a, [hl]
+ and a
+ jr z, .fail
+ ld de, wc608
+ ld bc, HOF_LENGTH
+ call CopyBytes
+ call CloseSRAM
+ and a
+ ret
+
+.fail
+ call CloseSRAM
+
+.full
+ scf
+ ret
+; 86748
+
+Function86748: ; 86748
+ xor a
+ ld [hBGMapMode], a
+ ld a, [hli]
+ ld [TempMonSpecies], a
+ ld a, [hli]
+ ld [TempMonID], a
+ ld a, [hli]
+ ld [TempMonID + 1], a
+ ld a, [hli]
+ ld [TempMonDVs], a
+ ld a, [hli]
+ ld [TempMonDVs + 1], a
+ ld a, [hli]
+ ld [TempMonLevel], a
+ ld de, StringBuffer2
+ ld bc, 10
+ call CopyBytes
+ ld a, "@"
+ ld [StringBuffer2 + 10], a
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, " "
+ call ByteFill
+ hlcoord 0, 0
+ lb bc, 3, SCREEN_WIDTH - 2
+ call TextBox
+ hlcoord 0, 12
+ lb bc, 4, SCREEN_WIDTH - 2
+ call TextBox
+ ld a, [TempMonSpecies]
+ ld [CurPartySpecies], a
+ ld [wd265], a
+ ld hl, TempMonDVs
+ predef GetUnownLetter
+ xor a
+ ld [wc2c6], a
+ hlcoord 6, 5
+ call _PrepMonFrontpic
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .print_id_no
+ hlcoord 1, 13
+ ld a, "№"
+ ld [hli], a
+ ld [hl], "·"
+ hlcoord 3, 13
+ ld de, wd265
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
+ call PrintNum
+ call GetBasePokemonName
+ hlcoord 7, 13
+ call PlaceString
+ ld a, BREEDMON
+ ld [MonType], a
+ callba GetGender
+ ld a, " "
+ jr c, .got_gender
+ ld a, "♂"
+ jr nz, .got_gender
+ ld a, "♀"
+
+.got_gender
+ hlcoord 18, 13
+ ld [hli], a
+ hlcoord 8, 14
+ ld a, "/"
+ ld [hli], a
+ ld de, StringBuffer2
+ call PlaceString
+ hlcoord 1, 16
+ call PrintLevel
+
+.print_id_no
+ hlcoord 7, 16
+ ld a, "<ID>"
+ ld [hli], a
+ ld a, "№"
+ ld [hli], a
+ ld [hl], "/"
+ hlcoord 10, 16
+ ld de, TempMonID
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ ret
+; 86810
+
+Function86810: ; 86810
+ call ClearBGPalettes
+ ld hl, VTiles2 tile $63
+ ld de, FontExtra + $d0
+ lb bc, BANK(FontExtra), 1
+ call Request2bpp
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, " "
+ call ByteFill
+ callba GetPlayerBackpic
+ ld a, $31
+ ld [hFillBox], a
+ hlcoord 6, 6
+ lb bc, 6, 6
+ predef FillBox
+ ld a, $d0
+ ld [hSCY], a
+ ld a, $90
+ ld [hSCX], a
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ld [CurPartySpecies], a
+ ld b, SCGB_1A
+ call GetSGBLayout
+ call SetPalettes
+ call Function86635
+ xor a
+ ld [wc2c6], a
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, " "
+ call ByteFill
+ callba Function88840
+ xor a
+ ld [hFillBox], a
+ hlcoord 12, 5
+ lb bc, 7, 7
+ predef FillBox
+ ld a, $c0
+ ld [hSCX], a
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ld [hSCY], a
+ call Function86643
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 0, 2
+ lb bc, 8, 9
+ call TextBox
+ hlcoord 0, 12
+ lb bc, 4, 18
+ call TextBox
+ hlcoord 2, 4
+ ld de, PlayerName
+ call PlaceString
+ hlcoord 1, 6
+ ld a, "<ID>"
+ ld [hli], a
+ ld a, "№"
+ ld [hli], a
+ ld [hl], "/"
+ hlcoord 4, 6
+ ld de, PlayerID
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ hlcoord 1, 8
+ ld de, .PlayTime
+ call PlaceString
+ hlcoord 3, 9
+ ld de, GameTimeHours
+ lb bc, 2, 3
+ call PrintNum
+ ld [hl], 99
+ inc hl
+ ld de, GameTimeMinutes
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNum
+ call WaitBGMap
+ callba Function26601
+ ret
+; 868ed
+
+.PlayTime
+ db "PLAY TIME@"
+; 868f7
+
--- a/event/kurt.asm
+++ b/event/kurt.asm
@@ -26,7 +26,7 @@
call LoadStandardMenuDataHeader
ld c, $1
xor a
- ld [wd0e4], a
+ ld [wMenuScrollPosition], a
ld [wKurtApricornQuantity], a
.loop
push bc
@@ -65,7 +65,7 @@
ld [wMenuCursorBuffer], a
xor a
ld [hBGMapMode], a
- call Function352f
+ call InitScrollingMenu
call UpdateSprites
call HandleScrollingMenu
ld a, [wcf73]
@@ -139,7 +139,7 @@
call UpdateSprites
call .PlaceApricornName
call PlaceApricornQuantity
- call Function321c
+ call ApplyTilemap
callba Function27a28
jr nc, .loop
--- /dev/null
+++ b/event/magnet_train.asm
@@ -1,0 +1,485 @@
+Special_MagnetTrain: ; 8cc04
+ ld a, [ScriptVar]
+ and a
+ jr nz, .ToGoldenrod
+ ld a, 1 ; forwards
+ lb bc, $40, $60
+ ld de, $fca0
+ jr .continue
+
+.ToGoldenrod
+ ld a, -1 ; backwards
+ lb bc, $c0, $a0
+ ld de, $b460
+
+.continue
+ ld h, a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, h
+ ld [w5_d191], a
+ ld a, c
+ ld [w5_d192], a
+ ld a, b
+ ld [w5_d193], a
+ ld a, e
+ ld [w5_d194], a
+ ld a, d
+ ld [w5_d195], a
+ ld a, [hSCX]
+ push af
+ ld a, [hSCY]
+ push af
+ call Function8ccc9
+ ld hl, hVBlank
+ ld a, [hl]
+ push af
+ ld [hl], $1
+.loop
+ ld a, [wJumptableIndex]
+ and a
+ jr z, .initialize
+ bit 7, a
+ jr nz, .done
+ callab Function8cf69
+ call Function8cdf7
+ call Function8cc99
+ call Function3b0c
+ call DelayFrame
+ jr .loop
+
+.initialize
+ call Function8ceae
+ jr .loop
+
+.done
+ pop af
+ ld [hVBlank], a
+ call ClearBGPalettes
+ xor a
+ ld [hLCDStatCustom], a
+ ld [hLCDStatCustom + 1], a
+ ld [hLCDStatCustom + 2], a
+ ld [hSCX], a
+ ld [Requested2bppSource], a
+ ld [Requested2bppSource + 1], a
+ ld [Requested2bppDest], a
+ ld [Requested2bppDest + 1], a
+ ld [Requested2bpp], a
+ call ClearTileMap
+ pop af
+ ld [hSCY], a
+ pop af
+ ld [hSCX], a
+ xor a
+ ld [hBGMapMode], a
+ pop af
+ ld [rSVBK], a
+ ret
+; 8cc99
+
+Function8cc99: ; 8cc99
+ ld hl, LYOverridesBackup
+ ld c, $2f
+ ld a, [wcf64]
+ add a
+ ld [hSCX], a
+ call Function8ccc4
+ ld c, $30
+ ld a, [wcf65]
+ call Function8ccc4
+ ld c, $31
+ ld a, [wcf64]
+ add a
+ call Function8ccc4
+ ld a, [wd191]
+ ld d, a
+ ld hl, wcf64
+ ld a, [hl]
+rept 2
+ add d
+endr
+ ld [hl], a
+ ret
+; 8ccc4
+
+Function8ccc4: ; 8ccc4
+.asm_8ccc4
+ ld [hli], a
+ dec c
+ jr nz, .asm_8ccc4
+ ret
+; 8ccc9
+
+Function8ccc9: ; 8ccc9
+ call ClearBGPalettes
+ call ClearSprites
+ call DisableLCD
+ callab Function8cf53
+ call SetMagnetTrainPals
+ call DrawMagnetTrain
+ ld a, $90
+ ld [hWY], a
+ call EnableLCD
+ xor a
+ ld [hBGMapMode], a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ callba GetPlayerIcon
+ pop af
+ ld [rSVBK], a
+ ld hl, VTiles0
+ ld c, $4
+ call Request2bpp
+ ld hl, $c0
+ add hl, de
+ ld d, h
+ ld e, l
+ ld hl, VTiles0 tile $04
+ ld c, $4
+ call Request2bpp
+ call Function8cda6
+ ld hl, wJumptableIndex
+ xor a
+ ld [hli], a
+ ld a, [wd192]
+rept 3
+ ld [hli], a
+endr
+ ld de, MUSIC_MAGNET_TRAIN
+ call PlayMusic2
+ ret
+; 8cd27
+
+DrawMagnetTrain: ; 8cd27
+ hlbgcoord 0, 0
+ xor a
+.asm_8cd2b
+ call GetMagnetTrainBGTiles
+ ld b, 32 / 2
+ call .FillAlt
+ inc a
+ cp $12
+ jr c, .asm_8cd2b
+ hlbgcoord 0, 6
+ ld de, MagnetTrainTilemap1
+ ld c, 20
+ call .FillLine
+ hlbgcoord 0, 7
+ ld de, MagnetTrainTilemap2
+ ld c, 20
+ call .FillLine
+ hlbgcoord 0, 8
+ ld de, MagnetTrainTilemap3
+ ld c, 20
+ call .FillLine
+ hlbgcoord 0, 9
+ ld de, MagnetTrainTilemap4
+ ld c, 20
+ call .FillLine
+ ret
+; 8cd65
+
+.FillLine ; 8cd65
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec c
+ jr nz, .FillLine
+ ret
+; 8cd6c
+
+.FillAlt ; 8cd6c
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ inc hl
+ dec b
+ jr nz, .FillAlt
+ ret
+; 8cd74
+
+GetMagnetTrainBGTiles: ; 8cd74
+ push hl
+ ld e, a
+ ld d, 0
+ ld hl, MagnetTrainBGTiles
+rept 2
+ add hl, de
+endr
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ pop hl
+ ret
+; 8cd82
+
+MagnetTrainBGTiles: ; 8cd82
+; Alternating tiles for each line
+; of the Magnet Train tilemap.
+ db $4c, $4d ; bush
+ db $5c, $5d ; bush
+ db $4c, $4d ; bush
+ db $5c, $5d ; bush
+ db $08, $08 ; fence
+ db $18, $18 ; fence
+ db $1f, $1f ; track
+ db $31, $31 ; track
+ db $11, $11 ; track
+ db $11, $11 ; track
+ db $0d, $0d ; track
+ db $31, $31 ; track
+ db $04, $04 ; fence
+ db $18, $18 ; fence
+ db $4c, $4d ; bush
+ db $5c, $5d ; bush
+ db $4c, $4d ; bush
+ db $5c, $5d ; bush
+; 8cda6
+
+Function8cda6: ; 8cda6
+ ld hl, LYOverrides
+ ld bc, $90
+ ld a, [wd192]
+ call ByteFill
+ ld hl, LYOverridesBackup
+ ld bc, $90
+ ld a, [wd192]
+ call ByteFill
+ ld a, $43
+ ld [hLCDStatCustom], a
+ ret
+; 8cdc3
+
+SetMagnetTrainPals: ; 8cdc3
+ ld a, $1
+ ld [rVBK], a
+
+ ; bushes
+ hlbgcoord 0, 0
+ ld bc, 4 bgrows
+ ld a, $2
+ call ByteFill
+
+ ; train
+ hlbgcoord 0, 4
+ ld bc, 10 bgrows
+ xor a
+ call ByteFill
+
+ ; more bushes
+ hlbgcoord 0, 14
+ ld bc, 4 bgrows
+ ld a, $2
+ call ByteFill
+
+ ; train window
+ hlbgcoord 7, 8
+ ld bc, 6
+ ld a, $4
+ call ByteFill
+
+ ld a, $0
+ ld [rVBK], a
+ ret
+; 8cdf7
+
+Function8cdf7: ; 8cdf7
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_8ce06
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 8ce06
+
+Jumptable_8ce06: ; 8ce06
+ dw Function8ce19
+ dw Function8ce6d
+ dw Function8ce47
+ dw Function8ce6d
+ dw Function8ce7a
+ dw Function8ce6d
+ dw Function8cea2
+; 8ce14
+
+Function8ce14: ; 8ce14
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+; 8ce19
+
+Function8ce19: ; 8ce19
+ ld d, $55
+ ld a, [wd194 + 1]
+ ld e, a
+ ld b, SPRITE_ANIM_INDEX_15
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .asm_8ce31
+ ld b, SPRITE_ANIM_INDEX_1F
+
+.asm_8ce31
+ pop af
+ ld [rSVBK], a
+ ld a, b
+ call _InitSpriteAnimStruct
+ ld hl, $3
+ add hl, bc
+ ld [hl], $0
+ call Function8ce14
+ ld a, $80
+ ld [wcf66], a
+ ret
+; 8ce47
+
+Function8ce47: ; 8ce47
+ ld hl, wd193
+ ld a, [wcf65]
+ cp [hl]
+ jr z, .asm_8ce64
+ ld e, a
+ ld a, [wd191]
+ xor $ff
+ inc a
+ add e
+ ld [wcf65], a
+ ld hl, wc3c0
+ ld a, [wd191]
+ add [hl]
+ ld [hl], a
+ ret
+
+.asm_8ce64
+ call Function8ce14
+ ld a, $80
+ ld [wcf66], a
+ ret
+; 8ce6d
+
+Function8ce6d: ; 8ce6d
+ ld hl, wcf66
+ ld a, [hl]
+ and a
+ jr z, .asm_8ce76
+ dec [hl]
+ ret
+
+.asm_8ce76
+ call Function8ce14
+ ret
+; 8ce7a
+
+Function8ce7a: ; 8ce7a
+ ld hl, wd194
+ ld a, [wcf65]
+ cp [hl]
+ jr z, .asm_8ce9e
+ ld e, a
+ ld a, [wd191]
+ xor $ff
+ inc a
+ ld d, a
+ ld a, e
+rept 2
+ add d
+endr
+ ld [wcf65], a
+ ld hl, wc3c0
+ ld a, [wd191]
+ ld d, a
+ ld a, [hl]
+rept 2
+ add d
+endr
+ ld [hl], a
+ ret
+
+ ret
+
+.asm_8ce9e
+ call Function8ce14
+ ret
+; 8cea2
+
+Function8cea2: ; 8cea2
+ ld a, $80
+ ld [wJumptableIndex], a
+ ld de, SFX_TRAIN_ARRIVED
+ call PlaySFX
+ ret
+; 8ceae
+
+Function8ceae: ; 8ceae
+ callba Function8cf69
+ call Function8cdf7
+ call Function8cc99
+ call Function3b0c
+ call DelayFrame
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, [TimeOfDayPal]
+ push af
+ ld a, [wPermission]
+ push af
+ ld a, [TimeOfDay]
+ and $3
+ ld [TimeOfDayPal], a
+ ld a, $1
+ ld [wPermission], a
+ ld b, SCGB_09
+ call GetSGBLayout
+ call UpdateTimePals
+ ld a, [rBGP]
+ ld [wcfc7], a
+ ld a, [rOBP0]
+ ld [wcfc8], a
+ ld a, [rOBP1]
+ ld [wcfc9], a
+ pop af
+ ld [wPermission], a
+ pop af
+ ld [TimeOfDayPal], a
+ pop af
+ ld [rSVBK], a
+ ret
+; 8ceff
+
+MagnetTrainTilemap1:
+ db $1f, $05, $06, $0a, $0a
+ db $0a, $09, $0a, $0a, $0a
+ db $0a, $0a, $0a, $09, $0a
+ db $0a, $0a, $0b, $0c, $1f
+MagnetTrainTilemap2:
+ db $14, $15, $16, $1a, $1a
+ db $1a, $19, $1a, $1a, $1a
+ db $1a, $1a, $1a, $19, $1a
+ db $1a, $1a, $1b, $1c, $1d
+MagnetTrainTilemap3:
+ db $24, $25, $26, $27, $07
+ db $2f, $29, $28, $28, $28
+ db $28, $28, $28, $29, $07
+ db $2f, $2a, $2b, $2c, $2d
+MagnetTrainTilemap4:
+ db $20, $1f, $2e, $1f, $17
+ db $00, $2e, $1f, $1f, $1f
+ db $1f, $1f, $1f, $2e, $17
+ db $00, $1f, $2e, $1f, $0f
+; 8cf4f
--- a/event/mom.asm
+++ b/event/mom.asm
@@ -45,11 +45,11 @@
; 16254
.CheckIfBankInitialized: ; 16254
- ld a, [wBankOfMomMode]
+ ld a, [wMomSavingMoney]
bit 7, a
jr nz, .savingmoneyalready
set 7, a
- ld [wBankOfMomMode], a
+ ld [wMomSavingMoney], a
ld a, $1
jr .done_0
@@ -75,7 +75,7 @@
ld a, %10000000
.done_1
- ld [wBankOfMomMode], a
+ ld [wMomSavingMoney], a
ld hl, UnknownText_0x16653
call PrintText
ld a, $8
@@ -168,7 +168,7 @@
ld de, StringBuffer2 + 3
ld bc, 3
call CopyBytes
- ld bc, wd851
+ ld bc, wMomsMoney
ld de, StringBuffer2
callba GiveMoney
jr c, .CantDepositThatMuch
@@ -176,7 +176,7 @@
ld de, Money
callba TakeMoney
ld hl, StringBuffer2
- ld de, wd851
+ ld de, wMomsMoney
ld bc, 3
call CopyBytes
ld de, SFX_TRANSACTION
@@ -232,7 +232,7 @@
ld de, StringBuffer2 + 3
ld bc, 3
call CopyBytes
- ld de, wd851
+ ld de, wMomsMoney
ld bc, StringBuffer2
callba CompareMoney
jr c, .InsufficientFundsInBank
@@ -241,7 +241,7 @@
callba GiveMoney
jr c, .NotEnoughRoomInWallet
ld bc, StringBuffer2 + 3
- ld de, wd851
+ ld de, wMomsMoney
callba TakeMoney
ld hl, StringBuffer2
ld de, Money
@@ -279,7 +279,7 @@
call YesNoBox
jr c, .StopSavingMoney
ld a, $81
- ld [wBankOfMomMode], a
+ ld [wMomSavingMoney], a
ld hl, UnknownText_0x16685
call PrintText
ld a, $8
@@ -288,7 +288,7 @@
.StopSavingMoney
ld a, $80
- ld [wBankOfMomMode], a
+ ld [wMomSavingMoney], a
ld a, $7
ld [wJumptableIndex], a
ret
@@ -461,7 +461,7 @@
ld de, String_16699
call PlaceString
hlcoord 12, 2
- ld de, wd851
+ ld de, wMomsMoney
lb bc, PRINTNUM_MONEY | 3, 6
call PrintNum
hlcoord 1, 4
--- /dev/null
+++ b/event/mom_phone.asm
@@ -1,0 +1,285 @@
+MomTriesToBuySomething:: ; fcfec
+ ld a, [wMapReentryScriptQueueFlag]
+ and a
+ ret nz
+ call GetMapHeaderPhoneServiceNybble
+ and a
+ ret nz
+ xor a
+ ld [wdc18], a
+ call CheckBalance_MomItem2
+ ret nc
+ call Functionfd0c3
+ ret nc
+ ld b, BANK(UnknownScript_0xfd00f)
+ ld de, UnknownScript_0xfd00f
+ callba LoadScriptBDE
+ scf
+ ret
+; fd00f
+
+UnknownScript_0xfd00f: ; 0xfd00f
+ callasm Functionfd017
+ farjump Script_ReceivePhoneCall
+; 0xfd017
+
+Functionfd017: ; fd017
+ call MomBuysItem_DeductFunds
+ call Functionfd0eb
+ ld a, [wdc18]
+ and a
+ jr nz, .ok
+ ld hl, wdc17
+ inc [hl]
+.ok
+ ld a, 1
+ ld [wCurrentCaller], a
+ ld bc, wd03f
+ ld hl, 0
+ add hl, bc
+ ld [hl], 0
+ inc hl
+ ld [hl], 1
+ ld hl, 9
+ add hl, bc
+ ld a, $3f
+ ld [hli], a
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hl], a
+ ret
+; fd044
+
+CheckBalance_MomItem2: ; fd044
+ ld a, [wdc17]
+ cp 10
+ jr nc, .nope
+ call GetItemFromMom
+ ld a, [hli]
+ ld [hMoneyTemp], a
+ ld a, [hli]
+ ld [hMoneyTemp + 1], a
+ ld a, [hli]
+ ld [hMoneyTemp + 2], a
+ ld de, wMomsMoney
+ ld bc, hMoneyTemp
+ callba CompareMoney
+ jr nc, .have_enough_money
+
+.nope
+ jr .check_have_2300
+
+.have_enough_money
+ scf
+ ret
+
+.check_have_2300
+ ld hl, hMoneyTemp
+ ld [hl], (2300 / $10000) ; $00
+ inc hl
+ ld [hl], ((2300 % $10000) / $100) ; $08
+ inc hl
+ ld [hl], (2300 % $100) ; $fc
+.loop
+ ld de, wdc19
+ ld bc, wMomsMoney
+ callba CompareMoney
+ jr z, .exact
+ jr nc, .less_than
+ call Functionfd099
+ jr .loop
+
+.less_than
+ xor a
+ ret
+
+.exact
+ call Functionfd099
+ ld a, 5
+ call RandomRange
+ inc a
+ ld [wdc18], a
+ scf
+ ret
+; fd099
+
+Functionfd099: ; fd099
+ ld de, wdc19
+ ld bc, hMoneyTemp
+ callba AddMoney
+ ret
+; fd0a6
+
+
+MomBuysItem_DeductFunds: ; fd0a6 (3f:50a6)
+ call GetItemFromMom
+ ld de, 3
+ add hl, de
+ ld a, [hli]
+ ld [hMoneyTemp], a
+ ld a, [hli]
+ ld [hMoneyTemp + 1], a
+ ld a, [hli]
+ ld [hMoneyTemp + 2], a
+ ld de, wMomsMoney
+ ld bc, hMoneyTemp
+ callba TakeMoney
+ ret
+
+
+Functionfd0c3: ; fd0c3
+ call GetItemFromMom
+ ld de, 6
+ add hl, de
+ ld a, [hli]
+ cp 1
+ jr z, .not_doll
+ ld a, [hl]
+ ld c, a
+ ld b, 1
+ callba DecorationFlagAction_c
+ scf
+ ret
+
+.not_doll
+ ld a, [hl]
+ ld [CurItem], a
+ ld a, $1
+ ld [wItemQuantityChangeBuffer], a
+ ld hl, PCItems
+ call ReceiveItem
+ ret
+; fd0eb
+
+
+Functionfd0eb: ; fd0eb (3f:50eb)
+ call GetItemFromMom
+ ld de, 6 ; field
+ add hl, de
+ ld a, [hli]
+ ld de, Script_MomBoughtItem
+ cp 1
+ ret z
+ ld de, Script_MomBoughtDoll
+ ret
+; fd0fd (3f:50fd)
+
+Script_MomBoughtItem: ; 0xfd0fd
+ writetext _MomText_HiHowAreYou
+ writetext _MomText_FoundAnItem
+ writetext _MomText_BoughtWithYourMoney
+ writetext _MomText_ItsInPC
+ end
+; 0xfd10a
+
+Script_MomBoughtDoll: ; 0xfd10a
+ writetext _MomText_HiHowAreYou
+ writetext _MomText_FoundADoll
+ writetext _MomText_BoughtWithYourMoney
+ writetext _MomText_ItsInRoom
+ end
+; 0xfd117
+
+
+GetItemFromMom: ; fd117
+ ld a, [wdc18]
+ and a
+ jr z, .zero
+ dec a
+ ld de, MomItems_1
+ jr .incave
+
+.zero
+ ld a, [wdc17]
+ cp 10 ; length of MomItems_2
+ jr c, .ok
+ xor a
+
+.ok
+ ld de, MomItems_2
+
+.incave
+ ld l, a
+ ld h, 0
+rept 3 ; multiply hl by 8
+ add hl, hl
+endr
+ add hl, de
+ ret
+; fd136
+
+momitem: macro
+; money to trigger, cost, kind, item
+ dt \1
+ dt \2
+ db \3, \4
+ENDM
+
+
+MomItems_1: ; fd136
+ momitem 0, 600, MOM_ITEM, SUPER_POTION
+ momitem 0, 90, MOM_ITEM, ANTIDOTE
+ momitem 0, 180, MOM_ITEM, POKE_BALL
+ momitem 0, 450, MOM_ITEM, ESCAPE_ROPE
+ momitem 0, 500, MOM_ITEM, GREAT_BALL
+; fd15e
+
+MomItems_2: ; fd15e
+ momitem 900, 600, MOM_ITEM, SUPER_POTION
+ momitem 4000, 270, MOM_ITEM, REPEL
+ momitem 7000, 600, MOM_ITEM, SUPER_POTION
+ momitem 10000, 1800, MOM_DOLL, DECO_CHARMANDER_DOLL
+ momitem 15000, 3000, MOM_ITEM, MOON_STONE
+ momitem 19000, 600, MOM_ITEM, SUPER_POTION
+ momitem 30000, 4800, MOM_DOLL, DECO_CLEFAIRY_DOLL
+ momitem 40000, 900, MOM_ITEM, HYPER_POTION
+ momitem 50000, 8000, MOM_DOLL, DECO_PIKACHU_DOLL
+ momitem 100000, 22800, MOM_DOLL, DECO_BIG_SNORLAX_DOLL
+; fd1ae
+
+ db 0, 0, 0 ; XXX
+
+_MomText_HiHowAreYou: ; 0xfd1b1
+ ; Hi, ! How are you?
+ text_jump UnknownText_0x1bc615
+ db "@"
+; 0xfd1b6
+
+_MomText_FoundAnItem: ; 0xfd1b6
+ ; I found a useful item shopping, so
+ text_jump UnknownText_0x1bc62a
+ db "@"
+; 0xfd1bb
+
+_MomText_BoughtWithYourMoney: ; 0xfd1bb
+ ; I bought it with your money. Sorry!
+ text_jump UnknownText_0x1bc64e
+ db "@"
+; 0xfd1c0
+
+_MomText_ItsInPC: ; 0xfd1c0
+ ; It's in your PC. You'll like it!
+ text_jump UnknownText_0x1bc673
+ db "@"
+; 0xfd1c5
+
+_MomText_FoundADoll: ; 0xfd1c5
+ ; While shopping today, I saw this adorable doll, so
+ text_jump UnknownText_0x1bc693
+ db "@"
+; 0xfd1ca
+
+_MomText_ItsInRoom: ; 0xfd1ca
+ ; It's in your room. You'll love it!
+ text_jump UnknownText_0x1bc6c7
+ db "@"
+; 0xfd1cf
+
+ db 0 ; XXX
+
+Functionfd1d0: ; fd1d0
+ ret
+; fd1d1
+
+ ret ; XXX
--- /dev/null
+++ b/event/photo.asm
@@ -1,0 +1,299 @@
+UnownPrinter: ; 16be4
+ ld a, [UnownDex]
+ and a
+ ret z
+
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ ld a, [Options]
+ push af
+ set NO_TEXT_SCROLL, a
+ ld [Options], a
+ call ClearBGPalettes
+ call ClearTileMap
+
+ ld de, UnownDexATile
+ ld hl, VTiles1 tile $6f
+ lb bc, BANK(UnownDexBTile), 1
+ call Request1bpp
+
+ ld de, UnownDexBTile
+ ld hl, VTiles1 tile $75
+ lb bc, BANK(UnownDexBTile), 1
+ call Request1bpp
+
+ hlcoord 0, 0
+ lb bc, 3, 18
+ call TextBox
+
+ hlcoord 0, 5
+ lb bc, 7, 7
+ call TextBox
+
+ hlcoord 0, 14
+ lb bc, 2, 18
+ call TextBox
+
+ hlcoord 1, 2
+ ld de, AlphRuinsStampString
+ call PlaceString
+
+ hlcoord 1, 16
+ ld de, UnownDexDoWhatString
+ call PlaceString
+
+ hlcoord 10, 6
+ ld de, UnownDexMenuString
+ call PlaceString
+
+ xor a
+ ld [wJumptableIndex], a
+ call Function16cc8
+ call WaitBGMap
+
+ ld a, UNOWN
+ ld [CurPartySpecies], a
+ xor a
+ ld [TempMonDVs], a
+ ld [TempMonDVs + 1], a
+
+ ld b, SCGB_1C
+ call GetSGBLayout
+ call SetPalettes
+
+.joy_loop
+ call JoyTextDelay
+
+ ld a, [hJoyPressed]
+ and B_BUTTON
+ jr nz, .pressed_b
+
+ ld a, [hJoyPressed]
+ and A_BUTTON
+ jr nz, .pressed_a
+
+ call Function16ca0
+ call DelayFrame
+ jr .joy_loop
+
+.pressed_a
+ ld a, [wJumptableIndex]
+ push af
+ callba PrintUnownStamp
+ call RestartMapMusic
+ pop af
+ ld [wJumptableIndex], a
+ jr .joy_loop
+
+.pressed_b
+ pop af
+ ld [Options], a
+ pop af
+ ld [hInMenu], a
+ call ReturnToMapFromSubmenu
+ ret
+; 16ca0
+
+Function16ca0: ; 16ca0
+ ld a, [hJoyLast]
+ and D_RIGHT
+ jr nz, .press_right
+ ld a, [hJoyLast]
+ and D_LEFT
+ jr nz, .press_left
+ ret
+
+.press_left
+ ld hl, wJumptableIndex
+ ld a, [hl]
+ and a
+ jr nz, .wrap_around_left
+ ld [hl], $1b
+
+.wrap_around_left
+ dec [hl]
+ jr .return
+
+.press_right
+ ld hl, wJumptableIndex
+ ld a, [hl]
+ cp $1a
+ jr c, .wrap_around_right
+ ld [hl], $ff
+
+.wrap_around_right
+ inc [hl]
+
+.return
+ call Function16cc8
+ ret
+; 16cc8
+
+Function16cc8: ; 16cc8
+ ld a, [wJumptableIndex]
+ cp 26
+ jr z, Function16d20
+ inc a
+ ld [UnownLetter], a
+ ld a, UNOWN
+ ld [CurPartySpecies], a
+ xor a
+ ld [wc2c6], a
+ ld de, VTiles2
+ predef GetFrontpic
+ call Function16cff
+ hlcoord 1, 6
+ xor a
+ ld [hFillBox], a
+ lb bc, 7, 7
+ predef FillBox
+ ld de, VTiles2 tile $31
+ callba Functione0000
+ ret
+; 16cff
+
+Function16cff: ; 16cff
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+
+ ld a, BANK(sScratch)
+ call GetSRAMBank
+ ld de, w6_d000
+ ld hl, sScratch
+ ld a, [hROMBank]
+ ld b, a
+ ld c, $31
+ call Get2bpp
+ call CloseSRAM
+
+ pop af
+ ld [rSVBK], a
+ ret
+; 16d20
+
+Function16d20: ; 16d20
+ hlcoord 1, 6
+ lb bc, 7, 7
+ call ClearBox
+ hlcoord 1, 9
+ ld de, UnownDexVacantString
+ call PlaceString
+ xor a
+ call GetSRAMBank
+ ld hl, sScratch
+ ld bc, $31 tiles
+ xor a
+ call ByteFill
+ ld hl, VTiles2 tile $31
+ ld de, sScratch
+ ld c, $31
+ ld a, [hROMBank]
+ ld b, a
+ call Get2bpp
+ call CloseSRAM
+ ld c, 20
+ call DelayFrames
+ ret
+; 16d57
+
+AlphRuinsStampString:
+ db " ALPH RUINS STAMP@"
+
+UnownDexDoWhatString:
+ db "Do what?@"
+
+UnownDexMenuString:
+ db "♂ PRINT"
+ next "♀ CANCEL"
+ next "← PREVIOUS"
+ next "→ NEXT"
+ db "@"
+
+UnownDexVacantString:
+ db "VACANT@"
+; 16d9c
+
+UnownDexATile: ; 16d9c
+INCBIN "gfx/unknown/016d9c.1bpp"
+UnownDexBTile: ; 16da4
+INCBIN "gfx/unknown/016da4.1bpp"
+; 16dac
+
+Function16dac: ; 16dac
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, " "
+ call ByteFill
+ hlcoord 7, 11
+ ld a, $31
+ ld [hFillBox], a
+ lb bc, 7, 7
+ predef FillBox
+ ret
+; 16dc7
+
+PhotoStudio: ; 16dc7
+ ld hl, .Text_AskWhichMon
+ call PrintText
+ callba SelectMonFromParty
+ jr c, .cancel
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .egg
+
+ ld hl, .Text_HoldStill
+ call PrintText
+ call DisableSpriteUpdates
+ callba PrintPartymon
+ call Function2b74
+ ld a, [hPrinter]
+ and a
+ jr nz, .cancel
+ ld hl, .Text_Presto
+ jr .print_text
+
+.cancel
+ ld hl, .Text_NoPicture
+ jr .print_text
+
+.egg
+ ld hl, .Text_Egg
+
+.print_text
+ call PrintText
+ ret
+; 16e04
+
+.Text_AskWhichMon: ; 0x16e04
+ ; Which #MON should I photo- graph?
+ text_jump UnknownText_0x1be024
+ db "@"
+; 0x16e09
+
+.Text_HoldStill: ; 0x16e09
+ ; All righty. Hold still for a bit.
+ text_jump UnknownText_0x1be047
+ db "@"
+; 0x16e0e
+
+.Text_Presto: ; 0x16e0e
+ ; Presto! All done. Come again, OK?
+ text_jump UnknownText_0x1be06a
+ db "@"
+; 0x16e13
+
+.Text_NoPicture: ; 0x16e13
+ ; Oh, no picture? Come again, OK?
+ text_jump UnknownText_0x1c0000
+ db "@"
+; 0x16e18
+
+.Text_Egg: ; 0x16e18
+ ; An EGG? My talent is worth more…
+ text_jump UnknownText_0x1c0021
+ db "@"
+; 0x16e1d
--- a/event/poke_seer.asm
+++ b/event/poke_seer.asm
@@ -1,12 +1,19 @@
-SEER_INTRO EQU 0
-SEER_CANT_TELL EQU 1
-SEER_MET_AT EQU 2
-SEER_TIME_LEVEL EQU 3
-SEER_TRADED EQU 4
-SEER_CANCEL EQU 5
-SEER_EGG EQU 6
-SEER_LEVEL_ONLY EQU 7
+ const_def
+ const SEER_INTRO
+ const SEER_CANT_TELL
+ const SEER_MET_AT
+ const SEER_TIME_LEVEL
+ const SEER_TRADED
+ const SEER_CANCEL
+ const SEER_EGG
+ const SEER_LEVEL_ONLY
+ const_def
+ const SEERACTION_MET
+ const SEERACTION_TRADED
+ const SEERACTION_CANT_TELL_1
+ const SEERACTION_CANT_TELL_2
+ const SEERACTION_LEVEL_ONLY
SpecialPokeSeer: ; 4f0bc
ld a, SEER_INTRO
@@ -44,7 +51,7 @@
SeerAction: ; 4f0ee
- ld a, [wd002]
+ ld a, [wSeerAction]
ld hl, SeerActions
rst JumpTable
ret
@@ -100,29 +107,30 @@
ld a, MON_CAUGHTDATA
call GetPartyParamLocation
ld a, [hli]
- ld [wd03b], a
+ ld [wSeerCaughtData], a
ld a, [hld]
- ld [wd03b + 1], a
+ ld [wSeerCaughtGender], a
or [hl]
- jr z, .asm_4f170
+ jr z, .error
- ld a, 1
- ld [wd002], a
+ ld a, SEERACTION_TRADED
+ ld [wSeerAction], a
ld a, MON_ID
call GetPartyParamLocation
ld a, [PlayerID]
cp [hl]
- jr nz, .asm_4f15f
+ jr nz, .traded
inc hl
ld a, [PlayerID + 1]
- jr nz, .asm_4f15f
+ ; cp [hl]
+ jr nz, .traded
- ld a, 0
- ld [wd002], a
+ ld a, SEERACTION_MET
+ ld [wSeerAction], a
-.asm_4f15f
+.traded
call GetCaughtLevel
call GetCaughtOT
call GetCaughtName
@@ -131,9 +139,9 @@
and a
ret
-.asm_4f170
- ld a, 2
- ld [wd002], a
+.error
+ ld a, SEERACTION_CANT_TELL_1
+ ld [wSeerAction], a
ret
; 4f176
@@ -142,7 +150,7 @@
ld hl, PartyMonNicknames
ld bc, PKMN_NAME_LENGTH
call AddNTimes
- ld de, wd003
+ ld de, wSeerNickname
ld bc, PKMN_NAME_LENGTH
call CopyBytes
ret
@@ -150,12 +158,12 @@
GetCaughtLevel: ; 4f18c
ld a, "@"
- ld hl, wd036
+ ld hl, wSeerCaughtLevelString
ld bc, 4
call ByteFill
; caught level
- ld a, [wd03b]
+ ld a, [wSeerCaughtData]
and $3f
jr z, .unknown
cp 1 ; hatched from an egg
@@ -163,15 +171,15 @@
ld a, 5 ; egg hatch level
- ld [wd038 + 2], a
- ld hl, wd036
- ld de, wd038 + 2
+ ld [wSeerCaughtLevel], a
+ ld hl, wSeerCaughtLevelString
+ ld de, wSeerCaughtLevel
lb bc, PRINTNUM_RIGHTALIGN | 1, 3
call PrintNum
ret
.unknown
- ld de, wd036
+ ld de, wSeerCaughtLevelString
ld hl, .unknown_level
ld bc, 4
call CopyBytes
@@ -183,7 +191,7 @@
; 4f1c5
GetCaughtTime: ; 4f1c5
- ld a, [wd03b]
+ ld a, [wSeerCaughtData]
and $c0
jr z, .none
@@ -194,13 +202,13 @@
call GetNthString
ld d, h
ld e, l
- ld hl, wd01f
+ ld hl, wSeerTimeOfDay
call CopyName2
and a
ret
.none
- ld de, wd01f
+ ld de, wSeerTimeOfDay
call UnknownCaughtData
ret
; 4f1e6
@@ -213,7 +221,7 @@
UnknownCaughtData: ; 4f1f8
ld hl, .unknown
- ld bc, $000b
+ ld bc, NAME_LENGTH
call CopyBytes
ret
; 4f202
@@ -223,35 +231,35 @@
; 4f20a
GetCaughtLocation: ; 4f20a
- ld a, [wd03b + 1]
+ ld a, [wSeerCaughtGender]
and $7f
- jr z, .asm_4f22e
+ jr z, .Unknown
cp $7f
- jr z, .asm_4f234
+ jr z, .event
cp $7e
- jr z, .asm_4f23b
+ jr z, .fail
ld e, a
callba GetLandmarkName
ld hl, StringBuffer1
- ld de, wd00e
- ld bc, $0011
+ ld de, wSeerCaughtLocation
+ ld bc, 17
call CopyBytes
and a
ret
-.asm_4f22e
- ld de, wd00e
+.Unknown
+ ld de, wSeerCaughtLocation
jp UnknownCaughtData
-.asm_4f234
- ld a, $4
- ld [wd002], a
+.event
+ ld a, SEERACTION_LEVEL_ONLY
+ ld [wSeerAction], a
scf
ret
-.asm_4f23b
- ld a, $3
- ld [wd002], a
+.fail
+ ld a, SEERACTION_CANT_TELL_2
+ ld [wSeerAction], a
scf
ret
; 4f242
@@ -261,17 +269,19 @@
ld hl, PartyMonOT
ld bc, NAME_LENGTH
call AddNTimes
- ld de, wd02a
- ld bc, $000b
+ ld de, wSeerOTName
+ ld bc, NAME_LENGTH
call CopyBytes
+
+; this routine is useless in Western localizations
ld hl, .male
- ld a, [wd03b + 1]
+ ld a, [wSeerCaughtGender]
bit 7, a
- jr z, .asm_4f264
+ jr z, .got_grammar
ld hl, .female
-.asm_4f264
- ld de, wd034 + 1
+.got_grammar
+ ld de, wSeerOTNameGrammar
ld a, "@"
ld [de], a
ret
@@ -360,7 +370,7 @@
SeerAdvice: ; 4f2b4
ld a, MON_LEVEL
call GetPartyParamLocation
- ld a, [wd038 + 2]
+ ld a, [wSeerCaughtLevel]
ld c, a
ld a, [hl]
sub c
--- a/event/unown.asm
+++ b/event/unown.asm
@@ -124,7 +124,7 @@
ld [hBGMapMode], a
call MenuBox
call UpdateSprites
- call Function321c
+ call ApplyTilemap
call MenuBoxCoord2Tile
inc hl
ld d, $0
--- a/event/whiteout.asm
+++ b/event/whiteout.asm
@@ -37,12 +37,12 @@
call ClearScreen
call Function3200
call HideSprites
- call Function4f0
+ call RotateThreePalettesLeft
ret
; 1250a
BattleBGMap: ; 1250a
- ld b, $0
+ ld b, SCGB_00
call GetSGBLayout
call SetPalettes
ret
--- /dev/null
+++ b/gfx/font.asm
@@ -1,0 +1,236 @@
+FontExtra:
+INCBIN "gfx/misc/font_extra.2bpp"
+
+Font:
+INCBIN "gfx/misc/font.1bpp"
+
+FontBattleExtra:
+INCBIN "gfx/misc/font_battle_extra.2bpp"
+
+Frames: ; f8800
+INCBIN "gfx/frames/1.1bpp"
+INCBIN "gfx/frames/2.1bpp"
+INCBIN "gfx/frames/3.1bpp"
+INCBIN "gfx/frames/4.1bpp"
+INCBIN "gfx/frames/5.1bpp"
+INCBIN "gfx/frames/6.1bpp"
+INCBIN "gfx/frames/7.1bpp"
+INCBIN "gfx/frames/8.1bpp"
+INCBIN "gfx/frames/9.1bpp"
+; f89b0
+
+; TODO: Various misc graphics here.
+
+GFX_f89b0: ; f89b0
+INCBIN "gfx/unknown/0f89b0.2bpp"
+; f8a90
+
+ShinyIcon: ; f8a90
+INCBIN "gfx/stats/shiny.2bpp"
+
+GFX_f8aa0: ; f8aa0
+INCBIN "gfx/unknown/0f8aa0.2bpp"
+; f8ac0
+
+EnemyHPBarBorderGFX: ; f8ac0
+INCBIN "gfx/battle/enemy_hp_bar_border.1bpp"
+; f8ae0
+
+HPExpBarBorderGFX: ; f8ae0
+INCBIN "gfx/battle/hp_exp_bar_border.1bpp"
+; f8b10
+
+ExpBarGFX: ; f8b10
+INCBIN "gfx/battle/expbar.2bpp"
+; f8ba0
+
+TownMapGFX: ; f8ba0
+INCBIN "gfx/misc/town_map.2bpp.lz"
+; f8ea4
+
+GFX_f8ea4: ; unused
+INCBIN "gfx/unknown/0f8ea4.2bpp"
+; f8f24
+
+OverworldPhoneIconGFX: ; f8f24
+INCBIN "gfx/mobile/overworld_phone_icon.2bpp"
+; f8f34
+
+GFX_f8f34: ; unused
+INCBIN "gfx/unknown/0f8f34.2bpp"
+; f9204
+
+TextBoxSpaceGFX: ; f9204
+INCBIN "gfx/frames/space.2bpp"
+; f9214
+
+MobilePhoneTilesGFX: ; f9214
+INCBIN "gfx/mobile/phone_tiles.2bpp"
+; f9344
+
+MapEntryFrameGFX: ; f9344
+INCBIN "gfx/frames/map_entry_sign.2bpp"
+; f9424
+
+GFX_f9424: ; f9424
+INCBIN "gfx/unknown/0f9424.2bpp"
+; f9434
+
+Footprints: ; f9434
+INCBIN "gfx/misc/footprints.1bpp"
+; fb434
+
+; This and the following two functions are unreferenced.
+Unknown_fb434:
+ db 0
+
+Functionfb435: ; 4b435
+ ld a, [Unknown_fb434]
+ and a
+ jp nz, Get1bpp_2
+ jp Get1bpp
+; fb43f
+
+Functionfb43f: ; fb43f
+ ld a, [Unknown_fb434]
+ and a
+ jp nz, Get2bpp_2
+ jp Get2bpp
+; End unreferenced block
+; fb449
+
+_LoadStandardFont:: ; fb449
+ ld de, Font
+ ld hl, VTiles1
+ lb bc, BANK(Font), $80
+ ld a, [rLCDC]
+ bit 7, a
+ jp z, Copy1bpp
+
+ ld de, Font
+ ld hl, VTiles1
+ lb bc, BANK(Font), $20
+ call Get1bpp_2
+ ld de, Font + $20 * LEN_1BPP_TILE
+ ld hl, VTiles1 tile $20
+ lb bc, BANK(Font), $20
+ call Get1bpp_2
+ ld de, Font + $40 * LEN_1BPP_TILE
+ ld hl, VTiles1 tile $40
+ lb bc, BANK(Font), $20
+ call Get1bpp_2
+ ld de, Font + $60 * LEN_1BPP_TILE
+ ld hl, VTiles1 tile $60
+ lb bc, BANK(Font), $20
+ call Get1bpp_2
+ ret
+; fb48a
+
+_LoadFontsExtra1:: ; fb48a
+ ld de, MobilePhoneTilesGFX
+ ld hl, VTiles2 tile $60
+ lb bc, BANK(MobilePhoneTilesGFX), 1
+ call Get1bpp_2
+ ld de, OverworldPhoneIconGFX
+ ld hl, VTiles2 tile $62
+ lb bc, BANK(OverworldPhoneIconGFX), 1
+ call Get2bpp_2
+ ld de, FontExtra + 3 * LEN_2BPP_TILE
+ ld hl, VTiles2 tile $63
+ lb bc, BANK(FontExtra), $16
+ call Get2bpp_2
+ jr LoadFrame
+; fb4b0
+
+_LoadFontsExtra2:: ; fb4b0
+ ld de, GFX_f9424
+ ld hl, VTiles2 tile $61
+ ld b, BANK(GFX_f9424)
+ ld c, 1
+ call Get2bpp_2
+ ret
+; fb4be
+
+_LoadFontsBattleExtra:: ; fb4be
+ ld de, FontBattleExtra
+ ld hl, VTiles2 tile $60
+ lb bc, BANK(FontBattleExtra), $19
+ call Get2bpp_2
+ jr LoadFrame
+; fb4cc
+
+LoadFrame: ; fb4cc
+ ld a, [TextBoxFrame]
+ and 7
+ ld bc, TILES_PER_FRAME * LEN_1BPP_TILE
+ ld hl, Frames
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld hl, VTiles2 tile $79
+ lb bc, BANK(Frames), TILES_PER_FRAME
+ call Get1bpp_2
+ ld hl, VTiles2 tile $7f
+ ld de, TextBoxSpaceGFX
+ lb bc, BANK(TextBoxSpaceGFX), 1
+ call Get1bpp_2
+ ret
+; fb4f2
+
+LoadBattleFontsHPBar: ; fb4f2
+ ld de, FontBattleExtra
+ ld hl, VTiles2 tile $60
+ lb bc, BANK(FontBattleExtra), $c
+ call Get2bpp_2
+ ld hl, VTiles2 tile $70
+ ld de, FontBattleExtra + $10 * LEN_2BPP_TILE
+ lb bc, BANK(FontBattleExtra), 3
+ call Get2bpp_2
+ call LoadFrame
+
+LoadHPBar: ; fb50d
+ ld de, EnemyHPBarBorderGFX
+ ld hl, VTiles2 tile $6c
+ lb bc, BANK(EnemyHPBarBorderGFX), 4
+ call Get1bpp_2
+ ld de, HPExpBarBorderGFX
+ ld hl, VTiles2 tile $73
+ lb bc, BANK(HPExpBarBorderGFX), 6
+ call Get1bpp_2
+ ld de, ExpBarGFX
+ ld hl, VTiles2 tile $55
+ lb bc, BANK(ExpBarGFX), 9
+ call Get2bpp_2
+ ld de, MobilePhoneTilesGFX + 9 * LEN_2BPP_TILE
+ ld hl, VTiles2 tile $5e
+ lb bc, BANK(MobilePhoneTilesGFX), 2
+ call Get2bpp_2
+ ret
+; fb53e
+
+Functionfb53e: ; fb53e
+ call _LoadFontsBattleExtra
+ ld de, EnemyHPBarBorderGFX
+ ld hl, VTiles2 tile $6c
+ lb bc, BANK(EnemyHPBarBorderGFX), 4
+ call Get1bpp_2
+ ld de, HPExpBarBorderGFX
+ ld hl, VTiles2 tile $78
+ lb bc, BANK(HPExpBarBorderGFX), 1
+ call Get1bpp_2
+ ld de, HPExpBarBorderGFX + 3 * LEN_1BPP_TILE
+ ld hl, VTiles2 tile $76
+ lb bc, BANK(HPExpBarBorderGFX), 2
+ call Get1bpp_2
+ ld de, ExpBarGFX
+ ld hl, VTiles2 tile $55
+ lb bc, BANK(ExpBarGFX), 8
+ call Get2bpp_2
+
+Functionfb571: ; fb571
+ ld de, GFX_f89b0
+ ld hl, VTiles2 tile $31
+ lb bc, BANK(GFX_f89b0), $11
+ call Get2bpp_2
+ ret
+; fb57e
binary files /dev/null b/gfx/font/english.1bpp differ
binary files /dev/null b/gfx/font/french_german.1bpp differ
binary files /dev/null b/gfx/font/spanish_italian.1bpp differ
binary files /dev/null b/gfx/icon/mail2.2bpp differ
--- /dev/null
+++ b/gfx/mail.asm
@@ -1,0 +1,1098 @@
+ReadPartyMonMail: ; b9229
+ ld a, [CurPartyMon]
+ ld hl, sPartyMail
+ ld bc, MAIL_STRUCT_LENGTH
+ call AddNTimes
+ ld d, h
+ ld e, l
+ReadAnyMail: ; b9237
+ push de
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call LoadFontsExtra
+ pop de
+ push de
+ ld a, BANK(sPartyMail)
+ call GetSRAMBank
+ callba IsMailEuropean
+ call CloseSRAM
+ ld a, c
+ ld de, StandardEnglishFont
+ or a
+ jr z, .got_font
+ ld de, FrenchGermanFont
+ sub $3
+ jr c, .got_font
+ ld de, SpanishItalianFont
+
+.got_font
+ ld hl, VTiles1
+ lb bc, BANK(StandardEnglishFont), $80
+ call Get1bpp
+ pop de
+ call Functionb92b8
+ call EnableLCD
+ call WaitBGMap
+ ld a, [Buffer3]
+ ld e, a
+ callba Function8cb4
+ call SetPalettes
+ xor a
+ ld [hJoyPressed], a
+ call .loop
+ call ClearBGPalettes
+ call DisableLCD
+ call LoadStandardFont
+ jp EnableLCD
+
+.loop
+ call GetJoypad
+ ld a, [hJoyPressed]
+ and A_BUTTON | B_BUTTON | START
+ jr z, .loop
+ and START
+ jr nz, .pressed_start
+ ret
+
+.pressed_start
+ ld a, [wJumptableIndex]
+ push af
+ callab PrintMail ; printer
+ pop af
+ ld [wJumptableIndex], a
+ jr .loop
+; b92b8
+
+Functionb92b8: ; b92b8
+ ld h, d
+ ld l, e
+ push hl
+ ld a, $0
+ call GetSRAMBank
+ ld de, sPartyMon1MailAuthorID - sPartyMon1Mail
+ add hl, de
+ ld a, [hli]
+ ld [Buffer1], a
+ ld a, [hli]
+ ld [Buffer2], a
+ ld a, [hli]
+ ld [CurPartySpecies], a
+ ld b, [hl]
+ call CloseSRAM
+ ld hl, MailGFXPointers
+ ld c, 0
+.loop
+ ld a, [hli]
+ cp b
+ jr z, .got_pointer
+ cp -1
+ jr z, .invalid
+ inc c
+rept 2
+ inc hl
+endr
+ jr .loop
+
+.invalid
+ ld hl, MailGFXPointers
+ inc hl
+
+.got_pointer
+ ld a, c
+ ld [Buffer3], a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, .done
+ pop bc
+ push de
+ jp [hl]
+.done
+ ret
+; b92f8
+
+MailGFXPointers: ; b92f8
+ dbw FLOWER_MAIL, LoadFlowerMailGFX
+ dbw SURF_MAIL, LoadSurfMailGFX
+ dbw LITEBLUEMAIL, LoadLiteBlueMailGFX
+ dbw PORTRAITMAIL, LoadPortraitMailGFX
+ dbw LOVELY_MAIL, LoadLovelyMailGFX
+ dbw EON_MAIL, LoadEonMailGFX
+ dbw MORPH_MAIL, LoadMorphMailGFX
+ dbw BLUESKY_MAIL, LoadBlueSkyMailGFX
+ dbw MUSIC_MAIL, LoadMusicMailGFX
+ dbw MIRAGE_MAIL, LoadMirageMailGFX
+ db -1
+; b9317
+
+LoadSurfMailGFX: ; b9317
+ push bc
+ ld hl, VTiles2 tile $31
+ ld de, SurfMailBorderGFX
+ ld c, 8 * 8
+ call LoadMailGFX_Color2
+ ld de, MailLaprasGFX
+ ld c, 6 * 8
+ call LoadMailGFX_Color3
+ ld de, SurfMailWaveGFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color2
+ jr FinishLoadingSurfLiteBlueMailGFX
+
+LoadLiteBlueMailGFX: ; b9335
+ push bc
+ ld hl, VTiles2 tile $31
+ ld de, LiteBlueMailBorderGFX
+ ld c, 8 * 8
+ call LoadMailGFX_Color2
+ ld de, MailDratiniGFX
+ ld c, 6 * 8
+ call LoadMailGFX_Color3
+ ld de, PortraitMailUnderlineGFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color2
+
+FinishLoadingSurfLiteBlueMailGFX: ; b9351
+ ld de, SurfLiteBlueMailSmallShapesGFX
+ ld c, 2 * 8
+ call LoadMailGFX_Color2
+ ld c, 2 * 8
+ call LoadMailGFX_Color1
+ ld de, SurfLiteBlueMailLargeShapesGFX
+ ld c, 8 * 8
+ call LoadMailGFX_Color1
+ ld c, 8 * 8
+ call LoadMailGFX_Color2
+
+ call DrawMailBorder
+ hlcoord 2, 15
+ ld a, $3f
+ call Mail_Draw16TileRow
+ ld a, $39
+ hlcoord 15, 14
+ call Mail_Draw3x2Graphic
+ ld a, $44
+ hlcoord 2, 2
+ call Mail_Draw2x2Graphic
+ hlcoord 15, 11
+ call Mail_Draw2x2Graphic
+ ld a, $4c
+ hlcoord 3, 12
+ call Mail_Draw2x2Graphic
+ hlcoord 15, 2
+ call Mail_Draw2x2Graphic
+ ld a, $50
+ hlcoord 6, 3
+ call Mail_Draw2x2Graphic
+ ld a, $40
+ hlcoord 13, 2
+ ld [hli], a
+ hlcoord 6, 14
+ ld [hl], a
+ ld a, $41
+ hlcoord 4, 5
+ ld [hli], a
+ hlcoord 17, 5
+ ld [hli], a
+ hlcoord 13, 12
+ ld [hl], a
+ ld a, $42
+ hlcoord 9, 2
+ ld [hli], a
+ hlcoord 14, 5
+ ld [hli], a
+ hlcoord 3, 10
+ ld [hl], a
+ ld a, $43
+ hlcoord 6, 11
+ ld [hli], a
+ pop hl
+ jp MailGFX_PlaceMessage
+; b93d2
+
+LoadEonMailGFX: ; b93d2
+ push bc
+ ld hl, VTiles2 tile $31
+ ld de, EonMailBorder1GFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color2
+ ld de, EonMailBorder2GFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color1
+ ld de, EonMailBorder2GFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color1
+ ld de, EonMailBorder1GFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color2
+ ld de, EonMailBorder3GFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color2
+ ld de, MailEeveeGFX
+ ld c, 6 * 8
+ call LoadMailGFX_Color3
+ ld hl, VTiles2 tile $3d
+ ld de, MailLargeCircleGFX
+ ld c, 4 * 8
+ call LoadMailGFX_Color1
+ ld de, EonMailBorder2GFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color2
+
+ ld a, $31
+ hlcoord 0, 0
+ call Mail_Place18TileAlternatingRow
+ hlcoord 1, 17
+ call Mail_Place18TileAlternatingRow
+ ld a, $33
+ hlcoord 0, 1
+ call Mail_Place16TileAlternatingColumn
+ hlcoord 19, 0
+ call Mail_Place16TileAlternatingColumn
+ hlcoord 2, 15
+ ld a, $35
+ call Mail_Draw16TileRow
+ inc a
+ hlcoord 15, 14
+ call Mail_Draw3x2Graphic
+ call LovelyEonMail_PlaceIcons
+ pop hl
+ jp MailGFX_PlaceMessage
+; b944b
+
+LoadLovelyMailGFX: ; b944b
+ push bc
+ ld hl, VTiles2 tile $31
+ ld de, LovelyMailBorderGFX
+ ld c, 5 * 8
+ call LoadMailGFX_Color2
+ ld de, MailPoliwagGFX
+ ld c, 6 * 8
+ call LoadMailGFX_Color3
+ ld de, LovelyMailUnderlineGFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color2
+ ld de, LovelyMailLargeHeartGFX
+ ld c, 4 * 8
+ call LoadMailGFX_Color2
+ ld de, LovelyMailSmallHeartGFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color1
+
+ call DrawMailBorder2
+ hlcoord 2, 15
+ ld a, $3c
+ call Mail_Draw16TileRow
+ ld a, $36
+ hlcoord 15, 14
+ call Mail_Draw3x2Graphic
+ call LovelyEonMail_PlaceIcons
+ pop hl
+ jp MailGFX_PlaceMessage
+; b9491
+
+LovelyEonMail_PlaceIcons: ; b9491
+ ld a, $3d
+ hlcoord 2, 2
+ call Mail_Draw2x2Graphic
+ hlcoord 16, 2
+ call Mail_Draw2x2Graphic
+ hlcoord 9, 4
+ call Mail_Draw2x2Graphic
+ hlcoord 2, 11
+ call Mail_Draw2x2Graphic
+ hlcoord 6, 12
+ call Mail_Draw2x2Graphic
+ hlcoord 12, 11
+ call Mail_Draw2x2Graphic
+ ld a, $41
+ hlcoord 5, 4
+ ld [hl], a
+ hlcoord 6, 2
+ ld [hl], a
+ hlcoord 12, 4
+ ld [hl], a
+ hlcoord 14, 2
+ ld [hl], a
+ hlcoord 3, 13
+ ld [hl], a
+ hlcoord 9, 11
+ ld [hl], a
+ hlcoord 16, 12
+ ld [hl], a
+ ret
+; b94d6
+
+LoadMorphMailGFX: ; b94d6
+ push bc
+ ld hl, VTiles2 tile $31
+ ld bc, 5 * 8
+ call MailGFX_GenerateMonochromeTilesColor2
+ ld de, MorphMailBorderGFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color2
+ ld de, MorphMailBorderCorner1GFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color2
+ ld de, MorphMailBorderCorner2GFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color2
+ ld de, EonMailBorder1GFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color1
+ ld de, MorphMailDividerGFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color2
+ ld de, MailDittoGFX
+ ld c, 6 * 8
+ call LoadMailGFX_Color3
+ call DrawMailBorder2
+ ld a, $31
+ hlcoord 1, 1
+ call Mail_Draw2x2Graphic
+ hlcoord 17, 15
+ call Mail_Draw2x2Graphic
+ hlcoord 1, 3
+ ld [hl], a
+ hlcoord 3, 1
+ ld [hl], a
+ hlcoord 16, 16
+ ld [hl], a
+ hlcoord 18, 14
+ ld [hl], a
+ ld a, $36
+ hlcoord 1, 4
+ ld [hl], a
+ hlcoord 2, 3
+ ld [hl], a
+ hlcoord 3, 2
+ ld [hl], a
+ hlcoord 4, 1
+ ld [hl], a
+ inc a
+ hlcoord 15, 16
+ ld [hl], a
+ hlcoord 16, 15
+ ld [hl], a
+ hlcoord 17, 14
+ ld [hl], a
+ hlcoord 18, 13
+ ld [hl], a
+ inc a
+ hlcoord 2, 15
+ ld b, $e
+ call Mail_DrawRowLoop
+ inc a
+ hlcoord 2, 11
+ call Mail_Draw16TileRow
+ hlcoord 2, 5
+ call Mail_Draw16TileRow
+ inc a
+ hlcoord 6, 1
+ call Mail_Draw13TileRow
+ hlcoord 1, 16
+ call Mail_Draw13TileRow
+ inc a
+ hlcoord 3, 13
+ call Mail_Draw3x2Graphic
+ pop hl
+ jp MailGFX_PlaceMessage
+; b9582
+
+LoadBlueSkyMailGFX: ; b9582
+ push bc
+ ld hl, VTiles2 tile $31
+ ld de, EonMailBorder1GFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color2
+ ld a, $ff
+ ld bc, 1 tiles
+ call ByteFill
+ ld de, BlueSkyMailGrassGFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color3
+ ld de, MailDragoniteGFX
+ ld c, 23 * 8
+ call LoadMailGFX_Color3
+ ld de, MailCloudGFX
+ ld c, 6 * 8
+ call LoadMailGFX_Color1
+ ld de, FlowerMailSenderUnderlineGFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color1
+ ld de, MailCloudGFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color1
+ ld de, MailCloud2GFX
+ ld c, 2 * 8
+ call LoadMailGFX_Color1
+ ld de, MailCloud3GFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color1
+
+ ld a, $31
+ hlcoord 0, 0
+ call Mail_DrawFullWidthBorder
+ hlcoord 0, 1
+ call Mail_DrawLeftRightBorder
+ hlcoord 19, 1
+ call Mail_DrawLeftRightBorder
+ inc a
+ hlcoord 0, 17
+ call Mail_DrawFullWidthBorder
+ inc a
+ hlcoord 0, 16
+ call Mail_DrawFullWidthBorder
+ inc a
+ hlcoord 2, 2
+ call Mail_Place6TileRow
+ hlcoord 3, 3
+ call Mail_Place6TileRow
+ hlcoord 4, 4
+ call Mail_Place6TileRow
+ dec hl
+ ld [hl], $7f
+ dec a
+ hlcoord 15, 14
+ call Mail_Draw2x2Graphic
+ add $4
+ hlcoord 15, 16
+ ld [hli], a
+ inc a
+ ld [hl], a
+ inc a
+ push af
+ hlcoord 12, 1
+ call Mail_Draw3x2Graphic
+ pop af
+ hlcoord 15, 4
+ call Mail_Draw3x2Graphic
+ inc a
+ hlcoord 2, 11
+ call Mail_Draw16TileRow
+ inc a
+ hlcoord 10, 3
+ call Mail_Draw2x2Graphic
+ pop hl
+ jp MailGFX_PlaceMessage
+; b9636
+
+Mail_Place6TileRow: ; b9636
+ ld b, $6
+.loop
+ ld [hli], a
+ inc a
+ dec b
+ jr nz, .loop
+ ret
+; b963e
+
+LoadFlowerMailGFX: ; b963e
+ push bc
+ ld hl, VTiles2 tile $31
+ ld de, FlowerMailBorderGFX
+ ld c, 8 * 8
+ call LoadMailGFX_Color1
+ ld de, MailOddishGFX
+ ld c, 4 * 8
+ call LoadMailGFX_Color3
+ ld de, FlowerMailSenderUnderlineGFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color2
+ ld de, FlowerMailLargeFlowerGFX
+ ld c, 4 * 8
+ call LoadMailGFX_Color1
+ ld c, 4 * 8
+ call LoadMailGFX_Color2
+
+ call DrawMailBorder
+ hlcoord 2, 15
+ ld a, $3d ; underline
+ call Mail_Draw16TileRow
+ ld a, $39 ; oddish
+ hlcoord 16, 13
+ call Mail_Draw2x2Graphic
+ hlcoord 2, 13
+ call Mail_Draw2x2Graphic
+ ld a, $3e
+ hlcoord 2, 2
+ call Mail_Draw2x2Graphic
+ hlcoord 5, 3
+ call Mail_Draw2x2Graphic
+ hlcoord 10, 2
+ call Mail_Draw2x2Graphic
+ hlcoord 16, 3
+ call Mail_Draw2x2Graphic
+ hlcoord 5, 11
+ call Mail_Draw2x2Graphic
+ hlcoord 16, 10
+ call Mail_Draw2x2Graphic
+ ld a, $42
+ hlcoord 3, 4
+ call Mail_Draw2x2Graphic
+ hlcoord 12, 3
+ call Mail_Draw2x2Graphic
+ hlcoord 14, 2
+ call Mail_Draw2x2Graphic
+ hlcoord 2, 10
+ call Mail_Draw2x2Graphic
+ hlcoord 14, 11
+ call Mail_Draw2x2Graphic
+ pop hl
+ jp MailGFX_PlaceMessage
+; b96ca
+
+LoadPortraitMailGFX: ; b96ca
+ push bc
+ ld hl, VTiles2 tile $31
+ ld de, PortraitMailBorderGFX
+ ld c, 5 * 8
+ call LoadMailGFX_Color2
+ ld de, PortraitMailUnderlineGFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color2
+ ld hl, VTiles2 tile $3d
+ ld de, PortraitMailLargePokeballGFX
+ ld c, 4 * 8
+ call LoadMailGFX_Color1
+ ld de, PortraitMailSmallPokeballGFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color2
+
+ call DrawMailBorder2
+ hlcoord 8, 15
+ ld a, $36
+ ld b, $a
+ call Mail_DrawRowLoop
+ call LovelyEonMail_PlaceIcons
+ ld a, $1
+ ld [UnownLetter], a
+ hlcoord 1, 10
+ call PrepMonFrontpic
+ pop hl
+ jp MailGFX_PlaceMessage
+; b9710
+
+LoadMusicMailGFX: ; b9710
+ push bc
+ ld hl, VTiles2 tile $31
+ ld de, MusicMailBorderGFX
+ ld c, 4 * 8
+ call LoadMailGFX_Color2
+ ld de, MorphMailBorderCorner2GFX
+ ld c, 2 * 8
+ call LoadMailGFX_Color2
+ ld de, MailNatuGFX
+ ld c, 6 * 8
+ call LoadMailGFX_Color3
+ xor a
+ ld bc, 1 tiles
+ call ByteFill
+ ld de, MusicMailLargeNoteGFX
+ ld c, 3 * 8
+ call LoadMailGFX_Color1
+ ld de, MusicMailSmallNoteGFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color1
+
+ ld a, $31
+ hlcoord 0, 0
+ call Mail_Place18TileAlternatingRow
+ hlcoord 1, 17
+ call Mail_Place18TileAlternatingRow
+ ld a, $33
+ hlcoord 0, 1
+ call Mail_Place16TileAlternatingColumn
+ hlcoord 19, 0
+ call Mail_Place16TileAlternatingColumn
+ ld a, $35
+ hlcoord 2, 15
+ call Mail_Place14TileAlternatingRow
+ ld a, $37
+ hlcoord 15, 14
+ call Mail_Draw3x2Graphic
+ call LovelyEonMail_PlaceIcons
+ pop hl
+ jp MailGFX_PlaceMessage
+; b9776
+
+LoadMirageMailGFX: ; b9776
+ push bc
+ ld hl, VTiles2 tile $31
+ ld bc, 5 * 8
+ call MailGFX_GenerateMonochromeTilesColor2
+ ld de, BlueSkyMailGrassGFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color2
+ ld de, MailMewGFX
+ ld c, 18 * 8
+ call LoadMailGFX_Color2
+ ld de, MirageMailTopDividerGFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color1
+ ld de, MirageMailBottomDividerGFX
+ ld c, 1 * 8
+ call LoadMailGFX_Color1
+
+ call DrawMailBorder2
+ ld a, $36
+ hlcoord 1, 16
+ call Mail_DrawTopBottomBorder
+ inc a
+ hlcoord 15, 14
+ call Mail_Draw3x2Graphic
+ inc a
+ hlcoord 15, 16
+ ld [hli], a
+ inc a
+ ld [hl], a
+ ld a, $3f
+ hlcoord 1, 1
+ call Mail_Place18TileAlternatingRow
+ ld a, $41
+ hlcoord 0, 2
+ call Mail_Place14TileAlternatingColumn
+ ld a, $43
+ hlcoord 19, 2
+ call Mail_Place14TileAlternatingColumn
+ ld a, $45
+ hlcoord 0, 1
+ ld [hl], a
+ inc a
+ hlcoord 19, 1
+ ld [hl], a
+ inc a
+ hlcoord 0, 16
+ ld [hl], a
+ inc a
+ hlcoord 19, 16
+ ld [hl], a
+ inc a
+ hlcoord 2, 5
+ call Mail_Draw16TileRow
+ inc a
+ hlcoord 2, 11
+ call Mail_Draw16TileRow
+ pop hl
+ jp MailGFX_PlaceMessage
+; b97f8
+
+MailGFX_GenerateMonochromeTilesColor2: ; b97f8
+.loop
+ xor a
+ ld [hli], a
+ ld a, $ff
+ ld [hli], a
+ dec bc
+ ld a, b
+ or c
+ jr nz, .loop
+ ret
+; b9803
+
+MailGFX_PlaceMessage: ; b9803
+ ld bc, MAIL_STRUCT_LENGTH
+ ld de, wd002
+ ld a, $0
+ call GetSRAMBank
+ call CopyBytes
+ call CloseSRAM
+ ld hl, wd002 + sPartyMon1MailAuthor - sPartyMon1Mail
+ ld de, wd050
+ ld bc, NAME_LENGTH - 1
+ call CopyBytes
+ ld a, "@"
+ ld [wd002 + sPartyMon1MailAuthor - sPartyMon1Mail], a
+ ld [wd050 + NAME_LENGTH - 1], a
+ ld de, wd002
+ hlcoord 2, 7
+ call PlaceString
+ ld de, wd050
+ ld a, [de]
+ and a
+ ret z
+ ld a, [Buffer3]
+ hlcoord 8, 14
+ cp $3 ; PORTRAITMAIL
+ jr z, .place_author
+ hlcoord 6, 14
+ cp $6 ; MORPH_MAIL
+ jr z, .place_author
+ hlcoord 5, 14
+
+.place_author
+ jp PlaceString
+; b984e
+
+Functionb984e: ; b984e
+.loop
+ ld a, [hl]
+ xor $ff
+ ld [hli], a
+ dec bc
+ ld a, b
+ or c
+ jr nz, .loop
+ ret
+; b9858
+
+DrawMailBorder: ; b9858
+ hlcoord 0, 0
+ ld a, $31
+ ld [hli], a
+ inc a
+ call Mail_DrawTopBottomBorder
+ inc a
+ ld [hli], a
+ inc a
+ call Mail_DrawLeftRightBorder
+ ld a, $36
+ ld [hli], a
+ inc a
+ call Mail_DrawTopBottomBorder
+ hlcoord 19, 1
+ ld a, $35
+ call Mail_DrawLeftRightBorder
+ ld a, $38
+ ld [hl], a
+ ret
+; b987b
+
+DrawMailBorder2: ; b987b
+ hlcoord 0, 0
+ ld a, $31
+ ld [hli], a
+ inc a
+ call Mail_DrawTopBottomBorder
+ ld [hl], $31
+ inc hl
+ inc a
+ call Mail_DrawLeftRightBorder
+ ld [hl], $31
+ inc hl
+ inc a
+ call Mail_DrawTopBottomBorder
+ hlcoord 19, 1
+ ld a, $35
+ call Mail_DrawLeftRightBorder
+ ld [hl], $31
+ ret
+; b989e
+
+Mail_Place14TileAlternatingRow: ; b989e
+ push af
+ ld b, 14 / 2
+ jr Mail_PlaceAlternatingRow
+
+Mail_Place16TileAlternatingRow: ; b98a3
+ push af
+ ld b, 16 / 2
+ jr Mail_PlaceAlternatingRow
+
+Mail_Place18TileAlternatingRow: ; b98a8
+ push af
+ ld b, 18 / 2
+
+Mail_PlaceAlternatingRow: ; b98ab
+.loop
+ ld [hli], a
+ inc a
+ ld [hli], a
+ dec a
+ dec b
+ jr nz, .loop
+ ld [hl], a
+ pop af
+ ret
+; b98b5
+
+Mail_Place14TileAlternatingColumn: ; b98b5
+ push af
+ ld b, 14 / 2
+ jr Mail_PlaceAlternatingColumn
+
+Mail_Place16TileAlternatingColumn: ; b98ba
+ push af
+ ld b, 16 / 2
+
+Mail_PlaceAlternatingColumn: ; b98bd
+.loop
+ ld [hl], a
+ ld de, SCREEN_WIDTH
+ add hl, de
+ inc a
+ ld [hl], a
+ add hl, de
+ dec a
+ dec b
+ jr nz, .loop
+ ld [hl], a
+ pop af
+ ret
+; b98cc
+
+Mail_Draw7TileRow: ; b98cc
+ ld b, $7
+ jr Mail_DrawRowLoop
+
+Mail_Draw13TileRow: ; b98d0
+ ld b, $d
+ jr Mail_DrawRowLoop
+
+Mail_Draw16TileRow: ; b98d4
+ ld b, $10
+ jr Mail_DrawRowLoop
+
+Mail_DrawTopBottomBorder: ; b98d8
+ ld b, SCREEN_WIDTH - 2
+ jr Mail_DrawRowLoop
+
+Mail_DrawFullWidthBorder: ; b98dc
+ ld b, SCREEN_WIDTH
+
+Mail_DrawRowLoop: ; b98de
+.loop
+ ld [hli], a
+ dec b
+ jr nz, .loop
+ ret
+; b98e3
+
+Mail_DrawLeftRightBorder: ; b98e3
+ ld b, SCREEN_HEIGHT - 2
+ ld de, SCREEN_WIDTH
+.loop
+ ld [hl], a
+ add hl, de
+ dec b
+ jr nz, .loop
+ ret
+; b98ee
+
+Mail_Draw2x2Graphic: ; b98ee
+ push af
+ ld [hli], a
+ inc a
+ ld [hl], a
+ ld bc, SCREEN_WIDTH - 1
+ add hl, bc
+ inc a
+ ld [hli], a
+ inc a
+ ld [hl], a
+ pop af
+ ret
+; b98fc
+
+Mail_Draw3x2Graphic: ; b98fc
+ ld [hli], a
+ inc a
+ ld [hli], a
+ inc a
+ ld [hl], a
+ ld bc, SCREEN_WIDTH - 2
+ add hl, bc
+ inc a
+ ld [hli], a
+ inc a
+ ld [hli], a
+ inc a
+ ld [hl], a
+ ret
+; b990c
+
+LoadMailGFX_Color1: ; b990c
+.loop
+ ld a, [de]
+ inc de
+ ld [hli], a
+ xor a
+ ld [hli], a
+ dec c
+ jr nz, .loop
+ ret
+; b9915
+
+LoadMailGFX_Color2: ; b9915
+.loop
+ xor a
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec c
+ jr nz, .loop
+ ret
+; b991e
+
+LoadMailGFX_Color3: ; b991e
+.loop
+ ld a, [de]
+ inc de
+rept 2
+ ld [hli], a
+endr
+ dec c
+ jr nz, .loop
+ ret
+; b9926
+
+MorphMailDividerGFX: ; b9926
+INCBIN "gfx/mail/0b9926.1bpp"
+
+BlueSkyMailGrassGFX: ; b992e
+INCBIN "gfx/mail/0b992e.1bpp"
+
+PortraitMailSmallPokeballGFX: ; b9936
+INCBIN "gfx/mail/0b9936.1bpp"
+
+MorphMailBorderCorner2GFX: ; b993e
+INCBIN "gfx/mail/0b993e.1bpp"
+
+MusicMailSmallNoteGFX: ; b9946
+INCBIN "gfx/mail/0b9946.1bpp"
+
+SurfMailWaveGFX: ; b994e
+INCBIN "gfx/mail/0b994e.1bpp"
+
+PortraitMailUnderlineGFX: ; b995e
+INCBIN "gfx/mail/0b995e.1bpp"
+
+LovelyMailUnderlineGFX: ; b9966
+INCBIN "gfx/mail/0b9966.1bpp"
+
+LovelyMailSmallHeartGFX: ; b996e
+INCBIN "gfx/mail/0b996e.1bpp"
+
+SurfLiteBlueMailSmallShapesGFX: ; b9976
+INCBIN "gfx/mail/0b9976.1bpp"
+
+EonMailBorder1GFX: ; b997e
+INCBIN "gfx/mail/0b997e.1bpp"
+
+EonMailBorder2GFX: ; b998e
+INCBIN "gfx/mail/0b998e.1bpp"
+
+MailNatuGFX: ; b9996
+INCBIN "gfx/mail/0b9996.1bpp"
+
+MailDratiniGFX: ; b99c6
+INCBIN "gfx/mail/0b99c6.1bpp"
+
+MailPoliwagGFX: ; b99f6
+INCBIN "gfx/mail/0b99f6.1bpp"
+
+MailLaprasGFX: ; b9a26
+INCBIN "gfx/mail/0b9a26.1bpp"
+
+MailEeveeGFX: ; b9a56
+INCBIN "gfx/mail/0b9a56.1bpp"
+
+MailDittoGFX: ; b9a86
+INCBIN "gfx/mail/0b9a86.1bpp"
+
+MailMewGFX: ; b9ab6
+INCBIN "gfx/mail/0b9ab6.1bpp"
+
+MailDragoniteGFX: ; b9b46
+INCBIN "gfx/mail/0b9b46.1bpp"
+
+MailSentretGFX: ; b9bce
+INCBIN "gfx/mail/0b9bce.1bpp"
+
+MailUnusedGrassGFX: ; b9bee
+INCBIN "gfx/mail/0b9bee.1bpp"
+
+PortraitMailLargePokeballGFX: ; b9bfe
+INCBIN "gfx/mail/0b9bfe.1bpp"
+
+MailOddishGFX: ; b9c1e
+INCBIN "gfx/mail/0b9c1e.1bpp"
+
+SurfLiteBlueMailLargeShapesGFX: ; b9c3e
+INCBIN "gfx/mail/0b9c3e.1bpp"
+
+LovelyMailLargeHeartGFX: ; b9c5e
+INCBIN "gfx/mail/0b9c5e.1bpp"
+
+MorphMailBorderCorner1GFX: ; b9c7e
+INCBIN "gfx/mail/0b9c7e.1bpp"
+
+MorphMailBorderGFX: ; b9c96
+INCBIN "gfx/mail/0b9c96.1bpp"
+
+MailLargeCircleGFX: ; b9c9e
+INCBIN "gfx/mail/0b9c9e.1bpp"
+
+FlowerMailLargeFlowerGFX: ; b9cbe
+INCBIN "gfx/mail/0b9cbe.1bpp"
+
+FlowerMailSmallFlowerGFX: ; b9cde
+; indirectly referenced
+INCBIN "gfx/mail/0b9cde.1bpp"
+
+MusicMailLargeNoteGFX: ; b9cfe
+INCBIN "gfx/mail/0b9cfe.1bpp"
+
+MailCloudGFX: ; b9d16
+INCBIN "gfx/mail/0b9d16.1bpp"
+
+MailCloud2GFX: ; b9d26
+INCBIN "gfx/mail/0b9d26.1bpp"
+
+MailCloud3GFX: ; b9d3e
+INCBIN "gfx/mail/0b9d3e.1bpp"
+
+SurfMailBorderGFX: ; b9d46
+INCBIN "gfx/mail/0b9d46.1bpp"
+
+EonMailBorder3GFX: ; b9d76
+INCBIN "gfx/mail/0b9d76.1bpp"
+
+FlowerMailBorderGFX: ; b9d86
+INCBIN "gfx/mail/0b9d86.1bpp"
+
+FlowerMailSenderUnderlineGFX: ; b9db6
+INCBIN "gfx/mail/0b9db6.1bpp"
+
+LiteBlueMailBorderGFX: ; b9dc6
+INCBIN "gfx/mail/0b9dc6.1bpp"
+
+MirageMailTopDividerGFX: ; b9dce
+INCBIN "gfx/mail/0b9dce.1bpp"
+
+MirageMailBottomDividerGFX: ; b9df6
+INCBIN "gfx/mail/0b9df6.1bpp"
+
+MusicMailBorderGFX: ; b9e06
+INCBIN "gfx/mail/0b9e06.1bpp"
+
+LovelyMailBorderGFX: ; b9e26
+INCBIN "gfx/mail/0b9e26.1bpp"
+
+PortraitMailBorderGFX: ; b9e4e
+INCBIN "gfx/mail/0b9e4e.1bpp"
+
+
+ItemIsMail: ; b9e76
+ ld a, d
+ ld hl, .items
+ ld de, 1
+ jp IsInArray
+; b9e80
+
+.items
+ db FLOWER_MAIL
+ db SURF_MAIL
+ db LITEBLUEMAIL
+ db PORTRAITMAIL
+ db LOVELY_MAIL
+ db EON_MAIL
+ db MORPH_MAIL
+ db BLUESKY_MAIL
+ db MUSIC_MAIL
+ db MIRAGE_MAIL
+ db -1
+; b9e8b
binary files /dev/null b/gfx/mail/0b9926.1bpp differ
--- /dev/null
+++ b/gfx/mail/0b992e.1bpp
@@ -1,0 +1,1 @@
+�HLm}
\ No newline at end of file
--- /dev/null
+++ b/gfx/mail/0b9936.1bpp
@@ -1,0 +1,1 @@
+<~���~<
\ No newline at end of file
binary files /dev/null b/gfx/mail/0b993e.1bpp differ
--- /dev/null
+++ b/gfx/mail/0b9946.1bpp
@@ -1,0 +1,1 @@
+p
\ No newline at end of file
binary files /dev/null b/gfx/mail/0b994e.1bpp differ
binary files /dev/null b/gfx/mail/0b995e.1bpp differ
binary files /dev/null b/gfx/mail/0b9966.1bpp differ
binary files /dev/null b/gfx/mail/0b996e.1bpp differ
binary files /dev/null b/gfx/mail/0b9976.1bpp differ
binary files /dev/null b/gfx/mail/0b997e.1bpp differ
--- /dev/null
+++ b/gfx/mail/0b998e.1bpp
@@ -1,0 +1,1 @@
+<~���
\ No newline at end of file
binary files /dev/null b/gfx/mail/0b9996.1bpp differ
binary files /dev/null b/gfx/mail/0b99c6.1bpp differ
binary files /dev/null b/gfx/mail/0b99f6.1bpp differ
binary files /dev/null b/gfx/mail/0b9a26.1bpp differ
binary files /dev/null b/gfx/mail/0b9a56.1bpp differ
binary files /dev/null b/gfx/mail/0b9a86.1bpp differ
binary files /dev/null b/gfx/mail/0b9ab6.1bpp differ
binary files /dev/null b/gfx/mail/0b9b46.1bpp differ
binary files /dev/null b/gfx/mail/0b9bce.1bpp differ
--- /dev/null
+++ b/gfx/mail/0b9bee.1bpp
@@ -1,0 +1,1 @@
+�KKm}�������
\ No newline at end of file
binary files /dev/null b/gfx/mail/0b9bfe.1bpp differ
binary files /dev/null b/gfx/mail/0b9c1e.1bpp differ
binary files /dev/null b/gfx/mail/0b9c3e.1bpp differ
binary files /dev/null b/gfx/mail/0b9c5e.1bpp differ
binary files /dev/null b/gfx/mail/0b9c7e.1bpp differ
--- /dev/null
+++ b/gfx/mail/0b9c96.1bpp
@@ -1,0 +1,1 @@
+������
\ No newline at end of file
binary files /dev/null b/gfx/mail/0b9c9e.1bpp differ
binary files /dev/null b/gfx/mail/0b9cbe.1bpp differ
binary files /dev/null b/gfx/mail/0b9cde.1bpp differ
binary files /dev/null b/gfx/mail/0b9cfe.1bpp differ
binary files /dev/null b/gfx/mail/0b9d16.1bpp differ
binary files /dev/null b/gfx/mail/0b9d26.1bpp differ
binary files /dev/null b/gfx/mail/0b9d3e.1bpp differ
binary files /dev/null b/gfx/mail/0b9d46.1bpp differ
binary files /dev/null b/gfx/mail/0b9d76.1bpp differ
binary files /dev/null b/gfx/mail/0b9d86.1bpp differ
binary files /dev/null b/gfx/mail/0b9db6.1bpp differ
--- /dev/null
+++ b/gfx/mail/0b9dc6.1bpp
@@ -1,0 +1,1 @@
+�������
\ No newline at end of file
binary files /dev/null b/gfx/mail/0b9dce.1bpp differ
binary files /dev/null b/gfx/mail/0b9df6.1bpp differ
binary files /dev/null b/gfx/mail/0b9e06.1bpp differ
--- /dev/null
+++ b/gfx/mail/0b9e26.1bpp
@@ -1,0 +1,1 @@
+�Ù������������<��������<�������χ��
\ No newline at end of file
binary files /dev/null b/gfx/mail/0b9e4e.1bpp differ
binary files /dev/null b/gfx/misc/boulderdust.2bpp differ
--- a/gfx/misc/fishing1.2bpp
+++ /dev/null
@@ -1,1 +1,0 @@
-????
\ No newline at end of file
binary files a/gfx/misc/fishing3.2bpp /dev/null differ
--- /dev/null
+++ b/gfx/misc/shadow.2bpp
@@ -1,0 +1,1 @@
+????
\ No newline at end of file
--- a/gfx/pics/animation.asm
+++ b/gfx/pics/animation.asm
@@ -1113,7 +1113,7 @@
push bc
push hl
ld de, VTiles2
- predef Function5108b
+ predef FrontpicPredef
pop hl
pop bc
ld d, 0
binary files a/gfx/unknown/011ef4.2bpp /dev/null differ
binary files a/gfx/unknown/0b9926.1bpp /dev/null differ
--- a/gfx/unknown/0b992e.1bpp
+++ /dev/null
@@ -1,1 +1,0 @@
-�HLm}
\ No newline at end of file
--- a/gfx/unknown/0b9936.1bpp
+++ /dev/null
@@ -1,1 +1,0 @@
-<~���~<
\ No newline at end of file
binary files a/gfx/unknown/0b993e.1bpp /dev/null differ
--- a/gfx/unknown/0b9946.1bpp
+++ /dev/null
@@ -1,1 +1,0 @@
-p
\ No newline at end of file
binary files a/gfx/unknown/0b994e.1bpp /dev/null differ
binary files a/gfx/unknown/0b995e.1bpp /dev/null differ
binary files a/gfx/unknown/0b9966.1bpp /dev/null differ
binary files a/gfx/unknown/0b996e.1bpp /dev/null differ
binary files a/gfx/unknown/0b9976.1bpp /dev/null differ
binary files a/gfx/unknown/0b997e.1bpp /dev/null differ
--- a/gfx/unknown/0b998e.1bpp
+++ /dev/null
@@ -1,1 +1,0 @@
-<~���
\ No newline at end of file
binary files a/gfx/unknown/0b9996.1bpp /dev/null differ
binary files a/gfx/unknown/0b99c6.1bpp /dev/null differ
binary files a/gfx/unknown/0b99f6.1bpp /dev/null differ
binary files a/gfx/unknown/0b9a26.1bpp /dev/null differ
binary files a/gfx/unknown/0b9a56.1bpp /dev/null differ
binary files a/gfx/unknown/0b9a86.1bpp /dev/null differ
binary files a/gfx/unknown/0b9ab6.1bpp /dev/null differ
binary files a/gfx/unknown/0b9b46.1bpp /dev/null differ
binary files a/gfx/unknown/0b9bce.1bpp /dev/null differ
--- a/gfx/unknown/0b9bee.1bpp
+++ /dev/null
@@ -1,1 +1,0 @@
-�KKm}�������
\ No newline at end of file
binary files a/gfx/unknown/0b9bfe.1bpp /dev/null differ
binary files a/gfx/unknown/0b9c1e.1bpp /dev/null differ
binary files a/gfx/unknown/0b9c3e.1bpp /dev/null differ
binary files a/gfx/unknown/0b9c5e.1bpp /dev/null differ
binary files a/gfx/unknown/0b9c7e.1bpp /dev/null differ
--- a/gfx/unknown/0b9c96.1bpp
+++ /dev/null
@@ -1,1 +1,0 @@
-������
\ No newline at end of file
binary files a/gfx/unknown/0b9c9e.1bpp /dev/null differ
binary files a/gfx/unknown/0b9cbe.1bpp /dev/null differ
binary files a/gfx/unknown/0b9cde.1bpp /dev/null differ
binary files a/gfx/unknown/0b9cfe.1bpp /dev/null differ
binary files a/gfx/unknown/0b9d16.1bpp /dev/null differ
binary files a/gfx/unknown/0b9d26.1bpp /dev/null differ
binary files a/gfx/unknown/0b9d3e.1bpp /dev/null differ
binary files a/gfx/unknown/0b9d46.1bpp /dev/null differ
binary files a/gfx/unknown/0b9d76.1bpp /dev/null differ
binary files a/gfx/unknown/0b9d86.1bpp /dev/null differ
binary files a/gfx/unknown/0b9db6.1bpp /dev/null differ
--- a/gfx/unknown/0b9dc6.1bpp
+++ /dev/null
@@ -1,1 +1,0 @@
-�������
\ No newline at end of file
binary files a/gfx/unknown/0b9dce.1bpp /dev/null differ
binary files a/gfx/unknown/0b9df6.1bpp /dev/null differ
binary files a/gfx/unknown/0b9e06.1bpp /dev/null differ
--- a/gfx/unknown/0b9e26.1bpp
+++ /dev/null
@@ -1,1 +1,0 @@
-�Ù������������<��������<�������χ��
\ No newline at end of file
binary files a/gfx/unknown/0b9e4e.1bpp /dev/null differ
binary files a/gfx/unknown/1de5e6.2bpp /dev/null differ
binary files a/gfx/unknown/1de9e6.2bpp /dev/null differ
binary files a/gfx/unknown/1dede6.2bpp /dev/null differ
--- a/home.asm
+++ b/home.asm
@@ -104,13 +104,13 @@
res 0, a
ld [VramState], a
ld a, $0
- ld [wc2ce], a
+ ld [wSpriteUpdatesEnabled], a
ret
; 0x2ee4
EnableSpriteUpdates:: ; 2ee4
ld a, $1
- ld [wc2ce], a
+ ld [wSpriteUpdatesEnabled], a
ld a, [VramState]
set 0, a
ld [VramState], a
@@ -568,18 +568,18 @@
; 321c
-Function321c:: ; 321c
+ApplyTilemap:: ; 321c
ld a, [hCGB]
and a
jr z, .dmg
- ld a, [wc2ce]
+ ld a, [wSpriteUpdatesEnabled]
cp 0
jr z, .dmg
ld a, 1
ld [hBGMapMode], a
- jr LoadDETile
+ jr LoadEDTile
.dmg
; WaitBGMap
@@ -595,8 +595,8 @@
and a
jr z, WaitBGMap
-LoadDETile:: ; 323d
- jr .LoadDETile
+LoadEDTile:: ; 323d
+ jr .LoadEDTile
; 323f
.unreferenced_323f ; 323f
@@ -604,7 +604,7 @@
ret
; 3246
-.LoadDETile ; 3246
+.LoadEDTile ; 3246
ld a, [hBGMapMode]
push af
xor a
@@ -748,9 +748,8 @@
; 333e
-ClearSGB:: ; 333e
- ld b, $ff
-
+GetMemSGBLayout:: ; 333e
+ ld b, SCGB_RAM
GetSGBLayout:: ; 3340
; load sgb packets unless dmg
@@ -1173,7 +1172,7 @@
jp SetPalettes
; 352f
-Function352f:: ; 352f
+InitScrollingMenu:: ; 352f
ld a, [wMenuBorderTopCoord]
dec a
ld b, a
@@ -1192,7 +1191,7 @@
jp TextBox
; 354b
-Function354b:: ; 354b
+Function354b:: ; 354b joypad
call DelayFrame
ld a, [hInMenu]
@@ -1214,12 +1213,12 @@
; 3567
-Function3567:: ; 3567
+HandleStoneQueue:: ; 3567
ld a, [hROMBank]
push af
call SwitchToMapScriptHeaderBank
- call Function3574
+ call .WarpAction
pop bc
ld a, b
@@ -1227,39 +1226,39 @@
ret
; 3574
-Function3574:: ; 3574
- ld hl, $0001
+.WarpAction ; 3574
+ ld hl, OBJECT_MAP_OBJECT_INDEX
add hl, de
ld a, [hl]
cp $ff
- jr z, .asm_3597
+ jr z, .nope
ld l, a
push hl
- call Function3599
+ call .IsPersonOnWarp
pop hl
- jr nc, .asm_3597
+ jr nc, .nope
ld d, a
ld e, l
- call Function35de
- jr nc, .asm_3597
+ call .IsObjectInStoneTable
+ jr nc, .nope
call CallMapScript
callba EnableScriptMode
scf
ret
-.asm_3597
+.nope
and a
ret
; 3599
-Function3599:: ; 3599
+.IsPersonOnWarp ; 3599
push de
- ld hl, $0010
+ ld hl, OBJECT_NEXT_MAP_X
add hl, de
ld a, [hl]
- ld hl, $0011
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, de
ld e, [hl]
@@ -1268,52 +1267,52 @@
ld a, e
sub 4
ld e, a
- call Function35b0
+ call .check_on_warp
pop de
ret
; 35b0
-Function35b0:: ; 35b0
- ld hl, wCurrentCaller + 3
+.check_on_warp ; 35b0
+ ld hl, wCurrMapWarpHeaderPointer
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, [wCurrentCaller + 2]
+ ld a, [wCurrMapWarpCount]
and a
- jr z, .asm_35d3
+ jr z, .nope2
.loop
push af
ld a, [hl]
cp e
- jr nz, .asm_35c8
+ jr nz, .not_on_warp
inc hl
ld a, [hld]
cp d
- jr nz, .asm_35c8
- jr .asm_35d5
+ jr nz, .not_on_warp
+ jr .found_warp
-.asm_35c8
- ld a, $5
+.not_on_warp
+ ld a, 5
add l
ld l, a
- jr nc, .asm_35cf
+ jr nc, .no_carry
inc h
-.asm_35cf
+.no_carry
pop af
dec a
jr nz, .loop
-.asm_35d3
+.nope2
and a
ret
-.asm_35d5
+.found_warp
pop af
ld d, a
- ld a, [wCurrentCaller + 2]
+ ld a, [wCurrMapWarpCount]
sub d
inc a
scf
@@ -1320,41 +1319,41 @@
ret
; 35de
-Function35de:: ; 35de
+.IsObjectInStoneTable ; 35de
inc e
- ld hl, $0001
+ ld hl, CMDQUEUE_ADDR
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
-.asm_35e6
+.loop2
ld a, [hli]
cp $ff
- jr z, .asm_35fc
+ jr z, .nope3
cp d
- jr nz, .asm_35f7
+ jr nz, .next_inc3
ld a, [hli]
cp e
- jr nz, .asm_35f8
+ jr nz, .next_inc2
ld a, [hli]
ld h, [hl]
ld l, a
- jr .asm_35fe
+ jr .yes
-.asm_35f7
+.next_inc3
inc hl
-.asm_35f8
+.next_inc2
rept 2
inc hl
endr
- jr .asm_35e6
+ jr .loop2
-.asm_35fc
+.nope3
and a
ret
-.asm_35fe
+.yes
scf
ret
; 3600
@@ -1464,30 +1463,32 @@
ld [EngineBuffer2], a
ld a, c
ld [EngineBuffer3], a
- jr Function367e
+ jr LoadTrainer_continue
; 3674
-Function3674:: ; 3674
+TalkToTrainer:: ; 3674
ld a, 1
ld [EngineBuffer2], a
ld a, -1
ld [EngineBuffer3], a
-Function367e:: ; 367e
+LoadTrainer_continue:: ; 367e
call GetMapScriptHeaderBank
ld [EngineBuffer1], a
+
ld a, [hLastTalked]
call GetMapObject
+
ld hl, MAPOBJECT_SCRIPT_POINTER
add hl, bc
ld a, [EngineBuffer1]
call GetFarHalfword
- ld de, wd041
- ld bc, $000d
+ ld de, wTempTrainerHeader
+ ld bc, wTempTrainerHeaderEnd - wTempTrainerHeader
ld a, [EngineBuffer1]
call FarCopyBytes
xor a
- ld [wd04d], a
+ ld [wRunningTrainerBattleScript], a
scf
ret
; 36a5
@@ -1508,19 +1509,19 @@
; Return carry if the sprite at bc is facing the player,
; and its distance in d.
- ld hl, OBJECT_MAP_X ; x
+ ld hl, OBJECT_NEXT_MAP_X ; x
add hl, bc
ld d, [hl]
- ld hl, OBJECT_MAP_Y ; y
+ ld hl, OBJECT_NEXT_MAP_Y ; y
add hl, bc
ld e, [hl]
- ld a, [PlayerMapX]
+ ld a, [PlayerNextMapX]
cp d
jr z, .CheckY
- ld a, [PlayerMapY]
+ ld a, [PlayerNextMapY]
cp e
jr z, .CheckX
@@ -1528,7 +1529,7 @@
ret
.CheckY
- ld a, [PlayerMapY]
+ ld a, [PlayerNextMapY]
sub e
jr z, .NotFacing
jr nc, .Above
@@ -1537,16 +1538,16 @@
cpl
inc a
ld d, a
- ld e, UP << 2
+ ld e, OW_UP
jr .CheckFacing
.Above
ld d, a
- ld e, DOWN << 2
+ ld e, OW_DOWN
jr .CheckFacing
.CheckX
- ld a, [PlayerMapX]
+ ld a, [PlayerNextMapX]
sub d
jr z, .NotFacing
jr nc, .Left
@@ -1555,12 +1556,12 @@
cpl
inc a
ld d, a
- ld e, LEFT << 2
+ ld e, OW_LEFT
jr .CheckFacing
.Left
ld d, a
- ld e, RIGHT << 2
+ ld e, OW_RIGHT
.CheckFacing
call GetSpriteDirection
@@ -2016,17 +2017,17 @@
-Function3b2a:: ; 3b2a
+_InitSpriteAnimStruct:: ; 3b2a
ld [wc3b8], a
ld a, [hROMBank]
push af
- ld a, BANK(Function8cfd6)
+ ld a, BANK(InitSpriteAnimStruct)
rst Bankswitch
ld a, [wc3b8]
- call Function8cfd6
+ call InitSpriteAnimStruct
pop af
rst Bankswitch
--- a/home/audio.asm
+++ b/home/audio.asm
@@ -312,13 +312,13 @@
ret
; 3ca8
-FadeOutMusic:: ; 3ca8
+Unused_RotatePalettesRightMusic:: ; 3ca8
ld a, 4
ld [MusicFade], a
ret
; 3cae
-FadeInMusic:: ; 3cae
+RotatePalettesLeftMusic:: ; 3cae
ld a, 4 | 1 << 7
ld [MusicFade], a
ret
--- a/home/battle.asm
+++ b/home/battle.asm
@@ -285,7 +285,7 @@
call SpeechTextBox
call MobileTextBorder
call UpdateSprites
- call Function321c
+ call ApplyTilemap
pop hl
call PrintTextBoxText
ret
--- a/home/fade.asm
+++ b/home/fade.asm
@@ -8,10 +8,10 @@
ld a, l
sub b
ld l, a
- jr nc, .asm_499
+ jr nc, .okay
dec h
-.asm_499
+.okay
ld a, [hli]
ld [rBGP], a
ld a, [hli]
@@ -22,34 +22,34 @@
; 4a3
-Function4a3:: ; 4a3
+RotateFourPalettesRight:: ; 4a3
ld a, [hCGB]
and a
- jr z, .asm_4af
+ jr z, .dmg
ld hl, IncGradGBPalTable_00
ld b, 4
- jr FadeOut
+ jr RotatePalettesRight
-.asm_4af
+.dmg
ld hl, IncGradGBPalTable_08
ld b, 4
- jr FadeOut
+ jr RotatePalettesRight
; 4b6
-FadeToWhite:: ; 4b6
+RotateThreePalettesRight:: ; 4b6
ld a, [hCGB]
and a
- jr z, .asm_4c2
+ jr z, .dmg
ld hl, IncGradGBPalTable_05
ld b, 3
- jr FadeOut
+ jr RotatePalettesRight
-.asm_4c2
+.dmg
ld hl, IncGradGBPalTable_13
ld b, 3
-; 4c7
-
-FadeOut:: ; 4c7
+RotatePalettesRight:: ; 4c7
+; Rotate palettes to the right and fill with loaded colors from the left
+; If we're already at the leftmost color, fill with the leftmost color
push de
ld a, [hli]
call DmgToCgbBGPals
@@ -62,39 +62,38 @@
call DelayFrames
pop de
dec b
- jr nz, FadeOut
+ jr nz, RotatePalettesRight
ret
; 4dd
-Function4dd:: ; 4dd
+RotateFourPalettesLeft:: ; 4dd
ld a, [hCGB]
and a
- jr z, .asm_4e9
+ jr z, .dmg
ld hl, IncGradGBPalTable_04 - 1
ld b, 4
- jr FadeIn
+ jr RotatePalettesLeft
-.asm_4e9
+.dmg
ld hl, IncGradGBPalTable_12 - 1
ld b, 4
- jr FadeIn
+ jr RotatePalettesLeft
; 4f0
-Function4f0:: ; 4f0
+RotateThreePalettesLeft:: ; 4f0
ld a, [hCGB]
and a
- jr z, .asm_4fc
+ jr z, .dmg
ld hl, IncGradGBPalTable_07 - 1
ld b, 3
- jr FadeIn
+ jr RotatePalettesLeft
-.asm_4fc
+.dmg
ld hl, IncGradGBPalTable_15 - 1
ld b, 3
- ; fallthrough
-; 501
-
-FadeIn:: ; 501
+RotatePalettesLeft:: ; 501
+; Rotate palettes to the left and fill with loaded colors from the right
+; If we're already at the rightmost color, fill with the rightmost color
push de
ld a, [hld]
ld d, a
@@ -107,7 +106,7 @@
call DelayFrames
pop de
dec b
- jr nz, FadeIn
+ jr nz, RotatePalettesLeft
ret
; 517
@@ -117,9 +116,11 @@
IncGradGBPalTable_01:: db %11111110, %11111110, %11111110
IncGradGBPalTable_02:: db %11111001, %11111001, %11111001
IncGradGBPalTable_03:: db %11100100, %11100100, %11100100
+
IncGradGBPalTable_04:: db %11100100, %11100100, %11100100
IncGradGBPalTable_05:: db %10010000, %10010000, %10010000
IncGradGBPalTable_06:: db %01000000, %01000000, %01000000
+
IncGradGBPalTable_07:: db %00000000, %00000000, %00000000
; bgp obp1 obp2
IncGradGBPalTable_08:: db %11111111, %11111111, %11111111
@@ -126,8 +127,10 @@
IncGradGBPalTable_09:: db %11111110, %11111110, %11111000
IncGradGBPalTable_10:: db %11111001, %11100100, %11100100
IncGradGBPalTable_11:: db %11100100, %11010000, %11100000
+
IncGradGBPalTable_12:: db %11100100, %11010000, %11100000
IncGradGBPalTable_13:: db %10010000, %10000000, %10010000
IncGradGBPalTable_14:: db %01000000, %01000000, %01000000
+
IncGradGBPalTable_15:: db %00000000, %00000000, %00000000
; 547
--- a/home/map.asm
+++ b/home/map.asm
@@ -258,10 +258,10 @@
; 2266
.GetDestinationWarpNumber ; 2266
- ld a, [PlayerMapY]
+ ld a, [PlayerNextMapY]
sub $4
ld e, a
- ld a, [PlayerMapX]
+ ld a, [PlayerNextMapX]
sub $4
ld d, a
ld a, [wCurrMapWarpCount]
@@ -570,11 +570,11 @@
ReadCoordEvents:: ; 23f1
ld a, [hli]
ld c, a
- ld [wCurrentMapXYTriggerCount], a
+ ld [wCurrentNextMapXYTriggerCount], a
ld a, l
- ld [wCurrentMapXYTriggerHeaderPointer], a
+ ld [wCurrentNextMapXYTriggerHeaderPointer], a
ld a, h
- ld [wCurrentMapXYTriggerHeaderPointer + 1], a
+ ld [wCurrentNextMapXYTriggerHeaderPointer + 1], a
ld a, c
and a
@@ -1091,7 +1091,7 @@
call Function2e31
ld a, 1
ld [hOAMUpdate], a
- call Function321c
+ call ApplyTilemap
pop hl
call PrintTextBoxText
xor a
@@ -1232,98 +1232,99 @@
; 272a
-Function272a:: ; 272a
+ScrollMapDown:: ; 272a
hlcoord 0, 0
ld de, BGMapBuffer
- call Function27b7
- ld c, $28
+ call BackupBGMapRow
+ ld c, 2 * SCREEN_WIDTH
call FarCallScrollBGMapPalettes
- ld a, [wd152]
+ ld a, [wBGMapAnchor]
ld e, a
- ld a, [wd153]
+ ld a, [wBGMapAnchor + 1]
ld d, a
- call Function27d3
+ call UpdateBGMapRow
ld a, $1
ld [hBGMapUpdate], a
ret
; 2748
-Function2748:: ; 2748
- hlcoord 0, 16
+ScrollMapUp:: ; 2748
+ hlcoord 0, SCREEN_HEIGHT - 2
ld de, BGMapBuffer
- call Function27b7
- ld c, $28
+ call BackupBGMapRow
+ ld c, 2 * SCREEN_WIDTH
call FarCallScrollBGMapPalettes
- ld a, [wd152]
+ ld a, [wBGMapAnchor]
ld l, a
- ld a, [wd153]
+ ld a, [wBGMapAnchor + 1]
ld h, a
ld bc, $0200
add hl, bc
+; cap d at VBGMap1 / $100
ld a, h
- and $3
- or $98
+ and %00000011
+ or VBGMap0 / $100
ld e, l
ld d, a
- call Function27d3
+ call UpdateBGMapRow
ld a, $1
ld [hBGMapUpdate], a
ret
; 2771
-Function2771:: ; 2771
+ScrollMapLeft:: ; 2771
hlcoord 0, 0
ld de, BGMapBuffer
- call Function27c0
- ld c, $24
+ call BackupBGMapColumn
+ ld c, 2 * SCREEN_HEIGHT
call FarCallScrollBGMapPalettes
- ld a, [wd152]
+ ld a, [wBGMapAnchor]
ld e, a
- ld a, [wd153]
+ ld a, [wBGMapAnchor + 1]
ld d, a
- call Function27f8
+ call UpdateBGMapColumn
ld a, $1
ld [hBGMapUpdate], a
ret
; 278f
-Function278f:: ; 278f
- hlcoord 18, 0
+ScrollMapRight:: ; 278f
+ hlcoord SCREEN_WIDTH - 2, 0
ld de, BGMapBuffer
- call Function27c0
- ld c, $24
+ call BackupBGMapColumn
+ ld c, 2 * SCREEN_HEIGHT
call FarCallScrollBGMapPalettes
- ld a, [wd152]
+ ld a, [wBGMapAnchor]
ld e, a
- and $e0
+ and %11100000
ld b, a
ld a, e
- add $12
- and $1f
+ add SCREEN_HEIGHT
+ and %00011111
or b
ld e, a
- ld a, [wd153]
+ ld a, [wBGMapAnchor + 1]
ld d, a
- call Function27f8
+ call UpdateBGMapColumn
ld a, $1
ld [hBGMapUpdate], a
ret
; 27b7
-Function27b7:: ; 27b7
- ld c, $28
-.asm_27b9
+BackupBGMapRow:: ; 27b7
+ ld c, 2 * SCREEN_WIDTH
+.loop
ld a, [hli]
ld [de], a
inc de
dec c
- jr nz, .asm_27b9
+ jr nz, .loop
ret
; 27c0
-Function27c0:: ; 27c0
- ld c, $12
-.asm_27c2
+BackupBGMapColumn:: ; 27c0
+ ld c, SCREEN_HEIGHT
+.loop
ld a, [hli]
ld [de], a
inc de
@@ -1330,30 +1331,30 @@
ld a, [hl]
ld [de], a
inc de
- ld a, $13
+ ld a, SCREEN_WIDTH - 1
add l
ld l, a
- jr nc, .asm_27cf
+ jr nc, .skip
inc h
-.asm_27cf
+.skip
dec c
- jr nz, .asm_27c2
+ jr nz, .loop
ret
; 27d3
-Function27d3:: ; 27d3
+UpdateBGMapRow:: ; 27d3
ld hl, BGMapBufferPtrs
push de
- call .asm_27df
+ call .iteration
pop de
ld a, $20
add e
ld e, a
-.asm_27df
- ld c, $a
-.asm_27e1
+.iteration
+ ld c, 10
+.loop
ld a, e
ld [hli], a
ld a, d
@@ -1369,16 +1370,16 @@
or b
ld e, a
dec c
- jr nz, .asm_27e1
- ld a, $14
- ld [$ffdc], a
+ jr nz, .loop
+ ld a, SCREEN_WIDTH
+ ld [hFFDC], a
ret
; 27f8
-Function27f8:: ; 27f8
+UpdateBGMapColumn:: ; 27f8
ld hl, BGMapBufferPtrs
- ld c, $12
-.asm_27fd
+ ld c, SCREEN_HEIGHT
+.loop
ld a, e
ld [hli], a
ld a, d
@@ -1386,30 +1387,31 @@
ld a, $20
add e
ld e, a
- jr nc, .asm_280e
+ jr nc, .skip
inc d
+; cap d at VBGMap1 / $100
ld a, d
and $3
- or $98
+ or VBGMap0 / $100
ld d, a
-.asm_280e
+.skip
dec c
- jr nz, .asm_27fd
- ld a, $12
- ld [$ffdc], a
+ jr nz, .loop
+ ld a, SCREEN_HEIGHT
+ ld [hFFDC], a
ret
; 2816
-Function2816:: ; 2816
+; unreferenced
ld hl, BGMapBuffer
- ld bc, $0078
+ ld bc, SGBPredef - BGMapBuffer
xor a
call ByteFill
ret
; 2821
-Function2821:: ; 2821
+LoadTileset:: ; 2821
ld hl, TilesetAddress
ld a, [hli]
ld h, [hl]
@@ -1416,42 +1418,50 @@
ld l, a
ld a, [TilesetBank]
ld e, a
+
ld a, [rSVBK]
push af
ld a, $6
ld [rSVBK], a
+
ld a, e
ld de, w6_d000
call FarDecompress
+
ld hl, w6_d000
ld de, VTiles2
ld bc, $60 tiles
call CopyBytes
+
ld a, [rVBK]
push af
ld a, $1
ld [rVBK], a
+
ld hl, w6_d600
ld de, VTiles2
ld bc, $60 tiles
call CopyBytes
+
pop af
ld [rVBK], a
+
pop af
ld [rSVBK], a
+
ld a, [wTileset]
- cp $1
- jr z, .asm_286f
- cp $2
- jr z, .asm_286f
- cp $4
- jr z, .asm_286f
- jr .asm_2875
+ cp TILESET_JOHTO_1
+ jr z, .load_roof
+ cp TILESET_JOHTO_2
+ jr z, .load_roof
+ cp TILESET_BATTLE_TOWER_OUTSIDE
+ jr z, .load_roof
+ jr .skip_roof
-.asm_286f
+.load_roof
callba LoadMapGroupRoof
-.asm_2875
+.skip_roof
xor a
ld [hTileAnimFrame], a
ret
@@ -1495,42 +1505,42 @@
ld a, [MapWidth]
add $6
ld [hMapObjectIndexBuffer], a
- ld a, [wd151]
+ ld a, [wPlayerStepDirection]
and a
- jr z, .asm_28cb
- cp $1
- jr z, .asm_28c0
- cp $2
- jr z, .asm_28d4
- cp $3
- jr z, .asm_28da
+ jr z, .down
+ cp UP
+ jr z, .up
+ cp LEFT
+ jr z, .left
+ cp RIGHT
+ jr z, .right
ret
-.asm_28c0
+.up
ld de, wdcbf
ld a, [hMapObjectIndexBuffer]
ld c, a
ld b, $0
add hl, bc
- jr .asm_28ce
+ jr .vertical
-.asm_28cb
+.down
ld de, XCoord + 1
-.asm_28ce
+.vertical
ld b, $6
ld c, $4
jr Function28f7
-.asm_28d4
+.left
ld de, XCoord + 2
inc hl
- jr .asm_28dd
+ jr .horizontal
-.asm_28da
+.right
ld de, XCoord + 1
-.asm_28dd
+.horizontal
ld b, $5
ld c, $5
jr Function28f7
@@ -1543,55 +1553,57 @@
ld l, a
ld a, [MapWidth]
add $6
- ld [hMapObjectIndexBuffer], a
+ ld [hConnectionStripLength], a
ld de, XCoord + 1
ld b, $6
ld c, $5
Function28f7:: ; 28f7
-.asm_28f7
+.loop1
push bc
push hl
push de
-.asm_28fa
+.loop2
ld a, [de]
inc de
ld [hli], a
dec b
- jr nz, .asm_28fa
+ jr nz, .loop2
pop de
ld a, e
add $6
ld e, a
- jr nc, .asm_2908
+ jr nc, .okay
inc d
-.asm_2908
+.okay
pop hl
- ld a, [hMapObjectIndexBuffer]
+ ld a, [hConnectionStripLength]
ld c, a
ld b, $0
add hl, bc
pop bc
dec c
- jr nz, .asm_28f7
+ jr nz, .loop1
ret
; 2914
-Function2914:: ; 2914
+GetMovementPermissions:: ; 2914
xor a
ld [TilePermissions], a
- call Function296c
- call Function294d
- ld a, [PlayerMapX]
+ call GetLeftRightCollision
+ call GetUpDownCollision
+; get coords of current tile
+ ld a, [PlayerNextMapX]
ld d, a
- ld a, [PlayerMapY]
+ ld a, [PlayerNextMapY]
ld e, a
- call Function2a3c
- ld [PlayerStandingTile], a
+ call GetCoordTile
+ ld [PlayerNextTile], a
call Function29ff
ret nz
- ld a, [PlayerStandingTile]
+
+ ld a, [PlayerNextTile]
and 7
ld hl, .data_2945
add l
@@ -1610,37 +1622,41 @@
db 1, 2, 4, 8, 9, 10, 5, 6
; 294d
-Function294d:: ; 294d
- ld a, [PlayerMapX]
+GetUpDownCollision:: ; 294d
+ ld a, [PlayerNextMapX]
ld d, a
- ld a, [PlayerMapY]
+ ld a, [PlayerNextMapY]
ld e, a
+
push de
inc e
- call Function2a3c
+ call GetCoordTile
ld [TileDown], a
call Function298b
+
pop de
dec e
- call Function2a3c
+ call GetCoordTile
ld [TileUp], a
call Function29a8
ret
; 296c
-Function296c:: ; 296c
- ld a, [PlayerMapX]
+GetLeftRightCollision:: ; 296c
+ ld a, [PlayerNextMapX]
ld d, a
- ld a, [PlayerMapY]
+ ld a, [PlayerNextMapY]
ld e, a
+
push de
dec d
- call Function2a3c
+ call GetCoordTile
ld [TileLeft], a
call Function29e2
+
pop de
inc d
- call Function2a3c
+ call GetCoordTile
ld [TileRight], a
call Function29c5
ret
@@ -1650,7 +1666,7 @@
call Function29ff
ret nz
ld a, [TileDown]
- and $7
+ and 7
cp $2
jr z, .ok
cp $6
@@ -1660,7 +1676,7 @@
.ok
ld a, [TilePermissions]
- or $8
+ or FACE_DOWN
ld [TilePermissions], a
ret
; 29a8
@@ -1669,7 +1685,7 @@
call Function29ff
ret nz
ld a, [TileUp]
- and $7
+ and 7
cp $3
jr z, .ok
cp $4
@@ -1679,7 +1695,7 @@
.ok
ld a, [TilePermissions]
- or $4
+ or FACE_UP
ld [TilePermissions], a
ret
; 29c5
@@ -1688,7 +1704,7 @@
call Function29ff
ret nz
ld a, [TileRight]
- and $7
+ and 7
cp $1
jr z, .ok
cp $5
@@ -1698,7 +1714,7 @@
.ok
ld a, [TilePermissions]
- or $1
+ or FACE_RIGHT
ld [TilePermissions], a
ret
; 29e2
@@ -1707,7 +1723,7 @@
call Function29ff
ret nz
ld a, [TileLeft]
- and $7
+ and 7
cp $0
jr z, .ok
cp $4
@@ -1717,7 +1733,7 @@
.ok
ld a, [TilePermissions]
- or $2
+ or FACE_LEFT
ld [TilePermissions], a
ret
; 29ff
@@ -1756,10 +1772,10 @@
ld h, [hl]
ld l, a
- ld a, [PlayerMapX]
+ ld a, [PlayerNextMapX]
add d
ld d, a
- ld a, [PlayerMapY]
+ ld a, [PlayerNextMapY]
add e
ld e, a
ld a, [hl]
@@ -1778,7 +1794,8 @@
; 2a3c
-Function2a3c:: ; 2a3c
+GetCoordTile:: ; 2a3c
+; Get the collision byte for tile d, e
call GetBlockLocation
ld a, [hl]
and a
@@ -1911,9 +1928,9 @@
ret
; 2ad4
-CheckCurrentMapXYTriggers:: ; 2ad4
+CheckCurrentNextMapXYTriggers:: ; 2ad4
; If there are no xy triggers, we don't need to be here.
- ld a, [wCurrentMapXYTriggerCount]
+ ld a, [wCurrentNextMapXYTriggerCount]
and a
ret z
; Copy the trigger count into c.
@@ -1930,7 +1947,7 @@
CheckStandingOnXYTrigger:: ; 2ae7
; Checks to see if you are standing on an xy-trigger. If yes, copies the trigger to EngineBuffer1 and sets carry.
- ld hl, wCurrentMapXYTriggerHeaderPointer
+ ld hl, wCurrentNextMapXYTriggerHeaderPointer
ld a, [hli]
ld h, [hl]
ld l, a
@@ -1938,10 +1955,10 @@
call CheckTriggers
ld b, a
; Load your current coordinates into de. This will be used to check if your position is in the xy-trigger table for the current map.
- ld a, [PlayerMapX]
+ ld a, [PlayerNextMapX]
sub 4
ld d, a
- ld a, [PlayerMapY]
+ ld a, [PlayerNextMapY]
sub 4
ld e, a
@@ -1997,7 +2014,7 @@
; 2b3c
-Function2b3c:: ; 2b3c
+ReturnToCallingMenu:: ; 2b3c
call ClearBGPalettes
call Function2bae
call UpdateSprites
@@ -2006,16 +2023,14 @@
jr Function2b5c
; 2b4d
-Function2b4d:: ; 2b4d
+ExitAllMenus:: ; 2b4d
call ClearBGPalettes
call Call_ExitMenu
call Function2bae
call UpdateSprites
call Functiond90
-; 2b5c
-
Function2b5c:: ; 2b5c
- ld b, $9
+ ld b, SCGB_09
call GetSGBLayout
callba Function49409
call Function3200
@@ -2028,7 +2043,7 @@
Function2b74:: ; 0x2b74
push af
ld a, $1
- ld [wc2ce], a
+ ld [wSpriteUpdatesEnabled], a
call ClearBGPalettes
call ClearSprites
call Function2bae
@@ -2039,7 +2054,7 @@
set 0, [hl]
call UpdateSprites
call Function3200
- ld b, $9
+ ld b, SCGB_09
call GetSGBLayout
callba Function49409
call UpdateTimePals
@@ -2065,7 +2080,7 @@
call SwitchToAnyMapBank
callba Function8c001
call OverworldTextModeSwitch
- call Function2821
+ call LoadTileset
ld a, 9
call SkipMusic
pop af
--- a/home/map_objects.asm
+++ b/home/map_objects.asm
@@ -6,7 +6,9 @@
push de
push bc
ld c, a
+
callba _GetSpritePalette
+
ld a, c
pop bc
pop de
@@ -15,7 +17,7 @@
; 180e
-Function180e:: ; 180e
+GetSpriteVTile:: ; 180e
push hl
push bc
ld hl, UsedSprites + 2
@@ -78,7 +80,7 @@
Function184a:: ; 184a
- ld a, [PlayerStandingTile]
+ ld a, [PlayerNextTile]
call GetTileCollision
ld b, a
ret
@@ -85,7 +87,7 @@
; 1852
CheckOnWater:: ; 1852
- ld a, [PlayerStandingTile]
+ ld a, [PlayerNextTile]
call GetTileCollision
sub 1
ret z
@@ -122,7 +124,18 @@
; 1875
-Function1875:: ; 1875
+CheckGrassTile:: ; 1875
+ ; and %00110111
+ ; cp $10
+ ; ret c
+ ; cp $30
+ ; jr nc, .okay
+ ; scf
+ ; ret
+ ; .okay
+ ; xor a
+ ; ret
+
ld d, a
and $f0
cp $10
@@ -138,7 +151,7 @@
ret z
scf
ret
-
+; For some reason, the above code is duplicated down here.
.ok_20
ld a, d
and 7
@@ -209,7 +222,7 @@
; 18c3
CheckStandingOnEntrance:: ; 18c3
- ld a, [PlayerStandingTile]
+ ld a, [PlayerNextTile]
cp $71 ; door
ret z
cp $79
@@ -445,7 +458,7 @@
add hl, bc
ld [hl], SPRITEMOVEDATA_SCRIPTED
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
ld [hl], 0
@@ -508,7 +521,7 @@
ret
; 1a47
-Function1a47:: ; 1a47
+GetInitialFacing:: ; 1a47
push bc
push de
ld e, a
@@ -529,7 +542,7 @@
; 1a61
-Function1a61:: ; 1a61
+CopySpriteMovementData:: ; 1a61
ld l, a
ld a, [hROMBank]
push af
@@ -538,7 +551,7 @@
ld a, l
push bc
- call Function1a71
+ call .CopyData
pop bc
pop af
@@ -547,10 +560,11 @@
ret
; 1a71
-Function1a71:: ; 1a71
+.CopyData ; 1a71
ld hl, OBJECT_MOVEMENTTYPE
add hl, de
ld [hl], a
+
push de
ld e, a
ld d, 0
@@ -561,29 +575,34 @@
ld b, h
ld c, l
pop de
+
ld a, [bc]
inc bc
rlca
rlca
- and $c
+ and %00001100
ld hl, OBJECT_FACING
add hl, de
ld [hl], a
+
ld a, [bc]
inc bc
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, de
ld [hl], a
+
ld a, [bc]
inc bc
ld hl, OBJECT_FLAGS1
add hl, de
ld [hl], a
+
ld a, [bc]
inc bc
ld hl, OBJECT_FLAGS2
add hl, de
ld [hl], a
+
ld a, [bc]
inc bc
ld hl, OBJECT_PALETTE
@@ -635,8 +654,9 @@
ld a, [VramState]
bit 0, a
ret z
+
callba Function55e0
- callba RefreshMapAppearDisappear
+ callba _UpdateSprites
ret
; 1ae5
@@ -659,6 +679,7 @@
; 1af8
SetSpriteDirection:: ; 1af8
+ ; preserves other flags
push af
ld hl, OBJECT_FACING
add hl, bc
--- a/home/menu.asm
+++ b/home/menu.asm
@@ -77,7 +77,7 @@
call MenuBox
call UpdateSprites
call Function1c89
- call Function321c
+ call ApplyTilemap
call CopyMenuData2
ld a, [wMenuData2Flags]
bit 7, a
@@ -227,7 +227,7 @@
ret
; 1e5d
-Function1e5d:: ; 1e5d
+DoNthMenu:: ; 1e5d
call MenuFunc_1e7f
call MenuWriteText
call Function1eff
@@ -262,7 +262,7 @@
push af
ld a, $1
ld [hOAMUpdate], a
- call Function321c
+ call ApplyTilemap
pop af
ld [hOAMUpdate], a
ret
@@ -438,7 +438,7 @@
ret
; 1f8d
-Function1f8d:: ; 1f8d
+PlaceNthMenuStrings:: ; 1f8d
push de
ld a, [MenuSelection]
call Function1fb1
@@ -464,7 +464,7 @@
ret
; 1fa7
-Function1fa7:: ; 1fa7
+MenuJumptable:: ; 1fa7
ld a, [MenuSelection]
call Function1fb1
ld a, [hli]
@@ -546,7 +546,7 @@
ret
; 0x2012
-Function2012:: ; 2012
+MenuTextBoxWaitButton:: ; 2012
call MenuTextBox
call CloseText
call ExitMenu
--- a/home/movement.asm
+++ b/home/movement.asm
@@ -136,17 +136,17 @@
big_step_right
; 1bb1
-Function1bb1:: ; 1bb1
+InitMenu3:: ; 1bb1
push hl
push bc
ld hl, wcfa1
ld b, $8
-.asm_1bb8
+.loop
ld a, [de]
inc de
ld [hli], a
dec b
- jr nz, .asm_1bb8
+ jr nz, .loop
ld a, $1
rept 2
ld [hli], a
--- a/home/palettes.asm
+++ b/home/palettes.asm
@@ -95,7 +95,7 @@
; copy & reorder bg pal buffer
ld hl, BGPals ; to
- ld de, wMapPals ; from
+ ld de, UnknBGPals ; from
; order
ld a, [rBGP]
ld b, a
@@ -143,7 +143,7 @@
; copy & reorder obj pal buffer
ld hl, OBPals ; to
- ld de, Unkn2Pals ; from
+ ld de, UnknOBPals ; from
; order
ld a, [rOBP0]
ld b, a
@@ -182,7 +182,7 @@
ld [rSVBK], a
ld hl, OBPals
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld a, [rOBP0]
ld b, a
ld c, $1
@@ -216,7 +216,7 @@
ld a, $5
ld [rSVBK], a
ld hl, OBPals + 8
- ld de, Unkn2Pals + 8
+ ld de, UnknOBPals + 8
ld a, [rOBP1]
ld b, a
ld c, $1
@@ -289,16 +289,19 @@
; d79
-Functiond79:: ; d79
+ClearVBank1:: ; d79
ld a, [hCGB]
and a
ret z
+
ld a, 1
ld [rVBK], a
+
ld hl, VTiles0
- ld bc, $2000
+ ld bc, VRAM_End - VTiles0
xor a
call ByteFill
+
ld a, 0
ld [rVBK], a
ret
@@ -347,7 +350,9 @@
push af
ld a, BANK(ScrollBGMapPalettes)
rst Bankswitch
+
call ScrollBGMapPalettes
+
pop af
rst Bankswitch
ret
--- a/home/rtc.asm
+++ b/home/rtc.asm
@@ -2,7 +2,7 @@
; update time and time-sensitive palettes
; rtc enabled?
- ld a, [wc2ce]
+ ld a, [wSpriteUpdatesEnabled]
cp 0
ret z
--- a/home/serial.asm
+++ b/home/serial.asm
@@ -247,8 +247,8 @@
; 83b
Function83b:: ; 83b
- ld hl, wcf56
- ld de, wcf51
+ ld hl, wPlayerLinkAction
+ ld de, wOtherPlayerLinkMode
ld c, $2
ld a, $1
ld [hFFCC], a
@@ -274,7 +274,7 @@
Function862:: ; 862
call LoadTileMapToTempTileMap
- callab Function4000
+ callab PlaceWaitingText
call Function87d
jp Call_LoadTempTileMapToTileMap
; 871
@@ -282,102 +282,106 @@
Function871:: ; 871
call LoadTileMapToTempTileMap
- callab Function4000
+ callab PlaceWaitingText
jp Function87d
; 87d
+; One "giant" leap for machinekind
-
Function87d:: ; 87d
ld a, $ff
- ld [wcf52], a
-.asm_882
- call Function8c1
+ ld [wOtherPlayerLinkAction], a
+.loop
+ call LinkCommunicationsSendReceive
call DelayFrame
call Function82b
- jr z, .asm_89e
+ jr z, .check
push hl
ld hl, wcf5c
dec [hl]
- jr nz, .asm_89d
+ jr nz, .skip
dec hl
dec [hl]
- jr nz, .asm_89d
+ jr nz, .skip
pop hl
xor a
jp Function833
-.asm_89d
+.skip
pop hl
-.asm_89e
- ld a, [wcf52]
+.check
+ ld a, [wOtherPlayerLinkAction]
inc a
- jr z, .asm_882
- ld b, $a
-.asm_8a6
+ jr z, .loop
+
+ ld b, 10
+.receive
call DelayFrame
- call Function8c1
+ call LinkCommunicationsSendReceive
dec b
- jr nz, .asm_8a6
- ld b, $a
-.asm_8b1
+ jr nz, .receive
+
+ ld b, 10
+.acknowledge
call DelayFrame
- call Function908
+ call LinkCommunicationsSignalDataReceived
dec b
- jr nz, .asm_8b1
- ld a, [wcf52]
- ld [wcf51], a
+ jr nz, .acknowledge
+
+ ld a, [wOtherPlayerLinkAction]
+ ld [wOtherPlayerLinkMode], a
ret
; 8c1
-Function8c1:: ; 8c1
+LinkCommunicationsSendReceive:: ; 8c1
push bc
- ld b, $60
+ ld b, SERIAL_TIMECAPSULE
ld a, [wLinkMode]
- cp $1
- jr z, .asm_8d7
- ld b, $60
- jr c, .asm_8d7
- cp $2
- ld b, $70
- jr z, .asm_8d7
- ld b, $80
+ cp LINK_TIMECAPSULE
+ jr z, .got_high_nybble
+ ld b, SERIAL_TIMECAPSULE
+ jr c, .got_high_nybble
+ cp LINK_TRADECENTER
+ ld b, SERIAL_TRADECENTER
+ jr z, .got_high_nybble
+ ld b, SERIAL_BATTLE
-.asm_8d7
- call Function8f3
- ld a, [wcf56]
+.got_high_nybble
+ call .Receive
+ ld a, [wPlayerLinkAction]
add b
ld [hSerialSend], a
ld a, [hLinkPlayerNumber]
cp $2
- jr nz, .asm_8ee
+ jr nz, .player_1
ld a, $1
ld [rSC], a
ld a, $81
ld [rSC], a
-.asm_8ee
- call Function8f3
+.player_1
+ call .Receive
pop bc
ret
; 8f3
-Function8f3:: ; 8f3
+.Receive ; 8f3
ld a, [hSerialReceive]
- ld [wcf51], a
+ ld [wOtherPlayerLinkMode], a
and $f0
cp b
ret nz
xor a
ld [hSerialReceive], a
- ld a, [wcf51]
+ ld a, [wOtherPlayerLinkMode]
and $f
- ld [wcf52], a
+ ld [wOtherPlayerLinkAction], a
ret
; 908
-Function908:: ; 908
+LinkCommunicationsSignalDataReceived:: ; 908
+; Let the other system know that the data has been received.
xor a
ld [hSerialSend], a
ld a, [hLinkPlayerNumber]
--- a/home/text.asm
+++ b/home/text.asm
@@ -192,7 +192,7 @@
push hl
call SpeechTextBox
call UpdateSprites
- call Function321c
+ call ApplyTilemap
pop hl
ret
; 1078
@@ -714,7 +714,7 @@
ret
; 13e0
-Function13e0:: ; 13e0
+PokeFluteTerminatorCharacter:: ; 13e0
ld hl, .stop
ret
@@ -880,10 +880,10 @@
; [$03][addr]
ld a, [hli]
- ld [wd0e4 + 2], a
+ ld [wMenuScrollPosition + 2], a
ld c, a
ld a, [hli]
- ld [wd0e4 + 2 + 1], a
+ ld [wMenuScrollPosition + 2 + 1], a
ld b, a
ret
; 148b
--- a/home/tilemap.asm
+++ b/home/tilemap.asm
@@ -16,7 +16,7 @@
WriteBackup:: ; 0x1c17
push af
call ExitMenu
- call Function321c
+ call ApplyTilemap
call UpdateSprites
pop af
ret
--- a/home/time.asm
+++ b/home/time.asm
@@ -5,10 +5,10 @@
push af
ld a, [hMobile]
and a
- jr z, .asm_59a
+ jr z, .not_mobile
call Timer
-.asm_59a
+.not_mobile
pop af
reti
; 59c
@@ -101,7 +101,7 @@
; update dl
ld [hRTCDayLo], a ; DL
-; flag for s0_ac60
+; flag for sRTCStatusFlags
ld a, %01000000
jr .set
@@ -120,7 +120,7 @@
; update dl
ld [hRTCDayLo], a ; DL
-; flag for s0_ac60
+; flag for sRTCStatusFlags
ld a, %00100000
.set
@@ -190,7 +190,7 @@
Function658:: ; 658
xor a
ld [StringBuffer2], a
- ld a, $0
+ ld a, $0 ; useless
ld [StringBuffer2 + 3], a
jr Function677
@@ -202,7 +202,7 @@
ld [StringBuffer2 + 2], a
ld a, [hSeconds]
ld [StringBuffer2 + 3], a
- jr Function677
+ jr Function677 ; useless
Function677:: ; 677
callba Function140ed
@@ -211,13 +211,13 @@
-Function67e:: ; 67e
- call Function685
+PanicResetClock:: ; 67e
+ call .ClearhRTC
call SetClock
ret
; 685
-Function685:: ; 685
+.ClearhRTC ; 685
xor a
ld [hRTCSeconds], a
ld [hRTCMinutes], a
@@ -277,23 +277,23 @@
; 6c4
-Function6c4:: ; 6c4
-; clear s0_ac60
+ClearRTCStatus:: ; 6c4
+; clear sRTCStatusFlags
xor a
push af
- ld a, BANK(s0_ac60)
+ ld a, BANK(sRTCStatusFlags)
call GetSRAMBank
pop af
- ld [s0_ac60], a
+ ld [sRTCStatusFlags], a
call CloseSRAM
ret
; 6d3
-Function6d3:: ; 6d3
-; append flags to s0_ac60
- ld hl, s0_ac60
+RecordRTCStatus:: ; 6d3
+; append flags to sRTCStatusFlags
+ ld hl, sRTCStatusFlags
push af
- ld a, BANK(s0_ac60)
+ ld a, BANK(sRTCStatusFlags)
call GetSRAMBank
pop af
or [hl]
@@ -302,11 +302,11 @@
ret
; 6e3
-Function6e3:: ; 6e3
-; check s0_ac60
- ld a, BANK(s0_ac60)
+CheckRTCStatus:: ; 6e3
+; check sRTCStatusFlags
+ ld a, BANK(sRTCStatusFlags)
call GetSRAMBank
- ld a, [s0_ac60]
+ ld a, [sRTCStatusFlags]
call CloseSRAM
ret
; 6ef
--- a/hram.asm
+++ b/hram.asm
@@ -32,6 +32,7 @@
hJoyLast EQU $ffa9
hInMenu EQU $ffaa
+hPrinter EQU $ffac
hFillBox EQU $ffad
hMapObjectIndexBuffer EQU $ffaf
@@ -96,6 +97,7 @@
hSPBuffer EQU $ffd9
hBGMapUpdate EQU $ffdb
+hFFDC EQU $ffdc
hMapAnims EQU $ffde
hTileAnimFrame EQU $ffdf
--- a/items/item_effects.asm
+++ b/items/item_effects.asm
@@ -4,7 +4,7 @@
call GetItemName
call CopyName1
ld a, 1
- ld [wd0ec], a
+ ld [wPlayerAction], a
ld a, [CurItem]
dec a
ld hl, ItemEffects
@@ -228,7 +228,7 @@
ld [wWildMon], a
ld a, [CurItem]
cp PARK_BALL
- call nz, Functionedfa
+ call nz, ReturnToBattle_UseBall
ld hl, Options
res NO_TEXT_SCROLL, [hl]
@@ -421,16 +421,16 @@
jr nz, .caught
ld a, [Buffer2]
cp $1
- ld hl, UnknownText_0xedb5
+ ld hl, Text_NoShake
jp z, .shake_and_break_free
cp $2
- ld hl, UnknownText_0xedba
+ ld hl, Text_OneShake
jp z, .shake_and_break_free
cp $3
- ld hl, UnknownText_0xedbf
+ ld hl, Text_TwoShakes
jp z, .shake_and_break_free
cp $4
- ld hl, UnknownText_0xedc4
+ ld hl, Text_ThreeShakes
jp z, .shake_and_break_free
.caught
@@ -535,7 +535,7 @@
call CheckReceivedDex
jr z, .skip_pokedex
- ld hl, UnknownText_0xedf0
+ ld hl, Text_AddedToPokedex
call PrintText
call ClearSprites
@@ -542,7 +542,7 @@
ld a, [EnemyMonSpecies]
ld [wd265], a
- predef Functionfb877
+ predef NewPokedexEntry
.skip_pokedex
ld a, [BattleType]
@@ -564,7 +564,7 @@
predef TryAddMonToParty
- callba Function4db49
+ callba SetCaughtData
ld a, [CurItem]
cp FRIEND_BALL
@@ -580,7 +580,7 @@
ld [hl], a
.SkipPartyMonFriendBall
- ld hl, UnknownText_0xedf5
+ ld hl, Text_AskNicknameNewlyCaughtMon
call PrintText
ld a, [CurPartySpecies]
@@ -605,7 +605,7 @@
ld b, 0
callba NamingScreen
- call FadeToWhite
+ call RotateThreePalettesRight
call LoadStandardFont
@@ -620,7 +620,7 @@
predef SentPkmnIntoBox
- callba Function4db83
+ callba SetBoxMonCaughtData
ld a, BANK(sBoxCount)
call GetSRAMBank
@@ -640,7 +640,7 @@
.SkipBoxMonFriendBall
call CloseSRAM
- ld hl, UnknownText_0xedf5
+ ld hl, Text_AskNicknameNewlyCaughtMon
call PrintText
ld a, [CurPartySpecies]
@@ -683,10 +683,10 @@
call CloseSRAM
- ld hl, UnknownText_0xedeb
+ ld hl, Text_SentToBillsPC
call PrintText
- call FadeToWhite
+ call RotateThreePalettesRight
call LoadStandardFont
jr .return_from_capture
@@ -1092,37 +1092,40 @@
ld b, $ff
ret
-UnknownText_0xedab: ; 0xedab
+; These two texts were carried over from gen 1.
+; They are not used in gen 2, and are dummied out.
+
+Text_RBY_CatchMarowak: ; 0xedab
; It dodged the thrown BALL! This #MON can't be caught!
text_jump UnknownText_0x1c5a5a
db "@"
; 0xedb0
-UnknownText_0xedb0: ; 0xedb0
+Text_RBY_NoShake: ; 0xedb0
; You missed the #MON!
text_jump UnknownText_0x1c5a90
db "@"
; 0xedb5
-UnknownText_0xedb5: ; 0xedb5
+Text_NoShake: ; 0xedb5
; Oh no! The #MON broke free!
text_jump UnknownText_0x1c5aa6
db "@"
; 0xedba
-UnknownText_0xedba: ; 0xedba
+Text_OneShake: ; 0xedba
; Aww! It appeared to be caught!
text_jump UnknownText_0x1c5ac3
db "@"
; 0xedbf
-UnknownText_0xedbf: ; 0xedbf
+Text_TwoShakes: ; 0xedbf
; Aargh! Almost had it!
text_jump UnknownText_0x1c5ae3
db "@"
; 0xedc4
-UnknownText_0xedc4: ; 0xedc4
+Text_ThreeShakes: ; 0xedc4
; Shoot! It was so close too!
text_jump UnknownText_0x1c5afa
db "@"
@@ -1132,9 +1135,6 @@
; Gotcha! @ was caught!@ @
text_jump UnknownText_0x1c5b17
start_asm
-; 0xedce
-
-Functionedce: ; edce
call WaitSFX
push bc
ld de, MUSIC_NONE
@@ -1153,30 +1153,30 @@
db "@"
; 0xedeb
-UnknownText_0xedeb: ; 0xedeb
+Text_SentToBillsPC: ; 0xedeb
; was sent to BILL's PC.
text_jump UnknownText_0x1c5b38
db "@"
; 0xedf0
-UnknownText_0xedf0: ; 0xedf0
+Text_AddedToPokedex: ; 0xedf0
; 's data was newly added to the #DEX.@ @
text_jump UnknownText_0x1c5b53
db "@"
; 0xedf5
-UnknownText_0xedf5: ; 0xedf5
+Text_AskNicknameNewlyCaughtMon: ; 0xedf5
; Give a nickname to @ ?
text_jump UnknownText_0x1c5b7f
db "@"
; 0xedfa
-Functionedfa: ; edfa (3:6dfa)
- callba Function2715c
+ReturnToBattle_UseBall: ; edfa (3:6dfa)
+ callba _ReturnToBattle_UseBall
ret
TownMap: ; ee01
- callba Function91ae1
+ callba PokegearMap
ret
; ee08
@@ -1196,7 +1196,7 @@
ld b, PARTYMENUACTION_EVO_STONE
call UseItem_SelectMon
- jp c, .asm_ee38
+ jp c, .DecidedNotToUse
ld a, MON_ITEM
call GetPartyParamLocation
@@ -1203,24 +1203,24 @@
ld a, [hl]
cp EVERSTONE
- jr z, .asm_ee35
+ jr z, .NoEffect
ld a, $1
ld [wd1e9], a
- callba Function421d8
+ callba EvolvePokemon
- ld a, [wd268]
+ ld a, [wMonTriedToEvolve]
and a
- jr z, .asm_ee35
+ jr z, .NoEffect
jp UseDisposableItem
-.asm_ee35
+.NoEffect
call WontHaveAnyEffectMessage
-.asm_ee38
+.DecidedNotToUse
xor a
- ld [wd0ec], a
+ ld [wPlayerAction], a
ret
; ee3d
@@ -1233,11 +1233,11 @@
ld b, PARTYMENUACTION_HEALING_ITEM
call UseItem_SelectMon
- jp c, Functionee9f
+ jp c, RareCandy_StatBooster_ExitMenu
- call Functioneef5
+ call RareCandy_StatBooster_GetParameters
- call Functioneed9
+ call GetStatExpRelativePointer
ld a, MON_STAT_EXP
call GetPartyParamLocation
@@ -1245,15 +1245,15 @@
add hl, bc
ld a, [hl]
cp 100
- jr nc, Functionee83
+ jr nc, NoEffectMessage
add 10
ld [hl], a
- call Functionee8c
+ call UpdateStatsAfterItem
- call Functioneed9
+ call GetStatExpRelativePointer
- ld hl, Strings_eeab
+ ld hl, StatStrings
add hl, bc
ld a, [hli]
ld h, [hl]
@@ -1264,7 +1264,7 @@
call Play_SFX_FULL_HEAL
- ld hl, UnknownText_0xeea6
+ ld hl, Text_StatRose
call PrintText
ld c, HAPPINESS_USEDITEM
@@ -1273,7 +1273,7 @@
jp UseDisposableItem
-Functionee83: ; ee83
+NoEffectMessage: ; ee83
ld hl, WontHaveAnyEffectText
call PrintText
jp ClearPalettes
@@ -1280,7 +1280,7 @@
; ee8c
-Functionee8c: ; ee8c
+UpdateStatsAfterItem: ; ee8c
ld a, MON_MAXHP
call GetPartyParamLocation
ld d, h
@@ -1291,14 +1291,14 @@
predef_jump CalcPkmnStats
; ee9f
-Functionee9f: ; ee9f
+RareCandy_StatBooster_ExitMenu: ; ee9f
xor a
- ld [wd0ec], a
+ ld [wPlayerAction], a
jp ClearPalettes
; eea6
-UnknownText_0xeea6: ; 0xeea6
+Text_StatRose: ; 0xeea6
; 's @ rose.
text_jump UnknownText_0x1c5b9a
db "@"
@@ -1305,7 +1305,7 @@
; 0xeeab
-Strings_eeab: ; eeab
+StatStrings: ; eeab
dw .health
dw .attack
dw .defense
@@ -1320,17 +1320,17 @@
; eed9
-Functioneed9: ; eed9
+GetStatExpRelativePointer: ; eed9
ld a, [CurItem]
ld hl, Table_eeeb
.next
cp [hl]
inc hl
- jr z, .asm_eee6
+ jr z, .got_it
inc hl
jr .next
-.asm_eee6
+.got_it
ld a, [hl]
ld c, a
ld b, 0
@@ -1346,7 +1346,7 @@
; eef5
-Functioneef5: ; eef5
+RareCandy_StatBooster_GetParameters: ; eef5
ld a, [CurPartySpecies]
ld [CurSpecies], a
ld [wd265], a
@@ -1366,9 +1366,9 @@
ld b, PARTYMENUACTION_HEALING_ITEM
call UseItem_SelectMon
- jp c, Functionee9f
+ jp c, RareCandy_StatBooster_ExitMenu
- call Functioneef5
+ call RareCandy_StatBooster_GetParameters
ld a, MON_LEVEL
call GetPartyParamLocation
@@ -1375,7 +1375,7 @@
ld a, [hl]
cp MAX_LEVEL
- jp nc, Functionee83
+ jp nc, NoEffectMessage
inc a
ld [hl], a
@@ -1390,9 +1390,9 @@
ld a, [hMultiplicand]
ld [hli], a
- ld a, [$ffb5]
+ ld a, [hMultiplicand + 1]
ld [hli], a
- ld a, [$ffb6]
+ ld a, [hMultiplicand + 2]
ld [hl], a
ld a, MON_MAXHP
@@ -1401,7 +1401,7 @@
ld b, a
ld c, [hl]
push bc
- call Functionee8c
+ call UpdateStatsAfterItem
ld a, MON_MAXHP + 1
call GetPartyParamLocation
@@ -1423,7 +1423,7 @@
callba LevelUpHappinessMod
ld a, PARTYMENUTEXT_LEVEL_UP
- call Functionf24a
+ call ItemActionText
xor a ; PARTYMON
ld [MonType], a
@@ -1448,7 +1448,7 @@
xor a
ld [wd1e9], a
- callba Function421d8
+ callba EvolvePokemon
jp UseDisposableItem
; efad
@@ -1458,9 +1458,9 @@
ld b, PARTYMENUACTION_HEALING_ITEM
call UseItem_SelectMon
- jp c, Functionf29e
+ jp c, StatusHealer_ExitMenu
- call Functionefda
+ call UseStatusHealer
cp $0
jr nz, .asm_efc9
@@ -1472,7 +1472,7 @@
ld a, $0
.asm_efc9
- jp Functionf09e
+ jp StatusHealer_Jumptable
; efcc
@@ -1490,16 +1490,16 @@
Miracleberry: ; efcc
ld b, PARTYMENUACTION_HEALING_ITEM
call UseItem_SelectMon
- jp c, Functionf29e
+ jp c, StatusHealer_ExitMenu
-Functionefd4: ; efd4
- call Functionefda
- jp Functionf09e
+FullyHealStatus: ; efd4
+ call UseStatusHealer
+ jp StatusHealer_Jumptable
; efda
-Functionefda: ; efda (3:6fda)
- call Functionf30d
+UseStatusHealer: ; efda (3:6fda)
+ call IsMonFainted
ld a, $1
ret z
call GetItemHealingAction
@@ -1508,7 +1508,7 @@
ld a, [hl]
and c
jr nz, .good
- call Functionf009
+ call IsItemUsedOnConfusedMon
ld a, $1
ret nc
ld b, PARTYMENUTEXT_HEAL_CONFUSION
@@ -1519,13 +1519,13 @@
ld [PartyMenuActionText], a
call HealStatus
call Play_SFX_FULL_HEAL
- call Functionf279
+ call ItemActionTextWaitButton
call UseDisposableItem
ld a, $0
ret
-Functionf009: ; f009 (3:7009)
- call Functionf2a6
+IsItemUsedOnConfusedMon: ; f009 (3:7009)
+ call IsItemUsedOnBattleMon
jr nc, .nope
ld a, [PlayerSubStatus3]
bit SUBSTATUS_CONFUSED, a
@@ -1535,12 +1535,13 @@
jr nz, .nope
scf
ret
+
.nope
and a
ret
-Functionf01e: ; f01e (3:701e)
- call Functionf2a6
+BattlemonRestoreHealth: ; f01e (3:701e)
+ call IsItemUsedOnBattleMon
ret nc
ld a, MON_HP
call GetPartyParamLocation
@@ -1551,7 +1552,7 @@
ret
HealStatus: ; f030 (3:7030)
- call Functionf2a6
+ call IsItemUsedOnBattleMon
ret nc
xor a
ld [BattleMonStatus], a
@@ -1612,23 +1613,23 @@
db -1, 0, 0
; f09e
-Functionf09e: ; f09e (3:709e)
+StatusHealer_Jumptable: ; f09e (3:709e)
ld hl, .jumptable
rst JumpTable
ret
.jumptable: ; f0a3 (3:70a3)
- dw Functionf2a2
- dw Functionf299
- dw Functionf29e
+ dw StatusHealer_ClearPalettes
+ dw StatusHealer_NoEffect
+ dw StatusHealer_ExitMenu
RevivalHerb: ; f0a9
ld b, PARTYMENUACTION_HEALING_ITEM
call UseItem_SelectMon
- jp c, Functionf29e
+ jp c, StatusHealer_ExitMenu
- call Functionf0d6
+ call RevivePokemon
cp 0
jr nz, .asm_f0c5
@@ -1638,7 +1639,7 @@
ld a, 0
.asm_f0c5
- jp Functionf09e
+ jp StatusHealer_Jumptable
; f0c8
@@ -1646,20 +1647,20 @@
MaxRevive: ; f0c8
ld b, PARTYMENUACTION_HEALING_ITEM
call UseItem_SelectMon
- jp c, Functionf29e
+ jp c, StatusHealer_ExitMenu
- call Functionf0d6
- jp Functionf09e
+ call RevivePokemon
+ jp StatusHealer_Jumptable
; f0d6
-Functionf0d6: ; f0d6
- call Functionf30d
+RevivePokemon: ; f0d6
+ call IsMonFainted
ld a, 1
ret nz
ld a, [wBattleMode]
and a
- jr z, .asm_f104
+ jr z, .skip_to_revive
ld a, [CurPartyMon]
ld c, a
@@ -1669,7 +1670,7 @@
predef FlagPredef
ld a, c
and a
- jr z, .asm_f104
+ jr z, .skip_to_revive
ld a, [CurPartyMon]
ld c, a
@@ -1677,24 +1678,24 @@
ld b, SET_FLAG
predef FlagPredef
-.asm_f104
+.skip_to_revive
xor a
ld [Danger], a
ld a, [CurItem]
cp REVIVE
- jr z, .asm_f114
+ jr z, .revive_half_hp
- call Functionf2c3
- jr .asm_f117
+ call ReviveFullHP
+ jr .finish_revive
-.asm_f114
- call Functionf2ba
+.revive_half_hp
+ call ReviveHalfHP
-.asm_f117
- call Functionf1db
+.finish_revive
+ call HealHP_SFX_GFX
ld a, PARTYMENUTEXT_REVIVE
ld [PartyMenuActionText], a
- call Functionf279
+ call ItemActionTextWaitButton
call UseDisposableItem
ld a, 0
ret
@@ -1704,26 +1705,26 @@
FullRestore: ; f128
ld b, PARTYMENUACTION_HEALING_ITEM
call UseItem_SelectMon
- jp c, Functionf29e
+ jp c, StatusHealer_ExitMenu
- call Functionf30d
- jp z, Functionf299
+ call IsMonFainted
+ jp z, StatusHealer_NoEffect
- call Functionf31b
- jr c, .asm_f13e
+ call IsMonAtFullHealth
+ jr c, .NotAtFullHealth
- jp Functionefd4
+ jp FullyHealStatus
-.asm_f13e
- call Functionf144
- jp Functionf09e
+.NotAtFullHealth
+ call .FullRestore
+ jp StatusHealer_Jumptable
; f144
-Functionf144: ; f144
+.FullRestore: ; f144
xor a
ld [Danger], a
- call Functionf2c3
+ call ReviveFullHP
ld a, MON_STATUS
call GetPartyParamLocation
xor a
@@ -1730,11 +1731,11 @@
ld [hli], a
ld [hl], a
call HealStatus
- call Functionf01e
- call Functionf1db
+ call BattlemonRestoreHealth
+ call HealHP_SFX_GFX
ld a, PARTYMENUTEXT_HEAL_HP
ld [PartyMenuActionText], a
- call Functionf279
+ call ItemActionTextWaitButton
call UseDisposableItem
ld a, 0
ret
@@ -1750,7 +1751,7 @@
res SUBSTATUS_CONFUSED, [hl]
xor a
ld [hBattleTurn], a
- call Functionf789
+ call UseItemText
ld hl, ConfusedNoMoreText
call StdBattleTextBox
@@ -1758,7 +1759,7 @@
ld a, 0
.done
- jp Functionf09e
+ jp StatusHealer_Jumptable
; f186
@@ -1774,14 +1775,14 @@
BerryJuice:
Berry:
GoldBerry: ; f186
- call Functionf1a9
- jp Functionf09e
+ call ItemRestoreHP
+ jp StatusHealer_Jumptable
; f18c
Energypowder: ; f18c
ld c, HAPPINESS_BITTERPOWDER
- jr Functionf192
+ jr EnergypowderEnergyRootCommon
; f190
EnergyRoot: ; f190
@@ -1788,50 +1789,50 @@
ld c, HAPPINESS_ENERGYROOT
; f192
-Functionf192: ; f192
+EnergypowderEnergyRootCommon: ; f192
push bc
- call Functionf1a9
+ call ItemRestoreHP
pop bc
cp 0
- jr nz, .asm_f1a6
+ jr nz, .skip_happiness
callba ChangeHappiness
call LooksBitterMessage
ld a, 0
-.asm_f1a6
- jp Functionf09e
+.skip_happiness
+ jp StatusHealer_Jumptable
; f1a9
-Functionf1a9: ; f1a9 (3:71a9)
+ItemRestoreHP: ; f1a9 (3:71a9)
ld b, PARTYMENUACTION_HEALING_ITEM
call UseItem_SelectMon
ld a, 2
ret c
- call Functionf30d
+ call IsMonFainted
ld a, 1
ret z
- call Functionf31b
+ call IsMonAtFullHealth
ld a, 1
ret nc
xor a
ld [Danger], a
- call Functionf395
- call Functionf2d1
- call Functionf01e
- call Functionf1db
+ call GetHealingItemAmount
+ call RestoreHealth
+ call BattlemonRestoreHealth
+ call HealHP_SFX_GFX
ld a, PARTYMENUTEXT_HEAL_HP
ld [PartyMenuActionText], a
- call Functionf279
+ call ItemActionTextWaitButton
call UseDisposableItem
ld a, 0
ret
-Functionf1db: ; f1db (3:71db)
+HealHP_SFX_GFX: ; f1db (3:71db)
push de
ld de, SFX_POTION
call WaitPlaySFX
@@ -1867,16 +1868,16 @@
push de
push bc
call ClearBGPalettes
- call Functionf21c
+ call ChoosePkmnToUseItemOn
pop bc
pop de
pop hl
ret
-Functionf21c: ; f21c (3:721c)
- callba Function5004f
- callba Function50405
- callba Function503e0
+ChoosePkmnToUseItemOn: ; f21c (3:721c)
+ callba LoadPartyMenuGFX
+ callba InitPartyMenuWithCancel
+ callba InitPartyMenuGFX
callba WritePartyMenuTilemap
callba PrintPartyMenuText
call WaitBGMap
@@ -1885,7 +1886,7 @@
callba PartyMenuSelect
ret
-Functionf24a: ; f24a (3:724a)
+ItemActionText: ; f24a (3:724a)
ld [PartyMenuActionText], a
ld a, [CurPartySpecies]
push af
@@ -1895,7 +1896,7 @@
push de
push bc
callba WritePartyMenuTilemap
- callba Function50566
+ callba PrintPartyMenuActionText
call WaitBGMap
call SetPalettes
call DelayFrame
@@ -1908,7 +1909,7 @@
ld [CurPartySpecies], a
ret
-Functionf279: ; f279 (3:7279)
+ItemActionTextWaitButton: ; f279 (3:7279)
xor a
ld [hBGMapMode], a
hlcoord 0, 0
@@ -1916,26 +1917,25 @@
ld a, " "
call ByteFill
ld a, [PartyMenuActionText]
- call Functionf24a
+ call ItemActionText
ld a, $1
ld [hBGMapMode], a
- ld c, $32
+ ld c, 50
call DelayFrames
jp WaitPressAorB_BlinkCursor
-Functionf299: ; f299 (3:7299)
+StatusHealer_NoEffect: ; f299 (3:7299)
call WontHaveAnyEffectMessage
- jr Functionf2a2
+ jr StatusHealer_ClearPalettes
-Functionf29e: ; f29e (3:729e)
+StatusHealer_ExitMenu: ; f29e (3:729e)
xor a
- ld [wd0ec], a
-
-Functionf2a2: ; f2a2 (3:72a2)
+ ld [wPlayerAction], a
+StatusHealer_ClearPalettes: ; f2a2 (3:72a2)
call ClearPalettes
ret
-Functionf2a6: ; f2a6 (3:72a6)
+IsItemUsedOnBattleMon: ; f2a6 (3:72a6)
ld a, [wBattleMode]
and a
ret z
@@ -1944,30 +1944,31 @@
ld hl, CurBattleMon
cp [hl]
pop hl
- jr nz, .asm_f2b8
+ jr nz, .nope
scf
ret
-.asm_f2b8
+
+.nope
xor a
ret
-Functionf2ba: ; f2ba (3:72ba)
- call Functionf36f
+ReviveHalfHP: ; f2ba (3:72ba)
+ call LoadHPFromBuffer1
srl d
rr e
- jr asm_f2c6
+ jr ContinueRevive
-Functionf2c3: ; f2c3 (3:72c3)
- call Functionf36f
-asm_f2c6: ; f2c6 (3:72c6)
+ReviveFullHP: ; f2c3 (3:72c3)
+ call LoadHPFromBuffer1
+ContinueRevive: ; f2c6 (3:72c6)
ld a, MON_HP
call GetPartyParamLocation
ld [hl], d
inc hl
ld [hl], e
- jp Functionf328
+ jp LoadCurHPIntoBuffer5
-Functionf2d1: ; f2d1 (3:72d1)
+RestoreHealth: ; f2d1 (3:72d1)
ld a, MON_HP + 1
call GetPartyParamLocation
ld a, [hl]
@@ -1976,8 +1977,8 @@
ld a, [hl]
adc d
ld [hl], a
- jr c, .asm_f2f5
- call Functionf328
+ jr c, .full_hp
+ call LoadCurHPIntoBuffer5
ld a, MON_HP + 1
call GetPartyParamLocation
ld d, h
@@ -1990,13 +1991,13 @@
dec hl
ld a, [de]
sbc [hl]
- jr c, .asm_f2f8
-.asm_f2f5
- call Functionf2c3
-.asm_f2f8
+ jr c, .finish
+.full_hp
+ call ReviveFullHP
+.finish
ret
-Functionf2f9: ; f2f9 (3:72f9)
+RemoveHP: ; f2f9 (3:72f9)
ld a, MON_HP + 1
call GetPartyParamLocation
ld a, [hl]
@@ -2005,29 +2006,29 @@
ld a, [hl]
sbc d
ld [hl], a
- jr nc, .asm_f309
+ jr nc, .okay
xor a
ld [hld], a
ld [hl], a
-.asm_f309
- call Functionf328
+.okay
+ call LoadCurHPIntoBuffer5
ret
-Functionf30d: ; f30d (3:730d)
+IsMonFainted: ; f30d (3:730d)
push de
- call Functionf35f
- call Functionf348
- call Functionf356
+ call LoadMaxHPToBuffer1
+ call LoadCurHPToBuffer3
+ call LoadHPFromBuffer3
ld a, d
or e
pop de
ret
-Functionf31b: ; f31b (3:731b)
- call Functionf356
+IsMonAtFullHealth: ; f31b (3:731b)
+ call LoadHPFromBuffer3
ld h, d
ld l, e
- call Functionf36f
+ call LoadHPFromBuffer1
ld a, l
sub e
ld a, h
@@ -2034,49 +2035,49 @@
sbc d
ret
-Functionf328: ; f328 (3:7328)
+LoadCurHPIntoBuffer5: ; f328 (3:7328)
ld a, MON_HP
call GetPartyParamLocation
ld a, [hli]
- ld [wd1ef], a
+ ld [Buffer6], a
ld a, [hl]
- ld [wd1ee], a
+ ld [Buffer5], a
ret
; f336 (3:7336)
-Functionf336: ; f336
+LoadHPIntoBuffer5: ; f336
ld a, d
- ld [wd1ef], a
+ ld [Buffer6], a
ld a, e
- ld [wd1ee], a
+ ld [Buffer5], a
ret
; f33f
-Functionf33f: ; f33f
- ld a, [wd1ef]
+LoadHPFromBuffer5: ; f33f
+ ld a, [Buffer6]
ld d, a
- ld a, [wd1ee]
+ ld a, [Buffer5]
ld e, a
ret
; f348
-Functionf348: ; f348 (3:7348)
+LoadCurHPToBuffer3: ; f348 (3:7348)
ld a, MON_HP
call GetPartyParamLocation
ld a, [hli]
- ld [wd1ed], a
+ ld [Buffer4], a
ld a, [hl]
- ld [wd1ec], a
+ ld [Buffer3], a
ret
-Functionf356: ; f356 (3:7356)
- ld a, [wd1ed]
+LoadHPFromBuffer3: ; f356 (3:7356)
+ ld a, [Buffer4]
ld d, a
- ld a, [wd1ec]
+ ld a, [Buffer3]
ld e, a
ret
-Functionf35f: ; f35f (3:735f)
+LoadMaxHPToBuffer1: ; f35f (3:735f)
push hl
ld a, MON_MAXHP
call GetPartyParamLocation
@@ -2087,7 +2088,7 @@
pop hl
ret
-Functionf36f: ; f36f (3:736f)
+LoadHPFromBuffer1: ; f36f (3:736f)
ld a, [Buffer2]
ld d, a
ld a, [Buffer1]
@@ -2094,7 +2095,7 @@
ld e, a
ret
-Functionf378: ; f378 (3:7378)
+GetOneFifthMaxHP: ; f378 (3:7378)
push bc
ld a, MON_MAXHP
call GetPartyParamLocation
@@ -2113,15 +2114,15 @@
pop bc
ret
-Functionf395: ; f395 (3:7395)
+GetHealingItemAmount: ; f395 (3:7395)
push hl
ld a, [CurItem]
- ld hl, Tablef3af
+ ld hl, .Healing
ld d, a
.next
ld a, [hli]
cp -1
- jr z, .asm_f3a9
+ jr z, .NotFound
cp d
jr z, .done
rept 2
@@ -2129,7 +2130,7 @@
endr
jr .next
-.asm_f3a9
+.NotFound
scf
.done
ld e, [hl]
@@ -2139,7 +2140,7 @@
ret
; f3af (3:73af)
-Tablef3af: ; f3af
+.Healing: ; f3af
dbw FRESH_WATER, 50
dbw SODA_POP, 60
dbw LEMONADE, 80
@@ -2158,42 +2159,42 @@
dbw -1, 0
; f3df
-Functionf3df: ; f3df (3:73df)
+Softboiled_MilkDrinkFunction: ; f3df (3:73df)
; Softboiled/Milk Drink in the field
ld a, [wd0d8]
dec a
ld b, a
- call Functionf419
- jr c, .asm_f413
+ call .SelectMilkDrinkRecipient ; select pokemon
+ jr c, .skip
ld a, b
ld [CurPartyMon], a
- call Functionf30d
- call Functionf378
- call Functionf2f9
+ call IsMonFainted
+ call GetOneFifthMaxHP
+ call RemoveHP
push bc
- call Functionf1db
+ call HealHP_SFX_GFX
pop bc
- call Functionf378
+ call GetOneFifthMaxHP
ld a, c
ld [CurPartyMon], a
- call Functionf30d
- call Functionf2d1
- call Functionf1db
+ call IsMonFainted
+ call RestoreHealth
+ call HealHP_SFX_GFX
ld a, PARTYMENUTEXT_HEAL_HP
- call Functionf24a
+ call ItemActionText
call JoyWaitAorB
-.asm_f413
+.skip
ld a, b
inc a
ld [wd0d8], a
ret
-Functionf419: ; f419 (3:7419)
+.SelectMilkDrinkRecipient: ; f419 (3:7419)
.loop
push bc
ld a, PARTYMENUACTION_HEALING_ITEM
ld [PartyMenuActionText], a
- call Functionf21c
+ call ChoosePkmnToUseItemOn
pop bc
jr c, .set_carry
ld a, [wd0d8]
@@ -2201,13 +2202,13 @@
ld c, a
ld a, b
cp c
- jr z, .loopback
+ jr z, .cant_use ; chose the same mon as user
ld a, c
ld [CurPartyMon], a
- call Functionf30d
- jr z, .loopback
- call Functionf31b
- jr nc, .loopback
+ call IsMonFainted
+ jr z, .cant_use
+ call IsMonAtFullHealth
+ jr nc, .cant_use
xor a
ret
@@ -2215,15 +2216,15 @@
scf
ret
-.loopback
+.cant_use
push bc
- ld hl, UnknownText_0xf44a
+ ld hl, .Text_CantBeUsed
call MenuTextBoxBackup
pop bc
jr .loop
; f44a (3:744a)
-UnknownText_0xf44a: ; 0xf44a
+.Text_CantBeUsed: ; 0xf44a
; That can't be used on this #MON.
text_jump UnknownText_0x1c5bac
db "@"
@@ -2232,10 +2233,10 @@
EscapeRope: ; f44f
xor a
- ld [wd0ec], a
+ ld [wPlayerAction], a
callba EscapeRopeFunction
- ld a, [wd0ec]
+ ld a, [wPlayerAction]
cp 1
call z, UseDisposableItem
ret
@@ -2244,12 +2245,12 @@
SuperRepel: ; f462
ld b, 200
- jr Function_0xf46c
+ jr UseRepel
; f466
MaxRepel: ; f466
ld b, 250
- jr Function_0xf46c
+ jr UseRepel
; f466
Repel: ; f46a
@@ -2256,7 +2257,7 @@
ld b, 100
; f46c
-Function_0xf46c: ; f46c
+UseRepel: ; f46c
ld a, [wRepelEffect]
and a
ld hl, TextJump_RepelUsedEarlierIsStillInEffect
@@ -2264,7 +2265,7 @@
ld a, b
ld [wRepelEffect], a
- jp Functionf789
+ jp UseItemText
TextJump_RepelUsedEarlierIsStillInEffect: ; 0xf47d
@@ -2279,7 +2280,7 @@
bit SUBSTATUS_X_ACCURACY, [hl]
jp nz, WontHaveAnyEffect_NotUsedMessage
set SUBSTATUS_X_ACCURACY, [hl]
- jp Functionf789
+ jp UseItemText
; f48f
@@ -2293,11 +2294,11 @@
and 3 << 6
or $2
ld [wBattleResult], a
- jp Functionf789
+ jp UseItemText
.asm_f4a6
xor a
- ld [wd0ec], a
+ ld [wPlayerAction], a
ret
; f4ab
@@ -2307,7 +2308,7 @@
bit SUBSTATUS_MIST, [hl]
jp nz, WontHaveAnyEffect_NotUsedMessage
set SUBSTATUS_MIST, [hl]
- jp Functionf789
+ jp UseItemText
; f4b8
@@ -2316,7 +2317,7 @@
bit SUBSTATUS_FOCUS_ENERGY, [hl]
jp nz, WontHaveAnyEffect_NotUsedMessage
set SUBSTATUS_FOCUS_ENERGY, [hl]
- jp Functionf789
+ jp UseItemText
; f4c5
@@ -2324,7 +2325,7 @@
XDefend:
XSpeed:
XSpecial: ; f4c5
- call Functionf789
+ call UseItemText
ld a, [CurItem]
ld hl, .x_item_table
@@ -2368,8 +2369,8 @@
PokeFlute: ; f50c
ld a, [wBattleMode]
and a
- jr nz, .asm_f512
-.asm_f512
+ jr nz, .dummy
+.dummy
xor a
ld [wd002], a
@@ -2377,14 +2378,14 @@
ld b, $ff ^ SLP
ld hl, PartyMon1Status
- call .Functionf554
+ call .CureSleep
ld a, [wBattleMode]
cp WILD_BATTLE
- jr z, .asm_f52b
+ jr z, .skip_otrainer
ld hl, OTPartyMon1Status
- call .Functionf554
-.asm_f52b
+ call .CureSleep
+.skip_otrainer
ld hl, BattleMonStatus
ld a, [hl]
@@ -2397,20 +2398,20 @@
ld a, [wd002]
and a
- ld hl, UnknownText_0xf56c
+ ld hl, .CatchyTune
jp z, PrintText
- ld hl, UnknownText_0xf576
+ ld hl, .PlayedTheFlute
call PrintText
ld a, [Danger]
and $80
- jr nz, .asm_f54e
-.asm_f54e
- ld hl, UnknownText_0xf571
+ jr nz, .dummy2
+.dummy2
+ ld hl, .AllSleepingMonWokeUp
jp PrintText
-.Functionf554
+.CureSleep
ld de, PARTYMON_STRUCT_LENGTH
ld c, PARTY_LENGTH
@@ -2418,10 +2419,10 @@
ld a, [hl]
push af
and SLP
- jr z, .asm_f564
+ jr z, .not_asleep
ld a, 1
ld [wd002], a
-.asm_f564
+.not_asleep
pop af
and b
ld [hl], a
@@ -2432,29 +2433,25 @@
; f56c
-UnknownText_0xf56c: ; 0xf56c
+.CatchyTune: ; 0xf56c
; Played the # FLUTE. Now, that's a catchy tune!
text_jump UnknownText_0x1c5bf9
db "@"
; 0xf571
-UnknownText_0xf571: ; 0xf571
+.AllSleepingMonWokeUp: ; 0xf571
; All sleeping #MON woke up.
text_jump UnknownText_0x1c5c28
db "@"
; 0xf576
-UnknownText_0xf576: ; 0xf576
+.PlayedTheFlute: ; 0xf576
; played the # FLUTE.@ @
text_jump UnknownText_0x1c5c44
start_asm
-; 0xf57b
-
-
-Function_0xf57b: ; f57b
ld a, [wBattleMode]
and a
- jr nz, .asm_f58c
+ jr nz, .battle
push de
ld de, SFX_POKEFLUTE
@@ -2462,14 +2459,14 @@
call WaitSFX
pop de
-.asm_f58c
- jp Function13e0
+.battle
+ jp PokeFluteTerminatorCharacter
; f58f
BlueCard: ; f58f
ld hl, .bluecardtext
- jp Function2012
+ jp MenuTextBoxWaitButton
.bluecardtext
text_jump UnknownText_0x1c5c5e
@@ -2479,7 +2476,7 @@
CoinCase: ; f59a
ld hl, .coincasetext
- jp Function2012
+ jp MenuTextBoxWaitButton
.coincasetext
text_jump UnknownText_0x1c5c7b
@@ -2527,7 +2524,7 @@
; Party Screen opens to choose on which Pkmn to use the Item
ld b, PARTYMENUACTION_HEALING_ITEM
call UseItem_SelectMon
- jp c, Functionf6e0
+ jp c, PPRestoreItem_Cancel
.loop2
ld a, [wd002]
@@ -2550,7 +2547,7 @@
xor a
ld [CurMoveNum], a
ld a, $2
- ld [wd235], a
+ ld [wMoveSelectionMenuType], a
callba MoveSelectionScreen
pop bc
@@ -2570,7 +2567,7 @@
ld a, [wd002]
cp PP_UP
- jp nz, Functionf6a7
+ jp nz, Not_PP_Up
ld a, [hl]
cp SKETCH
@@ -2594,38 +2591,38 @@
ld [hl], a
ld a, $1
ld [wd265], a
- call Functionf84c
+ call ApplyPPUp
call Play_SFX_FULL_HEAL
ld hl, TextJump_PPsIncreased
call PrintText
-Functionf64c: ; f64c
+FinishPPRestore: ; f64c
call ClearPalettes
jp UseDisposableItem
; f652
-Functionf652: ; f652
+BattleRestorePP: ; f652
ld a, [wBattleMode]
and a
- jr z, .asm_f66c
+ jr z, .not_in_battle
ld a, [CurPartyMon]
ld b, a
ld a, [CurBattleMon]
cp b
- jr nz, .asm_f66c
+ jr nz, .not_in_battle
ld a, [PlayerSubStatus5]
bit SUBSTATUS_TRANSFORMED, a
- jr nz, .asm_f66c
- call .asm_f677
+ jr nz, .not_in_battle
+ call .UpdateBattleMonPP
-.asm_f66c
+.not_in_battle
call Play_SFX_FULL_HEAL
ld hl, UnknownText_0xf739
call PrintText
- jr Functionf64c
+ jr FinishPPRestore
-.asm_f677
+.UpdateBattleMonPP
ld a, [CurPartyMon]
ld hl, PartyMon1Moves
ld bc, PARTYMON_STRUCT_LENGTH
@@ -2632,12 +2629,12 @@
call AddNTimes
ld de, BattleMonMoves
ld b, NUM_MOVES
-.asm_f688
+.loop
ld a, [de]
and a
- jr z, .asm_f6a6
+ jr z, .done
cp [hl]
- jr nz, .asm_f6a1
+ jr nz, .next
push hl
push de
push bc
@@ -2652,20 +2649,20 @@
pop de
pop hl
-.asm_f6a1
+.next
inc hl
inc de
dec b
- jr nz, .asm_f688
+ jr nz, .loop
-.asm_f6a6
+.done
ret
; f6a7
-Functionf6a7: ; f6a7
+Not_PP_Up: ; f6a7
call RestorePP
- jr nz, Functionf652
- jp Functionf6dd
+ jr nz, BattleRestorePP
+ jp PPRestoreItem_NoEffect
; f6af
Elixer_RestorePPofAllMoves: ; f6af
@@ -2681,14 +2678,14 @@
call GetMthMoveOfNthPartymon
ld a, [hl]
and a
- jr z, .cant_restore_pp
+ jr z, .next
call RestorePP
- jr z, .cant_restore_pp
+ jr z, .next
ld hl, wcfaa
inc [hl]
-.cant_restore_pp
+.next
ld hl, MenuSelection2
inc [hl]
pop bc
@@ -2696,15 +2693,15 @@
jr nz, .moveLoop
ld a, [wcfaa]
and a
- jp nz, Functionf652
+ jp nz, BattleRestorePP
-Functionf6dd: ; f6dd
+PPRestoreItem_NoEffect: ; f6dd
call WontHaveAnyEffectMessage
-Functionf6e0: ; f6e0
+PPRestoreItem_Cancel: ; f6e0
call ClearPalettes
xor a
- ld [wd0ec], a
+ ld [wPlayerAction], a
ret
; f6e8
@@ -2805,7 +2802,7 @@
SacredAsh: ; f753
callba _SacredAsh
- ld a, [wd0ec]
+ ld a, [wPlayerAction]
cp $1
ret nz
call UseDisposableItem
@@ -2939,14 +2936,11 @@
ret
; f789
-Functionf789: ; f789
+UseItemText ; f789
ld hl, UsedItemText
call PrintText
call Play_SFX_FULL_HEAL
call WaitPressAorB_BlinkCursor
- ; fallthrough
-; f795
-
UseDisposableItem: ; f795
ld hl, NumItems
ld a, 1
@@ -2955,7 +2949,7 @@
; f7a0
UseBallInTrainerBattle: ; f7a0
- call Functionedfa
+ call ReturnToBattle_UseBall
ld de, ANIM_THROW_POKE_BALL
ld a, e
ld [FXAnimIDLo], a
@@ -2979,7 +2973,7 @@
; Item wasn't used.
ld a, $2
- ld [wd0ec], a
+ ld [wPlayerAction], a
ret
; f7d6
@@ -2994,7 +2988,7 @@
; Item wasn't used.
ld a, $2
- ld [wd0ec], a
+ ld [wPlayerAction], a
ret
; f7e8
@@ -3024,7 +3018,7 @@
CantUseItemMessage: ; f804
; Item couldn't be used.
xor a
- ld [wd0ec], a
+ ld [wPlayerAction], a
jp PrintText
; f80b
@@ -3107,7 +3101,7 @@
; 0xf84c
-Functionf84c: ; f84c
+ApplyPPUp: ; f84c
ld a, MON_MOVES
call GetPartyParamLocation
push hl
@@ -3118,7 +3112,7 @@
add hl, bc
ld de, Buffer1
ld b, 0
-.asm_f864
+.loop
inc b
ld a, b
cp NUM_MOVES + 1
@@ -3125,22 +3119,22 @@
ret z
ld a, [wd265]
dec a
- jr nz, .asm_f876
+ jr nz, .use
ld a, [MenuSelection2]
inc a
cp b
- jr nz, .asm_f87d
+ jr nz, .skip
-.asm_f876
+.use
ld a, [hl]
and 3 << 6
ld a, [de] ; wasted cycle
call nz, ComputeMaxPP
-.asm_f87d
+.skip
inc hl
inc de
- jr .asm_f864
+ jr .loop
; f881
@@ -3195,7 +3189,7 @@
ret
; f8b9
-Functionf8b9: ; f8b9
+RestoreAllPP: ; f8b9
ld a, MON_PP
call GetPartyParamLocation
push hl
--- a/macros.asm
+++ b/macros.asm
@@ -14,9 +14,9 @@
INCLUDE "macros/rst.asm"
INCLUDE "macros/mobile.asm"
INCLUDE "macros/trainer.asm"
+INCLUDE "macros/trade_anim.asm"
-
RGB: MACRO
dw ((\3) << 10) + ((\2) << 5) + (\1)
ENDM
@@ -211,3 +211,26 @@
ENDM
palettes EQUS "* 8"
+
+ldpixel: MACRO
+if _NARG == 5
+ lb \1, \2 * 8 + \4, \3 * 8 + \5
+else
+ lb \1, \2 * 8, \3 * 8
+endc
+ endm
+
+depixel EQUS "ldpixel de,"
+
+bgcoord: MACRO
+IF _NARG == 4
+ ld \1, \3 * $20 + \2 + \4
+ELSE
+ ld \1, \3 * $20 + \2 + VBGMap0
+ENDC
+ENDM
+
+hlbgcoord EQUS "bgcoord hl,"
+debgcoord EQUS "bgcoord de,"
+bcbgcoord EQUS "bgcoord bc,"
+bgrows EQUS "* $20"
--- a/macros/charmap.asm
+++ b/macros/charmap.asm
@@ -35,6 +35,7 @@
; Actual characters
charmap "▲", $61
charmap "_", $62
+ charmap "<COLON>", $6d ; necessary because ":" is already used
charmap "′", $6e
charmap "<LV>", $6e
charmap "″", $6f
--- a/macros/event.asm
+++ b/macros/event.asm
@@ -293,9 +293,9 @@
db \1 ; time
endm
-checkmorn EQUS "checktime 1"
-checkday EQUS "checktime 2"
-checknite EQUS "checktime 4"
+checkmorn EQUS "checktime 1 << MORN"
+checkday EQUS "checktime 1 << DAY"
+checknite EQUS "checktime 1 << NITE"
enum checkpoke_command
checkpoke: macro
@@ -496,9 +496,9 @@
db loadmovesprites_command
endm
- enum loadbytec1ce_command
-loadbytec1ce: macro
- db loadbytec1ce_command
+ enum loadbytec2cf_command
+loadbytec2cf: macro
+ db loadbytec2cf_command
db \1 ; byte
endm
@@ -544,6 +544,7 @@
dw \1 ; text_pointer
endm
+; IF _CRYSTAL
enum farjumptext_command
farjumptext: macro
db farjumptext_command
@@ -550,6 +551,7 @@
db BANK(\1)
dw \1
endm
+; ENDC
enum jumptext_command
jumptext: macro
@@ -1068,7 +1070,7 @@
db \1 ; duration
endm
- enum unknown0xa9_command
-unknown0xa9: macro
- db unknown0xa9_command
+ enum check_save_command
+check_save: macro
+ db check_save_command
endm
--- a/macros/movement.asm
+++ b/macros/movement.asm
@@ -292,10 +292,9 @@
db movement_fix_facing ; $3b
endm
- enum movement_return_dig
-return_dig: macro
- db movement_return_dig
- db \1
+ enum movement_show_person
+show_person: macro
+ db movement_show_person ; $3c
endm
enum movement_hide_person
@@ -354,6 +353,8 @@
db movement_step_end ; $47
endm
+; Whatever Movement_48 is, it takes a one-byte parameter
+
__enum__ = $49
enum movement_remove_person
@@ -383,12 +384,16 @@
db movement_skyfall ; $4e
endm
- enum movement_step_wait5
-step_wait5: macro
- db movement_step_wait5 ; $4f
+ enum movement_step_dig
+step_dig: macro
+ db movement_step_dig ; $4f
+ db \1
endm
-__enum__ = $51
+ enum movement_step_bump
+step_bump: macro
+ db movement_step_bump ; $50
+ endm
enum movement_fish_got_bite
fish_got_bite: macro
@@ -420,5 +425,11 @@
enum movement_rock_smash
rock_smash: macro
db movement_rock_smash ; $57
+ db \1
+ endm
+
+ enum movement_return_dig
+return_dig: macro
+ db movement_return_dig ; $58
db \1
endm
--- a/macros/text.asm
+++ b/macros/text.asm
@@ -73,7 +73,7 @@
endm
enum TX_SOUND_0B
-sound0: macro
+sound_dex_fanfare_50_79: macro
db TX_SOUND_0B
endm
@@ -89,33 +89,33 @@
endm
enum TX_SOUND_0E
-sound1: macro
+sound_dex_fanfare_20_49: macro
db TX_SOUND_0E
endm
enum TX_SOUND_0F
-sound0x0F: macro
+sound_item: macro
db TX_SOUND_0F
endm
enum TX_SOUND_10
-sound0x02: macro
+sound_caught_mon: macro
db TX_SOUND_10
endm
enum TX_SOUND_11
-sound0x0A: macro
+sound_dex_fanfare_80_109: macro
db TX_SOUND_11
endm
enum TX_SOUND_12
-sound0x12: macro
+sound_fanfare: macro
db TX_SOUND_12
endm
enum TX_SOUND_13
-sound0x2C: macro
- db $13
+sound_slot_machine_start: macro
+ db TX_SOUND_13
endm
enum TX_STRINGBUFFER
--- /dev/null
+++ b/macros/trade_anim.asm
@@ -1,0 +1,166 @@
+ enum_start
+ enum tradeanim_next_command
+tradeanim_next: macro
+ db tradeanim_next_command
+endm
+
+ enum tradeanim_show_givemon_data_command
+tradeanim_show_givemon_data: macro
+ db tradeanim_show_givemon_data_command
+endm
+
+ enum tradeanim_show_getmon_data_command
+tradeanim_show_getmon_data: macro
+ db tradeanim_show_getmon_data_command
+endm
+
+ enum tradeanim_enter_link_tube_command
+tradeanim_enter_link_tube: macro
+ db tradeanim_enter_link_tube_command
+endm
+
+__enum__ set $5
+
+ enum tradeanim_exit_link_tube_command
+tradeanim_exit_link_tube: macro
+ db tradeanim_exit_link_tube_command
+endm
+
+ enum tradeanim_tube_to_ot_command
+tradeanim_tube_to_ot: macro
+ db tradeanim_tube_to_ot_command
+endm
+
+__enum__ set $e
+
+ enum tradeanim_tube_to_player_command
+tradeanim_tube_to_player: macro
+ db tradeanim_tube_to_player_command
+endm
+
+__enum__ set $16
+
+ enum tradeanim_sent_to_ot_text_command
+tradeanim_sent_to_ot_text: macro
+ db tradeanim_sent_to_ot_text_command
+endm
+
+ enum tradeanim_ot_bids_farewell_command
+tradeanim_ot_bids_farewell: macro
+ db tradeanim_ot_bids_farewell_command
+endm
+
+ enum tradeanim_take_care_of_text_command
+tradeanim_take_care_of_text: macro
+ db tradeanim_take_care_of_text_command
+endm
+
+ enum tradeanim_ot_sends_text_1_command
+tradeanim_ot_sends_text_1: macro
+ db tradeanim_ot_sends_text_1_command
+endm
+
+ enum tradeanim_ot_sends_text_2_command
+tradeanim_ot_sends_text_2: macro
+ db tradeanim_ot_sends_text_2_command
+endm
+
+ enum tradeanim_setup_givemon_scroll_command
+tradeanim_setup_givemon_scroll: macro
+ db tradeanim_setup_givemon_scroll_command
+endm
+
+ enum tradeanim_do_givemon_scroll_command
+tradeanim_do_givemon_scroll: macro
+ db tradeanim_do_givemon_scroll_command
+endm
+
+ enum tradeanim_1d_command
+tradeanim_1d: macro
+ db tradeanim_1d_command
+endm
+
+ enum tradeanim_1e_command
+tradeanim_1e: macro
+ db tradeanim_1e_command
+endm
+
+ enum tradeanim_scroll_out_right_command
+tradeanim_scroll_out_right: macro
+ db tradeanim_scroll_out_right_command
+endm
+
+__enum__ set $21
+
+ enum tradeanim_wait_80_command
+tradeanim_wait_80: macro
+ db tradeanim_wait_80_command
+endm
+
+ enum tradeanim_wait_40_command
+tradeanim_wait_40: macro
+ db tradeanim_wait_40_command
+endm
+
+ enum tradeanim_rocking_ball_command
+tradeanim_rocking_ball: macro
+ db tradeanim_rocking_ball_command
+endm
+
+ enum tradeanim_drop_ball_command
+tradeanim_drop_ball: macro
+ db tradeanim_drop_ball_command
+endm
+
+ enum tradeanim_wait_anim_command
+tradeanim_wait_anim: macro
+ db tradeanim_wait_anim_command
+endm
+
+__enum__ set $27
+
+ enum tradeanim_poof_command
+tradeanim_poof: macro
+ db tradeanim_poof_command
+endm
+
+ enum tradeanim_bulge_through_tube_command
+tradeanim_bulge_through_tube: macro
+ db tradeanim_bulge_through_tube_command
+endm
+
+ enum tradeanim_give_trademon_sfx_command
+tradeanim_give_trademon_sfx: macro
+ db tradeanim_give_trademon_sfx_command
+endm
+
+ enum tradeanim_get_trademon_sfx_command
+tradeanim_get_trademon_sfx: macro
+ db tradeanim_get_trademon_sfx_command
+endm
+
+ enum tradeanim_end_command
+tradeanim_end: macro
+ db tradeanim_end_command
+endm
+
+ enum tradeanim_animate_frontpic_command
+tradeanim_animate_frontpic: macro
+ db tradeanim_animate_frontpic_command
+endm
+
+ enum tradeanim_wait_96_command
+tradeanim_wait_96: macro
+ db tradeanim_wait_96_command
+endm
+
+ enum tradeanim_wait_80_if_ot_egg_command
+tradeanim_wait_80_if_ot_egg: macro
+ db tradeanim_wait_80_if_ot_egg_command
+endm
+
+ enum tradeanim_wait_180_if_ot_egg_command
+tradeanim_wait_180_if_ot_egg: macro
+ db tradeanim_wait_180_if_ot_egg_command
+endm
+
--- a/main.asm
+++ b/main.asm
@@ -4,7 +4,7 @@
SECTION "bank1", ROMX, BANK[$1]
-Function4000:: ; 4000
+PlaceWaitingText:: ; 4000
hlcoord 3, 10
ld b, 1
ld c, 11
@@ -14,12 +14,12 @@
jr z, .notinbattle
call TextBox
- jr .incave
+ jr .proceed
.notinbattle
- predef Function28eef
+ predef Predef_LinkTextbox
-.incave
+.proceed
hlcoord 4, 11
ld de, .Waiting
call PlaceString
@@ -58,1430 +58,8 @@
INCLUDE "engine/map_objects.asm"
+INCLUDE "engine/intro_menu.asm"
-Function5ae8: ; 5ae8
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- ld de, MUSIC_MAIN_MENU
- ld a, e
- ld [wMapMusic], a
- call PlayMusic
- callba MainMenu
- jp Function6219
-; 5b04
-
-; unreferenced
- ret
-; 5b05
-
-PrintDayOfWeek: ; 5b05
- push de
- ld hl, .Days
- ld a, b
- call GetNthString
- ld d, h
- ld e, l
- pop hl
- call PlaceString
- ld h, b
- ld l, c
- ld de, .Day
- call PlaceString
- ret
-; 5b1c
-
-.Days ; 5b1c
- db "SUN@"
- db "MON@"
- db "TUES@"
- db "WEDNES@"
- db "THURS@"
- db "FRI@"
- db "SATUR@"
-; 5b40
-
-.Day ; 5b40
- db "DAY@"
-; 5b44
-
-NewGame_ClearTileMapEtc: ; 5b44
- xor a
- ld [hMapAnims], a
- call ClearTileMap
- call LoadFontsExtra
- call LoadStandardFont
- call ResetTextRelatedRAM
- ret
-; 5b54
-
-MysteryGift: ; 5b54
- call UpdateTime
- callba DoMysteryGiftIfDayHasPassed
- callba DoMysteryGift
- ret
-; 5b64
-
-OptionsMenu: ; 5b64
- callba _OptionsMenu
- ret
-; 5b6b
-
-NewGame: ; 5b6b
- xor a
- ld [wc2cc], a
- call ResetWRAM
- call NewGame_ClearTileMapEtc
- call AreYouABoyOrAreYouAGirl
- call OakSpeech
- call InitializeWorld
- ld a, 1
- ld [wPreviousLandmark], a
-
- ld a, SPAWN_HOME
- ld [DefaultSpawnpoint], a
-
- ld a, MAPSETUP_WARP
- ld [hMapEntryMethod], a
- jp FinishContinueFunction
-; 5b8f
-
-AreYouABoyOrAreYouAGirl: ; 5b8f
- callba Function10632f ; some mobile stuff
- jr c, .ok
- callba InitGender
- ret
-
-.ok
- ld c, 0
- callba Function4802f
- ret
-; 5ba7
-
-ResetWRAM: ; 5ba7
- xor a
- ld [hBGMapMode], a
- call _ResetWRAM
- ret
-; 5bae
-
-_ResetWRAM: ; 5bae
-
- ld hl, Sprites
- ld bc, Options - Sprites
- xor a
- call ByteFill
-
- ld hl, wd000
- ld bc, wGameData - wd000
- xor a
- call ByteFill
-
- ld hl, wGameData
- ld bc, wGameDataEnd - wGameData
- xor a
- call ByteFill
-
- ld a, [rLY]
- ld [hSecondsBackup], a
- call DelayFrame
- ld a, [hRandomSub]
- ld [PlayerID], a
-
- ld a, [rLY]
- ld [hSecondsBackup], a
- call DelayFrame
- ld a, [hRandomAdd]
- ld [PlayerID + 1], a
-
- call Random
- ld [wSecretID], a
- call DelayFrame
- call Random
- ld [wSecretID + 1], a
-
- ld hl, PartyCount
- call InitList
-
- xor a
- ld [wCurBox], a
- ld [wSavedAtLeastOnce], a
-
- call SetDefaultBoxNames
-
- ld a, BANK(sBoxCount)
- call GetSRAMBank
- ld hl, sBoxCount
- call InitList
- call CloseSRAM
-
- ld hl, NumItems
- call InitList
-
- ld hl, NumKeyItems
- call InitList
-
- ld hl, NumBalls
- call InitList
-
- ld hl, PCItems
- call InitList
-
- xor a
- ld [wRoamMon1Species], a
- ld [wRoamMon2Species], a
- ld [wRoamMon3Species], a
- ld a, -1
- ld [wRoamMon1MapGroup], a
- ld [wRoamMon2MapGroup], a
- ld [wRoamMon3MapGroup], a
- ld [wRoamMon1MapNumber], a
- ld [wRoamMon2MapNumber], a
- ld [wRoamMon3MapNumber], a
-
- ld a, BANK(sMysteryGiftItem)
- call GetSRAMBank
- ld hl, sMysteryGiftItem
- xor a
- ld [hli], a
- dec a
- ld [hl], a
- call CloseSRAM
-
- call LoadOrRegenerateLuckyIDNumber
- call InitializeMagikarpHouse
-
- xor a
- ld [MonType], a
-
- ld [JohtoBadges], a
- ld [KantoBadges], a
-
- ld [Coins], a
- ld [Coins + 1], a
-
-START_MONEY EQU 3000
-
-IF START_MONEY / $10000
- ld a, START_MONEY / $10000
-ENDC
- ld [Money], a
- ld a, START_MONEY / $100 % $100
- ld [Money + 1], a
- ld a, START_MONEY % $100
- ld [Money + 2], a
-
- xor a
- ld [wdc17], a
-
- ld hl, wdc19
- ld [hl], 2300 / $10000
- inc hl
- ld [hl], 2300 / $100 % $100
- inc hl
- ld [hl], 2300 % $100
-
- call InitializeNPCNames
-
- callba InitDecorations
-
- callba DeleteScratchmons
-
- callba DeleteMobileEventIndex
-
- call ResetGameTime
- ret
-; 5ca1
-
-InitList: ; 5ca1
-; Loads 0 in the count and -1 in the first item or mon slot.
- xor a
- ld [hli], a
- dec a
- ld [hl], a
- ret
-; 5ca6
-
-SetDefaultBoxNames: ; 5ca6
- ld hl, wBoxNames
- ld c, 0
-.loop
- push hl
- ld de, .Box
- call CopyName2
- dec hl
- ld a, c
- inc a
- cp 10
- jr c, .less
- sub 10
- ld [hl], "1"
- inc hl
-
-.less
- add "0"
- ld [hli], a
- ld [hl], "@"
- pop hl
- ld de, 9
- add hl, de
- inc c
- ld a, c
- cp NUM_BOXES
- jr c, .loop
- ret
-
-.Box
- db "BOX@"
-; 5cd3
-
-InitializeMagikarpHouse: ; 5cd3
- ld hl, wBestMagikarpLengthFeet
- ld a, $3
- ld [hli], a
- ld a, $6
- ld [hli], a
- ld de, .Ralph
- call CopyName2
- ret
-; 5ce3
-
-.Ralph ; 5ce3
- db "RALPH@"
-; 5ce9
-
-InitializeNPCNames: ; 5ce9
- ld hl, .Rival
- ld de, RivalName
- call .Copy
-
- ld hl, .Mom
- ld de, MomsName
- call .Copy
-
- ld hl, .Red
- ld de, RedsName
- call .Copy
-
- ld hl, .Green
- ld de, GreensName
-
-.Copy
- ld bc, NAME_LENGTH
- call CopyBytes
- ret
-
-.Rival db "???@"
-.Red db "RED@"
-.Green db "GREEN@"
-.Mom db "MOM@"
-; 5d23
-
-InitializeWorld: ; 5d23
- call ShrinkPlayer
- callba GetSpawnCoord
- callba _InitializeStartDay
- ret
-; 5d33
-
-LoadOrRegenerateLuckyIDNumber: ; 5d33
- ld a, BANK(sLuckyIDNumber)
- call GetSRAMBank
- ld a, [CurDay]
- inc a
- ld b, a
- ld a, [sLuckyNumberDay]
- cp b
- ld a, [sLuckyIDNumber + 1]
- ld c, a
- ld a, [sLuckyIDNumber]
- jr z, .skip
- ld a, b
- ld [sLuckyNumberDay], a
- call Random
- ld c, a
- call Random
-
-.skip
- ld [wLuckyIDNumber], a
- ld [sLuckyIDNumber], a
- ld a, c
- ld [wLuckyIDNumber + 1], a
- ld [sLuckyIDNumber + 1], a
- jp CloseSRAM
-; 5d65
-
-Continue: ; 5d65
- callba TryLoadSaveFile
- jr c, .FailToLoad
- callba Function150b9
- call LoadStandardMenuDataHeader
- call Function5e85
- ld a, $1
- ld [hBGMapMode], a
- ld c, 20
- call DelayFrames
- call ConfirmContinue
- jr nc, .Check1Pass
- call WriteBackup
- jr .FailToLoad
-
-.Check1Pass
- call Function5e48
- jr nc, .Check2Pass
- call WriteBackup
- jr .FailToLoad
-
-.Check2Pass
- ld a, $8
- ld [MusicFade], a
- ld a, MUSIC_NONE % $100
- ld [MusicFadeIDLo], a
- ld a, MUSIC_NONE / $100
- ld [MusicFadeIDHi], a
- call ClearBGPalettes
- call Function5df0
- call WriteBackup
- call ClearTileMap
- ld c, 20
- call DelayFrames
- callba JumpRoamMons
- callba Function105091
- callba Function140ae ; time-related
- ld a, [wSpawnAfterChampion]
- cp SPAWN_LANCE
- jr z, .SpawnAfterE4
- ld a, MAPSETUP_CONTINUE
- ld [hMapEntryMethod], a
- jp FinishContinueFunction
-
-.FailToLoad
- ret
-
-.SpawnAfterE4
- ld a, SPAWN_NEW_BARK
- ld [wd001], a
- call PostCreditsSpawn
- jp FinishContinueFunction
-; 5de2
-
-SpawnAfterRed: ; 5de2
- ld a, SPAWN_MT_SILVER
- ld [wd001], a
-; 5de7
-
-PostCreditsSpawn: ; 5de7
- xor a
- ld [wSpawnAfterChampion], a
- ld a, MAPSETUP_WARP
- ld [hMapEntryMethod], a
- ret
-; 5df0
-
-Function5df0: ; 5df0
- callba Function10632f
- ret nc
- ld hl, wd479
- bit 1, [hl]
- ret nz
- ld a, $5
- ld [MusicFade], a
- ld a, MUSIC_MOBILE_ADAPTER_MENU % $100
- ld [MusicFadeIDLo], a
- ld a, MUSIC_MOBILE_ADAPTER_MENU / $100
- ld [MusicFadeIDHi], a
- ld c, 20
- call DelayFrames
- ld c, $1
- callba Function4802f
- callba Function1509a
- ld a, $8
- ld [MusicFade], a
- ld a, MUSIC_NONE % $100
- ld [MusicFadeIDLo], a
- ld a, MUSIC_NONE / $100
- ld [MusicFadeIDHi], a
- ld c, 35
- call DelayFrames
- ret
-; 5e34
-
-ConfirmContinue: ; 5e34
-.loop
- call DelayFrame
- call GetJoypad
- ld hl, hJoyPressed
- bit 0, [hl]
- jr nz, .PressA
- bit 1, [hl]
- jr z, .loop
- scf
- ret
-
-.PressA
- ret
-; 5e48
-
-Function5e48: ; 5e48
- call Function6e3
- and %10000000 ; Day count exceeded 16383
- jr z, .pass
- callba RestartClock
- ld a, c
- and a
- jr z, .pass
- scf
- ret
-
-.pass
- xor a
- ret
-; 5e5d
-
-FinishContinueFunction: ; 5e5d
-.loop
- xor a
- ld [wc2c1], a
- ld [wLinkMode], a
- ld hl, GameTimerPause
- set 0, [hl]
- res 7, [hl]
- ld hl, wEnteredMapFromContinue
- set 1, [hl]
- callba OverworldLoop
- ld a, [wSpawnAfterChampion]
- cp SPAWN_RED
- jr z, .AfterRed
- jp Reset
-
-.AfterRed
- call SpawnAfterRed
- jr .loop
-; 5e85
-
-Function5e85: ; 5e85
- call Function6e3
- and $80
- jr z, .asm_5e93
- lb de, 4, 8
- call Function5eaf
- ret
-
-.asm_5e93
- lb de, 4, 8
- call Function5e9f
- ret
-; 5e9a
-
-Function5e9a: ; 5e9a
- lb de, 4, 0
- jr Function5e9f
-; 5e9f
-
-Function5e9f: ; 5e9f
- call Function5ebf
- call Function5f1c
- call Function5f40
- call LoadFontsExtra
- call UpdateSprites
- ret
-; 5eaf
-
-Function5eaf: ; 5eaf
- call Function5ebf
- call Function5f1c
- call Function5f48
- call LoadFontsExtra
- call UpdateSprites
- ret
-; 5ebf
-
-Function5ebf: ; 5ebf
- xor a
- ld [hBGMapMode], a
- ld hl, MenuDataHeader_0x5ed9
- ld a, [StatusFlags]
- bit 0, a ; pokedex
- jr nz, .asm_5ecf
- ld hl, MenuDataHeader_0x5efb
-
-.asm_5ecf
- call Function1e35
- call MenuBox
- call Function1c89
- ret
-; 5ed9
-
-MenuDataHeader_0x5ed9: ; 5ed9
- db $40 ; flags
- db 00, 00 ; start coords
- db 09, 15 ; end coords
- dw MenuData2_0x5ee1
- db 1 ; default option
-; 5ee1
-
-MenuData2_0x5ee1: ; 5ee1
- db $00 ; flags
- db 4 ; items
- db "PLAYER@"
- db "BADGES@"
- db "#DEX@"
- db "TIME@"
-; 5efb
-
-MenuDataHeader_0x5efb: ; 5efb
- db $40 ; flags
- db 00, 00 ; start coords
- db 09, 15 ; end coords
- dw MenuData2_0x5f03
- db 1 ; default option
-; 5f03
-
-MenuData2_0x5f03: ; 5f03
- db $00 ; flags
- db 4 ; items
- db "PLAYER <PLAYER>@"
- db "BADGES@"
- db " @"
- db "TIME@"
-; 5f1c
-
-
-Function5f1c: ; 5f1c
- call MenuBoxCoord2Tile
- push hl
- ld de, $5d
- add hl, de
- call DisplayBadgeCount
- pop hl
- push hl
- ld de, $84
- add hl, de
- call DisplayPokedexNumCaught
- pop hl
- push hl
- ld de, $30
- add hl, de
- ld de, .Player
- call PlaceString
- pop hl
- ret
-
-.Player
- db "<PLAYER>@"
-; 5f40
-
-Function5f40: ; 5f40
- ld de, $a9
- add hl, de
- call DisplayGameTime
- ret
-; 5f48
-
-Function5f48: ; 5f48
- ld de, $a9
- add hl, de
- ld de, .text_5f53
- call PlaceString
- ret
-
-.text_5f53
- db " ???@"
-; 5f58
-
-DisplayBadgeCount: ; 5f58
- push hl
- ld hl, JohtoBadges
- ld b, $2
- call CountSetBits
- pop hl
- ld de, wd265
- lb bc, 1, 2
- jp PrintNum
-; 5f6b
-
-DisplayPokedexNumCaught: ; 5f6b
- ld a, [StatusFlags]
- bit 0, a
- ret z
- push hl
- ld hl, PokedexCaught
- ld b, $20
- call CountSetBits
- pop hl
- ld de, wd265
- lb bc, 1, 3
- jp PrintNum
-; 5f84
-
-DisplayGameTime: ; 5f84
- ld de, GameTimeHours
- lb bc, 2, 3
- call PrintNum
- ld [hl], $6d
- inc hl
- ld de, GameTimeMinutes
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- jp PrintNum
-; 5f99
-
-
-OakSpeech: ; 0x5f99
- callba InitClock
- call Function4dd
- call ClearTileMap
-
- ld de, MUSIC_ROUTE_30
- call PlayMusic
-
- call Function4a3
- call FadeToWhite
- xor a
- ld [CurPartySpecies], a
- ld a, POKEMON_PROF
- ld [TrainerClass], a
- call Intro_PrepTrainerPic
-
- ld b, $1c
- call GetSGBLayout
- call Intro_FadeInFrontpic
-
- ld hl, OakText1
- call PrintText
- call FadeToWhite
- call ClearTileMap
-
- ld a, WOOPER
- ld [CurSpecies], a
- ld [CurPartySpecies], a
- call GetBaseData
-
- hlcoord 6, 4
- call PrepMonFrontpic
-
- xor a
- ld [TempMonDVs], a
- ld [TempMonDVs + 1], a
-
- ld b, $1c
- call GetSGBLayout
- call Intro_WipeInFrontpic
-
- ld hl, OakText2
- call PrintText
- ld hl, OakText4
- call PrintText
- call FadeToWhite
- call ClearTileMap
-
- xor a
- ld [CurPartySpecies], a
- ld a, POKEMON_PROF
- ld [TrainerClass], a
- call Intro_PrepTrainerPic
-
- ld b, $1c
- call GetSGBLayout
- call Intro_FadeInFrontpic
-
- ld hl, OakText5
- call PrintText
- call FadeToWhite
- call ClearTileMap
-
- xor a
- ld [CurPartySpecies], a
- callba DrawIntroPlayerPic
-
- ld b, $1c
- call GetSGBLayout
- call Intro_FadeInFrontpic
-
- ld hl, OakText6
- call PrintText
- call NamePlayer
- ld hl, OakText7
- call PrintText
- ret
-
-OakText1: ; 0x6045
- text_jump _OakText1
- db "@"
-
-OakText2: ; 0x604a
- text_jump _OakText2
- start_asm
- ld a, WOOPER
- call PlayCry
- call WaitSFX
- ld hl, OakText3
- ret
-
-OakText3: ; 0x605b
- text_jump _OakText3
- db "@"
-
-OakText4: ; 0x6060
- text_jump _OakText4
- db "@"
-
-OakText5: ; 0x6065
- text_jump _OakText5
- db "@"
-
-OakText6: ; 0x606a
- text_jump _OakText6
- db "@"
-
-OakText7: ; 0x606f
- text_jump _OakText7
- db "@"
-
-NamePlayer: ; 0x6074
- callba MovePlayerPicRight
- callba ShowPlayerNamingChoices
- ld a, [MenuSelection2]
- dec a
- jr z, .NewName
- call StorePlayerName
- callba Function8c1d
- callba MovePlayerPicLeft
- ret
-
-.NewName
- ld b, 1
- ld de, PlayerName
- callba NamingScreen
-
- call FadeToWhite
- call ClearTileMap
-
- call LoadFontsExtra
- call WaitBGMap
-
- xor a
- ld [CurPartySpecies], a
- callba DrawIntroPlayerPic
-
- ld b, $1c
- call GetSGBLayout
- call Function4f0
-
- ld hl, PlayerName
- ld de, .Chris
- ld a, [PlayerGender]
- bit 0, a
- jr z, .Male
- ld de, .Kris
-.Male
- call InitName
- ret
-
-.Chris
- db "CHRIS@@@@@@"
-.Kris
- db "KRIS@@@@@@@"
-; 60e9
-
-Function60e9: ; Unreferenced
- call LoadMenuDataHeader
- call InterpretMenu2
- ld a, [MenuSelection2]
- dec a
- call CopyNameFromMenu
- call WriteBackup
- ret
-; 60fa
-
-StorePlayerName: ; 60fa
- ld a, "@"
- ld bc, NAME_LENGTH
- ld hl, PlayerName
- call ByteFill
- ld hl, PlayerName
- ld de, StringBuffer2
- call CopyName2
- ret
-; 610f
-
-ShrinkPlayer: ; 610f
-
- ld a, [hROMBank]
- push af
-
- ld a, 0 << 7 | 32 ; fade out
- ld [MusicFade], a
- ld de, MUSIC_NONE
- ld a, e
- ld [MusicFadeIDLo], a
- ld a, d
- ld [MusicFadeIDHi], a
-
- ld de, SFX_ESCAPE_ROPE
- call PlaySFX
- pop af
- rst Bankswitch
-
- ld c, 8
- call DelayFrames
-
- ld hl, Shrink1Pic
- ld b, BANK(Shrink1Pic)
- call ShrinkFrame
-
- ld c, 8
- call DelayFrames
-
- ld hl, Shrink2Pic
- ld b, BANK(Shrink2Pic)
- call ShrinkFrame
-
- ld c, 8
- call DelayFrames
-
- hlcoord 6, 5
- ld b, 7
- ld c, 7
- call ClearBox
-
- ld c, 3
- call DelayFrames
-
- call Intro_PlacePlayerSprite
- call LoadFontsExtra
-
- ld c, 50
- call DelayFrames
-
- call FadeToWhite
- call ClearTileMap
- ret
-; 616a
-
-Intro_FadeInFrontpic: ; 616a
- ld hl, IntroFadePalettes
- ld b, IntroFadePalettesEnd - IntroFadePalettes
-.loop
- ld a, [hli]
- call DmgToCgbBGPals
- ld c, 10
- call DelayFrames
- dec b
- jr nz, .loop
- ret
-; 617c
-
-IntroFadePalettes: ; 0x617c
- db %01010100
- db %10101000
- db %11111100
- db %11111000
- db %11110100
- db %11100100
-IntroFadePalettesEnd
-; 6182
-
-Intro_WipeInFrontpic: ; 6182
- ld a, $77
- ld [hWX], a
- call DelayFrame
- ld a, %11100100
- call DmgToCgbBGPals
-.loop
- call DelayFrame
- ld a, [hWX]
- sub $8
- cp -1
- ret z
- ld [hWX], a
- jr .loop
-; 619c
-
-Intro_PrepTrainerPic: ; 619c
- ld de, VTiles2
- callba GetTrainerPic
- xor a
- ld [hFillBox], a
- hlcoord 6, 4
- lb bc, 7, 7
- predef FillBox
- ret
-; 61b4
-
-ShrinkFrame: ; 61b4
- ld de, VTiles2
- ld c, $31
- predef DecompressPredef
- xor a
- ld [hFillBox], a
- hlcoord 6, 4
- lb bc, 7, 7
- predef FillBox
- ret
-; 61cd
-
-Intro_PlacePlayerSprite: ; 61cd
-
- callba GetPlayerIcon
- ld c, $c
- ld hl, VTiles0
- call Request2bpp
-
- ld hl, Sprites
- ld de, .sprites
- ld a, [de]
- inc de
-
- ld c, a
-.loop
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
-
- ld b, 0
- ld a, [PlayerGender]
- bit 0, a
- jr z, .male
- ld b, 1
-.male
- ld a, b
-
- ld [hli], a
- dec c
- jr nz, .loop
- ret
-; 61fe
-
-.sprites ; 61fe
- db 4
- db $4c, $48, 0
- db $4c, $50, 1
- db $54, $48, 2
- db $54, $50, 3
-; 620b
-
-
-Function620b: ; 620b
- callab Functione4579
- jr c, Function6219
- callba CrystalIntro
-
-Function6219: ; 6219
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
-
- call TitleScreen
- call DelayFrame
-.loop
- call Function627b
- jr nc, .loop
-
- call ClearSprites
- call ClearBGPalettes
-
- pop af
- ld [rSVBK], a
-
- ld hl, rLCDC
- res 2, [hl]
- call ClearScreen
- call Function3200
- xor a
- ld [hLCDStatCustom], a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- ld b, $8
- call GetSGBLayout
- call UpdateTimePals
- ld a, [wcf64]
- cp $5
- jr c, .ok
- xor a
-.ok
- ld e, a
- ld d, 0
- ld hl, .jumptable_626a
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 626a
-
-.jumptable_626a
- dw Function5ae8
- dw Function6389
- dw Function620b
- dw Function620b
- dw ResetClock
-; 6274
-
-
-TitleScreen: ; 6274
- callba _TitleScreen
- ret
-; 627b
-
-Function627b: ; 627b
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .done_title
- call TitleScreenScene
- callba SuicuneFrameIterator
- call DelayFrame
- and a
- ret
-
-.done_title
- scf
- ret
-; 6292
-
-Function6292: ; 6292 ; unreferenced
- ld a, [hVBlankCounter]
- and $7
- ret nz
- ld hl, LYOverrides + $5f
- ld a, [hl]
- dec a
- ld bc, 2 * SCREEN_WIDTH
- call ByteFill
- ret
-; 62a3
-
-TitleScreenScene: ; 62a3
- ld e, a
- ld d, 0
- ld hl, .scenes
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 62af
-
-.scenes
- dw TitleScreenEntrance
- dw TitleScreenTimer
- dw TitleScreenMain
- dw TitleScreenEnd
-; 62b7
-
-Function62b7: ; Unreferenced
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; 62bc
-
-
-TitleScreenEntrance: ; 62bc
-
-; Animate the logo:
-; Move each line by 4 pixels until our count hits 0.
- ld a, [hSCX]
- and a
- jr z, .done
- sub 4
- ld [hSCX], a
-
-; Lay out a base (all lines scrolling together).
- ld e, a
- ld hl, LYOverrides
- ld bc, 8 * 10 ; logo height
- call ByteFill
-
-; Reversed signage for every other line's position.
-; This is responsible for the interlaced effect.
- ld a, e
- xor -1
- inc a
-
- ld b, 8 * 10 / 2 ; logo height / 2
- ld hl, LYOverrides + 1
-.loop
- ld [hli], a
- inc hl
- dec b
- jr nz, .loop
-
- callba AnimateTitleCrystal
- ret
-
-.done
-; Next scene
- ld hl, wJumptableIndex
- inc [hl]
- xor a
- ld [hLCDStatCustom], a
-
-; Play the title screen music.
- ld de, MUSIC_TITLE
- call PlayMusic
-
- ld a, $88
- ld [hWY], a
- ret
-; 62f6
-
-
-TitleScreenTimer: ; 62f6
-
-; Next scene
- ld hl, wJumptableIndex
- inc [hl]
-
-; Start a timer
- ld hl, wcf65
- ld de, $1140 ; 73.6 seconds
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-; 6304
-
-TitleScreenMain: ; 6304
-
-; Run the timer down.
- ld hl, wcf65
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, e
- or d
- jr z, .end
-
- dec de
- ld [hl], d
- dec hl
- ld [hl], e
-
-; Save data can be deleted by pressing Up + B + Select.
- call GetJoypad
- ld hl, hJoyDown
- ld a, [hl]
- and D_UP + B_BUTTON + SELECT
- cp D_UP + B_BUTTON + SELECT
- jr z, .delete_save_data
-
-; To bring up the clock reset dialog:
-
-; Hold Down + B + Select to initiate the sequence.
- ld a, [$ffeb]
- cp $34
- jr z, .check_clock_reset
-
- ld a, [hl]
- and D_DOWN + B_BUTTON + SELECT
- cp D_DOWN + B_BUTTON + SELECT
- jr nz, .check_start
-
- ld a, $34
- ld [$ffeb], a
- jr .check_start
-
-; Keep Select pressed, and hold Left + Up.
-; Then let go of Select.
-.check_clock_reset
- bit 2, [hl] ; SELECT
- jr nz, .check_start
-
- xor a
- ld [$ffeb], a
-
- ld a, [hl]
- and D_LEFT + D_UP
- cp D_LEFT + D_UP
- jr z, .clock_reset
-
-; Press Start or A to start the game.
-.check_start
- ld a, [hl]
- and START | A_BUTTON
- jr nz, .incave
- ret
-
-.incave
- ld a, 0
- jr .done
-
-.delete_save_data
- ld a, 1
-
-.done
- ld [wcf64], a
-
-; Return to the intro sequence.
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-.end
-; Next scene
- ld hl, wJumptableIndex
- inc [hl]
-
-; Fade out the title screen music
- xor a
- ld [MusicFadeIDLo], a
- ld [MusicFadeIDHi], a
- ld hl, MusicFade
- ld [hl], 8 ; 1 second
-
- ld hl, wcf65
- inc [hl]
- ret
-
-.clock_reset
- ld a, 4
- ld [wcf64], a
-
-; Return to the intro sequence.
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-; 6375
-
-TitleScreenEnd: ; 6375
-
-; Wait until the music is done fading.
-
- ld hl, wcf65
- inc [hl]
-
- ld a, [MusicFade]
- and a
- ret nz
-
- ld a, 2
- ld [wcf64], a
-
-; Back to the intro.
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-; 6389
-
-Function6389: ; 6389
- callba Function4d54c
- jp Init
-; 6392
-
-ResetClock: ; 6392
- callba _ResetClock
- jp Init
-; 639b
-
-Function639b: ; unreferenced
- ; If bit 0 or 1 of [wcf65] is set, we don't need to be here.
- ld a, [wcf65]
- and $3
- ret nz
- ld bc, wc3a4
- ld hl, $a
- add hl, bc ; over-the-top compicated way to load wc3ae into hl
- ld l, [hl]
- ld h, 0
-rept 2
- add hl, hl
-endr
- ld de, Data63ca
- add hl, de
- ; If bit 2 of [wcf65] is set, get the second dw; else, get the first dw
- ld a, [wcf65]
- and %00000100
-rept 2
- srl a
-endr
- ld e, a
- ld d, 0
-rept 2
- add hl, de
-endr
- ld a, [hli]
- and a
- ret z
- ld e, a
- ld d, [hl]
- ld a, $1
- call Function3b2a
- ret
-; 63ca
-
-Data63ca: ; 63ca
- dw $505c, 0
- dw $685c, $585c
- dw $685c, $785c
- dw $885c, $785c
- dw 0, $785c
- dw 0, $585c
-; 63e2
-
-Copyright: ; 63e2
- call ClearTileMap
- call LoadFontsExtra
- ld de, CopyrightGFX
- ld hl, VTiles2 tile $60
- lb bc, BANK(CopyrightGFX), $1d
- call Request2bpp
- hlcoord 2, 7
- ld de, CopyrightString
- jp PlaceString
-; 63fd
-
-CopyrightString: ; 63fd
- ; ©1995-2001 Nintendo
- db $60, $61, $62, $63, $64, $65, $66
- db $67, $68, $69, $6a, $6b, $6c
-
- db $4e
-
- ; ©1995-2001 Creatures inc.
- db $60, $61, $62, $63, $64, $65, $66, $6d
- db $6e, $6f, $70, $71, $72, $7a, $7b, $7c
-
- db $4e
-
- ; ©1995-2001 GAME FREAK inc.
- db $60, $61, $62, $63, $64, $65, $66, $73, $74
- db $75, $76, $77, $78, $79, $7a, $7b, $7c
-
- db "@"
-; 642e
-
-GameInit:: ; 642e
- callba Function14f1c
- call ResetTextRelatedRAM
- call ClearBGPalettes
- call ClearTileMap
- ld a, VBGMap0 / $100
- ld [hBGMapAddress + 1], a
- xor a
- ld [hBGMapAddress], a
- ld [hJoyDown], a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $90
- ld [hWY], a
- call WaitBGMap
- jp Function620b
-; 6454
-
Function6454:: ; 6454
call DelayFrame
ld a, [hOAMUpdate]
@@ -1521,13 +99,13 @@
xor a
ld [hBGMapMode], a
ld [hWY], a
- callba Function64db ; no need to callba
+ callba Function64db ; no need to farcall
ld a, VBGMap0 / $100
call Function64b9
xor a
- ld [wd152], a
- ld a, $98
- ld [wd153], a
+ ld [wBGMapAnchor], a
+ ld a, VBGMap0 / $100
+ ld [wBGMapAnchor + 1], a
xor a
ld [hSCX], a
ld [hSCY], a
@@ -1597,7 +175,7 @@
ld hl, PartyMonNicknames
call GetNick
ld hl, StringBuffer1
- ld de, wd050
+ ld de, wd050_MonNick
ld bc, PKMN_NAME_LENGTH
call CopyBytes
@@ -1609,6 +187,10 @@
ld d, h
ld e, l
ld b, NUM_MOVES
+; Get the first empty move slot. This routine also serves to
+; determine whether the Pokemon learning the moves already has
+; all four slots occupied, in which case one would need to be
+; deleted.
.next
ld a, [hl]
and a
@@ -1616,7 +198,8 @@
inc hl
dec b
jr nz, .next
-
+; If we're here, we enter the routine for forgetting a move
+; to make room for the new move we're trying to learn.
push de
call ForgetMove
pop de
@@ -1639,7 +222,7 @@
.not_disabled
call GetMoveName
- ld hl, UnknownText_0x6684
+ ld hl, UnknownText_0x6684 ; 1, 2 and…
call PrintText
pop de
pop hl
@@ -1690,18 +273,18 @@
jp .learned
.cancel
- ld hl, UnknownText_0x6675
+ ld hl, UnknownText_0x6675 ; Stop learning <MOVE>?
call PrintText
call YesNoBox
jp c, .loop
- ld hl, UnknownText_0x667a
+ ld hl, UnknownText_0x667a ; <MON> did not learn <MOVE>.
call PrintText
ld b, 0
ret
.learned
- ld hl, UnknownText_0x666b
+ ld hl, UnknownText_0x666b ; <MON> learned <MOVE>!
call PrintText
ld b, 1
ret
@@ -1733,6 +316,7 @@
ld a, SCREEN_WIDTH * 2
ld [Buffer1], a
predef ListMoves
+ ; wMenuData3
ld a, $4
ld [wcfa1], a
ld a, $6
@@ -1790,32 +374,38 @@
; 666b
UnknownText_0x666b: ; 666b
+; <MON> learned <MOVE>!
text_jump UnknownText_0x1c5660
db "@"
; 6670
UnknownText_0x6670: ; 6670
+; Which move should be forgotten?
text_jump UnknownText_0x1c5678
db "@"
; 6675
UnknownText_0x6675: ; 6675
+; Stop learning <MOVE>?
text_jump UnknownText_0x1c5699
db "@"
; 667a
UnknownText_0x667a: ; 667a
+; <MON> did not learn <MOVE>.
text_jump UnknownText_0x1c56af
db "@"
; 667f
UnknownText_0x667f: ; 667f
+; <MON> is trying to learn <MOVE>. But <MON> can't learn more than
+; four moves. Delete an older move to make room for <MOVE>?
text_jump UnknownText_0x1c56c9
db "@"
; 6684
UnknownText_0x6684: ; 6684
- text_jump UnknownText_0x1c5740
+ text_jump UnknownText_0x1c5740 ; 1, 2 and…
start_asm
push de
ld de, SFX_SWITCH_POKEMON
@@ -1826,11 +416,13 @@
; 6695
UnknownText_0x6695: ; 6695
+; Poof! <MON> forgot <MOVE>. And…
text_jump UnknownText_0x1c574e
db "@"
; 669a
UnknownText_0x669a: ; 669a
+; HM moves can't be forgotten now.
text_jump UnknownText_0x1c5772
db "@"
; 669f
@@ -2122,10 +714,11 @@
ld hl, OBJECT_PALETTE
add hl, bc
bit 5, [hl]
- jr z, .asm_6ed9
+ jr z, .not_bit_5
+
ld hl, OBJECT_FLAGS1
add hl, bc
- bit 4, [hl]
+ bit 4, [hl] ; lost
push hl
push bc
call Function6f2c
@@ -2132,13 +725,13 @@
pop bc
pop hl
ret c
- jr .asm_6ee9
+ jr .resume
-.asm_6ed9
+.not_bit_5
ld hl, OBJECT_FLAGS1
add hl, bc
bit 4, [hl]
- jr nz, .asm_6ee9
+ jr nz, .resume
push hl
push bc
call Function6f07
@@ -2146,29 +739,31 @@
pop hl
ret c
-.asm_6ee9
+.resume
bit 6, [hl]
- jr nz, .asm_6ef5
+ jr nz, .bit_6
push hl
push bc
- call Function7009
+ call WillPersonBumpIntoSomeoneElse
pop bc
pop hl
ret c
-.asm_6ef5
+.bit_6
bit 5, [hl]
- jr nz, .asm_6f05
+ jr nz, .bit_5
push hl
- call Function70a4
+ call HasPersonReachedMovementLimit
pop hl
ret c
+
push hl
- call Function70ed
+ call IsPersonMovingOffEdgeOfScreen
pop hl
ret c
-.asm_6f05
+
+.bit_5
and a
ret
; 6f07
@@ -2177,10 +772,10 @@
Function6f07: ; 6f07
call Function6f5f
ret c
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld d, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld e, [hl]
ld hl, OBJECT_PALETTE
@@ -2187,7 +782,7 @@
add hl, bc
bit 7, [hl]
jp nz, Function6fa1
- ld hl, OBJECT_STANDING_TILE
+ ld hl, OBJECT_NEXT_TILE
add hl, bc
ld a, [hl]
ld d, a
@@ -2201,7 +796,7 @@
Function6f2c: ; 6f2c
call Function6f5f
ret c
- ld hl, OBJECT_STANDING_TILE
+ ld hl, OBJECT_NEXT_TILE
add hl, bc
ld a, [hl]
call GetTileCollision
@@ -2212,7 +807,7 @@
; 6f3e
Function6f3e: ; 6f3e
- ld hl, OBJECT_STANDING_TILE
+ ld hl, OBJECT_NEXT_TILE
add hl, bc
ld a, [hl]
call Function6f7f
@@ -2238,7 +833,7 @@
; 6f5f
Function6f5f: ; 6f5f
- ld hl, OBJECT_NEXT_TILE
+ ld hl, OBJECT_STANDING_TILE
add hl, bc
ld a, [hl]
call Function6f7f
@@ -2323,12 +918,12 @@
inc e
.asm_6fc2
- call Function2a3c
+ call GetCoordTile
call GetTileCollision
pop de
and a
jr nz, .asm_6fd7
- call Function2a3c
+ call GetCoordTile
call GetTileCollision
and a
jr nz, .asm_6fd7
@@ -2350,7 +945,7 @@
call CheckCounterTile
jr nz, .asm_6ff1
- ld a, [PlayerMapX]
+ ld a, [PlayerNextMapX]
sub d
cpl
inc a
@@ -2357,7 +952,7 @@
add d
ld d, a
- ld a, [PlayerMapY]
+ ld a, [PlayerNextMapY]
sub e
cpl
inc a
@@ -2368,7 +963,7 @@
ld bc, ObjectStructs ; redundant
ld a, 0
ld [hMapObjectIndexBuffer], a
- call Function7041
+ call IsNPCAtCoord
ret nc
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
@@ -2384,28 +979,28 @@
; 7009
-Function7009: ; 7009
- ld hl, OBJECT_MAP_X
+WillPersonBumpIntoSomeoneElse: ; 7009
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld d, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld e, [hl]
- jr Function7041
+ jr IsNPCAtCoord
; 7015
Function7015: ; unreferenced
ld a, [hMapObjectIndexBuffer]
call GetObjectStruct
- call Function7021
- call Function7041
+ call .CheckWillBeFacingNPC
+ call IsNPCAtCoord
ret
-Function7021: ; 7021
- ld hl, OBJECT_MAP_X
+.CheckWillBeFacingNPC: ; 7021
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld d, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld e, [hl]
call GetSpriteDirection
@@ -2431,7 +1026,7 @@
ret
; 7041
-Function7041: ; 7041
+IsNPCAtCoord: ; 7041
ld bc, ObjectStructs
xor a
.loop
@@ -2438,25 +1033,28 @@
ld [hObjectStructIndexBuffer], a
call GetObjectSprite
jr z, .next
+
ld hl, OBJECT_FLAGS1
add hl, bc
bit 7, [hl]
jr nz, .next
+
ld hl, OBJECT_PALETTE
add hl, bc
bit 7, [hl]
jr z, .got
+
call Function7171
jr nc, .ok
jr .ok2
.got
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld a, [hl]
cp d
jr nz, .ok
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld a, [hl]
cp e
@@ -2470,12 +1068,12 @@
jr nz, .setcarry
.ok
- ld hl, OBJECT_NEXT_MAP_X
+ ld hl, OBJECT_MAP_X
add hl, bc
ld a, [hl]
cp d
jr nz, .next
- ld hl, OBJECT_NEXT_MAP_Y
+ ld hl, OBJECT_MAP_Y
add hl, bc
ld a, [hl]
cp e
@@ -2503,17 +1101,17 @@
ret
; 70a4
-Function70a4: ; 70a4
- ld hl, OBJECT_22
+HasPersonReachedMovementLimit: ; 70a4
+ ld hl, OBJECT_RADIUS
add hl, bc
ld a, [hl]
and a
- jr z, .asm_70e9
+ jr z, .nope
and $f
- jr z, .asm_70c7
+ jr z, .check_y
ld e, a
ld d, a
- ld hl, OBJECT_20
+ ld hl, OBJECT_INIT_X
add hl, bc
ld a, [hl]
sub d
@@ -2521,24 +1119,24 @@
ld a, [hl]
add e
ld e, a
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld a, [hl]
cp d
- jr z, .asm_70eb
+ jr z, .yes
cp e
- jr z, .asm_70eb
+ jr z, .yes
-.asm_70c7
- ld hl, OBJECT_22
+.check_y
+ ld hl, OBJECT_RADIUS
add hl, bc
ld a, [hl]
swap a
and $f
- jr z, .asm_70e9
+ jr z, .nope
ld e, a
ld d, a
- ld hl, OBJECT_21
+ ld hl, OBJECT_INIT_Y
add hl, bc
ld a, [hl]
sub d
@@ -2546,58 +1144,58 @@
ld a, [hl]
add e
ld e, a
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld a, [hl]
cp d
- jr z, .asm_70eb
+ jr z, .yes
cp e
- jr z, .asm_70eb
+ jr z, .yes
-.asm_70e9
+.nope
xor a
ret
-.asm_70eb
+.yes
scf
ret
; 70ed
-Function70ed: ; 70ed
- ld hl, OBJECT_MAP_X
+IsPersonMovingOffEdgeOfScreen: ; 70ed
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld a, [XCoord]
cp [hl]
- jr z, .asm_70fe
- jr nc, .asm_7111
+ jr z, .check_y
+ jr nc, .yes
add $9
cp [hl]
- jr c, .asm_7111
+ jr c, .yes
-.asm_70fe
- ld hl, OBJECT_MAP_Y
+.check_y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld a, [YCoord]
cp [hl]
- jr z, .asm_710f
- jr nc, .asm_7111
+ jr z, .nope
+ jr nc, .yes
add $8
cp [hl]
- jr c, .asm_7111
+ jr c, .yes
-.asm_710f
+.nope
and a
ret
-.asm_7111
+.yes
scf
ret
; 7113
Function7113: ; unreferenced
- ld a, [PlayerMapX]
+ ld a, [PlayerNextMapX]
ld d, a
- ld a, [PlayerMapY]
+ ld a, [PlayerNextMapY]
ld e, a
ld bc, ObjectStructs
xor a
@@ -2604,46 +1202,46 @@
.loop
ld [hObjectStructIndexBuffer], a
call GetObjectSprite
- jr z, .asm_7160
+ jr z, .next
ld hl, OBJECT_MOVEMENTTYPE
add hl, bc
ld a, [hl]
cp SPRITEMOVEDATA_SNORLAX
- jr nz, .asm_7136
+ jr nz, .not_snorlax
call Function7171
- jr c, .asm_716f
- jr .asm_7160
+ jr c, .yes
+ jr .next
-.asm_7136
- ld hl, OBJECT_MAP_Y
+.not_snorlax
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld a, [hl]
cp e
- jr nz, .asm_714e
- ld hl, OBJECT_MAP_X
+ jr nz, .check_current_coords
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld a, [hl]
cp d
- jr nz, .asm_714e
+ jr nz, .check_current_coords
ld a, [hObjectStructIndexBuffer]
cp $0
- jr z, .asm_7160
- jr .asm_716f
+ jr z, .next
+ jr .yes
-.asm_714e
- ld hl, OBJECT_NEXT_MAP_Y
+.check_current_coords
+ ld hl, OBJECT_MAP_Y
add hl, bc
ld a, [hl]
cp e
- jr nz, .asm_7160
- ld hl, OBJECT_NEXT_MAP_X
+ jr nz, .next
+ ld hl, OBJECT_MAP_X
add hl, bc
ld a, [hl]
cp d
- jr nz, .asm_7160
- jr .asm_716f
+ jr nz, .next
+ jr .yes
-.asm_7160
+.next
ld hl, OBJECT_STRUCT_LENGTH
add hl, bc
ld b, h
@@ -2655,7 +1253,7 @@
xor a
ret
-.asm_716f
+.yes
scf
ret
; 7171
@@ -2662,24 +1260,24 @@
Function7171: ; 7171
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld a, d
sub [hl]
- jr c, .asm_718b
+ jr c, .nope
cp $2
- jr nc, .asm_718b
- ld hl, OBJECT_MAP_Y
+ jr nc, .nope
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld a, e
sub [hl]
- jr c, .asm_718b
+ jr c, .nope
cp $2
- jr nc, .asm_718b
+ jr nc, .nope
scf
ret
-.asm_718b
+.nope
and a
ret
; 718d
@@ -2950,7 +1548,7 @@
; Caught data.
ld b, 0
- callba SetPartymonCaughtData
+ callba SetGiftPartyMonCaughtData
; Holding a Berry.
ld bc, PARTYMON_STRUCT_LENGTH
@@ -3214,7 +1812,7 @@
call GetMapObject
ld hl, MAPOBJECT_COLOR
add hl, bc
- ln e, (1 << 3) | PAL_OW_RED, $0
+ ln e, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT
ld a, [wPlayerSpriteSetupFlags]
bit 2, a
jr nz, .ok
@@ -3221,7 +1819,7 @@
ld a, [PlayerGender]
bit 0, a
jr z, .ok
- ln e, (1 << 3) | PAL_OW_BLUE, $0
+ ln e, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT
.ok
ld [hl], e
@@ -3231,9 +1829,9 @@
ld a, $0
ld [hObjectStructIndexBuffer], a
ld de, ObjectStructs
- call Function8116
- ld a, $0
- ld [wd4cf], a
+ call CopyMapObjectToObjectStruct
+ ld a, PLAYER
+ ld [wCenteredObject], a
ret
; 8071
@@ -3241,7 +1839,7 @@
; A dummy map object used to initialize the player object.
; Shorter than the actual amount copied by two bytes.
; Said bytes seem to be unused.
- person_event SPRITE_CHRIS, -4, -4, SPRITEMOVEDATA_PLAYER, 15, 15, -1, -1, 0, 0, 0, 0, -1
+ person_event SPRITE_CHRIS, -4, -4, SPRITEMOVEDATA_PLAYER, 15, 15, -1, -1, 0, PERSONTYPE_SCRIPT, 0, 0, -1
; 807e
CopyDECoordsToMapObject:: ; 807e
@@ -3277,10 +1875,10 @@
call CheckObjectVisibility
ret c
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld d, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld e, [hl]
ld a, [hMapObjectIndexBuffer]
@@ -3294,28 +1892,28 @@
ld a, [XCoord]
add 4
ld d, a
- ld hl, PlayerMapX
+ ld hl, PlayerNextMapX
sub [hl]
ld [hl], d
ld hl, MapObjects + MAPOBJECT_X_COORD
ld [hl], d
- ld hl, PlayerNextMapX
+ ld hl, PlayerMapX
ld [hl], d
ld d, a
ld a, [YCoord]
add 4
ld e, a
- ld hl, PlayerMapY
+ ld hl, PlayerNextMapY
sub [hl]
ld [hl], e
ld hl, MapObjects + MAPOBJECT_Y_COORD
ld [hl], e
- ld hl, PlayerNextMapY
+ ld hl, PlayerMapY
ld [hl], e
ld e, a
ld a, [wObjectFollow_Leader]
cp $0
- ret nz
+ ret nz ; wtf
ret
; 80e7
@@ -3324,6 +1922,7 @@
call CheckObjectMask
and a
ret nz ; masked
+
ld hl, ObjectStructs + OBJECT_STRUCT_LENGTH * 1
ld a, 1
ld de, OBJECT_STRUCT_LENGTH
@@ -3338,15 +1937,16 @@
cp NUM_OBJECT_STRUCTS
jr nz, .loop
scf
- ret
+ ret ; overflow
.done
ld d, h
ld e, l
- call Function8116
+ call CopyMapObjectToObjectStruct
ld hl, VramState
bit 7, [hl]
ret z
+
ld hl, OBJECT_FLAGS2
add hl, de
set 5, [hl]
@@ -3353,62 +1953,71 @@
ret
; 8116
-Function8116: ; 8116
- call Function811d
- call Function8286
+CopyMapObjectToObjectStruct: ; 8116
+ call .CopyMapObjectToTempObject
+ call CopyTempObjectToObjectStruct
ret
; 811d
-Function811d: ; 811d
+.CopyMapObjectToTempObject: ; 811d
ld a, [hObjectStructIndexBuffer]
ld hl, MAPOBJECT_OBJECT_STRUCT_ID
add hl, bc
ld [hl], a
+
ld a, [hMapObjectIndexBuffer]
- ld [wc2f0], a
+ ld [wTempObjectCopyMapObjectIndex], a
+
ld hl, MAPOBJECT_SPRITE
add hl, bc
ld a, [hl]
- ld [wc2f1], a
- call Function180e
- ld [wc2f2], a
+ ld [wTempObjectCopySprite], a
+
+ call GetSpriteVTile
+ ld [wTempObjectCopySpriteVTile], a
+
ld a, [hl]
call GetSpritePalette
- ld [wc2f3], a
+ ld [wTempObjectCopyPalette], a
+
ld hl, MAPOBJECT_COLOR
add hl, bc
ld a, [hl]
and $f0
- jr z, .no_color
+ jr z, .skip_color_override
swap a
- and $7
- ld [wc2f3], a
+ and $7 ; OAM_PALETTE
+ ld [wTempObjectCopyPalette], a
-.no_color
+.skip_color_override
ld hl, MAPOBJECT_MOVEMENT
add hl, bc
ld a, [hl]
- ld [wc2f4], a
+ ld [wTempObjectCopyMovement], a
+
ld hl, MAPOBJECT_RANGE
add hl, bc
ld a, [hl]
- ld [wc2f5], a
+ ld [wTempObjectCopyRange], a
+
ld hl, MAPOBJECT_X_COORD
add hl, bc
ld a, [hl]
- ld [wc2f6], a
+ ld [wTempObjectCopyX], a
+
ld hl, MAPOBJECT_Y_COORD
add hl, bc
ld a, [hl]
- ld [wc2f7], a
+ ld [wTempObjectCopyY], a
+
ld hl, MAPOBJECT_RADIUS
add hl, bc
ld a, [hl]
- ld [wc2f8], a
+ ld [wTempObjectCopyRadius], a
ret
; 8177
-Function8177: ; 8177
+InitializeVisibleSprites: ; 8177
ld bc, MapObjects + OBJECT_LENGTH
ld a, 1
.loop
@@ -3418,15 +2027,18 @@
ld a, [hl]
and a
jr z, .next
+
ld hl, MAPOBJECT_OBJECT_STRUCT_ID
add hl, bc
ld a, [hl]
cp -1
jr nz, .next
+
ld a, [XCoord]
ld d, a
ld a, [YCoord]
ld e, a
+
ld hl, MAPOBJECT_X_COORD
add hl, bc
ld a, [hl]
@@ -3433,8 +2045,10 @@
add 1
sub d
jr c, .next
+
cp MAPOBJECT_SCREEN_WIDTH
jr nc, .next
+
ld hl, MAPOBJECT_Y_COORD
add hl, bc
ld a, [hl]
@@ -3441,12 +2055,14 @@
add 1
sub e
jr c, .next
+
cp MAPOBJECT_SCREEN_HEIGHT
jr nc, .next
+
push bc
call CopyObjectStruct
pop bc
- jp c, Function81c9
+ jp c, .ret
.next
ld hl, OBJECT_LENGTH
@@ -3460,21 +2076,21 @@
ret
; 81c9
-Function81c9: ; 81c9
+.ret: ; 81c9
ret
; 81ca
Function81ca:: ; 81ca
nop
- ld a, [wd151]
+ ld a, [wPlayerStepDirection]
cp $ff
ret z
- ld hl, Table81d6
+ ld hl, .jumptable
rst JumpTable
ret
; 81d6
-Table81d6: ; 81d6
+.jumptable: ; 81d6
dw Function81e5
dw Function81de
dw Function8232
@@ -3598,49 +2214,50 @@
; 8286
-Function8286: ; 8286
- ld a, [wc2f0]
+CopyTempObjectToObjectStruct: ; 8286
+ ld a, [wTempObjectCopyMapObjectIndex]
ld hl, OBJECT_MAP_OBJECT_INDEX
add hl, de
ld [hl], a
- ld a, [wc2f4]
- call Function1a61
- ld a, [wc2f3]
+ ld a, [wTempObjectCopyMovement]
+ call CopySpriteMovementData
+
+ ld a, [wTempObjectCopyPalette]
ld hl, OBJECT_PALETTE
add hl, de
or [hl]
ld [hl], a
- ld a, [wc2f7]
- call Function82d5
+ ld a, [wTempObjectCopyY]
+ call .InitYCoord
- ld a, [wc2f6]
- call Function82f1
+ ld a, [wTempObjectCopyX]
+ call .InitXCoord
- ld a, [wc2f1]
+ ld a, [wTempObjectCopySprite]
ld hl, OBJECT_SPRITE
add hl, de
ld [hl], a
- ld a, [wc2f2]
+ ld a, [wTempObjectCopySpriteVTile]
ld hl, OBJECT_SPRITE_TILE
add hl, de
ld [hl], a
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, de
- ld [hl], $0
+ ld [hl], STEP_TYPE_00
ld hl, OBJECT_FACING_STEP
add hl, de
- ld [hl], $ff
+ ld [hl], STANDING
- ld a, [wc2f8]
- call Function830d
+ ld a, [wTempObjectCopyRadius]
+ call .InitRadius
- ld a, [wc2f5]
- ld hl, OBJECT_32
+ ld a, [wTempObjectCopyRange]
+ ld hl, OBJECT_RANGE
add hl, de
ld [hl], a
@@ -3648,13 +2265,15 @@
ret
; 82d5
-Function82d5: ; 82d5
- ld hl, OBJECT_21
+.InitYCoord: ; 82d5
+ ld hl, OBJECT_INIT_Y
add hl, de
ld [hl], a
- ld hl, OBJECT_MAP_Y
+
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, de
ld [hl], a
+
ld hl, YCoord
sub [hl]
and $f
@@ -3667,11 +2286,11 @@
ret
; 82f1
-Function82f1: ; 82f1
- ld hl, OBJECT_20
+.InitXCoord: ; 82f1
+ ld hl, OBJECT_INIT_X
add hl, de
ld [hl], a
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, de
ld [hl], a
ld hl, XCoord
@@ -3686,7 +2305,7 @@
ret
; 830d
-Function830d: ; 830d
+.InitRadius: ; 830d
ld h, a
inc a
and $f
@@ -3695,7 +2314,7 @@
add $10
and $f0
or l
- ld hl, OBJECT_22
+ ld hl, OBJECT_RADIUS
add hl, de
ld [hl], a
ret
@@ -3745,19 +2364,19 @@
call GetObjectStruct
; get last talked coords, load to bc
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld a, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld c, [hl]
ld b, a
; get player coords, load to de
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, de
ld a, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, de
ld e, [hl]
ld d, a
@@ -3811,15 +2430,15 @@
ret c
; Person 2 is now in bc, person 1 is now in de
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld a, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld c, [hl]
ld b, a
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, de
ld a, [hl]
cp b
@@ -3833,7 +2452,7 @@
jr .continue
.same_x
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, de
ld a, [hl]
cp c
@@ -3846,7 +2465,7 @@
dec c
.continue
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, de
ld [hl], b
ld a, b
@@ -3859,7 +2478,7 @@
ld hl, OBJECT_SPRITE_X
add hl, de
ld [hl], a
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, de
ld [hl], c
ld a, c
@@ -3873,15 +2492,15 @@
add hl, de
ld [hl], a
ld a, [hObjectStructIndexBuffer]
- ld hl, OBJECT_32
+ ld hl, OBJECT_RANGE
add hl, de
ld [hl], a
ld hl, OBJECT_MOVEMENTTYPE
add hl, de
ld [hl], SPRITEMOVEDATA_FOLLOWNOTEXACT
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, de
- ld [hl], $0
+ ld [hl], STEP_TYPE_00
ret
; 8417
@@ -3916,10 +2535,10 @@
; load the coordinates of object d into bc
ld a, d
call GetObjectStruct
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld a, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld c, [hl]
ld b, a
@@ -3927,10 +2546,10 @@
; load the coordinates of object e into de
ld a, e
call GetObjectStruct
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld d, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld e, [hl]
pop bc
@@ -4010,15 +2629,15 @@
Function849d: ; 849d
ld a, [wObjectFollow_Leader]
call GetObjectStruct
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld d, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld e, [hl]
ld a, [wObjectFollow_Follower]
call GetObjectStruct
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld a, d
cp [hl]
@@ -4034,7 +2653,7 @@
ret
.check_y
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld a, e
cp [hl]
@@ -4502,7 +3121,7 @@
ld a, [hl]
ld [bc], a
- callba Functionf8b9
+ callba RestoreAllPP
ret
; c699
@@ -4811,7 +3430,7 @@
ld e, a
callba OWCutAnimation
call BufferScreen
- call Function2914
+ call GetMovementPermissions
call UpdateSprites
call DelayFrame
call LoadStandardFont
@@ -4847,42 +3466,42 @@
CutTreeBlockPointers: ; c862
; Which tileset are we in?
- dbw $01, .one
- dbw $02, .two
- dbw $03, .three
- dbw $19, .twentyfive
- dbw $1f, .thirtyone
+ dbw TILESET_JOHTO_1, .one
+ dbw TILESET_JOHTO_2, .two
+ dbw TILESET_KANTO, .three
+ dbw TILESET_PARK, .twentyfive
+ dbw TILESET_ILEX_FOREST, .thirtyone
db -1
; c872
.one: ; Johto OW
; Which meta tile are we facing, which should we replace it with, and does it affect encounters?
- db $03, $02, $01
- db $5b, $3c, $00
- db $5f, $3d, $00
- db $63, $3f, $00
- db $67, $3e, $00
+ db $03, $02, $01 ; grass
+ db $5b, $3c, $00 ; tree
+ db $5f, $3d, $00 ; tree
+ db $63, $3f, $00 ; tree
+ db $67, $3e, $00 ; tree
db -1
; c882
.two: ; Goldenrod area
- db $03, $02, $01
+ db $03, $02, $01 ; grass
db -1
; c886
.three: ; Kanto OW
- db $0b, $0a, $01
- db $32, $6d, $00
- db $33, $6c, $00
- db $34, $6f, $00
- db $35, $4c, $00
- db $60, $6e, $00
+ db $0b, $0a, $01 ; grass
+ db $32, $6d, $00 ; tree
+ db $33, $6c, $00 ; tree
+ db $34, $6f, $00 ; tree
+ db $35, $4c, $00 ; tree
+ db $60, $6e, $00 ; tree
db -1
; c899
.twentyfive: ; National Park
- db $13, $03, $01
- db $03, $04, $01
+ db $13, $03, $01 ; grass
+ db $03, $04, $01 ; grass
db -1
; c8a0
@@ -4892,7 +3511,7 @@
; c8a4
WhirlpoolBlockPointers: ; c8a4
- dbw $01, .one
+ dbw TILESET_JOHTO_1, .one
db -1
; c8a8
@@ -5278,15 +3897,15 @@
farscall Script_AbortBugContest
special WarpToSpawnPoint
callasm DelayLoadingNewSprites
- writecode VAR_MOVEMENT, $0
+ writecode VAR_MOVEMENT, PLAYER_NORMAL
newloadmap MAPSETUP_FLY
callasm Function8cb33
special WaitSFX
- callasm Functioncacb
+ callasm .ReturnFromFly
end
; 0xcacb
-Functioncacb: ; cacb
+.ReturnFromFly: ; cacb
callba Function561d
call DelayFrame
call ReplaceKrisSprite
@@ -5356,7 +3975,7 @@
CheckContinueWaterfall: ; cb38
xor a
ld [ScriptVar], a
- ld a, [PlayerStandingTile]
+ ld a, [PlayerNextTile]
call CheckWaterfallTile
ret z
callba MobileFn_1060c1
@@ -5543,26 +4162,25 @@
closetext
loadmovesprites
playsound SFX_WARP_TO
- applymovement PLAYER, MovementData_0xcc59
+ applymovement PLAYER, .DigOut
farscall Script_AbortBugContest
special WarpToSpawnPoint
- writecode VAR_MOVEMENT, $0
+ writecode VAR_MOVEMENT, PLAYER_NORMAL
newloadmap MAPSETUP_DOOR
playsound SFX_WARP_FROM
- applymovement PLAYER, MovementData_0xcc5d
+ applymovement PLAYER, .DigReturn
end
; 0xcc59
-MovementData_0xcc59: ; 0xcc59
- step_wait5
- turn_away_down
+.DigOut: ; 0xcc59
+ step_dig 32
hide_person
step_end
; 0xcc5d
-MovementData_0xcc5d: ; 0xcc5d
- return_dig $58
- turn_away_down
+.DigReturn: ; 0xcc5d
+ show_person
+ return_dig 32
step_end
; 0xcc61
@@ -5641,22 +4259,22 @@
reloadmappart
loadmovesprites
playsound SFX_WARP_TO
- applymovement PLAYER, MovementData_0xcce1
+ applymovement PLAYER, .TeleportFrom
farscall Script_AbortBugContest
special WarpToSpawnPoint
- writecode VAR_MOVEMENT, $0
+ writecode VAR_MOVEMENT, PLAYER_NORMAL
newloadmap MAPSETUP_TELEPORT
playsound SFX_WARP_FROM
- applymovement PLAYER, MovementData_0xcce3
+ applymovement PLAYER, .TeleportTo
end
; 0xcce1
-MovementData_0xcce1: ; cce1
+.TeleportFrom: ; cce1
teleport_from
step_end
; cce3
-MovementData_0xcce3: ; cce3
+.TeleportTo: ; cce3
teleport_to
step_end
; cce5
@@ -5925,7 +4543,7 @@
ld e, a
callba PlayWhirlpoolSound
call BufferScreen
- call Function2914
+ call GetMovementPermissions
ret
; ce3e
@@ -6300,7 +4918,7 @@
writetext UnknownText_0xd0a9
Script_NotEvenANibble_FallThrough: ; 0xd02d
- loademote EMOTE_08
+ loademote EMOTE_SHADOW
callasm PutTheRodAway
loadmovesprites
end
@@ -6309,17 +4927,17 @@
Script_GotABite: ; 0xd035
scall Script_FishCastRod
callasm Fishing_CheckFacingUp
- iffalse .FacingUp
- applymovement PLAYER, MovementData_0xd062
+ iffalse .NotFacingUp
+ applymovement PLAYER, .Movement_FacingUp
jump .FightTheHookedPokemon
; 0xd046
-.FacingUp: ; 0xd046
- applymovement PLAYER, MovementData_0xd05c
+.NotFacingUp: ; 0xd046
+ applymovement PLAYER, .Movement_NotFacingUp
.FightTheHookedPokemon: ; 0xd04a
pause 40
- applymovement PLAYER, MovementData_0xd069
+ applymovement PLAYER, .Movement_RestoreRod
writetext UnknownText_0xd0a4
callasm PutTheRodAway
loadmovesprites
@@ -6329,7 +4947,7 @@
end
; 0xd05c
-MovementData_0xd05c: ; d05c
+.Movement_NotFacingUp: ; d05c
fish_got_bite
fish_got_bite
fish_got_bite
@@ -6338,7 +4956,7 @@
step_end
; d062
-MovementData_0xd062: ; d062
+.Movement_FacingUp: ; d062
fish_got_bite
fish_got_bite
fish_got_bite
@@ -6348,7 +4966,7 @@
step_end
; d069
-MovementData_0xd069: ; d069
+.Movement_RestoreRod: ; d069
hide_emote
fish_cast_rod
step_end
@@ -6357,7 +4975,7 @@
Fishing_CheckFacingUp: ; d06c
ld a, [PlayerDirection]
and $c
- cp $4
+ cp OW_UP
ld a, $1
jr z, .up
xor a
@@ -6371,7 +4989,7 @@
reloadmappart
loadvar hBGMapMode, $0
special UpdateTimePals
- loademote EMOTE_09
+ loademote EMOTE_ROD
callasm LoadFishingGFX
loademote EMOTE_SHOCK
applymovement PLAYER, MovementData_0xd093
@@ -6505,7 +5123,7 @@
Script_GetOnBike: ; 0xd13e
reloadmappart
special UpdateTimePals
- writecode VAR_MOVEMENT, $1
+ writecode VAR_MOVEMENT, PLAYER_BIKE
writetext UnknownText_0xd17c
closetext
loadmovesprites
@@ -6514,7 +5132,7 @@
; 0xd14e
Script_GetOnBike_Register: ; 0xd14e
- writecode VAR_MOVEMENT, $1
+ writecode VAR_MOVEMENT, PLAYER_BIKE
loadmovesprites
special ReplaceKrisSprite
end
@@ -6527,11 +5145,11 @@
Script_GetOffBike: ; 0xd158
reloadmappart
special UpdateTimePals
- writecode VAR_MOVEMENT, $0
+ writecode VAR_MOVEMENT, PLAYER_NORMAL
writetext UnknownText_0xd181
closetext
-UnknownScript_0xd163:
+FinishGettingOffBike:
loadmovesprites
special ReplaceKrisSprite
special PlayMapMusic
@@ -6539,8 +5157,8 @@
; 0xd16b
Script_GetOffBike_Register: ; 0xd16b
- writecode VAR_MOVEMENT, $0
- jump UnknownScript_0xd163
+ writecode VAR_MOVEMENT, PLAYER_NORMAL
+ jump FinishGettingOffBike
; 0xd171
UnknownScript_0xd171: ; 0xd171
@@ -7092,11 +5710,11 @@
ld [hl], a
ld [wItemQuantityBuffer], a
jr nz, .yup
- ld a, [wd0e2]
+ ld a, [wTMHMPocketScrollPosition]
and a
jr z, .yup
dec a
- ld [wd0e2], a
+ ld [wTMHMPocketScrollPosition], a
.yup
scf
@@ -7266,7 +5884,7 @@
Functiond497:: ; d497 (3:5497)
- ld a, [wd150]
+ ld a, [wPlayerStepFlags]
and a
ret z
bit 7, a
@@ -7286,9 +5904,9 @@
jr .asm_d4b8
.asm_d4b8
call Functiond4e5
- ld a, [wd14e]
+ ld a, [wPlayerStepVectorX]
ld d, a
- ld a, [wd14f]
+ ld a, [wPlayerStepVectorY]
ld e, a
ld a, [wd14c]
sub d
@@ -7299,9 +5917,9 @@
ret
Functiond4d2:: ; d4d2 (3:54d2)
- ld a, [wd14e]
+ ld a, [wPlayerStepVectorX]
ld d, a
- ld a, [wd14f]
+ ld a, [wPlayerStepVectorY]
ld e, a
ld a, [hSCX]
add d
@@ -7323,31 +5941,31 @@
ret
Jumptable_d4f2: ; d4f2 (3:54f2)
- dw Function2914
+ dw GetMovementPermissions
dw BufferScreen
- dw Functiond509
- dw Functiond510
- dw Functiond508
- dw Functiond508
- dw Functiond508
- dw Functiond508
- dw Functiond508
- dw Functiond508
- dw Functiond508
+ dw .mobile
+ dw .fail2
+ dw .fail1
+ dw .fail1
+ dw .fail1
+ dw .fail1
+ dw .fail1
+ dw .fail1
+ dw .fail1
-Functiond508: ; d508 (3:5508)
+.fail1: ; d508 (3:5508)
ret
-Functiond509: ; d509 (3:5509)
+.mobile: ; d509 (3:5509)
callba MobileFn_10602e
ret
-Functiond510: ; d510 (3:5510)
+.fail2: ; d510 (3:5510)
ret
Functiond511: ; d511 (3:5511)
- ld a, [wd151]
+ ld a, [wPlayerStepDirection]
and a
jr nz, .asm_d51c
ld hl, YCoord
@@ -7373,7 +5991,7 @@
ret
Functiond536: ; d536 (3:5536)
- ld a, [wd151]
+ ld a, [wPlayerStepDirection]
and a
jr z, .asm_d549
cp $1
@@ -7383,46 +6001,50 @@
cp $3
jr z, .asm_d567
ret
+
.asm_d549
call Functiond571
call LoadMapPart
- call Function2748
+ call ScrollMapUp
ret
+
.asm_d553
call Functiond5a2
call LoadMapPart
- call Function272a
+ call ScrollMapDown
ret
+
.asm_d55d
call Functiond5d5
call LoadMapPart
- call Function2771
+ call ScrollMapLeft
ret
+
.asm_d567
call Functiond5fe
call LoadMapPart
- call Function278f
+ call ScrollMapRight
ret
Functiond571: ; d571 (3:5571)
- ld a, [wd152]
+ ld a, [wBGMapAnchor]
add $40
- ld [wd152], a
- jr nc, .asm_d586
- ld a, [wd153]
+ ld [wBGMapAnchor], a
+ jr nc, .not_overflowed
+ ld a, [wBGMapAnchor + 1]
inc a
and $3
- or $98
- ld [wd153], a
-.asm_d586
+ or VBGMap0 / $100
+ ld [wBGMapAnchor + 1], a
+.not_overflowed
ld hl, wd196
inc [hl]
ld a, [hl]
- cp $2
- jr nz, .asm_d594
+ cp $2 ; was 1
+ jr nz, .skip
ld [hl], $0
call Functiond595
-.asm_d594
+.skip
ret
Functiond595: ; d595 (3:5595)
@@ -7436,24 +6058,24 @@
ret
Functiond5a2: ; d5a2 (3:55a2)
- ld a, [wd152]
+ ld a, [wBGMapAnchor]
sub $40
- ld [wd152], a
- jr nc, .asm_d5b7
- ld a, [wd153]
+ ld [wBGMapAnchor], a
+ jr nc, .not_underflowed
+ ld a, [wBGMapAnchor + 1]
dec a
and $3
- or $98
- ld [wd153], a
-.asm_d5b7
+ or VBGMap0 / $100
+ ld [wBGMapAnchor + 1], a
+.not_underflowed
ld hl, wd196
dec [hl]
ld a, [hl]
- cp $ff
- jr nz, .asm_d5c5
+ cp $ff ; was 0
+ jr nz, .skip
ld [hl], $1
call Functiond5c6
-.asm_d5c5
+.skip
ret
Functiond5c6: ; d5c6 (3:55c6)
@@ -7469,7 +6091,7 @@
ret
Functiond5d5: ; d5d5 (3:55d5)
- ld a, [wd152]
+ ld a, [wBGMapAnchor]
ld e, a
and $e0
ld d, a
@@ -7477,7 +6099,7 @@
sub $2
and $1f
or d
- ld [wd152], a
+ ld [wBGMapAnchor], a
ld hl, wd197
dec [hl]
ld a, [hl]
@@ -7498,7 +6120,7 @@
ret
Functiond5fe: ; d5fe (3:55fe)
- ld a, [wd152]
+ ld a, [wBGMapAnchor]
ld e, a
and $e0
ld d, a
@@ -7506,7 +6128,7 @@
add $2
and $1f
or d
- ld [wd152], a
+ ld [wBGMapAnchor], a
ld hl, wd197
inc [hl]
ld a, [hl]
@@ -8277,7 +6899,7 @@
ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
predef GetUnownLetter
- callab Functionfba18
+ callab UpdateUnownDex
.done
scf ; When this function returns, the carry flag indicates success vs failure.
@@ -8316,7 +6938,7 @@
ret
; da96
-Functionda96: ; da96
+AddTempmonToParty: ; da96
ld hl, PartyCount
ld a, [hl]
cp PARTY_LENGTH
@@ -8331,6 +6953,7 @@
ld a, [CurPartySpecies]
ld [hli], a
ld [hl], $ff
+
ld hl, PartyMon1Species
ld a, [PartyCount]
dec a
@@ -8340,6 +6963,7 @@
ld d, h
ld hl, TempMonSpecies
call CopyBytes
+
ld hl, PartyMonOT
ld a, [PartyCount]
dec a
@@ -8351,6 +6975,7 @@
call SkipNames
ld bc, NAME_LENGTH
call CopyBytes
+
ld hl, PartyMonNicknames
ld a, [PartyCount]
dec a
@@ -8366,7 +6991,7 @@
ld a, [CurPartySpecies]
ld [wNamedObjectIndexBuffer], a
cp EGG
- jr z, .owned
+ jr z, .egg
dec a
call SetSeenAndCaughtMon
ld hl, PartyMon1Happiness
@@ -8375,7 +7000,7 @@
ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld [hl], BASE_HAPPINESS
-.owned
+.egg
ld a, [CurPartySpecies]
cp UNOWN
@@ -8386,7 +7011,7 @@
ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
predef GetUnownLetter
- callab Functionfba18
+ callab UpdateUnownDex
ld a, [wdef4]
and a
jr nz, .done
@@ -8980,7 +7605,7 @@
jr nz, .asm_df20
ld hl, sBoxMon1DVs
predef GetUnownLetter
- callab Functionfba18
+ callab UpdateUnownDex
.asm_df20
ld hl, sBoxMon1Moves
@@ -9063,6 +7688,10 @@
callab GetPreEvolution
ld a, [CurPartySpecies]
dec a
+
+; TryAddMonToParty sets Seen and Caught flags
+; when it is successful. This routine will make
+; sure that we aren't newly setting flags.
push af
call CheckCaughtMon
pop af
@@ -9069,33 +7698,41 @@
push bc
call CheckSeenMon
push bc
+
call TryAddMonToParty
+
+; If we haven't caught this Pokemon before receiving
+; the Egg, reset the flag that was just set by
+; TryAddMonToParty.
pop bc
ld a, c
and a
- jr nz, .asm_dfc3
+ jr nz, .skip_caught_flag
ld a, [CurPartySpecies]
dec a
ld c, a
ld d, $0
ld hl, PokedexCaught
- ld b, $0
+ ld b, RESET_FLAG
predef FlagPredef
-.asm_dfc3
+.skip_caught_flag
+; If we haven't seen this Pokemon before receiving
+; the Egg, reset the flag that was just set by
+; TryAddMonToParty.
pop bc
ld a, c
and a
- jr nz, .asm_dfd9
+ jr nz, .skip_seen_flag
ld a, [CurPartySpecies]
dec a
ld c, a
ld d, $0
ld hl, PokedexSeen
- ld b, $0
+ ld b, RESET_FLAG
predef FlagPredef
-.asm_dfd9
+.skip_seen_flag
pop af
ld [CurPartySpecies], a
ld a, [PartyCount]
@@ -9263,14 +7900,14 @@
ld a, [wLinkMode]
and a
ret nz
- ld a, BANK(sPartyScratch1)
+ ld a, BANK(sPartyMail)
call GetSRAMBank
ld hl, PartyCount
ld a, [CurPartyMon]
cp [hl]
jr z, .asm_e131
- ld hl, sPartyScratch1
- ld bc, SCRATCHMON_STRUCT_LENGTH
+ ld hl, sPartyMail
+ ld bc, MAIL_STRUCT_LENGTH
call AddNTimes
push hl
add hl, bc
@@ -9280,11 +7917,11 @@
.asm_e11a
push bc
push hl
- ld bc, SCRATCHMON_STRUCT_LENGTH
+ ld bc, MAIL_STRUCT_LENGTH
call CopyBytes
pop hl
push hl
- ld bc, SCRATCHMON_STRUCT_LENGTH
+ ld bc, MAIL_STRUCT_LENGTH
add hl, bc
pop de
pop bc
@@ -9663,7 +8300,7 @@
ld [hli], a
ld [hl], 01001 % $100
pop bc
- callba SetPartymonCaughtData
+ callba SetGiftPartyMonCaughtData
jr .skip_nickname
.asm_e35e
@@ -9687,7 +8324,7 @@
call Random
ld [hl], a
call CloseSRAM
- callba SetBoxMonCaughtData
+ callba SetGiftBoxMonCaughtData
jr .skip_nickname
.asm_e390
@@ -9698,11 +8335,11 @@
ld a, b
and a
jr z, .asm_e3a0
- callba Function4db83
+ callba SetBoxMonCaughtData
jr .asm_e3a6
.asm_e3a0
- callba Function4db49
+ callba SetCaughtData
.asm_e3a6
callba GiveANickname_YesNo
@@ -9755,35 +8392,35 @@
ld de, StringBuffer1
call InitName
ld a, $4 ; XXX could this be in bank 4 in pokered?
- ld hl, Function2b4d
+ ld hl, ExitAllMenus
rst FarCall
ret
; e3fd
-Functione3fd: ; e3fd
- call Functione40a
+_BillsPC: ; e3fd
+ call .CheckCanUsePC
ret c
- call Functione41c
- call Functione443
- jp Functione43f
+ call .LogIn
+ call .UseBillsPC
+ jp .LogOut
-Functione40a: ; e40a (3:640a)
+.CheckCanUsePC: ; e40a (3:640a)
ld a, [PartyCount]
and a
ret nz
- ld hl, UnknownText_0xe417
+ ld hl, .Text_GottaHavePokemon
call MenuTextBoxBackup
scf
ret
; e417 (3:6417)
-UnknownText_0xe417: ; 0xe417
+.Text_GottaHavePokemon: ; 0xe417
; You gotta have #MON to call!
text_jump UnknownText_0x1c1006
db "@"
; 0xe41c
-Functione41c: ; e41c (3:641c)
+.LogIn: ; e41c (3:641c)
xor a
ld [hBGMapMode], a
call LoadStandardMenuDataHeader
@@ -9792,7 +8429,7 @@
ld a, [hl]
push af
set NO_TEXT_SCROLL, [hl]
- ld hl, UnknownText_0xe43a
+ ld hl, .Text_What
call PrintText
pop af
ld [Options], a
@@ -9800,17 +8437,17 @@
ret
; e43a (3:643a)
-UnknownText_0xe43a: ; 0xe43a
+.Text_What: ; 0xe43a
; What?
text_jump UnknownText_0x1c1024
db "@"
; 0xe43f
-Functione43f: ; e43f (3:643f)
- call Function2b3c
+.LogOut: ; e43f (3:643f)
+ call ReturnToCallingMenu
ret
-Functione443: ; e443 (3:6443)
+.UseBillsPC: ; e443 (3:6443)
ld hl, .MenuDataHeader
call LoadMenuDataHeader
ld a, $1
@@ -9820,7 +8457,7 @@
xor a
ld [wcf76], a
ld [hBGMapMode], a
- call Function1e5d
+ call DoNthMenu
jr c, .cancel
ld a, [wMenuCursorBuffer]
push af
@@ -9883,14 +8520,14 @@
BillsPC_MovePKMNMenu: ; e4cd
call LoadStandardMenuDataHeader
- callba Function44781
+ callba IsAnyMonHoldingMail
jr nc, .no_mail
- ld hl, UnknownText_0xe4f9
+ ld hl, .Text_MonHoldingMail
call PrintText
jr .quit
.no_mail
- callba Function14b34
+ callba StartMovePkmnWOMail_SaveGame
jr c, .quit
callba _MovePKMNWithoutMail
call ReturnToMapFromSubmenu
@@ -9902,7 +8539,7 @@
ret
; e4f9
-UnknownText_0xe4f9: ; 0xe4f9
+.Text_MonHoldingMail: ; 0xe4f9
; There is a #MON holding MAIL. Please remove the MAIL.
text_jump UnknownText_0x1c102b
db "@"
@@ -9921,32 +8558,32 @@
Functione512: ; unused
ld a, [PartyCount]
and a
- jr z, .asm_e51e
+ jr z, .no_pkmn
cp 2
- jr c, .asm_e526
+ jr c, .only_one_pkmn
and a
ret
-.asm_e51e
- ld hl, UnknownText_0xe52e
+.no_pkmn
+ ld hl, .Text_NoPKMN
call MenuTextBoxBackup
scf
ret
-.asm_e526
- ld hl, UnknownText_0xe533
+.only_one_pkmn
+ ld hl, .Text_ItsYourLastPKMN
call MenuTextBoxBackup
scf
ret
; e52e
-UnknownText_0xe52e: ; 0xe52e
+.Text_NoPKMN: ; 0xe52e
; You don't have a single #MON!
text_jump UnknownText_0x1c1062
db "@"
; 0xe533
-UnknownText_0xe533: ; 0xe533
+.Text_ItsYourLastPKMN: ; 0xe533
; You can't deposit your last #MON!
text_jump UnknownText_0x1c1080
db "@"
@@ -10373,507 +9010,11 @@
SECTION "bank4", ROMX, BANK[$4]
INCLUDE "engine/pack.asm"
-
INCLUDE "engine/time.asm"
-
INCLUDE "engine/tmhm.asm"
-
INCLUDE "engine/namingscreen.asm"
+INCLUDE "engine/compose_mail.asm"
-Function11e75: ; 11e75 (4:5e75)
- ld hl, wc6d0
- ld [hl], e
- inc hl
- ld [hl], d
- ld a, [hMapAnims]
- push af
- xor a
- ld [hMapAnims], a
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- call Function11e9a
- call DelayFrame
-.asm_11e8e
- call Function11fc0
- jr nc, .asm_11e8e
- pop af
- ld [hInMenu], a
- pop af
- ld [hMapAnims], a
- ret
-
-Function11e9a: ; 11e9a (4:5e9a)
- call ClearBGPalettes
- call DisableLCD
- call Function11c51
- ld de, VTiles0 tile $00
- ld hl, GFX_11ef4
- ld bc, $80
- ld a, BANK(GFX_11ef4)
- call FarCopyBytes
- xor a
- ld hl, wc300
- ld [hli], a
- ld [hl], a
- ld de, $1810
- ld a, $0
- call Function3b2a
- ld hl, $2
- add hl, bc
- ld [hl], $0
- call Function11f84
- ld a, $e3
- ld [rLCDC], a
- call Function11f74
- ld b, $8
- call GetSGBLayout
- call WaitBGMap
- call WaitTop
- ld a, %11100100
- call DmgToCgbBGPals
- ld a, %11100100
- call Functioncf8
- call Function11be0
- ld hl, wc6d0
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $10
- add hl, de
- ld [hl], $4e
- ret
-; 11ef4 (4:5ef4)
-
-GFX_11ef4: ; 11ef4
-INCBIN "gfx/unknown/011ef4.2bpp"
-; 11f74
-
-Function11f74: ; 11f74 (4:5f74)
- ld a, $21
- ld [wc6d3], a
- ret
-; 11f7a (4:5f7a)
-
-String_11f7a: ; dummied out
- db "メールを かいてね@"
-; 11f84
-
-Function11f84: ; 11f84 (4:5f84)
- call WaitTop
- hlcoord 0, 0
- ld bc, 6 * SCREEN_WIDTH
- ld a, $60
- call ByteFill
- hlcoord 0, 6
- ld bc, 12 * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- hlcoord 1, 1
- lb bc, 4, SCREEN_WIDTH - 2
- call ClearBox
- ld de, String_121dd
-
-Function11fa9: ; 11fa9 (4:5fa9)
- hlcoord 1, 7
- ld b, 6
-.next
- ld c, SCREEN_WIDTH - 1
-.loop
- ld a, [de]
- ld [hli], a
- inc de
- dec c
- jr nz, .loop
- push de
- ld de, 21
- add hl, de
- pop de
- dec b
- jr nz, .next
- ret
-
-Function11fc0: ; 11fc0 (4:5fc0)
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_11fdb
- call Function12008
- callba Function8cf62
- call Function11feb
- call DelayFrame
- and a
- ret
-.asm_11fdb
- callab Function8cf53
- call ClearSprites
- xor a
- ld [hSCX], a
- ld [hSCY], a
- scf
- ret
-
-Function11feb: ; 11feb (4:5feb)
- xor a
- ld [hBGMapMode], a
- hlcoord 1, 1
- lb bc, 4, 18
- call ClearBox
- ld hl, wc6d0
- ld e, [hl]
- inc hl
- ld d, [hl]
- hlcoord 2, 2
- call PlaceString
- ld a, $1
- ld [hBGMapMode], a
- ret
-
-Function12008: ; 12008 (4:6008)
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, Jumptable_12017
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-Jumptable_12017: ; 12017 (4:6017)
- dw Function1201b
- dw Function1203a
-
-
-Function1201b: ; 1201b (4:601b)
- lb de, $48, $10
- ld a, $9
- call Function3b2a
- ld a, c
- ld [wc6d5], a
- ld a, b
- ld [wc6d6], a
- ld hl, $1
- add hl, bc
- ld a, [hl]
- ld hl, $e
- add hl, bc
- ld [hl], a
- ld hl, wJumptableIndex
- inc [hl]
- ret
-
-Function1203a: ; 1203a (4:603a)
- ld hl, hJoyPressed ; $ffa7
- ld a, [hl]
- and A_BUTTON
- jr nz, .a
- ld a, [hl]
- and B_BUTTON
- jr nz, .b
- ld a, [hl]
- and START
- jr nz, .start
- ld a, [hl]
- and SELECT
- jr nz, .select
- ret
-
-.a
- call Function12185
- cp $1
- jr z, .select
- cp $2
- jr z, .b
- cp $3
- jr z, .asm_120a1
- call Function11c11
- call Function121ac
- jr c, .start
- ld hl, wc6d2
- ld a, [hl]
- cp $10
- ret nz
- inc [hl]
- call Function11bd0
- ld [hl], $f2
- dec hl
- ld [hl], $4e
- ret
-
-.start
- ld hl, wc6d5
- ld c, [hl]
- inc hl
- ld b, [hl]
- ld hl, $c
- add hl, bc
- ld [hl], $9
- ld hl, $d
- add hl, bc
- ld [hl], $5
- ret
-
-.b
- call Function11bbc
- ld hl, wc6d2
- ld a, [hl]
- cp $10
- ret nz
- dec [hl]
- call Function11bd0
- ld [hl], $f2
- inc hl
- ld [hl], $4e
- ret
-
-.asm_120a1
- call Function11bf7
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-.select
- ld hl, wcf64
- ld a, [hl]
- xor $1
- ld [hl], a
- jr nz, .asm_120ba
- ld de, String_121dd
- call Function11fa9
- ret
-.asm_120ba
- ld de, String_1224f
- call Function11fa9
- ret
-
-Function120c1: ; 120c1 (4:60c1)
- call Function1210c
- ld hl, $d
- add hl, bc
- ld a, [hl]
- ld e, a
- swap e
- ld hl, $7
- add hl, bc
- ld [hl], e
- cp $5
- ld de, Unknown_120f8
- ld a, $0
- jr nz, .asm_120df
- ld de, Unknown_12102
- ld a, $1
-.asm_120df
- ld hl, $e
- add hl, bc
- add [hl]
- ld hl, $1
- add hl, bc
- ld [hl], a
- ld hl, $c
- add hl, bc
- ld l, [hl]
- ld h, $0
- add hl, de
- ld a, [hl]
- ld hl, $6
- add hl, bc
- ld [hl], a
- ret
-; 120f8 (4:60f8)
-
-Unknown_120f8: ; 120f8
- db $00, $10, $20, $30, $40, $50, $60, $70, $80, $90
-Unknown_12102: ; 12102
- db $00, $00, $00, $30, $30, $30, $60, $60, $60, $60
-; 1210c
-
-Function1210c: ; 1210c (4:610c)
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .up
- ld a, [hl]
- and D_DOWN
- jr nz, .down
- ld a, [hl]
- and D_LEFT
- jr nz, .left
- ld a, [hl]
- and D_RIGHT
- jr nz, .right
- ret
-.right
- call Function1218b
- and a
- jr nz, .asm_12138
- ld hl, $c
- add hl, bc
- ld a, [hl]
- cp $9
- jr nc, .asm_12135
- inc [hl]
- ret
-.asm_12135
- ld [hl], $0
- ret
-.asm_12138
- cp $3
- jr nz, .asm_1213d
- xor a
-.asm_1213d
- ld e, a
- add a
- add e
- ld hl, $c
- add hl, bc
- ld [hl], a
- ret
-.left
- call Function1218b
- and a
- jr nz, .asm_12159
- ld hl, $c
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_12156
- dec [hl]
- ret
-.asm_12156
- ld [hl], $9
- ret
-.asm_12159
- cp $1
- jr nz, .asm_1215f
- ld a, $4
-.asm_1215f
-rept 2
- dec a
-endr
- ld e, a
- add a
- add e
- ld hl, $c
- add hl, bc
- ld [hl], a
- ret
-.down
- ld hl, $d
- add hl, bc
- ld a, [hl]
- cp $5
- jr nc, .asm_12175
- inc [hl]
- ret
-.asm_12175
- ld [hl], $0
- ret
-.up
- ld hl, $d
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_12182
- dec [hl]
- ret
-.asm_12182
- ld [hl], $5
- ret
-
-Function12185: ; 12185 (4:6185)
- ld hl, wc6d5
- ld c, [hl]
- inc hl
- ld b, [hl]
-
-Function1218b: ; 1218b (4:618b)
- ld hl, $d
- add hl, bc
- ld a, [hl]
- cp $5
- jr nz, .asm_121aa
- ld hl, $c
- add hl, bc
- ld a, [hl]
- cp $3
- jr c, .asm_121a4
- cp $6
- jr c, .asm_121a7
- ld a, $3
- ret
-.asm_121a4
- ld a, $1
- ret
-.asm_121a7
- ld a, $2
- ret
-.asm_121aa
- xor a
- ret
-
-Function121ac: ; 121ac (4:61ac)
- ld a, [wc6d7]
- jp Function11b17
-; 121b2 (4:61b2)
-
-Function121b2: ; unreferenced
- ld a, [wc6d2]
- and a
- ret z
- cp $11
- jr nz, .asm_121c3
- push hl
- ld hl, wc6d2
-rept 2
- dec [hl]
-endr
- jr .asm_121c8
-
-.asm_121c3
- push hl
- ld hl, wc6d2
- dec [hl]
-
-.asm_121c8
- call Function11bd0
- ld c, [hl]
- pop hl
-.asm_121cd
- ld a, [hli]
- cp $ff
- jp z, Function11b27
- cp c
- jr z, .asm_121d9
- inc hl
- jr .asm_121cd
-
-.asm_121d9
- ld a, [hl]
- jp Function11b23
-; 121dd
-
-String_121dd: ; 122dd
- db "A B C D E F G H I J"
- db "K L M N O P Q R S T"
- db "U V W X Y Z , ? !"
- db "1 2 3 4 5 6 7 8 9 0"
- db "<PK> <MN> <PO> <KE> é ♂ ♀ ¥ … ×"
- db "lower DEL END "
-; 1224f
-
-String_1224f: ; 1224f
- db "a b c d e f g h i j"
- db "k l m n o p q r s t"
- db "u v w x y z . - /"
- db "'d 'l 'm 'r 's 't 'v & ( )"
- db "<``> <''> [ ] ' : ; "
- db "UPPER DEL END "
-; 122c1
-
Script_AbortBugContest: ; 0x122c1
checkflag ENGINE_BUG_CONTEST_TIMER
iffalse .finish
@@ -11185,7 +9326,7 @@
; 14056
-Function14056: ; 14056
+StageRTCTimeForSave: ; 14056
call UpdateTime
ld hl, wRTC
ld a, [CurDay]
@@ -11199,7 +9340,7 @@
ret
; 1406a
-Function1406a: ; 1406a
+SaveRTC: ; 1406a
ld a, $a
ld [MBC3SRamEnable], a
call LatchClock
@@ -11207,10 +9348,10 @@
ld a, $c
ld [MBC3SRamBank], a
res 7, [hl]
- ld a, BANK(s0_ac60)
+ ld a, BANK(sRTCStatusFlags)
ld [MBC3SRamBank], a
xor a
- ld [s0_ac60], a
+ ld [sRTCStatusFlags], a
call CloseSRAM
ret
; 14089
@@ -11224,7 +9365,7 @@
jr nc, .skip_set
; bit 5: Day count exceeds 139
; bit 6: Day count exceeds 255
- call Function6d3 ; set flag on s0_ac60
+ call RecordRTCStatus ; set flag on sRTCStatusFlags
.skip_set
call StartRTC
@@ -11243,12 +9384,12 @@
.set_bit_7
; Day count exceeds 16383
ld a, %10000000
- call Function6d3 ; set bit 7 on s0_ac60
+ call RecordRTCStatus ; set bit 7 on sRTCStatusFlags
ret
; 140ae
Function140ae: ; 140ae
- call Function6e3
+ call CheckRTCStatus
ld c, a
and %11000000 ; Day count exceeded 255 or 16383
jr nz, .time_overflow
@@ -11295,9 +9436,9 @@
ld a, [StringBuffer2 + 3]
sub [hl]
dec hl
- jr nc, .asm_14102
+ jr nc, .okay_secs
add 60
-.asm_14102
+.okay_secs
ld [de], a
dec de
@@ -11304,9 +9445,9 @@
ld a, [StringBuffer2 + 2]
sbc [hl]
dec hl
- jr nc, .asm_1410d
+ jr nc, .okay_mins
add 60
-.asm_1410d
+.okay_mins
ld [de], a
dec de
@@ -11313,9 +9454,9 @@
ld a, [StringBuffer2 + 1]
sbc [hl]
dec hl
- jr nc, .asm_14118
+ jr nc, .okay_hrs
add 24
-.asm_14118
+.okay_hrs
ld [de], a
dec de
@@ -11322,49 +9463,49 @@
ld a, [StringBuffer2]
sbc [hl]
dec hl
- jr nc, .asm_14128
+ jr nc, .okay_days
add 140
ld c, 7
call SimpleDivide
-.asm_14128
+.okay_days
ld [de], a
ret
; 1412a
-INCLUDE "engine/sprites.asm"
+INCLUDE "engine/overworld.asm"
Function1499a:: ; 1499a
- ld a, [PlayerStandingTile]
+ ld a, [PlayerNextTile]
cp $60
- jr z, .asm_149ad
+ jr z, .warp
cp $68
- jr z, .asm_149ad
+ jr z, .warp
and $f0
cp $70
- jr z, .asm_149ad
+ jr z, .warp
and a
ret
-.asm_149ad
+.warp
scf
ret
; 149af
Function149af:: ; 149af
- ld a, [PlayerStandingTile]
+ ld a, [PlayerNextTile]
cp $70
- jr z, .asm_149c4
+ jr z, .not_warp
cp $76
- jr z, .asm_149c4
+ jr z, .not_warp
cp $78
- jr z, .asm_149c4
+ jr z, .not_warp
cp $7e
- jr z, .asm_149c4
+ jr z, .not_warp
scf
ret
-.asm_149c4
+.not_warp
xor a
ret
; 149c6
@@ -11372,7 +9513,7 @@
CheckWarpCollision: ; 149c6
ld de, 1
ld hl, .blocks
- ld a, [PlayerStandingTile]
+ ld a, [PlayerNextTile]
call IsInArray
ret
; 149d3
@@ -11391,7 +9532,7 @@
; 149dd
CheckGrassCollision:: ; 149dd
- ld a, [PlayerStandingTile]
+ ld a, [PlayerNextTile]
ld hl, .blocks
ld de, 1
call IsInArray
@@ -11431,7 +9572,7 @@
; 14a07
Function14a07:: ; 14a07
- ld a, [PlayerStandingTile]
+ ld a, [PlayerNextTile]
ld de, $1f
cp $71 ; door
ret z
@@ -11448,1999 +9589,20 @@
INCLUDE "engine/map_setup.asm"
-PokemonCenterPC: ; 1559a
- call PC_CheckPartyForPokemon
- ret c
- call PC_PlayBootSound
- ld hl, UnknownText_0x15a27
- call PC_DisplayText
- ld hl, UnknownText_0x15a2c
- call PC_DisplayTextWaitMenu
- ld hl, .TopMenu
- call LoadMenuDataHeader
-.loop
- xor a
- ld [hBGMapMode], a
- call Function1563e
- ld [wcf76], a
- call Function1e5d
- jr c, .shutdown
- ld a, [MenuSelection]
- ld hl, .JumpTable
- call Function1fa7
- jr nc, .loop
+INCLUDE "engine/pokecenter_pc.asm"
-.shutdown
- call Function156b8
- call ExitMenu
- call WriteBackup
- ret
-; 155d6
-
-.TopMenu: ; 0x155d6
- db $48 ; flags
- db 00, 00 ; start coords
- db 12, 15 ; end coords
- dw .MenuData2
- db 1 ; default option
-; 0x155de
-
-.MenuData2: ; 0x155de
- db $a0 ; flags
- db 0 ; items
- dw .WhichPC
- dw Function1f8d
- dw .JumpTable
-; 0x155e6
-
-.JumpTable: ; 155e6
- dw Function15679, .String_PlayersPC
- dw Function15668, .String_BillsPC
- dw Function15689, .String_OaksPC
- dw Function1569a, .String_HallOfFame
- dw Function156ab, .String_TurnOff
-; 155fa
-
-.String_PlayersPC: db "<PLAYER>'s PC@"
-.String_BillsPC: db "BILL's PC@"
-.String_OaksPC: db "PROF.OAK's PC@"
-.String_HallOfFame: db "HALL OF FAME@"
-.String_TurnOff: db "TURN OFF@"
-; 1562c
-
-.WhichPC: ; 1562c
- ; before pokedex
- db 3 ; items
- db 1, 0, 4 ; bill's, player's, turn off
- db -1
-
- ; before Hall Of Fame
- db 4 ; items
- db 1, 0, 2, 4 ; bill's, player's, oak's, turn off
- db -1
-
- ; postgame
- db 5 ; items
- db 1, 0, 2, 3, 4 ; bill's, player's, oak's, hall of fame, turn off
- db -1
-; 1563e
-
-Function1563e: ; 1563e
- call CheckReceivedDex
- jr nz, .asm_15646
- ld a, $0
- ret
-
-.asm_15646
- ld a, [wd95e]
- and a
- ld a, $1
- ret z
- ld a, $2
- ret
-; 15650
-
-PC_CheckPartyForPokemon: ; 15650
- ld a, [PartyCount]
- and a
- ret nz
- ld de, SFX_CHOOSE_PC_OPTION
- call PlaySFX
- ld hl, UnknownText_0x15663
- call PC_DisplayText
- scf
- ret
-; 15663
-
-UnknownText_0x15663: ; 0x15663
- ; Bzzzzt! You must have a #MON to use this!
- text_jump UnknownText_0x1c1328
- db "@"
-; 0x15668
-
-Function15668: ; 15668
- call Function156c2
- ld hl, UnknownText_0x15a31
- call PC_DisplayText
- callba Functione3fd
- and a
- ret
-; 15679 (5:5679)
-
-Function15679: ; 15679
- call Function156c2
- ld hl, UnknownText_0x15a36
- call PC_DisplayText
- ld b, $0
- call Function15704
- and a
- ret
-; 15689
-
-Function15689: ; 15689
- call Function156c2
- ld hl, UnknownText_0x15a3b
- call PC_DisplayText
- callba ProfOaksPC
- and a
- ret
-; 1569a
-
-Function1569a: ; 1569a
- call Function156c2
- call FadeToMenu
- callba Function86650
- call Function2b3c
- and a
- ret
-; 156ab
-
-Function156ab: ; 156ab
- ld hl, UnknownText_0x15a40
- call PrintText
- scf
- ret
-; 156b3
-
-PC_PlayBootSound: ; 156b3
- ld de, SFX_BOOT_PC
- jr Function156d0
-
-Function156b8: ; 156b8
- ld de, SFX_SHUT_DOWN_PC
- call Function156d0
- call WaitSFX
- ret
-
-Function156c2: ; 156c2
- ld de, SFX_CHOOSE_PC_OPTION
- jr Function156d0
-
-Function156c7: ; 156c7
- ld de, SFX_SWITCH_POKEMON
- call Function156d0
- ld de, SFX_SWITCH_POKEMON
-
-Function156d0: ; 156d0
- push de
- call WaitSFX
- pop de
- call PlaySFX
- ret
-; 156d9
-
-Function156d9: ; 156d9
- call PC_PlayBootSound
- ld hl, UnknownText_0x156ff
- call PC_DisplayText
- ld b, $1
- call Function15704
- and a
- jr nz, .asm_156f9
- call OverworldTextModeSwitch
- call Function321c
- call UpdateSprites
- call Function156b8
- ld c, $0
- ret
-
-.asm_156f9
- call ClearBGPalettes
- ld c, $1
- ret
-; 156ff
-
-UnknownText_0x156ff: ; 0x156ff
- ; turned on the PC.
- text_jump UnknownText_0x1c1353
- db "@"
-; 0x15704
-
-Function15704: ; 15704
- ld a, b
- ld [wcf76], a
- ld hl, UnknownText_0x157cc
- call PC_DisplayTextWaitMenu
- call Function15715
- call ExitMenu
- ret
-; 15715
-
-Function15715: ; 15715
- xor a
- ld [wd0d7], a
- ld [wd0dd], a
- ld hl, KrissPCMenuData
- call LoadMenuDataHeader
-.asm_15722
- call UpdateTimePals
- call Function1e5d
- jr c, .asm_15731
- call Function1fa7
- jr nc, .asm_15722
- jr .asm_15732
-
-.asm_15731
- xor a
-
-.asm_15732
- call ExitMenu
- ret
-; 15736
-
-KrissPCMenuData: ; 0x15736
- db %01000000
- db 0, 0 ; top left corner coords (y, x)
- db 12, 15 ; bottom right corner coords (y, x)
- dw .KrissPCMenuData2
- db 1 ; default selected option
-
-.KrissPCMenuData2
- db %10100000 ; bit7
- db 0 ; # items?
- dw .KrissPCMenuList1
- dw Function1f8d
- dw .KrissPCMenuPointers
-
-.KrissPCMenuPointers ; 0x15746
- dw KrisWithdrawItemMenu, .WithdrawItem
- dw KrisDepositItemMenu, .DepositItem
- dw KrisTossItemMenu, .TossItem
- dw KrisMailBoxMenu, .MailBox
- dw KrisDecorationMenu, .Decoration
- dw KrisLogOffMenu, .LogOff
- dw KrisLogOffMenu, .TurnOff
-
-.WithdrawItem db "WITHDRAW ITEM@"
-.DepositItem db "DEPOSIT ITEM@"
-.TossItem db "TOSS ITEM@"
-.MailBox db "MAIL BOX@"
-.Decoration db "DECORATION@"
-.TurnOff db "TURN OFF@"
-.LogOff db "LOG OFF@"
-
-WITHDRAW_ITEM EQU 0
-DEPOSIT_ITEM EQU 1
-TOSS_ITEM EQU 2
-MAIL_BOX EQU 3
-DECORATION EQU 4
-TURN_OFF EQU 5
-LOG_OFF EQU 6
-
-.KrissPCMenuList1
- db 5
- db WITHDRAW_ITEM
- db DEPOSIT_ITEM
- db TOSS_ITEM
- db MAIL_BOX
- db TURN_OFF
- db -1
-
-.KrissPCMenuList2
- db 6
- db WITHDRAW_ITEM
- db DEPOSIT_ITEM
- db TOSS_ITEM
- db MAIL_BOX
- db DECORATION
- db LOG_OFF
- db -1
-
-PC_DisplayTextWaitMenu: ; 157bb
- ld a, [Options]
- push af
- set NO_TEXT_SCROLL, a
- ld [Options], a
- call MenuTextBox
- pop af
- ld [Options], a
- ret
-; 157cc
-
-UnknownText_0x157cc: ; 0x157cc
- ; What do you want to do?
- text_jump UnknownText_0x1c1368
- db "@"
-; 0x157d1
-
-KrisWithdrawItemMenu: ; 0x157d1
- call LoadStandardMenuDataHeader
- callba ClearPCItemScreen
-.asm_157da
- call Function15985
- jr c, .asm_157e4
- call Function157e9
- jr .asm_157da
-
-.asm_157e4
- call Function2b3c
- xor a
- ret
-; 0x157e9
-
-Function157e9: ; 0x157e9
- ; check if the item has a quantity
- callba _CheckTossableItem
- ld a, [wItemAttributeParamBuffer]
- and a
- jr z, .askquantity
-
- ; items without quantity are always ×1
- ld a, 1
- ld [wItemQuantityChangeBuffer], a
- jr .withdraw
-
-.askquantity
- ld hl, .HowManyText
- call MenuTextBox
- callba Function24fbf
- call ExitMenu
- call ExitMenu
- jr c, .done
-
-.withdraw
- ld a, [wItemQuantityChangeBuffer]
- ld [Buffer1], a ; quantity
- ld a, [wd107]
- ld [Buffer2], a
- ld hl, NumItems
- call ReceiveItem
- jr nc, .PackFull
- ld a, [Buffer1]
- ld [wItemQuantityChangeBuffer], a
- ld a, [Buffer2]
- ld [wd107], a
- ld hl, PCItems
- call TossItem
- predef PartyMonItemName
- ld hl, .WithdrewText
- call MenuTextBox
- xor a
- ld [hBGMapMode], a
- call ExitMenu
- ret
-
-.PackFull
- ld hl, .NoRoomText
- call MenuTextBoxBackup
- ret
-
-.done
- ret
-; 0x15850
-
-.HowManyText ; 0x15850
- text_jump _KrissPCHowManyWithdrawText
- db "@"
-
-.WithdrewText ; 0x15855
- text_jump _KrissPCWithdrewItemsText
- db "@"
-
-.NoRoomText ; 0x1585a
- text_jump _KrissPCNoRoomWithdrawText
- db "@"
-
-
-KrisTossItemMenu: ; 0x1585f
- call LoadStandardMenuDataHeader
- callba ClearPCItemScreen
-.asm_15868
- call Function15985
- jr c, .asm_15878
- ld de, PCItems
- callba Function129f4
- jr .asm_15868
-
-.asm_15878
- call Function2b3c
- xor a
- ret
-; 0x1587d
-
-
-KrisDecorationMenu: ; 0x1587d
- callba _KrisDecorationMenu
- ld a, c
- and a
- ret z
- scf
- ret
-; 0x15888
-
-
-KrisLogOffMenu: ; 0x15888
- xor a
- scf
- ret
-; 0x1588b
-
-
-KrisDepositItemMenu: ; 0x1588b
- call Function158b8
- jr c, .asm_158b6
- call DisableSpriteUpdates
- call LoadStandardMenuDataHeader
- callba Function106a5
-.asm_1589c
- callba Function106be
- ld a, [wcf66]
- and a
- jr z, .asm_158b3
- call Function158cc
- callba CheckRegisteredItem
- jr .asm_1589c
-
-.asm_158b3
- call Function2b3c
-
-.asm_158b6
- xor a
- ret
-; 0x158b8
-
-Function158b8: ; 0x158b8
- callba Function129d5
- ret nc
- ld hl, UnknownText_0x158c7
- call MenuTextBoxBackup
- scf
- ret
-; 0x158c7
-
-UnknownText_0x158c7: ; 0x158c7
- ; No items here!
- text_jump UnknownText_0x1c13df
- db "@"
-; 0x158cc
-
-
-Function158cc: ; 0x158cc
- ld a, [wc2ce]
- push af
- ld a, $0
- ld [wc2ce], a
- callba CheckItemMenu
- ld a, [wItemAttributeParamBuffer]
- ld hl, .jumptable
- rst JumpTable
- pop af
- ld [wc2ce], a
- ret
-; 0x158e7
-
-.jumptable: ; 0x158e7
- dw .maybe_use
- dw .no_use
- dw .no_use
- dw .no_use
- dw .maybe_use
- dw .maybe_use
- dw .maybe_use
-
-.no_use:
- ret
-
-.maybe_use:
- ld a, [Buffer1]
- push af
- ld a, [Buffer2]
- push af
- call Function1590a
- pop af
- ld [Buffer2], a
- pop af
- ld [Buffer1], a
- ret
-; 0x1590a
-
-Function1590a: ; 0x1590a
- callba _CheckTossableItem
- ld a, [wItemAttributeParamBuffer]
- and a
- jr z, .asm_1591d
- ld a, $1
- ld [wItemQuantityChangeBuffer], a
- jr .asm_15933
-
-.asm_1591d
- ld hl, .HowManyText
- call MenuTextBox
- callba Function24fbf
- push af
- call ExitMenu
- call ExitMenu
- pop af
- jr c, .asm_1596c
-
-.asm_15933
- ld a, [wItemQuantityChangeBuffer]
- ld [Buffer1], a
- ld a, [wd107]
- ld [Buffer2], a
- ld hl, PCItems
- call ReceiveItem
- jr nc, .asm_15965
- ld a, [Buffer1]
- ld [wItemQuantityChangeBuffer], a
- ld a, [Buffer2]
- ld [wd107], a
- ld hl, NumItems
- call TossItem
- predef PartyMonItemName
- ld hl, .DepositText
- call PrintText
- ret
-
-.asm_15965
- ld hl, .NoRoomText
- call PrintText
- ret
-
-.asm_1596c
- and a
- ret
-; 0x1596e
-
-
-.HowManyText ; 0x1596e
- text_jump _KrissPCHowManyDepositText
- db "@"
-
-.DepositText ; 0x15973
- text_jump _KrissPCDepositItemsText
- db "@"
-
-.NoRoomText ; 0x15978
- text_jump _KrissPCNoRoomDepositText
- db "@"
-
-
-KrisMailBoxMenu: ; 0x1597d
- callba _KrisMailBoxMenu
- xor a
- ret
-; 0x15985
-
-
-Function15985: ; 0x15985
- xor a
- ld [wd0e3], a
-.asm_15989
- ld a, [wc2ce]
- push af
- ld a, $0
- ld [wc2ce], a
- ld hl, MenuData15a08
- call CopyMenuDataHeader
- hlcoord 0, 0
- ld b, $a
- ld c, $12
- call TextBox
- ld a, [wd0d7]
- ld [wMenuCursorBuffer], a
- ld a, [wd0dd]
- ld [wd0e4], a
- call HandleScrollingMenu
- ld a, [wd0e4]
- ld [wd0dd], a
- ld a, [MenuSelection2]
- ld [wd0d7], a
- pop af
- ld [wc2ce], a
- ld a, [wd0e3]
- and a
- jr nz, .asm_159d8
- ld a, [wcf73]
- cp $2
- jr z, .asm_15a06
- cp $1
- jr z, .asm_159fb
- cp $4
- jr z, .asm_159f2
- jr .asm_159f8
-
-.asm_159d8
- ld a, [wcf73]
- cp $2
- jr z, .asm_159e9
- cp $1
- jr z, .asm_159ef
- cp $4
- jr z, .asm_159ef
- jr .asm_159f8
-
-.asm_159e9
- xor a
- ld [wd0e3], a
- jr .asm_159f8
-
-.asm_159ef
- call Function156c7
-
-.asm_159f2
- callba Function2490c
-
-.asm_159f8
- jp .asm_15989
-
-.asm_159fb
- callba Function24706
- call Function1bee
- and a
- ret
-
-.asm_15a06
- scf
- ret
-; 0x15a08
-
-MenuData15a08: ; 0x15a08
- db %01000000
- db 1, 4 ; start coords
- db 10, 18 ; end coords
- dw .MenuData2
- db 1 ; default option
-
-.MenuData2
- db %10110000
- db 4, 8 ; rows/cols?
- db 2 ; horizontal spacing?
- dbw 0, PCItems
- dba PlaceMenuItemName
- dba PlaceMenuItemQuantity
- dba Function244c3
-
-PC_DisplayText: ; 15a20
- call MenuTextBox
- call ExitMenu
- ret
-; 15a27
-
-
-UnknownText_0x15a27: ; 0x15a27
- ; turned on the PC.
- text_jump UnknownText_0x1c144d
- db "@"
-; 0x15a2c
-
-UnknownText_0x15a2c: ; 0x15a2c
- ; Access whose PC?
- text_jump UnknownText_0x1c1462
- db "@"
-; 0x15a31
-
-UnknownText_0x15a31: ; 0x15a31
- ; BILL's PC accessed. #MON Storage System opened.
- text_jump UnknownText_0x1c1474
- db "@"
-; 0x15a36
-
-UnknownText_0x15a36: ; 0x15a36
- ; Accessed own PC. Item Storage System opened.
- text_jump UnknownText_0x1c14a4
- db "@"
-; 0x15a3b
-
-UnknownText_0x15a3b: ; 0x15a3b
- ; PROF.OAK's PC accessed. #DEX Rating System opened.
- text_jump UnknownText_0x1c14d2
- db "@"
-; 0x15a40
-
-UnknownText_0x15a40: ; 0x15a40
- ; … Link closed…
- text_jump UnknownText_0x1c1505
- db "@"
-; 0x15a45
-
-
INCLUDE "engine/mart.asm"
-GiveMoney:: ; 15fd7
- ld a, $3
- call AddMoney
- ld bc, MaxMoney
- ld a, $3
- call CompareMoney
- jr z, .asm_15ff5
- jr c, .asm_15ff5
- ld hl, MaxMoney
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- scf
- ret
+INCLUDE "engine/money.asm"
-.asm_15ff5
- and a
- ret
-; 15ff7
-
-MaxMoney: ; 15ff7
- dt 999999
-; 15ffa
-
-
-TakeMoney:: ; 15ffa
- ld a, 3
- call SubtractMoney
- jr nc, .asm_16009
- xor a
- ld [de], a
- inc de
- ld [de], a
- inc de
- ld [de], a
- scf
- ret
-
-.asm_16009
- and a
- ret
-; 1600b
-
-CompareMoney:: ; 1600b
- ld a, $3
-CompareFunds: ; 1600d
- push hl
- push de
- push bc
- ld h, b
- ld l, c
- ld c, $0
- ld b, a
-.loop1
- dec a
- jr z, .done
- inc de
- inc hl
- jr .loop1
-
-.done
- and a
-.loop2
- ld a, [de]
- sbc [hl]
- jr z, .okay
- inc c
-
-.okay
- dec de
- dec hl
- dec b
- jr nz, .loop2
- jr c, .set_carry
- ld a, c
- and a
- jr .skip_carry
-
-.set_carry
- ld a, $1
- and a
- scf
-
-.skip_carry
- pop bc
- pop de
- pop hl
- ret
-; 16035
-
-SubtractMoney: ; 16035
- ld a, 3
-SubtractFunds: ; 16037
- push hl
- push de
- push bc
- ld h, b
- ld l, c
- ld b, a
- ld c, 0
-.loop
- dec a
- jr z, .done
- inc de
- inc hl
- jr .loop
-
-.done
- and a
-.loop2
- ld a, [de]
- sbc [hl]
- ld [de], a
- dec de
- dec hl
- dec b
- jr nz, .loop2
- pop bc
- pop de
- pop hl
- ret
-; 16053
-
-AddMoney: ; 16053
- ld a, $3
-AddFunds: ; 16055
- push hl
- push de
- push bc
- ld h, b
- ld l, c
- ld b, a
-.loop1
- dec a
- jr z, .done
- inc de
- inc hl
- jr .loop1
-
-.done
- and a
-.loop2
- ld a, [de]
- adc [hl]
- ld [de], a
- dec de
- dec hl
- dec b
- jr nz, .loop2
- pop bc
- pop de
- pop hl
- ret
-; 1606f
-
-GiveCoins:: ; 1606f
- ld a, 2
- ld de, Coins
- call AddFunds
- ld a, 2
- ld bc, .maxcoins
- call CompareFunds
- jr c, .not_maxed
- ld hl, .maxcoins
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- scf
- ret
-
-.not_maxed
- and a
- ret
-; 1608d
-
-.maxcoins: ; 1608d
- bigdw 9999
-; 1608f
-
-
-TakeCoins:: ; 1608f
- ld a, 2
- ld de, Coins
- call SubtractFunds
- jr nc, .asm_1609f
- xor a
- ld [de], a
- inc de
- ld [de], a
- scf
- ret
-
-.asm_1609f
- and a
- ret
-; 160a1
-
-CheckCoins:: ; 160a1
- ld a, $2
- ld de, Coins
- jp CompareFunds
-; 160a9
-
-
INCLUDE "items/marts.asm"
INCLUDE "event/mom.asm"
-Special_DayCareMan: ; 166d6
- ld hl, wDaycareMan
- bit 0, [hl]
- jr nz, .asm_166fe
- ld hl, wDaycareMan
- ld a, $0
- call Function1678f
- jr c, .asm_16724
- call Function16798
- jr c, .asm_16721
- callba Functionde2a
- ld hl, wDaycareMan
- set 0, [hl]
- call Function167f6
- call Function16a3b
- ret
-
-.asm_166fe
- callba Functione698
- ld hl, wBreedMon1Nick
- call Function1686d
- call Function16807
- jr c, .asm_16721
- callba Functiondd21
- call Function16850
- ld hl, wDaycareMan
- res 0, [hl]
- res 5, [hl]
- jr .asm_16724
-
-.asm_16721
- call Function1689b
-
-.asm_16724
- ld a, $13
- call Function1689b
- ret
-; 1672a
-
-Special_DayCareLady: ; 1672a
- ld hl, wDaycareLady
- bit 0, [hl]
- jr nz, .asm_16752
- ld hl, wDaycareLady
- ld a, $2
- call Function16781
- jr c, .asm_1677b
- call Function16798
- jr c, .asm_16778
- callba Functionde37
- ld hl, wDaycareLady
- set 0, [hl]
- call Function167f6
- call Function16a3b
- ret
-
-.asm_16752
- callba Functione6b3
- ld hl, wBreedMon2Nick
- call Function1686d
- call Function16807
- jr c, .asm_16778
- callba Functiondd42
- call Function16850
- ld hl, wDaycareLady
- res 0, [hl]
- ld hl, wDaycareMan
- res 5, [hl]
- jr .asm_1677b
-
-.asm_16778
- call Function1689b
-
-.asm_1677b
- ld a, $13
- call Function1689b
- ret
-; 16781
-
-Function16781: ; 16781
- bit 7, [hl]
- jr nz, .asm_16788
- set 7, [hl]
- inc a
-
-.asm_16788
- call Function1689b
- call YesNoBox
- ret
-; 1678f
-
-Function1678f: ; 1678f
- set 7, [hl]
- call Function1689b
- call YesNoBox
- ret
-; 16798
-
-Function16798: ; 16798
- ld a, [PartyCount]
- cp 2
- jr c, .asm_167e5
- ld a, 4
- call Function1689b
- ld b, 6
- callba Function5001d
- jr c, .asm_167dd
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .asm_167e1
- callba CheckCurPartyMonFainted
- jr c, .asm_167e9
- ld hl, PartyMon1Item
- ld bc, PARTYMON_STRUCT_LENGTH
- ld a, [CurPartyMon]
- call AddNTimes
- ld d, [hl]
- callba ItemIsMail
- jr c, .asm_167ed
- ld hl, PartyMonNicknames
- ld a, [CurPartyMon]
- call GetNick
- and a
- ret
-
-.asm_167dd
- ld a, $12
- scf
- ret
-
-.asm_167e1
- ld a, $6
- scf
- ret
-
-.asm_167e5
- ld a, $7
- scf
- ret
-
-.asm_167e9
- ld a, $8
- scf
- ret
-
-.asm_167ed
- ld a, $a
- scf
- ret
-; 167f1
-
-UnknownText_0x167f1: ; 0x167f1
- ;
- text_jump UnknownText_0x1bdaa7
- db "@"
-; 0x167f6
-
-Function167f6: ; 167f6
- ld a, $5
- call Function1689b
- ld a, [CurPartySpecies]
- call PlayCry
- ld a, $9
- call Function1689b
- ret
-; 16807
-
-Function16807: ; 16807
- ld a, [StringBuffer2 + 1]
- and a
- jr nz, .asm_16819
- ld a, $f
- call Function1689b
- call YesNoBox
- jr c, .asm_16844
- jr .asm_1682d
-
-.asm_16819
- ld a, $b
- call Function1689b
- call YesNoBox
- jr c, .asm_16844
- ld a, $c
- call Function1689b
- call YesNoBox
- jr c, .asm_16844
-
-.asm_1682d
- ld de, Money
- ld bc, StringBuffer2 + 2
- callba CompareMoney
- jr c, .asm_16848
- ld a, [PartyCount]
- cp $6
- jr nc, .asm_1684c
- and a
- ret
-
-.asm_16844
- ld a, $12
- scf
- ret
-
-.asm_16848
- ld a, $11
- scf
- ret
-
-.asm_1684c
- ld a, $10
- scf
- ret
-; 16850
-
-Function16850: ; 16850
- ld bc, StringBuffer2 + 2
- ld de, Money
- callba TakeMoney
- ld a, $d
- call Function1689b
- ld a, [CurPartySpecies]
- call PlayCry
- ld a, $e
- call Function1689b
- ret
-; 1686d
-
-Function1686d: ; 1686d
- ld a, b
- ld [StringBuffer2], a
- ld a, d
- ld [StringBuffer2 + 1], a
- ld de, StringBuffer1
- ld bc, NAME_LENGTH
- call CopyBytes
- ld hl, 0
- ld bc, $64
- ld a, [StringBuffer2 + 1]
- call AddNTimes
- ld de, $64
- add hl, de
- xor a
- ld [StringBuffer2 + 2], a
- ld a, h
- ld [StringBuffer2 + 3], a
- ld a, l
- ld [StringBuffer2 + 4], a
- ret
-; 1689b
-
-Function1689b: ; 1689b
- ld e, a
- ld d, 0
- ld hl, TextTable_168aa
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call PrintText
- ret
-; 168aa
-
-TextTable_168aa: ; 168aa
- dw UnknownText_0x168d2
- dw UnknownText_0x168d7
- dw UnknownText_0x168dc
- dw UnknownText_0x168e1
- dw UnknownText_0x168e6
- dw UnknownText_0x168ff
- dw UnknownText_0x168f0
- dw UnknownText_0x168eb
- dw UnknownText_0x168fa
- dw UnknownText_0x16904
- dw UnknownText_0x168f5
- dw UnknownText_0x16909
- dw UnknownText_0x1690e
- dw UnknownText_0x16913
- dw UnknownText_0x16918
- dw UnknownText_0x1691d
- dw UnknownText_0x16922
- dw UnknownText_0x16927
- dw UnknownText_0x1692c
- dw UnknownText_0x16931
-; 168d2
-
-UnknownText_0x168d2: ; 0x168d2
- ; I'm the DAY-CARE MAN. Want me to raise a #MON?
- text_jump UnknownText_0x1bdaa9
- db "@"
-; 0x168d7
-
-UnknownText_0x168d7: ; 0x168d7
- ; I'm the DAY-CARE MAN. Do you know about EGGS? I was raising #MON with my wife, you see. We were shocked to find an EGG! How incredible is that? So, want me to raise a #MON?
- text_jump UnknownText_0x1bdad8
- db "@"
-; 0x168dc
-
-UnknownText_0x168dc: ; 0x168dc
- ; I'm the DAY-CARE LADY. Should I raise a #MON for you?
- text_jump UnknownText_0x1bdb85
- db "@"
-; 0x168e1
-
-UnknownText_0x168e1: ; 0x168e1
- ; I'm the DAY-CARE LADY. Do you know about EGGS? My husband and I were raising some #MON, you see. We were shocked to find an EGG! How incredible could that be? Should I raise a #MON for you?
- text_jump UnknownText_0x1bdbbb
- db "@"
-; 0x168e6
-
-UnknownText_0x168e6: ; 0x168e6
- ; What should I raise for you?
- text_jump UnknownText_0x1bdc79
- db "@"
-; 0x168eb
-
-UnknownText_0x168eb: ; 0x168eb
- ; Oh? But you have just one #MON.
- text_jump UnknownText_0x1bdc97
- db "@"
-; 0x168f0
-
-UnknownText_0x168f0: ; 0x168f0
- ; Sorry, but I can't accept an EGG.
- text_jump UnknownText_0x1bdcb8
- db "@"
-; 0x168f5
-
-UnknownText_0x168f5: ; 0x168f5
- ; Remove MAIL before you come see me.
- text_jump UnknownText_0x1bdcda
- db "@"
-; 0x168fa
-
-UnknownText_0x168fa: ; 0x168fa
- ; If you give me that, what will you battle with?
- text_jump UnknownText_0x1bdcff
- db "@"
-; 0x168ff
-
-UnknownText_0x168ff: ; 0x168ff
- ; OK. I'll raise your @ .
- text_jump UnknownText_0x1bdd30
- db "@"
-; 0x16904
-
-UnknownText_0x16904: ; 0x16904
- ; Come back for it later.
- text_jump UnknownText_0x1bdd4b
- db "@"
-; 0x16909
-
-UnknownText_0x16909: ; 0x16909
- ; Are we geniuses or what? Want to see your @ ?
- text_jump UnknownText_0x1bdd64
- db "@"
-; 0x1690e
-
-UnknownText_0x1690e: ; 0x1690e
- ; Your @ has grown a lot. By level, it's grown by @ . If you want your #MON back, it will cost ¥@ .
- text_jump UnknownText_0x1bdd96
- db "@"
-; 0x16913
-
-UnknownText_0x16913: ; 0x16913
- ; Perfect! Here's your #MON.
- text_jump UnknownText_0x1bde04
- db "@"
-; 0x16918
-
-UnknownText_0x16918: ; 0x16918
- ; got back @ .
- text_jump UnknownText_0x1bde1f
- db "@"
-; 0x1691d
-
-UnknownText_0x1691d: ; 0x1691d
- ; Huh? Back already? Your @ needs a little more time with us. If you want your #MON back, it will cost ¥100.
- text_jump UnknownText_0x1bde32
- db "@"
-; 0x16922
+INCLUDE "event/daycare.asm"
-UnknownText_0x16922: ; 0x16922
- ; You have no room for it.
- text_jump UnknownText_0x1bdea2
- db "@"
-; 0x16927
+INCLUDE "event/photo.asm"
-UnknownText_0x16927: ; 0x16927
- ; You don't have enough money.
- text_jump UnknownText_0x1bdebc
- db "@"
-; 0x1692c
-
-UnknownText_0x1692c: ; 0x1692c
- ; Oh, fine then.
- text_jump UnknownText_0x1bded9
- db "@"
-; 0x16931
-
-UnknownText_0x16931: ; 0x16931
- ; Come again.
- text_jump UnknownText_0x1bdee9
- db "@"
-; 0x16936
-
-Special_DayCareManOutside: ; 16936
- ld hl, wDaycareMan
- bit 6, [hl]
- jr nz, Function16949
- ld hl, UnknownText_0x16944
- call PrintText
- ret
-
-UnknownText_0x16944: ; 0x16944
- ; Not yet…
- text_jump UnknownText_0x1bdef6
- db "@"
-; 0x16949
-
-Function16949: ; 16949
- ld hl, UnknownText_0x16993
- call PrintText
- call YesNoBox
- jr c, .asm_1697c
- ld a, [PartyCount]
- cp PARTY_LENGTH
- jr nc, .asm_16987
- call Function169ac
- ld hl, wDaycareMan
- res 6, [hl]
- call Function16a3b
- ld hl, UnknownText_0x16998
- call PrintText
- ld de, SFX_GET_EGG_FROM_DAYCARE_LADY
- call PlaySFX
- ld c, 120
- call DelayFrames
- ld hl, UnknownText_0x1699d
- jr .asm_1697f
-
-.asm_1697c
- ld hl, UnknownText_0x169a2
-
-.asm_1697f
- call PrintText
- xor a
- ld [ScriptVar], a
- ret
-
-.asm_16987
- ld hl, UnknownText_0x169a7
- call PrintText
- ld a, $1
- ld [ScriptVar], a
- ret
-; 16993
-
-UnknownText_0x16993: ; 0x16993
- ; Ah, it's you! We were raising your #MON, and my goodness, were we surprised! Your #MON had an EGG! We don't know how it got there, but your #MON had it. You want it?
- text_jump UnknownText_0x1bdf00
- db "@"
-; 0x16998
-
-UnknownText_0x16998: ; 0x16998
- ; received the EGG!
- text_jump UnknownText_0x1bdfa5
- db "@"
-; 0x1699d
-
-UnknownText_0x1699d: ; 0x1699d
- ; Take good care of it.
- text_jump UnknownText_0x1bdfba
- db "@"
-; 0x169a2
-
-UnknownText_0x169a2: ; 0x169a2
- ; Well then, I'll keep it. Thanks!
- text_jump UnknownText_0x1bdfd1
- db "@"
-; 0x169a7
-
-UnknownText_0x169a7: ; 0x169a7
- ; You have no room in your party. Come back later.
- text_jump UnknownText_0x1bdff2
- db "@"
-; 0x169ac
-
-Function169ac: ; 169ac
- ld a, [wEggMonLevel]
- ld [CurPartyLevel], a
- ld hl, PartyCount
- ld a, [hl]
- cp PARTY_LENGTH
- jr nc, .asm_16a2f
- inc a
- ld [hl], a
- ld c, a
- ld b, 0
- add hl, bc
- ld a, EGG
- ld [hli], a
- ld a, [wEggMonSpecies]
- ld [CurSpecies], a
- ld [CurPartySpecies], a
- ld a, $ff
- ld [hl], a
- ld hl, PartyMonNicknames
- ld bc, PKMN_NAME_LENGTH
- call Function16a31
- ld hl, wEggNick
- call CopyBytes
- ld hl, PartyMonOT
- ld bc, NAME_LENGTH
- call Function16a31
- ld hl, wEggOT
- call CopyBytes
- ld hl, PartyMon1
- ld bc, PARTYMON_STRUCT_LENGTH
- call Function16a31
- ld hl, wEggMon
- ld bc, wEggMonEnd - wEggMon
- call CopyBytes
- call GetBaseData
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld b, h
- ld c, l
- ld hl, MON_ID + 1
- add hl, bc
- push hl
- ld hl, MON_MAXHP
- add hl, bc
- ld d, h
- ld e, l
- pop hl
- push bc
- ld b, $0
- predef CalcPkmnStats
- pop bc
- ld hl, MON_HP
- add hl, bc
- xor a
- ld [hli], a
- ld [hl], a
- and a
- ret
-
-.asm_16a2f
- scf
- ret
-; 16a31
-
-Function16a31: ; 16a31
- ld a, [PartyCount]
- dec a
- call AddNTimes
- ld d, h
- ld e, l
- ret
-; 16a3b
-
-Function16a3b: ; 16a3b
- ld a, [wDaycareLady]
- bit 0, a
- ret z
- ld a, [wDaycareMan]
- bit 0, a
- ret z
- callab Function16e1d
- ld a, [wd265]
- and a
- ret z
- inc a
- ret z
- ld hl, wDaycareMan
- set 5, [hl]
-.asm_16a59
- call Random
- cp 150
- jr c, .asm_16a59
- ld [wStepsToEgg], a
- jp Function16a66
-; 16a66
-
-Function16a66: ; 16a66
- xor a
- ld hl, wEggMon
- ld bc, wEggMonEnd - wEggMon
- call ByteFill
- ld hl, wEggNick
- ld bc, PKMN_NAME_LENGTH
- call ByteFill
- ld hl, wEggOT
- ld bc, NAME_LENGTH
- call ByteFill
- ld a, [wBreedMon1DVs]
- ld [TempMonDVs], a
- ld a, [wBreedMon1DVs + 1]
- ld [TempMonDVs + 1], a
- ld a, [wBreedMon1Species]
- ld [CurPartySpecies], a
- ld a, $3
- ld [MonType], a
- ld a, [wBreedMon1Species]
- cp DITTO
- ld a, $1
- jr z, .asm_16ab6
- ld a, [wBreedMon2Species]
- cp DITTO
- ld a, $0
- jr z, .asm_16ab6
- callba GetGender
- ld a, $0
- jr z, .asm_16ab6
- inc a
-
-.asm_16ab6
- ld [wDittoInDaycare], a
- and a
- ld a, [wBreedMon1Species]
- jr z, .asm_16ac2
- ld a, [wBreedMon2Species]
-
-.asm_16ac2
- ld [CurPartySpecies], a
- callab GetPreEvolution
- callab GetPreEvolution
- ld a, EGG_LEVEL
- ld [CurPartyLevel], a
-
- ld a, [CurPartySpecies]
- cp NIDORAN_F
- jr nz, .asm_16ae8
- call Random
- cp $80
- ld a, NIDORAN_F
- jr c, .asm_16ae8
- ld a, NIDORAN_M
-.asm_16ae8
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- ld [wEggMonSpecies], a
-
- call GetBaseData
- ld hl, wEggNick
- ld de, String_16be0
- call CopyName2
- ld hl, PlayerName
- ld de, wEggOT
- ld bc, NAME_LENGTH
- call CopyBytes
- xor a
- ld [wEggMonItem], a
- ld de, wEggMonMoves
- xor a
- ld [Buffer1], a
- predef FillMoves
- callba Function170bf
- ld hl, wEggMonID
- ld a, [PlayerID]
- ld [hli], a
- ld a, [PlayerID + 1]
- ld [hl], a
- ld a, [CurPartyLevel]
- ld d, a
- callab CalcExpAtLevel
- ld hl, wEggMonExp
- ld a, [hMultiplicand]
- ld [hli], a
- ld a, [$ffb5]
- ld [hli], a
- ld a, [$ffb6]
- ld [hl], a
- xor a
- ld b, $a
- ld hl, wEggMonStatExp
-.asm_16b46
- ld [hli], a
- dec b
- jr nz, .asm_16b46
- ld hl, wEggMonDVs
- call Random
- ld [hli], a
- ld [TempMonDVs], a
- call Random
- ld [hld], a
- ld [TempMonDVs + 1], a
- ld de, wBreedMon1DVs
- ld a, [wBreedMon1Species]
- cp DITTO
- jr z, .asm_16b98
- ld de, wBreedMon2DVs
- ld a, [wBreedMon2Species]
- cp DITTO
- jr z, .asm_16b98
- ld a, $3
- ld [MonType], a
- push hl
- callba GetGender
- pop hl
- ld de, wBreedMon1DVs
- ld bc, wBreedMon2DVs
- jr c, .asm_16bab
- jr z, .asm_16b90
- ld a, [wDittoInDaycare]
- and a
- jr z, .asm_16b98
- ld d, b
- ld e, c
- jr .asm_16b98
-
-.asm_16b90
- ld a, [wDittoInDaycare]
- and a
- jr nz, .asm_16b98
- ld d, b
- ld e, c
-
-.asm_16b98
- ld a, [de]
- inc de
- and $f
- ld b, a
- ld a, [hl]
- and $f0
- add b
- ld [hli], a
- ld a, [de]
- and $7
- ld b, a
- ld a, [hl]
- and $f8
- add b
- ld [hl], a
-
-.asm_16bab
- ld hl, StringBuffer1
- ld de, wd050
- ld bc, NAME_LENGTH
- call CopyBytes
- ld hl, wEggMonMoves
- ld de, wEggMonPP
- predef FillPP
- ld hl, wd050
- ld de, StringBuffer1
- ld bc, NAME_LENGTH
- call CopyBytes
- ld a, [BaseEggSteps]
- ld hl, wEggMonHappiness
- ld [hli], a
- xor a
-rept 2
- ld [hli], a
-endr
- ld [hl], a
- ld a, [CurPartyLevel]
- ld [wEggMonLevel], a
- ret
-; 16be0
-
-String_16be0: ; 16be0
- db "EGG@"
-; 16be4
-
-Function16be4: ; 16be4
- ld a, [UnownDex]
- and a
- ret z
-
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- ld a, [Options]
- push af
- set NO_TEXT_SCROLL, a
- ld [Options], a
- call ClearBGPalettes
- call ClearTileMap
-
- ld de, UnownDexATile
- ld hl, VTiles1 tile $6f
- lb bc, BANK(UnownDexBTile), 1
- call Request1bpp
-
- ld de, UnownDexBTile
- ld hl, VTiles1 tile $75
- lb bc, BANK(UnownDexBTile), 1
- call Request1bpp
-
- hlcoord 0, 0
- lb bc, 3, 18
- call TextBox
-
- hlcoord 0, 5
- lb bc, 7, 7
- call TextBox
-
- hlcoord 0, 14
- lb bc, 2, 18
- call TextBox
-
- hlcoord 1, 2
- ld de, AlphRuinsStampString
- call PlaceString
-
- hlcoord 1, 16
- ld de, UnownDexDoWhatString
- call PlaceString
-
- hlcoord 10, 6
- ld de, UnownDexMenuString
- call PlaceString
-
- xor a
- ld [wJumptableIndex], a
- call Function16cc8
- call WaitBGMap
-
- ld a, UNOWN
- ld [CurPartySpecies], a
- xor a
- ld [TempMonDVs], a
- ld [TempMonDVs + 1], a
-
- ld b, $1c
- call GetSGBLayout
- call SetPalettes
-
-.joy_loop
- call JoyTextDelay
-
- ld a, [hJoyPressed]
- and B_BUTTON
- jr nz, .pressed_b
-
- ld a, [hJoyPressed]
- and A_BUTTON
- jr nz, .pressed_a
-
- call Function16ca0
- call DelayFrame
- jr .joy_loop
-
-.pressed_a
- ld a, [wJumptableIndex]
- push af
- callba Function84560
- call RestartMapMusic
- pop af
- ld [wJumptableIndex], a
- jr .joy_loop
-
-.pressed_b
- pop af
- ld [Options], a
- pop af
- ld [hInMenu], a
- call ReturnToMapFromSubmenu
- ret
-; 16ca0
-
-Function16ca0: ; 16ca0
- ld a, [hJoyLast]
- and D_RIGHT
- jr nz, .press_right
- ld a, [hJoyLast]
- and D_LEFT
- jr nz, .press_left
- ret
-
-.press_left
- ld hl, wJumptableIndex
- ld a, [hl]
- and a
- jr nz, .wrap_around_left
- ld [hl], $1b
-
-.wrap_around_left
- dec [hl]
- jr .return
-
-.press_right
- ld hl, wJumptableIndex
- ld a, [hl]
- cp $1a
- jr c, .wrap_around_right
- ld [hl], $ff
-
-.wrap_around_right
- inc [hl]
-
-.return
- call Function16cc8
- ret
-; 16cc8
-
-Function16cc8: ; 16cc8
- ld a, [wJumptableIndex]
- cp 26
- jr z, Function16d20
- inc a
- ld [UnownLetter], a
- ld a, UNOWN
- ld [CurPartySpecies], a
- xor a
- ld [wc2c6], a
- ld de, VTiles2
- predef GetFrontpic
- call Function16cff
- hlcoord 1, 6
- xor a
- ld [hFillBox], a
- lb bc, 7, 7
- predef FillBox
- ld de, VTiles2 tile $31
- callba Functione0000
- ret
-; 16cff
-
-Function16cff: ; 16cff
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
-
- ld a, BANK(sScratch)
- call GetSRAMBank
- ld de, w6_d000
- ld hl, sScratch
- ld a, [hROMBank]
- ld b, a
- ld c, $31
- call Get2bpp
- call CloseSRAM
-
- pop af
- ld [rSVBK], a
- ret
-; 16d20
-
-Function16d20: ; 16d20
- hlcoord 1, 6
- lb bc, 7, 7
- call ClearBox
- hlcoord 1, 9
- ld de, UnownDexVacantString
- call PlaceString
- xor a
- call GetSRAMBank
- ld hl, sScratch
- ld bc, $31 tiles
- xor a
- call ByteFill
- ld hl, VTiles2 tile $31
- ld de, sScratch
- ld c, $31
- ld a, [hROMBank]
- ld b, a
- call Get2bpp
- call CloseSRAM
- ld c, 20
- call DelayFrames
- ret
-; 16d57
-
-AlphRuinsStampString:
- db " ALPH RUINS STAMP@"
-
-UnownDexDoWhatString:
- db "Do what?@"
-
-UnownDexMenuString:
- db "♂ PRINT"
- next "♀ CANCEL"
- next "← PREVIOUS"
- next "→ NEXT"
- db "@"
-
-UnownDexVacantString:
- db "VACANT@"
-; 16d9c
-
-UnownDexATile: ; 16d9c
-INCBIN "gfx/unknown/016d9c.1bpp"
-UnownDexBTile: ; 16da4
-INCBIN "gfx/unknown/016da4.1bpp"
-; 16dac
-
-Function16dac: ; 16dac
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- hlcoord 7, 11
- ld a, $31
- ld [hFillBox], a
- lb bc, 7, 7
- predef FillBox
- ret
-; 16dc7
-
-PhotoStudio: ; 16dc7
- ld hl, .Text_AskWhichMon
- call PrintText
- callba SelectMonFromParty
- jr c, .cancel
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .egg
-
- ld hl, .Text_HoldStill
- call PrintText
- call DisableSpriteUpdates
- callba Function8461a
- call Function2b74
- ld a, [$ffac]
- and a
- jr nz, .cancel
- ld hl, .Text_Presto
- jr .print_text
-
-.cancel
- ld hl, .Text_NoPicture
- jr .print_text
-
-.egg
- ld hl, .Text_Egg
-
-.print_text
- call PrintText
- ret
-; 16e04
-
-.Text_AskWhichMon: ; 0x16e04
- ; Which #MON should I photo- graph?
- text_jump UnknownText_0x1be024
- db "@"
-; 0x16e09
-
-.Text_HoldStill: ; 0x16e09
- ; All righty. Hold still for a bit.
- text_jump UnknownText_0x1be047
- db "@"
-; 0x16e0e
-
-.Text_Presto: ; 0x16e0e
- ; Presto! All done. Come again, OK?
- text_jump UnknownText_0x1be06a
- db "@"
-; 0x16e13
-
-.Text_NoPicture: ; 0x16e13
- ; Oh, no picture? Come again, OK?
- text_jump UnknownText_0x1c0000
- db "@"
-; 0x16e18
-
-.Text_Egg: ; 0x16e18
- ; An EGG? My talent is worth more…
- text_jump UnknownText_0x1c0021
- db "@"
-; 0x16e1d
-
INCLUDE "engine/breeding/egg.asm"
SECTION "Tileset Data 1", ROMX, BANK[TILESETS_1]
@@ -13739,7 +9901,7 @@
; 244c3
-Function244c3: ; 0x244c3
+UpdateItemDescription: ; 0x244c3
ld a, [MenuSelection]
ld [CurSpecies], a
hlcoord 0, 12
@@ -13759,8 +9921,8 @@
call CopyMenuDataHeader
call MenuBox
call UpdateSprites
- call Function321c
- ld b, $12
+ call ApplyTilemap
+ ld b, SCGB_12
call GetSGBLayout
xor a
ld [hBGMapMode], a
@@ -13789,11 +9951,11 @@
call CopyMenuDataHeader
call ClearMenuBoxInterior
call WaitBGMap
- call ClearSGB
+ call GetMemSGBLayout
xor a
ld [hBGMapMode], a
call OverworldTextModeSwitch
- call Function321c
+ call ApplyTilemap
call UpdateSprites
call LoadStandardFont
ret
@@ -13889,7 +10051,7 @@
call Function24764
call Function247dd
call Function245f1
- call Function321c
+ call ApplyTilemap
xor a
ld [hBGMapMode], a
ret
@@ -14054,7 +10216,7 @@
ld hl, wcfa6
bit 7, [hl]
jp z, xor_a
- ld hl, wd0e4
+ ld hl, wMenuScrollPosition
ld a, [hl]
and a
jr z, .xor_dec_up
@@ -14069,7 +10231,7 @@
ld hl, wcfa6
bit 7, [hl]
jp z, xor_a
- ld hl, wd0e4
+ ld hl, wMenuScrollPosition
ld a, [wMenuData2Items]
add [hl]
ld b, a
@@ -14084,7 +10246,7 @@
; 246fc
Function246fc: ; 246fc
- ld a, [wd0e4]
+ ld a, [wMenuScrollPosition]
ld c, a
ld a, [MenuSelection2]
add c
@@ -14114,10 +10276,10 @@
ld a, [wcf95]
call GetFarByte
ld [wd144], a
-; if ([wd144] + 1) < [wMenuData2Items] + [wd0e4]: [wd0e4] = max(([wd144] + 1) - [wMenuData2Items], 0)
+; if ([wd144] + 1) < [wMenuData2Items] + [wMenuScrollPosition]: [wMenuScrollPosition] = max(([wd144] + 1) - [wMenuData2Items], 0)
ld a, [wMenuData2Items]
ld c, a
- ld a, [wd0e4]
+ ld a, [wMenuScrollPosition]
add c
ld c, a
ld a, [wd144]
@@ -14133,10 +10295,10 @@
xor a
.store
- ld [wd0e4], a
+ ld [wMenuScrollPosition], a
.skip
- ld a, [wd0e4]
+ ld a, [wMenuScrollPosition]
ld c, a
ld a, [wMenuCursorBuffer]
add c
@@ -14149,7 +10311,7 @@
.asm_2475a
xor a
- ld [wd0e4], a
+ ld [wMenuScrollPosition], a
ld a, $1
ld [wMenuCursorBuffer], a
@@ -14251,7 +10413,7 @@
ld a, [wMenuData2Flags]
bit 4, a
jr z, .asm_2480d
- ld a, [wd0e4]
+ ld a, [wMenuScrollPosition]
and a
jr z, .asm_2480d
ld a, [wMenuBorderTopCoord]
@@ -14269,7 +10431,7 @@
ld b, a
ld c, $0
.asm_2481a
- ld a, [wd0e4]
+ ld a, [wMenuScrollPosition]
add c
ld [wcf77], a
ld a, c
@@ -14346,7 +10508,7 @@
and a
jr z, .asm_248b7
ld b, a
- ld a, [wd0e4]
+ ld a, [wMenuScrollPosition]
cp b
jr nc, .asm_248b7
ld c, a
@@ -14396,7 +10558,7 @@
push de
push hl
ld e, a
- ld a, [wd0e4]
+ ld a, [wMenuScrollPosition]
add e
ld e, a
ld d, $0
@@ -14726,17 +10888,17 @@
ret
; 0x24ae8
-Function24ae8: ; 24ae8
+PlaceMoneyTopRightOW: ; 24ae8
ld hl, MenuDataHeader_0x24b15
call CopyMenuDataHeader
jr Function24b01
-Function24af0: ; 24af0
+PlaceMoneyBottomLeftOW: ; 24af0
ld hl, MenuDataHeader_0x24b1d
call CopyMenuDataHeader
jr Function24b01
-Function24af8: ; 24af8
+PlaceMoneyTopRightMenu: ; 24af8
ld hl, MenuDataHeader_0x24b15
ld de, $b
call Function1e2e
@@ -15374,12 +11536,12 @@
dn 2, 2 ; rows, columns
db 6 ; spacing
dba Strings24f3d
- dbw $09, 0
+ dbw BANK(MenuData_0x24f34), 0
; 0x24f3d
Strings24f3d: ; 0x24f3d
db "FIGHT@"
- db $4a, "@"
+ db "<PKMN>@"
db "PACK@"
db "RUN@"
; 24f4e
@@ -15485,95 +11647,95 @@
Function24ff9: ; 24ff9
ld a, $1
ld [wItemQuantityChangeBuffer], a
-.asm_24ffe
- call Function25072
- call Function2500e
- jr nc, .asm_24ffe
- cp $ff
- jr nz, .asm_2500c
+.loop
+ call Function25072 ; update display
+ call Function2500e ; joy action
+ jr nc, .loop
+ cp -1
+ jr nz, .nope
scf
ret
-.asm_2500c
+.nope
and a
ret
; 2500e
Function2500e: ; 2500e
- call Function354b
- bit 1, c
- jr nz, .asm_2502b
- bit 0, c
- jr nz, .asm_2502f
- bit 7, c
- jr nz, .asm_25033
- bit 6, c
- jr nz, .asm_2503f
- bit 5, c
- jr nz, .asm_2504d
- bit 4, c
- jr nz, .asm_2505f
+ call Function354b ; get joypad
+ bit B_BUTTON_F, c
+ jr nz, .b
+ bit A_BUTTON_F, c
+ jr nz, .a
+ bit D_DOWN_F, c
+ jr nz, .down
+ bit D_UP_F, c
+ jr nz, .up
+ bit D_LEFT_F, c
+ jr nz, .left
+ bit D_RIGHT_F, c
+ jr nz, .right
and a
ret
-.asm_2502b
- ld a, $ff
+.b
+ ld a, -1
scf
ret
-.asm_2502f
- ld a, $0
+.a
+ ld a, 0
scf
ret
-.asm_25033
+.down
ld hl, wItemQuantityChangeBuffer
dec [hl]
- jr nz, .asm_2503d
+ jr nz, .finish_down
ld a, [wItemQuantityBuffer]
ld [hl], a
-.asm_2503d
+.finish_down
and a
ret
-.asm_2503f
+.up
ld hl, wItemQuantityChangeBuffer
inc [hl]
ld a, [wItemQuantityBuffer]
cp [hl]
- jr nc, .asm_2504b
+ jr nc, .finish_up
ld [hl], $1
-.asm_2504b
+.finish_up
and a
ret
-.asm_2504d
+.left
ld a, [wItemQuantityChangeBuffer]
sub $a
- jr c, .asm_25058
- jr z, .asm_25058
- jr .asm_2505a
+ jr c, .load_1
+ jr z, .load_1
+ jr .finish_left
-.asm_25058
+.load_1
ld a, $1
-.asm_2505a
+.finish_left
ld [wItemQuantityChangeBuffer], a
and a
ret
-.asm_2505f
+.right
ld a, [wItemQuantityChangeBuffer]
add $a
ld b, a
ld a, [wItemQuantityBuffer]
cp b
- jr nc, .asm_2506c
+ jr nc, .finish_right
ld b, a
-.asm_2506c
+.finish_right
ld a, b
ld [wItemQuantityChangeBuffer], a
and a
@@ -15690,611 +11852,8 @@
db 0 ; default option
; 0x25105
-Function25105: ; 25105
- ld a, [VramState]
- push af
- xor a
- ld [VramState], a
- ld hl, Options
- ld a, [hl]
- push af
- set 4, [hl]
- call Function2513b
-.asm_25117
- call UpdateTime
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_25132
- ld a, [hJoyLast]
- and B_BUTTON
- jr nz, .asm_25132
- call Function2518e
- call DelayFrame
- jr .asm_25117
-.asm_25132
- pop af
- ld [Options], a
- pop af
- ld [VramState], a
- ret
+INCLUDE "engine/trainer_card.asm"
-Function2513b: ; 2513b (9:513b)
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- call DisableLCD
- callba Function8833e
- ld hl, CardRightCornerGFX
- ld de, VTiles2 tile $1c
- ld bc, $10
- ld a, BANK(CardRightCornerGFX)
- call FarCopyBytes
- ld hl, CardStatusGFX
- ld de, VTiles2 tile $29
- ld bc, $60 + $500
- ld a, BANK(CardStatusGFX)
- call FarCopyBytes
- call Function25299
- hlcoord 0, 8
- ld d, $6
- call Function253b0
- call EnableLCD
- call WaitBGMap
- ld b, $15
- call GetSGBLayout
- call SetPalettes
- call WaitBGMap
- ld hl, wJumptableIndex
- xor a
-rept 3
- ld [hli], a
-endr
- ld [hl], a
- ret
-
-Function2518e: ; 2518e (9:518e)
- ld a, [wJumptableIndex]
- ld e, a
- ld d, $0
- ld hl, Jumptable_2519d
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-Jumptable_2519d: ; 2519d (9:519d)
- dw Function251b6
- dw Function251d7
- dw Function251f4
- dw Function25221
- dw Function2524c
- dw Function25279
- dw Function251b0
-
-
-Function251ab: ; 251ab (9:51ab)
- ld hl, wJumptableIndex
- inc [hl]
- ret
-
-Function251b0: ; 251b0 (9:51b0)
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-Function251b6: ; 251b6 (9:51b6)
- call ClearSprites
- hlcoord 0, 8
- ld d, $6
- call Function253b0
- call WaitBGMap
- ld de, CardStatusGFX
- ld hl, VTiles2 tile $29
- lb bc, BANK(CardStatusGFX), $6 + $50
- call Request2bpp
- call Function2530a
- call Function251ab
- ret
-
-Function251d7: ; 251d7 (9:51d7)
- call Function25415
- ld hl, hJoyLast
- ld a, [hl]
- and D_RIGHT | A_BUTTON
- jr nz, .asm_251e3
- ret
-.asm_251e3
- ld a, $2
- ld [wJumptableIndex], a
- ret
-; 251e9 (9:51e9)
-
-Function251e9: ; 251e9
- ld a, [KantoBadges]
- and a
- ret z
- ld a, $4
- ld [wJumptableIndex], a
- ret
-; 251f4
-
-Function251f4: ; 251f4 (9:51f4)
- call ClearSprites
- hlcoord 0, 8
- ld d, $6
- call Function253b0
- call WaitBGMap
- ld de, LeaderGFX
- ld hl, VTiles2 tile $29
- lb bc, BANK(LeaderGFX), $56
- call Request2bpp
- ld de, BadgeGFX
- ld hl, VTiles0 tile $00
- lb bc, BANK(BadgeGFX), $2c
- call Request2bpp
- call Function2536c
- call Function251ab
- ret
-
-Function25221: ; 25221 (9:5221)
- ld hl, Unknown_254c9
- call Function25438
- ld hl, hJoyLast
- ld a, [hl]
- and A_BUTTON
- jr nz, Function25246
- ld a, [hl]
- and D_LEFT
- jr nz, .asm_25235
- ret
-.asm_25235
- ld a, $0
- ld [wJumptableIndex], a
- ret
-; 2523b (9:523b)
-
-Function2523b: ; 2523b
- ld a, [KantoBadges]
- and a
- ret z
- ld a, $4
- ld [wJumptableIndex], a
- ret
-; 25246
-
-Function25246: ; 25246
- ld a, $6
- ld [wJumptableIndex], a
- ret
-
-Function2524c: ; 2524c (9:524c)
- call ClearSprites
- hlcoord 0, 8
- ld d, $6
- call Function253b0
- call WaitBGMap
- ld de, LeaderGFX2
- ld hl, VTiles2 tile $29
- lb bc, BANK(LeaderGFX2), $56
- call Request2bpp
- ld de, BadgeGFX2
- ld hl, VTiles0 tile $00
- lb bc, BANK(BadgeGFX2), $2c
- call Request2bpp
- call Function2536c
- call Function251ab
- ret
-
-Function25279: ; 25279 (9:5279)
- ld hl, Unknown_254c9
- call Function25438
- ld hl, hJoyLast
- ld a, [hl]
- and D_LEFT
- jr nz, .asm_2528d
- ld a, [hl]
- and D_RIGHT
- jr nz, .asm_25293
- ret
-.asm_2528d
- ld a, $2
- ld [wJumptableIndex], a
- ret
-.asm_25293
- ld a, $0
- ld [wJumptableIndex], a
- ret
-
-Function25299: ; 25299 (9:5299)
- hlcoord 0, 0
- ld d, $5
- call Function253b0
- hlcoord 2, 2
- ld de, String_252ec
- call PlaceString
- hlcoord 2, 4
- ld de, Tilemap_252f9
- call Function253a8
- hlcoord 7, 2
- ld de, PlayerName
- call PlaceString
- hlcoord 5, 4
- ld de, PlayerID
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- hlcoord 7, 6
- ld de, Money
- lb bc, PRINTNUM_MONEY | 3, 6
- call PrintNum
- hlcoord 1, 3
- ld de, Tilemap_252fc
- call Function253a8
- hlcoord 14, 1
- lb bc, 5, 7
- xor a
- ld [hFillBox], a
- predef FillBox
- ret
-; 252ec (9:52ec)
-
-String_252ec: ; 252ec
- db "NAME/"
- next ""
- next "MONEY@"
-
-Tilemap_252f9: ; 252f9
- db $27, $28, $ff ; ID NO
-
-Tilemap_252fc: ; 252fc
- db $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $26, $ff ; ____________>
-; 2530a
-
-Function2530a: ; 2530a (9:530a)
- hlcoord 2, 10
- ld de, String_2534c
- call PlaceString
- hlcoord 10, 15
- ld de, String_2535c
- call PlaceString
- ld hl, PokedexCaught
- ld b, $20
- call CountSetBits
- ld de, wd265
- hlcoord 15, 10
- lb bc, 1, 3
- call PrintNum
- call Function25415
- hlcoord 2, 8
- ld de, Tilemap_25366
- call Function253a8
- ld a, [StatusFlags] ; pokedex
- bit 0, a
- ret nz
- hlcoord 1, 9
- lb bc, 2, 17
- call ClearBox
- ret
-; 2534c (9:534c)
-
-String_2534c: ; 2534c
- db "#DEX"
- next "PLAY TIME"
- db "@"
-
-String_2535b: ; 2535b
- db "@"
-
-String_2535c: ; 2535c
- db " BADGES▶@"
-
-Tilemap_25366: ; 25366
- db $29, $2a, $2b, $2c, $2d, $ff
-; 2536c
-
-Function2536c: ; 2536c (9:536c)
- hlcoord 2, 8
- ld de, Tilemap_253a2
- call Function253a8
- hlcoord 2, 10
- ld a, $29
- ld c, $4
-.asm_2537c
- call Function253f4
-rept 4
- inc hl
-endr
- dec c
- jr nz, .asm_2537c
- hlcoord 2, 13
- ld a, $51
- ld c, $4
-.asm_2538d
- call Function253f4
-rept 4
- inc hl
-endr
- dec c
- jr nz, .asm_2538d
- xor a
- ld [wcf64], a
- ld hl, Unknown_254c9
- call Function25448
- ret
-; 253a2 (9:53a2)
-
-Tilemap_253a2: ; 253a2
- db $79, $7a, $7b, $7c, $7d, $ff ; "BADGES"
-; 253a8
-
-Function253a8: ; 253a8 (9:53a8)
- ld a, [de]
- cp $ff
- ret z
- ld [hli], a
- inc de
- jr Function253a8
-
-Function253b0: ; 253b0 (9:53b0)
- ld e, $14
-.asm_253b2
- ld a, $23
- ld [hli], a
- dec e
- jr nz, .asm_253b2
- ld a, $23
- ld [hli], a
- ld e, $11
- ld a, $7f
-.asm_253bf
- ld [hli], a
- dec e
- jr nz, .asm_253bf
- ld a, $1c
- ld [hli], a
- ld a, $23
- ld [hli], a
-.asm_253c9
- ld a, $23
- ld [hli], a
- ld e, $12
- ld a, $7f
-.asm_253d0
- ld [hli], a
- dec e
- jr nz, .asm_253d0
- ld a, $23
- ld [hli], a
- dec d
- jr nz, .asm_253c9
- ld a, $23
- ld [hli], a
- ld a, $24
- ld [hli], a
- ld e, $11
- ld a, $7f
-.asm_253e4
- ld [hli], a
- dec e
- jr nz, .asm_253e4
- ld a, $23
- ld [hli], a
- ld e, $14
-.asm_253ed
- ld a, $23
- ld [hli], a
- dec e
- jr nz, .asm_253ed
- ret
-
-Function253f4: ; 253f4 (9:53f4)
- push de
- push hl
- ld [hli], a
- inc a
- ld [hli], a
- inc a
- ld [hli], a
- inc a
- ld [hli], a
- inc a
- ld de, $11
- add hl, de
- ld [hli], a
- inc a
- ld [hli], a
- inc a
- ld [hli], a
- inc a
- ld de, $11
- add hl, de
- ld [hli], a
- inc a
- ld [hli], a
- inc a
- ld [hli], a
- inc a
- pop hl
- pop de
- ret
-
-Function25415: ; 25415 (9:5415)
- hlcoord 11, 12
- ld de, GameTimeHours
- lb bc, 2, 4
- call PrintNum
- inc hl
- ld de, GameTimeMinutes
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- call PrintNum
- ld a, [hVBlankCounter]
- and $1f
- ret nz
- hlcoord 15, 12
- ld a, [hl]
- xor $51
- ld [hl], a
- ret
-
-Function25438: ; 25438 (9:5438)
- ld a, [hVBlankCounter]
- and $7
- ret nz
- ld a, [wcf64]
- inc a
- and $7
- ld [wcf64], a
- jr Function25448
-
-Function25448: ; 25448 (9:5448)
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [de]
- ld c, a
- ld de, Sprites
- ld b, 8
-.asm_25453
- srl c
- push bc
- jr nc, .asm_25472
- push hl
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld [wcf66], a
- ld a, [wcf64]
- add l
- ld l, a
- ld a, 0
- adc h
- ld h, a
- ld a, [hl]
- ld [wcf65], a
- call Function2547b
- pop hl
-.asm_25472
- ld bc, $b
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_25453
- ret
-
-Function2547b: ; 2547b (9:547b)
- ld a, [wcf65]
- and $80
- jr nz, .asm_25487
- ld hl, Unknown_254a7
- jr .asm_2548a
-.asm_25487
- ld hl, Unknown_254b8
-.asm_2548a
- ld a, [hli]
- cp $ff
- ret z
- add b
- ld [de], a
- inc de
- ld a, [hli]
- add c
- ld [de], a
- inc de
- ld a, [wcf65]
- and $7f
- add [hl]
- ld [de], a
- inc hl
- inc de
- ld a, [wcf66]
- add [hl]
- ld [de], a
- inc hl
- inc de
- jr .asm_2548a
-; 254a7 (9:54a7)
-
-Unknown_254a7: ; 254a7
- db $00, $00, $00, $00
- db $00, $08, $01, $00
- db $08, $00, $02, $00
- db $08, $08, $03, $00
- db $ff
-
-Unknown_254b8: ; 254b8
- db $00, $00, $01, $20
- db $00, $08, $00, $20
- db $08, $00, $03, $20
- db $08, $08, $02, $20
- db $ff
-
-Unknown_254c9: ; 254c9
-; Template OAM data for each badge on the trainer card.
-; Format:
- ; y, x, palette
- ; cycle 1: face tile, in1 tile, in2 tile, in3 tile
- ; cycle 2: face tile, in1 tile, in2 tile, in3 tile
-
- dw JohtoBadges
-
- ; Zephyrbadge
- db $68, $18, $00
- db $00, $20, $24, $20 | $80
- db $00, $20, $24, $20 | $80
-
- ; Hivebadge
- db $68, $38, $00
- db $04, $20, $24, $20 | $80
- db $04, $20, $24, $20 | $80
-
- ; Plainbadge
- db $68, $58, $00
- db $08, $20, $24, $20 | $80
- db $08, $20, $24, $20 | $80
-
- ; Fogbadge
- db $68, $78, $00
- db $0c, $20, $24, $20 | $80
- db $0c, $20, $24, $20 | $80
-
- ; Mineralbadge
- db $80, $38, $00
- db $10, $20, $24, $20 | $80
- db $10, $20, $24, $20 | $80
-
- ; Stormbadge
- db $80, $18, $00
- db $14, $20, $24, $20 | $80
- db $14, $20, $24, $20 | $80
-
- ; Glacierbadge
- db $80, $58, $00
- db $18, $20, $24, $20 | $80
- db $18, $20, $24, $20 | $80
-
- ; Risingbadge
- ; X-flips on alternate cycles.
- db $80, $78, $00
- db $1c, $20, $24, $20 | $80
- db $1c | $80, $20, $24, $20 | $80
-; 25523
-
-CardStatusGFX: INCBIN "gfx/misc/card_status.2bpp"
-
-LeaderGFX: INCBIN "gfx/misc/leaders.w24.2bpp"
-LeaderGFX2: INCBIN "gfx/misc/leaders.w24.2bpp"
-BadgeGFX: INCBIN "gfx/misc/badges.2bpp"
-BadgeGFX2: INCBIN "gfx/misc/badges.2bpp"
-
-CardRightCornerGFX: INCBIN "gfx/misc/card_right_corner.2bpp"
-
-
ProfOaksPC: ; 0x265d3
ld hl, OakPCText1
call MenuTextBox
@@ -16575,1401 +12134,8 @@
text_jump _OakPCText4
db "@"
+INCLUDE "engine/decorations.asm"
-InitDecorations: ; 26751 (9:6751)
- ld a, DECO_FEATHERY_BED
- ld [Bed], a
- ld a, DECO_TOWN_MAP
- ld [Poster], a
- ret
-
-_KrisDecorationMenu: ; 0x2675c
- ld a, [wcf76]
- push af
- ld hl, MenuDataHeader_0x2679a
- call LoadMenuDataHeader
- xor a
- ld [wd1ee], a
- ld a, $1
- ld [wd1ef], a
-.asm_2676f
- ld a, [wd1ef]
- ld [wMenuCursorBuffer], a
- call Function26806
- call Function1e5d
- ld a, [MenuSelection2]
- ld [wd1ef], a
- jr c, .asm_2678e
- ld a, [MenuSelection]
- ld hl, Unknown_267aa
- call Function1fa7
- jr nc, .asm_2676f
-
-.asm_2678e
- call ExitMenu
- pop af
- ld [wcf76], a
- ld a, [wd1ee]
- ld c, a
- ret
-; 0x2679a
-
-MenuDataHeader_0x2679a: ; 0x2679a
- db $40 ; flags
- db 00, 05 ; start coords
- db 17, 19 ; end coords
- dw MenuData2_0x267a2
- db 1 ; default option
-; 0x267a2
-
-MenuData2_0x267a2: ; 0x267a2
- db $a0 ; flags
- db 0 ; items
- dw wd002
- dw Function1f8d
- dw Unknown_267aa
-; 0x267aa
-
-Unknown_267aa: ; 267aa
- dw Function268b5, .bed
- dw Function268ca, .carpet
- dw Function268df, .plant
- dw Function268f3, .poster
- dw Function26908, .game
- dw Function2691d, .ornament
- dw Function26945, .big_doll
- dw Function26959, .exit
-
-.bed db "BED@"
-.carpet db "CARPET@"
-.plant db "PLANT@"
-.poster db "POSTER@"
-.game db "GAME CONSOLE@"
-.ornament db "ORNAMENT@"
-.big_doll db "BIG DOLL@"
-.exit db "EXIT@"
-; 26806
-
-Function26806: ; 26806
- xor a
- ld [wcf76], a
- call Function26822
- call Function2683a
- ld a, $7
- call Function26830
- ld hl, StringBuffer2
- ld de, wd002
- ld bc, $d
- call CopyBytes
- ret
-
-Function26822: ; 26822 (9:6822)
- ld hl, StringBuffer2
- xor a
- ld [hli], a
- ld bc, ITEM_NAME_LENGTH - 1
- ld a, -1
- call ByteFill
- ret
-
-Function26830: ; 26830 (9:6830)
- ld hl, StringBuffer2
- inc [hl]
- ld e, [hl]
- ld d, 0
- add hl, de
- ld [hl], a
- ret
-
-Function2683a: ; 2683a (9:683a)
- ld hl, Jumptable_26855
-.loop
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- or e
- jr z, .done
- push hl
- call _de_
- pop hl
- jr nc, .next
- ld a, [hl]
- push hl
- call Function26830
- pop hl
-.next
- inc hl
- jr .loop
-.done
- ret
-; 26855 (9:6855)
-
-Jumptable_26855: ; 26855
- dwb Function268bd, 0 ; bed
- dwb Function268d2, 1 ; carpet
- dwb Function268e7, 2 ; plant
- dwb Function268fb, 3 ; poster
- dwb Function26910, 4 ; game console
- dwb Function26925, 5 ; ornament
- dwb Function2694d, 6 ; big doll
- dw 0 ; end
-; 2686c
-
-Function2686c: ; 2686c
- xor a
- ld hl, wd002
- ld [hli], a
- ld a, -1
- ld bc, $10
- call ByteFill
- ret
-; 2687a
-
-CheckAllDecorationFlags: ; 2687a
-.loop
- ld a, [hli]
- cp -1
- jr z, .done
- push hl
- push af
- ld b, CHECK_FLAG
- call DecorationFlagAction
- ld a, c
- and a
- pop bc
- ld a, b
- call nz, Function26891
- pop hl
- jr .loop
-
-.done
- ret
-; 26891
-
-Function26891: ; 26891
- ld hl, wd002
- inc [hl]
- ld e, [hl]
- ld d, $0
- add hl, de
- ld [hl], a
- ret
-; 2689b
-
-Function2689b: ; 2689b
- push bc
- push hl
- call Function2686c
- pop hl
- call CheckAllDecorationFlags
- pop bc
- ld a, [wd002]
- and a
- ret z
- ld a, c
- call Function26891
- ld a, $0
- call Function26891
- scf
- ret
-; 268b5
-
-Function268b5: ; 268b5
- call Function268bd
- call Function2695b
- xor a
- ret
-; 268bd
-
-Function268bd: ; 268bd
- ld hl, Unknown_268c5
- ld c, 1
- jp Function2689b
-; 268c5
-
-Unknown_268c5: ; 268c5
- db 2, 3, 4, 5, $ff
-; 268ca
-
-Function268ca: ; 268ca
- call Function268d2
- call Function2695b
- xor a
- ret
-; 268d2
-
-Function268d2: ; 268d2
- ld hl, Unknown_268da
- ld c, 6
- jp Function2689b
-; 268da
-
-Unknown_268da: ; 268da
- db 7, 8, 9, 10, $ff
-; 268df
-
-Function268df: ; 268df
- call Function268e7
- call Function2695b
- xor a
- ret
-; 268e7
-
-Function268e7: ; 268e7
- ld hl, Unknown_268ef
- ld c, 11
- jp Function2689b
-; 268ef
-
-Unknown_268ef: ; 268ef
- db 12, 13, 14, $ff
-; 268f3
-
-Function268f3: ; 268f3
- call Function268fb
- call Function2695b
- xor a
- ret
-; 268fb
-
-Function268fb: ; 268fb
- ld hl, Unknown_26903
- ld c, 15
- jp Function2689b
-; 26903
-
-Unknown_26903: ; 26903
- db 16, 17, 18, 19, $ff
-; 26908
-
-Function26908: ; 26908
- call Function26910
- call Function2695b
- xor a
- ret
-; 26910
-
-Function26910: ; 26910
- ld hl, Unknown_26918
- ld c, 20
- jp Function2689b
-; 26918
-
-Unknown_26918: ; 26918
- db 21, 22, 23, 24, $ff
-; 2691d
-
-Function2691d: ; 2691d
- call Function26925
- call Function2695b
- xor a
- ret
-; 26925
-
-Function26925: ; 26925
- ld hl, Unknown_2692d
- ld c, 29
- jp Function2689b
-; 2692d
-
-Unknown_2692d: ; 2692d
- db 30, 31, 32, 33, 34, 35, 36, 37, 38, 39
- db 40, 41, 42, 43, 44, 45, 46, 47, 48, 49
- db 50, 51, 52, -1
-; 26945
-
-Function26945: ; 26945
- call Function2694d
- call Function2695b
- xor a
- ret
-; 2694d
-
-Function2694d: ; 2694d
- ld hl, Unknown_26955
- ld c, 25
- jp Function2689b
-; 26955
-
-Unknown_26955: ; 26955
- db 26, 27, 28, -1
-; 26959
-
-Function26959: ; 26959
- scf
- ret
-; 2695b
-
-Function2695b: ; 2695b
- ld a, [wd002]
- and a
- jr z, .empty
- cp 8
- jr nc, .beyond_eight
- xor a
- ld [wcf76], a
- ld hl, MenuDataHeader_0x269b5
- call LoadMenuDataHeader
- call Function1e5d
- jr c, .no_action_1
- call DoDecorationAction2
-
-.no_action_1
- call ExitMenu
- ret
-
-.beyond_eight
- ld hl, wd002
- ld e, [hl]
- dec [hl]
- ld d, 0
- add hl, de
- ld [hl], -1
- call LoadStandardMenuDataHeader
- ld hl, MenuDataHeader_0x269c5
- call CopyMenuDataHeader
- xor a
- ld [hBGMapMode], a
- call Function352f
- xor a
- ld [wd0e4], a
- call HandleScrollingMenu
- ld a, [wcf73]
- cp 2
- jr z, .no_action_2
- call DoDecorationAction2
-
-.no_action_2
- call ExitMenu
- ret
-
-.empty
- ld hl, UnknownText_0x269b0
- call MenuTextBoxBackup
- ret
-; 269b0
-
-UnknownText_0x269b0: ; 0x269b0
- ; There's nothing to choose.
- text_jump UnknownText_0x1bc471
- db "@"
-; 0x269b5
-
-MenuDataHeader_0x269b5: ; 0x269b5
- db $40 ; flags
- db 00, 00 ; start coords
- db 17, 19 ; end coords
- dw MenuData2_0x269bd
- db 1 ; default option
-; 0x269bd
-
-MenuData2_0x269bd: ; 0x269bd
- db $a0 ; flags
- db 0 ; items
- dw wd002
- dw DecorationMenuFunction
- dw DecorationAttributes
-; 0x269c5
-
-MenuDataHeader_0x269c5: ; 0x269c5
- db $40 ; flags
- db 01, 01 ; start coords
- db 16, 18 ; end coords
- dw MenuData2_0x269cd
- db 1 ; default option
-; 0x269cd
-
-MenuData2_0x269cd: ; 0x269cd
- db $10 ; flags
- db 8, 0 ; rows, columns
- db 1 ; horizontal spacing
- dbw 0, wd002 ; text pointer
- dba DecorationMenuFunction
- dbw 0, 0
- dbw 0, 0
-; 269dd
-
-
-GetDecorationData: ; 269dd
- ld hl, DecorationAttributes
- ld bc, 6
- call AddNTimes
- ret
-; 269e7
-
-GetDecorationName: ; 269e7
- push hl
- call GetDecorationData
- call GetDecoName
- pop hl
- call CopyName2
- ret
-; 269f3
-
-DecorationMenuFunction: ; 269f3
- ld a, [MenuSelection]
- push de
- call GetDecorationData
- call GetDecoName
- pop hl
- call PlaceString
- ret
-; 26a02
-
-DoDecorationAction2: ; 26a02
- ld a, [MenuSelection]
- call GetDecorationData
- ld de, 2 ; function 2
- add hl, de
- ld a, [hl]
- ld hl, .DecoActions
- rst JumpTable
- ret
-; 26a12
-
-.DecoActions: ; 26a12
- dw DecoAction_nothing
- dw DecoAction_setupbed
- dw DecoAction_putawaybed
- dw DecoAction_setupcarpet
- dw DecoAction_putawaycarpet
- dw DecoAction_setupplant
- dw DecoAction_putawayplant
- dw DecoAction_setupposter
- dw DecoAction_putawayposter
- dw DecoAction_setupconsole
- dw DecoAction_putawayconsole
- dw DecoAction_setupbigdoll
- dw DecoAction_putawaybigdoll
- dw DecoAction_setupornament
- dw DecoAction_putawayornament
-; 26a30
-
-
-GetDecorationFlag: ; 26a30
- call GetDecorationData
- ld de, 3 ; event flag
- add hl, de
- ld a, [hli]
- ld d, [hl]
- ld e, a
- ret
-; 26a3b
-
-DecorationFlagAction: ; 26a3b
- push bc
- call GetDecorationFlag
- pop bc
- call EventFlagAction
- ret
-; 26a44
-
-GetDecorationSprite: ; 26a44
- ld a, c
- call GetDecorationData
- ld de, 5 ; sprite
- add hl, de
- ld a, [hl]
- ld c, a
- ret
-; 26a4f
-
-decoration: MACRO
- ; type, name, command, event flag, tile/sprite
- db \1, \2, \3
- dw \4
- db \5
-ENDM
-
-DecorationAttributes: ; 26a4f
- decoration DECO_PLANT, $00, $0, EVENT_GAVE_KURT_APRICORNS, $00
- decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_BED, EVENT_GAVE_KURT_APRICORNS, $00
- decoration DECO_BED, FEATHERY_BED, SET_UP_BED, EVENT_DECO_BED_1, $1b
- decoration DECO_BED, PINK_BED, SET_UP_BED, EVENT_DECO_BED_2, $1c
- decoration DECO_BED, POLKADOT_BED, SET_UP_BED, EVENT_DECO_BED_3, $1d
- decoration DECO_BED, PIKACHU_BED, SET_UP_BED, EVENT_DECO_BED_4, $1e
- decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_CARPET, EVENT_GAVE_KURT_APRICORNS, $00
- decoration DECO_CARPET, RED_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_1, $08
- decoration DECO_CARPET, BLUE_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_2, $0b
- decoration DECO_CARPET, YELLOW_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_3, $0e
- decoration DECO_CARPET, GREEN_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_4, $11
- decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_PLANT, EVENT_GAVE_KURT_APRICORNS, $00
- decoration DECO_PLANT, MAGNAPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_1, $20
- decoration DECO_PLANT, TROPICPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_2, $21
- decoration DECO_PLANT, JUMBOPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_3, $22
- decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_POSTER, EVENT_GAVE_KURT_APRICORNS, $00
- decoration DECO_PLANT, TOWN_MAP_D, SET_UP_POSTER, EVENT_DECO_PLANT_4, $1f
- decoration DECO_POSTER, PIKACHU, SET_UP_POSTER, EVENT_DECO_POSTER_1, $23
- decoration DECO_POSTER, CLEFAIRY, SET_UP_POSTER, EVENT_DECO_POSTER_2, $24
- decoration DECO_POSTER, JIGGLYPUFF, SET_UP_POSTER, EVENT_DECO_POSTER_3, $25
- decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_CONSOLE, EVENT_GAVE_KURT_APRICORNS, $00
- decoration DECO_PLANT, FAMICOM, SET_UP_CONSOLE, EVENT_DECO_FAMICOM, SPRITE_FAMICOM
- decoration DECO_PLANT, SUPER_NES, SET_UP_CONSOLE, EVENT_DECO_SNES, SPRITE_SNES
- decoration DECO_PLANT, NINTENDO_64, SET_UP_CONSOLE, EVENT_DECO_N64, SPRITE_N64
- decoration DECO_PLANT, VIRTUAL_BOY, SET_UP_CONSOLE, EVENT_DECO_VIRTUAL_BOY, SPRITE_VIRTUAL_BOY
- decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_BIG_DOLL, EVENT_GAVE_KURT_APRICORNS, $00
- decoration DECO_BIGDOLL, SNORLAX, SET_UP_BIG_DOLL, EVENT_DECO_BIG_SNORLAX_DOLL, SPRITE_BIG_SNORLAX
- decoration DECO_BIGDOLL, ONIX, SET_UP_BIG_DOLL, EVENT_DECO_BIG_ONIX_DOLL, SPRITE_BIG_ONIX
- decoration DECO_BIGDOLL, LAPRAS, SET_UP_BIG_DOLL, EVENT_DECO_BIG_LAPRAS_DOLL, SPRITE_BIG_LAPRAS
- decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_DOLL, EVENT_GAVE_KURT_APRICORNS, $00
- decoration DECO_DOLL, PIKACHU, SET_UP_DOLL, EVENT_DECO_PIKACHU_DOLL, SPRITE_PIKACHU
- decoration DECO_PLANT, SURF_PIKA_DOLL, SET_UP_DOLL, EVENT_DECO_SURFING_PIKACHU_DOLL, SPRITE_SURFING_PIKACHU
- decoration DECO_DOLL, CLEFAIRY, SET_UP_DOLL, EVENT_DECO_CLEFAIRY_DOLL, SPRITE_CLEFAIRY
- decoration DECO_DOLL, JIGGLYPUFF, SET_UP_DOLL, EVENT_DECO_JIGGLYPUFF_DOLL, SPRITE_JIGGLYPUFF
- decoration DECO_DOLL, BULBASAUR, SET_UP_DOLL, EVENT_DECO_BULBASAUR_DOLL, SPRITE_BULBASAUR
- decoration DECO_DOLL, CHARMANDER, SET_UP_DOLL, EVENT_DECO_CHARMANDER_DOLL, SPRITE_CHARMANDER
- decoration DECO_DOLL, SQUIRTLE, SET_UP_DOLL, EVENT_DECO_SQUIRTLE_DOLL, SPRITE_SQUIRTLE
- decoration DECO_DOLL, POLIWAG, SET_UP_DOLL, EVENT_DECO_POLIWAG_DOLL, SPRITE_POLIWAG
- decoration DECO_DOLL, DIGLETT, SET_UP_DOLL, EVENT_DECO_DIGLETT_DOLL, SPRITE_DIGLETT
- decoration DECO_DOLL, STARYU, SET_UP_DOLL, EVENT_DECO_STARMIE_DOLL, SPRITE_STARMIE
- decoration DECO_DOLL, MAGIKARP, SET_UP_DOLL, EVENT_DECO_MAGIKARP_DOLL, SPRITE_MAGIKARP
- decoration DECO_DOLL, ODDISH, SET_UP_DOLL, EVENT_DECO_ODDISH_DOLL, SPRITE_ODDISH
- decoration DECO_DOLL, GENGAR, SET_UP_DOLL, EVENT_DECO_GENGAR_DOLL, SPRITE_GENGAR
- decoration DECO_DOLL, SHELLDER, SET_UP_DOLL, EVENT_DECO_SHELLDER_DOLL, SPRITE_SHELLDER
- decoration DECO_DOLL, GRIMER, SET_UP_DOLL, EVENT_DECO_GRIMER_DOLL, SPRITE_GRIMER
- decoration DECO_DOLL, VOLTORB, SET_UP_DOLL, EVENT_DECO_VOLTORB_DOLL, SPRITE_VOLTORB
- decoration DECO_DOLL, WEEDLE, SET_UP_DOLL, EVENT_DECO_WEEDLE_DOLL, SPRITE_WEEDLE
- decoration DECO_DOLL, UNOWN, SET_UP_DOLL, EVENT_DECO_UNOWN_DOLL, SPRITE_UNOWN
- decoration DECO_DOLL, GEODUDE, SET_UP_DOLL, EVENT_DECO_GEODUDE_DOLL, SPRITE_GEODUDE
- decoration DECO_DOLL, MACHOP, SET_UP_DOLL, EVENT_DECO_MACHOP_DOLL, SPRITE_MACHOP
- decoration DECO_DOLL, TENTACOOL, SET_UP_DOLL, EVENT_DECO_TENTACOOL_DOLL, SPRITE_TENTACOOL
- decoration DECO_PLANT, GOLD_TROPHY, SET_UP_DOLL, EVENT_DECO_GOLD_TROPHY, SPRITE_GOLD_TROPHY
- decoration DECO_PLANT, SILVER_TROPHY, SET_UP_DOLL, EVENT_DECO_SILVER_TROPHY, SPRITE_SILVER_TROPHY
-; 26b8d
-
-
-DecorationNames: ; 26b8d
- db "CANCEL@"
- db "PUT IT AWAY@"
- db "MAGNAPLANT@"
- db "TROPICPLANT@"
- db "JUMBOPLANT@"
- db "TOWN MAP@"
- db "NES@"
- db "SUPER NES@"
- db "NINTENDO 64@"
- db "VIRTUAL BOY@"
- db "GOLD TROPHY@"
- db "SILVER TROPHY@"
- db "SURF PIKACHU DOLL@"
- db " BED@"
- db " CARPET@"
- db " POSTER@"
- db " DOLL@"
- db "BIG @"
- db "FEATHERY@"
- db "PIKACHU@"
- db "PINK@"
- db "POLKADOT@"
- db "RED@"
- db "BLUE@"
- db "YELLOW@"
- db "GREEN@"
-; 26c72
-
-GetDecoName: ; 26c72
- ld a, [hli]
- ld e, [hl]
- ld bc, StringBuffer2
- push bc
- ld hl, .NameFunctions
- rst JumpTable
- pop de
- ret
-; 26c7e
-
-.NameFunctions: ; 26c7e
- dw .invalid
- dw .plant
- dw .bed
- dw .carpet
- dw .poster
- dw .doll
- dw .bigdoll
-; 26c8c
-
-
-.invalid: ; 26c8c
- ret
-; 26c8d
-
-.plant: ; 26c8d
- ld a, e
- jr .getdeconame
-
-.bed: ; 26c90
- call .plant
- ld a, _BED
- jr .getdeconame
-
-.carpet: ; 26c97
- call .plant
- ld a, _CARPET
- jr .getdeconame
-
-.poster: ; 26c9e
- ld a, e
- call .getpokename
- ld a, _POSTER
- jr .getdeconame
-
-.doll: ; 26ca6
- ld a, e
- call .getpokename
- ld a, _DOLL
- jr .getdeconame
-
-.bigdoll: ; 26cae
- push de
- ld a, BIG_
- call .getdeconame
- pop de
- ld a, e
- jr .getpokename
-
-.unused: ; 26cb8
- push de
- call .getdeconame
- pop de
- ld a, e
- jr .getdeconame
-
-.getpokename: ; 26cc0
- push bc
- ld [wd265], a
- call GetPokemonName
- pop bc
- jr .copy
-
-.getdeconame: ; 26cca
- call ._getdeconame
- jr .copy
-
-._getdeconame: ; 26ccf
- push bc
- ld hl, DecorationNames
- call GetNthString
- ld d, h
- ld e, l
- pop bc
- ret
-
-.copy: ; 26cda
- ld h, b
- ld l, c
- call CopyName2
- dec hl
- ld b, h
- ld c, l
- ret
-; 26ce3
-
-DecoAction_nothing: ; 26ce3
- scf
- ret
-; 26ce5
-
-DecoAction_setupbed: ; 26ce5
- ld hl, Bed
- jp DecoAction_TrySetItUp
-; 26ceb
-
-DecoAction_putawaybed: ; 26ceb
- ld hl, Bed
- jp DecoAction_TryPutItAway
-; 26cf1
-
-DecoAction_setupcarpet: ; 26cf1
- ld hl, Carpet
- jp DecoAction_TrySetItUp
-; 26cf7
-
-DecoAction_putawaycarpet: ; 26cf7
- ld hl, Carpet
- jp DecoAction_TryPutItAway
-; 26cfd
-
-DecoAction_setupplant: ; 26cfd
- ld hl, Plant
- jp DecoAction_TrySetItUp
-; 26d03
-
-DecoAction_putawayplant: ; 26d03
- ld hl, Plant
- jp DecoAction_TryPutItAway
-; 26d09
-
-DecoAction_setupposter: ; 26d09
- ld hl, Poster
- jp DecoAction_TrySetItUp
-; 26d0f
-
-DecoAction_putawayposter: ; 26d0f
- ld hl, Poster
- jp DecoAction_TryPutItAway
-; 26d15
-
-DecoAction_setupconsole: ; 26d15
- ld hl, Console
- jp DecoAction_TrySetItUp
-; 26d1b
-
-DecoAction_putawayconsole: ; 26d1b
- ld hl, Console
- jp DecoAction_TryPutItAway
-; 26d21
-
-DecoAction_setupbigdoll: ; 26d21
- ld hl, BigDoll
- jp DecoAction_TrySetItUp
-; 26d27
-
-DecoAction_putawaybigdoll: ; 26d27
- ld hl, BigDoll
- jp DecoAction_TryPutItAway
-; 26d2d
-
-DecoAction_TrySetItUp: ; 26d2d
- ld a, [hl]
- ld [Buffer1], a
- push hl
- call DecoAction_SetItUp
- jr c, .failed
- ld a, 1
- ld [wd1ee], a
- pop hl
- ld a, [MenuSelection]
- ld [hl], a
- xor a
- ret
-
-.failed
- pop hl
- xor a
- ret
-; 26d46
-
-DecoAction_SetItUp: ; 26d46
-; See if there's anything of the same type already out
- ld a, [Buffer1]
- and a
- jr z, .nothingthere
-; See if that item is already out
- ld b, a
- ld a, [MenuSelection]
- cp b
- jr z, .alreadythere
-; Put away the item that's already out, and set up the new one
- ld a, [MenuSelection]
- ld hl, StringBuffer4
- call GetDecorationName
- ld a, [Buffer1]
- ld hl, StringBuffer3
- call GetDecorationName
- ld hl, UnknownText_0x26ee0
- call MenuTextBoxBackup
- xor a
- ret
-
-.nothingthere
- ld a, [MenuSelection]
- ld hl, StringBuffer3
- call GetDecorationName
- ld hl, UnknownText_0x26edb
- call MenuTextBoxBackup
- xor a
- ret
-
-.alreadythere
- ld hl, UnknownText_0x26ee5
- call MenuTextBoxBackup
- scf
- ret
-; 26d86
-
-DecoAction_TryPutItAway: ; 26d86
-; If there is no item of that type already set, there is nothing to put away.
- ld a, [hl]
- ld [Buffer1], a
- xor a
- ld [hl], a
- ld a, [Buffer1]
- and a
- jr z, .nothingthere
-; Put it away.
- ld a, $1
- ld [wd1ee], a
- ld a, [Buffer1]
- ld [MenuSelection], a
- ld hl, StringBuffer3
- call GetDecorationName
- ld hl, UnknownText_0x26ed1
- call MenuTextBoxBackup
- xor a
- ret
-
-.nothingthere
- ld hl, UnknownText_0x26ed6
- call MenuTextBoxBackup
- xor a
- ret
-; 26db3
-
-DecoAction_setupornament: ; 26db3
- ld hl, UnknownText_0x26e41
- call DecoAction_AskWhichSide
- jr c, .cancel
- call DecoAction_SetItUp_Ornament
- jr c, .cancel
- ld a, $1
- ld [wd1ee], a
- jr DecoAction_FinishUp_Ornament
-
-.cancel
- xor a
- ret
-
-DecoAction_putawayornament: ; 26dc9
- ld hl, UnknownText_0x26e6b
- call DecoAction_AskWhichSide
- jr nc, .incave
- xor a
- ret
-
-.incave
- call DecoAction_PutItAway_Ornament
-
-DecoAction_FinishUp_Ornament: ; 26dd6
- call QueryWhichSide
- ld a, [wd1ec]
- ld [hl], a
- ld a, [wd1ed]
- ld [de], a
- xor a
- ret
-; 26de3
-
-DecoAction_SetItUp_Ornament: ; 26de3
- ld a, [wd1ec]
- and a
- jr z, .nothingthere
- ld b, a
- ld a, [MenuSelection]
- cp b
- jr z, .failed
- ld a, b
- ld hl, StringBuffer3
- call GetDecorationName
- ld a, [MenuSelection]
- ld hl, StringBuffer4
- call GetDecorationName
- ld a, [MenuSelection]
- ld [wd1ec], a
- call .getwhichside
- ld hl, UnknownText_0x26ee0
- call MenuTextBoxBackup
- xor a
- ret
-
-.nothingthere
- ld a, [MenuSelection]
- ld [wd1ec], a
- call .getwhichside
- ld a, [MenuSelection]
- ld hl, StringBuffer3
- call GetDecorationName
- ld hl, UnknownText_0x26edb
- call MenuTextBoxBackup
- xor a
- ret
-
-.failed
- ld hl, UnknownText_0x26ee5
- call MenuTextBoxBackup
- scf
- ret
-; 26e33
-
-.getwhichside: ; 26e33
- ld a, [MenuSelection]
- ld b, a
- ld a, [wd1ed]
- cp b
- ret nz
- xor a
- ld [wd1ed], a
- ret
-; 26e41
-
-UnknownText_0x26e41: ; 0x26e41
- ; Which side do you want to put it on?
- text_jump UnknownText_0x1bc48c
- db "@"
-; 0x26e46
-
-DecoAction_PutItAway_Ornament: ; 26e46
- ld a, [wd1ec]
- and a
- jr z, .nothingthere
- ld hl, StringBuffer3
- call GetDecorationName
- ld a, $1
- ld [wd1ee], a
- xor a
- ld [wd1ec], a
- ld hl, UnknownText_0x26ed1
- call MenuTextBoxBackup
- xor a
- ret
-
-.nothingthere
- ld hl, UnknownText_0x26ed6
- call MenuTextBoxBackup
- xor a
- ret
-; 26e6b
-
-UnknownText_0x26e6b: ; 0x26e6b
- ; Which side do you want to put away?
- text_jump UnknownText_0x1bc4b2
- db "@"
-; 0x26e70
-
-DecoAction_AskWhichSide: ; 26e70
- call MenuTextBox
- ld hl, MenuDataHeader_0x26eab
- call GetMenu2
- call ExitMenu
- call CopyMenuData2
- jr c, .nope
- ld a, [MenuSelection2]
- cp 3
- jr z, .nope
- ld [Buffer2], a
- call QueryWhichSide
- ld a, [hl]
- ld [wd1ec], a
- ld a, [de]
- ld [wd1ed], a
- xor a
- ret
-
-.nope
- scf
- ret
-; 26e9a
-
-QueryWhichSide: ; 26e9a
- ld hl, RightOrnament
- ld de, LeftOrnament
- ld a, [Buffer2]
- cp 1
- ret z
- push hl
- ld h, d
- ld l, e
- pop de
- ret
-; 26eab
-
-MenuDataHeader_0x26eab: ; 0x26eab
- db $40 ; flags
- db 00, 00 ; start coords
- db 07, 13 ; end coords
- dw MenuData2_0x26eb3
- db 1 ; default option
-; 0x26eb3
-
-MenuData2_0x26eb3: ; 0x26eb3
- db $80 ; flags
- db 3 ; items
- db "RIGHT SIDE@"
- db "LEFT SIDE@"
- db "CANCEL@"
-; 0x26ed1
-
-UnknownText_0x26ed1: ; 0x26ed1
- ; Put away the @ .
- text_jump UnknownText_0x1bc4d7
- db "@"
-; 0x26ed6
-
-UnknownText_0x26ed6: ; 0x26ed6
- ; There's nothing to put away.
- text_jump UnknownText_0x1bc4ec
- db "@"
-; 0x26edb
-
-UnknownText_0x26edb: ; 0x26edb
- ; Set up the @ .
- text_jump UnknownText_0x1bc509
- db "@"
-; 0x26ee0
-
-UnknownText_0x26ee0: ; 0x26ee0
- ; Put away the @ and set up the @ .
- text_jump UnknownText_0x1bc51c
- db "@"
-; 0x26ee5
-
-UnknownText_0x26ee5: ; 0x26ee5
- ; That's already set up.
- text_jump UnknownText_0x1bc546
- db "@"
-; 0x26eea
-
-GetDecorationName_c_de: ; 26eea
- ld a, c
- ld h, d
- ld l, e
- call GetDecorationName
- ret
-; 26ef1
-
-DecorationFlagAction_c: ; 26ef1
- ld a, c
- jp DecorationFlagAction
-; 26ef5
-
-
-GetDecorationName_c: ; 26ef5 (9:6ef5)
- ld a, c
- call GetDecorationID
- ld hl, StringBuffer1
- push hl
- call GetDecorationName
- pop de
- ret
-
-
-SetSpecificDecorationFlag: ; 26f02
- ld a, c
- call GetDecorationID
- ld b, SET_FLAG
- call DecorationFlagAction
- ret
-; 26f0c
-
-GetDecorationID: ; 26f0c
- push hl
- push de
- ld e, a
- ld d, 0
- ld hl, DecorationIDs
- add hl, de
- ld a, [hl]
- pop de
- pop hl
- ret
-; 26f19
-
-SetAllDecorationFlags: ; 26f19
- ld hl, DecorationIDs
-.loop
- ld a, [hli]
- cp -1
- jr z, .done
- push hl
- ld b, SET_FLAG
- call DecorationFlagAction
- pop hl
- jr .loop
-
-.done
- ret
-; 26f2b
-
-DecorationIDs: ; 26f2b
- db DECO_FEATHERY_BED ; 2
- db DECO_PINK_BED ; 3
- db DECO_POLKADOT_BED ; 4
- db DECO_PIKACHU_BED ; 5
-
- db DECO_RED_CARPET ; 7
- db DECO_BLUE_CARPET ; 8
- db DECO_YELLOW_CARPET ; 9
- db DECO_GREEN_CARPET ; a
-
- db DECO_MAGNAPLANT ; c
- db DECO_TROPICPLANT ; d
- db DECO_JUMBOPLANT ; e
-
- db DECO_TOWN_MAP ; 10
- db DECO_PIKACHU_POSTER ; 11
- db DECO_CLEFAIRY_POSTER ; 12
- db DECO_JIGGLYPUFF_POSTER ; 13
-
- db DECO_FAMICOM ; 15
- db DECO_SNES ; 16
- db DECO_N64 ; 17
- db DECO_VIRTUAL_BOY ; 18
-
- db DECO_PIKACHU_DOLL ; 1e
- db DECO_SURF_PIKACHU_DOLL ; 1f
- db DECO_CLEFAIRY_DOLL ; 20
- db DECO_JIGGLYPUFF_DOLL ; 21
- db DECO_BULBASAUR_DOLL ; 22
- db DECO_CHARMANDER_DOLL ; 23
- db DECO_SQUIRTLE_DOLL ; 24
- db DECO_POLIWAG_DOLL ; 25
- db DECO_DIGLETT_DOLL ; 26
- db DECO_STARMIE_DOLL ; 27
- db DECO_MAGIKARP_DOLL ; 28
- db DECO_ODDISH_DOLL ; 29
- db DECO_GENGAR_DOLL ; 2a
- db DECO_SHELLDER_DOLL ; 2b
- db DECO_GRIMER_DOLL ; 2c
- db DECO_VOLTORB_DOLL ; 2d
- db DECO_WEEDLE_DOLL ; 2e
- db DECO_UNOWN_DOLL ; 2f
- db DECO_GEODUDE_DOLL ; 30
- db DECO_MACHOP_DOLL ; 31
- db DECO_TENTACOOL_DOLL ; 32
- db DECO_BIG_SNORLAX_DOLL ; 1a
- db DECO_BIG_ONIX_DOLL ; 1b
- db DECO_BIG_LAPRAS_DOLL ; 1c
- db DECO_GOLD_TROPHY_DOLL ; 33
- db DECO_SILVER_TROPHY_DOLL ; 34
- db -1
-; 26f59
-
-DescribeDecoration:: ; 26f59
- ld a, b
- ld hl, JumpTable_DecorationDesc
- rst JumpTable
- ret
-; 26f5f
-
-JumpTable_DecorationDesc: ; 26f5f
- dw DecorationDesc_Poster
- dw DecorationDesc_LeftOrnament
- dw DecorationDesc_RightOrnament
- dw DecorationDesc_GiantDoll
- dw DecorationDesc_Console
-; 26f69
-
-DecorationDesc_Poster: ; 26f69
- ld a, [Poster]
- ld hl, DecorationDesc_PosterPointers
- ld de, 3
- call IsInArray
- jr c, .nope
- ld de, DecorationDesc_NullPoster
- ld b, BANK(DecorationDesc_NullPoster)
- ret
-
-.nope
- ld b, BANK(DecorationDesc_TownMapPoster)
- inc hl
- ld a, [hli]
- ld d, [hl]
- ld e, a
- ret
-; 26f84
-
-DecorationDesc_PosterPointers: ; 26f84
- dbw DECO_TOWN_MAP, DecorationDesc_TownMapPoster
- dbw DECO_PIKACHU_POSTER, DecorationDesc_PikachuPoster
- dbw DECO_CLEFAIRY_POSTER, DecorationDesc_ClefairyPoster
- dbw DECO_JIGGLYPUFF_POSTER, DecorationDesc_JigglypuffPoster
- db -1
-; 26f91
-
-DecorationDesc_TownMapPoster: ; 0x26f91
- loadfont
- writetext UnknownText_0x26f9b
- closetext
- special Special_TownMap
- loadmovesprites
- end
-; 0x26f9b
-
-UnknownText_0x26f9b: ; 0x26f9b
- ; It's the TOWN MAP.
- text_jump UnknownText_0x1bc55d
- db "@"
-; 0x26fa0
-
-DecorationDesc_PikachuPoster: ; 0x26fa0
- jumptext UnknownText_0x26fa3
-; 0x26fa3
-
-UnknownText_0x26fa3: ; 0x26fa3
- ; It's a poster of a cute PIKACHU.
- text_jump UnknownText_0x1bc570
- db "@"
-; 0x26fa8
-
-DecorationDesc_ClefairyPoster: ; 0x26fa8
- jumptext UnknownText_0x26fab
-; 0x26fab
-
-UnknownText_0x26fab: ; 0x26fab
- ; It's a poster of a cute CLEFAIRY.
- text_jump UnknownText_0x1bc591
- db "@"
-; 0x26fb0
-
-DecorationDesc_JigglypuffPoster: ; 0x26fb0
- jumptext UnknownText_0x26fb3
-; 0x26fb3
-
-UnknownText_0x26fb3: ; 0x26fb3
- ; It's a poster of a cute JIGGLYPUFF.
- text_jump UnknownText_0x1bc5b3
- db "@"
-; 0x26fb8
-
-DecorationDesc_NullPoster: ; 26fb8
- end
-; 26fb9
-
-DecorationDesc_LeftOrnament: ; 26fb9
- ld a, [LeftOrnament]
- jr DecorationDesc_OrnamentOrConsole
-
-DecorationDesc_RightOrnament: ; 26fbe
- ld a, [RightOrnament]
- jr DecorationDesc_OrnamentOrConsole
-
-DecorationDesc_Console: ; 26fc3
- ld a, [Console]
- jr DecorationDesc_OrnamentOrConsole
-
-DecorationDesc_OrnamentOrConsole: ; 26fc8
- ld c, a
- ld de, StringBuffer3
- call GetDecorationName_c_de
- ld b, BANK(Unknown_26fd5)
- ld de, Unknown_26fd5
- ret
-; 26fd5
-
-Unknown_26fd5: ; 26fd5
- dbw $53, UnknownText_0x26fd8
-; 26fd8
-
-UnknownText_0x26fd8: ; 0x26fd8
- ; It's an adorable @ .
- text_jump UnknownText_0x1bc5d7
- db "@"
-; 0x26fdd
-
-DecorationDesc_GiantDoll: ; 26fdd
- ld b, BANK(Unknown_26fe3)
- ld de, Unknown_26fe3
- ret
-; 26fe3
-
-Unknown_26fe3: ; 26fe3
- dbw $53, UnknownText_0x26fe6
-; 26fe6
-
-UnknownText_0x26fe6: ; 0x26fe6
- ; A giant doll! It's fluffy and cuddly.
- text_jump UnknownText_0x1bc5ef
- db "@"
-; 0x26feb
-
-ToggleMaptileDecorations: ; 26feb
- lb de, 0, 4
- ld a, [Bed]
- call SetDecorationTile
- lb de, 7, 4
- ld a, [Plant]
- call SetDecorationTile
- lb de, 6, 0
- ld a, [Poster]
- call SetDecorationTile
- call SetPosterVisibility
- lb de, 0, 0
- call PadCoords_de
- ld a, [Carpet]
- and a
- ret z
- call _GetDecorationSprite
- ld [hl], a
- push af
- lb de, 0, 2
- call PadCoords_de
- pop af
- inc a
- ld [hli], a
- inc a
- ld [hli], a
- dec a
- ld [hl], a
- ret
-; 27027
-
-SetPosterVisibility: ; 27027
- ld b, SET_FLAG
- ld a, [Poster]
- and a
- jr nz, .ok
- ld b, RESET_FLAG
-
-.ok
- ld de, EVENT_KRISS_ROOM_POSTER
- jp EventFlagAction
-; 27037
-
-SetDecorationTile: ; 27037
- push af
- call PadCoords_de
- pop af
- and a
- ret z
- call _GetDecorationSprite
- ld [hl], a
- ret
-; 27043
-
-ToggleDecorationsVisibility: ; 27043
- ld de, EVENT_KRISS_HOUSE_2F_CONSOLE
- ld hl, VariableSprites + SPRITE_CONSOLE - SPRITE_VARS
- ld a, [Console]
- call ToggleDecorationVisibility
- ld de, EVENT_KRISS_HOUSE_2F_DOLL_1
- ld hl, VariableSprites + SPRITE_DOLL_1 - SPRITE_VARS
- ld a, [LeftOrnament]
- call ToggleDecorationVisibility
- ld de, EVENT_KRISS_HOUSE_2F_DOLL_2
- ld hl, VariableSprites + SPRITE_DOLL_2 - SPRITE_VARS
- ld a, [RightOrnament]
- call ToggleDecorationVisibility
- ld de, EVENT_KRISS_HOUSE_2F_BIG_DOLL
- ld hl, VariableSprites + SPRITE_BIG_DOLL - SPRITE_VARS
- ld a, [BigDoll]
- call ToggleDecorationVisibility
- ret
-; 27074
-
-ToggleDecorationVisibility: ; 27074
- and a
- jr z, .hide
- call _GetDecorationSprite
- ld [hl], a
- ld b, RESET_FLAG
- jp EventFlagAction
-
-.hide
- ld b, SET_FLAG
- jp EventFlagAction
-; 27085
-
-_GetDecorationSprite: ; 27085
- ld c, a
- push de
- push hl
- callba GetDecorationSprite
- pop hl
- pop de
- ld a, c
- ret
-; 27092
-
PadCoords_de: ; 27092
ld a, d
add 4
@@ -18006,7 +12172,7 @@
INCLUDE "trainers/dvs.asm"
-Function2715c: ; 2715c
+_ReturnToBattle_UseBall: ; 2715c
call ClearBGPalettes
call ClearTileMap
ld a, [BattleType]
@@ -18021,7 +12187,7 @@
.continue
callba GetMonFrontpic
callba _LoadBattleFontsHPBar
- call ClearSGB
+ call GetMemSGBLayout
call WriteBackup
call LoadStandardMenuDataHeader
call WaitBGMap
@@ -18132,7 +12298,7 @@
ld a, $0
call GetSRAMBank
ld d, $0
- ld b, $2
+ ld b, CHECK_FLAG
predef FlagPredef
call CloseSRAM
ld a, c
@@ -18140,1065 +12306,8 @@
ret
; 29ff8
-LoadWildMonData: ; 29ff8
- call _GrassWildmonLookup
- jr c, .copy
- ld hl, wd25a
- xor a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- jr .done_copy
-.copy
- inc hl
- inc hl
- ld de, wd25a
- ld bc, $3
- call CopyBytes
-.done_copy
- call _WaterWildmonLookup
- ld a, $0
- jr nc, .no_copy
- inc hl
- inc hl
- ld a, [hl]
-.no_copy
- ld [wd25d], a
- ret
+INCLUDE "engine/wildmons.asm"
-Function2a01f: ; 2a01f
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- xor a
- call ByteFill
- ld a, e
- and a
- jr nz, .kanto
- decoord 0, 0
- ld hl, JohtoGrassWildMons
- call Function2a052
- ld hl, JohtoWaterWildMons
- call Function2a06e
- call Function2a0b7
- call Function2a0cf
- ret
-
-.kanto
- decoord 0, 0
- ld hl, KantoGrassWildMons
- call Function2a052
- ld hl, KantoWaterWildMons
- jp Function2a06e
-; 2a052
-
-Function2a052: ; 2a052
-.loop
- ld a, [hl]
- cp $ff
- ret z
- push hl
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld c, a
-rept 3
- inc hl
-endr
- ld a, $15
- call Function2a088
- jr nc, .next
- ld [de], a
- inc de
-
-.next
- pop hl
- ld bc, $2f
- add hl, bc
- jr .loop
-; 2a06e
-
-Function2a06e: ; 2a06e
-.loop
- ld a, [hl]
- cp $ff
- ret z
- push hl
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld c, a
- inc hl
- ld a, $3
- call Function2a088
- jr nc, .next
- ld [de], a
- inc de
-
-.next
- pop hl
- ld bc, 9
- add hl, bc
- jr .loop
-; 2a088
-
-Function2a088: ; 2a088
- inc hl
-.loop
- push af
- ld a, [wd265]
- cp [hl]
- jr z, .found
-rept 2
- inc hl
-endr
- pop af
- dec a
- jr nz, .loop
- and a
- ret
-
-.found
- pop af
- jp Function2a09c
-; 2a09c
-
-Function2a09c: ; 2a09c
- push de
- call GetWorldMapLocation
- ld c, a
- hlcoord 0, 0
- ld de, SCREEN_WIDTH * SCREEN_HEIGHT
-.loop
- ld a, [hli]
- cp c
- jr z, .found
- dec de
- ld a, e
- or d
- jr nz, .loop
- ld a, c
- pop de
- scf
- ret
-
-.found
- pop de
- and a
- ret
-; 2a0b7
-
-Function2a0b7: ; 2a0b7
- ld a, [wRoamMon1Species]
- ld b, a
- ld a, [wd265]
- cp b
- ret nz
- ld a, [wRoamMon1MapGroup]
- ld b, a
- ld a, [wRoamMon1MapNumber]
- ld c, a
- call Function2a09c
- ret nc
- ld [de], a
- inc de
- ret
-; 2a0cf
-
-Function2a0cf: ; 2a0cf
- ld a, [wRoamMon2Species]
- ld b, a
- ld a, [wd265]
- cp b
- ret nz
- ld a, [wRoamMon2MapGroup]
- ld b, a
- ld a, [wRoamMon2MapNumber]
- ld c, a
- call Function2a09c
- ret nc
- ld [de], a
- inc de
- ret
-; 2a0e7
-
-TryWildEncounter:: ; 2a0e7
-; Try to trigger a wild encounter.
- call .EncounterRate
- jr nc, .no_battle
- call ChooseWildEncounter
- jr nz, .no_battle
- call CheckRepelEffect
- jr nc, .no_battle
- xor a
- ret
-
-.no_battle
- xor a ; BATTLETYPE_NORMAL
- ld [TempWildMonSpecies], a
- ld [BattleType], a
- ld a, 1
- and a
- ret
-; 2a103
-
-.EncounterRate: ; 2a103
- call GetMapEncounterRate
- call ApplyMusicEffectOnEncounterRate
- call ApplyCleanseTagEffectOnEncounterRate
- call Random
- cp b
- ret
-; 2a111
-
-GetMapEncounterRate: ; 2a111
- ld hl, wd25a
- call CheckOnWater
- ld a, 3
- jr z, .ok
- ld a, [TimeOfDay]
-.ok
- ld c, a
- ld b, 0
- add hl, bc
- ld b, [hl]
- ret
-; 2a124
-
-ApplyMusicEffectOnEncounterRate:: ; 2a124
-; Pokemon March and Ruins of Alph signal double encounter rate.
-; Pokemon Lullaby halves encounter rate.
- ld a, [wMapMusic]
- cp MUSIC_POKEMON_MARCH
- jr z, .double
- cp MUSIC_RUINS_OF_ALPH_RADIO
- jr z, .double
- cp MUSIC_POKEMON_LULLABY
- ret nz
- srl b
- ret
-
-.double
- sla b
- ret
-; 2a138
-
-ApplyCleanseTagEffectOnEncounterRate:: ; 2a138
-; Cleanse Tag halves encounter rate.
- ld hl, PartyMon1Item
- ld de, PARTYMON_STRUCT_LENGTH
- ld a, [PartyCount]
- ld c, a
-.loop
- ld a, [hl]
- cp CLEANSE_TAG
- jr z, .cleansetag
- add hl, de
- dec c
- jr nz, .loop
- ret
-
-.cleansetag
- srl b
- ret
-; 2a14f
-
-ChooseWildEncounter: ; 2a14f
- call LoadWildMonDataPointer
- jp nc, .nowildbattle
- call CheckEncounterRoamMon
- jp c, .startwildbattle
-
-rept 3
- inc hl
-endr
- call CheckOnWater
- ld de, .WaterMonTable
- jr z, .watermon
-rept 2
- inc hl
-endr
- ld a, [TimeOfDay]
- ld bc, $e
- call AddNTimes
- ld de, .GrassMonTable
-
-.watermon
-; hl contains the pointer to the wild mon data, let's save that to the stack
- push hl
-.randomloop
- call Random
- cp 100
- jr nc, .randomloop
- inc a ; 1 <= a <= 100
- ld b, a
- ld h, d
- ld l, e
-; This next loop chooses which mon to load up.
-.prob_bracket_loop
- ld a, [hli]
- cp b
- jr nc, .got_it
- inc hl
- jr .prob_bracket_loop
-
-.got_it
- ld c, [hl]
- ld b, 0
- pop hl
- add hl, bc ; this selects our mon
- ld a, [hli]
- ld b, a
-; If the Pokemon is encountered by surfing, we need to give the levels some variety.
- call CheckOnWater
- jr nz, .ok
-; Check if we buff the wild mon, and by how much.
- call Random
- cp 35 percent
- jr c, .ok
- inc b
- cp 65 percent
- jr c, .ok
- inc b
- cp 85 percent
- jr c, .ok
- inc b
- cp 95 percent
- jr c, .ok
- inc b
-; Store the level
-.ok
- ld a, b
- ld [CurPartyLevel], a
- ld b, [hl]
- ; ld a, b
- call ValidateTempWildMonSpecies
- jr c, .nowildbattle
-
- ld a, b ; This is in the wrong place.
- cp UNOWN
- jr nz, .done
-
- ld a, [UnlockedUnowns]
- and a
- jr z, .nowildbattle
-
-.done
- jr .loadwildmon
-
-.nowildbattle
- ld a, 1
- and a
- ret
-
-.loadwildmon
- ld a, b
- ld [TempWildMonSpecies], a
-
-.startwildbattle
- xor a
- ret
-; 2a1cb
-
-.GrassMonTable: ; 2a1cb
- db 30, $0 ; 30% chance
- db 60, $2 ; 30% chance
- db 80, $4 ; 20% chance
- db 90, $6 ; 10% chance
- db 95, $8 ; 5% chance
- db 99, $a ; 4% chance
- db 100, $c ; 1% chance
-; 2a1d9
-
-.WaterMonTable: ; 2a1d9
- db 60, $0 ; 60% chance
- db 90, $2 ; 30% chance
- db 100, $4 ; 10% chance
-; 2a1df
-
-CheckRepelEffect:: ; 2a1df
-; If there is no active Repel, there's no need to be here.
- ld a, [wRepelEffect]
- and a
- jr z, .encounter
-; Get the first Pokemon in your party that isn't fainted.
- ld hl, PartyMon1HP
- ld bc, PARTYMON_STRUCT_LENGTH - 1
-.loop
- ld a, [hli]
- or [hl]
- jr nz, .ok
- add hl, bc
- jr .loop
-
-.ok
-; to PartyMonLevel
-rept 4
- dec hl
-endr
-
- ld a, [CurPartyLevel]
- cp [hl]
- jr nc, .encounter
- and a
- ret
-
-.encounter
- scf
- ret
-; 2a200
-
-LoadWildMonDataPointer: ; 2a200
- call CheckOnWater
- jr z, _WaterWildmonLookup
-
-_GrassWildmonLookup: ; 2a205
- ld hl, SwarmGrassWildMons
- ld bc, GRASS_WILDDATA_LENGTH
- call _SwarmWildmonCheck
- ret c
- ld hl, JohtoGrassWildMons
- ld de, KantoGrassWildMons
- call _JohtoWildmonCheck
- ld bc, GRASS_WILDDATA_LENGTH
- jr _NormalWildmonOK
-
-_WaterWildmonLookup: ; 2a21d
- ld hl, SwarmWaterWildMons
- ld bc, WATER_WILDDATA_LENGTH
- call _SwarmWildmonCheck
- ret c
- ld hl, JohtoWaterWildMons
- ld de, KantoWaterWildMons
- call _JohtoWildmonCheck
- ld bc, WATER_WILDDATA_LENGTH
- jr _NormalWildmonOK
-
-_JohtoWildmonCheck
- call IsInJohto
- and a
- ret z
- ld h, d
- ld l, e
- ret
-
-_SwarmWildmonCheck
- call CopyCurrMapDE
- push hl
- ld hl, SwarmFlags
- bit 2, [hl]
- pop hl
- jr z, .CheckYanma
- ld a, [wdfcc]
- cp d
- jr nz, .CheckYanma
- ld a, [wdfcd]
- cp e
- jr nz, .CheckYanma
- call LookUpWildmonsForMapDE
- jr nc, _NoSwarmWildmon
- scf
- ret
-
-.CheckYanma
- push hl
- ld hl, SwarmFlags
- bit 3, [hl]
- pop hl
- jr z, _NoSwarmWildmon
- ld a, [wdc5a]
- cp d
- jr nz, _NoSwarmWildmon
- ld a, [wdc5b]
- cp e
- jr nz, _NoSwarmWildmon
- call LookUpWildmonsForMapDE
- jr nc, _NoSwarmWildmon
- scf
- ret
-
-_NoSwarmWildmon
- and a
- ret
-
-_NormalWildmonOK
- call CopyCurrMapDE
- jr LookUpWildmonsForMapDE
-; 2a27f
-
-CopyCurrMapDE: ; 2a27f
- ld a, [MapGroup]
- ld d, a
- ld a, [MapNumber]
- ld e, a
- ret
-; 2a288
-
-LookUpWildmonsForMapDE: ; 2a288
- push hl
- ld a, [hl]
- inc a
- jr z, .nope
- ld a, d
- cp [hl]
- jr nz, .next
- inc hl
- ld a, e
- cp [hl]
- jr z, .yup
-
-.next
- pop hl
- add hl, bc
- jr LookUpWildmonsForMapDE
-
-.nope
- pop hl
- and a
- ret
-
-.yup
- pop hl
- scf
- ret
-; 2a2a0
-
-
-InitRoamMons: ; 2a2a0
-; initialize wRoamMon structs
-
-; species
- ld a, RAIKOU
- ld [wRoamMon1Species], a
- ld a, ENTEI
- ld [wRoamMon2Species], a
-; ld a, SUICUNE
-; ld [wRoamMon3Species], a
-
-; level
- ld a, 40
- ld [wRoamMon1Level], a
- ld [wRoamMon2Level], a
-; ld [wRoamMon3Level], a
-
-; raikou starting map
- ld a, GROUP_ROUTE_42
- ld [wRoamMon1MapGroup], a
- ld a, MAP_ROUTE_42
- ld [wRoamMon1MapNumber], a
-
-; entei starting map
- ld a, GROUP_ROUTE_37
- ld [wRoamMon2MapGroup], a
- ld a, MAP_ROUTE_37
- ld [wRoamMon2MapNumber], a
-
-; suicune starting map
-; ld a, GROUP_ROUTE_38
-; ld [wRoamMon3MapGroup], a
-; ld a, MAP_ROUTE_38
-; ld [wRoamMon3MapNumber], a
-
-; hp
- xor a ; generate new stats
- ld [wRoamMon1HP], a
- ld [wRoamMon2HP], a
-; ld [wRoamMon3HP], a
-
- ret
-; 2a2ce
-
-
-CheckEncounterRoamMon: ; 2a2ce
- push hl
-; Don't trigger an encounter if we're on water.
- call CheckOnWater
- jr z, .DontEncounterRoamMon
-; Load the current map group and number to de
- call CopyCurrMapDE
-; Randomly select a beast.
- call Random
- cp 100 ; 25/64 chance
- jr nc, .DontEncounterRoamMon
- and %00000011 ; Of that, a 3/4 chance. Running total: 75/256, or around 29.3%.
- jr z, .DontEncounterRoamMon
- dec a ; 1/3 chance that it's Entei, 1/3 chance that it's Raikou
-; Compare its current location with yours
- ld hl, wRoamMon1MapGroup
- ld c, a
- ld b, 0
- ld a, 7 ; length of the RoamMon struct
- call AddNTimes
- ld a, d
- cp [hl]
- jr nz, .DontEncounterRoamMon
- inc hl
- ld a, e
- cp [hl]
- jr nz, .DontEncounterRoamMon
-; We've decided to take on a beast, so stage its information for battle.
-rept 3
- dec hl
-endr
- ld a, [hli]
- ld [TempWildMonSpecies], a
- ld a, [hl]
- ld [CurPartyLevel], a
- ld a, BATTLETYPE_ROAMING
- ld [BattleType], a
-
- pop hl
- scf
- ret
-
-.DontEncounterRoamMon
- pop hl
- and a
- ret
-; 2a30d
-
-
-UpdateRoamMons: ; 2a30d
- ld a, [wRoamMon1MapGroup]
- cp GROUP_N_A
- jr z, .SkipRaikou
- ld b, a
- ld a, [wRoamMon1MapNumber]
- ld c, a
- call .Update
- ld a, b
- ld [wRoamMon1MapGroup], a
- ld a, c
- ld [wRoamMon1MapNumber], a
-
-.SkipRaikou
- ld a, [wRoamMon2MapGroup]
- cp GROUP_N_A
- jr z, .SkipEntei
- ld b, a
- ld a, [wRoamMon2MapNumber]
- ld c, a
- call .Update
- ld a, b
- ld [wRoamMon2MapGroup], a
- ld a, c
- ld [wRoamMon2MapNumber], a
-
-.SkipEntei
- ld a, [wRoamMon3MapGroup]
- cp GROUP_N_A
- jr z, .SkipSuicune
- ld b, a
- ld a, [wRoamMon3MapNumber]
- ld c, a
- call .Update
- ld a, b
- ld [wRoamMon3MapGroup], a
- ld a, c
- ld [wRoamMon3MapNumber], a
-
-.SkipSuicune
- jp _BackUpMapIndices
-; 2a355
-
-
-.Update: ; 2a355
- ld hl, RoamMaps
-.loop
-; Are we at the end of the table?
- ld a, [hl]
- cp -1
- ret z
-; Is this the correct entry?
- ld a, b
- cp [hl]
- jr nz, .next
- inc hl
- ld a, c
- cp [hl]
- jr z, .yes
-; We don't have the correct entry yet, so let's continue. A 0 terminates each entry.
-.next
- ld a, [hli]
- and a
- jr nz, .next
- jr .loop
-
-; We have the correct entry now, so let's choose a random map from it.
-.yes
- inc hl
- ld d, h
- ld e, l
-.update_loop
- ld h, d
- ld l, e
-; Choose which map to warp to.
- call Random
- and $1f ; 1/8n chance it moves to a completely random map, where n is the number of roaming connections from the current map.
- jr z, JumpRoamMon
- and 3
- cp [hl]
- jr nc, .update_loop ; invalid index, try again
- inc hl
- ld c, a
- ld b, $0
-rept 2
- add hl, bc
-endr
- ld a, [wdfe7]
- cp [hl]
- jr nz, .done
- inc hl
- ld a, [wdfe6]
- cp [hl]
- jr z, .update_loop
- dec hl
-
-.done
- ld a, [hli]
- ld b, a
- ld c, [hl]
- ret
-
-JumpRoamMons: ; 2a394
- ld a, [wRoamMon1MapGroup]
- cp GROUP_N_A
- jr z, .SkipRaikou
- call JumpRoamMon
- ld a, b
- ld [wRoamMon1MapGroup], a
- ld a, c
- ld [wRoamMon1MapNumber], a
-.SkipRaikou
-
- ld a, [wRoamMon2MapGroup]
- cp GROUP_N_A
- jr z, .SkipEntei
- call JumpRoamMon
- ld a, b
- ld [wRoamMon2MapGroup], a
- ld a, c
- ld [wRoamMon2MapNumber], a
-.SkipEntei
-
- ld a, [wRoamMon3MapGroup]
- cp GROUP_N_A
- jr z, .SkipSuicune
- call JumpRoamMon
- ld a, b
- ld [wRoamMon3MapGroup], a
- ld a, c
- ld [wRoamMon3MapNumber], a
-.SkipSuicune
-
- jp _BackUpMapIndices
-
-JumpRoamMon: ; 2a3cd
-.loop
- ld hl, RoamMaps
-.innerloop1 ; This loop is completely unnecessary.
- call Random ; Choose a random number
- and $f ; Take the lower nybble only. This gives a number between 0 and 15.
- cp $10 ; If the number is greater than or equal to 16, loop back and try again.
- jr nc, .innerloop1 ; I'm sure you can guess why this check is bogus.
- inc a
- ld b, a
-.innerloop2 ; Loop to get hl to the address of the chosen roam map.
- dec b
- jr z, .ok
-.innerloop3 ; Loop to skip the current roam map, which is terminated by a 0.
- ld a, [hli]
- and a
- jr nz, .innerloop3
- jr .innerloop2
-; Check to see if the selected map is the one the player is currently in. If so, try again.
-.ok
- ld a, [MapGroup]
- cp [hl]
- jr nz, .done
- inc hl
- ld a, [MapNumber]
- cp [hl]
- jr z, .loop
- dec hl
-; Return the map group and number in bc.
-.done
- ld a, [hli]
- ld b, a
- ld c, [hl]
- ret
-; 2a3f6
-
-_BackUpMapIndices: ; 2a3f6
- ld a, [wdfe4]
- ld [wdfe6], a
- ld a, [wdfe5]
- ld [wdfe7], a
- ld a, [MapNumber]
- ld [wdfe4], a
- ld a, [MapGroup]
- ld [wdfe5], a
- ret
-; 2a40f
-
-RoamMaps: ; 2a40f
-; Maps that roaming monsters can be on,
-; and possible maps they can jump to.
-; Notably missing are Route 40 and
-; Route 41, which are water routes.
- roam_map ROUTE_29, 2, ROUTE_30, ROUTE_46
- roam_map ROUTE_30, 2, ROUTE_29, ROUTE_31
- roam_map ROUTE_31, 3, ROUTE_30, ROUTE_32, ROUTE_36
- roam_map ROUTE_32, 3, ROUTE_36, ROUTE_31, ROUTE_33
- roam_map ROUTE_33, 2, ROUTE_32, ROUTE_34
- roam_map ROUTE_34, 2, ROUTE_33, ROUTE_35
- roam_map ROUTE_35, 2, ROUTE_34, ROUTE_36
- roam_map ROUTE_36, 4, ROUTE_35, ROUTE_31, ROUTE_32, ROUTE_37
- roam_map ROUTE_37, 3, ROUTE_36, ROUTE_38, ROUTE_42
- roam_map ROUTE_38, 3, ROUTE_37, ROUTE_39, ROUTE_42
- roam_map ROUTE_39, 1, ROUTE_38
- roam_map ROUTE_42, 4, ROUTE_43, ROUTE_44, ROUTE_37, ROUTE_38
- roam_map ROUTE_43, 2, ROUTE_42, ROUTE_44
- roam_map ROUTE_44, 3, ROUTE_42, ROUTE_43, ROUTE_45
- roam_map ROUTE_45, 2, ROUTE_44, ROUTE_46
- roam_map ROUTE_46, 2, ROUTE_45, ROUTE_29
- db -1
-; 2a4a0
-
-ValidateTempWildMonSpecies: ; 2a4a0
-; Due to a development oversight, this function is called with the wild Pokemon's level, not its species, in a.
- and a
- jr z, .nowildmon ; = 0
- cp NUM_POKEMON + 1 ; 252
- jr nc, .nowildmon ; >= 252
- and a ; 1 <= Species <= 251
- ret
-
-.nowildmon
- scf
- ret
-; 2a4ab
-
-RandomPhoneRareWildMon: ; 2a4ab
-; Related to the phone?
- callba GetCallerLocation
- ld d, b
- ld e, c
- ld hl, JohtoGrassWildMons
- ld bc, GRASS_WILDDATA_LENGTH
- call LookUpWildmonsForMapDE
- jr c, .GetGrassmon
- ld hl, KantoGrassWildMons
- call LookUpWildmonsForMapDE
- jr nc, .done
-
-.GetGrassmon
- push hl
- ld bc, 5 + 4 * 2 ; Location of the level of the 5th wild Pokemon in that map
- add hl, bc
- ld a, [TimeOfDay]
- ld bc, 7 * 2
- call AddNTimes
-.randloop1
- call Random
- and $3
- jr z, .randloop1
- dec a
- ld c, a
- ld b, $0
-rept 2
- add hl, bc
-endr
-; We now have the pointer to one of the last (rarest) three wild Pokemon found in that area.
- inc hl
- ld c, [hl] ; Contains the species index of this rare Pokemon
- pop hl
- ld de, 5 + 0 * 2
- add hl, de
- inc hl ; Species index of the most common Pokemon on that route
- ld b, 4
-.loop2
- ld a, [hli]
- cp c ; Compare this most common Pokemon with the rare one stored in c.
- jr z, .done
- inc hl
- dec b
- jr nz, .loop2
-; This Pokemon truly is rare.
- push bc
- dec c
- ld a, c
- call CheckSeenMon
- pop bc
- jr nz, .done
-; Since we haven't seen it, have the caller tell us about it.
- ld de, StringBuffer1
- call CopyName1
- ld a, c
- ld [wd265], a
- call GetPokemonName
- ld hl, UnknownText_0x2a51a
- call PrintText
- xor a
- ld [ScriptVar], a
- ret
-
-.done
- ld a, $1
- ld [ScriptVar], a
- ret
-; 2a51a
-
-UnknownText_0x2a51a: ; 0x2a51a
- ; I just saw some rare @ in @ . I'll call you if I see another rare #MON, OK?
- text_jump UnknownText_0x1bd34b
- db "@"
-; 0x2a51f
-
-RandomPhoneWildMon: ; 2a51f
- callba GetCallerLocation
- ld d, b
- ld e, c
- ld hl, JohtoGrassWildMons
- ld bc, GRASS_WILDDATA_LENGTH
- call LookUpWildmonsForMapDE
- jr c, .ok
- ld hl, KantoGrassWildMons
- call LookUpWildmonsForMapDE
-
-.ok
- ld bc, 5 + 0 * 2
- add hl, bc
- ld a, [TimeOfDay]
- inc a
- ld bc, 7 * 2
-.loop
- dec a
- jr z, .done
- add hl, bc
- jr .loop
-
-.done
- call Random
- and $3
- ld c, a
- ld b, $0
-rept 2
- add hl, bc
-endr
- inc hl
- ld a, [hl]
- ld [wd265], a
- call GetPokemonName
- ld hl, StringBuffer1
- ld de, StringBuffer4
- ld bc, PKMN_NAME_LENGTH
- jp CopyBytes
-; 2a567
-
-RandomPhoneMon: ; 2a567
-; Get a random monster owned by the trainer who's calling.
- callba GetCallerLocation
- ld hl, TrainerGroups
- ld a, d
- dec a
- ld c, a
- ld b, 0
-rept 2
- add hl, bc
-endr
- ld a, BANK(TrainerGroups)
- call GetFarHalfword
-
-.skip_trainer
- dec e
- jr z, .skipped
-.skip
- ld a, BANK(Trainers)
- call GetFarByte
- inc hl
- cp -1
- jr nz, .skip
- jr .skip_trainer
-.skipped
-
-.skip_name
- ld a, BANK(Trainers)
- call GetFarByte
- inc hl
- cp "@"
- jr nz, .skip_name
-
- ld a, BANK(Trainers)
- call GetFarByte
- inc hl
- ld bc, 2
- cp 0
- jr z, .got_mon_length
- ld bc, 2 + NUM_MOVES
- cp 1
- jr z, .got_mon_length
- ld bc, 2 + 1
- cp 2
- jr z, .got_mon_length
- ld bc, 2 + 1 + NUM_MOVES
-.got_mon_length
-
- ld e, 0
- push hl
-.count_mon
- inc e
- add hl, bc
- ld a, BANK(Trainers)
- call GetFarByte
- cp -1
- jr nz, .count_mon
- pop hl
-
-.rand
- call Random
- and 7
- cp e
- jr nc, .rand
-
- inc a
-.get_mon
- dec a
- jr z, .got_mon
- add hl, bc
- jr .get_mon
-.got_mon
-
- inc hl ; species
- ld a, BANK(Trainers)
- call GetFarByte
- ld [wd265], a
- call GetPokemonName
- ld hl, StringBuffer1
- ld de, StringBuffer4
- ld bc, PKMN_NAME_LENGTH
- jp CopyBytes
-; 2a5e9
-
-
-JohtoGrassWildMons: ; 0x2a5e9
-INCLUDE "data/wild/johto_grass.asm"
-
-JohtoWaterWildMons: ; 0x2b11d
-INCLUDE "data/wild/johto_water.asm"
-
-KantoGrassWildMons: ; 0x2b274
-INCLUDE "data/wild/kanto_grass.asm"
-
-KantoWaterWildMons: ; 0x2b7f7
-INCLUDE "data/wild/kanto_water.asm"
-
-SwarmGrassWildMons: ; 0x2b8d0
-INCLUDE "data/wild/swarm_grass.asm"
-
-SwarmWaterWildMons: ; 0x2b92f
-INCLUDE "data/wild/swarm_water.asm"
-
-
DetermineLinkBattleResult: ; 2b930
callba UpdateEnemyMonInParty
ld hl, PartyMon1HP
@@ -19641,7 +12750,7 @@
ld [hli], a
ld [hl], $6a
callba Function2c10d ; no need to callba
- ld b, $8
+ ld b, SCGB_08
call GetSGBLayout
call SetPalettes
ld a, $e4
@@ -19967,12 +13076,12 @@
call Function2c6ac
ld [de], a
inc de
- ld a, BANK(s0_abe4)
+ ld a, BANK(sBackupMysteryGiftItem)
call GetSRAMBank
- ld a, [s0_abe4]
+ ld a, [sBackupMysteryGiftItem]
ld [de], a
inc de
- ld a, [s0_abe4 + 1]
+ ld a, [sBackupMysteryGiftItem + 1]
ld [de], a
ld a, $14
ld [wca00], a
@@ -20119,7 +13228,7 @@
db DECO_BIG_SNORLAX_DOLL
db DECO_BIG_ONIX_DOLL
db DECO_BIG_LAPRAS_DOLL
- db DECO_1D
+ db DECO_DOLLS
db DECO_PIKACHU_DOLL
db DECO_SURF_PIKACHU_DOLL
db DECO_CLEFAIRY_DOLL
@@ -20133,15 +13242,15 @@
db DECO_DIGLETT_DOLL
db DECO_BLUE_CARPET
db DECO_YELLOW_CARPET
- db DECO_0F
+ db DECO_POSTERS
db DECO_PIKACHU_POSTER
db DECO_N64
- db DECO_19
- db DECO_01
+ db DECO_BIG_DOLLS
+ db DECO_BEDS
db DECO_FEATHERY_BED
db DECO_POLKADOT_BED
db DECO_PIKACHU_BED
- db DECO_06
+ db DECO_CARPETS
db DECO_RED_CARPET
db DECO_GREEN_CARPET
db DECO_CLEFAIRY_POSTER
@@ -20148,7 +13257,7 @@
db DECO_ODDISH_DOLL
db DECO_MAGNAPLANT
db DECO_GENGAR_DOLL
- db DECO_14
+ db DECO_CONSOLES
db DECO_PINK_BED
db DECO_SQUIRTLE_DOLL
db DECO_STARMIE_DOLL
@@ -20235,9 +13344,9 @@
call ClearBGPalettes
Function2c80a: ; 2c80a
- callba Function5004f
- callba Function50405
- callba Function503e0
+ callba LoadPartyMenuGFX
+ callba InitPartyMenuWithCancel
+ callba InitPartyMenuGFX
ld a, $3
ld [PartyMenuActionText], a
.loopback
@@ -20431,7 +13540,7 @@
ld a, [MenuSelection2]
dec a
ld b, a
- ld a, [wd0e2]
+ ld a, [wTMHMPocketScrollPosition]
add b
ld b, a
ld a, [wd265]
@@ -20475,7 +13584,7 @@
ld a, b
bit 7, a
jr nz, .skip
- ld hl, wd0e2
+ ld hl, wTMHMPocketScrollPosition
ld a, [hl]
and a
jp z, Function2c915
@@ -20496,7 +13605,7 @@
jr z, .loop
dec b
jr nz, .loop
- ld hl, wd0e2
+ ld hl, wTMHMPocketScrollPosition
inc [hl]
call Function2c9e2
jp Function2c946
@@ -20628,7 +13737,7 @@
Function2cab5: ; 2cab5 (b:4ab5)
ld hl, TMsHMs
- ld a, [wd0e2]
+ ld a, [wTMHMPocketScrollPosition]
ld b, a
inc b
ld c, 0
@@ -20711,11 +13820,11 @@
dec a
ld [hl], a
ret nz
- ld a, [wd0e2]
+ ld a, [wTMHMPocketScrollPosition]
and a
ret z
dec a
- ld [wd0e2], a
+ ld [wTMHMPocketScrollPosition], a
ret
Function2cb2a: ; 2cb2a (b:4b2a)
@@ -21077,7 +14186,7 @@
endr
ld [hl], a
- ld [wd0e4], a
+ ld [wMenuScrollPosition], a
ld [CriticalHit], a
ld [BattleMonSpecies], a
ld [wBattleParticipantsNotFainted], a
@@ -21259,7 +14368,7 @@
ld a, [hli]
ld [de], a
ld a, [hl]
- ld [wc652], a
+ ld [wEnemyTrainerBaseReward], a
ret
; 3959c
@@ -21340,7 +14449,7 @@
jp [hl]
.done
- jp Function3991b
+ jp ComputeTrainerReward
.cal2
ld a, BANK(sMysteryGiftTrainer)
@@ -21576,18 +14685,18 @@
jr .loop
; 3991b
-Function3991b: ; 3991b (e:591b)
- ld hl, hMultiplicand - 1
+ComputeTrainerReward: ; 3991b (e:591b)
+ ld hl, hProduct
xor a
rept 3
ld [hli], a
endr
- ld a, [wc652] ; base reward
+ ld a, [wEnemyTrainerBaseReward]
ld [hli], a
ld a, [CurPartyLevel]
ld [hl], a
call Multiply
- ld hl, wc686
+ ld hl, wBattleReward
xor a
ld [hli], a
ld a, [hProduct + 2]
@@ -21620,9 +14729,9 @@
call CloseSRAM
jr z, .not_cal2
- ld a, BANK(s0_abfe)
+ ld a, BANK(sMysteryGiftPartnerName)
call GetSRAMBank
- ld hl, s0_abfe
+ ld hl, sMysteryGiftPartnerName
call CopyTrainerName
jp CloseSRAM
@@ -21752,691 +14861,8 @@
INCLUDE "battle/moves/moves.asm"
+INCLUDE "engine/evolve.asm"
-Function421d8: ; 421d8
- ld hl, EvolvableFlags
- xor a
- ld [hl], a
- ld a, [CurPartyMon]
- ld c, a
- ld b, $1
- call Function42577
-
-Function421e6: ; 421e6
- xor a
- ld [wd268], a
- dec a
- ld [CurPartyMon], a
- push hl
- push bc
- push de
- ld hl, PartyCount
-
- push hl
-
-Function421f5: ; 421f5
- ld hl, CurPartyMon
- inc [hl]
-
- pop hl
-
- inc hl
- ld a, [hl]
- cp $ff
- jp z, Function423ff
-
- ld [Buffer1], a
-
- push hl
- ld a, [CurPartyMon]
- ld c, a
- ld hl, EvolvableFlags
- ld b, 2
- call Function42577
- ld a, c
- and a
- jp z, Function421f5
-
- ld a, [Buffer1]
- dec a
- ld b, 0
- ld c, a
- ld hl, EvosAttacksPointers
-rept 2
- add hl, bc
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
- push hl
- xor a
- ld [MonType], a
- predef CopyPkmnToTempMon
- pop hl
-
-.asm_42230
- ld a, [hli]
- and a
- jr z, Function421f5
-
- ld b, a
-
- cp EVOLVE_TRADE
- jr z, .trade
-
- ld a, [wLinkMode]
- and a
- jp nz, .asm_423f9
-
- ld a, b
- cp EVOLVE_ITEM
- jp z, .item
-
- ld a, [wd1e9]
- and a
- jp nz, .asm_423f9
-
- ld a, b
- cp EVOLVE_LEVEL
- jp z, .level
-
- cp EVOLVE_HAPPINESS
- jr z, .happiness
-
-
-; EVOLVE_STAT
- ld a, [TempMonLevel]
- cp [hl]
- jp c, .asm_423f8
-
- call Function42461
- jp z, .asm_423f8
-
- push hl
- ld de, TempMonAttack
- ld hl, TempMonDefense
- ld c, 2
- call StringCmp
- ld a, ATK_EQ_DEF
- jr z, .asm_4227a
- ld a, ATK_LT_DEF
- jr c, .asm_4227a
- ld a, ATK_GT_DEF
-.asm_4227a
- pop hl
-
- inc hl
- cp [hl]
- jp nz, .asm_423f9
-
- inc hl
- jr .asm_422fd
-
-
-.happiness
- ld a, [TempMonHappiness]
- cp 220
- jp c, .asm_423f9
-
- call Function42461
- jp z, .asm_423f9
-
- ld a, [hli]
- cp TR_ANYTIME
- jr z, .asm_422fd
- cp TR_MORNDAY
- jr z, .asm_422a4
-
-; TR_NITE
- ld a, [TimeOfDay]
- cp NITE
- jp nz, .asm_423fa
- jr .asm_422fd
-
-.asm_422a4
- ld a, [TimeOfDay]
- cp NITE
- jp z, .asm_423fa
- jr .asm_422fd
-
-
-.trade
- ld a, [wLinkMode]
- and a
- jp z, .asm_423f9
-
- call Function42461
- jp z, .asm_423f9
-
- ld a, [hli]
- ld b, a
- inc a
- jr z, .asm_422fd
-
- ld a, [wLinkMode]
- cp LINK_TIMECAPSULE
- jp z, .asm_423fa
-
- ld a, [TempMonItem]
- cp b
- jp nz, .asm_423fa
-
- xor a
- ld [TempMonItem], a
- jr .asm_422fd
-
-
-.item
- ld a, [hli]
- ld b, a
- ld a, [CurItem]
- cp b
- jp nz, .asm_423fa
-
- ld a, [wd1e9]
- and a
- jp z, .asm_423fa
- ld a, [wLinkMode]
- and a
- jp nz, .asm_423fa
- jr .asm_422fd
-
-
-.level
- ld a, [hli]
- ld b, a
- ld a, [TempMonLevel]
- cp b
- jp c, .asm_423fa
- call Function42461
- jp z, .asm_423fa
-
-.asm_422fd
- ld a, [TempMonLevel]
- ld [CurPartyLevel], a
- ld a, $1
- ld [wd268], a
-
- push hl
-
- ld a, [hl]
- ld [Buffer2], a
- ld a, [CurPartyMon]
- ld hl, PartyMonNicknames
- call GetNick
- call CopyName1
- ld hl, UnknownText_0x42482
- call PrintText
-
- ld c, 50
- call DelayFrames
-
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 0
- lb bc, 12, 20
- call ClearBox
-
- ld a, $1
- ld [hBGMapMode], a
- call ClearSprites
-
- callba EvolutionAnimation
-
- push af
- call ClearSprites
- pop af
- jp c, Function42454
-
- ld hl, UnknownText_0x42473
- call PrintText
-
- pop hl
-
- ld a, [hl]
- ld [CurSpecies], a
- ld [TempMonSpecies], a
- ld [Buffer2], a
- ld [wd265], a
- call GetPokemonName
-
- push hl
- ld hl, UnknownText_0x42478
- call PrintTextBoxText
- callba MobileFn_106094
-
- ld de, MUSIC_NONE
- call PlayMusic
- ld de, SFX_CAUGHT_MON
- call PlaySFX
- call WaitSFX
-
- ld c, 40
- call DelayFrames
-
- call ClearTileMap
- call Function42414
- call GetBaseData
-
- ld hl, TempMonExp + 2
- ld de, TempMonMaxHP
- ld b, $1
- predef CalcPkmnStats
-
- ld a, [CurPartyMon]
- ld hl, PartyMons
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld e, l
- ld d, h
- ld bc, MON_MAXHP
- add hl, bc
- ld a, [hli]
- ld b, a
- ld c, [hl]
- ld hl, TempMonMaxHP + 1
- ld a, [hld]
- sub c
- ld c, a
- ld a, [hl]
- sbc b
- ld b, a
- ld hl, TempMonHP + 1
- ld a, [hl]
- add c
- ld [hld], a
- ld a, [hl]
- adc b
- ld [hl], a
-
- ld hl, TempMonSpecies
- ld bc, PARTYMON_STRUCT_LENGTH
- call CopyBytes
-
- ld a, [CurSpecies]
- ld [wd265], a
- xor a
- ld [MonType], a
- call LearnLevelMoves
- ld a, [wd265]
- dec a
- call SetSeenAndCaughtMon
-
- ld a, [wd265]
- cp UNOWN
- jr nz, .asm_423ec
-
- ld hl, TempMonDVs
- predef GetUnownLetter
- callab Functionfba18
-
-.asm_423ec
- pop de
- pop hl
- ld a, [TempMonSpecies]
- ld [hl], a
- push hl
- ld l, e
- ld h, d
- jp Function421f5
-; 423f8
-
-.asm_423f8
- inc hl
-.asm_423f9
- inc hl
-.asm_423fa
- inc hl
- jp .asm_42230
-; 423fe
-
-Function423fe: ; 423fe
- pop hl
-
-Function423ff: ; 423ff
- pop de
- pop bc
- pop hl
- ld a, [wLinkMode]
- and a
- ret nz
- ld a, [wBattleMode]
- and a
- ret nz
- ld a, [wd268]
- and a
- call nz, RestartMapMusic
- ret
-; 42414
-
-Function42414: ; 42414
- ld a, [CurSpecies]
- push af
- ld a, [BaseDexNo]
- ld [wd265], a
- call GetPokemonName
- pop af
- ld [CurSpecies], a
- ld hl, StringBuffer1
- ld de, StringBuffer2
-.asm_4242b
- ld a, [de]
- inc de
- cp [hl]
- inc hl
- ret nz
- cp "@"
- jr nz, .asm_4242b
- ld a, [CurPartyMon]
- ld bc, PKMN_NAME_LENGTH
- ld hl, PartyMonNicknames
- call AddNTimes
- push hl
- ld a, [CurSpecies]
- ld [wd265], a
- call GetPokemonName
- ld hl, StringBuffer1
- pop de
- ld bc, PKMN_NAME_LENGTH
- jp CopyBytes
-; 42454
-
-Function42454: ; 42454
- ld hl, UnknownText_0x4247d
- call PrintText
- call ClearTileMap
- pop hl
- jp Function421f5
-; 42461
-
-Function42461: ; 42461
- push hl
- ld a, [CurPartyMon]
- ld hl, PartyMon1Item
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld a, [hl]
- cp EVERSTONE
- pop hl
- ret
-; 42473
-
-UnknownText_0x42473: ; 0x42473
- ; Congratulations! Your @ @
- text_jump UnknownText_0x1c4b92
- db "@"
-; 0x42478
-
-UnknownText_0x42478: ; 0x42478
- ; evolved into @ !
- text_jump UnknownText_0x1c4baf
- db "@"
-; 0x4247d
-
-UnknownText_0x4247d: ; 0x4247d
- ; Huh? @ stopped evolving!
- text_jump UnknownText_0x1c4bc5
- db "@"
-; 0x42482
-
-UnknownText_0x42482: ; 0x42482
- ; What? @ is evolving!
- text_jump UnknownText_0x1c4be3
- db "@"
-; 0x42487
-
-
-LearnLevelMoves: ; 42487
- ld a, [wd265]
- ld [CurPartySpecies], a
- dec a
- ld b, 0
- ld c, a
- ld hl, EvosAttacksPointers
-rept 2
- add hl, bc
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
-.skip_evos
- ld a, [hli]
- and a
- jr nz, .skip_evos
-
-.find_move
- ld a, [hli]
- and a
- jr z, .done
-
- ld b, a
- ld a, [CurPartyLevel]
- cp b
- ld a, [hli]
- jr nz, .find_move
-
- push hl
- ld d, a
- ld hl, PartyMon1Moves
- ld a, [CurPartyMon]
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
-
- ld b, NUM_MOVES
-.check_move
- ld a, [hli]
- cp d
- jr z, .has_move
- dec b
- jr nz, .check_move
- jr .learn
-.has_move
-
- pop hl
- jr .find_move
-
-.learn
- ld a, d
- ld [wd262], a
- ld [wd265], a
- call GetMoveName
- call CopyName1
- predef LearnMove
- pop hl
- jr .find_move
-
-.done
- ld a, [CurPartySpecies]
- ld [wd265], a
- ret
-; 424e1
-
-
-FillMoves: ; 424e1
-; Fill in moves at de for CurPartySpecies at CurPartyLevel
-
- push hl
- push de
- push bc
- ld hl, EvosAttacksPointers
- ld b, 0
- ld a, [CurPartySpecies]
- dec a
- add a
- rl b
- ld c, a
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
-.GoToAttacks
- ld a, [hli]
- and a
- jr nz, .GoToAttacks
- jr .GetLevel
-
-.NextMove
- pop de
-.GetMove
- inc hl
-.GetLevel
- ld a, [hli]
- and a
- jp z, .done
- ld b, a
- ld a, [CurPartyLevel]
- cp b
- jp c, .done
- ld a, [Buffer1]
- and a
- jr z, .CheckMove
- ld a, [wd002]
- cp b
- jr nc, .GetMove
-
-.CheckMove
- push de
- ld c, NUM_MOVES
-.CheckRepeat
- ld a, [de]
- inc de
- cp [hl]
- jr z, .NextMove
- dec c
- jr nz, .CheckRepeat
- pop de
- push de
- ld c, NUM_MOVES
-.CheckSlot
- ld a, [de]
- and a
- jr z, .LearnMove
- inc de
- dec c
- jr nz, .CheckSlot
- pop de
- push de
- push hl
- ld h, d
- ld l, e
- call ShiftMoves
- ld a, [Buffer1]
- and a
- jr z, .ShiftedMove
- push de
- ld bc, PartyMon1PP - (PartyMon1Moves + NUM_MOVES - 1)
- add hl, bc
- ld d, h
- ld e, l
- call ShiftMoves
- pop de
-
-.ShiftedMove
- pop hl
-
-.LearnMove
- ld a, [hl]
- ld [de], a
- ld a, [Buffer1]
- and a
- jr z, .NextMove
- push hl
- ld a, [hl]
- ld hl, MON_PP - MON_MOVES
- add hl, de
- push hl
- dec a
- ld hl, Moves + MOVE_PP
- ld bc, MOVE_LENGTH
- call AddNTimes
- ld a, BANK(Moves)
- call GetFarByte
- pop hl
- ld [hl], a
- pop hl
- jr .NextMove
-
-.done
- pop bc
- pop de
- pop hl
- ret
-; 4256e
-
-ShiftMoves: ; 4256e
- ld c, NUM_MOVES - 1
-.loop
- inc de
- ld a, [de]
- ld [hli], a
- dec c
- jr nz, .loop
- ret
-; 42577
-
-
-Function42577: ; 42577
- push de
- ld d, $0
- predef FlagPredef
- pop de
- ret
-; 42581
-
-GetPreEvolution: ; 42581
-; Find the first mon to evolve into CurPartySpecies.
-
-; Return carry and the new species in CurPartySpecies
-; if a pre-evolution is found.
-
- ld c, 0
-.loop ; For each Pokemon...
- ld hl, EvosAttacksPointers
- ld b, 0
-rept 2
- add hl, bc
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
-.loop2 ; For each evolution...
- ld a, [hli]
- and a
- jr z, .no_evolve ; If we jump, this Pokemon does not evolve into CurPartySpecies.
- cp EVOLVE_STAT ; This evolution type has the extra parameter of stat comparison.
- jr nz, .not_tyrogue
- inc hl
-
-.not_tyrogue
- inc hl
- ld a, [CurPartySpecies]
- cp [hl]
- jr z, .found_preevo
- inc hl
- ld a, [hl]
- and a
- jr nz, .loop2
-
-.no_evolve
- inc c
- ld a, c
- cp NUM_POKEMON
- jr c, .loop
- and a
- ret
-
-.found_preevo
- inc c
- ld a, c
- ld [CurPartySpecies], a
- scf
- ret
-; 425b1
-
-
-
SECTION "bank11", ROMX, BANK[$11]
INCLUDE "engine/fruit_trees.asm"
@@ -22955,591 +15381,8 @@
PokedexDataPointerTable: ; 0x44378
INCLUDE "data/pokedex/entry_pointers.asm"
+INCLUDE "engine/mail.asm"
-Function4456e: ; 4456e
- ld a, MON_ITEM
- call GetPartyParamLocation
- ld d, [hl]
- callba ItemIsMail
- jr nc, .asm_445be
- call Function44648
- cp $a
- jr nc, .asm_445be
- ld bc, SCRATCHMON_STRUCT_LENGTH
- ld hl, s0_a835
- call AddNTimes
- ld d, h
- ld e, l
- ld a, [CurPartyMon]
- ld bc, SCRATCHMON_STRUCT_LENGTH
- ld hl, sPartyScratch1
- call AddNTimes
- push hl
- ld a, BANK(s0_a834)
- call GetSRAMBank
- ld bc, SCRATCHMON_STRUCT_LENGTH
- call CopyBytes
- pop hl
- xor a
- ld bc, SCRATCHMON_STRUCT_LENGTH
- call ByteFill
- ld a, MON_ITEM
- call GetPartyParamLocation
- ld [hl], $0
- ld hl, s0_a834
- inc [hl]
- call CloseSRAM
- xor a
- ret
-
-.asm_445be
- scf
- ret
-; 445c0
-
-Function445c0: ; 445c0 (11:45c0)
- ld a, BANK(s0_a834)
- call GetSRAMBank
- ld a, b
- push bc
- ld hl, s0_a835
- ld bc, SCRATCHMON_STRUCT_LENGTH
- call AddNTimes
- push hl
- add hl, bc
- pop de
- pop bc
-.loop
- ld a, b
- cp $9
- jr z, .done
- push bc
- ld bc, SCRATCHMON_STRUCT_LENGTH
- call CopyBytes
- pop bc
- inc b
- jr .loop
-.done
- ld h, d
- ld l, e
- xor a
- ld bc, SCRATCHMON_STRUCT_LENGTH
- call ByteFill
- ld hl, s0_a834
- dec [hl]
- jp CloseSRAM
-; 445f4 (11:45f4)
-
-ReadMailMessage: ; 445f4
- ld a, b
- ld hl, s0_a835
- ld bc, SCRATCHMON_STRUCT_LENGTH
- call AddNTimes
- ld d, h
- ld e, l
- callba ReadAnyMail
- ret
-
-Function44607: ; 44607
- ld a, BANK(s0_a834)
- call GetSRAMBank
- push bc
- ld a, b
- ld bc, SCRATCHMON_STRUCT_LENGTH
- ld hl, s0_a835
- call AddNTimes
- push hl
- ld a, [CurPartyMon]
- ld bc, SCRATCHMON_STRUCT_LENGTH
- ld hl, sPartyScratch1
- call AddNTimes
- ld d, h
- ld e, l
- pop hl
- push hl
- ld bc, SCRATCHMON_STRUCT_LENGTH
- call CopyBytes
- pop hl
- ld de, PARTYMON_STRUCT_LENGTH - MON_MOVES
- add hl, de
- ld d, [hl]
- ld a, [CurPartyMon]
- ld hl, PartyMon1Item
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld [hl], d
- call CloseSRAM
- pop bc
- jp Function445c0
-; 44648 (11:4648)
-
-Function44648: ; 44648
- ld a, BANK(s0_a834)
- call GetSRAMBank
- ld a, [s0_a834]
- ld c, a
- jp CloseSRAM
-; 44654
-
-Function44654:: ; 44654
- push bc
- push de
- callba SelectMonFromParty
- ld a, $2
- jr c, .asm_446c6
- ld a, [CurPartyMon]
- ld hl, PartyMon1Item
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld d, [hl]
- callba ItemIsMail
- ld a, $3
- jr nc, .asm_446c6
- ld a, BANK(sPartyScratch1)
- call GetSRAMBank
- ld a, [CurPartyMon]
- ld hl, sPartyScratch1
- ld bc, SCRATCHMON_STRUCT_LENGTH
- call AddNTimes
- ld d, h
- ld e, l
- pop hl
- pop bc
-
- ld a, $20
- ld [wd265], a
-.asm_44691
- ld a, [de]
- ld c, a
- ld a, b
- call GetFarByte
- cp "@"
- jr z, .asm_446ab
- cp c
- ld a, $0
- jr nz, .asm_446c1
- inc hl
- inc de
- ld a, [wd265]
- dec a
- ld [wd265], a
- jr nz, .asm_44691
-
-.asm_446ab
- callba CheckCurPartyMonFainted
- ld a, $4
- jr c, .asm_446c1
- xor a
- ld [wPokemonWithdrawDepositParameter], a
- callba Functione039
- ld a, $1
-
-.asm_446c1
- call CloseSRAM
- jr .asm_446c8
-
-.asm_446c6
- pop de
- pop bc
-
-.asm_446c8
- ld [ScriptVar], a
- ret
-; 446cc
-
-GivePokeItem:: ; 446cc
- ld a, [PartyCount]
- dec a
- push af
- push bc
- ld hl, PartyMon1Item
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- pop bc
- ld [hl], b
- pop af
- push bc
- push af
- ld hl, sPartyScratch1
- ld bc, $2f
- call AddNTimes
- ld d, h
- ld e, l
- ld hl, wd002
- ld bc, $21
- ld a, BANK(sPartyScratch1)
- call GetSRAMBank
- call CopyBytes
- pop af
- push af
- ld hl, PartyMonOT
- ld bc, NAME_LENGTH
- call AddNTimes
- ld bc, $a
- call CopyBytes
- pop af
- ld hl, PartyMon1ID
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- inc de
- ld a, [CurPartySpecies]
- ld [de], a
- inc de
- pop bc
- ld a, b
- ld [de], a
- jp CloseSRAM
-; 44725
-
-
-BackupScratchmons: ; 44725
- ld a, BANK(sPartyScratch1)
- call GetSRAMBank
- ld hl, sPartyScratch1
- ld de, sPartyScratch2
- ld bc, 6 * SCRATCHMON_STRUCT_LENGTH
- call CopyBytes
- ld hl, s0_a834
- ld de, s0_aa0b
- ld bc, 1 + 10 * SCRATCHMON_STRUCT_LENGTH
- call CopyBytes
- jp CloseSRAM
-; 44745
-
-RestoreScratchmons: ; 44745 (11:4745)
- ld a, BANK(sPartyScratch1)
- call GetSRAMBank
- ld hl, sPartyScratch2
- ld de, sPartyScratch1
- ld bc, 6 * SCRATCHMON_STRUCT_LENGTH
- call CopyBytes
- ld hl, s0_aa0b
- ld de, s0_a834
- ld bc, 1 + 10 * SCRATCHMON_STRUCT_LENGTH
- call CopyBytes
- jp CloseSRAM
-
-DeleteScratchmons: ; 44765 (11:4765)
- ld a, BANK(sPartyScratch1)
- call GetSRAMBank
- xor a
- ld hl, sPartyScratch1
- ld bc, 6 * SCRATCHMON_STRUCT_LENGTH
- call ByteFill
- xor a
- ld hl, s0_a834
- ld bc, 1 + 10 * SCRATCHMON_STRUCT_LENGTH
- call ByteFill
- jp CloseSRAM
-; 44781 (11:4781)
-
-
-Function44781: ; 44781
- ld a, [PartyCount]
- and a
- jr z, .asm_4479e
- ld e, a
- ld hl, PartyMon1Item
-.asm_4478b
- ld d, [hl]
- push hl
- push de
- callba ItemIsMail
- pop de
- pop hl
- ret c
- ld bc, PARTYMON_STRUCT_LENGTH
- add hl, bc
- dec e
- jr nz, .asm_4478b
-
-.asm_4479e
- and a
- ret
-; 447a0
-
-_KrisMailBoxMenu: ; 0x447a0
- call InitMail
- jr z, .nomail
- call LoadStandardMenuDataHeader
- call Function44806
- jp WriteBackup
-
-.nomail
- ld hl, .EmptyMailboxText
- jp MenuTextBoxBackup
-; 0x447b4
-
-.EmptyMailboxText ; 0x447b4
- text_jump _EmptyMailboxText
- db "@"
-
-InitMail: ; 0x447b9
-; initialize wd0f2 and beyond with incrementing values, one per mail
-; set z if no mail
- ld a, BANK(s0_a834)
- call GetSRAMBank
- ld a, [s0_a834]
- call CloseSRAM
- ld hl, wd0f2
- ld [hli], a
- and a
-
- jr z, .done ; if no mail, we're done
-
- ; load values in memory with incrementing values starting at wd0f2
- ld b, a
- ld a, $1
-.loop
- ld [hli], a
- inc a
- dec b
- jr nz, .loop
-.done
- ld [hl], $ff ; terminate
-
- ld a, [wd0f2]
- and a
- ret
-; 0x447da
-
-Function447da: ; 0x447da
- dec a
- ld hl, s0_a835 + MON_HP - 1
- ld bc, SCRATCHMON_STRUCT_LENGTH
- call AddNTimes
- ld a, BANK(s0_a834)
- call GetSRAMBank
- ld de, StringBuffer2
- push de
- ld bc, NAME_LENGTH - 1
- call CopyBytes
- ld a, "@"
- ld [de], a
- call CloseSRAM
- pop de
- ret
-; 0x447fb
-
-Function447fb: ; 0x447fb
- push de
- ld a, [MenuSelection]
- call Function447da
- pop hl
- jp PlaceString
-; 0x44806
-
-Function44806: ; 0x44806
- xor a
- ld [OBPals + 8 * 6], a
- ld a, $1
- ld [wd0f1], a
-.asm_4480f
- call InitMail
- ld hl, MenuData4494c
- call CopyMenuDataHeader
- xor a
- ld [hBGMapMode], a
- call Function352f
- call UpdateSprites
- ld a, [wd0f1]
- ld [wMenuCursorBuffer], a
- ld a, [OBPals + 8 * 6]
- ld [wd0e4], a
- call HandleScrollingMenu
- ld a, [wd0e4]
- ld [OBPals + 8 * 6], a
- ld a, [MenuSelection2]
- ld [wd0f1], a
- ld a, [wcf73]
- cp $2
- jr z, .asm_44848
- call Function4484a
- jr .asm_4480f
-
-.asm_44848
- xor a
- ret
-; 0x4484a
-
-Function4484a: ; 0x4484a
- ld hl, MenuData44964
- call LoadMenuDataHeader
- call InterpretMenu2
- call ExitMenu
- jr c, .asm_44860
- ld a, [MenuSelection2]
- dec a
- ld hl, .JumpTable
- rst JumpTable
-
-.asm_44860
- ret
-; 0x44861
-
-.JumpTable
- dw .ReadMail
- dw .PutInPack
- dw .AttachMail
- dw .Cancel
-
-.ReadMail ; 0x44869
- call FadeToMenu
- ld a, [MenuSelection]
- dec a
- ld b, a
- call ReadMailMessage
- jp Function2b3c
-; 0x44877
-
-.PutInPack ; 0x44877
- ld hl, .MessageLostText
- call MenuTextBox
- call YesNoBox
- call ExitMenu
- ret c
- ld a, [MenuSelection]
- dec a
- call .Function448bb
- ld a, $1
- ld [wItemQuantityChangeBuffer], a
- ld hl, NumItems
- call ReceiveItem
- jr c, .asm_4489e
- ld hl, .PackFullText
- jp MenuTextBoxBackup
-
-.asm_4489e
- ld a, [MenuSelection]
- dec a
- ld b, a
- call Function445c0
- ld hl, .PutAwayText
- jp MenuTextBoxBackup
-; 0x448ac
-
-.PutAwayText ; 0x448ac
- text_jump ClearedMailPutAwayText
- db "@"
-
-.PackFullText ; 0x448b1
- text_jump MailPackFullText
- db "@"
-
-.MessageLostText ; 0x448b6
- text_jump MailMessageLostText
- db "@"
-
-.Function448bb: ; 0x448bb
- push af
- ld a, BANK(s0_a834)
- call GetSRAMBank
- pop af
- ld hl, s0_a835 + $2e
- ld bc, $2f
- call AddNTimes
- ld a, [hl]
- ld [CurItem], a
- jp CloseSRAM
-; 0x448d2
-
-.AttachMail ; 0x448d2
- call FadeToMenu
- xor a
- ld [PartyMenuActionText], a
- call ClearBGPalettes
-.asm_448dc
- callba Function5004f
- callba Function50405
- callba Function503e0
- callba WritePartyMenuTilemap
- callba PrintPartyMenuText
- call WaitBGMap
- call SetPalettes
- call DelayFrame
- callba PartyMenuSelect
- jr c, .asm_44939
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .asm_44923
- ld a, MON_ITEM
- call GetPartyParamLocation
- ld a, [hl]
- and a
- jr z, .asm_4492b
- ld hl, .HoldingMailText
- call PrintText
- jr .asm_448dc
-
-.asm_44923
- ld hl, .EggText
- call PrintText
- jr .asm_448dc
-
-.asm_4492b
- ld a, [MenuSelection]
- dec a
- ld b, a
- call Function44607
- ld hl, .MailMovedText
- call PrintText
-
-.asm_44939
- jp Function2b3c
-; 0x4493c
-
-.HoldingMailText ; 0x4493c
- text_jump MailAlreadyHoldingItemText
- db "@"
-
-.EggText ; 0x44941
- text_jump MailEggText
- db "@"
-
-.MailMovedText ; 0x44946
- text_jump MailMovedFromBoxText
- db "@"
-
-.Cancel
- ret
-
-MenuData4494c: ; 0x4494c
- db %01000000 ; flags
- db 1, 8 ; start coords
- db $a, $12 ; end coords
- dw .MenuData2
- db 1 ; default option
-
-.MenuData2
- db %00010000 ; flags
- db 4, 0 ; rows/columns?
- db 1 ; horizontal spacing?
- dbw 0,wd0f2 ; text pointer
- dba Function447fb
- dbw 0,0
- dbw 0,0
-
-MenuData44964: ; 0x44964
- db %01000000 ; flags
- db 0, 0 ; start coords
- db 9, $d ; end coords
- dw .MenuData2
- db 1 ; default option
-
-.MenuData2
- db %10000000 ; flags
- db 4 ; items
- db "READ MAIL@"
- db "PUT IN PACK@"
- db "ATTACH MAIL@"
- db "CANCEL@"
-
-
SECTION "bank12", ROMX, BANK[$12]
Function48000: ; 48000
@@ -23554,7 +15397,7 @@
ld [wd478], a
ld [wd002], a
ld [wd003], a
- ; could have done "ld a, [wd479] \ and -4", saved four operations
+ ; could have done "ld a, [wd479] \ and %11111100", saved four operations
ld a, [wd479]
res 0, a
ld [wd479], a
@@ -23564,1837 +15407,8 @@
ret
; 4802f
+INCLUDE "misc/mobile_12.asm"
-Function4802f: ; 4802f (12:402f)
- xor a
- set 6, a
- ld [wd002], a
- ld hl, wd003
- set 0, [hl]
- ld a, c
- and a
- call z, Function48000
- call ClearBGPalettes
- call Function48d3d
- ld a, [wd479]
- bit 1, a
- jr z, .asm_4805a
- ld a, [wd003]
- set 0, a
- set 1, a
- set 2, a
- set 3, a
- ld [wd003], a
-.asm_4805a
- call Function486bf
- call LoadFontsExtra
- ld de, GFX_488c3
- ld hl, VTiles2 tile $10
- lb bc, BANK(GFX_488c3), 1
- call Request1bpp
- ld de, GFX_488cb
- ld hl, VTiles2 tile $11
- lb bc, BANK(GFX_488cb), 1
- call Request1bpp
- call Function4a3a7
- call ClearBGPalettes
- ld a, [wd002]
- bit 6, a
- jr z, .asm_4808a
- call Function48689
- jr .asm_480d7
-.asm_4808a
- ld a, $5
- ld [MusicFade], a
- ld a, MUSIC_MOBILE_ADAPTER_MENU % $100
- ld [MusicFadeIDLo], a
- ld a, MUSIC_MOBILE_ADAPTER_MENU / $100
- ld [MusicFadeIDHi], a
- ld c, 20
- call DelayFrames
- ld b, $1
- call Function4930f
- call ClearBGPalettes
- hlcoord 0, 0
- ld b, $2
- ld c, $14
- call ClearBox
- hlcoord 0, 1
- ld a, $c
- ld [hl], a
- ld bc, $13
- add hl, bc
- ld [hl], a
- ld de, MobileProfileString
- hlcoord 1, 1
- call PlaceString
- hlcoord 0, 2
- ld b, $a
- ld c, $12
- call Function48cdc
- hlcoord 2, 4
- ld de, String_48482
- call PlaceString
-.asm_480d7
- hlcoord 2, 6
- ld de, String_48489
- call PlaceString
- hlcoord 2, 8
- ld de, String_4848d
- call PlaceString
- hlcoord 2, 10
- ld de, String_48495
- call PlaceString
- hlcoord 2, 12
- ld de, String_4849e
- call PlaceString
- ld a, [wd002]
- bit 6, a
- jr nz, .asm_48113
- ld a, [PlayerGender]
- ld hl, Strings_484fb
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 11, 4
- call PlaceString
-.asm_48113
- hlcoord 11, 6
- call Function487ec
- ld a, [wd474]
- dec a
- ld hl, Prefectures
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 11, 8
- call PlaceString
- hlcoord 11, 10
- call Function489ea
- hlcoord 0, 14
- ld b, $2
- ld c, $12
- call TextBox
- hlcoord 1, 16
- ld de, String_48275
- call PlaceString
- call Function48187
- call Function3200
- call SetPalettes
- call Function1bc9
- ld hl, MenuSelection2
- ld b, [hl]
- push bc
- jr asm_4815f
-
-Function48157: ; 48157 (12:4157)
- call Function1bd3
- ld hl, MenuSelection2
- ld b, [hl]
- push bc
-
-asm_4815f: ; 4815f (12:415f)
- bit 0, a
- jp nz, Function4820d
- ld b, a
- ld a, [wd002]
- bit 6, a
- jr z, .asm_48177
- ld hl, wd479
- bit 1, [hl]
- jr z, .asm_48177
- bit 1, b
- jr nz, .asm_4817a
-.asm_48177
- jp Function48272
-.asm_4817a
- call ClearBGPalettes
- call Function48d30
- pop bc
- call ClearTileMap
- ld a, $ff
- ret
-
-Function48187: ; 48187 (12:4187)
- ld a, [wd479]
- bit 1, a
- jr nz, .asm_481f1
- ld a, [wd003]
- ld d, a
- call Function48725
- jr c, .asm_481a2
- lb bc, 1, 4
- hlcoord 2, 12
- call ClearBox
- jr .asm_481ad
-.asm_481a2
- push de
- hlcoord 2, 12
- ld de, String_4849e
- call PlaceString
- pop de
-.asm_481ad
- ld a, [wd002]
- bit 6, a
- jr nz, .asm_481c1
- bit 0, d
- jr nz, .asm_481c1
- lb bc, 1, 8
- hlcoord 11, 4
- call ClearBox
-.asm_481c1
- bit 1, d
- jr nz, .asm_481ce
- lb bc, 1, 8
- hlcoord 11, 6
- call ClearBox
-.asm_481ce
- bit 2, d
- jr nz, .asm_481db
- lb bc, 2, 8
- hlcoord 11, 7
- call ClearBox
-.asm_481db
- bit 3, d
- jr nz, .asm_481f1
- ld a, [wd479]
- bit 0, a
- jr nz, .asm_481f8
- lb bc, 1, 8
- hlcoord 11, 10
- call ClearBox
- jr .asm_48201
-.asm_481f1
- ld a, [wd479]
- bit 0, a
- jr nz, .asm_48201
-.asm_481f8
- hlcoord 11, 10
- ld de, String_48202
- call PlaceString
-.asm_48201
- ret
-; 48202 (12:4202)
-
-String_48202: ; 48202
- db "Tell Later@"
-; 4820d
-
-Function4820d: ; 4820d (12:420d)
- call Function1bee
- ld hl, MenuSelection2
- ld a, [hl]
- push af
- ld a, [wd002]
- bit 6, a
- jr z, .asm_4821f
- pop af
- inc a
- push af
-.asm_4821f
- pop af
- cp $1
- jr z, asm_4828d
- cp $2
- jp z, Function4876f
- cp $3
- jp z, Function48304
- cp $4
- jp z, Function488d3
- ld a, $2
- call Function1ff8
- ld a, [wd002]
- bit 6, a
- jr z, .asm_4825c
- jr .asm_4825c
-; 48241 (12:4241)
-
- hlcoord 1, 15
- ld b, $2
- ld c, $12
- call ClearBox
- ld de, String_484a1
- hlcoord 1, 16
- call PlaceString
- call WaitBGMap
- ld c, 48
- call DelayFrames
-
-.asm_4825c
- call ClearBGPalettes
- call Function48d30
- pop bc
- call ClearTileMap
- ld b, $8
- call GetSGBLayout
- ld hl, wd479
- set 1, [hl]
- xor a
- ret
-
-Function48272: ; 48272 (12:4272)
- jp Function4840c
-; 48275 (12:4275)
-
-String_48275: ; 48275
- db "Personal Info@"
-; 48283
-
-Function48283: ; 48283 (12:4283)
- lb bc, 2, 18
- hlcoord 1, 15
- call ClearBox
- ret
-
-asm_4828d: ; 4828d (12:428d)
- call Function48283
- hlcoord 1, 16
- ld de, String_484b1
- call PlaceString
- ld hl, MenuDataHeader_0x484f1
- call LoadMenuDataHeader
- call Function4873c
- hlcoord 11, 2
- ld b, $4
- ld c, $7
- call Function48cdc
- hlcoord 13, 4
- ld de, String_484fb
- call PlaceString
- hlcoord 13, 6
- ld de, String_484ff
- call PlaceString
- call WaitBGMap
- ld a, [PlayerGender]
- inc a
- ld [wMenuCursorBuffer], a
- call Function1bc9
- call PlayClickSFX
- call ExitMenu
- bit 0, a
- jp z, Function4840c
- ld hl, MenuSelection2
- ld a, [hl]
- ld hl, Strings_484fb
- cp $1
- jr z, .asm_482ed
-.asm_482e1
- ld a, [hli]
- cp $50
- jr nz, .asm_482e1
- ld a, $1
- ld [PlayerGender], a
- jr .asm_482f1
-.asm_482ed
- xor a
- ld [PlayerGender], a
-.asm_482f1
- ld d, h
- ld e, l
- hlcoord 11, 4
- call PlaceString
- ld a, [wd003]
- set 0, a
- ld [wd003], a
- jp Function4840c
-
-Function48304: ; 48304 (12:4304)
- call Function48283
- hlcoord 1, 16
- ld de, String_484cf
- call PlaceString
- ld hl, MenuDataHeader_0x48504
- call LoadMenuDataHeader
- ld hl, MenuDataHeader_0x48513
- call LoadMenuDataHeader
- hlcoord 10, 0
- ld b, $c
- ld c, $8
- call Function48cdc
- ld a, [wMenuCursorBuffer]
- ld b, a
- ld a, [wd0e4]
- ld c, a
- push bc
- ld a, [wd474]
- dec a
- cp $29
- jr c, .asm_4833f
- sub $29
- inc a
- ld [wMenuCursorBuffer], a
- ld a, $29
-.asm_4833f
- ld [wd0e4], a
- callba Function104148
-.asm_48348
- call HandleScrollingMenu
- ld de, $629
- call Function48383
- jr c, .asm_48348
- ld d, a
- pop bc
- ld a, b
- ld [wMenuCursorBuffer], a
- ld a, c
- ld [wd0e4], a
- ld a, d
- push af
- call ExitMenu
- call ExitMenu
- pop af
- ld a, [hJoyPressed]
- bit 0, a
- jr z, .asm_48377
- call Function483bb
- ld a, [wd003]
- set 2, a
- ld [wd003], a
-.asm_48377
- call Function48187
- callba Function104148
- jp Function4840c
-
-Function48383: ; 48383 (12:4383)
- push bc
- push af
- bit 5, a
- jr nz, .asm_48390
- bit 4, a
- jr nz, .asm_4839f
- and a
- jr .asm_483b7
-.asm_48390
- ld a, [wd0e4]
- sub d
- ld [wd0e4], a
- jr nc, .asm_483af
- xor a
- ld [wd0e4], a
- jr .asm_483af
-.asm_4839f
- ld a, [wd0e4]
- add d
- ld [wd0e4], a
- cp e
- jr c, .asm_483af
- ld a, e
- ld [wd0e4], a
- jr .asm_483af
-.asm_483af
- ld hl, MenuSelection2
- ld a, [hl]
- ld [wMenuCursorBuffer], a
- scf
-.asm_483b7
- pop bc
- ld a, b
- pop bc
- ret
-
-Function483bb: ; 483bb (12:43bb)
- ld hl, wcf77
- ld a, [hl]
- inc a
- ld [wd474], a
- dec a
- ld b, a
- ld hl, Prefectures
-.asm_483c8
- and a
- jr z, .asm_483d5
-.asm_483cb
- ld a, [hli]
- cp "@"
- jr nz, .asm_483cb
- ld a, b
- dec a
- ld b, a
- jr .asm_483c8
-.asm_483d5
- ld d, h
- ld e, l
- ld b, $2
- ld c, $8
- hlcoord 11, 7
- call ClearBox
- hlcoord 11, 8
- call PlaceString
- ret
-; 483e8 (12:43e8)
-
-Function483e8: ; 483e8
- push de
- ld hl, Prefectures
- ld a, [MenuSelection]
- cp $ff
- jr nz, .asm_483f8
- ld hl, Wakayama ; last string
- jr .asm_48405
-
-.asm_483f8
- ld d, a
- and a
- jr z, .asm_48405
-.asm_483fc
- ld a, [hli]
- cp "@"
- jr nz, .asm_483fc
- ld a, d
- dec a
- jr .asm_483f8
-
-.asm_48405
- ld d, h
- ld e, l
- pop hl
- call PlaceString
- ret
-; 4840c
-
-Function4840c: ; 4840c (12:440c)
- call Function48187
- call Function48283
- hlcoord 1, 16
- ld de, String_48275
- call PlaceString
- call Function486bf
- pop bc
- ld hl, MenuSelection2
- ld [hl], b
- ld a, [wd002]
- bit 6, a
- jr nz, .asm_48437
- ld b, $9
- ld c, $1
- hlcoord 1, 4
- call ClearBox
- jp Function48157
-.asm_48437
- ld b, $7
- ld c, $1
- hlcoord 1, 6
- call ClearBox
- jp Function48157
-
-Function48444: ; 48444 (12:4444)
- push bc
- push af
- push de
- push hl
- ld hl, Unknown_4845d
-.asm_4844b
- and a
- jr z, .asm_48453
-rept 2
- inc hl
-endr
- dec a
- jr .asm_4844b
-.asm_48453
- ld d, h
- ld e, l
- pop hl
- call PlaceString
- pop de
- pop af
- pop bc
- ret
-; 4845d (12:445d)
-
-Unknown_4845d: ; 4845d
-; 4845d
- db "0@"
- db "1@"
- db "2@"
- db "3@"
- db "4@"
- db "5@"
- db "6@"
- db "7@"
- db "8@"
- db "9@"
-; 48471
-
-MobileProfileString: db " Mobile Profile@"
-String_48482: db "Gender@"
-String_48489: db "Age@"
-String_4848d: db "Address@"
-String_48495: db "Zip Code@"
-String_4849e: db "OK@"
-String_484a1: db "Profile Changed@"
-String_484b1: db "Boy or girl?@"
-String_484be: db "How old are you?@"
-String_484cf: db "Where do you live?@"
-String_484e2: db "Your zip code?@"
-; 484f1
-
-MenuDataHeader_0x484f1: ; 0x484f1
- db $40 ; flags
- db 02, 11 ; start coords
- db 07, 19 ; end coords
- dw MenuData2_0x484f9
- db 1 ; default option
-; 0x484f9
-
-MenuData2_0x484f9: ; 0x484f9
- db $a0 ; flags
- db 2 ; items
-Strings_484fb:
-String_484fb: db "Boy@"
-String_484ff: db "Girl@"
-; 0x48504
-
-MenuDataHeader_0x48504: ; 0x48504
- db $40 ; flags
- db 00, 10 ; start coords
- db 17, 19 ; end coords
-
-MenuDataHeader_0x48509: ; 0x48509
- db $40 ; flags
- db 05, 10 ; start coords
- db 07, 19 ; end coords
-
-MenuDataHeader_0x4850e: ; 0x4850e
- db $40 ; flags
- db 09, 10 ; start coords
- db 11, 19 ; end coords
-
-MenuDataHeader_0x48513: ; 0x48513
- db $40 ; flags
- db 01, 11 ; start coords
- db 12, 18 ; end coords
- dw MenuData2_0x4851b
- db 1 ; default option
-; 0x4851b
-
-MenuData2_0x4851b: ; 0x4851b
- db $1d ; flags
- db 6 ; items
-
-Unknown_4851d: ; 4851d
- db $00, $01, $12, $2b, $45, $12, $e8, $43, $00, $00, $00, $00, $00, $00, $2e, $00, $01, $02, $03, $04
- db $05, $06, $07, $08, $09, $0a, $0b, $0c, $0d, $0e, $0f, $10, $11, $12, $13, $14, $15, $16, $17, $18
- db $19, $1a, $1b, $1c, $1d, $1e, $1f, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $2a, $2b, $2c
- db $2d, $ff
-
-Prefectures:
-Aichi: db "あいちけん@" ; Aichi
-Aomori: db "あおもりけん@" ; Aomori
-Akita: db "あきたけん@" ; Akita
-Ishikawa: db "いしかわけん@" ; Ishikawa
-Ibaraki: db "いばらきけん@" ; Ibaraki
-Iwate: db "いわてけん@" ; Iwate
-Ehime: db "えひめけん@" ; Ehime
-Oita: db "おおいたけん@" ; Oita
-Osakafu: db "おおさかふ@" ; Osakafu
-Okayama: db "おかやまけん@" ; Okayama
-Okinawa: db "おきなわけん@" ; Okinawa
-Kagawa: db "かがわけん@" ; Kagawa
-Kagoshima: db "かごしまけん@" ; Kagoshima
-Kanagawa: db "かながわけん@" ; Kanagawa
-Gifu: db "ぎふけん@" ; Gifu
-Kyotofu: db "きょうとふ@" ; Kyotofu
-Kumamoto: db "くまもとけん@" ; Kumamoto
-Gunma: db "ぐんまけん@" ; Gunma
-Kochi: db "こうちけん@" ; Kochi
-Saitama: db "さいたまけん@" ; Saitama
-Saga: db "さがけん@" ; Saga
-Shiga: db "しがけん@" ; Shiga
-Shizuoka: db "しずおかけん@" ; Shizuoka
-Shimane: db "しまねけん@" ; Shimane
-Chiba: db "ちばけん@" ; Chiba
-Tokyo: db "とうきょうと@" ; Tokyo
-Tokushima: db "とくしまけん@" ; Tokushima
-Tochigi: db "とちぎけん@" ; Tochigi
-Tottori: db "とっとりけん@" ; Tottori
-Toyama: db "とやまけん@" ; Toyama
-Nagasaki: db "ながさきけん@" ; Nagasaki
-Nagano: db "ながのけん@" ; Nagano
-Naraken: db "ならけん@" ; Naraken
-Niigata: db "にいがたけん@" ; Niigata
-Hyogo: db "ひょうごけん@" ; Hyogo
-Hiroshima: db "ひろしまけん@" ; Hiroshima
-Fukui: db "ふくいけん@" ; Fukui
-Fukuoka: db "ふくおかけん@" ; Fukuoka
-Fukushima: db "ふくしまけん@" ; Fukushima
-Hokkaido: db "ほっかいどう@" ; Hokkaido
-Mie: db "みえけん@" ; Mie
-Miyagi: db "みやぎけん@" ; Miyagi
-Miyazaki: db "みやざきけん@" ; Miyazaki
-Yamagata: db "やまがたけん@" ; Yamagata
-Yamaguchi: db "やまぐちけん@" ; Yamaguchi
-Yamanashi: db "やまなしけん@" ; Yamanashi
-Wakayama: db "わかやまけん@" ; Wakayama
-; 48689
-
-Function48689: ; 48689 (12:4689)
- ld c, 7
- call DelayFrames
- ld b, $1
- call Function4930f
- call ClearBGPalettes
- hlcoord 0, 0
- ld b, $4
- ld c, $14
- call ClearBox
- hlcoord 0, 2
- ld a, $c
- ld [hl], a
- ld bc, $13
- add hl, bc
- ld [hl], a
- ld de, MobileProfileString
- hlcoord 1, 2
- call PlaceString
- hlcoord 0, 4
- ld b, $8
- ld c, $12
- call Function48cdc
- ret
-
-Function486bf: ; 486bf (12:46bf)
- ld hl, wcfa1
- ld a, [wd002]
- bit 6, a
- jr nz, .asm_486ce
- ld a, $4
- ld [hli], a
- jr .asm_486d1
-.asm_486ce
- ld a, $6
- ld [hli], a
-.asm_486d1
- ld a, $1
- ld [hli], a
- ld a, [wd002]
- bit 6, a
- jr nz, .asm_486e7
- call Function48725
- ld a, $4
- jr nc, .asm_486e4
- ld a, $5
-.asm_486e4
- ld [hli], a
- jr .asm_486fb
-.asm_486e7
- ld a, [wd479]
- bit 1, a
- jr nz, .asm_486f8
- call Function48725
- jr c, .asm_486f8
- ld a, $3
- ld [hli], a
- jr .asm_486fb
-.asm_486f8
- ld a, $4
- ld [hli], a
-.asm_486fb
- ld a, $1
- ld [hli], a
- ld [hl], $0
- set 5, [hl]
- inc hl
- xor a
- ld [hli], a
- ld a, $20
- ld [hli], a
- ld a, $1
- add $40
- add $80
- push af
- ld a, [wd002]
- bit 6, a
- jr z, .asm_4871a
- pop af
- add $2
- push af
-.asm_4871a
- pop af
- ld [hli], a
- ld a, $1
-rept 2
- ld [hli], a
-endr
- xor a
-rept 3
- ld [hli], a
-endr
- ret
-
-Function48725: ; 48725 (12:4725)
- ld a, [wd003]
- bit 0, a
- jr z, .asm_4873a
- bit 1, a
- jr z, .asm_4873a
- bit 2, a
- jr z, .asm_4873a
- bit 3, a
- jr z, .asm_4873a
- scf
- ret
-.asm_4873a
- and a
- ret
-
-Function4873c: ; 4873c (12:473c)
- ld hl, wcfa1
- ld a, $4
- ld [hli], a
- ld a, $c
- ld [hli], a
- ld a, $2
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld [hl], $0
- set 5, [hl]
- inc hl
- xor a
- ld [hli], a
- ld a, $20
- ld [hli], a
- ld a, $1
- add $2
- ld [hli], a
- ld a, [PlayerGender]
- and a
- jr z, .asm_48764
- ld a, $2
- jr .asm_48766
-.asm_48764
- ld a, $1
-.asm_48766
- ld [hli], a
- ld a, $1
- ld [hli], a
- xor a
-rept 3
- ld [hli], a
-endr
- ret
-
-Function4876f: ; 4876f (12:476f)
- call Function48283
- hlcoord 1, 16
- ld de, String_484be
- call PlaceString
- ld hl, MenuDataHeader_0x48509
- call LoadMenuDataHeader
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- hlcoord 10, 5
- ld b, $1
- ld c, $8
- call Function48cdc
- call WaitBGMap
- ld a, [wd473]
- and a
- jr z, .asm_487ab
- cp $64
- jr z, .asm_487b2
- hlcoord 12, 5
- ld [hl], $10
- hlcoord 12, 7
- ld [hl], $11
- jr .asm_487b7
-.asm_487ab
- hlcoord 12, 5
- ld [hl], $10
- jr .asm_487b7
-.asm_487b2
- hlcoord 12, 7
- ld [hl], $11
-.asm_487b7
- hlcoord 11, 6
- call Function487ec
- ld c, 10
- call DelayFrames
- ld a, [wd473]
- push af
-.asm_487c6
- call JoyTextDelay
- call Function4880e
- jr nc, .asm_487c6
- ld a, $1
- call Function1ff8
- pop bc
- jr nz, .asm_487da
- ld a, b
- ld [wd473], a
-.asm_487da
- ld a, [wd473]
- call ExitMenu
- hlcoord 11, 6
- call Function487ec
- pop af
- ld [hInMenu], a
- jp Function4840c
-
-Function487ec: ; 487ec (12:47ec)
- push hl
- ld de, wd473
- call Function487ff
- pop hl
-rept 4
- inc hl
-endr
- ld de, String_4880d
- call PlaceString
- ret
-
-Function487ff: ; 487ff (12:47ff)
- push hl
- ld a, " "
- ld [hli], a
- ld [hl], a
- pop hl
- ld b, PRINTNUM_LEADINGZEROS | 1
- ld c, 3
- call PrintNum
- ret
-; 4880d (12:480d)
-
-String_4880d: ; 4880d
- db "@"
-; 4880e
-
-Function4880e: ; 4880e (12:480e)
- ld a, [hJoyPressed]
- and A_BUTTON
- jp nz, Function488b9
- ld a, [hJoyPressed]
- and B_BUTTON
- jp nz, Function488b4
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .asm_48843
- ld a, [hl]
- and D_DOWN
- jr nz, .asm_48838
- ld a, [hl]
- and D_LEFT
- jr nz, .asm_4884f
- ld a, [hl]
- and D_RIGHT
- jr nz, .asm_4885f
- call DelayFrame
- and a
- ret
-.asm_48838
- ld hl, wd473
- ld a, [hl]
- and a
- jr z, .asm_48840
- dec a
-.asm_48840
- ld [hl], a
- jr .asm_4886f
-.asm_48843
- ld hl, wd473
- ld a, [hl]
- cp $64
- jr nc, .asm_4884c
- inc a
-.asm_4884c
- ld [hl], a
- jr .asm_4886f
-.asm_4884f
- ld a, [wd473]
- cp $5b
- jr c, .asm_48858
- ld a, $5a
-.asm_48858
- add $a
- ld [wd473], a
- jr .asm_4886f
-.asm_4885f
- ld a, [wd473]
- cp $a
- jr nc, .asm_48868
- ld a, $a
-.asm_48868
- sub $a
- ld [wd473], a
- jr .asm_4886f
-.asm_4886f
- ld a, [wd473]
- and a
- jr z, .asm_48887
- cp $64
- jr z, .asm_48898
- jr z, .asm_488a7
- hlcoord 12, 5
- ld [hl], $10
- hlcoord 12, 7
- ld [hl], $11
- jr .asm_488a7
-.asm_48887
- hlcoord 10, 5
- ld b, $1
- ld c, $8
- call Function48cdc
- hlcoord 12, 5
- ld [hl], $10
- jr .asm_488a7
-.asm_48898
- hlcoord 10, 5
- ld b, $1
- ld c, $8
- call Function48cdc
- hlcoord 12, 7
- ld [hl], $11
-.asm_488a7
- hlcoord 11, 6
- call Function487ec
- call WaitBGMap
- ld a, $1
- and a
- ret
-
-Function488b4: ; 488b4 (12:48b4)
- ld a, $0
- and a
- scf
- ret
-
-Function488b9: ; 488b9 (12:48b9)
- ld a, [wd003]
- set 1, a
- ld [wd003], a
- scf
- ret
-; 488c3 (12:48c3)
-
-GFX_488c3: ; 488c3
-INCBIN "gfx/unknown/0488c3.2bpp"
-
-GFX_488cb: ; 488cb
-INCBIN "gfx/unknown/0488cb.2bpp"
-
-Function488d3: ; 488d3 (12:48d3)
- call Function48283
- hlcoord 1, 16
- ld de, String_484e2
- call PlaceString
- call Function48a3a
- jp c, Function4840c
- ld hl, MenuDataHeader_0x4850e
- call LoadMenuDataHeader
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- hlcoord 10, 9
- ld b, $1
- ld c, $8
- call Function48cdc
- ld a, [wd475]
- and $f
- ld d, $0
- hlcoord 11, 10
- call Function489ea
- call WaitBGMap
- ld a, [wd475]
- ld b, a
- ld a, [wd476]
- ld c, a
- ld a, [wd477]
- ld d, a
- ld a, [wd478]
- ld e, a
- push de
- push bc
- ld d, $0
- ld b, $0
-
-asm_48922: ; 48922 (12:4922)
- push bc
- call JoyTextDelay
- ld a, [hJoyDown]
- and a
- jp z, Function4896e
- bit 0, a
- jp nz, Function4896e
- bit 1, a
- jp nz, Function4896e
- ld a, [wd002]
- and %11001111
- res 7, a
- ld [wd002], a
- pop bc
- inc b
- ld a, b
- cp $5
- push bc
- jr c, .asm_4894c
- pop bc
- ld b, $4
- push bc
-.asm_4894c
- pop bc
- push bc
- ld a, b
- cp $4
- jr nz, asm_48972
- ld c, 10
- call DelayFrames
- jr asm_48972
-; 4895a (12:495a)
-
-Function4895a: ; 4895a
- ld a, [hJoyPressed]
- and a
- jr z, .asm_48965
- pop bc
- ld b, $1
- push bc
- jr asm_48972
-
-.asm_48965
- ld a, [hJoyLast]
- and a
- jr z, asm_48972
-
- pop bc
- ld b, $1
- push bc
-
-Function4896e: ; 4896e (12:496e)
- pop bc
- ld b, $0
- push bc
-
-asm_48972: ; 48972 (12:4972)
- call Function48ab5
- push af
- cp $f0
- jr z, .asm_48994
- cp $f
- jr nz, .asm_48988
- ld a, [wd002]
- set 7, a
- and $cf
- ld [wd002], a
-.asm_48988
- hlcoord 11, 10
- ld b, $0
- ld c, d
- add hl, bc
- ld b, $3
- call Function48c11
-.asm_48994
- call WaitBGMap
- pop af
- pop bc
- jr nc, asm_48922
- jr nz, .asm_489b1
- pop bc
- ld a, b
- ld [wd475], a
- ld a, c
- ld [wd476], a
- pop bc
- ld a, b
- ld [wd477], a
- ld a, c
- ld [wd478], a
- jr .asm_489c5
-.asm_489b1
- push af
- ld a, [wd479]
- set 0, a
- ld [wd479], a
- ld a, [wd003]
- set 3, a
- ld [wd003], a
- pop af
- pop bc
- pop bc
-.asm_489c5
- push af
- push bc
- push de
- push hl
- ld a, $1
- call Function1ff8
- pop hl
- pop de
- pop bc
- pop af
- call ExitMenu
- hlcoord 11, 10
- call Function489ea
- hlcoord 11, 9
- lb bc, 1, 8
- call ClearBox
- pop af
- ld [hInMenu], a
- jp Function4840c
-
-Function489ea: ; 489ea (12:49ea)
- push de
- ld a, [wd475]
- and $f
- call Function48444
- ld a, [wd476]
- and $f0
- swap a
- inc hl
- call Function48444
- ld a, [wd476]
- and $f
- inc hl
- call Function48444
- inc hl
- ld de, String_48a38
- call PlaceString
- ld a, [wd477]
- and $f0
- swap a
- inc hl
- call Function48444
- ld a, [wd477]
- and $f
- inc hl
- call Function48444
- ld a, [wd478]
- and $f0
- swap a
- inc hl
- call Function48444
- ld a, [wd478]
- and $f
- inc hl
- call Function48444
- pop de
- ret
-; 48a38 (12:4a38)
-
-String_48a38: ; 48a38
- db "-@"
-; 48a3a
-
-Function48a3a: ; 48a3a (12:4a3a)
- ld hl, MenuDataHeader_0x48a9c
- call LoadMenuDataHeader
- call Function4873c
- ld a, $a
- ld [wcfa1], a
- ld a, $b
- ld [wcfa2], a
- ld a, $1
- ld [MenuSelection2], a
- hlcoord 10, 8
- ld b, $4
- ld c, $8
- call Function48cdc
- hlcoord 12, 10
- ld de, String_48aa1
- call PlaceString
- call Function1bc9
- push af
- call PlayClickSFX
- call ExitMenu
- pop af
- bit 1, a
- jp nz, Function48a9a
- ld a, [MenuSelection2]
- cp $1
- jr z, .asm_48a98
- ld a, [wd003]
- set 3, a
- ld [wd003], a
- ld a, [wd479]
- res 0, a
- ld [wd479], a
- xor a
- ld bc, $4
- ld hl, wd475
- call ByteFill
- jr Function48a9a
-.asm_48a98
- and a
- ret
-
-Function48a9a: ; 48a9a (12:4a9a)
- scf
- ret
-; 48a9c (12:4a9c)
-
-MenuDataHeader_0x48a9c: ; 0x48a9c
- db $40 ; flags
- db 08, 10 ; start coords
- db 13, 19 ; end coord
-
-String_48aa1: ; 48aa1
- db "Tell Now"
- next "Tell Later@"
-; 48ab5
-
-
-Function48ab5: ; 48ab5 (12:4ab5)
- ld a, [hJoyPressed]
- and A_BUTTON
- jp nz, Function48c0f
- ld a, [hJoyPressed]
- and B_BUTTON
- jp nz, Function48c0d
- ld a, d
- and a
- jr z, .asm_48adf
- cp $1
- jr z, .asm_48ae7
- cp $2
- jr z, .asm_48af1
- cp $3
- jr z, .asm_48af9
- cp $4
- jr z, .asm_48b03
- cp $5
- jr z, .asm_48b0b
- cp $6
- jr .asm_48b15
-.asm_48adf
- ld hl, wd475
- ld a, [hl]
- and $f
- jr .asm_48b1d
-.asm_48ae7
- ld hl, wd476
- ld a, [hl]
- swap a
- or $f0
- jr .asm_48b1d
-.asm_48af1
- ld hl, wd476
- ld a, [hl]
- and $f
- jr .asm_48b1d
-.asm_48af9
- ld hl, wd477
- ld a, [hl]
- swap a
- or $f0
- jr .asm_48b1d
-.asm_48b03
- ld hl, wd477
- ld a, [hl]
- and $f
- jr .asm_48b1d
-.asm_48b0b
- ld hl, wd478
- ld a, [hl]
- swap a
- or $f0
- jr .asm_48b1d
-.asm_48b15
- ld hl, wd478
- ld a, [hl]
- and $f
- jr .asm_48b1d
-.asm_48b1d
- push hl
- push af
- ld e, $0
- hlcoord 11, 10
- ld a, d
-.asm_48b25
- and a
- jr z, .asm_48b2c
- inc e
- dec a
- jr .asm_48b25
-.asm_48b2c
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .asm_48b8d
- ld a, [hl]
- and D_DOWN
- jr nz, .asm_48b55
- ld a, [hl]
- and D_LEFT
- jp nz, Function48bd7
- ld a, [hl]
- and D_RIGHT
- jr nz, .asm_48b9d
- hlcoord 11, 10
- call Function489ea
- ld a, [wd002]
- bit 7, a
- jr nz, .asm_48b51
-.asm_48b51
- pop bc
- pop bc
- and a
- ret
-.asm_48b55
- pop af
- ld b, a
- and $f
- and a
- ld a, b
- jr nz, .asm_48b61
- and $f0
- add $a
-.asm_48b61
- dec a
-.asm_48b62
- push de
- push af
- hlcoord 10, 9
- ld b, $1
- ld c, $8
- call Function48cdc
- pop af
- pop de
- hlcoord 11, 10
- ld b, a
- ld a, d
- cp $3
- jr c, .asm_48b7a
- inc hl
-.asm_48b7a
- ld a, b
- pop hl
- bit 7, a
- jr z, .asm_48b85
- call Function48c4d
- jr .asm_48b88
-.asm_48b85
- call Function48c5a
-.asm_48b88
- ld a, $f0
- jp Function48c00
-.asm_48b8d
- pop af
- ld b, a
- and $f
- cp $9
- ld a, b
- jr c, .asm_48b9a
- and $f0
- add $ff
-.asm_48b9a
- inc a
- jr .asm_48b62
-.asm_48b9d
- push de
- hlcoord 10, 9
- ld b, $1
- ld c, $8
- call Function48cdc
- pop de
- ld a, d
- cp $6
- jr nc, .asm_48baf
- inc d
-.asm_48baf
- pop af
- pop hl
- ld b, a
- ld a, d
- cp $6
- ld a, b
- jr z, .asm_48bc4
- bit 7, a
- jr nz, .asm_48bc4
- inc hl
- ld a, [hl]
- swap a
- and $f
- jr asm_48bc7
-.asm_48bc4
- ld a, [hl]
- and $f
-
-asm_48bc7: ; 48bc7 (12:4bc7)
- hlcoord 11, 10
- push af
- ld a, d
- cp $3
- pop bc
- ld a, b
- jr c, .asm_48bd3
- inc hl
-.asm_48bd3
- ld a, $f
- jr Function48c00
-
-Function48bd7: ; 48bd7 (12:4bd7)
- push de
- hlcoord 10, 9
- ld b, $1
- ld c, $8
- call Function48cdc
- pop de
- ld a, d
- and a
- pop af
- pop hl
- ld b, a
- ld a, d
- and a
- ld a, b
- jr z, .asm_48bf3
- bit 7, a
- jr z, .asm_48bf8
- dec d
- dec hl
-.asm_48bf3
- ld a, [hl]
- and $f
- jr asm_48bc7
-.asm_48bf8
- dec d
- ld a, [hl]
- swap a
- and $f
- jr asm_48bc7
-
-Function48c00: ; 48c00 (12:4c00)
- push af
- hlcoord 11, 10
- call Function489ea
- ld a, $1
- and a
- pop bc
- ld a, b
- ret
-
-Function48c0d: ; 48c0d (12:4c0d)
- xor a
- and a
-
-Function48c0f: ; 48c0f (12:4c0f)
- scf
- ret
-
-Function48c11: ; 48c11 (12:4c11)
- ld a, [wd002]
- bit 7, a
- jr z, .asm_48c20
- ld a, d
- cp $3
- jr c, .asm_48c1e
- inc hl
-.asm_48c1e
- ld [hl], $7f
-.asm_48c20
- ld a, [wd002]
- swap a
- and $3
- inc a
- cp b
- jr nz, .asm_48c40
- ld a, [wd002]
- bit 7, a
- jr z, .asm_48c3a
- res 7, a
- ld [wd002], a
- xor a
- jr .asm_48c40
-.asm_48c3a
- set 7, a
- ld [wd002], a
- xor a
-.asm_48c40
- swap a
- ld b, a
- ld a, [wd002]
- and $cf
- or b
- ld [wd002], a
- ret
-
-Function48c4d: ; 48c4d (12:4c4d)
- swap a
- and $f0
- push af
- ld a, [hl]
- and $f
- ld [hl], a
- pop af
- or [hl]
- ld [hl], a
- ret
-
-Function48c5a: ; 48c5a (12:4c5a)
- push af
- ld a, [hl]
- and $f0
- ld [hl], a
- pop af
- or [hl]
- ld [hl], a
- ret
-
-Function48c63: ; 48c63
- ld a, "@"
- ld [de], a
- ld a, c
- cp $30
- jr nc, .asm_48c8c
- and a
- jr z, .asm_48c8c
- dec c
- push de
- ld h, d
- ld l, e
- ld a, "@"
- ld b, 7
-.asm_48c76
- ld [hli], a
- dec b
- jr nz, .asm_48c76
- ld hl, Prefectures
- ld a, c
- call GetNthString
-.asm_48c81
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- cp "@"
- jr nz, .asm_48c81
- and a
- pop de
- ret
-
-.asm_48c8c
- scf
- ret
-; 48c8e
-
-Function48c8e: ; 48c8e
- ld hl, wd02a
- ld d, h
- ld e, l
- callba Function48c63
- hlcoord 10, 7
- call PlaceString
- call WaitBGMap
- ret
-; 48ca3
-
-Function48ca3: ; 48ca3
- push af
- push bc
- push de
- push hl
- ld b, 0
- ld c, 0
- ld d, 0
-.asm_48cad
- cp 100
- jr c, .asm_48cb6
- sub 100
- inc b
- jr .asm_48cad
-
-.asm_48cb6
- cp 10
- jr c, .asm_48cbf
- sub 10
- inc c
- jr .asm_48cb6
-
-.asm_48cbf
- cp 1
- jr c, .asm_48cc7
- dec a
- inc d
- jr .asm_48cbf
-
-.asm_48cc7
- ld a, b
- call Function48444
- inc hl
- ld a, c
- call Function48444
- inc hl
- ld a, d
- call Function48444
- pop hl
- pop de
- pop bc
- pop af
- ret
-; 48cda
-
-Function48cda: ; 48cda (12:4cda)
- ld h, d
- ld l, e
-
-Function48cdc: ; 48cdc (12:4cdc)
- push bc
- push hl
- call Function48cfd
- pop hl
- pop bc
- ld de, AttrMap - TileMap
- add hl, de
-rept 2
- inc b
-endr
-rept 2
- inc c
-endr
- ld a, $0
-.asm_48ced
- push bc
- push hl
-.asm_48cef
- ld [hli], a
- dec c
- jr nz, .asm_48cef
- pop hl
- ld de, $14
- add hl, de
- pop bc
- dec b
- jr nz, .asm_48ced
- ret
-
-Function48cfd: ; 48cfd (12:4cfd)
- push hl
- ld a, $4
- ld [hli], a
- inc a
- call Function48d2a
- inc a
- ld [hl], a
- pop hl
- ld de, $14
- add hl, de
-.asm_48d0c
- push hl
- ld a, $7
- ld [hli], a
- ld a, $7f
- call Function48d2a
- ld [hl], $8
- pop hl
- ld de, $14
- add hl, de
- dec b
- jr nz, .asm_48d0c
- ld a, $9
- ld [hli], a
- ld a, $a
- call Function48d2a
- ld [hl], $b
- ret
-
-Function48d2a: ; 48d2a (12:4d2a)
- ld d, c
-.asm_48d2b
- ld [hli], a
- dec d
- jr nz, .asm_48d2b
- ret
-
-Function48d30: ; 48d30 (12:4d30)
- ld hl, wd475
- call Function48d4a
- ld hl, wd477
- call Function48d4a
- ret
-
-Function48d3d: ; 48d3d (12:4d3d)
- ld hl, wd475
- call Function48d94
- ld hl, wd477
- call Function48d94
- ret
-
-Function48d4a: ; 48d4a (12:4d4a)
- inc hl
- ld a, [hl]
- ld b, a
- and $f
- ld c, a
- srl b
- srl b
- srl b
- srl b
- push bc
- ld c, 10
- ld a, b
- call SimpleMultiply
- pop bc
- add c
- ld [hld], a
- xor a
- ld [hMultiplicand + 0], a
- ld [hMultiplicand + 1], a
- ld a, [hl]
- srl a
- srl a
- srl a
- srl a
- ld c, 10
- call SimpleMultiply
- ld b, a
- ld a, [hli]
- and $f
- add b
- ld [hMultiplicand + 2], a
- ld a, 100
- ld [hMultiplier], a
- call Multiply
- ld a, [hProduct + 2]
- ld b, a
- ld a, [hProduct + 3]
- ld c, a
- ld e, [hl]
- add e
- ld c, a
- ld a, b
- adc $0
- ld b, a
- ld a, c
- ld [hld], a
- ld [hl], b
- ret
-
-Function48d94: ; 48d94 (12:4d94)
- xor a
- ld [hDividend + 0], a
- ld [hDividend + 1], a
- ld a, [hli]
- ld [hDividend + 0], a
- ld a, [hl]
- ld [hDividend + 1], a
- ld a, 100
- ld [hDivisor], a
- ld b, 2
- call Divide
- ld a, [hDivisor]
- ld c, $a
- call SimpleDivide
- sla b
- sla b
- sla b
- sla b
- or b
- ld [hld], a
- ld a, [hQuotient + 2]
- ld c, 10
- call SimpleDivide
- sla b
- sla b
- sla b
- sla b
- or b
- ld [hl], a
- ret
-
InitGender: ; 48dcb (12:4dcb)
call Function48e14
call Function48e47
@@ -25461,7 +15475,7 @@
Function48e47: ; 48e47 (12:4e47)
ld hl, Palette_48e5c
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $8
ld a, $5
call FarCopyWRAM
@@ -25513,12 +15527,12 @@
INCBIN "gfx/misc/pack_f.2bpp"
; 4925b
-Function4925b: ; 4925b
+Special_MoveTutor: ; 4925b
call FadeToMenu
call ClearBGPalettes
call ClearScreen
call DelayFrame
- ld b, $14
+ ld b, SCGB_14
call GetSGBLayout
xor a
ld [wItemAttributeParamBuffer], a
@@ -25547,7 +15561,7 @@
ld [ScriptVar], a
.asm_492a1
- call Function2b3c
+ call ReturnToCallingMenu
ret
; 492a5
@@ -25625,10 +15639,10 @@
Function4930f: ; 4930f (mobile)
ld a, b
- cp $ff
- jr nz, .asm_49317
+ cp SCGB_RAM
+ jr nz, .not_ram
ld a, [SGBPredef]
-.asm_49317
+.not_ram
push af
callba Function9673
pop af
@@ -25635,7 +15649,7 @@
ld l, a
ld h, 0
add hl, hl
- ld de, Jumptable_49330
+ ld de, .jumptable
add hl, de
ld a, [hli]
ld h, [hl]
@@ -25647,7 +15661,7 @@
ret
; 49330 (12:5330)
-Jumptable_49330: ; 49330
+.jumptable: ; 49330
dw Function4936e
dw Function4942f
dw Function49706
@@ -25679,15 +15693,15 @@
ret
Function49351: ; 49351 (12:5351)
- ld de, wMapPals
+ ld de, UnknBGPals
ld hl, Palette_493e1
ld bc, $28
- ld a, $5 ; BANK(wMapPals)
+ ld a, $5 ; BANK(UnknBGPals)
call FarCopyWRAM
- ld de, wMapPals + $38
+ ld de, UnknBGPals + $38
ld hl, Palette_49418
ld bc, $8
- ld a, $5 ; BANK(wMapPals)
+ ld a, $5 ; BANK(UnknBGPals)
call FarCopyWRAM
ret
@@ -25767,7 +15781,7 @@
Function49409:: ; 49409
ld hl, Palette_49418
- ld de, wMapPals + 8 * 7
+ ld de, UnknBGPals + 8 * 7
ld bc, 8
ld a, $5
call FarCopyWRAM
@@ -25783,9 +15797,9 @@
Function49420:: ; 49420 (12:5420)
ld hl, MansionPalette4
- ld de, wMapPals + $30
+ ld de, UnknBGPals + $30
ld bc, $8
- ld a, $5 ; BANK(wMapPals)
+ ld a, $5 ; BANK(UnknBGPals)
call FarCopyWRAM
ret
; 4942f (12:542f)
@@ -25792,10 +15806,10 @@
Function4942f: ; 4942f
call Function49351
- ld de, wMapPals + $38
+ ld de, UnknBGPals + $38
ld hl, Palette_49478
ld bc, $8
- ld a, $5 ; BANK(wMapPals)
+ ld a, $5 ; BANK(UnknBGPals)
call FarCopyWRAM
call Function49346
hlcoord 0, 0, AttrMap
@@ -25858,7 +15872,7 @@
LoadSpecialMapPalette: ; 494ac
ld a, [wTileset]
- cp TILESET_GOLDENROD_POKECOM_CENTER_2F_MOBILE
+ cp TILESET_POKECOM_CENTER
jr z, .pokecom_2f
cp TILESET_BATTLE_TOWER
jr z, .battle_tower
@@ -25913,7 +15927,7 @@
LoadPokeComPalette: ; 494f2
ld a, $5
- ld de, wMapPals
+ ld de, UnknBGPals
ld hl, PokeComPalette
ld bc, 8 palettes
call FarCopyWRAM
@@ -25926,7 +15940,7 @@
LoadBattleTowerPalette: ; 49541
ld a, $5
- ld de, wMapPals
+ ld de, UnknBGPals
ld hl, BattleTowerPalette
ld bc, 8 palettes
call FarCopyWRAM
@@ -25939,7 +15953,7 @@
LoadIcePathPalette: ; 49590
ld a, $5
- ld de, wMapPals
+ ld de, UnknBGPals
ld hl, IcePathPalette
ld bc, 8 palettes
call FarCopyWRAM
@@ -25952,7 +15966,7 @@
LoadHousePalette: ; 495df
ld a, $5
- ld de, wMapPals
+ ld de, UnknBGPals
ld hl, HousePalette
ld bc, 8 palettes
call FarCopyWRAM
@@ -25965,7 +15979,7 @@
LoadRadioTowerPalette: ; 4962e
ld a, $5
- ld de, wMapPals
+ ld de, UnknBGPals
ld hl, RadioTowerPalette
ld bc, 8 palettes
call FarCopyWRAM
@@ -26028,22 +16042,22 @@
LoadMansionPalette: ; 496c5
ld a, $5
- ld de, wMapPals
+ ld de, UnknBGPals
ld hl, MansionPalette1
ld bc, 8 palettes
call FarCopyWRAM
ld a, $5
- ld de, wMapPals + 4 palettes
+ ld de, UnknBGPals + 4 palettes
ld hl, MansionPalette2
ld bc, 1 palettes
call FarCopyWRAM
ld a, $5
- ld de, wMapPals + 3 palettes
+ ld de, UnknBGPals + 3 palettes
ld hl, MansionPalette3
ld bc, 1 palettes
call FarCopyWRAM
ld a, $5
- ld de, wMapPals + 6 palettes
+ ld de, UnknBGPals + 6 palettes
ld hl, MansionPalette4
ld bc, 1 palettes
call FarCopyWRAM
@@ -26059,7 +16073,7 @@
Function49706: ; 49706
ld hl, Palette_49732
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, 1 palettes
ld a, $5
call FarCopyWRAM
@@ -26067,7 +16081,7 @@
call Function49346
callba Function96b3
ld hl, Palette_4973a
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld bc, 1 palettes
ld a, $5
call FarCopyWRAM
@@ -26090,7 +16104,7 @@
Function49742: ; 49742
ld hl, Palette_49757
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $40
ld a, $5
call FarCopyWRAM
@@ -26194,7 +16208,7 @@
Function49811: ; 49811
ld hl, Palette_49826
- ld de, wMapPals + $10
+ ld de, UnknBGPals + $10
ld bc, $30
ld a, $5
call FarCopyWRAM
@@ -26249,1607 +16263,9 @@
db $a8, $00, $b5, $b0, $de, $e8, $fc, $1c
db $ba, $66, $f7, $0e, $ba, $5e, $43, $bd
-Special_CelebiShrineEvent: ; 4989a
- call DelayFrame
- ld a, [VramState]
- push af
- xor a
- ld [VramState], a
- call LoadCelebiGFX
- ld de, $750
- ld a, $2c
- call Function3b2a
- ld hl, $3
- add hl, bc
- ld [hl], $84
- ld hl, $2
- add hl, bc
- ld [hl], $1f
- ld hl, $f
- add hl, bc
- ld a, $80
- ld [hl], a
- ld a, $a0
- ld [wcf64], a
- ld d, $0
-.loop
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .done
- push bc
- call Function49bae
- inc d
- push de
- ld a, $90
- ld [wc3b5], a
- callba Function8cf7a
- call Function49935
- ld c, 2
- call DelayFrames
- pop de
- pop bc
- jr .loop
+INCLUDE "event/celebi.asm"
+INCLUDE "engine/main_menu.asm"
-.done
- pop af
- ld [VramState], a
- call Function498f9
- call Function49bf3
- ret
-; 498f9
-
-Function498f9: ; 498f9
- ld hl, Sprites + 2
- xor a
- ld c, $4
-.loop
- ld [hli], a
-rept 3
- inc hl
-endr
- inc a
- dec c
- jr nz, .loop
- ld hl, Sprites + $10
- ld bc, $90
- xor a
- call ByteFill
- ret
-; 49912
-
-LoadCelebiGFX: ; 49912
- callba Function8cf53
- ld de, SpecialCelebiLeafGFX
- ld hl, VTiles1
- lb bc, BANK(SpecialCelebiLeafGFX), 4
- call Request2bpp
- ld de, SpecialCelebiGFX
- ld hl, VTiles1 tile $04
- lb bc, BANK(SpecialCelebiGFX), $10
- call Request2bpp
- xor a
- ld [wJumptableIndex], a
- ret
-; 49935
-
-Function49935: ; 49935
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .asm_4993e
- dec [hl]
- ret
-
-.asm_4993e
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-; 49944
-
-Function49944: ; 49944
- ld hl, wcf65
- ld a, [hl]
- inc [hl]
- and $7
- ret nz
- ld a, [hl]
- and $18
- sla a
- add $40
- ld d, a
- ld e, $0
- ld a, $18
- call Function3b2a
- ld hl, $3
- add hl, bc
- ld [hl], $80
- ret
-; 49962
-
-SpecialCelebiLeafGFX: ; 49962
-INCBIN "gfx/special/celebi/leaf.2bpp"
-SpecialCelebiGFX: ; 499a2
-INCBIN "gfx/special/celebi/1.2bpp"
-INCBIN "gfx/special/celebi/2.2bpp"
-INCBIN "gfx/special/celebi/3.2bpp"
-INCBIN "gfx/special/celebi/4.2bpp"
-
-
-Function49aa2: ; 49aa2 (12:5aa2)
- ld hl, $6
- add hl, bc
- ld a, [hl]
- push af
- ld hl, $5
- add hl, bc
- ld a, [hl]
- cp $52
- jp nc, Function49b30
- ld hl, $5
- add hl, bc
- inc [hl]
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, a
- cp $3a
- jr c, .asm_49ac6
- jr z, .asm_49ac6
- sub $3
- ld [hl], a
-.asm_49ac6
- ld hl, $e
- add hl, bc
- ld a, [hl]
- inc [hl]
- call Function49b3b
- ld hl, $6
- add hl, bc
- ld [hl], a
- ld d, a
- ld hl, $4
- add hl, bc
- add [hl]
- cp $5c
- jr nc, .asm_49ae2
- cp $44
- jr nc, .asm_49b0d
-.asm_49ae2
- pop af
- push af
- cp d
- jr nc, .asm_49af2
- ld hl, $4
- add hl, bc
- add [hl]
- cp $50
- jr c, .asm_49b05
- jr .asm_49afb
-.asm_49af2
- ld hl, $4
- add hl, bc
- add [hl]
- cp $50
- jr nc, .asm_49b05
-.asm_49afb
- ld hl, $5
- add hl, bc
- ld a, [hl]
- sub $2
- ld [hl], a
- jr .asm_49b0d
-.asm_49b05
- ld hl, $5
- add hl, bc
- ld a, [hl]
- add $1
- ld [hl], a
-.asm_49b0d
- pop af
- ld hl, $4
- add hl, bc
- add [hl]
- cp $50
- jr c, .asm_49b26
- cp $e6
- jr nc, .asm_49b26
- ld hl, $1
- add hl, bc
- ld a, $41
- call Function3b3c
- jr .asm_49b2f
-.asm_49b26
- ld hl, $1
- add hl, bc
- ld a, $40
- call Function3b3c
-.asm_49b2f
- ret
-
-Function49b30: ; 49b30 (12:5b30)
- pop af
- ld hl, $1
- add hl, bc
- ld a, $40
- call Function3b3c
- ret
-
-Function49b3b: ; 49b3b (12:5b3b)
- add $10
- and $3f
- cp $20
- jr nc, .asm_49b48
- call Function49b52
- ld a, h
- ret
-.asm_49b48
- and $1f
- call Function49b52
- ld a, h
- xor $ff
- inc a
- ret
-
-Function49b52: ; 49b52 (12:5b52)
- ld e, a
- ld a, d
- ld d, $0
- ld hl, Unknown_49b6e
-rept 2
- add hl, de
-endr
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, 0
-.asm_49b61
- srl a
- jr nc, .asm_49b66
- add hl, de
-.asm_49b66
- sla e
- rl d
- and a
- jr nz, .asm_49b61
- ret
-; 49b6e (12:5b6e)
-
-Unknown_49b6e: ; 49b6e
- sine_wave $100
-; 49bae
-
-Function49bae: ; 49bae
- push hl
- push bc
- push de
- ld a, d
- ld d, $3
- ld e, d
- cp $0
- jr z, .asm_49bd0
- cp d
- jr z, .asm_49bd4
- call Function49bed
- cp d
- jr z, .asm_49bd8
- call Function49bed
- cp d
- jr z, .asm_49bdc
- call Function49bed
- cp d
- jr c, .asm_49be9
- jr .asm_49be5
-
-.asm_49bd0
- ld a, $84
- jr .asm_49bde
-
-.asm_49bd4
- ld a, $88
- jr .asm_49bde
-
-.asm_49bd8
- ld a, $8c
- jr .asm_49bde
-
-.asm_49bdc
- ld a, $90
-
-.asm_49bde
- ld hl, $3
- add hl, bc
- ld [hl], a
- jr .asm_49be9
-
-.asm_49be5
- pop de
- ld d, $ff
- push de
-
-.asm_49be9
- pop de
- pop bc
- pop hl
- ret
-; 49bed
-
-Function49bed: ; 49bed
- push af
- ld a, d
- add e
- ld d, a
- pop af
- ret
-; 49bf3
-
-Function49bf3: ; 49bf3
- ld a, BATTLETYPE_CELEBI
- ld [BattleType], a
- ret
-; 49bf9
-
-Function49bf9: ; 49bf9
- ld a, [wBattleResult]
- bit 6, a
- jr z, .asm_49c07
- ld a, $1
- ld [ScriptVar], a
- jr .asm_49c0b
-
-.asm_49c07
- xor a
- ld [ScriptVar], a
-
-.asm_49c0b
- ret
-; 49c0c
-
-GFX_49c0c: ; 49c0c
-INCBIN "gfx/unknown/049c0c.2bpp"
-; 49cdc
-
-MainMenu: ; 49cdc
- xor a
- ld [wc2d7], a
- call Function49ed0
- ld b, $8
- call GetSGBLayout
- call SetPalettes
- ld hl, GameTimerPause
- res 0, [hl]
- call Function49da4
- ld [wcf76], a
- call Function49e09
- ld hl, MenuDataHeader_0x49d14
- call LoadMenuDataHeader
- call Function49de4
- call WriteBackup
- jr c, .quit
- call ClearTileMap
- ld a, [MenuSelection]
- ld hl, Jumptable_49d60
- rst JumpTable
- jr MainMenu
-
-.quit
- ret
-; 49d14
-
-MenuDataHeader_0x49d14: ; 49d14
- db $40 ; flags
- db 00, 00 ; start coords
- db 07, 16 ; end coords
- dw MenuData2_0x49d1c
- db 1 ; default option
-; 49d1c
-
-MenuData2_0x49d1c: ; 49d1c
- db $80 ; flags
- db 0 ; items
- dw MainMenuItems
- dw Function1f79
- dw MainMenuText
-; 49d20
-
-MainMenuText: ; 49d24
- db "CONTINUE@"
- db "NEW GAME@"
- db "OPTION@"
- db "MYSTERY GIFT@"
- db "MOBILE@"
- db "MOBILE STUDIUM@"
-
-Jumptable_49d60: ; 0x49d60
- dw MainMenu_Continue
- dw MainMenu_NewGame
- dw MainMenu_Options
- dw MainMenu_MysteryGift
- dw MainMenu_Mobile
- dw MainMenu_MobileStudium
-; 0x49d6c
-
-CONTINUE EQU 0
-NEW_GAME EQU 1
-OPTION EQU 2
-MYSTERY_GIFT EQU 3
-MOBILE EQU 4
-MOBILE_STUDIUM EQU 5
-
-MainMenuItems:
-
-NewGameMenu: ; 0x49d6c
- db 2
- db NEW_GAME
- db OPTION
- db $ff
-
-ContinueMenu: ; 0x49d70
- db 3
- db CONTINUE
- db NEW_GAME
- db OPTION
- db $ff
-
-MobileMysteryMenu: ; 0x49d75
- db 5
- db CONTINUE
- db NEW_GAME
- db OPTION
- db MYSTERY_GIFT
- db MOBILE
- db $ff
-
-MobileMenu: ; 0x49d7c
- db 4
- db CONTINUE
- db NEW_GAME
- db OPTION
- db MOBILE
- db $ff
-
-MobileStudiumMenu: ; 0x49d82
- db 5
- db CONTINUE
- db NEW_GAME
- db OPTION
- db MOBILE
- db MOBILE_STUDIUM
- db $ff
-
-MysteryMobileStudiumMenu: ; 0x49d89
- db 6
- db CONTINUE
- db NEW_GAME
- db OPTION
- db MYSTERY_GIFT
- db MOBILE
- db MOBILE_STUDIUM
- db $ff
-
-MysteryMenu: ; 0x49d91
- db 4
- db CONTINUE
- db NEW_GAME
- db OPTION
- db MYSTERY_GIFT
- db $ff
-
-MysteryStudiumMenu: ; 0x49d97
- db 5
- db CONTINUE
- db NEW_GAME
- db OPTION
- db MYSTERY_GIFT
- db MOBILE_STUDIUM
- db $ff
-
-StudiumMenu: ; 0x49d9e
- db 4
- db CONTINUE
- db NEW_GAME
- db OPTION
- db MOBILE_STUDIUM
- db $ff
-
-
-Function49da4: ; 49da4
- nop
- nop
- nop
- ld a, [wcfcd]
- and a
- jr nz, .next
- ld a, $0
- ret
-
-.next
- ld a, [hCGB]
- cp $1
- ld a, $1
- ret nz
- ld a, BANK(s0_abe5)
- call GetSRAMBank
- ld a, [s0_abe5]
- cp $ff
- call CloseSRAM
- jr nz, .done
- ld a, [StatusFlags]
- bit 7, a
- ld a, $1
- jr z, .ok
- jr .ok
-
-.ok
- jr .ok2
-
-.ok2
- ld a, $1
- ret
-
-.done
- ld a, [StatusFlags]
- bit 7, a
- jr z, .ok3
- jr .ok3
-
-.ok3
- jr .ok4
-
-.ok4
- ld a, $6
- ret
-; 49de4
-
-Function49de4: ; 49de4
- call SetUpMenu
-.asm_49de7
- call Function49e09
- ld a, [wcfa5]
- set 5, a
- ld [wcfa5], a
- call Function1f1a
- ld a, [wcf73]
- cp $2
- jr z, .asm_49e07
- cp $1
- jr z, .asm_49e02
- jr .asm_49de7
-
-.asm_49e02
- call PlayClickSFX
- and a
- ret
-
-.asm_49e07
- scf
- ret
-; 49e09
-
-Function49e09: ; 49e09
- ld a, [wcfcd]
- and a
- ret z
- xor a
- ld [hBGMapMode], a
- call Function49e27
- ld hl, Options
- ld a, [hl]
- push af
- set 4, [hl]
- call Function49e3d
- pop af
- ld [Options], a
- ld a, $1
- ld [hBGMapMode], a
- ret
-; 49e27
-
-
-Function49e27: ; 49e27
- call Function6e3
- and $80
- jr nz, .asm_49e39
- hlcoord 0, 14
- ld b, $2
- ld c, $12
- call TextBox
- ret
-
-.asm_49e39
- call SpeechTextBox
- ret
-; 49e3d
-
-
-Function49e3d: ; 49e3d
- ld a, [wcfcd]
- and a
- ret z
- call Function6e3
- and $80
- jp nz, Function49e75
- call UpdateTime
- call GetWeekday
- ld b, a
- decoord 1, 15
- call Function49e91
- decoord 4, 16
- ld a, [hHours]
- ld c, a
- callba PrintHour
- ld [hl], ":"
- inc hl
- ld de, hMinutes
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- call PrintNum
- ret
-; 49e70
-
-; 49e70
- db "min.@"
-; 49e75
-
-Function49e75: ; 49e75
- hlcoord 1, 14
- ld de, .TimeNotSet
- call PlaceString
- ret
-; 49e7f
-
-.TimeNotSet ; 49e7f
- db "TIME NOT SET@"
-; 49e8c
-
-UnknownText_0x49e8c: ; 49e8c
- text_jump UnknownText_0x1c5182
- db "@"
-; 49e91
-
-Function49e91: ; 49e91
- push de
- ld hl, .Days
- ld a, b
- call GetNthString
- ld d, h
- ld e, l
- pop hl
- call PlaceString
- ld h, b
- ld l, c
- ld de, .Day
- call PlaceString
- ret
-; 49ea8
-
-.Days
- db "SUN@"
- db "MON@"
- db "TUES@"
- db "WEDNES@"
- db "THURS@"
- db "FRI@"
- db "SATUR@"
-.Day
- db "DAY@"
-; 49ed0
-
-Function49ed0: ; 49ed0
- xor a
- ld [hMapAnims], a
- call ClearTileMap
- call LoadFontsExtra
- call LoadStandardFont
- call ResetTextRelatedRAM
- ret
-; 49ee0
-
-
-MainMenu_NewGame: ; 49ee0
- callba NewGame
- ret
-; 49ee7
-
-MainMenu_Options: ; 49ee7
- callba OptionsMenu
- ret
-; 49eee
-
-MainMenu_Continue: ; 49eee
- callba Continue
- ret
-; 49ef5
-
-MainMenu_MysteryGift: ; 49ef5
- callba MysteryGift
- ret
-; 49efc
-
-MainMenu_Mobile: ; 49efc
- call ClearBGPalettes
- ld a, MUSIC_MOBILE_ADAPTER_MENU
- ld [wMapMusic], a
- ld de, MUSIC_MOBILE_ADAPTER_MENU
- call Function4a6c5
-Function49f0a: ; 49f0a
- call ClearBGPalettes
- call Function4a3a7
- call Function4a492
- call ClearBGPalettes
-Function49f16: ; 49f16
- call Function4a071
- ld c, 12
- call DelayFrames
- hlcoord 4, 0
- ld b, $a
- ld c, $a
- call Function48cdc
- hlcoord 6, 2
- ld de, MobileString1
- call PlaceString
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- xor a
- ld de, String_0x49fe9
- hlcoord 1, 14
- call PlaceString
- call Function3200
- call SetPalettes
- call Function1bc9
- ld hl, MenuSelection2
- ld b, [hl]
- push bc
- jr .asm_49f5d
-
-.asm_49f55
- call Function1bd3
- ld hl, MenuSelection2
- ld b, [hl]
- push bc
-
-.asm_49f5d
- bit 0, a
- jr nz, .asm_49f67
- bit 1, a
- jr nz, .asm_49f84
- jr .asm_49f97
-
-.asm_49f67
- ld hl, MenuSelection2
- ld a, [hl]
- cp $1
- jp z, Function4a098
- cp $2
- jp z, Function4a0b9
- cp $3
- jp z, Function4a0c2
- cp $4
- jp z, Function4a100
- ld a, $1
- call Function1ff8
-
-.asm_49f84
- pop bc
- call ClearBGPalettes
- call ClearTileMap
- ld a, MUSIC_MAIN_MENU
- ld [wMapMusic], a
- ld de, MUSIC_MAIN_MENU
- call Function4a6c5
- ret
-
-.asm_49f97
- ld hl, MenuSelection2
- ld a, [hl]
- dec a
- ld hl, MobileStrings2
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 1, 13
- ld b, $4
- ld c, $12
- call ClearBox
- hlcoord 1, 14
- call PlaceString
- jp .asm_49fb7
-
-.asm_49fb7
- call Function4a071
- pop bc
- ld hl, MenuSelection2
- ld [hl], b
- ld b, $a
- ld c, $1
- hlcoord 5, 1
- call ClearBox
- jp .asm_49f55
-; 49fcc
-
-
-MobileString1: ; 49fcc
- db "めいしフ,ルダー"
- next "あいさつ"
- next "プロフィール"
- next "せ", $1e, "い"
- next "もどる"
- db "@"
-; 49fe9
-
-
-MobileStrings2:
-
-String_0x49fe9: ; 49fe9
- db "めいし¯つくったり"
- next "ほぞんしておける フ,ルダーです@"
-; 4a004
-
-String_0x4a004: ; 4a004
- db "モバイルたいせんや じぶんのめいしで"
- next "つかう あいさつ¯つくります@"
-; 4a026
-
-String_0x4a026: ; 4a026
- db "あなた%じゅうしょや ねんれいの"
- next "せ", $1e, "い¯かえられます@"
-; 4a042
-
-String_0x4a042: ; 4a042
- db "モバイルセンター", $1d, "せつぞくするとき"
- next "ひつような こと¯きめます@"
-; 4a062
-
-String_0x4a062: ; 4a062
- db "まえ%がめん ", $1d, "もどります"
- next "@"
-; 4a071
-
-
-
-Function4a071: ; 4a071 (12:6071)
- ld hl, wcfa1
- ld a, $2
- ld [hli], a
- ld a, $5
- ld [hli], a
- ld a, $5
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld [hl], $0
- set 5, [hl]
- inc hl
- xor a
- ld [hli], a
- ld a, $20
- ld [hli], a
- ld a, $1
- add $40
- add $80
- add $2
- ld [hli], a
- ld a, $1
-rept 2
- ld [hli], a
-endr
- ret
-
-Function4a098: ; 4a098 (12:6098)
- ld a, $2
- call Function1ff8
- call Function1bee
- call WaitBGMap
- call LoadStandardMenuDataHeader
- callba Function89de0
- call Call_ExitMenu
- call Function49351
- call Function4a485
- pop bc
- jp Function49f16
-
-Function4a0b9: ; 4a0b9 (12:60b9)
- ld a, $2
- call Function1ff8
- pop bc
- jp Function4a4c4
-
-Function4a0c2: ; 4a0c2 (12:60c2)
- ld a, $2
- call Function1ff8
- ld a, BANK(sPlayerData)
- call GetSRAMBank
- ld hl, sPlayerData + PlayerName - wPlayerData
- ld de, PlayerName
- ld bc, $6
- call CopyBytes
- call CloseSRAM
- callba Function150b9
- ld c, 2
- call DelayFrames
- ld c, $1
- call Function4802f
- push af
- call ClearBGPalettes
- pop af
- and a
- jr nz, .asm_4a0f9
- callba Function1509a
-.asm_4a0f9
- ld c, 5
- call DelayFrames
- jr asm_4a111
-
-Function4a100: ; 4a100 (12:6100)
- ld a, $2
- call Function1ff8
- call ClearBGPalettes
- call Function4a13b
- call ClearBGPalettes
- call ClearTileMap
-
-asm_4a111: ; 4a111 (12:6111)
- pop bc
- call LoadFontsExtra
- jp Function49f0a
-
-Function4a118: ; 4a118 (12:6118)
- ld hl, wcfa1
- ld a, $1
- ld [hli], a
- ld a, $d
- ld [hli], a
- ld a, $3
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld [hl], $0
- set 5, [hl]
- inc hl
- xor a
- ld [hli], a
- ld a, $20
- ld [hli], a
- ld a, $1
- add $2
- ld [hli], a
- ld a, $1
-rept 2
- ld [hli], a
-endr
- ret
-
-Function4a13b: ; 4a13b (12:613b)
- call Function4a3a7
- call Function4a492
- call Function4a373
- ld c, 10
- call DelayFrames
-
-Function4a149: ; 4a149 (12:6149)
- hlcoord 1, 2
- ld b, $6
- ld c, $10
- call Function48cdc
- hlcoord 3, 4
- ld de, String_4a1ef
- call PlaceString
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- ld a, [MenuSelection2]
- dec a
- ld hl, Strings_4a23d
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 1, 13
- ld b, $4
- ld c, $12
- call ClearBox
- hlcoord 1, 14
- call PlaceString
- callba Function104148
- call SetPalettes
- call Function1bc9
- ld hl, MenuSelection2
- ld b, [hl]
- push bc
- jr asm_4a19d
-
-Function4a195: ; 4a195 (12:6195)
- call Function1bd3
- ld hl, MenuSelection2
- ld b, [hl]
- push bc
-
-asm_4a19d: ; 4a19d (12:619d)
- bit 0, a
- jr nz, .asm_4a1a7
- bit 1, a
- jr nz, .asm_4a1ba
- jr .asm_4a1bc
-.asm_4a1a7
- ld hl, MenuSelection2
- ld a, [hl]
- cp $1
- jp z, Function4a20e
- cp $2
- jp z, Function4a221
- ld a, $1
- call Function1ff8
-.asm_4a1ba
- pop bc
- ret
-.asm_4a1bc
- ld hl, MenuSelection2
- ld a, [hl]
- dec a
- ld hl, Strings_4a23d
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 1, 13
- ld b, $4
- ld c, $12
- call ClearBox
- hlcoord 1, 14
- call PlaceString
- jr .asm_4a1db
-.asm_4a1db
- call Function4a373
- pop bc
- ld hl, MenuSelection2
- ld [hl], b
- lb bc, 6, 1
- hlcoord 2, 3
- call ClearBox
- jp Function4a195
-; 4a1ef (12:61ef)
-
-String_4a1ef: ; 4a1ef
- db "モバイルセンター¯えらぶ"
- next "ログインパスワード¯いれる"
- next "もどる@"
-; 4a20e
-
-Function4a20e: ; 4a20e (12:620e)
- ld a, $1
- call Function1ff8
- callba Function1719c8
- call ClearBGPalettes
- call DelayFrame
- jr Function4a239
-
-Function4a221: ; 4a221 (12:6221)
- ld a, $1
- call Function1ff8
- call Function4a28a
- jr c, Function4a239
- call Function4a373
- ld a, $2
- ld [MenuSelection2], a
- jr .asm_4a235
-.asm_4a235
- pop bc
- jp Function4a149
-
-Function4a239: ; 4a239 (12:6239)
- pop bc
- jp Function4a13b
-; 4a23d (12:623d)
-
-Strings_4a23d: ; 4a23d
- db "いつも せつぞく¯する"
- next "モバイルセンター¯えらびます@"
-
- db "モバイルセンター", $1d, "せつぞくするとき"
- next "つかうパスワード¯ほぞんできます@"
-
- db "まえ%がめん ", $1d, "もどります@"
-
- db "@"
-; 4a28a
-
-Function4a28a: ; 4a28a (12:628a)
- hlcoord 2, 3
- lb bc, 6, 1
- ld a, " "
- call Function4a6d8
- call Function1bee
- call WaitBGMap
- call LoadStandardMenuDataHeader
- ld a, $5
- call GetSRAMBank
- ld a, [$aa4b]
- call CloseSRAM
- and a
- jr z, .asm_4a2df
- hlcoord 12, 0
- ld b, $5
- ld c, $6
- call Function48cdc
- hlcoord 14, 1
- ld de, String_4a34b
- call PlaceString
- callba Function104148
- call Function4a118
- call Function1bd3
- push af
- call PlayClickSFX
- pop af
- bit 1, a
- jr nz, .asm_4a33b
- ld a, [MenuSelection2]
- cp $2
- jr z, .asm_4a2f0
- cp $3
- jr z, .asm_4a33b
-.asm_4a2df
- callba Function11765d
- call ClearBGPalettes
- call Call_ExitMenu
- call LoadFontsExtra
- scf
- ret
-.asm_4a2f0
- call Function1bee
- ld hl, UnknownText_0x4a358
- call PrintText
- hlcoord 14, 7
- ld b, $3
- ld c, $4
- call TextBox
- callba Function104148
- ld hl, MenuDataHeader_0x4a362
- call LoadMenuDataHeader
- call InterpretMenu2
- bit 1, a
- jr nz, .asm_4a338
- ld a, [MenuSelection2]
- cp $2
- jr z, .asm_4a338
- ld a, $5
- call GetSRAMBank
- ld hl, $aa4b
- xor a
- ld bc, $11
- call ByteFill
- call CloseSRAM
- ld hl, UnknownText_0x4a35d
- call PrintText
- call JoyWaitAorB
-.asm_4a338
- call ExitMenu
-.asm_4a33b
- call Call_ExitMenu
- callba Function104148
- xor a
- ret
-; 4a346 (12:6346)
-
-MenuDataHeader_0x4a346: ; 0x4a346
- db $40 ; flags
- db 00, 12 ; start coords
- db 06, 19 ; end coords
-
-String_4a34b: ; 4a34b
- db "いれなおす"
- next "けす"
- next "もどる@"
-; 4a358
-
-UnknownText_0x4a358: ; 0x4a358
- ; Delete the saved LOG-IN PASSWORD?
- text_jump UnknownText_0x1c5196
- db "@"
-; 0x4a35d
-
-UnknownText_0x4a35d: ; 0x4a35d
- ; Deleted the LOG-IN PASSWORD.
- text_jump UnknownText_0x1c51b9
- db "@"
-; 0x4a362
-
-MenuDataHeader_0x4a362: ; 0x4a362
- db $40 ; flags
- db 07, 14 ; start coords
- db 11, 19 ; end coords
- dw MenuData2_0x4a36a
- db 2 ; default option
-; 0x4a36a
-
-MenuData2_0x4a36a: ; 0x4a36a
- db $e0 ; flags
- db 2 ; items
- db "はい@"
- db "いいえ@"
-; 0x4a373
-
-Function4a373: ; 4a373 (12:6373)
- ld hl, wcfa1
- ld a, $4
- ld [hli], a
- ld a, $2
- ld [hli], a
- ld a, $3
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld [hl], $0
- set 5, [hl]
- inc hl
- xor a
- ld [hli], a
- ld a, $20
- ld [hli], a
- ld a, $1
- add $40
- add $80
- add $2
- ld [hli], a
- ld a, $1
-rept 2
- ld [hli], a
-endr
- ret
-; 4a39a (12:639a)
-
-Function4a39a: ; 4a39a
- call Function4a485
- call Function4a492
- call Function4a3aa
- call SetPalettes
- ret
-; 4a3a7
-
-Function4a3a7: ; 4a3a7 (12:63a7)
- call Function4a485
-Function4a3aa: ; 4a3aa
- hlcoord 0, 0
- lb bc, 3, 1
- xor a
- call Function4a6d8
- lb bc, 1, 1
- ld a, $1
- call Function4a6d8
- lb bc, 1, 1
- xor a
- call Function4a6d8
- lb bc, 1, 1
- ld a, $1
- call Function4a6d8
- lb bc, 4, 1
- ld a, $2
- call Function4a6d8
- lb bc, 1, 1
- ld a, $3
- call Function4a6d8
- lb bc, 1, 1
- ld a, " "
- call Function4a6d8
- hlcoord 1, 0
- ld a, $1
- lb bc, 3, 18
- call Function4a6d8
- lb bc, 1, 18
- ld a, $0
- call Function4a6d8
- lb bc, 1, 18
- ld a, $1
- call Function4a6d8
- lb bc, 1, 18
- ld a, $2
- call Function4a6d8
- lb bc, 11, 18
- ld a, " "
- call Function4a6d8
- hlcoord 19, 0
- lb bc, 3, 1
- ld a, $0
- call Function4a6d8
- lb bc, 1, 1
- ld a, $1
- call Function4a6d8
- lb bc, 1, 1
- xor a
- call Function4a6d8
- lb bc, 1, 1
- ld a, $1
- call Function4a6d8
- lb bc, 4, 1
- ld a, $2
- call Function4a6d8
- lb bc, 1, 1
- ld a, $3
- call Function4a6d8
- lb bc, 1, 1
- ld a, " "
- call Function4a6d8
- ret
-; 4a449 (12:6449)
-
-Function4a449: ; 4a449
- ld bc, 3 * SCREEN_WIDTH
- ld a, $0
- hlcoord 0, 0
- call ByteFill
- ld bc, 2 * SCREEN_WIDTH
- ld a, $1
- call ByteFill
- ld bc, 2 * SCREEN_WIDTH
- ld a, $0
- call ByteFill
- ld bc, 2 * SCREEN_WIDTH
- ld a, $1
- call ByteFill
- ld bc, SCREEN_WIDTH
- ld a, $2
- call ByteFill
- ld bc, SCREEN_WIDTH
- ld a, $3
- call ByteFill
- ld bc, SCREEN_WIDTH
- ld a, " "
- call ByteFill
- ret
-; 4a485
-
-Function4a485: ; 4a485 (12:6485)
- ld de, GFX_49c0c
- ld hl, VTiles2 tile $00
- lb bc, BANK(GFX_49c0c), $d
- call Get2bpp
- ret
-
-Function4a492: ; 4a492 (12:6492)
- call Function4936e
- ret
-
-
-MainMenu_MobileStudium: ; 4a496
- ld a, [StartDay]
- ld b, a
- ld a, [StartHour]
- ld c, a
- ld a, [StartMinute]
- ld d, a
- ld a, [StartSecond]
- ld e, a
- push bc
- push de
- callba MobileStudium
- call ClearBGPalettes
- pop de
- pop bc
- ld a, b
- ld [StartDay], a
- ld a, c
- ld [StartHour], a
- ld a, d
- ld [StartMinute], a
- ld a, e
- ld [StartSecond], a
- ret
-; 4a4c4
-
-
-Function4a4c4: ; 4a4c4 (12:64c4)
- call ClearBGPalettes
- call Function4a3a7
- call Function4a492
- call Function4a680
- call ClearBGPalettes
- ld c, 20
- call DelayFrames
- hlcoord 2, 0
- ld b, $a
- ld c, $e
- call Function48cdc
- hlcoord 4, 2
- ld de, String_4a5c5
- call PlaceString
- hlcoord 4, 4
- ld de, String_4a5cd
- call PlaceString
- hlcoord 4, 6
- ld de, String_4a5da
- call PlaceString
- hlcoord 4, 8
- ld de, String_4a5e6
- call PlaceString
- hlcoord 4, 10
- ld de, String_4a5f2
- call PlaceString
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- xor a
- ld hl, Strings_4a5f6
- ld d, h
- ld e, l
- hlcoord 1, 14
- call PlaceString
- ld a, $1
- ld hl, Strings_4a5f6
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 1, 16
- call PlaceString
- call Function3200
- call SetPalettes
- call Function1bc9
- ld hl, MenuSelection2
- ld b, [hl]
- push bc
- jr asm_4a54d
-
-Function4a545: ; 4a545 (12:6545)
- call Function1bd3
- ld hl, MenuSelection2
- ld b, [hl]
- push bc
-
-asm_4a54d: ; 4a54d (12:654d)
- bit 0, a
- jr nz, .asm_4a557
- bit 1, a
- jr nz, .asm_4a574
- jr .asm_4a57e
-.asm_4a557
- ld hl, MenuSelection2
- ld a, [hl]
- cp $1
- jp z, Function4a6ab
- cp $2
- jp z, Function4a6ab
- cp $3
- jp z, Function4a6ab
- cp $4
- jp z, Function4a6ab
- ld a, $1
- call Function1ff8
-.asm_4a574
- pop bc
- call ClearBGPalettes
- call ClearTileMap
- jp Function49f0a
-.asm_4a57e
- ld hl, MenuSelection2
- ld a, [hl]
- dec a
- add a
- push af
- ld hl, Strings_4a5f6
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 1, 13
- ld b, $4
- ld c, $12
- call ClearBox
- hlcoord 1, 14
- call PlaceString
- pop af
- inc a
- ld hl, Strings_4a5f6
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 1, 16
- call PlaceString
- jp Function4a5b0
-
-Function4a5b0: ; 4a5b0 (12:65b0)
- call Function4a680
- pop bc
- ld hl, MenuSelection2
- ld [hl], b
- ld b, $a
- ld c, $1
- hlcoord 3, 1
- call ClearBox
- jp Function4a545
-; 4a5c5 (12:65c5)
-
-String_4a5c5: ; 4a5c5
- db "じこしょうかい@"
-String_4a5cd: ; 4a5cd
- db "たいせん ", $4a, "はじまるとき@"
-String_4a5da: ; 4a5da
- db "たいせん ", $1d, "かったとき@"
-String_4a5e6: ; 4a5e6
- db "たいせん ", $1d, "まけたとき@"
-String_4a5f2: ; 4a5f2
- db "もどる@"
-; 4a5f6
-
-Strings_4a5f6: ; 4a5f6
- db "めいし や ニュース ", $1d, "のせる@"
- db "あなた%あいさつです@"
- db "モバイル たいせん", $4a, "はじまるとき@"
- db "あいて", $1d, "みえる あいさつです@"
- db "モバイル たいせんで かったとき@"
- db "あいて", $1d, "みえる あいさつです@"
- db "モバイル たいせんで まけたとき@"
- db "あいて", $1d, "みえる あいさつです@"
- db "まえ%がめん ", $1d, "もどります@"
- db "@"
-; 4a680
-
-Function4a680: ; 4a680 (12:6680)
- ld hl, wcfa1
- ld a, $2
- ld [hli], a
- ld a, $3
- ld [hli], a
- ld a, $5
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld [hl], $0
- set 5, [hl]
- inc hl
- xor a
- ld [hli], a
- ld a, $20
- ld [hli], a
- ld a, $1
- add $40
- add $80
- add $2
- ld [hli], a
- ld a, $1
-rept 2
- ld [hli], a
-endr
- xor a
-rept 3
- ld [hli], a
-endr
- ret
-
-Function4a6ab: ; 4a6ab (12:66ab)
- ld a, $2
- call Function1ff8
- call ClearBGPalettes
- ld b, $8
- call GetSGBLayout
- callba Function11c1ab
- pop bc
- call LoadFontsExtra
- jp Function4a4c4
-
-Function4a6c5: ; 4a6c5 (12:66c5)
- ld a, $5
- ld [MusicFade], a
- ld a, e
- ld [MusicFadeIDLo], a
- ld a, d
- ld [MusicFadeIDHi], a
- ld c, 22
- call DelayFrames
- ret
-
-Function4a6d8: ; 4a6d8 (12:66d8)
- push bc
- push hl
-.asm_4a6da
- ld [hli], a
- dec c
- jr nz, .asm_4a6da
- pop hl
- ld bc, $14
- add hl, bc
- pop bc
- dec b
- jr nz, Function4a6d8
- ret
-
-
SpecialBeastsCheck: ; 0x4a6e8
; Check if the player owns all three legendary beasts.
; They must exist in either party or PC, and have the player's OT and ID.
@@ -28290,24 +16706,24 @@
; 4a927
-Function4a927: ; 4a927
+FindItemInPCOrBag: ; 4a927
ld a, [ScriptVar]
ld [CurItem], a
ld hl, PCItems
call CheckItem
- jr c, .asm_4a948
+ jr c, .found
ld a, [ScriptVar]
ld [CurItem], a
ld hl, NumItems
call CheckItem
- jr c, .asm_4a948
+ jr c, .found
xor a
ld [ScriptVar], a
ret
-.asm_4a948
+.found
ld a, 1
ld [ScriptVar], a
ret
@@ -28322,7 +16738,7 @@
xor a
ld [wd018], a
ld [wd019], a
- ld b, $14
+ ld b, SCGB_14
call GetSGBLayout
call SetPalettes
call Function4aa22
@@ -28349,7 +16765,7 @@
jr c, .asm_4a974
.asm_4a990
- call Function2b3c
+ call ReturnToCallingMenu
ld hl, wd002
ld a, -1
ld bc, 3
@@ -28362,7 +16778,7 @@
jr c, .asm_4a9b0
call Function4a9d7
jr c, .asm_4a974
- call Function2b3c
+ call ReturnToCallingMenu
and a
.asm_4a9af
@@ -28442,8 +16858,8 @@
call ClearBGPalettes
Function4aa25: ; 4aa25
- callba Function5004f
- callba Function50405
+ callba LoadPartyMenuGFX
+ callba InitPartyMenuWithCancel
call Function4aad3
Function4aa34: ; 4aa34
@@ -28494,7 +16910,7 @@
push hl
cp -1
jr z, .done
- ld hl, wc314
+ ld hl, wSpriteAnimationStructs
inc a
ld d, a
.inner_loop
@@ -29025,22 +17441,22 @@
Function4adc2: ; 4adc2
ld a, [wd002]
cp $ff
- jr nz, .asm_4ade5
+ jr nz, .skip
ld a, [wd003]
cp $ff
- jr nz, .asm_4addd
+ jr nz, .skip2
ld a, [wd004]
ld [wd002], a
ld a, $ff
ld [wd004], a
- jr .asm_4ade5
+ jr .skip
-.asm_4addd
+.skip2
ld [wd002], a
ld a, $ff
ld [wd003], a
-.asm_4ade5
+.skip
ld a, [wd003]
cp $ff
ret nz
@@ -29067,18 +17483,18 @@
ret
; 4ae12
-Function4ae12: ; 4ae12
- call Function4ae1f
+AskRememberPassword: ; 4ae12
+ call .DoMenu
ld a, $0
- jr c, .asm_4ae1b
+ jr c, .okay
ld a, $1
-.asm_4ae1b
+.okay
ld [ScriptVar], a
ret
; 4ae1f
-Function4ae1f: ; 4ae1f
+.DoMenu: ; 4ae1f
lb bc, 14, 7
push bc
ld hl, YesNoMenuDataHeader
@@ -29097,16 +17513,16 @@
push af
ld c, 15
call DelayFrames
- call Function4ae5e
+ call Buena_ExitMenu
pop af
- jr c, .asm_4ae57
+ jr c, .refused
ld a, [MenuSelection2]
cp $2
- jr z, .asm_4ae57
+ jr z, .refused
and a
ret
-.asm_4ae57
+.refused
ld a, $2
ld [MenuSelection2], a
scf
@@ -29113,7 +17529,7 @@
ret
; 4ae5e
-Function4ae5e: ; 4ae5e
+Buena_ExitMenu: ; 4ae5e
ld a, [hOAMUpdate]
push af
call ExitMenu
@@ -29123,7 +17539,7 @@
call DelayFrame
ld a, $1
ld [hOAMUpdate], a
- call Function321c
+ call ApplyTilemap
pop af
ld [hOAMUpdate], a
ret
@@ -29187,6 +17603,8 @@
push hl
srl a
jr c, .UpperNybble
+
+; .LowerNybble
ld hl, TilesetPalettes
add [hl]
ld l, a
@@ -29290,7 +17708,7 @@
; 4cf45
-Function4cf45: ; 4cf45 (13:4f45)
+SaveMenu_LoadEDTile: ; 4cf45 (13:4f45)
ld a, [hCGB]
and a
jp z, WaitBGMap
@@ -29369,7 +17787,7 @@
ret
-Function4cffe:: ; 4cffe
+CheckSave:: ; 4cffe
ld a, BANK(s1_a008)
call GetSRAMBank
ld a, [s1_a008]
@@ -29434,11 +17852,11 @@
ret
; 4d188
-Function4d188: ; 4d188
+PhoneRing_LoadEDTile: ; 4d188
ld a, [hCGB]
and a
jp z, WaitBGMap
- ld a, [wc2ce]
+ ld a, [wSpriteUpdatesEnabled]
cp $0
jp z, WaitBGMap
@@ -29460,11 +17878,11 @@
ld a, 1 ; BANK(VBGMap2)
ld [rVBK], a
hlcoord 0, 0, AttrMap
- call Function4d1cb
+ call .LoadEDTile
ld a, 0 ; BANK(VBGMap0)
ld [rVBK], a
hlcoord 0, 0
- call Function4d1cb
+ call .LoadEDTile
.wait2
ld a, [rLY]
cp $8f
@@ -29478,7 +17896,7 @@
ret
; 4d1cb
-Function4d1cb: ; 4d1cb
+.LoadEDTile: ; 4d1cb
ld [hSPBuffer], sp
ld sp, hl
ld a, [hBGMapAddress + 1]
@@ -29626,7 +18044,7 @@
_ResetClock: ; 4d3b1
callba Function8000
- ld b, $8
+ ld b, SCGB_08
call GetSGBLayout
call LoadStandardFont
call LoadFontsExtra
@@ -29643,10 +18061,10 @@
ret z
call ClockResetPassword
jr c, .wrongpassword
- ld a, BANK(s0_ac60)
+ ld a, BANK(sRTCStatusFlags)
call GetSRAMBank
ld a, $80
- ld [s0_ac60], a
+ ld [sRTCStatusFlags], a
call CloseSRAM
ld hl, .text_okay
call PrintText
@@ -29865,7 +18283,7 @@
ld c, $2
call .ComponentFromNumber
ld hl, sPlayerData + (PlayerName - wPlayerData)
- ld c, $5
+ ld c, $5 ; PLAYER_NAME_LENGTH_J
call .ComponentFromString
ld hl, sPlayerData + (Money - wPlayerData)
ld c, $3
@@ -29902,7 +18320,7 @@
Function4d54c: ; 4d54c
callba Function8000
- ld b, $8
+ ld b, SCGB_08
call GetSGBLayout
call LoadStandardFont
call LoadFontsExtra
@@ -30030,7 +18448,7 @@
ld [CurSpecies], a
call GetBaseData
pop de
- predef Function5108b
+ predef FrontpicPredef
ret
; 4d81e
@@ -30045,7 +18463,7 @@
ld [TempMonDVs], a
ld a, [wPlayerWrapCount]
ld [TempMonDVs + 1], a
- ld b, $1a
+ ld b, SCGB_1A
call GetSGBLayout
ld a, $e4
call DmgToCgbBGPals
@@ -30390,7 +18808,7 @@
call GetPartyLocation
ld a, [hl]
ld [CurPartyLevel], a
- call Function4db49
+ call SetCaughtData
ld a, [PartyCount]
dec a
ld hl, PartyMon1CaughtLocation
@@ -30418,11 +18836,11 @@
xor a
ld [CurPartyMon], a
ld hl, wContestMon
- ld de, wd018
+ ld de, wd018_Mon
ld bc, BOXMON_STRUCT_LENGTH
call CopyBytes
ld hl, PlayerName
- ld de, wd00d
+ ld de, wd00d_MonOT
ld bc, NAME_LENGTH
call CopyBytes
callab Function51322
@@ -30434,9 +18852,9 @@
jr c, .Box_SkipNickname
ld a, BOXMON
ld [MonType], a
- ld de, wd050
+ ld de, wd050_MonNick
callab InitNickname
- ld hl, wd050
+ ld hl, wd050_MonNick
.Box_SkipNickname
ld a, BANK(sBoxMonNicknames)
@@ -30452,7 +18870,7 @@
ld a, [sBoxMon1Level]
ld [CurPartyLevel], a
call CloseSRAM
- call Function4db83
+ call SetBoxMonCaughtData
ld a, BANK(sBoxMon1CaughtLocation)
call GetSRAMBank
ld hl, sBoxMon1CaughtLocation
@@ -30489,12 +18907,12 @@
; 0x4db49
-Function4db49: ; 4db49
+SetCaughtData: ; 4db49
ld a, [PartyCount]
dec a
ld hl, PartyMon1CaughtLevel
call GetPartyLocation
-Function4db53: ; 4db53
+SetBoxmonOrEggmonCaughtData: ; 4db53
ld a, [TimeOfDay]
inc a
rrca
@@ -30528,27 +18946,27 @@
ret
; 4db83
-Function4db83: ; 4db83
+SetBoxMonCaughtData: ; 4db83
ld a, BANK(sBoxMon1CaughtLevel)
call GetSRAMBank
ld hl, sBoxMon1CaughtLevel
- call Function4db53
+ call SetBoxmonOrEggmonCaughtData
call CloseSRAM
ret
; 4db92
-SetBoxMonCaughtData: ; 4db92
+SetGiftBoxMonCaughtData: ; 4db92
push bc
ld a, BANK(sBoxMon1CaughtLevel)
call GetSRAMBank
ld hl, sBoxMon1CaughtLevel
pop bc
- call SetPkmnCaughtData
+ call SetGiftMonCaughtData
call CloseSRAM
ret
; 4dba3
-SetPartymonCaughtData: ; 4dba3
+SetGiftPartyMonCaughtData: ; 4dba3
ld a, [PartyCount]
dec a
ld hl, PartyMon1CaughtLevel
@@ -30555,7 +18973,7 @@
push bc
call GetPartyLocation
pop bc
-SetPkmnCaughtData: ; 4dbaf
+SetGiftMonCaughtData: ; 4dbaf
xor a
ld [hli], a
ld a, $7e
@@ -30566,7 +18984,7 @@
; 4dbb8
-Function4dbb8: ; 4dbb8 (13:5bb8)
+SetEggMonCaughtData: ; 4dbb8 (13:5bb8)
ld a, [CurPartyMon]
ld hl, PartyMon1CaughtLevel
call GetPartyLocation
@@ -30574,7 +18992,7 @@
push af
ld a, $1
ld [CurPartyLevel], a
- call Function4db53
+ call SetBoxmonOrEggmonCaughtData
pop af
ld [CurPartyLevel], a
ret
@@ -30723,1158 +19141,8 @@
; 4dc7b
-Function4dc7b: ; 4dc7b (13:5c7b)
- ld a, [wLinkMode]
- cp LINK_MOBILE
- jr nz, StatsScreenInit
+INCLUDE "engine/stats_screen.asm"
- ld a, [wBattleMode] ; wd22d (aliases: EnemyMonEnd)
- and a
- jr z, StatsScreenInit
- jr Function4dc8f
-
-StatsScreenInit: ; 4dc8a
- ld hl, StatsScreenMain
- jr StatsScreenInit_gotaddress
-
-Function4dc8f: ; 4dc8f
- ld hl, StatsScreenBattle
- jr StatsScreenInit_gotaddress
-
-StatsScreenInit_gotaddress: ; 4dc94
- ld a, [hMapAnims]
- push af
- xor a
- ld [hMapAnims], a ; disable overworld tile animations
- ld a, [wc2c6] ; whether sprite is to be mirrorred
- push af
- ld a, [wJumptableIndex]
- ld b, a
- ld a, [wcf64]
- ld c, a
-
- push bc
- push hl
- call ClearBGPalettes
- call ClearTileMap
- call UpdateSprites
- callba Functionfb53e
- pop hl
- call _hl_
- call ClearBGPalettes
- call ClearTileMap
- pop bc
-
- ; restore old values
- ld a, b
- ld [wJumptableIndex], a
- ld a, c
- ld [wcf64], a
- pop af
- ld [wc2c6], a
- pop af
- ld [hMapAnims], a
- ret
-; 0x4dcd2
-
-StatsScreenMain: ; 0x4dcd2
- xor a
- ld [wJumptableIndex], a
- ; stupid interns
- ld [wcf64], a
- ld a, [wcf64]
- and $fc
- or $1
- ld [wcf64], a
-.loop ; 4dce3
- ld a, [wJumptableIndex]
- and $7f
- ld hl, StatsScreenPointerTable
- rst JumpTable
- call Function4dd3a ; check for keys?
- ld a, [wJumptableIndex]
- bit 7, a
- jr z, .loop
- ret
-; 0x4dcf7
-
-StatsScreenBattle: ; 4dcf7
- xor a
- ld [wJumptableIndex], a
- ; stupid interns
- ld [wcf64], a
- ld a, [wcf64]
- and $fc
- or $1
- ld [wcf64], a
-.loop
- callba Function100dd2
- ld a, [wJumptableIndex]
- and $7f
- ld hl, StatsScreenPointerTable
- rst JumpTable
- call Function4dd3a
- callba Function100dfd
- jr c, .exit
- ld a, [wJumptableIndex]
- bit 7, a
- jr z, .loop
-
-.exit
- ret
-; 4dd2a
-
-StatsScreenPointerTable: ; 4dd2a
- dw MonStatsInit ; regular pokémon
- dw EggStatsInit ; egg
- dw StatsScreenWaitCry
- dw Function4ddac
- dw Function4ddc6
- dw StatsScreenWaitCry
- dw Function4ddd6
- dw Function4dd6c
-; 4dd3a
-
-
-Function4dd3a: ; 4dd3a (13:5d3a)
- ld hl, wcf64
- bit 6, [hl]
- jr nz, .asm_4dd49
- bit 5, [hl]
- jr nz, .asm_4dd56
- call DelayFrame
- ret
-.asm_4dd49
- callba Functiond00b4
- jr nc, .asm_4dd56
- ld hl, wcf64
- res 6, [hl]
-.asm_4dd56
- ld hl, wcf64
- res 5, [hl]
- callba Function10402d
- ret
-
-Function4dd62: ; 4dd62 (13:5d62)
- ld a, [wJumptableIndex]
- and $80
- or h
- ld [wJumptableIndex], a
- ret
-
-Function4dd6c: ; 4dd6c (13:5d6c)
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-MonStatsInit: ; 4dd72 (13:5d72)
- ld hl, wcf64
- res 6, [hl]
- call ClearBGPalettes
- call ClearTileMap
- callba Function10402d
- call Function4ddf2
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .asm_4dd9b
- call Function4deea
- ld hl, wcf64
- set 4, [hl]
- ld h, $4
- call Function4dd62
- ret
-.asm_4dd9b
- ld h, $1
- call Function4dd62
- ret
-
-EggStatsInit: ; 4dda1
- call EggStatsScreen
- ld a, [wJumptableIndex]
- inc a
- ld [wJumptableIndex], a
- ret
-; 0x4ddac
-
-
-Function4ddac: ; 4ddac (13:5dac)
- call Function4de2c
- jr nc, .asm_4ddb7
- ld h, $0
- call Function4dd62
- ret
-.asm_4ddb7
- bit 0, a
- jr nz, .asm_4ddc0
- and $c3
- jp Function4de54
-.asm_4ddc0
- ld h, $7
- call Function4dd62
- ret
-
-Function4ddc6: ; 4ddc6 (13:5dc6)
- call Function4dfb6
- ld hl, wcf64
- res 4, [hl]
- ld a, [wJumptableIndex]
- inc a
- ld [wJumptableIndex], a
- ret
-
-Function4ddd6: ; 4ddd6 (13:5dd6)
- call Function4de2c
- jr nc, .asm_4dde1
- ld h, $0
- call Function4dd62
- ret
-
-.asm_4dde1
- and $f3
- jp Function4de54
-
-StatsScreenWaitCry: ; 4dde6 (13:5de6)
- call IsSFXPlaying
- ret nc
- ld a, [wJumptableIndex]
- inc a
- ld [wJumptableIndex], a
- ret
-
-Function4ddf2: ; 4ddf2 (13:5df2)
- ld a, [MonType]
- cp BREEDMON
- jr nz, .asm_4de10
- ld a, [wd018]
- ld [CurSpecies], a
- call GetBaseData
- ld hl, wd018
- ld de, TempMon
- ld bc, PARTYMON_STRUCT_LENGTH
- call CopyBytes
- jr .asm_4de2a
-.asm_4de10
- callba CopyPkmnToTempMon
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .asm_4de2a
- ld a, [MonType]
- cp BOXMON
- jr c, .asm_4de2a
- callba Function50890
-.asm_4de2a
- and a
- ret
-
-Function4de2c: ; 4de2c (13:5e2c)
- call GetJoypad
- ld a, [MonType]
- cp BREEDMON
- jr nz, .notbreedmon
- push hl
- push de
- push bc
- callba Functione2f95
- pop bc
- pop de
- pop hl
- ld a, [wcf73]
- and $c0
- jr nz, .set_carry
- ld a, [wcf73]
- jr .clear_flags
-
-.notbreedmon
- ld a, [hJoyPressed]
-.clear_flags
- and a
- ret
-
-.set_carry
- scf
- ret
-
-Function4de54: ; 4de54 (13:5e54)
- push af
- ld a, [wcf64]
- and $3
- ld c, a
- pop af
- bit 1, a
- jp nz, Function4dee4
- bit 5, a
- jr nz, .asm_4dec7
- bit 4, a
- jr nz, .asm_4debd
- bit 0, a
- jr nz, .asm_4deb8
- bit 6, a
- jr nz, .asm_4dea0
- bit 7, a
- jr nz, .asm_4de77
- jr .asm_4dece
-.asm_4de77
- ld a, [MonType]
- cp BOXMON
- jr nc, .asm_4dece
- and a
- ld a, [PartyCount]
- jr z, .asm_4de87
- ld a, [OTPartyCount]
-.asm_4de87
- ld b, a
- ld a, [CurPartyMon]
- inc a
- cp b
- jr z, .asm_4dece
- ld [CurPartyMon], a
- ld b, a
- ld a, [MonType]
- and a
- jr nz, .asm_4dede
- ld a, b
- inc a
- ld [wd0d8], a
- jr .asm_4dede
-.asm_4dea0
- ld a, [CurPartyMon]
- and a
- jr z, .asm_4dece
- dec a
- ld [CurPartyMon], a
- ld b, a
- ld a, [MonType]
- and a
- jr nz, .asm_4dede
- ld a, b
- inc a
- ld [wd0d8], a
- jr .asm_4dede
-.asm_4deb8
- ld a, c
- cp $3
- jr z, Function4dee4
-.asm_4debd
- inc c
- ld a, $3
- cp c
- jr nc, .asm_4decf
- ld c, $1
- jr .asm_4decf
-.asm_4dec7
- dec c
- jr nz, .asm_4decf
- ld c, $3
- jr .asm_4decf
-.asm_4dece
- ret
-.asm_4decf
- ld a, [wcf64]
- and $fc
- or c
- ld [wcf64], a
- ld h, $4
- call Function4dd62
- ret
-.asm_4dede
- ld h, $0
- call Function4dd62
- ret
-
-Function4dee4: ; 4dee4 (13:5ee4)
- ld h, $7
- call Function4dd62
- ret
-
-Function4deea: ; 4deea (13:5eea)
- call Function4df45
- xor a
- ld [hBGMapMode], a
- ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo)
- ld [wd265], a
- ld [CurSpecies], a
- hlcoord 8, 0
- ld [hl], "№"
- inc hl
- ld [hl], "."
- inc hl
- hlcoord 10, 0
- lb bc, PRINTNUM_LEADINGZEROS | 1, 3
- ld de, wd265
- call PrintNum
- hlcoord 14, 0
- call PrintLevel
- ld hl, Unknown_4df77
- call Function4e528
- call Function4e505
- hlcoord 8, 2
- call PlaceString
- hlcoord 18, 0
- call Function4df66
- hlcoord 9, 4
- ld a, "/"
- ld [hli], a
- ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo)
- ld [wd265], a
- call GetPokemonName
- call PlaceString
- call Function4df8f
- call Function4df9b
- call Function4dfa6
- ret
-
-Function4df45: ; 4df45 (13:5f45)
- ld hl, TempMonHP
- ld a, [hli]
- ld b, a
- ld c, [hl]
- ld hl, TempMonMaxHP
- ld a, [hli]
- ld d, a
- ld e, [hl]
- callba DrawPartyMenuHPBar
- ld hl, wcda1
- call SetHPPal
- ld b, $3
- call GetSGBLayout
- call DelayFrame
- ret
-
-Function4df66: ; 4df66 (13:5f66)
- push hl
- callba GetGender
- pop hl
- ret c
- ld a, "♂"
- jr nz, .got_gender
- ld a, "♀"
-.got_gender
- ld [hl], a
- ret
-; 4df77 (13:5f77)
-
-Unknown_4df77: ; 4df77
- dw PartyMonNicknames
- dw OTPartyMonNicknames
- dw sBoxMonNicknames
- dw wd002
-; 4df7f
-
-Function4df7f: ; 4df7f
- hlcoord 7, 0
- ld bc, SCREEN_WIDTH
- ld d, SCREEN_HEIGHT
-.loop
- ld a, $31
- ld [hl], a
- add hl, bc
- dec d
- jr nz, .loop
- ret
-; 4df8f
-
-Function4df8f: ; 4df8f (13:5f8f)
- hlcoord 0, 7
- ld b, SCREEN_WIDTH
- ld a, "_"
-.loop
- ld [hli], a
- dec b
- jr nz, .loop
- ret
-
-Function4df9b: ; 4df9b (13:5f9b)
- hlcoord 12, 6
- ld [hl], "◀"
- hlcoord 19, 6
- ld [hl], "▶"
- ret
-
-Function4dfa6: ; 4dfa6 (13:5fa6)
- ld bc, TempMonDVs
- callba CheckShininess
- ret nc
- hlcoord 19, 0
- ld [hl], "<SHINY>"
- ret
-
-Function4dfb6: ; 4dfb6 (13:5fb6)
- ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo)
- ld [wd265], a
- ld [CurSpecies], a
- xor a
- ld [hBGMapMode], a
- call Function4dfda
- call Function4e002
- call Function4dfed
- ld hl, wcf64
- bit 4, [hl]
- jr nz, .asm_4dfd6
- call SetPalettes
- ret
-
-.asm_4dfd6
- call Function4e226
- ret
-
-Function4dfda: ; 4dfda (13:5fda)
- ld a, [wcf64]
- and $3
- ld c, a
- call Function4e4cd
- hlcoord 0, 8
- lb bc, 10, 20
- call ClearBox
- ret
-
-Function4dfed: ; 4dfed (13:5fed)
- ld a, [wcf64]
- and $3
- ld c, a
- callba Function8c8a
- call DelayFrame
- ld hl, wcf64
- set 5, [hl]
- ret
-
-Function4e002: ; 4e002 (13:6002)
- ld a, [wcf64]
- and $3
- dec a
- ld hl, Jumptable_4e00d
- rst JumpTable
- ret
-
-Jumptable_4e00d: ; 4e00d (13:600d)
- dw Function4e013
- dw Function4e147
- dw Function4e1ae
-
-
-Function4e013: ; 4e013 (13:6013)
- hlcoord 0, 9
- ld b, $0
- predef DrawPlayerHP
- hlcoord 8, 9
- ld [hl], $41
- ld de, String_4e119
- hlcoord 0, 12
- call PlaceString
- ld a, [TempMonPokerusStatus]
- ld b, a
- and $f
- jr nz, .asm_4e055
- ld a, b
- and $f0
- jr z, .asm_4e03d
- hlcoord 8, 8
- ld [hl], $e8
-.asm_4e03d
- ld a, [MonType]
- cp $2
- jr z, .asm_4e060
- hlcoord 6, 13
- push hl
- ld de, TempMonStatus
- predef PlaceStatusString
- pop hl
- jr nz, .asm_4e066
- jr .asm_4e060
-.asm_4e055
- ld de, String_4e142
- hlcoord 1, 13
- call PlaceString
- jr .asm_4e066
-.asm_4e060
- ld de, String_4e127
- call PlaceString
-.asm_4e066
- hlcoord 1, 15
- predef PrintMonTypes
- hlcoord 9, 8
- ld de, $14
- ld b, $a
- ld a, $31
-.asm_4e078
- ld [hl], a
- add hl, de
- dec b
- jr nz, .asm_4e078
- ld de, String_4e12b
- hlcoord 10, 9
- call PlaceString
- hlcoord 17, 14
- call Function4e0d3
- hlcoord 13, 10
- lb bc, 3, 7
- ld de, TempMonExp
- call PrintNum
- call Function4e0e7
- hlcoord 13, 13
- lb bc, 3, 7
- ld de, Buffer1 ; wd1ea (aliases: MagikarpLength)
- call PrintNum
- ld de, String_4e136
- hlcoord 10, 12
- call PlaceString
- ld de, String_4e13f
- hlcoord 14, 14
- call PlaceString
- hlcoord 11, 16
- ld a, [TempMonLevel]
- ld b, a
- ld de, TempMonExp + 2
- predef FillInExpBar
- hlcoord 10, 16
- ld [hl], $40
- hlcoord 19, 16
- ld [hl], $41
- ret
-
-Function4e0d3: ; 4e0d3 (13:60d3)
- ld a, [TempMonLevel]
- push af
- cp MAX_LEVEL
- jr z, .asm_4e0df
- inc a
- ld [TempMonLevel], a
-.asm_4e0df
- call PrintLevel
- pop af
- ld [TempMonLevel], a
- ret
-
-Function4e0e7: ; 4e0e7 (13:60e7)
- ld a, [TempMonLevel]
- cp MAX_LEVEL
- jr z, .asm_4e111
- inc a
- ld d, a
- callba CalcExpAtLevel
-rept 2
- ld hl, TempMonExp + 2
-endr
- ld a, [$ffb6]
- sub [hl]
- dec hl
- ld [wd1ec], a
- ld a, [$ffb5]
- sbc [hl]
- dec hl
- ld [Buffer2], a ; wd1eb (aliases: MovementType)
- ld a, [hQuotient]
- sbc [hl]
- ld [Buffer1], a ; wd1ea (aliases: MagikarpLength)
- ret
-.asm_4e111
- ld hl, Buffer1 ; wd1ea (aliases: MagikarpLength)
- xor a
-rept 2
- ld [hli], a
-endr
- ld [hl], a
- ret
-; 4e119 (13:6119)
-
-String_4e119: ; 4e119
- db "STATUS/"
- next "TYPE/@"
-; 4e127
-
-String_4e127: ; 4e127
- db "OK @"
-; 4e12b
-
-String_4e12b: ; 4e12b
- db "EXP POINTS@"
-; 4e136
-
-String_4e136: ; 4e136
- db "LEVEL UP@"
-; 4e13f
-
-String_4e13f: ; 4e13f
- db "TO@"
-; 4e142
-
-String_4e142: ; 4e142
- db "#RUS@"
-; 4e147
-
-Function4e147: ; 4e147 (13:6147)
- ld de, String_4e1a0
- hlcoord 0, 8
- call PlaceString
- call Function4e189
- hlcoord 8, 8
- call PlaceString
- ld de, String_4e1a9
- hlcoord 0, 10
- call PlaceString
- ld hl, TempMonMoves
- ld de, wListMoves_MoveIndicesBuffer
- ld bc, NUM_MOVES
- call CopyBytes
- hlcoord 8, 10
- ld a, SCREEN_WIDTH * 2
- ld [Buffer1], a
- predef ListMoves
- hlcoord 12, 11
- ld a, $28
- ld [Buffer1], a
- predef Function50c50
- ret
-
-Function4e189: ; 4e189 (13:6189)
- ld de, String_4e1a5
- ld a, [TempMonItem]
- and a
- ret z
- ld b, a
- callba Function28771
- ld a, b
- ld [wd265], a
- call GetItemName
- ret
-; 4e1a0 (13:61a0)
-
-String_4e1a0: ; 4e1a0
- db "ITEM@"
-; 4e1a5
-
-String_4e1a5: ; 4e1a5
- db "---@"
-; 4e1a9
-
-String_4e1a9: ; 4e1a9
- db "MOVE@"
-; 4e1ae
-
-Function4e1ae: ; 4e1ae (13:61ae)
- call Function4e1cc
- hlcoord 10, 8
- ld de, $14
- ld b, $a
- ld a, $31
-.asm_4e1bb
- ld [hl], a
- add hl, de
- dec b
- jr nz, .asm_4e1bb
- hlcoord 11, 8
- ld bc, $6
- predef PrintTempMonStats
- ret
-
-Function4e1cc: ; 4e1cc (13:61cc)
- ld de, IDNoString
- hlcoord 0, 9
- call PlaceString
- ld de, OTString
- hlcoord 0, 12
- call PlaceString
- hlcoord 2, 10
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- ld de, TempMonID
- call PrintNum
- ld hl, Unknown_4e216
- call Function4e528
- call Function4e505
- callba CheckNickErrors
- hlcoord 2, 13
- call PlaceString
- ld a, [TempMonCaughtGender]
- and a
- jr z, .asm_4e215
- cp $7f
- jr z, .asm_4e215
- and $80
- ld a, "♂"
- jr z, .asm_4e211
- ld a, "♀"
-.asm_4e211
- hlcoord 9, 13
- ld [hl], a
-.asm_4e215
- ret
-; 4e216 (13:6216)
-
-Unknown_4e216: ; 4e216
- dw PartyMonOT
- dw OTPartyMonOT
- dw sBoxMonOT
- dw wd00d
-; 4e21e
-
-IDNoString: ; 4e21e
- db $73, "№.@"
-
-OTString: ; 4e222
- db "OT/@"
-; 4e226
-
-
-Function4e226: ; 4e226 (13:6226)
- ld hl, TempMonDVs
- predef GetUnownLetter
- call Function4e2ad
- jr c, .asm_4e238
- and a
- jr z, .asm_4e23f
- jr .asm_4e246
-.asm_4e238
- call Function4e271
- call SetPalettes
- ret
-.asm_4e23f
- call Function4e253
- call SetPalettes
- ret
-.asm_4e246
- call SetPalettes
- call Function4e253
- ld a, [CurPartySpecies]
- call PlayCry2
- ret
-
-Function4e253: ; 4e253 (13:6253)
- ld hl, wcf64
- set 5, [hl]
- ld a, [CurPartySpecies]
- cp UNOWN
- jr z, .asm_4e266
- hlcoord 0, 0
- call PrepMonFrontpic
- ret
-.asm_4e266
- xor a
- ld [wc2c6], a
- hlcoord 0, 0
- call _PrepMonFrontpic
- ret
-
-Function4e271: ; 4e271 (13:6271)
- ld a, [CurPartySpecies]
- cp UNOWN
- jr z, .asm_4e281
- ld a, $1
- ld [wc2c6], a
- call Function4e289
- ret
-.asm_4e281
- xor a
- ld [wc2c6], a
- call Function4e289
- ret
-
-Function4e289: ; 4e289 (13:6289)
- ld a, [CurPartySpecies]
- call IsAPokemon
- ret c
- call Function4e307
- ld de, VTiles2 tile $00
- predef Function5108b
- hlcoord 0, 0
- ld d, $0
- ld e, $2
- predef LoadMonAnimation
- ld hl, wcf64
- set 6, [hl]
- ret
-
-Function4e2ad: ; 4e2ad (13:62ad)
- ld a, [MonType]
- ld hl, Jumptable_4e2b5
- rst JumpTable
- ret
-
-Jumptable_4e2b5: ; 4e2b5 (13:62b5)
- dw Function4e2bf
- dw Function4e2cf
- dw Function4e2d1
- dw Function4e2ed
- dw Function4e301
-
-
-Function4e2bf: ; 4e2bf (13:62bf)
- ld a, [CurPartyMon]
- ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld b, h
- ld c, l
- jr Function4e2f2
-
-Function4e2cf: ; 4e2cf (13:62cf)
- xor a
- ret
-
-Function4e2d1: ; 4e2d1 (13:62d1)
- ld hl, sBoxMons
- ld bc, $30
- ld a, [CurPartyMon]
- call AddNTimes
- ld b, h
- ld c, l
- ld a, $1
- call GetSRAMBank
- call Function4e2f2
- push af
- call CloseSRAM
- pop af
- ret
-
-Function4e2ed: ; 4e2ed (13:62ed)
- ld bc, TempMonSpecies ; wd10e (aliases: TempMon)
- jr Function4e2f2
-
-Function4e2f2: ; 4e2f2 (13:62f2)
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .asm_4e2fe
- call CheckFaintedFrzSlp
- jr c, Function4e305
-.asm_4e2fe
- xor a
- scf
- ret
-
-Function4e301: ; 4e301 (13:6301)
- ld a, $1
- and a
- ret
-Function4e305: ; 4e305 (13:6305)
- xor a
- ret
-
-Function4e307: ; 4e307 (13:6307)
- nop
- push hl
- push de
- push bc
- push af
- call DelayFrame
- ld a, [rVBK]
- push af
- ld a, $1
- ld [rVBK], a
- ld de, TextBoxSpaceGFX
- lb bc, BANK(TextBoxSpaceGFX), 1
- ld hl, VTiles2 tile $7f
- call Get2bpp
- pop af
- ld [rVBK], a
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 4e32a (13:632a)
-
-Unknown_4e32a: ; 4e32a
-; A blank tile?
- ds 16
-; 4e33a
-
-EggStatsScreen: ; 4e33a
- xor a
- ld [hBGMapMode], a
- ld hl, wcda1
- call SetHPPal
- ld b, $3
- call GetSGBLayout
- call Function4df8f
- ld de, EggString
- hlcoord 8, 1
- call PlaceString
- ld de, IDNoString
- hlcoord 8, 3
- call PlaceString
- ld de, OTString
- hlcoord 8, 5
- call PlaceString
- ld de, FiveQMarkString
- hlcoord 11, 3
- call PlaceString
- ld de, FiveQMarkString
- hlcoord 11, 5
- call PlaceString
- ld a, [TempMonHappiness] ; egg status
- ld de, EggSoonString
- cp $6
- jr c, .picked
- ld de, EggCloseString
- cp $b
- jr c, .picked
- ld de, EggMoreTimeString
- cp $29
- jr c, .picked
- ld de, EggALotMoreTimeString
-.picked
- hlcoord 1, 9
- call PlaceString
- ld hl, wcf64
- set 5, [hl]
- call SetPalettes ; pals
- call DelayFrame
- hlcoord 0, 0
- call PrepMonFrontpic
- callba Function10402d
- call Function4e497
-
- ld a, [TempMonHappiness]
- cp 6
- ret nc
- ld de, SFX_2_BOOPS
- call PlaySFX
- ret
-; 0x4e3c0
-
-EggString: ; 4e3c0
- db "EGG@"
-
-FiveQMarkString: ; 4e3c4
- db "?????@"
-
-EggSoonString: ; 0x4e3ca
- db "It's making sounds"
- next "inside. It's going"
- next "to hatch soon!@"
-
-EggCloseString: ; 0x4e3fd
- db "It moves around"
- next "inside sometimes."
- next "It must be close"
- next "to hatching.@"
-
-EggMoreTimeString: ; 0x4e43d
- db "Wonder what's"
- next "inside? It needs"
- next "more time, though.@"
-
-EggALotMoreTimeString: ; 0x4e46e
- db "This EGG needs a"
- next "lot more time to"
- next "hatch.@"
-; 0x4e497
-
-
-Function4e497: ; 4e497 (13:6497)
- call Function4e2ad
- ret nc
- ld a, [TempMonHappiness]
- ld e, $7
- cp $6
- jr c, .asm_4e4ab
- ld e, $8
- cp $b
- jr c, .asm_4e4ab
- ret
-.asm_4e4ab
- push de
- ld a, $1
- ld [wc2c6], a
- call Function4e307
- ld de, VTiles2 tile $00
- predef Function5108b
- pop de
- hlcoord 0, 0
- ld d, $0
- predef LoadMonAnimation
- ld hl, wcf64
- set 6, [hl]
- ret
-
-Function4e4cd: ; 4e4cd (13:64cd)
- hlcoord 13, 5
- ld a, $36
- call Function4e4f7
- hlcoord 15, 5
- ld a, $36
- call Function4e4f7
- hlcoord 17, 5
- ld a, $36
- call Function4e4f7
- ld a, c
- cp $2
- ld a, $3a
- hlcoord 13, 5
- jr c, Function4e4f7
- hlcoord 15, 5
- jr z, Function4e4f7
- hlcoord 17, 5
-
-Function4e4f7: ; 4e4f7 (13:64f7)
- push bc
- ld [hli], a
- inc a
- ld [hld], a
- ld bc, $14
- add hl, bc
- inc a
- ld [hli], a
- inc a
- ld [hl], a
- pop bc
- ret
-
-Function4e505: ; 4e505 (13:6505)
- ld de, StringBuffer1
- ld bc, $b
- jr .asm_4e50d
-.asm_4e50d
- ld a, [MonType]
- cp BOXMON
- jr nz, .asm_4e522
- ld a, BANK(sBoxMonNicknames)
- call GetSRAMBank
- push de
- call CopyBytes
- pop de
- call CloseSRAM
- ret
-.asm_4e522
- push de
- call CopyBytes
- pop de
- ret
-
-Function4e528: ; 4e528 (13:6528)
- ld a, [MonType]
- add a
- ld c, a
- ld b, 0
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [MonType]
- cp $3
- ret z
- ld a, [CurPartyMon]
- jp SkipNames
-
-
-CheckFaintedFrzSlp: ; 4e53f
- ld hl, MON_HP
- add hl, bc
- ld a, [hli]
- or [hl]
- jr z, .fainted_frz_slp
- ld hl, MON_STATUS
- add hl, bc
- ld a, [hl]
- and (1 << FRZ) | SLP
- jr nz, .fainted_frz_slp
- and a
- ret
-
-.fainted_frz_slp
- scf
- ret
-; 4e554
-
-
CatchTutorial:: ; 4e554
ld a, [BattleType]
dec a
@@ -32195,7 +19463,7 @@
Function5088b: ; 5088b
- ld bc, wd018
+ ld bc, wd018_Mon
jr Function50893
; 50890
@@ -33161,7 +20429,7 @@
ld [Buffer2], a ; wd1eb (aliases: MovementType)
cp b
jr z, .skip
- call .SwapPartymonViaSRAM
+ call .SwapMonAndMail
ld a, [wd1ec]
call .ClearSprite
ld a, [Buffer2] ; wd1eb (aliases: MovementType)
@@ -33192,7 +20460,7 @@
call WaitPlaySFX
ret
-.SwapPartymonViaSRAM: ; 50f62 (14:4f62)
+.SwapMonAndMail: ; 50f62 (14:4f62)
push hl
push de
push bc
@@ -33261,27 +20529,27 @@
pop de
ld hl, wd002
call .CopyName
- ld hl, sPartyScratch1
+ ld hl, sPartyMail
ld a, [Buffer2] ; wd1eb (aliases: MovementType)
- ld bc, SCRATCHMON_STRUCT_LENGTH
+ ld bc, MAIL_STRUCT_LENGTH
call AddNTimes
push hl
ld de, wd002
- ld bc, SCRATCHMON_STRUCT_LENGTH
- ld a, BANK(sPartyScratch1)
+ ld bc, MAIL_STRUCT_LENGTH
+ ld a, BANK(sPartyMail)
call GetSRAMBank
call CopyBytes
- ld hl, sPartyScratch1
+ ld hl, sPartyMail
ld a, [Buffer3]
- ld bc, SCRATCHMON_STRUCT_LENGTH
+ ld bc, MAIL_STRUCT_LENGTH
call AddNTimes
pop de
push hl
- ld bc, SCRATCHMON_STRUCT_LENGTH
+ ld bc, MAIL_STRUCT_LENGTH
call CopyBytes
pop de
ld hl, wd002
- ld bc, SCRATCHMON_STRUCT_LENGTH
+ ld bc, MAIL_STRUCT_LENGTH
call CopyBytes
call CloseSRAM
pop bc
@@ -33362,7 +20630,7 @@
ret
; 5108b
-Function5108b: ; 5108b
+FrontpicPredef: ; 5108b
ld a, [CurPartySpecies]
ld [CurSpecies], a
call IsAPokemon
@@ -33446,7 +20714,7 @@
ld b, a
call Get2bpp
pop hl
- ld de, 7 * 7 * $10
+ ld de, 7 * 7 tiles
add hl, de
push hl
ld a, $1
@@ -33454,17 +20722,17 @@
call GetFarWRAMByte
pop hl
and $f
- ld de, w6_d000 + $800 + 5 * 5 * $10
+ ld de, w6_d800 + 5 * 5 tiles
ld c, 5 * 5
cp 5
- jr z, .asm_5113b
- ld de, w6_d000 + $800 + 6 * 6 * $10
+ jr z, .got_dims
+ ld de, w6_d800 + 6 * 6 tiles
ld c, 6 * 6
cp 6
- jr z, .asm_5113b
- ld de, w6_d000 + $800 + 7 * 7 * $10
+ jr z, .got_dims
+ ld de, w6_d800 + 7 * 7 tiles
ld c, 7 * 7
-.asm_5113b
+.got_dims
push hl
push bc
@@ -33561,10 +20829,10 @@
; This is a thing for some reason.
push hl
push bc
- sub PICS_1 - $36
+ sub PICS_1 - PICS_FIX
ld c, a
ld b, 0
- ld hl, Unknown_511d4
+ ld hl, .PicsBanks
add hl, bc
ld a, [hl]
pop bc
@@ -33572,7 +20840,7 @@
ret
; 511d4
-Unknown_511d4: ; 511d4
+.PicsBanks: ; 511d4
db PICS_1
db PICS_2
db PICS_3
@@ -33698,28 +20966,28 @@
jr z, .asm_512a8
ld a, c
cp 7 * 7
- ld de, 7 * 7 * $10
- jr z, .asm_51296
+ ld de, 7 * 7 tiles
+ jr z, .got_dims
cp 6 * 6
- ld de, 6 * 6 * $10
- jr z, .asm_51296
- ld de, 5 * 5 * $10
+ ld de, 6 * 6 tiles
+ jr z, .got_dims
+ ld de, 5 * 5 tiles
-.asm_51296
+.got_dims
ld a, [hl]
ld b, $0
ld c, $8
-.asm_5129b
+.loop
rra
rl b
dec c
- jr nz, .asm_5129b
+ jr nz, .loop
ld a, b
ld [hli], a
dec de
ld a, e
or d
- jr nz, .asm_51296
+ jr nz, .got_dims
.asm_512a8
pop bc
@@ -33833,13 +21101,13 @@
ld [wd265], a
ld hl, sBoxMons
ld bc, BOXMON_STRUCT_LENGTH
- ld de, wd018
+ ld de, wd018_Mon
call Function513e0
- ld hl, wd01a
+ ld hl, wd018_MonMoves
ld de, TempMonMoves
ld bc, NUM_MOVES
call CopyBytes
- ld hl, wd02f
+ ld hl, wd018_MonPP
ld de, TempMonPP
ld bc, NUM_MOVES
call CopyBytes
@@ -33871,7 +21139,7 @@
ld [wd265], a
ld hl, PartyMons
ld bc, PARTYMON_STRUCT_LENGTH
- ld de, wd018
+ ld de, wd018_Mon
call Function513e0
ret
; 513cb
@@ -33986,7 +21254,7 @@
DoPlayerMovement:: ; 80000
call GetMovementInput
- ld a, $3e ; standing
+ ld a, movement_step_sleep_1
ld [MovementAnimation], a
xor a
ld [wd041], a
@@ -34032,7 +21300,7 @@
cp PLAYER_BIKE
jr z, .Normal
cp PLAYER_SLIP
- jr z, .Board
+ jr z, .Ice
.Normal
call CheckForcedMovementInput
@@ -34060,7 +21328,7 @@
ret c
jr .NotMoving
-.Board
+.Ice
call CheckForcedMovementInput
call GetMovementAction
call CheckTileMovement
@@ -34088,7 +21356,7 @@
jr z, .Standing
; Walking into an edge warp won't bump.
- ld a, [wd041]
+ ld a, [EngineBuffer4]
and a
jr nz, .CantMove
call PlayBump
@@ -34108,7 +21376,7 @@
; Tiles such as waterfalls and warps move the player
; in a given direction, overriding input.
- ld a, [PlayerStandingTile]
+ ld a, [PlayerNextTile]
ld c, a
call CheckWhirlpoolTile
jr c, .asm_800c4
@@ -34261,21 +21529,21 @@
jr z, TrySurfStep
call CheckLandPermissions
- jr c, .asm_801be
+ jr c, .bump
call IsNPCInFront
and a
- jr z, .asm_801be
+ jr z, .bump
cp 2
- jr z, .asm_801be
+ jr z, .bump
- ld a, [PlayerStandingTile]
+ ld a, [PlayerNextTile]
call CheckIceTile
jr nc, .ice
; Downhill riding is slower when not moving down.
call CheckRiding
- jr nz, .asm_801ae
+ jr nz, .walk
ld hl, BikeFlags
bit 2, [hl] ; downhill
@@ -34296,7 +21564,7 @@
scf
ret
-.asm_801ae
+.walk
ld a, STEP_WALK
call DoStep
scf
@@ -34312,7 +21580,7 @@
xor a
ret
-.asm_801be
+.bump
xor a
ret
; 801c0
@@ -34356,7 +21624,7 @@
TryJumpLedge: ; 801f3
- ld a, [PlayerStandingTile]
+ ld a, [PlayerNextTile]
ld e, a
and $f0
cp $a0 ; ledge
@@ -34408,15 +21676,15 @@
ld d, 0
ld hl, .EdgeWarps
add hl, de
- ld a, [PlayerStandingTile]
+ ld a, [PlayerNextTile]
cp [hl]
- jr nz, .asm_80259
+ jr nz, .nope
ld a, 1
ld [wd041], a
ld a, [WalkingDirection]
cp STANDING
- jr z, .asm_80259
+ jr z, .nope
ld e, a
ld a, [PlayerDirection]
@@ -34424,9 +21692,9 @@
rrca
and 3
cp e
- jr nz, .asm_80259
- call WarpCheck ; CheckFallPit?
- jr nc, .asm_80259
+ jr nz, .nope
+ call WarpCheck
+ jr nc, .nope
call StandInPlace
scf
@@ -34433,7 +21701,7 @@
ld a, 1
ret
-.asm_80259
+.nope
xor a
ret
@@ -34481,21 +21749,45 @@
dw .WalkInPlace
.Slow
- db $08, $09, $0a, $0b
+ slow_step_down
+ slow_step_up
+ slow_step_left
+ slow_step_right
.Walk
- db $0c, $0d, $0e, $0f
+ step_down
+ step_up
+ step_left
+ step_right
.Bike
- db $10, $11, $12, $13
+ big_step_down
+ big_step_up
+ big_step_left
+ big_step_right
.Ledge
- db $30, $31, $32, $33
+ jump_step_down
+ jump_step_up
+ jump_step_left
+ jump_step_right
.Ice
- db $1c, $1d, $1e, $1f
+ fast_slide_step_down
+ fast_slide_step_up
+ fast_slide_step_left
+ fast_slide_step_right
.BackwardsLedge
- db $31, $30, $33, $32
+ jump_step_up
+ jump_step_down
+ jump_step_right
+ jump_step_left
.Turn
- db $04, $05, $06, $07
+ half_step_down
+ half_step_up
+ half_step_left
+ half_step_right
.WalkInPlace
- db $80, $81, $82, $83
+ db $80 + movement_turn_head_down
+ db $80 + movement_turn_head_up
+ db $80 + movement_turn_head_left
+ db $80 + movement_turn_head_right
; 802b3
@@ -34502,7 +21794,7 @@
StandInPlace: ; 802b3
ld a, 0
ld [wd04e], a
- ld a, $3e ; standing
+ ld a, movement_step_sleep_1
ld [MovementAnimation], a
xor a
ret
@@ -34512,7 +21804,7 @@
WalkInPlace: ; 802bf
ld a, 0
ld [wd04e], a
- ld a, $50 ; walking
+ ld a, movement_step_bump
ld [MovementAnimation], a
xor a
ret
@@ -34522,7 +21814,7 @@
CheckForcedMovementInput: ; 802cb
; When sliding on ice, input is forced to remain in the same direction.
- call Function80404
+ call CheckStandingOnIce
ret nc
ld a, [wd04e]
@@ -34535,7 +21827,7 @@
ld hl, .data_802e8
add hl, de
ld a, [CurInput]
- and A_BUTTON | B_BUTTON | SELECT | START
+ and BUTTONS
or [hl]
ld [CurInput], a
ret
@@ -34592,7 +21884,7 @@
; tile collision pointer
.table1
db STANDING, FACE_CURRENT, 0, 0
- dw PlayerStandingTile
+ dw PlayerNextTile
.table2
db RIGHT, FACE_RIGHT, 1, 0
dw TileRight
@@ -34606,33 +21898,39 @@
IsNPCInFront: ; 80341
-
+; Returns 0 if there is an NPC in front that you can't move
+; Returns 1 if there is no NPC in front
+; Returns 2 if there is a movable NPC in front
ld a, 0
ld [hMapObjectIndexBuffer], a
- ld a, [PlayerMapX]
+; Load the next X coordinate into d
+ ld a, [PlayerNextMapX]
ld d, a
ld a, [WalkingX]
add d
ld d, a
- ld a, [PlayerMapY]
+; Load the next Y coordinate into e
+ ld a, [PlayerNextMapY]
ld e, a
ld a, [WalkingY]
add e
ld e, a
+; Find an object struct with coordinates equal to d,e
ld bc, ObjectStructs ; redundant
- callba Function7041
- jr nc, .asm_80369
+ callba IsNPCAtCoord
+ jr nc, .nope
call Function8036f
- jr c, .asm_8036c
+ jr c, .no_bump
+; .bump
xor a
ret
-.asm_80369
+.nope
ld a, 1
ret
-.asm_8036c
+.no_bump
ld a, 2
ret
; 8036f
@@ -34641,27 +21939,27 @@
Function8036f: ; 8036f
ld hl, BikeFlags
- bit 0, [hl]
- jr z, .asm_8039c
+ bit 0, [hl] ; using strength
+ jr z, .nope
- ld hl, $7
+ ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld a, [hl]
- cp $ff
- jr nz, .asm_8039c
+ cp STANDING
+ jr nz, .nope
- ld hl, $6
+ ld hl, OBJECT_PALETTE
add hl, bc
bit 6, [hl]
- jr z, .asm_8039c
+ jr z, .nope
- ld hl, $5
+ ld hl, OBJECT_FLAGS2
add hl, bc
set 2, [hl]
ld a, [WalkingDirection]
ld d, a
- ld hl, $20
+ ld hl, OBJECT_RANGE
add hl, bc
ld a, [hl]
and $fc
@@ -34671,7 +21969,7 @@
scf
ret
-.asm_8039c
+.nope
xor a
ret
; 8039e
@@ -34792,24 +22090,24 @@
; 80404
-Function80404:: ; 80404
+CheckStandingOnIce:: ; 80404
ld a, [wd04e]
cp 0
- jr z, .asm_80420
+ jr z, .nope
cp $f0
- jr z, .asm_80420
- ld a, [PlayerStandingTile]
+ jr z, .nope
+ ld a, [PlayerNextTile]
call CheckIceTile
- jr nc, .asm_8041e
+ jr nc, .yep
ld a, [PlayerState]
cp PLAYER_SLIP
- jr nz, .asm_80420
+ jr nz, .nope
-.asm_8041e
+.yep
scf
ret
-.asm_80420
+.nope
and a
ret
; 80422
@@ -34817,9 +22115,10 @@
Function80422:: ; 80422
ld hl, wc2de
- ld a, $3e ; standing
+ ld a, movement_step_sleep_1
cp [hl]
ret z
+
ld [hl], a
ld a, 0
ld [wd04e], a
@@ -34828,3902 +22127,24 @@
-EngineFlagAction:: ; 80430
-; Do action b on engine flag de
-;
-; b = 0: reset flag
-; = 1: set flag
-; > 1: check flag, result in c
-;
-; Setting/resetting does not return a result.
-
-
-; 16-bit flag ids are considered invalid, but it's nice
-; to know that the infrastructure is there.
-
- ld a, d
- cp 0
- jr z, .ceiling
- jr c, .read ; cp 0 can't set carry!
- jr .invalid
-
-; There are only $a2 engine flags, so
-; anything beyond that is invalid too.
-
-.ceiling
- ld a, e
- cp NUM_ENGINE_FLAGS
- jr c, .read
-
-; Invalid flags are treated as flag 00.
-
-.invalid
- xor a
- ld e, a
- ld d, a
-
-; Get this flag's location.
-
-.read
- ld hl, EngineFlags
-; location
-rept 2
- add hl, de
-endr
-; bit
- add hl, de
-
-; location
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
-; bit
- ld c, [hl]
-
-; What are we doing with this flag?
-
- ld a, b
- cp 1
- jr c, .reset ; b = 0
- jr z, .set ; b = 1
-
-; Return the given flag in c.
-.check
- ld a, [de]
- and c
- ld c, a
- ret
-
-; Set the given flag.
-.set
- ld a, [de]
- or c
- ld [de], a
- ret
-
-; Reset the given flag.
-.reset
- ld a, c
- cpl ; AND all bits except the one in question
- ld c, a
- ld a, [de]
- and c
- ld [de], a
- ret
-; 80462
-
-
-EngineFlags: ; 80462
INCLUDE "engine/engine_flags.asm"
; 80648
+INCLUDE "engine/variables.asm"
-
-_GetVarAction:: ; 80648 (20:4648)
- ld a, c
- cp NUM_VARS
- jr c, .valid
- xor a
-.valid
- ld c, a
- ld b, 0
- ld hl, .VarActionTable
-rept 3
- add hl, bc
-endr
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
- ld b, [hl]
- ld a, b
- and RETVAR_EXECUTE
- jr nz, .call
- ld a, b
- and RETVAR_ADDR_DE
- ret nz
- ld a, [de]
- jr .loadstringbuffer2
-
-.call
- call _de_
- ret
-
-.loadstringbuffer2: ; 8066c (20:466c)
- ld de, StringBuffer2
- ld [de], a
- ret
-; 80671 (20:4671)
-
-.VarActionTable: ; 80671
-; $00: copy [de] to StringBuffer2
-; $40: return address in de
-; $80: call function
- dwb StringBuffer2, RETVAR_STRBUF2
- dwb PartyCount, RETVAR_STRBUF2
- dwb .BattleResult, RETVAR_EXECUTE
- dwb BattleType, RETVAR_ADDR_DE
- dwb TimeOfDay, RETVAR_STRBUF2
- dwb .CountCaughtMons, RETVAR_EXECUTE
- dwb .CountSeenMons, RETVAR_EXECUTE
- dwb .CountBadges, RETVAR_EXECUTE
- dwb PlayerState, RETVAR_ADDR_DE
- dwb .PlayerFacing, RETVAR_EXECUTE
- dwb hHours, RETVAR_STRBUF2
- dwb .DayOfWeek, RETVAR_EXECUTE
- dwb MapGroup, RETVAR_STRBUF2
- dwb MapNumber, RETVAR_STRBUF2
- dwb .UnownCaught, RETVAR_EXECUTE
- dwb wPermission, RETVAR_STRBUF2
- dwb .BoxFreeSpace, RETVAR_EXECUTE
- dwb wBugContestMinsRemaining, RETVAR_STRBUF2
- dwb XCoord, RETVAR_STRBUF2
- dwb YCoord, RETVAR_STRBUF2
- dwb wSpecialPhoneCallID, RETVAR_STRBUF2
- dwb wcf64, RETVAR_STRBUF2
- dwb wKurtApricornQuantity, RETVAR_STRBUF2
- dwb wCurrentCaller, RETVAR_ADDR_DE
- dwb wBlueCardBalance, RETVAR_ADDR_DE
- dwb wBuenasPassword, RETVAR_ADDR_DE
- dwb wdc58, RETVAR_STRBUF2
- dwb NULL, RETVAR_STRBUF2
-; 806c5
-
-.CountCaughtMons: ; 806c5
-; Caught mons.
- ld hl, PokedexCaught
- ld b, EndPokedexCaught - PokedexCaught
- call CountSetBits
- ld a, [wd265]
- jp .loadstringbuffer2
-; 806d3
-
-.CountSeenMons: ; 806d3
-; Seen mons.
- ld hl, PokedexSeen
- ld b, EndPokedexSeen - PokedexSeen
- call CountSetBits
- ld a, [wd265]
- jp .loadstringbuffer2
-; 806e1
-
-.CountBadges: ; 806e1
-; Number of owned badges.
- ld hl, Badges
- ld b, 2
- call CountSetBits
- ld a, [wd265]
- jp .loadstringbuffer2
-; 806ef
-
-.PlayerFacing: ; 806ef
-; The direction the player is facing.
- ld a, [PlayerDirection]
- and $c
- rrca
- rrca
- jp .loadstringbuffer2
-; 806f9
-
-.DayOfWeek: ; 806f9
-; The day of the week.
- call GetWeekday
- jp .loadstringbuffer2
-; 806ff
-
-.UnownCaught: ; 806ff
-; Number of unique Unown caught.
- call .count
- ld a, b
- jp .loadstringbuffer2
-
-.count
- ld hl, UnownDex
- ld b, 0
-.loop
- ld a, [hli]
- and a
- ret z
- inc b
- ld a, b
- cp 26
- jr c, .loop
- ret
-; 80715
-
-.BoxFreeSpace: ; 80715
-; Remaining slots in the current box.
- ld a, BANK(sBoxCount)
- call GetSRAMBank
- ld hl, sBoxCount
- ld a, MONS_PER_BOX
- sub [hl]
- ld b, a
- call CloseSRAM
- ld a, b
- jp .loadstringbuffer2
-; 80728
-
-.BattleResult: ; 80728
- ld a, [wBattleResult]
- and $3f
- jp .loadstringbuffer2
-; 80730
-
-
BattleText::
INCLUDE "text/battle.asm"
+INCLUDE "engine/debug.asm"
-ColorTest: ; 818ac
-; A debug menu to test monster and trainer palettes at runtime.
-
- ld a, [hCGB]
- and a
- jr nz, .asm_818b5
- ld a, [hSGB]
- and a
- ret z
-
-.asm_818b5
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- call DisableLCD
- call Function81948
- call Function8197c
- call Function819a7
- call Function818f4
- call EnableLCD
- ld de, MUSIC_NONE
- call PlayMusic
- xor a
- ld [wJumptableIndex], a
- ld [wcf66], a
- ld [wd003], a
-.asm_818de
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_818f0
- call Function81a74
- call Function81f5e
- call DelayFrame
- jr .asm_818de
-
-.asm_818f0
- pop af
- ld [hInMenu], a
- ret
-; 818f4
-
-Function818f4: ; 818f4
- ld a, [wd002]
- and a
- jr nz, Function81911
- ld hl, PokemonPalettes
-
-Function818fd: ; 818fd
- ld de, OverworldMap
- ld c, NUM_POKEMON + 1
-.asm_81902
- push bc
- push hl
- call Function81928
- pop hl
- ld bc, 8
- add hl, bc
- pop bc
- dec c
- jr nz, .asm_81902
- ret
-
-Function81911: ; 81911
- ld hl, TrainerPalettes
- ld de, OverworldMap
- ld c, NUM_TRAINER_CLASSES
-.asm_81919
- push bc
- push hl
- call Function81928
- pop hl
- ld bc, 4
- add hl, bc
- pop bc
- dec c
- jr nz, .asm_81919
- ret
-; 81928
-
-Function81928: ; 81928
- ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes)
- call GetFarByte
- ld [de], a
- inc de
- inc hl
- ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes)
- call GetFarByte
- ld [de], a
- inc de
- inc hl
- ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes)
- call GetFarByte
- ld [de], a
- inc de
- inc hl
- ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes)
- call GetFarByte
- ld [de], a
- inc de
- ret
-; 81948
-
-Function81948: ; 81948
- ld a, $1
- ld [rVBK], a
- ld hl, VTiles0
- ld bc, sScratch - VTiles0
- xor a
- call ByteFill
- ld a, $0
- ld [rVBK], a
- ld hl, VTiles0
- ld bc, sScratch - VTiles0
- xor a
- call ByteFill
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- xor a
- call ByteFill
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- xor a
- call ByteFill
- call ClearSprites
- ret
-; 8197c
-
-Function8197c: ; 8197c
- ld hl, DebugColorTestGFX + $10
- ld de, VTiles2 tile $6a
- ld bc, $160
- call CopyBytes
- ld hl, DebugColorTestGFX
- ld de, VTiles0
- ld bc, $10
- call CopyBytes
- call LoadStandardFont
- ld hl, VTiles1
- lb bc, 8, 0
-.asm_8199d
- ld a, [hl]
- xor $ff
- ld [hli], a
- dec bc
- ld a, c
- or b
- jr nz, .asm_8199d
- ret
-; 819a7
-
-Function819a7: ; 819a7
- ld a, [hCGB]
- and a
- ret z
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_819f4
- ld de, BGPals
- ld bc, $80
- call CopyBytes
- ld a, $80
- ld [rBGPI], a
- ld hl, Palette_819f4
- ld c, $40
- xor a
-.asm_819c8
- ld [rBGPD], a
- dec c
- jr nz, .asm_819c8
- ld a, $80
- ld [rOBPI], a
- ld hl, Palette_81a34
- ld c, $40
-.asm_819d6
- ld a, [hli]
- ld [rOBPD], a
- dec c
- jr nz, .asm_819d6
- ld a, $94
- ld [wc608], a
- ld a, $52
- ld [wc608 + 1], a
- ld a, $4a
- ld [wc608 + 2], a
- ld a, $29
- ld [wc608 + 3], a
- pop af
- ld [rSVBK], a
- ret
-; 819f4
-
-Palette_819f4: ; 819f4
- ; white
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- ; red
- RGB 31, 00, 00
- RGB 31, 00, 00
- RGB 31, 00, 00
- RGB 00, 00, 00
-
- ; green
- RGB 00, 31, 00
- RGB 00, 31, 00
- RGB 00, 31, 00
- RGB 00, 00, 00
-
- ; blue
- RGB 00, 00, 31
- RGB 00, 00, 31
- RGB 00, 00, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
-Palette_81a34: ; 81a34
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- ; red
- RGB 31, 31, 31
- RGB 31, 00, 00
- RGB 31, 00, 00
- RGB 00, 00, 00
-
- ; green
- RGB 31, 31, 31
- RGB 00, 31, 00
- RGB 00, 31, 00
- RGB 00, 00, 00
-
- ; blue
- RGB 31, 31, 31
- RGB 00, 00, 31
- RGB 00, 00, 31
- RGB 00, 00, 00
-; 81a74
-
-Function81a74: ; 81a74
- call JoyTextDelay
- ld a, [wJumptableIndex]
- cp $4
- jr nc, .asm_81a8b
- ld hl, hJoyLast
- ld a, [hl]
- and SELECT
- jr nz, .asm_81a9a
- ld a, [hl]
- and START
- jr nz, .asm_81aab
-
-.asm_81a8b
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, Jumptable_81acf
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-.asm_81a9a
- call Function81eca
- call Function81ac3
- ld e, a
- ld a, [wcf66]
- inc a
- cp e
- jr c, .asm_81aba
- xor a
- jr .asm_81aba
-
-.asm_81aab
- call Function81eca
- ld a, [wcf66]
- dec a
- cp $ff
- jr nz, .asm_81aba
- call Function81ac3
- dec a
-
-.asm_81aba
- ld [wcf66], a
- ld a, $0
- ld [wJumptableIndex], a
- ret
-; 81ac3
-
-Function81ac3: ; 81ac3
-; Looping back around the pic set.
- ld a, [wd002]
- and a
- jr nz, .asm_81acc
- ld a, NUM_POKEMON ; CELEBI
- ret
-
-.asm_81acc
- ld a, NUM_TRAINER_CLASSES - 1 ; MYSTICALMAN
- ret
-; 81acf
-
-Jumptable_81acf: ; 81acf
- dw Function81adb
- dw Function81c18
- dw Function81c33
- dw Function81cc2
- dw Function81d8e
- dw Function81daf
-; 81adb
-
-Function81adb: ; 81adb
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $6f
- call ByteFill
- hlcoord 1, 3
- lb bc, 7, 18
- ld a, $6c
- call Bank20_FillBoxWithByte
- hlcoord 11, 0
- lb bc, 2, 3
- ld a, $6d
- call Bank20_FillBoxWithByte
- hlcoord 16, 0
- lb bc, 2, 3
- ld a, $6e
- call Bank20_FillBoxWithByte
- call Function81bc0
- call Function81bf4
- ld a, [wcf66]
- inc a
- ld [CurPartySpecies], a
- ld [wd265], a
- hlcoord 0, 1
- ld de, wd265
- lb bc, PRINTNUM_LEADINGZEROS | 1, 3
- call PrintNum
- ld a, [wd002]
- and a
- jr nz, .asm_81b7a
- ld a, $1
- ld [UnownLetter], a
- call GetPokemonName
- hlcoord 4, 1
- call PlaceString
- xor a
- ld [wc2c6], a
- hlcoord 12, 3
- call _PrepMonFrontpic
- ld de, VTiles2 tile $31
- predef GetBackpic
- ld a, $31
- ld [hFillBox], a
- hlcoord 2, 4
- lb bc, 6, 6
- predef FillBox
- ld a, [wd003]
- and a
- jr z, .asm_81b66
- ld de, String_81baf
- jr .asm_81b69
-
-.asm_81b66
- ld de, String_81bb4
-
-.asm_81b69
- hlcoord 7, 17
- call PlaceString
- hlcoord 0, 17
- ld de, String_81bb9
- call PlaceString
- jr .asm_81ba9
-
-.asm_81b7a
- ld a, [wd265]
- ld [TrainerClass], a
- callab Function3957b
- ld de, StringBuffer1
- hlcoord 4, 1
- call PlaceString
- ld de, VTiles2
- callab GetTrainerPic
- xor a
- ld [TempEnemyMonSpecies], a
- ld [hFillBox], a
- hlcoord 2, 3
- lb bc, 7, 7
- predef FillBox
-
-.asm_81ba9
- ld a, $1
- ld [wJumptableIndex], a
- ret
-; 81baf
-
-String_81baf: db "レア", $6f, $6f, "@" ; rare (shiny)
-String_81bb4: db "ノーマル@" ; normal
-String_81bb9: db $7a, "きりかえ▶@" ; (A) switches
-; 81bc0
-
-Function81bc0: ; 81bc0
- decoord 0, 11, AttrMap
- hlcoord 2, 11
- ld a, $1
- call Function81bde
- decoord 0, 13, AttrMap
- hlcoord 2, 13
- ld a, $2
- call Function81bde
- decoord 0, 15, AttrMap
- hlcoord 2, 15
- ld a, $3
-
-Function81bde: ; 81bde
- push af
- ld a, $6a
- ld [hli], a
- ld bc, $f
- ld a, $6b
- call ByteFill
- ld l, e
- ld h, d
- pop af
- ld bc, $28
- call ByteFill
- ret
-; 81bf4
-
-Function81bf4: ; 81bf4
- ld a, [wcf66]
- inc a
- ld l, a
- ld h, $0
-rept 2
- add hl, hl
-endr
- ld de, OverworldMap
- add hl, de
- ld de, wc608
- ld bc, 4
- call CopyBytes
- xor a
- ld [wcf64], a
- ld [wcf65], a
- ld de, wc608
- call Function81ea5
- ret
-; 81c18
-
-Function81c18: ; 81c18
- ld a, [hCGB]
- and a
- jr z, .asm_81c2a
- ld a, $2
- ld [hBGMapMode], a
- call DelayFrame
- call DelayFrame
- call DelayFrame
-
-.asm_81c2a
- call WaitBGMap
- ld a, $2
- ld [wJumptableIndex], a
- ret
-; 81c33
-
-Function81c33: ; 81c33
- ld a, [hCGB]
- and a
- jr z, .asm_81c69
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, BGPals
- ld de, wc608
- ld c, $1
- call Function81ee3
- hlcoord 10, 2
- ld de, wc608
- call Function81ca7
- hlcoord 15, 2
- ld de, wc608 + 2
- call Function81ca7
- ld a, $1
- ld [hCGBPalUpdate], a
- ld a, $3
- ld [wJumptableIndex], a
- pop af
- ld [rSVBK], a
- ret
-
-.asm_81c69
- ld hl, wcda9
- ld a, $1
- ld [hli], a
- ld a, $ff
- ld [hli], a
- ld a, $7f
- ld [hli], a
- ld a, [wc608]
- ld [hli], a
- ld a, [wc608 + 1]
- ld [hli], a
- ld a, [wc608 + 2]
- ld [hli], a
- ld a, [wc608 + 3]
- ld [hli], a
- xor a
-rept 2
- ld [hli], a
-endr
- ld [hl], a
- ld hl, wcda9
- call Function81f0c
- hlcoord 10, 2
- ld de, wc608
- call Function81ca7
- hlcoord 15, 2
- ld de, wc608 + 2
- call Function81ca7
- ld a, $3
- ld [wJumptableIndex], a
- ret
-; 81ca7
-
-Function81ca7: ; 81ca7
-rept 3
- inc hl
-endr
- ld a, [de]
- call Function81cbc
- ld a, [de]
- swap a
- call Function81cbc
- inc de
- ld a, [de]
- call Function81cbc
- ld a, [de]
- swap a
-
-Function81cbc: ; 81cbc
- and $f
- add $70
- ld [hld], a
- ret
-; 81cc2
-
-Function81cc2: ; 81cc2
- ld a, [hJoyLast]
- and B_BUTTON
- jr nz, .asm_81cdf
- ld a, [hJoyLast]
- and A_BUTTON
- jr nz, .asm_81ce5
- ld a, [wcf64]
- and $3
- ld e, a
- ld d, 0
- ld hl, Jumptable_81d02
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-.asm_81cdf
- ld a, $4
- ld [wJumptableIndex], a
- ret
-
-.asm_81ce5
- ld a, [wd002]
- and a
- ret nz
- ld a, [wd003]
- xor $4
- ld [wd003], a
- ld c, a
- ld b, 0
- ld hl, PokemonPalettes
- add hl, bc
- call Function818fd
- ld a, $0
- ld [wJumptableIndex], a
- ret
-; 81d02
-
-Jumptable_81d02: ; 81d02
- dw Function81d0a
- dw Function81d34
- dw Function81d46
- dw Function81d58
-; 81d0a
-
-Function81d0a: ; 81d0a
- ld hl, hJoyLast
- ld a, [hl]
- and D_DOWN
- jr nz, Function81d89
- ld a, [hl]
- and D_LEFT
- jr nz, .asm_81d1d
- ld a, [hl]
- and D_RIGHT
- jr nz, .asm_81d28
- ret
-
-.asm_81d1d
- xor a
- ld [wcf65], a
- ld de, wc608
- call Function81ea5
- ret
-
-.asm_81d28
- ld a, $1
- ld [wcf65], a
- ld de, wc608 + 2
- call Function81ea5
- ret
-
-Function81d34: ; 81d34
- ld hl, hJoyLast
- ld a, [hl]
- and D_DOWN
- jr nz, Function81d89
- ld a, [hl]
- and D_UP
- jr nz, Function81d84
- ld hl, wc608 + 10
- jr Function81d63
-
-Function81d46: ; 81d46
- ld hl, hJoyLast
- ld a, [hl]
- and D_DOWN
- jr nz, Function81d89
- ld a, [hl]
- and D_UP
- jr nz, Function81d84
- ld hl, wc608 + 11
- jr Function81d63
-
-Function81d58: ; 81d58
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, Function81d84
- ld hl, wc608 + 12
-
-Function81d63: ; 81d63
- ld a, [hJoyLast]
- and D_RIGHT
- jr nz, Function81d70
- ld a, [hJoyLast]
- and D_LEFT
- jr nz, Function81d77
- ret
-
-Function81d70: ; 81d70
- ld a, [hl]
- cp $1f
- ret nc
- inc [hl]
- jr Function81d7b
-
-Function81d77: ; 81d77
- ld a, [hl]
- and a
- ret z
- dec [hl]
-
-Function81d7b: ; 81d7b
- call Function81e67
- ld a, $2
- ld [wJumptableIndex], a
- ret
-
-Function81d84: ; 81d84
- ld hl, wcf64
- dec [hl]
- ret
-
-Function81d89: ; 81d89
- ld hl, wcf64
- inc [hl]
- ret
-; 81d8e
-
-Function81d8e: ; 81d8e
- hlcoord 0, 10
- ld bc, $a0
- ld a, $6f
- call ByteFill
- hlcoord 2, 12
- ld de, String_81fcd
- call PlaceString
- xor a
- ld [wd004], a
- call Function81df4
- ld a, $5
- ld [wJumptableIndex], a
- ret
-; 81daf
-
-Function81daf: ; 81daf
- ld hl, hJoyPressed
- ld a, [hl]
- and B_BUTTON
- jr nz, .asm_81dbb
- call Function81dc7
- ret
-
-.asm_81dbb
- ld a, $0
- ld [wJumptableIndex], a
- ret
-; 81dc1
-
-Function81dc1: ; 81dc1
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-; 81dc7
-
-Function81dc7: ; 81dc7
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .asm_81dd5
- ld a, [hl]
- and D_DOWN
- jr nz, .asm_81de2
- ret
-
-.asm_81dd5
- ld a, [wd004]
- cp $3b
- jr z, .asm_81ddf
- inc a
- jr .asm_81ded
-
-.asm_81ddf
- xor a
- jr .asm_81ded
-
-.asm_81de2
- ld a, [wd004]
- and a
- jr z, .asm_81deb
- dec a
- jr .asm_81ded
-
-.asm_81deb
- ld a, $3b
-
-.asm_81ded
- ld [wd004], a
- call Function81df4
- ret
-; 81df4
-
-Function81df4: ; 81df4
- hlcoord 10, 11
- call Function81e5e
- hlcoord 10, 12
- call Function81e5e
- hlcoord 10, 13
- call Function81e5e
- hlcoord 10, 14
- call Function81e5e
- ld a, [wd004]
- inc a
- ld [wd265], a
- predef GetTMHMMove
- ld a, [wd265]
- ld [wd262], a
- call GetMoveName
- hlcoord 10, 12
- call PlaceString
- ld a, [wd004]
- call Function81e55
- ld [CurItem], a
- predef CanLearnTMHMMove
- ld a, c
- and a
- ld de, String_81e46
- jr nz, .asm_81e3f
- ld de, String_81e4d
-
-.asm_81e3f
- hlcoord 10, 14
- call PlaceString
- ret
-; 81e46
-
-String_81e46: db "おぼえられる@" ; can be taught
-String_81e4d: db "おぼえられない@" ; cannot be taught
-; 81e55
-
-Function81e55: ; 81e55
- cp $32
- jr c, .asm_81e5b
-rept 2
- inc a
-endr
-
-.asm_81e5b
- add $bf
- ret
-; 81e5e
-
-Function81e5e: ; 81e5e
- ld bc, $a
- ld a, $6f
- call ByteFill
- ret
-; 81e67
-
-Function81e67: ; 81e67
- ld a, [wc608 + 10]
- and $1f
- ld e, a
- ld a, [wc608 + 11]
- and $7
- sla a
- swap a
- or e
- ld e, a
- ld a, [wc608 + 11]
- and $18
- sla a
- swap a
- ld d, a
- ld a, [wc608 + 12]
- and $1f
- sla a
- sla a
- or d
- ld d, a
- ld a, [wcf65]
- and a
- jr z, .asm_81e9c
- ld a, e
- ld [wc608 + 2], a
- ld a, d
- ld [wc608 + 3], a
- ret
-
-.asm_81e9c
- ld a, e
- ld [wc608], a
- ld a, d
- ld [wc608 + 1], a
- ret
-; 81ea5
-
-Function81ea5: ; 81ea5
- ld a, [de]
- and $1f
- ld [wc608 + 10], a
- ld a, [de]
- and $e0
- swap a
- srl a
- ld b, a
- inc de
- ld a, [de]
- and $3
- swap a
- srl a
- or b
- ld [wc608 + 11], a
- ld a, [de]
- and $7c
- srl a
- srl a
- ld [wc608 + 12], a
- ret
-; 81eca
-
-Function81eca: ; 81eca
- ld a, [wcf66]
- inc a
- ld l, a
- ld h, $0
-rept 2
- add hl, hl
-endr
- ld de, OverworldMap
- add hl, de
- ld e, l
- ld d, h
- ld hl, wc608
- ld bc, 4
- call CopyBytes
- ret
-; 81ee3
-
-Function81ee3: ; 81ee3
-.asm_81ee3
- ld a, $ff
- ld [hli], a
- ld a, $7f
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- xor a
-rept 2
- ld [hli], a
-endr
- dec c
- jr nz, .asm_81ee3
- ret
-; 81efc
-
-Bank20_FillBoxWithByte: ; 81efc
-; For some reason, we have another copy of FillBoxWithByte here
-.row
- push bc
- push hl
-.col
- ld [hli], a
- dec c
- jr nz, .col
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, .row
- ret
-; 81f0c
-
-Function81f0c: ; 81f0c
- ld a, [wcfbe]
- push af
- set 7, a
- ld [wcfbe], a
- call Function81f1d
- pop af
- ld [wcfbe], a
- ret
-; 81f1d
-
-Function81f1d: ; 81f1d
- ld a, [hl]
- and $7
- ret z
- ld b, a
-.asm_81f22
- push bc
- xor a
- ld [rJOYP], a
- ld a, $30
- ld [rJOYP], a
- ld b, $10
-.asm_81f2c
- ld e, $8
- ld a, [hli]
- ld d, a
-.asm_81f30
- bit 0, d
- ld a, $10
- jr nz, .asm_81f38
- ld a, $20
-
-.asm_81f38
- ld [rJOYP], a
- ld a, $30
- ld [rJOYP], a
- rr d
- dec e
- jr nz, .asm_81f30
- dec b
- jr nz, .asm_81f2c
- ld a, $20
- ld [rJOYP], a
- ld a, $30
- ld [rJOYP], a
- ld de, 7000
-.asm_81f51
- nop
- nop
- nop
- dec de
- ld a, d
- or e
- jr nz, .asm_81f51
- pop bc
- dec b
- jr nz, .asm_81f22
- ret
-; 81f5e
-
-Function81f5e: ; 81f5e
- ld a, $6f
- hlcoord 10, 0
- ld [hl], a
- hlcoord 15, 0
- ld [hl], a
- hlcoord 1, 11
- ld [hl], a
- hlcoord 1, 13
- ld [hl], a
- hlcoord 1, 15
- ld [hl], a
- ld a, [wJumptableIndex]
- cp $3
- jr nz, .asm_81fc9
- ld a, [wcf64]
- and a
- jr z, .asm_81f8d
- dec a
- hlcoord 1, 11
- ld bc, 2 * SCREEN_WIDTH
- call AddNTimes
- ld [hl], $ed
-
-.asm_81f8d
- ld a, [wcf65]
- and a
- jr z, .asm_81f98
- hlcoord 15, 0
- jr .asm_81f9b
-
-.asm_81f98
- hlcoord 10, 0
-
-.asm_81f9b
- ld [hl], $ed
- ld b, $70
- ld c, $5
- ld hl, Sprites
- ld de, wc608 + 10
- call .asm_81fb7
- ld de, wc608 + 11
- call .asm_81fb7
- ld de, wc608 + 12
- call .asm_81fb7
- ret
-
-.asm_81fb7
- ld a, b
- ld [hli], a
- ld a, [de]
-rept 2
- add a
-endr
- add $18
- ld [hli], a
- xor a
- ld [hli], a
- ld a, c
- ld [hli], a
- ld a, $10
- add b
- ld b, a
- inc c
- ret
-
-.asm_81fc9
- call ClearSprites
- ret
-; 81fcd
-
-String_81fcd: ; 81fcd
- db "おわりますか?" ; Are you finished?
- next "はい", $f2, $f2, $f2, $7a ; YES (A)
- next "いいえ", $f2, $f2, $7b ; NO (B)
- db "@"
-; 81fe3
-
-DebugColorTestGFX:
-INCBIN "gfx/debug/color_test.2bpp"
-
-
-TilesetColorTest:
- ret
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [wcf66], a
- ld [hMapAnims], a
- call ClearSprites
- call OverworldTextModeSwitch
- call Function3200
- xor a
- ld [hBGMapMode], a
- ld de, DebugColorTestGFX + $10
- ld hl, VTiles2 tile $6a
- lb bc, BANK(DebugColorTestGFX), $16
- call Request2bpp
- ld de, DebugColorTestGFX
- ld hl, VTiles1
- lb bc, BANK(DebugColorTestGFX), 1
- call Request2bpp
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $6f
- call ByteFill
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $7
- call ByteFill
- ld de, $15
- ld a, $6c
- call Function821d2
- ld de, $1a
- ld a, $6d
- call Function821d2
- ld de, $1f
- ld a, $6e
- call Function821d2
- ld de, $24
- ld a, $6f
- call Function821d2
- call Function821f4
- call Function8220f
- call Function3200
- ld [wJumptableIndex], a
- ld a, $40
- ld [hWY], a
- ret
-; 821d2
-
-Function821d2: ; 821d2
- hlcoord 0, 0
- call Function821de
-
-Function821d8: ; 821d8
- ld a, [wcf64]
- hlcoord 0, 0, AttrMap
-
-Function821de: ; 821de
- add hl, de
-rept 4
- ld [hli], a
-endr
- ld bc, $10
- add hl, bc
-rept 4
- ld [hli], a
-endr
- ld bc, $10
- add hl, bc
-rept 4
- ld [hli], a
-endr
- ret
-; 821f4
-
-Function821f4: ; 821f4
- hlcoord 2, 4
- call Function82203
- hlcoord 2, 6
- call Function82203
- hlcoord 2, 8
-
-Function82203: ; 82203
- ld a, $6a
- ld [hli], a
- ld bc, $10 - 1
- ld a, $6b
- call ByteFill
- ret
-; 8220f
-
-Function8220f: ; 8220f
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld a, [wcf64]
- ld l, a
- ld h, $0
-rept 3
- add hl, hl
-endr
- ld de, wMapPals
- add hl, de
- ld de, wc608
- ld bc, 8
- call CopyBytes
- ld de, wc608
- call Function81ea5
- pop af
- ld [rSVBK], a
- ret
-; 82236
-
-
-Function82236: ; 82236
- ld hl, hJoyLast
- ld a, [hl]
- and SELECT
- jr nz, .loop7
- ld a, [hl]
- and B_BUTTON
- jr nz, .asm_82299
- call Function822f0
- ret
-
-.loop7
- ld hl, wcf64
- ld a, [hl]
- inc a
- and $7
- cp $7
- jr nz, .asm_82253
- xor a
-
-.asm_82253
- ld [hl], a
- ld de, $15
- call Function821d8
- ld de, $1a
- call Function821d8
- ld de, $1f
- call Function821d8
- ld de, $24
- call Function821d8
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, BGPals
- ld a, [wcf64]
- ld bc, 8
- call AddNTimes
- ld de, wc608
- ld bc, 8
- call CopyBytes
- pop af
- ld [rSVBK], a
- ld a, $2
- ld [hBGMapMode], a
- ld c, 3
- call DelayFrames
- ld a, $1
- ld [hBGMapMode], a
- ret
-
-.asm_82299
- call ClearSprites
- ld a, [hWY]
- xor $d0
- ld [hWY], a
- ret
-; 822a3
-
-Function822a3: ; 822a3
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, BGPals
- ld a, [wcf64]
- ld bc, 8
- call AddNTimes
- ld e, l
- ld d, h
- ld hl, wc608
- ld bc, 8
- call CopyBytes
- hlcoord 1, 0
- ld de, wc608
- call Function81ca7
- hlcoord 6, 0
- ld de, wc608 + 2
- call Function81ca7
- hlcoord 11, 0
- ld de, wc608 + 4
- call Function81ca7
- hlcoord 16, 0
- ld de, wc608 + 6
- call Function81ca7
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- call DelayFrame
- ret
-; 822f0
-
-Function822f0: ; 822f0
- ld a, [wcf65]
- and 3
- ld e, a
- ld d, 0
- ld hl, .jumptable
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 82301
-
-.jumptable: ; 82301
- dw Function82309
- dw Function82339
- dw Function8234b
- dw Function8235d
-; 82309
-
-Function82309: ; 82309
- ld hl, hJoyLast
- ld a, [hl]
- and D_DOWN
- jr nz, Function8238c
- ld a, [hl]
- and D_LEFT
- jr nz, .asm_8231c
- ld a, [hl]
- and D_RIGHT
- jr nz, .asm_82322
- ret
-
-.asm_8231c
- ld a, [wcf66]
- dec a
- jr .asm_82326
-
-.asm_82322
- ld a, [wcf66]
- inc a
-
-.asm_82326
- and $3
- ld [wcf66], a
- ld e, a
- ld d, $0
- ld hl, wc608
-rept 2
- add hl, de
-endr
- ld e, l
- ld d, h
- call Function81ea5
- ret
-
-Function82339: ; 82338
- ld hl, hJoyLast
- ld a, [hl]
- and D_DOWN
- jr nz, Function8238c
- ld a, [hl]
- and D_UP
- jr nz, Function82387
- ld hl, wc608 + 10
- jr Function82368
-
-Function8234b: ; 8234b
- ld hl, hJoyLast
- ld a, [hl]
- and D_DOWN
- jr nz, Function8238c
- ld a, [hl]
- and D_UP
- jr nz, Function82387
- ld hl, wc608 + 11
- jr Function82368
-
-Function8235d: ; 8235d
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, Function82387
- ld hl, wc608 + 12
-
-Function82368: ; 82368
- ld a, [hJoyLast]
- and D_RIGHT
- jr nz, .asm_82375
- ld a, [hJoyLast]
- and D_LEFT
- jr nz, .asm_8237c
- ret
-
-.asm_82375
- ld a, [hl]
- cp $1f
- ret nc
- inc [hl]
- jr .asm_82380
-
-.asm_8237c
- ld a, [hl]
- and a
- ret z
- dec [hl]
-
-.asm_82380
- call Function82391
- call Function822a3
- ret
-
-Function82387: ; 82387
- ld hl, wcf65
- dec [hl]
- ret
-
-Function8238c: ; 8238c
- ld hl, wcf65
- inc [hl]
- ret
-; 82391
-
-Function82391: ; 82391
- ld a, [wc608 + 10]
- and $1f
- ld e, a
- ld a, [wc608 + 11]
- and $7
- sla a
- swap a
- or e
- ld e, a
- ld a, [wc608 + 11]
- and $18
- sla a
- swap a
- ld d, a
- ld a, [wc608 + 12]
- and $1f
- sla a
- sla a
- or d
- ld d, a
- ld a, [wcf66]
- ld c, a
- ld b, $0
- ld hl, wc608
-rept 2
- add hl, bc
-endr
- ld a, e
- ld [hli], a
- ld [hl], d
- ret
-; 823c6
-
-Function823c6: ; 823c6
- ret
-
-Function823c7: ; 823c7
- ret
-; 823c8
-
-
SECTION "bank21", ROMX, BANK[$21]
-Function84000: ; 84000
- ld hl, OverworldMap
- lb bc, 4, 12
- xor a
- call Function842ab
- xor a
- ld [rSB], a
- ld [rSC], a
- ld [wc2d5], a
- ld hl, wc2d4
- set 0, [hl]
- ld a, [GBPrinter]
- ld [wcbfb], a
- xor a
- ld [wJumptableIndex], a
- ret
-; 84022
+INCLUDE "engine/printer.asm"
-Function84022: ; 84022
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, Jumptable_84031
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 84031
-
-
-Jumptable_84031: ; 84031 (21:4031)
- dw Function84077
- dw Function84143
- dw Function84120
- dw Function84099
- dw Function84180
- dw Function8412e
- dw Function840c5
- dw Function84180
- dw Function84120
- dw Function840de
- dw Function84180
- dw Function84120
- dw Function841a1
- dw Function84063
- dw Function8406d
- dw Function84120
- dw Function84103
- dw Function84071
- dw Function841b0
- dw Function841b3
-
-
-Function84059: ; 84059 (21:4059)
- ld hl, wJumptableIndex
- inc [hl]
- ret
-
-Function8405e: ; 8405e (21:405e)
- ld hl, wJumptableIndex
- dec [hl]
- ret
-
-Function84063: ; 84063 (21:4063)
- xor a
- ld [wca89], a
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-Function8406d: ; 8406d (21:406d)
- call Function84059
- ret
-
-Function84071: ; 84071 (21:4071)
- ld a, $1
- ld [wJumptableIndex], a
- ret
-
-Function84077: ; 84077 (21:4077)
- call Function841fb
- ld hl, Unknown_842b7
- call Function841e2
- xor a
- ld [wca8e], a
- ld [wca8f], a
- ld a, [wcf65]
- ld [wca81], a
- call Function84059
- call Function841c3
- ld a, $1
- ld [wcbf8], a
- ret
-
-Function84099: ; 84099 (21:4099)
- call Function841fb
- ld hl, wca81
- ld a, [hl]
- and a
- jr z, Function840c5
- ld hl, Unknown_842c3
- call Function841e2
- call Function84260
- ld a, $80
- ld [wca8e], a
- ld a, $2
- ld [wca8f], a
- call Function84219
- call Function84059
- call Function841c3
- ld a, $2
- ld [wcbf8], a
- ret
-
-Function840c5: ; 840c5 (21:40c5)
- ld a, $6
- ld [wJumptableIndex], a
- ld hl, Unknown_842c9
- call Function841e2
- xor a
- ld [wca8e], a
- ld [wca8f], a
- call Function84059
- call Function841c3
- ret
-
-Function840de: ; 840de (21:40de)
- call Function841fb
- ld hl, Unknown_842bd
- call Function841e2
- call Function84249
- ld a, $4
- ld [wca8e], a
- ld a, $0
- ld [wca8f], a
- call Function84219
- call Function84059
- call Function841c3
- ld a, $3
- ld [wcbf8], a
- ret
-
-Function84103: ; 84103 (21:4103)
- call Function841fb
- ld hl, Unknown_842b7
- call Function841e2
- xor a
- ld [wca8e], a
- ld [wca8f], a
- ld a, [wcf65]
- ld [wca81], a
- call Function84059
- call Function841c3
- ret
-
-Function84120: ; 84120 (21:4120)
- ld hl, wca8b
- inc [hl]
- ld a, [hl]
- cp $6
- ret c
- xor a
- ld [hl], a
- call Function84059
- ret
-
-Function8412e: ; 8412e (21:412e)
- ld hl, wca8b
- inc [hl]
- ld a, [hl]
- cp $6
- ret c
- xor a
- ld [hl], a
- ld hl, wca81
- dec [hl]
- call Function8405e
- call Function8405e
- ret
-
-Function84143: ; 84143 (21:4143)
- ld a, [wc2d5]
- and a
- ret nz
- ld a, [wca88]
- cp $ff
- jr nz, .printer_connected
- ld a, [wca89]
- cp $ff
- jr z, .printer_error
-
-.printer_connected
- ld a, [wca88]
- cp $81
- jr nz, .printer_error
- ld a, [wca89]
- cp $0
- jr nz, .printer_error
- ld hl, wc2d4
- set 1, [hl]
- ld a, $5
- ld [wca8a], a
- call Function84059
- ret
-
-.printer_error
- ld a, $ff
- ld [wca88], a
- ld [wca89], a
- ld a, $e
- ld [wJumptableIndex], a
- ret
-
-Function84180: ; 84180 (21:4180)
- ld a, [wc2d5]
- and a
- ret nz
- ld a, [wca89]
- and $f0
- jr nz, .asm_8419b
- ld a, [wca89]
- and $1
- jr nz, .asm_84197
- call Function84059
- ret
-.asm_84197
- call Function8405e
- ret
-.asm_8419b
- ld a, $12
- ld [wJumptableIndex], a
- ret
-
-Function841a1: ; 841a1 (21:41a1)
- ld a, [wc2d5]
- and a
- ret nz
- ld a, [wca89]
- and $f3
- ret nz
- call Function84059
- ret
-
-Function841b0: ; 841b0 (21:41b0)
- call Function84059
-
-Function841b3: ; 841b3 (21:41b3)
- ld a, [wc2d5]
- and a
- ret nz
- ld a, [wca89]
- and $f0
- ret nz
- xor a
- ld [wJumptableIndex], a
- ret
-
-Function841c3: ; 841c3 (21:41c3)
- ld a, [wc2d5]
- and a
- jr nz, Function841c3
- xor a
- ld [wca8c], a
- ld [wca8d], a
- ld a, $1
- ld [wc2d5], a
- ld a, $88
- ld [rSB], a
- ld a, $1
- ld [rSC], a
- ld a, $81
- ld [rSC], a
- ret
-
-Function841e2: ; 841e2 (21:41e2)
- ld a, [hli]
- ld [wca82], a
- ld a, [hli]
- ld [wca83], a
- ld a, [hli]
- ld [wca84], a
- ld a, [hli]
- ld [wca85], a
- ld a, [hli]
- ld [wca86], a
- ld a, [hl]
- ld [wca87], a
- ret
-
-Function841fb: ; 841fb (21:41fb)
- xor a
- ld hl, wca82
-rept 3
- ld [hli], a
-endr
- ld [hl], a
- ld hl, wca86
- ld [hli], a
- ld [hl], a
- xor a
- ld [wca8e], a
- ld [wca8f], a
- ld hl, OverworldMap
- ld bc, $280
- call Function842ab
- ret
-
-Function84219: ; 84219 (21:4219)
- ld hl, 0
- ld bc, $4
- ld de, wca82
- call Function8423c
- ld a, [wca8e]
- ld c, a
- ld a, [wca8f]
- ld b, a
- ld de, OverworldMap
- call Function8423c
- ld a, l
- ld [wca86], a
- ld a, h
- ld [wca87], a
- ret
-
-Function8423c: ; 8423c (21:423c)
- ld a, [de]
- inc de
- add l
- jr nc, .asm_84242
- inc h
-.asm_84242
- ld l, a
- dec bc
- ld a, c
- or b
- jr nz, Function8423c
- ret
-
-Function84249: ; 84249 (21:4249)
- ld a, $1
- ld [OverworldMap], a
- ld a, [wcbfa]
- ld [wc801], a
- ld a, $e4
- ld [wc802], a
- ld a, [wcbfb]
- ld [wc803], a
- ret
-
-Function84260: ; 84260 (21:4260)
- ld a, [wca81]
- xor $ff
- ld d, a
- ld a, [wcf65]
- inc a
- add d
- ld hl, wca90
- ld de, $28
-.asm_84271
- and a
- jr z, .asm_84278
- add hl, de
- dec a
- jr .asm_84271
-.asm_84278
- ld e, l
- ld d, h
- ld hl, OverworldMap
- ld c, $28
-.asm_8427f
- ld a, [de]
- inc de
- push bc
- push de
- push hl
- swap a
- ld d, a
- and $f0
- ld e, a
- ld a, d
- and $f
- ld d, a
- and $8
- ld a, d
- jr nz, .asm_84297
- or $90
- jr .asm_84299
-.asm_84297
- or $80
-.asm_84299
- ld d, a
- lb bc, $21, 1
- call Request2bpp
- pop hl
- ld de, $10
- add hl, de
- pop de
- pop bc
- dec c
- jr nz, .asm_8427f
- ret
-
-Function842ab: ; 842ab
- push de
- ld e, a
-.asm_842ad
- ld [hl], e
- inc hl
- dec bc
- ld a, c
- or b
- jr nz, .asm_842ad
- ld a, e
- pop de
- ret
-; 842b7
-
-Unknown_842b7: db 1, 0, $00, 0, 1, 0
-Unknown_842bd: db 2, 0, $04, 0, 0, 0
-Unknown_842c3: db 4, 0, $80, 2, 0, 0
-Unknown_842c9: db 4, 0, $00, 0, 4, 0
-Unknown_842cf: db 8, 0, $00, 0, 8, 0 ; unused
-Unknown_842d5: db 15, 0, $00, 0, 15, 0 ; unused
-; 842db
-
-
-Function842db:: ; 842db
- ld a, [wc2d5]
- add a
- ld e, a
- ld d, 0
- ld hl, Jumptable_842ea
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 842ea
-
-
-Jumptable_842ea: ; 842ea (21:42ea)
- dw Function8432f
- dw Function84330
- dw Function84339
- dw Function84343
- dw Function8434d
- dw Function84357
- dw Function84361
- dw Function8438b
- dw Function84395
- dw Function8439f
- dw Function843a8
- dw Function843b6
- dw Function84330
- dw Function843c0
- dw Function843c9
- dw Function843c9
- dw Function843c9
- dw Function843c0
- dw Function843c9
- dw Function8439f
- dw Function843a8
- dw Function843e6
- dw Function84330
- dw Function843d2
- dw Function843c9
- dw Function843c9
- dw Function843c9
- dw Function843d2
- dw Function843c9
- dw Function8439f
- dw Function843a8
- dw Function843b6
-
-
-Function8432a: ; 8432a (21:432a)
- ld hl, wc2d5
- inc [hl]
- ret
-
-Function8432f: ; 8432f (21:432f)
- ret
-
-Function84330: ; 84330 (21:4330)
- ld a, $33
- call Function843db
- call Function8432a
- ret
-
-Function84339: ; 84339 (21:4339)
- ld a, [wca82]
- call Function843db
- call Function8432a
- ret
-
-Function84343: ; 84343 (21:4343)
- ld a, [wca83]
- call Function843db
- call Function8432a
- ret
-
-Function8434d: ; 8434d (21:434d)
- ld a, [wca84]
- call Function843db
- call Function8432a
- ret
-
-Function84357: ; 84357 (21:4357)
- ld a, [wca85]
- call Function843db
- call Function8432a
- ret
-
-Function84361: ; 84361 (21:4361)
- ld hl, wca8e
- ld a, [hli]
- ld d, [hl]
- ld e, a
- or d
- jr z, .asm_84388
- dec de
- ld [hl], d
- dec hl
- ld [hl], e
- ld a, [wca8c]
- ld e, a
- ld a, [wca8d]
- ld d, a
- ld hl, OverworldMap
- add hl, de
- inc de
- ld a, e
- ld [wca8c], a
- ld a, d
- ld [wca8d], a
- ld a, [hl]
- call Function843db
- ret
-.asm_84388
- call Function8432a
-
-Function8438b: ; 8438b (21:438b)
- ld a, [wca86]
- call Function843db
- call Function8432a
- ret
-
-Function84395: ; 84395 (21:4395)
- ld a, [wca87]
- call Function843db
- call Function8432a
- ret
-
-Function8439f: ; 8439f (21:439f)
- ld a, $0
- call Function843db
- call Function8432a
- ret
-
-Function843a8: ; 843a8 (21:43a8)
- ld a, [rSB]
- ld [wca88], a
- ld a, $0
- call Function843db
- call Function8432a
- ret
-
-Function843b6: ; 843b6 (21:43b6)
- ld a, [rSB]
- ld [wca89], a
- xor a
- ld [wc2d5], a
- ret
-
-Function843c0: ; 843c0 (21:43c0)
- ld a, $f
- call Function843db
- call Function8432a
- ret
-
-Function843c9: ; 843c9 (21:43c9)
- ld a, $0
- call Function843db
- call Function8432a
- ret
-
-Function843d2: ; 843d2 (21:43d2)
- ld a, $8
- call Function843db
- call Function8432a
- ret
-
-Function843db: ; 843db (21:43db)
- ld [rSB], a
- ld a, $1
- ld [rSC], a
- ld a, $81
- ld [rSC], a
- ret
-
-Function843e6: ; 843e6 (21:43e6)
- ld a, [rSB]
- ld [wca89], a
- xor a
- ld [wc2d5], a
- ret
-
-Function843f0: ; 843f0
-.asm_843f0
- call JoyTextDelay
- call Function846f6
- jr c, .asm_8440f
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_8440d
- call Function84022
- call Function84757
- call Function84785
- call DelayFrame
- jr .asm_843f0
-
-.asm_8440d
- and a
- ret
-
-.asm_8440f
- scf
- ret
-; 84411
-
-Function84411: ; 84411
- xor a
- ld [wc2d4], a
- ld [wc2d5], a
- ret
-; 84419
-
-Function84419: ; 84419
- push af
- call Function84000
- pop af
- ld [wcbfa], a
- call Function84728
- ret
-; 84425
-
-Function84425: ; 84425
- call ReturnToMapFromSubmenu
- call Function84753
- ret
-; 8442c
-
-Function8442c: ; 8442c
- ld a, [wcf65]
- push af
- ld hl, VTiles1
- ld de, FontInversed
- lb bc, BANK(FontInversed), $80
- call Request1bpp
- xor a
- ld [$ffac], a
- call Function8474c
- ld a, [rIE]
- push af
- xor a
- ld [rIF], a
- ld a, $9
- ld [rIE], a
- call Function84000
- ld a, $10
- ld [wcbfa], a
- callba Function1dc1b0
- call ClearTileMap
- ld a, $e4
- call DmgToCgbBGPals
- call DelayFrame
- ld hl, hVBlank
- ld a, [hl]
- push af
- ld [hl], $4
- ld a, $8
- ld [wcf65], a
- call Function84742
- call Function843f0
- jr c, .asm_8449d
- call Function84411
- ld c, 12
- call DelayFrames
- xor a
- ld [hBGMapMode], a
- call Function84000
- ld a, $3
- ld [wcbfa], a
- callba Function1dc213
- call Function84742
- ld a, $4
- ld [wcf65], a
- call Function843f0
-
-.asm_8449d
- pop af
- ld [hVBlank], a
- call Function84411
- xor a
- ld [rIF], a
- pop af
- ld [rIE], a
- call Function84425
- ld c, $8
-.asm_844ae
- call LowVolume
- call DelayFrame
- dec c
- jr nz, .asm_844ae
- pop af
- ld [wcf65], a
- ret
-; 844bc
-
-Function844bc: ; 844bc (21:44bc)
- ld a, [wcf65]
- push af
- ld a, $9
- ld [wcf65], a
- ld a, e
- ld [wd004], a
- ld a, d
- ld [StartFlypoint], a
- ld a, b
- ld [EndFlypoint], a
- ld a, c
- ld [MovementBuffer], a
- xor a
- ld [$ffac], a
- ld [wd003], a
- call Function8474c
- ld a, [rIE]
- push af
- xor a
- ld [rIF], a
- ld a, $9
- ld [rIE], a
- ld hl, hVBlank
- ld a, [hl]
- push af
- ld [hl], $4
- xor a
- ld [hBGMapMode], a
- call Function84817
- ld a, $10
- call Function84419
- call Function84559
- jr c, .asm_84545
- call Function84411
- ld c, 12
- call DelayFrames
- xor a
- ld [hBGMapMode], a
- call Function8486f
- ld a, $0
- call Function84419
- call Function84559
- jr c, .asm_84545
- call Function84411
- ld c, 12
- call DelayFrames
- xor a
- ld [hBGMapMode], a
- call Function84893
- ld a, $0
- call Function84419
- call Function84559
- jr c, .asm_84545
- call Function84411
- ld c, 12
- call DelayFrames
- xor a
- ld [hBGMapMode], a
- call Function848b7
- ld a, $3
- call Function84419
- call Function84559
-.asm_84545
- pop af
- ld [hVBlank], a
- call Function84411
- xor a
- ld [rIF], a
- pop af
- ld [rIE], a
- call Function84425
- pop af
- ld [wcf65], a
- ret
-
-Function84559: ; 84559 (21:4559)
- call Function84742
- call Function843f0
- ret
-
-Function84560: ; 84560
- ld a, [wcf65]
- push af
- xor a
- ld [$ffac], a
- call Function8474c
- ld a, [rIE]
- push af
- xor a
- ld [rIF], a
- ld a, $9
- ld [rIE], a
- ld hl, hVBlank
- ld a, [hl]
- push af
- ld [hl], $4
- xor a
- ld [hBGMapMode], a
- call LoadTileMapToTempTileMap
- callba Function16dac
- ld a, $0
- call Function84419
- call Call_LoadTempTileMapToTileMap
- call Function84742
- ld a, $9
- ld [wcf65], a
-.asm_84597
- call JoyTextDelay
- call Function846f6
- jr c, .asm_845c0
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_845c0
- call Function84022
- ld a, [wJumptableIndex]
- cp $2
- jr nc, .asm_845b5
- ld a, $3
- ld [wca81], a
-
-.asm_845b5
- call Function84757
- call Function84785
- call DelayFrame
- jr .asm_84597
-
-.asm_845c0
- pop af
- ld [hVBlank], a
- call Function84411
- call Call_LoadTempTileMapToTileMap
- xor a
- ld [rIF], a
- pop af
- ld [rIE], a
- pop af
- ld [wcf65], a
- ret
-; 845d4
-
-Function845d4: ; 845d4
- call Function845db
- call Function84425
- ret
-; 845db
-
-Function845db: ; 845db
- ld a, [wcf65]
- push af
- xor a
- ld [$ffac], a
- call Function8474c
- ld a, [rIE]
- push af
- xor a
- ld [rIF], a
- ld a, $9
- ld [rIE], a
- xor a
- ld [hBGMapMode], a
- ld a, $13
- call Function84419
- ld hl, hVBlank
- ld a, [hl]
- push af
- ld [hl], $4
- ld a, $9
- ld [wcf65], a
- call Function843f0
- pop af
- ld [hVBlank], a
- call Function84411
- call Function84735
- xor a
- ld [rIF], a
- pop af
- ld [rIE], a
- pop af
- ld [wcf65], a
- ret
-; 8461a
-
-Function8461a: ; 8461a
- ld a, [wcf65]
- push af
- xor a
- ld [$ffac], a
- call Function8474c
- ld a, [rIE]
- push af
- xor a
- ld [rIF], a
- ld a, $9
- ld [rIE], a
- xor a
- ld [hBGMapMode], a
- callba Function1dc381
- ld a, $10
- call Function84419
- ld hl, hVBlank
- ld a, [hl]
- push af
- ld [hl], $4
- ld a, $8
- ld [wcf65], a
- call Function84742
- call Function843f0
- jr c, .asm_84671
- call Function84411
- ld c, 12
- call DelayFrames
- xor a
- ld [hBGMapMode], a
- callba Function1dc47b
- ld a, $3
- call Function84419
- ld a, $9
- ld [wcf65], a
- call Function84742
- call Function843f0
-
-.asm_84671
- pop af
- ld [hVBlank], a
- call Function84411
- call Function84735
- xor a
- ld [rIF], a
- pop af
- ld [rIE], a
- call Function84425
- pop af
- ld [wcf65], a
- ret
-; 84688
-
-Function84688: ; 84688
- ld a, [wcf65]
- push af
- callba Function1dd709
- xor a
- ld [$ffac], a
- call Function8474c
- ld a, [rIE]
- push af
- xor a
- ld [rIF], a
- ld a, $9
- ld [rIE], a
- ld hl, hVBlank
- ld a, [hl]
- push af
- ld [hl], $4
- ld a, $10
- call Function84419
- call Function84742
- ld a, $9
- ld [wcf65], a
- call Function843f0
- jr c, .asm_846e2
- call Function84411
- ld c, 12
- call DelayFrames
- call LoadTileMapToTempTileMap
- xor a
- ld [hBGMapMode], a
- callba Function1dd7ae
- ld a, $3
- call Function84419
- call Call_LoadTempTileMapToTileMap
- call Function84742
- ld a, $9
- ld [wcf65], a
- call Function843f0
-
-.asm_846e2
- pop af
- ld [hVBlank], a
- call Function84411
- xor a
- ld [rIF], a
- pop af
- ld [rIE], a
- call Function84425
- pop af
- ld [wcf65], a
- ret
-; 846f6
-
-Function846f6: ; 846f6
- ld a, [hJoyDown]
- and B_BUTTON
- jr nz, .asm_846fe
- and a
- ret
-
-.asm_846fe
- ld a, [wca80]
- cp $c
- jr nz, .asm_84722
-.asm_84705
- ld a, [wc2d5]
- and a
- jr nz, .asm_84705
- ld a, $16
- ld [wc2d5], a
- ld a, $88
- ld [rSB], a
- ld a, $1
- ld [rSC], a
- ld a, $81
- ld [rSC], a
-.asm_8471c
- ld a, [wc2d5]
- and a
- jr nz, .asm_8471c
-
-.asm_84722
- ld a, $1
- ld [$ffac], a
- scf
- ret
-; 84728
-
-Function84728: ; 84728
- hlcoord 0, 0
- ld de, wca90
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call CopyBytes
- ret
-; 84735
-
-Function84735: ; 84735
- ld hl, wca90
- decoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call CopyBytes
- ret
-; 84742
-
-Function84742: ; 84742
- xor a
- ld [hJoyReleased], a
- ld [hJoyPressed], a
- ld [hJoyDown], a
- ld [hJoyLast], a
- ret
-; 8474c
-
-Function8474c: ; 8474c
- ld de, MUSIC_PRINTER
- call PlayMusic2
- ret
-; 84753
-
-Function84753: ; 84753
- call RestartMapMusic
- ret
-; 84757
-
-Function84757: ; 84757
- ld a, [wca88]
- cp -1
- jr nz, .printer_connected
- ld a, [wca89]
- cp -1
- jr z, .error_2
-
-.printer_connected
- ld a, [wca89]
- and %11100000
- ret z ; no error
-
- bit 7, a
- jr nz, .error_1
- bit 6, a
- jr nz, .error_4
- ld a, 6 ; error 3
- jr .load_text_index
-
-.error_4
- ld a, 7 ; error 4
- jr .load_text_index
-
-.error_1
- ld a, 4 ; error 1
- jr .load_text_index
-
-.error_2
- ld a, 5 ; error 2
-
-.load_text_index
- ld [wcbf8], a
- ret
-; 84785
-
-Function84785: ; 84785
- ld a, [wcbf8]
- and a
- ret z
- push af
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 5
- lb bc, 10, 18
- call TextBox
- pop af
- ld e, a
- ld d, 0
- ld hl, PrinterStatusStringPointers
-rept 2
- add hl, de
-endr
- ld e, [hl]
- inc hl
- ld d, [hl]
- hlcoord 1, 7
- ld a, BANK(GBPrinterStrings)
- call FarString
- hlcoord 2, 15
- ld de, String_PressBToCancel
- call PlaceString
- ld a, $1
- ld [hBGMapMode], a
- xor a
- ld [wcbf8], a
- ret
-; 847bd
-
-Function847bd: ; 847bd
- ld a, [wcbf8]
- and a
- ret z
- push af
- xor a
- ld [hBGMapMode], a
- hlcoord 2, 4
- lb bc, 13, 16
- call ClearBox
- pop af
- ld e, a
- ld d, 0
- ld hl, PrinterStatusStringPointers
-rept 2
- add hl, de
-endr
- ld e, [hl]
- inc hl
- ld d, [hl]
- hlcoord 4, 7
- ld a, BANK(GBPrinterStrings)
- call FarString
- hlcoord 4, 15
- ld de, String_PressBToCancel
- call PlaceString
- ld a, $1
- ld [hBGMapMode], a
- xor a
- ld [wcbf8], a
- ret
-; 847f5
-
-String_PressBToCancel:
- db "Press B to Cancel@"
-; 84807
-
-PrinterStatusStringPointers: ; 84807
- dw String_1dc275 ; @
- dw String_1dc276 ; CHECKING LINK
- dw String_1dc289 ; TRANSMITTING
- dw String_1dc29c ; PRINTING
- dw String_1dc2ad ; error 1
- dw String_1dc2e2 ; error 2
- dw String_1dc317 ; error 3
- dw String_1dc34c ; error 4
-; 84817
-
-Function84817: ; 84817 (21:4817)
- xor a
- ld [wd002], a
- hlcoord 0, 0
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- call Function84a0e
- hlcoord 0, 0
- ld bc, 9 * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- call Function849e9
- call Function849d7
- hlcoord 4, 3
- ld de, String_84865
- call PlaceString
- ld a, [wd007]
- ld bc, BOX_NAME_LENGTH
- ld hl, wBoxNames
- call AddNTimes
- ld d, h
- ld e, l
- hlcoord 6, 5
- call PlaceString
- ld a, $1
- call Function849c6
- hlcoord 2, 9
- ld c, $3
- call Function848e7
- ret
-; 84865 (21:4865)
-
-String_84865:
- db "#MON LIST@"
-; 8486f
-
-Function8486f: ; 8486f (21:486f)
- hlcoord 0, 0
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- call Function84a0e
- call Function849e9
- ld a, [wd003]
- and a
- ret nz
- ld a, $4
- call Function849c6
- hlcoord 2, 0
- ld c, $6
- call Function848e7
- ret
-
-Function84893: ; 84893 (21:4893)
- hlcoord 0, 0
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- call Function84a0e
- call Function849e9
- ld a, [wd003]
- and a
- ret nz
- ld a, $a
- call Function849c6
- hlcoord 2, 0
- ld c, $6
- call Function848e7
- ret
-
-Function848b7: ; 848b7 (21:48b7)
- hlcoord 0, 0
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- call Function84a0e
- hlcoord 1, 15
- lb bc, 2, 18
- call ClearBox
- call Function849e9
- call Function849fc
- ld a, [wd003]
- and a
- ret nz
- ld a, $10
- call Function849c6
- hlcoord 2, 0
- ld c, $5
- call Function848e7
- ret
-
-Function848e7: ; 848e7 (21:48e7)
- ld a, [EndFlypoint]
- call GetSRAMBank
-
-Function848ed: ; 848ed (21:48ed)
- ld a, c
- and a
- jp z, Function84986
- dec c
- ld a, [de]
- cp $ff
- jp z, Function84981
- ld [wd265], a
- ld [CurPartySpecies], a
- push bc
- push hl
- push de
- push hl
- ld bc, $10
- ld a, " "
- call ByteFill
- pop hl
- push hl
- call GetBasePokemonName
- pop hl
- push hl
- call PlaceString
- ld a, [CurPartySpecies]
- cp $fd
- pop hl
- jr z, .ok2
- ld bc, $b
- add hl, bc
- call Function8498a
- ld bc, $9
- add hl, bc
- ld a, $f3
- ld [hli], a
- push hl
- ld bc, $e
- ld a, " "
- call ByteFill
- pop hl
- push hl
- ld a, [wd004]
- ld l, a
- ld a, [StartFlypoint]
- ld h, a
- ld bc, $372
- add hl, bc
- ld bc, $b
- ld a, [wd002]
- call AddNTimes
- ld e, l
- ld d, h
- pop hl
- push hl
- call PlaceString
- pop hl
- ld bc, $b
- add hl, bc
- push hl
- ld a, [wd004]
- ld l, a
- ld a, [StartFlypoint]
- ld h, a
- ld bc, $35
- add hl, bc
- ld bc, $20
- ld a, [wd002]
- call AddNTimes
- ld a, [hl]
- pop hl
- call Function383d
-.ok2
- ld hl, wd002
- inc [hl]
- pop de
- pop hl
- ld bc, $3c
- add hl, bc
- pop bc
- inc de
- jp Function848ed
-
-Function84981: ; 84981 (21:4981)
- ld a, $1
- ld [wd003], a
-
-Function84986: ; 84986 (21:4986)
- call CloseSRAM
- ret
-
-Function8498a: ; 8498a (21:498a)
- push hl
- ld a, [wd004]
- ld l, a
- ld a, [StartFlypoint]
- ld h, a
- ld bc, $2b
- add hl, bc
- ld bc, $20
- ld a, [wd002]
- call AddNTimes
- ld de, TempMonDVs
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- ld a, [wd002]
- ld [CurPartyMon], a
- ld a, $3
- ld [MonType], a
- callba GetGender
- ld a, $7f
- jr c, .asm_849c3
- ld a, $ef
- jr nz, .asm_849c3
- ld a, $f5
-.asm_849c3
- pop hl
- ld [hli], a
- ret
-
-Function849c6: ; 849c6 (21:49c6)
- push hl
- ld e, a
- ld d, $0
- ld a, [wd004]
- ld l, a
- ld a, [StartFlypoint]
- ld h, a
- add hl, de
- ld e, l
- ld d, h
- pop hl
- ret
-
-Function849d7: ; 849d7 (21:49d7)
- hlcoord 0, 0
- ld a, $79
- ld [hli], a
- ld a, $7a
- ld c, $12
-.asm_849e1
- ld [hli], a
- dec c
- jr nz, .asm_849e1
- ld a, $7b
- ld [hl], a
- ret
-
-Function849e9: ; 849e9 (21:49e9)
- hlcoord 0, 0
- ld de, $13
- ld c, $12
-.asm_849f1
- ld a, $7c
- ld [hl], a
- add hl, de
- ld a, $7c
- ld [hli], a
- dec c
- jr nz, .asm_849f1
- ret
-
-Function849fc: ; 849fc (21:49fc)
- hlcoord 0, 17
- ld a, $7d
- ld [hli], a
- ld a, $7a
- ld c, $12
-.asm_84a06
- ld [hli], a
- dec c
- jr nz, .asm_84a06
- ld a, $7e
- ld [hl], a
- ret
-
-Function84a0e: ; 84a0e (21:4a0e)
- hlcoord 2, 0
- ld c, $6
-.asm_84a13
- push bc
- push hl
- ld de, String84a25
- call PlaceString
- pop hl
- ld bc, $3c
- add hl, bc
- pop bc
- dec c
- jr nz, .asm_84a13
- ret
-; 84a25 (21:4a25)
-
-String84a25: ; 84a25
- db " ------@"
-; 84a2e
-
-
INCLUDE "battle/anim_gfx.asm"
+INCLUDE "event/halloffame.asm"
-HallOfFame:: ; 0x8640e
- call Function8648e
- ld a, [StatusFlags]
- push af
- ld a, 1
- ld [wc2cd], a
- call DisableSpriteUpdates
- ld a, SPAWN_LANCE
- ld [wSpawnAfterChampion], a
-
- ; Enable the Pokégear map to cycle through all of Kanto
- ld hl, StatusFlags
- set 6, [hl] ; hall of fame
-
- callba Function14da0
-
- ld hl, wd95e
- ld a, [hl]
- cp 200
- jr nc, .ok
- inc [hl]
-.ok
- callba SaveGameData
- call GetHallOfFameParty
- callba AddHallOfFameEntry
-
- xor a
- ld [wc2cd], a
- call Function864c3
- pop af
- ld b, a
- callba Function109847
- ret
-; 0x86455
-
-RedCredits:: ; 86455
- ld a, MUSIC_NONE % $100
- ld [MusicFadeIDLo], a
- ld a, MUSIC_NONE / $100
- ld [MusicFadeIDHi], a
- ld a, $a
- ld [MusicFade], a
- callba FadeOutPalettes
- xor a
- ld [VramState], a
- ld [hMapAnims], a
- callba Function4e8c2
- ld c, 8
- call DelayFrames
- call DisableSpriteUpdates
- ld a, SPAWN_RED
- ld [wSpawnAfterChampion], a
- ld a, [StatusFlags]
- ld b, a
- callba Function109847
- ret
-; 8648e
-
-Function8648e: ; 8648e
- ld a, MUSIC_NONE % $100
- ld [MusicFadeIDLo], a
- ld a, MUSIC_NONE / $100
- ld [MusicFadeIDHi], a
- ld a, 10
- ld [MusicFade], a
- callba FadeOutPalettes
- xor a
- ld [VramState], a
- ld [hMapAnims], a
- callba Function4e881
- ld c, 100
- jp DelayFrames
-; 864b4
-
-Function864b4: ; 864b4
- push de
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- pop de
- call PlayMusic
- ret
-; 864c3
-
-Function864c3: ; 864c3
- xor a
- ld [wJumptableIndex], a
- call Function8671c
- jr c, .done
- ld de, SCREEN_WIDTH
- call Function864b4
- xor a
- ld [wcf64], a
-.loop
- ld a, [wcf64]
- cp 6
- jr nc, .done
- ld hl, wc608 + 1
- ld bc, $10
- call AddNTimes
- ld a, [hl]
- cp -1
- jr z, .done
- push hl
- call Function865b5
- pop hl
- call Function8650c
- jr c, .done
- ld hl, wcf64
- inc [hl]
- jr .loop
-
-.done
- call Function86810
- ld a, $4
- ld [MusicFade], a
- call FadeToWhite
- ld c, 8
- call DelayFrames
- ret
-; 8650c
-
-Function8650c: ; 8650c
- call Function86748
- ld de, String_8652c
- hlcoord 1, 2
- call PlaceString
- call WaitBGMap
- decoord 6, 5
- ld c, $6
- predef Functiond066e
- ld c, 60
- call DelayFrames
- and a
- ret
-; 8652c
-
-String_8652c:
- db "New Hall of Famer!@"
-; 8653f
-
-
-GetHallOfFameParty: ; 8653f
- ld hl, OverworldMap
- ld bc, HOF_LENGTH
- xor a
- call ByteFill
- ld a, [wd95e]
- ld de, OverworldMap
- ld [de], a
- inc de
- ld hl, PartySpecies
- ld c, 0
-.next
- ld a, [hli]
- cp -1
- jr z, .done
- cp EGG
- jr nz, .mon
- inc c
- jr .next
-
-.mon
- push hl
- push de
- push bc
-
- ld a, c
- ld hl, PartyMons
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld c, l
- ld b, h
-
- ld hl, MON_SPECIES
- add hl, bc
- ld a, [hl]
- ld [de], a
- inc de
-
- ld hl, MON_ID
- add hl, bc
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- inc de
-
- ld hl, MON_DVS
- add hl, bc
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- inc de
-
- ld hl, MON_LEVEL
- add hl, bc
- ld a, [hl]
- ld [de], a
- inc de
-
- pop bc
- push bc
- ld a, c
- ld hl, PartyMonNicknames
- ld bc, PKMN_NAME_LENGTH
- call AddNTimes
- ld bc, PKMN_NAME_LENGTH - 1
- call CopyBytes
-
- pop bc
- inc c
- pop de
- ld hl, HOF_MON_LENGTH
- add hl, de
- ld e, l
- ld d, h
- pop hl
- jr .next
-
-.done
- ld a, $ff
- ld [de], a
- ret
-; 865b5
-
-Function865b5: ; 865b5
- push hl
- call ClearBGPalettes
- callba Function4e906
- pop hl
- ld a, [hli]
- ld [TempMonSpecies], a
- ld [CurPartySpecies], a
-rept 2
- inc hl
-endr
- ld a, [hli]
- ld [TempMonDVs], a
- ld a, [hli]
- ld [TempMonDVs + 1], a
- ld hl, TempMonDVs
- predef GetUnownLetter
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- ld de, VTiles2 tile $31
- predef GetBackpic
- ld a, $31
- ld [hFillBox], a
- hlcoord 6, 6
- lb bc, 6, 6
- predef FillBox
- ld a, $d0
- ld [hSCY], a
- ld a, $90
- ld [hSCX], a
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- ld b, $1a
- call GetSGBLayout
- call SetPalettes
- call Function86635
- xor a
- ld [wc2c6], a
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- hlcoord 6, 5
- call _PrepMonFrontpic
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- ld [hSCY], a
- call Function86643
- ret
-; 86635
-
-Function86635: ; 86635
-.asm_86635
- ld a, [hSCX]
- cp $70
- ret z
- add $4
- ld [hSCX], a
- call DelayFrame
- jr .asm_86635
-; 86643
-
-Function86643: ; 86643
-.asm_86643
- ld a, [hSCX]
- and a
- ret z
-rept 2
- dec a
-endr
- ld [hSCX], a
- call DelayFrame
- jr .asm_86643
-; 86650
-
-Function86650: ; 86650
- call LoadFontsBattleExtra
- xor a
- ld [wJumptableIndex], a
-.asm_86657
- call Function8671c
- ret c
- call Function86665
- ret c
- ld hl, wJumptableIndex
- inc [hl]
- jr .asm_86657
-; 86665
-
-Function86665: ; 86665
- xor a
- ld [wcf64], a
-.asm_86669
- call Function86692
- jr c, .asm_86690
-.asm_8666e
- call JoyTextDelay
- ld hl, hJoyLast
- ld a, [hl]
- and B_BUTTON
- jr nz, .asm_8668e
- ld a, [hl]
- and A_BUTTON
- jr nz, .asm_86688
- ld a, [hl]
- and START
- jr nz, .asm_86690
- call DelayFrame
- jr .asm_8666e
-
-.asm_86688
- ld hl, wcf64
- inc [hl]
- jr .asm_86669
-
-.asm_8668e
- scf
- ret
-
-.asm_86690
- and a
- ret
-; 86692
-
-Function86692: ; 86692
-; Print the number of times the player has entered the Hall of Fame.
-; If that number is above 200, print "HOF Master!" instead.
- ld a, [wcf64]
- cp $6
- jr nc, .asm_866a7
- ld hl, wc608 + 1
- ld bc, $10
- call AddNTimes
- ld a, [hl]
- cp $ff
- jr nz, .asm_866a9
-
-.asm_866a7
- scf
- ret
-
-.asm_866a9
- push hl
- call ClearBGPalettes
- pop hl
- call Function86748
- ld a, [wc608]
- cp 200 + 1
- jr c, .asm_866c6
- ld de, String_866fc
- hlcoord 1, 2
- call PlaceString
- hlcoord 13, 2
- jr .asm_866de
-
-.asm_866c6
- ld de, String_8670c
- hlcoord 1, 2
- call PlaceString
- hlcoord 2, 2
- ld de, wc608
- lb bc, 1, 3
- call PrintNum
- hlcoord 11, 2
-
-.asm_866de
- ld de, String_866fb
- call PlaceString
- call WaitBGMap
- ld b, $1a
- call GetSGBLayout
- call SetPalettes
- decoord 6, 5
- ld c, $6
- predef Functiond066e
- and a
- ret
-; 866fb
-
-String_866fb:
- db "@"
-; 866fc
-
-String_866fc:
- db " HOF Master!@"
-; 8670c
-
-String_8670c:
- db " -Time Famer@"
-; 8671c
-
-
-Function8671c: ; 8671c
- ld a, [wJumptableIndex]
- cp NUM_HOF_TEAMS
- jr nc, .asm_86746
- ld hl, sHallOfFame
- ld bc, HOF_LENGTH
- call AddNTimes
- ld a, BANK(sHallOfFame)
- call GetSRAMBank
- ld a, [hl]
- and a
- jr z, .asm_86743
- ld de, wc608
- ld bc, HOF_LENGTH
- call CopyBytes
- call CloseSRAM
- and a
- ret
-
-.asm_86743
- call CloseSRAM
-
-.asm_86746
- scf
- ret
-; 86748
-
-Function86748: ; 86748
- xor a
- ld [hBGMapMode], a
- ld a, [hli]
- ld [TempMonSpecies], a
- ld a, [hli]
- ld [TempMonID], a
- ld a, [hli]
- ld [TempMonID + 1], a
- ld a, [hli]
- ld [TempMonDVs], a
- ld a, [hli]
- ld [TempMonDVs + 1], a
- ld a, [hli]
- ld [TempMonLevel], a
- ld de, StringBuffer2
- ld bc, 10
- call CopyBytes
- ld a, "@"
- ld [StringBuffer2 + 10], a
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- hlcoord 0, 0
- lb bc, 3, SCREEN_WIDTH - 2
- call TextBox
- hlcoord 0, 12
- lb bc, 4, SCREEN_WIDTH - 2
- call TextBox
- ld a, [TempMonSpecies]
- ld [CurPartySpecies], a
- ld [wd265], a
- ld hl, TempMonDVs
- predef GetUnownLetter
- xor a
- ld [wc2c6], a
- hlcoord 6, 5
- call _PrepMonFrontpic
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .asm_867f8
- hlcoord 1, 13
- ld a, $74
- ld [hli], a
- ld [hl], $f2
- hlcoord 3, 13
- ld de, wd265
- lb bc, PRINTNUM_LEADINGZEROS | 1, 3
- call PrintNum
- call GetBasePokemonName
- hlcoord 7, 13
- call PlaceString
- ld a, $3
- ld [MonType], a
- callba GetGender
- ld a, $7f
- jr c, .asm_867e2
- ld a, $ef
- jr nz, .asm_867e2
- ld a, $f5
-
-.asm_867e2
- hlcoord 18, 13
- ld [hli], a
- hlcoord 8, 14
- ld a, $f3
- ld [hli], a
- ld de, StringBuffer2
- call PlaceString
- hlcoord 1, 16
- call PrintLevel
-
-.asm_867f8
- hlcoord 7, 16
- ld a, $73
- ld [hli], a
- ld a, $74
- ld [hli], a
- ld [hl], $f3
- hlcoord 10, 16
- ld de, TempMonID
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- ret
-; 86810
-
-Function86810: ; 86810
- call ClearBGPalettes
- ld hl, VTiles2 tile $63
- ld de, FontExtra + $d0
- lb bc, BANK(FontExtra), 1
- call Request2bpp
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- callba GetPlayerBackpic
- ld a, $31
- ld [hFillBox], a
- hlcoord 6, 6
- lb bc, 6, 6
- predef FillBox
- ld a, $d0
- ld [hSCY], a
- ld a, $90
- ld [hSCX], a
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- ld [CurPartySpecies], a
- ld b, $1a
- call GetSGBLayout
- call SetPalettes
- call Function86635
- xor a
- ld [wc2c6], a
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- callba Function88840
- xor a
- ld [hFillBox], a
- hlcoord 12, 5
- lb bc, 7, 7
- predef FillBox
- ld a, $c0
- ld [hSCX], a
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- ld [hSCY], a
- call Function86643
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 2
- lb bc, 8, 9
- call TextBox
- hlcoord 0, 12
- lb bc, 4, 18
- call TextBox
- hlcoord 2, 4
- ld de, PlayerName
- call PlaceString
- hlcoord 1, 6
- ld a, $73
- ld [hli], a
- ld a, $74
- ld [hli], a
- ld [hl], $f3
- hlcoord 4, 6
- ld de, PlayerID
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- hlcoord 1, 8
- ld de, .PlayTime
- call PlaceString
- hlcoord 3, 9
- ld de, GameTimeHours
- lb bc, 2, 3
- call PrintNum
- ld [hl], $63
- inc hl
- ld de, GameTimeMinutes
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- call PrintNum
- call WaitBGMap
- callba Function26601
- ret
-; 868ed
-
-.PlayTime
- db "PLAY TIME@"
-; 868f7
-
-
SECTION "bank22", ROMX, BANK[$22]
INCLUDE "event/kurt.asm"
@@ -38807,16 +22228,16 @@
db $40 ; flags
db 00, 00 ; start coords
db 11, 10 ; end coords
- dw MenuData2_0x882be
+ dw .MaleNames
db 1 ; ????
db 0 ; default option
; 882be
-MenuData2_0x882be: ; 882be
+.MaleNames: ; 882be
db $91 ; flags
db 5 ; items
db "NEW NAME@"
-Unknown_882c9: ; 882c9
+MalePlayerNameArray: ; 882c9
db "CHRIS@"
db "MAT@"
db "ALLAN@"
@@ -38829,16 +22250,16 @@
db $40 ; flags
db 00, 00 ; start coords
db 11, 10 ; end coords
- dw MenuData2_0x882ee
+ dw .FemaleNames
db 1 ; ????
db 0 ; default option
; 882ee
-MenuData2_0x882ee: ; 882ee
+.FemaleNames: ; 882ee
db $91 ; flags
db 5 ; items
db "NEW NAME@"
-Unknown_882f9: ; 882f9
+FemalePlayerNameArray: ; 882f9
db "KRIS@"
db "AMANDA@"
db "JUANA@"
@@ -38849,11 +22270,11 @@
GetPlayerNameArray: ; 88318 This Function is never called
ld hl, PlayerName
- ld de, Unknown_882c9
+ ld de, MalePlayerNameArray
ld a, [PlayerGender]
bit 0, a
jr z, .done
- ld de, Unknown_882f9
+ ld de, FemalePlayerNameArray
.done
call InitName
@@ -38887,12 +22308,12 @@
ld hl, KrisCardPic
.GotClass
ld de, VTiles2 tile $00
- ld bc, $230
+ ld bc, $23 tiles
ld a, BANK(ChrisCardPic) ; BANK(KrisCardPic)
call FarCopyBytes
ld hl, CardGFX
ld de, VTiles2 tile $23
- ld bc, $60
+ ld bc, 6 tiles
ld a, BANK(CardGFX)
call FarCopyBytes
ret
@@ -39049,329 +22470,18 @@
ret
; 8c7d4
-PlayWhirlpoolSound: ; 8c7d4
- call WaitSFX
- ld de, SFX_SURF
- call PlaySFX
- call WaitSFX
- ret
-; 8c7e1
+INCLUDE "event/field_moves.asm"
-BlindingFlash: ; 8c7e1
- callba FadeOutPalettes
- ld hl, StatusFlags
- set 2, [hl]
- callba Function8c0e5
- callba Function8c001
- ld b, $9
- call GetSGBLayout
- callba Function49409
- callba FadeInPalettes
- ret
-; 8c80a
-
-ShakeHeadbuttTree: ; 8c80a
- callba Function8cf53
- ld de, CutGrassGFX
- ld hl, VTiles1
- lb bc, BANK(CutGrassGFX), 4
- call Request2bpp
- ld de, HeadbuttTreeGFX
- ld hl, VTiles1 tile $04
- lb bc, BANK(HeadbuttTreeGFX), 8
- call Request2bpp
- call Function8cad3
- ld a, $1b
- call Function3b2a
- ld hl, $3
- add hl, bc
- ld [hl], $84
- ld a, $90
- ld [wc3b5], a
- callba Function8cf7a
- call GetHeadbuttTreeRelativeLocation
- ld a, $20
- ld [wcf64], a
- call WaitSFX
- ld de, SFX_SANDSTORM
- call PlaySFX
-.loop
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .done
- dec [hl]
- ld a, $90
- ld [wc3b5], a
- callba Function8cf7a
+Function8caed: ; 8caed
call DelayFrame
- jr .loop
-
-.done
- call OverworldTextModeSwitch
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- callba Function8cf53
- ld hl, Sprites + $90
- ld bc, $10
- xor a
- call ByteFill
- ld de, Font
- ld hl, VTiles1
- lb bc, BANK(Font), $c
- call Get1bpp
- call ReplaceKrisSprite
- ret
-; 8c893
-
-HeadbuttTreeGFX: ; 8c893
-INCBIN "gfx/unknown/08c893.2bpp"
-; 8c913
-
-GetHeadbuttTreeRelativeLocation: ; 8c913
- xor a
- ld [hBGMapMode], a
- ld a, [PlayerDirection]
- and %00001100
- srl a
- ld e, a
- ld d, 0
- ld hl, TreeRelativeLocationTable
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
- ld a, $5
- ld [hli], a
- ld [hld], a
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hli], a
- ld [hld], a
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- ret
-; 8c938
-
-TreeRelativeLocationTable: ; 8c938
- dwcoord 8, 8 + 2 ; RIGHT
- dwcoord 8, 8 - 2 ; LEFT
- dwcoord 8 - 2, 8 ; DOWN
- dwcoord 8 + 2, 8 ; UP
-; 8c940
-
-OWCutAnimation: ; 8c940
- ld a, e
- and $1
- ld [wJumptableIndex], a
- call .LoadCutGFX
- call WaitSFX
- ld de, SFX_PLACE_PUZZLE_PIECE_DOWN
- call PlaySFX
-.loop
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .finish
- ld a, $90
- ld [wc3b5], a
- callab Function8cf7a
- call OWCutJumptable
- call DelayFrame
- jr .loop
-
-.finish
- ret
-; 8c96d
-
-.LoadCutGFX: ; 8c96d
- callab Function8cf53 ; pointless to farcall
- ld de, CutGrassGFX
- ld hl, VTiles1
- lb bc, BANK(CutGrassGFX), 4
- call Request2bpp
- ld de, CutTreeGFX
- ld hl, VTiles1 tile $4
- lb bc, BANK(CutTreeGFX), 4
- call Request2bpp
- ret
-; 8c98c
-
-CutTreeGFX: ; c898c
-INCBIN "gfx/misc/cut_tree.2bpp"
-; c89cc
-
-CutGrassGFX: ; 8c9cc
-INCBIN "gfx/misc/cut_grass.2bpp"
-; 8ca0c
-
-OWCutJumptable: ; 8ca0c
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, .jumptable
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 8ca1b
-
-
-.jumptable: ; 8ca1b (23:4a1b)
- dw Function8ca23
- dw Function8ca3c
- dw Function8ca5c
- dw Function8ca64
-
-
-Function8ca23: ; 8ca23 (23:4a23)
- call Function8cad3
- ld a, $17
- call Function3b2a
- ld hl, $3
- add hl, bc
- ld [hl], $84
- ld a, $20
- ld [wcf64], a
- ld hl, wJumptableIndex
-rept 2
- inc [hl]
-endr
- ret
-
-Function8ca3c: ; 8ca3c (23:4a3c)
- call Function8ca8e
- xor a
- call Function8ca73
- ld a, $10
- call Function8ca73
- ld a, $20
- call Function8ca73
- ld a, $30
- call Function8ca73
- ld a, $20
- ld [wcf64], a
- ld hl, wJumptableIndex
- inc [hl]
- ret
-
-Function8ca5c: ; 8ca5c (23:4a5c)
- ld a, $1
- ld [hBGMapMode], a
- ld hl, wJumptableIndex
- inc [hl]
-
-Function8ca64: ; 8ca64 (23:4a64)
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .asm_8ca6d
- dec [hl]
- ret
-.asm_8ca6d
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-Function8ca73: ; 8ca73 (23:4a73)
- push de
- push af
- ld a, $16
- call Function3b2a
- ld hl, $3
- add hl, bc
- ld [hl], $80
- ld hl, $e
- add hl, bc
- ld [hl], $4
- pop af
- ld hl, $c
- add hl, bc
- ld [hl], a
- pop de
- ret
-
-Function8ca8e: ; 8ca8e (23:4a8e)
- ld de, 0
- ld a, [wd197]
- bit 0, a
- jr z, .asm_8ca9a
- set 0, e
-.asm_8ca9a
- ld a, [wd196]
- bit 0, a
- jr z, .asm_8caa3
- set 1, e
-.asm_8caa3
- ld a, [PlayerDirection]
- and $c
- add e
- ld e, a
- ld hl, Unknown_8cab3
-rept 2
- add hl, de
-endr
- ld e, [hl]
- inc hl
- ld d, [hl]
- ret
-; 8cab3 (23:4ab3)
-
-Unknown_8cab3: ; 8cab3
- db $58, $60
- db $48, $60
- db $58, $70
- db $48, $70
- db $58, $40
- db $48, $40
- db $58, $50
- db $48, $50
- db $38, $60
- db $48, $60
- db $38, $50
- db $48, $50
- db $58, $60
- db $68, $60
- db $58, $50
- db $68, $50
-; 8cad3
-
-Function8cad3: ; 8cad3 (23:4ad3)
- ld a, [PlayerDirection]
- and $c
- srl a
- ld e, a
- ld d, 0
- ld hl, Unknown_8cae5
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- ret
-; 8cae5 (23:4ae5)
-
-Unknown_8cae5: ; 8cae5
- db $50, $68
- db $50, $48
- db $40, $58
- db $60, $58
-; 8caed
-
-Function8caed: ; 8caed
- call DelayFrame
ld a, [VramState]
push af
xor a
ld [VramState], a
call Function8cb9b
- ld de, $5450
- ld a, $a
- call Function3b2a
+ depixel 10, 10, 4, 0
+ ld a, SPRITE_ANIM_INDEX_0A
+ call _InitSpriteAnimStruct
ld hl, $3
add hl, bc
ld [hl], $84
@@ -39403,9 +22513,9 @@
xor a
ld [VramState], a
call Function8cb9b
- ld de, $fc50
- ld a, $a
- call Function3b2a
+ depixel 31, 10, 4, 0
+ ld a, SPRITE_ANIM_INDEX_0A
+ call _InitSpriteAnimStruct
ld hl, $3
add hl, bc
ld [hl], $84
@@ -39501,499 +22611,15 @@
add $40
ld d, a
ld e, $0
- ld a, $18
- call Function3b2a
+ ld a, SPRITE_ANIM_INDEX_18 ; fly land
+ call _InitSpriteAnimStruct
ld hl, $3
add hl, bc
ld [hl], $80
ret
-Special_MagnetTrain: ; 8cc04
- ld a, [ScriptVar]
- and a
- jr nz, .ToGoldenrod
- ld a, 1 ; forwards
- lb bc, $40, $60
- ld de, $fca0
- jr .continue
+INCLUDE "event/magnet_train.asm"
-.ToGoldenrod
- ld a, -1 ; backwards
- lb bc, $c0, $a0
- ld de, $b460
-
-.continue
- ld h, a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld a, h
- ld [w5_d191], a
- ld a, c
- ld [w5_d192], a
- ld a, b
- ld [w5_d193], a
- ld a, e
- ld [w5_d194], a
- ld a, d
- ld [w5_d195], a
- ld a, [hSCX]
- push af
- ld a, [hSCY]
- push af
- call Function8ccc9
- ld hl, hVBlank
- ld a, [hl]
- push af
- ld [hl], $1
-.loop
- ld a, [wJumptableIndex]
- and a
- jr z, .initialize
- bit 7, a
- jr nz, .done
- callab Function8cf69
- call Function8cdf7
- call Function8cc99
- call Function3b0c
- call DelayFrame
- jr .loop
-
-.initialize
- call Function8ceae
- jr .loop
-
-.done
- pop af
- ld [hVBlank], a
- call ClearBGPalettes
- xor a
- ld [hLCDStatCustom], a
- ld [hLCDStatCustom + 1], a
- ld [hLCDStatCustom + 2], a
- ld [hSCX], a
- ld [Requested2bppSource], a
- ld [Requested2bppSource + 1], a
- ld [Requested2bppDest], a
- ld [Requested2bppDest + 1], a
- ld [Requested2bpp], a
- call ClearTileMap
- pop af
- ld [hSCY], a
- pop af
- ld [hSCX], a
- xor a
- ld [hBGMapMode], a
- pop af
- ld [rSVBK], a
- ret
-; 8cc99
-
-Function8cc99: ; 8cc99
- ld hl, LYOverridesBackup
- ld c, $2f
- ld a, [wcf64]
- add a
- ld [hSCX], a
- call Function8ccc4
- ld c, $30
- ld a, [wcf65]
- call Function8ccc4
- ld c, $31
- ld a, [wcf64]
- add a
- call Function8ccc4
- ld a, [wd191]
- ld d, a
- ld hl, wcf64
- ld a, [hl]
-rept 2
- add d
-endr
- ld [hl], a
- ret
-; 8ccc4
-
-Function8ccc4: ; 8ccc4
-.asm_8ccc4
- ld [hli], a
- dec c
- jr nz, .asm_8ccc4
- ret
-; 8ccc9
-
-Function8ccc9: ; 8ccc9
- call ClearBGPalettes
- call ClearSprites
- call DisableLCD
- callab Function8cf53
- call SetMagnetTrainPals
- call DrawMagnetTrain
- ld a, $90
- ld [hWY], a
- call EnableLCD
- xor a
- ld [hBGMapMode], a
- ld [hSCX], a
- ld [hSCY], a
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- callba GetPlayerIcon
- pop af
- ld [rSVBK], a
- ld hl, VTiles0
- ld c, $4
- call Request2bpp
- ld hl, $c0
- add hl, de
- ld d, h
- ld e, l
- ld hl, VTiles0 tile $04
- ld c, $4
- call Request2bpp
- call Function8cda6
- ld hl, wJumptableIndex
- xor a
- ld [hli], a
- ld a, [wd192]
-rept 3
- ld [hli], a
-endr
- ld de, MUSIC_MAGNET_TRAIN
- call PlayMusic2
- ret
-; 8cd27
-
-DrawMagnetTrain: ; 8cd27
- ld hl, VBGMap0
- xor a
-.asm_8cd2b
- call GetMagnetTrainBGTiles
- ld b, 32 / 2
- call .FillAlt
- inc a
- cp $12
- jr c, .asm_8cd2b
- ld hl, VBGMap0 tile $0c
- ld de, MagnetTrainTilemap1
- ld c, 20
- call .FillLine
- ld hl, VBGMap0 tile $0e
- ld de, MagnetTrainTilemap2
- ld c, 20
- call .FillLine
- ld hl, VBGMap0 tile $10
- ld de, MagnetTrainTilemap3
- ld c, 20
- call .FillLine
- ld hl, VBGMap0 tile $12
- ld de, MagnetTrainTilemap4
- ld c, 20
- call .FillLine
- ret
-; 8cd65
-
-.FillLine ; 8cd65
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr nz, .FillLine
- ret
-; 8cd6c
-
-.FillAlt ; 8cd6c
- ld [hl], e
- inc hl
- ld [hl], d
- inc hl
- dec b
- jr nz, .FillAlt
- ret
-; 8cd74
-
-GetMagnetTrainBGTiles: ; 8cd74
- push hl
- ld e, a
- ld d, 0
- ld hl, MagnetTrainBGTiles
-rept 2
- add hl, de
-endr
- ld e, [hl]
- inc hl
- ld d, [hl]
- pop hl
- ret
-; 8cd82
-
-MagnetTrainBGTiles: ; 8cd82
-; Alternating tiles for each line
-; of the Magnet Train tilemap.
- db $4c, $4d ; bush
- db $5c, $5d ; bush
- db $4c, $4d ; bush
- db $5c, $5d ; bush
- db $08, $08 ; fence
- db $18, $18 ; fence
- db $1f, $1f ; track
- db $31, $31 ; track
- db $11, $11 ; track
- db $11, $11 ; track
- db $0d, $0d ; track
- db $31, $31 ; track
- db $04, $04 ; fence
- db $18, $18 ; fence
- db $4c, $4d ; bush
- db $5c, $5d ; bush
- db $4c, $4d ; bush
- db $5c, $5d ; bush
-; 8cda6
-
-Function8cda6: ; 8cda6
- ld hl, LYOverrides
- ld bc, $90
- ld a, [wd192]
- call ByteFill
- ld hl, LYOverridesBackup
- ld bc, $90
- ld a, [wd192]
- call ByteFill
- ld a, $43
- ld [hLCDStatCustom], a
- ret
-; 8cdc3
-
-SetMagnetTrainPals: ; 8cdc3
- ld a, $1
- ld [rVBK], a
-
- ; bushes
- ld hl, VBGMap0
- ld bc, 8 tiles
- ld a, $2
- call ByteFill
-
- ; train
- ld hl, VBGMap0 tile $08
- ld bc, 20 tiles
- xor a
- call ByteFill
-
- ; more bushes
- ld hl, VBGMap0 tile $1c
- ld bc, 8 tiles
- ld a, $2
- call ByteFill
-
- ; train window
- ld hl, VBGMap0 tile $10 + 7
- ld bc, 6
- ld a, $4
- call ByteFill
-
- ld a, $0
- ld [rVBK], a
- ret
-; 8cdf7
-
-Function8cdf7: ; 8cdf7
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, Jumptable_8ce06
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 8ce06
-
-Jumptable_8ce06: ; 8ce06
- dw Function8ce19
- dw Function8ce6d
- dw Function8ce47
- dw Function8ce6d
- dw Function8ce7a
- dw Function8ce6d
- dw Function8cea2
-; 8ce14
-
-Function8ce14: ; 8ce14
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; 8ce19
-
-Function8ce19: ; 8ce19
- ld d, $55
- ld a, [wd194 + 1]
- ld e, a
- ld b, $15
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, [PlayerGender]
- bit 0, a
- jr z, .asm_8ce31
- ld b, $1f
-
-.asm_8ce31
- pop af
- ld [rSVBK], a
- ld a, b
- call Function3b2a
- ld hl, $3
- add hl, bc
- ld [hl], $0
- call Function8ce14
- ld a, $80
- ld [wcf66], a
- ret
-; 8ce47
-
-Function8ce47: ; 8ce47
- ld hl, wd193
- ld a, [wcf65]
- cp [hl]
- jr z, .asm_8ce64
- ld e, a
- ld a, [wd191]
- xor $ff
- inc a
- add e
- ld [wcf65], a
- ld hl, wc3c0
- ld a, [wd191]
- add [hl]
- ld [hl], a
- ret
-
-.asm_8ce64
- call Function8ce14
- ld a, $80
- ld [wcf66], a
- ret
-; 8ce6d
-
-Function8ce6d: ; 8ce6d
- ld hl, wcf66
- ld a, [hl]
- and a
- jr z, .asm_8ce76
- dec [hl]
- ret
-
-.asm_8ce76
- call Function8ce14
- ret
-; 8ce7a
-
-Function8ce7a: ; 8ce7a
- ld hl, wd194
- ld a, [wcf65]
- cp [hl]
- jr z, .asm_8ce9e
- ld e, a
- ld a, [wd191]
- xor $ff
- inc a
- ld d, a
- ld a, e
-rept 2
- add d
-endr
- ld [wcf65], a
- ld hl, wc3c0
- ld a, [wd191]
- ld d, a
- ld a, [hl]
-rept 2
- add d
-endr
- ld [hl], a
- ret
-
- ret
-
-.asm_8ce9e
- call Function8ce14
- ret
-; 8cea2
-
-Function8cea2: ; 8cea2
- ld a, $80
- ld [wJumptableIndex], a
- ld de, SFX_TRAIN_ARRIVED
- call PlaySFX
- ret
-; 8ceae
-
-Function8ceae: ; 8ceae
- callba Function8cf69
- call Function8cdf7
- call Function8cc99
- call Function3b0c
- call DelayFrame
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, [TimeOfDayPal]
- push af
- ld a, [wPermission]
- push af
- ld a, [TimeOfDay]
- and $3
- ld [TimeOfDayPal], a
- ld a, $1
- ld [wPermission], a
- ld b, $9
- call GetSGBLayout
- call UpdateTimePals
- ld a, [rBGP]
- ld [wcfc7], a
- ld a, [rOBP0]
- ld [wcfc8], a
- ld a, [rOBP1]
- ld [wcfc9], a
- pop af
- ld [wPermission], a
- pop af
- ld [TimeOfDayPal], a
- pop af
- ld [rSVBK], a
- ret
-; 8ceff
-
-MagnetTrainTilemap1:
- db $1f, $05, $06, $0a, $0a
- db $0a, $09, $0a, $0a, $0a
- db $0a, $0a, $0a, $09, $0a
- db $0a, $0a, $0b, $0c, $1f
-MagnetTrainTilemap2:
- db $14, $15, $16, $1a, $1a
- db $1a, $19, $1a, $1a, $1a
- db $1a, $1a, $1a, $19, $1a
- db $1a, $1a, $1b, $1c, $1d
-MagnetTrainTilemap3:
- db $24, $25, $26, $27, $07
- db $2f, $29, $28, $28, $28
- db $28, $28, $28, $29, $07
- db $2f, $2a, $2b, $2c, $2d
-MagnetTrainTilemap4:
- db $20, $1f, $2e, $1f, $17
- db $00, $2e, $1f, $1f, $1f
- db $1f, $1f, $1f, $2e, $17
- db $00, $1f, $2e, $1f, $0f
-; 8cf4f
-
Function8cf4f: ; 8cf4f
call Function3238
ret
@@ -40000,6057 +22626,26 @@
; 8cf53
-Function8cf53: ; 8cf53
- ld hl, wc300
- ld bc, $c1
-.asm_8cf59
- ld [hl], $0
- inc hl
- dec bc
- ld a, c
- or b
- jr nz, .asm_8cf59
- ret
-; 8cf62
+INCLUDE "engine/sprites.asm"
-Function8cf62: ; 8cf62
- call Function8cf69
- call DelayFrame
- ret
-; 8cf69
-Function8cf69: ; 8cf69
- push hl
- push de
- push bc
- push af
-
- ld a, $0
- ld [wc3b5], a
- call Function8cf7a
-
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 8cf7a
-
-Function8cf7a: ; 8cf7a
- ld hl, wc314
- ld e, 10 ; There are 10 structs here.
-
-.loop
- ld a, [hl]
- and a
- jr z, .next ; This struct is deinitialized.
- ld c, l
- ld b, h
- push hl
- push de
- call Function8d24b ; Uses a massive jumptable
- call LoadBouncingMonIcon
- pop de
- pop hl
- jr c, .done
-
-.next
- ld bc, $10
- add hl, bc
- dec e
- jr nz, .loop
-
- ld a, [wc3b5]
- ld l, a
- ld h, Sprites / $0100
-
-.loop2 ; Clear (Sprites + [wc3b5] --> SpritesEnd)
- ld a, l
- cp SpritesEnd % $100
- jr nc, .done
- xor a
- ld [hli], a
- jr .loop2
-
-.done
- ret
-; 8cfa8
-
-Function8cfa8: ; 8cfa8 (23:4fa8)
- ld hl, wc314
- ld e, 10
-
-.loop
- ld a, [hl]
- and a
- jr z, .next
- ld c, l
- ld b, h
- push hl
- push de
- call Function8d24b ; Uses a massive jumptable
- call LoadBouncingMonIcon
- pop de
- pop hl
- jr c, .done
-
-.next
- ld bc, $10
- add hl, bc
- dec e
- jr nz, .loop
-
- ld a, [wc3b5]
- ld l, a
- ld h, (Sprites + $40) / $100
-
-.loop2 ; Clear (Sprites + [wc3b5] --> Sprites + $40)
- ld a, l
- cp (Sprites + $40) % $100
- jr nc, .done
- xor a
- ld [hli], a
- jr .loop2
-
-.done
- ret
-
-Function8cfd6:: ; 8cfd6
-; Find if there's any room in the wc314 array, which is 10x16
- push de
- push af
- ld hl, wc314
- ld e, 10
-.loop
- ld a, [hl]
- and a
- jr z, .found
- ld bc, $10
- add hl, bc
- dec e
- jr nz, .loop
-; We've reached the end. There is no more room here.
-; Return carry.
- pop af
- pop de
- scf
- ret
-
-.found
-; Back up the structure address to bc.
- ld c, l
- ld b, h
-; Value [wc3b4] is initially set to -1. Set it to
-; the number of objects loaded into this array.
- ld hl, wc3b4
- inc [hl]
- ld a, [hl]
- and a
- jr nz, .initialized
- inc [hl]
-
-.initialized
-; Get row a of Unknown_8d1c4, copy the pointer into de
- pop af
- ld e, a
- ld d, 0
- ld hl, Unknown_8d1c4
-rept 3
- add hl, de
-endr
- ld e, l
- ld d, h
-; Set hl to the first field (field 0) in the current structure.
- ld hl, 0
- add hl, bc
-; Load the index.
- ld a, [wc3b4]
- ld [hli], a
-; Copy the table entry to the next two fields.
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
-; Look up the third field from the table in the wc300 array (10x2).
-; Take the value and load it in
- ld a, [de]
- call LookUpInwDict_c300
- ld [hli], a
- pop de
-; Set hl to field 4. Kinda pointless, because we're presumably already here.
- ld hl, $4
- add hl, bc
-; Load the original value of de into here.
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
-; load 0 into the next four fields
- xor a
-rept 2
- ld [hli], a
-endr
- xor a
-rept 2
- ld [hli], a
-endr
-; load -1 into the next field
- dec a
- ld [hli], a
-; load 0 into the last five fields
- xor a
-rept 4
- ld [hli], a
-endr
- ld [hl], a
-; back up the address of the first field to wc3b8
- ld a, c
- ld [wc3b8], a
- ld a, b
- ld [wc3b8 + 1], a
- ret
-; 8d036
-
-Function8d036: ; 8d036
-; Clear the index field of the struct in bc.
- ld hl, 0
- add hl, bc
- ld [hl], $0
- ret
-; 8d03d
-
-
-Function8d03d: ; 8d03d (23:503d)
-; Clear the index field of every struct in the wc314 array.
- ld hl, wc314
- ld bc, $10
- ld e, 10
- xor a
-.loop
- ld [hl], a
- add hl, bc
- dec e
- jr nz, .loop
- ret
-
-
-LoadBouncingMonIcon: ; 8d04c
-; Populate Sprites with the bouncing mon icons
- call Function8d0ec
- call Function8d132
- cp EGG
- jr z, .done
- cp NUM_POKEMON + 1
- jr z, .almost
- call Function8d1a2
- ld a, [wc3ba]
- add [hl]
- ld [wc3ba], a
- inc hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- push bc
- ld a, [wc3b5]
- ld e, a
- ld d, Sprites / $100
- ld a, [hli]
- ld c, a
-.loop
- ld a, [wc3bc]
- ld b, a
- ld a, [wc3be]
- add b
- ld b, a
- ld a, [wc3bf]
- add b
- ld b, a
- call Function8d0be
- add b
- ld [de], a
- inc hl
- inc de
- ld a, [wc3bb]
- ld b, a
- ld a, [wc3bd]
- add b
- ld b, a
- ld a, [wc3c0]
- add b
- ld b, a
- call Function8d0ce
- add b
- ld [de], a
- inc hl
- inc de
- ld a, [wc3ba]
- add [hl]
- ld [de], a
- inc hl
- inc de
- call Function8d0de
- ld [de], a
- inc hl
- inc de
- ld a, e
- ld [wc3b5], a
- cp SpritesEnd % $100
- jr nc, .outofroom
- dec c
- jr nz, .loop
- pop bc
- jr .done
-
-.almost
- call Function8d036
-
-.done
- and a
- ret
-
-.outofroom
- pop bc
- scf
- ret
-; 8d0be
-
-Function8d0be: ; 8d0be
- push hl
- ld a, [hl]
- ld hl, wc3b8
- bit 6, [hl]
- jr z, .ok
- add $8
- xor $ff
- inc a
-
-.ok
- pop hl
- ret
-; 8d0ce
-
-Function8d0ce: ; 8d0ce
- push hl
- ld a, [hl]
- ld hl, wc3b8
- bit 5, [hl]
- jr z, .ok
- add $8
- xor $ff
- inc a
-
-.ok
- pop hl
- ret
-; 8d0de
-
-Function8d0de: ; 8d0de
- ld a, [wc3b8]
- ld b, a
- ld a, [hl]
- xor b
- and $e0
- ld b, a
- ld a, [hl]
- and $1f
- or b
- ret
-; 8d0ec
-
-Function8d0ec: ; 8d0ec
- xor a
- ld [wc3b8], a
- ld hl, $3
- add hl, bc
- ld a, [hli]
- ld [wc3ba], a
- ld a, [hli]
- ld [wc3bb], a
- ld a, [hli]
- ld [wc3bc], a
- ld a, [hli]
- ld [wc3bd], a
- ld a, [hli]
- ld [wc3be], a
- ret
-; 8d109
-
-LookUpInwDict_c300: ; 8d109
-; a = wDict_c300[a] if a in wDict_c300 else 0
- push hl
- push bc
- ld hl, wDict_c300
- ld b, a
- ld c, 10
-.loop
- ld a, [hli]
- cp b
- jr z, .ok
- inc hl
- dec c
- jr nz, .loop
- xor a
- jr .done
-
-.ok
- ld a, [hl]
-
-.done
- pop bc
- pop hl
- ret
-; 8d120
-
-Function8d120:: ; 8d120
- ld hl, $1
- add hl, bc
- ld [hl], a
- ld hl, $8
- add hl, bc
- ld [hl], $0
- ld hl, $a
- add hl, bc
- ld [hl], $ff
- ret
-; 8d132
-
-
-Function8d132: ; 8d132
-.loop
- ld hl, $8
- add hl, bc
- ld a, [hl]
- and a
- jr z, .ok
- dec [hl]
- call Function8d189
- ld a, [hli]
- push af
- jr .skip
-
-.ok
- ld hl, $a
- add hl, bc
- inc [hl]
- call Function8d189
- ld a, [hli]
- cp $fe
- jr z, .minus_2
- cp $ff
- jr z, .minus_1
- push af
- ld a, [hl]
- push hl
- and $3f
- ld hl, $9
- add hl, bc
- add [hl]
- ld hl, $8
- add hl, bc
- ld [hl], a
- pop hl
-
-.skip
- ld a, [hl]
- and $c0
- srl a
- ld [wc3b8], a
- pop af
- ret
-
-.minus_1
- xor a
- ld hl, $8
- add hl, bc
- ld [hl], a
- ld hl, $a
- add hl, bc
-rept 2
- dec [hl]
-endr
- jr .loop
-
-.minus_2
- xor a
- ld hl, $8
- add hl, bc
- ld [hl], a
- dec a
- ld hl, $a
- add hl, bc
- ld [hl], a
- jr .loop
-; 8d189
-
-Function8d189: ; 8d189
- ; Get the [bc+10]th entry in the data table
- ; indexed at [bc+1] in Unknown_8d6e6
- ld hl, $1
- add hl, bc
- ld e, [hl]
- ld d, 0
- ld hl, Unknown_8d6e6
-rept 2
- add hl, de
-endr
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $a
- add hl, bc
- ld l, [hl]
- ld h, 0
- add hl, hl
- add hl, de
- ret
-; 8d1a2
-
-Function8d1a2: ; 8d1a2
- ld e, a
- ld d, 0
- ld hl, Unknown_8d94d
-rept 3
- add hl, de
-endr
- ret
-; 8d1ac
-
-Function8d1ac: ; unreferenced
- push hl
- ld l, a
- ld h, 0
-rept 2
- add hl, hl
-endr
- ld de, Unknown_8e706
- add hl, de
- ld c, [hl]
- inc hl
- ld b, [hl]
- inc hl
- ld e, [hl]
- inc hl
- ld d, [hl]
- pop hl
- push bc
- call Request2bpp
- pop bc
- ret
-; 8d1c4
-
-Unknown_8d1c4: ; 8d1c4
- db $01, JUMPTABLE_8D24B_FUNCTION_01, $00 ; 00
- db $07, JUMPTABLE_8D24B_FUNCTION_04, $00 ; 01
- db $08, JUMPTABLE_8D24B_FUNCTION_05, $05 ; 02
- db $0a, JUMPTABLE_8D24B_FUNCTION_06, $00 ; 03
- db $0b, JUMPTABLE_8D24B_FUNCTION_07, $06 ; 04
- db $0c, JUMPTABLE_8D24B_FUNCTION_08, $06 ; 05
- db $0d, JUMPTABLE_8D24B_FUNCTION_09, $07 ; 06
- db $0e, JUMPTABLE_8D24B_FUNCTION_0A, $07 ; 07
- db $10, JUMPTABLE_8D24B_FUNCTION_0B, $07 ; 08
- db $08, JUMPTABLE_8D24B_FUNCTION_0C, $05 ; 09
- db $11, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 0a
- db $12, JUMPTABLE_8D24B_FUNCTION_0D, $08 ; 0b
- db $12, JUMPTABLE_8D24B_FUNCTION_0E, $08 ; 0c
- db $12, JUMPTABLE_8D24B_FUNCTION_0F, $08 ; 0d
- db $13, JUMPTABLE_8D24B_FUNCTION_10, $00 ; 0e
- db $15, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 0f
- db $16, JUMPTABLE_8D24B_FUNCTION_11, $00 ; 10
- db $17, JUMPTABLE_8D24B_FUNCTION_12, $00 ; 11
- db $18, JUMPTABLE_8D24B_FUNCTION_12, $00 ; 12
- db $19, JUMPTABLE_8D24B_FUNCTION_13, $00 ; 13
- db $1a, JUMPTABLE_8D24B_FUNCTION_14, $00 ; 14
- db $1b, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 15
- db $1d, JUMPTABLE_8D24B_FUNCTION_15, $00 ; 16
- db $1e, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 17
- db $1d, JUMPTABLE_8D24B_FUNCTION_17, $00 ; 18
- db $1f, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 19
- db $24, JUMPTABLE_8D24B_FUNCTION_19, $00 ; 1a
- db $25, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1b
- db $20, JUMPTABLE_8D24B_FUNCTION_13, $00 ; 1c
- db $26, JUMPTABLE_8D24B_FUNCTION_1A, $00 ; 1d
- db $2d, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1e
- db $2e, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1f
- db $2f, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 20
- db $30, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 21
- db $31, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 22
- db $32, JUMPTABLE_8D24B_FUNCTION_1B, $00 ; 23
- db $33, JUMPTABLE_8D24B_FUNCTION_1C, $00 ; 24
- db $34, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 25
- db $35, JUMPTABLE_8D24B_FUNCTION_1D, $00 ; 26
- db $37, JUMPTABLE_8D24B_FUNCTION_1E, $00 ; 27
- db $38, JUMPTABLE_8D24B_FUNCTION_1E, $00 ; 28
- db $39, JUMPTABLE_8D24B_FUNCTION_20, $00 ; 29
- db $3f, JUMPTABLE_8D24B_FUNCTION_21, $00 ; 2a
- db $3e, JUMPTABLE_8D24B_FUNCTION_22, $00 ; 2b
- db $40, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 2c
-; 8d24b
-
-
-Function8d24b: ; 8d24b
- ld hl, $2 ; field 2, see the second column in the above table
- add hl, bc
- ld e, [hl]
- ld d, 0
- ld hl, .Jumptable
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 8d25b
-
-
-.Jumptable: ; 8d25b (23:525b)
- dw .zero
- dw .one
- dw .two
- dw .three
- dw .four
- dw .five
- dw .six
- dw .seven
- dw .eight
- dw .nine
- dw .ten
- dw .eleven
- dw .twelve
- dw .thirteen
- dw .fourteen
- dw .fifteen
- dw .sixteen
- dw .seventeen
- dw .eighteen
- dw .nineteen
- dw .twenty
- dw .twentyone
- dw .twentytwo
- dw .twentythree
- dw .twentyfour
- dw .twentyfive
- dw .twentysix
- dw .twentyseven
- dw .twentyeight
- dw .twentynine
- dw .thirty
- dw .thirtyone
- dw .thirtytwo
- dw .thirtythree
- dw .thirtyfour
-
-
-.zero: ; 8d2a1 (23:52a1)
- ret
-
-.one: ; 8d2a2 (23:52a2)
- ld a, [MenuSelection2]
- ld hl, 0
- add hl, bc
- cp [hl]
- jr z, .two
- ld hl, $4
- add hl, bc
- ld [hl], $10
- ld hl, $7
- add hl, bc
- ld [hl], $0
- ret
-
-.two: ; 8d2b9 (23:52b9)
- ld hl, $4
- add hl, bc
- ld [hl], $18
- ld hl, $c
- add hl, bc
- ld a, [hl]
- ld d, a
- inc [hl]
- and $f
- ret nz
- ld hl, $d
- add hl, bc
- ld e, [hl]
- ld hl, $7
- add hl, bc
- ld a, d
- and $10 ; bit 4
- jr z, .asm_8d2df
- ld a, e
- and a
- jr z, .asm_8d2e6
- cp $1
- jr z, .asm_8d2e2
-.asm_8d2df
- xor a
- ld [hl], a
- ret
-.asm_8d2e2
- ld a, $ff
- ld [hl], a
- ret
-.asm_8d2e6
- ld a, $fe
- ld [hl], a
- ret
-
-.three: ; 8d2ea (23:52ea)
- ld a, [MenuSelection2]
- ld hl, 0
- add hl, bc
- cp [hl]
- jr z, .asm_8d2fb
- ld hl, $4
- add hl, bc
- ld [hl], $10
- ret
-.asm_8d2fb
- ld hl, $4
- add hl, bc
- ld [hl], $18
- ret
-
-.four: ; 8d302 (23:5302)
- call .anonymous_jumptable
- jp [hl]
-; 8d306 (23:5306)
-
-; Anonymous jumptable (see .anonymous_jumptable)
- dw .four_zero
- dw .four_one
-; 8d30a
-
-.four_zero: ; 8d30a
- call Function8d6d8
- ld hl, 0
- add hl, bc
- ld a, [hl]
- ld hl, $d
- add hl, bc
- and $3
- ld [hl], a
- inc [hl]
- swap a
- ld hl, $c
- add hl, bc
- ld [hl], a
-
-.four_one: ; 8d321
- ld hl, $4
- add hl, bc
- ld a, [hl]
- cp $a4
- jr nc, .asm_8d356
- ld hl, $d
- add hl, bc
- add $4
- ld hl, $4
- add hl, bc
- ld [hl], a
- ld hl, $5
- add hl, bc
- inc [hl]
- ld hl, $d
- add hl, bc
- ld a, [hl]
- sla a
- sla a
- ld d, $2
- ld hl, $c
- add hl, bc
- ld a, [hl]
- add $3
- ld [hl], a
- call Function8d6de
- ld hl, $7
- add hl, bc
- ld [hl], a
- ret
-
-.asm_8d356
- call Function8d036
- ret
-; 8d35a
-
-.twentyfive: ; 8d35a (23:535a)
- ld hl, $c
- add hl, bc
- ld a, [hl]
- inc a
- ld [hl], a
- ld d, $2
- call Function8d6de
- ld hl, $7
- add hl, bc
- ld [hl], a
- ret
-
-.five: ; 8d36c (23:536c)
- callab Function11a3b
- ret
-
-.twelve: ; 8d373 (23:5373)
- callab Function120c1
- ret
-
-.six: ; 8d37a (23:537a)
- callab GameFreakLogoJumper
- ret
-
-.seven: ; 8d381 (23:5381)
- ld hl, $c
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_8d3ba
-rept 2
- dec [hl]
-endr
- ld d, a
- and $1f
- jr nz, .asm_8d395
- ld hl, $d
- add hl, bc
- dec [hl]
-.asm_8d395
- ld hl, $b
- add hl, bc
- ld a, [hl]
- push af
- push de
- call Function8d6de
- ld hl, $7
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Function8d6e2
- ld hl, $6
- add hl, bc
- ld [hl], a
- ld hl, $d
- add hl, bc
- ld a, [hl]
- ld hl, $b
- add hl, bc
- add [hl]
- ld [hl], a
- ret
-.asm_8d3ba
- ld a, $1
- ld [wcf64], a
- call Function8d036
- ret
-
-.eight: ; 8d3c3 (23:53c3)
- ld hl, $c
- add hl, bc
- ld a, [hli]
- or [hl]
- jr z, .asm_8d41e
- ld hl, $f
- add hl, bc
- ld d, [hl]
- ld hl, $b
- add hl, bc
- ld a, [hl]
- push af
- push de
- call Function8d6de
- ld hl, $7
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Function8d6e2
- ld hl, $6
- add hl, bc
- ld [hl], a
- ld hl, $c
- add hl, bc
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $e
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, de
- ld e, l
- ld d, h
- ld hl, $e
- add hl, bc
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, $c
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, $fff0
- add hl, de
- ld e, l
- ld d, h
- ld hl, $c
- add hl, bc
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, $b
- add hl, bc
- ld a, [hl]
- xor $20
- ld [hl], a
- ret
-.asm_8d41e
- call Function8d036
- ret
-
-.nine: ; 8d422 (23:5422)
- callab Function9321d
- ret
-
-.ten: ; 8d429 (23:5429)
- callab Function932ac
- ld hl, wcf64
- ld a, [hl]
- cp $2
- ret nz
- ld [hl], $3
- ld a, $f
- call Function8d120
- ret
-
-.eleven: ; 8d43e (23:543e)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- dec [hl]
- ld e, a
- and $1
- jr z, .asm_8d462
- ld hl, $4
- add hl, bc
- ld a, [hl]
- cp $78
- jr c, .asm_8d461
- call Function8d036
- ld a, $4
- ld [wcf64], a
- ld de, SFX_PLACE_PUZZLE_PIECE_DOWN
- call PlaySFX
- ret
-.asm_8d461
- inc [hl]
-.asm_8d462
- ld a, e
- ld d, $20
- call Function8d6de
- ld hl, $7
- add hl, bc
- ld [hl], a
- ret
-
-.thirteen: ; 8d46e (23:546e)
- callab Functione00ed
- ret
-
-.fifteen: ; 8d475 (23:5475)
- callab Function90d41
- ret
-
-.fourteen: ; 8d47c (23:547c)
- callab Functione21a1
- ret
-
-.sixteen: ; 8d483 (23:5483)
- call .anonymous_jumptable
- jp [hl]
-; 8d487 (23:5487)
-
-; Anonymous jumptable (see .anonymous_jumptable)
- dw .sixteen_zero
- dw .sixteen_one
- dw .sixteen_two
- dw .sixteen_three
- dw .sixteen_four
- dw .sixteen_five
-; 8d493
-
-.sixteen_zero: ; 8d493
- ld a, $14
- call Function8d120
- ld hl, $b
- add hl, bc
- ld [hl], $2
- ld hl, $c
- add hl, bc
- ld [hl], $20
- ret
-; 8d4a5
-
-.sixteen_two: ; 8d4a5
- ld hl, $c
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_8d4af
- dec [hl]
- ret
-
-.asm_8d4af
- call Function8d6d8
- ld hl, $c
- add hl, bc
- ld [hl], $40
-
-.sixteen_three: ; 8d4b8
- ld hl, $c
- add hl, bc
- ld a, [hl]
- cp $30
- jr c, .asm_8d4cd
- dec [hl]
- ld d, $28
- call Function8d6de
- ld hl, $7
- add hl, bc
- ld [hl], a
- ret
-
-.asm_8d4cd
- ld de, SFX_GOT_SAFARI_BALLS
- call PlaySFX
- jr .sixteen_five
-; 8d4d5
-
-.sixteen_one: ; 8d4d5
- ld hl, $b
- add hl, bc
- ld [hl], $4
- ld hl, $c
- add hl, bc
- ld [hl], $30
- ld hl, $d
- add hl, bc
- ld [hl], $24
- ret
-; 8d4e8
-
-.sixteen_four: ; 8d4e8
- ld hl, $d
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_8d51c
- ld d, a
- ld hl, $c
- add hl, bc
- ld a, [hl]
- call Function8e72c
- ld hl, $7
- add hl, bc
- ld [hl], a
- ld hl, $c
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $3f
- ret nz
- ld hl, $c
- add hl, bc
- ld [hl], $20
- ld hl, $d
- add hl, bc
- ld a, [hl]
- sub $c
- ld [hl], a
- ld de, SFX_SWITCH_POKEMON
- call PlaySFX
- ret
-
-.asm_8d51c
- xor a
- ld hl, $7
- add hl, bc
- ld [hl], a
- call Function8d6d8
- ret
-
-.sixteen_five: ; 8d526
- call Function8d036
- ret
-; 8d52a
-
-.seventeen: ; 8d52a (23:552a)
- ld hl, $4
- add hl, bc
- ld a, [hl]
-rept 2
- inc [hl]
-endr
- cp $b0
- jr nc, .asm_8d53f
- and $3
- ret nz
- ld de, SFX_POKEBALLS_PLACED_ON_TABLE
- call PlaySFX
- ret
-.asm_8d53f
- call Function8d036
- ret
-
-.eighteen: ; 8d543 (23:5543)
- callab Function29676
- ret
-
-.nineteen: ; 8d54a (23:554a)
- ld hl, $c
- add hl, bc
- ld a, [hl]
- cp $80
- jr nc, .asm_8d574
- ld d, a
- add $8
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- xor $20
- ld [hl], a
- push af
- push de
- call Function8d6de
- ld hl, $7
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Function8d6e2
- ld hl, $6
- add hl, bc
- ld [hl], a
- ret
-.asm_8d574
- call Function8d036
- ret
-
-.twenty: ; 8d578 (23:5578)
- callab Function91640
- ret
-
-.twentyone: ; 8d57f (23:557f)
- ld hl, $d
- add hl, bc
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $80
- add hl, de
- ld e, l
- ld d, h
- ld hl, $d
- add hl, bc
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, $c
- add hl, bc
- ld a, [hl]
-rept 3
- inc [hl]
-endr
- push af
- push de
- call Function8d6de
- ld hl, $7
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Function8d6e2
- ld hl, $6
- add hl, bc
- ld [hl], a
- ret
-
-.twentytwo: ; 8d5b0 (23:55b0)
- ld hl, $5
- add hl, bc
- ld a, [hl]
- and a
- ret z
- ld hl, $d
- add hl, bc
- ld a, [hl]
- inc [hl]
- cp $40
- ret c
- ld hl, $5
- add hl, bc
-rept 2
- dec [hl]
-endr
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, a
- cp $40
- jr nc, .asm_8d5d3
- add $8
- ld [hl], a
-.asm_8d5d3
- ld hl, $e
- add hl, bc
- ld a, [hl]
- inc [hl]
- call Function8d6e2
- ld hl, $6
- add hl, bc
- ld [hl], a
- ret
-
-.twentythree: ; 8d5e2 (23:55e2)
- ld hl, $4
- add hl, bc
- ld a, [hl]
- cp $b8
- jr nc, .asm_8d603
-rept 2
- inc [hl]
-endr
- ld hl, $5
- add hl, bc
- dec [hl]
- ld d, $40
- ld hl, $c
- add hl, bc
- ld a, [hl]
- inc [hl]
- call Function8d6e2
- ld hl, $6
- add hl, bc
- ld [hl], a
- ret
-.asm_8d603
- call Function8d036
- ret
-
-.twentyfour: ; 8d607 (23:5607)
- ld hl, $5
- add hl, bc
- ld a, [hl]
- cp $54
- ret z
- ld hl, $5
- add hl, bc
-rept 2
- inc [hl]
-endr
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, a
- and a
- jr z, .asm_8d621
- sub $2
- ld [hl], a
-.asm_8d621
- ld hl, $e
- add hl, bc
- ld a, [hl]
- inc [hl]
- call Function8d6e2
- ld hl, $6
- add hl, bc
- ld [hl], a
- ret
-
-.twentyseven: ; 8d630 (23:5630)
- callba Function108bc7
- ret
-
-.twentyeight: ; 8d637 (23:5637)
- callba Function108be0
- ret
-
-.twentynine: ; 8d63e (23:563e)
- ld a, [wcf65]
- and a
- jr nz, .asm_8d645
- ret
-.asm_8d645
- ld hl, $7
- add hl, bc
- ld [hl], $0
- ld hl, $d
- add hl, bc
- ld a, [hl]
- add $2
- ld [hl], a
- xor $ff
- inc a
- ld d, $20
- call Function8d6de
- ld hl, $7
- add hl, bc
- ld [hl], a
- ld a, $36
- call Function8d120
- ret
-
-.thirty: ; 8d666 (23:5666)
- ld hl, $c
- add hl, bc
- ld a, [hl]
- cp $14
- jr nc, .asm_8d67f
- add $2
- ld [hl], a
- xor $ff
- inc a
- ld d, $20
- call Function8d6de
- ld hl, $7
- add hl, bc
- ld [hl], a
-.asm_8d67f
- ret
-
-.thirtytwo: ; 8d680 (23:5680)
- ld hl, $b
- add hl, bc
- ld d, [hl]
-rept 3
- inc [hl]
-endr
- ld hl, $c
- add hl, bc
- ld a, [hl]
- push af
- push de
- call Function8d6de
- ld hl, $7
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Function8d6e2
- ld hl, $6
- add hl, bc
- ld [hl], a
- ret
-
-.thirtythree: ; 8d6a2 (23:56a2)
- ld a, [wcf64]
- cp $40
- ret nz
- ld a, $3d
- call Function8d120
- ret
-
-.thirtyfour: ; 8d6ae (23:56ae)
- ld hl, $5
- add hl, bc
- ld a, [hl]
- add $10
- ld [hl], a
- ret
-
-.twentysix: ; 8d6b7 (23:56b7)
- callba Function11d0b6
- ret
-
-.thirtyone: ; 8d6be (23:56be)
- callba Function49aa2
- ret
-
-.anonymous_jumptable: ; 8d6c5 (23:56c5)
- ld hl, [sp+$0]
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc de
- ld hl, $b
- add hl, bc
- ld l, [hl]
- ld h, $0
- add hl, hl
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-; 8d6d8 (23:56d8)
-
-Function8d6d8: ; 8d6d8
- ld hl, $b
- add hl, bc
- inc [hl]
- ret
-; 8d6de
-
-Function8d6de: ; 8d6de (23:56de)
- call Function8e72c
- ret
-
-Function8d6e2: ; 8d6e2 (23:56e2)
- call Function8e72a
- ret
-; 8d6e6 (23:56e6)
-
-Unknown_8d6e6: ; 8d6e6
- dw Unknown_8d76a
- dw Unknown_8d76d
- dw Unknown_8d772
- dw Unknown_8d777
- dw Unknown_8d77c
- dw Unknown_8d781
- dw Unknown_8d786
- dw Unknown_8d7a6
- dw Unknown_8d7ab
- dw Unknown_8d7b0
- dw Unknown_8d7b5
- dw Unknown_8d7d4
- dw Unknown_8d7d9
- dw Unknown_8d7e2
- dw Unknown_8d7eb
- dw Unknown_8d7f4
- dw Unknown_8d7ff
- dw Unknown_8d78b
- dw Unknown_8d802
- dw Unknown_8d805
- dw Unknown_8d808
- dw Unknown_8d811
- dw Unknown_8d818
- dw Unknown_8d81d
- dw Unknown_8d822
- dw Unknown_8d825
- dw Unknown_8d82c
- dw Unknown_8d82f
- dw Unknown_8d861
- dw Unknown_8d864
- dw Unknown_8d867
- dw Unknown_8d874
- dw Unknown_8d877
- dw Unknown_8d87a
- dw Unknown_8d87d
- dw Unknown_8d880
- dw Unknown_8d883
- dw Unknown_8d890
- dw Unknown_8d899
- dw Unknown_8d89c
- dw Unknown_8d89f
- dw Unknown_8d8a2
- dw Unknown_8d8a5
- dw Unknown_8d8a8
- dw Unknown_8d8ab
- dw Unknown_8d794
- dw Unknown_8d79d
- dw Unknown_8d8ae
- dw Unknown_8d8cd
- dw Unknown_8d8ec
- dw Unknown_8d8f1
- dw Unknown_8d8f4
- dw Unknown_8d8f7
- dw Unknown_8d8fe
- dw Unknown_8d907
- dw Unknown_8d90c
- dw Unknown_8d913
- dw Unknown_8d916
- dw Unknown_8d91d
- dw Unknown_8d924
- dw Unknown_8d92b
- dw Unknown_8d932
- dw Unknown_8d93d
- dw Unknown_8d940
- dw Unknown_8d943
- dw Unknown_8d948
-; 8d76a
-
-Unknown_8d76a: dw $2000
- db -1
-Unknown_8d76d: dw $0800, $0801
- db -2
-Unknown_8d772: dw $083d, $083e
- db -2
-Unknown_8d777: dw $083f, $0840
- db -2
-Unknown_8d77c: dw $0400, $0401
- db -2
-Unknown_8d781: dw $043d, $043e
- db -2
-Unknown_8d786: dw $043f, $0440
- db -2
-Unknown_8d78b: dw $0800, $0801, $0800, $4801
- db -2
-Unknown_8d794: dw $0863, $0864, $0863, $4864
- db -2
-Unknown_8d79d: dw $0865, $0866, $0865, $4866
- db -2
-Unknown_8d7a6: dw $011e, $011f
- db -2
-Unknown_8d7ab: dw $0120, $01fd
- db -2
-Unknown_8d7b0: dw $0121, $01fd
- db -2
-Unknown_8d7b5: dw $0c81, $0182, $0183, $0482, $0c81, $0c82, $0483, $2084, $0385, $0386, $0487, $0488, $0489, $0a8a, $078b
- db -1
-Unknown_8d7d4: dw $0323, $8323
- db -2
-Unknown_8d7d9: dw $0224, $0225, $0226, $0225
- db -2
-Unknown_8d7e2: dw $0727, $0728, $8727, $4728
- db -2
-Unknown_8d7eb: dw $0729, $072a, $0729, $072b
- db -2
-Unknown_8d7f4: dw $0729, $072c, $072d, $072c, $0729
- db -1
-Unknown_8d7ff: dw $142e
- db -1
-Unknown_8d802: dw $202f
- db -1
-Unknown_8d805: dw $2030
- db -1
-Unknown_8d808: dw $0330, $0331, $0330, $4331
- db -2
-Unknown_8d811: dw $0432, $0433, $0434
- db -4
-Unknown_8d818: dw $0335, $0336
- db -2
-Unknown_8d81d: dw $0737, $0738
- db -2
-Unknown_8d822: dw $2039
- db -1
-Unknown_8d825: dw $023b, $023a, $023b
- db -1
-Unknown_8d82c: dw $203c
- db -1
-Unknown_8d82f: dw $0841, $0842, $0841, $4842
- db -2
- dw $0843, $0844
- db -2
- dw $0845, $0846
- db -2
- dw $0847, $0848
- db -2
- dw $0149, $4149, $c149, $8149
- db -2
- dw $204a
- db -1
- dw $204b
- db -1
- dw $204c
- db -1
- dw $204d
- db -1
- dw $034e, $03fd
- db -2
-Unknown_8d861: dw $20fd
- db -1
-Unknown_8d864: dw $204f
- db -1
-Unknown_8d867: dw $0250, $1051, $01fd, $0152, $01fd, $0153
- db -4
-Unknown_8d874: dw $2054
- db -1
-Unknown_8d877: dw $2055
- db -1
-Unknown_8d87a: dw $6055
- db -1
-Unknown_8d87d: dw $a055
- db -1
-Unknown_8d880: dw $e055
- db -1
-Unknown_8d883: dw $0a56, $0957, $0a58, $0a59, $0958, $0a5a
- db -2
-Unknown_8d890: dw $0250, $025b, $0250, $425b
- db -2
-Unknown_8d899: dw $025c
- db -1
-Unknown_8d89c: dw $025d
- db -1
-Unknown_8d89f: dw $025e
- db -1
-Unknown_8d8a2: dw $025f
- db -1
-Unknown_8d8a5: dw $0260
- db -1
-Unknown_8d8a8: dw $0261
- db -1
-Unknown_8d8ab: dw $0262
- db -1
-Unknown_8d8ae: dw $0332, $0333, $0334, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331
- db -1
-Unknown_8d8cd: dw $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0332, $0333, $0334
- db -4
-Unknown_8d8ec: dw $0367, $0368
- db -2
-Unknown_8d8f1: dw $036c
- db -1
-Unknown_8d8f4: dw $036d
- db -1
-Unknown_8d8f7: dw $0269, $026a, $026b
- db -4
-Unknown_8d8fe: dw $036e, $036f, $0370, $0371
- db -2
-Unknown_8d907: dw $0371, $076e
- db -1
-Unknown_8d90c: dw $2072, $0773, $0774
- db -1
-Unknown_8d913: dw $0375
- db -1
-Unknown_8d916: dw $0376, $0377, $0778
- db -4
-Unknown_8d91d: dw $4376, $4377, $4778
- db -4
-Unknown_8d924: dw $8376, $8377, $8778
- db -4
-Unknown_8d92b: dw $c376, $c377, $c778
- db -4
-Unknown_8d932: dw $0379, $037a, $037b, $077c, $077d
- db -1
-Unknown_8d93d: dw $037e
- db -1
-Unknown_8d940: dw $00fd
- db -1
-Unknown_8d943: dw $087f, $0880
- db -1
-Unknown_8d948: dw $487f, $4880
- db -1
-; 8d94d
-
-Unknown_8d94d: ; 8d94d
- dbw $00, Unknown_8dd8a
- dbw $04, Unknown_8dd8a
- dbw $4c, Unknown_8daf1
- dbw $5c, Unknown_8daf1
- dbw $6c, Unknown_8daf6
- dbw $6e, Unknown_8daf6
- dbw $2d, Unknown_8ddf0
- dbw $4d, Unknown_8ddf0
- dbw $60, Unknown_8de09
- dbw $00, Unknown_8de09
- dbw $00, Unknown_8de09
- dbw $06, Unknown_8de09
- dbw $0c, Unknown_8de7e
- dbw $0d, Unknown_8daf1
- dbw $00, Unknown_8dc53
- dbw $04, Unknown_8dc53
- dbw $08, Unknown_8dc53
- dbw $40, Unknown_8dc53
- dbw $44, Unknown_8dc53
- dbw $48, Unknown_8dc53
- dbw $4c, Unknown_8dc53
- dbw $80, Unknown_8de87
- dbw $85, Unknown_8de87
- dbw $8a, Unknown_8de87
- dbw $00, Unknown_8db29
- dbw $01, Unknown_8db5c
- dbw $09, Unknown_8db9d
- dbw $10, Unknown_8dc94
- dbw $29, Unknown_8dc94
- dbw $42, Unknown_8dc94
- dbw $f8, Unknown_8e17e
- dbw $fa, Unknown_8e17e
- dbw $00, Unknown_8deb2
- dbw $00, Unknown_8dec3
- dbw $00, Unknown_8deec
- dbw $0f, Unknown_8db07
- dbw $11, Unknown_8daf1
- dbw $12, Unknown_8daf1
- dbw $13, Unknown_8daf1
- dbw $00, Unknown_8df29
- dbw $08, Unknown_8df29
- dbw $10, Unknown_8df42
- dbw $10, Unknown_8df5b
- dbw $10, Unknown_8df74
- dbw $10, Unknown_8df8d
- dbw $10, Unknown_8dfa6
- dbw $3a, Unknown_8daf1
- dbw $00, Unknown_8dd8a
- dbw $00, Unknown_8db18
- dbw $02, Unknown_8dd9b
- dbw $06, Unknown_8db5c
- dbw $0a, Unknown_8db5c
- dbw $0e, Unknown_8db5c
- dbw $12, Unknown_8db3a
- dbw $13, Unknown_8db3a
- dbw $00, Unknown_8dd8a
- dbw $04, Unknown_8dd8a
- dbw $10, Unknown_8db5c
- dbw $00, Unknown_8dd9b
- dbw $04, Unknown_8daf1
- dbw $00, Unknown_8dfbf
- dbw $00, Unknown_8ddac
- dbw $00, Unknown_8ddbd
- dbw $00, Unknown_8ddce
- dbw $00, Unknown_8dddf
- dbw $00, Unknown_8dd9b
- dbw $04, Unknown_8dd9b
- dbw $00, Unknown_8dc2e
- dbw $30, Unknown_8dc2e
- dbw $03, Unknown_8dc2e
- dbw $33, Unknown_8dc2e
- dbw $06, Unknown_8dc2e
- dbw $36, Unknown_8dc2e
- dbw $09, Unknown_8dc2e
- dbw $39, Unknown_8dc2e
- dbw $0c, Unknown_8dfcc
- dbw $0c, Unknown_8dfe5
- dbw $3c, Unknown_8daf1
- dbw $3e, Unknown_8daf1
- dbw $00, Unknown_8de9c
- dbw $00, Unknown_8dea1
- dbw $00, Unknown_8dff6
- dbw $00, Unknown_8e007
- dbw $00, Unknown_8e018
- dbw $00, Unknown_8daf1
- dbw $01, Unknown_8daf1
- dbw $00, Unknown_8e029
- dbw $00, Unknown_8e076
- dbw $00, Unknown_8e0b7
- dbw $00, Unknown_8e0f4
- dbw $00, Unknown_8e139
- dbw $04, Unknown_8dea1
- dbw $00, Unknown_8e183
- dbw $00, Unknown_8e1b4
- dbw $00, Unknown_8e1b9
- dbw $00, Unknown_8e1ca
- dbw $00, Unknown_8e1eb
- dbw $00, Unknown_8e1f0
- dbw $00, Unknown_8e1f9
- dbw $00, Unknown_8e202
- dbw $04, Unknown_8e202
- dbw $00, Unknown_8e213
- dbw $04, Unknown_8e213
- dbw $20, Unknown_8e224
- dbw $21, Unknown_8e224
- dbw $22, Unknown_8e24b
- dbw $23, Unknown_8e25c
- dbw $27, Unknown_8e27d
- dbw $2a, Unknown_8e229
- dbw $2a, Unknown_8e23a
- dbw $00, Unknown_8e2ae
- dbw $08, Unknown_8e33f
- dbw $60, Unknown_8e3b0
- dbw $68, Unknown_8e429
- dbw $00, Unknown_8e4a6
- dbw $05, Unknown_8e4a6
- dbw $0a, Unknown_8e4a6
- dbw $50, Unknown_8e50b
- dbw $00, Unknown_8e54c
- dbw $01, Unknown_8e551
- dbw $04, Unknown_8e55e
- dbw $00, Unknown_8db29
- dbw $01, Unknown_8e57b
- dbw $03, Unknown_8e59c
- dbw $08, Unknown_8e5cd
- dbw $1c, Unknown_8e5cd
- dbw $80, Unknown_8e61e
- dbw $00, Unknown_8e66f
- dbw $04, Unknown_8e66f
- dbw $d0, Unknown_8e680
- dbw $d3, Unknown_8e680
- dbw $d6, Unknown_8e680
- dbw $6c, Unknown_8e6a5
- dbw $68, Unknown_8e6a5
- dbw $64, Unknown_8e6a5
- dbw $60, Unknown_8e6a5
- dbw $0c, Unknown_8e6a5
- dbw $08, Unknown_8e6a5
- dbw $04, Unknown_8e6a5
- dbw $00, Unknown_8e6a5
-; 8daf1
-
-
-Unknown_8daf1: ; 8daf1
- db 1
- db $fc, $fc, $00, $00
-; 8daf6
-
-Unknown_8daf6: ; 8daf6
- db 4
- db $f8, $f8, $00, $00
- db $f8, $00, $01, $00
- db $00, $f8, $10, $00
- db $00, $00, $11, $00
-; 8db07
-
-Unknown_8db07: ; 8db07
- db 4
- db $f8, $f8, $00, $00
- db $f8, $00, $00, $20
- db $00, $f8, $01, $00
- db $00, $00, $01, $20
-; 8db18
-
-Unknown_8db18: ; 8db18
- db 4
- db $f8, $f8, $00, $80
- db $f8, $00, $00, $a0
- db $00, $f8, $01, $80
- db $00, $00, $01, $a0
-; 8db29
-
-Unknown_8db29: ; 8db29
- db 4
- db $f8, $f8, $00, $00
- db $f8, $00, $00, $20
- db $00, $f8, $00, $40
- db $00, $00, $00, $60
-; 8db3a
-
-Unknown_8db3a: ; 8db3a
- db 4
- db $f8, $f8, $00, $07
- db $f8, $00, $00, $27
- db $00, $f8, $00, $47
- db $00, $00, $00, $67
-; 8db4b
-
-; 8db4b
- db 4
- db $f8, $f8, $00, $80
- db $f8, $00, $00, $a0
- db $00, $f8, $00, $c0
- db $00, $00, $00, $e0
-; 8db5c
-
-Unknown_8db5c: ; 8db5c
- db 16
- db $f0, $f0, $00, $00
- db $f0, $f8, $01, $00
- db $f8, $f0, $02, $00
- db $f8, $f8, $03, $00
- db $f0, $00, $01, $20
- db $f0, $08, $00, $20
- db $f8, $00, $03, $20
- db $f8, $08, $02, $20
- db $00, $f0, $02, $40
- db $00, $f8, $03, $40
- db $08, $f0, $00, $40
- db $08, $f8, $01, $40
- db $00, $00, $03, $60
- db $00, $08, $02, $60
- db $08, $00, $01, $60
- db $08, $08, $00, $60
-; 8db9d
-
-Unknown_8db9d: ; 8db9d
- db 36
- db $e8, $e8, $00, $00
- db $e8, $f0, $01, $00
- db $e8, $f8, $02, $00
- db $f0, $e8, $03, $00
- db $f0, $f0, $04, $00
- db $f0, $f8, $05, $00
- db $f8, $e8, $06, $00
- db $f8, $f0, $05, $00
- db $f8, $f8, $05, $00
- db $e8, $00, $02, $20
- db $e8, $08, $01, $20
- db $e8, $10, $00, $20
- db $f0, $00, $05, $20
- db $f0, $08, $04, $20
- db $f0, $10, $03, $20
- db $f8, $00, $05, $20
- db $f8, $08, $05, $20
- db $f8, $10, $06, $20
- db $00, $e8, $06, $40
- db $00, $f0, $05, $40
- db $00, $f8, $05, $40
- db $08, $e8, $03, $40
- db $08, $f0, $04, $40
- db $08, $f8, $05, $40
- db $10, $e8, $00, $40
- db $10, $f0, $01, $40
- db $10, $f8, $02, $40
- db $00, $00, $05, $60
- db $00, $08, $05, $60
- db $00, $10, $06, $60
- db $08, $00, $05, $60
- db $08, $08, $04, $60
- db $08, $10, $03, $60
- db $10, $00, $02, $60
- db $10, $08, $01, $60
- db $10, $10, $00, $60
-; 8dc2e
-
-Unknown_8dc2e: ; 8dc2e
- db 9
- db $f4, $f4, $00, $00
- db $f4, $fc, $01, $00
- db $f4, $04, $02, $00
- db $fc, $f4, $10, $00
- db $fc, $fc, $11, $00
- db $fc, $04, $12, $00
- db $04, $f4, $20, $00
- db $04, $fc, $21, $00
- db $04, $04, $22, $00
-; 8dc53
-
-Unknown_8dc53: ; 8dc53
- db 16
- db $f0, $f0, $00, $00
- db $f0, $f8, $01, $00
- db $f0, $00, $02, $00
- db $f0, $08, $03, $00
- db $f8, $f0, $10, $00
- db $f8, $f8, $11, $00
- db $f8, $00, $12, $00
- db $f8, $08, $13, $00
- db $00, $f0, $20, $00
- db $00, $f8, $21, $00
- db $00, $00, $22, $00
- db $00, $08, $23, $00
- db $08, $f0, $30, $00
- db $08, $f8, $31, $00
- db $08, $00, $32, $00
- db $08, $08, $33, $00
-; 8dc94
-
-Unknown_8dc94: ; 8dc94
- db 25
- db $ec, $ec, $00, $00
- db $f4, $ec, $01, $00
- db $fc, $ec, $02, $00
- db $04, $ec, $03, $00
- db $0c, $ec, $04, $00
- db $ec, $f4, $05, $00
- db $f4, $f4, $06, $00
- db $fc, $f4, $07, $00
- db $04, $f4, $08, $00
- db $0c, $f4, $09, $00
- db $ec, $fc, $0a, $00
- db $f4, $fc, $0b, $00
- db $fc, $fc, $0c, $00
- db $04, $fc, $0d, $00
- db $0c, $fc, $0e, $00
- db $ec, $04, $0f, $00
- db $f4, $04, $10, $00
- db $fc, $04, $11, $00
- db $04, $04, $12, $00
- db $0c, $04, $13, $00
- db $ec, $0c, $14, $00
- db $f4, $0c, $15, $00
- db $fc, $0c, $16, $00
- db $04, $0c, $17, $00
- db $0c, $0c, $18, $00
-; 8dcf9
-
-; 8dcf9
- db 36
- db $e8, $e8, $00, $00
- db $e8, $f0, $01, $00
- db $e8, $f8, $02, $00
- db $e8, $00, $03, $00
- db $e8, $08, $04, $00
- db $e8, $10, $05, $00
- db $f0, $e8, $06, $00
- db $f0, $f0, $07, $00
- db $f0, $f8, $08, $00
- db $f0, $00, $09, $00
- db $f0, $08, $0a, $00
- db $f0, $10, $0b, $00
- db $f8, $e8, $0c, $00
- db $f8, $f0, $0d, $00
- db $f8, $f8, $0e, $00
- db $f8, $00, $0f, $00
- db $f8, $08, $10, $00
- db $f8, $10, $11, $00
- db $00, $e8, $12, $00
- db $00, $f0, $13, $00
- db $00, $f8, $14, $00
- db $00, $00, $15, $00
- db $00, $08, $16, $00
- db $00, $10, $17, $00
- db $08, $e8, $18, $00
- db $08, $f0, $19, $00
- db $08, $f8, $1a, $00
- db $08, $00, $1b, $00
- db $08, $08, $1c, $00
- db $08, $10, $1d, $00
- db $10, $e8, $1e, $00
- db $10, $f0, $1f, $00
- db $10, $f8, $20, $00
- db $10, $00, $21, $00
- db $10, $08, $22, $00
- db $10, $10, $23, $00
-; 8dd8a
-
-Unknown_8dd8a: ; 8dd8a
- db 4
- db $f8, $f8, $00, $00
- db $f8, $00, $01, $00
- db $00, $f8, $02, $00
- db $00, $00, $03, $00
-; 8dd9b
-
-Unknown_8dd9b: ; 8dd9b
- db 4
- db $f8, $f8, $00, $80
- db $f8, $00, $01, $80
- db $00, $f8, $02, $80
- db $00, $00, $03, $80
-; 8ddac
-
-Unknown_8ddac: ; 8ddac
- db 4
- db $f8, $f8, $00, $00
- db $f8, $00, $01, $00
- db $00, $f8, $08, $00
- db $00, $00, $03, $00
-; 8ddbd
-
-Unknown_8ddbd: ; 8ddbd
- db 4
- db $f8, $f8, $04, $00
- db $f8, $00, $05, $00
- db $00, $f8, $08, $00
- db $00, $00, $07, $00
-; 8ddce
-
-Unknown_8ddce: ; 8ddce
- db 4
- db $f8, $f8, $00, $00
- db $f8, $00, $01, $00
- db $00, $f8, $09, $00
- db $00, $00, $03, $00
-; 8dddf
-
-Unknown_8dddf: ; 8dddf
- db 4
- db $f8, $f8, $04, $00
- db $f8, $00, $05, $00
- db $00, $f8, $09, $00
- db $00, $00, $07, $00
-; 8ddf0
-
-Unknown_8ddf0: ; 8ddf0
- db 6
- db $f8, $f4, $00, $01
- db $f8, $fc, $01, $01
- db $f8, $04, $02, $01
- db $00, $f4, $10, $01
- db $00, $fc, $11, $01
- db $00, $04, $12, $01
-; 8de09
-
-Unknown_8de09: ; 8de09
- db 29
- db $e8, $e8, $00, $00
- db $e8, $f0, $01, $00
- db $e8, $f8, $02, $00
- db $e8, $00, $03, $00
- db $f0, $e8, $10, $00
- db $f0, $f0, $11, $00
- db $f0, $f8, $12, $00
- db $f0, $00, $13, $00
- db $f8, $e8, $20, $00
- db $f8, $f0, $21, $00
- db $f8, $f8, $22, $00
- db $f8, $00, $23, $00
- db $f8, $08, $24, $00
- db $00, $e8, $30, $80
- db $00, $f0, $31, $80
- db $00, $f8, $32, $80
- db $00, $00, $33, $80
- db $00, $08, $34, $80
- db $08, $e8, $40, $80
- db $08, $f0, $41, $80
- db $08, $f8, $42, $80
- db $08, $00, $43, $80
- db $08, $08, $44, $80
- db $08, $10, $45, $80
- db $10, $f0, $51, $80
- db $10, $f8, $52, $80
- db $10, $00, $53, $80
- db $10, $08, $54, $80
- db $10, $10, $55, $80
-; 8de7e
-
-Unknown_8de7e: ; 8de7e
- db 2
- db $f8, $fc, $00, $00
- db $00, $fc, $10, $00
-; 8de87
-
-Unknown_8de87: ; 8de87
- db 5
- db $f0, $18, $00, $00
- db $f0, $20, $01, $00
- db $f8, $10, $02, $00
- db $f8, $18, $03, $00
- db $00, $10, $04, $00
-; 8de9c
-
-Unknown_8de9c: ; 8de9c
- db 1
- db $fc, $fc, $00, $06
-; 8dea1
-
-Unknown_8dea1: ; 8dea1
- db 4
- db $f8, $f8, $00, $06
- db $f8, $00, $01, $06
- db $00, $f8, $02, $06
- db $00, $00, $03, $06
-; 8deb2
-
-Unknown_8deb2: ; 8deb2
- db 4
- db $ff, $ff, $00, $00
- db $ff, $00, $00, $20
- db $00, $ff, $00, $40
- db $00, $00, $00, $60
-; 8dec3
-
-Unknown_8dec3: ; 8dec3
- db 10
- db $ff, $00, $00, $00
- db $ff, $08, $01, $00
- db $ff, $10, $01, $00
- db $ff, $18, $01, $00
- db $ff, $20, $00, $20
- db $00, $00, $00, $40
- db $00, $08, $01, $40
- db $00, $10, $01, $40
- db $00, $18, $01, $40
- db $00, $20, $00, $60
-; 8deec
-
-Unknown_8deec: ; 8deec
- db 15
- db $ec, $f4, $00, $11
- db $ec, $fc, $01, $11
- db $ec, $04, $02, $11
- db $f4, $f4, $03, $11
- db $f4, $fc, $04, $11
- db $f4, $04, $05, $11
- db $fc, $f4, $06, $11
- db $fc, $fc, $07, $11
- db $fc, $04, $08, $11
- db $04, $f4, $09, $11
- db $04, $fc, $0a, $11
- db $04, $04, $0b, $11
- db $0c, $f4, $0c, $11
- db $0c, $fc, $0d, $11
- db $0c, $04, $0e, $11
-; 8df29
-
-Unknown_8df29: ; 8df29
- db 6
- db $f4, $f4, $00, $15
- db $f4, $fc, $02, $15
- db $f4, $04, $00, $35
- db $04, $f4, $04, $15
- db $04, $fc, $06, $15
- db $04, $04, $04, $35
-; 8df42
-
-Unknown_8df42: ; 8df42
- db 6
- db $f4, $f4, $00, $16
- db $f4, $fc, $02, $16
- db $f4, $04, $04, $16
- db $04, $f4, $06, $16
- db $04, $fc, $08, $16
- db $04, $04, $0a, $16
-; 8df5b
-
-Unknown_8df5b: ; 8df5b
- db 6
- db $f4, $f4, $00, $16
- db $f4, $fc, $02, $16
- db $f4, $04, $04, $16
- db $04, $f4, $0c, $16
- db $04, $fc, $0e, $16
- db $04, $04, $10, $16
-; 8df74
-
-Unknown_8df74: ; 8df74
- db 6
- db $f4, $f4, $00, $16
- db $f4, $fc, $02, $16
- db $f4, $04, $04, $16
- db $04, $f4, $12, $16
- db $04, $fc, $14, $16
- db $04, $04, $16, $16
-; 8df8d
-
-Unknown_8df8d: ; 8df8d
- db 6
- db $f4, $f4, $00, $16
- db $f4, $fc, $02, $16
- db $f4, $04, $04, $16
- db $04, $f4, $18, $16
- db $04, $fc, $1a, $16
- db $04, $04, $1c, $16
-; 8dfa6
-
-Unknown_8dfa6: ; 8dfa6
- db 6
- db $f4, $f4, $1e, $16
- db $f4, $fc, $20, $16
- db $f4, $04, $22, $16
- db $04, $f4, $24, $16
- db $04, $fc, $26, $16
- db $04, $04, $28, $16
-; 8dfbf
-
-Unknown_8dfbf: ; 8dfbf
- db 3
- db $f4, $fc, $00, $10
- db $fc, $fc, $00, $10
- db $04, $fc, $00, $10
-; 8dfcc
-
-Unknown_8dfcc: ; 8dfcc
- db 6
- db $00, $00, $00, $00
- db $00, $08, $01, $00
- db $00, $10, $01, $00
- db $00, $18, $01, $00
- db $00, $20, $02, $00
- db $00, $28, $03, $00
-; 8dfe5
-
-Unknown_8dfe5: ; 8dfe5
- db 4
- db $00, $00, $00, $00
- db $00, $08, $01, $00
- db $00, $10, $02, $00
- db $00, $18, $03, $00
-; 8dff6
-
-Unknown_8dff6: ; 8dff6
- db 4
- db $f8, $f6, $00, $06
- db $f8, $02, $01, $06
- db $00, $f6, $02, $06
- db $00, $02, $03, $06
-; 8e007
-
-Unknown_8e007: ; 8e007
- db 4
- db $f8, $f4, $00, $06
- db $f8, $04, $01, $06
- db $00, $f4, $02, $06
- db $00, $04, $03, $06
-; 8e018
-
-Unknown_8e018: ; 8e018
- db 4
- db $f8, $f0, $00, $06
- db $f8, $08, $01, $06
- db $00, $f0, $02, $06
- db $00, $08, $03, $06
-; 8e029
-
-Unknown_8e029: ; 8e029
- db 19
- db $f8, $e0, $00, $00
- db $f0, $e8, $02, $00
- db $00, $e8, $04, $00
- db $e8, $f0, $06, $00
- db $f8, $f0, $08, $00
- db $08, $f0, $0a, $00
- db $e8, $f8, $0c, $00
- db $f8, $f8, $0e, $00
- db $08, $f8, $10, $00
- db $e8, $00, $12, $00
- db $f8, $00, $14, $00
- db $08, $00, $16, $00
- db $e8, $08, $18, $00
- db $f8, $08, $1a, $00
- db $08, $08, $1c, $00
- db $f8, $10, $1e, $00
- db $08, $10, $20, $00
- db $f0, $18, $22, $00
- db $00, $18, $24, $00
-; 8e076
-
-Unknown_8e076: ; 8e076
- db 16
- db $f8, $e0, $00, $00
- db $f0, $e8, $02, $00
- db $00, $e8, $04, $00
- db $f8, $f0, $26, $00
- db $08, $f0, $0a, $00
- db $e8, $f8, $28, $00
- db $f8, $f8, $2a, $00
- db $08, $f8, $10, $00
- db $f8, $00, $2c, $00
- db $08, $00, $16, $00
- db $f8, $08, $30, $00
- db $08, $08, $1c, $00
- db $f8, $10, $1e, $00
- db $08, $10, $20, $00
- db $f0, $18, $22, $00
- db $00, $18, $24, $00
-; 8e0b7
-
-Unknown_8e0b7: ; 8e0b7
- db 15
- db $f8, $e0, $00, $00
- db $f0, $e8, $02, $00
- db $00, $e8, $32, $00
- db $f8, $f0, $34, $00
- db $08, $f0, $36, $00
- db $f8, $f8, $38, $00
- db $08, $f8, $3a, $00
- db $f8, $00, $3c, $00
- db $08, $00, $3e, $00
- db $f8, $08, $30, $00
- db $08, $08, $1c, $00
- db $f8, $10, $1e, $00
- db $08, $10, $20, $00
- db $f0, $18, $22, $00
- db $00, $18, $24, $00
-; 8e0f4
-
-Unknown_8e0f4: ; 8e0f4
- db 17
- db $f8, $e0, $00, $00
- db $f0, $e8, $02, $00
- db $00, $e8, $04, $00
- db $f8, $f0, $40, $00
- db $08, $f0, $42, $00
- db $18, $f0, $44, $00
- db $f8, $f8, $46, $00
- db $08, $f8, $48, $00
- db $18, $f8, $4a, $00
- db $f8, $00, $4c, $00
- db $08, $00, $4e, $00
- db $f8, $08, $30, $00
- db $08, $08, $1c, $00
- db $f8, $10, $1e, $00
- db $08, $10, $20, $00
- db $f0, $18, $22, $00
- db $00, $18, $24, $00
-; 8e139
-
-Unknown_8e139: ; 8e139
- db 17
- db $f8, $e0, $00, $00
- db $f0, $e8, $02, $00
- db $00, $e8, $04, $00
- db $f8, $f0, $50, $00
- db $08, $f0, $0a, $00
- db $e8, $f8, $52, $00
- db $f8, $f8, $54, $00
- db $08, $f8, $10, $00
- db $e8, $00, $56, $00
- db $f8, $00, $2e, $00
- db $08, $00, $16, $00
- db $f8, $08, $30, $00
- db $08, $08, $1c, $00
- db $f8, $10, $1e, $00
- db $08, $10, $20, $00
- db $f0, $18, $22, $00
- db $00, $18, $24, $00
-; 8e17e
-
-Unknown_8e17e: ; 8e17e
- db 1
- db $fc, $fc, $00, $11
-; 8e183
-
-Unknown_8e183: ; 8e183
- db 12
- db $00, $00, $30, $00
- db $00, $08, $31, $00
- db $00, $10, $31, $00
- db $00, $18, $31, $00
- db $00, $20, $31, $00
- db $00, $28, $32, $00
- db $08, $00, $33, $00
- db $08, $08, $34, $00
- db $08, $10, $34, $00
- db $08, $18, $34, $00
- db $08, $20, $34, $00
- db $08, $28, $35, $00
-; 8e1b4
-
-Unknown_8e1b4: ; 8e1b4
- db 1
- db $00, $00, $ed, $00
-; 8e1b9
-
-Unknown_8e1b9: ; 8e1b9
- db 4
- db $ff, $ff, $30, $00
- db $ff, $01, $32, $00
- db $01, $ff, $33, $00
- db $01, $01, $35, $00
-; 8e1ca
-
-Unknown_8e1ca: ; 8e1ca
- db 8
- db $ff, $ff, $30, $00
- db $ff, $04, $31, $00
- db $ff, $0c, $31, $00
- db $ff, $11, $32, $00
- db $01, $ff, $33, $00
- db $01, $04, $34, $00
- db $01, $0c, $34, $00
- db $01, $11, $35, $00
-; 8e1eb
-
-Unknown_8e1eb: ; 8e1eb
- db 1
- db $00, $00, $34, $00
-; 8e1f0
-
-Unknown_8e1f0: ; 8e1f0
- db 2
- db $00, $00, $30, $00
- db $08, $00, $33, $00
-; 8e1f9
-
-Unknown_8e1f9: ; 8e1f9
- db 2
- db $00, $00, $32, $00
- db $08, $00, $35, $00
-; 8e202
-
-Unknown_8e202: ; 8e202
- db 4
- db $f8, $f8, $00, $01
- db $f8, $00, $01, $01
- db $00, $f8, $02, $01
- db $00, $00, $03, $01
-; 8e213
-
-Unknown_8e213: ; 8e213
- db 4
- db $f8, $f8, $00, $81
- db $f8, $00, $01, $81
- db $00, $f8, $02, $81
- db $00, $00, $03, $81
-; 8e224
-
-Unknown_8e224: ; 8e224
- db 1
- db $fc, $fc, $00, $02
-; 8e229
-
-Unknown_8e229: ; 8e229
- db 4
- db $f0, $fc, $00, $03
- db $f8, $fc, $01, $03
- db $00, $fc, $02, $03
- db $08, $fc, $03, $03
-; 8e23a
-
-Unknown_8e23a: ; 8e23a
- db 4
- db $f0, $fc, $03, $44
- db $f8, $fc, $02, $44
- db $00, $fc, $01, $44
- db $08, $fc, $00, $44
-; 8e24b
-
-Unknown_8e24b: ; 8e24b
- db 4
- db $f8, $f8, $00, $01
- db $f8, $00, $00, $21
- db $00, $f8, $00, $41
- db $00, $00, $00, $61
-; 8e25c
-
-Unknown_8e25c: ; 8e25c
- db 8
- db $f4, $f4, $00, $01
- db $f4, $fc, $01, $01
- db $f4, $04, $00, $21
- db $fc, $f4, $02, $01
- db $fc, $04, $02, $21
- db $04, $f4, $00, $41
- db $04, $fc, $01, $41
- db $04, $04, $00, $61
-; 8e27d
-
-Unknown_8e27d: ; 8e27d
- db 12
- db $f0, $f0, $00, $01
- db $f0, $f8, $01, $01
- db $f8, $f0, $02, $01
- db $f0, $00, $01, $21
- db $f0, $08, $00, $21
- db $f8, $08, $02, $21
- db $00, $f0, $02, $41
- db $08, $f0, $00, $41
- db $08, $f8, $01, $41
- db $00, $08, $02, $61
- db $08, $00, $01, $61
- db $08, $08, $00, $61
-; 8e2ae
-
-Unknown_8e2ae: ; 8e2ae
- db 36
- db $e8, $08, $05, $00
- db $e8, $10, $06, $00
- db $e8, $18, $07, $00
- db $f0, $e8, $11, $00
- db $f0, $f0, $12, $00
- db $f0, $f8, $13, $00
- db $f0, $00, $14, $00
- db $f0, $08, $15, $00
- db $f0, $10, $16, $00
- db $f0, $18, $17, $00
- db $f8, $e0, $20, $00
- db $f8, $e8, $21, $00
- db $f8, $f0, $22, $00
- db $f8, $f8, $23, $00
- db $f8, $00, $24, $00
- db $f8, $08, $25, $00
- db $f8, $10, $26, $00
- db $f8, $18, $27, $00
- db $00, $e0, $30, $00
- db $00, $e8, $31, $00
- db $00, $f0, $32, $00
- db $00, $f8, $33, $00
- db $00, $00, $34, $00
- db $00, $08, $35, $00
- db $00, $10, $36, $00
- db $08, $e0, $40, $00
- db $08, $e8, $41, $00
- db $08, $f0, $42, $00
- db $08, $f8, $43, $00
- db $08, $00, $44, $00
- db $08, $08, $45, $00
- db $08, $10, $46, $00
- db $08, $18, $47, $00
- db $10, $e0, $50, $00
- db $10, $e8, $51, $00
- db $10, $18, $57, $00
-; 8e33f
-
-Unknown_8e33f: ; 8e33f
- db 28
- db $e8, $00, $04, $00
- db $e8, $08, $05, $00
- db $e8, $10, $06, $00
- db $f0, $e8, $11, $00
- db $f0, $f0, $12, $00
- db $f0, $f8, $13, $00
- db $f0, $00, $14, $00
- db $f0, $08, $15, $00
- db $f0, $10, $16, $00
- db $f8, $e8, $21, $00
- db $f8, $f0, $22, $00
- db $f8, $f8, $23, $00
- db $f8, $00, $24, $00
- db $f8, $08, $25, $00
- db $f8, $10, $26, $00
- db $00, $e0, $30, $00
- db $00, $e8, $31, $00
- db $00, $f0, $32, $00
- db $00, $f8, $33, $00
- db $00, $00, $34, $00
- db $00, $08, $35, $00
- db $08, $f0, $42, $00
- db $08, $f8, $43, $00
- db $08, $00, $44, $00
- db $08, $08, $45, $00
- db $10, $f8, $53, $00
- db $10, $00, $54, $00
- db $10, $08, $55, $00
-; 8e3b0
-
-Unknown_8e3b0: ; 8e3b0
- db 30
- db $e8, $00, $04, $00
- db $e8, $08, $05, $00
- db $f0, $e8, $11, $00
- db $f0, $f0, $12, $00
- db $f0, $f8, $13, $00
- db $f0, $00, $14, $00
- db $f0, $08, $15, $00
- db $f0, $10, $16, $00
- db $f0, $18, $17, $00
- db $f8, $e0, $20, $00
- db $f8, $e8, $21, $00
- db $f8, $f0, $22, $00
- db $f8, $f8, $23, $00
- db $f8, $00, $24, $00
- db $f8, $08, $25, $00
- db $f8, $10, $26, $00
- db $00, $e0, $30, $00
- db $00, $e8, $31, $00
- db $00, $f0, $32, $00
- db $00, $f8, $33, $00
- db $00, $00, $34, $00
- db $00, $08, $35, $00
- db $08, $f0, $42, $00
- db $08, $f8, $43, $00
- db $08, $00, $44, $00
- db $08, $08, $45, $00
- db $10, $f0, $52, $00
- db $10, $f8, $53, $00
- db $10, $00, $54, $00
- db $10, $08, $55, $00
-; 8e429
-
-Unknown_8e429: ; 8e429
- db 31
- db $f0, $e8, $11, $00
- db $f0, $f0, $12, $00
- db $f0, $f8, $13, $00
- db $f0, $00, $14, $00
- db $f0, $08, $15, $00
- db $f0, $10, $16, $00
- db $f0, $18, $17, $00
- db $f8, $e0, $20, $00
- db $f8, $e8, $21, $00
- db $f8, $f0, $22, $00
- db $f8, $f8, $23, $00
- db $f8, $00, $24, $00
- db $f8, $08, $25, $00
- db $f8, $10, $26, $00
- db $f8, $18, $27, $00
- db $00, $e0, $30, $00
- db $00, $e8, $31, $00
- db $00, $f0, $32, $00
- db $00, $f8, $33, $00
- db $00, $00, $34, $00
- db $00, $08, $35, $00
- db $00, $10, $36, $00
- db $08, $e8, $41, $00
- db $08, $f0, $42, $00
- db $08, $f8, $43, $00
- db $08, $00, $44, $00
- db $08, $08, $45, $00
- db $10, $e8, $51, $00
- db $10, $f0, $52, $00
- db $10, $00, $54, $00
- db $10, $08, $55, $00
-; 8e4a6
-
-Unknown_8e4a6: ; 8e4a6
- db 25
- db $ec, $ec, $00, $09
- db $ec, $f4, $01, $09
- db $ec, $fc, $02, $09
- db $ec, $04, $03, $09
- db $ec, $0c, $04, $09
- db $f4, $ec, $10, $09
- db $f4, $f4, $11, $09
- db $f4, $fc, $12, $09
- db $f4, $04, $13, $09
- db $f4, $0c, $14, $09
- db $fc, $ec, $20, $09
- db $fc, $f4, $21, $09
- db $fc, $fc, $22, $09
- db $fc, $04, $23, $09
- db $fc, $0c, $24, $09
- db $04, $ec, $30, $09
- db $04, $f4, $31, $09
- db $04, $fc, $32, $09
- db $04, $04, $33, $09
- db $04, $0c, $34, $09
- db $0c, $ec, $40, $09
- db $0c, $f4, $41, $09
- db $0c, $fc, $42, $09
- db $0c, $04, $43, $09
- db $0c, $0c, $44, $09
-; 8e50b
-
-Unknown_8e50b: ; 8e50b
- db 16
- db $f0, $ec, $00, $0a
- db $f0, $f4, $01, $0a
- db $f0, $fc, $02, $0a
- db $f0, $04, $03, $0a
- db $f8, $ec, $04, $0a
- db $f8, $f4, $05, $0a
- db $f8, $fc, $06, $0a
- db $f8, $04, $07, $0a
- db $00, $ec, $08, $0a
- db $00, $f4, $09, $0a
- db $00, $fc, $0a, $0a
- db $00, $04, $0b, $0a
- db $08, $ec, $0c, $0a
- db $08, $f4, $0d, $0a
- db $08, $fc, $0e, $0a
- db $08, $04, $0f, $0a
-; 8e54c
-
-Unknown_8e54c: ; 8e54c
- db 1
- db $fc, $fc, $00, $00
-; 8e551
-
-Unknown_8e551: ; 8e551
- db 3
- db $00, $f8, $00, $00
- db $f8, $f8, $01, $00
- db $f8, $00, $02, $00
-; 8e55e
-
-Unknown_8e55e: ; 8e55e
- db 7
- db $08, $f0, $00, $00
- db $00, $f0, $01, $00
- db $f8, $f0, $02, $00
- db $f8, $f8, $03, $00
- db $f0, $f8, $04, $00
- db $f0, $00, $05, $00
- db $f0, $08, $06, $00
-; 8e57b
-
-Unknown_8e57b: ; 8e57b
- db 8
- db $f8, $f0, $00, $00
- db $f8, $f8, $01, $00
- db $f8, $00, $01, $20
- db $f8, $08, $00, $20
- db $00, $f0, $00, $40
- db $00, $f8, $01, $40
- db $00, $00, $01, $60
- db $00, $08, $00, $60
-; 8e59c
-
-Unknown_8e59c: ; 8e59c
- db 12
- db $e8, $f8, $00, $00
- db $f0, $f8, $01, $00
- db $f8, $f8, $02, $00
- db $e8, $00, $00, $20
- db $f0, $00, $01, $20
- db $f8, $00, $02, $20
- db $00, $f8, $02, $40
- db $08, $f8, $01, $40
- db $10, $f8, $00, $40
- db $00, $00, $02, $60
- db $08, $00, $01, $60
- db $10, $00, $00, $60
-; 8e5cd
-
-Unknown_8e5cd: ; 8e5cd
- db 20
- db $ec, $f0, $00, $00
- db $ec, $f8, $01, $00
- db $ec, $00, $02, $00
- db $ec, $08, $03, $00
- db $f4, $f0, $04, $00
- db $f4, $f8, $05, $00
- db $f4, $00, $06, $00
- db $f4, $08, $07, $00
- db $fc, $f0, $08, $00
- db $fc, $f8, $09, $00
- db $fc, $00, $0a, $00
- db $fc, $08, $0b, $00
- db $04, $f0, $0c, $00
- db $04, $f8, $0d, $00
- db $04, $00, $0e, $00
- db $04, $08, $0f, $00
- db $0c, $f0, $10, $00
- db $0c, $f8, $11, $00
- db $0c, $00, $12, $00
- db $0c, $08, $13, $00
-; 8e61e
-
-Unknown_8e61e: ; 8e61e
- db 20
- db $00, $08, $00, $81
- db $08, $10, $00, $81
- db $10, $18, $00, $81
- db $18, $20, $00, $81
- db $20, $28, $00, $81
- db $18, $30, $00, $81
- db $10, $38, $00, $81
- db $08, $40, $00, $81
- db $00, $48, $00, $81
- db $08, $50, $00, $81
- db $10, $58, $00, $81
- db $18, $60, $00, $81
- db $20, $68, $00, $81
- db $18, $70, $00, $81
- db $10, $78, $00, $81
- db $08, $80, $00, $81
- db $00, $88, $00, $81
- db $08, $90, $00, $81
- db $10, $98, $00, $81
- db $18, $a0, $00, $81
-; 8e66f
-
-Unknown_8e66f: ; 8e66f
- db 4
- db $f8, $f8, $00, $02
- db $f8, $00, $01, $02
- db $00, $f8, $02, $02
- db $00, $00, $03, $02
-; 8e680
-
-Unknown_8e680: ; 8e680
- db 9
- db $f0, $f4, $00, $01
- db $f0, $fc, $01, $01
- db $f0, $04, $02, $01
- db $f8, $f4, $10, $01
- db $f8, $fc, $11, $01
- db $f8, $04, $12, $01
- db $00, $f4, $20, $01
- db $00, $fc, $21, $01
- db $00, $04, $22, $01
-; 8e6a5
-
-Unknown_8e6a5: ; 8e6a5
- db 24
- db $d8, $f4, $00, $01
- db $d8, $fc, $01, $01
- db $d8, $04, $02, $01
- db $d8, $0c, $03, $01
- db $e0, $f4, $10, $01
- db $e0, $fc, $11, $01
- db $e0, $04, $12, $01
- db $e0, $0c, $13, $01
- db $e8, $f4, $20, $01
- db $e8, $fc, $21, $01
- db $e8, $04, $22, $01
- db $e8, $0c, $23, $01
- db $f0, $f4, $30, $01
- db $f0, $fc, $31, $01
- db $f0, $04, $32, $01
- db $f0, $0c, $33, $01
- db $f8, $f4, $40, $01
- db $f8, $fc, $41, $01
- db $f8, $04, $42, $01
- db $f8, $0c, $43, $01
- db $00, $f4, $50, $01
- db $00, $fc, $51, $01
- db $00, $04, $52, $01
- db $00, $0c, $53, $01
-; 8e706
-
-
-Unknown_8e706: ; Broken 2bpp pointers
- dbbw $80, $01, $672a ; 128-tile 2bpp at 1:672a (inside Multiply)
- dbbw $80, $01, $672a
- dbbw $80, $01, $672a
- dbbw $80, $01, $672a
- dbbw $10, $37, $672a ; 16-tile 2bpp at 37:672a (within Tileset11GFX)
- dbbw $10, $11, $672a ; 16-tile 2bpp at 11:672a (empty data)
- dbbw $10, $39, $672a ; 16-tile 2bpp at 39:672a (empty data)
- dbbw $10, $24, $672a ; 16-tile 2bpp at 24:672a (inside Function926f7)
- dbbw $10, $21, $672a ; 16-tile 2bpp at 21:672a (inside Function8671c)
-
-Function8e72a: ; 8e72a
- add $10
-Function8e72c: ; 8e72c
- and $3f
- cp $20
- jr nc, .asm_8e737
- call Function8e741
- ld a, h
- ret
-
-.asm_8e737
- and $1f
- call Function8e741
- ld a, h
- xor $ff ; cpl
- inc a
- ret
-; 8e741
-
-Function8e741: ; 8e741
- ld e, a
- ld a, d
- ld d, 0
- ld hl, Unknown_8e75d
-rept 2
- add hl, de
-endr
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, 0
-.asm_8e750
- srl a
- jr nc, .asm_8e755
- add hl, de
-
-.asm_8e755
- sla e
- rl d
- and a
- jr nz, .asm_8e750
- ret
-; 8e75d
-
-Unknown_8e75d: ; 8e75d
- sine_wave $100
-
-
-Function8e79d: ; 8e79d
- ld a, [hSGB]
- ld de, GFX_8e7f4
- and a
- jr z, .asm_8e7a8
- ld de, GFX_8e804
-
-.asm_8e7a8
- ld hl, VTiles0
- lb bc, BANK(GFX_8e7f4), 1
- call Request2bpp
- ld c, $8
- ld d, $0
-.asm_8e7b5
- push bc
- call Function8e7c6
- call DelayFrame
- pop bc
-rept 2
- inc d
-endr
- dec c
- jr nz, .asm_8e7b5
- call ClearSprites
- ret
-; 8e7c6
-
-Function8e7c6: ; 8e7c6
- ld hl, Sprites
- ld c, $8
-.asm_8e7cb
- ld a, c
- and a
- ret z
- dec c
- ld a, c
- sla a
- sla a
- sla a
- push af
- push de
- push hl
- call Function8e72c
- pop hl
- pop de
- add $68
- ld [hli], a
- pop af
- push de
- push hl
- call Function8e72a
- pop hl
- pop de
- add $54
- ld [hli], a
- ld a, $0
- ld [hli], a
- ld a, $6
- ld [hli], a
- jr .asm_8e7cb
-; 8e7f4
-
-GFX_8e7f4: ; 8e7f4
-INCBIN "gfx/unknown/08e7f4.2bpp"
-GFX_8e804: ; 8e804
-INCBIN "gfx/unknown/08e804.2bpp"
-
-InefficientlyClear121BytesAtwc300: ; 8e814
- push hl
- push de
- push bc
- push af
- ld hl, wc300
- ld bc, wc3c1 - wc300
-.loop
- ld [hl], $0
- inc hl
- dec bc
- ld a, c
- or b
- jr nz, .loop
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 8e82b
-
-Function8e82b: ; 8e82b
- ld a, e
- call ReadMonMenuIcon
- ld l, a
- ld h, 0
- add hl, hl
- ld de, IconPointers
- add hl, de
- ld a, [hli]
- ld e, a
- ld d, [hl]
- ld b, BANK(Icons)
- ld c, 8
- ret
-; 8e83f
-
-Function8e83f: ; 8e83f
- push hl
- push de
- push bc
- call Function8e849
- pop bc
- pop de
- pop hl
- ret
-; 8e849
-
-Function8e849: ; 8e849
- ld d, 0
- ld hl, Jumptable_8e854
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 8e854
-
-
-Jumptable_8e854: ; 8e854 (23:6854)
- dw Function8e8d5
- dw Function8e961
- dw Function8e97d
- dw Function8e99a
- dw Function8e898
- dw Function8e8b1
- dw Function8e862
-
-
-Function8e862: ; 8e862 (23:6862)
- call Function8e908
- call Function8e86c
- call Function8e936
- ret
-
-Function8e86c: ; 8e86c (23:686c)
- push bc
- ld a, [hObjectStructIndexBuffer]
- ld hl, PartyMon1Item
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- pop bc
- ld a, [hl]
- and a
- jr z, .asm_8e890
- push hl
- push bc
- ld d, a
- callab ItemIsMail
- pop bc
- pop hl
- jr c, .asm_8e88e
- ld a, $6
- jr .asm_8e892
-.asm_8e88e
- ld a, $5
-.asm_8e890
- ld a, $4
-.asm_8e892
- ld hl, $1
- add hl, bc
- ld [hl], a
- ret
-
-Function8e898: ; 8e898 (23:6898)
- call Function8e8d5
- ld hl, $2
- add hl, bc
- ld a, $0
- ld [hl], a
- ld hl, $4
- add hl, bc
- ld a, $48
- ld [hl], a
- ld hl, $5
- add hl, bc
- ld a, $48
- ld [hl], a
- ret
-
-Function8e8b1: ; 8e8b1 (23:68b1)
- call Function8e908
- call Function8e936
- ld hl, $2
- add hl, bc
- ld a, $0
- ld [hl], a
- ld hl, $4
- add hl, bc
- ld a, $18
- ld [hl], a
- ld hl, $5
- add hl, bc
- ld a, $60
- ld [hl], a
- ld a, c
- ld [wc608], a
- ld a, b
- ld [wc608 + 1], a
- ret
-
-Function8e8d5: ; 8e8d5 (23:68d5)
- call Function8e908
- call Function8e8df
- call Function8e936
- ret
-
-Function8e8df: ; 8e8df (23:68df)
- push bc
- ld a, [hObjectStructIndexBuffer]
- ld hl, PartyMon1Item
- ld bc, $30
- call AddNTimes
- pop bc
- ld a, [hl]
- and a
- ret z
- push hl
- push bc
- ld d, a
- callab ItemIsMail
- pop bc
- pop hl
- jr c, .asm_8e900
- ld a, $3
- jr .asm_8e902
-.asm_8e900
- ld a, $2
-.asm_8e902
- ld hl, $1
- add hl, bc
- ld [hl], a
- ret
-
-Function8e908: ; 8e908 (23:6908)
- ld a, [wc3b7]
- push af
- ld a, [hObjectStructIndexBuffer]
- ld hl, PartySpecies
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- call ReadMonMenuIcon
- ld [CurIcon], a
- call Function8e9db
- ld a, [hObjectStructIndexBuffer]
-; and $f \ swap a
-rept 4
- add a
-endr
- add $1c
- ld d, a
- ld e, $10
- ld a, $0
- call Function8cfd6
- pop af
- ld hl, $3
- add hl, bc
- ld [hl], a
- ret
-
-Function8e936: ; 8e936 (23:6936)
- push bc
- ld a, [hObjectStructIndexBuffer]
- ld b, a
- call Function8e94c
- ld a, b
- pop bc
- ld hl, $9
- add hl, bc
- ld [hl], a
- rlca
- rlca
- ld hl, $d
- add hl, bc
- ld [hl], a
- ret
-
-Function8e94c: ; 8e94c (23:694c)
- callba PlacePartymonHPBar
- call GetHPPal
- ld e, d
- ld d, 0
- ld hl, Unknown_8e95e
- add hl, de
- ld b, [hl]
- ret
-; 8e95e (23:695e)
-
-Unknown_8e95e: ; 8e95e
- db $00, $40, $80
-; 8e961
-
-Function8e961: ; 8e961 (23:6961)
- ld a, [wd265]
- call ReadMonMenuIcon
- ld [CurIcon], a
- xor a
- call GetIconGFX
- ld de, $2420
- ld a, $0
- call Function8cfd6
- ld hl, $2
- add hl, bc
- ld [hl], $0
- ret
-
-Function8e97d: ; 8e97d (23:697d)
- ld a, [wd265]
- call ReadMonMenuIcon
- ld [CurIcon], a
- xor a
- call GetIconGFX
- ld d, $1a
- ld e, $24
- ld a, $0
- call Function8cfd6
- ld hl, $2
- add hl, bc
- ld [hl], $0
- ret
-
-Function8e99a: ; 8e99a (23:699a)
- ld a, [wd265]
- call ReadMonMenuIcon
- ld [CurIcon], a
- ld a, $62
- ld [wc3b7], a
- call Function8e9db
- ret
-
-GetSpeciesIcon: ; 8e9ac
-; Load species icon into VRAM at tile a
- push de
- ld a, [wd265]
- call ReadMonMenuIcon
- ld [CurIcon], a
- pop de
- ld a, e
- call GetIconGFX
- ret
-; 8e9bc
-
-
-Function8e9bc: ; 8e9bc (23:69bc)
- push de
- ld a, [wd265]
- call ReadMonMenuIcon
- ld [CurIcon], a
- pop de
- ld a, e
- call GetIcon_a
- ret
-; 8e9cc (23:69cc)
-
-Function8e9cc: ; 8e9cc
- push de
- ld a, [wd265]
- call ReadMonMenuIcon
- ld [CurIcon], a
- pop de
- call GetIcon_de
- ret
-; 8e9db
-
-Function8e9db: ; 8e9db (23:69db)
- ld a, [wc3b7]
-
-GetIconGFX: ; 8e9de
- call GetIcon_a
- ld de, $80 ; 8 tiles
- add hl, de
- ld de, HeldItemIcons
- lb bc, BANK(HeldItemIcons), 2
- call GetGFXUnlessMobile
- ld a, [wc3b7]
- add 10
- ld [wc3b7], a
- ret
-
-HeldItemIcons:
-INCBIN "gfx/icon/mail.2bpp"
-INCBIN "gfx/icon/item.2bpp"
-; 8ea17
-
-GetIcon_de: ; 8ea17
-; Load icon graphics into VRAM starting from tile de.
- ld l, e
- ld h, d
- jr GetIcon
-
-GetIcon_a: ; 8ea1b
-; Load icon graphics into VRAM starting from tile a.
- ld l, a
- ld h, 0
-
-GetIcon: ; 8ea1e
-; Load icon graphics into VRAM starting from tile hl.
-
-; One tile is 16 bytes long.
-rept 4
- add hl, hl
-endr
-
- ld de, VTiles0
- add hl, de
- push hl
-
-; The icons are contiguous, in order and of the same
-; size, so the pointer table is somewhat redundant.
- ld a, [CurIcon]
- push hl
- ld l, a
- ld h, 0
- add hl, hl
- ld de, IconPointers
- add hl, de
- ld a, [hli]
- ld e, a
- ld d, [hl]
- pop hl
-
- lb bc, BANK(Icons), 8
- call GetGFXUnlessMobile
-
- pop hl
- ret
-; 8ea3f
-
-GetGFXUnlessMobile: ; 8ea3f
- ld a, [wLinkMode]
- cp LINK_MOBILE
- jp nz, Request2bpp
- jp Get2bpp_2
-; 8ea4a
-
-Function8ea4a: ; 8ea4a
- ld hl, wc314
- ld e, $6
- ld a, [MenuSelection2]
- ld d, a
-.loop
- ld a, [hl]
- and a
- jr z, .next
- cp d
- jr z, .loadwithtwo
- ld a, $0
- jr .ok
-
-.loadwithtwo
- ld a, $2
-
-.ok
- push hl
- ld c, l
- ld b, h
- ld hl, $2
- add hl, bc
- ld [hl], a
- pop hl
-
-.next
- ld bc, $10
- add hl, bc
- dec e
- jr nz, .loop
- ret
-; 8ea71
-
-Function8ea71: ; 8ea71
- ld hl, wc314
- ld e, $6
-.loop
- ld a, [hl]
- and a
- jr z, .zero
- push hl
- ld c, l
- ld b, h
- ld hl, $2
- add hl, bc
- ld [hl], $1
- pop hl
-.zero
- ld bc, $10
- add hl, bc
- dec e
- jr nz, .loop
- ret
-; 8ea8c (23:6a8c)
-
-Function8ea8c: ; 8ea8c
- ld hl, wc314
- ld e, $6
- ld a, [wd0e3]
- ld d, a
-.asm_8ea95
- ld a, [hl]
- and a
- jr z, .asm_8eaab
- cp d
- jr z, .asm_8eaa0
- ld a, $3
- jr .asm_8eaa2
-.asm_8eaa0
- ld a, $2
-.asm_8eaa2
- push hl
- ld c, l
- ld b, h
- ld hl, $2
- add hl, bc
- ld [hl], a
- pop hl
-.asm_8eaab
- ld bc, $10
- add hl, bc
- dec e
- jr nz, .asm_8ea95
- ret
-
-
-INCLUDE "menu/mon_icons.asm"
-
-
SECTION "bank24", ROMX, BANK[$24]
INCLUDE "engine/phone.asm"
+INCLUDE "engine/timeset.asm"
+INCLUDE "engine/pokegear.asm"
-InitClock: ; 90672 (24:4672)
-; Ask the player to set the time.
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
-
- ld a, $0
- ld [wc2ce], a
- ld a, $10
- ld [MusicFade], a
- ld a, MUSIC_NONE % $100
- ld [MusicFadeIDLo], a
- ld a, MUSIC_NONE / $100
- ld [MusicFadeIDHi], a
- ld c, 8
- call DelayFrames
- call Function4dd
- call ClearTileMap
- call ClearSprites
- ld b, $8
- call GetSGBLayout
- xor a
- ld [hBGMapMode], a
- call LoadStandardFont
- ld de, GFX_908fb
- ld hl, VTiles2 tile $00
- lb bc, BANK(GFX_908fb), 1
- call Request1bpp
- ld de, GFX_90903
- ld hl, VTiles2 tile $01
- lb bc, BANK(GFX_90903), 1
- call Request1bpp
- ld de, GFX_9090b
- ld hl, VTiles2 tile $02
- lb bc, BANK(GFX_9090b), 1
- call Request1bpp
- call .ClearScreen
- call WaitBGMap
- call Function4a3
- ld hl, UnknownText_0x90874
- call PrintText
- ld hl, wc608
- ld bc, 50
- xor a
- call ByteFill
- ld a, $a
- ld [wInitHourBuffer], a
-
-.loop
- ld hl, UnknownText_0x90879
- call PrintText
- hlcoord 3, 7
- ld b, 2
- ld c, 15
- call TextBox
- hlcoord 11, 7
- ld [hl], $1
- hlcoord 11, 10
- ld [hl], $2
- hlcoord 4, 9
- call DisplayHourOClock
- ld c, 10
- call DelayFrames
-
-.SetHourLoop
- call JoyTextDelay
- call SetHour
- jr nc, .SetHourLoop
-
- ld a, [wInitHourBuffer]
- ld [StringBuffer2 + 1], a
- call .ClearScreen
- ld hl, UnknownText_0x90886
- call PrintText
- call YesNoBox
- jr nc, .HourIsSet
- call .ClearScreen
- jr .loop
-
-.HourIsSet
- ld hl, UnknownText_0x9089a
- call PrintText
- hlcoord 11, 7
- lb bc, 2, 7
- call TextBox
- hlcoord 15, 7
- ld [hl], $1
- hlcoord 15, 10
- ld [hl], $2
- hlcoord 12, 9
- call DisplayMinutesWithMinString
- ld c, 10
- call DelayFrames
-
-.SetMinutesLoop
- call JoyTextDelay
- call SetMinutes
- jr nc, .SetMinutesLoop
-
- ld a, [BattleMonNick + 5]
- ld [StringBuffer2 + 2], a
- call .ClearScreen
- ld hl, UnknownText_0x908a4
- call PrintText
- call YesNoBox
- jr nc, .MinutesAreSet
- call .ClearScreen
- jr .HourIsSet
-
-.MinutesAreSet
- call Function658
- ld hl, OakText_ResponseToSetTime
- call PrintText
- call WaitPressAorB_BlinkCursor
- pop af
- ld [hInMenu], a
- ret
-
-.ClearScreen: ; 90783 (24:4783)
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 0
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- xor a
- call ByteFill
- ld a, $1
- ld [hBGMapMode], a
- ret
-
-SetHour: ; 90795 (24:4795)
- ld a, [hJoyPressed]
- and A_BUTTON
- jr nz, .Confirm
-
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .up
- ld a, [hl]
- and D_DOWN
- jr nz, .down
- call DelayFrame
- and a
- ret
-
-.down
- ld hl, wInitHourBuffer
- ld a, [hl]
- and a
- jr nz, .DecreaseThroughMidnight
- ld a, 23 + 1
-.DecreaseThroughMidnight
- dec a
- ld [hl], a
- jr .okay
-
-.up
- ld hl, wInitHourBuffer
- ld a, [hl]
- cp 23
- jr c, .AdvanceThroughMidnight
- ld a, -1
-.AdvanceThroughMidnight
- inc a
- ld [hl], a
-
-.okay
- hlcoord 4, 9
- ld a, " "
- ld bc, 15
- call ByteFill
- hlcoord 4, 9
- call DisplayHourOClock
- call WaitBGMap
- and a
- ret
-
-.Confirm
- scf
- ret
-
-DisplayHourOClock: ; 907de (24:47de)
- push hl
- ld a, [wInitHourBuffer]
- ld c, a
- ld e, l
- ld d, h
- call PrintHour
- inc hl
- ld de, String_oclock
- call PlaceString
- pop hl
- ret
-; 907f1 (24:47f1)
-
-Function907f1: ; 907f1
- ld h, d
- ld l, e
- push hl
- call DisplayHourOClock
- pop de
-rept 2
- inc de
-endr
- ld a, $9c
- ld [de], a
- inc de
- push de
- ld hl, $3
- add hl, de
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- ld [hl], a
- pop hl
- call DisplayMinutesWithMinString
-rept 3
- inc hl
-endr
- ret
-; 90810
-
-SetMinutes: ; 90810 (24:4810)
- ld a, [hJoyPressed]
- and A_BUTTON
- jr nz, .asm_90857
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .asm_90835
- ld a, [hl]
- and D_DOWN
- jr nz, .asm_90828
- call DelayFrame
- and a
- ret
-.asm_90828
- ld hl, BattleMonNick + 5
- ld a, [hl]
- and a
- jr nz, .asm_90831
- ld a, 59 + 1
-.asm_90831
- dec a
- ld [hl], a
- jr .asm_90841
-.asm_90835
- ld hl, BattleMonNick + 5
- ld a, [hl]
- cp 59
- jr c, .asm_9083f
- ld a, -1
-.asm_9083f
- inc a
- ld [hl], a
-.asm_90841
- hlcoord 12, 9
- ld a, " "
- ld bc, 7
- call ByteFill
- hlcoord 12, 9
- call DisplayMinutesWithMinString
- call WaitBGMap
- and a
- ret
-.asm_90857
- scf
- ret
-
-DisplayMinutesWithMinString: ; 90859 (24:4859)
- ld de, BattleMonNick + 5
- call PrintTwoDigitNumberRightAlign
- inc hl
- ld de, String_min
- call PlaceString
- ret
-
-PrintTwoDigitNumberRightAlign: ; 90867 (24:4867)
- push hl
- ld a, " "
- ld [hli], a
- ld [hl], a
- pop hl
- lb bc, PRINTNUM_RIGHTALIGN | 1, 2
- call PrintNum
- ret
-; 90874 (24:4874)
-
-UnknownText_0x90874: ; 0x90874
- ; Zzz… Hm? Wha…? You woke me up! Will you check the clock for me?
- text_jump UnknownText_0x1bc29c
- db "@"
-; 0x90879
-
-UnknownText_0x90879: ; 0x90879
- ; What time is it?
- text_jump UnknownText_0x1bc2eb
- db "@"
-; 0x9087e
-
-String_oclock:
- db "o'clock@"
-; 90886
-
-UnknownText_0x90886: ; 0x90886
- ; What?@ @
- text_jump UnknownText_0x1bc2fd
- start_asm
- hlcoord 1, 16
- call DisplayHourOClock
- ld hl, UnknownText_0x90895
- ret
-; 90895 (24:4895)
-
-UnknownText_0x90895: ; 0x90895
- ; ?
- text_jump UnknownText_0x1bc305
- db "@"
-; 0x9089a
-
-UnknownText_0x9089a: ; 0x9089a
- ; How many minutes?
- text_jump UnknownText_0x1bc308
- db "@"
-; 0x9089f
-
-String_min:
- db "min.@"
-; 908a4
-
-UnknownText_0x908a4: ; 0x908a4
- ; Whoa!@ @
- text_jump UnknownText_0x1bc31b
- start_asm
-; 0x908a9
- hlcoord 7, 14
- call DisplayMinutesWithMinString
- ld hl, UnknownText_0x908b3
- ret
-; 908b3 (24:48b3)
-
-UnknownText_0x908b3: ; 0x908b3
- ; ?
- text_jump UnknownText_0x1bc323
- db "@"
-; 0x908b8
-
-OakText_ResponseToSetTime: ; 0x908b8
- start_asm
- decoord 1, 14
- ld a, [wInitHourBuffer]
- ld c, a
- call PrintHour
- ld [hl], ":"
- inc hl
- ld de, BattleMonNick + 5
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- call PrintNum
- ld b, h
- ld c, l
- ld a, [wInitHourBuffer]
- cp 4
- jr c, .NITE
- cp 11
- jr c, .MORN
- cp 18
- jr c, .DAY
-.NITE
- ld hl, .sodark
- ret
-.MORN
- ld hl, .overslept
- ret
-.DAY
- ld hl, .yikes
- ret
-; 908ec (24:48ec)
-
-.overslept: ; 0x908ec
- ; ! I overslept!
- text_jump UnknownText_0x1bc326
- db "@"
-; 0x908f1
-
-.yikes: ; 0x908f1
- ; ! Yikes! I over- slept!
- text_jump UnknownText_0x1bc336
- db "@"
-; 0x908f6
-
-.sodark: ; 0x908f6
- ; ! No wonder it's so dark!
- text_jump UnknownText_0x1bc34f
- db "@"
-; 0x908fb
-
-GFX_908fb: ; 908fb
-INCBIN "gfx/unknown/0908fb.2bpp"
-GFX_90903: ; 90903
-INCBIN "gfx/unknown/090903.2bpp"
-GFX_9090b: ; 9090b
-INCBIN "gfx/unknown/09090b.2bpp"
-; 90913
-
-Special_SetDayOfWeek: ; 90913
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- ld de, GFX_90903
- ld hl, VTiles1 tile $6f
- lb bc, BANK(GFX_90903), 1
- call Request1bpp
- ld de, GFX_9090b
- ld hl, VTiles1 tile $75
- lb bc, BANK(GFX_9090b), 1
- call Request1bpp
- xor a
- ld [wd002], a
-.asm_90936
- hlcoord 0, 12
- lb bc, 4, 18
- call TextBox
- call LoadStandardMenuDataHeader
- ld hl, UnknownText_0x90a3f
- call PrintText
- hlcoord 9, 3
- ld b, 2
- ld c, 9
- call TextBox
- hlcoord 14, 3
- ld [hl], $ef
- hlcoord 14, 6
- ld [hl], $f5
- hlcoord 10, 5
- call Function909de
- call Function321c
- ld c, 10
- call DelayFrames
-.asm_9096a
- call JoyTextDelay
- call Function90993
- jr nc, .asm_9096a
- call ExitMenu
- call UpdateSprites
- ld hl, UnknownText_0x90a44
- call PrintText
- call YesNoBox
- jr c, .asm_90936
- ld a, [wd002]
- ld [StringBuffer2], a
- call Function663
- call LoadStandardFont
- pop af
- ld [hInMenu], a
- ret
-; 90993
-
-Function90993: ; 90993
- ld a, [hJoyPressed]
- and A_BUTTON
- jr z, .asm_9099b
- scf
- ret
-
-.asm_9099b
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .asm_909ba
- ld a, [hl]
- and D_DOWN
- jr nz, .asm_909ad
- call DelayFrame
- and a
- ret
-
-.asm_909ad
- ld hl, wd002
- ld a, [hl]
- and a
- jr nz, .asm_909b6
- ld a, 6 + 1
-
-.asm_909b6
- dec a
- ld [hl], a
- jr .asm_909c6
-
-.asm_909ba
- ld hl, wd002
- ld a, [hl]
- cp 6
- jr c, .asm_909c4
- ld a, -1
-
-.asm_909c4
- inc a
- ld [hl], a
-
-.asm_909c6
- xor a
- ld [hBGMapMode], a
- hlcoord 10, 4
- ld b, $2
- ld c, $9
- call ClearBox
- hlcoord 10, 5
- call Function909de
- call WaitBGMap
- and a
- ret
-; 909de
-
-Function909de: ; 909de
- push hl
- ld a, [wd002]
- ld e, a
- ld d, 0
- ld hl, WeekdaysStrings
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld d, [hl]
- ld e, a
- pop hl
- call PlaceString
- ret
-; 909f2
-
-WeekdaysStrings: ; 909f2
- dw Sunday
- dw Monday
- dw Tuesday
- dw Wednesday
- dw Thursday
- dw Friday
- dw Saturday
- dw Sunday
-
-Sunday: db " SUNDAY@"
-Monday: db " MONDAY@"
-Tuesday: db " TUESDAY@"
-Wednesday: db "WEDNESDAY@"
-Thursday: db "THURSDAY@"
-Friday: db " FRIDAY@"
-Saturday: db "SATURDAY@"
-
-
-UnknownText_0x90a3f: ; 0x90a3f
- ; What day is it?
- text_jump UnknownText_0x1bc369
- db "@"
-; 0x90a44
-
-UnknownText_0x90a44: ; 0x90a44
- start_asm
- hlcoord 1, 14
- call Function909de
- ld hl, UnknownText_0x90a4f
- ret
-; 90a4f (24:4a4f)
-
-UnknownText_0x90a4f: ; 0x90a4f
- ; , is it?
- text_jump UnknownText_0x1bc37a
- db "@"
-; 0x90a54
-
-Special_InitialSetDSTFlag: ; 90a54
- ld a, [wDST]
- set 7, a
- ld [wDST], a
- hlcoord 1, 14
- lb bc, 3, 18
- call ClearBox
- ld hl, UnknownText_0x90a6c
- call PlaceWholeStringInBoxAtOnce
- ret
-; 90a6c
-
-UnknownText_0x90a6c: ; 90a6c
- start_asm
- call UpdateTime
- ld a, [hHours]
- ld b, a
- ld a, [hMinutes]
- ld c, a
- decoord 1, 14
- callba PrintHoursMins
- ld hl, TextJump_DSTIsThatOK
- ret
-; 90a83 (24:4a83)
-
-TextJump_DSTIsThatOK: ; 0x90a83
- ; DST, is that OK?
- text_jump Text_DSTIsThatOK
- db "@"
-; 0x90a88
-
-Special_InitialClearDSTFlag: ; 90a88
- ld a, [wDST]
- res 7, a
- ld [wDST], a
- hlcoord 1, 14
- lb bc, 3, 18
- call ClearBox
- ld hl, UnknownText_0x90aa0
- call PlaceWholeStringInBoxAtOnce
- ret
-; 90aa0
-
-UnknownText_0x90aa0: ; 90aa0
- start_asm
- call UpdateTime
- ld a, [hHours]
- ld b, a
- ld a, [hMinutes]
- ld c, a
- decoord 1, 14
- callba PrintHoursMins
- ld hl, UnknownText_0x90ab7
- ret
-; 90ab7
-
-UnknownText_0x90ab7: ; 0x90ab7
- ; , is that OK?
- text_jump UnknownText_0x1c5ff1
- db "@"
-; 0x90abc
-
-Function90abc: ; 90abc
- hlcoord 1, 14
- lb bc, 3, SCREEN_WIDTH - 2
- call ClearBox
- ld hl, UnknownText_0x90acc
- call PlaceWholeStringInBoxAtOnce
- ret
-; 90acc
-
-UnknownText_0x90acc: ; 0x90acc
- start_asm
-
- call UpdateTime
-
- hlcoord 1, 14
- ld [hl], "R"
- inc hl
- ld [hl], "T"
- inc hl
- ld [hl], " "
- inc hl
-
- ld de, hRTCDayLo
- call Function90b23
-
- hlcoord 1, 16
- ld [hl], "D"
- inc hl
- ld [hl], "F"
- inc hl
- ld [hl], " "
- inc hl
-
- ld de, StartDay
- call Function90b23
-
- ld [hl], " "
- inc hl
-
- ld a, [wDST]
- bit 7, a
- jr z, .off
-
- ld [hl], "O"
- inc hl
- ld [hl], "N"
- inc hl
- jr .done
-
-.off
- ld [hl], "O"
- inc hl
- ld [hl], "F"
- inc hl
- ld [hl], "F"
- inc hl
-
-.done
- ld hl, UnknownText_0x90b13
- ret
-; 90b13
-
-UnknownText_0x90b13: ; 0x90b13
- text "<PARA>Now on DEBUG…"
- prompt
-; 0x90b23
-
-Function90b23: ; 90b23
- lb bc, 1, 3
- call PrintNum
- ld [hl], "."
- inc hl
- inc de
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- call PrintNum
- ld [hl], ":"
- inc hl
- inc de
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- call PrintNum
- ret
-; 90b3e
-
-PrintHour: ; 90b3e (24:4b3e)
- ld l, e
- ld h, d
- push bc
- call GetTimeOfDayString
- call PlaceString
- ld l, c
- ld h, b
- inc hl
- pop bc
- call AdjustHourForAMorPM
- ld [wd265], a
- ld de, wd265
- call PrintTwoDigitNumberRightAlign
- ret
-
-GetTimeOfDayString: ; 90b58 (24:4b58)
- ld a, c
- cp 4
- jr c, .nite
- cp 10
- jr c, .morn
- cp 18
- jr c, .day
-.nite
- ld de, .NITE
- ret
-.morn
- ld de, .MORN
- ret
-.day
- ld de, .DAY
- ret
-; 90b71 (24:4b71)
-
-.NITE: db "NITE@"
-.MORN: db "MORN@"
-.DAY: db "DAY@"
-; 90b7f
-
-AdjustHourForAMorPM:
-; Convert the hour stored in c (0-23) to a 1-12 value
- ld a, c
- or a
- jr z, .midnight
- cp 12
- ret c
- ret z
- sub 12
- ret
-
-.midnight
- ld a, 12
- ret
-
-Function90b8d: ; 90b8d (24:4b8d)
- ld hl, Options
- ld a, [hl]
- push af
- set NO_TEXT_SCROLL, [hl]
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- ld a, [VramState]
- push af
- xor a
- ld [VramState], a
- call Function90bea
- call DelayFrame
-
-.loop
- call UpdateTime
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .done
- call Function90f04
- callba Function8cf69
- call DelayFrame
- jr .loop
-
-.done
- ld de, SFX_READ_TEXT_2
- call PlaySFX
- call WaitSFX
- pop af
- ld [VramState], a
- pop af
- ld [hInMenu], a
- pop af
- ld [Options], a
- call ClearBGPalettes
- xor a
- ld [hBGMapAddress], a
- ld a, VBGMap0 / $100
- ld [hBGMapAddress + 1], a
- ld a, $90
- ld [hWY], a
- call Function91492
- ret
-
-Function90bea: ; 90bea (24:4bea)
- call ClearBGPalettes
- call ClearTileMap
- call ClearSprites
- call DisableLCD
- xor a
- ld [hSCY], a
- ld [hSCX], a
- ld a, $7
- ld [hWX], a
- call Function90c4e
- callba Function8cf53
- call Function90d32
- ld a, 8
- call SkipMusic
- ld a, $e3
- ld [rLCDC], a
- call Function90d70
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [wcf66], a
- ld [wc6d2], a
- ld [wc6d1], a
- ld [wc6d3], a
- ld [wc6d9], a
- ld [wc6da], a
- ld [wc6db], a
- call Function90d9e
- call Function90da8
- ld b, $2
- call GetSGBLayout
- call SetPalettes
- ld a, [hCGB]
- and a
- ret z
- ld a, $e4
- call Functioncf8
- ret
-
-Function90c4e: ; 90c4e
- call Functiond79
- ld hl, TownMapGFX
- ld de, VTiles2
- ld a, BANK(TownMapGFX)
- call FarDecompress
-
- ld hl, PokegearGFX
- ld de, VTiles2 + $300
- ld a, BANK(PokegearGFX)
- call FarDecompress
-
- ld hl, PokegearSpritesGFX
- ld de, VTiles0
- ld a, BANK(PokegearSpritesGFX)
- call Decompress
-
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetWorldMapLocation
- cp FAST_SHIP
- jr z, .ssaqua
-
- callba GetPlayerIcon
-
- push de
- ld h, d
- ld l, e
- ld a, b
-
- push af
- ld de, VTiles0 tile $10
- ld bc, $40
- call FarCopyBytes
- pop af
-
- pop hl
-
- ld de, $c0
- add hl, de
- ld de, VTiles0 tile $14
- ld bc, $40
- call FarCopyBytes
- ret
-
-.ssaqua
- ld hl, FastShipGFX
- ld de, VTiles0 tile $10
- ld bc, $80
- call CopyBytes
- ret
-; 90cb2
-
-FastShipGFX: ; 90cb2
-INCBIN "gfx/misc/fast_ship.2bpp"
-; 90d32
-
-Function90d32: ; 90d32 (24:4d32)
- ld de, $2410
- ld a, $d
- call Function3b2a
- ld hl, $3
- add hl, bc
- ld [hl], $0
- ret
-
-Function90d41: ; 90d41 (24:4d41)
- ld hl, wcf64
- ld e, [hl]
- ld d, 0
- ld hl, Unknown_90d52
- add hl, de
- ld a, [hl]
- ld hl, $6
- add hl, bc
- ld [hl], a
- ret
-; 90d52 (24:4d52)
-
-Unknown_90d52: ; 90d52
- db $00, $10, $20, $30
-; 90d56
-
-Function90d56: ; 90d56
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetWorldMapLocation
- cp SPECIAL_MAP
- ret nz
- ld a, [BackupMapGroup]
- ld b, a
- ld a, [BackupMapNumber]
- ld c, a
- call GetWorldMapLocation
- ret
-; 90d70
-
-
-Function90d70: ; 90d70 (24:4d70)
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetWorldMapLocation
-
- cp FAST_SHIP
- jr z, .asm_90d95
-
- cp SPECIAL_MAP
- jr nz, .asm_90d8e
-
- ld a, [BackupMapGroup]
- ld b, a
- ld a, [BackupMapNumber]
- ld c, a
- call GetWorldMapLocation
-
-.asm_90d8e
- ld [wc6d8], a
- ld [wc6d7], a
- ret
-
-.asm_90d95
- ld [wc6d8], a
- ld a, NEW_BARK_TOWN
- ld [wc6d7], a
- ret
-
-Function90d9e: ; 90d9e (24:4d9e)
- ld a, $0
- ld [wJumptableIndex], a
- xor a
- ld [wcf64], a
- ret
-
-Function90da8: ; 90da8 (24:4da8)
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 0
- ld bc, TileMapEnd - TileMap
- ld a, $4f
- call ByteFill
- ld a, [wcf64]
- and $3
- add a
- ld e, a
- ld d, 0
- ld hl, Jumptable_90e12
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, .asm_90dcb
- push de
- jp [hl]
-
-.asm_90dcb
- call Function90eb0
- callba TownMapPals
- ld a, [wcf65]
- and a
- jr nz, .asm_90de8
-
- xor a
- ld [hBGMapAddress], a
- ld a, VBGMap0 / $100
- ld [hBGMapAddress + 1], a
- call Function90e00
- ld a, $90
- jr .asm_90df3
-
-.asm_90de8
- xor a
- ld [hBGMapAddress], a
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- call Function90e00
- xor a
-
-.asm_90df3
- ld [hWY], a
- ld a, [wcf65]
- and 1
- xor 1
- ld [wcf65], a
- ret
-
-Function90e00: ; 90e00 (24:4e00)
- ld a, [hCGB]
- and a
- jr z, .asm_90e0e
- ld a, $2
- ld [hBGMapMode], a
- ld c, 3
- call DelayFrames
-.asm_90e0e
- call WaitBGMap
- ret
-; 90e12 (24:4e12)
-
-Jumptable_90e12: ; 90e12
- dw Function90e1a
- dw Function90e3f
- dw Function90e82
- dw Function90e72
-; 90e1a
-
-Function90e1a: ; 90e1a
- ld de, ClockTilemapRLE
- call Function914bb
- hlcoord 12, 1
- ld de, .switch
- call PlaceString
- hlcoord 0, 12
- lb bc, 4, 18
- call TextBox
- call Function90f86
- ret
-; 90e36 (24:4e36)
-
-.switch
- db " SWITCH▶@"
-; 90e3f
-
-Function90e3f: ; 90e3f
-
- ld a, [wc6d8]
- cp FAST_SHIP
- jr z, .johto
- cp KANTO_LANDMARK
- jr nc, .kanto
-.johto
- ld e, 0
- jr .ok
-.kanto
- ld e, 1
-.ok
- callba Function91ae1
- ld a, $7
- ld bc, $12
- hlcoord 1, 2
- call ByteFill
- hlcoord 0, 2
- ld [hl], $6
- hlcoord 19, 2
- ld [hl], $17
- ld a, [wc6d7]
- call Function910b4
- ret
-; 90e72
-
-Function90e72: ; 90e72
- ld de, RadioTilemapRLE
- call Function914bb
- hlcoord 0, 12
- lb bc, 4, 18
- call TextBox
- ret
-; 90e82
-
-Function90e82: ; 90e82
- ld de, PhoneTilemapRLE
- call Function914bb
- hlcoord 0, 12
- lb bc, 4, 18
- call TextBox
- call Function90e98
- call Function912d8
- ret
-; 90e98
-
-Function90e98: ; 90e98 (24:4e98)
- hlcoord 17, 1
- ld a, $3c
- ld [hli], a
- inc a
- ld [hl], a
- hlcoord 17, 2
- inc a
- ld [hli], a
- call GetMapHeaderPhoneServiceNybble
- and a
- ret nz
- hlcoord 18, 2
- ld [hl], $3f
- ret
-
-Function90eb0: ; 90eb0 (24:4eb0)
- hlcoord 0, 0
- ld bc, $8
- ld a, $4f
- call ByteFill
- hlcoord 0, 1
- ld bc, $8
- ld a, $4f
- call ByteFill
- ld de, wPokegearFlags
- ld a, [de]
- bit 0, a
- call nz, Function90ee4
- ld a, [de]
- bit 2, a
- call nz, Function90eeb
- ld a, [de]
- bit 1, a
- call nz, Function90ef2
- hlcoord 0, 0
- ld a, $46
- call Function90ef7
- ret
-
-Function90ee4: ; 90ee4 (24:4ee4)
- hlcoord 2, 0
- ld a, $40
- jr Function90ef7
-
-Function90eeb: ; 90eeb (24:4eeb)
- hlcoord 4, 0
- ld a, $44
- jr Function90ef7
-
-Function90ef2: ; 90ef2 (24:4ef2)
- hlcoord 6, 0
- ld a, $42
-
-Function90ef7: ; 90ef7 (24:4ef7)
- ld [hli], a
- inc a
- ld [hld], a
- ld bc, $14
- add hl, bc
- add $f
- ld [hli], a
- inc a
- ld [hld], a
- ret
-
-Function90f04: ; 90f04 (24:4f04)
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, Jumptable_90f13
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-Jumptable_90f13: ; 90f13 (24:4f13)
- dw Function90f2d
- dw Function90f3e
- dw Function90fb4
- dw Function90fcd
- dw Function90fee
- dw Function90fcd
- dw Function90fe9
- dw Function91156
- dw Function91171
- dw Function911eb
- dw Function91256
- dw Function910f9
- dw Function91112
-
-
-Function90f2d: ; 90f2d (24:4f2d)
- call Function90da8
- ld hl, UnknownText_0x914d3
- call PrintText
- ld hl, wJumptableIndex
- inc [hl]
- call Function91492
- ret
-
-Function90f3e: ; 90f3e (24:4f3e)
- call Function90f7b
- ld hl, hJoyLast
-
- ld a, [hl]
- and A_BUTTON + B_BUTTON + START + SELECT
- jr nz, .asm_90f75
-
- ld a, [hl]
- and D_RIGHT
- ret z
-
- ld a, [wPokegearFlags]
- bit 0, a
- jr z, .asm_90f5a
- ld c, $2
- ld b, $1
- jr .asm_90f71
-.asm_90f5a
-
- ld a, [wPokegearFlags]
- bit 2, a
- jr z, .asm_90f67
- ld c, $7
- ld b, $2
- jr .asm_90f71
-.asm_90f67
-
- ld a, [wPokegearFlags]
- bit 1, a
- ret z
-
- ld c, $b
- ld b, $3
-
-.asm_90f71
- call Function91480
- ret
-
-.asm_90f75
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-Function90f7b: ; 90f7b (24:4f7b)
- xor a
- ld [hBGMapMode], a
- call Function90f86
- ld a, $1
- ld [hBGMapMode], a
- ret
-
-Function90f86: ; 90f86 (24:4f86)
- hlcoord 3, 5
- lb bc, 5, 14
- call ClearBox
- ld a, [hHours]
- ld b, a
- ld a, [hMinutes]
- ld c, a
- decoord 6, 8
- callba PrintHoursMins
- ld hl, UnknownText_0x90faf
- bccoord 6, 6
- call PlaceWholeStringInBoxAtOnce
- ret
-; 90fa8 (24:4fa8)
-
-String_90fa8: db "ごぜん@"
-String_90fac: db "ごご@"
-
-UnknownText_0x90faf: ; 0x90faf
- text_jump UnknownText_0x1c5821
- db "@"
-; 0x90fb4
-
-Function90fb4: ; 90fb4 (24:4fb4)
- ld a, [wc6d8]
- cp FAST_SHIP
- jr z, .johto
- cp KANTO_LANDMARK
- jr nc, .kanto
-.johto
- ld a, 3
- jr .done
-
- ret
-
-.kanto
- ld a, 5
-.done
- ld [wJumptableIndex], a
- call Function91492
- ret
-
-Function90fcd: ; 90fcd (24:4fcd)
- call Function90da8
- ld a, [wc6d8]
- call Function9106a
- ld a, [wc6d7]
- call Function91098
- ld a, c
- ld [wc6d5], a
- ld a, b
- ld [wc6d6], a
- ld hl, wJumptableIndex
- inc [hl]
- ret
-
-Function90fe9: ; 90fe9 (24:4fe9)
- call Function910e8
- jr Function90ff2
-
-Function90fee: ; 90fee (24:4fee)
- ld d, $2e
- ld e, $1
-Function90ff2: ; 90ff2 (24:4ff2)
- ld hl, hJoyLast
- ld a, [hl]
- and B_BUTTON
- jr nz, .cancel
- ld a, [hl]
- and D_RIGHT
- jr nz, .right
- ld a, [hl]
- and D_LEFT
- jr nz, .left
- call Function9102f
- ret
-
-.right
- ld a, [wPokegearFlags]
- bit 2, a
- jr z, .asm_91015
- ld c, $7
- ld b, $2
- jr .done
-
-.asm_91015
- ld a, [wPokegearFlags]
- bit 1, a
- ret z
- ld c, $b
- ld b, $3
- jr .done
-
-.left
- ld c, $0
- ld b, $0
-.done
- call Function91480
- ret
-.cancel
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-Function9102f: ; 9102f (24:502f)
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .up
- ld a, [hl]
- and D_DOWN
- jr nz, .down
- ret
-.up
- ld hl, wc6d7
- ld a, [hl]
- cp d
- jr c, .asm_91047
- ld a, e
- dec a
- ld [hl], a
-.asm_91047
- inc [hl]
- jr .done
-
-.down
- ld hl, wc6d7
- ld a, [hl]
- cp e
- jr nz, .asm_91054
- ld a, d
- inc a
- ld [hl], a
-.asm_91054
- dec [hl]
-
-.done
- ld a, [wc6d7]
- call Function910b4
- ld a, [wc6d5]
- ld c, a
- ld a, [wc6d6]
- ld b, a
- ld a, [wc6d7]
- call Function910d4
- ret
-
-Function9106a: ; 9106a
- push af
- ld de, 0
- ld b, $a
- ld a, [PlayerGender]
- bit 0, a
- jr z, .asm_91079
- ld b, $1e
-
-.asm_91079
- ld a, b
- call Function3b2a
- ld hl, $3
- add hl, bc
- ld [hl], $10
- pop af
- ld e, a
- push bc
- callba GetLandmarkCoords
- pop bc
- ld hl, $4
- add hl, bc
- ld [hl], e
- ld hl, $5
- add hl, bc
- ld [hl], d
- ret
-; 91098
-
-Function91098: ; 91098
- push af
- ld de, 0
- ld a, $d
- call Function3b2a
- ld hl, $3
- add hl, bc
- ld [hl], $4
- ld hl, $2
- add hl, bc
- ld [hl], $0
- pop af
- push bc
- call Function910d4
- pop bc
- ret
-; 910b4
-
-Function910b4: ; 910b4
- push af
- hlcoord 8, 0
- lb bc, 2, 12
- call ClearBox
- pop af
- ld e, a
- push de
- callba GetLandmarkName
- pop de
- callba Function1de2c5
- hlcoord 8, 0
- ld [hl], $34
- ret
-; 910d4
-
-Function910d4: ; 910d4
- push bc
- ld e, a
- callba GetLandmarkCoords
- pop bc
- ld hl, $4
- add hl, bc
- ld [hl], e
- ld hl, $5
- add hl, bc
- ld [hl], d
- ret
-; 910e8
-
-Function910e8: ; 910e8
- ld a, [StatusFlags]
- bit 6, a
- jr z, .asm_910f4
- ld d, $5e
- ld e, $2f
- ret
-
-.asm_910f4
- ld d, $5e
- ld e, $58
- ret
-; 910f9
-
-
-Function910f9: ; 910f9 (24:50f9)
- call Function90da8
- ld de, $2454
- ld a, $14
- call Function3b2a
- ld hl, $3
- add hl, bc
- ld [hl], $8
- call _UpdateRadioStation
- ld hl, wJumptableIndex
- inc [hl]
- ret
-
-Function91112: ; 91112 (24:5112)
- ld hl, hJoyLast
- ld a, [hl]
- and B_BUTTON
- jr nz, .cancel
- ld a, [hl]
- and D_LEFT
- jr nz, .left
- ld a, [wc6da]
- ld l, a
- ld a, [wc6db]
- ld h, a
- ld a, [wc6d9]
- and a
- ret z
- rst FarCall
- ret
-
-.left
- ld a, [wPokegearFlags]
- bit 2, a
- jr z, .asm_9113b
- ld c, $7
- ld b, $2
- jr .asm_9114c
-
-.asm_9113b
- ld a, [wPokegearFlags]
- bit 0, a
- jr z, .asm_91148
- ld c, $2
- ld b, $1
- jr .asm_9114c
-
-.asm_91148
- ld c, $0
- ld b, $0
-.asm_9114c
- call Function91480
- ret
-
-.cancel
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-Function91156: ; 91156 (24:5156)
- ld hl, wJumptableIndex
- inc [hl]
- xor a
- ld [wc6d2], a
- ld [wc6d1], a
- ld [wc6d3], a
- call Function90da8
- call Function91492
- ld hl, UnknownText_0x914ce
- call PrintText
- ret
-
-Function91171: ; 91171 (24:5171)
- ld hl, hJoyPressed
- ld a, [hl]
- and B_BUTTON
- jr nz, .b
- ld a, [hl]
- and A_BUTTON
- jr nz, .a
- ld hl, hJoyLast
- ld a, [hl]
- and D_LEFT
- jr nz, .left
- ld a, [hl]
- and D_RIGHT
- jr nz, .right
- call Function9126d
- ret
-
-.left
- ld a, [wPokegearFlags]
- bit 0, a
- jr z, .asm_9119c
- ld c, $2
- ld b, $1
- jr .asm_911ac
-.asm_9119c
- ld c, $0
- ld b, $0
- jr .asm_911ac
-
-.right
- ld a, [wPokegearFlags]
- bit 1, a
- ret z
- ld c, $b
- ld b, $3
-.asm_911ac
- call Function91480
- ret
-
-.b
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-.a
- ld hl, wPhoneList
- ld a, [wc6d2]
- ld e, a
- ld d, 0
- add hl, de
- ld a, [wc6d1]
- ld e, a
- ld d, 0
- add hl, de
- ld a, [hl]
- and a
- ret z
-
- ld [wc6d3], a
- hlcoord 1, 4
- ld a, [wc6d1]
- ld bc, 20 * 2
- call AddNTimes
- ld [hl], "▷"
- call Function91342
- jr c, .asm_911e5
-
- ld hl, wJumptableIndex
- inc [hl]
- ret
-
-.asm_911e5
- ld a, $8
- ld [wJumptableIndex], a
- ret
-
-Function911eb: ; 911eb (24:51eb)
- call GetMapHeaderPhoneServiceNybble
- and a
- jr nz, .asm_91234
- ld hl, Options
- res NO_TEXT_SCROLL, [hl]
- xor a
- ld [hInMenu], a
- ld de, SFX_CALL
- call PlaySFX
- ld hl, UnknownText_0x9124c
- call PrintText
- call WaitSFX
- ld de, SFX_CALL
- call PlaySFX
- ld hl, UnknownText_0x9124c
- call PrintText
- call WaitSFX
- ld a, [wc6d3]
- ld b, a
- call Function90199
- ld c, 10
- call DelayFrames
- ld hl, Options
- set NO_TEXT_SCROLL, [hl]
- ld a, $1
- ld [hInMenu], a
- call Function912b7
- ld hl, wJumptableIndex
- inc [hl]
- ret
-.asm_91234
- callba Phone_NoSignal
- ld hl, OutOfServiceAreaText
- call PrintText
- ld a, $8
- ld [wJumptableIndex], a
- ld hl, UnknownText_0x914ce
- call PrintText
- ret
-; 9124c (24:524c)
-
-UnknownText_0x9124c: ; 0x9124c
- ;
- text_jump UnknownText_0x1c5824
- db "@"
-; 0x91251
-
-OutOfServiceAreaText: ; 0x91251
- ; You're out of the service area.
- text_jump UnknownText_0x1c5827
- db "@"
-; 0x91256
-
-Function91256: ; 91256 (24:5256)
- ld a, [hJoyPressed]
- and A_BUTTON | B_BUTTON
- ret z
- callba HangUp
- ld a, $8
- ld [wJumptableIndex], a
- ld hl, UnknownText_0x914ce
- call PrintText
- ret
-
-Function9126d: ; 9126d (24:526d)
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .up
- ld a, [hl]
- and D_DOWN
- jr nz, .down
- ret
-
-.up
- ld hl, wc6d1
- ld a, [hl]
- and a
- jr z, .asm_91285
- dec [hl]
- jr .asm_912a3
-
-.asm_91285
- ld hl, wc6d2
- ld a, [hl]
- and a
- ret z
- dec [hl]
- jr .asm_912ad
-
-.down
- ld hl, wc6d1
- ld a, [hl]
- cp $3
- jr nc, .asm_91299
- inc [hl]
- jr .asm_912a3
-
-.asm_91299
- ld hl, wc6d2
- ld a, [hl]
- cp $6
- ret nc
- inc [hl]
- jr .asm_912ad
-
-.asm_912a3
- xor a
- ld [hBGMapMode], a
- call Function912b7
- call WaitBGMap
- ret
-
-.asm_912ad
- xor a
- ld [hBGMapMode], a
- call Function912d8
- call WaitBGMap
- ret
-
-Function912b7: ; 912b7 (24:52b7)
- ld a, " "
- hlcoord 1, 4
- ld [hl], a
- hlcoord 1, 6
- ld [hl], a
- hlcoord 1, 8
- ld [hl], a
- hlcoord 1, 10
- ld [hl], a
- hlcoord 1, 4
- ld a, [wc6d1]
- ld bc, $28
- call AddNTimes
- ld [hl], "▶"
- ret
-
-Function912d8: ; 912d8 (24:52d8)
- hlcoord 1, 3
- ld b, $9
- ld a, $7f
-.asm_912df
- ld c, $12
-.asm_912e1
- ld [hli], a
- dec c
- jr nz, .asm_912e1
-rept 2
- inc hl
-endr
- dec b
- jr nz, .asm_912df
- ld a, [wc6d2]
- ld e, a
- ld d, $0
- ld hl, wPhoneList
- add hl, de
- xor a
- ld [wc6d0], a
-.asm_912f8
- ld a, [hli]
- push hl
- push af
- hlcoord 2, 4
- ld a, [wc6d0]
- ld bc, $28
- call AddNTimes
- ld d, h
- ld e, l
- pop af
- ld b, a
- call Function90380
- pop hl
- ld a, [wc6d0]
- inc a
- ld [wc6d0], a
- cp $4
- jr c, .asm_912f8
- call Function912b7
- ret
-; 9131e (24:531e)
-
-Function9131e: ; 9131e
- ld hl, wPhoneList
- ld a, [wc6d2]
- ld e, a
- ld d, 0
- add hl, de
- ld a, [wc6d1]
- ld e, a
- ld d, 0
- add hl, de
- ld [hl], 0
- ld hl, wPhoneList
- ld c, $a
-.asm_91336
- ld a, [hli]
- and a
- jr nz, .asm_9133e
- ld a, [hld]
- ld [hli], a
- ld [hl], 0
-.asm_9133e
- dec c
- jr nz, .asm_91336
- ret
-; 91342
-
-Function91342: ; 91342 (24:5342)
- ld hl, wPhoneList
- ld a, [wc6d2]
- ld e, a
- ld d, 0
- add hl, de
- ld a, [wc6d1]
- ld e, a
- ld d, 0
- add hl, de
- ld c, [hl]
- callba Function9038a
- ld a, c
- and a
- jr z, .asm_91366
-
- ld hl, Jumptable_91455
- ld de, Unknown_9143f
- jr .asm_9136c
-
-.asm_91366
- ld hl, Jumptable_9146a
- ld de, Unknown_9145b
-
-.asm_9136c
- xor a
- ld [hBGMapMode], a
- push hl
- push de
- ld a, [de]
- ld l, a
- inc de
- ld a, [de]
- ld h, a
- inc de
- push hl
- ld bc, hBGMapAddress + 1
- add hl, bc
- ld a, [de]
- inc de
- sla a
- ld b, a
- ld c, 8
- push de
- call TextBox
- pop de
- pop hl
- inc hl
- call PlaceString
- pop de
- xor a
- ld [wc6d4], a
- call Function9141d
- call WaitBGMap
-
-.asm_91398
- push de
- call JoyTextDelay
- pop de
- ld hl, hJoyPressed
- ld a, [hl]
- and D_UP
- jr nz, .asm_913b4
- ld a, [hl]
- and D_DOWN
- jr nz, .asm_913c1
- ld a, [hl]
- and A_BUTTON | B_BUTTON
- jr nz, .asm_913d4
- call DelayFrame
- jr .asm_91398
-
-.asm_913b4
- ld hl, wc6d4
- ld a, [hl]
- and a
- jr z, .asm_91398
- dec [hl]
- call Function9141d
- jr .asm_91398
-
-.asm_913c1
- ld hl, 2
- add hl, de
- ld a, [wc6d4]
- inc a
- cp [hl]
- jr nc, .asm_91398
- ld [wc6d4], a
- call Function9141d
- jr .asm_91398
-
-.asm_913d4
- xor a
- ld [hBGMapMode], a
- call Function912d8
- ld a, $1
- ld [hBGMapMode], a
- pop hl
- ld a, [hJoyPressed]
- and B_BUTTON
- jr nz, Function913f1
-
- ld a, [wc6d4]
- ld e, a
- ld d, 0
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-Function913f1: ; 913f1
- ld hl, UnknownText_0x914ce
- call PrintText
- scf
- ret
-; 913f9 (24:53f9)
-
-Function913f9: ; 913f9
- ld hl, UnknownText_0x914d8
- call MenuTextBox
- call YesNoBox
- call ExitMenu
- jr c, .asm_91419
- call Function9131e
- xor a
- ld [hBGMapMode], a
- call Function912d8
- ld hl, UnknownText_0x914ce
- call PrintText
- call WaitBGMap
-.asm_91419
- scf
- ret
-; 9141b
-
-Function9141b: ; 9141b
- and a
- ret
-; 9141d
-
-Function9141d: ; 9141d (24:541d)
- push de
- ld a, [de]
- inc de
- ld l, a
- ld a, [de]
- inc de
- ld h, a
- ld a, [de]
- ld c, a
- push hl
- ld a, " "
- ld de, 20 * 2
-.asm_9142c
- ld [hl], a
- add hl, de
- dec c
- jr nz, .asm_9142c
- pop hl
- ld a, [wc6d4]
- ld bc, 20 * 2
- call AddNTimes
- ld [hl], "▶"
- pop de
- ret
-; 9143f (24:543f)
-
-Unknown_9143f: ; 9143f
- dwcoord 10, 6
- db 3
- db "CALL"
- next "DELETE"
- next "CANCEL"
- db "@"
-; 91455
-
-Jumptable_91455: ; 91455
- dw Function9141b
- dw Function913f9
- dw Function913f1
-; 9145b
-
-Unknown_9145b: ; 9145b
- dwcoord 10, 8
- db 2
- db "CALL"
- next "CANCEL"
- db "@"
-; 9146a
-
-Jumptable_9146a: ; 9146a
- dw Function9141b
- dw Function913f1
-; 9146e
-
-
-Function9146e: ; 9146e
- ld a, [hHours]
- cp 12
- jr c, .asm_9147b
- sub 12
- ld [wd265], a
- scf
- ret
-
-.asm_9147b
- ld [wd265], a
- and a
- ret
-; 91480
-
-
-Function91480: ; 91480 (24:5480)
- ld de, SFX_READ_TEXT_2
- call PlaySFX
- ld a, c
- ld [wJumptableIndex], a
- ld a, b
- ld [wcf64], a
- call Function914ab
- ret
-
-Function91492: ; 91492
- ld a, [wc6dc]
- cp $fe
- jr z, .asm_914a3
- cp $ff
- call z, EnterMapMusic
- xor a
- ld [wc6dc], a
- ret
-
-.asm_914a3
- call RestartMapMusic
- xor a
- ld [wc6dc], a
- ret
-; 914ab
-
-
-Function914ab: ; 914ab (24:54ab)
- ld hl, wc314 + 16
- ld bc, $90
- xor a
- call ByteFill
- ld a, $2
- ld [wc3b4], a
- ret
-
-Function914bb: ; 914bb (24:54bb)
- hlcoord 0, 0
-.asm_914be
- ld a, [de]
- cp $ff
- ret z
- ld b, a
- inc de
- ld a, [de]
- ld c, a
- inc de
- ld a, b
-.asm_914c8
- ld [hli], a
- dec c
- jr nz, .asm_914c8
- jr .asm_914be
-; 914ce (24:54ce)
-
-UnknownText_0x914ce: ; 0x914ce
- ; Whom do you want to call?
- text_jump UnknownText_0x1c5847
- db "@"
-; 0x914d3
-
-UnknownText_0x914d3: ; 0x914d3
- ; Press any button to exit.
- text_jump UnknownText_0x1c5862
- db "@"
-; 0x914d8
-
-UnknownText_0x914d8: ; 0x914d8
- ; Delete this stored phone number?
- text_jump UnknownText_0x1c587d
- db "@"
-; 0x914dd
-
-
-PokegearSpritesGFX: ; 914dd
-INCBIN "gfx/misc/pokegear_sprites.2bpp.lz"
-; 9150d
-
-RadioTilemapRLE: ; 9150d
-INCBIN "gfx/unknown/09150d.tilemap.rle"
-
-PhoneTilemapRLE: ; 9158a
-INCBIN "gfx/unknown/09158a.tilemap.rle"
-
-ClockTilemapRLE: ; 915db
-INCBIN "gfx/unknown/0915db.tilemap.rle"
-; 9163e
-
-INCLUDE "engine/radio2.asm"
-
-Function9191c: ; 9191c
- ld hl, Options
- ld a, [hl]
- push af
- set 4, [hl]
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- ld a, [VramState]
- push af
- xor a
- ld [VramState], a
- call ClearBGPalettes
- call ClearTileMap
- call ClearSprites
- call DisableLCD
- call Function90c4e
- callba Function8cf53
- ld a, 8
- call SkipMusic
- ld a, $e3
- ld [rLCDC], a
- call Function90d56
- ld [wd002], a
- ld [wd003], a
- xor a
- ld [hBGMapMode], a
- call Function91a04
- call Function3200
- ld a, [wd002]
- call Function9106a
- ld a, [wd003]
- call Function91098
- ld a, c
- ld [wd004], a
- ld a, b
- ld [wd005], a
- ld b, $2
- call GetSGBLayout
- call SetPalettes
- ld a, [hCGB]
- and a
- jr z, .asm_9198b
- ld a, $e4
- call Functioncf8
- call DelayFrame
-
-.asm_9198b
- ld a, [wd002]
- cp KANTO_LANDMARK
- jr nc, .asm_9199b
- ld d, KANTO_LANDMARK - 1
- ld e, 1
- call Function919b0
- jr .asm_919a1
-
-.asm_9199b
- call Function910e8
- call Function919b0
-
-.asm_919a1
- pop af
- ld [VramState], a
- pop af
- ld [hInMenu], a
- pop af
- ld [Options], a
- call ClearBGPalettes
- ret
-; 919b0
-
-Function919b0: ; 919b0
-.asm_919b0
- call JoyTextDelay
- ld hl, hJoyPressed
- ld a, [hl]
- and B_BUTTON
- ret nz
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .asm_919d4
- ld a, [hl]
- and D_DOWN
- jr nz, .asm_919e1
-.asm_919c7
- push de
- callba Function8cf69
- pop de
- call DelayFrame
- jr .asm_919b0
-
-.asm_919d4
- ld hl, wd003
- ld a, [hl]
- cp d
- jr c, .asm_919de
- ld a, e
- dec a
- ld [hl], a
-
-.asm_919de
- inc [hl]
- jr .asm_919ec
-
-.asm_919e1
- ld hl, wd003
- ld a, [hl]
- cp e
- jr nz, .asm_919eb
- ld a, d
- inc a
- ld [hl], a
-
-.asm_919eb
- dec [hl]
-
-.asm_919ec
- push de
- ld a, [wd003]
- call Function910b4
- ld a, [wd004]
- ld c, a
- ld a, [wd005]
- ld b, a
- ld a, [wd003]
- call Function910d4
- pop de
- jr .asm_919c7
-; 91a04
-
-Function91a04: ; 91a04
- ld a, [wd002]
- cp KANTO_LANDMARK
- jr nc, .asm_91a0f
- ld e, $0
- jr .asm_91a11
-
-.asm_91a0f
- ld e, $1
-
-.asm_91a11
- callba Function91ae1
- ld a, $7
- ld bc, 6
- hlcoord 1, 0
- call ByteFill
- hlcoord 0, 0
- ld [hl], $6
- hlcoord 7, 0
- ld [hl], $17
- hlcoord 7, 1
- ld [hl], $16
- hlcoord 7, 2
- ld [hl], $26
- ld a, $7
- ld bc, NAME_LENGTH
- hlcoord 8, 2
- call ByteFill
- hlcoord 19, 2
- ld [hl], $17
- ld a, [wd003]
- call Function910b4
- callba TownMapPals
- ret
-; 91a53
-
-PlayRadio: ; 91a53
- ld hl, Options
- ld a, [hl]
- push af
- set 4, [hl]
- call .PlayStation
- ld c, 100
- call DelayFrames
-.loop
- call JoyTextDelay
- ld a, [hJoyPressed]
- and A_BUTTON | B_BUTTON
- jr nz, .stop
- ld a, [wc6da]
- ld l, a
- ld a, [wc6db]
- ld h, a
- ld a, [wc6d9]
- and a
- jr z, .zero
- rst FarCall
-
-.zero
- call DelayFrame
- jr .loop
-
-.stop
- pop af
- ld [Options], a
- call Function91492
- ret
-; 91a87
-
-.PlayStation: ; 91a87
- ld a, -1
- ld [EnemyTurnsTaken], a
- ld hl, .StationPointers
- ld d, $0
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, .jump_return
- push de
- jp [hl]
-
-.jump_return
- push de
- hlcoord 0, 12
- lb bc, 4, 18
- call TextBox
- hlcoord 1, 14
- ld [hl], $72
- pop de
- hlcoord 2, 14
- call PlaceString
- ld h, b
- ld l, c
- ld [hl], $73
- call WaitBGMap
- ret
-; 91ab9
-
-.StationPointers: ; 91ab9
- dw Function91acb
- dw LoadStation_OaksPokemonTalk
- dw LoadStation_PokedexShow
- dw LoadStation_PokemonMusic
- dw LoadStation_LuckyChannel
- dw LoadStation_UnownRadio
- dw LoadStation_PlacesAndPeople
- dw LoadStation_LetsAllSing
- dw LoadStation_RocketRadio
-; 91acb
-
-Function91acb: ; 91acb
- call IsInJohto
- and a
- jr nz, .kanto
- call UpdateTime
- ld a, [TimeOfDay]
- and a
- jp z, LoadStation_PokedexShow
- jp LoadStation_OaksPokemonTalk
-
-.kanto
- jp LoadStation_PlacesAndPeople
-; 91ae1
-
-Function91ae1: ; 91ae1
- ld a, e
- and a
- jr nz, .kanto
- call Function91ff2
- call FillJohtoMap
- ret
-
-.kanto
- call Function91ff2
- call FillKantoMap
- ret
-; 91af3
-
-
-INCLUDE "engine/flypoints.asm"
-
-Function92311: ; unreferenced
- xor a
- ld [wd002], a
- call ClearBGPalettes
- call ClearTileMap
- call ClearSprites
- ld hl, hInMenu
- ld a, [hl]
- push af
- ld [hl], $1
- xor a
- ld [hBGMapMode], a
- callba Function8cf53
- call Function91ff2
- ld de, GFX_922e1
- ld hl, VTiles2 tile $30
- lb bc, BANK(GFX_922e1), 6
- call Request1bpp
- call FillKantoMap
- call TownMapBubble
- call TownMapPals
- ld hl, VBGMap1
- call TownMapBGUpdate
- call FillJohtoMap
- call TownMapBubble
- call TownMapPals
- ld hl, VBGMap0
- call TownMapBGUpdate
- call TownMapMon
- ld a, c
- ld [wd003], a
- ld a, b
- ld [wd004], a
- ld b, $2
- call GetSGBLayout
- call SetPalettes
-.loop
- call JoyTextDelay
- ld hl, hJoyPressed
- ld a, [hl]
- and B_BUTTON
- jr nz, .pressedB
- ld a, [hl]
- and A_BUTTON
- jr nz, .pressedA
- call Function923b8
- call GetMapCursorCoordinates
- callba Function8cf69
- call DelayFrame
- jr .loop
-
-.pressedB
- ld a, -1
- jr .asm_9239f
-
-.pressedA
- ld a, [wd002]
- ld l, a
- ld h, 0
- add hl, hl
- ld de, Flypoints + 1
- add hl, de
- ld a, [hl]
-
-.asm_9239f
- ld [wd002], a
- pop af
- ld [hInMenu], a
- call ClearBGPalettes
- ld a, $90
- ld [hWY], a
- xor a
- ld [hBGMapAddress], a
- ld a, VBGMap0 / $100
- ld [hBGMapAddress + 1], a
- ld a, [wd002]
- ld e, a
- ret
-; 923b8
-
-Function923b8: ; 923b8
- ld hl, hJoyLast
- ld a, [hl]
- and D_DOWN | D_RIGHT
- jr nz, .asm_923c6
- ld a, [hl]
- and D_UP | D_LEFT
- jr nz, .asm_923d3
- ret
-
-.asm_923c6
- ld hl, wd002
- ld a, [hl]
- cp FLY_INDIGO
- jr c, .asm_923d0
- ld [hl], -1
-.asm_923d0
- inc [hl]
- jr .asm_923dd
-
-.asm_923d3
- ld hl, wd002
- ld a, [hl]
- and a
- jr nz, .asm_923dc
- ld [hl], FLY_INDIGO + 1
-.asm_923dc
- dec [hl]
-
-.asm_923dd
- ld a, [wd002]
- cp KANTO_FLYPOINT
- jr c, .johto
-
- call FillKantoMap
- xor a
- ld b, $9c
- jr .asm_923f3
-
-.johto
- call FillJohtoMap
- ld a, $90
- ld b, $98
-
-.asm_923f3
- ld [hWY], a
- ld a, b
- ld [hBGMapAddress + 1], a
- call TownMapBubble
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- ret
-; 92402
-
-
INCLUDE "data/wild/fish.asm"
INCLUDE "engine/slot_machine.asm"
-SECTION "bank28", ROMX, BANK[$28]
+SECTION "Phone Engine", ROMX, BANK[$28]
INCLUDE "engine/more_phone_scripts.asm"
INCLUDE "engine/buena_phone_scripts.asm"
-INCLUDE "text/phone/buena.asm"
-SECTION "bank29", ROMX, BANK[$29]
+SECTION "Phone Text", ROMX, BANK[$29]
INCLUDE "text/phone/anthony_overworld.asm"
INCLUDE "text/phone/todd_overworld.asm"
@@ -46081,1096 +22676,8 @@
INCLUDE "engine/radio.asm"
-ReadPartyMonMail: ; b9229
- ld a, [CurPartyMon]
- ld hl, sPartyScratch1
- ld bc, SCRATCHMON_STRUCT_LENGTH
- call AddNTimes
- ld d, h
- ld e, l
-ReadAnyMail: ; b9237
- push de
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- call DisableLCD
- call LoadFontsExtra
- pop de
- push de
- ld a, BANK(sPartyScratch1)
- call GetSRAMBank
- callba Function1de5c8
- call CloseSRAM
- ld a, c
- ld de, GFX_1de5e6
- or a
- jr z, .asm_b9268
- ld de, GFX_1de9e6
- sub $3
- jr c, .asm_b9268
- ld de, GFX_1dede6
+INCLUDE "gfx/mail.asm"
-.asm_b9268
- ld hl, VTiles1
- lb bc, BANK(GFX_1de5e6), $80
- call Get1bpp
- pop de
- call Functionb92b8
- call EnableLCD
- call WaitBGMap
- ld a, [wd1ec]
- ld e, a
- callba Function8cb4
- call SetPalettes
- xor a
- ld [hJoyPressed], a
- call Functionb929a
- call ClearBGPalettes
- call DisableLCD
- call LoadStandardFont
- jp EnableLCD
-; b929a
-
-Functionb929a: ; b929a
-.asm_b929a
- call GetJoypad
- ld a, [hJoyPressed]
- and A_BUTTON | B_BUTTON | START
- jr z, .asm_b929a
- and START
- jr nz, .asm_b92a8
- ret
-
-.asm_b92a8
- ld a, [wJumptableIndex]
- push af
- callab Function845d4
- pop af
- ld [wJumptableIndex], a
- jr .asm_b929a
-; b92b8
-
-Functionb92b8: ; b92b8
- ld h, d
- ld l, e
- push hl
- ld a, $0
- call GetSRAMBank
- ld de, $2b
- add hl, de
- ld a, [hli]
- ld [Buffer1], a
- ld a, [hli]
- ld [Buffer2], a
- ld a, [hli]
- ld [CurPartySpecies], a
- ld b, [hl]
- call CloseSRAM
- ld hl, Unknown_b92f8
- ld c, 0
-.asm_b92d9
- ld a, [hli]
- cp b
- jr z, .asm_b92ea
- cp $ff
- jr z, .asm_b92e6
- inc c
-rept 2
- inc hl
-endr
- jr .asm_b92d9
-
-.asm_b92e6
- ld hl, Unknown_b92f8
- inc hl
-
-.asm_b92ea
- ld a, c
- ld [wd1ec], a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, .done
- pop bc
- push de
- jp [hl]
-.done
- ret
-; b92f8
-
-Unknown_b92f8: ; b92f8
- dbw FLOWER_MAIL, Functionb963e
- dbw SURF_MAIL, Functionb9317
- dbw LITEBLUEMAIL, Functionb9335
- dbw PORTRAITMAIL, Functionb96ca
- dbw LOVELY_MAIL, Functionb944b
- dbw EON_MAIL, Functionb93d2
- dbw MORPH_MAIL, Functionb94d6
- dbw BLUESKY_MAIL, Functionb9582
- dbw MUSIC_MAIL, Functionb9710
- dbw MIRAGE_MAIL, Functionb9776
- db $ff
-; b9317
-
-Functionb9317: ; b9317
- push bc
- ld hl, VTiles2 tile $31
- ld de, Unknown_b9d46
- ld c, $40
- call Functionb9915
- ld de, MailLaprasGFX
- ld c, $30
- call Functionb991e
- ld de, Unknown_b994e
- ld c, $8
- call Functionb9915
- jr Functionb9351
-
-Functionb9335: ; b9335
- push bc
- ld hl, VTiles2 tile $31
- ld de, Unknown_b9dc6
- ld c, $40
- call Functionb9915
- ld de, MailDratiniGFX
- ld c, $30
- call Functionb991e
- ld de, Unknown_b995e
- ld c, $8
- call Functionb9915
-
-Functionb9351: ; b9351
- ld de, Unknown_b9976
- ld c, $10
- call Functionb9915
- ld c, $10
- call Functionb990c
- ld de, Unknown_b9c3e
- ld c, $40
- call Functionb990c
- ld c, $40
- call Functionb9915
- call Functionb9858
- hlcoord 2, 15
- ld a, $3f
- call Functionb98d4
- ld a, $39
- hlcoord 15, 14
- call Functionb98fc
- ld a, $44
- hlcoord 2, 2
- call Functionb98ee
- hlcoord 15, 11
- call Functionb98ee
- ld a, $4c
- hlcoord 3, 12
- call Functionb98ee
- hlcoord 15, 2
- call Functionb98ee
- ld a, $50
- hlcoord 6, 3
- call Functionb98ee
- ld a, $40
- hlcoord 13, 2
- ld [hli], a
- hlcoord 6, 14
- ld [hl], a
- ld a, $41
- hlcoord 4, 5
- ld [hli], a
- hlcoord 17, 5
- ld [hli], a
- hlcoord 13, 12
- ld [hl], a
- ld a, $42
- hlcoord 9, 2
- ld [hli], a
- hlcoord 14, 5
- ld [hli], a
- hlcoord 3, 10
- ld [hl], a
- ld a, $43
- hlcoord 6, 11
- ld [hli], a
- pop hl
- jp Functionb9803
-; b93d2
-
-Functionb93d2: ; b93d2
- push bc
- ld hl, VTiles2 tile $31
- ld de, Unknown_b997e
- ld c, $8
- call Functionb9915
- ld de, Unknown_b998e
- ld c, $8
- call Functionb990c
- ld de, Unknown_b998e
- ld c, $8
- call Functionb990c
- ld de, Unknown_b997e
- ld c, $8
- call Functionb9915
- ld de, Unknown_b9d76
- ld c, $8
- call Functionb9915
- ld de, MailPikaGFX
- ld c, $30
- call Functionb991e
- ld hl, VTiles2 tile $3d
- ld de, Unknown_b9c9e
- ld c, $20
- call Functionb990c
- ld de, Unknown_b998e
- ld c, $8
- call Functionb9915
- ld a, $31
- hlcoord 0, 0
- call Functionb98a8
- hlcoord 1, 17
- call Functionb98a8
- ld a, $33
- hlcoord 0, 1
- call Functionb98ba
- hlcoord 19, 0
- call Functionb98ba
- hlcoord 2, 15
- ld a, $35
- call Functionb98d4
- inc a
- hlcoord 15, 14
- call Functionb98fc
- call Functionb9491
- pop hl
- jp Functionb9803
-; b944b
-
-Functionb944b: ; b944b
- push bc
- ld hl, VTiles2 tile $31
- ld de, Unknown_b9e26
- ld c, $28
- call Functionb9915
- ld de, MailPoliwagGFX
- ld c, $30
- call Functionb991e
- ld de, Unknown_b9966
- ld c, $8
- call Functionb9915
- ld de, Unknown_b9c5e
- ld c, $20
- call Functionb9915
- ld de, Unknown_b996e
- ld c, $8
- call Functionb990c
- call Functionb987b
- hlcoord 2, 15
- ld a, $3c
- call Functionb98d4
- ld a, $36
- hlcoord 15, 14
- call Functionb98fc
- call Functionb9491
- pop hl
- jp Functionb9803
-; b9491
-
-Functionb9491: ; b9491
- ld a, $3d
- hlcoord 2, 2
- call Functionb98ee
- hlcoord 16, 2
- call Functionb98ee
- hlcoord 9, 4
- call Functionb98ee
- hlcoord 2, 11
- call Functionb98ee
- hlcoord 6, 12
- call Functionb98ee
- hlcoord 12, 11
- call Functionb98ee
- ld a, $41
- hlcoord 5, 4
- ld [hl], a
- hlcoord 6, 2
- ld [hl], a
- hlcoord 12, 4
- ld [hl], a
- hlcoord 14, 2
- ld [hl], a
- hlcoord 3, 13
- ld [hl], a
- hlcoord 9, 11
- ld [hl], a
- hlcoord 16, 12
- ld [hl], a
- ret
-; b94d6
-
-Functionb94d6: ; b94d6
- push bc
- ld hl, VTiles2 tile $31
- ld bc, $28
- call Functionb97f8
- ld de, Unknown_b9c96
- ld c, 8
- call Functionb9915
- ld de, Unknown_b9c7e
- ld c, 8
- call Functionb9915
- ld de, Unknown_b993e
- ld c, 8
- call Functionb9915
- ld de, Unknown_b997e
- ld c, 8
- call Functionb990c
- ld de, Unknown_b9926
- ld c, 8
- call Functionb9915
- ld de, MailDittoGFX
- ld c, $30
- call Functionb991e
- call Functionb987b
- ld a, $31
- hlcoord 1, 1
- call Functionb98ee
- hlcoord 17, 15
- call Functionb98ee
- hlcoord 1, 3
- ld [hl], a
- hlcoord 3, 1
- ld [hl], a
- hlcoord 16, 16
- ld [hl], a
- hlcoord 18, 14
- ld [hl], a
- ld a, $36
- hlcoord 1, 4
- ld [hl], a
- hlcoord 2, 3
- ld [hl], a
- hlcoord 3, 2
- ld [hl], a
- hlcoord 4, 1
- ld [hl], a
- inc a
- hlcoord 15, 16
- ld [hl], a
- hlcoord 16, 15
- ld [hl], a
- hlcoord 17, 14
- ld [hl], a
- hlcoord 18, 13
- ld [hl], a
- inc a
- hlcoord 2, 15
- ld b, $e
- call Functionb98de
- inc a
- hlcoord 2, 11
- call Functionb98d4
- hlcoord 2, 5
- call Functionb98d4
- inc a
- hlcoord 6, 1
- call Functionb98d0
- hlcoord 1, 16
- call Functionb98d0
- inc a
- hlcoord 3, 13
- call Functionb98fc
- pop hl
- jp Functionb9803
-; b9582
-
-Functionb9582: ; b9582
- push bc
- ld hl, VTiles2 tile $31
- ld de, Unknown_b997e
- ld c, $8
- call Functionb9915
- ld a, $ff
- ld bc, $10
- call ByteFill
- ld de, Unknown_b992e
- ld c, $8
- call Functionb991e
- ld de, MailDragoniteGFX
- ld c, $b8
- call Functionb991e
- ld de, MailCloudGFX
- ld c, $30
- call Functionb990c
- ld de, Unknown_b9db6
- ld c, $8
- call Functionb990c
- ld de, MailCloudGFX
- ld c, $8
- call Functionb990c
- ld de, Unknown_b9d26
- ld c, $10
- call Functionb990c
- ld de, Unknown_b9d3e
- ld c, $8
- call Functionb990c
- ld a, $31
- hlcoord 0, 0
- call Functionb98dc
- hlcoord 0, 1
- call Functionb98e3
- hlcoord 19, 1
- call Functionb98e3
- inc a
- hlcoord 0, 17
- call Functionb98dc
- inc a
- hlcoord 0, 16
- call Functionb98dc
- inc a
- hlcoord 2, 2
- call Functionb9636
- hlcoord 3, 3
- call Functionb9636
- hlcoord 4, 4
- call Functionb9636
- dec hl
- ld [hl], $7f
- dec a
- hlcoord 15, 14
- call Functionb98ee
- add $4
- hlcoord 15, 16
- ld [hli], a
- inc a
- ld [hl], a
- inc a
- push af
- hlcoord 12, 1
- call Functionb98fc
- pop af
- hlcoord 15, 4
- call Functionb98fc
- inc a
- hlcoord 2, 11
- call Functionb98d4
- inc a
- hlcoord 10, 3
- call Functionb98ee
- pop hl
- jp Functionb9803
-; b9636
-
-Functionb9636: ; b9636
- ld b, $6
-.asm_b9638
- ld [hli], a
- inc a
- dec b
- jr nz, .asm_b9638
- ret
-; b963e
-
-Functionb963e: ; b963e
- push bc
- ld hl, VTiles2 tile $31
- ld de, Unknown_b9d86
- ld c, $40
- call Functionb990c
- ld de, MailOddishGFX
- ld c, $20
- call Functionb991e
- ld de, Unknown_b9db6
- ld c, $8
- call Functionb9915
- ld de, Unknown_b9cbe
- ld c, $20
- call Functionb990c
- ld c, $20
- call Functionb9915
- call Functionb9858
- hlcoord 2, 15
- ld a, $3d
- call Functionb98d4
- ld a, $39
- hlcoord 16, 13
- call Functionb98ee
- hlcoord 2, 13
- call Functionb98ee
- ld a, $3e
- hlcoord 2, 2
- call Functionb98ee
- hlcoord 5, 3
- call Functionb98ee
- hlcoord 10, 2
- call Functionb98ee
- hlcoord 16, 3
- call Functionb98ee
- hlcoord 5, 11
- call Functionb98ee
- hlcoord 16, 10
- call Functionb98ee
- ld a, $42
- hlcoord 3, 4
- call Functionb98ee
- hlcoord 12, 3
- call Functionb98ee
- hlcoord 14, 2
- call Functionb98ee
- hlcoord 2, 10
- call Functionb98ee
- hlcoord 14, 11
- call Functionb98ee
- pop hl
- jp Functionb9803
-; b96ca
-
-Functionb96ca: ; b96ca
- push bc
- ld hl, VTiles2 tile $31
- ld de, Unknown_b9e4e
- ld c, $28
- call Functionb9915
- ld de, Unknown_b995e
- ld c, $8
- call Functionb9915
- ld hl, VTiles2 tile $3d
- ld de, Unknown_b9bfe
- ld c, $20
- call Functionb990c
- ld de, Unknown_b9936
- ld c, $8
- call Functionb9915
- call Functionb987b
- hlcoord 8, 15
- ld a, $36
- ld b, $a
- call Functionb98de
- call Functionb9491
- ld a, $1
- ld [UnownLetter], a
- hlcoord 1, 10
- call PrepMonFrontpic
- pop hl
- jp Functionb9803
-; b9710
-
-Functionb9710: ; b9710
- push bc
- ld hl, VTiles2 tile $31
- ld de, Unknown_b9e06
- ld c, $20
- call Functionb9915
- ld de, Unknown_b993e
- ld c, $10
- call Functionb9915
- ld de, Unknown_b9996
- ld c, $30
- call Functionb991e
- xor a
- ld bc, $10
- call ByteFill
- ld de, Unknown_b9cfe
- ld c, $18
- call Functionb990c
- ld de, Unknown_b9946
- ld c, $8
- call Functionb990c
- ld a, $31
- hlcoord 0, 0
- call Functionb98a8
- hlcoord 1, 17
- call Functionb98a8
- ld a, $33
- hlcoord 0, 1
- call Functionb98ba
- hlcoord 19, 0
- call Functionb98ba
- ld a, $35
- hlcoord 2, 15
- call Functionb989e
- ld a, $37
- hlcoord 15, 14
- call Functionb98fc
- call Functionb9491
- pop hl
- jp Functionb9803
-; b9776
-
-Functionb9776: ; b9776
- push bc
- ld hl, VTiles2 tile $31
- ld bc, $28
- call Functionb97f8
- ld de, Unknown_b992e
- ld c, $8
- call Functionb9915
- ld de, MailMewGFX
- ld c, $90
- call Functionb9915
- ld de, Unknown_b9dce
- ld c, $8
- call Functionb990c
- ld de, Unknown_b9df6
- ld c, $8
- call Functionb990c
- call Functionb987b
- ld a, $36
- hlcoord 1, 16
- call Functionb98d8
- inc a
- hlcoord 15, 14
- call Functionb98fc
- inc a
- hlcoord 15, 16
- ld [hli], a
- inc a
- ld [hl], a
- ld a, $3f
- hlcoord 1, 1
- call Functionb98a8
- ld a, $41
- hlcoord 0, 2
- call Functionb98b5
- ld a, $43
- hlcoord 19, 2
- call Functionb98b5
- ld a, $45
- hlcoord 0, 1
- ld [hl], a
- inc a
- hlcoord 19, 1
- ld [hl], a
- inc a
- hlcoord 0, 16
- ld [hl], a
- inc a
- hlcoord 19, 16
- ld [hl], a
- inc a
- hlcoord 2, 5
- call Functionb98d4
- inc a
- hlcoord 2, 11
- call Functionb98d4
- pop hl
- jp Functionb9803
-; b97f8
-
-Functionb97f8: ; b97f8
-.asm_b97f8
- xor a
- ld [hli], a
- ld a, $ff
- ld [hli], a
- dec bc
- ld a, b
- or c
- jr nz, .asm_b97f8
- ret
-; b9803
-
-Functionb9803: ; b9803
- ld bc, $2f
- ld de, wd002
- ld a, $0
- call GetSRAMBank
- call CopyBytes
- call CloseSRAM
- ld hl, wd023
- ld de, wd050
- ld bc, $a
- call CopyBytes
- ld a, $50
- ld [wd023], a
- ld [wd05a], a
- ld de, wd002
- hlcoord 2, 7
- call PlaceString
- ld de, wd050
- ld a, [de]
- and a
- ret z
- ld a, [wd1ec]
- hlcoord 8, 14
- cp $3
- jr z, .asm_b984b
- hlcoord 6, 14
- cp $6
- jr z, .asm_b984b
- hlcoord 5, 14
-
-.asm_b984b
- jp PlaceString
-; b984e
-
-Functionb984e: ; b984e
-.asm_b984e
- ld a, [hl]
- xor $ff
- ld [hli], a
- dec bc
- ld a, b
- or c
- jr nz, .asm_b984e
- ret
-; b9858
-
-Functionb9858: ; b9858
- hlcoord 0, 0
- ld a, $31
- ld [hli], a
- inc a
- call Functionb98d8
- inc a
- ld [hli], a
- inc a
- call Functionb98e3
- ld a, $36
- ld [hli], a
- inc a
- call Functionb98d8
- hlcoord 19, 1
- ld a, $35
- call Functionb98e3
- ld a, $38
- ld [hl], a
- ret
-; b987b
-
-Functionb987b: ; b987b
- hlcoord 0, 0
- ld a, $31
- ld [hli], a
- inc a
- call Functionb98d8
- ld [hl], $31
- inc hl
- inc a
- call Functionb98e3
- ld [hl], $31
- inc hl
- inc a
- call Functionb98d8
- hlcoord 19, 1
- ld a, $35
- call Functionb98e3
- ld [hl], $31
- ret
-; b989e
-
-Functionb989e: ; b989e
- push af
- ld b, $7
- jr Functionb98ab
-
-Functionb98a3: ; b98a3
- push af
- ld b, $8
- jr Functionb98ab
-
-Functionb98a8: ; b98a8
- push af
- ld b, $9
-
-Functionb98ab: ; b98ab
- ld [hli], a
- inc a
- ld [hli], a
- dec a
- dec b
- jr nz, Functionb98ab
- ld [hl], a
- pop af
- ret
-; b98b5
-
-Functionb98b5: ; b98b5
- push af
- ld b, $7
- jr Functionb98bd
-
-Functionb98ba: ; b98ba
- push af
- ld b, $8
-
-Functionb98bd: ; b98bd
- ld [hl], a
- ld de, SCREEN_WIDTH
- add hl, de
- inc a
- ld [hl], a
- add hl, de
- dec a
- dec b
- jr nz, Functionb98bd
- ld [hl], a
- pop af
- ret
-; b98cc
-
-Functionb98cc: ; b98cc
- ld b, $7
- jr Functionb98de
-
-Functionb98d0: ; b98d0
- ld b, $d
- jr Functionb98de
-
-Functionb98d4: ; b98d4
- ld b, $10
- jr Functionb98de
-
-Functionb98d8: ; b98d8
- ld b, $12
- jr Functionb98de
-
-Functionb98dc: ; b98dc
- ld b, $14
-
-Functionb98de: ; b98de
- ld [hli], a
- dec b
- jr nz, Functionb98de
- ret
-; b98e3
-
-Functionb98e3: ; b98e3
- ld b, $10
- ld de, SCREEN_WIDTH
-.asm_b98e8
- ld [hl], a
- add hl, de
- dec b
- jr nz, .asm_b98e8
- ret
-; b98ee
-
-Functionb98ee: ; b98ee
- push af
- ld [hli], a
- inc a
- ld [hl], a
- ld bc, $13
- add hl, bc
- inc a
- ld [hli], a
- inc a
- ld [hl], a
- pop af
- ret
-; b98fc
-
-Functionb98fc: ; b98fc
- ld [hli], a
- inc a
- ld [hli], a
- inc a
- ld [hl], a
- ld bc, SCREEN_HEIGHT
- add hl, bc
- inc a
- ld [hli], a
- inc a
- ld [hli], a
- inc a
- ld [hl], a
- ret
-; b990c
-
-Functionb990c: ; b990c
-.asm_b990c
- ld a, [de]
- inc de
- ld [hli], a
- xor a
- ld [hli], a
- dec c
- jr nz, .asm_b990c
- ret
-; b9915
-
-Functionb9915: ; b9915
-.asm_b9915
- xor a
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr nz, .asm_b9915
- ret
-; b991e
-
-Functionb991e: ; b991e
-.asm_b991e
- ld a, [de]
- inc de
-rept 2
- ld [hli], a
-endr
- dec c
- jr nz, .asm_b991e
- ret
-; b9926
-
-Unknown_b9926: ; b9926
-INCBIN "gfx/unknown/0b9926.1bpp"
-
-Unknown_b992e: ; b992e
-INCBIN "gfx/unknown/0b992e.1bpp"
-
-Unknown_b9936: ; b9936
-INCBIN "gfx/unknown/0b9936.1bpp"
-
-Unknown_b993e: ; b993e
-INCBIN "gfx/unknown/0b993e.1bpp"
-
-Unknown_b9946: ; b9946
-INCBIN "gfx/unknown/0b9946.1bpp"
-
-Unknown_b994e: ; b994e
-INCBIN "gfx/unknown/0b994e.1bpp"
-
-Unknown_b995e: ; b995e
-INCBIN "gfx/unknown/0b995e.1bpp"
-
-Unknown_b9966: ; b9966
-INCBIN "gfx/unknown/0b9966.1bpp"
-
-Unknown_b996e: ; b996e
-INCBIN "gfx/unknown/0b996e.1bpp"
-
-Unknown_b9976: ; b9976
-INCBIN "gfx/unknown/0b9976.1bpp"
-
-Unknown_b997e: ; b997e
-INCBIN "gfx/unknown/0b997e.1bpp"
-
-Unknown_b998e: ; b998e
-INCBIN "gfx/unknown/0b998e.1bpp"
-
-Unknown_b9996: ; b9996
-INCBIN "gfx/unknown/0b9996.1bpp"
-
-MailDratiniGFX: ; b99c6
-INCBIN "gfx/unknown/0b99c6.1bpp"
-
-MailPoliwagGFX: ; b99f6
-INCBIN "gfx/unknown/0b99f6.1bpp"
-
-MailLaprasGFX: ; b9a26
-INCBIN "gfx/unknown/0b9a26.1bpp"
-
-MailPikaGFX: ; b9a56
-INCBIN "gfx/unknown/0b9a56.1bpp"
-
-MailDittoGFX: ; b9a86
-INCBIN "gfx/unknown/0b9a86.1bpp"
-
-MailMewGFX: ; b9ab6
-INCBIN "gfx/unknown/0b9ab6.1bpp"
-
-MailDragoniteGFX: ; b9b46
-INCBIN "gfx/unknown/0b9b46.1bpp"
-
-MailSentretGFX: ; b9bce
-INCBIN "gfx/unknown/0b9bce.1bpp"
-
-Unknown_b9bee: ; b9bee
-INCBIN "gfx/unknown/0b9bee.1bpp"
-
-Unknown_b9bfe: ; b9bfe
-INCBIN "gfx/unknown/0b9bfe.1bpp"
-
-MailOddishGFX: ; b9c1e
-INCBIN "gfx/unknown/0b9c1e.1bpp"
-
-Unknown_b9c3e: ; b9c3e
-INCBIN "gfx/unknown/0b9c3e.1bpp"
-
-Unknown_b9c5e: ; b9c5e
-INCBIN "gfx/unknown/0b9c5e.1bpp"
-
-Unknown_b9c7e: ; b9c7e
-INCBIN "gfx/unknown/0b9c7e.1bpp"
-
-Unknown_b9c96: ; b9c96
-INCBIN "gfx/unknown/0b9c96.1bpp"
-
-Unknown_b9c9e: ; b9c9e
-INCBIN "gfx/unknown/0b9c9e.1bpp"
-
-Unknown_b9cbe: ; b9cbe
-INCBIN "gfx/unknown/0b9cbe.1bpp"
-
-Unknown_b9cde: ; b9cde
-INCBIN "gfx/unknown/0b9cde.1bpp"
-
-Unknown_b9cfe: ; b9cfe
-INCBIN "gfx/unknown/0b9cfe.1bpp"
-
-MailCloudGFX: ; b9d16
-INCBIN "gfx/unknown/0b9d16.1bpp"
-
-Unknown_b9d26: ; b9d26
-INCBIN "gfx/unknown/0b9d26.1bpp"
-
-Unknown_b9d3e: ; b9d3e
-INCBIN "gfx/unknown/0b9d3e.1bpp"
-
-Unknown_b9d46: ; b9d46
-INCBIN "gfx/unknown/0b9d46.1bpp"
-
-Unknown_b9d76: ; b9d76
-INCBIN "gfx/unknown/0b9d76.1bpp"
-
-Unknown_b9d86: ; b9d86
-INCBIN "gfx/unknown/0b9d86.1bpp"
-
-Unknown_b9db6: ; b9db6
-INCBIN "gfx/unknown/0b9db6.1bpp"
-
-Unknown_b9dc6: ; b9dc6
-INCBIN "gfx/unknown/0b9dc6.1bpp"
-
-Unknown_b9dce: ; b9dce
-INCBIN "gfx/unknown/0b9dce.1bpp"
-
-Unknown_b9df6: ; b9df6
-INCBIN "gfx/unknown/0b9df6.1bpp"
-
-Unknown_b9e06: ; b9e06
-INCBIN "gfx/unknown/0b9e06.1bpp"
-
-Unknown_b9e26: ; b9e26
-INCBIN "gfx/unknown/0b9e26.1bpp"
-
-Unknown_b9e4e: ; b9e4e
-INCBIN "gfx/unknown/0b9e4e.1bpp"
-
-
-ItemIsMail: ; b9e76
- ld a, d
- ld hl, .items
- ld de, 1
- jp IsInArray
-; b9e80
-
-.items
- db FLOWER_MAIL
- db SURF_MAIL
- db LITEBLUEMAIL
- db PORTRAITMAIL
- db LOVELY_MAIL
- db EON_MAIL
- db MORPH_MAIL
- db BLUESKY_MAIL
- db MUSIC_MAIL
- db MIRAGE_MAIL
- db $ff
-; b9e8b
-
-
SECTION "bank2F", ROMX, BANK[$2F]
INCLUDE "engine/std_scripts.asm"
@@ -47206,7 +22713,7 @@
startbattle
returnafterbattle
trainerstatus SET_FLAG
- loadvar wd04d, -1
+ loadvar wRunningTrainerBattleScript, -1
AlreadyBeatenTrainerScript:
scripttalkafter
@@ -47364,7 +22871,7 @@
ld [Options], a
call WaitBGMap
- ld b, $8
+ ld b, SCGB_08
call GetSGBLayout
call SetPalettes
ret
@@ -47601,4039 +23108,30 @@
INCBIN "gfx/misc/copyright.2bpp"
; e41d0
-_OptionsMenu: ; e41d0
- ld hl, hInMenu
- ld a, [hl]
- push af
- ld [hl], $1
- call ClearBGPalettes
- hlcoord 0, 0
- ld b, $10
- ld c, $12
- call TextBox
- hlcoord 2, 2
- ld de, StringOptions
- call PlaceString
- xor a
- ld [wJumptableIndex], a
- ld c, $6 ;number of items on the menu minus 1 (for cancel)
-.asm_e41f3 ;this next will display the settings of each option when the menu is opened
- push bc
- xor a
- ld [hJoyLast], a
- call GetOptionPointer
- pop bc
- ld hl, wJumptableIndex
- inc [hl]
- dec c
- jr nz, .asm_e41f3
- call Functione4512
- xor a
- ld [wJumptableIndex], a
- inc a
- ld [hBGMapMode], a
- call WaitBGMap
- ld b, $8
- call GetSGBLayout
- call SetPalettes
-.asm_e4217
- call JoyTextDelay
- ld a, [hJoyPressed]
- and START | B_BUTTON
- jr nz, .ExitOptions
- call OptionsControl
- jr c, .asm_e422a
- call GetOptionPointer
- jr c, .ExitOptions
+INCLUDE "engine/options_menu.asm"
+INCLUDE "engine/crystal_intro.asm"
-.asm_e422a
- call Functione455c
- ld c, 3
- call DelayFrames
- jr .asm_e4217
-
-.ExitOptions
- ld de, SFX_TRANSACTION
- call PlaySFX
- call WaitSFX
- pop af
- ld [hInMenu], a
- ret
-; e4241
-
-StringOptions: ; e4241
- db "TEXT SPEED", $22
- db " :", $22
- db "BATTLE SCENE", $22
- db " :", $22
- db "BATTLE STYLE", $22
- db " :", $22
- db "SOUND", $22
- db " :", $22
- db "PRINT", $22
- db " :", $22
- db "MENU ACCOUNT", $22
- db " :", $22
- db "FRAME", $22
- db " :TYPE", $22
- db "CANCEL@"
-; e42d6
-
-
-GetOptionPointer: ; e42d6
- ld a, [wJumptableIndex] ;load the cursor position to a
- ld e, a ;copy it to de
- ld d, 0
- ld hl, .Pointers
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl] ;jump to the code of the current highlighted item
-; e42e5
-
-.Pointers
- dw Options_TextSpeed
- dw Options_BattleScene
- dw Options_BattleStyle
- dw Options_Sound
- dw Options_Print
- dw Options_MenuAccount
- dw Options_Frame
- dw Options_Cancel
-; e42f5
-
-
-Options_TextSpeed: ; e42f5
- call GetTextSpeed
- ld a, [hJoyPressed]
- bit 5, a
- jr nz, .LeftPressed
- bit 4, a
- jr z, .NonePressed
- ld a, c ;right pressed
- cp $2
- jr c, .Increase
- ld c, $ff
-
-.Increase
- inc c
- ld a, e
- jr .Save
-
-.LeftPressed
- ld a, c
- and a
- jr nz, .Decrease
- ld c, $3
-
-.Decrease
- dec c
- ld a, d
-
-.Save
- ld b, a
- ld a, [Options]
- and $f0
- or b
- ld [Options], a
-
-.NonePressed
- ld b, 0
- ld hl, .Strings
-rept 2
- add hl, bc
-endr
- ld e, [hl]
- inc hl
- ld d, [hl]
- hlcoord 11, 3
- call PlaceString
- and a
- ret
-; e4331
-
-.Strings
- dw .Fast
- dw .Mid
- dw .Slow
-
-.Fast
- db "FAST@"
-.Mid
- db "MID @"
-.Slow
- db "SLOW@"
-; e4346
-
-
-GetTextSpeed: ; e4346
- ld a, [Options] ;This converts the number of frames, to 0,1,2 representing speed
- and 7
- cp 5 ;5 frames of delay is slow
- jr z, .slow
- cp 1 ;1 frame of delay is fast
- jr z, .fast
- ld c, 1 ;set it to mid if not one of the above
- lb de, 1, 5
- ret
-
-.slow
- ld c, 2
- lb de, 3, 1
- ret
-
-.fast
- ld c, 0
- lb de, 5, 3
- ret
-; e4365
-
-
-Options_BattleScene: ; e4365
- ld hl, Options
- ld a, [hJoyPressed]
- bit 5, a
- jr nz, .LeftPressed
- bit 4, a
- jr z, .NonePressed
- bit 7, [hl]
- jr nz, .ToggleOn
- jr .ToggleOff
-
-.LeftPressed
- bit 7, [hl]
- jr z, .ToggleOff
- jr .ToggleOn
-
-.NonePressed
- bit 7, [hl]
- jr z, .ToggleOn
- jr .ToggleOff
-
-.ToggleOn
- res 7, [hl]
- ld de, .On
- jr .Display
-
-.ToggleOff
- set 7, [hl]
- ld de, .Off
-
-.Display
- hlcoord 11, 5
- call PlaceString
- and a
- ret
-; e4398
-
-.On
- db "ON @"
-.Off
- db "OFF@"
-; e43a0
-
-
-Options_BattleStyle: ; e43a0
- ld hl, Options
- ld a, [hJoyPressed]
- bit 5, a
- jr nz, .LeftPressed
- bit 4, a
- jr z, .NonePressed
- bit 6, [hl]
- jr nz, .ToggleShift
- jr .ToggleSet
-
-.LeftPressed
- bit 6, [hl]
- jr z, .ToggleSet
- jr .ToggleShift
-
-.NonePressed
- bit 6, [hl]
- jr nz, .ToggleSet
-
-.ToggleShift
- res 6, [hl]
- ld de, .Shift
- jr .Display
-
-.ToggleSet
- set 6, [hl]
- ld de, .Set
-
-.Display
- hlcoord 11, 7
- call PlaceString
- and a
- ret
-; e43d1
-
-.Shift
- db "SHIFT@"
-.Set
- db "SET @"
-; e43dd
-
-
-Options_Sound: ; e43dd
- ld hl, Options
- ld a, [hJoyPressed]
- bit 5, a
- jr nz, .LeftPressed
- bit 4, a
- jr z, .NonePressed
- bit 5, [hl]
- jr nz, .SetMono
- jr .SetStereo
-
-.LeftPressed
- bit 5, [hl]
- jr z, .SetStereo
- jr .SetMono
-
-.NonePressed
- bit 5, [hl]
- jr nz, .ToggleStereo
- jr .ToggleMono
-
-.SetMono
- res 5, [hl]
- call RestartMapMusic
-
-.ToggleMono
- ld de, .Mono
- jr .Display
-
-.SetStereo
- set 5, [hl]
- call RestartMapMusic
-
-.ToggleStereo
- ld de, .Stereo
-
-.Display
- hlcoord 11, 9
- call PlaceString
- and a
- ret
-; e4416
-
-.Mono
- db "MONO @"
-.Stereo
- db "STEREO@"
-; e4424
-
-
-Options_Print: ; e4424
- call GetPrinterSetting
- ld a, [hJoyPressed]
- bit 5, a
- jr nz, .LeftPressed
- bit 4, a
- jr z, .NonePressed
- ld a, c
- cp $4
- jr c, .Increase
- ld c, $ff
-
-.Increase
- inc c
- ld a, e
- jr .Save
-
-.LeftPressed
- ld a, c
- and a
- jr nz, .Decrease
- ld c, $5
-
-.Decrease
- dec c
- ld a, d
-
-.Save
- ld b, a
- ld [GBPrinter], a
-
-.NonePressed
- ld b, $0
- ld hl, .Strings
-rept 2
- add hl, bc
-endr
- ld e, [hl]
- inc hl
- ld d, [hl]
- hlcoord 11, 11
- call PlaceString
- and a
- ret
-; e445a
-
-.Strings
- dw .Lightest
- dw .Lighter
- dw .Normal
- dw .Darker
- dw .Darkest
-
-.Lightest
- db "LIGHTEST@"
-.Lighter
- db "LIGHTER @"
-.Normal
- db "NORMAL @"
-.Darker
- db "DARKER @"
-.Darkest
- db "DARKEST @"
-; e4491
-
-
-GetPrinterSetting: ; e4491
- ld a, [GBPrinter] ;converts from the stored printer setting to 0,1,2,3,4
- and a
- jr z, .IsLightest
- cp $20
- jr z, .IsLight
- cp $60
- jr z, .IsDark
- cp $7f
- jr z, .IsDarkest
- ld c, $2 ;normal if none of the above
- ld de, $2060 ;the 2 values next to this setting
- ret
-
-.IsLightest
- ld c, $0
- ld de, $7f20 ;the 2 values next to this setting
- ret
-
-.IsLight
- ld c, $1
- ld de, $40 ;the 2 values next to this setting
- ret
-
-.IsDark
- ld c, $3
- ld de, $407f ;the 2 values next to this setting
- ret
-
-.IsDarkest
- ld c, $4
- ld de, $6000 ;the 2 values next to this setting
- ret
-; e44c1
-
-Options_MenuAccount: ; e44c1
- ld hl, Options2
- ld a, [hJoyPressed]
- bit 5, a
- jr nz, .LeftPressed
- bit 4, a
- jr z, .NonePressed
- bit 0, [hl]
- jr nz, .ToggleOff
- jr .ToggleOn
-
-.LeftPressed
- bit 0, [hl]
- jr z, .ToggleOn
- jr .ToggleOff
-
-.NonePressed
- bit 0, [hl]
- jr nz, .ToggleOn
-
-.ToggleOff
- res 0, [hl]
- ld de, .Off
- jr .Display
-
-.ToggleOn
- set 0, [hl]
- ld de, .On
-
-.Display
- hlcoord 11, 13
- call PlaceString
- and a
- ret
-; e44f2
-
-.Off
- db "OFF@"
-.On
- db "ON @"
-; e44fa
-
-
-Options_Frame: ; e44fa
- ld hl, TextBoxFrame
- ld a, [hJoyPressed]
- bit 5, a
- jr nz, .LeftPressed
- bit 4, a
- jr nz, .RightPressed
- and a
- ret
-
-.RightPressed
- ld a, [hl]
- inc a
- jr .Save
-
-.LeftPressed
- ld a, [hl]
- dec a
-
-.Save
- and $7
- ld [hl], a
- ; fallthrough
-; e4512
-
-Functione4512: ; e4512
- ld a, [TextBoxFrame]
- hlcoord 16, 15 ;where on the screen the number is drawn
- add "1"
- ld [hl], a
- call LoadFontsExtra
- and a
- ret
-; e4520
-
-Options_Cancel: ; e4520
- ld a, [hJoyPressed]
- and A_BUTTON
- jr nz, .Exit
- and a
- ret
-
-.Exit
- scf
- ret
-; e452a
-
-OptionsControl: ; e452a
- ld hl, wJumptableIndex
- ld a, [hJoyLast]
- cp D_DOWN
- jr z, .DownPressed
- cp D_UP
- jr z, .UpPressed
- and a
- ret
-
-.DownPressed
- ld a, [hl] ;load the cursor position to a
- cp $7 ;maximum number of items in option menu
- jr nz, .CheckFive
- ld [hl], $0
- scf
- ret
-
-.CheckFive ;I have no idea why this exists...
- cp $5
- jr nz, .Increase
- ld [hl], $5
-
-.Increase
- inc [hl]
- scf
- ret
-
-.UpPressed
- ld a, [hl]
- cp $6
- jr nz, .NotSix
- ld [hl], $5 ;Another thing where I'm not sure why it exists
- scf
- ret
-
-.NotSix
- and a
- jr nz, .Decrease
- ld [hl], $8 ;number of option items +1
-
-.Decrease
- dec [hl]
- scf
- ret
-; e455c
-
-Functione455c: ; e455c
- hlcoord 1, 1
- ld de, SCREEN_WIDTH
- ld c, $10
-.asm_e4564
- ld [hl], $7f
- add hl, de
- dec c
- jr nz, .asm_e4564
- hlcoord 1, 2
- ld bc, $28
- ld a, [wJumptableIndex]
- call AddNTimes
- ld [hl], $ed
- ret
-; e4579
-
-
-Functione4579: ; e4579
- ld de, MUSIC_NONE
- call PlayMusic
- call ClearBGPalettes
- call ClearTileMap
- ld a, VBGMap0 / $100
- ld [hBGMapAddress + 1], a
- xor a
- ld [hBGMapAddress], a
- ld [hJoyDown], a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $90
- ld [hWY], a
- call WaitBGMap
- ld b, $19
- call GetSGBLayout
- call SetPalettes
- ld c, 10
- call DelayFrames
- callab Copyright
- call WaitBGMap
- ld c, 100
- call DelayFrames
- call ClearTileMap
- callba GBCOnlyScreen
- call Functione45e8
-.joy_loop
- call JoyTextDelay
- ld a, [hJoyLast]
- and BUTTONS
- jr nz, .pressed_button
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .finish
- call PlaceGameFreakPresents
- callba Function8cf69
- call DelayFrame
- jr .joy_loop
-
-.pressed_button
- call Functione465e
- scf
- ret
-
-.finish
- call Functione465e
- and a
- ret
-; e45e8
-
-Functione45e8: ; e45e8
- ld de, GameFreakLogo
- ld hl, VTiles2
- lb bc, BANK(GameFreakLogo), $1c
- call Get1bpp
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- ld hl, IntroLogoGFX
- ld de, w6_d000
- ld a, BANK(IntroLogoGFX)
- call FarDecompress
- ld hl, VTiles0
- ld de, w6_d000
- ld bc, $180
- call Request2bpp
- ld hl, VTiles1
- ld de, w6_d000 + $800
- ld bc, $180
- call Request2bpp
- pop af
- ld [rSVBK], a
- callba Function8cf53
- ld de, $5458
- ld a, $3
- call Function3b2a
- ld hl, $7
- add hl, bc
- ld [hl], $a0
- ld hl, $c
- add hl, bc
- ld [hl], $60
- ld hl, $d
- add hl, bc
- ld [hl], $30
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $1
- ld [hBGMapMode], a
- ld a, $90
- ld [hWY], a
- ld de, $e4e4
- call DmgToCgbObjPals
- ret
-; e465e
-
-Functione465e: ; e465e
- callba Function8cf53
- call ClearTileMap
- call ClearSprites
- ld c, 16
- call DelayFrames
- ret
-; e4670
-
-PlaceGameFreakPresents: ; e4670
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, .jumptable
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; e467f
-
-.jumptable: ; e467f
- dw PlaceGameFreakPresents_0
- dw PlaceGameFreakPresents_1
- dw PlaceGameFreakPresents_2
- dw PlaceGameFreakPresents_3
-; e4687
-
-PlaceGameFreakPresents_AdvanceIndex: ; e4687
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; e468c
-
-PlaceGameFreakPresents_0: ; e468c
- ret
-; e468d
-
-PlaceGameFreakPresents_1: ; e468d
- ld hl, wcf65
- ld a, [hl]
- cp $20
- jr nc, .PlaceGameFreak
- inc [hl]
- ret
-
-.PlaceGameFreak
- ld [hl], 0
- ld hl, .GAME_FREAK
- decoord 5, 10
- ld bc, .end - .GAME_FREAK
- call CopyBytes
- call PlaceGameFreakPresents_AdvanceIndex
- ld de, SFX_GAME_FREAK_PRESENTS
- call PlaySFX
- ret
-; e46af
-
-.GAME_FREAK
- ; G A M E _ F R E A K
- db 0, 1, 2, 3, 13, 4, 5, 3, 1, 6
-.end
- db "@"
-; e46ba
-
-PlaceGameFreakPresents_2: ; e46ba
- ld hl, wcf65
- ld a, [hl]
- cp $40
- jr nc, .place_presents
- inc [hl]
- ret
-
-.place_presents
- ld [hl], 0
- ld hl, .presents
- decoord 7,11
- ld bc, .end - .presents
- call CopyBytes
- call PlaceGameFreakPresents_AdvanceIndex
- ret
-; e46d6
-
-.presents
- db 7, 8, 9, 10, 11, 12
-.end
- db "@"
-; e46dd
-
-PlaceGameFreakPresents_3: ; e46dd
- ld hl, wcf65
- ld a, [hl]
- cp $80
- jr nc, .finish
- inc [hl]
- ret
-
-.finish
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-; e46ed
-
-
-
-GameFreakLogoJumper: ; e46ed (39:46ed)
- ld hl, $b
- add hl, bc
- ld e, [hl]
- ld d, 0
- ld hl, GameFreakLogoScenes
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-GameFreakLogoScenes: ; e46fd (39:46fd)
- dw GameFreakLogoScene1
- dw GameFreakLogoScene2
- dw GameFreakLogoScene3
- dw GameFreakLogoScene4
- dw GameFreakLogoScene5
-
-
-GameFreakLogoScene1: ; e4707 (39:4707)
- ld hl, $b
- add hl, bc
- inc [hl]
- ret
-
-GameFreakLogoScene2: ; e470d (39:470d)
- ld hl, $c
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_e4747
- ld d, a
- ld hl, $d
- add hl, bc
- ld a, [hl]
- and $3f
- cp $20
- jr nc, .asm_e4723
- add $20
-.asm_e4723
- ld e, a
- callba Functionce765
- ld hl, $7
- add hl, bc
- ld [hl], e
- ld hl, $d
- add hl, bc
- ld a, [hl]
- dec [hl]
- and $1f
- ret nz
- ld hl, $c
- add hl, bc
- ld a, [hl]
- sub $30
- ld [hl], a
- ld de, SFX_DITTO_BOUNCE
- call PlaySFX
- ret
-.asm_e4747
- ld hl, $b
- add hl, bc
- inc [hl]
- ld hl, $d
- add hl, bc
- ld [hl], $0
- ld de, SFX_DITTO_POP_UP
- call PlaySFX
- ret
-
-GameFreakLogoScene3: ; e4759 (39:4759)
- ld hl, $d
- add hl, bc
- ld a, [hl]
- cp $20
- jr nc, .asm_e4764
- inc [hl]
- ret
-.asm_e4764
- ld hl, $b
- add hl, bc
- inc [hl]
- ld hl, $d
- add hl, bc
- ld [hl], $0
- ld de, SFX_DITTO_TRANSFORM
- call PlaySFX
- ret
-
-GameFreakLogoScene4: ; e4776 (39:4776)
- ld hl, $d
- add hl, bc
- ld a, [hl]
- cp $40
- jr z, .asm_e47a3
- inc [hl]
- srl a
- srl a
- ld e, a
- ld d, $0
- ld hl, GameFreakLogoPalettes
-rept 2
- add hl, de
-endr
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld a, [hli]
- ld [OBPals + 12], a
- ld a, [hli]
- ld [OBPals + 13], a
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-.asm_e47a3
- ld hl, $b
- add hl, bc
- inc [hl]
- call PlaceGameFreakPresents_AdvanceIndex
-
-GameFreakLogoScene5: ; e47ab (39:47ab)
- ret
-; e47ac (39:47ac)
-
-GameFreakLogoPalettes: ; e47ac
-; Ditto's color as it turns into the Game Freak logo.
-; Fade from pink to orange.
-; One color per step.
- RGB 23, 12, 28
- RGB 23, 12, 27
- RGB 23, 13, 26
- RGB 23, 13, 24
- RGB 24, 14, 22
- RGB 24, 14, 20
- RGB 24, 15, 18
- RGB 24, 15, 16
- RGB 25, 16, 14
- RGB 25, 16, 12
- RGB 25, 17, 10
- RGB 25, 17, 08
- RGB 26, 18, 06
- RGB 26, 18, 04
- RGB 26, 19, 02
- RGB 26, 19, 00
-;' e47cc
-
-GameFreakLogo: ; e47cc
-INCBIN "gfx/splash/logo.1bpp"
-; e48ac
-
-CrystalIntro: ; e48ac
- ld a, [rSVBK]
- push af
- ld a, 5
- ld [rSVBK], a
- ld a, [hInMenu]
- push af
- ld a, [hVBlank]
- push af
- call Functione4901
-.loop: ; e48bc
- call JoyTextDelay
- ld a, [hJoyLast]
- and BUTTONS
- jr nz, .ShutOffMusic
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .done
- call IntroSceneJumper
- callba Function8cf69
- call DelayFrame
- jp .loop
-
-.ShutOffMusic
- ld de, MUSIC_NONE
- call PlayMusic
-
-.done
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- pop af
- ld [hVBlank], a
- pop af
- ld [hInMenu], a
- pop af
- ld [rSVBK], a
- ret
-; e4901
-
-Functione4901: ; e4901
- xor a
- ld [hVBlank], a
- ld a, $1
- ld [hInMenu], a
- xor a
- ld [hMapAnims], a
- ld [wJumptableIndex], a
- ret
-; e490f
-
-IntroSceneJumper: ; e490f
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, IntroScenes
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; e491e
-
-
-IntroScenes: ; e491e (39:491e)
- dw IntroScene1
- dw IntroScene2
- dw IntroScene3
- dw IntroScene4
- dw IntroScene5
- dw IntroScene6
- dw IntroScene7
- dw IntroScene8
- dw IntroScene9
- dw IntroScene10
- dw IntroScene11
- dw IntroScene12
- dw IntroScene13
- dw IntroScene14
- dw IntroScene15
- dw IntroScene16
- dw IntroScene17
- dw IntroScene18
- dw IntroScene19
- dw IntroScene20
- dw IntroScene21
- dw IntroScene22
- dw IntroScene23
- dw IntroScene24
- dw IntroScene25
- dw IntroScene26
- dw IntroScene27
- dw IntroScene28
-
-
-NextIntroScene: ; e4956 (39:4956)
- ld hl, wJumptableIndex
- inc [hl]
- ret
-
-IntroScene1: ; e495b (39:495b)
-; Setup the next scene.
- call Functione54a3
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- ld a, $1
- ld [rVBK], a
- ld hl, IntroTilemap001
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, $0
- ld [rVBK], a
- ld hl, IntroUnownsGFX
- ld de, VTiles2 tile $00
- call Functione54c2
- ld hl, IntroPulseGFX
- ld de, VTiles0 tile $00
- call Functione54c2
- ld hl, IntroTilemap002
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_365ad
- ld de, wMapPals
- ld bc, $80
- call CopyBytes
- ld hl, Palette_365ad
- ld de, BGPals
- ld bc, $80
- call CopyBytes
- pop af
- ld [rSVBK], a
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- callba Function8cf53
- call Functione549e
- xor a
- ld [wIntroSceneFrameCounter], a
- ld [wcf65], a
- call NextIntroScene
- ret
-
-IntroScene2: ; e49d6 (39:49d6)
-; First Unown (A) fades in, pulses, then fades out.
- ld hl, wIntroSceneFrameCounter
- ld a, [hl]
- inc [hl]
- cp $80
- jr nc, .endscene
- cp $60
- jr nz, .DontPlaySound
- push af
- ld de, $5858
- call Functione51dc
- ld de, SFX_INTRO_UNOWN_1
- call PlaySFX
- pop af
-.DontPlaySound
- ld [wcf65], a
- xor a
- call Functione5223
- ret
-.endscene
- call NextIntroScene
- ret
-
-IntroScene3: ; e49fd (39:49fd)
-; More setup. Transition to the outdoor scene.
- call Functione54a3
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- ld a, $1
- ld [rVBK], a
- ld hl, IntroTilemap003
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, $0
- ld [rVBK], a
- ld hl, IntroBackgroundGFX
- ld de, VTiles2 tile $00
- call Functione54c2
- ld hl, IntroTilemap004
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_e5edd
- ld de, wMapPals
- ld bc, $80
- call CopyBytes
- ld hl, Palette_e5edd
- ld de, BGPals
- ld bc, $80
- call CopyBytes
- pop af
- ld [rSVBK], a
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- call Functione5516
- call Functione549e
- xor a
- ld [wIntroSceneFrameCounter], a
- call NextIntroScene
- ret
-
-IntroScene4: ; e4a69 (39:4a69)
-; Scroll the outdoor panorama for a bit.
- call Functione552f
- ld hl, wIntroSceneFrameCounter
- ld a, [hl]
- cp $80
- jr z, .endscene
- inc [hl]
- ret
-.endscene
- call NextIntroScene
- ret
-
-IntroScene5: ; e4a7a (39:4a7a)
-; Go back to the Unown.
- call Functione54a3
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- ld [hLCDStatCustom], a
- ld a, $1
- ld [rVBK], a
- ld hl, IntroTilemap005
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, $0
- ld [rVBK], a
- ld hl, IntroUnownsGFX
- ld de, VTiles2 tile $00
- call Functione54c2
- ld hl, IntroPulseGFX
- ld de, VTiles0 tile $00
- call Functione54c2
- ld hl, IntroTilemap006
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_365ad
- ld de, wMapPals
- ld bc, $80
- call CopyBytes
- ld hl, Palette_365ad
- ld de, BGPals
- ld bc, $80
- call CopyBytes
- pop af
- ld [rSVBK], a
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- callba Function8cf53
- call Functione549e
- xor a
- ld [wcf64], a
- ld [wcf65], a
- call NextIntroScene
- ret
-
-IntroScene6: ; e4af7 (39:4af7)
-; Two more Unown (I, H) fade in.
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- cp $80
- jr nc, .endscene
- cp $60
- jr z, .SecondUnown
- cp $40
- jr nc, .StopUnown
- cp $20
- jr z, .FirstUnown
- jr .NoUnown
-.FirstUnown
- push af
- ld de, $3878
- call Functione51dc
- ld de, SFX_INTRO_UNOWN_2
- call PlaySFX
- pop af
-.NoUnown
- ld [wcf65], a
- xor a
- call Functione5223
- ret
-.SecondUnown
- push af
- ld de, $7030
- call Functione51dc
- ld de, SFX_INTRO_UNOWN_1
- call PlaySFX
- pop af
-.StopUnown
- ld [wcf65], a
- ld a, $1
- call Functione5223
- ret
-.endscene
- call NextIntroScene
- ret
-
-IntroScene7: ; e4b3f (39:4b3f)
-; Back to the outdoor scene.
- call Functione54a3
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- ld a, $1
- ld [rVBK], a
- ld hl, IntroTilemap003
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld hl, IntroPichuWooperGFX
- ld de, VTiles0 tile $00
- call Functione54c2
- ld a, $0
- ld [rVBK], a
- ld hl, IntroSuicuneRunGFX
- ld de, VTiles0 tile $00
- call Functione54de
- ld hl, IntroBackgroundGFX
- ld de, VTiles2 tile $00
- call Functione54c2
- ld hl, IntroTilemap004
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_e5edd
- ld de, wMapPals
- ld bc, $80
- call CopyBytes
- ld hl, Palette_e5edd
- ld de, BGPals
- ld bc, $80
- call CopyBytes
- pop af
- ld [rSVBK], a
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- call Functione5516
- callba Function8cf53
- ld de, $6cd8
- ld a, $26
- call Function3b2a
- ld a, $f0
- ld [wc3c0], a
- call Functione549e
- xor a
- ld [wIntroSceneFrameCounter], a
- ld [wcf65], a
- call NextIntroScene
- ret
-
-IntroScene8: ; e4bd3 (39:4bd3)
-; Scroll the scene, then show Suicune running across the screen.
- ld hl, wIntroSceneFrameCounter
- ld a, [hl]
- inc [hl]
- cp $40
- jr z, .asm_e4be2
- jr nc, .asm_e4be8
- call Functione552f
- ret
-.asm_e4be2
- ld de, SFX_INTRO_SUICUNE_3
- call PlaySFX
-.asm_e4be8
- ld a, [wc3c0]
- and a
- jr z, .asm_e4bf4
- sub $8
- ld [wc3c0], a
- ret
-.asm_e4bf4
- ld de, SFX_INTRO_SUICUNE_2
- call PlaySFX
- callba Function8d03d
- call NextIntroScene
- ret
-
-IntroScene9: ; e4c04 (39:4c04)
-; Set up the next scene (same bg).
- xor a
- ld [hLCDStatCustom], a
- call ClearSprites
- hlcoord 0, 0, AttrMap
- ld bc, $f0
- ld a, $1
- call ByteFill
- ld bc, $3c
- ld a, $2
- call ByteFill
- ld bc, $3c
- ld a, $3
- call ByteFill
- ld a, $2
- ld [hBGMapMode], a
- call DelayFrame
- call DelayFrame
- call DelayFrame
- ld a, $c
- ld [hBGMapAddress], a
- call DelayFrame
- call DelayFrame
- call DelayFrame
- xor a
- ld [hBGMapMode], a
- ld [hBGMapAddress], a
- ld [wc3c0], a
- xor a
- ld [wcf64], a
- call NextIntroScene
- ret
-
-IntroScene10: ; e4c4f (39:4c4f)
-; Wooper and Pichu enter.
- call Functione546d
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- cp $c0
- jr z, .done
- cp $20
- jr z, .wooper
- cp $40
- jr z, .pichu
- ret
-
-.pichu
- lb de, $a9, $80
- ld a, $27
- call Function3b2a
- ld de, SFX_INTRO_PICHU
- call PlaySFX
- ret
-
-.wooper
- lb de, $b0, $30
- ld a, $28
- call Function3b2a
- ld de, SFX_INTRO_PICHU
- call PlaySFX
- ret
-.done
- call NextIntroScene
- ret
-
-IntroScene11: ; e4c86 (39:4c86)
-; Back to Unown again.
- call Functione54a3
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- ld [hLCDStatCustom], a
- ld a, $1
- ld [rVBK], a
- ld hl, IntroTilemap007
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, $0
- ld [rVBK], a
- ld hl, IntroUnownsGFX
- ld de, VTiles2 tile $00
- call Functione54c2
- ld hl, IntroTilemap008
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_365ad
- ld de, wMapPals
- ld bc, $80
- call CopyBytes
- ld hl, Palette_365ad
- ld de, BGPals
- ld bc, $80
- call CopyBytes
- pop af
- ld [rSVBK], a
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- callba Function8cf53
- call Functione549e
- xor a
- ld [wIntroSceneFrameCounter], a
- ld [wcf65], a
- call NextIntroScene
- ret
-
-IntroScene12: ; e4cfa (39:4cfa)
-; Even more Unown.
- call Functione4d36
- ld hl, wIntroSceneFrameCounter
- ld a, [hl]
- inc [hl]
- cp $c0
- jr nc, .asm_e4d32
- cp $80
- jr nc, .asm_e4d1d
- ld c, a
- and $1f
- sla a
- ld [wcf65], a
- ld a, c
- and $e0
- srl a
- swap a
- call Functione5223
- ret
-.asm_e4d1d
- ld c, a
- and $f
- sla a
- sla a
- ld [wcf65], a
- ld a, c
- and $70
- or $40
- swap a
- call Functione5223
- ret
-.asm_e4d32
- call NextIntroScene
- ret
-
-Functione4d36: ; e4d36 (39:4d36)
- ld a, [wIntroSceneFrameCounter]
- ld c, a
- ld hl, .UnownSounds
-.loop
- ld a, [hli]
- cp -1
- ret z
- cp c
- jr z, .playsound
-rept 2
- inc hl
-endr
- jr .loop
-.playsound
- ld a, [hli]
- ld d, [hl]
- ld e, a
- push de
- call SFXChannelsOff
- pop de
- call PlaySFX
- ret
-; e4d54 (39:4d54)
-
-.UnownSounds: ; e4d54
- dbw $00, SFX_INTRO_UNOWN_3
- dbw $20, SFX_INTRO_UNOWN_2
- dbw $40, SFX_INTRO_UNOWN_1
- dbw $60, SFX_INTRO_UNOWN_2
- dbw $80, SFX_INTRO_UNOWN_3
- dbw $90, SFX_INTRO_UNOWN_2
- dbw $a0, SFX_INTRO_UNOWN_1
- dbw $b0, SFX_INTRO_UNOWN_2
- db $ff
-; e4d6d
-
-IntroScene13: ; e4d6d (39:4d6d)
-; Switch scenes again.
- call Functione54a3
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- ld a, $1
- ld [rVBK], a
- ld hl, IntroTilemap003
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, $0
- ld [rVBK], a
- ld hl, IntroSuicuneRunGFX
- ld de, VTiles0 tile $00
- call Functione54de
- ld hl, IntroBackgroundGFX
- ld de, VTiles2 tile $00
- call Functione54c2
- ld hl, IntroTilemap004
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_e5edd
- ld de, wMapPals
- ld bc, $80
- call CopyBytes
- ld hl, Palette_e5edd
- ld de, BGPals
- ld bc, $80
- call CopyBytes
- pop af
- ld [rSVBK], a
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- callba Function8cf53
- lb de, $6c, $58
- ld a, $26
- call Function3b2a
- ld de, MUSIC_CRYSTAL_OPENING
- call PlayMusic
- xor a
- ld [wc3c0], a
- call Functione549e
- xor a
- ld [wcf64], a
- ld [wcf65], a
- call NextIntroScene
- ret
-
-IntroScene14: ; e4dfa (39:4dfa)
-; Suicune runs then jumps.
- ld a, [hSCX]
- sub 10
- ld [hSCX], a
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- cp $80
- jr z, .done
- cp $60
- jr z, .jump
- jr nc, .asm_e4e1a
- cp $40
- jr nc, .asm_e4e33
- ret
-
-.jump
- ld de, SFX_INTRO_SUICUNE_4
- call PlaySFX
-
-.asm_e4e1a
- ld a, $1
- ld [wcf65], a
- ld a, [wc3c0]
- cp $88
- jr c, .asm_e4e2c
- sub $8
- ld [wc3c0], a
- ret
-
-.asm_e4e2c
- callba Function8d03d
- ret
-
-.asm_e4e33
- ld a, [wc3c0]
- sub $2
- ld [wc3c0], a
- ret
-
-.done
- call NextIntroScene
- ret
-
-IntroScene15: ; e4e40 (39:4e40)
-; Transition to a new scene.
- call Functione54a3
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- ld a, $1
- ld [rVBK], a
- ld hl, IntroTilemap009
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, $0
- ld [rVBK], a
- ld hl, IntroSuicuneJumpGFX
- ld de, VTiles2 tile $00
- call Functione54c2
- ld hl, IntroUnownBackGFX
- ld de, VTiles0 tile $00
- call Functione54c2
- ld de, GFX_e7a5d
- ld hl, VTiles1 tile $00
- lb bc, BANK(GFX_e7a5d), 1
- call Request2bpp
- ld hl, IntroTilemap010
- ld de, VBGMap0 tile $00
- call Functione54fa
- call Functione541b
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_e77dd
- ld de, wMapPals
- ld bc, $80
- call CopyBytes
- ld hl, Palette_e77dd
- ld de, BGPals
- ld bc, $80
- call CopyBytes
- pop af
- ld [rSVBK], a
- xor a
- ld [hSCX], a
- ld a, $90
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- callba Function8cf53
- call Functione549e
- lb de, $40, $28
- ld a, $2a
- call Function3b2a
- lb de, $60, $00
- ld a, $2b
- call Function3b2a
- xor a
- ld [wcf64], a
- ld [wcf65], a
- call NextIntroScene
- ret
-
-IntroScene16: ; e4edc (39:4edc)
-; Suicune shows its face. An Unown appears in front.
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- cp $80
- jr nc, .done
- call Functione5441
- ld a, [hSCY]
- and a
- ret z
- add 8
- ld [hSCY], a
- ret
-.done
- call NextIntroScene
- ret
-
-IntroScene17: ; e4ef5 (39:4ef5)
-; ...
- call Functione54a3
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- ld a, $1
- ld [rVBK], a
- ld hl, IntroTilemap011
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, $0
- ld [rVBK], a
- ld hl, IntroSuicuneCloseGFX
- ld de, VTiles1 tile $00
- call Functione54de
- ld hl, IntroTilemap012
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_e6d6d
- ld de, wMapPals
- ld bc, $80
- call CopyBytes
- ld hl, Palette_e6d6d
- ld de, BGPals
- ld bc, $80
- call CopyBytes
- pop af
- ld [rSVBK], a
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- callba Function8cf53
- call Functione549e
- xor a
- ld [wcf64], a
- ld [wcf65], a
- call NextIntroScene
- ret
-
-IntroScene18: ; e4f67 (39:4f67)
-; Suicune close up.
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- cp $60
- jr nc, .done
- ld a, [hSCX]
- cp $60
- ret z
- add 8
- ld [hSCX], a
- ret
-.done
- call NextIntroScene
- ret
-
-IntroScene19: ; e4f7e (39:4f7e)
-; More setup.
- call Functione54a3
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- ld a, $1
- ld [rVBK], a
- ld hl, IntroTilemap013
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, $0
- ld [rVBK], a
- ld hl, IntroSuicuneBackGFX
- ld de, VTiles2 tile $00
- call Functione54c2
- ld hl, IntroUnownsGFX
- ld de, VTiles1 tile $00
- call Functione54c2
- ld de, GFX_e7a5d
- ld hl, VTiles1 tile $7f
- lb bc, BANK(GFX_e7a5d), 1
- call Request2bpp
- ld hl, IntroTilemap014
- ld de, VBGMap0 tile $00
- call Functione54fa
- call Functione541b
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_e77dd
- ld de, wMapPals
- ld bc, $80
- call CopyBytes
- ld hl, Palette_e77dd
- ld de, BGPals
- ld bc, $80
- call CopyBytes
- pop af
- ld [rSVBK], a
- xor a
- ld [hSCX], a
- ld a, $d8
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- callba Function8cf53
- ld hl, wc300
- xor a
- ld [hli], a
- ld [hl], $7f
- call Functione549e
- lb de, $60, $00
- ld a, $2b
- call Function3b2a
- xor a
- ld [wcf64], a
- ld [wcf65], a
- call NextIntroScene
- ret
-
-IntroScene20: ; e5019 (39:5019)
-; Suicune running away. A bunch of Unown appear.
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- cp $98
- jr nc, .asm_e5059
- cp $58
- ret nc
- cp $40
- jr nc, .asm_e5032
- cp $28
- ret nc
- ld a, [hSCY]
- inc a
- ld [hSCY], a
- ret
-
-.asm_e5032
- sub $18
- ld c, a
- and $3
- cp $3
- ret nz
- ld a, c
- and $1c
- srl a
- srl a
- ld [wcf65], a
- xor a
- call Functione5348
- ret
-; e5049 (39:5049)
-
- ld a, c
- and $1c
- srl a
- srl a
- ld [wcf65], a
- ld a, 1
- call Functione5348
- ret
-
-.asm_e5059
- call NextIntroScene
- ret
-
-IntroScene21: ; e505d (39:505d)
-; Suicune gets more distant and turns black.
- call Functione5451
- ld c, 3
- call DelayFrames
- xor a
- ld [hBGMapMode], a
- ld [wcf64], a
- ld [wcf65], a
- call NextIntroScene
- ret
-
-IntroScene22: ; e5072 (39:5072)
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- cp $8
- jr nc, .done
- ret
-.done
- callba Function8d03d
- call NextIntroScene
- ret
-
-IntroScene23: ; e5086 (39:5086)
- xor a
- ld [wcf64], a
- call NextIntroScene
- ret
-
-IntroScene24: ; e508e (39:508e)
-; Fade to white.
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- cp $20
- jr nc, .done
-
- ld c, a
- and $3
- ret nz
- ld a, c
- and $1c
- sla a
- call Functione5172
- ret
-
-.done
- ld a, $40
- ld [wcf64], a
- call NextIntroScene
- ret
-
-IntroScene25: ; e50ad (39:50ad)
-; Wait around a bit.
- ld a, [wcf64]
- dec a
- jr z, .done
- ld [wcf64], a
- ret
-.done
- call NextIntroScene
- ret
-
-IntroScene26: ; e50bb (39:50bb)
-; Load the final scene.
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- ld a, $1
- ld [rVBK], a
- ld hl, IntroTilemap015
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, $0
- ld [rVBK], a
- ld hl, IntroCrystalUnownsGFX
- ld de, VTiles2 tile $00
- call Functione54c2
- ld hl, IntroTilemap017
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_e679d
- ld de, wMapPals
- ld bc, $80
- call CopyBytes
- ld hl, Palette_e679d
- ld de, BGPals
- ld bc, $80
- call CopyBytes
- pop af
- ld [rSVBK], a
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- callba Function8cf53
- call Functione549e
- xor a
- ld [wcf64], a
- ld [wcf65], a
- call NextIntroScene
- ret
-
-IntroScene27: ; e512d (39:512d)
-; Spell out C R Y S T A L with Unown.
- ld hl, wcf65
- inc [hl]
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- cp $80
- jr nc, .done
-
- ld c, a
- and $f
- ld [wcf65], a
- ld a, c
- and $70
- swap a
- call Functione539d
- ret
-
-.done
- call NextIntroScene
- ld a, $80
- ld [wcf64], a
- ret
-
-IntroScene28: ; e5152 (39:5152)
-; Cut out when the music ends, and lead into the title screen.
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .done
- dec [hl]
- cp $18
- jr z, .clear
- cp $8
- ret nz
-
- ld de, SFX_UNKNOWN_CB
- call PlaySFX
- ret
-
-.clear
- call ClearBGPalettes
- ret
-
-.done
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-
-Functione5172: ; e5172 (39:5172)
- ld hl, Unknown_e519c
- add l
- ld l, a
- ld a, $0
- adc h
- ld h, a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld de, BGPals
- ld b, $8
-.asm_e5187
- push hl
- ld c, $8
-.asm_e518a
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .asm_e518a
- pop hl
- dec b
- jr nz, .asm_e5187
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; e519c (39:519c)
-
-Unknown_e519c: ; e519c
-; Fade to white.
- RGB 24, 12, 09
- RGB 31, 31, 31
- RGB 12, 00, 31
- RGB 00, 00, 00
-
- RGB 31, 19, 05
- RGB 31, 31, 31
- RGB 15, 05, 31
- RGB 07, 07, 07
-
- RGB 31, 21, 09
- RGB 31, 31, 31
- RGB 18, 09, 31
- RGB 11, 11, 11
-
- RGB 31, 23, 13
- RGB 31, 31, 31
- RGB 21, 13, 31
- RGB 15, 15, 15
-
- RGB 31, 25, 17
- RGB 31, 31, 31
- RGB 25, 17, 31
- RGB 19, 19, 19
-
- RGB 31, 27, 21
- RGB 31, 31, 31
- RGB 27, 21, 31
- RGB 23, 23, 23
-
- RGB 31, 29, 25
- RGB 31, 31, 31
- RGB 29, 26, 31
- RGB 27, 27, 27
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-; e51dc
-
-Functione51dc: ; e51dc (39:51dc)
- push de
- ld a, $29
- call Function3b2a
- ld hl, $c
- add hl, bc
- ld [hl], $8
- ld a, $3c
- call Function3b3c
- pop de
-
- push de
- ld a, $29
- call Function3b2a
- ld hl, $c
- add hl, bc
- ld [hl], $18
- ld a, $3b
- call Function3b3c
- pop de
-
- push de
- ld a, $29
- call Function3b2a
- ld hl, $c
- add hl, bc
- ld [hl], $28
- ld a, $39
- call Function3b3c
- pop de
-
- ld a, $29
- call Function3b2a
- ld hl, $c
- add hl, bc
- ld [hl], $38
- ld a, $3a
- call Function3b3c
- ret
-
-Functione5223: ; e5223 (39:5223)
-rept 3
- add a
-endr
- ld e, a
- ld d, $0
- ld hl, BGPals
- add hl, de
-rept 2
- inc hl
-endr
- ld a, [wcf65]
- and $3f
- cp $1f
- jr z, .asm_e523e
- jr c, .asm_e523e
- ld c, a
- ld a, $3f
- sub c
-.asm_e523e
- ld c, a
- ld b, $0
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- push hl
- push bc
- ld hl, BGPals
- ld bc, $40
- xor a
- call ByteFill
- pop bc
- pop hl
- push hl
- ld hl, Unknown_e5288
-rept 2
- add hl, bc
-endr
- ld a, [hli]
- ld d, [hl]
- ld e, a
- pop hl
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- push hl
- ld hl, Unknown_e52c8
-rept 2
- add hl, bc
-endr
- ld a, [hli]
- ld d, [hl]
- ld e, a
- pop hl
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- push hl
- ld hl, Unknown_e5308
-rept 2
- add hl, bc
-endr
- ld a, [hli]
- ld d, [hl]
- ld e, a
- pop hl
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; e5288 (39:5288)
-
-Unknown_e5288: ; e5288
-; Fade between black and white.
-hue = 0
-rept 32
- RGB hue, hue, hue
-hue = hue + 1
-endr
-; e52c8
-
-Unknown_e52c8: ; e52c8
-; Fade between black and light blue.
-hue = 0
-rept 32
- RGB 0, hue / 2, hue
-hue = hue + 1
-endr
-; e5308
-
-Unknown_e5308: ; e5308
-; Fade between black and blue.
-hue = 0
-rept 32
- RGB 0, 0, hue
-hue = hue + 1
-endr
-; e5348
-
-Functione5348: ; e5348 (39:5348)
- and a
- jr nz, .asm_e5350
- ld hl, Palette_e538d
- jr .asm_e5353
-.asm_e5350
- ld hl, Palette_e5395
-.asm_e5353
- ld a, [wcf65]
- and $7
-rept 3
- add a
-endr
- ld c, a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- push bc
- ld de, BGPals
- ld a, c
- add e
- ld e, a
- ld a, $0
- adc d
- ld d, a
- ld bc, $8
- call CopyBytes
- pop bc
- ld de, wMapPals
- ld a, c
- add e
- ld e, a
- ld a, $0
- adc d
- ld d, a
- ld bc, $8
- call CopyBytes
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; e538d (39:538d)
-
-Palette_e538d: ; e538d
- RGB 24, 12, 09
- RGB 31, 31, 31
- RGB 12, 00, 31
- RGB 00, 00, 00
-; e5395
-
-Palette_e5395: ; e5395
- RGB 24, 12, 09
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-; e539d
-
-Functione539d: ; e539d (39:539d)
-rept 3
- add a
-endr
- ld e, a
- ld d, $0
- ld hl, BGPals
- add hl, de
-rept 4
- inc hl
-endr
- ld a, [wcf65]
- add a
- ld c, a
- ld b, $0
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- push hl
- ld hl, Palette_e53db
- add hl, bc
- ld a, [hli]
- ld d, [hl]
- ld e, a
- pop hl
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- push hl
- ld hl, Palette_e53fb
- add hl, bc
- ld a, [hli]
- ld d, [hl]
- ld e, a
- pop hl
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; e53db (39:53db)
-
-Palette_e53db: ; e53db
-hue = 31
-rept 8
- RGB hue, hue, hue
-hue = hue + -1
- RGB hue, hue, hue
-hue = hue + -2
-endr
-; e53fb
-
-Palette_e53fb: ; e53fb
-hue = 31
-rept 16
- RGB hue, hue, hue
-hue = hue + -1
-endr
-; e541b
-
-Functione541b: ; e541b (39:541b)
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- ld hl, w6_d000
- decoord 0, 0
- ld b, SCREEN_HEIGHT
-.asm_e542a
- ld c, SCREEN_WIDTH
-.asm_e542c
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .asm_e542c
- ld a, $c
- add l
- ld l, a
- ld a, $0
- adc h
- ld h, a
- dec b
- jr nz, .asm_e542a
- pop af
- ld [rSVBK], a
- ret
-
-Functione5441: ; e5441 (39:5441)
- ld a, [wcf64]
- and $3
- jr z, Functione5451
- cp $3
- jr z, .asm_e544d
- ret
-.asm_e544d
- xor a
- ld [hBGMapMode], a
- ret
-
-Functione5451: ; e5451 (39:5451)
- hlcoord 0, 0
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
-.asm_e5457
- ld a, [hl]
- and a
- jr z, .asm_e5462
- cp $80
- jr nc, .asm_e5462
- xor $8
- ld [hl], a
-.asm_e5462
- inc hl
- dec bc
- ld a, c
- or b
- jr nz, .asm_e5457
- ld a, $1
- ld [hBGMapMode], a
- ret
-
-Functione546d: ; e546d (39:546d)
- ld a, [wcf64]
- cp $24
- ret nc
- and $c
- srl a
- ld e, a
- ld d, $0
- ld hl, Unknown_e5496
- add hl, de
- ld a, [hli]
- ld [Requested2bppSource], a
- ld a, [hli]
- ld [Requested2bppSource + 1], a
- ld a, (VTiles2 tile $09) % $100
- ld [Requested2bppDest], a
- ld a, (VTiles2 tile $09) / $100
- ld [Requested2bppDest + 1], a
- ld a, $4
- ld [Requested2bpp], a
- ret
-; e5496 (39:5496)
-
-Unknown_e5496: ; e5496
- dw GFX_e799d
- dw GFX_e79dd
- dw GFX_e7a1d
- dw GFX_e79dd
-; e549e
-
-Functione549e: ; e549e (39:549e)
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-
-Functione54a3: ; e54a3 (39:54a3)
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, BGPals
- ld bc, $80
- xor a
- call ByteFill
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- call DelayFrame
- call DelayFrame
- ret
-
-Functione54c2: ; e54c2 (39:54c2)
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- push de
- ld de, w6_d000
- call Decompress
- pop hl
- ld de, w6_d000
- ld bc, $180
- call Request2bpp
- pop af
- ld [rSVBK], a
- ret
-
-Functione54de: ; e54de (39:54de)
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- push de
- ld de, w6_d000
- call Decompress
- pop hl
- ld de, w6_d000
- ld bc, $1ff
- call Request2bpp
- pop af
- ld [rSVBK], a
- ret
-
-Functione54fa: ; e54fa (39:54fa)
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- push de
- ld de, w6_d000
- call Decompress
- pop hl
- ld de, w6_d000
- ld bc, $140
- call Request2bpp
- pop af
- ld [rSVBK], a
- ret
-
-Functione5516: ; e5516 (39:5516)
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, LYOverrides
- ld bc, $90
- xor a
- call ByteFill
- pop af
- ld [rSVBK], a
- ld a, $43
- ld [hLCDStatCustom], a
- ret
-
-Functione552f: ; e552f (39:552f)
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld a, [wcf64]
- and $1
- jr z, .asm_e5548
- ld hl, LYOverrides
- ld a, [hl]
- inc a
- ld bc, $5f
- call ByteFill
-.asm_e5548
- ld hl, LYOverrides + $5f
- ld a, [hl]
-rept 2
- inc a
-endr
- ld bc, $31
- call ByteFill
- ld a, [LYOverrides + 0]
- ld [hSCX], a
- pop af
- ld [rSVBK], a
- ret
-
-IntroSuicuneRunGFX: ; e555d
-INCBIN "gfx/intro/suicune_run.2bpp.lz"
-; e592d
-
-IntroPichuWooperGFX: ; e592d
-INCBIN "gfx/intro/pichu_wooper.2bpp.lz"
-; e5c7d
-
-IntroBackgroundGFX: ; e5c7d
-INCBIN "gfx/intro/background.2bpp.lz"
-; e5e6d
-
-IntroTilemap004: ; e5e6d
-INCBIN "gfx/intro/004.tilemap.lz"
-; e5ecd
-
-IntroTilemap003: ; e5ecd
-INCBIN "gfx/intro/003.tilemap.lz"
-; e5edd
-
-Palette_e5edd: ; e5edd
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 0, 4, 5
- RGB 1, 8, 5
- RGB 4, 12, 9
- RGB 24, 12, 9
- RGB 0, 4, 5
- RGB 9, 6, 8
- RGB 8, 16, 5
- RGB 5, 10, 4
- RGB 31, 31, 31
- RGB 9, 6, 8
- RGB 18, 9, 9
- RGB 13, 8, 9
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 2, 5, 22
- RGB 1, 5, 12
- RGB 31, 31, 31
- RGB 31, 10, 25
- RGB 31, 21, 0
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 21, 31
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
-IntroUnownsGFX: ; e5f5d
-INCBIN "gfx/intro/unowns.2bpp.lz"
-; e634d
-
-IntroPulseGFX: ; e634d
-INCBIN "gfx/intro/pulse.2bpp.lz"
-; e63dd
-
-IntroTilemap002: ; e63dd
-INCBIN "gfx/intro/002.tilemap.lz"
-; e641d
-
-IntroTilemap001: ; e641d
-INCBIN "gfx/intro/001.tilemap.lz"
-; e642d
-
-IntroTilemap006: ; e642d
-INCBIN "gfx/intro/006.tilemap.lz"
-; e647d
-
-IntroTilemap005: ; e647d
-INCBIN "gfx/intro/005.tilemap.lz"
-; e649d
-
-IntroTilemap008: ; e649d
-INCBIN "gfx/intro/008.tilemap.lz"
-; e655d
-
-IntroTilemap007: ; e655d
-INCBIN "gfx/intro/007.tilemap.lz"
-; e65ad
-
-Palette_365ad: ; e65ad
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 10, 0, 10
- RGB 19, 0, 19
- RGB 31, 0, 31
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
-IntroCrystalUnownsGFX: ; e662d
-INCBIN "gfx/intro/crystal_unowns.2bpp.lz"
-; e672d
-
-IntroTilemap017: ; e672d
-INCBIN "gfx/intro/017.tilemap.lz"
-; e676d
-
-IntroTilemap015: ; e676d
-INCBIN "gfx/intro/015.tilemap.lz"
-; e679d
-
-Palette_e679d: ; e679d
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
-IntroSuicuneCloseGFX: ; e681d
-INCBIN "gfx/intro/suicune_close.2bpp.lz"
-; e6c3d
-
-IntroTilemap012: ; e6c3d
-INCBIN "gfx/intro/012.tilemap.lz"
-; e6d0d
-
-IntroTilemap011: ; e6d0d
-INCBIN "gfx/intro/011.tilemap.lz"
-; e6d6d
-
-Palette_e6d6d: ; e6d6d
- RGB 24, 12, 9
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 24, 12, 9
- RGB 31, 31, 31
- RGB 8, 9, 31
- RGB 0, 0, 0
- RGB 24, 12, 9
- RGB 12, 20, 31
- RGB 19, 8, 31
- RGB 0, 0, 0
- RGB 12, 20, 31
- RGB 8, 9, 31
- RGB 19, 8, 31
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 12, 20, 31
- RGB 8, 9, 31
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
-IntroSuicuneJumpGFX: ; e6ded
-INCBIN "gfx/intro/suicune_jump.2bpp.lz"
-; e72ad
-
-IntroSuicuneBackGFX: ; e72ad
-INCBIN "gfx/intro/suicune_back.2bpp.lz"
-; e764d
-
-IntroTilemap010: ; e764d
-INCBIN "gfx/intro/010.tilemap.lz"
-; e76ad
-
-IntroTilemap009: ; e76ad
-INCBIN "gfx/intro/009.tilemap.lz"
-; e76bd
-
-IntroTilemap014: ; e76bd
-INCBIN "gfx/intro/014.tilemap.lz"
-; e778d
-
-IntroTilemap013: ; e778d
-INCBIN "gfx/intro/013.tilemap.lz"
-; e77dd
-
-Palette_e77dd: ; e77dd
- RGB 24, 12, 9
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 24, 12, 9
- RGB 31, 31, 31
- RGB 8, 9, 31
- RGB 0, 0, 0
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 12, 0, 31
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 21, 9, 0
- RGB 21, 9, 0
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
-IntroUnownBackGFX: ; e785d
-INCBIN "gfx/intro/unown_back.2bpp.lz"
-; e799d
-
-GFX_e799d: ; e799d
-INCBIN "gfx/unknown/0e799d.2bpp"
-GFX_e79dd: ; e79dd
-INCBIN "gfx/unknown/0e79dd.2bpp"
-GFX_e7a1d: ; e7a1d
-INCBIN "gfx/unknown/0e7a1d.2bpp"
-
-GFX_e7a5d: ; e7a5d
-INCBIN "gfx/unknown/0e7a5d.2bpp"
-
-
-
SECTION "bank3E", ROMX, BANK[$3E]
-FontExtra:
-INCBIN "gfx/misc/font_extra.2bpp"
+INCLUDE "gfx/font.asm"
+INCLUDE "engine/time_capsule/conversion.asm"
-Font:
-INCBIN "gfx/misc/font.1bpp"
-
-FontBattleExtra:
-INCBIN "gfx/misc/font_battle_extra.2bpp"
-
-Frames: ; f8800
-INCBIN "gfx/frames/1.1bpp"
-INCBIN "gfx/frames/2.1bpp"
-INCBIN "gfx/frames/3.1bpp"
-INCBIN "gfx/frames/4.1bpp"
-INCBIN "gfx/frames/5.1bpp"
-INCBIN "gfx/frames/6.1bpp"
-INCBIN "gfx/frames/7.1bpp"
-INCBIN "gfx/frames/8.1bpp"
-INCBIN "gfx/frames/9.1bpp"
-; f89b0
-
-; TODO: Various misc graphics here.
-
-GFX_f89b0: ; f89b0
-INCBIN "gfx/unknown/0f89b0.2bpp"
-; f8a90
-
-ShinyIcon: ; f8a90
-INCBIN "gfx/stats/shiny.2bpp"
-
-GFX_f8aa0: ; f8aa0
-INCBIN "gfx/unknown/0f8aa0.2bpp"
-; f8ac0
-
-EnemyHPBarBorderGFX: ; f8ac0
-INCBIN "gfx/battle/enemy_hp_bar_border.1bpp"
-; f8ae0
-
-HPExpBarBorderGFX: ; f8ae0
-INCBIN "gfx/battle/hp_exp_bar_border.1bpp"
-; f8b10
-
-ExpBarGFX: ; f8b10
-INCBIN "gfx/battle/expbar.2bpp"
-; f8ba0
-
-TownMapGFX: ; f8ba0
-INCBIN "gfx/misc/town_map.2bpp.lz"
-; f8ea4
-
-GFX_f8ea4: ; unused
-INCBIN "gfx/unknown/0f8ea4.2bpp"
-; f8f24
-
-OverworldPhoneIconGFX: ; f8f24
-INCBIN "gfx/mobile/overworld_phone_icon.2bpp"
-; f8f34
-
-GFX_f8f34: ; unused
-INCBIN "gfx/unknown/0f8f34.2bpp"
-; f9204
-
-TextBoxSpaceGFX: ; f9204
-INCBIN "gfx/frames/space.2bpp"
-; f9214
-
-MobilePhoneTilesGFX: ; f9214
-INCBIN "gfx/mobile/phone_tiles.2bpp"
-; f9344
-
-MapEntryFrameGFX: ; f9344
-INCBIN "gfx/frames/map_entry_sign.2bpp"
-; f9424
-
-GFX_f9424: ; f9424
-INCBIN "gfx/unknown/0f9424.2bpp"
-; f9434
-
-Footprints: ; f9434
-INCBIN "gfx/misc/footprints.1bpp"
-; fb434
-
-; This and the following two functions are unreferenced.
-Unknown_fb434:
- db 0
-
-Functionfb435: ; 4b435
- ld a, [Unknown_fb434]
- and a
- jp nz, Get1bpp_2
- jp Get1bpp
-; fb43f
-
-Functionfb43f: ; fb43f
- ld a, [Unknown_fb434]
- and a
- jp nz, Get2bpp_2
- jp Get2bpp
-; End unreferenced block
-; fb449
-
-_LoadStandardFont:: ; fb449
- ld de, Font
- ld hl, VTiles1
- lb bc, BANK(Font), $80
- ld a, [rLCDC]
- bit 7, a
- jp z, Copy1bpp
-
- ld de, Font
- ld hl, VTiles1
- lb bc, BANK(Font), $20
- call Get1bpp_2
- ld de, Font + $20 * LEN_1BPP_TILE
- ld hl, VTiles1 tile $20
- lb bc, BANK(Font), $20
- call Get1bpp_2
- ld de, Font + $40 * LEN_1BPP_TILE
- ld hl, VTiles1 tile $40
- lb bc, BANK(Font), $20
- call Get1bpp_2
- ld de, Font + $60 * LEN_1BPP_TILE
- ld hl, VTiles1 tile $60
- lb bc, BANK(Font), $20
- call Get1bpp_2
- ret
-; fb48a
-
-_LoadFontsExtra1:: ; fb48a
- ld de, MobilePhoneTilesGFX
- ld hl, VTiles2 tile $60
- lb bc, BANK(MobilePhoneTilesGFX), 1
- call Get1bpp_2
- ld de, OverworldPhoneIconGFX
- ld hl, VTiles2 tile $62
- lb bc, BANK(OverworldPhoneIconGFX), 1
- call Get2bpp_2
- ld de, FontExtra + 3 * LEN_2BPP_TILE
- ld hl, VTiles2 tile $63
- lb bc, BANK(FontExtra), $16
- call Get2bpp_2
- jr LoadFrame
-; fb4b0
-
-_LoadFontsExtra2:: ; fb4b0
- ld de, GFX_f9424
- ld hl, VTiles2 tile $61
- ld b, BANK(GFX_f9424)
- ld c, 1
- call Get2bpp_2
- ret
-; fb4be
-
-_LoadFontsBattleExtra:: ; fb4be
- ld de, FontBattleExtra
- ld hl, VTiles2 tile $60
- lb bc, BANK(FontBattleExtra), $19
- call Get2bpp_2
- jr LoadFrame
-; fb4cc
-
-LoadFrame: ; fb4cc
- ld a, [TextBoxFrame]
- and 7
- ld bc, TILES_PER_FRAME * LEN_1BPP_TILE
- ld hl, Frames
- call AddNTimes
- ld d, h
- ld e, l
- ld hl, VTiles2 tile $79
- lb bc, BANK(Frames), TILES_PER_FRAME
- call Get1bpp_2
- ld hl, VTiles2 tile $7f
- ld de, TextBoxSpaceGFX
- lb bc, BANK(TextBoxSpaceGFX), 1
- call Get1bpp_2
- ret
-; fb4f2
-
-LoadBattleFontsHPBar: ; fb4f2
- ld de, FontBattleExtra
- ld hl, VTiles2 tile $60
- lb bc, BANK(FontBattleExtra), $c
- call Get2bpp_2
- ld hl, VTiles2 tile $70
- ld de, FontBattleExtra + $10 * LEN_2BPP_TILE
- lb bc, BANK(FontBattleExtra), 3
- call Get2bpp_2
- call LoadFrame
-
-LoadHPBar: ; fb50d
- ld de, EnemyHPBarBorderGFX
- ld hl, VTiles2 tile $6c
- lb bc, BANK(EnemyHPBarBorderGFX), 4
- call Get1bpp_2
- ld de, HPExpBarBorderGFX
- ld hl, VTiles2 tile $73
- lb bc, BANK(HPExpBarBorderGFX), 6
- call Get1bpp_2
- ld de, ExpBarGFX
- ld hl, VTiles2 tile $55
- lb bc, BANK(ExpBarGFX), 9
- call Get2bpp_2
- ld de, MobilePhoneTilesGFX + 9 * LEN_2BPP_TILE
- ld hl, VTiles2 tile $5e
- lb bc, BANK(MobilePhoneTilesGFX), 2
- call Get2bpp_2
- ret
-; fb53e
-
-Functionfb53e: ; fb53e
- call _LoadFontsBattleExtra
- ld de, EnemyHPBarBorderGFX
- ld hl, VTiles2 tile $6c
- lb bc, BANK(EnemyHPBarBorderGFX), 4
- call Get1bpp_2
- ld de, HPExpBarBorderGFX
- ld hl, VTiles2 tile $78
- lb bc, BANK(HPExpBarBorderGFX), 1
- call Get1bpp_2
- ld de, HPExpBarBorderGFX + 3 * LEN_1BPP_TILE
- ld hl, VTiles2 tile $76
- lb bc, BANK(HPExpBarBorderGFX), 2
- call Get1bpp_2
- ld de, ExpBarGFX
- ld hl, VTiles2 tile $55
- lb bc, BANK(ExpBarGFX), 8
- call Get2bpp_2
-
-Functionfb571: ; fb571
- ld de, GFX_f89b0
- ld hl, VTiles2 tile $31
- lb bc, BANK(GFX_f89b0), $11
- call Get2bpp_2
- ret
-; fb57e
-
-; These functions seem to be related to backwards compatibility
-
-Functionfb57e: ; fb57e
- ld a, [wd003]
- ld hl, OTPartyMon1Species
- call GetPartyLocation
- push hl
- ld a, [wd003]
- inc a
- ld c, a
- ld b, 0
- ld hl, OTPartyCount
- add hl, bc
- ld a, [hl]
- pop hl
- cp EGG
- jr z, .asm_fb59c
- cp [hl]
- jr nz, .asm_fb5db
-
-.asm_fb59c
- ld b, h
- ld c, l
- ld hl, MON_LEVEL
- add hl, bc
- ld a, [hl]
- cp 101
- jr nc, .asm_fb5db
- ld a, [wLinkMode]
- cp LINK_TIMECAPSULE
- jr nz, .asm_fb5d9
- ld hl, OTPartySpecies
- ld a, [wd003]
- ld c, a
- ld b, 0
- add hl, bc
- ld a, [hl]
-
- ; Magnemite and Magneton's types changed
- ; from Electric to Electric/Steel.
- cp MAGNEMITE
- jr z, .asm_fb5d9
- cp MAGNETON
- jr z, .asm_fb5d9
-
- ld [CurSpecies], a
- call GetBaseData
- ld hl, wcbea
-rept 2
- add hl, bc
-endr
- ld a, [BaseType1]
- cp [hl]
- jr nz, .asm_fb5db
- inc hl
- ld a, [BaseType2]
- cp [hl]
- jr nz, .asm_fb5db
-
-.asm_fb5d9
- and a
- ret
-
-.asm_fb5db
- scf
- ret
-; fb5dd
-
-Functionfb5dd: ; fb5dd
- ld a, [wd002]
- ld d, a
- ld a, [PartyCount]
- ld b, a
- ld c, $0
-.asm_fb5e7
- ld a, c
- cp d
- jr z, .asm_fb5f8
- push bc
- ld a, c
- ld hl, PartyMon1HP
- call GetPartyLocation
- pop bc
- ld a, [hli]
- or [hl]
- jr nz, .asm_fb60b
-
-.asm_fb5f8
- inc c
- dec b
- jr nz, .asm_fb5e7
- ld a, [wd003]
- ld hl, OTPartyMon1HP
- call GetPartyLocation
- ld a, [hli]
- or [hl]
- jr nz, .asm_fb60b
- scf
- ret
-
-.asm_fb60b
- and a
- ret
-; fb60d
-
-Functionfb60d: ; fb60d
- hlcoord 4, 0
- ld de, PlayerName
- call PlaceString
- ld a, $14
- ld [bc], a
- hlcoord 4, 8
- ld de, wd26b
- call PlaceString
- ld a, $14
- ld [bc], a
- hlcoord 7, 1
- ld de, PartySpecies
- call Functionfb634
- hlcoord 7, 9
- ld de, OTPartySpecies
-
-Functionfb634: ; fb634
- ld c, $0
-.asm_fb636
- ld a, [de]
- cp $ff
- ret z
- ld [wd265], a
- push bc
- push hl
- push de
- push hl
- ld a, c
- ld [hProduct], a
- call GetPokemonName
- pop hl
- call PlaceString
- pop de
- inc de
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- inc c
- jr .asm_fb636
-; fb656
-
-KantoMonSpecials: ; fb656
-; The original special base stat for
-; each Kanto monster from Red/Blue.
- db 65 ; BULBASAUR
- db 80 ; IVYSAUR
- db 100 ; VENUSAUR
- db 50 ; CHARMANDER
- db 65 ; CHARMELEON
- db 85 ; CHARIZARD
- db 50 ; SQUIRTLE
- db 65 ; WARTORTLE
- db 85 ; BLASTOISE
- db 20 ; CATERPIE
- db 25 ; METAPOD
- db 80 ; BUTTERFREE
- db 20 ; WEEDLE
- db 25 ; KAKUNA
- db 45 ; BEEDRILL
- db 35 ; PIDGEY
- db 50 ; PIDGEOTTO
- db 70 ; PIDGEOT
- db 25 ; RATTATA
- db 50 ; RATICATE
- db 31 ; SPEAROW
- db 61 ; FEAROW
- db 40 ; EKANS
- db 65 ; ARBOK
- db 50 ; PIKACHU
- db 90 ; RAICHU
- db 30 ; SANDSHREW
- db 55 ; SANDSLASH
- db 40 ; NIDORAN_F
- db 55 ; NIDORINA
- db 75 ; NIDOQUEEN
- db 40 ; NIDORAN_M
- db 55 ; NIDORINO
- db 75 ; NIDOKING
- db 60 ; CLEFAIRY
- db 85 ; CLEFABLE
- db 65 ; VULPIX
- db 100 ; NINETALES
- db 25 ; JIGGLYPUFF
- db 50 ; WIGGLYTUFF
- db 40 ; ZUBAT
- db 75 ; GOLBAT
- db 75 ; ODDISH
- db 85 ; GLOOM
- db 100 ; VILEPLUME
- db 55 ; PARAS
- db 80 ; PARASECT
- db 40 ; VENONAT
- db 90 ; VENOMOTH
- db 45 ; DIGLETT
- db 70 ; DUGTRIO
- db 40 ; MEOWTH
- db 65 ; PERSIAN
- db 50 ; PSYDUCK
- db 80 ; GOLDUCK
- db 35 ; MANKEY
- db 60 ; PRIMEAPE
- db 50 ; GROWLITHE
- db 80 ; ARCANINE
- db 40 ; POLIWAG
- db 50 ; POLIWHIRL
- db 70 ; POLIWRATH
- db 105 ; ABRA
- db 120 ; KADABRA
- db 135 ; ALAKAZAM
- db 35 ; MACHOP
- db 50 ; MACHOKE
- db 65 ; MACHAMP
- db 70 ; BELLSPROUT
- db 85 ; WEEPINBELL
- db 100 ; VICTREEBEL
- db 100 ; TENTACOOL
- db 120 ; TENTACRUEL
- db 30 ; GEODUDE
- db 45 ; GRAVELER
- db 55 ; GOLEM
- db 65 ; PONYTA
- db 80 ; RAPIDASH
- db 40 ; SLOWPOKE
- db 80 ; SLOWBRO
- db 95 ; MAGNEMITE
- db 120 ; MAGNETON
- db 58 ; FARFETCH_D
- db 35 ; DODUO
- db 60 ; DODRIO
- db 70 ; SEEL
- db 95 ; DEWGONG
- db 40 ; GRIMER
- db 65 ; MUK
- db 45 ; SHELLDER
- db 85 ; CLOYSTER
- db 100 ; GASTLY
- db 115 ; HAUNTER
- db 130 ; GENGAR
- db 30 ; ONIX
- db 90 ; DROWZEE
- db 115 ; HYPNO
- db 25 ; KRABBY
- db 50 ; KINGLER
- db 55 ; VOLTORB
- db 80 ; ELECTRODE
- db 60 ; EXEGGCUTE
- db 125 ; EXEGGUTOR
- db 40 ; CUBONE
- db 50 ; MAROWAK
- db 35 ; HITMONLEE
- db 35 ; HITMONCHAN
- db 60 ; LICKITUNG
- db 60 ; KOFFING
- db 85 ; WEEZING
- db 30 ; RHYHORN
- db 45 ; RHYDON
- db 105 ; CHANSEY
- db 100 ; TANGELA
- db 40 ; KANGASKHAN
- db 70 ; HORSEA
- db 95 ; SEADRA
- db 50 ; GOLDEEN
- db 80 ; SEAKING
- db 70 ; STARYU
- db 100 ; STARMIE
- db 100 ; MR__MIME
- db 55 ; SCYTHER
- db 95 ; JYNX
- db 85 ; ELECTABUZZ
- db 85 ; MAGMAR
- db 55 ; PINSIR
- db 70 ; TAUROS
- db 20 ; MAGIKARP
- db 100 ; GYARADOS
- db 95 ; LAPRAS
- db 48 ; DITTO
- db 65 ; EEVEE
- db 110 ; VAPOREON
- db 110 ; JOLTEON
- db 110 ; FLAREON
- db 75 ; PORYGON
- db 90 ; OMANYTE
- db 115 ; OMASTAR
- db 45 ; KABUTO
- db 70 ; KABUTOPS
- db 60 ; AERODACTYL
- db 65 ; SNORLAX
- db 125 ; ARTICUNO
- db 125 ; ZAPDOS
- db 125 ; MOLTRES
- db 50 ; DRATINI
- db 70 ; DRAGONAIR
- db 100 ; DRAGONITE
- db 154 ; MEWTWO
- db 100 ; MEW
-; fb6ed
-
-
-INCLUDE "event/name_rater.asm"
-
-
-PlaySlowCry: ; fb841
- ld a, [ScriptVar]
- call LoadCryHeader
- jr c, .done
-
- ld hl, CryPitch
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld bc, -$140
- add hl, bc
- ld a, l
- ld [CryPitch], a
- ld a, h
- ld [CryPitch + 1], a
- ld hl, CryLength
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld bc, $60
- add hl, bc
- ld a, l
- ld [CryLength], a
- ld a, h
- ld [CryLength + 1], a
- callba _PlayCryHeader
- call WaitSFX
-
-.done
- ret
-; fb877
-
-Functionfb877: ; fb877
- ld a, [hMapAnims]
- push af
- xor a
- ld [hMapAnims], a
- call LowVolume
- call ClearBGPalettes
- call ClearTileMap
- call UpdateSprites
- call ClearSprites
- ld a, [wPokedexStatus]
- push af
- ld a, [hSCX]
- add $5
- ld [hSCX], a
- xor a
- ld [wPokedexStatus], a
- callba Function41a7f
- call WaitPressAorB_BlinkCursor
- ld a, $1
- ld [wPokedexStatus], a
- callba Function4424d
- call WaitPressAorB_BlinkCursor
- pop af
- ld [wPokedexStatus], a
- call MaxVolume
- call FadeToWhite
- ld a, [hSCX]
- add $fb
- ld [hSCX], a
- call Functionfb8c8
- pop af
- ld [hMapAnims], a
- ret
-; fb8c8
-
-Functionfb8c8: ; fb8c8
- call ClearTileMap
- call LoadFontsExtra
- call LoadStandardFont
- callba Function40ab2
- call Function3200
- callba GetEnemyMonDVs
- ld a, [hli]
- ld [TempMonDVs], a
- ld a, [hl]
- ld [TempMonDVs + 1], a
- ld b, $1c
- call GetSGBLayout
- call SetPalettes
- ret
-; fb8f1
-
-ConvertMon_2to1: ; fb8f1
-; Takes the Gen-2 Pokemon number stored in wd265, finds it in the Pokered_MonIndices table, and returns its index in wd265.
- push bc
- push hl
- ld a, [wd265]
- ld b, a
- ld c, 0
- ld hl, Pokered_MonIndices
-.loop
- inc c
- ld a, [hli]
- cp b
- jr nz, .loop
- ld a, c
- ld [wd265], a
- pop hl
- pop bc
- ret
-; fb908
-
-ConvertMon_1to2: ; fb908
-; Takes the Gen-1 Pokemon number stored in wd265 and returns the corresponding value from Pokered_MonIndices in wd265.
- push bc
- push hl
- ld a, [wd265]
- dec a
- ld hl, Pokered_MonIndices
- ld b, 0
- ld c, a
- add hl, bc
- ld a, [hl]
- ld [wd265], a
- pop hl
- pop bc
- ret
-; fb91c
-
-Pokered_MonIndices: ; fb91c
- db RHYDON
- db KANGASKHAN
- db NIDORAN_M
- db CLEFAIRY
- db SPEAROW
- db VOLTORB
- db NIDOKING
- db SLOWBRO
- db IVYSAUR
- db EXEGGUTOR
- db LICKITUNG
- db EXEGGCUTE
- db GRIMER
- db GENGAR
- db NIDORAN_F
- db NIDOQUEEN
- db CUBONE
- db RHYHORN
- db LAPRAS
- db ARCANINE
- db MEW
- db GYARADOS
- db SHELLDER
- db TENTACOOL
- db GASTLY
- db SCYTHER
- db STARYU
- db BLASTOISE
- db PINSIR
- db TANGELA
- db SCIZOR
- db SHUCKLE
- db GROWLITHE
- db ONIX
- db FEAROW
- db PIDGEY
- db SLOWPOKE
- db KADABRA
- db GRAVELER
- db CHANSEY
- db MACHOKE
- db MR__MIME
- db HITMONLEE
- db HITMONCHAN
- db ARBOK
- db PARASECT
- db PSYDUCK
- db DROWZEE
- db GOLEM
- db HERACROSS
- db MAGMAR
- db HO_OH
- db ELECTABUZZ
- db MAGNETON
- db KOFFING
- db SNEASEL
- db MANKEY
- db SEEL
- db DIGLETT
- db TAUROS
- db TEDDIURSA
- db URSARING
- db SLUGMA
- db FARFETCH_D
- db VENONAT
- db DRAGONITE
- db MAGCARGO
- db SWINUB
- db PILOSWINE
- db DODUO
- db POLIWAG
- db JYNX
- db MOLTRES
- db ARTICUNO
- db ZAPDOS
- db DITTO
- db MEOWTH
- db KRABBY
- db CORSOLA
- db REMORAID
- db OCTILLERY
- db VULPIX
- db NINETALES
- db PIKACHU
- db RAICHU
- db DELIBIRD
- db MANTINE
- db DRATINI
- db DRAGONAIR
- db KABUTO
- db KABUTOPS
- db HORSEA
- db SEADRA
- db SKARMORY
- db HOUNDOUR
- db SANDSHREW
- db SANDSLASH
- db OMANYTE
- db OMASTAR
- db JIGGLYPUFF
- db WIGGLYTUFF
- db EEVEE
- db FLAREON
- db JOLTEON
- db VAPOREON
- db MACHOP
- db ZUBAT
- db EKANS
- db PARAS
- db POLIWHIRL
- db POLIWRATH
- db WEEDLE
- db KAKUNA
- db BEEDRILL
- db HOUNDOOM
- db DODRIO
- db PRIMEAPE
- db DUGTRIO
- db VENOMOTH
- db DEWGONG
- db KINGDRA
- db PHANPY
- db CATERPIE
- db METAPOD
- db BUTTERFREE
- db MACHAMP
- db DONPHAN
- db GOLDUCK
- db HYPNO
- db GOLBAT
- db MEWTWO
- db SNORLAX
- db MAGIKARP
- db PORYGON2
- db STANTLER
- db MUK
- db SMEARGLE
- db KINGLER
- db CLOYSTER
- db TYROGUE
- db ELECTRODE
- db CLEFABLE
- db WEEZING
- db PERSIAN
- db MAROWAK
- db HITMONTOP
- db HAUNTER
- db ABRA
- db ALAKAZAM
- db PIDGEOTTO
- db PIDGEOT
- db STARMIE
- db BULBASAUR
- db VENUSAUR
- db TENTACRUEL
- db SMOOCHUM
- db GOLDEEN
- db SEAKING
- db ELEKID
- db MAGBY
- db MILTANK
- db BLISSEY
- db PONYTA
- db RAPIDASH
- db RATTATA
- db RATICATE
- db NIDORINO
- db NIDORINA
- db GEODUDE
- db PORYGON
- db AERODACTYL
- db RAIKOU
- db MAGNEMITE
- db ENTEI
- db SUICUNE
- db CHARMANDER
- db SQUIRTLE
- db CHARMELEON
- db WARTORTLE
- db CHARIZARD
- db LARVITAR
- db PUPITAR
- db TYRANITAR
- db LUGIA
- db ODDISH
- db GLOOM
- db VILEPLUME
- db BELLSPROUT
- db WEEPINBELL
- db VICTREEBEL
- db CHIKORITA
- db BAYLEEF
- db MEGANIUM
- db CYNDAQUIL
- db QUILAVA
- db TYPHLOSION
- db TOTODILE
- db CROCONAW
- db FERALIGATR
- db SENTRET
- db FURRET
- db HOOTHOOT
- db NOCTOWL
- db LEDYBA
- db LEDIAN
- db SPINARAK
- db ARIADOS
- db CROBAT
- db CHINCHOU
- db LANTURN
- db PICHU
- db CLEFFA
- db IGGLYBUFF
- db TOGEPI
- db TOGETIC
- db NATU
- db XATU
- db MAREEP
- db FLAAFFY
- db AMPHAROS
- db BELLOSSOM
- db MARILL
- db AZUMARILL
- db SUDOWOODO
- db POLITOED
- db HOPPIP
- db SKIPLOOM
- db JUMPLUFF
- db AIPOM
- db SUNKERN
- db SUNFLORA
- db YANMA
- db WOOPER
- db QUAGSIRE
- db ESPEON
- db UMBREON
- db MURKROW
- db SLOWKING
- db MISDREAVUS
- db UNOWN
- db WOBBUFFET
- db GIRAFARIG
- db PINECO
- db FORRETRESS
- db DUNSPARCE
- db GLIGAR
- db STEELIX
- db SNUBBULL
- db GRANBULL
- db QWILFISH
- db WOBBUFFET
- db WOBBUFFET
-; fba18
-
-
-Functionfba18: ; fba18
+UpdateUnownDex: ; fba18
ld a, [UnownLetter]
ld c, a
ld b, 26
ld hl, UnownDex
-.asm_fba21
+.loop
ld a, [hli]
and a
- jr z, .asm_fba2b
+ jr z, .done
cp c
ret z
dec b
- jr nz, .asm_fba21
+ jr nz, .loop
ret
-.asm_fba2b
+.done
dec hl
ld [hl], c
ret
@@ -51642,8 +23140,8 @@
Functionfba2e: ; fba2e (3e:7a2e)
hlcoord 4, 15
- ld bc, $c
- ld a, $7f
+ ld bc, 12
+ ld a, " "
call ByteFill
ld a, [wc7dd]
ld e, a
@@ -51748,915 +23246,10 @@
INCLUDE "tilesets/animations.asm"
+INCLUDE "engine/npctrade.asm"
-; Trade struct
-TRADE_DIALOG EQU 0
-TRADE_GIVEMON EQU 1
-TRADE_GETMON EQU 2
-TRADE_NICK EQU 3
-TRADE_DVS EQU 14
-TRADE_ITEM EQU 16
-TRADE_OT_ID EQU 17
-TRADE_OT_NAME EQU 19
-TRADE_GENDER EQU 30
-TRADE_PADDING EQU 31
+INCLUDE "event/mom_phone.asm"
-; Trade dialogs
-TRADE_INTRO EQU 0
-TRADE_CANCEL EQU 1
-TRADE_WRONG EQU 2
-TRADE_COMPLETE EQU 3
-TRADE_AFTER EQU 4
-
-NPCTrade:: ; fcba8
- ld a, e
- ld [wJumptableIndex], a
- call Functionfcc59
- ld b, CHECK_FLAG
- call TradeFlagAction
- ld a, TRADE_AFTER
- jr nz, .done
-
- ld a, TRADE_INTRO
- call PrintTradeText
-
- call YesNoBox
- ld a, TRADE_CANCEL
- jr c, .done
-
-; Select givemon from party
- ld b, 6
- callba Function5001d
- ld a, TRADE_CANCEL
- jr c, .done
-
- ld e, TRADE_GIVEMON
- call GetTradeAttribute
- ld a, [CurPartySpecies]
- cp [hl]
- ld a, TRADE_WRONG
- jr nz, .done
-
- call CheckTradeGender
- ld a, TRADE_WRONG
- jr c, .done
-
- ld b, SET_FLAG
- call TradeFlagAction
-
- ld hl, ConnectLinkCableText
- call PrintText
-
- call Functionfcc63
- call Functionfcc07
- call GetTradeMonNames
-
- ld hl, TradedForText
- call PrintText
-
- call RestartMapMusic
-
- ld a, TRADE_COMPLETE
-
-.done
- call PrintTradeText
- ret
-; fcc07
-
-Functionfcc07: ; fcc07
- call DisableSpriteUpdates
- ld a, [wJumptableIndex]
- push af
- ld a, [wcf64]
- push af
- predef Function28f24
- pop af
- ld [wcf64], a
- pop af
- ld [wJumptableIndex], a
- call Function2b74
- ret
-; fcc23
-
-CheckTradeGender: ; fcc23
- xor a
- ld [MonType], a
-
- ld e, TRADE_GENDER
- call GetTradeAttribute
- ld a, [hl]
- and a
- jr z, .asm_fcc46
- cp 1
- jr z, .asm_fcc3e
-
- callba GetGender
- jr nz, .asm_fcc48
- jr .asm_fcc46
-
-.asm_fcc3e
- callba GetGender
- jr z, .asm_fcc48
-
-.asm_fcc46
- and a
- ret
-
-.asm_fcc48
- scf
- ret
-; fcc4a
-
-TradeFlagAction: ; fcc4a
- ld hl, wd960
- ld a, [wJumptableIndex]
- ld c, a
- predef FlagPredef
- ld a, c
- and a
- ret
-; fcc59
-
-Functionfcc59: ; fcc59
- ld e, TRADE_DIALOG
- call GetTradeAttribute
- ld a, [hl]
- ld [wcf64], a
- ret
-; fcc63
-
-Functionfcc63: ; fcc63
- ld e, TRADE_GIVEMON
- call GetTradeAttribute
- ld a, [hl]
- ld [wc6d0], a
-
- ld e, TRADE_GETMON
- call GetTradeAttribute
- ld a, [hl]
- ld [wc702], a
-
- ld a, [wc6d0]
- ld de, wc6d1
- call Functionfcde8
- call Functionfcdf4
-
- ld a, [wc702]
- ld de, wc703
- call Functionfcde8
- call Functionfcdf4
-
- ld hl, PartyMonOT
- ld bc, NAME_LENGTH
- call Functionfcdd7
- ld de, wc6f2
- call Functionfcdf4
-
- ld hl, PlayerName
- ld de, wc6e7
- call Functionfcdf4
-
- ld hl, PartyMon1ID
- ld bc, PARTYMON_STRUCT_LENGTH
- call Functionfcdd7
- ld de, wc6ff
- call Functionfce0f
-
- ld hl, PartyMon1DVs
- ld bc, PARTYMON_STRUCT_LENGTH
- call Functionfcdd7
- ld de, wc6fd
- call Functionfce0f
-
- ld hl, PartyMon1Species
- ld bc, PARTYMON_STRUCT_LENGTH
- call Functionfcdd7
- ld b, h
- ld c, l
- callba GetCaughtGender
- ld a, c
- ld [wc701], a
-
- ld e, TRADE_DIALOG
- call GetTradeAttribute
- ld a, [hl]
- cp TRADE_COMPLETE
- ld a, 1
- jr c, .asm_fcce6
- ld a, 2
-.asm_fcce6
- ld [wEnemyCharging], a
-
- ld hl, PartyMon1Level
- ld bc, PARTYMON_STRUCT_LENGTH
- call Functionfcdd7
- ld a, [hl]
- ld [CurPartyLevel], a
- ld a, [wc702]
- ld [CurPartySpecies], a
- xor a
- ld [MonType], a
- ld [wPokemonWithdrawDepositParameter], a
- callab Functione039
- predef TryAddMonToParty
-
- ld e, TRADE_DIALOG
- call GetTradeAttribute
- ld a, [hl]
- cp TRADE_COMPLETE
- ld b, 0
- jr c, .asm_fcd1c
- ld b, 1
-.asm_fcd1c
- callba SetPartymonCaughtData
-
- ld e, TRADE_NICK
- call GetTradeAttribute
- ld de, wc70e
- call Functionfcdf4
-
- ld hl, PartyMonNicknames
- ld bc, PKMN_NAME_LENGTH
- call Functionfcdde
- ld hl, wc70e
- call Functionfcdf4
-
- ld e, TRADE_OT_NAME
- call GetTradeAttribute
- push hl
- ld de, wc724
- call Functionfcdf4
- pop hl
- ld de, wc719
- call Functionfcdf4
-
- ld hl, PartyMonOT
- ld bc, NAME_LENGTH
- call Functionfcdde
- ld hl, wc724
- call Functionfcdf4
-
- ld e, TRADE_DVS
- call GetTradeAttribute
- ld de, wEnemyTrappingMove
- call Functionfce0f
-
- ld hl, PartyMon1DVs
- ld bc, PARTYMON_STRUCT_LENGTH
- call Functionfcdde
- ld hl, wEnemyTrappingMove
- call Functionfce0f
-
- ld e, TRADE_OT_ID
- call GetTradeAttribute
- ld de, wPlayerCharging
- call Functionfce15
-
- ld hl, PartyMon1ID
- ld bc, PARTYMON_STRUCT_LENGTH
- call Functionfcdde
- ld hl, wEnemyWrapCount
- call Functionfce0f
-
- ld e, TRADE_ITEM
- call GetTradeAttribute
- push hl
- ld hl, PartyMon1Item
- ld bc, PARTYMON_STRUCT_LENGTH
- call Functionfcdde
- pop hl
- ld a, [hl]
- ld [de], a
-
- push af
- push bc
- push de
- push hl
- ld a, [CurPartyMon]
- push af
- ld a, [PartyCount]
- dec a
- ld [CurPartyMon], a
- callba Functione134
- pop af
- ld [CurPartyMon], a
- pop hl
- pop de
- pop bc
- pop af
- ret
-; fcdc2
-
-
-GetTradeAttribute: ; 0xfcdc2
- ld d, 0
- push de
- ld a, [wJumptableIndex]
- and $f
- swap a
- ld e, a
- ld d, 0
- ld hl, NPCTrades
-rept 2
- add hl, de
-endr
- pop de
- add hl, de
- ret
-; 0xfcdd7
-
-Functionfcdd7: ; fcdd7
- ld a, [CurPartyMon]
- call AddNTimes
- ret
-; fcdde
-
-Functionfcdde: ; fcdde
- ld a, [PartyCount]
- dec a
- call AddNTimes
- ld e, l
- ld d, h
- ret
-; fcde8
-
-Functionfcde8: ; fcde8
- push de
- ld [wd265], a
- call GetBasePokemonName
- ld hl, StringBuffer1
- pop de
- ret
-; fcdf4
-
-Functionfcdf4: ; fcdf4
- ld bc, NAME_LENGTH
- call CopyBytes
- ret
-; fcdfb
-
-Functionfcdfb: ; fcdfb
- ld bc, 4
- call CopyBytes
- ld a, $50
- ld [de], a
- ret
-; fce05
-
-Functionfce05: ; fce05
- ld bc, 3
- call CopyBytes
- ld a, $50
- ld [de], a
- ret
-; fce0f
-
-Functionfce0f: ; fce0f
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- ret
-; fce15
-
-Functionfce15: ; fce15
- ld a, [hli]
- ld [de], a
- dec de
- ld a, [hl]
- ld [de], a
- ret
-; fce1b
-
-GetTradeMonNames: ; fce1b
- ld e, TRADE_GETMON
- call GetTradeAttribute
- ld a, [hl]
- call Functionfcde8
-
- ld de, StringBuffer2
- call Functionfcdf4
-
- ld e, TRADE_GIVEMON
- call GetTradeAttribute
- ld a, [hl]
- call Functionfcde8
-
- ld de, wd050
- call Functionfcdf4
-
- ld hl, StringBuffer1
-.loop
- ld a, [hli]
- cp "@"
- jr nz, .loop
-
- dec hl
- push hl
- ld e, TRADE_GENDER
- call GetTradeAttribute
- ld a, [hl]
- pop hl
- and a
- ret z
-
- cp 1
- ld a, "♂"
- jr z, .done
- ld a, "♀"
-.done
- ld [hli], a
- ld [hl], "@"
- ret
-; fce58
-
-
-NPCTrades: ; fce58
- db 0, ABRA, MACHOP, "MUSCLE@@@@@", $37, $66, GOLD_BERRY, $54, $92, "MIKE@@@@@@@", 0, 0
- db 0, BELLSPROUT, ONIX, "ROCKY@@@@@@", $96, $66, BITTER_BERRY, $1e, $bf, "KYLE@@@@@@@", 0, 0
- db 1, KRABBY, VOLTORB, "VOLTY@@@@@@", $98, $88, PRZCUREBERRY, $05, $72, "TIM@@@@@@@@", 0, 0
- db 3, DRAGONAIR, DODRIO, "DORIS@@@@@@", $77, $66, SMOKE_BALL, $1b, $01, "EMY@@@@@@@@", 2, 0
- db 2, HAUNTER, XATU, "PAUL@@@@@@@", $96, $86, MYSTERYBERRY, $00, $3d, "CHRIS@@@@@@", 0, 0
- db 3, CHANSEY, AERODACTYL, "AEROY@@@@@@", $96, $66, GOLD_BERRY, $7b, $67, "KIM@@@@@@@@", 0, 0
- db 0, DUGTRIO, MAGNETON, "MAGGIE@@@@@", $96, $66, METAL_COAT, $a2, $c3, "FOREST@@@@@", 0, 0
-; fcf38
-
-
-PrintTradeText: ; fcf38
- push af
- call GetTradeMonNames
- pop af
- ld bc, 2 * 4
- ld hl, TradeTexts
- call AddNTimes
- ld a, [wcf64]
- ld c, a
-rept 2
- add hl, bc
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call PrintText
- ret
-; fcf53
-
-TradeTexts: ; fcf53
-; intro
- dw TradeIntroText1
- dw TradeIntroText2
- dw TradeIntroText3
- dw TradeIntroText4
-
-; cancel
- dw TradeCancelText1
- dw TradeCancelText2
- dw TradeCancelText3
- dw TradeCancelText4
-
-; wrong mon
- dw TradeWrongText1
- dw TradeWrongText2
- dw TradeWrongText3
- dw TradeWrongText4
-
-; completed
- dw TradeCompleteText1
- dw TradeCompleteText2
- dw TradeCompleteText3
- dw TradeCompleteText4
-
-; after
- dw TradeAfterText1
- dw TradeAfterText2
- dw TradeAfterText3
- dw TradeAfterText4
-; fcf7b
-
-
-ConnectLinkCableText: ; 0xfcf7b
- ; OK, connect the Game Link Cable.
- text_jump UnknownText_0x1bd407
- db "@"
-; 0xfcf80
-
-
-TradedForText: ; 0xfcf80
- ; traded givemon for getmon
- text_jump UnknownText_0x1bd429
- start_asm
-
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- ld hl, .done
- ret
-
-.done
- ; sound0x0A
- ; interpret_data
- text_jump UnknownText_0x1bd445
- db "@"
-; 0xfcf97
-
-
-TradeIntroText1: ; 0xfcf97
- ; I collect #MON. Do you have @ ? Want to trade it for my @ ?
- text_jump UnknownText_0x1bd449
- db "@"
-; 0xfcf9c
-
-TradeCancelText1: ; 0xfcf9c
- ; You don't want to trade? Aww…
- text_jump UnknownText_0x1bd48c
- db "@"
-; 0xfcfa1
-
-TradeWrongText1: ; 0xfcfa1
- ; Huh? That's not @ . What a letdown…
- text_jump UnknownText_0x1bd4aa
- db "@"
-; 0xfcfa6
-
-TradeCompleteText1: ; 0xfcfa6
- ; Yay! I got myself @ ! Thanks!
- text_jump UnknownText_0x1bd4d2
- db "@"
-; 0xfcfab
-
-TradeAfterText1: ; 0xfcfab
- ; Hi, how's my old @ doing?
- text_jump UnknownText_0x1bd4f4
- db "@"
-; 0xfcfb0
-
-
-TradeIntroText2:
-TradeIntroText3: ; 0xfcfb0
- ; Hi, I'm looking for this #MON. If you have @ , would you trade it for my @ ?
- text_jump UnknownText_0x1bd512
- db "@"
-; 0xfcfb5
-
-TradeCancelText2:
-TradeCancelText3: ; 0xfcfb5
- ; You don't have one either? Gee, that's really disappointing…
- text_jump UnknownText_0x1bd565
- db "@"
-; 0xfcfba
-
-TradeWrongText2:
-TradeWrongText3: ; 0xfcfba
- ; You don't have @ ? That's too bad, then.
- text_jump UnknownText_0x1bd5a1
- db "@"
-; 0xfcfbf
-
-TradeCompleteText2: ; 0xfcfbf
- ; Great! Thank you! I finally got @ .
- text_jump UnknownText_0x1bd5cc
- db "@"
-; 0xfcfc4
-
-TradeAfterText2: ; 0xfcfc4
- ; Hi! The @ you traded me is doing great!
- text_jump UnknownText_0x1bd5f4
- db "@"
-; 0xfcfc9
-
-
-TradeIntroText4: ; 0xfcfc9
- ; 's cute, but I don't have it. Do you have @ ? Want to trade it for my @ ?
- text_jump UnknownText_0x1bd621
- db "@"
-; 0xfcfce
-
-TradeCancelText4: ; 0xfcfce
- ; You don't want to trade? Oh, darn…
- text_jump UnknownText_0x1bd673
- db "@"
-; 0xfcfd3
-
-TradeWrongText4: ; 0xfcfd3
- ; That's not @ . Please trade with me if you get one.
- text_jump UnknownText_0x1bd696
- db "@"
-; 0xfcfd8
-
-TradeCompleteText4: ; 0xfcfd8
- ; Wow! Thank you! I always wanted @ !
- text_jump UnknownText_0x1bd6cd
- db "@"
-; 0xfcfdd
-
-TradeAfterText4: ; 0xfcfdd
- ; How is that @ I traded you doing? Your @ 's so cute!
- text_jump UnknownText_0x1bd6f5
- db "@"
-; 0xfcfe2
-
-
-TradeCompleteText3: ; 0xfcfe2
- ; Uh? What happened?
- text_jump UnknownText_0x1bd731
- db "@"
-; 0xfcfe7
-
-TradeAfterText3: ; 0xfcfe7
- ; Trading is so odd… I still have a lot to learn about it.
- text_jump UnknownText_0x1bd745
- db "@"
-; 0xfcfec
-
-
-MomTriesToBuySomething:: ; fcfec
- ld a, [wMapReentryScriptQueueFlag]
- and a
- ret nz
- call GetMapHeaderPhoneServiceNybble
- and a
- ret nz
- xor a
- ld [wdc18], a
- call CheckBalance_MomItem2
- ret nc
- call Functionfd0c3
- ret nc
- ld b, BANK(UnknownScript_0xfd00f)
- ld de, UnknownScript_0xfd00f
- callba LoadScriptBDE
- scf
- ret
-; fd00f
-
-UnknownScript_0xfd00f: ; 0xfd00f
- callasm Functionfd017
- farjump Script_ReceivePhoneCall
-; 0xfd017
-
-Functionfd017: ; fd017
- call MomBuysItem_DeductFunds
- call Functionfd0eb
- ld a, [wdc18]
- and a
- jr nz, .ok
- ld hl, wdc17
- inc [hl]
-.ok
- ld a, 1
- ld [wCurrentCaller], a
- ld bc, wd03f
- ld hl, 0
- add hl, bc
- ld [hl], 0
- inc hl
- ld [hl], 1
- ld hl, 9
- add hl, bc
- ld a, $3f
- ld [hli], a
- ld a, e
- ld [hli], a
- ld a, d
- ld [hl], a
- ret
-; fd044
-
-CheckBalance_MomItem2: ; fd044
- ld a, [wdc17]
- cp 10
- jr nc, .nope
- call GetItemFromMom
- ld a, [hli]
- ld [hMoneyTemp], a
- ld a, [hli]
- ld [hMoneyTemp + 1], a
- ld a, [hli]
- ld [hMoneyTemp + 2], a
- ld de, wMomsMoney
- ld bc, hMoneyTemp
- callba CompareMoney
- jr nc, .have_enough_money
-
-.nope
- jr .check_have_2300
-
-.have_enough_money
- scf
- ret
-
-.check_have_2300
- ld hl, hMoneyTemp
- ld [hl], (2300 / $10000) ; $00
- inc hl
- ld [hl], ((2300 % $10000) / $100) ; $08
- inc hl
- ld [hl], (2300 % $100) ; $fc
-.loop
- ld de, wdc19
- ld bc, wMomsMoney
- callba CompareMoney
- jr z, .exact
- jr nc, .less_than
- call Functionfd099
- jr .loop
-
-.less_than
- xor a
- ret
-
-.exact
- call Functionfd099
- ld a, 5
- call RandomRange
- inc a
- ld [wdc18], a
- scf
- ret
-; fd099
-
-Functionfd099: ; fd099
- ld de, wdc19
- ld bc, hMoneyTemp
- callba AddMoney
- ret
-; fd0a6
-
-
-MomBuysItem_DeductFunds: ; fd0a6 (3f:50a6)
- call GetItemFromMom
- ld de, 3
- add hl, de
- ld a, [hli]
- ld [hMoneyTemp], a
- ld a, [hli]
- ld [hMoneyTemp + 1], a
- ld a, [hli]
- ld [hMoneyTemp + 2], a
- ld de, wMomsMoney
- ld bc, hMoneyTemp
- callba TakeMoney
- ret
-
-
-Functionfd0c3: ; fd0c3
- call GetItemFromMom
- ld de, 6
- add hl, de
- ld a, [hli]
- cp 1
- jr z, .not_doll
- ld a, [hl]
- ld c, a
- ld b, 1
- callba DecorationFlagAction_c
- scf
- ret
-
-.not_doll
- ld a, [hl]
- ld [CurItem], a
- ld a, $1
- ld [wItemQuantityChangeBuffer], a
- ld hl, PCItems
- call ReceiveItem
- ret
-; fd0eb
-
-
-Functionfd0eb: ; fd0eb (3f:50eb)
- call GetItemFromMom
- ld de, 6 ; field
- add hl, de
- ld a, [hli]
- ld de, Script_MomBoughtItem
- cp 1
- ret z
- ld de, Script_MomBoughtDoll
- ret
-; fd0fd (3f:50fd)
-
-Script_MomBoughtItem: ; 0xfd0fd
- writetext _MomText_HiHowAreYou
- writetext _MomText_FoundAnItem
- writetext _MomText_BoughtWithYourMoney
- writetext _MomText_ItsInPC
- end
-; 0xfd10a
-
-Script_MomBoughtDoll: ; 0xfd10a
- writetext _MomText_HiHowAreYou
- writetext _MomText_FoundADoll
- writetext _MomText_BoughtWithYourMoney
- writetext _MomText_ItsInRoom
- end
-; 0xfd117
-
-
-GetItemFromMom: ; fd117
- ld a, [wdc18]
- and a
- jr z, .zero
- dec a
- ld de, MomItems_1
- jr .incave
-
-.zero
- ld a, [wdc17]
- cp 10 ; length of MomItems_2
- jr c, .ok
- xor a
-
-.ok
- ld de, MomItems_2
-
-.incave
- ld l, a
- ld h, 0
-rept 3 ; multiply hl by 8
- add hl, hl
-endr
- add hl, de
- ret
-; fd136
-
-momitem: macro
-; money to trigger, cost, kind, item
- dt \1
- dt \2
- db \3, \4
-ENDM
-
-
-MomItems_1: ; fd136
- momitem 0, 600, MOM_ITEM, SUPER_POTION
- momitem 0, 90, MOM_ITEM, ANTIDOTE
- momitem 0, 180, MOM_ITEM, POKE_BALL
- momitem 0, 450, MOM_ITEM, ESCAPE_ROPE
- momitem 0, 500, MOM_ITEM, GREAT_BALL
-; fd15e
-
-MomItems_2: ; fd15e
- momitem 900, 600, MOM_ITEM, SUPER_POTION
- momitem 4000, 270, MOM_ITEM, REPEL
- momitem 7000, 600, MOM_ITEM, SUPER_POTION
- momitem 10000, 1800, MOM_DOLL, DECO_CHARMANDER_DOLL
- momitem 15000, 3000, MOM_ITEM, MOON_STONE
- momitem 19000, 600, MOM_ITEM, SUPER_POTION
- momitem 30000, 4800, MOM_DOLL, DECO_CLEFAIRY_DOLL
- momitem 40000, 900, MOM_ITEM, HYPER_POTION
- momitem 50000, 8000, MOM_DOLL, DECO_PIKACHU_DOLL
- momitem 100000, 22800, MOM_DOLL, DECO_BIG_SNORLAX_DOLL
-; fd1ae
-
- db 0, 0, 0 ; XXX
-
-_MomText_HiHowAreYou: ; 0xfd1b1
- ; Hi, ! How are you?
- text_jump UnknownText_0x1bc615
- db "@"
-; 0xfd1b6
-
-_MomText_FoundAnItem: ; 0xfd1b6
- ; I found a useful item shopping, so
- text_jump UnknownText_0x1bc62a
- db "@"
-; 0xfd1bb
-
-_MomText_BoughtWithYourMoney: ; 0xfd1bb
- ; I bought it with your money. Sorry!
- text_jump UnknownText_0x1bc64e
- db "@"
-; 0xfd1c0
-
-_MomText_ItsInPC: ; 0xfd1c0
- ; It's in your PC. You'll like it!
- text_jump UnknownText_0x1bc673
- db "@"
-; 0xfd1c5
-
-_MomText_FoundADoll: ; 0xfd1c5
- ; While shopping today, I saw this adorable doll, so
- text_jump UnknownText_0x1bc693
- db "@"
-; 0xfd1ca
-
-_MomText_ItsInRoom: ; 0xfd1ca
- ; It's in your room. You'll love it!
- text_jump UnknownText_0x1bc6c7
- db "@"
-; 0xfd1cf
-
- db 0 ; XXX
-
-Functionfd1d0: ; fd1d0
- ret
-; fd1d1
-
- ret ; XXX
-
-
INCLUDE "misc/mobile_40.asm"
@@ -52717,7 +23310,7 @@
ret
; 104061
-Function104061:: ; 104061
+ReloadMapPart:: ; 104061
ld hl, Function104067
jp Function104177
; 104067
@@ -52747,7 +23340,7 @@
ret
Function104099: ; 104099
- ld hl, Function104061
+ ld hl, ReloadMapPart ; useless
ld hl, Function1040a2
jp Function104177
; 1040a2
@@ -53221,48 +23814,48 @@
ld [rVBK], a
ld c, $8
ld hl, w6_d000 + $80
- ld de, VBGMap1 tile $00
+ debgcoord 0, 0, VBGMap1
call Function104209
ld a, $0
ld [rVBK], a
ld c, $8
ld hl, w6_d000
- ld de, VBGMap1 tile $00
+ debgcoord 0, 0, VBGMap1
call Function104209
ret
Function10433a: ; 10433a (41:433a)
- ld b, $4
-.asm_10433c
- ld c, $14
-.asm_10433e
+ ld b, 4
+.outer_loop
+ ld c, 20
+.inner_loop
ld a, [de]
ld [hli], a
inc de
dec c
- jr nz, .asm_10433e
+ jr nz, .inner_loop
ld a, l
- add $c
+ add $20 - 20
ld l, a
ld a, h
adc $0
ld h, a
dec b
- jr nz, .asm_10433c
+ jr nz, .outer_loop
ret
; 104350
-ShockEmote: INCBIN "gfx/emotes/shock.2bpp"
-QuestionEmote: INCBIN "gfx/emotes/question.2bpp"
-HappyEmote: INCBIN "gfx/emotes/happy.2bpp"
-SadEmote: INCBIN "gfx/emotes/sad.2bpp"
-HeartEmote: INCBIN "gfx/emotes/heart.2bpp"
-BoltEmote: INCBIN "gfx/emotes/bolt.2bpp"
-SleepEmote: INCBIN "gfx/emotes/sleep.2bpp"
-FishEmote: INCBIN "gfx/emotes/fish.2bpp"
-FishingRodGFX1: INCBIN "gfx/misc/fishing1.2bpp"
+ShockEmote: INCBIN "gfx/emotes/shock.2bpp"
+QuestionEmote: INCBIN "gfx/emotes/question.2bpp"
+HappyEmote: INCBIN "gfx/emotes/happy.2bpp"
+SadEmote: INCBIN "gfx/emotes/sad.2bpp"
+HeartEmote: INCBIN "gfx/emotes/heart.2bpp"
+BoltEmote: INCBIN "gfx/emotes/bolt.2bpp"
+SleepEmote: INCBIN "gfx/emotes/sleep.2bpp"
+FishEmote: INCBIN "gfx/emotes/fish.2bpp"
+JumpShadowGFX: INCBIN "gfx/misc/shadow.2bpp"
FishingRodGFX2: INCBIN "gfx/misc/fishing2.2bpp"
-FishingRodGFX3: INCBIN "gfx/misc/fishing3.2bpp"
+BoulderDustGFX: INCBIN "gfx/misc/boulderdust.2bpp"
FishingRodGFX4: INCBIN "gfx/misc/fishing4.2bpp"
@@ -53276,7 +23869,7 @@
call RunMapCallback
RunCallback_03: ; 1045c4
- callba Function97df9
+ callba ClearCmdQueue
ld a, $3
call RunMapCallback
call GetMapHeaderTimeOfDayNybble
@@ -53286,7 +23879,7 @@
EnterMapConnection: ; 1045d6
; Return carry if a connection has been entered.
- ld a, [wd151]
+ ld a, [wPlayerStepDirection]
and a
jp z, EnterSouthConnection
cp 1
@@ -53503,7 +24096,7 @@
ld hl, VramState
res 6, [hl]
ld a, $1
- ld [wc2ce], a
+ ld [wSpriteUpdatesEnabled], a
callba Function8c0e5
callba Function8c001
call OverworldTextModeSwitch
@@ -53512,10 +24105,10 @@
ret
Function104770: ; 104770 (41:4770)
- ld a, $98
- ld [wd153], a
+ ld a, VBGMap0 / $100
+ ld [wBGMapAnchor + 1], a
xor a
- ld [wd152], a
+ ld [wBGMapAnchor], a
ld [hSCY], a
ld [hSCX], a
callba Function5958
@@ -53525,43 +24118,43 @@
ld [rVBK], a
xor a
lb bc, 4, 0
- ld hl, VBGMap0 tile $00
+ hlbgcoord 0, 0
call ByteFill
pop af
ld [rVBK], a
ld a, $60
lb bc, 4, 0
- ld hl, VBGMap0 tile $00
+ hlbgcoord 0, 0
call ByteFill
ret
Function1047a3: ; 1047a3 (41:47a3)
decoord 0, 0
- call Function1047b4
+ call .copy
ld a, [hCGB]
and a
ret z
+
decoord 0, 0, AttrMap
ld a, $1
ld [rVBK], a
-
-Function1047b4: ; 1047b4 (41:47b4)
- ld hl, VBGMap0 tile $00
- ld c, $14
- ld b, $12
-.asm_1047bb
+.copy:
+ hlbgcoord 0, 0
+ ld c, SCREEN_WIDTH
+ ld b, SCREEN_HEIGHT
+.row
push bc
-.asm_1047bc
+.column
ld a, [de]
inc de
ld [hli], a
dec c
- jr nz, .asm_1047bc
- ld bc, $c
+ jr nz, .column
+ ld bc, $20 - SCREEN_WIDTH
add hl, bc
pop bc
dec b
- jr nz, .asm_1047bb
+ jr nz, .row
ld a, $0
ld [rVBK], a
ret
@@ -53568,7 +24161,7 @@
LoadGraphics: ; 1047cf
call LoadTilesetHeader
- call Function2821
+ call LoadTileset
xor a
ld [hMapAnims], a
xor a
@@ -53579,7 +24172,7 @@
ret
LoadMapPalettes: ; 1047eb
- ld b, $9
+ ld b, SCGB_09
jp GetSGBLayout
; 1047f0
@@ -53586,7 +24179,7 @@
RefreshMapSprites: ; 1047f0
call ClearSprites
callba ReturnFromMapSetupScript
- call Function2914
+ call GetMovementPermissions
callba Function579d
callba CheckReplaceKrisSprite
ld hl, wPlayerSpriteSetupFlags
@@ -53602,7 +24195,7 @@
ret
CheckMovingOffEdgeOfMap:: ; 104820 (41:4820)
- ld a, [wd151]
+ ld a, [wPlayerStepDirection]
cp STANDING
ret z
and a ; DOWN
@@ -53617,7 +24210,7 @@
ret
.down
- ld a, [PlayerMapY]
+ ld a, [PlayerNextMapY]
sub 4
ld b, a
ld a, [MapHeight]
@@ -53628,7 +24221,7 @@
ret
.up
- ld a, [PlayerMapY]
+ ld a, [PlayerNextMapY]
sub 4
cp -1
jr z, .ok
@@ -53636,7 +24229,7 @@
ret
.left
- ld a, [PlayerMapX]
+ ld a, [PlayerNextMapX]
sub $4
cp -1
jr z, .ok
@@ -53644,7 +24237,7 @@
ret
.right
- ld a, [PlayerMapX]
+ ld a, [PlayerNextMapX]
sub 4
ld b, a
ld a, [MapWidth]
@@ -53706,2061 +24299,10 @@
ret
; 1048ba
+INCLUDE "engine/mysterygift.asm"
-DoMysteryGift: ; 1048ba (41:48ba)
- call ClearTileMap
- call ClearSprites
- call WaitBGMap
- call Function105153
- hlcoord 3, 8
- ld de, String_1049cd
- call PlaceString
- call WaitBGMap
- callba Function2c642
- call Function1050fb
- ld a, $2
- ld [wca01], a
- ld a, $14
- ld [wca02], a
- ld a, [rIE]
- push af
- call Function104a95
- ld d, a
- xor a
- ld [rIF], a
- pop af
- ld [rIE], a
- push de
- call ClearTileMap
- call EnableLCD
- call WaitBGMap
- ld b, $8
- call GetSGBLayout
- call SetPalettes
- pop de
- hlcoord 2, 8
- ld a, d
- ld de, UnknownText_0x1049fd
- cp $10
- jp z, Function1049af
- cp $6c
- jp nz, Function1049b4
- ld a, [wc900]
- cp $3
- jr z, .asm_10492f
- call Function104a25
- ld hl, UnknownText_0x104a11
- jp nc, Function1049c5
- call Function104a30
- ld hl, UnknownText_0x104a16
- jp c, Function1049c5
-.asm_10492f
- ld a, [wc962]
- and a
- jp nz, Function1049bd
- ld a, [wc912]
- and a
- jp nz, Function1049c2
- ld a, [wc900]
- cp $3
- jr z, .asm_104963
- call Function104a56
- ld a, [wc900]
- cp $4
- jr z, .asm_104963
- call Function104a71
- callba RestoreMobileEventIndex
- callba MobileFn_1060a9
- callba BackupMobileEventIndex
-.asm_104963
- ld a, [wc90f]
- and a
- jr z, .item
- ld a, [wc911]
- ld c, a
- callba MysteryGiftGetDecoration
- push bc
- call Function105069
- pop bc
- jr nz, .item
- callab GetDecorationName_c
- ld h, d
- ld l, e
- ld de, StringBuffer1
- ld bc, ITEM_NAME_LENGTH
- call CopyBytes
- ld hl, UnknownText_0x104a20
- jr Function1049c5
+INCLUDE "battle/used_move_text.asm"
-.item
- call GetMysteryGiftBank
- ld a, [wc910]
- ld c, a
- callba MysteryGiftGetItemHeldEffect
- ld a, c
- ld [s0_abe4], a
- ld [wNamedObjectIndexBuffer], a
- call CloseSRAM
- call GetItemName
- ld hl, UnknownText_0x104a1b
- jr Function1049c5
-
-Function1049af: ; 1049af (41:49af)
- ld hl, UnknownText_0x1049fd
- jr Function1049c5
-
-Function1049b4: ; 1049b4 (41:49b4)
- ld hl, UnknownText_0x104a02
- call PrintText
- jp DoMysteryGift
-
-Function1049bd: ; 1049bd (41:49bd)
- ld hl, UnknownText_0x104a07
- jr Function1049c5
-
-Function1049c2: ; 1049c2 (41:49c2)
- ld hl, UnknownText_0x104a0c
-
-Function1049c5: ; 1049c5 (41:49c5)
- call PrintText
- ld a, $e3
- ld [rLCDC], a
- ret
-; 1049cd (41:49cd)
-
-String_1049cd: ; 1049cd
- db "Press A to"
- next "link IR-Device"
- next "Press B to"
- next "cancel it."
- db "@"
-; 1049fd
-
-UnknownText_0x1049fd: ; 1049fd
- text_jump UnknownText_0x1c0436
- db "@"
-; 104a02
-
-UnknownText_0x104a02: ; 104a02
- text_jump UnknownText_0x1c0454
- db "@"
-; 104a07
-
-UnknownText_0x104a07: ; 104a07
- text_jump UnknownText_0x1c046a
- db "@"
-; 104a0c
-
-UnknownText_0x104a0c: ; 104a0c
- text_jump UnknownText_0x1c048e
- db "@"
-; 104a11
-
-UnknownText_0x104a11: ; 104a11
- text_jump UnknownText_0x1c04a7
- db "@"
-; 104a16
-
-UnknownText_0x104a16: ; 104a16
- text_jump UnknownText_0x1c04c6
- db "@"
-; 104a1b
-
-UnknownText_0x104a1b: ; 104a1b
- text_jump UnknownText_0x1c04e9
- db "@"
-; 104a20
-
-UnknownText_0x104a20: ; 104a20
- text_jump UnknownText_0x1c04fa
- db "@"
-; 104a25
-
-Function104a25: ; 104a25 (41:4a25)
- call GetMysteryGiftBank
- ld a, [s0_abe5]
- cp $5
- jp CloseSRAM
-
-Function104a30: ; 104a30 (41:4a30)
- call GetMysteryGiftBank
- ld a, [wc901]
- ld b, a
- ld a, [wc902]
- ld c, a
- ld a, [s0_abe5]
- ld d, a
- ld hl, s0_abe6
-.asm_104a42
- ld a, d
- and a
- jr z, .asm_104a53
- ld a, [hli]
- cp b
- jr nz, .asm_104a4e
- ld a, [hl]
- cp c
- jr z, .asm_104a52
-.asm_104a4e
- inc hl
- dec d
- jr .asm_104a42
-.asm_104a52
- scf
-.asm_104a53
- jp CloseSRAM
-
-Function104a56: ; 104a56 (41:4a56)
- call GetMysteryGiftBank
- ld hl, s0_abe5
- ld a, [hl]
- inc [hl]
- ld hl, s0_abe6 ; inc hl
- ld e, a
- ld d, $0
-rept 2
- add hl, de
-endr
- ld a, [wc901]
- ld [hli], a
- ld a, [wc902]
- ld [hl], a
- jp CloseSRAM
-
-Function104a71: ; 104a71 (41:4a71)
- call GetMysteryGiftBank
- ld a, $1
- ld [sMysteryGiftTrainerHouseFlag], a
- ld hl, wc903
- ld de, s0_abfe
- ld bc, $b
- call CopyBytes
- ld a, $1
- ld [de], a
- inc de
- ld hl, wc850
- ld bc, $26
- call CopyBytes
- jp CloseSRAM
-
-Function104a95: ; 104a95 (41:4a95)
- di
- callba ClearChannels
- call Function104d5e
-.asm_104a9f
- call Function104d96
- call Function104ddd
- ld a, [hPrintNum10]
- cp $10
- jp z, Function104bd0
- cp $6c
- jr nz, .asm_104a9f
- ld a, [hPrintNum9]
- cp $2
- jr z, Function104b22
- ld hl, $ffb3
- ld b, $1
- call Function104d56
- jr nz, .asm_104ac8
- call Function104b49
- jp nz, Function104bd0
- jr asm_104b0a
-.asm_104ac8
- ld a, [rLY]
- cp $90
- jr c, .asm_104ac8
- ld c, rRP % $100
- ld a, $c0
- ld [$ff00+c], a
- ld b, $f0
-.asm_104ad5
- push bc
- call Function105038
- ld b, $2
- ld c, rRP % $100
-.asm_104add
- ld a, [$ff00+c]
- and b
- ld b, a
- ld a, [rLY]
- cp $90
- jr nc, .asm_104add
-.asm_104ae6
- ld a, [$ff00+c]
- and b
- ld b, a
- ld a, [rLY]
- cp $90
- jr c, .asm_104ae6
- ld a, b
- pop bc
- dec b
- jr z, .asm_104a9f
- or a
- jr nz, .asm_104a9f
- ld a, [hMoneyTemp + 1]
- bit 1, a
- jr z, .asm_104ad5
- ld a, $10
- ld [hPrintNum10], a
- jp Function104bd0
-
-Function104b04: ; 104b04 (41:4b04)
- call Function104b40
- jp nz, Function104bd0
-
-asm_104b0a: ; 104b0a (41:4b0a)
- call Function104d38
- jp nz, Function104bd0
- call Function104b88
- jp nz, Function104bd0
- call Function104d43
- jp nz, Function104bd0
- call Function105033
- jp Function104bd0
-
-Function104b22: ; 104b22 (41:4b22)
- call Function104b88
- jp nz, Function104bd0
- call Function104d43
- jp nz, Function104bd0
- call Function104b40
- jp nz, Function104bd0
- call Function104d38
- jp nz, Function104bd0
- call Function10502e
- jp Function104bd0
-
-Function104b40: ; 104b40 (41:4b40)
- ld hl, $ffb3
- ld b, $1
- call Function104d56
- ret nz
-
-Function104b49: ; 104b49 (41:4b49)
- call Function105033
- ld a, [hPrintNum10]
- cp $6c
- ret nz
- ld a, [$ffb3]
- cp $96
- jp nz, Function104d32
- ld a, $90
- ld [$ffb3], a
- call Function104d38
- ret nz
- ld hl, $ffb3
- ld b, $1
- call Function104d4e
- ret nz
- call Function10502e
- ld a, [hPrintNum10]
- cp $6c
- ret nz
- call Function104d43
- ret nz
- ld hl, wc850
- ld a, [wca02]
- ld b, a
- call Function104d56
- ret nz
- call Function105033
- ld a, [hPrintNum10]
- cp $6c
- ret
-
-Function104b88: ; 104b88 (41:4b88)
- ld a, $96
- ld [$ffb3], a
- ld hl, $ffb3
- ld b, $1
- call Function104d4e
- ret nz
- call Function10502e
- ld a, [hPrintNum10]
- cp $6c
- ret nz
- call Function104d43
- ret nz
- ld hl, $ffb3
- ld b, $1
- call Function104d56
- ret nz
- call Function105033
- ld a, [hPrintNum10]
- cp $6c
- ret nz
- ld a, [$ffb3]
- cp $90
- jp nz, Function104d32
- call Function104d38
- ret nz
- ld hl, OverworldMap
- ld a, [wca02]
- ld b, a
- call Function104d4e
- ret nz
- call Function10502e
- ld a, [hPrintNum10]
- cp $6c
- ret
-
-Function104bd0: ; 104bd0 (41:4bd0)
- nop
- ld a, [hPrintNum10]
- cp $10
- jr z, .asm_104c18
- cp $6c
- jr nz, .asm_104c18
- ld hl, wca01
- dec [hl]
- jr z, .asm_104c18
- ld hl, wc850
- ld de, wc900
- ld bc, $14
- call CopyBytes
- ld a, [wc850]
- cp $3
- jr nc, .asm_104c18
- callba Function10510b
- call Function1050fb
- ld a, $26
- ld [wca02], a
- ld a, [hPrintNum9]
- cp $2
- jr z, .asm_104c10
- call Function104d43
- jr nz, Function104bd0
- jp Function104b04
-.asm_104c10
- call Function104d38
- jr nz, Function104bd0
- jp Function104b22
-.asm_104c18
- ld a, [hPrintNum10]
- push af
- call Function104da0
- xor a
- ld [rIF], a
- ld a, [rIE]
- or $1
- ld [rIE], a
- ei
- call DelayFrame
- pop af
- ret
-
-Function104c2d: ; 104c2d (41:4c2d)
- di
- callba ClearChannels
- call Function104d5e
-.asm_104c37
- call Function104d96
- call Function104ddd
- ld a, [hPrintNum10]
- cp $10
- jp z, Function104d1c
- cp $6c
- jr nz, .asm_104c37
- ld a, [hPrintNum9]
- cp $2
- jr z, .asm_104c6c
- call Function104c8a
- jp nz, Function104d1c
- call Function104d38
- jp nz, Function104d1c
- call Function104cd2
- jp nz, Function104d1c
- call Function104d43
- jp nz, Function104d1c
- call Function105033
- jp Function104d1c
-.asm_104c6c
- call Function104cd2
- jp nz, Function104d1c
- call Function104d43
- jp nz, Function104d1c
- call Function104c8a
- jp nz, Function104d1c
- call Function104d38
- jp nz, Function104d1c
- call Function10502e
- jp Function104d1c
-
-Function104c8a: ; 104c8a (41:4c8a)
- ld hl, $ffb3
- ld b, $1
- call Function104d56
- ret nz
- call Function105033
- ld a, [hPrintNum10]
- cp $6c
- ret nz
- ld a, [$ffb3]
- cp $3c
- jp nz, Function104d32
- swap a
- ld [$ffb3], a
- call Function104d38
- ret nz
- ld hl, $ffb3
- ld b, $1
- call Function104d4e
- ret nz
- call Function10502e
- ld a, [hPrintNum10]
- cp $6c
- ret nz
- call Function104d43
- ret nz
- ld hl, wc850
- ld a, [wca02]
- ld b, a
- call Function104d56
- ret nz
- call Function105033
- ld a, [hPrintNum10]
- cp $6c
- ret
-
-Function104cd2: ; 104cd2 (41:4cd2)
- ld a, $3c
- ld [$ffb3], a
- ld hl, $ffb3
- ld b, $1
- call Function104d4e
- ret nz
- call Function10502e
- ld a, [hPrintNum10]
- cp $6c
- ret nz
- call Function104d43
- ret nz
- ld hl, $ffb3
- ld b, $1
- call Function104d56
- ret nz
- call Function105033
- ld a, [hPrintNum10]
- cp $6c
- ret nz
- ld a, [$ffb3]
- swap a
- cp $3c
- jp nz, Function104d32
- call Function104d38
- ret nz
- ld hl, OverworldMap
- ld a, [wca02]
- ld b, a
- call Function104d4e
- ret nz
- call Function10502e
- ld a, [hPrintNum10]
- cp $6c
- ret
-
-Function104d1c: ; 104d1c (41:4d1c)
- nop
- ld a, [hPrintNum10]
- push af
- call Function104da0
- xor a
- ld [rIF], a
- ld a, [rIE]
- or $1
- ld [rIE], a
- ei
- call DelayFrame
- pop af
- ret
-
-Function104d32: ; 104d32 (41:4d32)
- ld a, $80
- ld [hPrintNum10], a
- and a
- ret
-
-Function104d38: ; 104d38 (41:4d38)
- call Function104d96
- call Function104e46
- ld a, [hPrintNum10]
- cp $6c
- ret
-
-Function104d43: ; 104d43 (41:4d43)
- call Function104d96
- call Function104dfe
- ld a, [hPrintNum10]
- cp $6c
- ret
-
-Function104d4e: ; 104d4e (41:4d4e)
- call Function104e93
- ld a, [hPrintNum10]
- cp $6c
- ret
-
-Function104d56: ; 104d56 (41:4d56)
- call Function104f57
- ld a, [hPrintNum10]
- cp $6c
- ret
-
-Function104d5e: ; 104d5e (41:4d5e)
- call Function104d74
- ld a, $4
- ld [rIE], a
- xor a
- ld [rIF], a
- call Function104d96
- xor a
- ld b, a
-.asm_104d6d
- inc a
- jr nz, .asm_104d6d
- inc b
- jr nz, .asm_104d6d
- ret
-
-Function104d74: ; 104d74 (41:4d74)
- xor a
- ld [rTAC], a
- ld a, $fe
- ld [rTMA], a
- ld [rTIMA], a
- ld a, $2
- ld [rTAC], a
- or $4
- ld [rTAC], a
- ret
-
-Function104d86: ; 104d86 (41:4d86)
- xor a
- ld [rTAC], a
- ld [rTMA], a
- ld [rTIMA], a
- ld a, $2
- ld [rTAC], a
- or $4
- ld [rTAC], a
- ret
-
-Function104d96: ; 104d96 (41:4d96)
- ld a, $c0
- call Function104e8c
- ld a, $1
- ld [hPrintNum9], a
- ret
-
-Function104da0: ; 104da0 (41:4da0)
- xor a
- call Function104e8c
- ld a, $2
- ld [rTAC], a
- ret
-
-Function104da9: ; 104da9 (41:4da9)
- inc d
- ret z
- xor a
- ld [rIF], a
- halt
- ld a, [$ff00+c]
- bit 1, a
- jr z, Function104da9
- or a
- ret
-
-Function104db7: ; 104db7 (41:4db7)
- inc d
- ret z
- xor a
- ld [rIF], a
- halt
- ld a, [$ff00+c]
- bit 1, a
- jr nz, Function104db7
- or a
- ret
-
-Function104dc5: ; 104dc5 (41:4dc5)
- ld a, $c1
- ld [$ff00+c], a
-.asm_104dc8
- dec d
- ret z
- xor a
- ld [rIF], a
- halt
- jr .asm_104dc8
-
-Function104dd1: ; 104dd1 (41:4dd1)
- ld a, $c0
- ld [$ff00+c], a
-.asm_104dd4
- dec d
- ret z
- xor a
- ld [rIF], a
- halt
- jr .asm_104dd4
-
-Function104ddd: ; 104ddd (41:4ddd)
- ld d, $0
- ld e, d
- ld a, $1
- ld [hPrintNum9], a
-.asm_104de4
- call Function105038
- ld b, $2
- ld c, rRP % $100
- ld a, [hMoneyTemp + 1]
- bit 1, a
- jr z, .asm_104df6
- ld a, $10
- ld [hPrintNum10], a
- ret
-.asm_104df6
- bit 0, a
- jr nz, asm_104e3a
- ld a, [$ff00+c]
- and b
- jr nz, .asm_104de4
-
-Function104dfe: ; 104dfe (41:4dfe)
- ld c, rRP % $100
- ld d, $0
- ld e, d
- call Function104db7
- jp z, Function104f42
- ld d, e
- call Function104da9
- jp z, Function104f42
- call Function104db7
- jp z, Function104f42
- call Function104da9
- jp z, Function104f42
- ld a, $6c
- ld [hPrintNum10], a
- ld d, $3d
- call Function104dd1
- ld d, $5
- call Function104dc5
- ld d, $15
- call Function104dd1
- ld d, $5
- call Function104dc5
- ld d, $5
- call Function104dd1
- ret
-
-asm_104e3a: ; 104e3a (41:4e3a)
- call Random
- ld e, a
- and $f
- ld d, a
-.asm_104e41
- dec de
- ld a, d
- or e
- jr nz, .asm_104e41
-
-Function104e46: ; 104e46 (41:4e46)
- ld a, $2
- ld [hPrintNum9], a
- ld c, $56
- ld d, $0
- ld e, d
- ld d, $3d
- call Function104dd1
- ld d, $5
- call Function104dc5
- ld d, $15
- call Function104dd1
- ld d, $5
- call Function104dc5
- ld d, $5
- call Function104dd1
- ld d, e
- call Function104db7
- jp z, Function104f42
- ld d, e
- call Function104da9
- jp z, Function104f42
- call Function104db7
- jp z, Function104f42
- call Function104da9
- jp z, Function104f42
- ld d, $3d
- call Function104dd1
- ld a, $6c
- ld [hPrintNum10], a
- ret
-
-Function104e8c: ; 104e8c (41:4e8c)
- ld [rRP], a
- ld a, $ff
- ld [hPrintNum10], a
- ret
-
-Function104e93: ; 104e93 (41:4e93)
- xor a
- ld [hDivisor], a
- ld [hMathBuffer], a
- push hl
- push bc
- ld c, $56
- ld d, $3d
- call Function104dd1
- ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand)
- ld a, $5a
- ld [hli], a
- ld [hl], b
- dec hl
- ld b, $2
- call Function104ed6
- pop bc
- pop hl
- call Function104ed6
- ld a, [hDivisor]
- ld [hQuotient], a
- ld a, [hMathBuffer]
- ld [$ffb5], a
- push hl
- ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand)
- ld b, $2
- call Function104ed6
- ld hl, hPrintNum10
- ld b, $1
- call Function104faf
- ld a, [hQuotient]
- ld [hDivisor], a
- ld a, [$ffb5]
- ld [hMathBuffer], a
- pop hl
- ret
-
-Function104ed6: ; 104ed6 (41:4ed6)
- ld c, $56
- ld d, $5
- call Function104dd1
- ld d, $5
- call Function104dc5
- ld d, $15
- call Function104dd1
- ld a, b
- cpl
- ld b, a
- ld a, $f4
- ld [rTMA], a
-.asm_104eee
- inc b
- jr z, .asm_104f2e
- ld a, $8
- ld [$ffb6], a
- ld a, [hli]
- ld e, a
- ld a, [hDivisor]
- add e
- ld [hDivisor], a
- ld a, [hMathBuffer]
- adc $0
- ld [hMathBuffer], a
-.asm_104f02
- xor a
- ld [rIF], a
- halt
- ld a, $c1
- ld [rRP], a
- ld d, $1
- ld a, e
- rlca
- ld e, a
- jr nc, .asm_104f13
- inc d
-.asm_104f13
- ld a, [rTIMA]
- cp $f8
- jr c, .asm_104f13
- ld a, $c0
- ld [rRP], a
- dec d
- jr z, .asm_104f25
- xor a
- ld [rIF], a
- halt
-.asm_104f25
- ld a, [$ffb6]
- dec a
- jr z, .asm_104eee
- ld [$ffb6], a
- jr .asm_104f02
-.asm_104f2e
- ld a, $fe
- ld [rTMA], a
- xor a
- ld [rIF], a
- halt
- ld d, $5
- call Function104dc5
- ld d, $11
- call Function104dd1
- ret
-
-Function104f42: ; 104f42 (41:4f42)
- ld a, [hPrintNum10]
- or $2
- ld [hPrintNum10], a
- ret
-
-Function104f49: ; 104f49 (41:4f49)
- ld a, [hPrintNum10]
- or $1
- ld [hPrintNum10], a
- ret
-
-Function104f50: ; 104f50 (41:4f50)
- ld a, [hPrintNum10]
- or $80
- ld [hPrintNum10], a
- ret
-
-Function104f57: ; 104f57 (41:4f57)
- xor a
- ld [hDivisor], a
- ld [hMathBuffer], a
- push bc
- push hl
- ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand)
- ld b, $2
- call Function104faf
- ld a, [$ffb5]
- ld [$ffba], a
- ld b, a
- pop hl
- pop af
- cp b
- jp c, Function104f50
- ld a, [hQuotient]
- cp $5a
- jp nz, Function104f50
- call Function104faf
- ld a, [hDivisor]
- ld d, a
- ld a, [hMathBuffer]
- ld e, a
- push hl
- push de
- ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand)
- ld b, $2
- call Function104faf
- pop de
- ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand)
- ld a, [hli]
- xor d
- ld b, a
- ld a, [hl]
- xor e
- or b
- call nz, Function104f49
- push de
- ld d, $3d
- call Function104dd1
- ld hl, hPrintNum10
- ld b, $1
- call Function104ed6
- pop de
- pop hl
- ld a, d
- ld [hDivisor], a
- ld a, e
- ld [hMathBuffer], a
- ret
-
-Function104faf: ; 104faf (41:4faf)
- ld c, rRP % $100
- ld d, $0
- call Function104db7
- jp z, Function104f42
- ld d, $0
- call Function104da9
- jp z, Function104f42
- ld d, $0
- call Function104db7
- jp z, Function104f42
- ld a, b
- cpl
- ld b, a
- xor a
- ld [hMoneyTemp + 2], a
- call Function104d86
-.asm_104fd2
- inc b
- jr z, .asm_10501a
- ld a, $8
- ld [$ffb6], a
-.asm_104fd9
- ld d, $0
-.asm_104fdb
- inc d
- jr z, .asm_104fe5
- ld a, [$ff00+c]
- bit 1, a
- jr z, .asm_104fdb
- ld d, $0
-.asm_104fe5
- inc d
- jr z, .asm_104fed
- ld a, [$ff00+c]
- bit 1, a
- jr nz, .asm_104fe5
-.asm_104fed
- ld a, [hMoneyTemp + 2]
- ld d, a
- ld a, [rTIMA]
- ld [hMoneyTemp + 2], a
- sub d
- cp $12
- jr c, .asm_104ffd
- set 0, e
- jr .asm_104fff
-.asm_104ffd
- res 0, e
-.asm_104fff
- ld a, [$ffb6]
- dec a
- ld [$ffb6], a
- jr z, .asm_10500b
- ld a, e
- rlca
- ld e, a
- jr .asm_104fd9
-.asm_10500b
- ld a, e
- ld [hli], a
- ld a, [hDivisor]
- add e
- ld [hDivisor], a
- ld a, [hMathBuffer]
- adc $0
- ld [hMathBuffer], a
- jr .asm_104fd2
-.asm_10501a
- call Function104d74
- xor a
- ld [rIF], a
- ld d, $0
- call Function104da9
- jp z, Function104f42
- ld d, $10
- call Function104dd1
- ret
-
-Function10502e: ; 10502e (41:502e)
- ld b, $0
- jp Function104e93
-
-Function105033: ; 105033 (41:5033)
- ld b, $0
- jp Function104f57
-
-Function105038: ; 105038 (41:5038)
- ld a, $20
- ld [rJOYP], a
-rept 2
- ld a, [rJOYP]
-endr
- cpl
- and $f
- swap a
- ld b, a
- ld a, $10
- ld [rJOYP], a
-rept 6
- ld a, [rJOYP]
-endr
- cpl
- and $f
- or b
- ld c, a
- ld a, [hMoneyTemp]
- xor c
- and c
- ld [hMoneyTemp + 1], a
- ld a, c
- ld [hMoneyTemp], a
- ld a, $30
- ld [rJOYP], a
- ret
-
-Function105069: ; 105069 (41:5069)
- call GetMysteryGiftBank
- ld d, $0
- ld b, $2
- ld hl, s0_abf0
- predef_id FlagPredef
- push hl
- push bc
- call Predef
- call CloseSRAM
- ld a, c
- and a
- pop bc
- pop hl
- ret nz
- call GetMysteryGiftBank
- ld b, $1
- predef FlagPredef
- call CloseSRAM
- xor a
- ret
-
-Function105091: ; 105091 (41:5091)
- call GetMysteryGiftBank
- ld c, $0
-.asm_105096
- push bc
- ld d, $0
- ld b, $2
- ld hl, s0_abf0
- predef FlagPredef
- ld a, c
- and a
- pop bc
- jr z, .asm_1050b0
- push bc
- callab SetSpecificDecorationFlag
- pop bc
-.asm_1050b0
- inc c
- ld a, c
- cp $2a + 1
- jr c, .asm_105096
- jp CloseSRAM
-
-Special_UnlockMysteryGift: ; 1050b9
- call GetMysteryGiftBank
- ld hl, s0_abe3
- ld a, [hl]
- inc a
- jr nz, .ok
- ld [hld], a
- ld [hl], a
-.ok
- jp CloseSRAM
-; 1050c8
-
-Function1050c8: ; 1050c8
- call GetMysteryGiftBank
- ld a, [s0_abe5]
- cp $ff
- jr z, .okay
- xor a
- ld [s0_abe5], a
-.okay
- jp CloseSRAM
-; 1050d9
-
-
-Function1050d9: ; 1050d9
- call GetMysteryGiftBank
- ld hl, sMysteryGiftItem
- ld de, s0_abe4
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- jp CloseSRAM
-; 1050ea
-
-
-Function1050ea: ; 1050ea (41:50ea)
- call GetMysteryGiftBank
- ld hl, s0_abe4
- ld de, sMysteryGiftItem
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- jp CloseSRAM
-
-Function1050fb: ; 1050fb (41:50fb)
- ld hl, wc850
- xor a
- ld b, $26
-.asm_105101
- ld [hli], a
- dec b
- jr nz, .asm_105101
- ret
-
-
-GetMysteryGiftBank: ; 105106
- ld a, BANK(s0_abe4)
- jp GetSRAMBank
-; 10510b
-
-
-Function10510b: ; 10510b (41:510b)
- ld a, BANK(sPokemonData)
- call GetSRAMBank
- ld de, OverworldMap
- ld bc, sPokemonData + PartyMons - wPokemonData
- ld hl, sPokemonData + PartySpecies - wPokemonData
-.asm_105119
- ld a, [hli]
- cp $ff
- jr z, .asm_105148
- cp EGG
- jr z, .asm_10513e
- push hl
- ld hl, MON_LEVEL
- add hl, bc
- ld a, [hl]
- ld [de], a
- inc de
- ld hl, MON_SPECIES
- add hl, bc
- ld a, [hl]
- ld [de], a
- inc de
- ld hl, MON_MOVES
- add hl, bc
- push bc
- ld bc, NUM_MOVES
- call CopyBytes
- pop bc
- pop hl
-.asm_10513e
- push hl
- ld hl, PARTYMON_STRUCT_LENGTH
- add hl, bc
- ld b, h
- ld c, l
- pop hl
- jr .asm_105119
-.asm_105148
- ld a, $ff
- ld [de], a
- ld a, $26
- ld [wca00], a
- jp CloseSRAM
-
-Function105153: ; 105153 (41:5153)
- call ClearBGPalettes
- call DisableLCD
- ld hl, MysteryGiftGFX
- ld de, VTiles2 tile $00
- ld a, BANK(MysteryGiftGFX)
- ld bc, Function105688 - MysteryGiftGFX
- call FarCopyBytes
- hlcoord 0, 0
- ld a, $42
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- call ByteFill
- hlcoord 3, 7
- lb bc, 9, 15
- call ClearBox
- hlcoord 0, 0
- ld a, $0
- ld [hli], a
- inc a
- ld [hl], a
- hlcoord 0, 1
- inc a
- ld [hli], a
- inc a
- ld [hl], a
- hlcoord 7, 1
- ld a, $12
- call Function10522e
- hlcoord 2, 2
- ld a, $17
- call Function105236
- hlcoord 2, 3
- ld a, $27
- call Function105236
- hlcoord 9, 4
- ld a, $37
- ld [hli], a
- inc a
- ld [hl], a
- hlcoord 1, 2
- ld [hl], $4
- hlcoord 1, 3
- ld a, $5
- call Function105246
- ld a, $9
- hlcoord 18, 5
- call Function105242
- hlcoord 2, 5
- ld a, $b
- call Function105251
- hlcoord 2, 16
- ld a, $7
- call Function105251
- hlcoord 2, 5
- ld a, $d
- call Function10522e
- hlcoord 7, 5
- ld [hl], $c
- hlcoord 18, 5
- ld [hl], $a
- hlcoord 18, 16
- ld [hl], $8
- hlcoord 1, 16
- ld [hl], $6
- hlcoord 2, 6
- ld a, $3a
- call Function105251
- hlcoord 2, 15
- ld a, $40
- call Function105251
- hlcoord 2, 6
- ld a, $3c
- call Function10523e
- hlcoord 17, 6
- ld a, $3e
- call Function10523e
- hlcoord 2, 6
- ld [hl], $39
- hlcoord 17, 6
- ld [hl], $3b
- hlcoord 2, 15
- ld [hl], $3f
- hlcoord 17, 15
- ld [hl], $41
- call EnableLCD
- call WaitBGMap
- ld b, $1d
- call GetSGBLayout
- call SetPalettes
- ret
-
-Function10522e: ; 10522e (41:522e)
- ld b, $5
- jr asm_105238
-; 105232 (41:5232)
-
-Function105232: ; unreferenced
- ld b, 6
- jr asm_105238
-
-Function105236: ; 105236 (41:5236)
- ld b, $10
-
-asm_105238: ; 105238 (41:5238)
- ld [hli], a
- inc a
- dec b
- jr nz, asm_105238
- ret
-
-Function10523e: ; 10523e (41:523e)
- ld b, $9
- jr asm_105248
-
-Function105242: ; 105242 (41:5242)
- ld b, $b
- jr asm_105248
-
-Function105246: ; 105246 (41:5246)
- ld b, $e
-
-asm_105248: ; 105248 (41:5248)
- ld [hl], a
- ld de, $14
- add hl, de
- dec b
- jr nz, asm_105248
- ret
-
-Function105251: ; 105251 (41:5251)
- ld b, $10
-.asm_105253
- ld [hli], a
- dec b
- jr nz, .asm_105253
- ret
-
-MysteryGiftGFX: ; 105258
-INCBIN "gfx/misc/mystery_gift.2bpp"
-
-
-Function105688: ; 105688 (41:5688)
- call ClearTileMap
- call ClearSprites
- call WaitBGMap
- call Function1057d7
- hlcoord 3, 8
- ld de, String_10572e
- call PlaceString
- call WaitBGMap
- call Function10578c
- call Function1050fb
- ld a, $24
- ld [wca02], a
- ld a, [rIE]
- push af
- call Function104c2d
- ld d, a
- xor a
- ld [rIF], a
- pop af
- ld [rIE], a
- ld a, d
- cp $10
- jp z, Function105712
- cp $6c
- jp nz, Function10571a
- call Function1056eb
- ld c, 60
- call DelayFrames
- call Function105777
- ld hl, Text_10575e
- call PrintText
- ld de, wc850
- callba Function8ac70
- ld a, c
- ld [wd265], a
- ld hl, Text_105768
- jr c, asm_105726
- ld hl, Text_105763
- jr asm_105726
-
-Function1056eb: ; 1056eb (41:56eb)
- ld c, $10
-.asm_1056ed
- ld hl, Sprites
- ld b, $8
-.asm_1056f2
- dec [hl]
-rept 4
- inc hl
-endr
- dec b
- jr nz, .asm_1056f2
- ld hl, Sprites + $20
- ld b, $8
-.asm_1056ff
- inc [hl]
-rept 4
- inc hl
-endr
- dec b
- jr nz, .asm_1056ff
- dec c
- ret z
- push bc
- ld c, 4
- call DelayFrames
- pop bc
- jr .asm_1056ed
-
-Function105712: ; 105712 (41:5712)
- call Function105777
- ld hl, Text_10576d
- jr asm_105726
-
-Function10571a: ; 10571a (41:571a)
- call Function105777
- ld hl, Text_105772
- call PrintText
- jp Function105688
-
-asm_105726: ; 105726 (41:5726)
- call PrintText
- ld a, $e3
- ld [rLCDC], a
- ret
-; 10572e (41:572e)
-
-String_10572e: ; 10572e
- db "エーボタン¯おすと"
- next "つうしん", $4a, "おこなわれるよ!"
- next "ビーボタン¯おすと"
- next "つうしん¯ちゅうし します"
- db "@"
-
-; 10575e
-
-Text_10575e: ; 10575e
- text_jump UnknownText_0x1c051a
- db "@"
-
-Text_105763: ; 105763
- text_jump UnknownText_0x1c0531
- db "@"
-
-Text_105768: ; 105768
- text_jump UnknownText_0x1c0555
- db "@"
-
-Text_10576d: ; 10576d
- text_jump UnknownText_0x1c0573
- db "@"
-
-Text_105772: ; 105772
- text_jump UnknownText_0x1c0591
- db "@"
-; 105777
-
-Function105777: ; 105777 (41:5777)
- call ClearSprites
- call ClearTileMap
- call EnableLCD
- call WaitBGMap
- ld b, $8
- call GetSGBLayout
- call SetPalettes
- ret
-
-Function10578c: ; 10578c (41:578c)
- ld de, OverworldMap
- ld a, BANK(sPlayerData)
- call GetSRAMBank
- ld hl, sPlayerData + PlayerName - wPlayerData
- ld bc, NAME_LENGTH
- call CopyBytes
- ld hl, sPlayerData + PlayerID - wPlayerData
- ld bc, 2
- call CopyBytes
- ld hl, sPlayerData + wSecretID - wPlayerData
- ld bc, 2
- call CopyBytes
- call CloseSRAM
- ld a, BANK(sCrystalData)
- call GetSRAMBank
- ld a, [sCrystalData + 0]
- ld [de], a
- inc de
- ld a, $4
- call GetSRAMBank
- ld hl, $a603
- ld bc, $8
- call CopyBytes
- ld hl, $a007
- ld bc, $c
- call CopyBytes
- call CloseSRAM
- ret
-
-Function1057d7: ; 1057d7 (41:57d7)
- call ClearBGPalettes
- call DisableLCD
- ld hl, MysteryGiftJP_GFX
- ld de, VTiles2 tile $00
- ld a, BANK(MysteryGiftJP_GFX)
- lb bc, 4, 0
- call FarCopyBytes
- ld hl, MysteryGiftJP_GFX + $400
- ld de, VTiles0 tile $00
- ld a, BANK(MysteryGiftJP_GFX)
- ld bc, $80
- call FarCopyBytes
- hlcoord 0, 0
- ld a, $3f
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- call ByteFill
- hlcoord 3, 7
- lb bc, 9, 15
- call ClearBox
- hlcoord 0, 0
- ld a, $0
- ld [hli], a
- inc a
- ld [hl], a
- hlcoord 0, 1
- inc a
- ld [hli], a
- inc a
- ld [hl], a
- hlcoord 4, 2
- ld a, $13
- call Function1058ca
- hlcoord 4, 3
- ld a, $1e
- call Function1058ce
- hlcoord 4, 4
- ld a, $2a
- call Function1058ce
- hlcoord 1, 2
- ld [hl], $4
- hlcoord 1, 3
- ld a, $5
- call Function1058de
- ld a, $9
- hlcoord 18, 5
- call Function1058da
- hlcoord 2, 5
- ld a, $b
- call Function1058e9
- hlcoord 2, 16
- ld a, $7
- call Function1058e9
- hlcoord 2, 5
- ld a, $d
- call Function1058c6
- hlcoord 8, 5
- ld [hl], $c
- hlcoord 18, 5
- ld [hl], $a
- hlcoord 18, 16
- ld [hl], $8
- hlcoord 1, 16
- ld [hl], $6
- hlcoord 2, 6
- ld a, $37
- call Function1058e9
- hlcoord 2, 15
- ld a, $3d
- call Function1058e9
- hlcoord 2, 6
- ld a, $39
- call Function1058d6
- hlcoord 17, 6
- ld a, $3b
- call Function1058d6
- hlcoord 2, 6
- ld [hl], $36
- hlcoord 17, 6
- ld [hl], $38
- hlcoord 2, 15
- ld [hl], $3c
- hlcoord 17, 15
- ld [hl], $3e
- ld de, Sprites
- ld hl, OAM_1058f0
- ld bc, $40
- call CopyBytes
- call EnableLCD
- call WaitBGMap
- ld b, $2
- callba Function4930f
- jp SetPalettes
-
-Function1058c6: ; 1058c6 (41:58c6)
- ld b, $6
- jr asm_1058d0
-
-Function1058ca: ; 1058ca (41:58ca)
- ld b, $b
- jr asm_1058d0
-
-Function1058ce: ; 1058ce (41:58ce)
- ld b, $c
-
-asm_1058d0: ; 1058d0 (41:58d0)
- ld [hli], a
- inc a
- dec b
- jr nz, asm_1058d0
- ret
-
-Function1058d6: ; 1058d6 (41:58d6)
- ld b, $9
- jr asm_1058e0
-
-Function1058da: ; 1058da (41:58da)
- ld b, $b
- jr asm_1058e0
-
-Function1058de: ; 1058de (41:58de)
- ld b, $e
-
-asm_1058e0: ; 1058e0 (41:58e0)
- ld [hl], a
- ld de, $14
- add hl, de
- dec b
- jr nz, asm_1058e0
- ret
-
-Function1058e9: ; 1058e9 (41:58e9)
- ld b, $10
-.asm_1058eb
- ld [hli], a
- dec b
- jr nz, .asm_1058eb
- ret
-; 1058f0 (41:58f0)
-
-OAM_1058f0: ; 1058f0
- db $11, $34, $00, $00
- db $11, $3c, $01, $00
- db $11, $44, $02, $00
- db $11, $4c, $03, $00
- db $19, $34, $04, $00
- db $19, $3c, $05, $00
- db $19, $44, $06, $00
- db $19, $4c, $07, $00
- db $01, $5c, $00, $00
- db $01, $64, $01, $00
- db $01, $6c, $02, $00
- db $01, $74, $03, $00
- db $09, $5c, $04, $00
- db $09, $64, $05, $00
- db $09, $6c, $06, $00
- db $09, $74, $07, $00
-
-; japanese mystery gift gfx
-MysteryGiftJP_GFX: ; 105930
-INCBIN "gfx/misc/mystery_gift_jp.2bpp"
-
-
-DisplayUsedMoveText: ; 105db0
-; battle command 03
- ld hl, UsedMoveText
- call BattleTextBox
- jp WaitBGMap
-; 105db9
-
-
-UsedMoveText: ; 105db9
-; this is a stream of text and asm from 105db9 to 105ef6
-
- text_jump _ActorNameText
- start_asm
-
- ld a, [hBattleTurn]
- and a
- jr nz, .start
-
- ld a, [wPlayerMoveStruct + MOVE_ANIM]
- call UpdateUsedMoves
-
-.start
- ld a, BATTLE_VARS_LAST_MOVE
- call GetBattleVarAddr
- ld d, h
- ld e, l
-
- ld a, BATTLE_VARS_LAST_COUNTER_MOVE
- call GetBattleVarAddr
-
- ld a, BATTLE_VARS_MOVE_ANIM
- call GetBattleVar
- ld [wd265], a
-
- push hl
- callba CheckUserIsCharging
- pop hl
- jr nz, .grammar
-
- ; update last move
- ld a, [wd265]
- ld [hl], a
- ld [de], a
-
-.grammar
- call GetMoveGrammar
-; wd265 now contains MoveGrammar
-
-
-; everything except 'instead' made redundant in localization
-
- ; check obedience
- ld a, [AlreadyDisobeyed]
- and a
- ld hl, UsedMove2Text
- ret nz
-
- ; check move grammar
- ld a, [wd265]
- cp $3
- ld hl, UsedMove2Text
- ret c
- ld hl, UsedMove1Text
- ret
-; 105e04
-
-UsedMove1Text: ; 105e04
- text_jump _UsedMove1Text
- start_asm
- jr Function105e10
-; 105e0b
-
-UsedMove2Text: ; 105e0b
- text_jump _UsedMove2Text
- start_asm
-; 105e10
-
-Function105e10: ; 105e10
-; check obedience
- ld a, [AlreadyDisobeyed]
- and a
- jr z, GetMoveNameText
-; print "instead,"
- ld hl, UsedInsteadText
- ret
-; 105e1a
-
-UsedInsteadText: ; 105e1a
- text_jump _UsedInsteadText
- start_asm
-; 105e1f
-
-GetMoveNameText: ; 105e1f
- ld hl, MoveNameText
- ret
-; 105e23
-
-MoveNameText: ; 105e23
- text_jump _MoveNameText
- start_asm
-; 105e28
-
-GetUsedMoveTextEnder: ; 105e28
-; get start address
- ld hl, .endusedmovetexts
-
-; get move id
- ld a, [wd265]
-
-; 2-byte pointer
- add a
-
-; seek
- push bc
- ld b, $0
- ld c, a
- add hl, bc
- pop bc
-
-; get pointer to usedmovetext ender
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-; 105e39
-
-.endusedmovetexts ; 105e39
- dw EndUsedMove1Text
- dw EndUsedMove2Text
- dw EndUsedMove3Text
- dw EndUsedMove4Text
- dw EndUsedMove5Text
-; 105e43
-
-EndUsedMove1Text: ; 105e43
- text_jump _EndUsedMove1Text
- db "@"
-; 105e48
-EndUsedMove2Text: ; 105e48
- text_jump _EndUsedMove2Text
- db "@"
-; 105e4d
-EndUsedMove3Text: ; 105e4d
- text_jump _EndUsedMove3Text
- db "@"
-; 105e52
-EndUsedMove4Text: ; 105e52
- text_jump _EndUsedMove4Text
- db "@"
-; 105e57
-EndUsedMove5Text: ; 105e57
- text_jump _EndUsedMove5Text
- db "@"
-; 105e5c
-
-
-GetMoveGrammar: ; 105e5c
-; store move grammar type in wd265
-
- push bc
-; c = move id
- ld a, [wd265]
- ld c, a
- ld b, $0
-
-; read grammar table
- ld hl, MoveGrammar
-.loop
- ld a, [hli]
-; end of table?
- cp $ff
- jr z, .end
-; match?
- cp c
- jr z, .end
-; advance grammar type at $00
- and a
- jr nz, .loop
-; next grammar type
- inc b
- jr .loop
-
-.end
-; wd265 now contains move grammar
- ld a, b
- ld [wd265], a
-
-; we're done
- pop bc
- ret
-; 105e7a
-
-MoveGrammar: ; 105e7a
-; made redundant in localization
-; each move is given an identifier for what usedmovetext to use (0-4):
-
-; 0
- db SWORDS_DANCE
- db GROWTH
- db STRENGTH
- db HARDEN
- db MINIMIZE
- db SMOKESCREEN
- db WITHDRAW
- db DEFENSE_CURL
- db EGG_BOMB
- db SMOG
- db BONE_CLUB
- db FLASH
- db SPLASH
- db ACID_ARMOR
- db BONEMERANG
- db REST
- db SHARPEN
- db SUBSTITUTE
- db MIND_READER
- db SNORE
- db PROTECT
- db SPIKES
- db ENDURE
- db ROLLOUT
- db SWAGGER
- db SLEEP_TALK
- db HIDDEN_POWER
- db PSYCH_UP
- db EXTREMESPEED
- db 0 ; end set
-
-; 1
- db RECOVER
- db TELEPORT
- db BIDE
- db SELFDESTRUCT
- db AMNESIA
- db FLAIL
- db 0 ; end set
-
-; 2
- db MEDITATE
- db AGILITY
- db MIMIC
- db DOUBLE_TEAM
- db BARRAGE
- db TRANSFORM
- db STRUGGLE
- db SCARY_FACE
- db 0 ; end set
-
-; 3
- db POUND
- db SCRATCH
- db VICEGRIP
- db WING_ATTACK
- db FLY
- db BIND
- db SLAM
- db HORN_ATTACK
- db WRAP
- db THRASH
- db TAIL_WHIP
- db LEER
- db BITE
- db GROWL
- db ROAR
- db SING
- db PECK
- db ABSORB
- db STRING_SHOT
- db EARTHQUAKE
- db FISSURE
- db DIG
- db TOXIC
- db SCREECH
- db METRONOME
- db LICK
- db CLAMP
- db CONSTRICT
- db POISON_GAS
- db BUBBLE
- db SLASH
- db SPIDER_WEB
- db NIGHTMARE
- db CURSE
- db FORESIGHT
- db CHARM
- db ATTRACT
- db ROCK_SMASH
- db 0 ; end set
-
-; all other moves = 4
- db $ff ; end
-; 105ed0
-
-
-UpdateUsedMoves: ; 105ed0
-; append move a to PlayerUsedMoves unless it has already been used
-
- push bc
-; start of list
- ld hl, PlayerUsedMoves
-; get move id
- ld b, a
-; next count
- ld c, NUM_MOVES
-
-.loop
-; get move from the list
- ld a, [hli]
-; not used yet?
- and a
- jr z, .add
-; already used?
- cp b
- jr z, .quit
-; next byte
- dec c
- jr nz, .loop
-
-; if the list is full and the move hasn't already been used
-; shift the list back one byte, deleting the first move used
-; this can occur with struggle or a new learned move
- ld hl, PlayerUsedMoves + 1
-; 1 = 2
- ld a, [hld]
- ld [hli], a
-; 2 = 3
- inc hl
- ld a, [hld]
- ld [hli], a
-; 3 = 4
- inc hl
- ld a, [hld]
- ld [hl], a
-; 4 = new move
- ld a, b
- ld [PlayerUsedMoves + 3], a
- jr .quit
-
-.add
-; go back to the byte we just inced from
- dec hl
-; add the new move
- ld [hl], b
-
-.quit
-; list updated
- pop bc
- ret
-; 105ef6
-
INCLUDE "misc/mobile_41.asm"
INCLUDE "misc/mobile_42.asm"
@@ -55896,7 +24438,7 @@
inc a
ld [hl], a
ld hl, wcb45
- ld a, $7f
+ ld a, " "
ld [hli], a
ld [hl], a
ld hl, wcb59
@@ -56108,7 +24650,7 @@
hlcoord 0, 0
call _PrepMonFrontpic
call WaitBGMap
- ld b, $3
+ ld b, SCGB_03
call GetSGBLayout
call SetPalettes
ret
@@ -56146,27 +24688,27 @@
call PlaceString
hlcoord 16, 7
ld de, TempMonAttack
- call Function1dc507
+ call .PrintTempMonStats
hlcoord 16, 9
ld de, TempMonDefense
- call Function1dc507
+ call .PrintTempMonStats
hlcoord 16, 11
ld de, TempMonSpclAtk
- call Function1dc507
+ call .PrintTempMonStats
hlcoord 16, 13
ld de, TempMonSpclDef
- call Function1dc507
+ call .PrintTempMonStats
hlcoord 16, 15
ld de, TempMonSpeed
- call Function1dc507
+ call .PrintTempMonStats
call WaitBGMap
- ld b, $3
+ ld b, SCGB_03
call GetSGBLayout
call SetPalettes
ret
; 1dc507
-Function1dc507: ; 1dc507
+.PrintTempMonStats: ; 1dc507
lb bc, 2, 3
call PrintNum
ret
@@ -56183,16 +24725,16 @@
Function1dc51a: ; 1dc51a
and a
- jr z, .asm_1dc525
+ jr z, .no_move
ld [wd265], a
call GetMoveName
- jr .asm_1dc528
+ jr .got_string
-.asm_1dc525
+.no_move
ld de, String1dc584
-.asm_1dc528
+.got_string
call PlaceString
ret
; 1dc52c
@@ -56381,7 +24923,7 @@
ld [hl], $50
ld a, $51
hlcoord 11, 1
- ld b, $f
+ ld b, SCREEN_HEIGHT - 3
call Function1de27f
ld [hl], $52
jr .asm_1de1d0
@@ -56390,7 +24932,7 @@
ld [hl], $66
ld a, $67
hlcoord 11, 1
- ld b, $f
+ ld b, SCREEN_HEIGHT - 3
call Function1de27f
ld [hl], $68
.asm_1de1d0
@@ -56413,7 +24955,7 @@
ld [hl], $66
ld a, $67
hlcoord 11, 1
- ld b, $9
+ ld b, SCREEN_HEIGHT / 2
call Function1de27f
ld [hl], $68
ld a, $34
@@ -56428,7 +24970,7 @@
ld [hl], $66
ld a, $67
hlcoord 11, 12
- ld b, $5
+ ld b, 5
call Function1de27f
ld [hl], $68
hlcoord 0, 12
@@ -56442,10 +24984,8 @@
String_1de23c: ; 1de23c
; At a glance, this is less coherent in the Japanese charset.
- db "ESULTS"
- db $4e
- db $4e
- db "D!@"
+ db "ESULTS<NEXT>"
+ next "D!@"
; 1de247
Function1de247: ; 1de247
@@ -56463,13 +25003,13 @@
ld [hl], $66
hlcoord 19, 1
ld a, $67
- ld b, $f
+ ld b, SCREEN_HEIGHT - 3
call Function1de27f
ld [hl], $68
hlcoord 19, 17
ld [hl], $3c
xor a
- ld b, $12
+ ld b, SCREEN_HEIGHT
hlcoord 19, 0, AttrMap
call Function1de27f
call Function3200
@@ -56484,11 +25024,11 @@
Function1de27f: ; 1de27f
push de
ld de, SCREEN_WIDTH
-.asm_1de283
+.loop
ld [hl], a
add hl, de
dec b
- jr nz, .asm_1de283
+ jr nz, .loop
pop de
ret
; 1de28a
@@ -56550,21 +25090,21 @@
Function1de2c5: ; 1de2c5
ld hl, StringBuffer1
-.asm_1de2c8
+.loop
ld a, [hl]
- cp $50
- jr z, .asm_1de2da
- cp $25
- jr z, .asm_1de2d8
- cp $1f
- jr z, .asm_1de2d8
+ cp "@"
+ jr z, .end
+ cp "%"
+ jr z, .line_break
+ cp "¯"
+ jr z, .line_break
inc hl
- jr .asm_1de2c8
+ jr .loop
-.asm_1de2d8
- ld [hl], $22
+.line_break
+ ld [hl], "<LNBRK>"
-.asm_1de2da
+.end
ld de, StringBuffer1
hlcoord 9, 0
call PlaceString
@@ -56575,25 +25115,30 @@
INCBIN "gfx/misc/pokegear.2bpp.lz"
; 1de5c8
-Function1de5c8: ; 1de5c8
+IsMailEuropean: ; 1de5c8
+; return 1 if French
+; return 2 if German
+; return 3 if Italian
+; return 4 if Spanish
+; return 0 if none of the above
ld c, $0
- ld hl, $29
+ ld hl, sPartyMon1MailAuthorNationality - sPartyMon1Mail
add hl, de
ld a, [hli]
- cp $84
+ cp "E"
ret nz
ld a, [hli]
inc c
- cp $85
+ cp "F"
ret z
inc c
- cp $86
+ cp "G"
ret z
inc c
- cp $88
+ cp "I"
ret z
inc c
- cp $92
+ cp "S"
ret z
ld c, $0
ret
@@ -56600,82 +25145,97 @@
; 1de5e6
; The regular font.
-GFX_1de5e6: ; 1de5e6
-INCBIN "gfx/unknown/1de5e6.2bpp"
+StandardEnglishFont: ; 1de5e6
+INCBIN "gfx/font/english.1bpp"
; An extended font.
-GFX_1de9e6: ; 1de9e6
-INCBIN "gfx/unknown/1de9e6.2bpp"
+FrenchGermanFont: ; 1de9e6
+INCBIN "gfx/font/french_german.1bpp"
; An even more extended font.
-GFX_1dede6: ; 1dede6
-INCBIN "gfx/unknown/1dede6.2bpp"
+SpanishItalianFont: ; 1dede6
+INCBIN "gfx/font/spanish_italian.1bpp"
-Function1df1e6: ; 1df1e6
- ld b, $21
+HandleFrenchGermanMail: ; 1df1e6
+; called if mail is french or german
+; fix 's 't 'v
+ ld b, sPartyMon1MailAuthor - sPartyMon1Mail
ld h, d
ld l, e
-.asm_1df1ea
+.loop
ld a, [hl]
- cp $dc
- jr nz, .asm_1df1f3
- ld a, $d4
- jr .asm_1df1fd
+ cp $dc ; 's in french/german font
+ jr nz, .check_intermediate_chars
+ ld a, "'s"
+ jr .replace
-.asm_1df1f3
- sub $d4
- jr c, .asm_1df1fe
- cp $3
- jr nc, .asm_1df1fe
+.check_intermediate_chars
+ sub "'s"
+ jr c, .dont_replace
+ cp "'v" - "'s" + 1
+ jr nc, .dont_replace
add $cd
-.asm_1df1fd
+.replace
ld [hl], a
-.asm_1df1fe
+.dont_replace
inc hl
dec b
- jr nz, .asm_1df1ea
+ jr nz, .loop
ret
; 1df203
-Function1df203: ; 1df203
- ld b, $21
+LireLeCourrierAnglais:
+DeutenEnglischenPost: ; 1df203
+; Cette fonction convertit certains des caractères anglais pour
+; leur équivalent dans le jeu de caractères français.
+; Diese Funktion wandelt bestimmte englische Zeichen, um ihre
+; Entsprechung in der Deutschen-Zeichensatz.
+ ld b, sPartyMon1MailAuthor - sPartyMon1Mail
ld h, d
ld l, e
-.asm_1df207
+.loop
ld a, [hl]
- cp $d4
- jr nz, .asm_1df210
+ cp "'s"
+ jr nz, .check_intermediate_chars
ld a, $dc
- jr .asm_1df21a
+ jr .replace
-.asm_1df210
+.check_intermediate_chars
sub $cd
- jr c, .asm_1df21b
- cp $3
- jr nc, .asm_1df21b
- add $d4
+ jr c, .dont_replace
+ cp "'v" - "'s" + 1
+ jr nc, .dont_replace
+ add "'s"
-.asm_1df21a
+.replace
ld [hl], a
-.asm_1df21b
+.dont_replace
inc hl
dec b
- jr nz, .asm_1df207
+ jr nz, .loop
ret
; 1df220
-Function1df220: ; 1df220
- ld b, $21
+HandleSpanishItalianMail: ; 1df220
+LeerCorreosIngleses:
+LeggiPostaInglese:
+; This function converts certain characters between
+; the English and Spanish/Italian character sets.
+; Esta función convierte ciertos caracteres entre
+; el juego de caracteres Inglés y Español.
+; Questa funzione converte alcuni caratteri tra
+; l'inglese e il set di caratteri italiani.
+ ld b, sPartyMon1MailAuthor - sPartyMon1Mail
ld h, d
ld l, e
-.asm_1df224
+.loop
ld a, [hl]
and $f0
cp $d0
- jr nz, .asm_1df233
+ jr nz, .dont_replace
ld a, [hl]
add $8
and $f
@@ -56682,10 +25242,10 @@
or $d0
ld [hl], a
-.asm_1df233
+.dont_replace
inc hl
dec b
- jr nz, .asm_1df224
+ jr nz, .loop
ret
; 1df238
@@ -56774,5 +25334,3 @@
ELSE
INCBIN "misc/stadium2_1.bin"
ENDC
-
-
--- a/maps/AzaleaGym.asm
+++ b/maps/AzaleaGym.asm
@@ -371,10 +371,10 @@
.PersonEvents:
db 7
- person_event SPRITE_BUGSY, 7, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BugsyScript, -1
- person_event SPRITE_BUG_CATCHER, 3, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerBug_catcherbenny, -1
- person_event SPRITE_BUG_CATCHER, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherAl, -1
- person_event SPRITE_BUG_CATCHER, 2, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherJosh, -1
- person_event SPRITE_TWIN, 10, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsAmyandmay1, -1
- person_event SPRITE_TWIN, 10, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsAmyandmay2, -1
- person_event SPRITE_GYM_GUY, 13, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, AzaleaGymGuyScript, -1
+ person_event SPRITE_BUGSY, 7, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, BugsyScript, -1
+ person_event SPRITE_BUG_CATCHER, 3, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerBug_catcherbenny, -1
+ person_event SPRITE_BUG_CATCHER, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerBug_catcherAl, -1
+ person_event SPRITE_BUG_CATCHER, PERSONTYPE_TRAINER, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerBug_catcherJosh, -1
+ person_event SPRITE_TWIN, 10, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerTwinsAmyandmay1, -1
+ person_event SPRITE_TWIN, 10, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerTwinsAmyandmay2, -1
+ person_event SPRITE_GYM_GUY, 13, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, AzaleaGymGuyScript, -1
--- a/maps/AzaleaMart.asm
+++ b/maps/AzaleaMart.asm
@@ -57,6 +57,6 @@
.PersonEvents:
db 3
- person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x18e040, -1
- person_event SPRITE_COOLTRAINER_M, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x18e047, -1
- person_event SPRITE_BUG_CATCHER, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, BugCatcherScript_0x18e04a, -1
+ person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x18e040, -1
+ person_event SPRITE_COOLTRAINER_M, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x18e047, -1
+ person_event SPRITE_BUG_CATCHER, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x18e04a, -1
--- a/maps/AzaleaPokeCenter1F.asm
+++ b/maps/AzaleaPokeCenter1F.asm
@@ -90,7 +90,7 @@
.PersonEvents:
db 4
- person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x18db28, -1
- person_event SPRITE_GENTLEMAN, 6, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, GentlemanScript_0x18db2b, -1
- person_event SPRITE_FISHING_GURU, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, FishingGuruScript_0x18db2e, -1
- person_event SPRITE_POKEFAN_F, 4, 1, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, 0, 0, PokefanFScript_0x18db31, -1
+ person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x18db28, -1
+ person_event SPRITE_GENTLEMAN, 6, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x18db2b, -1
+ person_event SPRITE_FISHING_GURU, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x18db2e, -1
+ person_event SPRITE_POKEFAN_F, 4, 1, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x18db31, -1
--- a/maps/AzaleaTown.asm
+++ b/maps/AzaleaTown.asm
@@ -30,7 +30,7 @@
moveperson $b, $b, $b
spriteface PLAYER, RIGHT
showemote EMOTE_SHOCK, PLAYER, 15
- special Functionc48f
+ special Special_RotatePalettesRightMusic
pause 15
appear $b
applymovement $b, MovementData_0x198134
@@ -40,7 +40,7 @@
UnknownScript_0x198034:
spriteface PLAYER, RIGHT
showemote EMOTE_SHOCK, PLAYER, 15
- special Functionc48f
+ special Special_RotatePalettesRightMusic
pause 15
appear $b
applymovement $b, MovementData_0x19813c
@@ -198,7 +198,7 @@
jumpstd martsign
WhiteApricornTree:
- fruittree $14
+ fruittree FRUITTREE_AZALEA_TOWN
MapAzaleaTownSignpostItem8:
dwb EVENT_AZALEA_TOWN_HIDDEN_FULL_HEAL, FULL_HEAL
@@ -367,11 +367,11 @@
UnknownText_0x1985b0:
text "SLOWPOKE: …"
- para $56, " ", $56, " ", $56
+ para "<......> <......> <......>"
done
UnknownText_0x1985c3:
- text $56, " ", $56, "Yawn?"
+ text "<......> <......>Yawn?"
done
WoosterText:
@@ -481,15 +481,15 @@
.PersonEvents:
db 12
- person_event SPRITE_AZALEA_ROCKET, 9, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, AzaleaRocketScript_0x1980ab, EVENT_AZALEA_TOWN_SLOWPOKETAIL_ROCKET
- person_event SPRITE_GRAMPS, 9, 21, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, 0, 0, GrampsScript_0x1980b1, -1
- person_event SPRITE_TEACHER, 13, 15, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x1980c5, -1
- person_event SPRITE_YOUNGSTER, 9, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1980c8, -1
- person_event SPRITE_SLOWPOKE, 17, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
- person_event SPRITE_SLOWPOKE, 9, 18, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
- person_event SPRITE_SLOWPOKE, 9, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
- person_event SPRITE_SLOWPOKE, 15, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
- person_event SPRITE_FRUIT_TREE, 2, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, WhiteApricornTree, -1
- person_event SPRITE_AZALEA_ROCKET, 10, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_AZALEA_TOWN
- person_event SPRITE_AZALEA_ROCKET, 16, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, AzaleaRocketScript_0x1980ae, EVENT_SLOWPOKE_WELL_ROCKETS
- person_event SPRITE_KURT_OUTSIDE, 5, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, KurtOutsideScript_0x19810c, EVENT_AZALEA_TOWN_KURT
+ person_event SPRITE_AZALEA_ROCKET, 9, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, AzaleaRocketScript_0x1980ab, EVENT_AZALEA_TOWN_SLOWPOKETAIL_ROCKET
+ person_event SPRITE_GRAMPS, 9, 21, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1980b1, -1
+ person_event SPRITE_TEACHER, 13, 15, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1980c5, -1
+ person_event SPRITE_YOUNGSTER, 9, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1980c8, -1
+ person_event SPRITE_SLOWPOKE, 17, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
+ person_event SPRITE_SLOWPOKE, 9, 18, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
+ person_event SPRITE_SLOWPOKE, 9, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
+ person_event SPRITE_SLOWPOKE, 15, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
+ person_event SPRITE_FRUIT_TREE, 2, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, WhiteApricornTree, -1
+ person_event SPRITE_AZALEA_ROCKET, 10, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_RIVAL_AZALEA_TOWN
+ person_event SPRITE_AZALEA_ROCKET, 16, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, AzaleaRocketScript_0x1980ae, EVENT_SLOWPOKE_WELL_ROCKETS
+ person_event SPRITE_KURT_OUTSIDE, 5, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, KurtOutsideScript_0x19810c, EVENT_AZALEA_TOWN_KURT
--- a/maps/BattleTower1F.asm
+++ b/maps/BattleTower1F.asm
@@ -27,7 +27,7 @@
end
.priorityjump1:
- priorityjump UnknownScript_0x9e555
+ priorityjump BattleTower_LeftWithoutSaving
writebyte BATTLE_TOWER_ACTION_04
special BattleTowerAction
writebyte BATTLE_TOWER_ACTION_06
@@ -119,7 +119,7 @@
special BattleTowerAction
writebyte BATTLE_TOWER_ACTION_1B
special BattleTowerAction
- if_equal $12, Script_YourPackIsStuffedFull
+ if_equal POTION, Script_YourPackIsStuffedFull
itemtotext $0, $1
giveitem ITEM_FROM_MEM, 5
writetext Text_PlayerGotFive
@@ -236,9 +236,9 @@
loadmovesprites
end
-UnknownScript_0x9e555:
+BattleTower_LeftWithoutSaving:
loadfont
- writetext UnknownText_0x9ee18
+ writetext Text_BattleTower_LeftWithoutSaving
closetext
jump UnknownScript_0x9e4b0
@@ -525,7 +525,7 @@
line "@"
text_from_ram StringBuffer4
text "!@"
- sound0x0F
+ sound_item
text_waitbutton
db "@"
@@ -610,7 +610,7 @@
line "placed on them."
done
-UnknownText_0x9ee18:
+Text_BattleTower_LeftWithoutSaving:
text "Excuse me!"
line "You didn't SAVE"
@@ -808,8 +808,8 @@
.PersonEvents:
db 5
- person_event SPRITE_RECEPTIONIST, 6, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ReceptionistScript_0x9e3e2, -1
- person_event SPRITE_YOUNGSTER, 9, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, YoungsterScript_0x9e55d, -1
- person_event SPRITE_COOLTRAINER_F, 9, 4, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerFScript_0x9e568, -1
- person_event SPRITE_BUG_CATCHER, 3, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, BugCatcherScript_0x9e56b, -1
- person_event SPRITE_GRANNY, 3, 14, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, GrannyScript_0x9e56e, -1
+ person_event SPRITE_RECEPTIONIST, 6, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x9e3e2, -1
+ person_event SPRITE_YOUNGSTER, 9, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x9e55d, -1
+ person_event SPRITE_COOLTRAINER_F, 9, 4, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x9e568, -1
+ person_event SPRITE_BUG_CATCHER, 3, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x9e56b, -1
+ person_event SPRITE_GRANNY, 3, 14, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x9e56e, -1
--- a/maps/BattleTowerBattleRoom.asm
+++ b/maps/BattleTowerBattleRoom.asm
@@ -155,5 +155,5 @@
.PersonEvents:
db 2
- person_event SPRITE_YOUNGSTER, 0, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_BATTLE_TOWER_BATTLE_ROOM_YOUNGSTER
- person_event SPRITE_RECEPTIONIST, 6, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, -1
+ person_event SPRITE_YOUNGSTER, 0, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_BATTLE_TOWER_BATTLE_ROOM_YOUNGSTER
+ person_event SPRITE_RECEPTIONIST, 6, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, -1
--- a/maps/BattleTowerElevator.asm
+++ b/maps/BattleTowerElevator.asm
@@ -60,4 +60,4 @@
.PersonEvents:
db 1
- person_event SPRITE_RECEPTIONIST, 2, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, MovementData_0x9f58f, -1
+ person_event SPRITE_RECEPTIONIST, 2, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MovementData_0x9f58f, -1
--- a/maps/BattleTowerHallway.asm
+++ b/maps/BattleTowerHallway.asm
@@ -98,4 +98,4 @@
.PersonEvents:
db 1
- person_event SPRITE_RECEPTIONIST, 2, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, BattleTowerHallway_MapEventHeader, -1
+ person_event SPRITE_RECEPTIONIST, 2, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BattleTowerHallway_MapEventHeader, -1
--- a/maps/BattleTowerOutside.asm
+++ b/maps/BattleTowerOutside.asm
@@ -142,7 +142,7 @@
.PersonEvents:
db 4
- person_event SPRITE_STANDING_YOUNGSTER, 12, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, StandingYoungsterScript_0x9f85f, -1
- person_event SPRITE_BUENA, 11, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BuenaScript_0x9f862, -1
- person_event SPRITE_SAILOR, 18, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, SailorScript_0x9f865, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
- person_event SPRITE_LASS, 24, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ObjectEvent, -1
+ person_event SPRITE_STANDING_YOUNGSTER, 12, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, StandingYoungsterScript_0x9f85f, -1
+ person_event SPRITE_BUENA, 11, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, BuenaScript_0x9f862, -1
+ person_event SPRITE_SAILOR, 18, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x9f865, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
+ person_event SPRITE_LASS, 24, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ObjectEvent, -1
--- a/maps/BillsHouse.asm
+++ b/maps/BillsHouse.asm
@@ -367,4 +367,4 @@
.PersonEvents:
db 1
- person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_STANDING_UP, 2, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrampsScript_0x189538, -1
+ person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_STANDING_UP, 2, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GrampsScript_0x189538, -1
--- a/maps/BlackthornCity.asm
+++ b/maps/BlackthornCity.asm
@@ -333,12 +333,12 @@
.PersonEvents:
db 9
- person_event SPRITE_SUPER_NERD, 12, 18, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x1a46e8, EVENT_BLACKTHORN_CITY_SUPER_NERD_BLOCKS_GYM
- person_event SPRITE_SUPER_NERD, 12, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x1a46e8, EVENT_BLACKTHORN_CITY_SUPER_NERD_DOES_NOT_BLOCK_GYM
- person_event SPRITE_GRAMPS, 2, 20, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x1a4708, EVENT_BLACKTHORN_CITY_GRAMPS_BLOCKS_DRAGONS_DEN
- person_event SPRITE_GRAMPS, 2, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x1a470b, EVENT_BLACKTHORN_CITY_GRAMPS_NOT_BLOCKING_DRAGONS_DEN
- person_event SPRITE_BLACK_BELT, 31, 24, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, BlackBeltScript_0x1a470e, -1
- person_event SPRITE_COOLTRAINER_F, 25, 9, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerFScript_0x1a4722, -1
- person_event SPRITE_YOUNGSTER, 15, 13, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, YoungsterScript_0x1a4725, -1
- person_event SPRITE_YOUNGSTER, 20, 22, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, SantosScript, EVENT_BLACKTHORN_CITY_SANTOS_OF_SATURDAY
- person_event SPRITE_COOLTRAINER_F, 19, 35, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x1a4728, -1
+ person_event SPRITE_SUPER_NERD, 12, 18, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x1a46e8, EVENT_BLACKTHORN_CITY_SUPER_NERD_BLOCKS_GYM
+ person_event SPRITE_SUPER_NERD, 12, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x1a46e8, EVENT_BLACKTHORN_CITY_SUPER_NERD_DOES_NOT_BLOCK_GYM
+ person_event SPRITE_GRAMPS, 2, 20, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a4708, EVENT_BLACKTHORN_CITY_GRAMPS_BLOCKS_DRAGONS_DEN
+ person_event SPRITE_GRAMPS, 2, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a470b, EVENT_BLACKTHORN_CITY_GRAMPS_NOT_BLOCKING_DRAGONS_DEN
+ person_event SPRITE_BLACK_BELT, 31, 24, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x1a470e, -1
+ person_event SPRITE_COOLTRAINER_F, 25, 9, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x1a4722, -1
+ person_event SPRITE_YOUNGSTER, 15, 13, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a4725, -1
+ person_event SPRITE_YOUNGSTER, 20, 22, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SantosScript, EVENT_BLACKTHORN_CITY_SANTOS_OF_SATURDAY
+ person_event SPRITE_COOLTRAINER_F, 19, 35, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x1a4728, -1
--- a/maps/BlackthornDodrioTradeHouse.asm
+++ b/maps/BlackthornDodrioTradeHouse.asm
@@ -35,4 +35,4 @@
.PersonEvents:
db 1
- person_event SPRITE_LASS, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, Emy, -1
+ person_event SPRITE_LASS, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, Emy, -1
--- a/maps/BlackthornDragonSpeechHouse.asm
+++ b/maps/BlackthornDragonSpeechHouse.asm
@@ -58,5 +58,5 @@
.PersonEvents:
db 2
- person_event SPRITE_GRANNY, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x195949, -1
- person_event SPRITE_EKANS, 5, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, EkansScript_0x19594c, -1
+ person_event SPRITE_GRANNY, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x195949, -1
+ person_event SPRITE_EKANS, 5, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, EkansScript_0x19594c, -1
--- a/maps/BlackthornGym1F.asm
+++ b/maps/BlackthornGym1F.asm
@@ -404,8 +404,8 @@
.PersonEvents:
db 5
- person_event SPRITE_CLAIR, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ClairScript_0x194e24, -1
- person_event SPRITE_COOLTRAINER_M, 6, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainermMike, -1
- person_event SPRITE_COOLTRAINER_M, 14, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainermPaul, -1
- person_event SPRITE_COOLTRAINER_F, 2, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainerfLola, -1
- person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, BlackthornGymGuyScript, -1
+ person_event SPRITE_CLAIR, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ClairScript_0x194e24, -1
+ person_event SPRITE_COOLTRAINER_M, 6, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerCooltrainermMike, -1
+ person_event SPRITE_COOLTRAINER_M, 14, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerCooltrainermPaul, -1
+ person_event SPRITE_COOLTRAINER_F, 2, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerCooltrainerfLola, -1
+ person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, BlackthornGymGuyScript, -1
--- a/maps/BlackthornGym2F.asm
+++ b/maps/BlackthornGym2F.asm
@@ -145,11 +145,11 @@
.PersonEvents:
db 8
- person_event SPRITE_COOLTRAINER_M, 1, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainermCody, -1
- person_event SPRITE_COOLTRAINER_F, 11, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainerfFran, -1
- person_event SPRITE_BOULDER, 2, 8, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_1
- person_event SPRITE_BOULDER, 3, 2, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_2
- person_event SPRITE_BOULDER, 16, 6, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_3
- person_event SPRITE_BOULDER, 3, 3, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, -1
- person_event SPRITE_BOULDER, 1, 6, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, -1
- person_event SPRITE_BOULDER, 14, 8, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, -1
+ person_event SPRITE_COOLTRAINER_M, 1, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerCooltrainermCody, -1
+ person_event SPRITE_COOLTRAINER_F, 11, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerCooltrainerfFran, -1
+ person_event SPRITE_BOULDER, 2, 8, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_1
+ person_event SPRITE_BOULDER, 3, 2, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_2
+ person_event SPRITE_BOULDER, 16, 6, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_3
+ person_event SPRITE_BOULDER, 3, 3, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackthornGymBoulder, -1
+ person_event SPRITE_BOULDER, 1, 6, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackthornGymBoulder, -1
+ person_event SPRITE_BOULDER, 14, 8, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackthornGymBoulder, -1
--- a/maps/BlackthornMart.asm
+++ b/maps/BlackthornMart.asm
@@ -58,6 +58,6 @@
.PersonEvents:
db 3
- person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x195a5d, -1
- person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, 0, 0, CooltrainerMScript_0x195a64, -1
- person_event SPRITE_BLACK_BELT, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BlackBeltScript_0x195a67, -1
+ person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x195a5d, -1
+ person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x195a64, -1
+ person_event SPRITE_BLACK_BELT, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x195a67, -1
--- a/maps/BlackthornPokeCenter1F.asm
+++ b/maps/BlackthornPokeCenter1F.asm
@@ -61,7 +61,7 @@
.PersonEvents:
db 4
- person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x195b79, -1
- person_event SPRITE_GENTLEMAN, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x195b7c, -1
- person_event SPRITE_TWIN, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TwinScript_0x195b7f, -1
- person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x195b82, -1
+ person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x195b79, -1
+ person_event SPRITE_GENTLEMAN, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x195b7c, -1
+ person_event SPRITE_TWIN, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TwinScript_0x195b7f, -1
+ person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x195b82, -1
--- a/maps/BluesHouse.asm
+++ b/maps/BluesHouse.asm
@@ -37,7 +37,7 @@
special RestartMapMusic
loadfont
writetext UnknownText_0x19b296
- special Functionc472
+ special PlayCurMonCry
keeptextopen
writetext UnknownText_0x19b2aa
closetext
@@ -158,4 +158,4 @@
.PersonEvents:
db 1
- person_event SPRITE_DAISY, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, DaisyScript_0x19b0d0, -1
+ person_event SPRITE_DAISY, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DaisyScript_0x19b0d0, -1
--- a/maps/BrunosRoom.asm
+++ b/maps/BrunosRoom.asm
@@ -145,4 +145,4 @@
.PersonEvents:
db 1
- person_event SPRITE_BRUNO, 7, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, BrunoScript_0x1809c5, -1
+ person_event SPRITE_BRUNO, 7, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, BrunoScript_0x1809c5, -1
--- a/maps/BurnedTower1F.asm
+++ b/maps/BurnedTower1F.asm
@@ -49,7 +49,7 @@
UnknownScript_0x185c25:
showemote EMOTE_SHOCK, $4, 15
- special Functionc48f
+ special Special_RotatePalettesRightMusic
pause 15
spriteface $4, RIGHT
pause 15
@@ -98,7 +98,7 @@
loadmovesprites
dotrigger $2
setevent EVENT_RIVAL_BURNED_TOWER
- special Functionc48f
+ special Special_RotatePalettesRightMusic
pause 15
earthquake 50
showemote EMOTE_SHOCK, PLAYER, 15
@@ -160,7 +160,7 @@
step_end
UnknownText_0x185cd9:
- text $56, " ", $56, " ", $56
+ text "<......> <......> <......>"
para "…Oh, it's you."
@@ -309,8 +309,8 @@
.PersonEvents:
db 5
- person_event SPRITE_ROCK, 4, 15, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, BurnedTower1FRock, -1
- person_event SPRITE_SUPER_NERD, 12, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x185cbc, EVENT_BURNED_TOWER_1F_EUSINE
- person_event SPRITE_SILVER, 9, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 2, 3, ObjectEvent, EVENT_RIVAL_BURNED_TOWER
- person_event SPRITE_MORTY, 14, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MortyScript_0x185cbf, EVENT_BURNED_TOWER_MORTY
- person_event SPRITE_POKE_BALL, 2, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185ccb, EVENT_BURNED_TOWER_1F_HP_UP
+ person_event SPRITE_ROCK, 4, 15, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BurnedTower1FRock, -1
+ person_event SPRITE_SUPER_NERD, 12, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x185cbc, EVENT_BURNED_TOWER_1F_EUSINE
+ person_event SPRITE_SILVER, 9, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, ObjectEvent, EVENT_RIVAL_BURNED_TOWER
+ person_event SPRITE_MORTY, 14, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, MortyScript_0x185cbf, EVENT_BURNED_TOWER_MORTY
+ person_event SPRITE_POKE_BALL, 2, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185ccb, EVENT_BURNED_TOWER_1F_HP_UP
--- a/maps/BurnedTowerB1F.asm
+++ b/maps/BurnedTowerB1F.asm
@@ -251,12 +251,12 @@
.PersonEvents:
db 9
- person_event SPRITE_BOULDER, 8, 17, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BurnedTowerB1FBoulder, -1
- person_event SPRITE_RAIKOU, 3, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
- person_event SPRITE_ENTEI, 3, 12, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
- person_event SPRITE_SUICUNE, 4, 10, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
- person_event SPRITE_RAIKOU, 3, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_SILVER, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
- person_event SPRITE_ENTEI, 3, 12, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_SILVER, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
- person_event SPRITE_SUICUNE, 4, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_SILVER, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
- person_event SPRITE_POKE_BALL, 4, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x186231, EVENT_BURNED_TOWER_B1F_TM_ENDURE
- person_event SPRITE_SUPER_NERD, 12, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x186212, EVENT_EUSINE_IN_BURNED_TOWER
+ person_event SPRITE_BOULDER, 8, 17, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BurnedTowerB1FBoulder, -1
+ person_event SPRITE_RAIKOU, 3, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
+ person_event SPRITE_ENTEI, 3, 12, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
+ person_event SPRITE_SUICUNE, 4, 10, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
+ person_event SPRITE_RAIKOU, 3, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_SILVER, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
+ person_event SPRITE_ENTEI, 3, 12, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_SILVER, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
+ person_event SPRITE_SUICUNE, 4, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_SILVER, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
+ person_event SPRITE_POKE_BALL, 4, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x186231, EVENT_BURNED_TOWER_B1F_TM_ENDURE
+ person_event SPRITE_SUPER_NERD, 12, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x186212, EVENT_EUSINE_IN_BURNED_TOWER
--- a/maps/CeladonCafe.asm
+++ b/maps/CeladonCafe.asm
@@ -219,8 +219,8 @@
.PersonEvents:
db 5
- person_event SPRITE_SUPER_NERD, 3, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, SuperNerdScript_0x73049, -1
- person_event SPRITE_FISHER, 6, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x73051, -1
- person_event SPRITE_FISHER, 7, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x73062, -1
- person_event SPRITE_FISHER, 2, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x73073, -1
- person_event SPRITE_TEACHER, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x73084, -1
+ person_event SPRITE_SUPER_NERD, 3, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x73049, -1
+ person_event SPRITE_FISHER, 6, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FisherScript_0x73051, -1
+ person_event SPRITE_FISHER, 7, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x73062, -1
+ person_event SPRITE_FISHER, 2, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FisherScript_0x73073, -1
+ person_event SPRITE_TEACHER, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x73084, -1
--- a/maps/CeladonCity.asm
+++ b/maps/CeladonCity.asm
@@ -257,12 +257,12 @@
.PersonEvents:
db 9
- person_event SPRITE_FISHER, 11, 26, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1a9f43, -1
- person_event SPRITE_POLIWAG, 11, 27, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CeladonCityPoliwrath, -1
- person_event SPRITE_TEACHER, 24, 20, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, TeacherScript_0x1a9f50, -1
- person_event SPRITE_GRAMPS, 16, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrampsScript_0x1a9f53, -1
- person_event SPRITE_GRAMPS, 31, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GrampsScript_0x1a9f56, -1
- person_event SPRITE_YOUNGSTER, 13, 18, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x1a9f59, -1
- person_event SPRITE_YOUNGSTER, 33, 24, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a9f5c, -1
- person_event SPRITE_TEACHER, 14, 6, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x1a9f5f, -1
- person_event SPRITE_LASS, 22, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, LassScript_0x1a9f62, -1
+ person_event SPRITE_FISHER, 11, 26, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x1a9f43, -1
+ person_event SPRITE_POLIWAG, 11, 27, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, CeladonCityPoliwrath, -1
+ person_event SPRITE_TEACHER, 24, 20, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1a9f50, -1
+ person_event SPRITE_GRAMPS, 16, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a9f53, -1
+ person_event SPRITE_GRAMPS, 31, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a9f56, -1
+ person_event SPRITE_YOUNGSTER, 13, 18, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a9f59, -1
+ person_event SPRITE_YOUNGSTER, 33, 24, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a9f5c, -1
+ person_event SPRITE_TEACHER, 14, 6, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1a9f5f, -1
+ person_event SPRITE_LASS, 22, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, LassScript_0x1a9f62, -1
--- a/maps/CeladonDeptStore1F.asm
+++ b/maps/CeladonDeptStore1F.asm
@@ -89,6 +89,6 @@
.PersonEvents:
db 3
- person_event SPRITE_RECEPTIONIST, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ReceptionistScript_0x709e0, -1
- person_event SPRITE_GENTLEMAN, 4, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, GentlemanScript_0x709e3, -1
- person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x709e6, -1
+ person_event SPRITE_RECEPTIONIST, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x709e0, -1
+ person_event SPRITE_GENTLEMAN, 4, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x709e3, -1
+ person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x709e6, -1
--- a/maps/CeladonDeptStore2F.asm
+++ b/maps/CeladonDeptStore2F.asm
@@ -82,7 +82,7 @@
.PersonEvents:
db 4
- person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ClerkScript_0x70bad, -1
- person_event SPRITE_CLERK, 5, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ClerkScript_0x70bb5, -1
- person_event SPRITE_POKEFAN_M, 2, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x70bbd, -1
- person_event SPRITE_YOUNGSTER, 2, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x70bc0, -1
+ person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x70bad, -1
+ person_event SPRITE_CLERK, 5, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x70bb5, -1
+ person_event SPRITE_POKEFAN_M, 2, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x70bbd, -1
+ person_event SPRITE_YOUNGSTER, 2, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x70bc0, -1
--- a/maps/CeladonDeptStore3F.asm
+++ b/maps/CeladonDeptStore3F.asm
@@ -107,8 +107,8 @@
.PersonEvents:
db 5
- person_event SPRITE_CLERK, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ClerkScript_0x70d29, -1
- person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x70d31, -1
- person_event SPRITE_GAMEBOY_KID, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GameboyKidScript_0x70d34, -1
- person_event SPRITE_GAMEBOY_KID, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GameboyKidScript_0x70d3f, -1
- person_event SPRITE_SUPER_NERD, 4, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x70d4a, -1
+ person_event SPRITE_CLERK, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x70d29, -1
+ person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x70d31, -1
+ person_event SPRITE_GAMEBOY_KID, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x70d34, -1
+ person_event SPRITE_GAMEBOY_KID, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x70d3f, -1
+ person_event SPRITE_SUPER_NERD, 4, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x70d4a, -1
--- a/maps/CeladonDeptStore4F.asm
+++ b/maps/CeladonDeptStore4F.asm
@@ -65,6 +65,6 @@
.PersonEvents:
db 3
- person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ClerkScript_0x70f0d, -1
- person_event SPRITE_SUPER_NERD, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x70f15, -1
- person_event SPRITE_YOUNGSTER, 2, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, YoungsterScript_0x70f18, -1
+ person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x70f0d, -1
+ person_event SPRITE_SUPER_NERD, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x70f15, -1
+ person_event SPRITE_YOUNGSTER, 2, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x70f18, -1
--- a/maps/CeladonDeptStore5F.asm
+++ b/maps/CeladonDeptStore5F.asm
@@ -84,8 +84,8 @@
.PersonEvents:
db 5
- person_event SPRITE_CLERK, 5, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ClerkScript_0x71004, -1
- person_event SPRITE_CLERK, 5, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ClerkScript_0x7100c, -1
- person_event SPRITE_GENTLEMAN, 5, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GentlemanScript_0x71014, -1
- person_event SPRITE_SAILOR, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SailorScript_0x71017, -1
- person_event SPRITE_TEACHER, 7, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x7101a, -1
+ person_event SPRITE_CLERK, 5, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x71004, -1
+ person_event SPRITE_CLERK, 5, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x7100c, -1
+ person_event SPRITE_GENTLEMAN, 5, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x71014, -1
+ person_event SPRITE_SAILOR, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SailorScript_0x71017, -1
+ person_event SPRITE_TEACHER, 7, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7101a, -1
--- a/maps/CeladonDeptStore6F.asm
+++ b/maps/CeladonDeptStore6F.asm
@@ -7,9 +7,9 @@
; callbacks
- dbw 1, UnknownScript_0x71175
+ dbw 1, .Callback
-UnknownScript_0x71175:
+.Callback:
changeblock $c, $0, $3
return
@@ -23,7 +23,7 @@
loadfont
writetext CeladonVendingText
.Start
- special Function24ae8
+ special PlaceMoneyTopRightOW
loadmenudata .MenuData
interpretmenu2
writebackup
@@ -168,5 +168,5 @@
.PersonEvents:
db 2
- person_event SPRITE_SUPER_NERD, 2, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, SuperNerdScript_0x7117a, -1
- person_event SPRITE_YOUNGSTER, 5, 12, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x7117d, -1
+ person_event SPRITE_SUPER_NERD, 2, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x7117a, -1
+ person_event SPRITE_YOUNGSTER, 5, 12, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x7117d, -1
--- a/maps/CeladonGameCorner.asm
+++ b/maps/CeladonGameCorner.asm
@@ -325,12 +325,12 @@
.PersonEvents:
db 9
- person_event SPRITE_CLERK, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ClerkScript_0x7211d, -1
- person_event SPRITE_RECEPTIONIST, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ReceptionistScript_0x72120, -1
- person_event SPRITE_POKEFAN_M, 10, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x72123, -1
- person_event SPRITE_TEACHER, 7, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x7212e, -1
- person_event SPRITE_FISHING_GURU, 7, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FishingGuruScript_0x72139, -1
- person_event SPRITE_FISHER, 10, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, 2, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x72144, -1
- person_event SPRITE_FISHER, 10, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, 4, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x72144, -1
- person_event SPRITE_GYM_GUY, 3, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CeladonGymGuyScript, -1
- person_event SPRITE_GRAMPS, 8, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GrampsScript_0x72190, -1
+ person_event SPRITE_CLERK, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ClerkScript_0x7211d, -1
+ person_event SPRITE_RECEPTIONIST, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x72120, -1
+ person_event SPRITE_POKEFAN_M, 10, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x72123, -1
+ person_event SPRITE_TEACHER, 7, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7212e, -1
+ person_event SPRITE_FISHING_GURU, 7, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x72139, -1
+ person_event SPRITE_FISHER, 10, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, 2, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x72144, -1
+ person_event SPRITE_FISHER, 10, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, 4, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x72144, -1
+ person_event SPRITE_GYM_GUY, 3, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CeladonGymGuyScript, -1
+ person_event SPRITE_GRAMPS, 8, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x72190, -1
--- a/maps/CeladonGameCornerPrizeRoom.asm
+++ b/maps/CeladonGameCornerPrizeRoom.asm
@@ -284,5 +284,5 @@
.PersonEvents:
db 2
- person_event SPRITE_GENTLEMAN, 2, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GentlemanScript_0x726e9, -1
- person_event SPRITE_PHARMACIST, 4, 4, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, PharmacistScript_0x726ec, -1
+ person_event SPRITE_GENTLEMAN, 2, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x726e9, -1
+ person_event SPRITE_PHARMACIST, 4, 4, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, PharmacistScript_0x726ec, -1
--- a/maps/CeladonGym.asm
+++ b/maps/CeladonGym.asm
@@ -278,9 +278,9 @@
.PersonEvents:
db 6
- person_event SPRITE_ERIKA, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ErikaScript_0x72a6a, -1
- person_event SPRITE_LASS, 8, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerLassMichelle, -1
- person_event SPRITE_LASS, 8, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerPicnickerTanya, -1
- person_event SPRITE_BUENA, 5, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerBeautyJulia, -1
- person_event SPRITE_TWIN, 10, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsJoandzoe1, -1
- person_event SPRITE_TWIN, 10, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsJoandzoe2, -1
+ person_event SPRITE_ERIKA, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ErikaScript_0x72a6a, -1
+ person_event SPRITE_LASS, 8, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerLassMichelle, -1
+ person_event SPRITE_LASS, 8, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 2, TrainerPicnickerTanya, -1
+ person_event SPRITE_BUENA, 5, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerBeautyJulia, -1
+ person_event SPRITE_TWIN, 10, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerTwinsJoandzoe1, -1
+ person_event SPRITE_TWIN, 10, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerTwinsJoandzoe2, -1
--- a/maps/CeladonMansion1F.asm
+++ b/maps/CeladonMansion1F.asm
@@ -91,7 +91,7 @@
.PersonEvents:
db 4
- person_event SPRITE_GRANNY, 5, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, CeladonMansionManager, -1
- person_event SPRITE_GROWLITHE, 6, 2, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, CeladonMansion1FMeowth, -1
- person_event SPRITE_CLEFAIRY, 4, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, CeladonMansion1FClefairy, -1
- person_event SPRITE_GROWLITHE, 4, 4, SPRITEMOVEDATA_POKEMON, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CeladonMansion1FNidoranF, -1
+ person_event SPRITE_GRANNY, 5, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CeladonMansionManager, -1
+ person_event SPRITE_GROWLITHE, 6, 2, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CeladonMansion1FMeowth, -1
+ person_event SPRITE_CLEFAIRY, 4, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CeladonMansion1FClefairy, -1
+ person_event SPRITE_GROWLITHE, 4, 4, SPRITEMOVEDATA_POKEMON, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, CeladonMansion1FNidoranF, -1
--- a/maps/CeladonMansion3F.asm
+++ b/maps/CeladonMansion3F.asm
@@ -22,7 +22,7 @@
waitbutton
writetext UnknownText_0x71760
keeptextopen
- special Functionc49f
+ special Diploma
writetext UnknownText_0x71763
closetext
loadmovesprites
@@ -43,7 +43,7 @@
writetext UnknownText_0x717d8
yesorno
iffalse UnknownScript_0x716b0
- special Functionc4ac
+ special PrintDiploma
loadmovesprites
end
@@ -206,7 +206,7 @@
.PersonEvents:
db 4
- person_event SPRITE_COOLTRAINER_M, 6, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x71670, -1
- person_event SPRITE_GYM_GUY, 4, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GymGuyScript_0x71696, -1
- person_event SPRITE_SUPER_NERD, 7, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x716bc, -1
- person_event SPRITE_FISHER, 4, 0, SPRITEMOVEDATA_STANDING_UP, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x716bf, -1
+ person_event SPRITE_COOLTRAINER_M, 6, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x71670, -1
+ person_event SPRITE_GYM_GUY, 4, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x71696, -1
+ person_event SPRITE_SUPER_NERD, 7, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x716bc, -1
+ person_event SPRITE_FISHER, 4, 0, SPRITEMOVEDATA_STANDING_UP, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x716bf, -1
--- a/maps/CeladonMansionRoof.asm
+++ b/maps/CeladonMansionRoof.asm
@@ -49,4 +49,4 @@
.PersonEvents:
db 1
- person_event SPRITE_FISHER, 5, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FisherScript_0x71a39, -1
+ person_event SPRITE_FISHER, 5, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, FisherScript_0x71a39, -1
--- a/maps/CeladonMansionRoofHouse.asm
+++ b/maps/CeladonMansionRoofHouse.asm
@@ -130,4 +130,4 @@
.PersonEvents:
db 1
- person_event SPRITE_PHARMACIST, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, PharmacistScript_0x71afd, -1
+ person_event SPRITE_PHARMACIST, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, PharmacistScript_0x71afd, -1
--- a/maps/CeladonPokeCenter1F.asm
+++ b/maps/CeladonPokeCenter1F.asm
@@ -156,8 +156,8 @@
.PersonEvents:
db 5
- person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x71e22, -1
- person_event SPRITE_GENTLEMAN, 5, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, GentlemanScript_0x71e25, -1
- person_event SPRITE_PHARMACIST, 3, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PharmacistScript_0x71e2b, -1
- person_event SPRITE_COOLTRAINER_F, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x71e28, -1
- person_event SPRITE_SUPER_NERD, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x71e2e, EVENT_SET_WHEN_FOUGHT_HO_OH
+ person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x71e22, -1
+ person_event SPRITE_GENTLEMAN, 5, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x71e25, -1
+ person_event SPRITE_PHARMACIST, 3, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PharmacistScript_0x71e2b, -1
+ person_event SPRITE_COOLTRAINER_F, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x71e28, -1
+ person_event SPRITE_SUPER_NERD, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x71e2e, EVENT_SET_WHEN_FOUGHT_HO_OH
--- a/maps/CeruleanCity.asm
+++ b/maps/CeruleanCity.asm
@@ -299,9 +299,9 @@
.PersonEvents:
db 6
- person_event SPRITE_COOLTRAINER_M, 23, 15, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CooltrainerMScript_0x184009, -1
- person_event SPRITE_SUPER_NERD, 15, 23, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x18401d, -1
- person_event SPRITE_SLOWPOKE, 24, 20, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, CeruleanCitySlowbro, -1
- person_event SPRITE_COOLTRAINER_F, 24, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x18402a, -1
- person_event SPRITE_FISHER, 26, 30, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x18404a, -1
- person_event SPRITE_YOUNGSTER, 12, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x184064, -1
+ person_event SPRITE_COOLTRAINER_M, 23, 15, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x184009, -1
+ person_event SPRITE_SUPER_NERD, 15, 23, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x18401d, -1
+ person_event SPRITE_SLOWPOKE, 24, 20, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CeruleanCitySlowbro, -1
+ person_event SPRITE_COOLTRAINER_F, 24, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x18402a, -1
+ person_event SPRITE_FISHER, 26, 30, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x18404a, -1
+ person_event SPRITE_YOUNGSTER, 12, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x184064, -1
--- a/maps/CeruleanGym.asm
+++ b/maps/CeruleanGym.asm
@@ -377,9 +377,9 @@
.PersonEvents:
db 6
- person_event SPRITE_ROCKET, 10, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_CERULEAN_GYM_ROCKET
- person_event SPRITE_MISTY, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, MistyScript_0x188432, EVENT_TRAINERS_IN_CERULEAN_GYM
- person_event SPRITE_SWIMMER_GIRL, 6, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfDiana, EVENT_TRAINERS_IN_CERULEAN_GYM
- person_event SPRITE_SWIMMER_GIRL, 9, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerSwimmerfBriana, EVENT_TRAINERS_IN_CERULEAN_GYM
- person_event SPRITE_SWIMMER_GUY, 9, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermParker, EVENT_TRAINERS_IN_CERULEAN_GYM
- person_event SPRITE_GYM_GUY, 13, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CeruleanGymGuyScript, EVENT_TRAINERS_IN_CERULEAN_GYM
+ person_event SPRITE_ROCKET, 10, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_CERULEAN_GYM_ROCKET
+ person_event SPRITE_MISTY, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, MistyScript_0x188432, EVENT_TRAINERS_IN_CERULEAN_GYM
+ person_event SPRITE_SWIMMER_GIRL, 6, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerSwimmerfDiana, EVENT_TRAINERS_IN_CERULEAN_GYM
+ person_event SPRITE_SWIMMER_GIRL, 9, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerSwimmerfBriana, EVENT_TRAINERS_IN_CERULEAN_GYM
+ person_event SPRITE_SWIMMER_GUY, 9, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerSwimmermParker, EVENT_TRAINERS_IN_CERULEAN_GYM
+ person_event SPRITE_GYM_GUY, 13, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, CeruleanGymGuyScript, EVENT_TRAINERS_IN_CERULEAN_GYM
--- a/maps/CeruleanGymBadgeSpeechHouse.asm
+++ b/maps/CeruleanGymBadgeSpeechHouse.asm
@@ -30,4 +30,4 @@
.PersonEvents:
db 1
- person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x188002, -1
+ person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x188002, -1
--- a/maps/CeruleanMart.asm
+++ b/maps/CeruleanMart.asm
@@ -57,6 +57,6 @@
.PersonEvents:
db 3
- person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x188ac0, -1
- person_event SPRITE_COOLTRAINER_M, 6, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerMScript_0x188ac7, -1
- person_event SPRITE_COOLTRAINER_F, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerFScript_0x188aca, -1
+ person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x188ac0, -1
+ person_event SPRITE_COOLTRAINER_M, 6, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x188ac7, -1
+ person_event SPRITE_COOLTRAINER_F, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x188aca, -1
--- a/maps/CeruleanPokeCenter1F.asm
+++ b/maps/CeruleanPokeCenter1F.asm
@@ -9,11 +9,11 @@
jumpstd pokecenternurse
SuperNerdScript_0x188212:
- special Function10630f
- iftrue UnknownScript_0x18821b
+ special Mobile_DummyReturnFalse
+ iftrue .mobile
jumptextfaceplayer UnknownText_0x188221
-UnknownScript_0x18821b:
+.mobile:
jumptextfaceplayer UnknownText_0x18828c
GymGuyScript_0x18821e:
@@ -75,6 +75,6 @@
.PersonEvents:
db 3
- person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x18820f, -1
- person_event SPRITE_SUPER_NERD, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, SuperNerdScript_0x188212, -1
- person_event SPRITE_GYM_GUY, 5, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GymGuyScript_0x18821e, -1
+ person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x18820f, -1
+ person_event SPRITE_SUPER_NERD, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x188212, -1
+ person_event SPRITE_GYM_GUY, 5, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x18821e, -1
--- a/maps/CeruleanPoliceStation.asm
+++ b/maps/CeruleanPoliceStation.asm
@@ -55,6 +55,6 @@
.PersonEvents:
db 3
- person_event SPRITE_FISHING_GURU, 1, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FishingGuruScript_0x18804a, -1
- person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, PokefanFScript_0x18804d, -1
- person_event SPRITE_DIGLETT, 5, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, DiglettScript_0x188050, -1
+ person_event SPRITE_FISHING_GURU, 1, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x18804a, -1
+ person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x18804d, -1
+ person_event SPRITE_DIGLETT, 5, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, DiglettScript_0x188050, -1
--- a/maps/CeruleanTradeSpeechHouse.asm
+++ b/maps/CeruleanTradeSpeechHouse.asm
@@ -64,7 +64,7 @@
.PersonEvents:
db 4
- person_event SPRITE_GRANNY, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrannyScript_0x188133, -1
- person_event SPRITE_GRAMPS, 2, 1, SPRITEMOVEDATA_WANDER, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GrampsScript_0x188136, -1
- person_event SPRITE_RHYDON, 2, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, RhydonScript_0x188139, -1
- person_event SPRITE_ZUBAT, 6, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, ZubatScript_0x188143, -1
+ person_event SPRITE_GRANNY, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GrannyScript_0x188133, -1
+ person_event SPRITE_GRAMPS, 2, 1, SPRITEMOVEDATA_WANDER, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x188136, -1
+ person_event SPRITE_RHYDON, 2, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, RhydonScript_0x188139, -1
+ person_event SPRITE_ZUBAT, 6, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ZubatScript_0x188143, -1
--- a/maps/CharcoalKiln.asm
+++ b/maps/CharcoalKiln.asm
@@ -163,6 +163,6 @@
.PersonEvents:
db 3
- person_event SPRITE_BLACK_BELT, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, CharcoalKilnBoss, EVENT_CHARCOAL_KILN_BOSS
- person_event SPRITE_YOUNGSTER, 3, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, CharcoalKilnApprentice, EVENT_CHARCOAL_KILN_APPRENTICE
- person_event SPRITE_MOLTRES, 6, 5, SPRITEMOVEDATA_POKEMON, 2, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CharcoalKilnFarfetchd, EVENT_CHARCOAL_KILN_FARFETCH_D
+ person_event SPRITE_BLACK_BELT, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CharcoalKilnBoss, EVENT_CHARCOAL_KILN_BOSS
+ person_event SPRITE_YOUNGSTER, 3, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CharcoalKilnApprentice, EVENT_CHARCOAL_KILN_APPRENTICE
+ person_event SPRITE_MOLTRES, 6, 5, SPRITEMOVEDATA_POKEMON, 2, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, CharcoalKilnFarfetchd, EVENT_CHARCOAL_KILN_FARFETCH_D
--- a/maps/CherrygroveCity.asm
+++ b/maps/CherrygroveCity.asm
@@ -103,7 +103,7 @@
UnknownScript_0x19c0ae:
spriteface PLAYER, RIGHT
showemote EMOTE_SHOCK, PLAYER, 15
- special Functionc48f
+ special Special_RotatePalettesRightMusic
pause 15
appear $3
applymovement $3, MovementData_0x19c1ce
@@ -431,7 +431,7 @@
done
UnknownText_0x19c4e2:
- text $56, " ", $56, " ", $56
+ text "<......> <......> <......>"
para "You got a #MON"
line "at the LAB."
@@ -439,7 +439,7 @@
para "What a waste."
line "A wimp like you."
- para $56, " ", $56, " ", $56
+ para "<......> <......> <......>"
para "Don't you get what"
line "I'm saying?"
@@ -457,7 +457,7 @@
done
UnknownText_0x19c59e:
- text $56, " ", $56, " ", $56
+ text "<......> <......> <......>"
para "My name's ???."
@@ -473,7 +473,7 @@
done
UnknownText_0x19c608:
- text $56, " ", $56, " ", $56
+ text "<......> <......> <......>"
para "My name's ???."
@@ -570,8 +570,8 @@
.PersonEvents:
db 5
- person_event SPRITE_GRAMPS, 6, 32, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, CherrygroveCityGuideGent, EVENT_GUIDE_GENT_IN_HIS_HOUSE
- person_event SPRITE_SILVER, 6, 39, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_CHERRYGROVE_CITY
- person_event SPRITE_TEACHER, 12, 27, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x19c146, -1
- person_event SPRITE_YOUNGSTER, 7, 23, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x19c15a, -1
- person_event SPRITE_FISHER, 12, 7, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, MysticWaterGuy, -1
+ person_event SPRITE_GRAMPS, 6, 32, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CherrygroveCityGuideGent, EVENT_GUIDE_GENT_IN_HIS_HOUSE
+ person_event SPRITE_SILVER, 6, 39, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_RIVAL_CHERRYGROVE_CITY
+ person_event SPRITE_TEACHER, 12, 27, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x19c146, -1
+ person_event SPRITE_YOUNGSTER, 7, 23, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x19c15a, -1
+ person_event SPRITE_FISHER, 12, 7, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, MysticWaterGuy, -1
--- a/maps/CherrygroveEvolutionSpeechHouse.asm
+++ b/maps/CherrygroveEvolutionSpeechHouse.asm
@@ -56,5 +56,5 @@
.PersonEvents:
db 2
- person_event SPRITE_LASS, 5, 3, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x196cb9, -1
- person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x196cb2, -1
+ person_event SPRITE_LASS, 5, 3, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x196cb9, -1
+ person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x196cb2, -1
--- a/maps/CherrygroveGymSpeechHouse.asm
+++ b/maps/CherrygroveGymSpeechHouse.asm
@@ -59,5 +59,5 @@
.PersonEvents:
db 2
- person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x196ae1, -1
- person_event SPRITE_BUG_CATCHER, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, BugCatcherScript_0x196ae4, -1
+ person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x196ae1, -1
+ person_event SPRITE_BUG_CATCHER, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x196ae4, -1
--- a/maps/CherrygroveMart.asm
+++ b/maps/CherrygroveMart.asm
@@ -83,6 +83,6 @@
.PersonEvents:
db 3
- person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x19680a, -1
- person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, 0, 0, CooltrainerMScript_0x19681d, -1
- person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x196831, -1
+ person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x19680a, -1
+ person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x19681d, -1
+ person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x196831, -1
--- a/maps/CherrygrovePokeCenter1F.asm
+++ b/maps/CherrygrovePokeCenter1F.asm
@@ -80,7 +80,7 @@
.PersonEvents:
db 4
- person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x19696d, -1
- person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x196970, -1
- person_event SPRITE_GENTLEMAN, 6, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x196973, -1
- person_event SPRITE_TEACHER, 6, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x196976, -1
+ person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x19696d, -1
+ person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x196970, -1
+ person_event SPRITE_GENTLEMAN, 6, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x196973, -1
+ person_event SPRITE_TEACHER, 6, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x196976, -1
--- a/maps/CianwoodCity.asm
+++ b/maps/CianwoodCity.asm
@@ -66,7 +66,7 @@
applymovement $c, MovementData_0x1a00ec
disappear $c
pause 20
- special Functionc48f
+ special Special_RotatePalettesRightMusic
playmapmusic
pause 10
.Done
@@ -401,15 +401,15 @@
.PersonEvents:
db 12
- person_event SPRITE_STANDING_YOUNGSTER, 37, 21, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, StandingYoungsterScript_0x1a00b3, -1
- person_event SPRITE_POKEFAN_M, 33, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, PokefanMScript_0x1a00b6, -1
- person_event SPRITE_LASS, 42, 14, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, 0, 0, 0, LassScript_0x1a00b9, -1
- person_event SPRITE_ROCK, 16, 8, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
- person_event SPRITE_ROCK, 17, 9, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
- person_event SPRITE_ROCK, 25, 4, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
- person_event SPRITE_ROCK, 29, 5, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
- person_event SPRITE_ROCK, 27, 10, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
- person_event SPRITE_ROCK, 19, 4, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
- person_event SPRITE_POKEFAN_F, 46, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, PokefanFScript_0x1a0084, -1
- person_event SPRITE_SUPER_NERD, 21, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_CIANWOOD_CITY_EUSINE
- person_event SPRITE_SUICUNE, 14, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY
+ person_event SPRITE_STANDING_YOUNGSTER, 37, 21, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, StandingYoungsterScript_0x1a00b3, -1
+ person_event SPRITE_POKEFAN_M, 33, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x1a00b6, -1
+ person_event SPRITE_LASS, 42, 14, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x1a00b9, -1
+ person_event SPRITE_ROCK, 16, 8, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CianwoodCityRock, -1
+ person_event SPRITE_ROCK, 17, 9, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CianwoodCityRock, -1
+ person_event SPRITE_ROCK, 25, 4, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CianwoodCityRock, -1
+ person_event SPRITE_ROCK, 29, 5, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CianwoodCityRock, -1
+ person_event SPRITE_ROCK, 27, 10, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CianwoodCityRock, -1
+ person_event SPRITE_ROCK, 19, 4, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CianwoodCityRock, -1
+ person_event SPRITE_POKEFAN_F, 46, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x1a0084, -1
+ person_event SPRITE_SUPER_NERD, 21, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_CIANWOOD_CITY_EUSINE
+ person_event SPRITE_SUICUNE, 14, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY
--- a/maps/CianwoodCityPhotoStudio.asm
+++ b/maps/CianwoodCityPhotoStudio.asm
@@ -62,4 +62,4 @@
.PersonEvents:
db 1
- person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FishingGuruScript_0x9e0e0, -1
+ person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x9e0e0, -1
--- a/maps/CianwoodGym.asm
+++ b/maps/CianwoodGym.asm
@@ -313,12 +313,12 @@
.PersonEvents:
db 9
- person_event SPRITE_CHUCK, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, ChuckScript_0x9d60f, -1
- person_event SPRITE_BLACK_BELT, 12, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBlackbeltYoshi, -1
- person_event SPRITE_BLACK_BELT, 12, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBlackbeltLao, -1
- person_event SPRITE_BLACK_BELT, 9, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerBlackbeltNob, -1
- person_event SPRITE_BLACK_BELT, 5, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerBlackbeltLung, -1
- person_event SPRITE_BOULDER, 1, 5, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1
- person_event SPRITE_BOULDER, 7, 3, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1
- person_event SPRITE_BOULDER, 7, 4, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1
- person_event SPRITE_BOULDER, 7, 5, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1
+ person_event SPRITE_CHUCK, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, ChuckScript_0x9d60f, -1
+ person_event SPRITE_BLACK_BELT, 12, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerBlackbeltYoshi, -1
+ person_event SPRITE_BLACK_BELT, 12, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerBlackbeltLao, -1
+ person_event SPRITE_BLACK_BELT, 9, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerBlackbeltNob, -1
+ person_event SPRITE_BLACK_BELT, 5, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 1, TrainerBlackbeltLung, -1
+ person_event SPRITE_BOULDER, 1, 5, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CianwoodGymBoulder, -1
+ person_event SPRITE_BOULDER, 7, 3, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CianwoodGymBoulder, -1
+ person_event SPRITE_BOULDER, 7, 4, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CianwoodGymBoulder, -1
+ person_event SPRITE_BOULDER, 7, 5, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CianwoodGymBoulder, -1
--- a/maps/CianwoodLugiaSpeechHouse.asm
+++ b/maps/CianwoodLugiaSpeechHouse.asm
@@ -75,6 +75,6 @@
.PersonEvents:
db 3
- person_event SPRITE_TEACHER, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x9e1b0, -1
- person_event SPRITE_LASS, 5, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x9e1b3, -1
- person_event SPRITE_TWIN, 2, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TwinScript_0x9e1b6, -1
+ person_event SPRITE_TEACHER, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x9e1b0, -1
+ person_event SPRITE_LASS, 5, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x9e1b3, -1
+ person_event SPRITE_TWIN, 2, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TwinScript_0x9e1b6, -1
--- a/maps/CianwoodPharmacy.asm
+++ b/maps/CianwoodPharmacy.asm
@@ -90,4 +90,4 @@
.PersonEvents:
db 1
- person_event SPRITE_PHARMACIST, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CianwoodPharmacist, -1
+ person_event SPRITE_PHARMACIST, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CianwoodPharmacist, -1
--- a/maps/CianwoodPokeCenter1F.asm
+++ b/maps/CianwoodPokeCenter1F.asm
@@ -143,7 +143,7 @@
.PersonEvents:
db 4
- person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x9dbcf, -1
- person_event SPRITE_LASS, 5, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x9dbd2, -1
- person_event SPRITE_GYM_GUY, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CianwoodGymGuyScript, -1
- person_event SPRITE_SUPER_NERD, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x9dbea, -1
+ person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x9dbcf, -1
+ person_event SPRITE_LASS, 5, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x9dbd2, -1
+ person_event SPRITE_GYM_GUY, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CianwoodGymGuyScript, -1
+ person_event SPRITE_SUPER_NERD, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x9dbea, -1
--- a/maps/CinnabarIsland.asm
+++ b/maps/CinnabarIsland.asm
@@ -146,4 +146,4 @@
.PersonEvents:
db 1
- person_event SPRITE_BLUE, 6, 9, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, CinnabarIslandBlue, EVENT_BLUE_IN_CINNABAR
+ person_event SPRITE_BLUE, 6, 9, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CinnabarIslandBlue, EVENT_BLUE_IN_CINNABAR
--- a/maps/CinnabarPokeCenter1F.asm
+++ b/maps/CinnabarPokeCenter1F.asm
@@ -47,6 +47,6 @@
.PersonEvents:
db 3
- person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x1ab32c, -1
- person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerFScript_0x1ab32f, -1
- person_event SPRITE_FISHER, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1ab332, -1
+ person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x1ab32c, -1
+ person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x1ab32f, -1
+ person_event SPRITE_FISHER, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x1ab332, -1
--- a/maps/Colosseum.asm
+++ b/maps/Colosseum.asm
@@ -83,5 +83,5 @@
.PersonEvents:
db 2
- person_event SPRITE_CHRIS, 4, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ChrisScript_0x193499, EVENT_GAVE_KURT_APRICORNS
- person_event SPRITE_CHRIS, 4, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ChrisScript_0x193499, EVENT_RECEIVED_BALLS_FROM_KURT
+ person_event SPRITE_CHRIS, 4, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ChrisScript_0x193499, EVENT_GAVE_KURT_APRICORNS
+ person_event SPRITE_CHRIS, 4, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ChrisScript_0x193499, EVENT_RECEIVED_BALLS_FROM_KURT
--- a/maps/CopycatsHouse1F.asm
+++ b/maps/CopycatsHouse1F.asm
@@ -85,6 +85,6 @@
.PersonEvents:
db 3
- person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x18ad13, -1
- person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, PokefanFScript_0x18ad16, -1
- person_event SPRITE_CLEFAIRY, 6, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, ClefairyScript_0x18ad2a, -1
+ person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x18ad13, -1
+ person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x18ad16, -1
+ person_event SPRITE_CLEFAIRY, 6, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClefairyScript_0x18ad2a, -1
--- a/maps/CopycatsHouse2F.asm
+++ b/maps/CopycatsHouse2F.asm
@@ -373,9 +373,9 @@
.PersonEvents:
db 6
- person_event SPRITE_COPYCAT, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, Copycat, EVENT_COPYCAT_1
- person_event SPRITE_MOLTRES, 4, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CopycatsDodrio, -1
- person_event SPRITE_FAIRY, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CopycatsHouse2FDoll, EVENT_COPYCATS_HOUSE_2F_DOLL
- person_event SPRITE_MONSTER, 1, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CopycatsHouse2FDoll, -1
- person_event SPRITE_BIRD, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CopycatsHouse2FDoll, -1
- person_event SPRITE_COPYCAT, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, Copycat, EVENT_COPYCAT_2
+ person_event SPRITE_COPYCAT, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, Copycat, EVENT_COPYCAT_1
+ person_event SPRITE_MOLTRES, 4, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, CopycatsDodrio, -1
+ person_event SPRITE_FAIRY, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CopycatsHouse2FDoll, EVENT_COPYCATS_HOUSE_2F_DOLL
+ person_event SPRITE_MONSTER, 1, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CopycatsHouse2FDoll, -1
+ person_event SPRITE_BIRD, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, CopycatsHouse2FDoll, -1
+ person_event SPRITE_COPYCAT, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, Copycat, EVENT_COPYCAT_2
--- a/maps/DanceTheatre.asm
+++ b/maps/DanceTheatre.asm
@@ -345,12 +345,12 @@
.PersonEvents:
db 9
- person_event SPRITE_KIMONO_GIRL, 2, 0, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 0, TrainerKimono_girlNaoko2, -1
- person_event SPRITE_KIMONO_GIRL, 1, 2, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 0, TrainerKimono_girlSayo, -1
- person_event SPRITE_KIMONO_GIRL, 2, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 0, TrainerKimono_girlZuki, -1
- person_event SPRITE_KIMONO_GIRL, 1, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 0, TrainerKimono_girlKuni, -1
- person_event SPRITE_KIMONO_GIRL, 2, 11, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 0, TrainerKimono_girlMiki, -1
- person_event SPRITE_GENTLEMAN, 10, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x994c6, -1
- person_event SPRITE_RHYDON, 8, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, RhydonScript_0x9951b, -1
- person_event SPRITE_COOLTRAINER_M, 10, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x99525, -1
- person_event SPRITE_GRANNY, 6, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x99528, -1
+ person_event SPRITE_KIMONO_GIRL, 2, 0, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 0, TrainerKimono_girlNaoko2, -1
+ person_event SPRITE_KIMONO_GIRL, 1, 2, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 0, TrainerKimono_girlSayo, -1
+ person_event SPRITE_KIMONO_GIRL, 2, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 0, TrainerKimono_girlZuki, -1
+ person_event SPRITE_KIMONO_GIRL, 1, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 0, TrainerKimono_girlKuni, -1
+ person_event SPRITE_KIMONO_GIRL, 2, 11, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 0, TrainerKimono_girlMiki, -1
+ person_event SPRITE_GENTLEMAN, 10, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x994c6, -1
+ person_event SPRITE_RHYDON, 8, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, RhydonScript_0x9951b, -1
+ person_event SPRITE_COOLTRAINER_M, 10, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x99525, -1
+ person_event SPRITE_GRANNY, 6, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x99528, -1
--- a/maps/DarkCaveBlackthornEntrance.asm
+++ b/maps/DarkCaveBlackthornEntrance.asm
@@ -73,6 +73,6 @@
.PersonEvents:
db 3
- person_event SPRITE_PHARMACIST, 3, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, PharmacistScript_0x18c720, -1
- person_event SPRITE_POKE_BALL, 24, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c73b, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_REVIVE
- person_event SPRITE_POKE_BALL, 22, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c73d, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_TM_SNORE
+ person_event SPRITE_PHARMACIST, 3, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PharmacistScript_0x18c720, -1
+ person_event SPRITE_POKE_BALL, 24, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c73b, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_REVIVE
+ person_event SPRITE_POKE_BALL, 22, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c73d, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_TM_SNORE
--- a/maps/DarkCaveVioletEntrance.asm
+++ b/maps/DarkCaveVioletEntrance.asm
@@ -43,11 +43,11 @@
.PersonEvents:
db 8
- person_event SPRITE_POKE_BALL, 8, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c68e, EVENT_DARK_CAVE_VIOLET_ENTRANCE_POTION
- person_event SPRITE_ROCK, 14, 16, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1
- person_event SPRITE_ROCK, 6, 27, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1
- person_event SPRITE_ROCK, 14, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1
- person_event SPRITE_ROCK, 31, 36, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1
- person_event SPRITE_POKE_BALL, 22, 36, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c690, EVENT_DARK_CAVE_VIOLET_ENTRANCE_FULL_HEAL
- person_event SPRITE_POKE_BALL, 9, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c692, EVENT_DARK_CAVE_VIOLET_ENTRANCE_HYPER_POTION
- person_event SPRITE_POKE_BALL, 28, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c694, EVENT_DARK_CAVE_VIOLET_ENTRANCE_DIRE_HIT
+ person_event SPRITE_POKE_BALL, 8, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c68e, EVENT_DARK_CAVE_VIOLET_ENTRANCE_POTION
+ person_event SPRITE_ROCK, 14, 16, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DarkCaveVioletEntranceRock, -1
+ person_event SPRITE_ROCK, 6, 27, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DarkCaveVioletEntranceRock, -1
+ person_event SPRITE_ROCK, 14, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DarkCaveVioletEntranceRock, -1
+ person_event SPRITE_ROCK, 31, 36, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DarkCaveVioletEntranceRock, -1
+ person_event SPRITE_POKE_BALL, 22, 36, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c690, EVENT_DARK_CAVE_VIOLET_ENTRANCE_FULL_HEAL
+ person_event SPRITE_POKE_BALL, 9, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c692, EVENT_DARK_CAVE_VIOLET_ENTRANCE_HYPER_POTION
+ person_event SPRITE_POKE_BALL, 28, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c694, EVENT_DARK_CAVE_VIOLET_ENTRANCE_DIRE_HIT
--- a/maps/DayCare.asm
+++ b/maps/DayCare.asm
@@ -175,5 +175,5 @@
.PersonEvents:
db 2
- person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x62f8f, EVENT_DAYCARE_MAN_IN_DAYCARE
- person_event SPRITE_GRANNY, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GrannyScript_0x62fc3, -1
+ person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x62f8f, EVENT_DAYCARE_MAN_IN_DAYCARE
+ person_event SPRITE_GRANNY, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GrannyScript_0x62fc3, -1
--- a/maps/DiglettsCave.asm
+++ b/maps/DiglettsCave.asm
@@ -42,4 +42,4 @@
.PersonEvents:
db 1
- person_event SPRITE_POKEFAN_M, 31, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x74002, -1
+ person_event SPRITE_POKEFAN_M, 31, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x74002, -1
--- a/maps/DragonShrine.asm
+++ b/maps/DragonShrine.asm
@@ -130,7 +130,7 @@
writetext UnknownText_0x18d916
closetext
loadmovesprites
- special Functionc48f
+ special Special_RotatePalettesRightMusic
applymovement $5, MovementData_0x18d2da
loadfont
writetext UnknownText_0x18d974
@@ -681,7 +681,7 @@
.PersonEvents:
db 4
- person_event SPRITE_ELDER, 1, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ElderScript_0x18d1a5, EVENT_GAVE_KURT_APRICORNS
- person_event SPRITE_ELDER, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ElderScript_0x18d205, EVENT_GAVE_KURT_APRICORNS
- person_event SPRITE_ELDER, 4, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ElderScript_0x18d20d, EVENT_GAVE_KURT_APRICORNS
- person_event SPRITE_CLAIR, 8, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_DRAGON_SHRINE_CLAIR
+ person_event SPRITE_ELDER, 1, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ElderScript_0x18d1a5, EVENT_GAVE_KURT_APRICORNS
+ person_event SPRITE_ELDER, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ElderScript_0x18d205, EVENT_GAVE_KURT_APRICORNS
+ person_event SPRITE_ELDER, 4, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ElderScript_0x18d20d, EVENT_GAVE_KURT_APRICORNS
+ person_event SPRITE_CLAIR, 8, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_DRAGON_SHRINE_CLAIR
--- a/maps/DragonsDenB1F.asm
+++ b/maps/DragonsDenB1F.asm
@@ -70,7 +70,7 @@
loadmovesprites
UnknownScript_0x18c8f9:
applymovement $3, MovementData_0x18c9b3
- special Functionc48f
+ special Special_RotatePalettesRightMusic
pause 30
special RestartMapMusic
disappear $3
@@ -419,12 +419,12 @@
.PersonEvents:
db 9
- person_event SPRITE_POKE_BALL, 16, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, PokeBallScript_0x18c95a, EVENT_DRAGONS_DEN_B1F_DRAGON_FANG
- person_event SPRITE_CLAIR, 30, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_DRAGONS_DEN_CLAIR
- person_event SPRITE_SILVER, 23, 20, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, SilverScript_0x18c97e, EVENT_RIVAL_DRAGONS_DEN
- person_event SPRITE_COOLTRAINER_M, 8, 20, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerCooltrainermDarin, -1
- person_event SPRITE_COOLTRAINER_F, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfCara, -1
- person_event SPRITE_TWIN, 17, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsLeaandpia1, -1
- person_event SPRITE_TWIN, 18, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsLeaandpia2, -1
- person_event SPRITE_POKE_BALL, 4, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c9a1, EVENT_DRAGONS_DEN_B1F_CALCIUM
- person_event SPRITE_POKE_BALL, 20, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c9a3, EVENT_DRAGONS_DEN_B1F_MAX_ELIXER
+ person_event SPRITE_POKE_BALL, 16, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokeBallScript_0x18c95a, EVENT_DRAGONS_DEN_B1F_DRAGON_FANG
+ person_event SPRITE_CLAIR, 30, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_DRAGONS_DEN_CLAIR
+ person_event SPRITE_SILVER, 23, 20, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SilverScript_0x18c97e, EVENT_RIVAL_DRAGONS_DEN
+ person_event SPRITE_COOLTRAINER_M, 8, 20, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerCooltrainermDarin, -1
+ person_event SPRITE_COOLTRAINER_F, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerCooltrainerfCara, -1
+ person_event SPRITE_TWIN, 17, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerTwinsLeaandpia1, -1
+ person_event SPRITE_TWIN, 18, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerTwinsLeaandpia2, -1
+ person_event SPRITE_POKE_BALL, 4, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c9a1, EVENT_DRAGONS_DEN_B1F_CALCIUM
+ person_event SPRITE_POKE_BALL, 20, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c9a3, EVENT_DRAGONS_DEN_B1F_MAX_ELIXER
--- a/maps/EarlsPokemonAcademy.asm
+++ b/maps/EarlsPokemonAcademy.asm
@@ -425,9 +425,9 @@
.PersonEvents:
db 6
- person_event SPRITE_FISHER, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, AcademyEarl, EVENT_EARLS_ACADEMY_EARL
- person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x68a83, -1
- person_event SPRITE_GAMEBOY_KID, 11, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, GameboyKidScript_0x68a86, -1
- person_event SPRITE_GAMEBOY_KID, 11, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GameboyKidScript_0x68a91, -1
- person_event SPRITE_YOUNGSTER, 7, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, YoungsterScript_0x68a9c, -1
- person_event SPRITE_POKEDEX, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, AcademyNotebook, -1
+ person_event SPRITE_FISHER, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, AcademyEarl, EVENT_EARLS_ACADEMY_EARL
+ person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x68a83, -1
+ person_event SPRITE_GAMEBOY_KID, 11, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x68a86, -1
+ person_event SPRITE_GAMEBOY_KID, 11, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x68a91, -1
+ person_event SPRITE_YOUNGSTER, 7, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x68a9c, -1
+ person_event SPRITE_POKEDEX, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, AcademyNotebook, -1
--- a/maps/EcruteakCity.asm
+++ b/maps/EcruteakCity.asm
@@ -290,10 +290,10 @@
.PersonEvents:
db 7
- person_event SPRITE_GRAMPS, 15, 18, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, GrampsScript_0x1a4009, -1
- person_event SPRITE_GRAMPS, 21, 20, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x1a400c, -1
- person_event SPRITE_LASS, 29, 21, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LassScript_0x1a4012, -1
- person_event SPRITE_LASS, 9, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, LassScript_0x1a4015, -1
- person_event SPRITE_FISHER, 22, 9, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1a4029, -1
- person_event SPRITE_YOUNGSTER, 14, 10, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x1a403d, -1
- person_event SPRITE_GRAMPS, 7, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GrampsScript_0x1a400f, EVENT_ECRUTEAK_CITY_GRAMPS
+ person_event SPRITE_GRAMPS, 15, 18, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a4009, -1
+ person_event SPRITE_GRAMPS, 21, 20, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a400c, -1
+ person_event SPRITE_LASS, 29, 21, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, LassScript_0x1a4012, -1
+ person_event SPRITE_LASS, 9, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x1a4015, -1
+ person_event SPRITE_FISHER, 22, 9, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x1a4029, -1
+ person_event SPRITE_YOUNGSTER, 14, 10, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a403d, -1
+ person_event SPRITE_GRAMPS, 7, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a400f, EVENT_ECRUTEAK_CITY_GRAMPS
--- a/maps/EcruteakGym.asm
+++ b/maps/EcruteakGym.asm
@@ -429,10 +429,10 @@
.PersonEvents:
db 7
- person_event SPRITE_MORTY, 1, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MortyScript_0x99d58, -1
- person_event SPRITE_SAGE, 7, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSageJeffrey, -1
- person_event SPRITE_SAGE, 13, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSagePing, -1
- person_event SPRITE_GRANNY, 5, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerMediumMartha, -1
- person_event SPRITE_GRANNY, 9, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerMediumGrace, -1
- person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, EcruteakGymGuyScript, -1
- person_event SPRITE_GRAMPS, 14, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ObjectEvent, EVENT_ECRUTEAK_GYM_GRAMPS
+ person_event SPRITE_MORTY, 1, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, MortyScript_0x99d58, -1
+ person_event SPRITE_SAGE, 7, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerSageJeffrey, -1
+ person_event SPRITE_SAGE, 13, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSagePing, -1
+ person_event SPRITE_GRANNY, 5, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 1, TrainerMediumMartha, -1
+ person_event SPRITE_GRANNY, 9, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 1, TrainerMediumGrace, -1
+ person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, EcruteakGymGuyScript, -1
+ person_event SPRITE_GRAMPS, 14, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_ECRUTEAK_GYM_GRAMPS
--- a/maps/EcruteakHouse.asm
+++ b/maps/EcruteakHouse.asm
@@ -298,7 +298,7 @@
.PersonEvents:
db 4
- person_event SPRITE_SAGE, 6, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, SageScript_0x98062, EVENT_RANG_CLEAR_BELL_1
- person_event SPRITE_SAGE, 6, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, SageScript_0x98062, EVENT_RANG_CLEAR_BELL_2
- person_event SPRITE_SAGE, 9, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, SageScript_0x980b0, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE
- person_event SPRITE_GRAMPS, 11, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, GrampsScript_0x980c4, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE
+ person_event SPRITE_SAGE, 6, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x98062, EVENT_RANG_CLEAR_BELL_1
+ person_event SPRITE_SAGE, 6, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x98062, EVENT_RANG_CLEAR_BELL_2
+ person_event SPRITE_SAGE, 9, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x980b0, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE
+ person_event SPRITE_GRAMPS, 11, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x980c4, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE
--- a/maps/EcruteakItemfinderHouse.asm
+++ b/maps/EcruteakItemfinderHouse.asm
@@ -176,5 +176,5 @@
.PersonEvents:
db 2
- person_event SPRITE_COOLTRAINER_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x9a5fb, -1
- person_event SPRITE_POKEDEX, 3, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, PokedexScript_0x9a620, -1
+ person_event SPRITE_COOLTRAINER_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x9a5fb, -1
+ person_event SPRITE_POKEDEX, 3, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokedexScript_0x9a620, -1
--- a/maps/EcruteakLugiaSpeechHouse.asm
+++ b/maps/EcruteakLugiaSpeechHouse.asm
@@ -58,5 +58,5 @@
.PersonEvents:
db 2
- person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x99334, -1
- person_event SPRITE_YOUNGSTER, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, YoungsterScript_0x99337, -1
+ person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x99334, -1
+ person_event SPRITE_YOUNGSTER, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x99337, -1
--- a/maps/EcruteakMart.asm
+++ b/maps/EcruteakMart.asm
@@ -57,6 +57,6 @@
.PersonEvents:
db 3
- person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x99c3b, -1
- person_event SPRITE_SUPER_NERD, 2, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x99c42, -1
- person_event SPRITE_GRANNY, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x99c45, -1
+ person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x99c3b, -1
+ person_event SPRITE_SUPER_NERD, 2, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x99c42, -1
+ person_event SPRITE_GRANNY, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x99c45, -1
--- a/maps/EcruteakPokeCenter1F.asm
+++ b/maps/EcruteakPokeCenter1F.asm
@@ -56,11 +56,11 @@
jumpstd pokecenternurse
PokefanMScript_0x98eb3:
- special Function10630f
- iftrue UnknownScript_0x98ebc
+ special Mobile_DummyReturnFalse
+ iftrue .mobile
jumptextfaceplayer UnknownText_0x99155
-UnknownScript_0x98ebc:
+.mobile:
jumptextfaceplayer UnknownText_0x991aa
CooltrainerFScript_0x98ebf:
@@ -219,8 +219,8 @@
.PersonEvents:
db 5
- person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x98eb0, -1
- person_event SPRITE_POKEFAN_M, 6, 7, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x98eb3, -1
- person_event SPRITE_COOLTRAINER_F, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x98ebf, -1
- person_event SPRITE_GYM_GUY, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GymGuyScript_0x98ec2, -1
- person_event SPRITE_BILL, 7, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_ECRUTEAK_POKE_CENTER_BILL
+ person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x98eb0, -1
+ person_event SPRITE_POKEFAN_M, 6, 7, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x98eb3, -1
+ person_event SPRITE_COOLTRAINER_F, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x98ebf, -1
+ person_event SPRITE_GYM_GUY, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x98ec2, -1
+ person_event SPRITE_BILL, 7, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_ECRUTEAK_POKE_CENTER_BILL
--- a/maps/ElmsHouse.asm
+++ b/maps/ElmsHouse.asm
@@ -99,5 +99,5 @@
.PersonEvents:
db 2
- person_event SPRITE_TEACHER, 5, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ElmsWife, -1
- person_event SPRITE_BUG_CATCHER, 4, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ElmsSon, -1
+ person_event SPRITE_TEACHER, 5, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ElmsWife, -1
+ person_event SPRITE_BUG_CATCHER, 4, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ElmsSon, -1
--- a/maps/ElmsLab.asm
+++ b/maps/ElmsLab.asm
@@ -1408,9 +1408,9 @@
.PersonEvents:
db 6
- person_event SPRITE_ELM, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ProfElmScript, -1
- person_event SPRITE_SCIENTIST, 9, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ElmsAideScript, EVENT_ELMS_AIDE_IN_LAB
- person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, CyndaquilPokeBallScript, EVENT_CYNDAQUIL_POKEBALL_IN_ELMS_LAB
- person_event SPRITE_POKE_BALL, 3, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, TotodilePokeBallScript, EVENT_TOTODILE_POKEBALL_IN_ELMS_LAB
- person_event SPRITE_POKE_BALL, 3, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, ChikoritaPokeBallScript, EVENT_CHIKORITA_POKEBALL_IN_ELMS_LAB
- person_event SPRITE_OFFICER, 3, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CopScript, EVENT_COP_IN_ELMS_LAB
+ person_event SPRITE_ELM, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ProfElmScript, -1
+ person_event SPRITE_SCIENTIST, 9, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ElmsAideScript, EVENT_ELMS_AIDE_IN_LAB
+ person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CyndaquilPokeBallScript, EVENT_CYNDAQUIL_POKEBALL_IN_ELMS_LAB
+ person_event SPRITE_POKE_BALL, 3, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TotodilePokeBallScript, EVENT_TOTODILE_POKEBALL_IN_ELMS_LAB
+ person_event SPRITE_POKE_BALL, 3, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ChikoritaPokeBallScript, EVENT_CHIKORITA_POKEBALL_IN_ELMS_LAB
+ person_event SPRITE_OFFICER, 3, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, CopScript, EVENT_COP_IN_ELMS_LAB
--- a/maps/FastShip1F.asm
+++ b/maps/FastShip1F.asm
@@ -30,11 +30,11 @@
blackoutmod FAST_SHIP_CABINS_SW_SSW_NW
clearevent EVENT_FAST_SHIP_HAS_ARRIVED
checkevent EVENT_FAST_SHIP_FIRST_TIME
- iftrue .Vermilion
+ iftrue .SkipGrandpa
dotrigger $2
end
-.Vermilion:
+.SkipGrandpa:
dotrigger $0
end
@@ -115,10 +115,10 @@
SailorScript_0x751e4:
jumptextfaceplayer UnknownText_0x753c0
-UnknownScript_0x751e7:
+WorriedGrandpaTriggerRight:
moveperson $5, $14, $6
-UnknownScript_0x751eb:
+WorriedGrandpaTriggerLeft:
appear $5
applymovement $5, MovementData_0x7521b
playsound SFX_TACKLE
@@ -287,7 +287,7 @@
.Warps:
db 12
- warp_def $1, $19, 255, FAST_SHIP_1F
+ warp_def $1, $19, -1, FAST_SHIP_1F
warp_def $8, $1b, 1, FAST_SHIP_CABINS_NNW_NNE_NE
warp_def $8, $17, 2, FAST_SHIP_CABINS_NNW_NNE_NE
warp_def $8, $13, 3, FAST_SHIP_CABINS_NNW_NNE_NE
@@ -302,8 +302,8 @@
.XYTriggers:
db 2
- xy_trigger 2, $6, $18, $0, UnknownScript_0x751eb, $0, $0
- xy_trigger 2, $6, $19, $0, UnknownScript_0x751e7, $0, $0
+ xy_trigger 2, $6, $18, $0, WorriedGrandpaTriggerLeft, $0, $0
+ xy_trigger 2, $6, $19, $0, WorriedGrandpaTriggerRight, $0, $0
.Signposts:
db 0
@@ -310,7 +310,7 @@
.PersonEvents:
db 4
- person_event SPRITE_SAILOR, 2, 25, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x75160, -1
- person_event SPRITE_SAILOR, 7, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x751d0, -1
- person_event SPRITE_SAILOR, 17, 22, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, 0, 0, SailorScript_0x751e4, -1
- person_event SPRITE_GENTLEMAN, 6, 19, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_FAST_SHIP_1F_GENTLEMAN
+ person_event SPRITE_SAILOR, 2, 25, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x75160, -1
+ person_event SPRITE_SAILOR, 7, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x751d0, -1
+ person_event SPRITE_SAILOR, 17, 22, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x751e4, -1
+ person_event SPRITE_GENTLEMAN, 6, 19, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_FAST_SHIP_1F_GENTLEMAN
--- a/maps/FastShipB1F.asm
+++ b/maps/FastShipB1F.asm
@@ -456,15 +456,15 @@
.PersonEvents:
db 12
- person_event SPRITE_SAILOR, 6, 30, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SailorScript_0x76767, EVENT_FAST_SHIP_B1F_SAILOR_LEFT
- person_event SPRITE_SAILOR, 6, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SailorScript_0x76767, EVENT_FAST_SHIP_B1F_SAILOR_RIGHT
- person_event SPRITE_SAILOR, 11, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSailorJeff, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
- person_event SPRITE_LASS, 4, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerPicnickerDebra, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
- person_event SPRITE_SUPER_NERD, 9, 26, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerJugglerFritz, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
- person_event SPRITE_SAILOR, 4, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSailorGarrett, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
- person_event SPRITE_FISHER, 8, 25, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerFisherJonah, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
- person_event SPRITE_BLACK_BELT, 11, 15, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBlackbeltWai, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
- person_event SPRITE_SAILOR, 4, 23, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSailorKenneth, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
- person_event SPRITE_TEACHER, 11, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerTeacherShirley, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
- person_event SPRITE_YOUNGSTER, 9, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSchoolboyNate, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
- person_event SPRITE_YOUNGSTER, 11, 14, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSchoolboyRicky, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+ person_event SPRITE_SAILOR, 6, 30, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SailorScript_0x76767, EVENT_FAST_SHIP_B1F_SAILOR_LEFT
+ person_event SPRITE_SAILOR, 6, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SailorScript_0x76767, EVENT_FAST_SHIP_B1F_SAILOR_RIGHT
+ person_event SPRITE_SAILOR, 11, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSailorJeff, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
+ person_event SPRITE_LASS, 4, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerPicnickerDebra, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
+ person_event SPRITE_SUPER_NERD, 9, 26, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerJugglerFritz, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
+ person_event SPRITE_SAILOR, 4, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerSailorGarrett, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+ person_event SPRITE_FISHER, 8, 25, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerFisherJonah, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+ person_event SPRITE_BLACK_BELT, 11, 15, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerBlackbeltWai, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+ person_event SPRITE_SAILOR, 4, 23, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerSailorKenneth, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+ person_event SPRITE_TEACHER, 11, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerTeacherShirley, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+ person_event SPRITE_YOUNGSTER, 9, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerSchoolboyNate, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+ person_event SPRITE_YOUNGSTER, 11, 14, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerSchoolboyRicky, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
--- a/maps/FastShipCabins_NNW_NNE_NE.asm
+++ b/maps/FastShipCabins_NNW_NNE_NE.asm
@@ -278,10 +278,10 @@
.PersonEvents:
db 7
- person_event SPRITE_COOLTRAINER_M, 3, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainermSean, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
- person_event SPRITE_COOLTRAINER_F, 5, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfCarol, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
- person_event SPRITE_SUPER_NERD, 5, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacEthan, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
- person_event SPRITE_POKEFAN_M, 17, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerNoland, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
- person_event SPRITE_SAILOR, 26, 4, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SailorScript_0x755f1, EVENT_FAST_SHIP_CABINS_NNW_NNE_NE_SAILOR
- person_event SPRITE_GENTLEMAN, 30, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerGentlemanEdward, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
- person_event SPRITE_PHARMACIST, 30, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerBurglarCorey, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+ person_event SPRITE_COOLTRAINER_M, 3, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 2, TrainerCooltrainermSean, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+ person_event SPRITE_COOLTRAINER_F, 5, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerCooltrainerfCarol, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+ person_event SPRITE_SUPER_NERD, 5, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPokemaniacEthan, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+ person_event SPRITE_POKEFAN_M, 17, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerHikerNoland, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
+ person_event SPRITE_SAILOR, 26, 4, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SailorScript_0x755f1, EVENT_FAST_SHIP_CABINS_NNW_NNE_NE_SAILOR
+ person_event SPRITE_GENTLEMAN, 30, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerGentlemanEdward, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+ person_event SPRITE_PHARMACIST, 30, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 4, TrainerBurglarCorey, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
--- a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm
+++ b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm
@@ -471,14 +471,14 @@
.PersonEvents:
db 11
- person_event SPRITE_CAPTAIN, 25, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CaptainScript_0x75ea7, -1
- person_event SPRITE_GENTLEMAN, 17, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GentlemanScript_0x75f1f, EVENT_FAST_SHIP_CABINS_SE_SSE_GENTLEMAN
- person_event SPRITE_TWIN, 17, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, 0, 0, TwinScript_0x75f6d, EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_1
- person_event SPRITE_TWIN, 25, 2, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, 0, 0, TwinScript_0x75ebb, EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_2
- person_event SPRITE_POKEFAN_M, 6, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 5, TrainerPokefanmColin, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
- person_event SPRITE_TWIN, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsMegandpeg1, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
- person_event SPRITE_TWIN, 4, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsMegandpeg2, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
- person_event SPRITE_SUPER_NERD, 5, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 5, TrainerPsychicRodney, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
- person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmJeremy, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
- person_event SPRITE_POKEFAN_F, 5, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerPokefanfGeorgia, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
- person_event SPRITE_SUPER_NERD, 15, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerSupernerdShawn, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+ person_event SPRITE_CAPTAIN, 25, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, CaptainScript_0x75ea7, -1
+ person_event SPRITE_GENTLEMAN, 17, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x75f1f, EVENT_FAST_SHIP_CABINS_SE_SSE_GENTLEMAN
+ person_event SPRITE_TWIN, 17, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TwinScript_0x75f6d, EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_1
+ person_event SPRITE_TWIN, 25, 2, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TwinScript_0x75ebb, EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_2
+ person_event SPRITE_POKEFAN_M, 6, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 5, TrainerPokefanmColin, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
+ person_event SPRITE_TWIN, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerTwinsMegandpeg1, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
+ person_event SPRITE_TWIN, 4, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerTwinsMegandpeg2, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
+ person_event SPRITE_SUPER_NERD, 5, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 5, TrainerPsychicRodney, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+ person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerPokefanmJeremy, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+ person_event SPRITE_POKEFAN_F, 5, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerPokefanfGeorgia, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+ person_event SPRITE_SUPER_NERD, 15, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerSupernerdShawn, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
--- a/maps/FastShipCabins_SW_SSW_NW.asm
+++ b/maps/FastShipCabins_SW_SSW_NW.asm
@@ -43,8 +43,8 @@
GuitaristClydeScript:
talkaftercancel
- special Function10630f
- iftrue UnknownScript_0x75aa5
+ special Mobile_DummyReturnFalse
+ iftrue .mobile
loadfont
writetext UnknownText_0x75d65
closetext
@@ -51,7 +51,7 @@
loadmovesprites
end
-UnknownScript_0x75aa5:
+.mobile:
loadfont
writetext UnknownText_0x75cfe
closetext
@@ -239,7 +239,7 @@
.PersonEvents:
db 4
- person_event SPRITE_FISHER, 15, 1, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerFirebreatherLyle, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
- person_event SPRITE_BUG_CATCHER, 15, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerBug_catcherKen, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
- person_event SPRITE_BUENA, 26, 1, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBeautyCassie, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
- person_event SPRITE_ROCKER, 28, 3, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerGuitaristClyde, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+ person_event SPRITE_FISHER, 15, 1, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 2, TrainerFirebreatherLyle, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
+ person_event SPRITE_BUG_CATCHER, 15, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerBug_catcherKen, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+ person_event SPRITE_BUENA, 26, 1, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBeautyCassie, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+ person_event SPRITE_ROCKER, 28, 3, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 2, TrainerGuitaristClyde, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
--- a/maps/FightingDojo.asm
+++ b/maps/FightingDojo.asm
@@ -57,5 +57,5 @@
.PersonEvents:
db 2
- person_event SPRITE_BLACK_BELT, 4, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, BlackBeltScript_0x189b61, -1
- person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x189b6a, EVENT_PICKED_UP_FOCUS_BAND
+ person_event SPRITE_BLACK_BELT, 4, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x189b61, -1
+ person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x189b6a, EVENT_PICKED_UP_FOCUS_BAND
--- a/maps/FuchsiaBillSpeechHouse.asm
+++ b/maps/FuchsiaBillSpeechHouse.asm
@@ -40,5 +40,5 @@
.PersonEvents:
db 2
- person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanFScript_0x1963bd, -1
- person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, YoungsterScript_0x1963c0, -1
+ person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x1963bd, -1
+ person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1963c0, -1
--- a/maps/FuchsiaCity.asm
+++ b/maps/FuchsiaCity.asm
@@ -46,7 +46,7 @@
jumpstd martsign
FruitTreeScript_0x194b43:
- fruittree $1e
+ fruittree FRUITTREE_FUCHSIA_CITY
UnknownText_0x194b45:
text "One of the ELITE"
@@ -154,7 +154,7 @@
.PersonEvents:
db 4
- person_event SPRITE_YOUNGSTER, 18, 23, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x194b22, -1
- person_event SPRITE_POKEFAN_M, 8, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x194b25, -1
- person_event SPRITE_TEACHER, 14, 16, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, TeacherScript_0x194b28, -1
- person_event SPRITE_FRUIT_TREE, 1, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x194b43, -1
+ person_event SPRITE_YOUNGSTER, 18, 23, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x194b22, -1
+ person_event SPRITE_POKEFAN_M, 8, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x194b25, -1
+ person_event SPRITE_TEACHER, 14, 16, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, TeacherScript_0x194b28, -1
+ person_event SPRITE_FRUIT_TREE, 1, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x194b43, -1
--- a/maps/FuchsiaGym.asm
+++ b/maps/FuchsiaGym.asm
@@ -391,9 +391,9 @@
.PersonEvents:
db 6
- person_event SPRITE_JANINE, 10, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, JanineScript_0x195db9, -1
- person_event SPRITE_FUCHSIA_GYM_1, 7, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym1Script_0x195e1b, -1
- person_event SPRITE_FUCHSIA_GYM_2, 11, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym2Script_0x195e55, -1
- person_event SPRITE_FUCHSIA_GYM_3, 4, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym3Script_0x195e8f, -1
- person_event SPRITE_FUCHSIA_GYM_4, 2, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym4Script_0x195ec9, -1
- person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuchsiaGymGuyScript, -1
+ person_event SPRITE_JANINE, 10, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, JanineScript_0x195db9, -1
+ person_event SPRITE_FUCHSIA_GYM_1, 7, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, FuschiaGym1Script_0x195e1b, -1
+ person_event SPRITE_FUCHSIA_GYM_2, 11, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, FuschiaGym2Script_0x195e55, -1
+ person_event SPRITE_FUCHSIA_GYM_3, 4, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, FuschiaGym3Script_0x195e8f, -1
+ person_event SPRITE_FUCHSIA_GYM_4, 2, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, FuschiaGym4Script_0x195ec9, -1
+ person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, FuchsiaGymGuyScript, -1
--- a/maps/FuchsiaMart.asm
+++ b/maps/FuchsiaMart.asm
@@ -49,6 +49,6 @@
.PersonEvents:
db 3
- person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x195ce8, -1
- person_event SPRITE_FISHER, 2, 3, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x195cef, -1
- person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x195cf2, -1
+ person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x195ce8, -1
+ person_event SPRITE_FISHER, 2, 3, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x195cef, -1
+ person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x195cf2, -1
--- a/maps/FuchsiaPokeCenter1F.asm
+++ b/maps/FuchsiaPokeCenter1F.asm
@@ -102,7 +102,7 @@
.PersonEvents:
db 4
- person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, NurseScript_0x196459, -1
- person_event SPRITE_COOLTRAINER_M, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, CooltrainerMScript_0x19645c, -1
- person_event SPRITE_COOLTRAINER_F, 4, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, CooltrainerFScript_0x19645f, -1
- person_event SPRITE_JANINE_IMPERSONATOR, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, JanineImpersonatorScript_0x196462, -1
+ person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, NurseScript_0x196459, -1
+ person_event SPRITE_COOLTRAINER_M, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x19645c, -1
+ person_event SPRITE_COOLTRAINER_F, 4, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x19645f, -1
+ person_event SPRITE_JANINE_IMPERSONATOR, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, JanineImpersonatorScript_0x196462, -1
--- a/maps/GoldenrodBikeShop.asm
+++ b/maps/GoldenrodBikeShop.asm
@@ -125,4 +125,4 @@
.PersonEvents:
db 1
- person_event SPRITE_CLERK, 2, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ClerkScript_0x54750, -1
+ person_event SPRITE_CLERK, 2, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ClerkScript_0x54750, -1
--- a/maps/GoldenrodBillsHouse.asm
+++ b/maps/GoldenrodBillsHouse.asm
@@ -257,6 +257,6 @@
.PersonEvents:
db 3
- person_event SPRITE_BILL, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, BillsHouseBill, EVENT_MET_BILL
- person_event SPRITE_POKEFAN_F, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, BillsMom, -1
- person_event SPRITE_TWIN, 4, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BillsSister, -1
+ person_event SPRITE_BILL, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BillsHouseBill, EVENT_MET_BILL
+ person_event SPRITE_POKEFAN_F, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BillsMom, -1
+ person_event SPRITE_TWIN, 4, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, BillsSister, -1
--- a/maps/GoldenrodCity.asm
+++ b/maps/GoldenrodCity.asm
@@ -61,7 +61,7 @@
.Flamethrower:
writebyte $1
writetext UnknownText_0x1991cf
- special Function4925b
+ special Special_MoveTutor
if_equal $0, .TeachMove
jump .Incompatible
@@ -68,7 +68,7 @@
.Thunderbolt:
writebyte $2
writetext UnknownText_0x1991cf
- special Function4925b
+ special Special_MoveTutor
if_equal $0, .TeachMove
jump .Incompatible
@@ -75,7 +75,7 @@
.IceBeam:
writebyte $3
writetext UnknownText_0x1991cf
- special Function4925b
+ special Special_MoveTutor
if_equal $0, .TeachMove
jump .Incompatible
@@ -581,18 +581,18 @@
.PersonEvents:
db 15
- person_event SPRITE_POKEFAN_M, 18, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x1989e3, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_YOUNGSTER, 17, 30, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, YoungsterScript_0x1989e6, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_COOLTRAINER_F, 16, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x1989e9, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_COOLTRAINER_F, 26, 20, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, 0, 0, CooltrainerFScript_0x1989fd, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_YOUNGSTER, 17, 19, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x198a11, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_LASS, 10, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x198a14, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_GRAMPS, 27, 11, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, GrampsScript_0x198a17, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_ROCKET, 16, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a1a, EVENT_GOLDENROD_CITY_ROCKET_SCOUT
- person_event SPRITE_ROCKET, 20, 28, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a29, EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 15, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a2c, EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 23, 16, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a2f, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 20, 29, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a32, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 7, 29, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a35, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 10, 31, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a38, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_POKEFAN_M, 22, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, MoveTutor, EVENT_GOLDENROD_CITY_MOVE_TUTOR
+ person_event SPRITE_POKEFAN_M, 18, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x1989e3, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_YOUNGSTER, 17, 30, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1989e6, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_COOLTRAINER_F, 16, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x1989e9, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_COOLTRAINER_F, 26, 20, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x1989fd, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_YOUNGSTER, 17, 19, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x198a11, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_LASS, 10, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x198a14, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_GRAMPS, 27, 11, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x198a17, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_ROCKET, 16, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a1a, EVENT_GOLDENROD_CITY_ROCKET_SCOUT
+ person_event SPRITE_ROCKET, 20, 28, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a29, EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 15, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a2c, EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 23, 16, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a2f, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 20, 29, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a32, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 7, 29, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a35, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 10, 31, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a38, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_POKEFAN_M, 22, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, MoveTutor, EVENT_GOLDENROD_CITY_MOVE_TUTOR
--- a/maps/GoldenrodDeptStore1F.asm
+++ b/maps/GoldenrodDeptStore1F.asm
@@ -93,7 +93,7 @@
.PersonEvents:
db 4
- person_event SPRITE_RECEPTIONIST, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ReceptionistScript_0x55981, -1
- person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, PokefanFScript_0x55987, -1
- person_event SPRITE_BUG_CATCHER, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BugCatcherScript_0x5598a, -1
- person_event SPRITE_GENTLEMAN, 5, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, GentlemanScript_0x55984, -1
+ person_event SPRITE_RECEPTIONIST, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x55981, -1
+ person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x55987, -1
+ person_event SPRITE_BUG_CATCHER, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x5598a, -1
+ person_event SPRITE_GENTLEMAN, 5, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x55984, -1
--- a/maps/GoldenrodDeptStore2F.asm
+++ b/maps/GoldenrodDeptStore2F.asm
@@ -113,8 +113,8 @@
.PersonEvents:
db 5
- person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x55b5d, -1
- person_event SPRITE_CLERK, 6, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x55b65, -1
- person_event SPRITE_YOUNGSTER, 6, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, YoungsterScript_0x55b6d, -1
- person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerFScript_0x55b70, -1
- person_event SPRITE_GENTLEMAN, 6, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x55b73, -1
+ person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x55b5d, -1
+ person_event SPRITE_CLERK, 6, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x55b65, -1
+ person_event SPRITE_YOUNGSTER, 6, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x55b6d, -1
+ person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x55b70, -1
+ person_event SPRITE_GENTLEMAN, 6, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x55b73, -1
--- a/maps/GoldenrodDeptStore3F.asm
+++ b/maps/GoldenrodDeptStore3F.asm
@@ -71,6 +71,6 @@
.PersonEvents:
db 3
- person_event SPRITE_CLERK, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x55db8, -1
- person_event SPRITE_SUPER_NERD, 5, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x55dc0, -1
- person_event SPRITE_ROCKER, 5, 2, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, RockerScript_0x55dc3, -1
+ person_event SPRITE_CLERK, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x55db8, -1
+ person_event SPRITE_SUPER_NERD, 5, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x55dc0, -1
+ person_event SPRITE_ROCKER, 5, 2, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RockerScript_0x55dc3, -1
--- a/maps/GoldenrodDeptStore4F.asm
+++ b/maps/GoldenrodDeptStore4F.asm
@@ -91,7 +91,7 @@
.PersonEvents:
db 4
- person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x55ee9, -1
- person_event SPRITE_COOLTRAINER_M, 7, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x55ef1, -1
- person_event SPRITE_BUG_CATCHER, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, BugCatcherScript_0x55ef4, -1
- person_event SPRITE_GAMEBOY_KID, 1, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, GameboyKidScript_0x55ef7, -1
+ person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x55ee9, -1
+ person_event SPRITE_COOLTRAINER_M, 7, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x55ef1, -1
+ person_event SPRITE_BUG_CATCHER, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x55ef4, -1
+ person_event SPRITE_GAMEBOY_KID, 1, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x55ef7, -1
--- a/maps/GoldenrodDeptStore5F.asm
+++ b/maps/GoldenrodDeptStore5F.asm
@@ -232,9 +232,9 @@
.PersonEvents:
db 6
- person_event SPRITE_CLERK, 5, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x5609c, -1
- person_event SPRITE_LASS, 6, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, LassScript_0x56130, -1
- person_event SPRITE_COOLTRAINER_M, 3, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x56133, -1
- person_event SPRITE_POKEFAN_M, 5, 13, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, PokefanMScript_0x5613a, -1
- person_event SPRITE_TWIN, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TwinScript_0x56118, -1
- person_event SPRITE_RECEPTIONIST, 5, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ReceptionistScript_0x560ce, EVENT_GOLDENROD_DEPT_STORE_5F_HAPPINESS_EVENT_LADY
+ person_event SPRITE_CLERK, 5, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x5609c, -1
+ person_event SPRITE_LASS, 6, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x56130, -1
+ person_event SPRITE_COOLTRAINER_M, 3, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x56133, -1
+ person_event SPRITE_POKEFAN_M, 5, 13, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x5613a, -1
+ person_event SPRITE_TWIN, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TwinScript_0x56118, -1
+ person_event SPRITE_RECEPTIONIST, 5, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x560ce, EVENT_GOLDENROD_DEPT_STORE_5F_HAPPINESS_EVENT_LADY
--- a/maps/GoldenrodDeptStore6F.asm
+++ b/maps/GoldenrodDeptStore6F.asm
@@ -9,7 +9,7 @@
loadfont
writetext GoldenrodVendingText
.Start
- special Function24ae8
+ special PlaceMoneyTopRightOW
loadmenudata .MenuData
interpretmenu2
writebackup
@@ -169,5 +169,5 @@
.PersonEvents:
db 2
- person_event SPRITE_LASS, 2, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x564bf, -1
- person_event SPRITE_SUPER_NERD, 2, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x564c2, -1
+ person_event SPRITE_LASS, 2, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x564bf, -1
+ person_event SPRITE_SUPER_NERD, 2, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x564c2, -1
--- a/maps/GoldenrodDeptStoreB1F.asm
+++ b/maps/GoldenrodDeptStoreB1F.asm
@@ -121,11 +121,11 @@
.PersonEvents:
db 8
- person_event SPRITE_POKE_BALL, 15, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c3, EVENT_GOLDENROD_DEPT_STORE_B1F_ETHER
- person_event SPRITE_POKE_BALL, 2, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c5, EVENT_GOLDENROD_DEPT_STORE_B1F_AMULET_COIN
- person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c7, EVENT_GOLDENROD_DEPT_STORE_B1F_BURN_HEAL
- person_event SPRITE_POKE_BALL, 15, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c9, EVENT_GOLDENROD_DEPT_STORE_B1F_ULTRA_BALL
- person_event SPRITE_BLACK_BELT, 10, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BlackBeltScript_0x7d7b0, -1
- person_event SPRITE_BLACK_BELT, 8, 4, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, BlackBeltScript_0x7d7b3, -1
- person_event SPRITE_BLACK_BELT, 13, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, BlackBeltScript_0x7d7b6, -1
- person_event SPRITE_MACHOP, 7, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, MachopScript_0x7d7b9, -1
+ person_event SPRITE_POKE_BALL, 15, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7d7c3, EVENT_GOLDENROD_DEPT_STORE_B1F_ETHER
+ person_event SPRITE_POKE_BALL, 2, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7d7c5, EVENT_GOLDENROD_DEPT_STORE_B1F_AMULET_COIN
+ person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7d7c7, EVENT_GOLDENROD_DEPT_STORE_B1F_BURN_HEAL
+ person_event SPRITE_POKE_BALL, 15, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7d7c9, EVENT_GOLDENROD_DEPT_STORE_B1F_ULTRA_BALL
+ person_event SPRITE_BLACK_BELT, 10, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x7d7b0, -1
+ person_event SPRITE_BLACK_BELT, 8, 4, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x7d7b3, -1
+ person_event SPRITE_BLACK_BELT, 13, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x7d7b6, -1
+ person_event SPRITE_MACHOP, 7, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, MachopScript_0x7d7b9, -1
--- a/maps/GoldenrodDeptStoreRoof.asm
+++ b/maps/GoldenrodDeptStoreRoof.asm
@@ -225,11 +225,11 @@
.PersonEvents:
db 8
- person_event SPRITE_CLERK, 4, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x5673f, EVENT_GOLDENROD_SALE_OFF
- person_event SPRITE_POKEFAN_F, 3, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanFScript_0x56746, -1
- person_event SPRITE_FISHER, 1, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FisherScript_0x56749, -1
- person_event SPRITE_TWIN, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TwinScript_0x56754, EVENT_GOLDENROD_SALE_ON
- person_event SPRITE_SUPER_NERD, 6, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x56757, EVENT_GOLDENROD_SALE_ON
- person_event SPRITE_POKEFAN_M, 0, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, PokefanMScript_0x5676a, EVENT_GOLDENROD_SALE_OFF
- person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x5676d, EVENT_GOLDENROD_SALE_OFF
- person_event SPRITE_BUG_CATCHER, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, BugCatcherScript_0x56770, EVENT_GOLDENROD_SALE_OFF
+ person_event SPRITE_CLERK, 4, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x5673f, EVENT_GOLDENROD_SALE_OFF
+ person_event SPRITE_POKEFAN_F, 3, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x56746, -1
+ person_event SPRITE_FISHER, 1, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, FisherScript_0x56749, -1
+ person_event SPRITE_TWIN, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TwinScript_0x56754, EVENT_GOLDENROD_SALE_ON
+ person_event SPRITE_SUPER_NERD, 6, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x56757, EVENT_GOLDENROD_SALE_ON
+ person_event SPRITE_POKEFAN_M, 0, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x5676a, EVENT_GOLDENROD_SALE_OFF
+ person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x5676d, EVENT_GOLDENROD_SALE_OFF
+ person_event SPRITE_BUG_CATCHER, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x56770, EVENT_GOLDENROD_SALE_OFF
--- a/maps/GoldenrodFlowerShop.asm
+++ b/maps/GoldenrodFlowerShop.asm
@@ -172,5 +172,5 @@
.PersonEvents:
db 2
- person_event SPRITE_TEACHER, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, FlowerShopTeacherScript, -1
- person_event SPRITE_LASS, 6, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FlowerShopFloriaScript, EVENT_FLORIA_AT_FLOWER_SHOP
+ person_event SPRITE_TEACHER, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FlowerShopTeacherScript, -1
+ person_event SPRITE_LASS, 6, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, FlowerShopFloriaScript, EVENT_FLORIA_AT_FLOWER_SHOP
--- a/maps/GoldenrodGameCorner.asm
+++ b/maps/GoldenrodGameCorner.asm
@@ -479,15 +479,15 @@
.PersonEvents:
db 12
- person_event SPRITE_CLERK, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ClerkScript_0x56c25, -1
- person_event SPRITE_RECEPTIONIST, 2, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ReceptionistScript_0x56c28, -1
- person_event SPRITE_RECEPTIONIST, 2, 18, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ReceptionistScript_0x56d01, -1
- person_event SPRITE_PHARMACIST, 7, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, 2, (1 << 3) | PAL_OW_BLUE, 0, 0, PharmacistScript_0x56df1, -1
- person_event SPRITE_PHARMACIST, 7, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, 4, (1 << 3) | PAL_OW_BLUE, 0, 0, PharmacistScript_0x56df1, -1
- person_event SPRITE_POKEFAN_M, 10, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x56dfc, -1
- person_event SPRITE_COOLTRAINER_M, 8, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CooltrainerMScript_0x56e07, -1
- person_event SPRITE_POKEFAN_F, 6, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanFScript_0x56e12, -1
- person_event SPRITE_COOLTRAINER_F, 3, 10, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x56e1d, -1
- person_event SPRITE_GENTLEMAN, 10, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GentlemanScript_0x56e20, -1
- person_event SPRITE_POKEFAN_M, 9, 2, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x56e2b, -1
- person_event SPRITE_POKEFAN_M, 10, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x56c1a, EVENT_GOLDENROD_GAME_CORNER_MOVE_TUTOR
+ person_event SPRITE_CLERK, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ClerkScript_0x56c25, -1
+ person_event SPRITE_RECEPTIONIST, 2, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x56c28, -1
+ person_event SPRITE_RECEPTIONIST, 2, 18, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x56d01, -1
+ person_event SPRITE_PHARMACIST, 7, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, 2, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, PharmacistScript_0x56df1, -1
+ person_event SPRITE_PHARMACIST, 7, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, 4, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, PharmacistScript_0x56df1, -1
+ person_event SPRITE_POKEFAN_M, 10, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x56dfc, -1
+ person_event SPRITE_COOLTRAINER_M, 8, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x56e07, -1
+ person_event SPRITE_POKEFAN_F, 6, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x56e12, -1
+ person_event SPRITE_COOLTRAINER_F, 3, 10, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x56e1d, -1
+ person_event SPRITE_GENTLEMAN, 10, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x56e20, -1
+ person_event SPRITE_POKEFAN_M, 9, 2, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x56e2b, -1
+ person_event SPRITE_POKEFAN_M, 10, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x56c1a, EVENT_GOLDENROD_GAME_CORNER_MOVE_TUTOR
--- a/maps/GoldenrodGym.asm
+++ b/maps/GoldenrodGym.asm
@@ -393,9 +393,9 @@
.PersonEvents:
db 6
- person_event SPRITE_WHITNEY, 3, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, WhitneyScript_0x5400c, -1
- person_event SPRITE_LASS, 13, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerLassCarrie, -1
- person_event SPRITE_LASS, 6, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerLassBridget, -1
- person_event SPRITE_BUENA, 2, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBeautyVictoria, -1
- person_event SPRITE_BUENA, 5, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBeautySamantha, -1
- person_event SPRITE_GYM_GUY, 15, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GoldenrodGymGuyScript, -1
+ person_event SPRITE_WHITNEY, 3, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, WhitneyScript_0x5400c, -1
+ person_event SPRITE_LASS, 13, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerLassCarrie, -1
+ person_event SPRITE_LASS, 6, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerLassBridget, -1
+ person_event SPRITE_BUENA, 2, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBeautyVictoria, -1
+ person_event SPRITE_BUENA, 5, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBeautySamantha, -1
+ person_event SPRITE_GYM_GUY, 15, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GoldenrodGymGuyScript, -1
--- a/maps/GoldenrodHappinessRater.asm
+++ b/maps/GoldenrodHappinessRater.asm
@@ -151,6 +151,6 @@
.PersonEvents:
db 3
- person_event SPRITE_TEACHER, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x54953, -1
- person_event SPRITE_POKEFAN_M, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x54997, -1
- person_event SPRITE_TWIN, 6, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TwinScript_0x5499a, -1
+ person_event SPRITE_TEACHER, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x54953, -1
+ person_event SPRITE_POKEFAN_M, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x54997, -1
+ person_event SPRITE_TWIN, 6, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TwinScript_0x5499a, -1
--- a/maps/GoldenrodMagnetTrainStation.asm
+++ b/maps/GoldenrodMagnetTrainStation.asm
@@ -182,5 +182,5 @@
.PersonEvents:
db 2
- person_event SPRITE_OFFICER, 9, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, OfficerScript_0x550ec, -1
- person_event SPRITE_GENTLEMAN, 14, 11, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, GentlemanScript_0x55143, EVENT_GOLDENROD_TRAIN_STATION_GENTLEMAN
+ person_event SPRITE_OFFICER, 9, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OfficerScript_0x550ec, -1
+ person_event SPRITE_GENTLEMAN, 14, 11, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x55143, EVENT_GOLDENROD_TRAIN_STATION_GENTLEMAN
--- a/maps/GoldenrodNameRatersHouse.asm
+++ b/maps/GoldenrodNameRatersHouse.asm
@@ -41,4 +41,4 @@
.PersonEvents:
db 1
- person_event SPRITE_GENTLEMAN, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 2, -1, -1, 0, 0, 0, GentlemanScript_0x5577c, -1
+ person_event SPRITE_GENTLEMAN, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x5577c, -1
--- a/maps/GoldenrodPPSpeechHouse.asm
+++ b/maps/GoldenrodPPSpeechHouse.asm
@@ -67,5 +67,5 @@
.PersonEvents:
db 2
- person_event SPRITE_FISHER, 4, 2, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x5564a, -1
- person_event SPRITE_LASS, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 1, 0, -1, -1, 0, 0, 0, LassScript_0x5564d, -1
+ person_event SPRITE_FISHER, 4, 2, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x5564a, -1
+ person_event SPRITE_LASS, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x5564d, -1
--- a/maps/GoldenrodPokeCenter1F.asm
+++ b/maps/GoldenrodPokeCenter1F.asm
@@ -818,8 +818,8 @@
.PersonEvents:
db 5
- person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x60f91, -1
- person_event SPRITE_LINK_RECEPTIONIST, 8, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, -1
- person_event SPRITE_GAMEBOY_KID, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GameboyKidScript_0x6101e, -1
- person_event SPRITE_LASS, 4, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, LassScript_0x61021, -1
- person_event SPRITE_POKEFAN_F, 5, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanFScript_0x61024, -1
+ person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x60f91, -1
+ person_event SPRITE_LINK_RECEPTIONIST, 8, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ObjectEvent, -1
+ person_event SPRITE_GAMEBOY_KID, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x6101e, -1
+ person_event SPRITE_LASS, 4, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x61021, -1
+ person_event SPRITE_POKEFAN_F, 5, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x61024, -1
--- a/maps/GoldenrodPokeComCenter2FMobile.asm
+++ b/maps/GoldenrodPokeComCenter2FMobile.asm
@@ -240,7 +240,7 @@
line "OFFICE received an"
cont "e-mail. It says…"
- para $56, " ", $56, " ", $56
+ para "<......> <......> <......>"
para "To the #COM"
line "CENTER staff…"
@@ -260,7 +260,7 @@
para "the world can link"
line "without barriers!"
- para $56, " ", $56, " ", $56
+ para "<......> <......> <......>"
done
GoldenrodPokeComCenter2FMobile_MapEventHeader:
@@ -283,6 +283,6 @@
.PersonEvents:
db 3
- person_event SPRITE_SCIENTIST, 28, 4, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ScientistScript_0x625d1, -1
- person_event SPRITE_SCIENTIST, 27, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x625d4, -1
- person_event SPRITE_SCIENTIST, 29, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ScientistScript_0x625d7, -1
+ person_event SPRITE_SCIENTIST, 28, 4, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ScientistScript_0x625d1, -1
+ person_event SPRITE_SCIENTIST, 27, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x625d4, -1
+ person_event SPRITE_SCIENTIST, 29, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ScientistScript_0x625d7, -1
--- a/maps/GuideGentsHouse.asm
+++ b/maps/GuideGentsHouse.asm
@@ -43,4 +43,4 @@
.PersonEvents:
db 1
- person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, GuideGentsHouseGuideGent, EVENT_GUIDE_GENT_VISIBLE_IN_CHERRYGROVE
+ person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GuideGentsHouseGuideGent, EVENT_GUIDE_GENT_VISIBLE_IN_CHERRYGROVE
--- a/maps/HallOfFame.asm
+++ b/maps/HallOfFame.asm
@@ -126,4 +126,4 @@
.PersonEvents:
db 1
- person_event SPRITE_LANCE, 12, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, -1
+ person_event SPRITE_LANCE, 12, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, -1
--- a/maps/IcePath1F.asm
+++ b/maps/IcePath1F.asm
@@ -33,6 +33,6 @@
.PersonEvents:
db 3
- person_event SPRITE_POKE_BALL, 7, 31, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e472, EVENT_GOT_HM07_WATERFALL
- person_event SPRITE_POKE_BALL, 23, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e474, EVENT_ICE_PATH_1F_PP_UP
- person_event SPRITE_POKE_BALL, 9, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e476, EVENT_ICE_PATH_1F_PROTEIN
+ person_event SPRITE_POKE_BALL, 7, 31, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e472, EVENT_GOT_HM07_WATERFALL
+ person_event SPRITE_POKE_BALL, 23, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e474, EVENT_ICE_PATH_1F_PP_UP
+ person_event SPRITE_POKE_BALL, 9, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e476, EVENT_ICE_PATH_1F_PROTEIN
--- a/maps/IcePathB1F.asm
+++ b/maps/IcePathB1F.asm
@@ -7,54 +7,54 @@
; callbacks
- dbw 3, UnknownScript_0x7e4be
+ dbw 3, .SetUpStoneTable
-UnknownScript_0x7e4be:
- writecmdqueue CmdQueue_0x7e4c2
+.SetUpStoneTable:
+ writecmdqueue .CommandQueue
return
-CmdQueue_0x7e4c2:
- dbw 2, StoneTable_0x7e4c7 ; check if any stones are sitting on a warp
+.CommandQueue:
+ dbw 2, .StoneTable ; check if any stones are sitting on a warp
db 0, 0 ; filler
-StoneTable_0x7e4c7:
+.StoneTable:
db 3, 2 ; warp, person
- dw UnknownScript_0x7e4d8
+ dw .Boulder1
db 4, 3 ; warp, person
- dw UnknownScript_0x7e4e0
+ dw .Boulder2
db 5, 4 ; warp, person
- dw UnknownScript_0x7e4e8
+ dw .Boulder3
db 6, 5 ; warp, person
- dw UnknownScript_0x7e4f0
+ dw .Boulder4
- db $ff ; end
+ db -1 ; end
-UnknownScript_0x7e4d8:
+.Boulder1:
disappear 2
clearevent EVENT_BOULDER_IN_ICE_PATH_1A
- jump UnknownScript_0x7e4f8
+ jump .FinishBoulder
-UnknownScript_0x7e4e0:
+.Boulder2:
disappear 3
clearevent EVENT_BOULDER_IN_ICE_PATH_2A
- jump UnknownScript_0x7e4f8
+ jump .FinishBoulder
-UnknownScript_0x7e4e8:
+.Boulder3:
disappear 4
clearevent EVENT_BOULDER_IN_ICE_PATH_3A
- jump UnknownScript_0x7e4f8
+ jump .FinishBoulder
-UnknownScript_0x7e4f0:
+.Boulder4:
disappear 5
clearevent EVENT_BOULDER_IN_ICE_PATH_4A
- jump UnknownScript_0x7e4f8
+ jump .FinishBoulder
-UnknownScript_0x7e4f8:
+.FinishBoulder:
pause 30
- scall UnknownScript_0x7e504
+ scall .BoulderFallsThrough
loadfont
writetext UnknownText_0x7e512
closetext
@@ -61,7 +61,7 @@
loadmovesprites
end
-UnknownScript_0x7e504:
+.BoulderFallsThrough:
playsound SFX_STRENGTH
earthquake 80
end
@@ -107,8 +107,8 @@
.PersonEvents:
db 5
- person_event SPRITE_BOULDER, 7, 11, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_1
- person_event SPRITE_BOULDER, 8, 7, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_2
- person_event SPRITE_BOULDER, 9, 8, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_3
- person_event SPRITE_BOULDER, 7, 17, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_4
- person_event SPRITE_POKE_BALL, 35, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e50d, EVENT_ICE_PATH_B1F_IRON
+ person_event SPRITE_BOULDER, 7, 11, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_1
+ person_event SPRITE_BOULDER, 8, 7, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_2
+ person_event SPRITE_BOULDER, 9, 8, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_3
+ person_event SPRITE_BOULDER, 7, 17, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_4
+ person_event SPRITE_POKE_BALL, 35, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e50d, EVENT_ICE_PATH_B1F_IRON
--- a/maps/IcePathB2FBlackthornSide.asm
+++ b/maps/IcePathB2FBlackthornSide.asm
@@ -30,4 +30,4 @@
.PersonEvents:
db 1
- person_event SPRITE_POKE_BALL, 16, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e646, EVENT_ICE_PATH_B2F_BLACKTHORN_SIDE_TM_REST
+ person_event SPRITE_POKE_BALL, 16, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e646, EVENT_ICE_PATH_B2F_BLACKTHORN_SIDE_TM_REST
--- a/maps/IcePathB2FMahoganySide.asm
+++ b/maps/IcePathB2FMahoganySide.asm
@@ -45,9 +45,9 @@
.PersonEvents:
db 6
- person_event SPRITE_BOULDER, 3, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_1A
- person_event SPRITE_BOULDER, 7, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_2A
- person_event SPRITE_BOULDER, 12, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_3A
- person_event SPRITE_BOULDER, 13, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_4A
- person_event SPRITE_POKE_BALL, 9, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e5a6, EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_FULL_HEAL
- person_event SPRITE_POKE_BALL, 2, 0, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e5a8, EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_MAX_POTION
+ person_event SPRITE_BOULDER, 3, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_1A
+ person_event SPRITE_BOULDER, 7, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_2A
+ person_event SPRITE_BOULDER, 12, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_3A
+ person_event SPRITE_BOULDER, 13, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_4A
+ person_event SPRITE_POKE_BALL, 9, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e5a6, EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_FULL_HEAL
+ person_event SPRITE_POKE_BALL, 2, 0, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e5a8, EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_MAX_POTION
--- a/maps/IcePathB3F.asm
+++ b/maps/IcePathB3F.asm
@@ -28,5 +28,5 @@
.PersonEvents:
db 2
- person_event SPRITE_POKE_BALL, 7, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e66f, EVENT_ICE_PATH_B3F_NEVERMELTICE
- person_event SPRITE_ROCK, 6, 6, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, IcePathB3FRock, -1
+ person_event SPRITE_POKE_BALL, 7, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e66f, EVENT_ICE_PATH_B3F_NEVERMELTICE
+ person_event SPRITE_ROCK, 6, 6, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, IcePathB3FRock, -1
--- a/maps/IlexForest.asm
+++ b/maps/IlexForest.asm
@@ -449,7 +449,7 @@
loadmovesprites
pause 20
showemote EMOTE_SHOCK, PLAYER, 20
- special Functionc48f
+ special Special_RotatePalettesRightMusic
applymovement PLAYER, MovementData_0x6ef58
pause 30
spriteface PLAYER, DOWN
@@ -460,7 +460,7 @@
startbattle
returnafterbattle
pause 20
- special Function49bf9
+ special CheckCaughtCelebi
iffalse UnknownScript_0x6ee8e
appear $7
applymovement $7, MovementData_0x6ef4e
@@ -950,14 +950,14 @@
.PersonEvents:
db 11
- person_event SPRITE_BIRD, 31, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, BirdScript_0x6eb8f, EVENT_ILEX_FOREST_FARFETCHD
- person_event SPRITE_YOUNGSTER, 28, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x6eb7b, EVENT_ILEX_FOREST_APPRENTICE
- person_event SPRITE_BLACK_BELT, 28, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x6edae, EVENT_ILEX_FOREST_CHARCOAL_MASTER
- person_event SPRITE_ROCKER, 14, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, RockerScript_0x6edde, -1
- person_event SPRITE_POKE_BALL, 32, 20, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee10, EVENT_ILEX_FOREST_REVIVE
- person_event SPRITE_KURT, 29, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_ILEX_FOREST_KURT
- person_event SPRITE_LASS, 24, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x6ee0d, EVENT_ILEX_FOREST_LASS
- person_event SPRITE_YOUNGSTER, 1, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 0, TrainerBug_catcherWayne, -1
- person_event SPRITE_POKE_BALL, 17, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee12, EVENT_ILEX_FOREST_X_ATTACK
- person_event SPRITE_POKE_BALL, 7, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee14, EVENT_ILEX_FOREST_ANTIDOTE
- person_event SPRITE_POKE_BALL, 1, 27, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee16, EVENT_ILEX_FOREST_ETHER
+ person_event SPRITE_BIRD, 31, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, BirdScript_0x6eb8f, EVENT_ILEX_FOREST_FARFETCHD
+ person_event SPRITE_YOUNGSTER, 28, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x6eb7b, EVENT_ILEX_FOREST_APPRENTICE
+ person_event SPRITE_BLACK_BELT, 28, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x6edae, EVENT_ILEX_FOREST_CHARCOAL_MASTER
+ person_event SPRITE_ROCKER, 14, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RockerScript_0x6edde, -1
+ person_event SPRITE_POKE_BALL, 32, 20, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6ee10, EVENT_ILEX_FOREST_REVIVE
+ person_event SPRITE_KURT, 29, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_ILEX_FOREST_KURT
+ person_event SPRITE_LASS, 24, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x6ee0d, EVENT_ILEX_FOREST_LASS
+ person_event SPRITE_YOUNGSTER, 1, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 0, TrainerBug_catcherWayne, -1
+ person_event SPRITE_POKE_BALL, 17, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6ee12, EVENT_ILEX_FOREST_X_ATTACK
+ person_event SPRITE_POKE_BALL, 7, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6ee14, EVENT_ILEX_FOREST_ANTIDOTE
+ person_event SPRITE_POKE_BALL, 1, 27, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6ee16, EVENT_ILEX_FOREST_ETHER
--- a/maps/IlexForestAzaleaGate.asm
+++ b/maps/IlexForestAzaleaGate.asm
@@ -45,5 +45,5 @@
.PersonEvents:
db 2
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x62c7a, -1
- person_event SPRITE_GRANNY, 3, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrannyScript_0x62c7d, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x62c7a, -1
+ person_event SPRITE_GRANNY, 3, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, GrannyScript_0x62c7d, -1
--- a/maps/IndigoPlateauPokeCenter1F.asm
+++ b/maps/IndigoPlateauPokeCenter1F.asm
@@ -55,7 +55,7 @@
appear $5
spriteface PLAYER, DOWN
showemote EMOTE_SHOCK, PLAYER, 15
- special Functionc48f
+ special Special_RotatePalettesRightMusic
pause 15
applymovement $5, MovementData_0x180164
playmusic MUSIC_RIVAL_ENCOUNTER
@@ -76,7 +76,7 @@
appear $5
spriteface PLAYER, DOWN
showemote EMOTE_SHOCK, PLAYER, 15
- special Functionc48f
+ special Special_RotatePalettesRightMusic
pause 15
applymovement $5, MovementData_0x18016b
playmusic MUSIC_RIVAL_ENCOUNTER
@@ -319,9 +319,9 @@
.PersonEvents:
db 6
- person_event SPRITE_NURSE, 7, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x18012c, -1
- person_event SPRITE_CLERK, 7, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x18012f, -1
- person_event SPRITE_COOLTRAINER_M, 11, 11, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, CooltrainerMScript_0x180136, -1
- person_event SPRITE_SILVER, 9, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_INDIGO_PLATEAU_POKECENTER_RIVAL
- person_event SPRITE_GRAMPS, 9, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeleportGuyScript, EVENT_TELEPORT_GUY
- person_event SPRITE_JYNX, 9, 0, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, AbraScript, EVENT_TELEPORT_GUY
+ person_event SPRITE_NURSE, 7, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x18012c, -1
+ person_event SPRITE_CLERK, 7, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x18012f, -1
+ person_event SPRITE_COOLTRAINER_M, 11, 11, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x180136, -1
+ person_event SPRITE_SILVER, 9, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_INDIGO_PLATEAU_POKECENTER_RIVAL
+ person_event SPRITE_GRAMPS, 9, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TeleportGuyScript, EVENT_TELEPORT_GUY
+ person_event SPRITE_JYNX, 9, 0, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, AbraScript, EVENT_TELEPORT_GUY
--- a/maps/KarensRoom.asm
+++ b/maps/KarensRoom.asm
@@ -153,4 +153,4 @@
.PersonEvents:
db 1
- person_event SPRITE_KAREN, 7, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, KarenScript_0x180bee, -1
+ person_event SPRITE_KAREN, 7, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, KarenScript_0x180bee, -1
--- a/maps/KogasRoom.asm
+++ b/maps/KogasRoom.asm
@@ -150,4 +150,4 @@
.PersonEvents:
db 1
- person_event SPRITE_KOGA, 7, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, KogaScript_0x18075a, -1
+ person_event SPRITE_KOGA, 7, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, KogaScript_0x18075a, -1
--- a/maps/KrissHouse1F.asm
+++ b/maps/KrissHouse1F.asm
@@ -404,8 +404,8 @@
.PersonEvents:
db 5
- person_event SPRITE_MOM, 4, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_1
- person_event SPRITE_MOM, 2, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, 1, 0, 0, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_2
- person_event SPRITE_MOM, 4, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, 2, 0, 0, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_2
- person_event SPRITE_MOM, 2, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, 4, 0, 0, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_2
- person_event SPRITE_POKEFAN_F, 4, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, NeighborScript, EVENT_KRISS_HOUSE_1F_NEIGHBOR
+ person_event SPRITE_MOM, 4, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_1
+ person_event SPRITE_MOM, 2, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, 1, 0, PERSONTYPE_SCRIPT, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_2
+ person_event SPRITE_MOM, 4, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, 2, 0, PERSONTYPE_SCRIPT, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_2
+ person_event SPRITE_MOM, 2, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, 4, 0, PERSONTYPE_SCRIPT, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_2
+ person_event SPRITE_POKEFAN_F, 4, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, NeighborScript, EVENT_KRISS_HOUSE_1F_NEIGHBOR
--- a/maps/KrissHouse2F.asm
+++ b/maps/KrissHouse2F.asm
@@ -134,7 +134,7 @@
.PersonEvents:
db 4
- person_event SPRITE_CONSOLE, 2, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, GameConsole, EVENT_KRISS_HOUSE_2F_CONSOLE
- person_event SPRITE_DOLL_1, 4, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, Doll1, EVENT_KRISS_HOUSE_2F_DOLL_1
- person_event SPRITE_DOLL_2, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, Doll2, EVENT_KRISS_HOUSE_2F_DOLL_2
- person_event SPRITE_BIG_DOLL, 1, 0, SPRITEMOVEDATA_BIGDOLL, 0, 0, -1, -1, 0, 0, 0, BigDoll, EVENT_KRISS_HOUSE_2F_BIG_DOLL
+ person_event SPRITE_CONSOLE, 2, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GameConsole, EVENT_KRISS_HOUSE_2F_CONSOLE
+ person_event SPRITE_DOLL_1, 4, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Doll1, EVENT_KRISS_HOUSE_2F_DOLL_1
+ person_event SPRITE_DOLL_2, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Doll2, EVENT_KRISS_HOUSE_2F_DOLL_2
+ person_event SPRITE_BIG_DOLL, 1, 0, SPRITEMOVEDATA_BIGDOLL, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BigDoll, EVENT_KRISS_HOUSE_2F_BIG_DOLL
--- a/maps/KrissNeighborsHouse.asm
+++ b/maps/KrissNeighborsHouse.asm
@@ -114,5 +114,5 @@
.PersonEvents:
db 2
- person_event SPRITE_COOLTRAINER_F, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, KrissNeighborsDaughter, -1
- person_event SPRITE_POKEFAN_F, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, KrissNeighbor, EVENT_KRISS_NEIGHBORS_HOUSE_NEIGHBOR
+ person_event SPRITE_COOLTRAINER_F, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, KrissNeighborsDaughter, -1
+ person_event SPRITE_POKEFAN_F, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, KrissNeighbor, EVENT_KRISS_NEIGHBORS_HOUSE_NEIGHBOR
--- a/maps/KurtsHouse.asm
+++ b/maps/KurtsHouse.asm
@@ -40,7 +40,7 @@
writetext UnknownText_0x18e473
closetext
loadmovesprites
- special Functionc48f
+ special Special_RotatePalettesRightMusic
setevent EVENT_AZALEA_TOWN_SLOWPOKETAIL_ROCKET
checkcode VAR_FACING
if_equal UP, .RunAround
@@ -287,7 +287,7 @@
setevent EVENT_FOREST_IS_RESTLESS
clearevent EVENT_CAN_GIVE_GS_BALL_TO_KURT
clearevent EVENT_GAVE_GS_BALL_TO_KURT
- special Functionc48f
+ special Special_RotatePalettesRightMusic
pause 20
showemote EMOTE_SHOCK, $2, 30
checkcode VAR_FACING
@@ -696,8 +696,8 @@
.PersonEvents:
db 5
- person_event SPRITE_KURT, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, KurtScript_0x18e178, EVENT_KURTS_HOUSE_KURT_1
- person_event SPRITE_TWIN, 3, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, KurtsGranddaughter1, EVENT_KURTS_HOUSE_GRANDDAUGHTER_1
- person_event SPRITE_SLOWPOKE, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, KurtsHouseSlowpoke, EVENT_KURTS_HOUSE_SLOWPOKE
- person_event SPRITE_KURT, 3, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, KurtScript_0x18e3bd, EVENT_KURTS_HOUSE_KURT_2
- person_event SPRITE_TWIN, 4, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, KurtsGranddaughter2, EVENT_KURTS_HOUSE_GRANDDAUGHTER_2
+ person_event SPRITE_KURT, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, KurtScript_0x18e178, EVENT_KURTS_HOUSE_KURT_1
+ person_event SPRITE_TWIN, 3, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, KurtsGranddaughter1, EVENT_KURTS_HOUSE_GRANDDAUGHTER_1
+ person_event SPRITE_SLOWPOKE, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, KurtsHouseSlowpoke, EVENT_KURTS_HOUSE_SLOWPOKE
+ person_event SPRITE_KURT, 3, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, KurtScript_0x18e3bd, EVENT_KURTS_HOUSE_KURT_2
+ person_event SPRITE_TWIN, 4, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, KurtsGranddaughter2, EVENT_KURTS_HOUSE_GRANDDAUGHTER_2
--- a/maps/LakeofRage.asm
+++ b/maps/LakeofRage.asm
@@ -509,15 +509,15 @@
.PersonEvents:
db 12
- person_event SPRITE_LANCE, 28, 21, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, LanceScript_0x70022, EVENT_LAKE_OF_RAGE_LANCE
- person_event SPRITE_GRAMPS, 26, 20, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x7008e, -1
- person_event SPRITE_SUPER_NERD, 13, 36, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, SuperNerdScript_0x700a2, -1
- person_event SPRITE_COOLTRAINER_F, 29, 25, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, CooltrainerFScript_0x700a5, -1
- person_event SPRITE_FISHER, 23, 30, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerFisherAndre, EVENT_LAKE_OF_RAGE_CIVILIANS
- person_event SPRITE_FISHER, 26, 24, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerFisherRaymond, EVENT_LAKE_OF_RAGE_CIVILIANS
- person_event SPRITE_COOLTRAINER_M, 15, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainermAaron, EVENT_LAKE_OF_RAGE_CIVILIANS
- person_event SPRITE_COOLTRAINER_F, 7, 36, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 0, TrainerCooltrainerfLois, EVENT_LAKE_OF_RAGE_CIVILIANS
- person_event SPRITE_GYARADOS, 22, 18, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GyaradosScript_0x70063, EVENT_LAKE_OF_RAGE_RED_GYARADOS
- person_event SPRITE_SUPER_NERD, 4, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, WesleyScript, EVENT_LAKE_OF_RAGE_WESLEY_OF_WEDNESDAY
- person_event SPRITE_POKE_BALL, 10, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x70148, EVENT_LAKE_OF_RAGE_ELIXER
- person_event SPRITE_POKE_BALL, 2, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7014a, EVENT_LAKE_OF_RAGE_TM_DETECT
+ person_event SPRITE_LANCE, 28, 21, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LanceScript_0x70022, EVENT_LAKE_OF_RAGE_LANCE
+ person_event SPRITE_GRAMPS, 26, 20, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x7008e, -1
+ person_event SPRITE_SUPER_NERD, 13, 36, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x700a2, -1
+ person_event SPRITE_COOLTRAINER_F, 29, 25, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x700a5, -1
+ person_event SPRITE_FISHER, 23, 30, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerFisherAndre, EVENT_LAKE_OF_RAGE_CIVILIANS
+ person_event SPRITE_FISHER, 26, 24, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerFisherRaymond, EVENT_LAKE_OF_RAGE_CIVILIANS
+ person_event SPRITE_COOLTRAINER_M, 15, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerCooltrainermAaron, EVENT_LAKE_OF_RAGE_CIVILIANS
+ person_event SPRITE_COOLTRAINER_F, 7, 36, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 0, TrainerCooltrainerfLois, EVENT_LAKE_OF_RAGE_CIVILIANS
+ person_event SPRITE_GYARADOS, 22, 18, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GyaradosScript_0x70063, EVENT_LAKE_OF_RAGE_RED_GYARADOS
+ person_event SPRITE_SUPER_NERD, 4, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, WesleyScript, EVENT_LAKE_OF_RAGE_WESLEY_OF_WEDNESDAY
+ person_event SPRITE_POKE_BALL, 10, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x70148, EVENT_LAKE_OF_RAGE_ELIXER
+ person_event SPRITE_POKE_BALL, 2, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7014a, EVENT_LAKE_OF_RAGE_TM_DETECT
--- a/maps/LakeofRageHiddenPowerHouse.asm
+++ b/maps/LakeofRageHiddenPowerHouse.asm
@@ -83,4 +83,4 @@
.PersonEvents:
db 1
- person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, HiddenPowerGuy, -1
+ person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, HiddenPowerGuy, -1
--- a/maps/LakeofRageMagikarpHouse.asm
+++ b/maps/LakeofRageMagikarpHouse.asm
@@ -221,4 +221,4 @@
.PersonEvents:
db 1
- person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, FishingGuruScript_0x19a6ae, -1
+ person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x19a6ae, -1
--- a/maps/LancesRoom.asm
+++ b/maps/LancesRoom.asm
@@ -44,12 +44,12 @@
end
UnknownScript_0x180e6a:
- special Functionc48f
+ special Special_RotatePalettesRightMusic
applymovement PLAYER, MovementData_0x180f38
jump LanceScript_0x180e7b
UnknownScript_0x180e74:
- special Functionc48f
+ special Special_RotatePalettesRightMusic
applymovement PLAYER, MovementData_0x180f3c
LanceScript_0x180e7b:
spriteface $2, LEFT
@@ -358,6 +358,6 @@
.PersonEvents:
db 3
- person_event SPRITE_LANCE, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, LanceScript_0x180e7b, -1
- person_event SPRITE_TEACHER, 7, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ObjectEvent, EVENT_LANCES_ROOM_OAK_AND_MARY
- person_event SPRITE_OAK, 7, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_LANCES_ROOM_OAK_AND_MARY
+ person_event SPRITE_LANCE, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LanceScript_0x180e7b, -1
+ person_event SPRITE_TEACHER, 7, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_LANCES_ROOM_OAK_AND_MARY
+ person_event SPRITE_OAK, 7, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_LANCES_ROOM_OAK_AND_MARY
--- a/maps/LavRadioTower1F.asm
+++ b/maps/LavRadioTower1F.asm
@@ -233,8 +233,8 @@
.PersonEvents:
db 5
- person_event SPRITE_RECEPTIONIST, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ReceptionistScript_0x7ee63, -1
- person_event SPRITE_OFFICER, 1, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OfficerScript_0x7ee66, -1
- person_event SPRITE_SUPER_NERD, 3, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x7ee69, -1
- person_event SPRITE_GENTLEMAN, 1, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x7ee6c, -1
- person_event SPRITE_SUPER_NERD, 6, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, SuperNerdScript_0x7eea2, -1
+ person_event SPRITE_RECEPTIONIST, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x7ee63, -1
+ person_event SPRITE_OFFICER, 1, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, OfficerScript_0x7ee66, -1
+ person_event SPRITE_SUPER_NERD, 3, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x7ee69, -1
+ person_event SPRITE_GENTLEMAN, 1, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x7ee6c, -1
+ person_event SPRITE_SUPER_NERD, 6, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x7eea2, -1
--- a/maps/LavenderMart.asm
+++ b/maps/LavenderMart.asm
@@ -59,6 +59,6 @@
.PersonEvents:
db 3
- person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x7eb1c, -1
- person_event SPRITE_POKEFAN_M, 6, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x7eb23, -1
- person_event SPRITE_ROCKER, 2, 9, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, RockerScript_0x7eb26, -1
+ person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x7eb1c, -1
+ person_event SPRITE_POKEFAN_M, 6, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x7eb23, -1
+ person_event SPRITE_ROCKER, 2, 9, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RockerScript_0x7eb26, -1
--- a/maps/LavenderNameRater.asm
+++ b/maps/LavenderNameRater.asm
@@ -40,4 +40,4 @@
.PersonEvents:
db 1
- person_event SPRITE_GENTLEMAN, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, LavenderNameRater, -1
+ person_event SPRITE_GENTLEMAN, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, LavenderNameRater, -1
--- a/maps/LavenderPokeCenter1F.asm
+++ b/maps/LavenderPokeCenter1F.asm
@@ -92,7 +92,7 @@
.PersonEvents:
db 4
- person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x7e6a0, -1
- person_event SPRITE_GENTLEMAN, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, GentlemanScript_0x7e6a3, -1
- person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x7e6a6, -1
- person_event SPRITE_YOUNGSTER, 5, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x7e6a9, -1
+ person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x7e6a0, -1
+ person_event SPRITE_GENTLEMAN, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x7e6a3, -1
+ person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7e6a6, -1
+ person_event SPRITE_YOUNGSTER, 5, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x7e6a9, -1
--- a/maps/LavenderTown.asm
+++ b/maps/LavenderTown.asm
@@ -129,7 +129,7 @@
.PersonEvents:
db 4
- person_event SPRITE_POKEFAN_M, 7, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x1ad6e4, -1
- person_event SPRITE_TEACHER, 15, 2, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x1ad6e7, -1
- person_event SPRITE_GRAMPS, 12, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x1ad6ea, -1
- person_event SPRITE_YOUNGSTER, 11, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 1, YoungsterScript_0x1ad6ed, -1
+ person_event SPRITE_POKEFAN_M, 7, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x1ad6e4, -1
+ person_event SPRITE_TEACHER, 15, 2, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1ad6e7, -1
+ person_event SPRITE_GRAMPS, 12, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1ad6ea, -1
+ person_event SPRITE_YOUNGSTER, 11, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 1, YoungsterScript_0x1ad6ed, -1
--- a/maps/LavenderTownSpeechHouse.asm
+++ b/maps/LavenderTownSpeechHouse.asm
@@ -44,4 +44,4 @@
.PersonEvents:
db 1
- person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, PokefanFScript_0x7ea47, -1
+ person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x7ea47, -1
--- a/maps/MahoganyGym.asm
+++ b/maps/MahoganyGym.asm
@@ -382,10 +382,10 @@
.PersonEvents:
db 7
- person_event SPRITE_PRYCE, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PryceScript_0x199a9e, -1
- person_event SPRITE_BUENA, 6, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerSkierRoxanne, -1
- person_event SPRITE_ROCKER, 17, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBoarderRonald, -1
- person_event SPRITE_BUENA, 17, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerSkierClarissa, -1
- person_event SPRITE_ROCKER, 9, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBoarderBrad, -1
- person_event SPRITE_ROCKER, 4, 2, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBoarderDouglas, -1
- person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, MahoganyGymGuyScript, -1
+ person_event SPRITE_PRYCE, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, PryceScript_0x199a9e, -1
+ person_event SPRITE_BUENA, 6, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerSkierRoxanne, -1
+ person_event SPRITE_ROCKER, 17, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerBoarderRonald, -1
+ person_event SPRITE_BUENA, 17, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerSkierClarissa, -1
+ person_event SPRITE_ROCKER, 9, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerBoarderBrad, -1
+ person_event SPRITE_ROCKER, 4, 2, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerBoarderDouglas, -1
+ person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, MahoganyGymGuyScript, -1
--- a/maps/MahoganyMart1F.asm
+++ b/maps/MahoganyMart1F.asm
@@ -236,8 +236,8 @@
.PersonEvents:
db 5
- person_event SPRITE_PHARMACIST, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, PharmacistScript_0x6c367, EVENT_TEAM_ROCKET_BASE_POPULATION
- person_event SPRITE_BLACK_BELT, 6, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x6c37b, EVENT_TEAM_ROCKET_BASE_POPULATION
- person_event SPRITE_LANCE, 6, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE
- person_event SPRITE_DRAGON, 6, 3, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE
- person_event SPRITE_GRANNY, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x6c3ee, EVENT_MAHOGANY_MART_OWNERS
+ person_event SPRITE_PHARMACIST, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PharmacistScript_0x6c367, EVENT_TEAM_ROCKET_BASE_POPULATION
+ person_event SPRITE_BLACK_BELT, 6, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x6c37b, EVENT_TEAM_ROCKET_BASE_POPULATION
+ person_event SPRITE_LANCE, 6, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE
+ person_event SPRITE_DRAGON, 6, 3, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE
+ person_event SPRITE_GRANNY, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x6c3ee, EVENT_MAHOGANY_MART_OWNERS
--- a/maps/MahoganyPokeCenter1F.asm
+++ b/maps/MahoganyPokeCenter1F.asm
@@ -65,7 +65,7 @@
.PersonEvents:
db 4
- person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x19a356, -1
- person_event SPRITE_POKEFAN_M, 2, 7, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x19a359, -1
- person_event SPRITE_YOUNGSTER, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x19a35c, -1
- person_event SPRITE_COOLTRAINER_F, 3, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x19a35f, -1
+ person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x19a356, -1
+ person_event SPRITE_POKEFAN_M, 2, 7, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x19a359, -1
+ person_event SPRITE_YOUNGSTER, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x19a35c, -1
+ person_event SPRITE_COOLTRAINER_F, 3, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x19a35f, -1
--- a/maps/MahoganyRedGyaradosSpeechHouse.asm
+++ b/maps/MahoganyRedGyaradosSpeechHouse.asm
@@ -73,5 +73,5 @@
.PersonEvents:
db 2
- person_event SPRITE_BLACK_BELT, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x19997f, -1
- person_event SPRITE_TEACHER, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x199982, -1
+ person_event SPRITE_BLACK_BELT, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x19997f, -1
+ person_event SPRITE_TEACHER, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x199982, -1
--- a/maps/MahoganyTown.asm
+++ b/maps/MahoganyTown.asm
@@ -51,7 +51,7 @@
UnknownScript_0x190040:
loadfont
writetext UnknownText_0x1900b0
- special Function24ae8
+ special PlaceMoneyTopRightOW
yesorno
iffalse UnknownScript_0x190072
checkmoney $0, 300
@@ -61,7 +61,7 @@
waitbutton
playsound SFX_TRANSACTION
takemoney $0, 300
- special Function24ae8
+ special PlaceMoneyTopRightOW
writetext UnknownText_0x19014a
closetext
loadmovesprites
@@ -268,7 +268,7 @@
.PersonEvents:
db 4
- person_event SPRITE_POKEFAN_M, 8, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x19002e, EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_EAST
- person_event SPRITE_GRAMPS, 9, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, GrampsScript_0x19007e, -1
- person_event SPRITE_FISHER, 14, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x190092, EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_GYM
- person_event SPRITE_LASS, 8, 12, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, LassScript_0x190095, EVENT_MAHOGANY_MART_OWNERS
+ person_event SPRITE_POKEFAN_M, 8, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x19002e, EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_EAST
+ person_event SPRITE_GRAMPS, 9, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x19007e, -1
+ person_event SPRITE_FISHER, 14, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x190092, EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_GYM
+ person_event SPRITE_LASS, 8, 12, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x190095, EVENT_MAHOGANY_MART_OWNERS
--- a/maps/ManiasHouse.asm
+++ b/maps/ManiasHouse.asm
@@ -212,4 +212,4 @@
.PersonEvents:
db 1
- person_event SPRITE_ROCKER, 4, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, ManiaScript, -1
+ person_event SPRITE_ROCKER, 4, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ManiaScript, -1
--- a/maps/MountMoon.asm
+++ b/maps/MountMoon.asm
@@ -19,7 +19,7 @@
UnknownScript_0x7408e:
spriteface PLAYER, RIGHT
showemote EMOTE_SHOCK, PLAYER, 15
- special Functionc48f
+ special Special_RotatePalettesRightMusic
pause 15
applymovement $2, MovementData_0x740f9
playmusic MUSIC_RIVAL_ENCOUNTER
@@ -87,7 +87,7 @@
step_end
UnknownText_0x74105:
- text $56, " ", $56, " ", $56
+ text "<......> <......> <......>"
para "It's been a while,"
line "<PLAYER>."
@@ -107,7 +107,7 @@
done
UnknownText_0x7419d:
- text $56, " ", $56, " ", $56
+ text "<......> <......> <......>"
para "I thought I raised"
line "my #MON to be"
@@ -120,7 +120,7 @@
done
UnknownText_0x741fa:
- text $56, " ", $56, " ", $56
+ text "<......> <......> <......>"
para "…You won, fair"
line "and square."
@@ -146,7 +146,7 @@
done
UnknownText_0x742e0:
- text $56, " ", $56, " ", $56
+ text "<......> <......> <......>"
para "I've repaid my"
line "debt to you."
@@ -182,4 +182,4 @@
.PersonEvents:
db 1
- person_event SPRITE_SILVER, 3, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MT_MOON_RIVAL
+ person_event SPRITE_SILVER, 3, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_MT_MOON_RIVAL
--- a/maps/MountMoonGiftShop.asm
+++ b/maps/MountMoonGiftShop.asm
@@ -38,7 +38,7 @@
.PersonEvents:
db 4
- person_event SPRITE_GRAMPS, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, 1, 0, 0, 0, GrampsScript_0x771a8, -1
- person_event SPRITE_GRAMPS, 2, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, 2, 0, 0, 0, GrampsScript_0x771a8, -1
- person_event SPRITE_LASS, 6, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, 1, 0, 0, 0, LassScript_0x771b0, -1
- person_event SPRITE_LASS, 4, 5, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, 2, 0, 0, 0, LassScript_0x771b0, -1
+ person_event SPRITE_GRAMPS, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, 1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x771a8, -1
+ person_event SPRITE_GRAMPS, 2, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, 2, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x771a8, -1
+ person_event SPRITE_LASS, 6, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, 1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x771b0, -1
+ person_event SPRITE_LASS, 4, 5, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, 2, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x771b0, -1
--- a/maps/MountMoonSquare.asm
+++ b/maps/MountMoonSquare.asm
@@ -155,6 +155,6 @@
.PersonEvents:
db 3
- person_event SPRITE_FAIRY, 6, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MT_MOON_SQUARE_CLEFAIRY
- person_event SPRITE_FAIRY, 6, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MT_MOON_SQUARE_CLEFAIRY
- person_event SPRITE_ROCK, 7, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, MtMoonSquareRock, EVENT_MT_MOON_SQUARE_ROCK
+ person_event SPRITE_FAIRY, 6, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_MT_MOON_SQUARE_CLEFAIRY
+ person_event SPRITE_FAIRY, 6, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_MT_MOON_SQUARE_CLEFAIRY
+ person_event SPRITE_ROCK, 7, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MtMoonSquareRock, EVENT_MT_MOON_SQUARE_ROCK
--- a/maps/MountMortar1FInside.asm
+++ b/maps/MountMortar1FInside.asm
@@ -127,13 +127,13 @@
.PersonEvents:
db 10
- person_event SPRITE_BOULDER, 43, 21, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, MountMortar1FBoulder, -1
- person_event SPRITE_POKE_BALL, 38, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de7c, EVENT_MOUNT_MORTAR_1F_INSIDE_ESCAPE_ROPE
- person_event SPRITE_POKE_BALL, 10, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de7e, EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_REVIVE
- person_event SPRITE_POKE_BALL, 27, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de80, EVENT_MOUNT_MORTAR_1F_INSIDE_HYPER_POTION
- person_event SPRITE_POKE_BALL, 20, 22, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de82, EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_POTION
- person_event SPRITE_POKE_BALL, 19, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de84, EVENT_MOUNT_MORTAR_1F_INSIDE_NUGGET
- person_event SPRITE_SUPER_NERD, 43, 33, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacMiller, -1
- person_event SPRITE_SUPER_NERD, 28, 24, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerSupernerdMarkus, -1
- person_event SPRITE_POKE_BALL, 16, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de86, EVENT_MOUNT_MORTAR_1F_INSIDE_IRON
- person_event SPRITE_POKE_BALL, 17, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de88, EVENT_MOUNT_MORTAR_1F_INSIDE_ULTRA_BALL
+ person_event SPRITE_BOULDER, 43, 21, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MountMortar1FBoulder, -1
+ person_event SPRITE_POKE_BALL, 38, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7de7c, EVENT_MOUNT_MORTAR_1F_INSIDE_ESCAPE_ROPE
+ person_event SPRITE_POKE_BALL, 10, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7de7e, EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_REVIVE
+ person_event SPRITE_POKE_BALL, 27, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7de80, EVENT_MOUNT_MORTAR_1F_INSIDE_HYPER_POTION
+ person_event SPRITE_POKE_BALL, 20, 22, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7de82, EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_POTION
+ person_event SPRITE_POKE_BALL, 19, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7de84, EVENT_MOUNT_MORTAR_1F_INSIDE_NUGGET
+ person_event SPRITE_SUPER_NERD, 43, 33, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPokemaniacMiller, -1
+ person_event SPRITE_SUPER_NERD, 28, 24, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerSupernerdMarkus, -1
+ person_event SPRITE_POKE_BALL, 16, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7de86, EVENT_MOUNT_MORTAR_1F_INSIDE_IRON
+ person_event SPRITE_POKE_BALL, 17, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7de88, EVENT_MOUNT_MORTAR_1F_INSIDE_ULTRA_BALL
--- a/maps/MountMortar1FOutside.asm
+++ b/maps/MountMortar1FOutside.asm
@@ -40,5 +40,5 @@
.PersonEvents:
db 2
- person_event SPRITE_POKE_BALL, 15, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ddf6, EVENT_MOUNT_MORTAR_1F_OUTSIDE_ETHER
- person_event SPRITE_POKE_BALL, 18, 31, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ddf8, EVENT_MOUNT_MORTAR_1F_OUTSIDE_REVIVE
+ person_event SPRITE_POKE_BALL, 15, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7ddf6, EVENT_MOUNT_MORTAR_1F_OUTSIDE_ETHER
+ person_event SPRITE_POKE_BALL, 18, 31, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7ddf8, EVENT_MOUNT_MORTAR_1F_OUTSIDE_REVIVE
--- a/maps/MountMortar2FInside.asm
+++ b/maps/MountMortar2FInside.asm
@@ -76,10 +76,10 @@
.PersonEvents:
db 7
- person_event SPRITE_POKE_BALL, 22, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0de, EVENT_MOUNT_MORTAR_2F_INSIDE_MAX_POTION
- person_event SPRITE_POKE_BALL, 33, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e0, EVENT_MOUNT_MORTAR_2F_INSIDE_RARE_CANDY
- person_event SPRITE_POKE_BALL, 17, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e2, EVENT_MOUNT_MORTAR_2F_INSIDE_TM_DEFENSE_CURL
- person_event SPRITE_POKE_BALL, 5, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e4, EVENT_MOUNT_MORTAR_2F_INSIDE_DRAGON_SCALE
- person_event SPRITE_POKE_BALL, 11, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e6, EVENT_MOUNT_MORTAR_2F_INSIDE_ELIXER
- person_event SPRITE_POKE_BALL, 5, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e8, EVENT_MOUNT_MORTAR_2F_INSIDE_ESCAPE_ROPE
- person_event SPRITE_SUPER_NERD, 26, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerSupernerdHugh, -1
+ person_event SPRITE_POKE_BALL, 22, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e0de, EVENT_MOUNT_MORTAR_2F_INSIDE_MAX_POTION
+ person_event SPRITE_POKE_BALL, 33, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e0e0, EVENT_MOUNT_MORTAR_2F_INSIDE_RARE_CANDY
+ person_event SPRITE_POKE_BALL, 17, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e0e2, EVENT_MOUNT_MORTAR_2F_INSIDE_TM_DEFENSE_CURL
+ person_event SPRITE_POKE_BALL, 5, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e0e4, EVENT_MOUNT_MORTAR_2F_INSIDE_DRAGON_SCALE
+ person_event SPRITE_POKE_BALL, 11, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e0e6, EVENT_MOUNT_MORTAR_2F_INSIDE_ELIXER
+ person_event SPRITE_POKE_BALL, 5, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e0e8, EVENT_MOUNT_MORTAR_2F_INSIDE_ESCAPE_ROPE
+ person_event SPRITE_SUPER_NERD, 26, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerSupernerdHugh, -1
--- a/maps/MountMortarB1F.asm
+++ b/maps/MountMortarB1F.asm
@@ -144,10 +144,10 @@
.PersonEvents:
db 7
- person_event SPRITE_POKE_BALL, 12, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e240, EVENT_MOUNT_MORTAR_B1F_HYPER_POTION
- person_event SPRITE_POKE_BALL, 16, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e242, EVENT_MOUNT_MORTAR_B1F_CARBOS
- person_event SPRITE_BOULDER, 10, 9, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, MountMortarB1FBoulder, -1
- person_event SPRITE_BLACK_BELT, 4, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, BlackBeltScript_0x7e1f6, -1
- person_event SPRITE_POKE_BALL, 24, 34, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e244, EVENT_MOUNT_MORTAR_B1F_FULL_RESTORE
- person_event SPRITE_POKE_BALL, 3, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e246, EVENT_MOUNT_MORTAR_B1F_MAX_ETHER
- person_event SPRITE_POKE_BALL, 26, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e248, EVENT_MOUNT_MORTAR_B1F_PP_UP
+ person_event SPRITE_POKE_BALL, 12, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e240, EVENT_MOUNT_MORTAR_B1F_HYPER_POTION
+ person_event SPRITE_POKE_BALL, 16, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e242, EVENT_MOUNT_MORTAR_B1F_CARBOS
+ person_event SPRITE_BOULDER, 10, 9, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MountMortarB1FBoulder, -1
+ person_event SPRITE_BLACK_BELT, 4, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x7e1f6, -1
+ person_event SPRITE_POKE_BALL, 24, 34, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e244, EVENT_MOUNT_MORTAR_B1F_FULL_RESTORE
+ person_event SPRITE_POKE_BALL, 3, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e246, EVENT_MOUNT_MORTAR_B1F_MAX_ETHER
+ person_event SPRITE_POKE_BALL, 26, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e248, EVENT_MOUNT_MORTAR_B1F_PP_UP
--- a/maps/MoveDeletersHouse.asm
+++ b/maps/MoveDeletersHouse.asm
@@ -35,4 +35,4 @@
.PersonEvents:
db 1
- person_event SPRITE_SUPER_NERD, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, MoveDeleter, -1
+ person_event SPRITE_SUPER_NERD, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MoveDeleter, -1
--- a/maps/MrFujisHouse.asm
+++ b/maps/MrFujisHouse.asm
@@ -91,8 +91,8 @@
.PersonEvents:
db 5
- person_event SPRITE_SUPER_NERD, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x7e8ca, -1
- person_event SPRITE_LASS, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, LassScript_0x7e8cd, -1
- person_event SPRITE_RHYDON, 4, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, MrFujisPsyduck, -1
- person_event SPRITE_GROWLITHE, 5, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, MrFujisNidorino, -1
- person_event SPRITE_MOLTRES, 3, 1, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MrFujisPidgey, -1
+ person_event SPRITE_SUPER_NERD, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x7e8ca, -1
+ person_event SPRITE_LASS, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x7e8cd, -1
+ person_event SPRITE_RHYDON, 4, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MrFujisPsyduck, -1
+ person_event SPRITE_GROWLITHE, 5, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, MrFujisNidorino, -1
+ person_event SPRITE_MOLTRES, 3, 1, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, MrFujisPidgey, -1
--- a/maps/MrPokemonsHouse.asm
+++ b/maps/MrPokemonsHouse.asm
@@ -392,5 +392,5 @@
.PersonEvents:
db 2
- person_event SPRITE_GENTLEMAN, 5, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x196e97, -1
- person_event SPRITE_OAK, 5, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MR_POKEMONS_HOUSE_OAK
+ person_event SPRITE_GENTLEMAN, 5, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x196e97, -1
+ person_event SPRITE_OAK, 5, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_MR_POKEMONS_HOUSE_OAK
--- a/maps/MrPsychicsHouse.asm
+++ b/maps/MrPsychicsHouse.asm
@@ -63,4 +63,4 @@
.PersonEvents:
db 1
- person_event SPRITE_FISHING_GURU, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, MrPsychic, -1
+ person_event SPRITE_FISHING_GURU, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, MrPsychic, -1
--- a/maps/NationalPark.asm
+++ b/maps/NationalPark.asm
@@ -521,17 +521,17 @@
.PersonEvents:
db 14
- person_event SPRITE_LASS, 24, 15, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x5c002, -1
- person_event SPRITE_POKEFAN_F, 4, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, PokefanFScript_0x5c005, -1
- person_event SPRITE_TEACHER, 40, 27, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x5c008, -1
- person_event SPRITE_YOUNGSTER, 41, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, YoungsterScript_0x5c023, -1
- person_event SPRITE_YOUNGSTER, 41, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5c026, -1
- person_event SPRITE_TEACHER, 41, 17, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, 0, 0, TeacherScript_0x5c029, -1
- person_event SPRITE_GROWLITHE, 40, 26, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, GrowlitheScript_0x5c02c, -1
- person_event SPRITE_YOUNGSTER, 23, 27, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSchoolboyJack1, -1
- person_event SPRITE_POKEFAN_F, 29, 18, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerPokefanfBeverly1, -1
- person_event SPRITE_POKEFAN_M, 9, 16, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerPokefanmWilliam, -1
- person_event SPRITE_LASS, 14, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerLassKrise, -1
- person_event SPRITE_POKE_BALL, 12, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c1cc, EVENT_NATIONAL_PARK_PARLYZ_HEAL
- person_event SPRITE_GAMEBOY_KID, 6, 26, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, GameboyKidScript_0x5c037, -1
- person_event SPRITE_POKE_BALL, 43, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c1ce, EVENT_NATIONAL_PARK_TM_DIG
+ person_event SPRITE_LASS, 24, 15, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x5c002, -1
+ person_event SPRITE_POKEFAN_F, 4, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x5c005, -1
+ person_event SPRITE_TEACHER, 40, 27, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x5c008, -1
+ person_event SPRITE_YOUNGSTER, 41, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5c023, -1
+ person_event SPRITE_YOUNGSTER, 41, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5c026, -1
+ person_event SPRITE_TEACHER, 41, 17, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x5c029, -1
+ person_event SPRITE_GROWLITHE, 40, 26, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrowlitheScript_0x5c02c, -1
+ person_event SPRITE_YOUNGSTER, 23, 27, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSchoolboyJack1, -1
+ person_event SPRITE_POKEFAN_F, 29, 18, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 2, TrainerPokefanfBeverly1, -1
+ person_event SPRITE_POKEFAN_M, 9, 16, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 2, TrainerPokefanmWilliam, -1
+ person_event SPRITE_LASS, 14, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerLassKrise, -1
+ person_event SPRITE_POKE_BALL, 12, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5c1cc, EVENT_NATIONAL_PARK_PARLYZ_HEAL
+ person_event SPRITE_GAMEBOY_KID, 6, 26, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x5c037, -1
+ person_event SPRITE_POKE_BALL, 43, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5c1ce, EVENT_NATIONAL_PARK_TM_DIG
--- a/maps/NationalParkBugContest.asm
+++ b/maps/NationalParkBugContest.asm
@@ -230,15 +230,15 @@
.PersonEvents:
db 12
- person_event SPRITE_YOUNGSTER, 29, 19, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5c8ec, EVENT_BUG_CATCHING_CONTESTANT_1A
- person_event SPRITE_YOUNGSTER, 22, 28, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x5c8f4, EVENT_BUG_CATCHING_CONTESTANT_2A
- person_event SPRITE_ROCKER, 18, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, RockerScript_0x5c8fc, EVENT_BUG_CATCHING_CONTESTANT_3A
- person_event SPRITE_POKEFAN_M, 13, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x5c904, EVENT_BUG_CATCHING_CONTESTANT_4A
- person_event SPRITE_YOUNGSTER, 9, 23, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5c90c, EVENT_BUG_CATCHING_CONTESTANT_5A
- person_event SPRITE_YOUNGSTER, 13, 27, SPRITEMOVEDATA_WANDER, 3, 3, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x5c914, EVENT_BUG_CATCHING_CONTESTANT_6A
- person_event SPRITE_LASS, 23, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LassScript_0x5c91c, EVENT_BUG_CATCHING_CONTESTANT_7A
- person_event SPRITE_YOUNGSTER, 27, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5c924, EVENT_BUG_CATCHING_CONTESTANT_8A
- person_event SPRITE_YOUNGSTER, 8, 16, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x5c92c, EVENT_BUG_CATCHING_CONTESTANT_9A
- person_event SPRITE_YOUNGSTER, 34, 17, SPRITEMOVEDATA_WANDER, 3, 3, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x5c934, EVENT_BUG_CATCHING_CONTESTANT_10A
- person_event SPRITE_POKE_BALL, 12, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c945, EVENT_NATIONAL_PARK_PARLYZ_HEAL
- person_event SPRITE_POKE_BALL, 43, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c947, EVENT_NATIONAL_PARK_TM_DIG
+ person_event SPRITE_YOUNGSTER, 29, 19, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5c8ec, EVENT_BUG_CATCHING_CONTESTANT_1A
+ person_event SPRITE_YOUNGSTER, 22, 28, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5c8f4, EVENT_BUG_CATCHING_CONTESTANT_2A
+ person_event SPRITE_ROCKER, 18, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, RockerScript_0x5c8fc, EVENT_BUG_CATCHING_CONTESTANT_3A
+ person_event SPRITE_POKEFAN_M, 13, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x5c904, EVENT_BUG_CATCHING_CONTESTANT_4A
+ person_event SPRITE_YOUNGSTER, 9, 23, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5c90c, EVENT_BUG_CATCHING_CONTESTANT_5A
+ person_event SPRITE_YOUNGSTER, 13, 27, SPRITEMOVEDATA_WANDER, 3, 3, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5c914, EVENT_BUG_CATCHING_CONTESTANT_6A
+ person_event SPRITE_LASS, 23, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, LassScript_0x5c91c, EVENT_BUG_CATCHING_CONTESTANT_7A
+ person_event SPRITE_YOUNGSTER, 27, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5c924, EVENT_BUG_CATCHING_CONTESTANT_8A
+ person_event SPRITE_YOUNGSTER, 8, 16, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5c92c, EVENT_BUG_CATCHING_CONTESTANT_9A
+ person_event SPRITE_YOUNGSTER, 34, 17, SPRITEMOVEDATA_WANDER, 3, 3, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5c934, EVENT_BUG_CATCHING_CONTESTANT_10A
+ person_event SPRITE_POKE_BALL, 12, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5c945, EVENT_NATIONAL_PARK_PARLYZ_HEAL
+ person_event SPRITE_POKE_BALL, 43, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5c947, EVENT_NATIONAL_PARK_TM_DIG
--- a/maps/NewBarkTown.asm
+++ b/maps/NewBarkTown.asm
@@ -305,6 +305,6 @@
.PersonEvents:
db 3
- person_event SPRITE_TEACHER, 8, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 1, -1, -1, 0, 0, 0, TeacherScript_0x1a806f, -1
- person_event SPRITE_FISHER, 9, 12, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1a809b, -1
- person_event SPRITE_SILVER, 2, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, SilverScript_0x1a809e, EVENT_RIVAL_NEW_BARK_TOWN
+ person_event SPRITE_TEACHER, 8, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1a806f, -1
+ person_event SPRITE_FISHER, 9, 12, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x1a809b, -1
+ person_event SPRITE_SILVER, 2, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SilverScript_0x1a809e, EVENT_RIVAL_NEW_BARK_TOWN
--- a/maps/OaksLab.asm
+++ b/maps/OaksLab.asm
@@ -283,7 +283,7 @@
.PersonEvents:
db 4
- person_event SPRITE_OAK, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, Oak, -1
- person_event SPRITE_SCIENTIST, 8, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x19b40f, -1
- person_event SPRITE_SCIENTIST, 9, 8, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x19b412, -1
- person_event SPRITE_SCIENTIST, 4, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x19b415, -1
+ person_event SPRITE_OAK, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Oak, -1
+ person_event SPRITE_SCIENTIST, 8, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x19b40f, -1
+ person_event SPRITE_SCIENTIST, 9, 8, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x19b412, -1
+ person_event SPRITE_SCIENTIST, 4, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x19b415, -1
--- a/maps/OlivineCafe.asm
+++ b/maps/OlivineCafe.asm
@@ -90,6 +90,6 @@
.PersonEvents:
db 3
- person_event SPRITE_SAILOR, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x9c8c1, -1
- person_event SPRITE_FISHING_GURU, 3, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, FishingGuruScript_0x9c8d9, -1
- person_event SPRITE_SAILOR, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x9c8dc, -1
+ person_event SPRITE_SAILOR, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x9c8c1, -1
+ person_event SPRITE_FISHING_GURU, 3, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x9c8d9, -1
+ person_event SPRITE_SAILOR, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x9c8dc, -1
--- a/maps/OlivineCity.asm
+++ b/maps/OlivineCity.asm
@@ -25,7 +25,7 @@
UnknownScript_0x1a8833:
spriteface PLAYER, LEFT
showemote EMOTE_SHOCK, PLAYER, 15
- special Functionc48f
+ special Special_RotatePalettesRightMusic
pause 15
playsound SFX_ENTER_DOOR
appear $5
@@ -49,7 +49,7 @@
UnknownScript_0x1a886b:
spriteface PLAYER, LEFT
showemote EMOTE_SHOCK, PLAYER, 15
- special Functionc48f
+ special Special_RotatePalettesRightMusic
pause 15
playsound SFX_ENTER_DOOR
appear $5
@@ -320,7 +320,7 @@
.PersonEvents:
db 4
- person_event SPRITE_SAILOR, 27, 26, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, SailorScript_0x1a88a3, -1
- person_event SPRITE_STANDING_YOUNGSTER, 13, 20, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, StandingYoungsterScript_0x1a88a6, -1
- person_event SPRITE_SAILOR, 21, 17, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, SailorScript_0x1a88ba, -1
- person_event SPRITE_OLIVINE_RIVAL, 11, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_OLIVINE_CITY
+ person_event SPRITE_SAILOR, 27, 26, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x1a88a3, -1
+ person_event SPRITE_STANDING_YOUNGSTER, 13, 20, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, StandingYoungsterScript_0x1a88a6, -1
+ person_event SPRITE_SAILOR, 21, 17, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x1a88ba, -1
+ person_event SPRITE_OLIVINE_RIVAL, 11, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_RIVAL_OLIVINE_CITY
--- a/maps/OlivineGoodRodHouse.asm
+++ b/maps/OlivineGoodRodHouse.asm
@@ -96,4 +96,4 @@
.PersonEvents:
db 1
- person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GoodRodGuru, -1
+ person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, GoodRodGuru, -1
--- a/maps/OlivineGym.asm
+++ b/maps/OlivineGym.asm
@@ -212,5 +212,5 @@
.PersonEvents:
db 2
- person_event SPRITE_JASMINE, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, JasmineScript_0x9c12f, EVENT_OLIVINE_GYM_JASMINE
- person_event SPRITE_GYM_GUY, 13, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OlivineGymGuyScript, -1
+ person_event SPRITE_JASMINE, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, JasmineScript_0x9c12f, EVENT_OLIVINE_GYM_JASMINE
+ person_event SPRITE_GYM_GUY, 13, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, OlivineGymGuyScript, -1
--- a/maps/OlivineHouseBeta.asm
+++ b/maps/OlivineHouseBeta.asm
@@ -54,5 +54,5 @@
.PersonEvents:
db 2
- person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x9c58f, -1
- person_event SPRITE_RHYDON, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, 0, 0, 0, RhydonScript_0x9c592, -1
+ person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x9c58f, -1
+ person_event SPRITE_RHYDON, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RhydonScript_0x9c592, -1
--- a/maps/OlivineLighthouse1F.asm
+++ b/maps/OlivineLighthouse1F.asm
@@ -52,5 +52,5 @@
.PersonEvents:
db 2
- person_event SPRITE_SAILOR, 2, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x5ae67, -1
- person_event SPRITE_POKEFAN_F, 9, 16, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, 0, 0, 0, PokefanFScript_0x5ae6a, -1
+ person_event SPRITE_SAILOR, 2, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x5ae67, -1
+ person_event SPRITE_POKEFAN_F, 9, 16, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x5ae6a, -1
--- a/maps/OlivineLighthouse2F.asm
+++ b/maps/OlivineLighthouse2F.asm
@@ -221,5 +221,5 @@
.PersonEvents:
db 2
- person_event SPRITE_SAILOR, 3, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSailorHuey1, -1
- person_event SPRITE_GENTLEMAN, 8, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerGentlemanAlfred, -1
+ person_event SPRITE_SAILOR, 3, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSailorHuey1, -1
+ person_event SPRITE_GENTLEMAN, 8, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerGentlemanAlfred, -1
--- a/maps/OlivineLighthouse3F.asm
+++ b/maps/OlivineLighthouse3F.asm
@@ -130,7 +130,7 @@
.PersonEvents:
db 4
- person_event SPRITE_SAILOR, 2, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSailorTerrell, -1
- person_event SPRITE_GENTLEMAN, 5, 13, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerGentlemanPreston, -1
- person_event SPRITE_YOUNGSTER, 9, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperTheo, -1
- person_event SPRITE_POKE_BALL, 2, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5b279, EVENT_OLIVINE_LIGHTHOUSE_3F_ETHER
+ person_event SPRITE_SAILOR, 2, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerSailorTerrell, -1
+ person_event SPRITE_GENTLEMAN, 5, 13, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerGentlemanPreston, -1
+ person_event SPRITE_YOUNGSTER, 9, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBird_keeperTheo, -1
+ person_event SPRITE_POKE_BALL, 2, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5b279, EVENT_OLIVINE_LIGHTHOUSE_3F_ETHER
--- a/maps/OlivineLighthouse4F.asm
+++ b/maps/OlivineLighthouse4F.asm
@@ -102,5 +102,5 @@
.PersonEvents:
db 2
- person_event SPRITE_SAILOR, 14, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSailorKent, -1
- person_event SPRITE_LASS, 2, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerLassConnie, -1
+ person_event SPRITE_SAILOR, 14, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSailorKent, -1
+ person_event SPRITE_LASS, 2, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerLassConnie, -1
--- a/maps/OlivineLighthouse5F.asm
+++ b/maps/OlivineLighthouse5F.asm
@@ -107,8 +107,8 @@
.PersonEvents:
db 5
- person_event SPRITE_SAILOR, 11, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSailorErnest, -1
- person_event SPRITE_YOUNGSTER, 3, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerBird_keeperDenis, -1
- person_event SPRITE_POKE_BALL, 12, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x609aa, EVENT_OLIVINE_LIGHTHOUSE_5F_RARE_CANDY
- person_event SPRITE_POKE_BALL, 15, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x609ac, EVENT_OLIVINE_LIGHTHOUSE_5F_SUPER_REPEL
- person_event SPRITE_POKE_BALL, 13, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x609ae, EVENT_OLIVINE_LIGHTHOUSE_5F_TM_SWAGGER
+ person_event SPRITE_SAILOR, 11, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSailorErnest, -1
+ person_event SPRITE_YOUNGSTER, 3, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerBird_keeperDenis, -1
+ person_event SPRITE_POKE_BALL, 12, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x609aa, EVENT_OLIVINE_LIGHTHOUSE_5F_RARE_CANDY
+ person_event SPRITE_POKE_BALL, 15, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x609ac, EVENT_OLIVINE_LIGHTHOUSE_5F_SUPER_REPEL
+ person_event SPRITE_POKE_BALL, 13, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x609ae, EVENT_OLIVINE_LIGHTHOUSE_5F_TM_SWAGGER
--- a/maps/OlivineLighthouse6F.asm
+++ b/maps/OlivineLighthouse6F.asm
@@ -270,6 +270,6 @@
.PersonEvents:
db 3
- person_event SPRITE_JASMINE, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, JasmineScript_0x60b91, EVENT_OLIVINE_LIGHTHOUSE_JASMINE
- person_event SPRITE_MONSTER, 8, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MonsterScript_0x60c3a, -1
- person_event SPRITE_POKE_BALL, 4, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x60c66, EVENT_OLIVINE_LIGHTHOUSE_6F_SUPER_POTION
+ person_event SPRITE_JASMINE, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, JasmineScript_0x60b91, EVENT_OLIVINE_LIGHTHOUSE_JASMINE
+ person_event SPRITE_MONSTER, 8, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, MonsterScript_0x60c3a, -1
+ person_event SPRITE_POKE_BALL, 4, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x60c66, EVENT_OLIVINE_LIGHTHOUSE_6F_SUPER_POTION
--- a/maps/OlivineMart.asm
+++ b/maps/OlivineMart.asm
@@ -57,6 +57,6 @@
.PersonEvents:
db 3
- person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x9cac7, -1
- person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x9cace, -1
- person_event SPRITE_LASS, 6, 1, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, LassScript_0x9cad1, -1
+ person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x9cac7, -1
+ person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x9cace, -1
+ person_event SPRITE_LASS, 6, 1, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x9cad1, -1
--- a/maps/OlivinePokeCenter1F.asm
+++ b/maps/OlivinePokeCenter1F.asm
@@ -59,7 +59,7 @@
.PersonEvents:
db 4
- person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x9c002, -1
- person_event SPRITE_FISHING_GURU, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, FishingGuruScript_0x9c005, -1
- person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x9c008, -1
- person_event SPRITE_TEACHER, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x9c00b, -1
+ person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x9c002, -1
+ person_event SPRITE_FISHING_GURU, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x9c005, -1
+ person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x9c008, -1
+ person_event SPRITE_TEACHER, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x9c00b, -1
--- a/maps/OlivinePort.asm
+++ b/maps/OlivinePort.asm
@@ -397,10 +397,10 @@
.PersonEvents:
db 7
- person_event SPRITE_SAILOR, 23, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x748c0, EVENT_OLIVINE_PORT_SAILOR_AT_GANGWAY
- person_event SPRITE_SAILOR, 15, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x749fe, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME
- person_event SPRITE_SAILOR, 15, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x7499c, EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME
- person_event SPRITE_FISHING_GURU, 14, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, FishingGuruScript_0x74a01, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME
- person_event SPRITE_FISHING_GURU, 14, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, FishingGuruScript_0x74a0c, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME
- person_event SPRITE_YOUNGSTER, 15, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, YoungsterScript_0x74a17, EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME
- person_event SPRITE_COOLTRAINER_F, 15, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x74a22, EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME
+ person_event SPRITE_SAILOR, 23, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x748c0, EVENT_OLIVINE_PORT_SAILOR_AT_GANGWAY
+ person_event SPRITE_SAILOR, 15, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x749fe, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME
+ person_event SPRITE_SAILOR, 15, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x7499c, EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME
+ person_event SPRITE_FISHING_GURU, 14, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x74a01, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME
+ person_event SPRITE_FISHING_GURU, 14, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x74a0c, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME
+ person_event SPRITE_YOUNGSTER, 15, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x74a17, EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME
+ person_event SPRITE_COOLTRAINER_F, 15, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x74a22, EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME
--- a/maps/OlivinePortPassage.asm
+++ b/maps/OlivinePortPassage.asm
@@ -36,4 +36,4 @@
.PersonEvents:
db 1
- person_event SPRITE_POKEFAN_M, 1, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x76fac, EVENT_OLIVINE_PORT_PASSAGE_POKEFAN_M
+ person_event SPRITE_POKEFAN_M, 1, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x76fac, EVENT_OLIVINE_PORT_PASSAGE_POKEFAN_M
--- a/maps/OlivinePunishmentSpeechHouse.asm
+++ b/maps/OlivinePunishmentSpeechHouse.asm
@@ -54,5 +54,5 @@
.PersonEvents:
db 2
- person_event SPRITE_POKEFAN_M, 2, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, OlivinePunishmentSpeechHouseDad, -1
- person_event SPRITE_LASS, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, 0, 0, OlivinePunishmentSpeechHouseDaughter, -1
+ person_event SPRITE_POKEFAN_M, 2, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivinePunishmentSpeechHouseDad, -1
+ person_event SPRITE_LASS, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivinePunishmentSpeechHouseDaughter, -1
--- a/maps/OlivineVoltorbHouse.asm
+++ b/maps/OlivineVoltorbHouse.asm
@@ -35,4 +35,4 @@
.PersonEvents:
db 1
- person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, Tim, -1
+ person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, Tim, -1
--- a/maps/PalletTown.asm
+++ b/maps/PalletTown.asm
@@ -89,5 +89,5 @@
.PersonEvents:
db 2
- person_event SPRITE_TEACHER, 8, 3, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, TeacherScript_0x1ac6d5, -1
- person_event SPRITE_FISHER, 14, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1ac6d8, -1
+ person_event SPRITE_TEACHER, 8, 3, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1ac6d5, -1
+ person_event SPRITE_FISHER, 14, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x1ac6d8, -1
--- a/maps/PewterCity.asm
+++ b/maps/PewterCity.asm
@@ -58,10 +58,10 @@
jumpstd martsign
FruitTreeScript_0x18c03e:
- fruittree $1c
+ fruittree FRUITTREE_PEWTER_CITY_1
FruitTreeScript_0x18c040:
- fruittree $1d
+ fruittree FRUITTREE_PEWTER_CITY_2
UnknownText_0x18c042:
text "Have you visited"
@@ -174,8 +174,8 @@
.PersonEvents:
db 5
- person_event SPRITE_COOLTRAINER_F, 11, 19, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x18c009, -1
- person_event SPRITE_BUG_CATCHER, 29, 14, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, BugCatcherScript_0x18c00c, -1
- person_event SPRITE_GRAMPS, 17, 29, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrampsScript_0x18c00f, -1
- person_event SPRITE_FRUIT_TREE, 3, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x18c03e, -1
- person_event SPRITE_FRUIT_TREE, 3, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x18c040, -1
+ person_event SPRITE_COOLTRAINER_F, 11, 19, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x18c009, -1
+ person_event SPRITE_BUG_CATCHER, 29, 14, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x18c00c, -1
+ person_event SPRITE_GRAMPS, 17, 29, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GrampsScript_0x18c00f, -1
+ person_event SPRITE_FRUIT_TREE, 3, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x18c03e, -1
+ person_event SPRITE_FRUIT_TREE, 3, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x18c040, -1
--- a/maps/PewterGym.asm
+++ b/maps/PewterGym.asm
@@ -222,6 +222,6 @@
.PersonEvents:
db 3
- person_event SPRITE_BROCK, 1, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, BrockScript_0x1a2864, -1
- person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerCamperJerry, -1
- person_event SPRITE_GYM_GUY, 11, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 1, PewterGymGuyScript, -1
+ person_event SPRITE_BROCK, 1, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, BrockScript_0x1a2864, -1
+ person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerCamperJerry, -1
+ person_event SPRITE_GYM_GUY, 11, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 1, PewterGymGuyScript, -1
--- a/maps/PewterMart.asm
+++ b/maps/PewterMart.asm
@@ -57,6 +57,6 @@
.PersonEvents:
db 3
- person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x1a2dcb, -1
- person_event SPRITE_YOUNGSTER, 2, 9, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, 0, 0, YoungsterScript_0x1a2dd2, -1
- person_event SPRITE_SUPER_NERD, 6, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x1a2dd5, -1
+ person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x1a2dcb, -1
+ person_event SPRITE_YOUNGSTER, 2, 9, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a2dd2, -1
+ person_event SPRITE_SUPER_NERD, 6, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x1a2dd5, -1
--- a/maps/PewterNidoranSpeechHouse.asm
+++ b/maps/PewterNidoranSpeechHouse.asm
@@ -41,5 +41,5 @@
.PersonEvents:
db 2
- person_event SPRITE_SUPER_NERD, 5, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x1a2807, -1
- person_event SPRITE_GROWLITHE, 5, 4, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrowlitheScript_0x1a280a, -1
+ person_event SPRITE_SUPER_NERD, 5, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x1a2807, -1
+ person_event SPRITE_GROWLITHE, 5, 4, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GrowlitheScript_0x1a280a, -1
--- a/maps/PewterPokeCenter1F.asm
+++ b/maps/PewterPokeCenter1F.asm
@@ -78,8 +78,8 @@
.PersonEvents:
db 5
- person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x1a2ee7, -1
- person_event SPRITE_TEACHER, 6, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x1a2eea, -1
- person_event SPRITE_JIGGLYPUFF, 3, 1, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, JigglypuffScript_0x1a2eed, -1
- person_event SPRITE_BUG_CATCHER, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, BugCatcherScript_0x1a2ef7, -1
- person_event SPRITE_POKEFAN_M, 2, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x1a2efa, -1
+ person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x1a2ee7, -1
+ person_event SPRITE_TEACHER, 6, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1a2eea, -1
+ person_event SPRITE_JIGGLYPUFF, 3, 1, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, JigglypuffScript_0x1a2eed, -1
+ person_event SPRITE_BUG_CATCHER, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x1a2ef7, -1
+ person_event SPRITE_POKEFAN_M, 2, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x1a2efa, -1
--- a/maps/PewterSnoozeSpeechHouse.asm
+++ b/maps/PewterSnoozeSpeechHouse.asm
@@ -36,4 +36,4 @@
.PersonEvents:
db 1
- person_event SPRITE_GRAMPS, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrampsScript_0x1a3059, -1
+ person_event SPRITE_GRAMPS, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a3059, -1
--- a/maps/PokeCenter2F.asm
+++ b/maps/PokeCenter2F.asm
@@ -72,10 +72,10 @@
writetext Text_TradeReceptionistIntro
yesorno
iffalse .Cancel
- special Function10630f
+ special Mobile_DummyReturnFalse ; always returns false
iffalse .NoMobile
writetext Text_TradeReceptionistMobile
- special Function103612
+ special AskMobileOrCable
iffalse .Cancel
if_equal $1, .Mobile
.NoMobile:
@@ -91,7 +91,7 @@
writetext Text_PleaseWait
special Special_CheckLinkTimeout
iffalse .LinkTimedOut
- copybytetovar wcf51
+ copybytetovar wOtherPlayerLinkMode
iffalse .LinkedToFirstGen
special Special_CheckBothSelectedSameRoom
iffalse .IncompatibleRooms
@@ -174,10 +174,10 @@
writetext Text_BattleReceptionistIntro
yesorno
iffalse .Cancel
- special Function10630f
+ special Mobile_DummyReturnFalse ; always returns false
iffalse .NoMobile
writetext Text_BattleReceptionistMobile
- special Function103612
+ special AskMobileOrCable
iffalse .Cancel
if_equal $1, .Mobile
.NoMobile:
@@ -193,7 +193,7 @@
writetext Text_PleaseWait
special Special_CheckLinkTimeout
iffalse .LinkTimedOut
- copybytetovar wcf51
+ copybytetovar wOtherPlayerLinkMode
iffalse .LinkedToFirstGen
special Special_CheckBothSelectedSameRoom
iffalse .IncompatibleRooms
@@ -320,7 +320,7 @@
writetext Text_PleaseWait
special Special_CheckLinkTimeout
iffalse .LinkTimedOut
- copybytetovar wcf51
+ copybytetovar wOtherPlayerLinkMode
iffalse .OK
special Special_CheckBothSelectedSameRoom
writetext Text_IncompatibleRooms
@@ -431,8 +431,8 @@
loadmovesprites
playsound SFX_TINGLE
applymovement PLAYER, MovementData_0x192d17
- writebyte $80
- special Functionc225
+ writebyte (1 << 7) | (PAL_OW_RED << 4)
+ special Special_SetPlayerPalette
applymovement PLAYER, MovementData_0x192d1c
setflag ENGINE_KRIS_IN_CABLE_CLUB
special ReplaceKrisSprite
@@ -458,8 +458,8 @@
clearflag ENGINE_KRIS_IN_CABLE_CLUB
playsound SFX_TINGLE
applymovement PLAYER, MovementData_0x192d17
- writebyte $90
- special Functionc225
+ writebyte (1 << 7) | (PAL_OW_BLUE << 4)
+ special Special_SetPlayerPalette
applymovement PLAYER, MovementData_0x192d1c
special ReplaceKrisSprite
applymovement PLAYER, MovementData_0x192d2a
@@ -480,8 +480,8 @@
clearflag ENGINE_KRIS_IN_CABLE_CLUB
playsound SFX_TINGLE
applymovement PLAYER, MovementData_0x192d17
- writebyte $90
- special Functionc225
+ writebyte (1 << 7) | (PAL_OW_BLUE << 4)
+ special Special_SetPlayerPalette
applymovement PLAYER, MovementData_0x192d1c
special ReplaceKrisSprite
applymovement PLAYER, MovementData_0x192d2a
@@ -539,8 +539,8 @@
loadmovesprites
playsound SFX_TINGLE
applymovement PLAYER, MovementData_0x192d17
- writebyte $80
- special Functionc225
+ writebyte (1 << 7) | (PAL_OW_RED << 4)
+ special Special_SetPlayerPalette
applymovement PLAYER, MovementData_0x192d22
faceperson PLAYER, $4
setflag ENGINE_KRIS_IN_CABLE_CLUB
@@ -568,8 +568,8 @@
clearflag ENGINE_KRIS_IN_CABLE_CLUB
playsound SFX_TINGLE
applymovement PLAYER, MovementData_0x192d17
- writebyte $90
- special Functionc225
+ writebyte (1 << 7) | (PAL_OW_BLUE << 4)
+ special Special_SetPlayerPalette
applymovement PLAYER, MovementData_0x192d1c
special ReplaceKrisSprite
applymovement PLAYER, MovementData_0x192cfc
@@ -581,7 +581,7 @@
MapPokeCenter2FSignpost0Script:
refreshscreen $0
- special Functionc2da
+ special Special_DisplayLinkRecord
loadmovesprites
end
@@ -1040,7 +1040,7 @@
.PersonEvents:
db 4
- person_event SPRITE_LINK_RECEPTIONIST, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LinkReceptionistScript_Trade, -1
- person_event SPRITE_LINK_RECEPTIONIST, 2, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LinkReceptionistScript_Battle, -1
- person_event SPRITE_LINK_RECEPTIONIST, 3, 13, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LinkReceptionistScript_TimeCapsule, -1
- person_event SPRITE_OFFICER, 1, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, OfficerScript_0x192c9a, EVENT_MYSTERY_GIFT_DELIVERY_GUY
+ person_event SPRITE_LINK_RECEPTIONIST, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LinkReceptionistScript_Trade, -1
+ person_event SPRITE_LINK_RECEPTIONIST, 2, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LinkReceptionistScript_Battle, -1
+ person_event SPRITE_LINK_RECEPTIONIST, 3, 13, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LinkReceptionistScript_TimeCapsule, -1
+ person_event SPRITE_OFFICER, 1, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OfficerScript_0x192c9a, EVENT_MYSTERY_GIFT_DELIVERY_GUY
--- a/maps/PokeSeersHouse.asm
+++ b/maps/PokeSeersHouse.asm
@@ -30,4 +30,4 @@
.PersonEvents:
db 1
- person_event SPRITE_GRANNY, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SeerScript, -1
+ person_event SPRITE_GRANNY, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SeerScript, -1
--- a/maps/PokemonFanClub.asm
+++ b/maps/PokemonFanClub.asm
@@ -307,9 +307,9 @@
.PersonEvents:
db 6
- person_event SPRITE_GENTLEMAN, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x1917e9, -1
- person_event SPRITE_RECEPTIONIST, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ReceptionistScript_0x191821, -1
- person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x191824, -1
- person_event SPRITE_TEACHER, 2, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x19186b, -1
- person_event SPRITE_FAIRY, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, FairyScript_0x19186e, EVENT_VERMILION_FAN_CLUB_DOLL
- person_event SPRITE_ODDISH, 3, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OddishScript_0x191871, -1
+ person_event SPRITE_GENTLEMAN, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x1917e9, -1
+ person_event SPRITE_RECEPTIONIST, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x191821, -1
+ person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FisherScript_0x191824, -1
+ person_event SPRITE_TEACHER, 2, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x19186b, -1
+ person_event SPRITE_FAIRY, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FairyScript_0x19186e, EVENT_VERMILION_FAN_CLUB_DOLL
+ person_event SPRITE_ODDISH, 3, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, OddishScript_0x191871, -1
--- a/maps/PowerPlant.asm
+++ b/maps/PowerPlant.asm
@@ -401,10 +401,10 @@
.PersonEvents:
db 7
- person_event SPRITE_OFFICER, 14, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OfficerScript_0x188df5, -1
- person_event SPRITE_GYM_GUY, 9, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GymGuyScript_0x188e15, -1
- person_event SPRITE_GYM_GUY, 11, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GymGuyScript_0x188e29, -1
- person_event SPRITE_OFFICER, 3, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OfficerScript_0x188e3d, -1
- person_event SPRITE_GYM_GUY, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GymGuyScript_0x188e51, -1
- person_event SPRITE_FISHER, 10, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PowerPlantManager, -1
- person_event SPRITE_GYM_GUY, 5, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GymGuyScript_0x188ecb, -1
+ person_event SPRITE_OFFICER, 14, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, OfficerScript_0x188df5, -1
+ person_event SPRITE_GYM_GUY, 9, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x188e15, -1
+ person_event SPRITE_GYM_GUY, 11, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x188e29, -1
+ person_event SPRITE_OFFICER, 3, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, OfficerScript_0x188e3d, -1
+ person_event SPRITE_GYM_GUY, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x188e51, -1
+ person_event SPRITE_FISHER, 10, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PowerPlantManager, -1
+ person_event SPRITE_GYM_GUY, 5, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x188ecb, -1
--- a/maps/RadioTower1F.asm
+++ b/maps/RadioTower1F.asm
@@ -484,9 +484,9 @@
.PersonEvents:
db 6
- person_event SPRITE_RECEPTIONIST, 6, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ReceptionistScript_0x5cd29, -1
- person_event SPRITE_LASS, 4, 16, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, LassScript_0x5ce51, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_YOUNGSTER, 4, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x5ce54, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_ROCKET, 1, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM3, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_GENTLEMAN, 6, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GentlemanScript_0x5cd3d, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_COOLTRAINER_F, 6, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x5cdd5, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_RECEPTIONIST, 6, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x5cd29, -1
+ person_event SPRITE_LASS, 4, 16, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, LassScript_0x5ce51, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_YOUNGSTER, 4, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5ce54, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_ROCKET, 1, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM3, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_GENTLEMAN, 6, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x5cd3d, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_COOLTRAINER_F, 6, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x5cdd5, EVENT_GOLDENROD_CITY_CIVILIANS
--- a/maps/RadioTower2F.asm
+++ b/maps/RadioTower2F.asm
@@ -104,7 +104,7 @@
if_equal 30, UnknownScript_0x5d87f
playmusic MUSIC_BUENAS_PASSWORD
writetext UnknownText_0x5de35
- special Function4ae12
+ special AskRememberPassword
iffalse UnknownScript_0x5d81e
writetext UnknownText_0x5de84
closetext
@@ -140,7 +140,7 @@
writetext UnknownText_0x5e054
closetext
loadmovesprites
- special Functionc48f
+ special Special_RotatePalettesRightMusic
pause 20
special RestartMapMusic
checkcode VAR_BLUECARDBALANCE
@@ -169,7 +169,7 @@
closetext
loadmovesprites
spriteface $b, RIGHT
- special Functionc48f
+ special Special_RotatePalettesRightMusic
pause 20
special RestartMapMusic
end
@@ -200,7 +200,7 @@
closetext
loadmovesprites
spriteface $b, RIGHT
- special Functionc48f
+ special Special_RotatePalettesRightMusic
pause 20
special RestartMapMusic
end
@@ -720,14 +720,14 @@
.PersonEvents:
db 11
- person_event SPRITE_SUPER_NERD, 6, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x5d6fe, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_TEACHER, 2, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, TeacherScript_0x5d701, -1
- person_event SPRITE_ROCKET, 4, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM4, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 4, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM5, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 2, TrainerGruntM6, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET_GIRL, 5, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerGruntF2, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_BLACK_BELT, 1, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x5d71f, EVENT_RADIO_TOWER_BLACKBELT_BLOCKS_STAIRS
- person_event SPRITE_BLACK_BELT, 1, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x5d722, EVENT_RADIO_TOWER_CIVILIANS_AFTER
- person_event SPRITE_JIGGLYPUFF, 1, 12, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, JigglypuffScript_0x5d715, -1
- person_event SPRITE_BUENA, 5, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, Buena, -1
- person_event SPRITE_RECEPTIONIST, 7, 12, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ReceptionistScript_0x5d8ff, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_SUPER_NERD, 6, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x5d6fe, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_TEACHER, 2, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, TeacherScript_0x5d701, -1
+ person_event SPRITE_ROCKET, 4, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM4, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 4, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM5, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerGruntM6, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET_GIRL, 5, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerGruntF2, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_BLACK_BELT, 1, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x5d71f, EVENT_RADIO_TOWER_BLACKBELT_BLOCKS_STAIRS
+ person_event SPRITE_BLACK_BELT, 1, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x5d722, EVENT_RADIO_TOWER_CIVILIANS_AFTER
+ person_event SPRITE_JIGGLYPUFF, 1, 12, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, JigglypuffScript_0x5d715, -1
+ person_event SPRITE_BUENA, 5, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, Buena, -1
+ person_event SPRITE_RECEPTIONIST, 7, 12, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x5d8ff, EVENT_GOLDENROD_CITY_CIVILIANS
--- a/maps/RadioTower3F.asm
+++ b/maps/RadioTower3F.asm
@@ -343,10 +343,10 @@
.PersonEvents:
db 7
- person_event SPRITE_SUPER_NERD, 4, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x5e553, EVENT_RADIO_TOWER_CIVILIANS_AFTER
- person_event SPRITE_GYM_GUY, 4, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GymGuyScript_0x5e556, -1
- person_event SPRITE_COOLTRAINER_F, 3, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x5e56a, -1
- person_event SPRITE_ROCKET, 1, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 2, 2, TrainerGruntM7, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 2, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM8, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 6, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM9, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_SCIENTIST, 6, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 5, TrainerScientistMarc, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_SUPER_NERD, 4, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x5e553, EVENT_RADIO_TOWER_CIVILIANS_AFTER
+ person_event SPRITE_GYM_GUY, 4, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x5e556, -1
+ person_event SPRITE_COOLTRAINER_F, 3, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x5e56a, -1
+ person_event SPRITE_ROCKET, 1, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerGruntM7, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 2, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM8, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 6, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM9, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_SCIENTIST, 6, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 5, TrainerScientistMarc, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
--- a/maps/RadioTower4F.asm
+++ b/maps/RadioTower4F.asm
@@ -257,10 +257,10 @@
.PersonEvents:
db 7
- person_event SPRITE_FISHER, 4, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x5eb82, EVENT_RADIO_TOWER_CIVILIANS_AFTER
- person_event SPRITE_TEACHER, 6, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x5eb85, -1
- person_event SPRITE_GROWLITHE, 7, 12, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GrowlitheScript_0x5ebb2, -1
- person_event SPRITE_ROCKET, 6, 5, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM10, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 1, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 2, -1, -1, 0, 2, 2, TrainerExecutivem2, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET_GIRL, 4, 12, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerGruntF4, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_SCIENTIST, 2, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerScientistRich, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_FISHER, 4, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x5eb82, EVENT_RADIO_TOWER_CIVILIANS_AFTER
+ person_event SPRITE_TEACHER, 6, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x5eb85, -1
+ person_event SPRITE_GROWLITHE, 7, 12, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GrowlitheScript_0x5ebb2, -1
+ person_event SPRITE_ROCKET, 6, 5, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM10, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 1, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 2, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerExecutivem2, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET_GIRL, 4, 12, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerGruntF4, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_SCIENTIST, 2, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerScientistRich, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
--- a/maps/RadioTower5F.asm
+++ b/maps/RadioTower5F.asm
@@ -439,8 +439,8 @@
.PersonEvents:
db 5
- person_event SPRITE_GENTLEMAN, 6, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, Director, -1
- person_event SPRITE_ROCKET, 5, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET_GIRL, 2, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerExecutivef1, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKER, 5, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, Ben, EVENT_RADIO_TOWER_CIVILIANS_AFTER
- person_event SPRITE_POKE_BALL, 5, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x600fe, EVENT_RADIO_TOWER_5F_ULTRA_BALL
+ person_event SPRITE_GENTLEMAN, 6, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Director, -1
+ person_event SPRITE_ROCKET, 5, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET_GIRL, 2, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerExecutivef1, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKER, 5, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, Ben, EVENT_RADIO_TOWER_CIVILIANS_AFTER
+ person_event SPRITE_POKE_BALL, 5, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x600fe, EVENT_RADIO_TOWER_5F_ULTRA_BALL
--- a/maps/RedsHouse1F.asm
+++ b/maps/RedsHouse1F.asm
@@ -94,4 +94,4 @@
.PersonEvents:
db 1
- person_event SPRITE_REDS_MOM, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, RedsMom, -1
+ person_event SPRITE_REDS_MOM, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RedsMom, -1
--- a/maps/RockTunnel1F.asm
+++ b/maps/RockTunnel1F.asm
@@ -42,5 +42,5 @@
.PersonEvents:
db 2
- person_event SPRITE_POKE_BALL, 18, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x743b5, EVENT_ROCK_TUNNEL_1F_ELIXER
- person_event SPRITE_POKE_BALL, 15, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x743b7, EVENT_ROCK_TUNNEL_1F_TM_STEEL_WING
+ person_event SPRITE_POKE_BALL, 18, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x743b5, EVENT_ROCK_TUNNEL_1F_ELIXER
+ person_event SPRITE_POKE_BALL, 15, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x743b7, EVENT_ROCK_TUNNEL_1F_TM_STEEL_WING
--- a/maps/RockTunnelB1F.asm
+++ b/maps/RockTunnelB1F.asm
@@ -38,6 +38,6 @@
.PersonEvents:
db 3
- person_event SPRITE_POKE_BALL, 25, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x74409, EVENT_ROCK_TUNNEL_B1F_IRON
- person_event SPRITE_POKE_BALL, 17, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7440b, EVENT_ROCK_TUNNEL_B1F_PP_UP
- person_event SPRITE_POKE_BALL, 2, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7440d, EVENT_ROCK_TUNNEL_B1F_REVIVE
+ person_event SPRITE_POKE_BALL, 25, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x74409, EVENT_ROCK_TUNNEL_B1F_IRON
+ person_event SPRITE_POKE_BALL, 17, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7440b, EVENT_ROCK_TUNNEL_B1F_PP_UP
+ person_event SPRITE_POKE_BALL, 2, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7440d, EVENT_ROCK_TUNNEL_B1F_REVIVE
--- a/maps/Route1.asm
+++ b/maps/Route1.asm
@@ -31,7 +31,7 @@
jumptext UnknownText_0x1ac675
FruitTreeScript_0x1ac581:
- fruittree $1a
+ fruittree FRUITTREE_ROUTE_1
SchoolboyDannySeenText:
text "If trainers meet,"
@@ -91,6 +91,6 @@
.PersonEvents:
db 3
- person_event SPRITE_YOUNGSTER, 12, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSchoolboyDanny, -1
- person_event SPRITE_COOLTRAINER_F, 25, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainerfQuinn, -1
- person_event SPRITE_FRUIT_TREE, 7, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1ac581, -1
+ person_event SPRITE_YOUNGSTER, 12, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerSchoolboyDanny, -1
+ person_event SPRITE_COOLTRAINER_F, 25, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 2, TrainerCooltrainerfQuinn, -1
+ person_event SPRITE_FRUIT_TREE, 7, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1ac581, -1
--- a/maps/Route10PokeCenter1F.asm
+++ b/maps/Route10PokeCenter1F.asm
@@ -92,7 +92,7 @@
.PersonEvents:
db 4
- person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x188bd4, -1
- person_event SPRITE_GENTLEMAN, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GentlemanScript_0x188bd7, -1
- person_event SPRITE_GYM_GUY, 2, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GymGuyScript_0x188bda, -1
- person_event SPRITE_COOLTRAINER_F, 3, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x188bee, -1
+ person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x188bd4, -1
+ person_event SPRITE_GENTLEMAN, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x188bd7, -1
+ person_event SPRITE_GYM_GUY, 2, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x188bda, -1
+ person_event SPRITE_COOLTRAINER_F, 3, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x188bee, -1
--- a/maps/Route10South.asm
+++ b/maps/Route10South.asm
@@ -88,5 +88,5 @@
.PersonEvents:
db 2
- person_event SPRITE_POKEFAN_M, 3, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerJim, -1
- person_event SPRITE_POKEFAN_M, 10, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmRobert, -1
+ person_event SPRITE_POKEFAN_M, 3, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerHikerJim, -1
+ person_event SPRITE_POKEFAN_M, 10, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerPokefanmRobert, -1
--- a/maps/Route11.asm
+++ b/maps/Route11.asm
@@ -53,7 +53,7 @@
jumptext UnknownText_0x68238
FruitTreeScript_0x68055:
- fruittree $18
+ fruittree FRUITTREE_ROUTE_11
MapRoute11SignpostItem1:
dwb EVENT_ROUTE_11_HIDDEN_REVIVE, REVIVE
@@ -156,8 +156,8 @@
.PersonEvents:
db 5
- person_event SPRITE_YOUNGSTER, 14, 22, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterOwen, -1
- person_event SPRITE_YOUNGSTER, 4, 20, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterJason, -1
- person_event SPRITE_YOUNGSTER, 7, 28, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerPsychicHerman, -1
- person_event SPRITE_YOUNGSTER, 6, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicFidel, -1
- person_event SPRITE_FRUIT_TREE, 2, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x68055, -1
+ person_event SPRITE_YOUNGSTER, 14, 22, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerYoungsterOwen, -1
+ person_event SPRITE_YOUNGSTER, 4, 20, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerYoungsterJason, -1
+ person_event SPRITE_YOUNGSTER, 7, 28, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerPsychicHerman, -1
+ person_event SPRITE_YOUNGSTER, 6, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPsychicFidel, -1
+ person_event SPRITE_FRUIT_TREE, 2, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x68055, -1
--- a/maps/Route12.asm
+++ b/maps/Route12.asm
@@ -178,9 +178,9 @@
.PersonEvents:
db 6
- person_event SPRITE_FISHER, 13, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherMartin, -1
- person_event SPRITE_FISHER, 23, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherStephen, -1
- person_event SPRITE_FISHER, 38, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 5, TrainerFisherBarney, -1
- person_event SPRITE_FISHER, 7, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerFisherKyle, -1
- person_event SPRITE_POKE_BALL, 43, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a700b, EVENT_ROUTE_12_CALCIUM
- person_event SPRITE_POKE_BALL, 51, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a700d, EVENT_ROUTE_12_NUGGET
+ person_event SPRITE_FISHER, 13, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerFisherMartin, -1
+ person_event SPRITE_FISHER, 23, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerFisherStephen, -1
+ person_event SPRITE_FISHER, 38, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 5, TrainerFisherBarney, -1
+ person_event SPRITE_FISHER, 7, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerFisherKyle, -1
+ person_event SPRITE_POKE_BALL, 43, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a700b, EVENT_ROUTE_12_CALCIUM
+ person_event SPRITE_POKE_BALL, 51, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a700d, EVENT_ROUTE_12_NUGGET
--- a/maps/Route12SuperRodHouse.asm
+++ b/maps/Route12SuperRodHouse.asm
@@ -93,4 +93,4 @@
.PersonEvents:
db 1
- person_event SPRITE_FISHING_GURU, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FishingGuruScript_0x7f484, -1
+ person_event SPRITE_FISHING_GURU, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x7f484, -1
--- a/maps/Route13.asm
+++ b/maps/Route13.asm
@@ -204,8 +204,8 @@
.PersonEvents:
db 5
- person_event SPRITE_YOUNGSTER, 6, 42, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerBird_keeperPerry, -1
- person_event SPRITE_YOUNGSTER, 6, 43, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerBird_keeperBret, -1
- person_event SPRITE_POKEFAN_M, 8, 32, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmJoshua, -1
- person_event SPRITE_POKEFAN_M, 10, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerHikerKenny, -1
- person_event SPRITE_POKEFAN_M, 6, 25, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerPokefanmAlex, -1
+ person_event SPRITE_YOUNGSTER, 6, 42, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerBird_keeperPerry, -1
+ person_event SPRITE_YOUNGSTER, 6, 43, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerBird_keeperBret, -1
+ person_event SPRITE_POKEFAN_M, 8, 32, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerPokefanmJoshua, -1
+ person_event SPRITE_POKEFAN_M, 10, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerHikerKenny, -1
+ person_event SPRITE_POKEFAN_M, 6, 25, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerPokefanmAlex, -1
--- a/maps/Route14.asm
+++ b/maps/Route14.asm
@@ -124,7 +124,7 @@
.PersonEvents:
db 4
- person_event SPRITE_POKEFAN_M, 15, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmCarter, -1
- person_event SPRITE_YOUNGSTER, 27, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperRoy, -1
- person_event SPRITE_POKEFAN_M, 11, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmTrevor, -1
- person_event SPRITE_TEACHER, 5, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 4, TeacherScript_0x1ad47f, -1
+ person_event SPRITE_POKEFAN_M, 15, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerPokefanmCarter, -1
+ person_event SPRITE_YOUNGSTER, 27, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBird_keeperRoy, -1
+ person_event SPRITE_POKEFAN_M, 11, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerPokefanmTrevor, -1
+ person_event SPRITE_TEACHER, 5, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 4, TeacherScript_0x1ad47f, -1
--- a/maps/Route15.asm
+++ b/maps/Route15.asm
@@ -210,10 +210,10 @@
.PersonEvents:
db 7
- person_event SPRITE_YOUNGSTER, 10, 10, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSchoolboyKipp, -1
- person_event SPRITE_YOUNGSTER, 13, 15, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSchoolboyTommy, -1
- person_event SPRITE_YOUNGSTER, 10, 33, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSchoolboyJohnny, -1
- person_event SPRITE_YOUNGSTER, 10, 27, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSchoolboyBilly, -1
- person_event SPRITE_TEACHER, 12, 30, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerTeacherColette, -1
- person_event SPRITE_TEACHER, 10, 20, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerTeacherHillary, -1
- person_event SPRITE_POKE_BALL, 5, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1aa5e4, EVENT_ROUTE_15_PP_UP
+ person_event SPRITE_YOUNGSTER, 10, 10, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerSchoolboyKipp, -1
+ person_event SPRITE_YOUNGSTER, 13, 15, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSchoolboyTommy, -1
+ person_event SPRITE_YOUNGSTER, 10, 33, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSchoolboyJohnny, -1
+ person_event SPRITE_YOUNGSTER, 10, 27, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSchoolboyBilly, -1
+ person_event SPRITE_TEACHER, 12, 30, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerTeacherColette, -1
+ person_event SPRITE_TEACHER, 10, 20, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerTeacherHillary, -1
+ person_event SPRITE_POKE_BALL, 5, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1aa5e4, EVENT_ROUTE_15_PP_UP
--- a/maps/Route15FuchsiaGate.asm
+++ b/maps/Route15FuchsiaGate.asm
@@ -35,4 +35,4 @@
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x19679e, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x19679e, -1
--- a/maps/Route16FuchsiaSpeechHouse.asm
+++ b/maps/Route16FuchsiaSpeechHouse.asm
@@ -38,4 +38,4 @@
.PersonEvents:
db 1
- person_event SPRITE_SUPER_NERD, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x73373, -1
+ person_event SPRITE_SUPER_NERD, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x73373, -1
--- a/maps/Route16Gate.asm
+++ b/maps/Route16Gate.asm
@@ -80,4 +80,4 @@
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x733ea, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x733ea, -1
--- a/maps/Route17.asm
+++ b/maps/Route17.asm
@@ -150,7 +150,7 @@
.PersonEvents:
db 4
- person_event SPRITE_BIKER, 17, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 4, TrainerBikerRiley, -1
- person_event SPRITE_BIKER, 68, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerBikerJoel, -1
- person_event SPRITE_BIKER, 53, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBikerGlenn, -1
- person_event SPRITE_BIKER, 80, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 4, TrainerBikerCharles, -1
+ person_event SPRITE_BIKER, 17, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 4, TrainerBikerRiley, -1
+ person_event SPRITE_BIKER, 68, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 1, TrainerBikerJoel, -1
+ person_event SPRITE_BIKER, 53, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerBikerGlenn, -1
+ person_event SPRITE_BIKER, 80, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 4, TrainerBikerCharles, -1
--- a/maps/Route1718Gate.asm
+++ b/maps/Route1718Gate.asm
@@ -71,4 +71,4 @@
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x7360e, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x7360e, -1
--- a/maps/Route18.asm
+++ b/maps/Route18.asm
@@ -91,5 +91,5 @@
.PersonEvents:
db 2
- person_event SPRITE_YOUNGSTER, 12, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperBoris, -1
- person_event SPRITE_YOUNGSTER, 6, 13, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperBob, -1
+ person_event SPRITE_YOUNGSTER, 12, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBird_keeperBoris, -1
+ person_event SPRITE_YOUNGSTER, 6, 13, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBird_keeperBob, -1
--- a/maps/Route19.asm
+++ b/maps/Route19.asm
@@ -247,9 +247,9 @@
.PersonEvents:
db 6
- person_event SPRITE_SWIMMER_GIRL, 23, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 0, TrainerSwimmerfDawn, -1
- person_event SPRITE_SWIMMER_GUY, 28, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermHarold, -1
- person_event SPRITE_SWIMMER_GUY, 17, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermJerome, -1
- person_event SPRITE_SWIMMER_GUY, 23, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 0, TrainerSwimmermTucker, -1
- person_event SPRITE_FISHER, 5, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 1, FisherScript_0x19ea4d, -1
- person_event SPRITE_FISHER, 5, 11, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 1, FisherScript_0x19ea61, -1
+ person_event SPRITE_SWIMMER_GIRL, 23, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 0, TrainerSwimmerfDawn, -1
+ person_event SPRITE_SWIMMER_GUY, 28, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerSwimmermHarold, -1
+ person_event SPRITE_SWIMMER_GUY, 17, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerSwimmermJerome, -1
+ person_event SPRITE_SWIMMER_GUY, 23, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 0, TrainerSwimmermTucker, -1
+ person_event SPRITE_FISHER, 5, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 1, FisherScript_0x19ea4d, -1
+ person_event SPRITE_FISHER, 5, 11, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 1, FisherScript_0x19ea61, -1
--- a/maps/Route19FuchsiaGate.asm
+++ b/maps/Route19FuchsiaGate.asm
@@ -61,4 +61,4 @@
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x1ab3f6, -1
+ person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x1ab3f6, -1
--- a/maps/Route2.asm
+++ b/maps/Route2.asm
@@ -57,7 +57,7 @@
db ELIXER, 1
FruitTreeScript_0x1ac306:
- fruittree $19
+ fruittree FRUITTREE_ROUTE_2
MapRoute2SignpostItem2:
dwb EVENT_ROUTE_2_HIDDEN_MAX_ETHER, MAX_ETHER
@@ -162,11 +162,11 @@
.PersonEvents:
db 8
- person_event SPRITE_BUG_CATCHER, 45, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 5, TrainerBug_catcherRob, -1
- person_event SPRITE_BUG_CATCHER, 4, 6, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherEd, -1
- person_event SPRITE_BUG_CATCHER, 40, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherDoug, -1
- person_event SPRITE_POKE_BALL, 29, 0, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac2fe, EVENT_ROUTE_2_DIRE_HIT
- person_event SPRITE_POKE_BALL, 23, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac300, EVENT_ROUTE_2_MAX_POTION
- person_event SPRITE_POKE_BALL, 2, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac302, EVENT_ROUTE_2_CARBOS
- person_event SPRITE_POKE_BALL, 50, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac304, EVENT_ROUTE_2_ELIXER
- person_event SPRITE_FRUIT_TREE, 14, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1ac306, -1
+ person_event SPRITE_BUG_CATCHER, 45, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 5, TrainerBug_catcherRob, -1
+ person_event SPRITE_BUG_CATCHER, 4, 6, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerBug_catcherEd, -1
+ person_event SPRITE_BUG_CATCHER, 40, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerBug_catcherDoug, -1
+ person_event SPRITE_POKE_BALL, 29, 0, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1ac2fe, EVENT_ROUTE_2_DIRE_HIT
+ person_event SPRITE_POKE_BALL, 23, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1ac300, EVENT_ROUTE_2_MAX_POTION
+ person_event SPRITE_POKE_BALL, 2, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1ac302, EVENT_ROUTE_2_CARBOS
+ person_event SPRITE_POKE_BALL, 50, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1ac304, EVENT_ROUTE_2_ELIXER
+ person_event SPRITE_FRUIT_TREE, 14, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1ac306, -1
--- a/maps/Route20.asm
+++ b/maps/Route20.asm
@@ -127,6 +127,6 @@
.PersonEvents:
db 3
- person_event SPRITE_SWIMMER_GIRL, 8, 52, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfNicole, -1
- person_event SPRITE_SWIMMER_GIRL, 13, 45, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfLori, -1
- person_event SPRITE_SWIMMER_GUY, 13, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermCameron, -1
+ person_event SPRITE_SWIMMER_GIRL, 8, 52, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerSwimmerfNicole, -1
+ person_event SPRITE_SWIMMER_GIRL, 13, 45, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerSwimmerfLori, -1
+ person_event SPRITE_SWIMMER_GUY, 13, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerSwimmermCameron, -1
--- a/maps/Route21.asm
+++ b/maps/Route21.asm
@@ -99,6 +99,6 @@
.PersonEvents:
db 3
- person_event SPRITE_SWIMMER_GIRL, 16, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfNikki, -1
- person_event SPRITE_SWIMMER_GUY, 30, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerSwimmermSeth, -1
- person_event SPRITE_FISHER, 22, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherArnold, -1
+ person_event SPRITE_SWIMMER_GIRL, 16, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerSwimmerfNikki, -1
+ person_event SPRITE_SWIMMER_GUY, 30, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerSwimmermSeth, -1
+ person_event SPRITE_FISHER, 22, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerFisherArnold, -1
--- a/maps/Route24.asm
+++ b/maps/Route24.asm
@@ -21,7 +21,7 @@
loadfont
writetext UnknownText_0x1addc0
keeptextopen
- special Functionc48f
+ special Special_RotatePalettesRightMusic
writetext UnknownText_0x1adee1
closetext
loadmovesprites
@@ -130,4 +130,4 @@
.PersonEvents:
db 1
- person_event SPRITE_ROCKET, 7, 8, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x1adbfa, EVENT_ROUTE_24_ROCKET
+ person_event SPRITE_ROCKET, 7, 8, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x1adbfa, EVENT_ROUTE_24_ROCKET
--- a/maps/Route25.asm
+++ b/maps/Route25.asm
@@ -439,14 +439,14 @@
.PersonEvents:
db 11
- person_event SPRITE_MISTY, 9, 46, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, EVENT_ROUTE_25_MISTY_BOYFRIEND
- person_event SPRITE_COOLTRAINER_M, 10, 46, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ObjectEvent, EVENT_ROUTE_25_MISTY_BOYFRIEND
- person_event SPRITE_YOUNGSTER, 8, 12, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSchoolboyDudley, -1
- person_event SPRITE_LASS, 11, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerLassEllen, -1
- person_event SPRITE_YOUNGSTER, 8, 21, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSchoolboyJoe, -1
- person_event SPRITE_LASS, 6, 22, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerLassLaura, -1
- person_event SPRITE_YOUNGSTER, 4, 25, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerCamperLloyd, -1
- person_event SPRITE_LASS, 11, 28, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerLassShannon, -1
- person_event SPRITE_SUPER_NERD, 7, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerSupernerdPat, -1
- person_event SPRITE_COOLTRAINER_M, 8, 37, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x19efac, -1
- person_event SPRITE_POKE_BALL, 4, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19efe3, EVENT_ROUTE_25_PROTEIN
+ person_event SPRITE_MISTY, 9, 46, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_ROUTE_25_MISTY_BOYFRIEND
+ person_event SPRITE_COOLTRAINER_M, 10, 46, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_ROUTE_25_MISTY_BOYFRIEND
+ person_event SPRITE_YOUNGSTER, 8, 12, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSchoolboyDudley, -1
+ person_event SPRITE_LASS, 11, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerLassEllen, -1
+ person_event SPRITE_YOUNGSTER, 8, 21, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerSchoolboyJoe, -1
+ person_event SPRITE_LASS, 6, 22, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerLassLaura, -1
+ person_event SPRITE_YOUNGSTER, 4, 25, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 2, TrainerCamperLloyd, -1
+ person_event SPRITE_LASS, 11, 28, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerLassShannon, -1
+ person_event SPRITE_SUPER_NERD, 7, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 1, TrainerSupernerdPat, -1
+ person_event SPRITE_COOLTRAINER_M, 8, 37, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x19efac, -1
+ person_event SPRITE_POKE_BALL, 4, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x19efe3, EVENT_ROUTE_25_PROTEIN
--- a/maps/Route26.asm
+++ b/maps/Route26.asm
@@ -239,7 +239,7 @@
jumptext UnknownText_0x1a5364
FruitTreeScript_0x1a4ec2:
- fruittree $e
+ fruittree FRUITTREE_ROUTE_26
ItemFragment_0x1a4ec4:
db MAX_ELIXER, 1
@@ -421,11 +421,11 @@
.PersonEvents:
db 8
- person_event SPRITE_COOLTRAINER_M, 24, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainermJake, -1
- person_event SPRITE_COOLTRAINER_M, 38, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainermGaven3, -1
- person_event SPRITE_COOLTRAINER_F, 56, 10, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfJoyce, -1
- person_event SPRITE_COOLTRAINER_F, 8, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerCooltrainerfBeth1, -1
- person_event SPRITE_YOUNGSTER, 79, 13, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPsychicRichard, -1
- person_event SPRITE_FISHER, 92, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerFisherScott, -1
- person_event SPRITE_FRUIT_TREE, 54, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a4ec2, -1
- person_event SPRITE_POKE_BALL, 15, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a4ec4, EVENT_ROUTE_26_MAX_ELIXER
+ person_event SPRITE_COOLTRAINER_M, 24, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 2, TrainerCooltrainermJake, -1
+ person_event SPRITE_COOLTRAINER_M, 38, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerCooltrainermGaven3, -1
+ person_event SPRITE_COOLTRAINER_F, 56, 10, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerCooltrainerfJoyce, -1
+ person_event SPRITE_COOLTRAINER_F, 8, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerCooltrainerfBeth1, -1
+ person_event SPRITE_YOUNGSTER, 79, 13, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerPsychicRichard, -1
+ person_event SPRITE_FISHER, 92, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerFisherScott, -1
+ person_event SPRITE_FRUIT_TREE, 54, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a4ec2, -1
+ person_event SPRITE_POKE_BALL, 15, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a4ec4, EVENT_ROUTE_26_MAX_ELIXER
--- a/maps/Route26DayofWeekSiblingsHouse.asm
+++ b/maps/Route26DayofWeekSiblingsHouse.asm
@@ -84,4 +84,4 @@
.PersonEvents:
db 1
- person_event SPRITE_POKEDEX, 3, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, PokedexScript_0x7b1e4, -1
+ person_event SPRITE_POKEDEX, 3, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokedexScript_0x7b1e4, -1
--- a/maps/Route26HealSpeechHouse.asm
+++ b/maps/Route26HealSpeechHouse.asm
@@ -64,4 +64,4 @@
.PersonEvents:
db 1
- person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x7b125, -1
+ person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7b125, -1
--- a/maps/Route27.asm
+++ b/maps/Route27.asm
@@ -479,12 +479,12 @@
.PersonEvents:
db 9
- person_event SPRITE_COOLTRAINER_M, 7, 48, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainermBlake, -1
- person_event SPRITE_COOLTRAINER_M, 6, 58, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerCooltrainermBrian, -1
- person_event SPRITE_COOLTRAINER_F, 10, 72, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerCooltrainerfReena, -1
- person_event SPRITE_COOLTRAINER_F, 6, 37, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainerfMegan, -1
- person_event SPRITE_YOUNGSTER, 7, 65, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicGilbert, -1
- person_event SPRITE_YOUNGSTER, 13, 58, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperJose2, -1
- person_event SPRITE_POKE_BALL, 12, 60, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a0a62, EVENT_ROUTE_27_TM_SOLARBEAM
- person_event SPRITE_POKE_BALL, 12, 53, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a0a64, EVENT_ROUTE_27_RARE_CANDY
- person_event SPRITE_FISHER, 10, 21, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 3, FisherScript_0x1a089c, -1
+ person_event SPRITE_COOLTRAINER_M, 7, 48, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerCooltrainermBlake, -1
+ person_event SPRITE_COOLTRAINER_M, 6, 58, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerCooltrainermBrian, -1
+ person_event SPRITE_COOLTRAINER_F, 10, 72, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerCooltrainerfReena, -1
+ person_event SPRITE_COOLTRAINER_F, 6, 37, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 2, TrainerCooltrainerfMegan, -1
+ person_event SPRITE_YOUNGSTER, 7, 65, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPsychicGilbert, -1
+ person_event SPRITE_YOUNGSTER, 13, 58, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBird_keeperJose2, -1
+ person_event SPRITE_POKE_BALL, 12, 60, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a0a62, EVENT_ROUTE_27_TM_SOLARBEAM
+ person_event SPRITE_POKE_BALL, 12, 53, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a0a64, EVENT_ROUTE_27_RARE_CANDY
+ person_event SPRITE_FISHER, 10, 21, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 3, FisherScript_0x1a089c, -1
--- a/maps/Route27SandstormHouse.asm
+++ b/maps/Route27SandstormHouse.asm
@@ -109,4 +109,4 @@
.PersonEvents:
db 1
- person_event SPRITE_GRANNY, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, SandstormHouseWoman, -1
+ person_event SPRITE_GRANNY, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SandstormHouseWoman, -1
--- a/maps/Route28FamousSpeechHouse.asm
+++ b/maps/Route28FamousSpeechHouse.asm
@@ -87,5 +87,5 @@
.PersonEvents:
db 2
- person_event SPRITE_COOLTRAINER_F, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, Celebrity, -1
- person_event SPRITE_MOLTRES, 5, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CelebritysFearow, -1
+ person_event SPRITE_COOLTRAINER_F, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, Celebrity, -1
+ person_event SPRITE_MOLTRES, 5, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, CelebritysFearow, -1
--- a/maps/Route29.asm
+++ b/maps/Route29.asm
@@ -204,7 +204,7 @@
jumptext UnknownText_0x1a15b9
FruitTreeScript_0x1a1089:
- fruittree $1
+ fruittree FRUITTREE_ROUTE_29
ItemFragment_0x1a108b:
db POTION, 1
@@ -430,11 +430,11 @@
.PersonEvents:
db 8
- person_event SPRITE_COOLTRAINER_M, 12, 50, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x1a0ff1, -1
- person_event SPRITE_YOUNGSTER, 16, 27, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a1028, -1
- person_event SPRITE_TEACHER, 11, 15, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x1a102b, -1
- person_event SPRITE_FRUIT_TREE, 2, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a1089, -1
- person_event SPRITE_FISHER, 3, 25, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FisherScript_0x1a102e, -1
- person_event SPRITE_COOLTRAINER_M, 4, 13, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x1a1031, -1
- person_event SPRITE_TEACHER, 12, 29, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, TuscanyScript, EVENT_ROUTE_29_TUSCANY_OF_TUESDAY
- person_event SPRITE_POKE_BALL, 2, 48, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a108b, EVENT_ROUTE_29_POTION
+ person_event SPRITE_COOLTRAINER_M, 12, 50, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x1a0ff1, -1
+ person_event SPRITE_YOUNGSTER, 16, 27, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a1028, -1
+ person_event SPRITE_TEACHER, 11, 15, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1a102b, -1
+ person_event SPRITE_FRUIT_TREE, 2, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a1089, -1
+ person_event SPRITE_FISHER, 3, 25, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, FisherScript_0x1a102e, -1
+ person_event SPRITE_COOLTRAINER_M, 4, 13, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x1a1031, -1
+ person_event SPRITE_TEACHER, 12, 29, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TuscanyScript, EVENT_ROUTE_29_TUSCANY_OF_TUESDAY
+ person_event SPRITE_POKE_BALL, 2, 48, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a108b, EVENT_ROUTE_29_POTION
--- a/maps/Route2946Gate.asm
+++ b/maps/Route2946Gate.asm
@@ -51,5 +51,5 @@
.PersonEvents:
db 2
- person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x7b5bb, -1
- person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x7b5be, -1
+ person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x7b5bb, -1
+ person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x7b5be, -1
--- a/maps/Route2Gate.asm
+++ b/maps/Route2Gate.asm
@@ -41,4 +41,4 @@
.PersonEvents:
db 1
- person_event SPRITE_SCIENTIST, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x9b952, -1
+ person_event SPRITE_SCIENTIST, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x9b952, -1
--- a/maps/Route2NuggetSpeechHouse.asm
+++ b/maps/Route2NuggetSpeechHouse.asm
@@ -66,4 +66,4 @@
.PersonEvents:
db 1
- person_event SPRITE_FISHER, 4, 2, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FisherScript_0x9b847, -1
+ person_event SPRITE_FISHER, 4, 2, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, FisherScript_0x9b847, -1
--- a/maps/Route3.asm
+++ b/maps/Route3.asm
@@ -143,7 +143,7 @@
.PersonEvents:
db 4
- person_event SPRITE_FISHER, 12, 26, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerFirebreatherOtis, -1
- person_event SPRITE_YOUNGSTER, 7, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterWarren, -1
- person_event SPRITE_YOUNGSTER, 3, 16, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerYoungsterJimmy, -1
- person_event SPRITE_FISHER, 5, 49, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerFirebreatherBurt, -1
+ person_event SPRITE_FISHER, 12, 26, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 2, TrainerFirebreatherOtis, -1
+ person_event SPRITE_YOUNGSTER, 7, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerYoungsterWarren, -1
+ person_event SPRITE_YOUNGSTER, 3, 16, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerYoungsterJimmy, -1
+ person_event SPRITE_FISHER, 5, 49, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerFirebreatherBurt, -1
--- a/maps/Route30.asm
+++ b/maps/Route30.asm
@@ -229,10 +229,10 @@
db ANTIDOTE, 1
FruitTreeScript_0x1a17f7:
- fruittree $2
+ fruittree FRUITTREE_ROUTE_30_1
FruitTreeScript_0x1a17f9:
- fruittree $5
+ fruittree FRUITTREE_ROUTE_30_2
MapRoute30SignpostItem4:
dwb EVENT_ROUTE_30_HIDDEN_POTION, POTION
@@ -416,14 +416,14 @@
.PersonEvents:
db 11
- person_event SPRITE_YOUNGSTER, 26, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x1a1673, EVENT_ROUTE_30_BATTLE
- person_event SPRITE_YOUNGSTER, 28, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterJoey, EVENT_ROUTE_30_YOUNGSTER_JOEY
- person_event SPRITE_YOUNGSTER, 23, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerYoungsterMikey, -1
- person_event SPRITE_BUG_CATCHER, 7, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherDon, -1
- person_event SPRITE_YOUNGSTER, 30, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x1a17d2, -1
- person_event SPRITE_MONSTER, 24, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, EVENT_ROUTE_30_BATTLE
- person_event SPRITE_MONSTER, 25, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_ROUTE_30_BATTLE
- person_event SPRITE_FRUIT_TREE, 39, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a17f7, -1
- person_event SPRITE_FRUIT_TREE, 5, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a17f9, -1
- person_event SPRITE_COOLTRAINER_F, 13, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x1a17e6, -1
- person_event SPRITE_POKE_BALL, 35, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a17f5, EVENT_ROUTE_30_ANTIDOTE
+ person_event SPRITE_YOUNGSTER, 26, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a1673, EVENT_ROUTE_30_BATTLE
+ person_event SPRITE_YOUNGSTER, 28, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerYoungsterJoey, EVENT_ROUTE_30_YOUNGSTER_JOEY
+ person_event SPRITE_YOUNGSTER, 23, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerYoungsterMikey, -1
+ person_event SPRITE_BUG_CATCHER, 7, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerBug_catcherDon, -1
+ person_event SPRITE_YOUNGSTER, 30, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a17d2, -1
+ person_event SPRITE_MONSTER, 24, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_ROUTE_30_BATTLE
+ person_event SPRITE_MONSTER, 25, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_ROUTE_30_BATTLE
+ person_event SPRITE_FRUIT_TREE, 39, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a17f7, -1
+ person_event SPRITE_FRUIT_TREE, 5, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a17f9, -1
+ person_event SPRITE_COOLTRAINER_F, 13, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x1a17e6, -1
+ person_event SPRITE_POKE_BALL, 35, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a17f5, EVENT_ROUTE_30_ANTIDOTE
--- a/maps/Route30BerrySpeechHouse.asm
+++ b/maps/Route30BerrySpeechHouse.asm
@@ -62,4 +62,4 @@
.PersonEvents:
db 1
- person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x196d64, -1
+ person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x196d64, -1
--- a/maps/Route31.asm
+++ b/maps/Route31.asm
@@ -7,14 +7,14 @@
; callbacks
- dbw 5, UnknownScript_0x1a543c
+ dbw 5, .CheckMomCall
-UnknownScript_0x1a543c:
+.CheckMomCall:
checkevent EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST
- iffalse UnknownScript_0x1a5443
+ iffalse .DoMomCall
return
-UnknownScript_0x1a5443:
+.DoMomCall:
specialphonecall SPECIALCALL_WORRIED
return
@@ -26,31 +26,31 @@
talkaftercancel
loadfont
checkflag ENGINE_WADE
- iftrue UnknownScript_0x1a5493
+ iftrue .WadeRematch
checkflag ENGINE_WADE_HAS_ITEM
- iftrue UnknownScript_0x1a5507
+ iftrue .WadeItem
checkcellnum PHONE_BUG_CATCHER_WADE
- iftrue UnknownScript_0x1a5558
+ iftrue .AcceptedNumberSTD
checkevent EVENT_WADE_ASKED_FOR_PHONE_NUMBER
- iftrue UnknownScript_0x1a547c
+ iftrue .AskAgain
writetext UnknownText_0x1a5671
closetext
setevent EVENT_WADE_ASKED_FOR_PHONE_NUMBER
- scall UnknownScript_0x1a554c
- jump UnknownScript_0x1a547f
+ scall .AskPhoneNumberSTD
+ jump .Continue
-UnknownScript_0x1a547c:
- scall UnknownScript_0x1a5550
-UnknownScript_0x1a547f:
+.AskAgain:
+ scall .AskAgainSTD
+.Continue:
askforphonenumber PHONE_BUG_CATCHER_WADE
- if_equal $1, UnknownScript_0x1a5560
- if_equal $2, UnknownScript_0x1a555c
+ if_equal $1, .PhoneFullSTD
+ if_equal $2, .DeclinedNumberSTD
trainertotext BUG_CATCHER, WADE1, $0
- scall UnknownScript_0x1a5554
- jump UnknownScript_0x1a5558
+ scall .RegisterNumberSTD
+ jump .AcceptedNumberSTD
-UnknownScript_0x1a5493:
- scall UnknownScript_0x1a5564
+.WadeRematch:
+ scall .RematchSTD
winlosstext Bug_catcherWade1BeatenText, 0
copybytetovar wWadeFightCount
if_equal 4, .Fight4
@@ -109,8 +109,8 @@
clearflag ENGINE_WADE
end
-UnknownScript_0x1a5507:
- scall UnknownScript_0x1a5568
+.WadeItem:
+ scall .ItemSTD
checkevent EVENT_WADE_HAS_BERRY
iftrue .Berry
checkevent EVENT_WADE_HAS_PSNCUREBERRY
@@ -136,43 +136,43 @@
iffalse .PackFull
.Done
clearflag ENGINE_WADE_HAS_ITEM
- jump UnknownScript_0x1a5558
+ jump .AcceptedNumberSTD
.PackFull
- jump UnknownScript_0x1a556c
+ jump .PackFullSTD
-UnknownScript_0x1a554c:
+.AskPhoneNumberSTD:
jumpstd asknumber1m
end
-UnknownScript_0x1a5550:
+.AskAgainSTD:
jumpstd asknumber2m
end
-UnknownScript_0x1a5554:
+.RegisterNumberSTD:
jumpstd registerednumberm
end
-UnknownScript_0x1a5558:
+.AcceptedNumberSTD:
jumpstd numberacceptedm
end
-UnknownScript_0x1a555c:
+.DeclinedNumberSTD:
jumpstd numberdeclinedm
end
-UnknownScript_0x1a5560:
+.PhoneFullSTD:
jumpstd phonefullm
end
-UnknownScript_0x1a5564:
+.RematchSTD:
jumpstd rematchm
end
-UnknownScript_0x1a5568:
+.ItemSTD:
jumpstd giftm
end
-UnknownScript_0x1a556c:
+.PackFullSTD:
jumpstd packfullm
end
@@ -180,22 +180,22 @@
faceplayer
loadfont
checkevent EVENT_GOT_TM50_NIGHTMARE
- iftrue UnknownScript_0x1a55af
+ iftrue .DescribeNightmare
checkevent EVENT_GOT_KENYA
- iftrue UnknownScript_0x1a5584
+ iftrue .TryGiveKenya
writetext UnknownText_0x1a56d9
closetext
loadmovesprites
end
-UnknownScript_0x1a5584:
+.TryGiveKenya:
writetext UnknownText_0x1a5761
keeptextopen
checkpokeitem ReceivedSpearowMailText
- if_equal $0, UnknownScript_0x1a55b5
- if_equal $2, UnknownScript_0x1a55c1
- if_equal $3, UnknownScript_0x1a55bb
- if_equal $4, UnknownScript_0x1a55c7
+ if_equal $0, .WrongMail
+ if_equal $2, .Refused
+ if_equal $3, .NoMail
+ if_equal $4, .LastMon
writetext UnknownText_0x1a5790
keeptextopen
writetext UnknownText_0x1a57ba
@@ -202,34 +202,34 @@
keeptextopen
setevent EVENT_GAVE_KENYA
verbosegiveitem TM_NIGHTMARE
- iffalse UnknownScript_0x1a55b3
+ iffalse .NoRoomForItems
setevent EVENT_GOT_TM50_NIGHTMARE
-UnknownScript_0x1a55af:
+.DescribeNightmare:
writetext UnknownText_0x1a5896
closetext
-UnknownScript_0x1a55b3:
+.NoRoomForItems:
loadmovesprites
end
-UnknownScript_0x1a55b5:
+.WrongMail:
writetext UnknownText_0x1a5921
closetext
loadmovesprites
end
-UnknownScript_0x1a55bb:
+.NoMail:
writetext UnknownText_0x1a5939
closetext
loadmovesprites
end
-UnknownScript_0x1a55c1:
+.Refused:
writetext UnknownText_0x1a5972
closetext
loadmovesprites
end
-UnknownScript_0x1a55c7:
+.LastMon:
writetext UnknownText_0x1a5991
closetext
loadmovesprites
@@ -236,8 +236,8 @@
end
ReceivedSpearowMailText:
- db "DARK CAVE leads", $4E
- db "to another road@"
+ db "DARK CAVE leads"
+ next "to another road@"
YoungsterScript_0x1a55ed:
jumptextfaceplayer UnknownText_0x1a59d5
@@ -252,7 +252,7 @@
jumptextfaceplayer UnknownText_0x1a55ff
FruitTreeScript_0x1a55f9:
- fruittree $7
+ fruittree FRUITTREE_ROUTE_31
ItemFragment_0x1a55fb:
db POTION, 1
@@ -430,10 +430,10 @@
.PersonEvents:
db 7
- person_event SPRITE_FISHER, 7, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x1a5570, -1
- person_event SPRITE_YOUNGSTER, 5, 9, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, YoungsterScript_0x1a55ed, -1
- person_event SPRITE_BUG_CATCHER, 13, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 5, TrainerBug_catcherWade1, -1
- person_event SPRITE_COOLTRAINER_M, 8, 33, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, CooltrainerMScript_0x1a55f6, -1
- person_event SPRITE_FRUIT_TREE, 7, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a55f9, -1
- person_event SPRITE_POKE_BALL, 5, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a55fb, EVENT_ROUTE_31_POTION
- person_event SPRITE_POKE_BALL, 15, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a55fd, EVENT_ROUTE_31_POKE_BALL
+ person_event SPRITE_FISHER, 7, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FisherScript_0x1a5570, -1
+ person_event SPRITE_YOUNGSTER, 5, 9, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a55ed, -1
+ person_event SPRITE_BUG_CATCHER, 13, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 5, TrainerBug_catcherWade1, -1
+ person_event SPRITE_COOLTRAINER_M, 8, 33, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x1a55f6, -1
+ person_event SPRITE_FRUIT_TREE, 7, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a55f9, -1
+ person_event SPRITE_POKE_BALL, 5, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a55fb, EVENT_ROUTE_31_POTION
+ person_event SPRITE_POKE_BALL, 15, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a55fd, EVENT_ROUTE_31_POKE_BALL
--- a/maps/Route31VioletGate.asm
+++ b/maps/Route31VioletGate.asm
@@ -42,5 +42,5 @@
.PersonEvents:
db 2
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x197634, -1
- person_event SPRITE_COOLTRAINER_F, 2, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CooltrainerFScript_0x197637, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x197634, -1
+ person_event SPRITE_COOLTRAINER_F, 2, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x197637, -1
--- a/maps/Route32.asm
+++ b/maps/Route32.asm
@@ -946,17 +946,17 @@
.PersonEvents:
db 14
- person_event SPRITE_FISHER, 49, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherJustin, -1
- person_event SPRITE_FISHER, 56, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerFisherRalph1, -1
- person_event SPRITE_FISHER, 48, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherHenry, -1
- person_event SPRITE_YOUNGSTER, 22, 12, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterAlbert, -1
- person_event SPRITE_YOUNGSTER, 63, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterGordon, -1
- person_event SPRITE_YOUNGSTER, 45, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerCamperRoland, -1
- person_event SPRITE_LASS, 30, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerPicnickerLiz1, -1
- person_event SPRITE_COOLTRAINER_M, 8, 19, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x19046f, -1
- person_event SPRITE_YOUNGSTER, 82, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperPeter, -1
- person_event SPRITE_FISHER, 70, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x1904f2, EVENT_SLOWPOKE_WELL_ROCKETS
- person_event SPRITE_POKE_BALL, 53, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x190773, EVENT_ROUTE_32_GREAT_BALL
- person_event SPRITE_FISHER, 13, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x1904ce, -1
- person_event SPRITE_LASS, 67, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, FriedaScript, EVENT_ROUTE_32_FRIEDA_OF_FRIDAY
- person_event SPRITE_POKE_BALL, 30, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x190775, EVENT_ROUTE_32_REPEL
+ person_event SPRITE_FISHER, 49, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerFisherJustin, -1
+ person_event SPRITE_FISHER, 56, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerFisherRalph1, -1
+ person_event SPRITE_FISHER, 48, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerFisherHenry, -1
+ person_event SPRITE_YOUNGSTER, 22, 12, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerYoungsterAlbert, -1
+ person_event SPRITE_YOUNGSTER, 63, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerYoungsterGordon, -1
+ person_event SPRITE_YOUNGSTER, 45, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerCamperRoland, -1
+ person_event SPRITE_LASS, 30, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerPicnickerLiz1, -1
+ person_event SPRITE_COOLTRAINER_M, 8, 19, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x19046f, -1
+ person_event SPRITE_YOUNGSTER, 82, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBird_keeperPeter, -1
+ person_event SPRITE_FISHER, 70, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FisherScript_0x1904f2, EVENT_SLOWPOKE_WELL_ROCKETS
+ person_event SPRITE_POKE_BALL, 53, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x190773, EVENT_ROUTE_32_GREAT_BALL
+ person_event SPRITE_FISHER, 13, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FisherScript_0x1904ce, -1
+ person_event SPRITE_LASS, 67, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FriedaScript, EVENT_ROUTE_32_FRIEDA_OF_FRIDAY
+ person_event SPRITE_POKE_BALL, 30, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x190775, EVENT_ROUTE_32_REPEL
--- a/maps/Route32PokeCenter1F.asm
+++ b/maps/Route32PokeCenter1F.asm
@@ -107,6 +107,6 @@
.PersonEvents:
db 3
- person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x69b52, -1
- person_event SPRITE_FISHING_GURU, 4, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FishingGuruScript_0x69b55, -1
- person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerFScript_0x69b80, -1
+ person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x69b52, -1
+ person_event SPRITE_FISHING_GURU, 4, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x69b55, -1
+ person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x69b80, -1
--- a/maps/Route32RuinsofAlphGate.asm
+++ b/maps/Route32RuinsofAlphGate.asm
@@ -60,6 +60,6 @@
.PersonEvents:
db 3
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x69a2d, -1
- person_event SPRITE_POKEFAN_M, 2, 8, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x69a30, -1
- person_event SPRITE_YOUNGSTER, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x69a33, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x69a2d, -1
+ person_event SPRITE_POKEFAN_M, 2, 8, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x69a30, -1
+ person_event SPRITE_YOUNGSTER, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x69a33, -1
--- a/maps/Route33.asm
+++ b/maps/Route33.asm
@@ -137,7 +137,7 @@
jumptext UnknownText_0x1ac279
FruitTreeScript_0x1ac0ea:
- fruittree $6
+ fruittree FRUITTREE_ROUTE_33
HikerAnthony2SeenText:
text "I came through the"
@@ -206,6 +206,6 @@
.PersonEvents:
db 3
- person_event SPRITE_POKEFAN_M, 13, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerAnthony, -1
- person_event SPRITE_LASS, 16, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LassScript_0x1ac002, -1
- person_event SPRITE_FRUIT_TREE, 16, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1ac0ea, -1
+ person_event SPRITE_POKEFAN_M, 13, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerHikerAnthony, -1
+ person_event SPRITE_LASS, 16, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, LassScript_0x1ac002, -1
+ person_event SPRITE_FRUIT_TREE, 16, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1ac0ea, -1
--- a/maps/Route34.asm
+++ b/maps/Route34.asm
@@ -775,16 +775,16 @@
.PersonEvents:
db 13
- person_event SPRITE_YOUNGSTER, 7, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 5, TrainerCamperTodd1, -1
- person_event SPRITE_YOUNGSTER, 32, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterSamuel, -1
- person_event SPRITE_YOUNGSTER, 20, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterIan, -1
- person_event SPRITE_LASS, 26, 10, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerPicnickerGina1, -1
- person_event SPRITE_OFFICER, 11, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x7824c, -1
- person_event SPRITE_POKEFAN_M, 28, 18, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmBrandon, -1
- person_event SPRITE_GRAMPS, 16, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x7803d, EVENT_DAYCARE_MAN_ON_ROUTE_34
- person_event SPRITE_DAYCARE_MON_1, 18, 14, SPRITEMOVEDATA_POKEMON, 2, 2, -1, -1, 0, 0, 0, DaycareMon1Script_0x78065, EVENT_DAYCARE_MON_1
- person_event SPRITE_DAYCARE_MON_2, 19, 17, SPRITEMOVEDATA_POKEMON, 2, 2, -1, -1, 0, 0, 0, DaycareMon2Script_0x7806b, EVENT_DAYCARE_MON_2
- person_event SPRITE_COOLTRAINER_F, 48, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 5, TrainerCooltrainerfIrene, -1
- person_event SPRITE_COOLTRAINER_F, 48, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfJenn, -1
- person_event SPRITE_COOLTRAINER_F, 51, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainerfKate, -1
- person_event SPRITE_POKE_BALL, 30, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7832b, EVENT_ROUTE_34_NUGGET
+ person_event SPRITE_YOUNGSTER, 7, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 5, TrainerCamperTodd1, -1
+ person_event SPRITE_YOUNGSTER, 32, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerYoungsterSamuel, -1
+ person_event SPRITE_YOUNGSTER, 20, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerYoungsterIan, -1
+ person_event SPRITE_LASS, 26, 10, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerPicnickerGina1, -1
+ person_event SPRITE_OFFICER, 11, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x7824c, -1
+ person_event SPRITE_POKEFAN_M, 28, 18, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerPokefanmBrandon, -1
+ person_event SPRITE_GRAMPS, 16, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x7803d, EVENT_DAYCARE_MAN_ON_ROUTE_34
+ person_event SPRITE_DAYCARE_MON_1, 18, 14, SPRITEMOVEDATA_POKEMON, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DaycareMon1Script_0x78065, EVENT_DAYCARE_MON_1
+ person_event SPRITE_DAYCARE_MON_2, 19, 17, SPRITEMOVEDATA_POKEMON, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DaycareMon2Script_0x7806b, EVENT_DAYCARE_MON_2
+ person_event SPRITE_COOLTRAINER_F, 48, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 5, TrainerCooltrainerfIrene, -1
+ person_event SPRITE_COOLTRAINER_F, 48, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerCooltrainerfJenn, -1
+ person_event SPRITE_COOLTRAINER_F, 51, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 2, TrainerCooltrainerfKate, -1
+ person_event SPRITE_POKE_BALL, 30, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7832b, EVENT_ROUTE_34_NUGGET
--- a/maps/Route34IlexForestGate.asm
+++ b/maps/Route34IlexForestGate.asm
@@ -152,7 +152,7 @@
.PersonEvents:
db 4
- person_event SPRITE_TEACHER, 3, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x62d63, EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_BEHIND_COUNTER
- person_event SPRITE_BUTTERFREE, 4, 9, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ButterfreeScript_0x62d8a, -1
- person_event SPRITE_LASS, 4, 3, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x62d94, EVENT_ROUTE_34_ILEX_FOREST_GATE_LASS
- person_event SPRITE_TEACHER, 7, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x62d63, EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_IN_WALKWAY
+ person_event SPRITE_TEACHER, 3, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x62d63, EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_BEHIND_COUNTER
+ person_event SPRITE_BUTTERFREE, 4, 9, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ButterfreeScript_0x62d8a, -1
+ person_event SPRITE_LASS, 4, 3, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x62d94, EVENT_ROUTE_34_ILEX_FOREST_GATE_LASS
+ person_event SPRITE_TEACHER, 7, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x62d63, EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_IN_WALKWAY
--- a/maps/Route35.asm
+++ b/maps/Route35.asm
@@ -261,7 +261,7 @@
db TM_ROLLOUT, 1
FruitTreeScript_0x19ca7e:
- fruittree $b
+ fruittree FRUITTREE_ROUTE_35
CamperIvanSeenText:
text "I've been getting"
@@ -469,14 +469,14 @@
.PersonEvents:
db 11
- person_event SPRITE_YOUNGSTER, 19, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerCamperIvan, -1
- person_event SPRITE_YOUNGSTER, 20, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerCamperElliot, -1
- person_event SPRITE_LASS, 20, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerPicnickerBrooke, -1
- person_event SPRITE_LASS, 26, 10, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerPicnickerKim, -1
- person_event SPRITE_YOUNGSTER, 28, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 0, TrainerBird_keeperBryan, -1
- person_event SPRITE_FISHER, 10, 2, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerFirebreatherWalt, -1
- person_event SPRITE_BUG_CATCHER, 7, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherArnie1, -1
- person_event SPRITE_SUPER_NERD, 10, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerJugglerIrwin, -1
- person_event SPRITE_OFFICER, 6, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x19ca49, -1
- person_event SPRITE_FRUIT_TREE, 25, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19ca7e, -1
- person_event SPRITE_POKE_BALL, 16, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19ca7c, EVENT_ROUTE_35_TM_ROLLOUT
+ person_event SPRITE_YOUNGSTER, 19, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 2, TrainerCamperIvan, -1
+ person_event SPRITE_YOUNGSTER, 20, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerCamperElliot, -1
+ person_event SPRITE_LASS, 20, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerPicnickerBrooke, -1
+ person_event SPRITE_LASS, 26, 10, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerPicnickerKim, -1
+ person_event SPRITE_YOUNGSTER, 28, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 0, TrainerBird_keeperBryan, -1
+ person_event SPRITE_FISHER, 10, 2, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 2, TrainerFirebreatherWalt, -1
+ person_event SPRITE_BUG_CATCHER, 7, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerBug_catcherArnie1, -1
+ person_event SPRITE_SUPER_NERD, 10, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerJugglerIrwin, -1
+ person_event SPRITE_OFFICER, 6, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x19ca49, -1
+ person_event SPRITE_FRUIT_TREE, 25, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x19ca7e, -1
+ person_event SPRITE_POKE_BALL, 16, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x19ca7c, EVENT_ROUTE_35_TM_ROLLOUT
--- a/maps/Route35Goldenrodgate.asm
+++ b/maps/Route35Goldenrodgate.asm
@@ -209,6 +209,6 @@
.PersonEvents:
db 3
- person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x69d37, -1
- person_event SPRITE_POKEFAN_F, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, PokefanFScript_0x69dc6, -1
- person_event SPRITE_FISHER, 2, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x69dda, -1
+ person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x69d37, -1
+ person_event SPRITE_POKEFAN_F, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x69dc6, -1
+ person_event SPRITE_FISHER, 2, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x69dda, -1
--- a/maps/Route35NationalParkgate.asm
+++ b/maps/Route35NationalParkgate.asm
@@ -458,6 +458,6 @@
.PersonEvents:
db 3
- person_event SPRITE_OFFICER, 1, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OfficerScript_0x6a204, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY
- person_event SPRITE_YOUNGSTER, 5, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x6a2d8, EVENT_ROUTE_35_NATIONAL_PARK_GATE_YOUNGSTER
- person_event SPRITE_OFFICER, 3, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OfficerScript_0x6a2ca, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY
+ person_event SPRITE_OFFICER, 1, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, OfficerScript_0x6a204, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY
+ person_event SPRITE_YOUNGSTER, 5, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x6a2d8, EVENT_ROUTE_35_NATIONAL_PARK_GATE_YOUNGSTER
+ person_event SPRITE_OFFICER, 3, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, OfficerScript_0x6a2ca, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY
--- a/maps/Route36.asm
+++ b/maps/Route36.asm
@@ -359,7 +359,7 @@
jumptext UnknownText_0x1949ee
FruitTreeScript_0x194247:
- fruittree $d
+ fruittree FRUITTREE_ROUTE_36
MovementData_0x194249:
db $56 ; movement
@@ -679,12 +679,12 @@
.PersonEvents:
db 9
- person_event SPRITE_YOUNGSTER, 13, 20, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicMark, -1
- person_event SPRITE_YOUNGSTER, 14, 31, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 5, TrainerSchoolboyAlan1, -1
- person_event SPRITE_WEIRD_TREE, 9, 35, SPRITEMOVEDATA_SUDOWOODO, 0, 0, -1, -1, 0, 0, 0, WeirdTreeScript_0x19403c, EVENT_ROUTE_36_SUDOWOODO
- person_event SPRITE_LASS, 8, 51, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, 0, 0, LassScript_0x1940e0, -1
- person_event SPRITE_FISHER, 9, 44, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x1940b9, -1
- person_event SPRITE_FRUIT_TREE, 4, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x194247, -1
- person_event SPRITE_YOUNGSTER, 6, 46, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, ArthurScript, EVENT_ROUTE_36_ARTHUR_OF_THURSDAY
- person_event SPRITE_LASS, 12, 33, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LassScript_0x19408c, EVENT_FLORIA_AT_SUDOWOODO
- person_event SPRITE_SUICUNE, 6, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_SAW_SUICUNE_ON_ROUTE_36
+ person_event SPRITE_YOUNGSTER, 13, 20, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPsychicMark, -1
+ person_event SPRITE_YOUNGSTER, 14, 31, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 5, TrainerSchoolboyAlan1, -1
+ person_event SPRITE_WEIRD_TREE, 9, 35, SPRITEMOVEDATA_SUDOWOODO, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, WeirdTreeScript_0x19403c, EVENT_ROUTE_36_SUDOWOODO
+ person_event SPRITE_LASS, 8, 51, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x1940e0, -1
+ person_event SPRITE_FISHER, 9, 44, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FisherScript_0x1940b9, -1
+ person_event SPRITE_FRUIT_TREE, 4, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x194247, -1
+ person_event SPRITE_YOUNGSTER, 6, 46, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ArthurScript, EVENT_ROUTE_36_ARTHUR_OF_THURSDAY
+ person_event SPRITE_LASS, 12, 33, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, LassScript_0x19408c, EVENT_FLORIA_AT_SUDOWOODO
+ person_event SPRITE_SUICUNE, 6, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_SAW_SUICUNE_ON_ROUTE_36
--- a/maps/Route36NationalParkgate.asm
+++ b/maps/Route36NationalParkgate.asm
@@ -862,15 +862,15 @@
.PersonEvents:
db 12
- person_event SPRITE_OFFICER, 3, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, Route36OfficerScriptContest, EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY
- person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x6ad06, EVENT_BUG_CATCHING_CONTESTANT_1B
- person_event SPRITE_YOUNGSTER, 5, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x6ad1a, EVENT_BUG_CATCHING_CONTESTANT_2B
- person_event SPRITE_ROCKER, 6, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, RockerScript_0x6ad2e, EVENT_BUG_CATCHING_CONTESTANT_3B
- person_event SPRITE_POKEFAN_M, 5, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x6ad42, EVENT_BUG_CATCHING_CONTESTANT_4B
- person_event SPRITE_YOUNGSTER, 7, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x6ad56, EVENT_BUG_CATCHING_CONTESTANT_5B
- person_event SPRITE_YOUNGSTER, 6, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x6ad6a, EVENT_BUG_CATCHING_CONTESTANT_6B
- person_event SPRITE_LASS, 6, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LassScript_0x6ad7e, EVENT_BUG_CATCHING_CONTESTANT_7B
- person_event SPRITE_YOUNGSTER, 7, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x6ad92, EVENT_BUG_CATCHING_CONTESTANT_8B
- person_event SPRITE_YOUNGSTER, 7, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x6ada6, EVENT_BUG_CATCHING_CONTESTANT_9B
- person_event SPRITE_YOUNGSTER, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x6adba, EVENT_BUG_CATCHING_CONTESTANT_10B
- person_event SPRITE_OFFICER, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OfficerScript_0x6acf4, EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY
+ person_event SPRITE_OFFICER, 3, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, Route36OfficerScriptContest, EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY
+ person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x6ad06, EVENT_BUG_CATCHING_CONTESTANT_1B
+ person_event SPRITE_YOUNGSTER, 5, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x6ad1a, EVENT_BUG_CATCHING_CONTESTANT_2B
+ person_event SPRITE_ROCKER, 6, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, RockerScript_0x6ad2e, EVENT_BUG_CATCHING_CONTESTANT_3B
+ person_event SPRITE_POKEFAN_M, 5, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x6ad42, EVENT_BUG_CATCHING_CONTESTANT_4B
+ person_event SPRITE_YOUNGSTER, 7, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x6ad56, EVENT_BUG_CATCHING_CONTESTANT_5B
+ person_event SPRITE_YOUNGSTER, 6, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x6ad6a, EVENT_BUG_CATCHING_CONTESTANT_6B
+ person_event SPRITE_LASS, 6, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, LassScript_0x6ad7e, EVENT_BUG_CATCHING_CONTESTANT_7B
+ person_event SPRITE_YOUNGSTER, 7, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x6ad92, EVENT_BUG_CATCHING_CONTESTANT_8B
+ person_event SPRITE_YOUNGSTER, 7, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x6ada6, EVENT_BUG_CATCHING_CONTESTANT_9B
+ person_event SPRITE_YOUNGSTER, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x6adba, EVENT_BUG_CATCHING_CONTESTANT_10B
+ person_event SPRITE_OFFICER, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, OfficerScript_0x6acf4, EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY
--- a/maps/Route36RuinsofAlphgate.asm
+++ b/maps/Route36RuinsofAlphgate.asm
@@ -49,5 +49,5 @@
.PersonEvents:
db 2
- person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x6aa1a, -1
- person_event SPRITE_GRAMPS, 5, 7, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrampsScript_0x6aa1d, -1
+ person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x6aa1a, -1
+ person_event SPRITE_GRAMPS, 5, 7, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x6aa1d, -1
--- a/maps/Route37.asm
+++ b/maps/Route37.asm
@@ -99,13 +99,13 @@
jumptext UnknownText_0x1a9197
FruitTreeScript_0x1a8e09:
- fruittree $11
+ fruittree FRUITTREE_ROUTE_37_1
FruitTreeScript_0x1a8e0b:
- fruittree $12
+ fruittree FRUITTREE_ROUTE_37_2
FruitTreeScript_0x1a8e0d:
- fruittree $13
+ fruittree FRUITTREE_ROUTE_37_3
MapRoute37SignpostItem1:
dwb EVENT_ROUTE_37_HIDDEN_ETHER, ETHER
@@ -249,10 +249,10 @@
.PersonEvents:
db 7
- person_event SPRITE_WEIRD_TREE, 12, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsAnnandanne1, -1
- person_event SPRITE_WEIRD_TREE, 12, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsAnnandanne2, -1
- person_event SPRITE_YOUNGSTER, 6, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerPsychicGreg, -1
- person_event SPRITE_FRUIT_TREE, 5, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8e09, -1
- person_event SPRITE_BUG_CATCHER, 8, 16, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, SunnyScript, EVENT_ROUTE_37_SUNNY_OF_SUNDAY
- person_event SPRITE_FRUIT_TREE, 5, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8e0b, -1
- person_event SPRITE_FRUIT_TREE, 7, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8e0d, -1
+ person_event SPRITE_WEIRD_TREE, 12, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerTwinsAnnandanne1, -1
+ person_event SPRITE_WEIRD_TREE, 12, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerTwinsAnnandanne2, -1
+ person_event SPRITE_YOUNGSTER, 6, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerPsychicGreg, -1
+ person_event SPRITE_FRUIT_TREE, 5, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a8e09, -1
+ person_event SPRITE_BUG_CATCHER, 8, 16, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SunnyScript, EVENT_ROUTE_37_SUNNY_OF_SUNDAY
+ person_event SPRITE_FRUIT_TREE, 5, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a8e0b, -1
+ person_event SPRITE_FRUIT_TREE, 7, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a8e0d, -1
--- a/maps/Route38.asm
+++ b/maps/Route38.asm
@@ -311,7 +311,7 @@
jumptext UnknownText_0x1a2324
FruitTreeScript_0x1a1f33:
- fruittree $3
+ fruittree FRUITTREE_ROUTE_38
Bird_keeperTobySeenText:
text "Fly high into the"
@@ -482,10 +482,10 @@
.PersonEvents:
db 7
- person_event SPRITE_STANDING_YOUNGSTER, 1, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSchoolboyChad1, -1
- person_event SPRITE_LASS, 3, 15, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerLassDana1, -1
- person_event SPRITE_STANDING_YOUNGSTER, 15, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBird_keeperToby, -1
- person_event SPRITE_BUENA, 9, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBeautyValerie, -1
- person_event SPRITE_SAILOR, 5, 24, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerSailorHarry, -1
- person_event SPRITE_FRUIT_TREE, 10, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a1f33, -1
- person_event SPRITE_BUENA, 8, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBeautyOlivia, -1
+ person_event SPRITE_STANDING_YOUNGSTER, 1, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerSchoolboyChad1, -1
+ person_event SPRITE_LASS, 3, 15, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerLassDana1, -1
+ person_event SPRITE_STANDING_YOUNGSTER, 15, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerBird_keeperToby, -1
+ person_event SPRITE_BUENA, 9, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerBeautyValerie, -1
+ person_event SPRITE_SAILOR, 5, 24, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerSailorHarry, -1
+ person_event SPRITE_FRUIT_TREE, 10, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a1f33, -1
+ person_event SPRITE_BUENA, 8, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerBeautyOlivia, -1
--- a/maps/Route38EcruteakGate.asm
+++ b/maps/Route38EcruteakGate.asm
@@ -40,4 +40,4 @@
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x9cbd7, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x9cbd7, -1
--- a/maps/Route39.asm
+++ b/maps/Route39.asm
@@ -165,7 +165,7 @@
jumptext UnknownText_0x1a6036
FruitTreeScript_0x1a5bf4:
- fruittree $f
+ fruittree FRUITTREE_ROUTE_39
MapRoute39SignpostItem3:
dwb EVENT_ROUTE_39_HIDDEN_NUGGET, NUGGET
@@ -353,13 +353,13 @@
.PersonEvents:
db 10
- person_event SPRITE_SAILOR, 29, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 5, TrainerSailorEugene, -1
- person_event SPRITE_POKEFAN_M, 22, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerPokefanmDerek1, -1
- person_event SPRITE_POKEFAN_F, 19, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerPokefanfRuth, -1
- person_event SPRITE_TAUROS, 12, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1
- person_event SPRITE_TAUROS, 11, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1
- person_event SPRITE_TAUROS, 15, 4, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1
- person_event SPRITE_TAUROS, 13, 8, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1
- person_event SPRITE_STANDING_YOUNGSTER, 7, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerPsychicNorman, -1
- person_event SPRITE_FRUIT_TREE, 3, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a5bf4, -1
- person_event SPRITE_POKEFAN_F, 22, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanFScript_0x1a5bbe, -1
+ person_event SPRITE_SAILOR, 29, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 5, TrainerSailorEugene, -1
+ person_event SPRITE_POKEFAN_M, 22, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerPokefanmDerek1, -1
+ person_event SPRITE_POKEFAN_F, 19, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerPokefanfRuth, -1
+ person_event SPRITE_TAUROS, 12, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TaurosScript_0x1a5af5, -1
+ person_event SPRITE_TAUROS, 11, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TaurosScript_0x1a5af5, -1
+ person_event SPRITE_TAUROS, 15, 4, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TaurosScript_0x1a5af5, -1
+ person_event SPRITE_TAUROS, 13, 8, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TaurosScript_0x1a5af5, -1
+ person_event SPRITE_STANDING_YOUNGSTER, 7, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerPsychicNorman, -1
+ person_event SPRITE_FRUIT_TREE, 3, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a5bf4, -1
+ person_event SPRITE_POKEFAN_F, 22, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x1a5bbe, -1
--- a/maps/Route39Barn.asm
+++ b/maps/Route39Barn.asm
@@ -200,6 +200,6 @@
.PersonEvents:
db 3
- person_event SPRITE_TWIN, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, TwinScript_0x9cc76, -1
- person_event SPRITE_TWIN, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TwinScript_0x9cc90, -1
- person_event SPRITE_TAUROS, 3, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x9ccaa, -1
+ person_event SPRITE_TWIN, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TwinScript_0x9cc76, -1
+ person_event SPRITE_TWIN, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TwinScript_0x9cc90, -1
+ person_event SPRITE_TAUROS, 3, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TaurosScript_0x9ccaa, -1
--- a/maps/Route39Farmhouse.asm
+++ b/maps/Route39Farmhouse.asm
@@ -20,7 +20,7 @@
checkitem MOOMOO_MILK
iftrue UnknownScript_0x9cf08
writetext UnknownText_0x9cfe1
- special Function24ae8
+ special PlaceMoneyTopRightOW
yesorno
iffalse UnknownScript_0x9cf02
checkmoney $0, 500
@@ -28,7 +28,7 @@
giveitem MOOMOO_MILK
iffalse UnknownScript_0x9cefc
takemoney $0, 500
- special Function24ae8
+ special PlaceMoneyTopRightOW
waitbutton
playsound SFX_TRANSACTION
writetext UnknownText_0x9d05d
@@ -207,5 +207,5 @@
.PersonEvents:
db 2
- person_event SPRITE_POKEFAN_M, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, PokefanMScript_0x9ceb4, -1
- person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanFScript_0x9cf0e, -1
+ person_event SPRITE_POKEFAN_M, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x9ceb4, -1
+ person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x9cf0e, -1
--- a/maps/Route4.asm
+++ b/maps/Route4.asm
@@ -133,7 +133,7 @@
.PersonEvents:
db 4
- person_event SPRITE_YOUNGSTER, 9, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperHank, -1
- person_event SPRITE_LASS, 8, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerPicnickerHope, -1
- person_event SPRITE_LASS, 6, 21, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerPicnickerSharon, -1
- person_event SPRITE_POKE_BALL, 3, 26, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ae20f, EVENT_ROUTE_4_HP_UP
+ person_event SPRITE_YOUNGSTER, 9, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBird_keeperHank, -1
+ person_event SPRITE_LASS, 8, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 4, TrainerPicnickerHope, -1
+ person_event SPRITE_LASS, 6, 21, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 4, TrainerPicnickerSharon, -1
+ person_event SPRITE_POKE_BALL, 3, 26, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1ae20f, EVENT_ROUTE_4_HP_UP
--- a/maps/Route40.asm
+++ b/maps/Route40.asm
@@ -68,11 +68,11 @@
jumptextfaceplayer UnknownText_0x1a6429
PokefanMScript_0x1a61c7:
- special Function10630f
- iftrue UnknownScript_0x1a61d0
+ special Mobile_DummyReturnFalse
+ iftrue .mobile
jumptextfaceplayer UnknownText_0x1a646a
-UnknownScript_0x1a61d0:
+.mobile:
jumptextfaceplayer UnknownText_0x1a649b
LassScript_0x1a61d3:
@@ -344,15 +344,15 @@
.PersonEvents:
db 12
- person_event SPRITE_OLIVINE_RIVAL, 15, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerSwimmermSimon, -1
- person_event SPRITE_OLIVINE_RIVAL, 30, 18, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 5, TrainerSwimmermRandall, -1
- person_event SPRITE_SWIMMER_GIRL, 19, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerSwimmerfElaine, -1
- person_event SPRITE_SWIMMER_GIRL, 25, 10, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfPaula, -1
- person_event SPRITE_ROCK, 11, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, Route40Rock, -1
- person_event SPRITE_ROCK, 9, 6, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, Route40Rock, -1
- person_event SPRITE_ROCK, 8, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, Route40Rock, -1
- person_event SPRITE_LASS, 13, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, LassScript_0x1a61c4, -1
- person_event SPRITE_BUENA, 10, 8, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, MonicaScript, EVENT_ROUTE_40_MONICA_OF_MONDAY
- person_event SPRITE_POKEFAN_M, 6, 7, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x1a61c7, -1
- person_event SPRITE_LASS, 4, 13, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x1a61d3, -1
- person_event SPRITE_STANDING_YOUNGSTER, 9, 16, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, StandingYoungsterScript_0x1a61d6, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
+ person_event SPRITE_OLIVINE_RIVAL, 15, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerSwimmermSimon, -1
+ person_event SPRITE_OLIVINE_RIVAL, 30, 18, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 5, TrainerSwimmermRandall, -1
+ person_event SPRITE_SWIMMER_GIRL, 19, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 4, TrainerSwimmerfElaine, -1
+ person_event SPRITE_SWIMMER_GIRL, 25, 10, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerSwimmerfPaula, -1
+ person_event SPRITE_ROCK, 11, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Route40Rock, -1
+ person_event SPRITE_ROCK, 9, 6, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Route40Rock, -1
+ person_event SPRITE_ROCK, 8, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Route40Rock, -1
+ person_event SPRITE_LASS, 13, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x1a61c4, -1
+ person_event SPRITE_BUENA, 10, 8, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MonicaScript, EVENT_ROUTE_40_MONICA_OF_MONDAY
+ person_event SPRITE_POKEFAN_M, 6, 7, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x1a61c7, -1
+ person_event SPRITE_LASS, 4, 13, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x1a61d3, -1
+ person_event SPRITE_STANDING_YOUNGSTER, 9, 16, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, StandingYoungsterScript_0x1a61d6, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
--- a/maps/Route40BattleTowerGate.asm
+++ b/maps/Route40BattleTowerGate.asm
@@ -88,5 +88,5 @@
.PersonEvents:
db 2
- person_event SPRITE_ROCKER, 3, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, RockerScript_0x9f669, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
- person_event SPRITE_TWIN, 5, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, TwinScript_0x9f66c, -1
+ person_event SPRITE_ROCKER, 3, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, RockerScript_0x9f669, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
+ person_event SPRITE_TWIN, 5, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, TwinScript_0x9f66c, -1
--- a/maps/Route41.asm
+++ b/maps/Route41.asm
@@ -349,13 +349,13 @@
.PersonEvents:
db 10
- person_event SPRITE_OLIVINE_RIVAL, 6, 32, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermCharlie, -1
- person_event SPRITE_OLIVINE_RIVAL, 8, 46, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermGeorge, -1
- person_event SPRITE_OLIVINE_RIVAL, 26, 20, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermBerke, -1
- person_event SPRITE_OLIVINE_RIVAL, 30, 32, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermKirk, -1
- person_event SPRITE_OLIVINE_RIVAL, 46, 19, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermMathew, -1
- person_event SPRITE_SWIMMER_GIRL, 4, 17, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfKaylee, -1
- person_event SPRITE_SWIMMER_GIRL, 19, 23, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfSusie, -1
- person_event SPRITE_SWIMMER_GIRL, 34, 27, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfDenise, -1
- person_event SPRITE_SWIMMER_GIRL, 28, 44, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerSwimmerfKara, -1
- person_event SPRITE_SWIMMER_GIRL, 50, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerSwimmerfWendy, -1
+ person_event SPRITE_OLIVINE_RIVAL, 6, 32, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerSwimmermCharlie, -1
+ person_event SPRITE_OLIVINE_RIVAL, 8, 46, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerSwimmermGeorge, -1
+ person_event SPRITE_OLIVINE_RIVAL, 26, 20, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerSwimmermBerke, -1
+ person_event SPRITE_OLIVINE_RIVAL, 30, 32, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerSwimmermKirk, -1
+ person_event SPRITE_OLIVINE_RIVAL, 46, 19, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerSwimmermMathew, -1
+ person_event SPRITE_SWIMMER_GIRL, 4, 17, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerSwimmerfKaylee, -1
+ person_event SPRITE_SWIMMER_GIRL, 19, 23, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerSwimmerfSusie, -1
+ person_event SPRITE_SWIMMER_GIRL, 34, 27, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerSwimmerfDenise, -1
+ person_event SPRITE_SWIMMER_GIRL, 28, 44, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 4, TrainerSwimmerfKara, -1
+ person_event SPRITE_SWIMMER_GIRL, 50, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 2, TrainerSwimmerfWendy, -1
--- a/maps/Route42.asm
+++ b/maps/Route42.asm
@@ -194,13 +194,13 @@
db SUPER_POTION, 1
FruitTreeScript_0x1a934d:
- fruittree $15
+ fruittree FRUITTREE_ROUTE_42_1
FruitTreeScript_0x1a934f:
- fruittree $16
+ fruittree FRUITTREE_ROUTE_42_2
FruitTreeScript_0x1a9351:
- fruittree $17
+ fruittree FRUITTREE_ROUTE_42_3
MapRoute42SignpostItem4:
dwb EVENT_ROUTE_42_HIDDEN_MAX_POTION, MAX_POTION
@@ -336,12 +336,12 @@
.PersonEvents:
db 9
- person_event SPRITE_FISHER, 10, 40, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherTully1, -1
- person_event SPRITE_POKEFAN_M, 9, 51, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerBenjamin, -1
- person_event SPRITE_SUPER_NERD, 8, 47, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacShane, -1
- person_event SPRITE_FRUIT_TREE, 16, 27, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a934d, -1
- person_event SPRITE_FRUIT_TREE, 16, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a934f, -1
- person_event SPRITE_FRUIT_TREE, 16, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a9351, -1
- person_event SPRITE_POKE_BALL, 4, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a9349, EVENT_ROUTE_42_ULTRA_BALL
- person_event SPRITE_POKE_BALL, 8, 33, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a934b, EVENT_ROUTE_42_SUPER_POTION
- person_event SPRITE_SUICUNE, 16, 26, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_SAW_SUICUNE_ON_ROUTE_42
+ person_event SPRITE_FISHER, 10, 40, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerFisherTully1, -1
+ person_event SPRITE_POKEFAN_M, 9, 51, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerHikerBenjamin, -1
+ person_event SPRITE_SUPER_NERD, 8, 47, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPokemaniacShane, -1
+ person_event SPRITE_FRUIT_TREE, 16, 27, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a934d, -1
+ person_event SPRITE_FRUIT_TREE, 16, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a934f, -1
+ person_event SPRITE_FRUIT_TREE, 16, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a9351, -1
+ person_event SPRITE_POKE_BALL, 4, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a9349, EVENT_ROUTE_42_ULTRA_BALL
+ person_event SPRITE_POKE_BALL, 8, 33, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a934b, EVENT_ROUTE_42_SUPER_POTION
+ person_event SPRITE_SUICUNE, 16, 26, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_SAW_SUICUNE_ON_ROUTE_42
--- a/maps/Route42EcruteakGate.asm
+++ b/maps/Route42EcruteakGate.asm
@@ -35,4 +35,4 @@
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x19a4b5, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x19a4b5, -1
--- a/maps/Route43.asm
+++ b/maps/Route43.asm
@@ -312,7 +312,7 @@
jumptext UnknownText_0x19d6c9
FruitTreeScript_0x19d266:
- fruittree $8
+ fruittree FRUITTREE_ROUTE_43
ItemFragment_0x19d268:
db MAX_ETHER, 1
@@ -516,11 +516,11 @@
.PersonEvents:
db 8
- person_event SPRITE_SUPER_NERD, 5, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPokemaniacBen, -1
- person_event SPRITE_SUPER_NERD, 20, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacBrent1, -1
- person_event SPRITE_SUPER_NERD, 7, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPokemaniacRon, -1
- person_event SPRITE_FISHER, 16, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerFisherMarvin, -1
- person_event SPRITE_LASS, 25, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerPicnickerTiffany3, -1
- person_event SPRITE_YOUNGSTER, 40, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerCamperSpencer, -1
- person_event SPRITE_FRUIT_TREE, 26, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19d266, -1
- person_event SPRITE_POKE_BALL, 32, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19d268, EVENT_ROUTE_43_MAX_ETHER
+ person_event SPRITE_SUPER_NERD, 5, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerPokemaniacBen, -1
+ person_event SPRITE_SUPER_NERD, 20, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPokemaniacBrent1, -1
+ person_event SPRITE_SUPER_NERD, 7, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerPokemaniacRon, -1
+ person_event SPRITE_FISHER, 16, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 4, TrainerFisherMarvin, -1
+ person_event SPRITE_LASS, 25, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 2, TrainerPicnickerTiffany3, -1
+ person_event SPRITE_YOUNGSTER, 40, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerCamperSpencer, -1
+ person_event SPRITE_FRUIT_TREE, 26, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x19d266, -1
+ person_event SPRITE_POKE_BALL, 32, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x19d268, EVENT_ROUTE_43_MAX_ETHER
--- a/maps/Route43Gate.asm
+++ b/maps/Route43Gate.asm
@@ -264,6 +264,6 @@
.PersonEvents:
db 3
- person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x19ac85, EVENT_LAKE_OF_RAGE_CIVILIANS
- person_event SPRITE_ROCKET, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x19ac82, EVENT_ROUTE_43_GATE_ROCKETS
- person_event SPRITE_ROCKET, 4, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x19ac82, EVENT_ROUTE_43_GATE_ROCKETS
+ person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x19ac85, EVENT_LAKE_OF_RAGE_CIVILIANS
+ person_event SPRITE_ROCKET, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x19ac82, EVENT_ROUTE_43_GATE_ROCKETS
+ person_event SPRITE_ROCKET, 4, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x19ac82, EVENT_ROUTE_43_GATE_ROCKETS
--- a/maps/Route43MahoganyGate.asm
+++ b/maps/Route43MahoganyGate.asm
@@ -54,4 +54,4 @@
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x19ab0b, -1
+ person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x19ab0b, -1
--- a/maps/Route44.asm
+++ b/maps/Route44.asm
@@ -293,7 +293,7 @@
jumptext UnknownText_0x19dfcc
FruitTreeScript_0x19da40:
- fruittree $10
+ fruittree FRUITTREE_ROUTE_44
ItemFragment_0x19da42:
db MAX_REVIVE, 1
@@ -513,14 +513,14 @@
.PersonEvents:
db 11
- person_event SPRITE_FISHER, 3, 35, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherWilton1, -1
- person_event SPRITE_FISHER, 13, 19, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherEdgar, -1
- person_event SPRITE_YOUNGSTER, 9, 10, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicPhil, -1
- person_event SPRITE_SUPER_NERD, 2, 43, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerPokemaniacZach, -1
- person_event SPRITE_YOUNGSTER, 5, 51, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerBird_keeperVance1, -1
- person_event SPRITE_COOLTRAINER_M, 15, 41, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 5, TrainerCooltrainermAllen, -1
- person_event SPRITE_COOLTRAINER_F, 14, 31, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 5, TrainerCooltrainerfCybil, -1
- person_event SPRITE_FRUIT_TREE, 5, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19da40, -1
- person_event SPRITE_POKE_BALL, 8, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19da42, EVENT_ROUTE_44_MAX_REVIVE
- person_event SPRITE_POKE_BALL, 4, 45, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19da44, EVENT_ROUTE_44_ULTRA_BALL
- person_event SPRITE_POKE_BALL, 9, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19da46, EVENT_ROUTE_44_MAX_REPEL
+ person_event SPRITE_FISHER, 3, 35, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerFisherWilton1, -1
+ person_event SPRITE_FISHER, 13, 19, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerFisherEdgar, -1
+ person_event SPRITE_YOUNGSTER, 9, 10, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPsychicPhil, -1
+ person_event SPRITE_SUPER_NERD, 2, 43, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerPokemaniacZach, -1
+ person_event SPRITE_YOUNGSTER, 5, 51, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 2, TrainerBird_keeperVance1, -1
+ person_event SPRITE_COOLTRAINER_M, 15, 41, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 5, TrainerCooltrainermAllen, -1
+ person_event SPRITE_COOLTRAINER_F, 14, 31, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 5, TrainerCooltrainerfCybil, -1
+ person_event SPRITE_FRUIT_TREE, 5, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x19da40, -1
+ person_event SPRITE_POKE_BALL, 8, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x19da42, EVENT_ROUTE_44_MAX_REVIVE
+ person_event SPRITE_POKE_BALL, 4, 45, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x19da44, EVENT_ROUTE_44_ULTRA_BALL
+ person_event SPRITE_POKE_BALL, 9, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x19da46, EVENT_ROUTE_44_MAX_REPEL
--- a/maps/Route45.asm
+++ b/maps/Route45.asm
@@ -282,7 +282,7 @@
jumptext UnknownText_0x19e8fe
FruitTreeScript_0x19e294:
- fruittree $c
+ fruittree FRUITTREE_ROUTE_45
ItemFragment_0x19e296:
db NUGGET, 1
@@ -535,16 +535,16 @@
.PersonEvents:
db 13
- person_event SPRITE_POKEFAN_M, 16, 10, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerHikerErik, -1
- person_event SPRITE_POKEFAN_M, 65, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerMichael, -1
- person_event SPRITE_POKEFAN_M, 28, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerParry, -1
- person_event SPRITE_POKEFAN_M, 65, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerHikerTimothy, -1
- person_event SPRITE_BLACK_BELT, 50, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerBlackbeltKenji, -1
- person_event SPRITE_COOLTRAINER_M, 18, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainermRyan, -1
- person_event SPRITE_COOLTRAINER_F, 36, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfKelly, -1
- person_event SPRITE_FRUIT_TREE, 82, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19e294, -1
- person_event SPRITE_POKE_BALL, 51, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e296, EVENT_ROUTE_45_NUGGET
- person_event SPRITE_POKE_BALL, 66, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e298, EVENT_ROUTE_45_REVIVE
- person_event SPRITE_POKE_BALL, 20, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e29a, EVENT_ROUTE_45_ELIXER
- person_event SPRITE_POKE_BALL, 33, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e29c, EVENT_ROUTE_45_MAX_POTION
- person_event SPRITE_YOUNGSTER, 70, 4, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x19e269, -1
+ person_event SPRITE_POKEFAN_M, 16, 10, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 1, TrainerHikerErik, -1
+ person_event SPRITE_POKEFAN_M, 65, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerHikerMichael, -1
+ person_event SPRITE_POKEFAN_M, 28, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerHikerParry, -1
+ person_event SPRITE_POKEFAN_M, 65, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 1, TrainerHikerTimothy, -1
+ person_event SPRITE_BLACK_BELT, 50, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerBlackbeltKenji, -1
+ person_event SPRITE_COOLTRAINER_M, 18, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerCooltrainermRyan, -1
+ person_event SPRITE_COOLTRAINER_F, 36, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerCooltrainerfKelly, -1
+ person_event SPRITE_FRUIT_TREE, 82, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x19e294, -1
+ person_event SPRITE_POKE_BALL, 51, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x19e296, EVENT_ROUTE_45_NUGGET
+ person_event SPRITE_POKE_BALL, 66, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x19e298, EVENT_ROUTE_45_REVIVE
+ person_event SPRITE_POKE_BALL, 20, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x19e29a, EVENT_ROUTE_45_ELIXER
+ person_event SPRITE_POKE_BALL, 33, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x19e29c, EVENT_ROUTE_45_MAX_POTION
+ person_event SPRITE_YOUNGSTER, 70, 4, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x19e269, -1
--- a/maps/Route46.asm
+++ b/maps/Route46.asm
@@ -157,10 +157,10 @@
db X_SPEED, 1
FruitTreeScript_0x1a978f:
- fruittree $4
+ fruittree FRUITTREE_ROUTE_46_1
FruitTreeScript_0x1a9791:
- fruittree $a
+ fruittree FRUITTREE_ROUTE_46_2
HikerBaileySeenText:
text "Awright! I'll show"
@@ -261,9 +261,9 @@
.PersonEvents:
db 6
- person_event SPRITE_POKEFAN_M, 19, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerBailey, -1
- person_event SPRITE_YOUNGSTER, 14, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerCamperTed, -1
- person_event SPRITE_LASS, 13, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerPicnickerErin1, -1
- person_event SPRITE_FRUIT_TREE, 5, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a978f, -1
- person_event SPRITE_FRUIT_TREE, 6, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a9791, -1
- person_event SPRITE_POKE_BALL, 15, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a978d, EVENT_ROUTE_46_X_SPEED
+ person_event SPRITE_POKEFAN_M, 19, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerHikerBailey, -1
+ person_event SPRITE_YOUNGSTER, 14, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 2, TrainerCamperTed, -1
+ person_event SPRITE_LASS, 13, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 2, TrainerPicnickerErin1, -1
+ person_event SPRITE_FRUIT_TREE, 5, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a978f, -1
+ person_event SPRITE_FRUIT_TREE, 6, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a9791, -1
+ person_event SPRITE_POKE_BALL, 15, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a978d, EVENT_ROUTE_46_X_SPEED
--- a/maps/Route5.asm
+++ b/maps/Route5.asm
@@ -57,4 +57,4 @@
.PersonEvents:
db 1
- person_event SPRITE_POKEFAN_M, 16, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x1adb19, EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH
+ person_event SPRITE_POKEFAN_M, 16, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x1adb19, EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH
--- a/maps/Route5CleanseTagSpeechHouse.asm
+++ b/maps/Route5CleanseTagSpeechHouse.asm
@@ -75,5 +75,5 @@
.PersonEvents:
db 2
- person_event SPRITE_GRANNY, 5, 2, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrannyScript_0x18b634, -1
- person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, TeacherScript_0x18b64f, -1
+ person_event SPRITE_GRANNY, 5, 2, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, GrannyScript_0x18b634, -1
+ person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, TeacherScript_0x18b64f, -1
--- a/maps/Route5SaffronCityGate.asm
+++ b/maps/Route5SaffronCityGate.asm
@@ -36,4 +36,4 @@
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x18b5b9, -1
+ person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x18b5b9, -1
--- a/maps/Route5UndergroundEntrance.asm
+++ b/maps/Route5UndergroundEntrance.asm
@@ -34,4 +34,4 @@
.PersonEvents:
db 1
- person_event SPRITE_TEACHER, 2, 2, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x18b555, -1
+ person_event SPRITE_TEACHER, 2, 2, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x18b555, -1
--- a/maps/Route6.asm
+++ b/maps/Route6.asm
@@ -104,6 +104,6 @@
.PersonEvents:
db 3
- person_event SPRITE_POKEFAN_M, 4, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 2, PokefanMScript_0x1ad951, EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH
- person_event SPRITE_POKEFAN_M, 12, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 0, TrainerPokefanmRex, -1
- person_event SPRITE_POKEFAN_M, 12, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 0, TrainerPokefanmAllan, -1
+ person_event SPRITE_POKEFAN_M, 4, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 2, PokefanMScript_0x1ad951, EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH
+ person_event SPRITE_POKEFAN_M, 12, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 0, TrainerPokefanmRex, -1
+ person_event SPRITE_POKEFAN_M, 12, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 0, TrainerPokefanmAllan, -1
--- a/maps/Route6SaffronGate.asm
+++ b/maps/Route6SaffronGate.asm
@@ -75,4 +75,4 @@
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x1926ea, -1
+ person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x1926ea, -1
--- a/maps/Route7SaffronGate.asm
+++ b/maps/Route7SaffronGate.asm
@@ -61,4 +61,4 @@
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x73518, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x73518, -1
--- a/maps/Route8.asm
+++ b/maps/Route8.asm
@@ -67,7 +67,7 @@
jumptext UnknownText_0x6c2b7
FruitTreeScript_0x6c06c:
- fruittree $1b
+ fruittree FRUITTREE_ROUTE_8
BikerDwayneSeenText:
text "We're the KANTO"
@@ -183,9 +183,9 @@
.PersonEvents:
db 6
- person_event SPRITE_BIKER, 8, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 5, TrainerBikerDwayne, -1
- person_event SPRITE_BIKER, 9, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 5, TrainerBikerHarris, -1
- person_event SPRITE_BIKER, 10, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 5, TrainerBikerZeke, -1
- person_event SPRITE_SUPER_NERD, 2, 23, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerSupernerdSam, -1
- person_event SPRITE_SUPER_NERD, 12, 31, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 4, TrainerSupernerdTom, -1
- person_event SPRITE_FRUIT_TREE, 5, 33, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x6c06c, -1
+ person_event SPRITE_BIKER, 8, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 5, TrainerBikerDwayne, -1
+ person_event SPRITE_BIKER, 9, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 5, TrainerBikerHarris, -1
+ person_event SPRITE_BIKER, 10, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 5, TrainerBikerZeke, -1
+ person_event SPRITE_SUPER_NERD, 2, 23, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerSupernerdSam, -1
+ person_event SPRITE_SUPER_NERD, 12, 31, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 4, TrainerSupernerdTom, -1
+ person_event SPRITE_FRUIT_TREE, 5, 33, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x6c06c, -1
--- a/maps/Route8SaffronGate.asm
+++ b/maps/Route8SaffronGate.asm
@@ -35,4 +35,4 @@
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x7f416, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x7f416, -1
--- a/maps/Route9.asm
+++ b/maps/Route9.asm
@@ -216,9 +216,9 @@
.PersonEvents:
db 6
- person_event SPRITE_YOUNGSTER, 11, 23, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerCamperDean, -1
- person_event SPRITE_LASS, 8, 39, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerPicnickerHeidi, -1
- person_event SPRITE_YOUNGSTER, 4, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 5, TrainerCamperSid, -1
- person_event SPRITE_LASS, 15, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerPicnickerEdna, -1
- person_event SPRITE_POKEFAN_M, 3, 28, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerTim, -1
- person_event SPRITE_POKEFAN_M, 15, 36, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 4, TrainerHikerSidney, -1
+ person_event SPRITE_YOUNGSTER, 11, 23, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerCamperDean, -1
+ person_event SPRITE_LASS, 8, 39, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerPicnickerHeidi, -1
+ person_event SPRITE_YOUNGSTER, 4, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 5, TrainerCamperSid, -1
+ person_event SPRITE_LASS, 15, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerPicnickerEdna, -1
+ person_event SPRITE_POKEFAN_M, 3, 28, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerHikerTim, -1
+ person_event SPRITE_POKEFAN_M, 15, 36, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 4, TrainerHikerSidney, -1
--- a/maps/RuinsofAlphAerodactylItemRoom.asm
+++ b/maps/RuinsofAlphAerodactylItemRoom.asm
@@ -47,7 +47,7 @@
.PersonEvents:
db 4
- person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59ab6, EVENT_PICKED_UP_GOLD_BERRY_FROM_AERODACTYL_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59ab8, EVENT_PICKED_UP_MOON_STONE_FROM_AERODACTYL_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59aba, EVENT_PICKED_UP_HEAL_POWDER_FROM_AERODACTYL_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59abc, EVENT_PICKED_UP_ENERGY_ROOT_FROM_AERODACTYL_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59ab6, EVENT_PICKED_UP_GOLD_BERRY_FROM_AERODACTYL_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59ab8, EVENT_PICKED_UP_MOON_STONE_FROM_AERODACTYL_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59aba, EVENT_PICKED_UP_HEAL_POWDER_FROM_AERODACTYL_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59abc, EVENT_PICKED_UP_ENERGY_ROOT_FROM_AERODACTYL_ITEM_ROOM
--- a/maps/RuinsofAlphHoOhItemRoom.asm
+++ b/maps/RuinsofAlphHoOhItemRoom.asm
@@ -47,7 +47,7 @@
.PersonEvents:
db 4
- person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59918, EVENT_PICKED_UP_GOLD_BERRY_FROM_HO_OH_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5991a, EVENT_PICKED_UP_MYSTERYBERRY_FROM_HO_OH_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5991c, EVENT_PICKED_UP_REVIVAL_HERB_FROM_HO_OH_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5991e, EVENT_PICKED_UP_CHARCOAL_FROM_HO_OH_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59918, EVENT_PICKED_UP_GOLD_BERRY_FROM_HO_OH_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5991a, EVENT_PICKED_UP_MYSTERYBERRY_FROM_HO_OH_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5991c, EVENT_PICKED_UP_REVIVAL_HERB_FROM_HO_OH_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5991e, EVENT_PICKED_UP_CHARCOAL_FROM_HO_OH_ITEM_ROOM
--- a/maps/RuinsofAlphInnerChamber.asm
+++ b/maps/RuinsofAlphInnerChamber.asm
@@ -125,6 +125,6 @@
.PersonEvents:
db 3
- person_event SPRITE_FISHER, 7, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x58f7d, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS
- person_event SPRITE_TEACHER, 13, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, TeacherScript_0x58f80, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS
- person_event SPRITE_GRAMPS, 19, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrampsScript_0x58f83, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS
+ person_event SPRITE_FISHER, 7, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x58f7d, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS
+ person_event SPRITE_TEACHER, 13, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x58f80, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS
+ person_event SPRITE_GRAMPS, 19, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x58f83, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS
--- a/maps/RuinsofAlphKabutoChamber.asm
+++ b/maps/RuinsofAlphKabutoChamber.asm
@@ -284,5 +284,5 @@
.PersonEvents:
db 2
- person_event SPRITE_RECEPTIONIST, 5, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ReceptionistScript_0x58769, EVENT_RUINS_OF_ALPH_KABUTO_CHAMBER_RECEPTIONIST
- person_event SPRITE_SCIENTIST, 1, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x587a8, -1
+ person_event SPRITE_RECEPTIONIST, 5, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x58769, EVENT_RUINS_OF_ALPH_KABUTO_CHAMBER_RECEPTIONIST
+ person_event SPRITE_SCIENTIST, 1, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x587a8, -1
--- a/maps/RuinsofAlphKabutoItemRoom.asm
+++ b/maps/RuinsofAlphKabutoItemRoom.asm
@@ -47,7 +47,7 @@
.PersonEvents:
db 4
- person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a2, EVENT_PICKED_UP_BERRY_FROM_KABUTO_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a4, EVENT_PICKED_UP_PSNCUREBERRY_FROM_KABUTO_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a6, EVENT_PICKED_UP_HEAL_POWDER_FROM_KABUTO_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a8, EVENT_PICKED_UP_ENERGYPOWDER_FROM_KABUTO_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x599a2, EVENT_PICKED_UP_BERRY_FROM_KABUTO_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x599a4, EVENT_PICKED_UP_PSNCUREBERRY_FROM_KABUTO_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x599a6, EVENT_PICKED_UP_HEAL_POWDER_FROM_KABUTO_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x599a8, EVENT_PICKED_UP_ENERGYPOWDER_FROM_KABUTO_ITEM_ROOM
--- a/maps/RuinsofAlphOmanyteItemRoom.asm
+++ b/maps/RuinsofAlphOmanyteItemRoom.asm
@@ -47,7 +47,7 @@
.PersonEvents:
db 4
- person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a2c, EVENT_PICKED_UP_MYSTERYBERRY_FROM_OMANYTE_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a2e, EVENT_PICKED_UP_MYSTIC_WATER_FROM_OMANYTE_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a30, EVENT_PICKED_UP_STARDUST_FROM_OMANYTE_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a32, EVENT_PICKED_UP_STAR_PIECE_FROM_OMANYTE_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59a2c, EVENT_PICKED_UP_MYSTERYBERRY_FROM_OMANYTE_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59a2e, EVENT_PICKED_UP_MYSTIC_WATER_FROM_OMANYTE_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59a30, EVENT_PICKED_UP_STARDUST_FROM_OMANYTE_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59a32, EVENT_PICKED_UP_STAR_PIECE_FROM_OMANYTE_ITEM_ROOM
--- a/maps/RuinsofAlphOutside.asm
+++ b/maps/RuinsofAlphOutside.asm
@@ -311,8 +311,8 @@
.PersonEvents:
db 5
- person_event SPRITE_YOUNGSTER, 20, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 1, TrainerPsychicNathan, -1
- person_event SPRITE_SCIENTIST, 15, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ScientistScript_0x58043, EVENT_RUINS_OF_ALPH_OUTSIDE_SCIENTIST
- person_event SPRITE_FISHER, 17, 13, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x58061, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_FISHER
- person_event SPRITE_YOUNGSTER, 11, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, YoungsterScript_0x58076, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS
- person_event SPRITE_YOUNGSTER, 8, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5807e, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS
+ person_event SPRITE_YOUNGSTER, 20, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 1, TrainerPsychicNathan, -1
+ person_event SPRITE_SCIENTIST, 15, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ScientistScript_0x58043, EVENT_RUINS_OF_ALPH_OUTSIDE_SCIENTIST
+ person_event SPRITE_FISHER, 17, 13, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x58061, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_FISHER
+ person_event SPRITE_YOUNGSTER, 11, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x58076, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS
+ person_event SPRITE_YOUNGSTER, 8, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5807e, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS
--- a/maps/RuinsofAlphResearchCenter.asm
+++ b/maps/RuinsofAlphResearchCenter.asm
@@ -412,6 +412,6 @@
.PersonEvents:
db 3
- person_event SPRITE_SCIENTIST, 5, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x591e5, -1
- person_event SPRITE_SCIENTIST, 2, 5, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x59214, -1
- person_event SPRITE_SCIENTIST, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x591d1, EVENT_RUINS_OF_ALPH_RESEARCH_CENTER_SCIENTIST
+ person_event SPRITE_SCIENTIST, 5, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x591e5, -1
+ person_event SPRITE_SCIENTIST, 2, 5, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x59214, -1
+ person_event SPRITE_SCIENTIST, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x591d1, EVENT_RUINS_OF_ALPH_RESEARCH_CENTER_SCIENTIST
--- a/maps/SafariZoneWardensHome.asm
+++ b/maps/SafariZoneWardensHome.asm
@@ -94,4 +94,4 @@
.PersonEvents:
db 1
- person_event SPRITE_LASS, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, WardensGranddaughter, -1
+ person_event SPRITE_LASS, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, WardensGranddaughter, -1
--- a/maps/SaffronCity.asm
+++ b/maps/SaffronCity.asm
@@ -295,11 +295,11 @@
.PersonEvents:
db 8
- person_event SPRITE_LASS, 14, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, LassScript_0x19932a, -1
- person_event SPRITE_POKEFAN_M, 30, 19, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x19933e, -1
- person_event SPRITE_COOLTRAINER_M, 7, 32, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerMScript_0x199352, -1
- person_event SPRITE_COOLTRAINER_F, 24, 20, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerFScript_0x199355, -1
- person_event SPRITE_FISHER, 12, 27, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x199358, -1
- person_event SPRITE_YOUNGSTER, 19, 15, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x19936c, -1
- person_event SPRITE_YOUNGSTER, 22, 35, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x19936f, -1
- person_event SPRITE_LASS, 8, 19, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x199372, -1
+ person_event SPRITE_LASS, 14, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, LassScript_0x19932a, -1
+ person_event SPRITE_POKEFAN_M, 30, 19, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x19933e, -1
+ person_event SPRITE_COOLTRAINER_M, 7, 32, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x199352, -1
+ person_event SPRITE_COOLTRAINER_F, 24, 20, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x199355, -1
+ person_event SPRITE_FISHER, 12, 27, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x199358, -1
+ person_event SPRITE_YOUNGSTER, 19, 15, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x19936c, -1
+ person_event SPRITE_YOUNGSTER, 22, 35, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x19936f, -1
+ person_event SPRITE_LASS, 8, 19, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x199372, -1
--- a/maps/SaffronGym.asm
+++ b/maps/SaffronGym.asm
@@ -330,9 +330,9 @@
.PersonEvents:
db 6
- person_event SPRITE_SABRINA, 8, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SabrinaScript_0x189c2e, -1
- person_event SPRITE_GRANNY, 16, 17, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerMediumRebecca, -1
- person_event SPRITE_YOUNGSTER, 16, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicFranklin, -1
- person_event SPRITE_GRANNY, 4, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerMediumDoris, -1
- person_event SPRITE_YOUNGSTER, 4, 17, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPsychicJared, -1
- person_event SPRITE_GYM_GUY, 14, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SaffronGymGuyScript, -1
+ person_event SPRITE_SABRINA, 8, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SabrinaScript_0x189c2e, -1
+ person_event SPRITE_GRANNY, 16, 17, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerMediumRebecca, -1
+ person_event SPRITE_YOUNGSTER, 16, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPsychicFranklin, -1
+ person_event SPRITE_GRANNY, 4, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerMediumDoris, -1
+ person_event SPRITE_YOUNGSTER, 4, 17, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerPsychicJared, -1
+ person_event SPRITE_GYM_GUY, 14, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SaffronGymGuyScript, -1
--- a/maps/SaffronMart.asm
+++ b/maps/SaffronMart.asm
@@ -49,6 +49,6 @@
.PersonEvents:
db 3
- person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x18a3bf, -1
- person_event SPRITE_COOLTRAINER_M, 2, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CooltrainerMScript_0x18a3c6, -1
- person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x18a3c9, -1
+ person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x18a3bf, -1
+ person_event SPRITE_COOLTRAINER_M, 2, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x18a3c6, -1
+ person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x18a3c9, -1
--- a/maps/SaffronPokeCenter1F.asm
+++ b/maps/SaffronPokeCenter1F.asm
@@ -9,11 +9,11 @@
jumpstd pokecenternurse
TeacherScript_0x18a480:
- special Function10630f
- iftrue UnknownScript_0x18a489
+ special Mobile_DummyReturnFalse
+ iftrue .mobile
jumptextfaceplayer UnknownText_0x18a4a3
-UnknownScript_0x18a489:
+.mobile:
jumptextfaceplayer UnknownText_0x18a532
FisherScript_0x18a48c:
@@ -20,13 +20,13 @@
faceplayer
loadfont
checkevent EVENT_RETURNED_MACHINE_PART
- iftrue UnknownScript_0x18a49a
+ iftrue .SolvedKantoPowerCrisis
writetext UnknownText_0x18a5d3
closetext
loadmovesprites
end
-UnknownScript_0x18a49a:
+.SolvedKantoPowerCrisis:
writetext UnknownText_0x18a62e
closetext
loadmovesprites
@@ -123,7 +123,7 @@
.PersonEvents:
db 4
- person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x18a47d, -1
- person_event SPRITE_TEACHER, 2, 7, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x18a480, -1
- person_event SPRITE_FISHER, 6, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x18a48c, -1
- person_event SPRITE_YOUNGSTER, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x18a4a0, -1
+ person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x18a47d, -1
+ person_event SPRITE_TEACHER, 2, 7, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x18a480, -1
+ person_event SPRITE_FISHER, 6, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x18a48c, -1
+ person_event SPRITE_YOUNGSTER, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x18a4a0, -1
--- a/maps/SaffronTrainStation.asm
+++ b/maps/SaffronTrainStation.asm
@@ -231,7 +231,7 @@
.PersonEvents:
db 4
- person_event SPRITE_OFFICER, 9, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, OfficerScript_0x18a81e, -1
- person_event SPRITE_GYM_GUY, 14, 10, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, GymGuyScript_0x18a875, -1
- person_event SPRITE_TEACHER, 11, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x18a889, EVENT_SAFFRON_TRAIN_STATION_POPULATION
- person_event SPRITE_LASS, 10, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x18a88c, EVENT_SAFFRON_TRAIN_STATION_POPULATION
+ person_event SPRITE_OFFICER, 9, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OfficerScript_0x18a81e, -1
+ person_event SPRITE_GYM_GUY, 14, 10, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x18a875, -1
+ person_event SPRITE_TEACHER, 11, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x18a889, EVENT_SAFFRON_TRAIN_STATION_POPULATION
+ person_event SPRITE_LASS, 10, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x18a88c, EVENT_SAFFRON_TRAIN_STATION_POPULATION
--- a/maps/SeafoamGym.asm
+++ b/maps/SeafoamGym.asm
@@ -171,5 +171,5 @@
.PersonEvents:
db 2
- person_event SPRITE_BLAINE, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, BlaineScript_0x1ab4fb, -1
- person_event SPRITE_GYM_GUY, 5, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SeafoamGymGuyScript, EVENT_SEAFOAM_GYM_GYM_GUY
+ person_event SPRITE_BLAINE, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, BlaineScript_0x1ab4fb, -1
+ person_event SPRITE_GYM_GUY, 5, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SeafoamGymGuyScript, EVENT_SEAFOAM_GYM_GYM_GUY
--- a/maps/SilphCo1F.asm
+++ b/maps/SilphCo1F.asm
@@ -68,5 +68,5 @@
.PersonEvents:
db 2
- person_event SPRITE_RECEPTIONIST, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ReceptionistScript_0x18abe5, -1
- person_event SPRITE_OFFICER, 1, 13, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x18abe8, -1
+ person_event SPRITE_RECEPTIONIST, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x18abe5, -1
+ person_event SPRITE_OFFICER, 1, 13, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x18abe8, -1
--- a/maps/SilverCaveItemRooms.asm
+++ b/maps/SilverCaveItemRooms.asm
@@ -28,5 +28,5 @@
.PersonEvents:
db 2
- person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c65e, EVENT_SILVER_CAVE_ITEM_ROOMS_MAX_REVIVE
- person_event SPRITE_POKE_BALL, 11, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c660, EVENT_SILVER_CAVE_ITEM_ROOMS_FULL_RESTORE
+ person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c65e, EVENT_SILVER_CAVE_ITEM_ROOMS_MAX_REVIVE
+ person_event SPRITE_POKE_BALL, 11, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c660, EVENT_SILVER_CAVE_ITEM_ROOMS_FULL_RESTORE
--- a/maps/SilverCavePokeCenter1F.asm
+++ b/maps/SilverCavePokeCenter1F.asm
@@ -43,5 +43,5 @@
.PersonEvents:
db 2
- person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x1ae59a, -1
- person_event SPRITE_GRANNY, 5, 1, SPRITEMOVEDATA_STANDING_LEFT, 1, 2, -1, -1, 0, 0, 0, GrannyScript_0x1ae59d, -1
+ person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x1ae59a, -1
+ person_event SPRITE_GRANNY, 5, 1, SPRITEMOVEDATA_STANDING_LEFT, 1, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x1ae59d, -1
--- a/maps/SilverCaveRoom1.asm
+++ b/maps/SilverCaveRoom1.asm
@@ -44,7 +44,7 @@
.PersonEvents:
db 4
- person_event SPRITE_POKE_BALL, 9, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c554, EVENT_SILVER_CAVE_ROOM_1_MAX_ELIXER
- person_event SPRITE_POKE_BALL, 29, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c556, EVENT_SILVER_CAVE_ROOM_1_PROTEIN
- person_event SPRITE_POKE_BALL, 30, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c558, EVENT_SILVER_CAVE_ROOM_1_ESCAPE_ROPE
- person_event SPRITE_POKE_BALL, 18, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c55a, EVENT_SILVER_CAVE_ROOM_1_ULTRA_BALL
+ person_event SPRITE_POKE_BALL, 9, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c554, EVENT_SILVER_CAVE_ROOM_1_MAX_ELIXER
+ person_event SPRITE_POKE_BALL, 29, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c556, EVENT_SILVER_CAVE_ROOM_1_PROTEIN
+ person_event SPRITE_POKE_BALL, 30, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c558, EVENT_SILVER_CAVE_ROOM_1_ESCAPE_ROPE
+ person_event SPRITE_POKE_BALL, 18, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c55a, EVENT_SILVER_CAVE_ROOM_1_ULTRA_BALL
--- a/maps/SilverCaveRoom2.asm
+++ b/maps/SilverCaveRoom2.asm
@@ -38,6 +38,6 @@
.PersonEvents:
db 3
- person_event SPRITE_POKE_BALL, 10, 24, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c5b2, EVENT_SILVER_CAVE_ROOM_2_CALCIUM
- person_event SPRITE_POKE_BALL, 24, 22, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c5b4, EVENT_SILVER_CAVE_ROOM_2_ULTRA_BALL
- person_event SPRITE_POKE_BALL, 20, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c5b6, EVENT_SILVER_CAVE_ROOM_2_PP_UP
+ person_event SPRITE_POKE_BALL, 10, 24, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c5b2, EVENT_SILVER_CAVE_ROOM_2_CALCIUM
+ person_event SPRITE_POKE_BALL, 24, 22, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c5b4, EVENT_SILVER_CAVE_ROOM_2_ULTRA_BALL
+ person_event SPRITE_POKE_BALL, 20, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c5b6, EVENT_SILVER_CAVE_ROOM_2_PP_UP
--- a/maps/SilverCaveRoom3.asm
+++ b/maps/SilverCaveRoom3.asm
@@ -6,7 +6,7 @@
db 0
RedScript_0x18c603:
- special Functionc48f
+ special Special_RotatePalettesRightMusic
faceplayer
loadfont
writetext UnknownText_0x18c637
@@ -17,7 +17,7 @@
startbattle
reloadmapmusic
returnafterbattle
- special Functionc48f
+ special Special_RotatePalettesRightMusic
loadfont
writetext UnknownText_0x18c63f
closetext
@@ -63,4 +63,4 @@
.PersonEvents:
db 1
- person_event SPRITE_RED, 10, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, RedScript_0x18c603, EVENT_RED_IN_MT_SILVER
+ person_event SPRITE_RED, 10, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, RedScript_0x18c603, EVENT_RED_IN_MT_SILVER
--- a/maps/SlowpokeWellB1F.asm
+++ b/maps/SlowpokeWellB1F.asm
@@ -326,12 +326,12 @@
.PersonEvents:
db 9
- person_event SPRITE_ROCKET, 7, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM29, EVENT_SLOWPOKE_WELL_ROCKETS
- person_event SPRITE_ROCKET, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 1, TrainerGruntM1, EVENT_SLOWPOKE_WELL_ROCKETS
- person_event SPRITE_ROCKET, 6, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 2, 2, TrainerGruntM2, EVENT_SLOWPOKE_WELL_ROCKETS
- person_event SPRITE_ROCKET_GIRL, 4, 10, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerGruntF1, EVENT_SLOWPOKE_WELL_ROCKETS
- person_event SPRITE_SLOWPOKE, 4, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SlowpokeScript_0x5a681, EVENT_SLOWPOKE_WELL_SLOWPOKES
- person_event SPRITE_SLOWPOKE, 2, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SlowpokeScript_0x5a695, EVENT_SLOWPOKE_WELL_SLOWPOKES
- person_event SPRITE_KURT, 14, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, KurtScript_0x5a5d5, EVENT_SLOWPOKE_WELL_KURT
- person_event SPRITE_BOULDER, 2, 3, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, SlowpokeWellB1FBoulder, -1
- person_event SPRITE_POKE_BALL, 3, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a6a3, EVENT_SLOWPOKE_WELL_B1F_SUPER_POTION
+ person_event SPRITE_ROCKET, 7, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM29, EVENT_SLOWPOKE_WELL_ROCKETS
+ person_event SPRITE_ROCKET, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 1, TrainerGruntM1, EVENT_SLOWPOKE_WELL_ROCKETS
+ person_event SPRITE_ROCKET, 6, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerGruntM2, EVENT_SLOWPOKE_WELL_ROCKETS
+ person_event SPRITE_ROCKET_GIRL, 4, 10, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerGruntF1, EVENT_SLOWPOKE_WELL_ROCKETS
+ person_event SPRITE_SLOWPOKE, 4, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SlowpokeScript_0x5a681, EVENT_SLOWPOKE_WELL_SLOWPOKES
+ person_event SPRITE_SLOWPOKE, 2, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SlowpokeScript_0x5a695, EVENT_SLOWPOKE_WELL_SLOWPOKES
+ person_event SPRITE_KURT, 14, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, KurtScript_0x5a5d5, EVENT_SLOWPOKE_WELL_KURT
+ person_event SPRITE_BOULDER, 2, 3, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SlowpokeWellB1FBoulder, -1
+ person_event SPRITE_POKE_BALL, 3, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5a6a3, EVENT_SLOWPOKE_WELL_B1F_SUPER_POTION
--- a/maps/SlowpokeWellB2F.asm
+++ b/maps/SlowpokeWellB2F.asm
@@ -73,5 +73,5 @@
.PersonEvents:
db 2
- person_event SPRITE_GYM_GUY, 4, 5, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, 0, 1, GymGuyScript_0x5ad0b, -1
- person_event SPRITE_POKE_BALL, 5, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5ad28, EVENT_SLOWPOKE_WELL_B2F_TM_RAIN_DANCE
+ person_event SPRITE_GYM_GUY, 4, 5, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 1, GymGuyScript_0x5ad0b, -1
+ person_event SPRITE_POKE_BALL, 5, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5ad28, EVENT_SLOWPOKE_WELL_B2F_TM_RAIN_DANCE
--- a/maps/SoulHouse.asm
+++ b/maps/SoulHouse.asm
@@ -83,7 +83,7 @@
.PersonEvents:
db 4
- person_event SPRITE_GRAMPS, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrampsScript_0x7ec47, -1
- person_event SPRITE_TEACHER, 3, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x7ec4a, -1
- person_event SPRITE_LASS, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LassScript_0x7ec4d, -1
- person_event SPRITE_GRANNY, 3, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrannyScript_0x7ec50, -1
+ person_event SPRITE_GRAMPS, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GrampsScript_0x7ec47, -1
+ person_event SPRITE_TEACHER, 3, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7ec4a, -1
+ person_event SPRITE_LASS, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, LassScript_0x7ec4d, -1
+ person_event SPRITE_GRANNY, 3, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GrannyScript_0x7ec50, -1
--- a/maps/SproutTower1F.asm
+++ b/maps/SproutTower1F.asm
@@ -116,9 +116,9 @@
.PersonEvents:
db 6
- person_event SPRITE_SAGE, 4, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SageScript_0x1844fe, -1
- person_event SPRITE_SAGE, 7, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SageScript_0x184501, -1
- person_event SPRITE_GRANNY, 12, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x184504, -1
- person_event SPRITE_TEACHER, 9, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x184507, -1
- person_event SPRITE_SAGE, 5, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSageChow, -1
- person_event SPRITE_POKE_BALL, 7, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18451e, EVENT_SPROUT_TOWER1F_PARLYZ_HEAL
+ person_event SPRITE_SAGE, 4, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SageScript_0x1844fe, -1
+ person_event SPRITE_SAGE, 7, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SageScript_0x184501, -1
+ person_event SPRITE_GRANNY, 12, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x184504, -1
+ person_event SPRITE_TEACHER, 9, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x184507, -1
+ person_event SPRITE_SAGE, 5, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerSageChow, -1
+ person_event SPRITE_POKE_BALL, 7, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18451e, EVENT_SPROUT_TOWER1F_PARLYZ_HEAL
--- a/maps/SproutTower2F.asm
+++ b/maps/SproutTower2F.asm
@@ -99,6 +99,6 @@
.PersonEvents:
db 3
- person_event SPRITE_SAGE, 3, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSageNico, -1
- person_event SPRITE_SAGE, 14, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 5, TrainerSageEdmond, -1
- person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1847a7, EVENT_SPROUT_TOWER2F_X_ACCURACY
+ person_event SPRITE_SAGE, 3, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerSageNico, -1
+ person_event SPRITE_SAGE, 14, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 5, TrainerSageEdmond, -1
+ person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1847a7, EVENT_SPROUT_TOWER2F_X_ACCURACY
--- a/maps/SproutTower3F.asm
+++ b/maps/SproutTower3F.asm
@@ -18,7 +18,7 @@
UnknownScript_0x184947:
spriteface PLAYER, UP
showemote EMOTE_SHOCK, PLAYER, 15
- special Functionc48f
+ special Special_RotatePalettesRightMusic
playsound SFX_TACKLE
playsound SFX_ELEVATOR
earthquake 79
@@ -345,10 +345,10 @@
.PersonEvents:
db 7
- person_event SPRITE_SAGE, 13, 8, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSageJin, -1
- person_event SPRITE_SAGE, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerSageTroy, -1
- person_event SPRITE_SAGE, 2, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SageLiScript, -1
- person_event SPRITE_SAGE, 11, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSageNeal, -1
- person_event SPRITE_POKE_BALL, 14, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x184a19, EVENT_SPROUT_TOWER_3F_POTION
- person_event SPRITE_POKE_BALL, 1, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x184a1b, EVENT_SPROUT_TOWER_3F_ESCAPE_ROPE
- person_event SPRITE_SILVER, 4, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_SPROUT_TOWER
+ person_event SPRITE_SAGE, 13, 8, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSageJin, -1
+ person_event SPRITE_SAGE, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerSageTroy, -1
+ person_event SPRITE_SAGE, 2, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SageLiScript, -1
+ person_event SPRITE_SAGE, 11, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSageNeal, -1
+ person_event SPRITE_POKE_BALL, 14, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x184a19, EVENT_SPROUT_TOWER_3F_POTION
+ person_event SPRITE_POKE_BALL, 1, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x184a1b, EVENT_SPROUT_TOWER_3F_ESCAPE_ROPE
+ person_event SPRITE_SILVER, 4, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_RIVAL_SPROUT_TOWER
--- a/maps/TeamRocketBaseB1F.asm
+++ b/maps/TeamRocketBaseB1F.asm
@@ -786,9 +786,9 @@
.PersonEvents:
db 6
- person_event SPRITE_ROCKET, 0, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_SECURITY_GRUNTS
- person_event SPRITE_ROCKET, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM16, EVENT_TEAM_ROCKET_BASE_POPULATION
- person_event SPRITE_SCIENTIST, 12, 18, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerScientistJed, EVENT_TEAM_ROCKET_BASE_POPULATION
- person_event SPRITE_POKE_BALL, 6, 27, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6cac4, EVENT_TEAM_ROCKET_BASE_B1F_HYPER_POTION
- person_event SPRITE_POKE_BALL, 15, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6cac6, EVENT_TEAM_ROCKET_BASE_B1F_NUGGET
- person_event SPRITE_POKE_BALL, 12, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6cac8, EVENT_TEAM_ROCKET_BASE_B1F_GUARD_SPEC
+ person_event SPRITE_ROCKET, 0, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_SECURITY_GRUNTS
+ person_event SPRITE_ROCKET, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM16, EVENT_TEAM_ROCKET_BASE_POPULATION
+ person_event SPRITE_SCIENTIST, 12, 18, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerScientistJed, EVENT_TEAM_ROCKET_BASE_POPULATION
+ person_event SPRITE_POKE_BALL, 6, 27, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6cac4, EVENT_TEAM_ROCKET_BASE_B1F_HYPER_POTION
+ person_event SPRITE_POKE_BALL, 15, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6cac6, EVENT_TEAM_ROCKET_BASE_B1F_NUGGET
+ person_event SPRITE_POKE_BALL, 12, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6cac8, EVENT_TEAM_ROCKET_BASE_B1F_GUARD_SPEC
--- a/maps/TeamRocketBaseB2F.asm
+++ b/maps/TeamRocketBaseB2F.asm
@@ -952,17 +952,17 @@
.PersonEvents:
db 14
- person_event SPRITE_ROCKET, 16, 20, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_GRUNT_WITH_EXECUTIVE
- person_event SPRITE_ROCKET_GIRL, 16, 20, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_EXECUTIVE
- person_event SPRITE_LANCE, 13, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_LANCE
- person_event SPRITE_DRAGON, 13, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_DRAGONITE
- person_event SPRITE_VOLTORB, 5, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, VoltorbScript_0x6d101, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1
- person_event SPRITE_VOLTORB, 7, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, VoltorbScript_0x6d12c, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2
- person_event SPRITE_VOLTORB, 9, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, VoltorbScript_0x6d157, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3
- person_event SPRITE_VOLTORB, 5, 22, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1
- person_event SPRITE_VOLTORB, 7, 22, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2
- person_event SPRITE_VOLTORB, 9, 22, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3
- person_event SPRITE_ROCKET, 13, 25, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM17, EVENT_TEAM_ROCKET_BASE_POPULATION
- person_event SPRITE_ROCKET, 1, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, 2, 1, TrainerGruntM18, EVENT_TEAM_ROCKET_BASE_POPULATION
- person_event SPRITE_ROCKET, 14, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 2, 4, TrainerGruntM19, EVENT_TEAM_ROCKET_BASE_POPULATION
- person_event SPRITE_POKE_BALL, 10, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6d20d, EVENT_TEAM_ROCKET_BASE_B2F_TM_THIEF
+ person_event SPRITE_ROCKET, 16, 20, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_GRUNT_WITH_EXECUTIVE
+ person_event SPRITE_ROCKET_GIRL, 16, 20, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_EXECUTIVE
+ person_event SPRITE_LANCE, 13, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_LANCE
+ person_event SPRITE_DRAGON, 13, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_DRAGONITE
+ person_event SPRITE_VOLTORB, 5, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VoltorbScript_0x6d101, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1
+ person_event SPRITE_VOLTORB, 7, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VoltorbScript_0x6d12c, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2
+ person_event SPRITE_VOLTORB, 9, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VoltorbScript_0x6d157, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3
+ person_event SPRITE_VOLTORB, 5, 22, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1
+ person_event SPRITE_VOLTORB, 7, 22, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2
+ person_event SPRITE_VOLTORB, 9, 22, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3
+ person_event SPRITE_ROCKET, 13, 25, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM17, EVENT_TEAM_ROCKET_BASE_POPULATION
+ person_event SPRITE_ROCKET, 1, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 1, TrainerGruntM18, EVENT_TEAM_ROCKET_BASE_POPULATION
+ person_event SPRITE_ROCKET, 14, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 4, TrainerGruntM19, EVENT_TEAM_ROCKET_BASE_POPULATION
+ person_event SPRITE_POKE_BALL, 10, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6d20d, EVENT_TEAM_ROCKET_BASE_B2F_TM_THIEF
--- a/maps/TeamRocketBaseB3F.asm
+++ b/maps/TeamRocketBaseB3F.asm
@@ -55,7 +55,7 @@
UnknownScript_0x6e019:
spriteface PLAYER, LEFT
showemote EMOTE_SHOCK, PLAYER, 15
- special Functionc48f
+ special Special_RotatePalettesRightMusic
appear $a
applymovement $a, MovementData_0x6e164
spriteface PLAYER, LEFT
@@ -587,17 +587,17 @@
.PersonEvents:
db 14
- person_event SPRITE_LANCE, 14, 25, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, LanceScript_0x6dffc, EVENT_TEAM_ROCKET_BASE_B3F_LANCE_PASSWORDS
- person_event SPRITE_ROCKET, 3, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B3F_EXECUTIVE
- person_event SPRITE_MOLTRES, 2, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, MoltresScript_0x6e091, EVENT_TEAM_ROCKET_BASE_POPULATION
- person_event SPRITE_ROCKET_GIRL, 7, 21, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 0, TrainerGruntF5, EVENT_TEAM_ROCKET_BASE_POPULATION
- person_event SPRITE_ROCKET, 14, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM28, EVENT_TEAM_ROCKET_BASE_POPULATION
- person_event SPRITE_SCIENTIST, 11, 23, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 0, TrainerScientistRoss, EVENT_TEAM_ROCKET_BASE_POPULATION
- person_event SPRITE_SCIENTIST, 15, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerScientistMitch, EVENT_TEAM_ROCKET_BASE_POPULATION
- person_event SPRITE_ROCKET, 14, 24, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x6e048, EVENT_TEAM_ROCKET_BASE_POPULATION
- person_event SPRITE_SILVER, 5, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_TEAM_ROCKET_BASE
- person_event SPRITE_POKE_BALL, 12, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e120, EVENT_TEAM_ROCKET_BASE_B3F_PROTEIN
- person_event SPRITE_POKE_BALL, 12, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e122, EVENT_TEAM_ROCKET_BASE_B3F_X_SPECIAL
- person_event SPRITE_POKE_BALL, 9, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e124, EVENT_TEAM_ROCKET_BASE_B3F_FULL_HEAL
- person_event SPRITE_POKE_BALL, 2, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e126, EVENT_TEAM_ROCKET_BASE_B3F_ICE_HEAL
- person_event SPRITE_POKE_BALL, 10, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e128, EVENT_TEAM_ROCKET_BASE_B3F_ULTRA_BALL
+ person_event SPRITE_LANCE, 14, 25, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LanceScript_0x6dffc, EVENT_TEAM_ROCKET_BASE_B3F_LANCE_PASSWORDS
+ person_event SPRITE_ROCKET, 3, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B3F_EXECUTIVE
+ person_event SPRITE_MOLTRES, 2, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, MoltresScript_0x6e091, EVENT_TEAM_ROCKET_BASE_POPULATION
+ person_event SPRITE_ROCKET_GIRL, 7, 21, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 0, TrainerGruntF5, EVENT_TEAM_ROCKET_BASE_POPULATION
+ person_event SPRITE_ROCKET, 14, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM28, EVENT_TEAM_ROCKET_BASE_POPULATION
+ person_event SPRITE_SCIENTIST, 11, 23, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 0, TrainerScientistRoss, EVENT_TEAM_ROCKET_BASE_POPULATION
+ person_event SPRITE_SCIENTIST, 15, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerScientistMitch, EVENT_TEAM_ROCKET_BASE_POPULATION
+ person_event SPRITE_ROCKET, 14, 24, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x6e048, EVENT_TEAM_ROCKET_BASE_POPULATION
+ person_event SPRITE_SILVER, 5, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_RIVAL_TEAM_ROCKET_BASE
+ person_event SPRITE_POKE_BALL, 12, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6e120, EVENT_TEAM_ROCKET_BASE_B3F_PROTEIN
+ person_event SPRITE_POKE_BALL, 12, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6e122, EVENT_TEAM_ROCKET_BASE_B3F_X_SPECIAL
+ person_event SPRITE_POKE_BALL, 9, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6e124, EVENT_TEAM_ROCKET_BASE_B3F_FULL_HEAL
+ person_event SPRITE_POKE_BALL, 2, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6e126, EVENT_TEAM_ROCKET_BASE_B3F_ICE_HEAL
+ person_event SPRITE_POKE_BALL, 10, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6e128, EVENT_TEAM_ROCKET_BASE_B3F_ULTRA_BALL
--- a/maps/TimeCapsule.asm
+++ b/maps/TimeCapsule.asm
@@ -73,5 +73,5 @@
.PersonEvents:
db 2
- person_event SPRITE_CHRIS, 4, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ChrisScript_0x19351a, EVENT_GAVE_KURT_APRICORNS
- person_event SPRITE_CHRIS, 4, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ChrisScript_0x19351a, EVENT_RECEIVED_BALLS_FROM_KURT
+ person_event SPRITE_CHRIS, 4, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ChrisScript_0x19351a, EVENT_GAVE_KURT_APRICORNS
+ person_event SPRITE_CHRIS, 4, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ChrisScript_0x19351a, EVENT_RECEIVED_BALLS_FROM_KURT
--- a/maps/TinTower1F.asm
+++ b/maps/TinTower1F.asm
@@ -158,7 +158,7 @@
playsound SFX_EXIT_BUILDING
disappear $5
waitbutton
- special Functionc48f
+ special Special_RotatePalettesRightMusic
pause 20
playmapmusic
end
@@ -534,13 +534,13 @@
.PersonEvents:
db 10
- person_event SPRITE_SUICUNE, 9, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_TIN_TOWER_1F_SUICUNE
- person_event SPRITE_RAIKOU, 9, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, ObjectEvent, EVENT_TIN_TOWER_1F_RAIKOU
- person_event SPRITE_ENTEI, 9, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, EVENT_TIN_TOWER_1F_ENTEI
- person_event SPRITE_SUPER_NERD, 3, 8, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x1851c8, EVENT_TIN_TOWER_1F_EUSINE
- person_event SPRITE_SAGE, 9, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185173, EVENT_TIN_TOWER_1F_WISE_TRIO_1
- person_event SPRITE_SAGE, 11, 11, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185176, EVENT_TIN_TOWER_1F_WISE_TRIO_1
- person_event SPRITE_SAGE, 6, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185179, EVENT_TIN_TOWER_1F_WISE_TRIO_1
- person_event SPRITE_SAGE, 2, 4, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, SageScript_0x18517c, EVENT_TIN_TOWER_1F_WISE_TRIO_2
- person_event SPRITE_SAGE, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185188, EVENT_TIN_TOWER_1F_WISE_TRIO_2
- person_event SPRITE_SAGE, 2, 14, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, SageScript_0x1851bc, EVENT_TIN_TOWER_1F_WISE_TRIO_2
+ person_event SPRITE_SUICUNE, 9, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TIN_TOWER_1F_SUICUNE
+ person_event SPRITE_RAIKOU, 9, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TIN_TOWER_1F_RAIKOU
+ person_event SPRITE_ENTEI, 9, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TIN_TOWER_1F_ENTEI
+ person_event SPRITE_SUPER_NERD, 3, 8, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x1851c8, EVENT_TIN_TOWER_1F_EUSINE
+ person_event SPRITE_SAGE, 9, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x185173, EVENT_TIN_TOWER_1F_WISE_TRIO_1
+ person_event SPRITE_SAGE, 11, 11, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x185176, EVENT_TIN_TOWER_1F_WISE_TRIO_1
+ person_event SPRITE_SAGE, 6, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x185179, EVENT_TIN_TOWER_1F_WISE_TRIO_1
+ person_event SPRITE_SAGE, 2, 4, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x18517c, EVENT_TIN_TOWER_1F_WISE_TRIO_2
+ person_event SPRITE_SAGE, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x185188, EVENT_TIN_TOWER_1F_WISE_TRIO_2
+ person_event SPRITE_SAGE, 2, 14, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x1851bc, EVENT_TIN_TOWER_1F_WISE_TRIO_2
--- a/maps/TinTower3F.asm
+++ b/maps/TinTower3F.asm
@@ -25,4 +25,4 @@
.PersonEvents:
db 1
- person_event SPRITE_POKE_BALL, 14, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a37, EVENT_TIN_TOWER_3F_FULL_HEAL
+ person_event SPRITE_POKE_BALL, 14, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185a37, EVENT_TIN_TOWER_3F_FULL_HEAL
--- a/maps/TinTower4F.asm
+++ b/maps/TinTower4F.asm
@@ -38,6 +38,6 @@
.PersonEvents:
db 3
- person_event SPRITE_POKE_BALL, 10, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a58, EVENT_TIN_TOWER_4F_ULTRA_BALL
- person_event SPRITE_POKE_BALL, 14, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a5a, EVENT_TIN_TOWER_4F_PP_UP
- person_event SPRITE_POKE_BALL, 12, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a5c, EVENT_TIN_TOWER_4F_ESCAPE_ROPE
+ person_event SPRITE_POKE_BALL, 10, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185a58, EVENT_TIN_TOWER_4F_ULTRA_BALL
+ person_event SPRITE_POKE_BALL, 14, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185a5a, EVENT_TIN_TOWER_4F_PP_UP
+ person_event SPRITE_POKE_BALL, 12, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185a5c, EVENT_TIN_TOWER_4F_ESCAPE_ROPE
--- a/maps/TinTower5F.asm
+++ b/maps/TinTower5F.asm
@@ -37,4 +37,4 @@
.PersonEvents:
db 1
- person_event SPRITE_POKE_BALL, 9, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185aa9, EVENT_TIN_TOWER_5F_RARE_CANDY
+ person_event SPRITE_POKE_BALL, 9, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185aa9, EVENT_TIN_TOWER_5F_RARE_CANDY
--- a/maps/TinTower6F.asm
+++ b/maps/TinTower6F.asm
@@ -25,4 +25,4 @@
.PersonEvents:
db 1
- person_event SPRITE_POKE_BALL, 8, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185ae4, EVENT_TIN_TOWER_6F_MAX_POTION
+ person_event SPRITE_POKE_BALL, 8, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185ae4, EVENT_TIN_TOWER_6F_MAX_POTION
--- a/maps/TinTower7F.asm
+++ b/maps/TinTower7F.asm
@@ -28,4 +28,4 @@
.PersonEvents:
db 1
- person_event SPRITE_POKE_BALL, 1, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b05, EVENT_TIN_TOWER_7F_MAX_REVIVE
+ person_event SPRITE_POKE_BALL, 1, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185b05, EVENT_TIN_TOWER_7F_MAX_REVIVE
--- a/maps/TinTower8F.asm
+++ b/maps/TinTower8F.asm
@@ -35,6 +35,6 @@
.PersonEvents:
db 3
- person_event SPRITE_POKE_BALL, 13, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b35, EVENT_TIN_TOWER_8F_NUGGET
- person_event SPRITE_POKE_BALL, 6, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b37, EVENT_TIN_TOWER_8F_MAX_ELIXER
- person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b39, EVENT_TIN_TOWER_8F_FULL_RESTORE
+ person_event SPRITE_POKE_BALL, 13, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185b35, EVENT_TIN_TOWER_8F_NUGGET
+ person_event SPRITE_POKE_BALL, 6, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185b37, EVENT_TIN_TOWER_8F_MAX_ELIXER
+ person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185b39, EVENT_TIN_TOWER_8F_FULL_RESTORE
--- a/maps/TinTower9F.asm
+++ b/maps/TinTower9F.asm
@@ -38,4 +38,4 @@
.PersonEvents:
db 1
- person_event SPRITE_POKE_BALL, 1, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b88, EVENT_TIN_TOWER_9F_HP_UP
+ person_event SPRITE_POKE_BALL, 1, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185b88, EVENT_TIN_TOWER_9F_HP_UP
--- a/maps/TinTowerRoof.asm
+++ b/maps/TinTowerRoof.asm
@@ -60,4 +60,4 @@
.PersonEvents:
db 1
- person_event SPRITE_HO_OH, 5, 9, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, HoOhScript_0x77244, EVENT_TIN_TOWER_ROOF_HO_OH
+ person_event SPRITE_HO_OH, 5, 9, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, HoOhScript_0x77244, EVENT_TIN_TOWER_ROOF_HO_OH
--- a/maps/TohjoFalls.asm
+++ b/maps/TohjoFalls.asm
@@ -25,4 +25,4 @@
.PersonEvents:
db 1
- person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18db02, EVENT_TOHJO_FALLS_MOON_STONE
+ person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18db02, EVENT_TOHJO_FALLS_MOON_STONE
--- a/maps/TradeCenter.asm
+++ b/maps/TradeCenter.asm
@@ -73,5 +73,5 @@
.PersonEvents:
db 2
- person_event SPRITE_CHRIS, 4, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ChrisScript_0x193499, EVENT_GAVE_KURT_APRICORNS
- person_event SPRITE_CHRIS, 4, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ChrisScript_0x193499, EVENT_RECEIVED_BALLS_FROM_KURT
+ person_event SPRITE_CHRIS, 4, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ChrisScript_0x193499, EVENT_GAVE_KURT_APRICORNS
+ person_event SPRITE_CHRIS, 4, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ChrisScript_0x193499, EVENT_RECEIVED_BALLS_FROM_KURT
--- a/maps/TrainerHouse1F.asm
+++ b/maps/TrainerHouse1F.asm
@@ -151,8 +151,8 @@
.PersonEvents:
db 5
- person_event SPRITE_RECEPTIONIST, 11, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ReceptionistScript_0x9af67, -1
- person_event SPRITE_COOLTRAINER_M, 11, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x9af6a, -1
- person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerFScript_0x9af6d, -1
- person_event SPRITE_YOUNGSTER, 8, 4, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x9af70, -1
- person_event SPRITE_GENTLEMAN, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x9af73, -1
+ person_event SPRITE_RECEPTIONIST, 11, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x9af67, -1
+ person_event SPRITE_COOLTRAINER_M, 11, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x9af6a, -1
+ person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x9af6d, -1
+ person_event SPRITE_YOUNGSTER, 8, 4, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x9af70, -1
+ person_event SPRITE_GENTLEMAN, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x9af73, -1
--- a/maps/TrainerHouseB1F.asm
+++ b/maps/TrainerHouseB1F.asm
@@ -184,5 +184,5 @@
.PersonEvents:
db 2
- person_event SPRITE_RECEPTIONIST, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ObjectEvent, -1
- person_event SPRITE_CHRIS, 11, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, -1
+ person_event SPRITE_RECEPTIONIST, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ObjectEvent, -1
+ person_event SPRITE_CHRIS, 11, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ObjectEvent, -1
--- a/maps/UndergroundPathSwitchRoomEntrances.asm
+++ b/maps/UndergroundPathSwitchRoomEntrances.asm
@@ -80,7 +80,7 @@
UnknownScript_0x7ca80:
spriteface PLAYER, RIGHT
showemote EMOTE_SHOCK, PLAYER, 15
- special Functionc48f
+ special Special_RotatePalettesRightMusic
pause 15
playsound SFX_EXIT_BUILDING
appear $c
@@ -99,7 +99,7 @@
UnknownScript_0x7caaa:
spriteface PLAYER, RIGHT
showemote EMOTE_SHOCK, PLAYER, 15
- special Functionc48f
+ special Special_RotatePalettesRightMusic
pause 15
playsound SFX_EXIT_BUILDING
appear $c
@@ -923,14 +923,14 @@
.PersonEvents:
db 11
- person_event SPRITE_PHARMACIST, 12, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerBurglarDuncan, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_PHARMACIST, 8, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerBurglarEddie, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 2, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM13, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 2, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM11, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM25, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET_GIRL, 12, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerGruntF3, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_TEACHER, 27, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x7ca7d, -1
- person_event SPRITE_SUPER_NERD, 27, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, SuperNerdScript_0x7ca7a, -1
- person_event SPRITE_POKE_BALL, 12, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ce7d, EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_SMOKE_BALL
- person_event SPRITE_POKE_BALL, 9, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ce7f, EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_FULL_HEAL
- person_event SPRITE_SILVER, 3, 23, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_UNDERGROUND_PATH
+ person_event SPRITE_PHARMACIST, 12, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 2, TrainerBurglarDuncan, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_PHARMACIST, 8, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 2, TrainerBurglarEddie, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 2, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM13, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 2, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM11, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM25, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET_GIRL, 12, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerGruntF3, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_TEACHER, 27, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7ca7d, -1
+ person_event SPRITE_SUPER_NERD, 27, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x7ca7a, -1
+ person_event SPRITE_POKE_BALL, 12, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7ce7d, EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_SMOKE_BALL
+ person_event SPRITE_POKE_BALL, 9, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7ce7f, EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_FULL_HEAL
+ person_event SPRITE_SILVER, 3, 23, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_RIVAL_UNDERGROUND_PATH
--- a/maps/UndergroundWarehouse.asm
+++ b/maps/UndergroundWarehouse.asm
@@ -222,10 +222,10 @@
.PersonEvents:
db 7
- person_event SPRITE_ROCKET, 8, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM24, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 15, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM14, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 3, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 2, 4, TrainerGruntM15, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_GENTLEMAN, 8, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x7d9bf, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_POKE_BALL, 15, 18, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d9e4, EVENT_UNDERGROUND_WAREHOUSE_MAX_ETHER
- person_event SPRITE_POKE_BALL, 9, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d9e6, EVENT_UNDERGROUND_WAREHOUSE_TM_SLEEP_TALK
- person_event SPRITE_POKE_BALL, 1, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d9e8, EVENT_UNDERGROUND_WAREHOUSE_ULTRA_BALL
+ person_event SPRITE_ROCKET, 8, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM24, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 15, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM14, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 3, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 4, TrainerGruntM15, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_GENTLEMAN, 8, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x7d9bf, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_POKE_BALL, 15, 18, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7d9e4, EVENT_UNDERGROUND_WAREHOUSE_MAX_ETHER
+ person_event SPRITE_POKE_BALL, 9, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7d9e6, EVENT_UNDERGROUND_WAREHOUSE_TM_SLEEP_TALK
+ person_event SPRITE_POKE_BALL, 1, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7d9e8, EVENT_UNDERGROUND_WAREHOUSE_ULTRA_BALL
--- a/maps/UnionCave1F.asm
+++ b/maps/UnionCave1F.asm
@@ -207,12 +207,12 @@
.PersonEvents:
db 9
- person_event SPRITE_POKEFAN_M, 6, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerDaniel, -1
- person_event SPRITE_SUPER_NERD, 21, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacLarry, -1
- person_event SPRITE_POKEFAN_M, 8, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerHikerRussell, -1
- person_event SPRITE_FISHER, 27, 15, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerFirebreatherRay, -1
- person_event SPRITE_FISHER, 19, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerFirebreatherBill, -1
- person_event SPRITE_POKE_BALL, 21, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c00, EVENT_UNION_CAVE_1F_GREAT_BALL
- person_event SPRITE_POKE_BALL, 2, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c02, EVENT_UNION_CAVE_1F_X_ATTACK
- person_event SPRITE_POKE_BALL, 17, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c04, EVENT_UNION_CAVE_1F_POTION
- person_event SPRITE_POKE_BALL, 33, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c06, EVENT_UNION_CAVE_1F_AWAKENING
+ person_event SPRITE_POKEFAN_M, 6, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerHikerDaniel, -1
+ person_event SPRITE_SUPER_NERD, 21, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPokemaniacLarry, -1
+ person_event SPRITE_POKEFAN_M, 8, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 1, TrainerHikerRussell, -1
+ person_event SPRITE_FISHER, 27, 15, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerFirebreatherRay, -1
+ person_event SPRITE_FISHER, 19, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerFirebreatherBill, -1
+ person_event SPRITE_POKE_BALL, 21, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59c00, EVENT_UNION_CAVE_1F_GREAT_BALL
+ person_event SPRITE_POKE_BALL, 2, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59c02, EVENT_UNION_CAVE_1F_X_ATTACK
+ person_event SPRITE_POKE_BALL, 17, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59c04, EVENT_UNION_CAVE_1F_POTION
+ person_event SPRITE_POKE_BALL, 33, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59c06, EVENT_UNION_CAVE_1F_AWAKENING
--- a/maps/UnionCaveB1F.asm
+++ b/maps/UnionCaveB1F.asm
@@ -163,10 +163,10 @@
.PersonEvents:
db 7
- person_event SPRITE_POKEFAN_M, 4, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerPhillip, -1
- person_event SPRITE_POKEFAN_M, 7, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerLeonard, -1
- person_event SPRITE_SUPER_NERD, 32, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacAndrew, -1
- person_event SPRITE_SUPER_NERD, 30, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacCalvin, -1
- person_event SPRITE_POKE_BALL, 16, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a016, EVENT_UNION_CAVE_B1F_TM_SWIFT
- person_event SPRITE_BOULDER, 10, 7, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, UnionCaveB1FBoulder, -1
- person_event SPRITE_POKE_BALL, 23, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a018, EVENT_UNION_CAVE_B1F_X_DEFEND
+ person_event SPRITE_POKEFAN_M, 4, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerHikerPhillip, -1
+ person_event SPRITE_POKEFAN_M, 7, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerHikerLeonard, -1
+ person_event SPRITE_SUPER_NERD, 32, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPokemaniacAndrew, -1
+ person_event SPRITE_SUPER_NERD, 30, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPokemaniacCalvin, -1
+ person_event SPRITE_POKE_BALL, 16, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5a016, EVENT_UNION_CAVE_B1F_TM_SWIFT
+ person_event SPRITE_BOULDER, 10, 7, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, UnionCaveB1FBoulder, -1
+ person_event SPRITE_POKE_BALL, 23, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5a018, EVENT_UNION_CAVE_B1F_X_DEFEND
--- a/maps/UnionCaveB2F.asm
+++ b/maps/UnionCaveB2F.asm
@@ -152,9 +152,9 @@
.PersonEvents:
db 6
- person_event SPRITE_ROCKER, 19, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainermNick, -1
- person_event SPRITE_COOLTRAINER_F, 13, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainerfGwen, -1
- person_event SPRITE_COOLTRAINER_F, 30, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfEmma, -1
- person_event SPRITE_POKE_BALL, 2, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a36a, EVENT_UNION_CAVE_B2F_ELIXER
- person_event SPRITE_POKE_BALL, 19, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a36c, EVENT_UNION_CAVE_B2F_HYPER_POTION
- person_event SPRITE_SURF, 31, 11, SPRITEMOVEDATA_LAPRAS, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SurfScript_0x5a31f, EVENT_UNION_CAVE_B2F_LAPRAS
+ person_event SPRITE_ROCKER, 19, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerCooltrainermNick, -1
+ person_event SPRITE_COOLTRAINER_F, 13, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerCooltrainerfGwen, -1
+ person_event SPRITE_COOLTRAINER_F, 30, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerCooltrainerfEmma, -1
+ person_event SPRITE_POKE_BALL, 2, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5a36a, EVENT_UNION_CAVE_B2F_ELIXER
+ person_event SPRITE_POKE_BALL, 19, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5a36c, EVENT_UNION_CAVE_B2F_HYPER_POTION
+ person_event SPRITE_SURF, 31, 11, SPRITEMOVEDATA_LAPRAS, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SurfScript_0x5a31f, EVENT_UNION_CAVE_B2F_LAPRAS
--- a/maps/VermilionCity.asm
+++ b/maps/VermilionCity.asm
@@ -294,9 +294,9 @@
.PersonEvents:
db 6
- person_event SPRITE_TEACHER, 9, 18, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, TeacherScript_0x1aa983, -1
- person_event SPRITE_GRAMPS, 6, 23, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x1aa986, -1
- person_event SPRITE_MACHOP, 7, 26, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, VermilionMachop, -1
- person_event SPRITE_SUPER_NERD, 16, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x1aa99b, -1
- person_event SPRITE_BIG_SNORLAX, 8, 34, SPRITEMOVEDATA_SNORLAX, 0, 0, -1, -1, 0, 0, 0, VermilionSnorlax, EVENT_VERMILION_CITY_SNORLAX
- person_event SPRITE_POKEFAN_M, 12, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, VermilionGymBadgeGuy, -1
+ person_event SPRITE_TEACHER, 9, 18, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1aa983, -1
+ person_event SPRITE_GRAMPS, 6, 23, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1aa986, -1
+ person_event SPRITE_MACHOP, 7, 26, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, VermilionMachop, -1
+ person_event SPRITE_SUPER_NERD, 16, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x1aa99b, -1
+ person_event SPRITE_BIG_SNORLAX, 8, 34, SPRITEMOVEDATA_SNORLAX, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VermilionSnorlax, EVENT_VERMILION_CITY_SNORLAX
+ person_event SPRITE_POKEFAN_M, 12, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, VermilionGymBadgeGuy, -1
--- a/maps/VermilionGym.asm
+++ b/maps/VermilionGym.asm
@@ -287,8 +287,8 @@
.PersonEvents:
db 5
- person_event SPRITE_SURGE, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, SurgeScript_0x1920a5, -1
- person_event SPRITE_GENTLEMAN, 8, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerGentlemanGregory, -1
- person_event SPRITE_ROCKER, 7, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 3, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerGuitaristVincent, -1
- person_event SPRITE_SUPER_NERD, 10, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerJugglerHorton, -1
- person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 1, VermilionGymGuyScript, -1
+ person_event SPRITE_SURGE, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, SurgeScript_0x1920a5, -1
+ person_event SPRITE_GENTLEMAN, 8, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerGentlemanGregory, -1
+ person_event SPRITE_ROCKER, 7, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 3, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerGuitaristVincent, -1
+ person_event SPRITE_SUPER_NERD, 10, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerJugglerHorton, -1
+ person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 1, VermilionGymGuyScript, -1
--- a/maps/VermilionHouseDiglettsCaveSpeechHouse.asm
+++ b/maps/VermilionHouseDiglettsCaveSpeechHouse.asm
@@ -34,4 +34,4 @@
.PersonEvents:
db 1
- person_event SPRITE_GENTLEMAN, 3, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GentlemanScript_0x192031, -1
+ person_event SPRITE_GENTLEMAN, 3, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x192031, -1
--- a/maps/VermilionHouseFishingSpeechHouse.asm
+++ b/maps/VermilionHouseFishingSpeechHouse.asm
@@ -65,4 +65,4 @@
.PersonEvents:
db 1
- person_event SPRITE_FISHING_GURU, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FishingDude, -1
+ person_event SPRITE_FISHING_GURU, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FishingDude, -1
--- a/maps/VermilionMagnetTrainSpeechHouse.asm
+++ b/maps/VermilionMagnetTrainSpeechHouse.asm
@@ -48,5 +48,5 @@
.PersonEvents:
db 2
- person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, PokefanFScript_0x191eb7, -1
- person_event SPRITE_YOUNGSTER, 3, 0, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x191eba, -1
+ person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x191eb7, -1
+ person_event SPRITE_YOUNGSTER, 3, 0, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x191eba, -1
--- a/maps/VermilionMart.asm
+++ b/maps/VermilionMart.asm
@@ -48,6 +48,6 @@
.PersonEvents:
db 3
- person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x191f7e, -1
- person_event SPRITE_SUPER_NERD, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x191f85, -1
- person_event SPRITE_BUENA, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BuenaScript_0x191f88, -1
+ person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x191f7e, -1
+ person_event SPRITE_SUPER_NERD, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x191f85, -1
+ person_event SPRITE_BUENA, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, BuenaScript_0x191f88, -1
--- a/maps/VermilionPokeCenter1F.asm
+++ b/maps/VermilionPokeCenter1F.asm
@@ -88,7 +88,7 @@
.PersonEvents:
db 4
- person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x191603, -1
- person_event SPRITE_FISHING_GURU, 2, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FishingGuruScript_0x191606, -1
- person_event SPRITE_SAILOR, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SailorScript_0x19161a, -1
- person_event SPRITE_BUG_CATCHER, 5, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BugCatcherScript_0x19161d, -1
+ person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x191603, -1
+ person_event SPRITE_FISHING_GURU, 2, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x191606, -1
+ person_event SPRITE_SAILOR, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SailorScript_0x19161a, -1
+ person_event SPRITE_BUG_CATCHER, 5, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x19161d, -1
--- a/maps/VermilionPort.asm
+++ b/maps/VermilionPort.asm
@@ -317,6 +317,6 @@
.PersonEvents:
db 3
- person_event SPRITE_SAILOR, 17, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x74dc4, EVENT_VERMILION_PORT_SAILOR_AT_GANGWAY
- person_event SPRITE_SAILOR, 11, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x74e97, -1
- person_event SPRITE_SUPER_NERD, 11, 11, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, 0, 0, SuperNerdScript_0x74ee6, -1
+ person_event SPRITE_SAILOR, 17, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x74dc4, EVENT_VERMILION_PORT_SAILOR_AT_GANGWAY
+ person_event SPRITE_SAILOR, 11, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x74e97, -1
+ person_event SPRITE_SUPER_NERD, 11, 11, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x74ee6, -1
--- a/maps/VermilionPortPassage.asm
+++ b/maps/VermilionPortPassage.asm
@@ -35,4 +35,4 @@
.PersonEvents:
db 1
- person_event SPRITE_TEACHER, 1, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x7701a, -1
+ person_event SPRITE_TEACHER, 1, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7701a, -1
--- a/maps/VictoryRoad.asm
+++ b/maps/VictoryRoad.asm
@@ -19,7 +19,7 @@
moveperson $2, $12, $b
spriteface PLAYER, DOWN
showemote EMOTE_SHOCK, PLAYER, 15
- special Functionc48f
+ special Special_RotatePalettesRightMusic
pause 15
appear $2
applymovement $2, MovementData_0x74539
@@ -33,7 +33,7 @@
UnknownScript_0x744b5:
spriteface PLAYER, DOWN
showemote EMOTE_SHOCK, PLAYER, 15
- special Functionc48f
+ special Special_RotatePalettesRightMusic
pause 15
appear $2
applymovement $2, MovementData_0x74542
@@ -263,9 +263,9 @@
.PersonEvents:
db 6
- person_event SPRITE_SILVER, 13, 18, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_VICTORY_ROAD
- person_event SPRITE_POKE_BALL, 28, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x74529, EVENT_VICTORY_ROAD_TM_EARTHQUAKE
- person_event SPRITE_POKE_BALL, 48, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7452b, EVENT_VICTORY_ROAD_MAX_REVIVE
- person_event SPRITE_POKE_BALL, 29, 18, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7452d, EVENT_VICTORY_ROAD_FULL_RESTORE
- person_event SPRITE_POKE_BALL, 48, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7452f, EVENT_VICTORY_ROAD_FULL_HEAL
- person_event SPRITE_POKE_BALL, 38, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x74531, EVENT_VICTORY_ROAD_HP_UP
+ person_event SPRITE_SILVER, 13, 18, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_RIVAL_VICTORY_ROAD
+ person_event SPRITE_POKE_BALL, 28, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x74529, EVENT_VICTORY_ROAD_TM_EARTHQUAKE
+ person_event SPRITE_POKE_BALL, 48, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7452b, EVENT_VICTORY_ROAD_MAX_REVIVE
+ person_event SPRITE_POKE_BALL, 29, 18, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7452d, EVENT_VICTORY_ROAD_FULL_RESTORE
+ person_event SPRITE_POKE_BALL, 48, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7452f, EVENT_VICTORY_ROAD_FULL_HEAL
+ person_event SPRITE_POKE_BALL, 38, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x74531, EVENT_VICTORY_ROAD_HP_UP
--- a/maps/VictoryRoadGate.asm
+++ b/maps/VictoryRoadGate.asm
@@ -118,6 +118,6 @@
.PersonEvents:
db 3
- person_event SPRITE_OFFICER, 11, 8, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, OfficerScript_0x9ba03, -1
- person_event SPRITE_BLACK_BELT, 5, 7, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x9ba21, EVENT_OPENED_MT_SILVER
- person_event SPRITE_BLACK_BELT, 5, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x9ba24, EVENT_FOUGHT_SNORLAX
+ person_event SPRITE_OFFICER, 11, 8, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OfficerScript_0x9ba03, -1
+ person_event SPRITE_BLACK_BELT, 5, 7, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x9ba21, EVENT_OPENED_MT_SILVER
+ person_event SPRITE_BLACK_BELT, 5, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x9ba24, EVENT_FOUGHT_SNORLAX
--- a/maps/VioletCity.asm
+++ b/maps/VioletCity.asm
@@ -87,7 +87,7 @@
db RARE_CANDY, 1
FruitTreeScript_0x1a8425:
- fruittree $9
+ fruittree FRUITTREE_VIOLET_CITY
MapVioletCitySignpostItem6:
dwb EVENT_VIOLET_CITY_HIDDEN_HYPER_POTION, HYPER_POTION
@@ -301,11 +301,11 @@
.PersonEvents:
db 8
- person_event SPRITE_FISHER, 16, 13, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1a83bb, EVENT_VIOLET_CITY_EARL
- person_event SPRITE_LASS, 28, 28, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x1a8403, -1
- person_event SPRITE_SUPER_NERD, 14, 24, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x1a8406, -1
- person_event SPRITE_GRAMPS, 20, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, GrampsScript_0x1a8409, -1
- person_event SPRITE_YOUNGSTER, 18, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a840c, -1
- person_event SPRITE_FRUIT_TREE, 29, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8425, -1
- person_event SPRITE_POKE_BALL, 1, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a8421, EVENT_VIOLET_CITY_PP_UP
- person_event SPRITE_POKE_BALL, 5, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a8423, EVENT_VIOLET_CITY_RARE_CANDY
+ person_event SPRITE_FISHER, 16, 13, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x1a83bb, EVENT_VIOLET_CITY_EARL
+ person_event SPRITE_LASS, 28, 28, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x1a8403, -1
+ person_event SPRITE_SUPER_NERD, 14, 24, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x1a8406, -1
+ person_event SPRITE_GRAMPS, 20, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a8409, -1
+ person_event SPRITE_YOUNGSTER, 18, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a840c, -1
+ person_event SPRITE_FRUIT_TREE, 29, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a8425, -1
+ person_event SPRITE_POKE_BALL, 1, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a8421, EVENT_VIOLET_CITY_PP_UP
+ person_event SPRITE_POKE_BALL, 5, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a8423, EVENT_VIOLET_CITY_RARE_CANDY
--- a/maps/VioletGym.asm
+++ b/maps/VioletGym.asm
@@ -294,7 +294,7 @@
.PersonEvents:
db 4
- person_event SPRITE_FALKNER, 1, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FalknerScript_0x683c2, -1
- person_event SPRITE_YOUNGSTER, 6, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperRod, -1
- person_event SPRITE_YOUNGSTER, 10, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperAbe, -1
- person_event SPRITE_GYM_GUY, 13, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, VioletGymGuyScript, -1
+ person_event SPRITE_FALKNER, 1, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, FalknerScript_0x683c2, -1
+ person_event SPRITE_YOUNGSTER, 6, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBird_keeperRod, -1
+ person_event SPRITE_YOUNGSTER, 10, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBird_keeperAbe, -1
+ person_event SPRITE_GYM_GUY, 13, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, VioletGymGuyScript, -1
--- a/maps/VioletMart.asm
+++ b/maps/VioletMart.asm
@@ -60,6 +60,6 @@
.PersonEvents:
db 3
- person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x68295, -1
- person_event SPRITE_GRANNY, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, GrannyScript_0x6829c, -1
- person_event SPRITE_COOLTRAINER_M, 2, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x6829f, -1
+ person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x68295, -1
+ person_event SPRITE_GRANNY, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x6829c, -1
+ person_event SPRITE_COOLTRAINER_M, 2, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x6829f, -1
--- a/maps/VioletNicknameSpeechHouse.asm
+++ b/maps/VioletNicknameSpeechHouse.asm
@@ -56,6 +56,6 @@
.PersonEvents:
db 3
- person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x693e9, -1
- person_event SPRITE_LASS, 4, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x693ec, -1
- person_event SPRITE_BIRD, 2, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, BirdScript_0x693ef, -1
+ person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x693e9, -1
+ person_event SPRITE_LASS, 4, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x693ec, -1
+ person_event SPRITE_BIRD, 2, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, BirdScript_0x693ef, -1
--- a/maps/VioletOnixTradeHouse.asm
+++ b/maps/VioletOnixTradeHouse.asm
@@ -45,5 +45,5 @@
.PersonEvents:
db 2
- person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x6998d, -1
- person_event SPRITE_YOUNGSTER, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x69990, -1
+ person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x6998d, -1
+ person_event SPRITE_YOUNGSTER, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x69990, -1
--- a/maps/VioletPokeCenter1F.asm
+++ b/maps/VioletPokeCenter1F.asm
@@ -226,8 +226,8 @@
.PersonEvents:
db 5
- person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x694c9, -1
- person_event SPRITE_GAMEBOY_KID, 6, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GameboyKidScript_0x69540, -1
- person_event SPRITE_GENTLEMAN, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x69543, -1
- person_event SPRITE_YOUNGSTER, 1, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x69546, -1
- person_event SPRITE_SCIENTIST, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x694cc, EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER
+ person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x694c9, -1
+ person_event SPRITE_GAMEBOY_KID, 6, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x69540, -1
+ person_event SPRITE_GENTLEMAN, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x69543, -1
+ person_event SPRITE_YOUNGSTER, 1, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x69546, -1
+ person_event SPRITE_SCIENTIST, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x694cc, EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER
--- a/maps/ViridianCity.asm
+++ b/maps/ViridianCity.asm
@@ -237,7 +237,7 @@
.PersonEvents:
db 4
- person_event SPRITE_GRAMPS, 5, 18, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, GrampsScript_0x1a9a4c, -1
- person_event SPRITE_GRAMPS, 8, 30, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrampsScript_0x1a9a61, -1
- person_event SPRITE_FISHER, 23, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x1a9a75, -1
- person_event SPRITE_YOUNGSTER, 21, 17, SPRITEMOVEDATA_WANDER, 3, 3, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a9a90, -1
+ person_event SPRITE_GRAMPS, 5, 18, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a9a4c, -1
+ person_event SPRITE_GRAMPS, 8, 30, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a9a61, -1
+ person_event SPRITE_FISHER, 23, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x1a9a75, -1
+ person_event SPRITE_YOUNGSTER, 21, 17, SPRITEMOVEDATA_WANDER, 3, 3, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a9a90, -1
--- a/maps/ViridianGym.asm
+++ b/maps/ViridianGym.asm
@@ -183,5 +183,5 @@
.PersonEvents:
db 2
- person_event SPRITE_BLUE, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, BlueScript_0x9aa26, EVENT_VIRIDIAN_GYM_BLUE
- person_event SPRITE_GYM_GUY, 13, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ViridianGymGuyScript, EVENT_VIRIDIAN_GYM_BLUE
+ person_event SPRITE_BLUE, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlueScript_0x9aa26, EVENT_VIRIDIAN_GYM_BLUE
+ person_event SPRITE_GYM_GUY, 13, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ViridianGymGuyScript, EVENT_VIRIDIAN_GYM_BLUE
--- a/maps/ViridianMart.asm
+++ b/maps/ViridianMart.asm
@@ -48,6 +48,6 @@
.PersonEvents:
db 3
- person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x9b5e7, -1
- person_event SPRITE_LASS, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, 0, 0, LassScript_0x9b5ee, -1
- person_event SPRITE_COOLTRAINER_M, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x9b5f1, -1
+ person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x9b5e7, -1
+ person_event SPRITE_LASS, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x9b5ee, -1
+ person_event SPRITE_COOLTRAINER_M, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x9b5f1, -1
--- a/maps/ViridianNicknameSpeechHouse.asm
+++ b/maps/ViridianNicknameSpeechHouse.asm
@@ -72,7 +72,7 @@
.PersonEvents:
db 4
- person_event SPRITE_POKEFAN_M, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x9ae3a, -1
- person_event SPRITE_LASS, 4, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x9ae3d, -1
- person_event SPRITE_MOLTRES, 2, 5, SPRITEMOVEDATA_POKEMON, 0, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MoltresScript_0x9ae40, -1
- person_event SPRITE_GROWLITHE, 3, 6, SPRITEMOVEDATA_POKEMON, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrowlitheScript_0x9ae4a, -1
+ person_event SPRITE_POKEFAN_M, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x9ae3a, -1
+ person_event SPRITE_LASS, 4, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x9ae3d, -1
+ person_event SPRITE_MOLTRES, 2, 5, SPRITEMOVEDATA_POKEMON, 0, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, MoltresScript_0x9ae40, -1
+ person_event SPRITE_GROWLITHE, 3, 6, SPRITEMOVEDATA_POKEMON, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GrowlitheScript_0x9ae4a, -1
--- a/maps/ViridianPokeCenter1F.asm
+++ b/maps/ViridianPokeCenter1F.asm
@@ -83,7 +83,7 @@
.PersonEvents:
db 4
- person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x9b690, -1
- person_event SPRITE_COOLTRAINER_M, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x9b693, -1
- person_event SPRITE_COOLTRAINER_F, 3, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CooltrainerFScript_0x9b6a7, -1
- person_event SPRITE_BUG_CATCHER, 6, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BugCatcherScript_0x9b6aa, -1
+ person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x9b690, -1
+ person_event SPRITE_COOLTRAINER_M, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x9b693, -1
+ person_event SPRITE_COOLTRAINER_F, 3, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x9b6a7, -1
+ person_event SPRITE_BUG_CATCHER, 6, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x9b6aa, -1
--- a/maps/WarehouseEntrance.asm
+++ b/maps/WarehouseEntrance.asm
@@ -186,7 +186,7 @@
.DoHaircut:
checkflag ENGINE_GOLDENROD_UNDERGROUND_GOT_HAIRCUT
iftrue .AlreadyGotHaircut
- special Function24ae8
+ special PlaceMoneyTopRightOW
writetext UnknownText_0x7c5f9
yesorno
iffalse .Refused
@@ -222,7 +222,7 @@
.then:
takemoney $0, 500
- special Function24ae8
+ special PlaceMoneyTopRightOW
writetext UnknownText_0x7c6b8
closetext
loadmovesprites
@@ -269,7 +269,7 @@
.DoHaircut:
checkflag ENGINE_GOLDENROD_UNDERGROUND_GOT_HAIRCUT
iftrue .AlreadyGotHaircut
- special Function24ae8
+ special PlaceMoneyTopRightOW
writetext UnknownText_0x7c75c
yesorno
iffalse .Refused
@@ -305,7 +305,7 @@
.then:
takemoney $0, 300
- special Function24ae8
+ special PlaceMoneyTopRightOW
writetext UnknownText_0x7c80e
closetext
loadmovesprites
@@ -343,7 +343,7 @@
UnknownScript_0x7c2bb:
writetext HaircutBrosText_SlightlyHappier
- special Functionc472
+ special PlayCurMonCry
closetext
loadmovesprites
end
@@ -350,7 +350,7 @@
UnknownScript_0x7c2c4:
writetext HaircutBrosText_Happier
- special Functionc472
+ special PlayCurMonCry
closetext
loadmovesprites
end
@@ -357,7 +357,7 @@
UnknownScript_0x7c2cd:
writetext HaircutBrosText_MuchHappier
- special Functionc472
+ special PlayCurMonCry
closetext
loadmovesprites
end
@@ -669,12 +669,12 @@
.PersonEvents:
db 9
- person_event SPRITE_SUPER_NERD, 31, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerSupernerdEric, -1
- person_event SPRITE_SUPER_NERD, 9, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerSupernerdTeru, -1
- person_event SPRITE_SUPER_NERD, 27, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPokemaniacIssac, -1
- person_event SPRITE_SUPER_NERD, 6, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacDonald, -1
- person_event SPRITE_POKE_BALL, 25, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7c306, EVENT_WAREHOUSE_ENTRANCE_COIN_CASE
- person_event SPRITE_GRAMPS, 11, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrampsScript_0x7c146, EVENT_WAREHOUSE_ENTRANCE_GRAMPS
- person_event SPRITE_SUPER_NERD, 14, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OlderHaircutBrotherScript, EVENT_WAREHOUSE_ENTRANCE_OLDER_HAIRCUT_BROTHER
- person_event SPRITE_SUPER_NERD, 15, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungerHaircutBrotherScript, EVENT_WAREHOUSE_ENTRANCE_YOUNGER_HAIRCUT_BROTHER
- person_event SPRITE_GRANNY, 21, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrannyScript_0x7c132, EVENT_WAREHOUSE_ENTRANCE_GRANNY
+ person_event SPRITE_SUPER_NERD, 31, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerSupernerdEric, -1
+ person_event SPRITE_SUPER_NERD, 9, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerSupernerdTeru, -1
+ person_event SPRITE_SUPER_NERD, 27, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerPokemaniacIssac, -1
+ person_event SPRITE_SUPER_NERD, 6, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPokemaniacDonald, -1
+ person_event SPRITE_POKE_BALL, 25, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7c306, EVENT_WAREHOUSE_ENTRANCE_COIN_CASE
+ person_event SPRITE_GRAMPS, 11, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x7c146, EVENT_WAREHOUSE_ENTRANCE_GRAMPS
+ person_event SPRITE_SUPER_NERD, 14, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OlderHaircutBrotherScript, EVENT_WAREHOUSE_ENTRANCE_OLDER_HAIRCUT_BROTHER
+ person_event SPRITE_SUPER_NERD, 15, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungerHaircutBrotherScript, EVENT_WAREHOUSE_ENTRANCE_YOUNGER_HAIRCUT_BROTHER
+ person_event SPRITE_GRANNY, 21, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, GrannyScript_0x7c132, EVENT_WAREHOUSE_ENTRANCE_GRANNY
--- a/maps/WhirlIslandB1F.asm
+++ b/maps/WhirlIslandB1F.asm
@@ -62,9 +62,9 @@
.PersonEvents:
db 6
- person_event SPRITE_POKE_BALL, 13, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c410, EVENT_WHIRL_ISLAND_B1F_FULL_RESTORE
- person_event SPRITE_POKE_BALL, 18, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c412, EVENT_WHIRL_ISLAND_B1F_CARBOS
- person_event SPRITE_POKE_BALL, 23, 33, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c414, EVENT_WHIRL_ISLAND_B1F_CALCIUM
- person_event SPRITE_POKE_BALL, 8, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c416, EVENT_WHIRL_ISLAND_B1F_NUGGET
- person_event SPRITE_POKE_BALL, 26, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c418, EVENT_WHIRL_ISLAND_B1F_ESCAPE_ROPE
- person_event SPRITE_BOULDER, 26, 23, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, WhirlIslandB1FBoulder, -1
+ person_event SPRITE_POKE_BALL, 13, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c410, EVENT_WHIRL_ISLAND_B1F_FULL_RESTORE
+ person_event SPRITE_POKE_BALL, 18, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c412, EVENT_WHIRL_ISLAND_B1F_CARBOS
+ person_event SPRITE_POKE_BALL, 23, 33, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c414, EVENT_WHIRL_ISLAND_B1F_CALCIUM
+ person_event SPRITE_POKE_BALL, 8, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c416, EVENT_WHIRL_ISLAND_B1F_NUGGET
+ person_event SPRITE_POKE_BALL, 26, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c418, EVENT_WHIRL_ISLAND_B1F_ESCAPE_ROPE
+ person_event SPRITE_BOULDER, 26, 23, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, WhirlIslandB1FBoulder, -1
--- a/maps/WhirlIslandB2F.asm
+++ b/maps/WhirlIslandB2F.asm
@@ -33,6 +33,6 @@
.PersonEvents:
db 3
- person_event SPRITE_POKE_BALL, 11, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c4b8, EVENT_WHIRL_ISLAND_B2F_FULL_RESTORE
- person_event SPRITE_POKE_BALL, 4, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c4ba, EVENT_WHIRL_ISLAND_B2F_MAX_REVIVE
- person_event SPRITE_POKE_BALL, 12, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c4bc, EVENT_WHIRL_ISLAND_B2F_MAX_ELIXER
+ person_event SPRITE_POKE_BALL, 11, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c4b8, EVENT_WHIRL_ISLAND_B2F_FULL_RESTORE
+ person_event SPRITE_POKE_BALL, 4, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c4ba, EVENT_WHIRL_ISLAND_B2F_MAX_REVIVE
+ person_event SPRITE_POKE_BALL, 12, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c4bc, EVENT_WHIRL_ISLAND_B2F_MAX_ELIXER
--- a/maps/WhirlIslandLugiaChamber.asm
+++ b/maps/WhirlIslandLugiaChamber.asm
@@ -59,4 +59,4 @@
.PersonEvents:
db 1
- person_event SPRITE_LUGIA, 5, 9, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LugiaScript_0x18c518, EVENT_WHIRL_ISLAND_LUGIA_CHAMBER_LUGIA
+ person_event SPRITE_LUGIA, 5, 9, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, LugiaScript_0x18c518, EVENT_WHIRL_ISLAND_LUGIA_CHAMBER_LUGIA
--- a/maps/WhirlIslandNE.asm
+++ b/maps/WhirlIslandNE.asm
@@ -26,4 +26,4 @@
.PersonEvents:
db 1
- person_event SPRITE_POKE_BALL, 11, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c396, EVENT_WHIRL_ISLAND_NE_ULTRA_BALL
+ person_event SPRITE_POKE_BALL, 11, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c396, EVENT_WHIRL_ISLAND_NE_ULTRA_BALL
--- a/maps/WhirlIslandSW.asm
+++ b/maps/WhirlIslandSW.asm
@@ -28,4 +28,4 @@
.PersonEvents:
db 1
- person_event SPRITE_POKE_BALL, 2, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c3bc, EVENT_WHIRL_ISLAND_SW_ULTRA_BALL
+ person_event SPRITE_POKE_BALL, 2, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c3bc, EVENT_WHIRL_ISLAND_SW_ULTRA_BALL
--- a/maps/WillsRoom.asm
+++ b/maps/WillsRoom.asm
@@ -148,4 +148,4 @@
.PersonEvents:
db 1
- person_event SPRITE_WILL, 7, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, WillScript_0x1804f8, -1
+ person_event SPRITE_WILL, 7, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, WillScript_0x1804f8, -1
--- a/maps/WiseTriosRoom.asm
+++ b/maps/WiseTriosRoom.asm
@@ -360,9 +360,9 @@
.PersonEvents:
db 6
- person_event SPRITE_SAGE, 2, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, SageScript_0x9859a, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
- person_event SPRITE_SAGE, 7, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, SageScript_0x9859d, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
- person_event SPRITE_SAGE, 5, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, SageScript_0x985a0, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
- person_event SPRITE_SAGE, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 2, TrainerSageGaku, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
- person_event SPRITE_SAGE, 6, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 2, 2, TrainerSageMasa, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
- person_event SPRITE_SAGE, 4, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 2, 2, TrainerSageKoji, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
+ person_event SPRITE_SAGE, 2, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x9859a, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
+ person_event SPRITE_SAGE, 7, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x9859d, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
+ person_event SPRITE_SAGE, 5, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x985a0, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
+ person_event SPRITE_SAGE, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerSageGaku, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
+ person_event SPRITE_SAGE, 6, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerSageMasa, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
+ person_event SPRITE_SAGE, 4, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerSageKoji, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
--- a/maps/map_headers.asm
+++ b/maps/map_headers.asm
@@ -41,9 +41,9 @@
map_header Route38EcruteakGate, TILESET_GATE, GATE, ROUTE_38, MUSIC_ROUTE_37, 0, PALETTE_DAY, 1
map_header Route39Barn, TILESET_KURT_HOUSE, INDOOR, ROUTE_39, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
map_header Route39Farmhouse, TILESET_HOUSE_1, INDOOR, ROUTE_39, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
- map_header Route38, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_38, MUSIC_ROUTE_37, 0, PALETTE_AUTO, 1
- map_header Route39, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_39, MUSIC_ROUTE_37, 0, PALETTE_AUTO, 1
- map_header OlivineCity, TILESET_JOHTO_OUTSIDE_1, TOWN, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, 1
+ map_header Route38, TILESET_JOHTO_1, ROUTE, ROUTE_38, MUSIC_ROUTE_37, 0, PALETTE_AUTO, 1
+ map_header Route39, TILESET_JOHTO_1, ROUTE, ROUTE_39, MUSIC_ROUTE_37, 0, PALETTE_AUTO, 1
+ map_header OlivineCity, TILESET_JOHTO_1, TOWN, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, 1
MapGroup2:
@@ -51,9 +51,9 @@
map_header MahoganyGym, TILESET_GYM_1, INDOOR, MAHOGANY_TOWN, MUSIC_GYM, 1, PALETTE_DAY, 1
map_header MahoganyPokeCenter1F, TILESET_POKECENTER, INDOOR, MAHOGANY_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
map_header Route42EcruteakGate, TILESET_GATE, GATE, ROUTE_42, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1
- map_header Route42, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_42, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 3
- map_header Route44, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_44, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 4
- map_header MahoganyTown, TILESET_JOHTO_OUTSIDE_1, TOWN, MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_AUTO, 1
+ map_header Route42, TILESET_JOHTO_1, ROUTE, ROUTE_42, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 3
+ map_header Route44, TILESET_JOHTO_1, ROUTE, ROUTE_44, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 4
+ map_header MahoganyTown, TILESET_JOHTO_1, TOWN, MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_AUTO, 1
MapGroup3:
@@ -78,7 +78,7 @@
map_header RadioTower3F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1
map_header RadioTower4F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1
map_header RadioTower5F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1
- map_header RuinsofAlphOutside, TILESET_JOHTO_OUTSIDE_1, ROUTE, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 0, PALETTE_AUTO, 4
+ map_header RuinsofAlphOutside, TILESET_JOHTO_1, ROUTE, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 0, PALETTE_AUTO, 4
map_header RuinsofAlphHoOhChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
map_header RuinsofAlphKabutoChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
map_header RuinsofAlphOmanyteChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
@@ -137,7 +137,7 @@
map_header DarkCaveVioletEntrance, TILESET_WHIRL_ISLANDS, CAVE, DARK_CAVE, MUSIC_DARK_CAVE, 1, PALETTE_DARK, 3
map_header DarkCaveBlackthornEntrance, TILESET_WHIRL_ISLANDS, CAVE, DARK_CAVE, MUSIC_DARK_CAVE, 1, PALETTE_DARK, 3
map_header DragonsDen1F, TILESET_CAVE, CAVE, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, 5
- map_header DragonsDenB1F, TILESET_JOHTO_OUTSIDE_1, CAVE, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, 5
+ map_header DragonsDenB1F, TILESET_JOHTO_1, CAVE, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, 5
map_header DragonShrine, TILESET_LAB, INDOOR, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, 1
map_header TohjoFalls, TILESET_CAVE, CAVE, TOHJO_FALLS, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3
map_header DiglettsCave, TILESET_CAVE, CAVE, DIGLETTS_CAVE, MUSIC_MT_MOON, 1, PALETTE_NITE, 1
@@ -159,7 +159,7 @@
map_header EcruteakMart, TILESET_MART, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
map_header EcruteakGym, TILESET_SPROUT_TOWER, INDOOR, ECRUTEAK_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
map_header EcruteakItemfinderHouse, TILESET_KURT_HOUSE, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
- map_header EcruteakCity, TILESET_JOHTO_OUTSIDE_1, TOWN, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_AUTO, 4
+ map_header EcruteakCity, TILESET_JOHTO_1, TOWN, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_AUTO, 4
MapGroup5:
@@ -170,9 +170,9 @@
map_header BlackthornMart, TILESET_MART, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
map_header BlackthornPokeCenter1F, TILESET_POKECENTER, INDOOR, BLACKTHORN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
map_header MoveDeletersHouse, TILESET_HOUSE_1, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
- map_header Route45, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_45, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 9
- map_header Route46, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_46, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
- map_header BlackthornCity, TILESET_JOHTO_OUTSIDE_1, TOWN, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_AUTO, 4
+ map_header Route45, TILESET_JOHTO_1, ROUTE, ROUTE_45, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 9
+ map_header Route46, TILESET_JOHTO_1, ROUTE, ROUTE_46, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
+ map_header BlackthornCity, TILESET_JOHTO_1, TOWN, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_AUTO, 4
MapGroup6:
@@ -180,10 +180,10 @@
map_header CinnabarPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
map_header Route19FuchsiaGate, TILESET_GATE, GATE, ROUTE_19, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
map_header SeafoamGym, TILESET_CAVE, INDOOR, SEAFOAM_ISLANDS, MUSIC_GYM, 1, PALETTE_DAY, 1
- map_header Route19, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_19, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
- map_header Route20, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_20, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 2
- map_header Route21, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_21, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 2
- map_header CinnabarIsland, TILESET_KANTO_OUTSIDE, TOWN, CINNABAR_ISLAND, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 2
+ map_header Route19, TILESET_KANTO, ROUTE, ROUTE_19, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
+ map_header Route20, TILESET_KANTO, ROUTE, ROUTE_20, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 2
+ map_header Route21, TILESET_KANTO, ROUTE, ROUTE_21, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 2
+ map_header CinnabarIsland, TILESET_KANTO, TOWN, CINNABAR_ISLAND, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 2
MapGroup7:
@@ -198,12 +198,12 @@
map_header Route10PokeCenter2FBeta, TILESET_POKECENTER, INDOOR, ROUTE_10, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
map_header PowerPlant, TILESET_POWER_PLANT, INDOOR, POWER_PLANT, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
map_header BillsHouse, TILESET_HOUSE_1, INDOOR, ROUTE_25, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header Route4, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_4, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 0
- map_header Route9, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_9, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
- map_header Route10North, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_10, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
- map_header Route24, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_24, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
- map_header Route25, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_25, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
- map_header CeruleanCity, TILESET_KANTO_OUTSIDE, TOWN, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 0
+ map_header Route4, TILESET_KANTO, ROUTE, ROUTE_4, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 0
+ map_header Route9, TILESET_KANTO, ROUTE, ROUTE_9, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
+ map_header Route10North, TILESET_KANTO, ROUTE, ROUTE_10, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
+ map_header Route24, TILESET_KANTO, ROUTE, ROUTE_24, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
+ map_header Route25, TILESET_KANTO, ROUTE, ROUTE_25, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
+ map_header CeruleanCity, TILESET_KANTO, TOWN, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 0
MapGroup8:
@@ -212,8 +212,8 @@
map_header AzaleaMart, TILESET_MART, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
map_header KurtsHouse, TILESET_KURT_HOUSE, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
map_header AzaleaGym, TILESET_GYM_1, INDOOR, AZALEA_TOWN, MUSIC_GYM, 1, PALETTE_DAY, 1
- map_header Route33, TILESET_JOHTO_OUTSIDE_2, ROUTE, ROUTE_33, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 1
- map_header AzaleaTown, TILESET_JOHTO_OUTSIDE_2, TOWN, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_AUTO, 1
+ map_header Route33, TILESET_JOHTO_2, ROUTE, ROUTE_33, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 1
+ map_header AzaleaTown, TILESET_JOHTO_2, TOWN, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_AUTO, 1
MapGroup9:
@@ -221,16 +221,16 @@
map_header LakeofRageMagikarpHouse, TILESET_HOUSE_1, INDOOR, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1
map_header Route43MahoganyGate, TILESET_GATE, GATE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1
map_header Route43Gate, TILESET_GATE, GATE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1
- map_header Route43, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 4
- map_header LakeofRage, TILESET_JOHTO_OUTSIDE_1, TOWN, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 8
+ map_header Route43, TILESET_JOHTO_1, ROUTE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 4
+ map_header LakeofRage, TILESET_JOHTO_1, TOWN, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 8
MapGroup10:
- map_header Route32, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_32, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 11
- map_header Route35, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_35, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 4
- map_header Route36, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_36, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
- map_header Route37, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_37, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
- map_header VioletCity, TILESET_JOHTO_OUTSIDE_1, TOWN, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, 4
+ map_header Route32, TILESET_JOHTO_1, ROUTE, ROUTE_32, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 11
+ map_header Route35, TILESET_JOHTO_1, ROUTE, ROUTE_35, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 4
+ map_header Route36, TILESET_JOHTO_1, ROUTE, ROUTE_36, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
+ map_header Route37, TILESET_JOHTO_1, ROUTE, ROUTE_37, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
+ map_header VioletCity, TILESET_JOHTO_1, TOWN, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, 4
map_header VioletMart, TILESET_MART, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
map_header VioletGym, TILESET_GYM_1, INDOOR, VIOLET_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
map_header EarlsPokemonAcademy, TILESET_LAB, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
@@ -246,8 +246,8 @@
MapGroup11:
- map_header Route34, TILESET_JOHTO_OUTSIDE_2, ROUTE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
- map_header GoldenrodCity, TILESET_JOHTO_OUTSIDE_2, TOWN, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_AUTO, 1
+ map_header Route34, TILESET_JOHTO_2, ROUTE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
+ map_header GoldenrodCity, TILESET_JOHTO_2, TOWN, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_AUTO, 1
map_header GoldenrodGym, TILESET_GYM_1, INDOOR, GOLDENROD_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
map_header GoldenrodBikeShop, TILESET_OLIVINE_GYM, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
map_header GoldenrodHappinessRater, TILESET_HOUSE_1, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
@@ -266,7 +266,7 @@
map_header GoldenrodDeptStoreRoof, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
map_header GoldenrodGameCorner, TILESET_GAME_CORNER, INDOOR, GOLDENROD_CITY, MUSIC_GAME_CORNER, 0, PALETTE_DAY, 1
map_header GoldenrodPokeCenter1F, TILESET_POKECENTER, INDOOR, GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header GoldenrodPokeComCenter2FMobile, TILESET_GOLDENROD_POKECOM_CENTER_2F_MOBILE, INDOOR, GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header GoldenrodPokeComCenter2FMobile, TILESET_POKECOM_CENTER, INDOOR, GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
map_header IlexForestAzaleaGate, TILESET_GATE, GATE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1
map_header Route34IlexForestGate, TILESET_GATE, GATE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1
map_header DayCare, TILESET_HOUSE_1, INDOOR, ROUTE_34, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
@@ -273,9 +273,9 @@
MapGroup12:
- map_header Route6, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_6, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 4
- map_header Route11, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_11, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1
- map_header VermilionCity, TILESET_KANTO_OUTSIDE, TOWN, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_AUTO, 2
+ map_header Route6, TILESET_KANTO, ROUTE, ROUTE_6, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 4
+ map_header Route11, TILESET_KANTO, ROUTE, ROUTE_11, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1
+ map_header VermilionCity, TILESET_KANTO, TOWN, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_AUTO, 2
map_header VermilionHouseFishingSpeechHouse, TILESET_HOUSE_1, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
map_header VermilionPokeCenter1F, TILESET_POKECENTER, INDOOR, VERMILION_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
map_header VermilionPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
@@ -289,8 +289,8 @@
MapGroup13:
- map_header Route1, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_1, MUSIC_ROUTE_1, 0, PALETTE_AUTO, 1
- map_header PalletTown, TILESET_KANTO_OUTSIDE, TOWN, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_AUTO, 2
+ map_header Route1, TILESET_KANTO, ROUTE, ROUTE_1, MUSIC_ROUTE_1, 0, PALETTE_AUTO, 1
+ map_header PalletTown, TILESET_KANTO, TOWN, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_AUTO, 2
map_header RedsHouse1F, TILESET_KRISS_HOUSE, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, 1
map_header RedsHouse2F, TILESET_KRISS_HOUSE, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, 1
map_header BluesHouse, TILESET_HOUSE_1, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, 1
@@ -298,8 +298,8 @@
MapGroup14:
- map_header Route3, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_3, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
- map_header PewterCity, TILESET_KANTO_OUTSIDE, TOWN, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 1
+ map_header Route3, TILESET_KANTO, ROUTE, ROUTE_3, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
+ map_header PewterCity, TILESET_KANTO, TOWN, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 1
map_header PewterNidoranSpeechHouse, TILESET_HOUSE_1, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
map_header PewterGym, TILESET_SPROUT_TOWER, INDOOR, PEWTER_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
map_header PewterMart, TILESET_MART, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
@@ -318,13 +318,13 @@
map_header FastShipB1F, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1
map_header OlivinePortPassage, TILESET_UNDERGROUND, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
map_header VermilionPortPassage, TILESET_UNDERGROUND, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
- map_header MountMoonSquare, TILESET_KANTO_OUTSIDE, ROUTE, MT_MOON, MUSIC_MT_MOON_SQUARE, 0, PALETTE_AUTO, 1
+ map_header MountMoonSquare, TILESET_KANTO, ROUTE, MT_MOON, MUSIC_MT_MOON_SQUARE, 0, PALETTE_AUTO, 1
map_header MountMoonGiftShop, TILESET_KURT_HOUSE, INDOOR, MT_MOON, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
map_header TinTowerRoof, TILESET_SPROUT_TOWER, ROUTE, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_AUTO, 1
MapGroup16:
- map_header Route23, TILESET_KANTO_OUTSIDE, TOWN, ROUTE_23, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 1
+ map_header Route23, TILESET_KANTO, TOWN, ROUTE_23, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 1
map_header IndigoPlateauPokeCenter1F, TILESET_POKECENTER, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 0, PALETTE_DAY, 1
map_header WillsRoom, TILESET_GYM_1, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1
map_header KogasRoom, TILESET_GYM_1, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1
@@ -335,11 +335,11 @@
MapGroup17:
- map_header Route13, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_13, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 13
- map_header Route14, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_14, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1
- map_header Route15, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_15, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1
- map_header Route18, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_18, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
- map_header FuchsiaCity, TILESET_KANTO_OUTSIDE, TOWN, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_AUTO, 8
+ map_header Route13, TILESET_KANTO, ROUTE, ROUTE_13, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 13
+ map_header Route14, TILESET_KANTO, ROUTE, ROUTE_14, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1
+ map_header Route15, TILESET_KANTO, ROUTE, ROUTE_15, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1
+ map_header Route18, TILESET_KANTO, ROUTE, ROUTE_18, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
+ map_header FuchsiaCity, TILESET_KANTO, TOWN, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_AUTO, 8
map_header FuchsiaMart, TILESET_MART, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
map_header SafariZoneMainOffice, TILESET_GAME_CORNER, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
map_header FuchsiaGym, TILESET_LAB, INDOOR, FUCHSIA_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
@@ -351,10 +351,10 @@
MapGroup18:
- map_header Route8, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_8, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
- map_header Route12, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_12, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 13
- map_header Route10South, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_10, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
- map_header LavenderTown, TILESET_KANTO_OUTSIDE, TOWN, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_AUTO, 1
+ map_header Route8, TILESET_KANTO, ROUTE, ROUTE_8, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
+ map_header Route12, TILESET_KANTO, ROUTE, ROUTE_12, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 13
+ map_header Route10South, TILESET_KANTO, ROUTE, ROUTE_10, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
+ map_header LavenderTown, TILESET_KANTO, TOWN, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_AUTO, 1
map_header LavenderPokeCenter1F, TILESET_POKECENTER, INDOOR, LAVENDER_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
map_header LavenderPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, LAVENDER_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
map_header MrFujisHouse, TILESET_HOUSE_1, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1
@@ -368,8 +368,8 @@
MapGroup19:
- map_header Route28, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_28, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 4
- map_header SilverCaveOutside, TILESET_KANTO_OUTSIDE, TOWN, SILVER_CAVE, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 4
+ map_header Route28, TILESET_KANTO, ROUTE, ROUTE_28, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 4
+ map_header SilverCaveOutside, TILESET_KANTO, TOWN, SILVER_CAVE, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 4
map_header SilverCavePokeCenter1F, TILESET_POKECENTER, INDOOR, SILVER_CAVE, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
map_header Route28FamousSpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_28, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
@@ -384,10 +384,10 @@
MapGroup21:
- map_header Route7, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_7, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
- map_header Route16, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_16, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
- map_header Route17, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_17, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 0
- map_header CeladonCity, TILESET_KANTO_OUTSIDE, TOWN, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_AUTO, 0
+ map_header Route7, TILESET_KANTO, ROUTE, ROUTE_7, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
+ map_header Route16, TILESET_KANTO, ROUTE, ROUTE_16, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
+ map_header Route17, TILESET_KANTO, ROUTE, ROUTE_17, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 0
+ map_header CeladonCity, TILESET_KANTO, TOWN, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_AUTO, 0
map_header CeladonDeptStore1F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
map_header CeladonDeptStore2F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
map_header CeladonDeptStore3F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
@@ -413,9 +413,9 @@
MapGroup22:
- map_header Route40, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_40, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
- map_header Route41, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_41, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 2
- map_header CianwoodCity, TILESET_JOHTO_OUTSIDE_1, TOWN, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_AUTO, 1
+ map_header Route40, TILESET_JOHTO_1, ROUTE, ROUTE_40, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
+ map_header Route41, TILESET_JOHTO_1, ROUTE, ROUTE_41, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 2
+ map_header CianwoodCity, TILESET_JOHTO_1, TOWN, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_AUTO, 1
map_header ManiasHouse, TILESET_HOUSE_1, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
map_header CianwoodGym, TILESET_SPROUT_TOWER, INDOOR, CIANWOOD_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
map_header CianwoodPokeCenter1F, TILESET_POKECENTER, INDOOR, CIANWOOD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
@@ -432,9 +432,9 @@
MapGroup23:
- map_header Route2, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_2, MUSIC_ROUTE_2, 0, PALETTE_AUTO, 1
- map_header Route22, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_22, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 4
- map_header ViridianCity, TILESET_KANTO_OUTSIDE, TOWN, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 4
+ map_header Route2, TILESET_KANTO, ROUTE, ROUTE_2, MUSIC_ROUTE_2, 0, PALETTE_AUTO, 1
+ map_header Route22, TILESET_KANTO, ROUTE, ROUTE_22, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 4
+ map_header ViridianCity, TILESET_KANTO, TOWN, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 4
map_header ViridianGym, TILESET_TRAIN_STATION, INDOOR, VIRIDIAN_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
map_header ViridianNicknameSpeechHouse, TILESET_HOUSE_1, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
map_header TrainerHouse1F, TILESET_HOUSE_1, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
@@ -448,10 +448,10 @@
MapGroup24:
- map_header Route26, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_26, MUSIC_ROUTE_26, 0, PALETTE_AUTO, 2
- map_header Route27, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_27, MUSIC_ROUTE_26, 0, PALETTE_AUTO, 2
- map_header Route29, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_29, MUSIC_ROUTE_29, 0, PALETTE_AUTO, 1
- map_header NewBarkTown, TILESET_JOHTO_OUTSIDE_1, TOWN, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_AUTO, 2
+ map_header Route26, TILESET_JOHTO_1, ROUTE, ROUTE_26, MUSIC_ROUTE_26, 0, PALETTE_AUTO, 2
+ map_header Route27, TILESET_JOHTO_1, ROUTE, ROUTE_27, MUSIC_ROUTE_26, 0, PALETTE_AUTO, 2
+ map_header Route29, TILESET_JOHTO_1, ROUTE, ROUTE_29, MUSIC_ROUTE_29, 0, PALETTE_AUTO, 1
+ map_header NewBarkTown, TILESET_JOHTO_1, TOWN, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_AUTO, 2
map_header ElmsLab, TILESET_LAB, INDOOR, NEW_BARK_TOWN, MUSIC_PROF_ELM, 0, PALETTE_DAY, 1
map_header KrissHouse1F, TILESET_KRISS_HOUSE, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1
map_header KrissHouse2F, TILESET_KRISS_HOUSE_2F, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1
@@ -464,8 +464,8 @@
MapGroup25:
- map_header Route5, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_5, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
- map_header SaffronCity, TILESET_KANTO_OUTSIDE, TOWN, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 1
+ map_header Route5, TILESET_KANTO, ROUTE, ROUTE_5, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
+ map_header SaffronCity, TILESET_KANTO, TOWN, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 1
map_header FightingDojo, TILESET_TRAIN_STATION, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
map_header SaffronGym, TILESET_UNDERGROUND, INDOOR, SAFFRON_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
map_header SaffronMart, TILESET_MART, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
@@ -482,9 +482,9 @@
MapGroup26:
- map_header Route30, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_30, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 4
- map_header Route31, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_31, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 4
- map_header CherrygroveCity, TILESET_JOHTO_OUTSIDE_1, TOWN, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_AUTO, 1
+ map_header Route30, TILESET_JOHTO_1, ROUTE, ROUTE_30, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 4
+ map_header Route31, TILESET_JOHTO_1, ROUTE, ROUTE_31, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 4
+ map_header CherrygroveCity, TILESET_JOHTO_1, TOWN, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_AUTO, 1
map_header CherrygroveMart, TILESET_MART, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1
map_header CherrygrovePokeCenter1F, TILESET_POKECENTER, INDOOR, CHERRYGROVE_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
map_header CherrygroveGymSpeechHouse, TILESET_HOUSE_1, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1
--- a/misc/battle_tower_47.asm
+++ b/misc/battle_tower_47.asm
@@ -11,6 +11,12 @@
ld hl, BT_OTTrainerClass
ELSE
ld hl, BT_OTName + 5
+; BUG ALERT
+; Instead of loading the Trainer Class, this routine
+; loads the 6th character in the Trainer's name, then
+; uses it to get the gender of the trainer.
+; As a consequence, the enemy trainer's dialog will
+; always be sampled from the female array.
ENDC
ld a, [hl]
dec a
@@ -81,4100 +87,9 @@
ret
; 11c05d
-Function11c05d: ; 11c05d
- ld a, e
- or d
- jr z, .asm_11c071
- ld a, e
- and d
- cp $ff
- jr z, .asm_11c071
- push hl
- call Function11c156
- pop hl
- call PlaceString
- and a
- ret
+INCLUDE "misc/fixed_words.asm"
-.asm_11c071
- ld c, l
- ld b, h
- scf
- ret
-; 11c075
-
-Function11c075: ; 11c075
- push de
- ld a, c
- call Function11c254
- pop de
- ld bc, wcd36
- call Function11c08f
- ret
-; 11c082
-
-Function11c082: ; 11c082
- push de
- ld a, c
- call Function11c254
- pop de
- ld bc, wcd36
- call Function11c0c6
- ret
-; 11c08f
-
-Function11c08f: ; 11c08f
- ld l, e
- ld h, d
- push hl
- ld a, $3
-.asm_11c094
- push af
- ld a, [bc]
- ld e, a
- inc bc
- ld a, [bc]
- ld d, a
- inc bc
- push bc
- call Function11c05d
- jr c, .asm_11c0a2
- inc bc
-
-.asm_11c0a2
- ld l, c
- ld h, b
- pop bc
- pop af
- dec a
- jr nz, .asm_11c094
- pop hl
- ld de, $0028
- add hl, de
- ld a, $3
-.asm_11c0b0
- push af
- ld a, [bc]
- ld e, a
- inc bc
- ld a, [bc]
- ld d, a
- inc bc
- push bc
- call Function11c05d
- jr c, .asm_11c0be
- inc bc
-
-.asm_11c0be
- ld l, c
- ld h, b
- pop bc
- pop af
- dec a
- jr nz, .asm_11c0b0
- ret
-; 11c0c6
-
-
-Function11c0c6: ; 11c0c6
- ld a, [wJumptableIndex]
- ld l, a
- ld a, [wcf64]
- ld h, a
- push hl
- ld hl, $c608 + 16
- ld a, $0
- ld [hli], a
- push de
- xor a
- ld [wJumptableIndex], a
- ld a, $12
- ld [wcf64], a
- ld a, $6
-.asm_11c0e1
- push af
- ld a, [bc]
- ld e, a
- inc bc
- ld a, [bc]
- ld d, a
- inc bc
- or e
- jr z, .asm_11c133
- push hl
- push bc
- call Function11c156
- call Function11c14a
- ld e, c
- pop bc
- pop hl
- ld a, e
- or a
- jr z, .asm_11c133
-.asm_11c0fa
- ld a, [wcf64]
- cp $12
- jr z, .asm_11c102
- inc e
-
-.asm_11c102
- cp e
- jr nc, .asm_11c11c
- ld a, [wJumptableIndex]
- inc a
- ld [wJumptableIndex], a
- ld [hl], $4e
- rra
- jr c, .asm_11c113
- ld [hl], $55
-
-.asm_11c113
- inc hl
- ld a, $12
- ld [wcf64], a
- dec e
- jr .asm_11c0fa
-
-.asm_11c11c
- cp $12
- jr z, .asm_11c123
- ld [hl], $7f
- inc hl
-
-.asm_11c123
- sub e
- ld [wcf64], a
- ld de, $c608
-.asm_11c12a
- ld a, [de]
- cp $50
- jr z, .asm_11c133
- inc de
- ld [hli], a
- jr .asm_11c12a
-
-.asm_11c133
- pop af
- dec a
- jr nz, .asm_11c0e1
- ld [hl], $57
- pop bc
- ld hl, $c608 + 16
- call PlaceWholeStringInBoxAtOnce
- pop hl
- ld a, l
- ld [wJumptableIndex], a
- ld a, h
- ld [wcf64], a
- ret
-; 11c14a
-
-Function11c14a: ; 11c14a
- ld c, $0
- ld hl, $c608
-.asm_11c14f
- ld a, [hli]
- cp $50
- ret z
- inc c
- jr .asm_11c14f
-; 11c156
-
-Function11c156: ; 11c156
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, $50
- ld hl, $c608
- ld bc, $000b
- call ByteFill
- ld a, d
- and a
- jr z, .asm_11c19c
- ld hl, Unknown_11daac
- dec d
- sla d
- ld c, d
- ld b, $0
- add hl, bc
- ld a, [hli]
- ld c, a
- ld a, [hl]
- ld b, a
- push bc
- pop hl
- ld c, e
- ld b, $0
- sla c
- rl b
- sla c
- rl b
- sla c
- rl b
- add hl, bc
- ld bc, $0005
-.asm_11c18f
- ld de, $c608
- call CopyBytes
- ld de, $c608
- pop af
- ld [rSVBK], a
- ret
-
-.asm_11c19c
- ld a, e
- ld [wd265], a
- call GetPokemonName
- ld hl, StringBuffer1
- ld bc, $000a
- jr .asm_11c18f
-; 11c1ab
-
-Function11c1ab: ; 11c1ab
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- call Function11c1b9
- pop af
- ld [hInMenu], a
- ret
-; 11c1b9
-
-Function11c1b9: ; 11c1b9
- call Function11c1ca
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- call Function11c283
- pop af
- ld [rSVBK], a
- ret
-; 11c1ca
-
-Function11c1ca: ; 11c1ca
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [wcf66], a
- ld [wcd23], a
- ld [BGMapBuffer], a
- ld [wcd21], a
- ld [CreditsTimer], a
- ld [wcd35], a
- ld [wcd2b], a
- ld a, $ff
- ld [wcd24], a
- ld a, [MenuSelection2]
- dec a
- call Function11c254
- call ClearBGPalettes
- call ClearSprites
- call ClearScreen
- call Function11d323
- call SetPalettes
- call DisableLCD
- ld hl, GFX_11d67e
- ld de, VTiles2
- ld bc, $60
- call CopyBytes
- ld hl, LZ_11d6de
- ld de, VTiles0
- call Decompress
- call EnableLCD
- callba Function104061
- callba Function8cf53
- callba LoadPokemonData
- callba Function40c30
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, $c6d0
- ld de, LYOverrides
- ld bc, $100
- call CopyBytes
- pop af
- ld [rSVBK], a
- call Function11d4aa
- call Function11d3ba
- ret
-; 11c254
-
-Function11c254: ; 11c254
- push af
- ld a, $4
- call GetSRAMBank
- ld hl, $a007
- pop af
- sla a
- sla a
- ld c, a
- sla a
- add c
- ld c, a
- ld b, $0
- add hl, bc
- ld de, wcd36
- ld bc, $000c
- call CopyBytes
- call CloseSRAM
- ret
-; 11c277
-
-
-Function11c277: ; 11c277 (47:4277)
- ld a, $7f
- hlcoord 0, 6
- ld bc, $f0
- call ByteFill
- ret
-
-Function11c283: ; 11c283
-.asm_11c283
- call JoyTextDelay
- ld a, [hJoyPressed]
- ld [hJoypadPressed], a
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_11c2a2
- call Function11c2ac
- callba Function8cf69
- callba Function104061
- jr .asm_11c283
-
-.asm_11c2a2
- callba Function8cf53
- call ClearSprites
- ret
-; 11c2ac
-
-Function11c2ac: ; 11c2ac
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, Jumptable_11c2bb
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 11c2bb
-
-
-Jumptable_11c2bb: ; 11c2bb (47:42bb)
- dw Function11c2e9
- dw Function11c346
- dw Function11c35f
- dw Function11c373
- dw Function11c3c2
- dw Function11c3ed
- dw Function11c52c
- dw Function11c53d
- dw Function11c658
- dw Function11c675
- dw Function11c9bd
- dw Function11c9c3
- dw Function11caad
- dw Function11cab3
- dw Function11cb52
- dw Function11cb66
- dw Function11cbf5
- dw Function11ccef
- dw Function11cd04
- dw Function11cd20
- dw Function11cd54
- dw Function11ce0b
- dw Function11ce2b
-
-
-Function11c2e9: ; 11c2e9 (47:42e9)
- lb de, $1a, $0d
- ld a, $1d
- call Function3b2a
- lb de, $42, $0d
- ld a, $1d
- call Function3b2a
- ld hl, $c
- add hl, bc
- ld a, $1
- ld [hl], a
- lb de, $4a, $10
- ld a, $1d
- call Function3b2a
- ld hl, $c
- add hl, bc
- ld a, $3
- ld [hl], a
- lb de, $50, $80
- ld a, $1d
- call Function3b2a
- ld hl, $c
- add hl, bc
- ld a, $4
- ld [hl], a
- lb de, $50, $20
- ld a, $1d
- call Function3b2a
- ld hl, $c
- add hl, bc
- ld a, $5
- ld [hl], a
- lb de, $50, $10
- ld a, $1d
- call Function3b2a
- ld hl, $c
- add hl, bc
- ld a, $2
- ld [hl], a
- ld hl, wcd23
- set 1, [hl]
- set 2, [hl]
- jp Function11cfb5
-
-Function11c346: ; 11c346 (47:4346)
- ld a, $9
- ld [wcd2d], a
- ld a, $2
- ld [wcd2e], a
- ld [wcd2f], a
- ld [wcd30], a
- ld de, wcd2d
- call Function11cfce
- jp Function11cfb5
-
-Function11c35f: ; 11c35f (47:435f)
- ld hl, wcd2f
-rept 2
- inc [hl]
-endr
-rept 2
- dec hl
-endr
- dec [hl]
- push af
- ld de, wcd2d
- call Function11cfce
- pop af
- ret nz
- jp Function11cfb5
-
-Function11c373: ; 11c373 (47:4373)
- ld hl, wcd30
-rept 2
- inc [hl]
-endr
-rept 2
- dec hl
-endr
- dec [hl]
- push af
- ld de, wcd2d
- call Function11cfce
- pop af
- ret nz
- call Function11c38a
- jp Function11cfb5
-
-Function11c38a: ; 11c38a (47:438a)
- ld hl, Unknown_11c986
- ld bc, wcd36
- ld a, $6
-.asm_11c392
- push af
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push hl
- push de
- pop hl
- ld a, [bc]
- inc bc
- ld e, a
- ld a, [bc]
- inc bc
- ld d, a
- push bc
- or e
- jr z, .asm_11c3af
- ld a, e
- and d
- cp $ff
- jr z, .asm_11c3af
- call Function11c05d
- jr .asm_11c3b5
-.asm_11c3af
- ld de, String_11c3bc
- call PlaceString
-.asm_11c3b5
- pop bc
- pop hl
- pop af
- dec a
- jr nz, .asm_11c392
- ret
-; 11c3bc (47:43bc)
-
-String_11c3bc: ; 11c3bc
- db "ーーーーー@"
-; 11c3c2
-
-Function11c3c2: ; 11c3c2 (47:43c2)
- call Function11c277
- ld de, Unknown_11cfbe
- call Function11d035
- hlcoord 1, 7
- ld de, String_11c4db
- call PlaceString
- hlcoord 1, 16
- ld de, String_11c51b
- call PlaceString
- call Function11c4be
- ld hl, wcd23
- set 0, [hl]
- ld hl, wcd24
- res 0, [hl]
- call Function11cfb5
-
-Function11c3ed: ; 11c3ed (47:43ed)
- ld hl, BGMapBuffer ; wcd20 (aliases: CreditsPos)
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and $8
- jr nz, .asm_11c426
- ld a, [de]
- and $2
- jr nz, .asm_11c41a
- ld a, [de]
- and $1
- jr nz, .asm_11c42c
- ld de, hJoyLast
- ld a, [de]
- and $40
- jr nz, .asm_11c47c
- ld a, [de]
- and $80
- jr nz, .asm_11c484
- ld a, [de]
- and $20
- jr nz, .asm_11c48c
- ld a, [de]
- and $10
- jr nz, .asm_11c498
- ret
-.asm_11c41a
- call PlayClickSFX
-.asm_11c41d
- ld hl, wcd24
- set 0, [hl]
- ld a, $c
- jr .asm_11c475
-.asm_11c426
- ld a, $8
- ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos)
- ret
-.asm_11c42c
- ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
- cp $6
- jr c, .asm_11c472
- sub $6
- jr z, .asm_11c469
- dec a
- jr z, .asm_11c41d
- ld hl, wcd36
- ld c, $c
- xor a
-.asm_11c440
- or [hl]
- inc hl
- dec c
- jr nz, .asm_11c440
- and a
- jr z, .asm_11c460
- ld de, Unknown_11cfba
- call Function11cfce
- decoord 1, 2
- ld bc, wcd36
- call Function11c08f
- ld hl, wcd24
- set 0, [hl]
- ld a, $e
- jr .asm_11c475
-.asm_11c460
- ld hl, wcd24
- set 0, [hl]
- ld a, $11
- jr .asm_11c475
-.asm_11c469
- ld hl, wcd24
- set 0, [hl]
- ld a, $a
- jr .asm_11c475
-.asm_11c472
- call Function11c4a5
-.asm_11c475
- ld [wJumptableIndex], a
- call PlayClickSFX
- ret
-.asm_11c47c
- ld a, [hl]
- cp $3
- ret c
- sub $3
- jr .asm_11c4a3
-.asm_11c484
- ld a, [hl]
- cp $6
- ret nc
- add $3
- jr .asm_11c4a3
-.asm_11c48c
- ld a, [hl]
- and a
- ret z
- cp $3
- ret z
- cp $6
- ret z
- dec a
- jr .asm_11c4a3
-.asm_11c498
- ld a, [hl]
- cp $2
- ret z
- cp $5
- ret z
- cp $8
- ret z
- inc a
-.asm_11c4a3
- ld [hl], a
- ret
-
-Function11c4a5: ; 11c4a5 (47:44a5)
- ld hl, wcd23
- res 0, [hl]
- ld a, [wcd2b]
- and a
- jr nz, .asm_11c4b7
- xor a
- ld [wcd21], a
- ld a, $6
- ret
-.asm_11c4b7
- xor a
- ld [CreditsTimer], a
- ld a, $15
- ret
-
-Function11c4be: ; 11c4be (47:44be)
- ld a, $1
- hlcoord 0, 6, AttrMap
- ld bc, $a0
- call ByteFill
- ld a, $7
- hlcoord 0, 14, AttrMap
- ld bc, $28
- call ByteFill
- callba Function104061
- ret
-; 11c4db (47:44db)
-
-String_11c4db: ; 11c4db
- db "6つのことば", $1f, "くみあわせます"
- next "かえたいところ", $1f, "えらぶと でてくる"
- next "ことばのグループから いれかえたい"
- next "たんご", $1f, "えらんでください"
- db "@"
-; 11c51b
-
-String_11c51b: ; 11c51b
- db "ぜんぶけす やめる けってい@"
-; 11c52c
-
-Function11c52c: ; 11c52c (47:452c)
- call Function11c277
- call Function11c5f0
- call Function11c618
- ld hl, wcd24
- res 1, [hl]
- call Function11cfb5
-
-Function11c53d: ; 11c53d (47:453d)
- ld hl, wcd21
- ld de, hJoypadPressed ; $ffa3
-
- ld a, [de]
- and START
- jr nz, .start
-
- ld a, [de]
- and SELECT
- jr nz, .select
-
- ld a, [de]
- and B_BUTTON
- jr nz, .b
-
- ld a, [de]
- and A_BUTTON
- jr nz, .a
-
- ld de, hJoyLast
-
- ld a, [de]
- and D_UP
- jr nz, .up
-
- ld a, [de]
- and D_DOWN
- jr nz, .down
-
- ld a, [de]
- and D_LEFT
- jr nz, .left
-
- ld a, [de]
- and D_RIGHT
- jr nz, .right
-
- ret
-
-.a
- ld a, [wcd21]
- cp $f
- jr c, .asm_11c59d
- sub $f
- jr z, .asm_11c5ab
- dec a
- jr z, .asm_11c599
- jr .b
-
-.start
- ld hl, wcd24
- set 0, [hl]
- ld a, $8
- ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos)
-
-.b
- ld a, $4
- jr .asm_11c59f
-
-.select
- ld a, [wcd2b]
- xor $1
- ld [wcd2b], a
- ld a, $15
- jr .asm_11c59f
-
-.asm_11c599
- ld a, $13
- jr .asm_11c59f
-
-.asm_11c59d
- ld a, $8
-
-.asm_11c59f
- ld hl, wcd24
- set 1, [hl]
- ld [wJumptableIndex], a
- call PlayClickSFX
- ret
-
-.asm_11c5ab
- ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
- call Function11ca6a
- call PlayClickSFX
- ret
-
-.up
- ld a, [hl]
- cp $3
- ret c
- sub $3
- jr .asm_11c5ee
-
-.down
- ld a, [hl]
- cp $f
- ret nc
- add $3
- jr .asm_11c5ee
-
-.left
- ld a, [hl]
- and a
- ret z
- cp $3
- ret z
- cp $6
- ret z
- cp $9
- ret z
- cp $c
- ret z
- cp $f
- ret z
- dec a
- jr .asm_11c5ee
-
-.right
- ld a, [hl]
- cp $2
- ret z
- cp $5
- ret z
- cp $8
- ret z
- cp $b
- ret z
- cp $e
- ret z
- cp $11
- ret z
- inc a
-
-.asm_11c5ee
- ld [hl], a
- ret
-; 11c5f0
-
-Function11c5f0: ; 11c5f0 (47:45f0)
- ld de, Strings_11da52
- ld bc, Unknown_11c63a
- ld a, $f
-.asm_11c5f8
- push af
- ld a, [bc]
- inc bc
- ld l, a
- ld a, [bc]
- inc bc
- ld h, a
- push bc
- call PlaceString
-.asm_11c603
- inc de
- ld a, [de]
- cp $50
- jr z, .asm_11c603
- pop bc
- pop af
- dec a
- jr nz, .asm_11c5f8
- hlcoord 1, 17
- ld de, String_11c62a
- call PlaceString
- ret
-
-Function11c618: ; 11c618 (47:4618)
- ld a, $2
- hlcoord 0, 6, AttrMap
- ld bc, $c8
- call ByteFill
- callba Function104061
- ret
-; 11c62a (47:462a)
-
-String_11c62a: ; 11c62a
- db "けす モード やめる@"
-; 11c63a
-
-Unknown_11c63a: ; 11c63a
- dwcoord 1, 7
- dwcoord 7, 7
- dwcoord 13, 7
- dwcoord 1, 9
- dwcoord 7, 9
- dwcoord 13, 9
- dwcoord 1, 11
- dwcoord 7, 11
- dwcoord 13, 11
- dwcoord 1, 13
- dwcoord 7, 13
- dwcoord 13, 13
- dwcoord 1, 15
- dwcoord 7, 15
- dwcoord 13, 15
-; 11c658
-
-Function11c658: ; 11c658 (47:4658)
- call Function11c277
- call Function11c770
- ld de, Unknown_11cfc2
- call Function11d035
- call Function11c9ab
- call Function11c7bc
- call Function11c86e
- ld hl, wcd24
- res 3, [hl]
- call Function11cfb5
-
-Function11c675: ; 11c675 (47:4675)
- ld hl, wcd25
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and A_BUTTON
- jr nz, .a
- ld a, [de]
- and B_BUTTON
- jr nz, .b
- ld a, [de]
- and START
- jr nz, .start
- ld a, [de]
- and SELECT
- jr z, .select
-
- ld a, [wcd26]
- and a
- ret z
- sub $c
- jr nc, .asm_11c699
- xor a
-.asm_11c699
- ld [wcd26], a
- jr .asm_11c6c4
-
-.start
- ld hl, wcd28
- ld a, [wcd26]
- add $c
- cp [hl]
- ret nc
- ld [wcd26], a
- ld a, [hl]
- ld b, a
- ld hl, wcd25
- ld a, [wcd26]
- add [hl]
- jr c, .asm_11c6b9
- cp b
- jr c, .asm_11c6c4
-.asm_11c6b9
- ld a, [wcd28]
- ld hl, wcd26
- sub [hl]
- dec a
- ld [wcd25], a
-.asm_11c6c4
- call Function11c992
- call Function11c7bc
- call Function11c86e
- ret
-
-.select
- ld de, hJoyLast
- ld a, [de]
- and D_UP
- jr nz, .asm_11c708
- ld a, [de]
- and D_DOWN
- jr nz, .asm_11c731
- ld a, [de]
- and D_LEFT
- jr nz, .asm_11c746
- ld a, [de]
- and D_RIGHT
- jr nz, .asm_11c755
- ret
-
-.a
- call Function11c8f6
- ld a, $4
- ld [wcd35], a
- jr .asm_11c6fc
-.b
- ld a, [wcd2b]
- and a
- jr nz, .asm_11c6fa
- ld a, $6
- jr .asm_11c6fc
-.asm_11c6fa
- ld a, $15
-.asm_11c6fc
- ld [wJumptableIndex], a
- ld hl, wcd24
- set 3, [hl]
- call PlayClickSFX
- ret
-.asm_11c708
- ld a, [hl]
- cp $3
- jr c, .asm_11c711
- sub $3
- jr .asm_11c76e
-.asm_11c711
- ld a, [wcd26]
- sub $3
- ret c
- ld [wcd26], a
- jr .asm_11c6c4
-.asm_11c71c
- ld hl, wcd28
- ld a, [wcd26]
- add $c
- ret c
- cp [hl]
- ret nc
- ld a, [wcd26]
- add $3
- ld [wcd26], a
- jr .asm_11c6c4
-.asm_11c731
- ld a, [wcd28]
- ld b, a
- ld a, [wcd26]
- add [hl]
- add $3
- cp b
- ret nc
- ld a, [hl]
- cp $9
- jr nc, .asm_11c71c
- add $3
- jr .asm_11c76e
-.asm_11c746
- ld a, [hl]
- and a
- ret z
- cp $3
- ret z
- cp $6
- ret z
- cp $9
- ret z
- dec a
- jr .asm_11c76e
-.asm_11c755
- ld a, [wcd28]
- ld b, a
- ld a, [wcd26]
- add [hl]
- inc a
- cp b
- ret nc
- ld a, [hl]
- cp $2
- ret z
- cp $5
- ret z
- cp $8
- ret z
- cp $b
- ret z
- inc a
-.asm_11c76e
- ld [hl], a
- ret
-
-Function11c770: ; 11c770 (47:4770)
- xor a
- ld [wcd25], a
- ld [wcd26], a
- ld [wcd27], a
- ld a, [wcd2b]
- and a
- jr nz, .asm_11c7ab
- ld a, [wcd21]
- and a
- jr z, .asm_11c799
- dec a
- sla a
- ld hl, Unknown_11f220
- ld c, a
- ld b, 0
- add hl, bc
- ld a, [hli]
- ld [wcd28], a
- ld a, [hl]
-.asm_11c795
- ld [wcd29], a
- ret
-.asm_11c799
- ld a, [wc7d2]
- ld [wcd28], a
-.asm_11c79f
- ld c, $c
- call SimpleDivide
- and a
- jr nz, .asm_11c7a8
- dec b
-.asm_11c7a8
- ld a, b
- jr .asm_11c795
-.asm_11c7ab
- ld hl, $c68a + 30
- ld a, [CreditsTimer]
- ld c, a
- ld b, 0
-rept 2
- add hl, bc
-endr
- ld a, [hl]
- ld [wcd28], a
- jr .asm_11c79f
-
-Function11c7bc: ; 11c7bc (47:47bc)
- ld bc, Unknown_11c854
- ld a, [wcd2b]
- and a
- jr nz, .asm_11c814
- ld a, [wcd21]
- ld d, a
- and a
- jr z, .asm_11c7e9
- ld a, [wcd26]
- ld e, a
-.asm_11c7d0
- ld a, [bc]
- ld l, a
- inc bc
- ld a, [bc]
- ld h, a
- inc bc
- and l
- cp $ff
- ret z
- push bc
- push de
- call Function11c05d
- pop de
- pop bc
- inc e
- ld a, [wcd28]
- cp e
- jr nz, .asm_11c7d0
- ret
-.asm_11c7e9
- ld hl, wd100
- ld a, [wcd26]
- ld e, a
- add hl, de
-.asm_11c7f1
- push de
- ld a, [hli]
- ld e, a
- ld d, $0
- push hl
- ld a, [bc]
- ld l, a
- inc bc
- ld a, [bc]
- ld h, a
- inc bc
- and l
- cp $ff
- jr z, .asm_11c811
- push bc
- call Function11c05d
- pop bc
- pop hl
- pop de
- inc e
- ld a, [wcd28]
- cp e
- jr nz, .asm_11c7f1
- ret
-.asm_11c811
- pop hl
- pop de
- ret
-.asm_11c814
- ld hl, $c648
- ld a, [wcd22]
- ld e, a
- ld d, $0
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- push de
- pop hl
- ld a, [wcd26]
- ld e, a
- ld d, $0
-rept 2
- add hl, de
-endr
- ld a, [wcd26]
- ld e, a
-.asm_11c831
- push de
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push hl
- ld a, [bc]
- ld l, a
- inc bc
- ld a, [bc]
- ld h, a
- inc bc
- and l
- cp $ff
- jr z, .asm_11c851
- push bc
- call Function11c05d
- pop bc
- pop hl
- pop de
- inc e
- ld a, [wcd28]
- cp e
- jr nz, .asm_11c831
- ret
-.asm_11c851
- pop hl
- pop de
- ret
-; 11c854 (47:4854)
-
-Unknown_11c854: ; 11c854
- dwcoord 2, 8
- dwcoord 8, 8
- dwcoord 14, 8
- dwcoord 2, 10
- dwcoord 8, 10
- dwcoord 14, 10
- dwcoord 2, 12
- dwcoord 8, 12
- dwcoord 14, 12
- dwcoord 2, 14
- dwcoord 8, 14
- dwcoord 14, 14
- dw -1
-; 11c86e
-
-Function11c86e: ; 11c86e (47:486e)
- ld a, [wcd26]
- and a
- jr z, .asm_11c88a
- hlcoord 2, 17
- ld de, String_11c8f0
- call PlaceString
- hlcoord 6, 17
- ld c, $3
- xor a
-.asm_11c883
- ld [hli], a
- inc a
- dec c
- jr nz, .asm_11c883
- jr .asm_11c895
-.asm_11c88a
- hlcoord 2, 17
- ld c, $7
- ld a, $7f
-.asm_11c891
- ld [hli], a
- dec c
- jr nz, .asm_11c891
-.asm_11c895
- ld hl, wcd28
- ld a, [wcd26]
- add $c
- jr c, .asm_11c8b7
- cp [hl]
- jr nc, .asm_11c8b7
- hlcoord 16, 17
- ld de, String_11c8f3
- call PlaceString
- hlcoord 11, 17
- ld a, $3
- ld c, a
-.asm_11c8b1
- ld [hli], a
- inc a
- dec c
- jr nz, .asm_11c8b1
- ret
-.asm_11c8b7
- hlcoord 17, 16
- ld a, $7f
- ld [hl], a
- hlcoord 11, 17
- ld c, $7
-.asm_11c8c2
- ld [hli], a
- dec c
- jr nz, .asm_11c8c2
- ret
-; 11c8c7 (47:48c7)
-
-Function11c8c7: ; 11c8c7
- inc a
- push af
- and $f
- ld [hDividend], a
- pop af
- and $f0
- swap a
- ld [hQuotient], a
- xor a
- ld [$ffb5], a
- push hl
- callba Function11a80c
- pop hl
- ld a, [wcd63]
- add $f6
- ld [hli], a
- ld a, [wcd62]
- add $f6
- ld [hli], a
- ret
-; 11c8ec
-
-String_11c8ec: ; 11c8ec
- db "ぺージ@"
-; 11c8f0
-
-String_11c8f0: ; 11c8f0
- db "まえ@"
-; 11c8f3
-
-String_11c8f3: ; 11c8f3
- db "つぎ@"
-; 11c8f6
-
-Function11c8f6: ; 11c8f6 (47:48f6)
- ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
- call Function11c95d
- push hl
- ld a, [wcd2b]
- and a
- jr nz, .asm_11c938
- ld a, [wcd21]
- ld d, a
- and a
- jr z, .asm_11c927
- ld hl, wcd26
- ld a, [wcd25]
- add [hl]
-.asm_11c911
- ld e, a
-.asm_11c912
- pop hl
- push de
- call Function11c05d
- pop de
- ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
- ld c, a
- ld b, $0
- ld hl, wcd36
-rept 2
- add hl, bc
-endr
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-.asm_11c927
- ld hl, wcd26
- ld a, [wcd25]
- add [hl]
- ld c, a
- ld b, $0
- ld hl, wd100
- add hl, bc
- ld a, [hl]
- jr .asm_11c911
-.asm_11c938
- ld hl, $c648
- ld a, [wcd22]
- ld e, a
- ld d, $0
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- push de
- pop hl
- ld a, [wcd26]
- ld e, a
- ld d, $0
-rept 2
- add hl, de
-endr
- ld a, [wcd25]
- ld e, a
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- jr .asm_11c912
-
-Function11c95d: ; 11c95d (47:495d)
- sla a
- ld c, a
- ld b, 0
- ld hl, Unknown_11c986
- add hl, bc
- ld a, [hli]
- ld c, a
- ld a, [hl]
- ld b, a
- push bc
- push bc
- pop hl
- ld a, $5
- ld c, a
- ld a, $7f
-.asm_11c972
- ld [hli], a
- dec c
- jr nz, .asm_11c972
- dec hl
- ld bc, -20
- add hl, bc
- ld a, $5
- ld c, a
- ld a, $7f
-.asm_11c980
- ld [hld], a
- dec c
- jr nz, .asm_11c980
- pop hl
- ret
-; 11c986 (47:4986)
-
-Unknown_11c986:
- dwcoord 1, 2
- dwcoord 7, 2
- dwcoord 13, 2
- dwcoord 1, 4
- dwcoord 7, 4
- dwcoord 13, 4
-; 11c992
-
-Function11c992: ; 11c992 (47:4992)
- ld a, $8
- hlcoord 2, 7
-.asm_11c997
- push af
- ld a, $7f
- push hl
- ld bc, $11
- call ByteFill
- pop hl
- ld bc, $14
- add hl, bc
- pop af
- dec a
- jr nz, .asm_11c997
- ret
-
-Function11c9ab: ; 11c9ab (47:49ab)
- ld a, $7
- hlcoord 0, 6, AttrMap
- ld bc, $c8
- call ByteFill
- callba Function104061
- ret
-
-Function11c9bd: ; 11c9bd (47:49bd)
- ld de, String_11ca38
- call Function11ca7f
-
-Function11c9c3: ; 11c9c3 (47:49c3)
- ld hl, wcd2a
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and $1
- jr nz, .asm_11c9de
- ld a, [de]
- and $2
- jr nz, .asm_11c9e9
- ld a, [de]
- and $40
- jr nz, .asm_11c9f7
- ld a, [de]
- and $80
- jr nz, .asm_11c9fc
- ret
-.asm_11c9de
- ld a, [hl]
- and a
- jr nz, .asm_11c9e9
- call Function11ca5e
- xor a
- ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos)
-.asm_11c9e9
- ld hl, wcd24
- set 4, [hl]
- ld a, $4
- ld [wJumptableIndex], a
- call PlayClickSFX
- ret
-.asm_11c9f7
- ld a, [hl]
- and a
- ret z
- dec [hl]
- ret
-.asm_11c9fc
- ld a, [hl]
- and a
- ret nz
- inc [hl]
- ret
-
-Function11ca01: ; 11ca01 (47:4a01)
- hlcoord 14, 7, AttrMap
- ld de, $14
- ld a, $5
- ld c, a
-.asm_11ca0a
- push hl
- ld a, $6
- ld b, a
- ld a, $7
-.asm_11ca10
- ld [hli], a
- dec b
- jr nz, .asm_11ca10
- pop hl
- add hl, de
- dec c
- jr nz, .asm_11ca0a
-
-Function11ca19: ; 11ca19 (47:4a19)
- hlcoord 0, 12, AttrMap
- ld de, $14
- ld a, $6
- ld c, a
-.asm_11ca22
- push hl
- ld a, $14
- ld b, a
- ld a, $7
-.asm_11ca28
- ld [hli], a
- dec b
- jr nz, .asm_11ca28
- pop hl
- add hl, de
- dec c
- jr nz, .asm_11ca22
- callba Function104061
- ret
-; 11ca38 (47:4a38)
-
-String_11ca38: ; 11ca38
- db "とうろくちゅう", $25, "あいさつ", $1f, "ぜんぶ"
- next "けしても よろしいですか?@"
-; 11ca57
-
-String_11ca57: ; 11ca57
- db "はい"
- next "いいえ@"
-; 11ca5e
-
-Function11ca5e: ; 11ca5e (47:4a5e)
- xor a
-.asm_11ca5f
- push af
- call Function11ca6a
- pop af
- inc a
- cp $6
- jr nz, .asm_11ca5f
- ret
-
-Function11ca6a: ; 11ca6a (47:4a6a)
- ld hl, wcd36
- ld c, a
- ld b, $0
-rept 2
- add hl, bc
-endr
- ld [hl], b
- inc hl
- ld [hl], b
- call Function11c95d
- ld de, String_11c3bc
- call PlaceString
- ret
-
-Function11ca7f: ; 11ca7f (47:4a7f)
- push de
- ld de, Unknown_11cfc6
- call Function11cfce
- ld de, Unknown_11cfca
- call Function11cfce
- hlcoord 1, 14
- pop de
- call PlaceString
- hlcoord 16, 8
- ld de, String_11ca57
- call PlaceString
- call Function11ca01
- ld a, $1
- ld [wcd2a], a
- ld hl, wcd24
- res 4, [hl]
- call Function11cfb5
- ret
-
-Function11caad: ; 11caad (47:4aad)
- ld de, String_11cb1c
- call Function11ca7f
-
-Function11cab3: ; 11cab3 (47:4ab3)
- ld hl, wcd2a
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and $1
- jr nz, .asm_11cace
- ld a, [de]
- and $2
- jr nz, .asm_11caf9
- ld a, [de]
- and $40
- jr nz, .asm_11cb12
- ld a, [de]
- and $80
- jr nz, .asm_11cb17
- ret
-.asm_11cace
- call PlayClickSFX
- ld a, [hl]
- and a
- jr nz, .asm_11cafc
- ld a, [wcd35]
- and a
- jr z, .asm_11caf3
- cp $ff
- jr z, .asm_11caf3
- ld a, $ff
- ld [wcd35], a
- hlcoord 1, 14
- ld de, String_11cb31
- call PlaceString
- ld a, $1
- ld [wcd2a], a
- ret
-.asm_11caf3
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-.asm_11caf9
- call PlayClickSFX
-.asm_11cafc
- ld hl, wcd24
- set 4, [hl]
- ld a, $4
- ld [wJumptableIndex], a
- ld a, [wcd35]
- cp $ff
- ret nz
- ld a, $1
- ld [wcd35], a
- ret
-.asm_11cb12
- ld a, [hl]
- and a
- ret z
- dec [hl]
- ret
-.asm_11cb17
- ld a, [hl]
- and a
- ret nz
- inc [hl]
- ret
-; 11cb1c (47:4b1c)
-
-String_11cb1c: ; 11cb1c
- db "あいさつ", $25, "とうろく", $1f, "ちゅうし"
- next "しますか?@"
-; 11cb31
-
-String_11cb31: ; 11cb31
- db "とうろくちゅう", $25, "あいさつ", $24, "ほぞん"
- next "されません", $4a, "よろしい ですか?@"
-; 11cb52
-
-Function11cb52: ; 11cb52 (47:4b52)
- ld hl, Unknown_11cc01
- ld a, [MenuSelection2]
-.asm_11cb58
- dec a
- jr z, .asm_11cb5f
-rept 2
- inc hl
-endr
- jr .asm_11cb58
-.asm_11cb5f
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- call Function11ca7f
-
-Function11cb66: ; 11cb66 (47:4b66)
- ld hl, wcd2a
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and $1
- jr nz, .asm_11cb81
- ld a, [de]
- and $2
- jr nz, .asm_11cbd7
- ld a, [de]
- and $40
- jr nz, .asm_11cbeb
- ld a, [de]
- and $80
- jr nz, .asm_11cbf0
- ret
-.asm_11cb81
- ld a, [hl]
- and a
- jr nz, .asm_11cbd4
- ld a, $4
- call GetSRAMBank
- ld hl, $a007
- ld a, [MenuSelection2]
- dec a
- sla a
- sla a
- ld c, a
- sla a
- add c
- ld c, a
- ld b, $0
- add hl, bc
- ld de, wcd36
- ld c, $c
-.asm_11cba2
- ld a, [de]
- ld [hli], a
- inc de
- dec c
- jr nz, .asm_11cba2
- call CloseSRAM
- call PlayClickSFX
- ld de, Unknown_11cfc6
- call Function11cfce
- ld hl, Unknown_11cc7e
- ld a, [MenuSelection2]
-.asm_11cbba
- dec a
- jr z, .asm_11cbc1
-rept 2
- inc hl
-endr
- jr .asm_11cbba
-.asm_11cbc1
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- hlcoord 1, 14
- call PlaceString
- ld hl, wJumptableIndex
- inc [hl]
- inc hl
- ld a, $10
- ld [hl], a
- ret
-.asm_11cbd4
- call PlayClickSFX
-.asm_11cbd7
- ld de, Unknown_11cfba
- call Function11cfce
- call Function11c38a
- ld hl, wcd24
- set 4, [hl]
- ld a, $4
- ld [wJumptableIndex], a
- ret
-.asm_11cbeb
- ld a, [hl]
- and a
- ret z
- dec [hl]
- ret
-.asm_11cbf0
- ld a, [hl]
- and a
- ret nz
- inc [hl]
- ret
-
-Function11cbf5: ; 11cbf5 (47:4bf5)
- call WaitSFX
- ld hl, wcf64
- dec [hl]
- ret nz
- dec hl
- set 7, [hl]
- ret
-; 11cc01 (47:4c01)
-
-Unknown_11cc01: ; 11cc01
- dw String_11cc09
- dw String_11cc23
- dw String_11cc42
- dw String_11cc60
-
-String_11cc09: ; 11cc09
- db "じこしょうかい は"
- next "この あいさつで いいですか?@"
-
-String_11cc23: ; 11cc23
- db "たいせん ", $4a, "はじまるとき は"
- next "この あいさつで いいですか?@"
-
-String_11cc42: ; 11cc42
- db "たいせん ", $1d, "かったとき は"
- next "この あいさつで いいですか?@"
-
-String_11cc60: ; 11cc60
- db "たいせん ", $1d, "まけたとき は"
- next "この あいさつで いいですか?@"
-; 11cc7e
-
-Unknown_11cc7e: ; 11cc7e
- dw String_11cc86
- dw String_11cc9d
- dw String_11ccb9
- dw String_11ccd4
-
-String_11cc86: ; 11cc86
- db "じこしょうかい の"
- next "あいさつ", $1f, "とうろくした!@"
-
-String_11cc9d: ; 11cc9d
- db "たいせん ", $4a, "はじまるとき の"
- next "あいさつ", $1f, "とうろくした!@"
-
-String_11ccb9: ; 11ccb9
- db "たいせん ", $1d, "かったとき の"
- next "あいさつ", $1f, "とうろくした!@"
-
-String_11ccd4: ; 11ccd4
- db "たいせん ", $1d, "まけたとき の"
- next "あいさつ", $1f, "とうろくした!@"
-; 11ccef
-
-Function11ccef: ; 11ccef (47:4cef)
- ld de, Unknown_11cfc6
- call Function11cfce
- hlcoord 1, 14
- ld de, String_11cd10
- call PlaceString
- call Function11ca19
- call Function11cfb5
-
-Function11cd04: ; 11cd04 (47:4d04)
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and a
- ret z
- ld a, $4
- ld [wJumptableIndex], a
- ret
-; 11cd10 (47:4d10)
-
-String_11cd10: ; 11cd10
- db "なにか ことば", $1f, "いれてください@"
-; 11cd20
-
-Function11cd20: ; 11cd20 (47:4d20)
- call Function11c277
- ld de, Unknown_11cfc6
- call Function11cfce
- hlcoord 1, 14
- ld a, [wcd2b]
- ld [wcd2c], a
- and a
- jr nz, .asm_11cd3a
- ld de, String_11cdc7
- jr .asm_11cd3d
-.asm_11cd3a
- ld de, String_11cdd9
-.asm_11cd3d
- call PlaceString
- hlcoord 4, 8
- ld de, String_11cdf5
- call PlaceString
- call Function11cdaa
- ld hl, wcd24
- res 5, [hl]
- call Function11cfb5
-
-Function11cd54: ; 11cd54 (47:4d54)
- ld hl, wcd2c
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and A_BUTTON
- jr nz, .asm_11cd6f
- ld a, [de]
- and B_BUTTON
- jr nz, .asm_11cd73
- ld a, [de]
- and D_UP
- jr nz, .asm_11cd8b
- ld a, [de]
- and D_DOWN
- jr nz, .asm_11cd94
- ret
-
-.asm_11cd6f
- ld a, [hl]
- ld [wcd2b], a
-.asm_11cd73
- ld a, [wcd2b]
- and a
- jr nz, .asm_11cd7d
- ld a, $6
- jr .asm_11cd7f
-
-.asm_11cd7d
- ld a, $15
-.asm_11cd7f
- ld [wJumptableIndex], a
- ld hl, wcd24
- set 5, [hl]
- call PlayClickSFX
- ret
-
-.asm_11cd8b
- ld a, [hl]
- and a
- ret z
- dec [hl]
- ld de, String_11cdc7
- jr .asm_11cd9b
-
-.asm_11cd94
- ld a, [hl]
- and a
- ret nz
- inc [hl]
- ld de, String_11cdd9
-.asm_11cd9b
- push de
- ld de, Unknown_11cfc6
- call Function11cfce
- pop de
- hlcoord 1, 14
- call PlaceString
- ret
-
-Function11cdaa: ; 11cdaa (47:4daa)
- ld a, $2
- hlcoord 0, 6, AttrMap
- ld bc, $78
- call ByteFill
- ld a, $7
- hlcoord 0, 12, AttrMap
- ld bc, $50
- call ByteFill
- callba Function104061
- ret
-; 11cdc7 (47:4dc7)
-
-String_11cdc7: ; 11cdc7
- db "ことば", $1f, "しゅるいべつに"
- next "えらべます@"
-; 11cdd9
-
-String_11cdd9: ; 11cdd9
- db "ことば", $1f, "アイウエォ の"
- next "じゅんばんで ひょうじ します@"
-; 11cdf5
-
-String_11cdf5: ; 11cdf5
- db "しゅるいべつ モード"
- next "アイウエォ モード@"
-; 11ce0b
-
-Function11ce0b: ; 11ce0b (47:4e0b)
- call Function11c277
- hlcoord 1, 7
- ld de, String_11cf79
- call PlaceString
- hlcoord 1, 17
- ld de, String_11c62a
- call PlaceString
- call Function11c618
- ld hl, wcd24
- res 2, [hl]
- call Function11cfb5
-
-Function11ce2b: ; 11ce2b (47:4e2b)
- ld a, [CreditsTimer]
- sla a
- sla a
- ld c, a
- ld b, 0
- ld hl, Unknown_11ceb9
- add hl, bc
-
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and START
- jr nz, .start
- ld a, [de]
- and SELECT
- jr nz, .select
- ld a, [de]
- and A_BUTTON
- jr nz, .a
- ld a, [de]
- and B_BUTTON
- jr nz, .b
-
- ld de, hJoyLast
- ld a, [de]
- and D_UP
- jr nz, .up
- ld a, [de]
- and D_DOWN
- jr nz, .down
- ld a, [de]
- and D_LEFT
- jr nz, .left
- ld a, [de]
- and D_RIGHT
- jr nz, .right
-
- ret
-
-.a
- ld a, [CreditsTimer]
- cp $2d
- jr c, .asm_11ce92
- sub $2d
- jr z, .asm_11cea4
- dec a
- jr z, .asm_11ce96
- jr .b
-
-.start
- ld hl, wcd24
- set 0, [hl]
- ld a, $8
- ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos)
-.b
- ld a, $4
- jr .asm_11ce98
-.select
- ld a, [wcd2b]
- xor $1
- ld [wcd2b], a
- ld a, $6
- jr .asm_11ce98
-
-.asm_11ce92
- ld a, $8
- jr .asm_11ce98
-
-.asm_11ce96
- ld a, $13
-.asm_11ce98
- ld [wJumptableIndex], a
- ld hl, wcd24
- set 2, [hl]
- call PlayClickSFX
- ret
-.asm_11cea4
- ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
- call Function11ca6a
- call PlayClickSFX
- ret
-
-.left
- inc hl
-.down
- inc hl
-.right
- inc hl
-.up
- ld a, [hl]
- cp $ff
- ret z
- ld [CreditsTimer], a
- ret
-; 11ceb9 (47:4eb9)
-
-Unknown_11ceb9: ; 11ceb9
- ; up left down right
- db $ff, $01, $05, $ff
- db $ff, $02, $06, $00
- db $ff, $03, $07, $01
- db $ff, $04, $08, $02
- db $ff, $14, $09, $03
- db $00, $06, $0a, $ff
- db $01, $07, $0b, $05
- db $02, $08, $0c, $06
- db $03, $09, $0d, $07
- db $04, $19, $0e, $08
- db $05, $0b, $0f, $ff
- db $06, $0c, $10, $0a
- db $07, $0d, $11, $0b
- db $08, $0e, $12, $0c
- db $09, $1e, $13, $0d
- db $0a, $10, $2d, $ff
- db $0b, $11, $2d, $0f
- db $0c, $12, $2d, $10
- db $0d, $13, $2d, $11
- db $0e, $26, $2d, $12
- db $ff, $15, $19, $04
- db $ff, $16, $1a, $14
- db $ff, $17, $1b, $15
- db $ff, $18, $1c, $16
- db $ff, $23, $1d, $17
- db $14, $1a, $1e, $09
- db $15, $1b, $1f, $19
- db $16, $1c, $20, $1a
- db $17, $1d, $21, $1b
- db $18, $2b, $22, $1c
- db $19, $1f, $26, $0e
- db $1a, $20, $27, $1e
- db $1b, $21, $28, $1f
- db $1c, $22, $29, $20
- db $1d, $2c, $2a, $21
- db $ff, $24, $2b, $18
- db $ff, $25, $2b, $23
- db $ff, $ff, $2b, $24
- db $1e, $27, $2e, $13
- db $1f, $28, $2e, $26
- db $20, $29, $2e, $27
- db $21, $2a, $2e, $28
- db $22, $ff, $2e, $29
- db $23, $ff, $2c, $1d
- db $2b, $ff, $2f, $22
- db $0f, $2e, $ff, $ff
- db $26, $2f, $ff, $2d
- db $2c, $ff, $ff, $2e
-; 11cf79
-
-String_11cf79: ; 11cf79
- db "あいうえお なにぬねの や ゆ よ"
- next "かきくけこ はひふへほ わ"
- next "さしすせそ まみむめも そのた"
- next "たちつてと らりるれろ"
- db "@"
-; 11cfb5
-
-Function11cfb5: ; 11cfb5 (47:4fb5)
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; 11cfba (47:4fba)
-
-Unknown_11cfba:
- db 0, 0 ; start coords
- db 20, 6 ; end coords
-
-Unknown_11cfbe:
- db 0, 14 ; start coords
- db 20, 4 ; end coords
-
-Unknown_11cfc2:
- db 0, 6 ; start coords
- db 20, 10 ; end coords
-
-Unknown_11cfc6:
- db 0, 12 ; start coords
- db 20, 6 ; end coords
-
-Unknown_11cfca:
- db 14, 7 ; start coords
- db 6, 5 ; end coords
-; 11cfce
-
-Function11cfce: ; 11cfce (47:4fce)
- hlcoord 0, 0
- ld bc, $14
- ld a, [de]
- inc de
- push af
- ld a, [de]
- inc de
- and a
-.asm_11cfda
- jr z, .asm_11cfe0
- add hl, bc
- dec a
- jr .asm_11cfda
-.asm_11cfe0
- pop af
- ld c, a
- ld b, 0
- add hl, bc
- push hl
- ld a, $79
- ld [hli], a
- ld a, [de]
- inc de
-rept 2
- dec a
-endr
- jr z, .asm_11cff6
- ld c, a
- ld a, $7a
-.asm_11cff2
- ld [hli], a
- dec c
- jr nz, .asm_11cff2
-.asm_11cff6
- ld a, $7b
- ld [hl], a
- pop hl
- ld bc, $14
- add hl, bc
- ld a, [de]
- dec de
-rept 2
- dec a
-endr
- jr z, .asm_11d022
- ld b, a
-.asm_11d005
- push hl
- ld a, $7c
- ld [hli], a
- ld a, [de]
-rept 2
- dec a
-endr
- jr z, .asm_11d015
- ld c, a
- ld a, $7f
-.asm_11d011
- ld [hli], a
- dec c
- jr nz, .asm_11d011
-.asm_11d015
- ld a, $7c
- ld [hl], a
- pop hl
- push bc
- ld bc, $14
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_11d005
-.asm_11d022
- ld a, $7d
- ld [hli], a
- ld a, [de]
-rept 2
- dec a
-endr
- jr z, .asm_11d031
- ld c, a
- ld a, $7a
-.asm_11d02d
- ld [hli], a
- dec c
- jr nz, .asm_11d02d
-.asm_11d031
- ld a, $7e
- ld [hl], a
- ret
-
-Function11d035: ; 11d035 (47:5035)
- hlcoord 0, 0
- ld bc, $14
- ld a, [de]
- inc de
- push af
- ld a, [de]
- inc de
- and a
-.asm_11d041
- jr z, .asm_11d047
- add hl, bc
- dec a
- jr .asm_11d041
-.asm_11d047
- pop af
- ld c, a
- ld b, $0
- add hl, bc
- push hl
- ld a, $79
- ld [hl], a
- pop hl
- push hl
- ld a, [de]
- dec a
- inc de
- ld c, a
- add hl, bc
- ld a, $7b
- ld [hl], a
- call Function11d0ac
- ld a, $7e
- ld [hl], a
- pop hl
- push hl
- call Function11d0ac
- ld a, $7d
- ld [hl], a
- pop hl
- push hl
- inc hl
- push hl
- call Function11d0ac
- pop bc
- dec de
- ld a, [de]
- cp $2
- jr z, .asm_11d082
-rept 2
- dec a
-endr
-.asm_11d078
- push af
- ld a, $7a
- ld [hli], a
- ld [bc], a
- inc bc
- pop af
- dec a
- jr nz, .asm_11d078
-.asm_11d082
- pop hl
- ld bc, $14
- add hl, bc
- push hl
- ld a, [de]
- dec a
- ld c, a
- ld b, $0
- add hl, bc
- pop bc
- inc de
- ld a, [de]
- cp $2
- ret z
- push bc
-rept 2
- dec a
-endr
- ld c, a
- ld b, a
- ld de, $14
-.asm_11d09c
- ld a, $7c
- ld [hl], a
- add hl, de
- dec c
- jr nz, .asm_11d09c
- pop hl
-.asm_11d0a4
- ld a, $7c
- ld [hl], a
- add hl, de
- dec b
- jr nz, .asm_11d0a4
- ret
-
-Function11d0ac: ; 11d0ac (47:50ac)
- ld a, [de]
- dec a
- ld bc, $14
-.asm_11d0b1
- add hl, bc
- dec a
- jr nz, .asm_11d0b1
- ret
-
-Function11d0b6: ; 11d0b6 (47:50b6)
- ld hl, $c
- add hl, bc
- ld a, [hl]
- ld e, a
- ld d, 0
- ld hl, Jumptable_11d0c7
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-Jumptable_11d0c7: ; 11d0c7 (47:50c7)
- dw Function11d0dd
- dw Function11d0e9
- dw Function11d0f5
- dw Function11d10f
- dw Function11d134
- dw Function11d145
- dw Function11d156
- dw Function11d175
- dw Function11d1d7
- dw Function11d1d1
- dw Function11d1fc
-
-
-Function11d0dd: ; 11d0dd (47:50dd)
- ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
- sla a
- ld hl, Unknown_11d208
- ld e, $1
- jr asm_11d11e
-
-Function11d0e9: ; 11d0e9 (47:50e9)
- ld a, [wcd21]
- sla a
- ld hl, Unknown_11d21a
- ld e, $2
- jr asm_11d11e
-
-Function11d0f5: ; 11d0f5 (47:50f5)
- ld hl, Unknown_11d2be
- ld a, [CreditsTimer]
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- call Function3b3c
- ld a, [CreditsTimer]
- sla a
- ld hl, Unknown_11d23e
- ld e, $4
- jr asm_11d11e
-
-Function11d10f: ; 11d10f (47:510f)
- ld a, $27
- call Function3b3c
- ld a, [wcd25]
- sla a
- ld hl, Unknown_11d29e
- ld e, $8
-
-asm_11d11e: ; 11d11e (47:511e)
- push de
- ld e, a
- ld d, $0
- add hl, de
- push hl
- pop de
- ld hl, $4
- add hl, bc
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- ld [hl], a
- pop de
- ld a, e
- call Function11d2ee
- ret
-
-Function11d134: ; 11d134 (47:5134)
- ld a, $27
- call Function3b3c
- ld a, [wcd2a]
- sla a
- ld hl, Unknown_11d2b6
- ld e, $10
- jr asm_11d11e
-
-Function11d145: ; 11d145 (47:5145)
- ld a, $27
- call Function3b3c
- ld a, [wcd2c]
- sla a
- ld hl, Unknown_11d2ba
- ld e, $20
- jr asm_11d11e
-
-Function11d156: ; 11d156 (47:5156)
- ld a, $2a
- call Function3b3c
- ld a, [wcd4a]
- sla a
- sla a
- sla a
- add $18
- ld hl, $4
- add hl, bc
- ld [hli], a
- ld a, $30
- ld [hl], a
- ld a, $1
- ld e, a
- call Function11d2ee
- ret
-
-Function11d175: ; 11d175 (47:5175)
- ld a, [wcd4d]
- cp $4
- jr z, .asm_11d180
- ld a, $28
- jr .asm_11d182
-.asm_11d180
- ld a, $26
-.asm_11d182
- call Function3b3c
- ld a, [wcd4d]
- cp $4
- jr z, .asm_11d1b1
- ld a, [wcd4c]
- sla a
- sla a
- sla a
- add $20
- ld hl, $4
- add hl, bc
- ld [hli], a
- ld a, [wcd4d]
- sla a
- sla a
- sla a
- sla a
- add $48
- ld [hl], a
- ld a, $2
- ld e, a
- call Function11d2ee
- ret
-.asm_11d1b1
- ld a, [wcd4c]
- sla a
- sla a
- sla a
- ld e, a
- sla a
- sla a
- add e
- add $18
- ld hl, $4
- add hl, bc
- ld [hli], a
- ld a, $8a
- ld [hl], a
- ld a, $2
- ld e, a
- call Function11d2ee
- ret
-
-Function11d1d1: ; 11d1d1 (47:51d1)
- ld d, $98
- ld a, $2c
- jr asm_11d1db
-
-Function11d1d7: ; 11d1d7 (47:51d7)
- ld d, $10
- ld a, $2b
-
-asm_11d1db: ; 11d1db (47:51db)
- push de
- call Function3b3c
- ld a, [wcd4a]
- sla a
- sla a
- sla a
- ld e, a
- sla a
- add e
- add $40
- ld hl, $5
- add hl, bc
- ld [hld], a
- pop af
- ld [hl], a
- ld a, $4
- ld e, a
- call Function11d2ee
- ret
-
-Function11d1fc: ; 11d1fc (47:51fc)
- ld a, $26
- call Function3b3c
- ld a, $8
- ld e, a
- call Function11d2ee
- ret
-; 11d208 (47:5208)
-
-Unknown_11d208: ; 11d208
- db $0d, $1a
- db $3d, $1a
- db $6d, $1a
- db $0d, $2a
- db $3d, $2a
- db $6d, $2a
- db $0d, $8a
- db $3d, $8a
- db $6d, $8a
-
-Unknown_11d21a: ; 11d21a
- db $0d, $42
- db $3d, $42
- db $6d, $42
- db $0d, $52
- db $3d, $52
- db $6d, $52
- db $0d, $62
- db $3d, $62
- db $6d, $62
- db $0d, $72
- db $3d, $72
- db $6d, $72
- db $0d, $82
- db $3d, $82
- db $6d, $82
- db $0d, $92
- db $3d, $92
- db $6d, $92
-
-Unknown_11d23e: ; 11d23e
- db $10, $48
- db $18, $48
- db $20, $48
- db $28, $48
- db $30, $48
- db $10, $58
- db $18, $58
- db $20, $58
- db $28, $58
- db $30, $58
- db $10, $68
- db $18, $68
- db $20, $68
- db $28, $68
- db $30, $68
- db $10, $78
- db $18, $78
- db $20, $78
- db $28, $78
- db $30, $78
- db $40, $48
- db $48, $48
- db $50, $48
- db $58, $48
- db $60, $48
- db $40, $58
- db $48, $58
- db $50, $58
- db $58, $58
- db $60, $58
- db $40, $68
- db $48, $68
- db $50, $68
- db $58, $68
- db $60, $68
- db $70, $48
- db $80, $48
- db $90, $48
- db $40, $78
- db $48, $78
- db $50, $78
- db $58, $78
- db $60, $78
- db $70, $58
- db $70, $68
- db $0d, $92
- db $3d, $92
- db $6d, $92
-
-Unknown_11d29e: ; 11d29e
- db $10, $50
- db $40, $50
- db $70, $50
- db $10, $60
- db $40, $60
- db $70, $60
- db $10, $70
- db $40, $70
- db $70, $70
- db $10, $80
- db $40, $80
- db $70, $80
-
-Unknown_11d2b6: ; 11d2b6
- db $80, $50
- db $80, $60
-
-Unknown_11d2ba: ; 11d2ba
- db $20, $50
- db $20, $60
-
-Unknown_11d2be: ; 11d2be
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $29, $26
- db $26, $26
-
-Function11d2ee: ; 11d2ee (47:52ee)
- ld hl, wcd24
- and [hl]
- jr nz, .asm_11d316
- ld a, e
- ld hl, wcd23
- and [hl]
- jr z, .asm_11d30f
- ld hl, $e
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_11d305
- dec [hl]
- ret
-.asm_11d305
- ld a, $0
- ld [hld], a
- ld a, $1
- xor [hl]
- ld [hl], a
- and a
- jr nz, .asm_11d316
-.asm_11d30f
- ld hl, $7
- add hl, bc
- xor a
- ld [hl], a
- ret
-.asm_11d316
- ld hl, $5
- add hl, bc
- ld a, $b0
- sub [hl]
- ld hl, $7
- add hl, bc
- ld [hl], a
- ret
-
-Function11d323: ; 11d323
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_11d33a
- ld de, wMapPals
- ld bc, 16 * 8
- call CopyBytes
- pop af
- ld [rSVBK], a
- ret
-; 11d33a
-
-Palette_11d33a:
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 16, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 23, 17, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
-; 11d3ba
-
-Function11d3ba: ; 11d3ba
- ld a, [rSVBK]
- push af
- ld hl, BattleMonSpclDef
- ld a, $0
- ld [wcd2d], a
- ld [hli], a
- ld a, $d8
- ld [wcd2e], a
- ld [hl], a
- ld a, $fe
- ld [wcd2f], a
- ld a, $54
- ld [wcd30], a
- ld a, $a8
- ld [wcd31], a
- ld a, $c6
- ld [wcd32], a
- ld a, $4a
- ld [wcd33], a
- ld a, $c6
- ld [wcd34], a
- ld hl, Unknown_11f23c
- ld a, $2d
-
-Function11d3ef: ; 11d3ef
- push af
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- push hl
- ld hl, wMapPals
- add hl, de
- ld a, [wcd2d]
- ld e, a
- ld a, [wcd2e]
- ld d, a
- push bc
-.asm_11d406
- ld a, $3
- ld [rSVBK], a
- ld a, [hli]
- push af
- ld a, $5
- ld [rSVBK], a
- pop af
- ld [de], a
- inc de
- ld a, $3
- ld [rSVBK], a
- ld a, [hli]
- push af
- ld a, $5
- ld [rSVBK], a
- pop af
- ld [de], a
- inc de
- dec bc
- ld a, c
- or b
- jr nz, .asm_11d406
- ld a, [wcd2f]
- ld l, a
- ld a, [wcd30]
- ld h, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld a, l
- ld [wcd2f], a
- ld a, h
- ld [wcd30], a
- push bc
- pop hl
- ld c, $0
-.asm_11d43d
- ld a, [hl]
- cp $ff
- jr z, .asm_11d453
- call Function11d493
- jr nz, .asm_11d44a
- inc hl
- jr .asm_11d43d
-
-.asm_11d44a
- ld a, [hli]
- ld [de], a
- inc de
- xor a
- ld [de], a
- inc de
- inc c
- jr .asm_11d43d
-
-.asm_11d453
- pop hl
- ld b, $0
- add hl, bc
- push hl
- pop bc
- ld a, [wcd31]
- ld l, a
- ld a, [wcd32]
- ld h, a
- ld a, c
- ld [hli], a
- ld a, b
- ld [hli], a
- ld a, l
- ld [wcd31], a
- ld a, h
- ld [wcd32], a
- ld a, [wcd33]
- ld l, a
- ld a, [wcd34]
- ld h, a
- ld a, e
- ld [wcd2d], a
- ld [hli], a
- ld a, d
- ld [wcd2e], a
- ld [hli], a
- ld a, l
- ld [wcd33], a
- ld a, h
- ld [wcd34], a
- pop hl
- pop af
- dec a
- jr z, .asm_11d48f
- jp Function11d3ef
-
-.asm_11d48f
- pop af
- ld [rSVBK], a
- ret
-; 11d493
-
-Function11d493: ; 11d493
- push hl
- push bc
- push de
- dec a
- ld hl, rSVBK
- ld e, $1
- ld [hl], e
- call CheckSeenMon
- ld hl, rSVBK
- ld e, $5
- ld [hl], e
- pop de
- pop bc
- pop hl
- ret
-; 11d4aa
-
-Function11d4aa: ; 11d4aa
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- ld hl, Unknown_11daac
- ld bc, Unknown_11f220
- xor a
- ld [wcd2d], a
- inc a
- ld [wcd2e], a
- ld a, $e
-.asm_11d4c1
- push af
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push hl
- ld hl, $0005
- add hl, de
- ld a, [bc]
-rept 2
- inc bc
-endr
- push bc
-.asm_11d4cf
- push af
- push hl
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- ld hl, wd000
- add hl, de
- ld a, [wcd2d]
- ld [hli], a
- inc a
- ld [wcd2d], a
- ld a, [wcd2e]
- ld [hl], a
- pop hl
- ld de, $0008
- add hl, de
- pop af
- dec a
- jr nz, .asm_11d4cf
- ld hl, wcd2d
- xor a
- ld [hli], a
- inc [hl]
- pop bc
- pop hl
- pop af
- dec a
- jr nz, .asm_11d4c1
- pop af
- ld [rSVBK], a
- ret
-; 11d4fe
-
-
-Unknown_11d4fe:
-; Pokemon sorted by kana.
-; Notably, Rhydon is missing.
-
- dw Unknown_11d558
- dw Unknown_11d55f
- dw Unknown_11d565
- dw Unknown_11d56c
- dw Unknown_11d574
- dw Unknown_11d57f
- dw Unknown_11d58e
- dw Unknown_11d598
- dw Unknown_11d59f
- dw Unknown_11d5a3
- dw Unknown_11d5b2
- dw Unknown_11d5bb
- dw Unknown_11d5c0
- dw Unknown_11d5c8
- dw Unknown_11d5cb
- dw Unknown_11d5cd
- dw Unknown_11d5d1
- dw Unknown_11d5d4
- dw Unknown_11d5d6
- dw Unknown_11d5dc
- dw Unknown_11d5e7
- dw Unknown_11d5ea
- dw Unknown_11d5f7
- dw Unknown_11d5f9
- dw Unknown_11d5fc
- dw Unknown_11d5fe
- dw Unknown_11d60e
- dw Unknown_11d61d
- dw Unknown_11d62e
- dw Unknown_11d636
- dw Unknown_11d63e
- dw Unknown_11d649
- dw Unknown_11d64e
- dw Unknown_11d651
- dw Unknown_11d656
- dw Unknown_11d65a
- dw Unknown_11d660
- dw Unknown_11d662
- dw Unknown_11d665
- dw Unknown_11d66d
- dw Unknown_11d671
- dw Unknown_11d674
- dw Unknown_11d678
- dw Unknown_11d67a
- dw Unknown_11d67d
-
-Unknown_11d558: db EKANS, ARBOK, SEAKING, ARIADOS, CROCONAW, UNOWN, $ff
-Unknown_11d55f: db EEVEE, GEODUDE, SPINARAK, PILOSWINE, ONIX, $ff
-Unknown_11d565: db ARCANINE, SUDOWOODO, WEEPINBELL, VICTREEBEL, WOOPER, SWINUB, $ff
-Unknown_11d56c: db SKARMORY, AIPOM, ESPEON, HITMONCHAN, ELEKID, ELECTABUZZ, ENTEI, $ff
-Unknown_11d574: db FERALIGATR, FURRET, OCTILLERY, PRIMEAPE, SENTRET, STANTLER, SPEAROW, FEAROW, OMASTAR, OMANYTE, $ff
-Unknown_11d57f: db GROWLITHE, MACHAMP, DRAGONITE, PINSIR, SNORLAX, KABUTO, KABUTOPS, HITMONTOP, WARTORTLE, BLASTOISE, FARFETCH_D, CUBONE, MAROWAK, KANGASKHAN, $ff
-Unknown_11d58e: db SUNFLORA, CATERPIE, GYARADOS, RAPIDASH, NINETALES, GIRAFARIG, BELLOSSOM, KINGDRA, KINGLER, $ff
-Unknown_11d598: db GLOOM, PINECO, GLIGAR, KRABBY, GRANBULL, CROBAT, $ff
-Unknown_11d59f: db ABRA, GENGAR, TAUROS, $ff
-Unknown_11d5a3: db MAGIKARP, MAGNEMITE, GASTLY, HAUNTER, MACHOKE, KAKUNA, PSYDUCK, PHANPY, RATTATA, GOLDUCK, GOLBAT, GOLEM, GRAVELER, VENONAT, $ff
-Unknown_11d5b2: db RHYHORN, PUPITAR, CORSOLA, HITMONLEE, ZAPDOS, JOLTEON, SANDSHREW, SANDSLASH, $ff
-Unknown_11d5bb: db SEADRA, SHELLDER, VAPOREON, DEWGONG, $ff
-Unknown_11d5c0: db SUICUNE, STARMIE, SCYTHER, ZUBAT, BEEDRILL, HYPNO, DROWZEE, $ff
-Unknown_11d5c8: db SQUIRTLE, CELEBI, $ff
-Unknown_11d5cb: db WOBBUFFET, $ff
-Unknown_11d5cd: db DUGTRIO, HORSEA, EXEGGCUTE, $ff
-Unknown_11d5d1: db CHIKORITA, CHINCHOU, $ff
-Unknown_11d5d4: db SHUCKLE, $ff
-Unknown_11d5d6: db DIGLETT, REMORAID, DELIBIRD, HOUNDOUR, AMPHAROS, $ff
-Unknown_11d5dc: db DODUO, DODRIO, SMEARGLE, KOFFING, TENTACRUEL, TOGETIC, TOGEPI, GOLDEEN, METAPOD, DONPHAN, $ff
-Unknown_11d5e7: db ODDISH, EXEGGUTOR, $ff
-Unknown_11d5ea: db NIDOKING, NIDOQUEEN, NIDORAN_M, NIDORAN_F, NIDORINA, NIDORINO, MEOWTH, SNEASEL, POLIWHIRL, POLITOED, POLIWRATH, POLIWAG, $ff
-Unknown_11d5f7: db QUAGSIRE, $ff
-Unknown_11d5f9: db NATU, XATU, $ff
-Unknown_11d5fc: db DUNSPARCE, $ff
-Unknown_11d5fe: db SEEL, STEELIX, TYPHLOSION, DRAGONAIR, BUTTERFREE, SCIZOR, HOPPIP, BLISSEY, PARAS, PARASECT, QWILFISH, MR__MIME, TYROGUE, CLOYSTER, TYRANITAR, $ff
-Unknown_11d60e: db CLEFFA, WEEDLE, PIKACHU, CLEFABLE, PIDGEOT, PIDGEOTTO, PICHU, CLEFAIRY, CHARMANDER, STARYU, CYNDAQUIL, SUNKERN, TEDDIURSA, VOLTORB, $ff
-Unknown_11d61d: db MOLTRES, FLAREON, ALAKAZAM, MAGMAR, FORRETRESS, WIGGLYTUFF, IVYSAUR, BULBASAUR, VENUSAUR, AERODACTYL, MAGBY, IGGLYBUFF, UMBREON, ARTICUNO, JIGGLYPUFF, SNUBBULL, $ff
-Unknown_11d62e: db BAYLEEF, GRIMER, MUK, HERACROSS, HOUNDOOM, PERSIAN, LICKITUNG, $ff
-Unknown_11d636: db HO_OH, HOOTHOOT, PIDGEY, PONYTA, SKIPLOOM, PORYGON, PORYGON2, $ff
-Unknown_11d63e: db MAGCARGO, SLUGMA, QUILAVA, BELLSPROUT, WEEZING, MARILL, AZUMARILL, ELECTRODE, MANKEY, MANTINE, $ff
-Unknown_11d649: db DRATINI, MEW, MEWTWO, MILTANK, $ff
-Unknown_11d64e: db MISDREAVUS, SMOOCHUM, $ff
-Unknown_11d651: db MEGANIUM, DITTO, TENTACOOL, MAREEP, $ff
-Unknown_11d656: db FLAAFFY, VENOMOTH, TANGELA, $ff
-Unknown_11d65a: db SLOWKING, SLOWBRO, SLOWPOKE, MURKROW, YANMA, $ff
-Unknown_11d660: db KADABRA, $ff
-Unknown_11d662: db LARVITAR, NOCTOWL, $ff
-Unknown_11d665: db RAIKOU, RAICHU, CHANSEY, RATICATE, LAPRAS, VILEPLUME, LANTURN, $ff
-Unknown_11d66d: db CHARMELEON, CHARIZARD, URSARING, $ff
-Unknown_11d671: db JYNX, LUGIA, $ff
-Unknown_11d674: db MAGNETON, LEDIAN, LEDYBA, $ff
-Unknown_11d678: db VULPIX, $ff
-Unknown_11d67a: db JUMPLUFF, TOTODILE, MACHOP
-Unknown_11d67d: db $ff
-; 11d67e
-
-GFX_11d67e:
-INCBIN "gfx/pokedex/select_start.2bpp"
-; 11d6de
-
-LZ_11d6de:
-INCBIN "gfx/pokedex/slowpoke.2bpp.lz"
-; 11da52
-
-Strings_11da52: ; 11da52
- db "ポケモン@@"
- db "タイプ@@@"
- db "あいさつ@@"
- db "ひと@@@@"
- db "バトル@@@"
- db "こえ@@@@"
- db "かいわ@@@"
- db "きもち@@@"
- db "じょうたい@"
- db "せいかつ@@"
- db "しゅみ@@@"
- db "こうどう@@"
- db "じかん@@@"
- db "むすび@@@"
- db "あれこれ@@"
-; 11daac
-
-Unknown_11daac: ; 11daac
- dw Unknown_11dac8
- dw Unknown_11db58
- dw Unknown_11dc78
- dw Unknown_11dea0
- dw Unknown_11e0c8
- dw Unknown_11e2d8
- dw Unknown_11e4e8
- dw Unknown_11e710
- dw Unknown_11e920
- dw Unknown_11ea58
- dw Unknown_11eb90
- dw Unknown_11edb8
- dw Unknown_11eef0
- dw Unknown_11f100
-
-Unknown_11dac8: ; 11dac8
- db "あく@@@", $26, $0, $0
- db "いわ@@@", $aa, $0, $0
- db "エスパー@", $da, $0, $0
- db "かくとう@", $4e, $1, $0
- db "くさ@@@", $ba, $1, $0
- db "ゴースト@", $e4, $1, $0
- db "こおり@@", $e6, $1, $0
- db "じめん@@", $68, $2, $0
- db "タイプ@@", $e8, $2, $0
- db "でんき@@", $8e, $3, $0
- db "どく@@@", $ae, $3, $0
- db "ドラゴン@", $bc, $3, $0
- db "ノーマル@", $22, $4, $0
- db "はがね@@", $36, $4, $0
- db "ひこう@@", $5e, $4, $0
- db "ほのお@@", $b2, $4, $0
- db "みず@@@", $f4, $4, $0
- db "むし@@@", $12, $5, $0
-
-Unknown_11db58: ; 11db58
- db "ありがと@", $58, $0, $0
- db "ありがとう", $5a, $0, $0
- db "いくぜ!@", $80, $0, $0
- db "いくよ!@", $82, $0, $0
- db "いくわよ!", $84, $0, $0
- db "いやー@@", $a6, $0, $0
- db "おっす@@", $a, $1, $0
- db "おはつです", $22, $1, $0
- db "おめでとう", $2a, $1, $0
- db "ごめん@@", $f8, $1, $0
- db "ごめんよ@", $fa, $1, $0
- db "こらっ@@", $fc, $1, $0
- db "こんちは!", $a, $2, $0
- db "こんにちは", $10, $2, $0
- db "さようなら", $28, $2, $0
- db "サンキュー", $2e, $2, $0
- db "さんじょう", $30, $2, $0
- db "しっけい@", $48, $2, $0
- db "しつれい@", $4c, $2, $0
- db "じゃーね@", $6c, $2, $0
- db "すいません", $8c, $2, $0
- db "それじゃ@", $ca, $2, $0
- db "どうも@@", $a6, $3, $0
- db "なんじゃ@", $ee, $3, $0
- db "ハーイ@@", $2c, $4, $0
- db "はいはい@", $32, $4, $0
- db "バイバイ@", $34, $4, $0
- db "へイ@@@", $8a, $4, $0
- db "またね@@", $de, $4, $0
- db "もしもし@", $32, $5, $0
- db "やあ@@@", $3e, $5, $0
- db "やっほー@", $4e, $5, $0
- db "よう@@@", $62, $5, $0
- db "ようこそ@", $64, $5, $0
- db "よろしく@", $80, $5, $0
- db "らっしゃい", $94, $5, $0
-
-Unknown_11dc78: ; 11dc78
- db "あいて@@", $1c, $0, $0
- db "あたし@@", $36, $0, $0
- db "あなた@@", $40, $0, $0
- db "あなたが@", $42, $0, $0
- db "あなたに@", $44, $0, $0
- db "あなたの@", $46, $0, $0
- db "あなたは@", $48, $0, $0
- db "あなたを@", $4a, $0, $0
- db "おかあさん", $e8, $0, $0
- db "おじいさん", $fc, $0, $0
- db "おじさん@", $2, $1, $0
- db "おとうさん", $e, $1, $0
- db "おとこのこ", $10, $1, $0
- db "おとな@@", $14, $1, $0
- db "おにいさん", $16, $1, $0
- db "おねえさん", $18, $1, $0
- db "おばあさん", $1c, $1, $0
- db "おばさん@", $20, $1, $0
- db "おれさま@", $34, $1, $0
- db "おんなのこ", $3a, $1, $0
- db "ガール@@", $40, $1, $0
- db "かぞく@@", $52, $1, $0
- db "かのじょ@", $72, $1, $0
- db "かれ@@@", $7c, $1, $0
- db "きみ@@@", $9a, $1, $0
- db "きみが@@", $9c, $1, $0
- db "きみに@@", $9e, $1, $0
- db "きみの@@", $a0, $1, $0
- db "きみは@@", $a2, $1, $0
- db "きみを@@", $a4, $1, $0
- db "ギャル@@", $ae, $1, $0
- db "きょうだい", $b2, $1, $0
- db "こども@@", $f0, $1, $0
- db "じぶん@@", $54, $2, $0
- db "じぶんが@", $56, $2, $0
- db "じぶんに@", $58, $2, $0
- db "じぶんの@", $5a, $2, $0
- db "じぶんは@", $5c, $2, $0
- db "じぶんを@", $5e, $2, $0
- db "だれ@@@", $18, $3, $0
- db "だれか@@", $1a, $3, $0
- db "だれが@@", $1c, $3, $0
- db "だれに@@", $1e, $3, $0
- db "だれの@@", $20, $3, $0
- db "だれも@@", $22, $3, $0
- db "だれを@@", $24, $3, $0
- db "ちゃん@@", $38, $3, $0
- db "ともだち@", $b8, $3, $0
- db "なかま@@", $d4, $3, $0
- db "ひと@@@", $62, $4, $0
- db "ボーイ@@", $98, $4, $0
- db "ボク@@@", $a0, $4, $0
- db "ボクが@@", $a2, $4, $0
- db "ボクに@@", $a4, $4, $0
- db "ボクの@@", $a6, $4, $0
- db "ボクは@@", $a8, $4, $0
- db "ボクを@@", $aa, $4, $0
- db "みんな@@", $4, $5, $0
- db "みんなが@", $6, $5, $0
- db "みんなに@", $8, $5, $0
- db "みんなの@", $a, $5, $0
- db "みんなは@", $c, $5, $0
- db "ライバル@", $8a, $5, $0
- db "わたし@@", $c2, $5, $0
- db "わたしが@", $c4, $5, $0
- db "わたしに@", $c6, $5, $0
- db "わたしの@", $c8, $5, $0
- db "わたしは@", $ca, $5, $0
- db "わたしを@", $cc, $5, $0
-
-Unknown_11dea0: ; 11dea0
- db "あいしょう", $18, $0, $0
- db "いけ!@@", $88, $0, $0
- db "いちばん@", $96, $0, $0
- db "かくご@@", $4c, $1, $0
- db "かたせて@", $54, $1, $0
- db "かち@@@", $56, $1, $0
- db "かつ@@@", $58, $1, $0
- db "かった@@", $60, $1, $0
- db "かったら@", $62, $1, $0
- db "かって@@", $64, $1, $0
- db "かてない@", $66, $1, $0
- db "かてる@@", $68, $1, $0
- db "かなわない", $70, $1, $0
- db "きあい@@", $84, $1, $0
- db "きめた@@", $a8, $1, $0
- db "きりふだ@", $b6, $1, $0
- db "くらえ@@", $c2, $1, $0
- db "こい!@@", $da, $1, $0
- db "こうげき@", $e0, $1, $0
- db "こうさん@", $e2, $1, $0
- db "こんじょう", $8, $2, $0
- db "さいのう@", $16, $2, $0
- db "さくせん@", $1a, $2, $0
- db "さばき@@", $22, $2, $0
- db "しょうぶ@", $7e, $2, $0
- db "しょうり@", $80, $2, $0
- db "せめ@@@", $b4, $2, $0
- db "センス@@", $b6, $2, $0
- db "たいせん@", $e6, $2, $0
- db "たたかい@", $f6, $2, $0
- db "ちから@@", $32, $3, $0
- db "チャレンジ", $36, $3, $0
- db "つよい@@", $58, $3, $0
- db "つよすぎ@", $5a, $3, $0
- db "つらい@@", $5c, $3, $0
- db "つらかった", $5e, $3, $0
- db "てかげん@", $6c, $3, $0
- db "てき@@@", $6e, $3, $0
- db "てんさい@", $90, $3, $0
- db "でんせつ@", $94, $3, $0
- db "トレーナー", $c6, $3, $0
- db "にげ@@@", $4, $4, $0
- db "ぬるい@@", $10, $4, $0
- db "ねらう@@", $16, $4, $0
- db "バトル@@", $4a, $4, $0
- db "ファイト@", $72, $4, $0
- db "ふっかつ@", $78, $4, $0
- db "ポイント@", $94, $4, $0
- db "ポケモン@", $ac, $4, $0
- db "ほんき@@", $bc, $4, $0
- db "まいった!", $c4, $4, $0
- db "まけ@@@", $c8, $4, $0
- db "まけたら@", $ca, $4, $0
- db "まけて@@", $cc, $4, $0
- db "まける@@", $ce, $4, $0
- db "まもり@@", $ea, $4, $0
- db "みかた@@", $f2, $4, $0
- db "みとめない", $fe, $4, $0
- db "みとめる@", $0, $5, $0
- db "むてき@@", $16, $5, $0
- db "もらった!", $3c, $5, $0
- db "よゆう@@", $7a, $5, $0
- db "よわい@@", $82, $5, $0
- db "よわすぎ@", $84, $5, $0
- db "らくしょう", $8e, $5, $0
- db "りーダー@", $9e, $5, $0
- db "ルール@@", $a0, $5, $0
- db "レべル@@", $a6, $5, $0
- db "わざ@@@", $be, $5, $0
-
-Unknown_11e0c8: ; 11e0c8
- db "!@@@@", $0, $0, $0
- db "!!@@@", $2, $0, $0
- db "!?@@@", $4, $0, $0
- db "?@@@@", $6, $0, $0
- db "…@@@@", $8, $0, $0
- db "…!@@@", $a, $0, $0
- db "………@@", $c, $0, $0
- db "ー@@@@", $e, $0, $0
- db "ーーー@@", $10, $0, $0
- db "あーあ@@", $14, $0, $0
- db "あーん@@", $16, $0, $0
- db "あははー@", $52, $0, $0
- db "あら@@@", $54, $0, $0
- db "いえ@@@", $72, $0, $0
- db "イエス@@", $74, $0, $0
- db "うう@@@", $ac, $0, $0
- db "うーん@@", $ae, $0, $0
- db "うおー!@", $b0, $0, $0
- db "うおりゃー", $b2, $0, $0
- db "うひょー@", $bc, $0, $0
- db "うふふ@@", $be, $0, $0
- db "うわー@@", $ca, $0, $0
- db "うわーん@", $cc, $0, $0
- db "ええ@@@", $d2, $0, $0
- db "えー@@@", $d4, $0, $0
- db "えーん@@", $d6, $0, $0
- db "えへへ@@", $dc, $0, $0
- db "おいおい@", $e0, $0, $0
- db "おお@@@", $e2, $0, $0
- db "おっと@@", $c, $1, $0
- db "がーん@@", $42, $1, $0
- db "キャー@@", $aa, $1, $0
- db "ギャー@@", $ac, $1, $0
- db "ぐふふふふ", $bc, $1, $0
- db "げっ@@@", $ce, $1, $0
- db "しくしく@", $3e, $2, $0
- db "ちえっ@@", $2e, $3, $0
- db "てへ@@@", $86, $3, $0
- db "ノー@@@", $20, $4, $0
- db "はあー@@", $2a, $4, $0
- db "はい@@@", $30, $4, $0
- db "はっはっは", $48, $4, $0
- db "ひいー@@", $56, $4, $0
- db "ひゃあ@@", $6a, $4, $0
- db "ふっふっふ", $7c, $4, $0
- db "ふにゃ@@", $7e, $4, $0
- db "ププ@@@", $80, $4, $0
- db "ふふん@@", $82, $4, $0
- db "ふん@@@", $88, $4, $0
- db "へっへっへ", $8e, $4, $0
- db "へへー@@", $90, $4, $0
- db "ほーほほほ", $9c, $4, $0
- db "ほら@@@", $b6, $4, $0
- db "まあ@@@", $c0, $4, $0
- db "むきー!!", $10, $5, $0
- db "むふー@@", $18, $5, $0
- db "むふふ@@", $1a, $5, $0
- db "むむ@@@", $1c, $5, $0
- db "よーし@@", $6a, $5, $0
- db "よし!@@", $72, $5, $0
- db "ラララ@@", $98, $5, $0
- db "わーい@@", $ac, $5, $0
- db "わーん!!", $b0, $5, $0
- db "ワォ@@@", $b2, $5, $0
- db "わっ!!@", $ce, $5, $0
- db "わははは!", $d0, $5, $0
-
-Unknown_11e2d8: ; 11e2d8
- db "あのね@@", $50, $0, $0
- db "あんまり@", $6e, $0, $0
- db "いじわる@", $8e, $0, $0
- db "うそ@@@", $b6, $0, $0
- db "うむ@@@", $c4, $0, $0
- db "おーい@@", $e4, $0, $0
- db "おすすめ@", $6, $1, $0
- db "おばかさん", $1e, $1, $0
- db "かなり@@", $6e, $1, $0
- db "から@@@", $7a, $1, $0
- db "きぶん@@", $98, $1, $0
- db "けど@@@", $d6, $1, $0
- db "こそ@@@", $ea, $1, $0
- db "こと@@@", $ee, $1, $0
- db "さあ@@@", $12, $2, $0
- db "さっぱり@", $1e, $2, $0
- db "さて@@@", $20, $2, $0
- db "じゅうぶん", $72, $2, $0
- db "すぐ@@@", $94, $2, $0
- db "すごく@@", $98, $2, $0
- db "すこしは@", $9a, $2, $0
- db "すっっごい", $a0, $2, $0
- db "ぜーんぜん", $b0, $2, $0
- db "ぜったい@", $b2, $2, $0
- db "それで@@", $ce, $2, $0
- db "だけ@@@", $f2, $2, $0
- db "だって@@", $fc, $2, $0
- db "たぶん@@", $6, $3, $0
- db "たら@@@", $14, $3, $0
- db "ちょー@@", $3a, $3, $0
- db "ちょっと@", $3c, $3, $0
- db "ったら@@", $4e, $3, $0
- db "って@@@", $50, $3, $0
- db "ていうか@", $62, $3, $0
- db "でも@@@", $88, $3, $0
- db "どうしても", $9c, $3, $0
- db "とうぜん@", $a0, $3, $0
- db "どうぞ@@", $a2, $3, $0
- db "とりあえず", $be, $3, $0
- db "なあ@@@", $cc, $3, $0
- db "なんて@@", $f4, $3, $0
- db "なんでも@", $fc, $3, $0
- db "なんとか@", $fe, $3, $0
- db "には@@@", $8, $4, $0
- db "バッチり@", $46, $4, $0
- db "ばりばり@", $52, $4, $0
- db "ほど@@@", $b0, $4, $0
- db "ほんと@@", $be, $4, $0
- db "まさに@@", $d0, $4, $0
- db "マジ@@@", $d2, $4, $0
- db "マジで@@", $d4, $4, $0
- db "まったく@", $e4, $4, $0
- db "まで@@@", $e6, $4, $0
- db "まるで@@", $ec, $4, $0
- db "ムード@@", $e, $5, $0
- db "むしろ@@", $14, $5, $0
- db "めちゃ@@", $24, $5, $0
- db "めっぽう@", $28, $5, $0
- db "もう@@@", $2c, $5, $0
- db "モード@@", $2e, $5, $0
- db "もっと@@", $36, $5, $0
- db "もはや@@", $38, $5, $0
- db "やっと@@", $4a, $5, $0
- db "やっぱり@", $4c, $5, $0
- db "より@@@", $7c, $5, $0
- db "れば@@@", $a4, $5, $0
-
-Unknown_11e4e8: ; 11e4e8
- db "あいたい@", $1a, $0, $0
- db "あそびたい", $32, $0, $0
- db "いきたい@", $7c, $0, $0
- db "うかれて@", $b4, $0, $0
- db "うれしい@", $c6, $0, $0
- db "うれしさ@", $c8, $0, $0
- db "エキサイト", $d8, $0, $0
- db "えらい@@", $de, $0, $0
- db "おかしい@", $ec, $0, $0
- db "ォッケー@", $8, $1, $0
- db "かえりたい", $48, $1, $0
- db "がっくし@", $5a, $1, $0
- db "かなしい@", $6c, $1, $0
- db "がんばって", $80, $1, $0
- db "きがしない", $86, $1, $0
- db "きがする@", $88, $1, $0
- db "ききたい@", $8a, $1, $0
- db "きになる@", $90, $1, $0
- db "きのせい@", $96, $1, $0
- db "きらい@@", $b4, $1, $0
- db "くやしい@", $be, $1, $0
- db "くやしさ@", $c0, $1, $0
- db "さみしい@", $24, $2, $0
- db "ざんねん@", $32, $2, $0
- db "しあわせ@", $36, $2, $0
- db "したい@@", $44, $2, $0
- db "したくない", $46, $2, $0
- db "しまった@", $64, $2, $0
- db "しょんぼり", $82, $2, $0
- db "すき@@@", $92, $2, $0
- db "だいきらい", $da, $2, $0
- db "たいくつ@", $dc, $2, $0
- db "だいじ@@", $de, $2, $0
- db "だいすき@", $e4, $2, $0
- db "たいへん@", $ea, $2, $0
- db "たのしい@", $0, $3, $0
- db "たのしすぎ", $2, $3, $0
- db "たべたい@", $8, $3, $0
- db "ダメダメ@", $e, $3, $0
- db "たりない@", $16, $3, $0
- db "ちくしょー", $34, $3, $0
- db "どうしよう", $9e, $3, $0
- db "ドキドキ@", $ac, $3, $0
- db "ナイス@@", $d0, $3, $0
- db "のみたい@", $26, $4, $0
- db "びっくり@", $60, $4, $0
- db "ふあん@@", $74, $4, $0
- db "ふらふら@", $86, $4, $0
- db "ほしい@@", $ae, $4, $0
- db "ボロボロ@", $b8, $4, $0
- db "まだまだ@", $e0, $4, $0
- db "まてない@", $e8, $4, $0
- db "まんぞく@", $f0, $4, $0
- db "みたい@@", $f8, $4, $0
- db "めずらしい", $22, $5, $0
- db "メラメラ@", $2a, $5, $0
- db "やだ@@@", $46, $5, $0
- db "やったー@", $48, $5, $0
- db "やばい@@", $50, $5, $0
- db "やばすぎる", $52, $5, $0
- db "やられた@", $54, $5, $0
- db "やられて@", $56, $5, $0
- db "よかった@", $6e, $5, $0
- db "ラブラブ@", $96, $5, $0
- db "ロマン@@", $a8, $5, $0
- db "ろんがい@", $aa, $5, $0
- db "わから@@", $b4, $5, $0
- db "わかり@@", $b6, $5, $0
- db "わくわく@", $ba, $5, $0
-
-Unknown_11e710: ; 11e710
- db "あつい@@", $38, $0, $0
- db "あった@@", $3a, $0, $0
- db "あり@@@", $56, $0, $0
- db "ある@@@", $5e, $0, $0
- db "あわてて@", $6a, $0, $0
- db "いい@@@", $70, $0, $0
- db "いか@@@", $76, $0, $0
- db "イカス@@", $78, $0, $0
- db "いきおい@", $7a, $0, $0
- db "いける@@", $8a, $0, $0
- db "いじょう@", $8c, $0, $0
- db "いそがしい", $90, $0, $0
- db "いっしょに", $9a, $0, $0
- db "いっぱい@", $9c, $0, $0
- db "いない@@", $a0, $0, $0
- db "いや@@@", $a4, $0, $0
- db "いる@@@", $a8, $0, $0
- db "うまい@@", $c0, $0, $0
- db "うまく@@", $c2, $0, $0
- db "おおきい@", $e6, $0, $0
- db "おくれ@@", $f2, $0, $0
- db "おしい@@", $fa, $0, $0
- db "おもしろい", $2c, $1, $0
- db "おもしろく", $2e, $1, $0
- db "かっこいい", $5c, $1, $0
- db "かわいい@", $7e, $1, $0
- db "かんぺき@", $82, $1, $0
- db "けっこう@", $d0, $1, $0
- db "げんき@@", $d8, $1, $0
- db "こわい@@", $6, $2, $0
- db "さいこう@", $14, $2, $0
- db "さむい@@", $26, $2, $0
- db "さわやか@", $2c, $2, $0
- db "しかたない", $38, $2, $0
- db "すごい@@", $96, $2, $0
- db "すごすぎ@", $9c, $2, $0
- db "すてき@@", $a4, $2, $0
- db "たいした@", $e0, $2, $0
- db "だいじょぶ", $e2, $2, $0
- db "たかい@@", $ec, $2, $0
- db "ただしい@", $f8, $2, $0
- db "だめ@@@", $c, $3, $0
- db "ちいさい@", $2c, $3, $0
- db "ちがう@@", $30, $3, $0
- db "つかれ@@", $48, $3, $0
- db "とくい@@", $b0, $3, $0
- db "とまらない", $b6, $3, $0
- db "ない@@@", $ce, $3, $0
- db "なかった@", $d2, $3, $0
- db "なし@@@", $d8, $3, $0
- db "なって@@", $dc, $3, $0
- db "はやい@@", $50, $4, $0
- db "ひかる@@", $5a, $4, $0
- db "ひくい@@", $5c, $4, $0
- db "ひどい@@", $64, $4, $0
- db "ひとりで@", $66, $4, $0
- db "ひま@@@", $68, $4, $0
- db "ふそく@@", $76, $4, $0
- db "へた@@@", $8c, $4, $0
- db "まちがって", $e2, $4, $0
- db "やさしい@", $42, $5, $0
- db "よく@@@", $70, $5, $0
- db "よわって@", $86, $5, $0
- db "らく@@@", $8c, $5, $0
- db "らしい@@", $90, $5, $0
- db "わるい@@", $d4, $5, $0
-
-Unknown_11e920: ; 11e920
- db "アルバイト", $64, $0, $0
- db "うち@@@", $ba, $0, $0
- db "おかね@@", $ee, $0, $0
- db "おこづかい", $f4, $0, $0
- db "おふろ@@", $24, $1, $0
- db "がっこう@", $5e, $1, $0
- db "きねん@@", $92, $1, $0
- db "グループ@", $c6, $1, $0
- db "ゲット@@", $d2, $1, $0
- db "こうかん@", $de, $1, $0
- db "しごと@@", $40, $2, $0
- db "しゅぎょう", $74, $2, $0
- db "じゅぎょう", $76, $2, $0
- db "じゅく@@", $78, $2, $0
- db "しんか@@", $88, $2, $0
- db "ずかん@@", $90, $2, $0
- db "せいかつ@", $ae, $2, $0
- db "せんせい@", $b8, $2, $0
- db "センター@", $ba, $2, $0
- db "タワー@@", $28, $3, $0
- db "つうしん@", $40, $3, $0
- db "テスト@@", $7e, $3, $0
- db "テレビ@@", $8c, $3, $0
- db "でんわ@@", $96, $3, $0
- db "どうぐ@@", $9a, $3, $0
- db "トレード@", $c4, $3, $0
- db "なまえ@@", $e8, $3, $0
- db "ニュース@", $a, $4, $0
- db "にんき@@", $c, $4, $0
- db "パーティー", $2e, $4, $0
- db "べんきょう", $92, $4, $0
- db "マシン@@", $d6, $4, $0
- db "めいし@@", $1e, $5, $0
- db "メッセージ", $26, $5, $0
- db "もようがえ", $3a, $5, $0
- db "ゆめ@@@", $5a, $5, $0
- db "ようちえん", $66, $5, $0
- db "ラジォ@@", $92, $5, $0
- db "ワールド@", $ae, $5, $0
-
-Unknown_11ea58: ; 11ea58
- db "アイドル@", $1e, $0, $0
- db "アニメ@@", $4c, $0, $0
- db "うた@@@", $b8, $0, $0
- db "えいが@@", $d0, $0, $0
- db "おかし@@", $ea, $0, $0
- db "おしゃべり", $4, $1, $0
- db "おままごと", $28, $1, $0
- db "おもちゃ@", $30, $1, $0
- db "おんがく@", $38, $1, $0
- db "カード@@", $3e, $1, $0
- db "かいもの@", $46, $1, $0
- db "グルメ@@", $c8, $1, $0
- db "ゲーム@@", $cc, $1, $0
- db "ざっし@@", $1c, $2, $0
- db "さんぽ@@", $34, $2, $0
- db "じてんしゃ", $50, $2, $0
- db "しゅみ@@", $7a, $2, $0
- db "スポーツ@", $a8, $2, $0
- db "ダイエット", $d8, $2, $0
- db "たからもの", $f0, $2, $0
- db "たび@@@", $4, $3, $0
- db "ダンス@@", $2a, $3, $0
- db "つり@@@", $60, $3, $0
- db "デート@@", $6a, $3, $0
- db "でんしゃ@", $92, $3, $0
- db "ぬいぐるみ", $e, $4, $0
- db "パソコン@", $3e, $4, $0
- db "はな@@@", $4c, $4, $0
- db "ヒーロー@", $58, $4, $0
- db "ひるね@@", $6e, $4, $0
- db "ヒロイン@", $70, $4, $0
- db "ぼうけん@", $96, $4, $0
- db "ボード@@", $9a, $4, $0
- db "ボール@@", $9e, $4, $0
- db "ほん@@@", $ba, $4, $0
- db "マンガ@@", $ee, $4, $0
- db "やくそく@", $40, $5, $0
- db "やすみ@@", $44, $5, $0
- db "よてい@@", $74, $5, $0
-
-Unknown_11eb90: ; 11eb90
- db "あう@@@", $20, $0, $0
- db "あきらめ@", $24, $0, $0
- db "あげる@@", $28, $0, $0
- db "あせる@@", $2e, $0, $0
- db "あそび@@", $30, $0, $0
- db "あそぶ@@", $34, $0, $0
- db "あつめ@@", $3e, $0, $0
- db "あるき@@", $60, $0, $0
- db "あるく@@", $62, $0, $0
- db "いく@@@", $7e, $0, $0
- db "いけ@@@", $86, $0, $0
- db "おき@@@", $f0, $0, $0
- db "おこり@@", $f6, $0, $0
- db "おこる@@", $f8, $0, $0
- db "おしえ@@", $fe, $0, $0
- db "おしえて@", $0, $1, $0
- db "おねがい@", $1a, $1, $0
- db "おぼえ@@", $26, $1, $0
- db "かえる@@", $4a, $1, $0
- db "がまん@@", $74, $1, $0
- db "きく@@@", $8c, $1, $0
- db "きたえ@@", $8e, $1, $0
- db "きめ@@@", $a6, $1, $0
- db "くる@@@", $c4, $1, $0
- db "さがし@@", $18, $2, $0
- db "さわぎ@@", $2a, $2, $0
- db "した@@@", $42, $2, $0
- db "しって@@", $4a, $2, $0
- db "して@@@", $4e, $2, $0
- db "しない@@", $52, $2, $0
- db "しまう@@", $60, $2, $0
- db "じまん@@", $66, $2, $0
- db "しらない@", $84, $2, $0
- db "しる@@@", $86, $2, $0
- db "しんじて@", $8a, $2, $0
- db "する@@@", $aa, $2, $0
- db "たべる@@", $a, $3, $0
- db "つかう@@", $42, $3, $0
- db "つかえ@@", $44, $3, $0
- db "つかって@", $46, $3, $0
- db "できない@", $70, $3, $0
- db "できる@@", $72, $3, $0
- db "でない@@", $84, $3, $0
- db "でる@@@", $8a, $3, $0
- db "なげる@@", $d6, $3, $0
- db "なやみ@@", $ea, $3, $0
- db "ねられ@@", $18, $4, $0
- db "ねる@@@", $1a, $4, $0
- db "のがし@@", $24, $4, $0
- db "のむ@@@", $28, $4, $0
- db "はしり@@", $3a, $4, $0
- db "はしる@@", $3c, $4, $0
- db "はたらき@", $40, $4, $0
- db "はたらく@", $42, $4, $0
- db "はまって@", $4e, $4, $0
- db "ぶつけ@@", $7a, $4, $0
- db "ほめ@@@", $b4, $4, $0
- db "みせて@@", $f6, $4, $0
- db "みて@@@", $fc, $4, $0
- db "みる@@@", $2, $5, $0
- db "めざす@@", $20, $5, $0
- db "もって@@", $34, $5, $0
- db "ゆずる@@", $58, $5, $0
- db "ゆるす@@", $5c, $5, $0
- db "ゆるせ@@", $5e, $5, $0
- db "られない@", $9a, $5, $0
- db "られる@@", $9c, $5, $0
- db "わかる@@", $b8, $5, $0
- db "わすれ@@", $c0, $5, $0
-
-Unknown_11edb8: ; 11edb8
- db "あき@@@", $22, $0, $0
- db "あさ@@@", $2a, $0, $0
- db "あした@@", $2c, $0, $0
- db "いちにち@", $94, $0, $0
- db "いつか@@", $98, $0, $0
- db "いつも@@", $9e, $0, $0
- db "いま@@@", $a2, $0, $0
- db "えいえん@", $ce, $0, $0
- db "おととい@", $12, $1, $0
- db "おわり@@", $36, $1, $0
- db "かようび@", $78, $1, $0
- db "きのう@@", $94, $1, $0
- db "きょう@@", $b0, $1, $0
- db "きんようび", $b8, $1, $0
- db "げつようび", $d4, $1, $0
- db "このあと@", $f4, $1, $0
- db "このまえ@", $f6, $1, $0
- db "こんど@@", $c, $2, $0
- db "じかん@@", $3c, $2, $0
- db "じゅうねん", $70, $2, $0
- db "すいようび", $8e, $2, $0
- db "スタート@", $9e, $2, $0
- db "ずっと@@", $a2, $2, $0
- db "ストップ@", $a6, $2, $0
- db "そのうち@", $c4, $2, $0
- db "ついに@@", $3e, $3, $0
- db "つぎ@@@", $4a, $3, $0
- db "どようび@", $ba, $3, $0
- db "なつ@@@", $da, $3, $0
- db "にちようび", $6, $4, $0
- db "はじめ@@", $38, $4, $0
- db "はる@@@", $54, $4, $0
- db "ひる@@@", $6c, $4, $0
- db "ふゆ@@@", $84, $4, $0
- db "まいにち@", $c6, $4, $0
- db "もくようび", $30, $5, $0
- db "よなか@@", $76, $5, $0
- db "よる@@@", $7e, $5, $0
- db "らいしゅう", $88, $5, $0
-
-Unknown_11eef0: ; 11eef0
- db "いたします", $92, $0, $0
- db "おります@", $32, $1, $0
- db "か!?@@", $3c, $1, $0
- db "かい?@@", $44, $1, $0
- db "かしら?@", $50, $1, $0
- db "かな?@@", $6a, $1, $0
- db "かも@@@", $76, $1, $0
- db "くれ@@@", $ca, $1, $0
- db "ございます", $e8, $1, $0
- db "しがち@@", $3a, $2, $0
- db "します@@", $62, $2, $0
- db "じゃ@@@", $6a, $2, $0
- db "じゃん@@", $6e, $2, $0
- db "しよう@@", $7c, $2, $0
- db "ぜ!@@@", $ac, $2, $0
- db "ぞ!@@@", $bc, $2, $0
- db "た@@@@", $d4, $2, $0
- db "だ@@@@", $d6, $2, $0
- db "だからね@", $ee, $2, $0
- db "だぜ@@@", $f4, $2, $0
- db "だった@@", $fa, $2, $0
- db "だね@@@", $fe, $2, $0
- db "だよ@@@", $10, $3, $0
- db "だよねー!", $12, $3, $0
- db "だわ@@@", $26, $3, $0
- db "ッス@@@", $4c, $3, $0
- db "ってかんじ", $52, $3, $0
- db "っぱなし@", $54, $3, $0
- db "つもり@@", $56, $3, $0
- db "ていない@", $64, $3, $0
- db "ている@@", $66, $3, $0
- db "でーす!@", $68, $3, $0
- db "でした@@", $74, $3, $0
- db "でしょ?@", $76, $3, $0
- db "でしょー!", $78, $3, $0
- db "です@@@", $7a, $3, $0
- db "ですか?@", $7c, $3, $0
- db "ですよ@@", $80, $3, $0
- db "ですわ@@", $82, $3, $0
- db "どうなの?", $a4, $3, $0
- db "どうよ?@", $a8, $3, $0
- db "とかいって", $aa, $3, $0
- db "なの@@@", $e0, $3, $0
- db "なのか@@", $e2, $3, $0
- db "なのだ@@", $e4, $3, $0
- db "なのよ@@", $e6, $3, $0
- db "なんだね@", $f2, $3, $0
- db "なんです@", $f8, $3, $0
- db "なんてね@", $fa, $3, $0
- db "ね@@@@", $12, $4, $0
- db "ねー@@@", $14, $4, $0
- db "の@@@@", $1c, $4, $0
- db "の?@@@", $1e, $4, $0
- db "ばっかり@", $44, $4, $0
- db "まーす!@", $c2, $4, $0
- db "ます@@@", $d8, $4, $0
- db "ますわ@@", $da, $4, $0
- db "ません@@", $dc, $4, $0
- db "みたいな@", $fa, $4, $0
- db "よ!@@@", $60, $5, $0
- db "よー@@@", $68, $5, $0
- db "よーん@@", $6c, $5, $0
- db "よね@@@", $78, $5, $0
- db "るよ@@@", $a2, $5, $0
- db "わけ@@@", $bc, $5, $0
- db "わよ!@@", $d2, $5, $0
-
-Unknown_11f100: ; 11f100
- db "ああ@@@", $12, $0, $0
- db "あっち@@", $3c, $0, $0
- db "あの@@@", $4e, $0, $0
- db "ありゃ@@", $5c, $0, $0
- db "あれ@@@", $66, $0, $0
- db "あれは@@", $68, $0, $0
- db "あんな@@", $6c, $0, $0
- db "こう@@@", $dc, $1, $0
- db "こっち@@", $ec, $1, $0
- db "この@@@", $f2, $1, $0
- db "こりゃ@@", $fe, $1, $0
- db "これ@@@", $0, $2, $0
- db "これだ!@", $2, $2, $0
- db "これは@@", $4, $2, $0
- db "こんな@@", $e, $2, $0
- db "そう@@@", $be, $2, $0
- db "そっち@@", $c0, $2, $0
- db "その@@@", $c2, $2, $0
- db "そりゃ@@", $c6, $2, $0
- db "それ@@@", $c8, $2, $0
- db "それだ!@", $cc, $2, $0
- db "それは@@", $d0, $2, $0
- db "そんな@@", $d2, $2, $0
- db "どう@@@", $98, $3, $0
- db "どっち@@", $b2, $3, $0
- db "どの@@@", $b4, $3, $0
- db "どりゃ@@", $c0, $3, $0
- db "どれ@@@", $c2, $3, $0
- db "どれを@@", $c8, $3, $0
- db "どんな@@", $ca, $3, $0
- db "なに@@@", $de, $3, $0
- db "なんか@@", $ec, $3, $0
- db "なんだ@@", $f0, $3, $0
- db "なんで@@", $f6, $3, $0
- db "なんなんだ", $0, $4, $0
- db "なんの@@", $2, $4, $0
-; 11f220
-
-Unknown_11f220:
- db $12, $01, $24, $02
- db $45, $05, $45, $05
- db $42, $05, $42, $05
- db $45, $05, $42, $05
- db $27, $03, $27, $03
- db $45, $05, $27, $03
- db $42, $05, $24, $02
-
-Unknown_11f23c:
- db $12, $00, $2f, $00
- db $70, $00, $1e, $00
- db $ac, $00, $11, $00
- db $ce, $00, $09, $00
- db $e0, $00, $2e, $00
- db $3c, $01, $24, $00
- db $84, $01, $1b, $00
- db $ba, $01, $09, $00
- db $cc, $01, $07, $00
- db $da, $01, $1c, $00
- db $12, $02, $12, $00
- db $36, $02, $2b, $00
- db $8c, $02, $10, $00
- db $ac, $02, $08, $00
- db $bc, $02, $0c, $00
- db $d4, $02, $2c, $00
- db $2c, $03, $09, $00
- db $3e, $03, $12, $00
- db $62, $03, $1b, $00
- db $98, $03, $1a, $00
- db $cc, $03, $1c, $00
- db $04, $04, $05, $00
- db $0e, $04, $02, $00
- db $12, $04, $05, $00
- db $1c, $04, $07, $00
- db $2a, $04, $16, $00
- db $56, $04, $0e, $00
- db $72, $04, $0c, $00
- db $8a, $04, $05, $00
- db $94, $04, $16, $00
- db $c0, $04, $19, $00
- db $f2, $04, $0e, $00
- db $0e, $05, $08, $00
- db $1e, $05, $07, $00
- db $2c, $05, $09, $00
- db $3e, $05, $0d, $00
- db $58, $05, $04, $00
- db $60, $05, $14, $00
- db $88, $05, $0b, $00
- db $9e, $05, $01, $00
- db $a0, $05, $02, $00
- db $a4, $05, $02, $00
- db $a8, $05, $02, $00
- db $ac, $05, $15, $00
- db $00, $00, $09, $00
-
-BTTrainerClassGenders:
+BTTrainerClassGenders: ; 11f2f0
db MALE ; FALKNER
db FEMALE ; WHITNEY
db FEMALE ; BUGSY
--- a/misc/battle_tower_5c.asm
+++ b/misc/battle_tower_5c.asm
@@ -1,3 +1,183 @@
+Function1700b0: ; 1700b0
+ call Function17021e
+ callba Function118121
+ ret
+; 1700ba
+
+Function1700ba: ; 1700ba
+ call Function17021e
+ callba Function11811a
+ ret
+; 1700c4
+
+Function1700c4: ; 1700c4
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+
+ call Function17042c
+ ld a, $5
+ call GetSRAMBank
+ ld a, $1
+ ld [$be45], a
+ xor a
+ ld [$be46], a
+ ld hl, $dffc
+ ld de, $aa41
+ ld bc, $0004
+ call CopyBytes
+ ld hl, $d202
+ ld de, $aa8e
+ ld bc, $0594
+ call CopyBytes
+ ld hl, $aa5d
+ ld a, [hl]
+ inc [hl]
+ inc hl
+ sla a
+ sla a
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $dffc
+ ld bc, $0004
+ call CopyBytes
+ call CloseSRAM
+ pop af
+ ld [rSVBK], a
+ ret
+; 170114
+
+Function170114: ; 170114
+ call Function17021e
+ call Function170121
+ callba Function11805f
+ ret
+; 170121
+
+Function170121: ; 170121
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a948
+ ld de, $c608
+ ld bc, $00f6
+ call CopyBytes
+ call CloseSRAM
+ call Function170c8b
+ ret
+; 170139
+
+Function170139: ; 170139
+ ld a, $5
+ call GetSRAMBank
+ ld de, $aa41
+ ld h, $0
+ ld l, h
+ ld bc, $03e8
+ call Function17020c
+ ld bc, $0064
+ call Function17020c
+ ld bc, $000a
+ call Function17020c
+ ld a, [de]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ call CloseSRAM
+ ld a, h
+ ld [$c608], a
+ ld a, l
+ ld [$c608 + 1], a
+ ld hl, $c628
+ ld a, [PlayerID]
+ ld [hli], a
+ ld a, [PlayerID + 1]
+ ld [hli], a
+ ld a, [wSecretID]
+ ld [hli], a
+ ld a, [wSecretID + 1]
+ ld [hli], a
+ ld e, l
+ ld d, h
+ ld hl, PlayerName
+ ld bc, $0005 ; Japanese name length
+ call CopyBytes
+ ld bc, PlayerID
+ ld de, PlayerGender
+ callba Function4e929
+ ld de, $c62c + 5
+ ld a, c
+ ld [de], a
+ inc de
+ ld a, $df
+ ld [wcd49], a
+ ld a, $dc
+ ld [wcd4a], a
+ ld a, $41
+ ld [wcd4b], a
+ ld a, $de
+ ld [wcd4c], a
+ ld a, $3
+.asm_1701ac
+ push af
+ ld a, [wcd49]
+ ld l, a
+ ld a, [wcd4a]
+ ld h, a
+ ld bc, $0030
+ call CopyBytes
+ ld a, l
+ ld [wcd49], a
+ ld a, h
+ ld [wcd4a], a
+ ld a, [wcd4b]
+ ld l, a
+ ld a, [wcd4c]
+ ld h, a
+ ld bc, $0006
+ call CopyBytes
+ ld a, l
+ ld [wcd4b], a
+ ld a, h
+ ld [wcd4c], a
+ pop af
+ dec a
+ jr nz, .asm_1701ac
+ ld a, $4
+ call GetSRAMBank
+ ld hl, $a013
+ ld bc, $0024
+ call CopyBytes
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a894
+ ld bc, $0006
+ call CopyBytes
+ ld hl, $c608
+ ld de, $a948
+ ld bc, $00f6
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 17020c
+
+Function17020c: ; 17020c
+ ld a, [de]
+ inc de
+ and a
+ ret z
+
+.loop
+ add hl, bc
+ dec a
+ jr nz, .loop
+ ret
+; 170215
+
BattleTowerBattle: ; 170215
xor a
ld [wcf63], a
@@ -64,7 +244,9 @@
callba HealParty
call ReadBTTrainerParty
call Clears5_a89a
+
predef StartBattle
+
callba LoadPokemonData
callba HealParty
ld a, [wBattleResult]
@@ -325,20 +507,23 @@
; 17042c
Function17042c: ; 17042c
- ld hl, BT_TrainerTextIndex + $be
+ ld hl, w3_d202TrainerData
ld a, 7
.loop
push af
push hl
- ld c, 18
+ ld c, BATTLETOWER_TRAINERDATALENGTH / 2
.loop2
+ ; First byte is a comparison value.
ld a, [hli]
ld b, a
+ ; Second byte is a lookup index.
ld a, [hli]
and a
- jr z, .skip
+ jr z, .empty
cp $f
- jr nc, .exit_inner_loop
+ jr nc, .copy_data
+
push hl
ld hl, Unknown_170470
dec a
@@ -347,22 +532,27 @@
add hl, de
ld a, [hl]
pop hl
+
+ ; If Unknown_170470[a-1] <= b, overwrite the current trainer's data
+ ; with Unknown17047e, and exit the inner loop.
cp b
- jr c, .exit_inner_loop
- jr z, .exit_inner_loop
- jr .asm_170456
+ jr c, .copy_data
+ jr z, .copy_data
+ jr .next_iteration
-.skip
+.empty
+ ; If a == 0 and b >= $fc, overwrite the current trainer's data with
+ ; Unknown17047e, and exit the inner loop.
ld a, b
cp $fc
- jr nc, .exit_inner_loop
+ jr nc, .copy_data
-.asm_170456
+.next_iteration
dec c
jr nz, .loop2
- jr .dont_copy
+ jr .next_trainer
-.exit_inner_loop
+.copy_data
pop de
push de
ld hl, Unknown_17047e
@@ -369,9 +559,9 @@
ld bc, BATTLETOWER_TRAINERDATALENGTH
call CopyBytes
-.dont_copy
+.next_trainer
pop hl
- ld de, $00e0
+ ld de, BATTLE_TOWER_STRUCT_LENGTH
add hl, de
pop af
dec a
@@ -380,18 +570,41 @@
; 170470
Unknown_170470:
- db $12, $24, $45, $45, $42, $42, $45, $42, $27, $27, $45, $27, $42, $24
+ db $12
+ db $24
+ db $45
+ db $45
+ db $42
+ db $42
+ db $45
+ db $42
+ db $27
+ db $27
+ db $45
+ db $27
+ db $42
+ db $24
Unknown_17047e:
- db $03, $04, $05, $08
- db $03, $05, $0e, $06
- db $03, $02, $00, $00
- db $39, $07, $07, $04
- db $00, $05, $04, $07
- db $01, $05, $00, $00
- db $0f, $05, $14, $07
- db $05, $05, $11, $0c
- db $0c, $06, $06, $04
+; see data/battle_tower_2.asm
+ db $03, 4
+ db $05, 8
+ db $03, 5
+ db $0e, 6
+ db $03, 2
+ db $00, 0
+ db $39, 7
+ db $07, 4
+ db $00, 5
+ db $04, 7
+ db $01, 5
+ db $00, 0
+ db $0f, 5
+ db $14, 7
+ db $05, 5
+ db $11, 12
+ db $0c, 6
+ db $06, 4
CopyBTTrainer_FromBT_OT_TowBT_OTTemp: ; 1704a2
@@ -409,10 +622,10 @@
pop af
ld [rSVBK], a
- ld a, BANK(s1_be45)
+ ld a, BANK(sBattleTowerChallengeState)
call GetSRAMBank
ld a, $2
- ld [s1_be45], a
+ ld [sBattleTowerChallengeState], a
ld hl, sNrOfBeatenBattleTowerTrainers
inc [hl]
call CloseSRAM
@@ -419,3 +632,1008 @@
SkipBattleTowerTrainer: ; 1704c9
ret
; 1704ca
+Function1704ca: ; 1704ca
+ ld a, [$be46]
+ cp $7
+ jr c, .asm_1704d3
+ ld a, $6
+
+.asm_1704d3
+ ld hl, $afce
+ ld de, -$e0
+.asm_1704d9
+ and a
+ jr z, .asm_1704e0
+ add hl, de
+ dec a
+ jr .asm_1704d9
+
+.asm_1704e0
+ ret
+; 1704e1
+
+Function1704e1: ; 1704e1
+ call SpeechTextBox
+ call FadeToMenu
+ call Function17021e
+ call Function1704f1
+ call ReturnToCallingMenu
+ ret
+; 1704f1
+
+Function1704f1: ; 1704f1
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearScreen
+.asm_1704fa
+ call JoyTextDelay
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .asm_17050f
+ call Function170510
+ callba ReloadMapPart
+ jr .asm_1704fa
+
+.asm_17050f
+ ret
+; 170510
+
+Function170510: ; 170510
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_17051f
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 17051f
+
+Jumptable_17051f: ; 17051f
+ dw Function170525
+ dw Function170571
+ dw Function170577
+; 170525
+
+Function170525: ; 170525
+ ld a, $5
+ call GetSRAMBank
+
+ ld hl, $a89c
+ ld de, StringBuffer3
+ ld bc, $0016
+ call CopyBytes
+
+ ld hl, $a8b2
+ ld de, $c608
+ ld bc, $0096
+ call CopyBytes
+
+ call CloseSRAM
+ hlcoord 1, 1
+ ld de, StringBuffer3
+ call PlaceString
+ hlcoord 1, 3
+ ld de, String_170676
+ call PlaceString
+ hlcoord 4, 3
+ ld de, StringBuffer4
+ call PlaceString
+ hlcoord 8, 3
+ ld de, String_17067a
+ call PlaceString
+ call Function1705b7
+ call Function1705f0
+ jr Function1705b2
+
+
+Function170571:
+ call SetPalettes
+ call Function1705b2
+
+
+Function170577:
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and $1
+ jr nz, .asm_1705ac
+ ld a, [hl]
+ and $2
+ jr nz, .asm_1705ac
+ ld a, [hl]
+ and $40
+ jr nz, .asm_17058f
+ ld a, [hl]
+ and $80
+ jr nz, .asm_17059d
+ ret
+
+.asm_17058f
+ ld a, [wcf64]
+ and a
+ ret z
+ sub $f
+ ld [wcf64], a
+ call Function1705f0
+ ret
+
+.asm_17059d
+ ld a, [wcf64]
+ cp $3c
+ ret z
+ add $f
+ ld [wcf64], a
+ call Function1705f0
+ ret
+
+.asm_1705ac
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+Function1705b2:
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+; 1705b7
+
+Function1705b7: ; 1705b7
+ hlcoord 0, 4
+ ld a, $79
+ ld [hli], a
+ ld c, $12
+.asm_1705bf
+ ld a, $7a
+ ld [hli], a
+ dec c
+ jr nz, .asm_1705bf
+ ld a, $7b
+ ld [hli], a
+ ld de, $0014
+ ld c, $c
+.asm_1705cd
+ ld a, $7c
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .asm_1705cd
+ ld a, $7d
+ ld [hli], a
+ ld c, $12
+.asm_1705d9
+ ld a, $7a
+ ld [hli], a
+ dec c
+ jr nz, .asm_1705d9
+ ld a, $7e
+ ld [hl], a
+ ld de, $ffec
+ add hl, de
+ ld c, $c
+.asm_1705e8
+ ld a, $7c
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .asm_1705e8
+ ret
+; 1705f0
+
+Function1705f0: ; 1705f0
+ call Function17064b
+ call Function17065d
+ ld a, $50
+ ld [wcd4e], a
+ ld hl, $c608
+ ld a, [wcf64]
+ ld c, a
+ xor a
+ ld b, a
+ add hl, bc
+ push hl
+ pop bc
+ hlcoord 1, 6
+ ld a, $6
+.asm_17060c
+ push af
+ push hl
+ ld a, $3
+.asm_170610
+ push af
+ ld de, wcd49
+ ld a, [bc]
+ and a
+ jr z, .asm_170625
+ ld a, $5
+.asm_17061a
+ push af
+ ld a, [bc]
+ ld [de], a
+ inc bc
+ inc de
+ pop af
+ dec a
+ jr nz, .asm_17061a
+ jr .asm_170631
+
+.asm_170625
+ ld a, $5
+.asm_170627
+ push af
+ ld a, $e3
+ ld [de], a
+ inc de
+ inc bc
+ pop af
+ dec a
+ jr nz, .asm_170627
+
+.asm_170631
+ ld de, wcd49
+ push bc
+ call PlaceString
+ ld de, $0006
+ add hl, de
+ pop bc
+ pop af
+ dec a
+ jr nz, .asm_170610
+ pop hl
+ ld de, $0028
+ add hl, de
+ pop af
+ dec a
+ jr nz, .asm_17060c
+ ret
+; 17064b
+
+Function17064b: ; 17064b
+ hlcoord 1, 5
+ xor a
+ ld b, $c
+.asm_170651
+ ld c, $12
+.asm_170653
+ ld [hli], a
+ dec c
+ jr nz, .asm_170653
+rept 2
+ inc hl
+endr
+ dec b
+ jr nz, .asm_170651
+ ret
+; 17065d
+
+Function17065d: ; 17065d
+ ld a, [wcf64]
+ and a
+ jr z, .asm_170669
+ hlcoord 18, 5
+ ld a, $61
+ ld [hl], a
+
+.asm_170669
+ ld a, [wcf64]
+ cp $3c
+ ret z
+ hlcoord 18, 16
+ ld a, $ee
+ ld [hl], a
+ ret
+; 170676
+
+String_170676: ; 170676
+ db "ルーム@"
+; 17067a
+
+String_17067a: ; 17067a
+ db "れきだいりーダーいちらん@"
+; 170687
+
+BattleTowerAction: ; 170687
+ ld a, [ScriptVar]
+ ld e, a
+ ld d, 0
+ ld hl, .jumptable
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 170696
+
+
+.jumptable: ; 170696 (5c:4696)
+ dw Function17075f ; 0x00
+ dw Function170788 ; 0x01
+ dw Function170778 ; 0x02
+ dw Function170799 ; 0x03
+ dw Function17079d ; 0x04
+ dw Function1707ac ; 0x05
+ dw Function1707f4 ; 0x06
+ dw Function170868 ; 0x07
+ dw Function170881 ; 0x08
+ dw Function17089a ; 0x09
+ dw Function1708b1 ; 0x0a
+ dw CheckMobileEventIndex ; 0x0b
+ dw Function1708c8 ; 0x0c
+ dw Function1708f0 ; 0x0d
+ dw Function17093c ; 0x0e
+ dw Function1709aa ; 0x0f
+ dw Function1709bb ; 0x10
+ dw Function170a9c ; 0x11
+ dw Function170aa0 ; 0x12
+ dw Function170aaf ; 0x13
+ dw Function170abe ; 0x14
+ dw Function170ad7 ; 0x15
+ dw Function170807 ; 0x16
+ dw Function17081d ; 0x17
+ dw Function170ae8 ; 0x18
+ dw Function170b16 ; 0x19
+ dw ResetBattleTowerTrainersSRAM ; 0x1a
+ dw Function1706ee ; 0x1b
+ dw Function17071b ; 0x1c
+ dw Function170729 ; 0x1d
+ dw Function17073e ; 0x1e
+ dw Function170737 ; 0x1f
+
+
+; Reset the save memory for BattleTower-Trainers (Counter and all 7 TrainerBytes)
+ResetBattleTowerTrainersSRAM: ; 1706d6 (5c:46d6) BattleTowerAction $1a
+ ld a, BANK(sBTTrainers)
+ call GetSRAMBank
+
+ ld a, $ff
+ ld hl, sBTTrainers
+ ld bc, BATTLETOWER_NROFTRAINERS
+ call ByteFill
+
+ xor a
+ ld [sNrOfBeatenBattleTowerTrainers], a
+
+ call CloseSRAM
+
+ ret
+
+Function1706ee: ; 1706ee (5c:46ee) BattleTowerAction $1b
+ ld a, BANK(sBattleTowerReward)
+ call GetSRAMBank
+
+ ld a, [sBattleTowerReward]
+ call CloseSRAM
+ ld [ScriptVar], a
+ ld hl, NumItems
+ ld a, [hli]
+ cp MAX_ITEMS
+ ret c
+ ld b, MAX_ITEMS
+ ld a, [ScriptVar]
+ ld c, a
+.loop
+ ld a, [hli]
+ cp c
+ jr nz, .next
+ ld a, [hl]
+ cp 95
+ ret c
+.next
+ inc hl
+ dec b
+ jr nz, .loop
+ ld a, POTION
+ ld [ScriptVar], a
+ ret
+
+Function17071b: ; 17071b (5c:471b) BattleTowerAction $1c
+ ld a, BANK(sBattleTowerChallengeState)
+ call GetSRAMBank
+ ld a, $3
+ ld [sBattleTowerChallengeState], a
+ call CloseSRAM
+ ret
+
+Function170729: ; 170729 (5c:4729) BattleTowerAction $1d
+ ld a, BANK(sBattleTowerChallengeState)
+ call GetSRAMBank
+ ld a, $4
+ ld [sBattleTowerChallengeState], a
+ call CloseSRAM
+ ret
+
+Function170737: ; 170737 (5c:4737) BattleTowerAction $1e
+ callba SaveOptions
+ ret
+
+Function17073e: ; 17073e (5c:473e) BattleTowerAction $1f
+; Generate a random stat boosting item.
+.loop
+ call Random
+ ld a, [hRandomAdd]
+ and $7
+ cp 6
+ jr c, .okay
+ sub 6
+.okay
+ add HP_UP
+ cp LUCKY_PUNCH
+ jr z, .loop
+ push af
+ ld a, BANK(sBattleTowerReward)
+ call GetSRAMBank
+ pop af
+ ld [sBattleTowerReward], a
+ call CloseSRAM
+ ret
+
+Function17075f: ; 17075f (5c:475f) BattleTowerAction $00
+ call Function17089a
+ ld a, [ScriptVar]
+ and a
+ ret z
+
+ ld a, BANK(sbe4f)
+ call GetSRAMBank
+ ld a, [sbe4f]
+ and $2
+ ld [ScriptVar], a
+ call CloseSRAM
+ ret
+
+Function170778: ; 170778 (5c:4778) BattleTowerAction $02
+ ld hl, sBattleTowerChallengeState
+ ld a, BANK(sBattleTowerChallengeState)
+ call GetSRAMBank
+ ld a, [hl]
+ ld [ScriptVar], a
+ call CloseSRAM
+ ret
+
+Function170788: ; 170788 (5c:4788) BattleTowerAction $01
+ ld a, BANK(sbe4f)
+ call GetSRAMBank
+ ld a, [sbe4f]
+ or $2
+ ld [sbe4f], a
+ call CloseSRAM
+ ret
+
+Function170799: ; 170799 (5c:4799) BattleTowerAction $03
+ ld c, $1
+ jr asm_17079f
+
+Function17079d: ; 17079d (5c:479d) BattleTowerAction $04
+ ld c, $0
+asm_17079f: ; 17079f (5c:479f)
+ ld a, BANK(sBattleTowerChallengeState)
+ call GetSRAMBank
+ ld a, c
+ ld [sBattleTowerChallengeState], a
+ call CloseSRAM
+ ret
+
+Function1707ac: ; 1707ac (5c:47ac) BattleTowerAction $05
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa8c]
+ ld b, a
+ ld a, [$be46]
+ ld [ScriptVar], a
+ call CloseSRAM
+ and a
+ ret z
+ ld a, b
+ cp $2
+ jr nc, .asm_1707ef
+ push bc
+ call UpdateTime
+ pop bc
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa8b]
+ call CloseSRAM
+ ld c, a
+ ld a, [CurDay]
+ sub c
+ jr c, .asm_1707e5
+ cp $8
+ jr nc, .asm_1707ef
+ ld a, b
+ and a
+ jr nz, .asm_1707ef
+ ret
+.asm_1707e5
+ ld hl, CurDay
+ ld a, $8c
+ sub c
+ add [hl]
+ cp $8
+ ret c
+.asm_1707ef
+ ld a, $8
+ ld [ScriptVar], a
+
+Function1707f4: ; 1707f4 (5c:47f4) BattleTowerAction $06
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$be46], a
+ ld [$aa8b], a
+ ld [$aa8c], a
+ call CloseSRAM
+ ret
+
+Function170807: ; 170807 (5c:4807) BattleTowerAction $16
+ call UpdateTime
+ ld a, $5
+ call GetSRAMBank
+ ld a, [CurDay]
+ ld [$b2f9], a
+ xor a
+ ld [$b2fa], a
+ call CloseSRAM
+ ret
+
+Function17081d: ; 17081d (5c:481d) BattleTowerAction $17
+ xor a
+ ld [ScriptVar], a
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b2f9]
+ ld c, a
+ ld a, [$b2fa]
+ ld b, a
+ call CloseSRAM
+ cp $2
+ jr nc, .asm_170853
+ push bc
+ call UpdateTime
+ pop bc
+ ld a, [CurDay]
+ sub c
+ jr c, .asm_170849
+ cp $b
+ jr nc, .asm_170853
+ ld a, b
+ and a
+ jr nz, .asm_170853
+ ret
+.asm_170849
+ ld hl, CurDay
+ ld a, $8c
+ sub c
+ add [hl]
+ cp $b
+ ret c
+.asm_170853
+ ld a, $1
+ ld [ScriptVar], a
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$b2f9], a
+ ld [$b2fa], a
+ call CloseSRAM
+ ret
+
+Function170868: ; 170868 (5c:4868) BattleTowerAction $07
+ ld a, BANK(sbe47)
+ call GetSRAMBank
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [wd000 + $800]
+ ld [sbe47], a
+ pop af
+ ld [rSVBK], a
+ call CloseSRAM
+ ret
+
+Function170881: ; 170881 (5c:4881) BattleTowerAction $08
+ ld a, BANK(sbe47)
+ call GetSRAMBank
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [sbe47]
+ ld [wd000 + $800], a
+ pop af
+ ld [rSVBK], a
+ call CloseSRAM
+ ret
+
+Function17089a: ; 17089a BattleTowerAction $09
+ ld a, [wSaveFileExists]
+ and a
+ jr z, .nope
+ callba Function14bcb
+ jr z, .yes
+ xor a
+ jr .nope
+
+.yes
+ ld a, $1
+
+.nope
+ ld [ScriptVar], a
+ ret
+; 1708b1
+
+
+Function1708b1: ; 1708b1 (5c:48b1) BattleTowerAction $0a
+ xor a
+ ld [MusicFade], a
+ call MaxVolume
+ ret
+
+CheckMobileEventIndex: ; 1708b9 (5c:48b9) BattleTowerAction $0b something to do with GS Ball
+ ld a, BANK(sMobileEventIndex)
+ call GetSRAMBank
+ ld a, [sMobileEventIndex]
+ ld [ScriptVar], a
+ call CloseSRAM
+ ret
+
+Function1708c8: ; 1708c8 (5c:48c8) BattleTowerAction $0c
+ call UpdateTime
+ ld a, $5
+ call GetSRAMBank
+ ld a, [CurDay]
+ ld [$aa8b], a
+ xor a
+ ld [$aa8c], a
+ ld a, [$aa5d]
+ cp $2
+ jr nc, .asm_1708ec
+ ld a, [CurDay]
+ ld [$aa48], a
+ ld a, $1
+ ld [$aa47], a
+.asm_1708ec
+ call CloseSRAM
+ ret
+
+Function1708f0: ; 1708f0 (5c:48f0) BattleTowerAction $0d
+ xor a
+ ld [ScriptVar], a
+ call UpdateTime
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa48]
+ ld c, a
+ ld a, [$aa47]
+ call CloseSRAM
+ and a
+ ret z
+ ld hl, CurDay
+ ld a, c
+ cp [hl]
+ jr nz, Function170923
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa5d]
+ call CloseSRAM
+ cp $5
+ ret c
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+
+Function170923: ; 170923
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$aa48], a
+ ld [$aa47], a
+ ld hl, $aa5d
+ ld bc, $0011
+ call ByteFill
+ call CloseSRAM
+ ret
+; 17093c
+
+
+Function17093c: ; 17093c (5c:493c) BattleTowerAction $0e
+ xor a
+ ld [ScriptVar], a
+ ld a, EGG_TICKET
+ ld [CurItem], a
+ ld hl, NumItems
+ call CheckItem
+ ret nc
+ ld a, [PartyCount]
+ ld b, 0
+ ld c, a
+ ld hl, PartySpecies
+.loop
+ ld a, [hli]
+ cp EGG
+ jr nz, .not_egg
+ push hl
+ ld hl, PartyMonOT ; wddff (aliases: PartyMonOT)
+ ld de, $6
+ ld a, b
+ and a
+ jr z, .skip
+.loop2
+ add hl, de
+ dec a
+ jr nz, .loop2
+.skip
+ ld de, String_1709a4
+ ld a, $6
+.asm_17096e
+ push af
+ ld a, [de]
+ inc de
+ cp [hl]
+ inc hl
+ jr nz, .asm_17099d
+ pop af
+ dec a
+ jr nz, .asm_17096e
+rept 4
+ dec hl
+endr
+ ld a, $50
+rept 2
+ ld [hli], a
+endr
+ pop hl
+ ld a, EGG_TICKET
+ ld [CurItem], a
+ ld a, $1
+ ld [wItemQuantityChangeBuffer], a
+ ld a, $ff
+ ld [wd107], a
+ ld hl, NumItems
+ call TossItem
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_17099d
+ pop af
+ pop hl
+.not_egg
+ inc b
+ dec c
+ jr nz, .loop
+ ret
+; 1709a4 (5c:49a4)
+
+String_1709a4: ; 1709a4
+ db "なぞナゾ@@"
+
+Function1709aa: ; 1709aa (5c:49aa) BattleTowerAction $0f
+ ld a, [rSVBK]
+ push af
+ ld a, BANK(w3_d090)
+ ld [rSVBK], a
+ ld a, [w3_d090]
+ ld [ScriptVar], a
+ pop af
+ ld [rSVBK], a
+ ret
+
+Function1709bb: ; 1709bb (5c:49bb) BattleTowerAction $10
+ xor a
+ ld [ScriptVar], a
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$a800]
+ call CloseSRAM
+ cp 6
+ jr nc, .invalid
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_1709e7
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+.invalid
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$a800], a
+ call CloseSRAM
+ ret
+; 1709e7 (5c:49e7)
+
+Jumptable_1709e7: ; 1709e7
+ dw Function170a00
+ dw Function170a00
+ dw Function1709f3
+ dw Function1709f3
+ dw Function170a01
+ dw Function170a33
+; 1709f3
+
+Function1709f3: ; 1709f3
+ ld a, $5
+ call GetSRAMBank
+ ld a, $1
+ ld [$a800], a
+ call CloseSRAM
+
+Function170a00: ; 170a00
+ ret
+; 170a01
+
+Function170a01: ; 170a01
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $b023
+ ld de, $c608
+ ld bc, $0069
+ call CopyBytes
+ ld a, [$a825]
+ ld [wcd30], a
+ ld a, [$a826]
+ ld [wcd31], a
+ call CloseSRAM
+ callba Function11b6b4
+ callba Function17d0f3
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; 170a33
+
+Function170a33: ; 170a33
+ ld a, $0
+ call GetSRAMBank
+ ld hl, wRTC
+ ld de, $c608
+ ld bc, $0004
+ call CopyBytes
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $b08c
+ ld de, $c608
+ ld c, $4
+.asm_170a54
+ ld a, [de]
+ inc de
+ cp [hl]
+ jr nz, .asm_170a78
+ inc hl
+ dec c
+ jr nz, .asm_170a54
+ call CloseSRAM
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetMapTrigger
+ ld a, d
+ or e
+ jr z, .asm_170a72
+ ld a, [de]
+ and a
+ ret nz
+
+.asm_170a72
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_170a78
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$a800], a
+ call CloseSRAM
+ ld [ScriptVar], a
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetMapTrigger
+ ld a, d
+ or e
+ jr z, .asm_170a9b
+ xor a
+ ld [de], a
+
+.asm_170a9b
+ ret
+; 170a9c
+
+Function170a9c: ; 170a9c (5c:4a9c) BattleTowerAction $11
+ ld c, $0
+ jr asm_170aa2
+
+Function170aa0: ; 170aa0 (5c:4aa0) BattleTowerAction $12
+ ld c, $1
+asm_170aa2: ; 170aa2 (5c:4aa2)
+ ld a, $5
+ call GetSRAMBank
+ ld a, c
+ ld [$aa8d], a
+ call CloseSRAM
+ ret
+
+Function170aaf: ; 170aaf (5c:4aaf) BattleTowerAction $13
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa8d]
+ ld [ScriptVar], a
+ call CloseSRAM
+ ret
+
+Function170abe: ; 170abe (5c:4abe) BattleTowerAction $14
+ call Function17089a
+ ld a, [ScriptVar]
+ and a
+ ret z
+ ld a, BANK(sbe4f)
+ call GetSRAMBank
+ ld a, [sbe4f]
+ and $1
+ ld [ScriptVar], a
+ call CloseSRAM
+ ret
+
+Function170ad7: ; 170ad7 (5c:4ad7) BattleTowerAction $15
+ ld a, BANK(sbe4f)
+ call GetSRAMBank
+ ld a, [sbe4f]
+ or $1
+ ld [sbe4f], a
+ call CloseSRAM
+ ret
+
+Function170ae8: ; 170ae8 (5c:4ae8) BattleTowerAction $18
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b2fb]
+ call CloseSRAM
+ ld c, $a
+ call SimpleDivide
+ ld a, b
+ ld [wcd4f], a
+ xor a
+ ld [ScriptVar], a
+ callba Function119d93
+ ret nc
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b2fb]
+ call CloseSRAM
+ ld [ScriptVar], a
+ ret
+
+Function170b16: ; 170b16 (5c:4b16) BattleTowerAction $19
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b2fb]
+ call CloseSRAM
+ ld c, 10
+ call SimpleDivide
+ ld a, b
+ ld [wcd4f], a
+ xor a
+ ld [ScriptVar], a
+ callba Function119dd1
+ ret nc
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b2fb]
+ call CloseSRAM
+ ld [ScriptVar], a
+ ret
--- a/misc/crystal_misc.asm
+++ b/misc/crystal_misc.asm
@@ -173,7 +173,7 @@
ret
.asm_17a79f
- callba Function104061
+ callba ReloadMapPart
ret
; 17a7a6 (5e:67a6)
@@ -768,26 +768,26 @@
Function17abcf: ; 17abcf (5e:6bcf)
ld a, [rSVBK]
push af
- ld a, BANK(wMapPals)
+ ld a, BANK(UnknBGPals)
ld [rSVBK], a
ld hl, Palette_17ac55
- ld de, wMapPals ; $d000
+ ld de, UnknBGPals ; $d000
ld bc, $30
call CopyBytes
ld hl, Palette_17ac95
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld bc, $40
call CopyBytes
ld hl, GFX_17afa5 + $510
- ld de, Unkn2Pals + 2 * 4
+ ld de, UnknOBPals + 2 * 4
ld bc, $10
call CopyBytes
ld hl, MapObjectPals + 8
- ld de, Unkn2Pals + 6 * 4
+ ld de, UnknOBPals + 6 * 4
ld bc, $8
ld a, BANK(MapObjectPals)
call FarCopyBytes
--- /dev/null
+++ b/misc/fixed_words.asm
@@ -1,0 +1,4182 @@
+; These functions seem to be related to the selection of preset phrases
+; for use in mobile communications. Annoyingly, they separate the
+; Battle Tower function above from the data it references.
+Function11c05d: ; 11c05d
+ ld a, e
+ or d
+ jr z, .asm_11c071
+ ld a, e
+ and d
+ cp $ff
+ jr z, .asm_11c071
+ push hl
+ call Function11c156
+ pop hl
+ call PlaceString
+ and a
+ ret
+
+.asm_11c071
+ ld c, l
+ ld b, h
+ scf
+ ret
+; 11c075
+
+Function11c075: ; 11c075
+ push de
+ ld a, c
+ call Function11c254
+ pop de
+ ld bc, wcd36
+ call Function11c08f
+ ret
+; 11c082
+
+Function11c082: ; 11c082
+ push de
+ ld a, c
+ call Function11c254
+ pop de
+ ld bc, wcd36
+ call Function11c0c6
+ ret
+; 11c08f
+
+Function11c08f: ; 11c08f
+ ld l, e
+ ld h, d
+ push hl
+ ld a, $3
+.asm_11c094
+ push af
+ ld a, [bc]
+ ld e, a
+ inc bc
+ ld a, [bc]
+ ld d, a
+ inc bc
+ push bc
+ call Function11c05d
+ jr c, .asm_11c0a2
+ inc bc
+
+.asm_11c0a2
+ ld l, c
+ ld h, b
+ pop bc
+ pop af
+ dec a
+ jr nz, .asm_11c094
+ pop hl
+ ld de, $0028
+ add hl, de
+ ld a, $3
+.asm_11c0b0
+ push af
+ ld a, [bc]
+ ld e, a
+ inc bc
+ ld a, [bc]
+ ld d, a
+ inc bc
+ push bc
+ call Function11c05d
+ jr c, .asm_11c0be
+ inc bc
+
+.asm_11c0be
+ ld l, c
+ ld h, b
+ pop bc
+ pop af
+ dec a
+ jr nz, .asm_11c0b0
+ ret
+; 11c0c6
+
+
+Function11c0c6: ; 11c0c6
+ ld a, [wJumptableIndex]
+ ld l, a
+ ld a, [wcf64]
+ ld h, a
+ push hl
+ ld hl, $c608 + 16
+ ld a, $0
+ ld [hli], a
+ push de
+ xor a
+ ld [wJumptableIndex], a
+ ld a, $12
+ ld [wcf64], a
+ ld a, $6
+.asm_11c0e1
+ push af
+ ld a, [bc]
+ ld e, a
+ inc bc
+ ld a, [bc]
+ ld d, a
+ inc bc
+ or e
+ jr z, .asm_11c133
+ push hl
+ push bc
+ call Function11c156
+ call Function11c14a
+ ld e, c
+ pop bc
+ pop hl
+ ld a, e
+ or a
+ jr z, .asm_11c133
+.asm_11c0fa
+ ld a, [wcf64]
+ cp $12
+ jr z, .asm_11c102
+ inc e
+
+.asm_11c102
+ cp e
+ jr nc, .asm_11c11c
+ ld a, [wJumptableIndex]
+ inc a
+ ld [wJumptableIndex], a
+ ld [hl], $4e
+ rra
+ jr c, .asm_11c113
+ ld [hl], $55
+
+.asm_11c113
+ inc hl
+ ld a, $12
+ ld [wcf64], a
+ dec e
+ jr .asm_11c0fa
+
+.asm_11c11c
+ cp $12
+ jr z, .asm_11c123
+ ld [hl], $7f
+ inc hl
+
+.asm_11c123
+ sub e
+ ld [wcf64], a
+ ld de, $c608
+.asm_11c12a
+ ld a, [de]
+ cp $50
+ jr z, .asm_11c133
+ inc de
+ ld [hli], a
+ jr .asm_11c12a
+
+.asm_11c133
+ pop af
+ dec a
+ jr nz, .asm_11c0e1
+ ld [hl], $57
+ pop bc
+ ld hl, $c608 + 16
+ call PlaceWholeStringInBoxAtOnce
+ pop hl
+ ld a, l
+ ld [wJumptableIndex], a
+ ld a, h
+ ld [wcf64], a
+ ret
+; 11c14a
+
+Function11c14a: ; 11c14a
+ ld c, $0
+ ld hl, $c608
+.asm_11c14f
+ ld a, [hli]
+ cp $50
+ ret z
+ inc c
+ jr .asm_11c14f
+; 11c156
+
+Function11c156: ; 11c156
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, $50
+ ld hl, $c608
+ ld bc, $000b
+ call ByteFill
+ ld a, d
+ and a
+ jr z, .asm_11c19c
+ ld hl, Unknown_11daac
+ dec d
+ sla d
+ ld c, d
+ ld b, $0
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld b, a
+ push bc
+ pop hl
+ ld c, e
+ ld b, $0
+ sla c
+ rl b
+ sla c
+ rl b
+ sla c
+ rl b
+ add hl, bc
+ ld bc, $0005
+.asm_11c18f
+ ld de, $c608
+ call CopyBytes
+ ld de, $c608
+ pop af
+ ld [rSVBK], a
+ ret
+
+.asm_11c19c
+ ld a, e
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ ld bc, $000a
+ jr .asm_11c18f
+; 11c1ab
+
+Function11c1ab: ; 11c1ab
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ call Function11c1b9
+ pop af
+ ld [hInMenu], a
+ ret
+; 11c1b9
+
+Function11c1b9: ; 11c1b9
+ call Function11c1ca
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ call Function11c283
+ pop af
+ ld [rSVBK], a
+ ret
+; 11c1ca
+
+Function11c1ca: ; 11c1ca
+ xor a
+ ld [wJumptableIndex], a
+ ld [wcf64], a
+ ld [wcf65], a
+ ld [wcf66], a
+ ld [wcd23], a
+ ld [BGMapBuffer], a
+ ld [wcd21], a
+ ld [CreditsTimer], a
+ ld [wcd35], a
+ ld [wcd2b], a
+ ld a, $ff
+ ld [wcd24], a
+ ld a, [MenuSelection2]
+ dec a
+ call Function11c254
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearScreen
+ call Function11d323
+ call SetPalettes
+ call DisableLCD
+ ld hl, GFX_11d67e
+ ld de, VTiles2
+ ld bc, $60
+ call CopyBytes
+ ld hl, LZ_11d6de
+ ld de, VTiles0
+ call Decompress
+ call EnableLCD
+ callba ReloadMapPart
+ callba Function8cf53
+ callba LoadPokemonData
+ callba Function40c30
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $c6d0
+ ld de, LYOverrides
+ ld bc, $100
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ call Function11d4aa
+ call Function11d3ba
+ ret
+; 11c254
+
+Function11c254: ; 11c254
+ push af
+ ld a, $4
+ call GetSRAMBank
+ ld hl, $a007
+ pop af
+ sla a
+ sla a
+ ld c, a
+ sla a
+ add c
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld de, wcd36
+ ld bc, $000c
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 11c277
+
+
+Function11c277: ; 11c277 (47:4277)
+ ld a, " "
+ hlcoord 0, 6
+ ld bc, (SCREEN_HEIGHT - 6) * SCREEN_WIDTH
+ call ByteFill
+ ret
+
+Function11c283: ; 11c283
+.loop
+ call JoyTextDelay
+ ld a, [hJoyPressed]
+ ld [hJoypadPressed], a
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .exit
+ call .DoJumptableFunction
+ callba Function8cf69
+ callba ReloadMapPart
+ jr .loop
+
+.exit
+ callba Function8cf53
+ call ClearSprites
+ ret
+; 11c2ac
+
+.DoJumptableFunction: ; 11c2ac
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, .Jumptable
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 11c2bb
+
+
+.Jumptable: ; 11c2bb (47:42bb)
+ dw Function11c2e9 ; 00
+ dw Function11c346 ; 01
+ dw Function11c35f ; 02
+ dw Function11c373 ; 03
+ dw Function11c3c2 ; 04
+ dw Function11c3ed ; 05
+ dw Function11c52c ; 06
+ dw Function11c53d ; 07
+ dw Function11c658 ; 08
+ dw Function11c675 ; 09
+ dw Function11c9bd ; 0a
+ dw Function11c9c3 ; 0b
+ dw Function11caad ; 0c
+ dw Function11cab3 ; 0d
+ dw Function11cb52 ; 0e
+ dw Function11cb66 ; 0f
+ dw Function11cbf5 ; 10
+ dw Function11ccef ; 11
+ dw Function11cd04 ; 12
+ dw Function11cd20 ; 13
+ dw Function11cd54 ; 14
+ dw Function11ce0b ; 15
+ dw Function11ce2b ; 16
+
+
+Function11c2e9: ; 11c2e9 (47:42e9)
+ depixel 3, 1, 2, 5
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ depixel 8, 1, 2, 5
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ ld hl, $c
+ add hl, bc
+ ld a, $1
+ ld [hl], a
+ depixel 9, 2, 2, 0
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ ld hl, $c
+ add hl, bc
+ ld a, $3
+ ld [hl], a
+ depixel 10, 16
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ ld hl, $c
+ add hl, bc
+ ld a, $4
+ ld [hl], a
+ depixel 10, 4
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ ld hl, $c
+ add hl, bc
+ ld a, $5
+ ld [hl], a
+ depixel 10, 2
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ ld hl, $c
+ add hl, bc
+ ld a, $2
+ ld [hl], a
+ ld hl, wcd23
+ set 1, [hl]
+ set 2, [hl]
+ jp Function11cfb5
+
+Function11c346: ; 11c346 (47:4346)
+ ld a, $9
+ ld [wcd2d], a
+ ld a, $2
+ ld [wcd2e], a
+ ld [wcd2f], a
+ ld [wcd30], a
+ ld de, wcd2d
+ call Function11cfce
+ jp Function11cfb5
+
+Function11c35f: ; 11c35f (47:435f)
+ ld hl, wcd2f
+rept 2
+ inc [hl]
+endr
+rept 2
+ dec hl
+endr
+ dec [hl]
+ push af
+ ld de, wcd2d
+ call Function11cfce
+ pop af
+ ret nz
+ jp Function11cfb5
+
+Function11c373: ; 11c373 (47:4373)
+ ld hl, wcd30
+rept 2
+ inc [hl]
+endr
+rept 2
+ dec hl
+endr
+ dec [hl]
+ push af
+ ld de, wcd2d
+ call Function11cfce
+ pop af
+ ret nz
+ call Function11c38a
+ jp Function11cfb5
+
+Function11c38a: ; 11c38a (47:438a)
+ ld hl, Unknown_11c986
+ ld bc, wcd36
+ ld a, $6
+.asm_11c392
+ push af
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push hl
+ push de
+ pop hl
+ ld a, [bc]
+ inc bc
+ ld e, a
+ ld a, [bc]
+ inc bc
+ ld d, a
+ push bc
+ or e
+ jr z, .asm_11c3af
+ ld a, e
+ and d
+ cp $ff
+ jr z, .asm_11c3af
+ call Function11c05d
+ jr .asm_11c3b5
+.asm_11c3af
+ ld de, String_11c3bc
+ call PlaceString
+.asm_11c3b5
+ pop bc
+ pop hl
+ pop af
+ dec a
+ jr nz, .asm_11c392
+ ret
+; 11c3bc (47:43bc)
+
+String_11c3bc: ; 11c3bc
+ db "ーーーーー@"
+; 11c3c2
+
+Function11c3c2: ; 11c3c2 (47:43c2)
+ call Function11c277
+ ld de, Unknown_11cfbe
+ call Function11d035
+ hlcoord 1, 7
+ ld de, String_11c4db
+ call PlaceString
+ hlcoord 1, 16
+ ld de, String_11c51b
+ call PlaceString
+ call Function11c4be
+ ld hl, wcd23
+ set 0, [hl]
+ ld hl, wcd24
+ res 0, [hl]
+ call Function11cfb5
+
+Function11c3ed: ; 11c3ed (47:43ed)
+ ld hl, BGMapBuffer ; wcd20 (aliases: CreditsPos)
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and $8
+ jr nz, .asm_11c426
+ ld a, [de]
+ and $2
+ jr nz, .asm_11c41a
+ ld a, [de]
+ and $1
+ jr nz, .asm_11c42c
+ ld de, hJoyLast
+ ld a, [de]
+ and $40
+ jr nz, .asm_11c47c
+ ld a, [de]
+ and $80
+ jr nz, .asm_11c484
+ ld a, [de]
+ and $20
+ jr nz, .asm_11c48c
+ ld a, [de]
+ and $10
+ jr nz, .asm_11c498
+ ret
+.asm_11c41a
+ call PlayClickSFX
+.asm_11c41d
+ ld hl, wcd24
+ set 0, [hl]
+ ld a, $c
+ jr .asm_11c475
+.asm_11c426
+ ld a, $8
+ ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos)
+ ret
+.asm_11c42c
+ ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
+ cp $6
+ jr c, .asm_11c472
+ sub $6
+ jr z, .asm_11c469
+ dec a
+ jr z, .asm_11c41d
+ ld hl, wcd36
+ ld c, $c
+ xor a
+.asm_11c440
+ or [hl]
+ inc hl
+ dec c
+ jr nz, .asm_11c440
+ and a
+ jr z, .asm_11c460
+ ld de, Unknown_11cfba
+ call Function11cfce
+ decoord 1, 2
+ ld bc, wcd36
+ call Function11c08f
+ ld hl, wcd24
+ set 0, [hl]
+ ld a, $e
+ jr .asm_11c475
+.asm_11c460
+ ld hl, wcd24
+ set 0, [hl]
+ ld a, $11
+ jr .asm_11c475
+.asm_11c469
+ ld hl, wcd24
+ set 0, [hl]
+ ld a, $a
+ jr .asm_11c475
+.asm_11c472
+ call Function11c4a5
+.asm_11c475
+ ld [wJumptableIndex], a
+ call PlayClickSFX
+ ret
+.asm_11c47c
+ ld a, [hl]
+ cp $3
+ ret c
+ sub $3
+ jr .asm_11c4a3
+.asm_11c484
+ ld a, [hl]
+ cp $6
+ ret nc
+ add $3
+ jr .asm_11c4a3
+.asm_11c48c
+ ld a, [hl]
+ and a
+ ret z
+ cp $3
+ ret z
+ cp $6
+ ret z
+ dec a
+ jr .asm_11c4a3
+.asm_11c498
+ ld a, [hl]
+ cp $2
+ ret z
+ cp $5
+ ret z
+ cp $8
+ ret z
+ inc a
+.asm_11c4a3
+ ld [hl], a
+ ret
+
+Function11c4a5: ; 11c4a5 (47:44a5)
+ ld hl, wcd23
+ res 0, [hl]
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_11c4b7
+ xor a
+ ld [wcd21], a
+ ld a, $6
+ ret
+.asm_11c4b7
+ xor a
+ ld [CreditsTimer], a
+ ld a, $15
+ ret
+
+Function11c4be: ; 11c4be (47:44be)
+ ld a, $1
+ hlcoord 0, 6, AttrMap
+ ld bc, $a0
+ call ByteFill
+ ld a, $7
+ hlcoord 0, 14, AttrMap
+ ld bc, $28
+ call ByteFill
+ callba ReloadMapPart
+ ret
+; 11c4db (47:44db)
+
+String_11c4db: ; 11c4db
+ db "6つのことば¯くみあわせます"
+ next "かえたいところ¯えらぶと でてくる"
+ next "ことばのグループから いれかえたい"
+ next "たんご¯えらんでください"
+ db "@"
+; 11c51b
+
+String_11c51b: ; 11c51b
+ db "ぜんぶけす やめる けってい@"
+; 11c52c
+
+Function11c52c: ; 11c52c (47:452c)
+ call Function11c277
+ call Function11c5f0
+ call Function11c618
+ ld hl, wcd24
+ res 1, [hl]
+ call Function11cfb5
+
+Function11c53d: ; 11c53d (47:453d)
+ ld hl, wcd21
+ ld de, hJoypadPressed ; $ffa3
+
+ ld a, [de]
+ and START
+ jr nz, .start
+
+ ld a, [de]
+ and SELECT
+ jr nz, .select
+
+ ld a, [de]
+ and B_BUTTON
+ jr nz, .b
+
+ ld a, [de]
+ and A_BUTTON
+ jr nz, .a
+
+ ld de, hJoyLast
+
+ ld a, [de]
+ and D_UP
+ jr nz, .up
+
+ ld a, [de]
+ and D_DOWN
+ jr nz, .down
+
+ ld a, [de]
+ and D_LEFT
+ jr nz, .left
+
+ ld a, [de]
+ and D_RIGHT
+ jr nz, .right
+
+ ret
+
+.a
+ ld a, [wcd21]
+ cp $f
+ jr c, .asm_11c59d
+ sub $f
+ jr z, .asm_11c5ab
+ dec a
+ jr z, .asm_11c599
+ jr .b
+
+.start
+ ld hl, wcd24
+ set 0, [hl]
+ ld a, $8
+ ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos)
+
+.b
+ ld a, $4
+ jr .asm_11c59f
+
+.select
+ ld a, [wcd2b]
+ xor $1
+ ld [wcd2b], a
+ ld a, $15
+ jr .asm_11c59f
+
+.asm_11c599
+ ld a, $13
+ jr .asm_11c59f
+
+.asm_11c59d
+ ld a, $8
+
+.asm_11c59f
+ ld hl, wcd24
+ set 1, [hl]
+ ld [wJumptableIndex], a
+ call PlayClickSFX
+ ret
+
+.asm_11c5ab
+ ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
+ call Function11ca6a
+ call PlayClickSFX
+ ret
+
+.up
+ ld a, [hl]
+ cp $3
+ ret c
+ sub $3
+ jr .asm_11c5ee
+
+.down
+ ld a, [hl]
+ cp $f
+ ret nc
+ add $3
+ jr .asm_11c5ee
+
+.left
+ ld a, [hl]
+ and a
+ ret z
+ cp $3
+ ret z
+ cp $6
+ ret z
+ cp $9
+ ret z
+ cp $c
+ ret z
+ cp $f
+ ret z
+ dec a
+ jr .asm_11c5ee
+
+.right
+ ld a, [hl]
+ cp $2
+ ret z
+ cp $5
+ ret z
+ cp $8
+ ret z
+ cp $b
+ ret z
+ cp $e
+ ret z
+ cp $11
+ ret z
+ inc a
+
+.asm_11c5ee
+ ld [hl], a
+ ret
+; 11c5f0
+
+Function11c5f0: ; 11c5f0 (47:45f0)
+ ld de, Strings_11da52
+ ld bc, Unknown_11c63a
+ ld a, $f
+.asm_11c5f8
+ push af
+ ld a, [bc]
+ inc bc
+ ld l, a
+ ld a, [bc]
+ inc bc
+ ld h, a
+ push bc
+ call PlaceString
+.asm_11c603
+ inc de
+ ld a, [de]
+ cp $50
+ jr z, .asm_11c603
+ pop bc
+ pop af
+ dec a
+ jr nz, .asm_11c5f8
+ hlcoord 1, 17
+ ld de, String_11c62a
+ call PlaceString
+ ret
+
+Function11c618: ; 11c618 (47:4618)
+ ld a, $2
+ hlcoord 0, 6, AttrMap
+ ld bc, $c8
+ call ByteFill
+ callba ReloadMapPart
+ ret
+; 11c62a (47:462a)
+
+String_11c62a: ; 11c62a
+ db "けす モード やめる@"
+; 11c63a
+
+Unknown_11c63a: ; 11c63a
+ dwcoord 1, 7
+ dwcoord 7, 7
+ dwcoord 13, 7
+ dwcoord 1, 9
+ dwcoord 7, 9
+ dwcoord 13, 9
+ dwcoord 1, 11
+ dwcoord 7, 11
+ dwcoord 13, 11
+ dwcoord 1, 13
+ dwcoord 7, 13
+ dwcoord 13, 13
+ dwcoord 1, 15
+ dwcoord 7, 15
+ dwcoord 13, 15
+; 11c658
+
+Function11c658: ; 11c658 (47:4658)
+ call Function11c277
+ call Function11c770
+ ld de, Unknown_11cfc2
+ call Function11d035
+ call Function11c9ab
+ call Function11c7bc
+ call Function11c86e
+ ld hl, wcd24
+ res 3, [hl]
+ call Function11cfb5
+
+Function11c675: ; 11c675 (47:4675)
+ ld hl, wcd25
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and A_BUTTON
+ jr nz, .a
+ ld a, [de]
+ and B_BUTTON
+ jr nz, .b
+ ld a, [de]
+ and START
+ jr nz, .start
+ ld a, [de]
+ and SELECT
+ jr z, .select
+
+ ld a, [wcd26]
+ and a
+ ret z
+ sub $c
+ jr nc, .asm_11c699
+ xor a
+.asm_11c699
+ ld [wcd26], a
+ jr .asm_11c6c4
+
+.start
+ ld hl, wcd28
+ ld a, [wcd26]
+ add $c
+ cp [hl]
+ ret nc
+ ld [wcd26], a
+ ld a, [hl]
+ ld b, a
+ ld hl, wcd25
+ ld a, [wcd26]
+ add [hl]
+ jr c, .asm_11c6b9
+ cp b
+ jr c, .asm_11c6c4
+.asm_11c6b9
+ ld a, [wcd28]
+ ld hl, wcd26
+ sub [hl]
+ dec a
+ ld [wcd25], a
+.asm_11c6c4
+ call Function11c992
+ call Function11c7bc
+ call Function11c86e
+ ret
+
+.select
+ ld de, hJoyLast
+ ld a, [de]
+ and D_UP
+ jr nz, .asm_11c708
+ ld a, [de]
+ and D_DOWN
+ jr nz, .asm_11c731
+ ld a, [de]
+ and D_LEFT
+ jr nz, .asm_11c746
+ ld a, [de]
+ and D_RIGHT
+ jr nz, .asm_11c755
+ ret
+
+.a
+ call Function11c8f6
+ ld a, $4
+ ld [wcd35], a
+ jr .asm_11c6fc
+.b
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_11c6fa
+ ld a, $6
+ jr .asm_11c6fc
+.asm_11c6fa
+ ld a, $15
+.asm_11c6fc
+ ld [wJumptableIndex], a
+ ld hl, wcd24
+ set 3, [hl]
+ call PlayClickSFX
+ ret
+.asm_11c708
+ ld a, [hl]
+ cp $3
+ jr c, .asm_11c711
+ sub $3
+ jr .asm_11c76e
+.asm_11c711
+ ld a, [wcd26]
+ sub $3
+ ret c
+ ld [wcd26], a
+ jr .asm_11c6c4
+.asm_11c71c
+ ld hl, wcd28
+ ld a, [wcd26]
+ add $c
+ ret c
+ cp [hl]
+ ret nc
+ ld a, [wcd26]
+ add $3
+ ld [wcd26], a
+ jr .asm_11c6c4
+.asm_11c731
+ ld a, [wcd28]
+ ld b, a
+ ld a, [wcd26]
+ add [hl]
+ add $3
+ cp b
+ ret nc
+ ld a, [hl]
+ cp $9
+ jr nc, .asm_11c71c
+ add $3
+ jr .asm_11c76e
+.asm_11c746
+ ld a, [hl]
+ and a
+ ret z
+ cp $3
+ ret z
+ cp $6
+ ret z
+ cp $9
+ ret z
+ dec a
+ jr .asm_11c76e
+.asm_11c755
+ ld a, [wcd28]
+ ld b, a
+ ld a, [wcd26]
+ add [hl]
+ inc a
+ cp b
+ ret nc
+ ld a, [hl]
+ cp $2
+ ret z
+ cp $5
+ ret z
+ cp $8
+ ret z
+ cp $b
+ ret z
+ inc a
+.asm_11c76e
+ ld [hl], a
+ ret
+
+Function11c770: ; 11c770 (47:4770)
+ xor a
+ ld [wcd25], a
+ ld [wcd26], a
+ ld [wcd27], a
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_11c7ab
+ ld a, [wcd21]
+ and a
+ jr z, .asm_11c799
+ dec a
+ sla a
+ ld hl, Unknown_11f220
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld a, [hli]
+ ld [wcd28], a
+ ld a, [hl]
+.asm_11c795
+ ld [wcd29], a
+ ret
+.asm_11c799
+ ld a, [wc7d2]
+ ld [wcd28], a
+.asm_11c79f
+ ld c, $c
+ call SimpleDivide
+ and a
+ jr nz, .asm_11c7a8
+ dec b
+.asm_11c7a8
+ ld a, b
+ jr .asm_11c795
+.asm_11c7ab
+ ld hl, $c68a + 30
+ ld a, [CreditsTimer]
+ ld c, a
+ ld b, 0
+rept 2
+ add hl, bc
+endr
+ ld a, [hl]
+ ld [wcd28], a
+ jr .asm_11c79f
+
+Function11c7bc: ; 11c7bc (47:47bc)
+ ld bc, Unknown_11c854
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_11c814
+ ld a, [wcd21]
+ ld d, a
+ and a
+ jr z, .asm_11c7e9
+ ld a, [wcd26]
+ ld e, a
+.asm_11c7d0
+ ld a, [bc]
+ ld l, a
+ inc bc
+ ld a, [bc]
+ ld h, a
+ inc bc
+ and l
+ cp $ff
+ ret z
+ push bc
+ push de
+ call Function11c05d
+ pop de
+ pop bc
+ inc e
+ ld a, [wcd28]
+ cp e
+ jr nz, .asm_11c7d0
+ ret
+.asm_11c7e9
+ ld hl, wd100
+ ld a, [wcd26]
+ ld e, a
+ add hl, de
+.asm_11c7f1
+ push de
+ ld a, [hli]
+ ld e, a
+ ld d, $0
+ push hl
+ ld a, [bc]
+ ld l, a
+ inc bc
+ ld a, [bc]
+ ld h, a
+ inc bc
+ and l
+ cp $ff
+ jr z, .asm_11c811
+ push bc
+ call Function11c05d
+ pop bc
+ pop hl
+ pop de
+ inc e
+ ld a, [wcd28]
+ cp e
+ jr nz, .asm_11c7f1
+ ret
+.asm_11c811
+ pop hl
+ pop de
+ ret
+.asm_11c814
+ ld hl, $c648
+ ld a, [wcd22]
+ ld e, a
+ ld d, $0
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ push de
+ pop hl
+ ld a, [wcd26]
+ ld e, a
+ ld d, $0
+rept 2
+ add hl, de
+endr
+ ld a, [wcd26]
+ ld e, a
+.asm_11c831
+ push de
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push hl
+ ld a, [bc]
+ ld l, a
+ inc bc
+ ld a, [bc]
+ ld h, a
+ inc bc
+ and l
+ cp $ff
+ jr z, .asm_11c851
+ push bc
+ call Function11c05d
+ pop bc
+ pop hl
+ pop de
+ inc e
+ ld a, [wcd28]
+ cp e
+ jr nz, .asm_11c831
+ ret
+.asm_11c851
+ pop hl
+ pop de
+ ret
+; 11c854 (47:4854)
+
+Unknown_11c854: ; 11c854
+ dwcoord 2, 8
+ dwcoord 8, 8
+ dwcoord 14, 8
+ dwcoord 2, 10
+ dwcoord 8, 10
+ dwcoord 14, 10
+ dwcoord 2, 12
+ dwcoord 8, 12
+ dwcoord 14, 12
+ dwcoord 2, 14
+ dwcoord 8, 14
+ dwcoord 14, 14
+ dw -1
+; 11c86e
+
+Function11c86e: ; 11c86e (47:486e)
+ ld a, [wcd26]
+ and a
+ jr z, .asm_11c88a
+ hlcoord 2, 17
+ ld de, String_11c8f0
+ call PlaceString
+ hlcoord 6, 17
+ ld c, $3
+ xor a
+.asm_11c883
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_11c883
+ jr .asm_11c895
+.asm_11c88a
+ hlcoord 2, 17
+ ld c, $7
+ ld a, $7f
+.asm_11c891
+ ld [hli], a
+ dec c
+ jr nz, .asm_11c891
+.asm_11c895
+ ld hl, wcd28
+ ld a, [wcd26]
+ add $c
+ jr c, .asm_11c8b7
+ cp [hl]
+ jr nc, .asm_11c8b7
+ hlcoord 16, 17
+ ld de, String_11c8f3
+ call PlaceString
+ hlcoord 11, 17
+ ld a, $3
+ ld c, a
+.asm_11c8b1
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_11c8b1
+ ret
+.asm_11c8b7
+ hlcoord 17, 16
+ ld a, $7f
+ ld [hl], a
+ hlcoord 11, 17
+ ld c, $7
+.asm_11c8c2
+ ld [hli], a
+ dec c
+ jr nz, .asm_11c8c2
+ ret
+; 11c8c7 (47:48c7)
+
+Function11c8c7: ; 11c8c7
+ inc a
+ push af
+ and $f
+ ld [hDividend], a
+ pop af
+ and $f0
+ swap a
+ ld [hQuotient], a
+ xor a
+ ld [$ffb5], a
+ push hl
+ callba Function11a80c
+ pop hl
+ ld a, [wcd63]
+ add $f6
+ ld [hli], a
+ ld a, [wcd62]
+ add $f6
+ ld [hli], a
+ ret
+; 11c8ec
+
+String_11c8ec: ; 11c8ec
+ db "ぺージ@"
+; 11c8f0
+
+String_11c8f0: ; 11c8f0
+ db "まえ@"
+; 11c8f3
+
+String_11c8f3: ; 11c8f3
+ db "つぎ@"
+; 11c8f6
+
+Function11c8f6: ; 11c8f6 (47:48f6)
+ ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
+ call Function11c95d
+ push hl
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_11c938
+ ld a, [wcd21]
+ ld d, a
+ and a
+ jr z, .asm_11c927
+ ld hl, wcd26
+ ld a, [wcd25]
+ add [hl]
+.asm_11c911
+ ld e, a
+.asm_11c912
+ pop hl
+ push de
+ call Function11c05d
+ pop de
+ ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
+ ld c, a
+ ld b, $0
+ ld hl, wcd36
+rept 2
+ add hl, bc
+endr
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ret
+.asm_11c927
+ ld hl, wcd26
+ ld a, [wcd25]
+ add [hl]
+ ld c, a
+ ld b, $0
+ ld hl, wd100
+ add hl, bc
+ ld a, [hl]
+ jr .asm_11c911
+.asm_11c938
+ ld hl, $c648
+ ld a, [wcd22]
+ ld e, a
+ ld d, $0
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ push de
+ pop hl
+ ld a, [wcd26]
+ ld e, a
+ ld d, $0
+rept 2
+ add hl, de
+endr
+ ld a, [wcd25]
+ ld e, a
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ jr .asm_11c912
+
+Function11c95d: ; 11c95d (47:495d)
+ sla a
+ ld c, a
+ ld b, 0
+ ld hl, Unknown_11c986
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld b, a
+ push bc
+ push bc
+ pop hl
+ ld a, $5
+ ld c, a
+ ld a, $7f
+.asm_11c972
+ ld [hli], a
+ dec c
+ jr nz, .asm_11c972
+ dec hl
+ ld bc, -20
+ add hl, bc
+ ld a, $5
+ ld c, a
+ ld a, $7f
+.asm_11c980
+ ld [hld], a
+ dec c
+ jr nz, .asm_11c980
+ pop hl
+ ret
+; 11c986 (47:4986)
+
+Unknown_11c986:
+ dwcoord 1, 2
+ dwcoord 7, 2
+ dwcoord 13, 2
+ dwcoord 1, 4
+ dwcoord 7, 4
+ dwcoord 13, 4
+; 11c992
+
+Function11c992: ; 11c992 (47:4992)
+ ld a, $8
+ hlcoord 2, 7
+.asm_11c997
+ push af
+ ld a, $7f
+ push hl
+ ld bc, $11
+ call ByteFill
+ pop hl
+ ld bc, $14
+ add hl, bc
+ pop af
+ dec a
+ jr nz, .asm_11c997
+ ret
+
+Function11c9ab: ; 11c9ab (47:49ab)
+ ld a, $7
+ hlcoord 0, 6, AttrMap
+ ld bc, $c8
+ call ByteFill
+ callba ReloadMapPart
+ ret
+
+Function11c9bd: ; 11c9bd (47:49bd)
+ ld de, String_11ca38
+ call Function11ca7f
+
+Function11c9c3: ; 11c9c3 (47:49c3)
+ ld hl, wcd2a
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and $1
+ jr nz, .asm_11c9de
+ ld a, [de]
+ and $2
+ jr nz, .asm_11c9e9
+ ld a, [de]
+ and $40
+ jr nz, .asm_11c9f7
+ ld a, [de]
+ and $80
+ jr nz, .asm_11c9fc
+ ret
+.asm_11c9de
+ ld a, [hl]
+ and a
+ jr nz, .asm_11c9e9
+ call Function11ca5e
+ xor a
+ ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos)
+.asm_11c9e9
+ ld hl, wcd24
+ set 4, [hl]
+ ld a, $4
+ ld [wJumptableIndex], a
+ call PlayClickSFX
+ ret
+.asm_11c9f7
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ ret
+.asm_11c9fc
+ ld a, [hl]
+ and a
+ ret nz
+ inc [hl]
+ ret
+
+Function11ca01: ; 11ca01 (47:4a01)
+ hlcoord 14, 7, AttrMap
+ ld de, $14
+ ld a, $5
+ ld c, a
+.asm_11ca0a
+ push hl
+ ld a, $6
+ ld b, a
+ ld a, $7
+.asm_11ca10
+ ld [hli], a
+ dec b
+ jr nz, .asm_11ca10
+ pop hl
+ add hl, de
+ dec c
+ jr nz, .asm_11ca0a
+
+Function11ca19: ; 11ca19 (47:4a19)
+ hlcoord 0, 12, AttrMap
+ ld de, $14
+ ld a, $6
+ ld c, a
+.asm_11ca22
+ push hl
+ ld a, $14
+ ld b, a
+ ld a, $7
+.asm_11ca28
+ ld [hli], a
+ dec b
+ jr nz, .asm_11ca28
+ pop hl
+ add hl, de
+ dec c
+ jr nz, .asm_11ca22
+ callba ReloadMapPart
+ ret
+; 11ca38 (47:4a38)
+
+String_11ca38: ; 11ca38
+ db "とうろくちゅう", $25, "あいさつ¯ぜんぶ"
+ next "けしても よろしいですか?@"
+; 11ca57
+
+String_11ca57: ; 11ca57
+ db "はい"
+ next "いいえ@"
+; 11ca5e
+
+Function11ca5e: ; 11ca5e (47:4a5e)
+ xor a
+.asm_11ca5f
+ push af
+ call Function11ca6a
+ pop af
+ inc a
+ cp $6
+ jr nz, .asm_11ca5f
+ ret
+
+Function11ca6a: ; 11ca6a (47:4a6a)
+ ld hl, wcd36
+ ld c, a
+ ld b, $0
+rept 2
+ add hl, bc
+endr
+ ld [hl], b
+ inc hl
+ ld [hl], b
+ call Function11c95d
+ ld de, String_11c3bc
+ call PlaceString
+ ret
+
+Function11ca7f: ; 11ca7f (47:4a7f)
+ push de
+ ld de, Unknown_11cfc6
+ call Function11cfce
+ ld de, Unknown_11cfca
+ call Function11cfce
+ hlcoord 1, 14
+ pop de
+ call PlaceString
+ hlcoord 16, 8
+ ld de, String_11ca57
+ call PlaceString
+ call Function11ca01
+ ld a, $1
+ ld [wcd2a], a
+ ld hl, wcd24
+ res 4, [hl]
+ call Function11cfb5
+ ret
+
+Function11caad: ; 11caad (47:4aad)
+ ld de, String_11cb1c
+ call Function11ca7f
+
+Function11cab3: ; 11cab3 (47:4ab3)
+ ld hl, wcd2a
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and $1
+ jr nz, .asm_11cace
+ ld a, [de]
+ and $2
+ jr nz, .asm_11caf9
+ ld a, [de]
+ and $40
+ jr nz, .asm_11cb12
+ ld a, [de]
+ and $80
+ jr nz, .asm_11cb17
+ ret
+.asm_11cace
+ call PlayClickSFX
+ ld a, [hl]
+ and a
+ jr nz, .asm_11cafc
+ ld a, [wcd35]
+ and a
+ jr z, .asm_11caf3
+ cp $ff
+ jr z, .asm_11caf3
+ ld a, $ff
+ ld [wcd35], a
+ hlcoord 1, 14
+ ld de, String_11cb31
+ call PlaceString
+ ld a, $1
+ ld [wcd2a], a
+ ret
+.asm_11caf3
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+.asm_11caf9
+ call PlayClickSFX
+.asm_11cafc
+ ld hl, wcd24
+ set 4, [hl]
+ ld a, $4
+ ld [wJumptableIndex], a
+ ld a, [wcd35]
+ cp $ff
+ ret nz
+ ld a, $1
+ ld [wcd35], a
+ ret
+.asm_11cb12
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ ret
+.asm_11cb17
+ ld a, [hl]
+ and a
+ ret nz
+ inc [hl]
+ ret
+; 11cb1c (47:4b1c)
+
+String_11cb1c: ; 11cb1c
+ db "あいさつ", $25, "とうろく¯ちゅうし"
+ next "しますか?@"
+; 11cb31
+
+String_11cb31: ; 11cb31
+ db "とうろくちゅう", $25, "あいさつ", $24, "ほぞん"
+ next "されません", $4a, "よろしい ですか?@"
+; 11cb52
+
+Function11cb52: ; 11cb52 (47:4b52)
+ ld hl, Unknown_11cc01
+ ld a, [MenuSelection2]
+.asm_11cb58
+ dec a
+ jr z, .asm_11cb5f
+rept 2
+ inc hl
+endr
+ jr .asm_11cb58
+.asm_11cb5f
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ call Function11ca7f
+
+Function11cb66: ; 11cb66 (47:4b66)
+ ld hl, wcd2a
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and $1
+ jr nz, .asm_11cb81
+ ld a, [de]
+ and $2
+ jr nz, .asm_11cbd7
+ ld a, [de]
+ and $40
+ jr nz, .asm_11cbeb
+ ld a, [de]
+ and $80
+ jr nz, .asm_11cbf0
+ ret
+.asm_11cb81
+ ld a, [hl]
+ and a
+ jr nz, .asm_11cbd4
+ ld a, $4
+ call GetSRAMBank
+ ld hl, $a007
+ ld a, [MenuSelection2]
+ dec a
+ sla a
+ sla a
+ ld c, a
+ sla a
+ add c
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld de, wcd36
+ ld c, $c
+.asm_11cba2
+ ld a, [de]
+ ld [hli], a
+ inc de
+ dec c
+ jr nz, .asm_11cba2
+ call CloseSRAM
+ call PlayClickSFX
+ ld de, Unknown_11cfc6
+ call Function11cfce
+ ld hl, Unknown_11cc7e
+ ld a, [MenuSelection2]
+.asm_11cbba
+ dec a
+ jr z, .asm_11cbc1
+rept 2
+ inc hl
+endr
+ jr .asm_11cbba
+.asm_11cbc1
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ hlcoord 1, 14
+ call PlaceString
+ ld hl, wJumptableIndex
+ inc [hl]
+ inc hl
+ ld a, $10
+ ld [hl], a
+ ret
+.asm_11cbd4
+ call PlayClickSFX
+.asm_11cbd7
+ ld de, Unknown_11cfba
+ call Function11cfce
+ call Function11c38a
+ ld hl, wcd24
+ set 4, [hl]
+ ld a, $4
+ ld [wJumptableIndex], a
+ ret
+.asm_11cbeb
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ ret
+.asm_11cbf0
+ ld a, [hl]
+ and a
+ ret nz
+ inc [hl]
+ ret
+
+Function11cbf5: ; 11cbf5 (47:4bf5)
+ call WaitSFX
+ ld hl, wcf64
+ dec [hl]
+ ret nz
+ dec hl
+ set 7, [hl]
+ ret
+; 11cc01 (47:4c01)
+
+Unknown_11cc01: ; 11cc01
+ dw String_11cc09
+ dw String_11cc23
+ dw String_11cc42
+ dw String_11cc60
+
+String_11cc09: ; 11cc09
+ db "じこしょうかい は"
+ next "この あいさつで いいですか?@"
+
+String_11cc23: ; 11cc23
+ db "たいせん ", $4a, "はじまるとき は"
+ next "この あいさつで いいですか?@"
+
+String_11cc42: ; 11cc42
+ db "たいせん ", $1d, "かったとき は"
+ next "この あいさつで いいですか?@"
+
+String_11cc60: ; 11cc60
+ db "たいせん ", $1d, "まけたとき は"
+ next "この あいさつで いいですか?@"
+; 11cc7e
+
+Unknown_11cc7e: ; 11cc7e
+ dw String_11cc86
+ dw String_11cc9d
+ dw String_11ccb9
+ dw String_11ccd4
+
+String_11cc86: ; 11cc86
+ db "じこしょうかい の"
+ next "あいさつ¯とうろくした!@"
+
+String_11cc9d: ; 11cc9d
+ db "たいせん ", $4a, "はじまるとき の"
+ next "あいさつ¯とうろくした!@"
+
+String_11ccb9: ; 11ccb9
+ db "たいせん ", $1d, "かったとき の"
+ next "あいさつ¯とうろくした!@"
+
+String_11ccd4: ; 11ccd4
+ db "たいせん ", $1d, "まけたとき の"
+ next "あいさつ¯とうろくした!@"
+; 11ccef
+
+Function11ccef: ; 11ccef (47:4cef)
+ ld de, Unknown_11cfc6
+ call Function11cfce
+ hlcoord 1, 14
+ ld de, String_11cd10
+ call PlaceString
+ call Function11ca19
+ call Function11cfb5
+
+Function11cd04: ; 11cd04 (47:4d04)
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and a
+ ret z
+ ld a, $4
+ ld [wJumptableIndex], a
+ ret
+; 11cd10 (47:4d10)
+
+String_11cd10: ; 11cd10
+ db "なにか ことば¯いれてください@"
+; 11cd20
+
+Function11cd20: ; 11cd20 (47:4d20)
+ call Function11c277
+ ld de, Unknown_11cfc6
+ call Function11cfce
+ hlcoord 1, 14
+ ld a, [wcd2b]
+ ld [wcd2c], a
+ and a
+ jr nz, .asm_11cd3a
+ ld de, String_11cdc7
+ jr .asm_11cd3d
+.asm_11cd3a
+ ld de, String_11cdd9
+.asm_11cd3d
+ call PlaceString
+ hlcoord 4, 8
+ ld de, String_11cdf5
+ call PlaceString
+ call Function11cdaa
+ ld hl, wcd24
+ res 5, [hl]
+ call Function11cfb5
+
+Function11cd54: ; 11cd54 (47:4d54)
+ ld hl, wcd2c
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and A_BUTTON
+ jr nz, .asm_11cd6f
+ ld a, [de]
+ and B_BUTTON
+ jr nz, .asm_11cd73
+ ld a, [de]
+ and D_UP
+ jr nz, .asm_11cd8b
+ ld a, [de]
+ and D_DOWN
+ jr nz, .asm_11cd94
+ ret
+
+.asm_11cd6f
+ ld a, [hl]
+ ld [wcd2b], a
+.asm_11cd73
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_11cd7d
+ ld a, $6
+ jr .asm_11cd7f
+
+.asm_11cd7d
+ ld a, $15
+.asm_11cd7f
+ ld [wJumptableIndex], a
+ ld hl, wcd24
+ set 5, [hl]
+ call PlayClickSFX
+ ret
+
+.asm_11cd8b
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ ld de, String_11cdc7
+ jr .asm_11cd9b
+
+.asm_11cd94
+ ld a, [hl]
+ and a
+ ret nz
+ inc [hl]
+ ld de, String_11cdd9
+.asm_11cd9b
+ push de
+ ld de, Unknown_11cfc6
+ call Function11cfce
+ pop de
+ hlcoord 1, 14
+ call PlaceString
+ ret
+
+Function11cdaa: ; 11cdaa (47:4daa)
+ ld a, $2
+ hlcoord 0, 6, AttrMap
+ ld bc, 6 * SCREEN_WIDTH
+ call ByteFill
+ ld a, $7
+ hlcoord 0, 12, AttrMap
+ ld bc, 4 * SCREEN_WIDTH
+ call ByteFill
+ callba ReloadMapPart
+ ret
+; 11cdc7 (47:4dc7)
+
+String_11cdc7: ; 11cdc7
+; Words will be displayed by category
+ db "ことば¯しゅるいべつに"
+ next "えらべます@"
+; 11cdd9
+
+String_11cdd9: ; 11cdd9
+; Words will be displayed in alphabetical order
+ db "ことば¯アイウエォ の"
+ next "じゅんばんで ひょうじ します@"
+; 11cdf5
+
+String_11cdf5: ; 11cdf5
+ db "しゅるいべつ モード" ; Category mode
+ next "アイウエォ モード@" ; ABC mode
+; 11ce0b
+
+Function11ce0b: ; 11ce0b (47:4e0b)
+ call Function11c277
+ hlcoord 1, 7
+ ld de, String_11cf79
+ call PlaceString
+ hlcoord 1, 17
+ ld de, String_11c62a
+ call PlaceString
+ call Function11c618
+ ld hl, wcd24
+ res 2, [hl]
+ call Function11cfb5
+
+Function11ce2b: ; 11ce2b (47:4e2b)
+ ld a, [CreditsTimer]
+ sla a
+ sla a
+ ld c, a
+ ld b, 0
+ ld hl, Unknown_11ceb9
+ add hl, bc
+
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and START
+ jr nz, .start
+ ld a, [de]
+ and SELECT
+ jr nz, .select
+ ld a, [de]
+ and A_BUTTON
+ jr nz, .a
+ ld a, [de]
+ and B_BUTTON
+ jr nz, .b
+
+ ld de, hJoyLast
+ ld a, [de]
+ and D_UP
+ jr nz, .up
+ ld a, [de]
+ and D_DOWN
+ jr nz, .down
+ ld a, [de]
+ and D_LEFT
+ jr nz, .left
+ ld a, [de]
+ and D_RIGHT
+ jr nz, .right
+
+ ret
+
+.a
+ ld a, [CreditsTimer]
+ cp NUM_KANA
+ jr c, .place
+ sub NUM_KANA
+ jr z, .asm_11cea4
+ dec a
+ jr z, .asm_11ce96
+ jr .b
+
+.start
+ ld hl, wcd24
+ set 0, [hl]
+ ld a, $8
+ ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos)
+.b
+ ld a, $4
+ jr .load
+
+.select
+ ld a, [wcd2b]
+ xor $1
+ ld [wcd2b], a
+ ld a, $6
+ jr .load
+
+.place
+ ld a, $8
+ jr .load
+
+.asm_11ce96
+ ld a, $13
+.load
+ ld [wJumptableIndex], a
+ ld hl, wcd24
+ set 2, [hl]
+ call PlayClickSFX
+ ret
+
+.asm_11cea4
+ ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
+ call Function11ca6a
+ call PlayClickSFX
+ ret
+
+.left
+ inc hl
+.down
+ inc hl
+.right
+ inc hl
+.up
+ ld a, [hl]
+ cp $ff
+ ret z
+ ld [CreditsTimer], a
+ ret
+; 11ceb9 (47:4eb9)
+
+Unknown_11ceb9: ; 11ceb9
+ ; up left down right
+ db $ff, $01, $05, $ff
+ db $ff, $02, $06, $00
+ db $ff, $03, $07, $01
+ db $ff, $04, $08, $02
+ db $ff, $14, $09, $03
+ db $00, $06, $0a, $ff
+ db $01, $07, $0b, $05
+ db $02, $08, $0c, $06
+ db $03, $09, $0d, $07
+ db $04, $19, $0e, $08
+ db $05, $0b, $0f, $ff
+ db $06, $0c, $10, $0a
+ db $07, $0d, $11, $0b
+ db $08, $0e, $12, $0c
+ db $09, $1e, $13, $0d
+ db $0a, $10, $2d, $ff
+ db $0b, $11, $2d, $0f
+ db $0c, $12, $2d, $10
+ db $0d, $13, $2d, $11
+ db $0e, $26, $2d, $12
+ db $ff, $15, $19, $04
+ db $ff, $16, $1a, $14
+ db $ff, $17, $1b, $15
+ db $ff, $18, $1c, $16
+ db $ff, $23, $1d, $17
+ db $14, $1a, $1e, $09
+ db $15, $1b, $1f, $19
+ db $16, $1c, $20, $1a
+ db $17, $1d, $21, $1b
+ db $18, $2b, $22, $1c
+ db $19, $1f, $26, $0e
+ db $1a, $20, $27, $1e
+ db $1b, $21, $28, $1f
+ db $1c, $22, $29, $20
+ db $1d, $2c, $2a, $21
+ db $ff, $24, $2b, $18
+ db $ff, $25, $2b, $23
+ db $ff, $ff, $2b, $24
+ db $1e, $27, $2e, $13
+ db $1f, $28, $2e, $26
+ db $20, $29, $2e, $27
+ db $21, $2a, $2e, $28
+ db $22, $ff, $2e, $29
+ db $23, $ff, $2c, $1d
+ db $2b, $ff, $2f, $22
+ db $0f, $2e, $ff, $ff
+ db $26, $2f, $ff, $2d
+ db $2c, $ff, $ff, $2e
+; 11cf79
+
+String_11cf79: ; 11cf79
+; Hiragana table
+ db "あいうえお なにぬねの や ゆ よ"
+ next "かきくけこ はひふへほ わ"
+ next "さしすせそ まみむめも そのた"
+ next "たちつてと らりるれろ"
+ db "@"
+; 11cfb5
+
+Function11cfb5: ; 11cfb5 (47:4fb5)
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+; 11cfba (47:4fba)
+
+Unknown_11cfba:
+ db 0, 0 ; start coords
+ db 20, 6 ; end coords
+
+Unknown_11cfbe:
+ db 0, 14 ; start coords
+ db 20, 4 ; end coords
+
+Unknown_11cfc2:
+ db 0, 6 ; start coords
+ db 20, 10 ; end coords
+
+Unknown_11cfc6:
+ db 0, 12 ; start coords
+ db 20, 6 ; end coords
+
+Unknown_11cfca:
+ db 14, 7 ; start coords
+ db 6, 5 ; end coords
+; 11cfce
+
+Function11cfce: ; 11cfce (47:4fce)
+ hlcoord 0, 0
+ ld bc, $14
+ ld a, [de]
+ inc de
+ push af
+ ld a, [de]
+ inc de
+ and a
+.asm_11cfda
+ jr z, .asm_11cfe0
+ add hl, bc
+ dec a
+ jr .asm_11cfda
+.asm_11cfe0
+ pop af
+ ld c, a
+ ld b, 0
+ add hl, bc
+ push hl
+ ld a, $79
+ ld [hli], a
+ ld a, [de]
+ inc de
+rept 2
+ dec a
+endr
+ jr z, .asm_11cff6
+ ld c, a
+ ld a, $7a
+.asm_11cff2
+ ld [hli], a
+ dec c
+ jr nz, .asm_11cff2
+.asm_11cff6
+ ld a, $7b
+ ld [hl], a
+ pop hl
+ ld bc, $14
+ add hl, bc
+ ld a, [de]
+ dec de
+rept 2
+ dec a
+endr
+ jr z, .asm_11d022
+ ld b, a
+.asm_11d005
+ push hl
+ ld a, $7c
+ ld [hli], a
+ ld a, [de]
+rept 2
+ dec a
+endr
+ jr z, .asm_11d015
+ ld c, a
+ ld a, $7f
+.asm_11d011
+ ld [hli], a
+ dec c
+ jr nz, .asm_11d011
+.asm_11d015
+ ld a, $7c
+ ld [hl], a
+ pop hl
+ push bc
+ ld bc, $14
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_11d005
+.asm_11d022
+ ld a, $7d
+ ld [hli], a
+ ld a, [de]
+rept 2
+ dec a
+endr
+ jr z, .asm_11d031
+ ld c, a
+ ld a, $7a
+.asm_11d02d
+ ld [hli], a
+ dec c
+ jr nz, .asm_11d02d
+.asm_11d031
+ ld a, $7e
+ ld [hl], a
+ ret
+
+Function11d035: ; 11d035 (47:5035)
+ hlcoord 0, 0
+ ld bc, $14
+ ld a, [de]
+ inc de
+ push af
+ ld a, [de]
+ inc de
+ and a
+.asm_11d041
+ jr z, .asm_11d047
+ add hl, bc
+ dec a
+ jr .asm_11d041
+.asm_11d047
+ pop af
+ ld c, a
+ ld b, $0
+ add hl, bc
+ push hl
+ ld a, $79
+ ld [hl], a
+ pop hl
+ push hl
+ ld a, [de]
+ dec a
+ inc de
+ ld c, a
+ add hl, bc
+ ld a, $7b
+ ld [hl], a
+ call Function11d0ac
+ ld a, $7e
+ ld [hl], a
+ pop hl
+ push hl
+ call Function11d0ac
+ ld a, $7d
+ ld [hl], a
+ pop hl
+ push hl
+ inc hl
+ push hl
+ call Function11d0ac
+ pop bc
+ dec de
+ ld a, [de]
+ cp $2
+ jr z, .asm_11d082
+rept 2
+ dec a
+endr
+.asm_11d078
+ push af
+ ld a, $7a
+ ld [hli], a
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ jr nz, .asm_11d078
+.asm_11d082
+ pop hl
+ ld bc, $14
+ add hl, bc
+ push hl
+ ld a, [de]
+ dec a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ pop bc
+ inc de
+ ld a, [de]
+ cp $2
+ ret z
+ push bc
+rept 2
+ dec a
+endr
+ ld c, a
+ ld b, a
+ ld de, $14
+.asm_11d09c
+ ld a, $7c
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .asm_11d09c
+ pop hl
+.asm_11d0a4
+ ld a, $7c
+ ld [hl], a
+ add hl, de
+ dec b
+ jr nz, .asm_11d0a4
+ ret
+
+Function11d0ac: ; 11d0ac (47:50ac)
+ ld a, [de]
+ dec a
+ ld bc, $14
+.asm_11d0b1
+ add hl, bc
+ dec a
+ jr nz, .asm_11d0b1
+ ret
+
+Function11d0b6: ; 11d0b6 (47:50b6)
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_11d0c7
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+Jumptable_11d0c7: ; 11d0c7 (47:50c7)
+ dw Function11d0dd
+ dw Function11d0e9
+ dw Function11d0f5
+ dw Function11d10f
+ dw Function11d134
+ dw Function11d145
+ dw Function11d156
+ dw Function11d175
+ dw Function11d1d7
+ dw Function11d1d1
+ dw Function11d1fc
+
+
+Function11d0dd: ; 11d0dd (47:50dd)
+ ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
+ sla a
+ ld hl, Unknown_11d208
+ ld e, $1
+ jr asm_11d11e
+
+Function11d0e9: ; 11d0e9 (47:50e9)
+ ld a, [wcd21]
+ sla a
+ ld hl, Unknown_11d21a
+ ld e, $2
+ jr asm_11d11e
+
+Function11d0f5: ; 11d0f5 (47:50f5)
+ ld hl, Unknown_11d2be
+ ld a, [CreditsTimer]
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [hl]
+ call Function3b3c
+ ld a, [CreditsTimer]
+ sla a
+ ld hl, Unknown_11d23e
+ ld e, $4
+ jr asm_11d11e
+
+Function11d10f: ; 11d10f (47:510f)
+ ld a, $27
+ call Function3b3c
+ ld a, [wcd25]
+ sla a
+ ld hl, Unknown_11d29e
+ ld e, $8
+
+asm_11d11e: ; 11d11e (47:511e)
+ push de
+ ld e, a
+ ld d, $0
+ add hl, de
+ push hl
+ pop de
+ ld hl, $4
+ add hl, bc
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ ld [hl], a
+ pop de
+ ld a, e
+ call Function11d2ee
+ ret
+
+Function11d134: ; 11d134 (47:5134)
+ ld a, $27
+ call Function3b3c
+ ld a, [wcd2a]
+ sla a
+ ld hl, Unknown_11d2b6
+ ld e, $10
+ jr asm_11d11e
+
+Function11d145: ; 11d145 (47:5145)
+ ld a, $27
+ call Function3b3c
+ ld a, [wcd2c]
+ sla a
+ ld hl, Unknown_11d2ba
+ ld e, $20
+ jr asm_11d11e
+
+Function11d156: ; 11d156 (47:5156)
+ ld a, $2a
+ call Function3b3c
+ ld a, [wcd4a]
+ sla a
+ sla a
+ sla a
+ add $18
+ ld hl, $4
+ add hl, bc
+ ld [hli], a
+ ld a, $30
+ ld [hl], a
+ ld a, $1
+ ld e, a
+ call Function11d2ee
+ ret
+
+Function11d175: ; 11d175 (47:5175)
+ ld a, [wcd4d]
+ cp $4
+ jr z, .asm_11d180
+ ld a, $28
+ jr .asm_11d182
+.asm_11d180
+ ld a, $26
+.asm_11d182
+ call Function3b3c
+ ld a, [wcd4d]
+ cp $4
+ jr z, .asm_11d1b1
+ ld a, [wcd4c]
+ sla a
+ sla a
+ sla a
+ add $20
+ ld hl, $4
+ add hl, bc
+ ld [hli], a
+ ld a, [wcd4d]
+ sla a
+ sla a
+ sla a
+ sla a
+ add $48
+ ld [hl], a
+ ld a, $2
+ ld e, a
+ call Function11d2ee
+ ret
+.asm_11d1b1
+ ld a, [wcd4c]
+ sla a
+ sla a
+ sla a
+ ld e, a
+ sla a
+ sla a
+ add e
+ add $18
+ ld hl, $4
+ add hl, bc
+ ld [hli], a
+ ld a, $8a
+ ld [hl], a
+ ld a, $2
+ ld e, a
+ call Function11d2ee
+ ret
+
+Function11d1d1: ; 11d1d1 (47:51d1)
+ ld d, $98
+ ld a, $2c
+ jr asm_11d1db
+
+Function11d1d7: ; 11d1d7 (47:51d7)
+ ld d, $10
+ ld a, $2b
+
+asm_11d1db: ; 11d1db (47:51db)
+ push de
+ call Function3b3c
+ ld a, [wcd4a]
+ sla a
+ sla a
+ sla a
+ ld e, a
+ sla a
+ add e
+ add $40
+ ld hl, $5
+ add hl, bc
+ ld [hld], a
+ pop af
+ ld [hl], a
+ ld a, $4
+ ld e, a
+ call Function11d2ee
+ ret
+
+Function11d1fc: ; 11d1fc (47:51fc)
+ ld a, $26
+ call Function3b3c
+ ld a, $8
+ ld e, a
+ call Function11d2ee
+ ret
+; 11d208 (47:5208)
+
+Unknown_11d208: ; 11d208
+ db $0d, $1a
+ db $3d, $1a
+ db $6d, $1a
+ db $0d, $2a
+ db $3d, $2a
+ db $6d, $2a
+ db $0d, $8a
+ db $3d, $8a
+ db $6d, $8a
+
+Unknown_11d21a: ; 11d21a
+ db $0d, $42
+ db $3d, $42
+ db $6d, $42
+ db $0d, $52
+ db $3d, $52
+ db $6d, $52
+ db $0d, $62
+ db $3d, $62
+ db $6d, $62
+ db $0d, $72
+ db $3d, $72
+ db $6d, $72
+ db $0d, $82
+ db $3d, $82
+ db $6d, $82
+ db $0d, $92
+ db $3d, $92
+ db $6d, $92
+
+Unknown_11d23e: ; 11d23e
+ db $10, $48
+ db $18, $48
+ db $20, $48
+ db $28, $48
+ db $30, $48
+ db $10, $58
+ db $18, $58
+ db $20, $58
+ db $28, $58
+ db $30, $58
+ db $10, $68
+ db $18, $68
+ db $20, $68
+ db $28, $68
+ db $30, $68
+ db $10, $78
+ db $18, $78
+ db $20, $78
+ db $28, $78
+ db $30, $78
+ db $40, $48
+ db $48, $48
+ db $50, $48
+ db $58, $48
+ db $60, $48
+ db $40, $58
+ db $48, $58
+ db $50, $58
+ db $58, $58
+ db $60, $58
+ db $40, $68
+ db $48, $68
+ db $50, $68
+ db $58, $68
+ db $60, $68
+ db $70, $48
+ db $80, $48
+ db $90, $48
+ db $40, $78
+ db $48, $78
+ db $50, $78
+ db $58, $78
+ db $60, $78
+ db $70, $58
+ db $70, $68
+ db $0d, $92
+ db $3d, $92
+ db $6d, $92
+
+Unknown_11d29e: ; 11d29e
+ db $10, $50
+ db $40, $50
+ db $70, $50
+ db $10, $60
+ db $40, $60
+ db $70, $60
+ db $10, $70
+ db $40, $70
+ db $70, $70
+ db $10, $80
+ db $40, $80
+ db $70, $80
+
+Unknown_11d2b6: ; 11d2b6
+ db $80, $50
+ db $80, $60
+
+Unknown_11d2ba: ; 11d2ba
+ db $20, $50
+ db $20, $60
+
+Unknown_11d2be: ; 11d2be
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $29, $26
+ db $26, $26
+
+Function11d2ee: ; 11d2ee (47:52ee)
+ ld hl, wcd24
+ and [hl]
+ jr nz, .asm_11d316
+ ld a, e
+ ld hl, wcd23
+ and [hl]
+ jr z, .asm_11d30f
+ ld hl, $e
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_11d305
+ dec [hl]
+ ret
+.asm_11d305
+ ld a, $0
+ ld [hld], a
+ ld a, $1
+ xor [hl]
+ ld [hl], a
+ and a
+ jr nz, .asm_11d316
+.asm_11d30f
+ ld hl, $7
+ add hl, bc
+ xor a
+ ld [hl], a
+ ret
+.asm_11d316
+ ld hl, $5
+ add hl, bc
+ ld a, $b0
+ sub [hl]
+ ld hl, $7
+ add hl, bc
+ ld [hl], a
+ ret
+
+Function11d323: ; 11d323
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_11d33a
+ ld de, UnknBGPals
+ ld bc, 16 * 8
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 11d33a
+
+Palette_11d33a:
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 16, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 23, 17, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+; 11d3ba
+
+Function11d3ba: ; 11d3ba
+ ld a, [rSVBK]
+ push af
+ ld hl, $c648
+ ld a, w5_d800 % $100
+ ld [wcd2d], a
+ ld [hli], a
+ ld a, w5_d800 / $100
+ ld [wcd2e], a
+ ld [hl], a
+
+ ld a, SortedPokemon % $100
+ ld [wcd2f], a
+ ld a, SortedPokemon / $100
+ ld [wcd30], a
+
+ ld a, $c6a8 % $100
+ ld [wcd31], a
+ ld a, $c6a8 / $100
+ ld [wcd32], a
+
+ ld a, $c64a % $100
+ ld [wcd33], a
+ ld a, $c64a / $100
+ ld [wcd34], a
+
+ ld hl, Unknown_11f23c
+ ld a, (Unknown_11f23cEnd - Unknown_11f23c) / 4
+
+.MasterLoop: ; 11d3ef
+ push af
+; read row
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+; save the pointer to the next row
+ push hl
+; add de to hl
+ ld hl, w3_d000
+ add hl, de
+; recover de from wcd2d (default: w5_d800)
+ ld a, [wcd2d]
+ ld e, a
+ ld a, [wcd2e]
+ ld d, a
+; save bc for later
+ push bc
+
+.loop1
+; copy 2*bc bytes from 3:hl to 5:de
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [hli]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ pop af
+ ld [de], a
+ inc de
+
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [hli]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ pop af
+ ld [de], a
+ inc de
+
+ dec bc
+ ld a, c
+ or b
+ jr nz, .loop1
+; recover the pointer from wcd2f (default: SortedPokemon)
+ ld a, [wcd2f]
+ ld l, a
+ ld a, [wcd30]
+ ld h, a
+; copy the pointer from [hl] to bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+; store the pointer to the next pointer back in wcd2f
+ ld a, l
+ ld [wcd2f], a
+ ld a, h
+ ld [wcd30], a
+; push pop that pointer to hl
+ push bc
+ pop hl
+ ld c, $0
+.loop2
+; Have you seen this Pokemon?
+ ld a, [hl]
+ cp $ff
+ jr z, .done
+ call .CheckSeenMon
+ jr nz, .next
+; If not, skip it.
+ inc hl
+ jr .loop2
+
+.next
+; If so, append it to the list at 5:de, and increase the count.
+ ld a, [hli]
+ ld [de], a
+ inc de
+ xor a
+ ld [de], a
+ inc de
+ inc c
+ jr .loop2
+
+.done
+; Remember the original value of bc from the table?
+; Well, the stack remembers it, and it's popping it to hl.
+ pop hl
+; Add the number of seen Pokemon from the list.
+ ld b, $0
+ add hl, bc
+; Push pop to bc.
+ push hl
+ pop bc
+; Load the pointer from [wcd31] (default: $c6a8)
+ ld a, [wcd31]
+ ld l, a
+ ld a, [wcd32]
+ ld h, a
+; Save the quantity from bc to [hl]
+ ld a, c
+ ld [hli], a
+ ld a, b
+ ld [hli], a
+; Save the new value of hl to [wcd31]
+ ld a, l
+ ld [wcd31], a
+ ld a, h
+ ld [wcd32], a
+; Recover the pointer from [wcd33] (default: $c64a)
+ ld a, [wcd33]
+ ld l, a
+ ld a, [wcd34]
+ ld h, a
+; Save the current value of de there
+ ld a, e
+ ld [wcd2d], a
+ ld [hli], a
+ ld a, d
+ ld [wcd2e], a
+; Save the new value of hl back to [wcd33]
+ ld [hli], a
+ ld a, l
+ ld [wcd33], a
+ ld a, h
+ ld [wcd34], a
+; Next row
+ pop hl
+ pop af
+ dec a
+ jr z, .ExitMasterLoop
+ jp .MasterLoop
+
+.ExitMasterLoop
+ pop af
+ ld [rSVBK], a
+ ret
+; 11d493
+
+.CheckSeenMon: ; 11d493
+ push hl
+ push bc
+ push de
+ dec a
+ ld hl, rSVBK
+ ld e, $1
+ ld [hl], e
+ call CheckSeenMon
+ ld hl, rSVBK
+ ld e, $5
+ ld [hl], e
+ pop de
+ pop bc
+ pop hl
+ ret
+; 11d4aa
+
+Function11d4aa: ; 11d4aa
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld hl, Unknown_11daac
+ ld bc, Unknown_11f220
+ xor a
+ ld [wcd2d], a
+ inc a
+ ld [wcd2e], a
+ ld a, $e
+.asm_11d4c1
+ push af
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push hl
+ ld hl, $0005
+ add hl, de
+ ld a, [bc]
+rept 2
+ inc bc
+endr
+ push bc
+.asm_11d4cf
+ push af
+ push hl
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ ld hl, wd000
+ add hl, de
+ ld a, [wcd2d]
+ ld [hli], a
+ inc a
+ ld [wcd2d], a
+ ld a, [wcd2e]
+ ld [hl], a
+ pop hl
+ ld de, $0008
+ add hl, de
+ pop af
+ dec a
+ jr nz, .asm_11d4cf
+ ld hl, wcd2d
+ xor a
+ ld [hli], a
+ inc [hl]
+ pop bc
+ pop hl
+ pop af
+ dec a
+ jr nz, .asm_11d4c1
+ pop af
+ ld [rSVBK], a
+ ret
+; 11d4fe
+
+
+SortedPokemon:
+; Pokemon sorted by kana.
+; Notably, Rhydon is missing.
+
+ dw .a
+ dw .i
+ dw .u
+ dw .e
+ dw .o
+ dw .ka_ga
+ dw .ki_gi
+ dw .ku_gu
+ dw .ke_ge
+ dw .ko_go
+ dw .sa_za
+ dw .shi_ji
+ dw .su_zu
+ dw .se_ze
+ dw .so_zo
+ dw .ta_da
+ dw .chi_dhi
+ dw .tsu_du
+ dw .te_de
+ dw .to_do
+ dw .na
+ dw .ni
+ dw .nu
+ dw .ne
+ dw .no
+ dw .ha_ba_pa
+ dw .hi_bi_pi
+ dw .fu_bu_pu
+ dw .he_be_pe
+ dw .ho_bo_po
+ dw .ma
+ dw .mi
+ dw .mu
+ dw .me
+ dw .mo
+ dw .ya
+ dw .yu
+ dw .yo
+ dw .ra
+ dw .ri
+ dw .ru
+ dw .re
+ dw .ro
+ dw .wa
+ dw .end
+
+.a: db EKANS, ARBOK, SEAKING, ARIADOS, CROCONAW, UNOWN
+ db -1
+.i: db EEVEE, GEODUDE, SPINARAK, PILOSWINE, ONIX
+ db -1
+.u: db ARCANINE, SUDOWOODO, WEEPINBELL, VICTREEBEL, WOOPER, SWINUB
+ db -1
+.e: db SKARMORY, AIPOM, ESPEON, HITMONCHAN, ELEKID, ELECTABUZZ, ENTEI
+ db -1
+.o: db FERALIGATR, FURRET, OCTILLERY, PRIMEAPE, SENTRET, STANTLER, SPEAROW, FEAROW, OMASTAR, OMANYTE
+ db -1
+.ka_ga: db GROWLITHE, MACHAMP, DRAGONITE, PINSIR, SNORLAX, KABUTO, KABUTOPS, HITMONTOP, WARTORTLE, BLASTOISE, FARFETCH_D, CUBONE, MAROWAK, KANGASKHAN
+ db -1
+.ki_gi: db SUNFLORA, CATERPIE, GYARADOS, RAPIDASH, NINETALES, GIRAFARIG, BELLOSSOM, KINGDRA, KINGLER
+ db -1
+.ku_gu: db GLOOM, PINECO, GLIGAR, KRABBY, GRANBULL, CROBAT
+ db -1
+.ke_ge: db ABRA, GENGAR, TAUROS
+ db -1
+.ko_go: db MAGIKARP, MAGNEMITE, GASTLY, HAUNTER, MACHOKE, KAKUNA, PSYDUCK, PHANPY, RATTATA, GOLDUCK, GOLBAT, GOLEM, GRAVELER, VENONAT
+ db -1
+.sa_za: db RHYHORN, PUPITAR, CORSOLA, HITMONLEE, ZAPDOS, JOLTEON, SANDSHREW, SANDSLASH ; RHYDON should lead this list
+ db -1
+.shi_ji: db SEADRA, SHELLDER, VAPOREON, DEWGONG
+ db -1
+.su_zu: db SUICUNE, STARMIE, SCYTHER, ZUBAT, BEEDRILL, HYPNO, DROWZEE
+ db -1
+.se_ze: db SQUIRTLE, CELEBI
+ db -1
+.so_zo: db WOBBUFFET
+ db -1
+.ta_da: db DUGTRIO, HORSEA, EXEGGCUTE
+ db -1
+.chi_dhi: db CHIKORITA, CHINCHOU
+ db -1
+.tsu_du: db SHUCKLE
+ db -1
+.te_de: db DIGLETT, REMORAID, DELIBIRD, HOUNDOUR, AMPHAROS
+ db -1
+.to_do: db DODUO, DODRIO, SMEARGLE, KOFFING, TENTACRUEL, TOGETIC, TOGEPI, GOLDEEN, METAPOD, DONPHAN
+ db -1
+.na: db ODDISH, EXEGGUTOR
+ db -1
+.ni: db NIDOKING, NIDOQUEEN, NIDORAN_M, NIDORAN_F, NIDORINA, NIDORINO, MEOWTH, SNEASEL, POLIWHIRL, POLITOED, POLIWRATH, POLIWAG
+ db -1
+.nu: db QUAGSIRE
+ db -1
+.ne: db NATU, XATU
+ db -1
+.no: db DUNSPARCE
+ db -1
+.ha_ba_pa: db SEEL, STEELIX, TYPHLOSION, DRAGONAIR, BUTTERFREE, SCIZOR, HOPPIP, BLISSEY, PARAS, PARASECT, QWILFISH, MR__MIME, TYROGUE, CLOYSTER, TYRANITAR
+ db -1
+.hi_bi_pi: db CLEFFA, WEEDLE, PIKACHU, CLEFABLE, PIDGEOT, PIDGEOTTO, PICHU, CLEFAIRY, CHARMANDER, STARYU, CYNDAQUIL, SUNKERN, TEDDIURSA, VOLTORB
+ db -1
+.fu_bu_pu: db MOLTRES, FLAREON, ALAKAZAM, MAGMAR, FORRETRESS, WIGGLYTUFF, IVYSAUR, BULBASAUR, VENUSAUR, AERODACTYL, MAGBY, IGGLYBUFF, UMBREON, ARTICUNO, JIGGLYPUFF, SNUBBULL
+ db -1
+.he_be_pe: db BAYLEEF, GRIMER, MUK, HERACROSS, HOUNDOOM, PERSIAN, LICKITUNG
+ db -1
+.ho_bo_po: db HO_OH, HOOTHOOT, PIDGEY, PONYTA, SKIPLOOM, PORYGON, PORYGON2
+ db -1
+.ma: db MAGCARGO, SLUGMA, QUILAVA, BELLSPROUT, WEEZING, MARILL, AZUMARILL, ELECTRODE, MANKEY, MANTINE
+ db -1
+.mi: db DRATINI, MEW, MEWTWO, MILTANK
+ db -1
+.mu: db MISDREAVUS, SMOOCHUM
+ db -1
+.me: db MEGANIUM, DITTO, TENTACOOL, MAREEP
+ db -1
+.mo: db FLAAFFY, VENOMOTH, TANGELA
+ db -1
+.ya: db SLOWKING, SLOWBRO, SLOWPOKE, MURKROW, YANMA
+ db -1
+.yu: db KADABRA
+ db -1
+.yo: db LARVITAR, NOCTOWL
+ db -1
+.ra: db RAIKOU, RAICHU, CHANSEY, RATICATE, LAPRAS, VILEPLUME, LANTURN
+ db -1
+.ri: db CHARMELEON, CHARIZARD, URSARING
+ db -1
+.ru: db JYNX, LUGIA
+ db -1
+.re: db MAGNETON, LEDIAN, LEDYBA
+ db -1
+.ro: db VULPIX
+ db -1
+.wa: db JUMPLUFF, TOTODILE, MACHOP
+.end: db -1
+; 11d67e
+
+GFX_11d67e:
+INCBIN "gfx/pokedex/select_start.2bpp"
+; 11d6de
+
+LZ_11d6de:
+INCBIN "gfx/pokedex/slowpoke.2bpp.lz"
+; 11da52
+
+Strings_11da52: ; 11da52
+; Fixed message categories
+ db "ポケモン@@"
+ db "タイプ@@@"
+ db "あいさつ@@"
+ db "ひと@@@@"
+ db "バトル@@@"
+ db "こえ@@@@"
+ db "かいわ@@@"
+ db "きもち@@@"
+ db "じょうたい@"
+ db "せいかつ@@"
+ db "しゅみ@@@"
+ db "こうどう@@"
+ db "じかん@@@"
+ db "むすび@@@"
+ db "あれこれ@@"
+; 11daac
+
+Unknown_11daac: ; 11daac
+ dw .Types
+ dw .Greetings
+ dw .People
+ dw .Battle
+ dw .Exclamations
+ dw .Conversation
+ dw .Feelings
+ dw .Conditions
+ dw .Life
+ dw .Hobbies
+ dw .Actions
+ dw .Time
+ dw .Farewells
+ dw .ThisAndThat
+
+.Types: ; 11dac8
+ db "あく@@@", $26, $0, $0
+ db "いわ@@@", $aa, $0, $0
+ db "エスパー@", $da, $0, $0
+ db "かくとう@", $4e, $1, $0
+ db "くさ@@@", $ba, $1, $0
+ db "ゴースト@", $e4, $1, $0
+ db "こおり@@", $e6, $1, $0
+ db "じめん@@", $68, $2, $0
+ db "タイプ@@", $e8, $2, $0
+ db "でんき@@", $8e, $3, $0
+ db "どく@@@", $ae, $3, $0
+ db "ドラゴン@", $bc, $3, $0
+ db "ノーマル@", $22, $4, $0
+ db "はがね@@", $36, $4, $0
+ db "ひこう@@", $5e, $4, $0
+ db "ほのお@@", $b2, $4, $0
+ db "みず@@@", $f4, $4, $0
+ db "むし@@@", $12, $5, $0
+
+.Greetings: ; 11db58
+ db "ありがと@", $58, $0, $0
+ db "ありがとう", $5a, $0, $0
+ db "いくぜ!@", $80, $0, $0
+ db "いくよ!@", $82, $0, $0
+ db "いくわよ!", $84, $0, $0
+ db "いやー@@", $a6, $0, $0
+ db "おっす@@", $a, $1, $0
+ db "おはつです", $22, $1, $0
+ db "おめでとう", $2a, $1, $0
+ db "ごめん@@", $f8, $1, $0
+ db "ごめんよ@", $fa, $1, $0
+ db "こらっ@@", $fc, $1, $0
+ db "こんちは!", $a, $2, $0
+ db "こんにちは", $10, $2, $0
+ db "さようなら", $28, $2, $0
+ db "サンキュー", $2e, $2, $0
+ db "さんじょう", $30, $2, $0
+ db "しっけい@", $48, $2, $0
+ db "しつれい@", $4c, $2, $0
+ db "じゃーね@", $6c, $2, $0
+ db "すいません", $8c, $2, $0
+ db "それじゃ@", $ca, $2, $0
+ db "どうも@@", $a6, $3, $0
+ db "なんじゃ@", $ee, $3, $0
+ db "ハーイ@@", $2c, $4, $0
+ db "はいはい@", $32, $4, $0
+ db "バイバイ@", $34, $4, $0
+ db "へイ@@@", $8a, $4, $0
+ db "またね@@", $de, $4, $0
+ db "もしもし@", $32, $5, $0
+ db "やあ@@@", $3e, $5, $0
+ db "やっほー@", $4e, $5, $0
+ db "よう@@@", $62, $5, $0
+ db "ようこそ@", $64, $5, $0
+ db "よろしく@", $80, $5, $0
+ db "らっしゃい", $94, $5, $0
+
+.People: ; 11dc78
+ db "あいて@@", $1c, $0, $0
+ db "あたし@@", $36, $0, $0
+ db "あなた@@", $40, $0, $0
+ db "あなたが@", $42, $0, $0
+ db "あなたに@", $44, $0, $0
+ db "あなたの@", $46, $0, $0
+ db "あなたは@", $48, $0, $0
+ db "あなたを@", $4a, $0, $0
+ db "おかあさん", $e8, $0, $0
+ db "おじいさん", $fc, $0, $0
+ db "おじさん@", $2, $1, $0
+ db "おとうさん", $e, $1, $0
+ db "おとこのこ", $10, $1, $0
+ db "おとな@@", $14, $1, $0
+ db "おにいさん", $16, $1, $0
+ db "おねえさん", $18, $1, $0
+ db "おばあさん", $1c, $1, $0
+ db "おばさん@", $20, $1, $0
+ db "おれさま@", $34, $1, $0
+ db "おんなのこ", $3a, $1, $0
+ db "ガール@@", $40, $1, $0
+ db "かぞく@@", $52, $1, $0
+ db "かのじょ@", $72, $1, $0
+ db "かれ@@@", $7c, $1, $0
+ db "きみ@@@", $9a, $1, $0
+ db "きみが@@", $9c, $1, $0
+ db "きみに@@", $9e, $1, $0
+ db "きみの@@", $a0, $1, $0
+ db "きみは@@", $a2, $1, $0
+ db "きみを@@", $a4, $1, $0
+ db "ギャル@@", $ae, $1, $0
+ db "きょうだい", $b2, $1, $0
+ db "こども@@", $f0, $1, $0
+ db "じぶん@@", $54, $2, $0
+ db "じぶんが@", $56, $2, $0
+ db "じぶんに@", $58, $2, $0
+ db "じぶんの@", $5a, $2, $0
+ db "じぶんは@", $5c, $2, $0
+ db "じぶんを@", $5e, $2, $0
+ db "だれ@@@", $18, $3, $0
+ db "だれか@@", $1a, $3, $0
+ db "だれが@@", $1c, $3, $0
+ db "だれに@@", $1e, $3, $0
+ db "だれの@@", $20, $3, $0
+ db "だれも@@", $22, $3, $0
+ db "だれを@@", $24, $3, $0
+ db "ちゃん@@", $38, $3, $0
+ db "ともだち@", $b8, $3, $0
+ db "なかま@@", $d4, $3, $0
+ db "ひと@@@", $62, $4, $0
+ db "ボーイ@@", $98, $4, $0
+ db "ボク@@@", $a0, $4, $0
+ db "ボクが@@", $a2, $4, $0
+ db "ボクに@@", $a4, $4, $0
+ db "ボクの@@", $a6, $4, $0
+ db "ボクは@@", $a8, $4, $0
+ db "ボクを@@", $aa, $4, $0
+ db "みんな@@", $4, $5, $0
+ db "みんなが@", $6, $5, $0
+ db "みんなに@", $8, $5, $0
+ db "みんなの@", $a, $5, $0
+ db "みんなは@", $c, $5, $0
+ db "ライバル@", $8a, $5, $0
+ db "わたし@@", $c2, $5, $0
+ db "わたしが@", $c4, $5, $0
+ db "わたしに@", $c6, $5, $0
+ db "わたしの@", $c8, $5, $0
+ db "わたしは@", $ca, $5, $0
+ db "わたしを@", $cc, $5, $0
+
+.Battle: ; 11dea0
+ db "あいしょう", $18, $0, $0
+ db "いけ!@@", $88, $0, $0
+ db "いちばん@", $96, $0, $0
+ db "かくご@@", $4c, $1, $0
+ db "かたせて@", $54, $1, $0
+ db "かち@@@", $56, $1, $0
+ db "かつ@@@", $58, $1, $0
+ db "かった@@", $60, $1, $0
+ db "かったら@", $62, $1, $0
+ db "かって@@", $64, $1, $0
+ db "かてない@", $66, $1, $0
+ db "かてる@@", $68, $1, $0
+ db "かなわない", $70, $1, $0
+ db "きあい@@", $84, $1, $0
+ db "きめた@@", $a8, $1, $0
+ db "きりふだ@", $b6, $1, $0
+ db "くらえ@@", $c2, $1, $0
+ db "こい!@@", $da, $1, $0
+ db "こうげき@", $e0, $1, $0
+ db "こうさん@", $e2, $1, $0
+ db "こんじょう", $8, $2, $0
+ db "さいのう@", $16, $2, $0
+ db "さくせん@", $1a, $2, $0
+ db "さばき@@", $22, $2, $0
+ db "しょうぶ@", $7e, $2, $0
+ db "しょうり@", $80, $2, $0
+ db "せめ@@@", $b4, $2, $0
+ db "センス@@", $b6, $2, $0
+ db "たいせん@", $e6, $2, $0
+ db "たたかい@", $f6, $2, $0
+ db "ちから@@", $32, $3, $0
+ db "チャレンジ", $36, $3, $0
+ db "つよい@@", $58, $3, $0
+ db "つよすぎ@", $5a, $3, $0
+ db "つらい@@", $5c, $3, $0
+ db "つらかった", $5e, $3, $0
+ db "てかげん@", $6c, $3, $0
+ db "てき@@@", $6e, $3, $0
+ db "てんさい@", $90, $3, $0
+ db "でんせつ@", $94, $3, $0
+ db "トレーナー", $c6, $3, $0
+ db "にげ@@@", $4, $4, $0
+ db "ぬるい@@", $10, $4, $0
+ db "ねらう@@", $16, $4, $0
+ db "バトル@@", $4a, $4, $0
+ db "ファイト@", $72, $4, $0
+ db "ふっかつ@", $78, $4, $0
+ db "ポイント@", $94, $4, $0
+ db "ポケモン@", $ac, $4, $0
+ db "ほんき@@", $bc, $4, $0
+ db "まいった!", $c4, $4, $0
+ db "まけ@@@", $c8, $4, $0
+ db "まけたら@", $ca, $4, $0
+ db "まけて@@", $cc, $4, $0
+ db "まける@@", $ce, $4, $0
+ db "まもり@@", $ea, $4, $0
+ db "みかた@@", $f2, $4, $0
+ db "みとめない", $fe, $4, $0
+ db "みとめる@", $0, $5, $0
+ db "むてき@@", $16, $5, $0
+ db "もらった!", $3c, $5, $0
+ db "よゆう@@", $7a, $5, $0
+ db "よわい@@", $82, $5, $0
+ db "よわすぎ@", $84, $5, $0
+ db "らくしょう", $8e, $5, $0
+ db "りーダー@", $9e, $5, $0
+ db "ルール@@", $a0, $5, $0
+ db "レべル@@", $a6, $5, $0
+ db "わざ@@@", $be, $5, $0
+
+.Exclamations: ; 11e0c8
+ db "!@@@@", $0, $0, $0
+ db "!!@@@", $2, $0, $0
+ db "!?@@@", $4, $0, $0
+ db "?@@@@", $6, $0, $0
+ db "…@@@@", $8, $0, $0
+ db "…!@@@", $a, $0, $0
+ db "………@@", $c, $0, $0
+ db "ー@@@@", $e, $0, $0
+ db "ーーー@@", $10, $0, $0
+ db "あーあ@@", $14, $0, $0
+ db "あーん@@", $16, $0, $0
+ db "あははー@", $52, $0, $0
+ db "あら@@@", $54, $0, $0
+ db "いえ@@@", $72, $0, $0
+ db "イエス@@", $74, $0, $0
+ db "うう@@@", $ac, $0, $0
+ db "うーん@@", $ae, $0, $0
+ db "うおー!@", $b0, $0, $0
+ db "うおりゃー", $b2, $0, $0
+ db "うひょー@", $bc, $0, $0
+ db "うふふ@@", $be, $0, $0
+ db "うわー@@", $ca, $0, $0
+ db "うわーん@", $cc, $0, $0
+ db "ええ@@@", $d2, $0, $0
+ db "えー@@@", $d4, $0, $0
+ db "えーん@@", $d6, $0, $0
+ db "えへへ@@", $dc, $0, $0
+ db "おいおい@", $e0, $0, $0
+ db "おお@@@", $e2, $0, $0
+ db "おっと@@", $c, $1, $0
+ db "がーん@@", $42, $1, $0
+ db "キャー@@", $aa, $1, $0
+ db "ギャー@@", $ac, $1, $0
+ db "ぐふふふふ", $bc, $1, $0
+ db "げっ@@@", $ce, $1, $0
+ db "しくしく@", $3e, $2, $0
+ db "ちえっ@@", $2e, $3, $0
+ db "てへ@@@", $86, $3, $0
+ db "ノー@@@", $20, $4, $0
+ db "はあー@@", $2a, $4, $0
+ db "はい@@@", $30, $4, $0
+ db "はっはっは", $48, $4, $0
+ db "ひいー@@", $56, $4, $0
+ db "ひゃあ@@", $6a, $4, $0
+ db "ふっふっふ", $7c, $4, $0
+ db "ふにゃ@@", $7e, $4, $0
+ db "ププ@@@", $80, $4, $0
+ db "ふふん@@", $82, $4, $0
+ db "ふん@@@", $88, $4, $0
+ db "へっへっへ", $8e, $4, $0
+ db "へへー@@", $90, $4, $0
+ db "ほーほほほ", $9c, $4, $0
+ db "ほら@@@", $b6, $4, $0
+ db "まあ@@@", $c0, $4, $0
+ db "むきー!!", $10, $5, $0
+ db "むふー@@", $18, $5, $0
+ db "むふふ@@", $1a, $5, $0
+ db "むむ@@@", $1c, $5, $0
+ db "よーし@@", $6a, $5, $0
+ db "よし!@@", $72, $5, $0
+ db "ラララ@@", $98, $5, $0
+ db "わーい@@", $ac, $5, $0
+ db "わーん!!", $b0, $5, $0
+ db "ワォ@@@", $b2, $5, $0
+ db "わっ!!@", $ce, $5, $0
+ db "わははは!", $d0, $5, $0
+
+.Conversation: ; 11e2d8
+ db "あのね@@", $50, $0, $0
+ db "あんまり@", $6e, $0, $0
+ db "いじわる@", $8e, $0, $0
+ db "うそ@@@", $b6, $0, $0
+ db "うむ@@@", $c4, $0, $0
+ db "おーい@@", $e4, $0, $0
+ db "おすすめ@", $6, $1, $0
+ db "おばかさん", $1e, $1, $0
+ db "かなり@@", $6e, $1, $0
+ db "から@@@", $7a, $1, $0
+ db "きぶん@@", $98, $1, $0
+ db "けど@@@", $d6, $1, $0
+ db "こそ@@@", $ea, $1, $0
+ db "こと@@@", $ee, $1, $0
+ db "さあ@@@", $12, $2, $0
+ db "さっぱり@", $1e, $2, $0
+ db "さて@@@", $20, $2, $0
+ db "じゅうぶん", $72, $2, $0
+ db "すぐ@@@", $94, $2, $0
+ db "すごく@@", $98, $2, $0
+ db "すこしは@", $9a, $2, $0
+ db "すっっごい", $a0, $2, $0
+ db "ぜーんぜん", $b0, $2, $0
+ db "ぜったい@", $b2, $2, $0
+ db "それで@@", $ce, $2, $0
+ db "だけ@@@", $f2, $2, $0
+ db "だって@@", $fc, $2, $0
+ db "たぶん@@", $6, $3, $0
+ db "たら@@@", $14, $3, $0
+ db "ちょー@@", $3a, $3, $0
+ db "ちょっと@", $3c, $3, $0
+ db "ったら@@", $4e, $3, $0
+ db "って@@@", $50, $3, $0
+ db "ていうか@", $62, $3, $0
+ db "でも@@@", $88, $3, $0
+ db "どうしても", $9c, $3, $0
+ db "とうぜん@", $a0, $3, $0
+ db "どうぞ@@", $a2, $3, $0
+ db "とりあえず", $be, $3, $0
+ db "なあ@@@", $cc, $3, $0
+ db "なんて@@", $f4, $3, $0
+ db "なんでも@", $fc, $3, $0
+ db "なんとか@", $fe, $3, $0
+ db "には@@@", $8, $4, $0
+ db "バッチり@", $46, $4, $0
+ db "ばりばり@", $52, $4, $0
+ db "ほど@@@", $b0, $4, $0
+ db "ほんと@@", $be, $4, $0
+ db "まさに@@", $d0, $4, $0
+ db "マジ@@@", $d2, $4, $0
+ db "マジで@@", $d4, $4, $0
+ db "まったく@", $e4, $4, $0
+ db "まで@@@", $e6, $4, $0
+ db "まるで@@", $ec, $4, $0
+ db "ムード@@", $e, $5, $0
+ db "むしろ@@", $14, $5, $0
+ db "めちゃ@@", $24, $5, $0
+ db "めっぽう@", $28, $5, $0
+ db "もう@@@", $2c, $5, $0
+ db "モード@@", $2e, $5, $0
+ db "もっと@@", $36, $5, $0
+ db "もはや@@", $38, $5, $0
+ db "やっと@@", $4a, $5, $0
+ db "やっぱり@", $4c, $5, $0
+ db "より@@@", $7c, $5, $0
+ db "れば@@@", $a4, $5, $0
+
+.Feelings: ; 11e4e8
+ db "あいたい@", $1a, $0, $0
+ db "あそびたい", $32, $0, $0
+ db "いきたい@", $7c, $0, $0
+ db "うかれて@", $b4, $0, $0
+ db "うれしい@", $c6, $0, $0
+ db "うれしさ@", $c8, $0, $0
+ db "エキサイト", $d8, $0, $0
+ db "えらい@@", $de, $0, $0
+ db "おかしい@", $ec, $0, $0
+ db "ォッケー@", $8, $1, $0
+ db "かえりたい", $48, $1, $0
+ db "がっくし@", $5a, $1, $0
+ db "かなしい@", $6c, $1, $0
+ db "がんばって", $80, $1, $0
+ db "きがしない", $86, $1, $0
+ db "きがする@", $88, $1, $0
+ db "ききたい@", $8a, $1, $0
+ db "きになる@", $90, $1, $0
+ db "きのせい@", $96, $1, $0
+ db "きらい@@", $b4, $1, $0
+ db "くやしい@", $be, $1, $0
+ db "くやしさ@", $c0, $1, $0
+ db "さみしい@", $24, $2, $0
+ db "ざんねん@", $32, $2, $0
+ db "しあわせ@", $36, $2, $0
+ db "したい@@", $44, $2, $0
+ db "したくない", $46, $2, $0
+ db "しまった@", $64, $2, $0
+ db "しょんぼり", $82, $2, $0
+ db "すき@@@", $92, $2, $0
+ db "だいきらい", $da, $2, $0
+ db "たいくつ@", $dc, $2, $0
+ db "だいじ@@", $de, $2, $0
+ db "だいすき@", $e4, $2, $0
+ db "たいへん@", $ea, $2, $0
+ db "たのしい@", $0, $3, $0
+ db "たのしすぎ", $2, $3, $0
+ db "たべたい@", $8, $3, $0
+ db "ダメダメ@", $e, $3, $0
+ db "たりない@", $16, $3, $0
+ db "ちくしょー", $34, $3, $0
+ db "どうしよう", $9e, $3, $0
+ db "ドキドキ@", $ac, $3, $0
+ db "ナイス@@", $d0, $3, $0
+ db "のみたい@", $26, $4, $0
+ db "びっくり@", $60, $4, $0
+ db "ふあん@@", $74, $4, $0
+ db "ふらふら@", $86, $4, $0
+ db "ほしい@@", $ae, $4, $0
+ db "ボロボロ@", $b8, $4, $0
+ db "まだまだ@", $e0, $4, $0
+ db "まてない@", $e8, $4, $0
+ db "まんぞく@", $f0, $4, $0
+ db "みたい@@", $f8, $4, $0
+ db "めずらしい", $22, $5, $0
+ db "メラメラ@", $2a, $5, $0
+ db "やだ@@@", $46, $5, $0
+ db "やったー@", $48, $5, $0
+ db "やばい@@", $50, $5, $0
+ db "やばすぎる", $52, $5, $0
+ db "やられた@", $54, $5, $0
+ db "やられて@", $56, $5, $0
+ db "よかった@", $6e, $5, $0
+ db "ラブラブ@", $96, $5, $0
+ db "ロマン@@", $a8, $5, $0
+ db "ろんがい@", $aa, $5, $0
+ db "わから@@", $b4, $5, $0
+ db "わかり@@", $b6, $5, $0
+ db "わくわく@", $ba, $5, $0
+
+.Conditions: ; 11e710
+ db "あつい@@", $38, $0, $0
+ db "あった@@", $3a, $0, $0
+ db "あり@@@", $56, $0, $0
+ db "ある@@@", $5e, $0, $0
+ db "あわてて@", $6a, $0, $0
+ db "いい@@@", $70, $0, $0
+ db "いか@@@", $76, $0, $0
+ db "イカス@@", $78, $0, $0
+ db "いきおい@", $7a, $0, $0
+ db "いける@@", $8a, $0, $0
+ db "いじょう@", $8c, $0, $0
+ db "いそがしい", $90, $0, $0
+ db "いっしょに", $9a, $0, $0
+ db "いっぱい@", $9c, $0, $0
+ db "いない@@", $a0, $0, $0
+ db "いや@@@", $a4, $0, $0
+ db "いる@@@", $a8, $0, $0
+ db "うまい@@", $c0, $0, $0
+ db "うまく@@", $c2, $0, $0
+ db "おおきい@", $e6, $0, $0
+ db "おくれ@@", $f2, $0, $0
+ db "おしい@@", $fa, $0, $0
+ db "おもしろい", $2c, $1, $0
+ db "おもしろく", $2e, $1, $0
+ db "かっこいい", $5c, $1, $0
+ db "かわいい@", $7e, $1, $0
+ db "かんぺき@", $82, $1, $0
+ db "けっこう@", $d0, $1, $0
+ db "げんき@@", $d8, $1, $0
+ db "こわい@@", $6, $2, $0
+ db "さいこう@", $14, $2, $0
+ db "さむい@@", $26, $2, $0
+ db "さわやか@", $2c, $2, $0
+ db "しかたない", $38, $2, $0
+ db "すごい@@", $96, $2, $0
+ db "すごすぎ@", $9c, $2, $0
+ db "すてき@@", $a4, $2, $0
+ db "たいした@", $e0, $2, $0
+ db "だいじょぶ", $e2, $2, $0
+ db "たかい@@", $ec, $2, $0
+ db "ただしい@", $f8, $2, $0
+ db "だめ@@@", $c, $3, $0
+ db "ちいさい@", $2c, $3, $0
+ db "ちがう@@", $30, $3, $0
+ db "つかれ@@", $48, $3, $0
+ db "とくい@@", $b0, $3, $0
+ db "とまらない", $b6, $3, $0
+ db "ない@@@", $ce, $3, $0
+ db "なかった@", $d2, $3, $0
+ db "なし@@@", $d8, $3, $0
+ db "なって@@", $dc, $3, $0
+ db "はやい@@", $50, $4, $0
+ db "ひかる@@", $5a, $4, $0
+ db "ひくい@@", $5c, $4, $0
+ db "ひどい@@", $64, $4, $0
+ db "ひとりで@", $66, $4, $0
+ db "ひま@@@", $68, $4, $0
+ db "ふそく@@", $76, $4, $0
+ db "へた@@@", $8c, $4, $0
+ db "まちがって", $e2, $4, $0
+ db "やさしい@", $42, $5, $0
+ db "よく@@@", $70, $5, $0
+ db "よわって@", $86, $5, $0
+ db "らく@@@", $8c, $5, $0
+ db "らしい@@", $90, $5, $0
+ db "わるい@@", $d4, $5, $0
+
+.Life: ; 11e920
+ db "アルバイト", $64, $0, $0
+ db "うち@@@", $ba, $0, $0
+ db "おかね@@", $ee, $0, $0
+ db "おこづかい", $f4, $0, $0
+ db "おふろ@@", $24, $1, $0
+ db "がっこう@", $5e, $1, $0
+ db "きねん@@", $92, $1, $0
+ db "グループ@", $c6, $1, $0
+ db "ゲット@@", $d2, $1, $0
+ db "こうかん@", $de, $1, $0
+ db "しごと@@", $40, $2, $0
+ db "しゅぎょう", $74, $2, $0
+ db "じゅぎょう", $76, $2, $0
+ db "じゅく@@", $78, $2, $0
+ db "しんか@@", $88, $2, $0
+ db "ずかん@@", $90, $2, $0
+ db "せいかつ@", $ae, $2, $0
+ db "せんせい@", $b8, $2, $0
+ db "センター@", $ba, $2, $0
+ db "タワー@@", $28, $3, $0
+ db "つうしん@", $40, $3, $0
+ db "テスト@@", $7e, $3, $0
+ db "テレビ@@", $8c, $3, $0
+ db "でんわ@@", $96, $3, $0
+ db "どうぐ@@", $9a, $3, $0
+ db "トレード@", $c4, $3, $0
+ db "なまえ@@", $e8, $3, $0
+ db "ニュース@", $a, $4, $0
+ db "にんき@@", $c, $4, $0
+ db "パーティー", $2e, $4, $0
+ db "べんきょう", $92, $4, $0
+ db "マシン@@", $d6, $4, $0
+ db "めいし@@", $1e, $5, $0
+ db "メッセージ", $26, $5, $0
+ db "もようがえ", $3a, $5, $0
+ db "ゆめ@@@", $5a, $5, $0
+ db "ようちえん", $66, $5, $0
+ db "ラジォ@@", $92, $5, $0
+ db "ワールド@", $ae, $5, $0
+
+.Hobbies: ; 11ea58
+ db "アイドル@", $1e, $0, $0
+ db "アニメ@@", $4c, $0, $0
+ db "うた@@@", $b8, $0, $0
+ db "えいが@@", $d0, $0, $0
+ db "おかし@@", $ea, $0, $0
+ db "おしゃべり", $4, $1, $0
+ db "おままごと", $28, $1, $0
+ db "おもちゃ@", $30, $1, $0
+ db "おんがく@", $38, $1, $0
+ db "カード@@", $3e, $1, $0
+ db "かいもの@", $46, $1, $0
+ db "グルメ@@", $c8, $1, $0
+ db "ゲーム@@", $cc, $1, $0
+ db "ざっし@@", $1c, $2, $0
+ db "さんぽ@@", $34, $2, $0
+ db "じてんしゃ", $50, $2, $0
+ db "しゅみ@@", $7a, $2, $0
+ db "スポーツ@", $a8, $2, $0
+ db "ダイエット", $d8, $2, $0
+ db "たからもの", $f0, $2, $0
+ db "たび@@@", $4, $3, $0
+ db "ダンス@@", $2a, $3, $0
+ db "つり@@@", $60, $3, $0
+ db "デート@@", $6a, $3, $0
+ db "でんしゃ@", $92, $3, $0
+ db "ぬいぐるみ", $e, $4, $0
+ db "パソコン@", $3e, $4, $0
+ db "はな@@@", $4c, $4, $0
+ db "ヒーロー@", $58, $4, $0
+ db "ひるね@@", $6e, $4, $0
+ db "ヒロイン@", $70, $4, $0
+ db "ぼうけん@", $96, $4, $0
+ db "ボード@@", $9a, $4, $0
+ db "ボール@@", $9e, $4, $0
+ db "ほん@@@", $ba, $4, $0
+ db "マンガ@@", $ee, $4, $0
+ db "やくそく@", $40, $5, $0
+ db "やすみ@@", $44, $5, $0
+ db "よてい@@", $74, $5, $0
+
+.Actions: ; 11eb90
+ db "あう@@@", $20, $0, $0
+ db "あきらめ@", $24, $0, $0
+ db "あげる@@", $28, $0, $0
+ db "あせる@@", $2e, $0, $0
+ db "あそび@@", $30, $0, $0
+ db "あそぶ@@", $34, $0, $0
+ db "あつめ@@", $3e, $0, $0
+ db "あるき@@", $60, $0, $0
+ db "あるく@@", $62, $0, $0
+ db "いく@@@", $7e, $0, $0
+ db "いけ@@@", $86, $0, $0
+ db "おき@@@", $f0, $0, $0
+ db "おこり@@", $f6, $0, $0
+ db "おこる@@", $f8, $0, $0
+ db "おしえ@@", $fe, $0, $0
+ db "おしえて@", $0, $1, $0
+ db "おねがい@", $1a, $1, $0
+ db "おぼえ@@", $26, $1, $0
+ db "かえる@@", $4a, $1, $0
+ db "がまん@@", $74, $1, $0
+ db "きく@@@", $8c, $1, $0
+ db "きたえ@@", $8e, $1, $0
+ db "きめ@@@", $a6, $1, $0
+ db "くる@@@", $c4, $1, $0
+ db "さがし@@", $18, $2, $0
+ db "さわぎ@@", $2a, $2, $0
+ db "した@@@", $42, $2, $0
+ db "しって@@", $4a, $2, $0
+ db "して@@@", $4e, $2, $0
+ db "しない@@", $52, $2, $0
+ db "しまう@@", $60, $2, $0
+ db "じまん@@", $66, $2, $0
+ db "しらない@", $84, $2, $0
+ db "しる@@@", $86, $2, $0
+ db "しんじて@", $8a, $2, $0
+ db "する@@@", $aa, $2, $0
+ db "たべる@@", $a, $3, $0
+ db "つかう@@", $42, $3, $0
+ db "つかえ@@", $44, $3, $0
+ db "つかって@", $46, $3, $0
+ db "できない@", $70, $3, $0
+ db "できる@@", $72, $3, $0
+ db "でない@@", $84, $3, $0
+ db "でる@@@", $8a, $3, $0
+ db "なげる@@", $d6, $3, $0
+ db "なやみ@@", $ea, $3, $0
+ db "ねられ@@", $18, $4, $0
+ db "ねる@@@", $1a, $4, $0
+ db "のがし@@", $24, $4, $0
+ db "のむ@@@", $28, $4, $0
+ db "はしり@@", $3a, $4, $0
+ db "はしる@@", $3c, $4, $0
+ db "はたらき@", $40, $4, $0
+ db "はたらく@", $42, $4, $0
+ db "はまって@", $4e, $4, $0
+ db "ぶつけ@@", $7a, $4, $0
+ db "ほめ@@@", $b4, $4, $0
+ db "みせて@@", $f6, $4, $0
+ db "みて@@@", $fc, $4, $0
+ db "みる@@@", $2, $5, $0
+ db "めざす@@", $20, $5, $0
+ db "もって@@", $34, $5, $0
+ db "ゆずる@@", $58, $5, $0
+ db "ゆるす@@", $5c, $5, $0
+ db "ゆるせ@@", $5e, $5, $0
+ db "られない@", $9a, $5, $0
+ db "られる@@", $9c, $5, $0
+ db "わかる@@", $b8, $5, $0
+ db "わすれ@@", $c0, $5, $0
+
+.Time: ; 11edb8
+ db "あき@@@", $22, $0, $0
+ db "あさ@@@", $2a, $0, $0
+ db "あした@@", $2c, $0, $0
+ db "いちにち@", $94, $0, $0
+ db "いつか@@", $98, $0, $0
+ db "いつも@@", $9e, $0, $0
+ db "いま@@@", $a2, $0, $0
+ db "えいえん@", $ce, $0, $0
+ db "おととい@", $12, $1, $0
+ db "おわり@@", $36, $1, $0
+ db "かようび@", $78, $1, $0
+ db "きのう@@", $94, $1, $0
+ db "きょう@@", $b0, $1, $0
+ db "きんようび", $b8, $1, $0
+ db "げつようび", $d4, $1, $0
+ db "このあと@", $f4, $1, $0
+ db "このまえ@", $f6, $1, $0
+ db "こんど@@", $c, $2, $0
+ db "じかん@@", $3c, $2, $0
+ db "じゅうねん", $70, $2, $0
+ db "すいようび", $8e, $2, $0
+ db "スタート@", $9e, $2, $0
+ db "ずっと@@", $a2, $2, $0
+ db "ストップ@", $a6, $2, $0
+ db "そのうち@", $c4, $2, $0
+ db "ついに@@", $3e, $3, $0
+ db "つぎ@@@", $4a, $3, $0
+ db "どようび@", $ba, $3, $0
+ db "なつ@@@", $da, $3, $0
+ db "にちようび", $6, $4, $0
+ db "はじめ@@", $38, $4, $0
+ db "はる@@@", $54, $4, $0
+ db "ひる@@@", $6c, $4, $0
+ db "ふゆ@@@", $84, $4, $0
+ db "まいにち@", $c6, $4, $0
+ db "もくようび", $30, $5, $0
+ db "よなか@@", $76, $5, $0
+ db "よる@@@", $7e, $5, $0
+ db "らいしゅう", $88, $5, $0
+
+.Farewells: ; 11eef0
+ db "いたします", $92, $0, $0
+ db "おります@", $32, $1, $0
+ db "か!?@@", $3c, $1, $0
+ db "かい?@@", $44, $1, $0
+ db "かしら?@", $50, $1, $0
+ db "かな?@@", $6a, $1, $0
+ db "かも@@@", $76, $1, $0
+ db "くれ@@@", $ca, $1, $0
+ db "ございます", $e8, $1, $0
+ db "しがち@@", $3a, $2, $0
+ db "します@@", $62, $2, $0
+ db "じゃ@@@", $6a, $2, $0
+ db "じゃん@@", $6e, $2, $0
+ db "しよう@@", $7c, $2, $0
+ db "ぜ!@@@", $ac, $2, $0
+ db "ぞ!@@@", $bc, $2, $0
+ db "た@@@@", $d4, $2, $0
+ db "だ@@@@", $d6, $2, $0
+ db "だからね@", $ee, $2, $0
+ db "だぜ@@@", $f4, $2, $0
+ db "だった@@", $fa, $2, $0
+ db "だね@@@", $fe, $2, $0
+ db "だよ@@@", $10, $3, $0
+ db "だよねー!", $12, $3, $0
+ db "だわ@@@", $26, $3, $0
+ db "ッス@@@", $4c, $3, $0
+ db "ってかんじ", $52, $3, $0
+ db "っぱなし@", $54, $3, $0
+ db "つもり@@", $56, $3, $0
+ db "ていない@", $64, $3, $0
+ db "ている@@", $66, $3, $0
+ db "でーす!@", $68, $3, $0
+ db "でした@@", $74, $3, $0
+ db "でしょ?@", $76, $3, $0
+ db "でしょー!", $78, $3, $0
+ db "です@@@", $7a, $3, $0
+ db "ですか?@", $7c, $3, $0
+ db "ですよ@@", $80, $3, $0
+ db "ですわ@@", $82, $3, $0
+ db "どうなの?", $a4, $3, $0
+ db "どうよ?@", $a8, $3, $0
+ db "とかいって", $aa, $3, $0
+ db "なの@@@", $e0, $3, $0
+ db "なのか@@", $e2, $3, $0
+ db "なのだ@@", $e4, $3, $0
+ db "なのよ@@", $e6, $3, $0
+ db "なんだね@", $f2, $3, $0
+ db "なんです@", $f8, $3, $0
+ db "なんてね@", $fa, $3, $0
+ db "ね@@@@", $12, $4, $0
+ db "ねー@@@", $14, $4, $0
+ db "の@@@@", $1c, $4, $0
+ db "の?@@@", $1e, $4, $0
+ db "ばっかり@", $44, $4, $0
+ db "まーす!@", $c2, $4, $0
+ db "ます@@@", $d8, $4, $0
+ db "ますわ@@", $da, $4, $0
+ db "ません@@", $dc, $4, $0
+ db "みたいな@", $fa, $4, $0
+ db "よ!@@@", $60, $5, $0
+ db "よー@@@", $68, $5, $0
+ db "よーん@@", $6c, $5, $0
+ db "よね@@@", $78, $5, $0
+ db "るよ@@@", $a2, $5, $0
+ db "わけ@@@", $bc, $5, $0
+ db "わよ!@@", $d2, $5, $0
+
+.ThisAndThat: ; 11f100
+ db "ああ@@@", $12, $0, $0
+ db "あっち@@", $3c, $0, $0
+ db "あの@@@", $4e, $0, $0
+ db "ありゃ@@", $5c, $0, $0
+ db "あれ@@@", $66, $0, $0
+ db "あれは@@", $68, $0, $0
+ db "あんな@@", $6c, $0, $0
+ db "こう@@@", $dc, $1, $0
+ db "こっち@@", $ec, $1, $0
+ db "この@@@", $f2, $1, $0
+ db "こりゃ@@", $fe, $1, $0
+ db "これ@@@", $0, $2, $0
+ db "これだ!@", $2, $2, $0
+ db "これは@@", $4, $2, $0
+ db "こんな@@", $e, $2, $0
+ db "そう@@@", $be, $2, $0
+ db "そっち@@", $c0, $2, $0
+ db "その@@@", $c2, $2, $0
+ db "そりゃ@@", $c6, $2, $0
+ db "それ@@@", $c8, $2, $0
+ db "それだ!@", $cc, $2, $0
+ db "それは@@", $d0, $2, $0
+ db "そんな@@", $d2, $2, $0
+ db "どう@@@", $98, $3, $0
+ db "どっち@@", $b2, $3, $0
+ db "どの@@@", $b4, $3, $0
+ db "どりゃ@@", $c0, $3, $0
+ db "どれ@@@", $c2, $3, $0
+ db "どれを@@", $c8, $3, $0
+ db "どんな@@", $ca, $3, $0
+ db "なに@@@", $de, $3, $0
+ db "なんか@@", $ec, $3, $0
+ db "なんだ@@", $f0, $3, $0
+ db "なんで@@", $f6, $3, $0
+ db "なんなんだ", $0, $4, $0
+ db "なんの@@", $2, $4, $0
+; 11f220
+
+Unknown_11f220:
+ db $12, $01, $24, $02
+ db $45, $05, $45, $05
+ db $42, $05, $42, $05
+ db $45, $05, $42, $05
+ db $27, $03, $27, $03
+ db $45, $05, $27, $03
+ db $42, $05, $24, $02
+
+Unknown_11f23c:
+macro_11f23c: macro
+ dw x - w3_d000, \1
+x = x + 2 * \1
+endm
+x = $d012
+ macro_11f23c $2f
+ macro_11f23c $1e
+ macro_11f23c $11
+ macro_11f23c $09
+ macro_11f23c $2e
+ macro_11f23c $24
+ macro_11f23c $1b
+ macro_11f23c $09
+ macro_11f23c $07
+ macro_11f23c $1c
+ macro_11f23c $12
+ macro_11f23c $2b
+ macro_11f23c $10
+ macro_11f23c $08
+ macro_11f23c $0c
+ macro_11f23c $2c
+ macro_11f23c $09
+ macro_11f23c $12
+ macro_11f23c $1b
+ macro_11f23c $1a
+ macro_11f23c $1c
+ macro_11f23c $05
+ macro_11f23c $02
+ macro_11f23c $05
+ macro_11f23c $07
+ macro_11f23c $16
+ macro_11f23c $0e
+ macro_11f23c $0c
+ macro_11f23c $05
+ macro_11f23c $16
+ macro_11f23c $19
+ macro_11f23c $0e
+ macro_11f23c $08
+ macro_11f23c $07
+ macro_11f23c $09
+ macro_11f23c $0d
+ macro_11f23c $04
+ macro_11f23c $14
+ macro_11f23c $0b
+ macro_11f23c $01
+ macro_11f23c $02
+ macro_11f23c $02
+ macro_11f23c $02
+ macro_11f23c $15
+x = $d000
+ macro_11f23c $09
+Unknown_11f23cEnd:
--- a/misc/gbc_only.asm
+++ b/misc/gbc_only.asm
@@ -10,7 +10,7 @@
call ClearTileMap
ld hl, GBCOnlyGFX
- ld de, $d000
+ ld de, wd000
ld a, [rSVBK]
push af
ld a, 0
@@ -19,7 +19,7 @@
pop af
ld [rSVBK], a
- ld de, $d000
+ ld de, wd000
ld hl, VTiles2
lb bc, BANK(GBCOnlyGFX), $54
call Get2bpp
--- /dev/null
+++ b/misc/mobile_12.asm
@@ -1,0 +1,1829 @@
+InitMobileProfile: ; 4802f (12:402f)
+ xor a
+ set 6, a
+ ld [wd002], a
+ ld hl, wd003
+ set 0, [hl]
+ ld a, c
+ and a
+ call z, Function48000
+ call ClearBGPalettes
+ call Function48d3d
+ ld a, [wd479]
+ bit 1, a
+ jr z, .asm_4805a
+ ld a, [wd003]
+ set 0, a
+ set 1, a
+ set 2, a
+ set 3, a
+ ld [wd003], a
+.asm_4805a
+ call Function486bf
+ call LoadFontsExtra
+ ld de, GFX_488c3
+ ld hl, VTiles2 tile $10
+ lb bc, BANK(GFX_488c3), 1
+ call Request1bpp
+ ld de, GFX_488cb
+ ld hl, VTiles2 tile $11
+ lb bc, BANK(GFX_488cb), 1
+ call Request1bpp
+ call Function4a3a7
+ call ClearBGPalettes
+ ld a, [wd002]
+ bit 6, a
+ jr z, .asm_4808a
+ call Function48689
+ jr .asm_480d7
+.asm_4808a
+ ld a, $5
+ ld [MusicFade], a
+ ld a, MUSIC_MOBILE_ADAPTER_MENU % $100
+ ld [MusicFadeIDLo], a
+ ld a, MUSIC_MOBILE_ADAPTER_MENU / $100
+ ld [MusicFadeIDHi], a
+ ld c, 20
+ call DelayFrames
+ ld b, $1
+ call Function4930f
+ call ClearBGPalettes
+ hlcoord 0, 0
+ ld b, $2
+ ld c, $14
+ call ClearBox
+ hlcoord 0, 1
+ ld a, $c
+ ld [hl], a
+ ld bc, $13
+ add hl, bc
+ ld [hl], a
+ ld de, MobileProfileString
+ hlcoord 1, 1
+ call PlaceString
+ hlcoord 0, 2
+ ld b, $a
+ ld c, $12
+ call Function48cdc
+ hlcoord 2, 4
+ ld de, String_48482
+ call PlaceString
+.asm_480d7
+ hlcoord 2, 6
+ ld de, String_48489
+ call PlaceString
+ hlcoord 2, 8
+ ld de, String_4848d
+ call PlaceString
+ hlcoord 2, 10
+ ld de, String_48495
+ call PlaceString
+ hlcoord 2, 12
+ ld de, String_4849e
+ call PlaceString
+ ld a, [wd002]
+ bit 6, a
+ jr nz, .asm_48113
+ ld a, [PlayerGender]
+ ld hl, Strings_484fb
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 11, 4
+ call PlaceString
+.asm_48113
+ hlcoord 11, 6
+ call Function487ec
+ ld a, [wd474]
+ dec a
+ ld hl, Prefectures
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 11, 8
+ call PlaceString
+ hlcoord 11, 10
+ call Function489ea
+ hlcoord 0, 14
+ ld b, $2
+ ld c, $12
+ call TextBox
+ hlcoord 1, 16
+ ld de, String_48275
+ call PlaceString
+ call Function48187
+ call Function3200
+ call SetPalettes
+ call Function1bc9
+ ld hl, MenuSelection2
+ ld b, [hl]
+ push bc
+ jr asm_4815f
+
+Function48157: ; 48157 (12:4157)
+ call Function1bd3
+ ld hl, MenuSelection2
+ ld b, [hl]
+ push bc
+
+asm_4815f: ; 4815f (12:415f)
+ bit 0, a
+ jp nz, Function4820d
+ ld b, a
+ ld a, [wd002]
+ bit 6, a
+ jr z, .asm_48177
+ ld hl, wd479
+ bit 1, [hl]
+ jr z, .asm_48177
+ bit 1, b
+ jr nz, .asm_4817a
+.asm_48177
+ jp Function48272
+.asm_4817a
+ call ClearBGPalettes
+ call Function48d30
+ pop bc
+ call ClearTileMap
+ ld a, $ff
+ ret
+
+Function48187: ; 48187 (12:4187)
+ ld a, [wd479]
+ bit 1, a
+ jr nz, .asm_481f1
+ ld a, [wd003]
+ ld d, a
+ call Function48725
+ jr c, .asm_481a2
+ lb bc, 1, 4
+ hlcoord 2, 12
+ call ClearBox
+ jr .asm_481ad
+.asm_481a2
+ push de
+ hlcoord 2, 12
+ ld de, String_4849e
+ call PlaceString
+ pop de
+.asm_481ad
+ ld a, [wd002]
+ bit 6, a
+ jr nz, .asm_481c1
+ bit 0, d
+ jr nz, .asm_481c1
+ lb bc, 1, 8
+ hlcoord 11, 4
+ call ClearBox
+.asm_481c1
+ bit 1, d
+ jr nz, .asm_481ce
+ lb bc, 1, 8
+ hlcoord 11, 6
+ call ClearBox
+.asm_481ce
+ bit 2, d
+ jr nz, .asm_481db
+ lb bc, 2, 8
+ hlcoord 11, 7
+ call ClearBox
+.asm_481db
+ bit 3, d
+ jr nz, .asm_481f1
+ ld a, [wd479]
+ bit 0, a
+ jr nz, .asm_481f8
+ lb bc, 1, 8
+ hlcoord 11, 10
+ call ClearBox
+ jr .asm_48201
+.asm_481f1
+ ld a, [wd479]
+ bit 0, a
+ jr nz, .asm_48201
+.asm_481f8
+ hlcoord 11, 10
+ ld de, String_48202
+ call PlaceString
+.asm_48201
+ ret
+; 48202 (12:4202)
+
+String_48202: ; 48202
+ db "Tell Later@"
+; 4820d
+
+Function4820d: ; 4820d (12:420d)
+ call Function1bee
+ ld hl, MenuSelection2
+ ld a, [hl]
+ push af
+ ld a, [wd002]
+ bit 6, a
+ jr z, .asm_4821f
+ pop af
+ inc a
+ push af
+.asm_4821f
+ pop af
+ cp $1
+ jr z, asm_4828d
+ cp $2
+ jp z, Function4876f
+ cp $3
+ jp z, Function48304
+ cp $4
+ jp z, Function488d3
+ ld a, $2
+ call Function1ff8
+ ld a, [wd002]
+ bit 6, a
+ jr z, .asm_4825c
+ jr .asm_4825c
+; 48241 (12:4241)
+
+ hlcoord 1, 15
+ ld b, $2
+ ld c, $12
+ call ClearBox
+ ld de, String_484a1
+ hlcoord 1, 16
+ call PlaceString
+ call WaitBGMap
+ ld c, 48
+ call DelayFrames
+
+.asm_4825c
+ call ClearBGPalettes
+ call Function48d30
+ pop bc
+ call ClearTileMap
+ ld b, SCGB_08
+ call GetSGBLayout
+ ld hl, wd479
+ set 1, [hl]
+ xor a
+ ret
+
+Function48272: ; 48272 (12:4272)
+ jp Function4840c
+; 48275 (12:4275)
+
+String_48275: ; 48275
+ db "Personal Info@"
+; 48283
+
+Function48283: ; 48283 (12:4283)
+ lb bc, 2, 18
+ hlcoord 1, 15
+ call ClearBox
+ ret
+
+asm_4828d: ; 4828d (12:428d)
+ call Function48283
+ hlcoord 1, 16
+ ld de, String_484b1
+ call PlaceString
+ ld hl, MenuDataHeader_0x484f1
+ call LoadMenuDataHeader
+ call Function4873c
+ hlcoord 11, 2
+ ld b, $4
+ ld c, $7
+ call Function48cdc
+ hlcoord 13, 4
+ ld de, String_484fb
+ call PlaceString
+ hlcoord 13, 6
+ ld de, String_484ff
+ call PlaceString
+ call WaitBGMap
+ ld a, [PlayerGender]
+ inc a
+ ld [wMenuCursorBuffer], a
+ call Function1bc9
+ call PlayClickSFX
+ call ExitMenu
+ bit 0, a
+ jp z, Function4840c
+ ld hl, MenuSelection2
+ ld a, [hl]
+ ld hl, Strings_484fb
+ cp $1
+ jr z, .asm_482ed
+.asm_482e1
+ ld a, [hli]
+ cp $50
+ jr nz, .asm_482e1
+ ld a, $1
+ ld [PlayerGender], a
+ jr .asm_482f1
+.asm_482ed
+ xor a
+ ld [PlayerGender], a
+.asm_482f1
+ ld d, h
+ ld e, l
+ hlcoord 11, 4
+ call PlaceString
+ ld a, [wd003]
+ set 0, a
+ ld [wd003], a
+ jp Function4840c
+
+Function48304: ; 48304 (12:4304)
+ call Function48283
+ hlcoord 1, 16
+ ld de, String_484cf
+ call PlaceString
+ ld hl, MenuDataHeader_0x48504
+ call LoadMenuDataHeader
+ ld hl, MenuDataHeader_0x48513
+ call LoadMenuDataHeader
+ hlcoord 10, 0
+ ld b, $c
+ ld c, $8
+ call Function48cdc
+ ld a, [wMenuCursorBuffer]
+ ld b, a
+ ld a, [wMenuScrollPosition]
+ ld c, a
+ push bc
+ ld a, [wd474]
+ dec a
+ cp $29
+ jr c, .asm_4833f
+ sub $29
+ inc a
+ ld [wMenuCursorBuffer], a
+ ld a, $29
+.asm_4833f
+ ld [wMenuScrollPosition], a
+ callba Function104148
+.asm_48348
+ call HandleScrollingMenu
+ ld de, $629
+ call Function48383
+ jr c, .asm_48348
+ ld d, a
+ pop bc
+ ld a, b
+ ld [wMenuCursorBuffer], a
+ ld a, c
+ ld [wMenuScrollPosition], a
+ ld a, d
+ push af
+ call ExitMenu
+ call ExitMenu
+ pop af
+ ld a, [hJoyPressed]
+ bit 0, a
+ jr z, .asm_48377
+ call Function483bb
+ ld a, [wd003]
+ set 2, a
+ ld [wd003], a
+.asm_48377
+ call Function48187
+ callba Function104148
+ jp Function4840c
+
+Function48383: ; 48383 (12:4383)
+ push bc
+ push af
+ bit 5, a
+ jr nz, .asm_48390
+ bit 4, a
+ jr nz, .asm_4839f
+ and a
+ jr .asm_483b7
+.asm_48390
+ ld a, [wMenuScrollPosition]
+ sub d
+ ld [wMenuScrollPosition], a
+ jr nc, .asm_483af
+ xor a
+ ld [wMenuScrollPosition], a
+ jr .asm_483af
+.asm_4839f
+ ld a, [wMenuScrollPosition]
+ add d
+ ld [wMenuScrollPosition], a
+ cp e
+ jr c, .asm_483af
+ ld a, e
+ ld [wMenuScrollPosition], a
+ jr .asm_483af
+.asm_483af
+ ld hl, MenuSelection2
+ ld a, [hl]
+ ld [wMenuCursorBuffer], a
+ scf
+.asm_483b7
+ pop bc
+ ld a, b
+ pop bc
+ ret
+
+Function483bb: ; 483bb (12:43bb)
+ ld hl, wcf77
+ ld a, [hl]
+ inc a
+ ld [wd474], a
+ dec a
+ ld b, a
+ ld hl, Prefectures
+.asm_483c8
+ and a
+ jr z, .asm_483d5
+.asm_483cb
+ ld a, [hli]
+ cp "@"
+ jr nz, .asm_483cb
+ ld a, b
+ dec a
+ ld b, a
+ jr .asm_483c8
+.asm_483d5
+ ld d, h
+ ld e, l
+ ld b, $2
+ ld c, $8
+ hlcoord 11, 7
+ call ClearBox
+ hlcoord 11, 8
+ call PlaceString
+ ret
+; 483e8 (12:43e8)
+
+Function483e8: ; 483e8
+ push de
+ ld hl, Prefectures
+ ld a, [MenuSelection]
+ cp $ff
+ jr nz, .asm_483f8
+ ld hl, Wakayama ; last string
+ jr .asm_48405
+
+.asm_483f8
+ ld d, a
+ and a
+ jr z, .asm_48405
+.asm_483fc
+ ld a, [hli]
+ cp "@"
+ jr nz, .asm_483fc
+ ld a, d
+ dec a
+ jr .asm_483f8
+
+.asm_48405
+ ld d, h
+ ld e, l
+ pop hl
+ call PlaceString
+ ret
+; 4840c
+
+Function4840c: ; 4840c (12:440c)
+ call Function48187
+ call Function48283
+ hlcoord 1, 16
+ ld de, String_48275
+ call PlaceString
+ call Function486bf
+ pop bc
+ ld hl, MenuSelection2
+ ld [hl], b
+ ld a, [wd002]
+ bit 6, a
+ jr nz, .asm_48437
+ ld b, $9
+ ld c, $1
+ hlcoord 1, 4
+ call ClearBox
+ jp Function48157
+.asm_48437
+ ld b, $7
+ ld c, $1
+ hlcoord 1, 6
+ call ClearBox
+ jp Function48157
+
+Function48444: ; 48444 (12:4444)
+ push bc
+ push af
+ push de
+ push hl
+ ld hl, Unknown_4845d
+.asm_4844b
+ and a
+ jr z, .asm_48453
+rept 2
+ inc hl
+endr
+ dec a
+ jr .asm_4844b
+.asm_48453
+ ld d, h
+ ld e, l
+ pop hl
+ call PlaceString
+ pop de
+ pop af
+ pop bc
+ ret
+; 4845d (12:445d)
+
+Unknown_4845d: ; 4845d
+; 4845d
+ db "0@"
+ db "1@"
+ db "2@"
+ db "3@"
+ db "4@"
+ db "5@"
+ db "6@"
+ db "7@"
+ db "8@"
+ db "9@"
+; 48471
+
+MobileProfileString: db " Mobile Profile@"
+String_48482: db "Gender@"
+String_48489: db "Age@"
+String_4848d: db "Address@"
+String_48495: db "Zip Code@"
+String_4849e: db "OK@"
+String_484a1: db "Profile Changed@"
+String_484b1: db "Boy or girl?@"
+String_484be: db "How old are you?@"
+String_484cf: db "Where do you live?@"
+String_484e2: db "Your zip code?@"
+; 484f1
+
+MenuDataHeader_0x484f1: ; 0x484f1
+ db $40 ; flags
+ db 02, 11 ; start coords
+ db 07, 19 ; end coords
+ dw MenuData2_0x484f9
+ db 1 ; default option
+; 0x484f9
+
+MenuData2_0x484f9: ; 0x484f9
+ db $a0 ; flags
+ db 2 ; items
+Strings_484fb:
+String_484fb: db "Boy@"
+String_484ff: db "Girl@"
+; 0x48504
+
+MenuDataHeader_0x48504: ; 0x48504
+ db $40 ; flags
+ db 00, 10 ; start coords
+ db 17, 19 ; end coords
+
+MenuDataHeader_0x48509: ; 0x48509
+ db $40 ; flags
+ db 05, 10 ; start coords
+ db 07, 19 ; end coords
+
+MenuDataHeader_0x4850e: ; 0x4850e
+ db $40 ; flags
+ db 09, 10 ; start coords
+ db 11, 19 ; end coords
+
+MenuDataHeader_0x48513: ; 0x48513
+ db $40 ; flags
+ db 01, 11 ; start coords
+ db 12, 18 ; end coords
+ dw MenuData2_0x4851b
+ db 1 ; default option
+; 0x4851b
+
+MenuData2_0x4851b: ; 0x4851b
+ db $1d ; flags
+ db 6 ; items
+
+Unknown_4851d: ; 4851d
+ db $00, $01, $12, $2b, $45, $12, $e8, $43, $00, $00, $00, $00, $00, $00, $2e, $00, $01, $02, $03, $04
+ db $05, $06, $07, $08, $09, $0a, $0b, $0c, $0d, $0e, $0f, $10, $11, $12, $13, $14, $15, $16, $17, $18
+ db $19, $1a, $1b, $1c, $1d, $1e, $1f, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $2a, $2b, $2c
+ db $2d, $ff
+
+Prefectures:
+Aichi: db "あいちけん@" ; Aichi
+Aomori: db "あおもりけん@" ; Aomori
+Akita: db "あきたけん@" ; Akita
+Ishikawa: db "いしかわけん@" ; Ishikawa
+Ibaraki: db "いばらきけん@" ; Ibaraki
+Iwate: db "いわてけん@" ; Iwate
+Ehime: db "えひめけん@" ; Ehime
+Oita: db "おおいたけん@" ; Oita
+Osakafu: db "おおさかふ@" ; Osakafu
+Okayama: db "おかやまけん@" ; Okayama
+Okinawa: db "おきなわけん@" ; Okinawa
+Kagawa: db "かがわけん@" ; Kagawa
+Kagoshima: db "かごしまけん@" ; Kagoshima
+Kanagawa: db "かながわけん@" ; Kanagawa
+Gifu: db "ぎふけん@" ; Gifu
+Kyotofu: db "きょうとふ@" ; Kyotofu
+Kumamoto: db "くまもとけん@" ; Kumamoto
+Gunma: db "ぐんまけん@" ; Gunma
+Kochi: db "こうちけん@" ; Kochi
+Saitama: db "さいたまけん@" ; Saitama
+Saga: db "さがけん@" ; Saga
+Shiga: db "しがけん@" ; Shiga
+Shizuoka: db "しずおかけん@" ; Shizuoka
+Shimane: db "しまねけん@" ; Shimane
+Chiba: db "ちばけん@" ; Chiba
+Tokyo: db "とうきょうと@" ; Tokyo
+Tokushima: db "とくしまけん@" ; Tokushima
+Tochigi: db "とちぎけん@" ; Tochigi
+Tottori: db "とっとりけん@" ; Tottori
+Toyama: db "とやまけん@" ; Toyama
+Nagasaki: db "ながさきけん@" ; Nagasaki
+Nagano: db "ながのけん@" ; Nagano
+Naraken: db "ならけん@" ; Naraken
+Niigata: db "にいがたけん@" ; Niigata
+Hyogo: db "ひょうごけん@" ; Hyogo
+Hiroshima: db "ひろしまけん@" ; Hiroshima
+Fukui: db "ふくいけん@" ; Fukui
+Fukuoka: db "ふくおかけん@" ; Fukuoka
+Fukushima: db "ふくしまけん@" ; Fukushima
+Hokkaido: db "ほっかいどう@" ; Hokkaido
+Mie: db "みえけん@" ; Mie
+Miyagi: db "みやぎけん@" ; Miyagi
+Miyazaki: db "みやざきけん@" ; Miyazaki
+Yamagata: db "やまがたけん@" ; Yamagata
+Yamaguchi: db "やまぐちけん@" ; Yamaguchi
+Yamanashi: db "やまなしけん@" ; Yamanashi
+Wakayama: db "わかやまけん@" ; Wakayama
+; 48689
+
+Function48689: ; 48689 (12:4689)
+ ld c, 7
+ call DelayFrames
+ ld b, $1
+ call Function4930f
+ call ClearBGPalettes
+ hlcoord 0, 0
+ ld b, $4
+ ld c, $14
+ call ClearBox
+ hlcoord 0, 2
+ ld a, $c
+ ld [hl], a
+ ld bc, $13
+ add hl, bc
+ ld [hl], a
+ ld de, MobileProfileString
+ hlcoord 1, 2
+ call PlaceString
+ hlcoord 0, 4
+ ld b, $8
+ ld c, $12
+ call Function48cdc
+ ret
+
+Function486bf: ; 486bf (12:46bf)
+ ld hl, wcfa1
+ ld a, [wd002]
+ bit 6, a
+ jr nz, .asm_486ce
+ ld a, $4
+ ld [hli], a
+ jr .asm_486d1
+.asm_486ce
+ ld a, $6
+ ld [hli], a
+.asm_486d1
+ ld a, $1
+ ld [hli], a
+ ld a, [wd002]
+ bit 6, a
+ jr nz, .asm_486e7
+ call Function48725
+ ld a, $4
+ jr nc, .asm_486e4
+ ld a, $5
+.asm_486e4
+ ld [hli], a
+ jr .asm_486fb
+.asm_486e7
+ ld a, [wd479]
+ bit 1, a
+ jr nz, .asm_486f8
+ call Function48725
+ jr c, .asm_486f8
+ ld a, $3
+ ld [hli], a
+ jr .asm_486fb
+.asm_486f8
+ ld a, $4
+ ld [hli], a
+.asm_486fb
+ ld a, $1
+ ld [hli], a
+ ld [hl], $0
+ set 5, [hl]
+ inc hl
+ xor a
+ ld [hli], a
+ ld a, $20
+ ld [hli], a
+ ld a, $1
+ add $40
+ add $80
+ push af
+ ld a, [wd002]
+ bit 6, a
+ jr z, .asm_4871a
+ pop af
+ add $2
+ push af
+.asm_4871a
+ pop af
+ ld [hli], a
+ ld a, $1
+rept 2
+ ld [hli], a
+endr
+ xor a
+rept 3
+ ld [hli], a
+endr
+ ret
+
+Function48725: ; 48725 (12:4725)
+ ld a, [wd003]
+ bit 0, a
+ jr z, .asm_4873a
+ bit 1, a
+ jr z, .asm_4873a
+ bit 2, a
+ jr z, .asm_4873a
+ bit 3, a
+ jr z, .asm_4873a
+ scf
+ ret
+.asm_4873a
+ and a
+ ret
+
+Function4873c: ; 4873c (12:473c)
+ ld hl, wcfa1
+ ld a, $4
+ ld [hli], a
+ ld a, $c
+ ld [hli], a
+ ld a, $2
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld [hl], $0
+ set 5, [hl]
+ inc hl
+ xor a
+ ld [hli], a
+ ld a, $20
+ ld [hli], a
+ ld a, $1
+ add $2
+ ld [hli], a
+ ld a, [PlayerGender]
+ and a
+ jr z, .asm_48764
+ ld a, $2
+ jr .asm_48766
+.asm_48764
+ ld a, $1
+.asm_48766
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ xor a
+rept 3
+ ld [hli], a
+endr
+ ret
+
+Function4876f: ; 4876f (12:476f)
+ call Function48283
+ hlcoord 1, 16
+ ld de, String_484be
+ call PlaceString
+ ld hl, MenuDataHeader_0x48509
+ call LoadMenuDataHeader
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ hlcoord 10, 5
+ ld b, $1
+ ld c, $8
+ call Function48cdc
+ call WaitBGMap
+ ld a, [wd473]
+ and a
+ jr z, .asm_487ab
+ cp $64
+ jr z, .asm_487b2
+ hlcoord 12, 5
+ ld [hl], $10
+ hlcoord 12, 7
+ ld [hl], $11
+ jr .asm_487b7
+.asm_487ab
+ hlcoord 12, 5
+ ld [hl], $10
+ jr .asm_487b7
+.asm_487b2
+ hlcoord 12, 7
+ ld [hl], $11
+.asm_487b7
+ hlcoord 11, 6
+ call Function487ec
+ ld c, 10
+ call DelayFrames
+ ld a, [wd473]
+ push af
+.asm_487c6
+ call JoyTextDelay
+ call Function4880e
+ jr nc, .asm_487c6
+ ld a, $1
+ call Function1ff8
+ pop bc
+ jr nz, .asm_487da
+ ld a, b
+ ld [wd473], a
+.asm_487da
+ ld a, [wd473]
+ call ExitMenu
+ hlcoord 11, 6
+ call Function487ec
+ pop af
+ ld [hInMenu], a
+ jp Function4840c
+
+Function487ec: ; 487ec (12:47ec)
+ push hl
+ ld de, wd473
+ call Function487ff
+ pop hl
+rept 4
+ inc hl
+endr
+ ld de, String_4880d
+ call PlaceString
+ ret
+
+Function487ff: ; 487ff (12:47ff)
+ push hl
+ ld a, " "
+ ld [hli], a
+ ld [hl], a
+ pop hl
+ ld b, PRINTNUM_LEADINGZEROS | 1
+ ld c, 3
+ call PrintNum
+ ret
+; 4880d (12:480d)
+
+String_4880d: ; 4880d
+ db "@"
+; 4880e
+
+Function4880e: ; 4880e (12:480e)
+ ld a, [hJoyPressed]
+ and A_BUTTON
+ jp nz, Function488b9
+ ld a, [hJoyPressed]
+ and B_BUTTON
+ jp nz, Function488b4
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .asm_48843
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .asm_48838
+ ld a, [hl]
+ and D_LEFT
+ jr nz, .asm_4884f
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, .asm_4885f
+ call DelayFrame
+ and a
+ ret
+.asm_48838
+ ld hl, wd473
+ ld a, [hl]
+ and a
+ jr z, .asm_48840
+ dec a
+.asm_48840
+ ld [hl], a
+ jr .asm_4886f
+.asm_48843
+ ld hl, wd473
+ ld a, [hl]
+ cp $64
+ jr nc, .asm_4884c
+ inc a
+.asm_4884c
+ ld [hl], a
+ jr .asm_4886f
+.asm_4884f
+ ld a, [wd473]
+ cp $5b
+ jr c, .asm_48858
+ ld a, $5a
+.asm_48858
+ add $a
+ ld [wd473], a
+ jr .asm_4886f
+.asm_4885f
+ ld a, [wd473]
+ cp $a
+ jr nc, .asm_48868
+ ld a, $a
+.asm_48868
+ sub $a
+ ld [wd473], a
+ jr .asm_4886f
+.asm_4886f
+ ld a, [wd473]
+ and a
+ jr z, .asm_48887
+ cp $64
+ jr z, .asm_48898
+ jr z, .asm_488a7
+ hlcoord 12, 5
+ ld [hl], $10
+ hlcoord 12, 7
+ ld [hl], $11
+ jr .asm_488a7
+.asm_48887
+ hlcoord 10, 5
+ ld b, $1
+ ld c, $8
+ call Function48cdc
+ hlcoord 12, 5
+ ld [hl], $10
+ jr .asm_488a7
+.asm_48898
+ hlcoord 10, 5
+ ld b, $1
+ ld c, $8
+ call Function48cdc
+ hlcoord 12, 7
+ ld [hl], $11
+.asm_488a7
+ hlcoord 11, 6
+ call Function487ec
+ call WaitBGMap
+ ld a, $1
+ and a
+ ret
+
+Function488b4: ; 488b4 (12:48b4)
+ ld a, $0
+ and a
+ scf
+ ret
+
+Function488b9: ; 488b9 (12:48b9)
+ ld a, [wd003]
+ set 1, a
+ ld [wd003], a
+ scf
+ ret
+; 488c3 (12:48c3)
+
+GFX_488c3: ; 488c3
+INCBIN "gfx/unknown/0488c3.2bpp"
+
+GFX_488cb: ; 488cb
+INCBIN "gfx/unknown/0488cb.2bpp"
+
+Function488d3: ; 488d3 (12:48d3)
+ call Function48283
+ hlcoord 1, 16
+ ld de, String_484e2
+ call PlaceString
+ call Function48a3a
+ jp c, Function4840c
+ ld hl, MenuDataHeader_0x4850e
+ call LoadMenuDataHeader
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ hlcoord 10, 9
+ ld b, $1
+ ld c, $8
+ call Function48cdc
+ ld a, [wd475]
+ and $f
+ ld d, $0
+ hlcoord 11, 10
+ call Function489ea
+ call WaitBGMap
+ ld a, [wd475]
+ ld b, a
+ ld a, [wd476]
+ ld c, a
+ ld a, [wd477]
+ ld d, a
+ ld a, [wd478]
+ ld e, a
+ push de
+ push bc
+ ld d, $0
+ ld b, $0
+
+asm_48922: ; 48922 (12:4922)
+ push bc
+ call JoyTextDelay
+ ld a, [hJoyDown]
+ and a
+ jp z, Function4896e
+ bit 0, a
+ jp nz, Function4896e
+ bit 1, a
+ jp nz, Function4896e
+ ld a, [wd002]
+ and %11001111
+ res 7, a
+ ld [wd002], a
+ pop bc
+ inc b
+ ld a, b
+ cp $5
+ push bc
+ jr c, .asm_4894c
+ pop bc
+ ld b, $4
+ push bc
+.asm_4894c
+ pop bc
+ push bc
+ ld a, b
+ cp $4
+ jr nz, asm_48972
+ ld c, 10
+ call DelayFrames
+ jr asm_48972
+; 4895a (12:495a)
+
+Function4895a: ; 4895a
+ ld a, [hJoyPressed]
+ and a
+ jr z, .asm_48965
+ pop bc
+ ld b, $1
+ push bc
+ jr asm_48972
+
+.asm_48965
+ ld a, [hJoyLast]
+ and a
+ jr z, asm_48972
+
+ pop bc
+ ld b, $1
+ push bc
+
+Function4896e: ; 4896e (12:496e)
+ pop bc
+ ld b, $0
+ push bc
+
+asm_48972: ; 48972 (12:4972)
+ call Function48ab5
+ push af
+ cp $f0
+ jr z, .asm_48994
+ cp $f
+ jr nz, .asm_48988
+ ld a, [wd002]
+ set 7, a
+ and $cf
+ ld [wd002], a
+.asm_48988
+ hlcoord 11, 10
+ ld b, $0
+ ld c, d
+ add hl, bc
+ ld b, $3
+ call Function48c11
+.asm_48994
+ call WaitBGMap
+ pop af
+ pop bc
+ jr nc, asm_48922
+ jr nz, .asm_489b1
+ pop bc
+ ld a, b
+ ld [wd475], a
+ ld a, c
+ ld [wd476], a
+ pop bc
+ ld a, b
+ ld [wd477], a
+ ld a, c
+ ld [wd478], a
+ jr .asm_489c5
+.asm_489b1
+ push af
+ ld a, [wd479]
+ set 0, a
+ ld [wd479], a
+ ld a, [wd003]
+ set 3, a
+ ld [wd003], a
+ pop af
+ pop bc
+ pop bc
+.asm_489c5
+ push af
+ push bc
+ push de
+ push hl
+ ld a, $1
+ call Function1ff8
+ pop hl
+ pop de
+ pop bc
+ pop af
+ call ExitMenu
+ hlcoord 11, 10
+ call Function489ea
+ hlcoord 11, 9
+ lb bc, 1, 8
+ call ClearBox
+ pop af
+ ld [hInMenu], a
+ jp Function4840c
+
+Function489ea: ; 489ea (12:49ea)
+ push de
+ ld a, [wd475]
+ and $f
+ call Function48444
+ ld a, [wd476]
+ and $f0
+ swap a
+ inc hl
+ call Function48444
+ ld a, [wd476]
+ and $f
+ inc hl
+ call Function48444
+ inc hl
+ ld de, String_48a38
+ call PlaceString
+ ld a, [wd477]
+ and $f0
+ swap a
+ inc hl
+ call Function48444
+ ld a, [wd477]
+ and $f
+ inc hl
+ call Function48444
+ ld a, [wd478]
+ and $f0
+ swap a
+ inc hl
+ call Function48444
+ ld a, [wd478]
+ and $f
+ inc hl
+ call Function48444
+ pop de
+ ret
+; 48a38 (12:4a38)
+
+String_48a38: ; 48a38
+ db "-@"
+; 48a3a
+
+Function48a3a: ; 48a3a (12:4a3a)
+ ld hl, MenuDataHeader_0x48a9c
+ call LoadMenuDataHeader
+ call Function4873c
+ ld a, $a
+ ld [wcfa1], a
+ ld a, $b
+ ld [wcfa2], a
+ ld a, $1
+ ld [MenuSelection2], a
+ hlcoord 10, 8
+ ld b, $4
+ ld c, $8
+ call Function48cdc
+ hlcoord 12, 10
+ ld de, String_48aa1
+ call PlaceString
+ call Function1bc9
+ push af
+ call PlayClickSFX
+ call ExitMenu
+ pop af
+ bit 1, a
+ jp nz, Function48a9a
+ ld a, [MenuSelection2]
+ cp $1
+ jr z, .asm_48a98
+ ld a, [wd003]
+ set 3, a
+ ld [wd003], a
+ ld a, [wd479]
+ res 0, a
+ ld [wd479], a
+ xor a
+ ld bc, $4
+ ld hl, wd475
+ call ByteFill
+ jr Function48a9a
+.asm_48a98
+ and a
+ ret
+
+Function48a9a: ; 48a9a (12:4a9a)
+ scf
+ ret
+; 48a9c (12:4a9c)
+
+MenuDataHeader_0x48a9c: ; 0x48a9c
+ db $40 ; flags
+ db 08, 10 ; start coords
+ db 13, 19 ; end coord
+
+String_48aa1: ; 48aa1
+ db "Tell Now"
+ next "Tell Later@"
+; 48ab5
+
+
+Function48ab5: ; 48ab5 (12:4ab5)
+ ld a, [hJoyPressed]
+ and A_BUTTON
+ jp nz, Function48c0f
+ ld a, [hJoyPressed]
+ and B_BUTTON
+ jp nz, Function48c0d
+ ld a, d
+ and a
+ jr z, .asm_48adf
+ cp $1
+ jr z, .asm_48ae7
+ cp $2
+ jr z, .asm_48af1
+ cp $3
+ jr z, .asm_48af9
+ cp $4
+ jr z, .asm_48b03
+ cp $5
+ jr z, .asm_48b0b
+ cp $6
+ jr .asm_48b15
+.asm_48adf
+ ld hl, wd475
+ ld a, [hl]
+ and $f
+ jr .asm_48b1d
+.asm_48ae7
+ ld hl, wd476
+ ld a, [hl]
+ swap a
+ or $f0
+ jr .asm_48b1d
+.asm_48af1
+ ld hl, wd476
+ ld a, [hl]
+ and $f
+ jr .asm_48b1d
+.asm_48af9
+ ld hl, wd477
+ ld a, [hl]
+ swap a
+ or $f0
+ jr .asm_48b1d
+.asm_48b03
+ ld hl, wd477
+ ld a, [hl]
+ and $f
+ jr .asm_48b1d
+.asm_48b0b
+ ld hl, wd478
+ ld a, [hl]
+ swap a
+ or $f0
+ jr .asm_48b1d
+.asm_48b15
+ ld hl, wd478
+ ld a, [hl]
+ and $f
+ jr .asm_48b1d
+.asm_48b1d
+ push hl
+ push af
+ ld e, $0
+ hlcoord 11, 10
+ ld a, d
+.asm_48b25
+ and a
+ jr z, .asm_48b2c
+ inc e
+ dec a
+ jr .asm_48b25
+.asm_48b2c
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .asm_48b8d
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .asm_48b55
+ ld a, [hl]
+ and D_LEFT
+ jp nz, Function48bd7
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, .asm_48b9d
+ hlcoord 11, 10
+ call Function489ea
+ ld a, [wd002]
+ bit 7, a
+ jr nz, .asm_48b51
+.asm_48b51
+ pop bc
+ pop bc
+ and a
+ ret
+.asm_48b55
+ pop af
+ ld b, a
+ and $f
+ and a
+ ld a, b
+ jr nz, .asm_48b61
+ and $f0
+ add $a
+.asm_48b61
+ dec a
+.asm_48b62
+ push de
+ push af
+ hlcoord 10, 9
+ ld b, $1
+ ld c, $8
+ call Function48cdc
+ pop af
+ pop de
+ hlcoord 11, 10
+ ld b, a
+ ld a, d
+ cp $3
+ jr c, .asm_48b7a
+ inc hl
+.asm_48b7a
+ ld a, b
+ pop hl
+ bit 7, a
+ jr z, .asm_48b85
+ call Function48c4d
+ jr .asm_48b88
+.asm_48b85
+ call Function48c5a
+.asm_48b88
+ ld a, $f0
+ jp Function48c00
+.asm_48b8d
+ pop af
+ ld b, a
+ and $f
+ cp $9
+ ld a, b
+ jr c, .asm_48b9a
+ and $f0
+ add $ff
+.asm_48b9a
+ inc a
+ jr .asm_48b62
+.asm_48b9d
+ push de
+ hlcoord 10, 9
+ ld b, $1
+ ld c, $8
+ call Function48cdc
+ pop de
+ ld a, d
+ cp $6
+ jr nc, .asm_48baf
+ inc d
+.asm_48baf
+ pop af
+ pop hl
+ ld b, a
+ ld a, d
+ cp $6
+ ld a, b
+ jr z, .asm_48bc4
+ bit 7, a
+ jr nz, .asm_48bc4
+ inc hl
+ ld a, [hl]
+ swap a
+ and $f
+ jr asm_48bc7
+.asm_48bc4
+ ld a, [hl]
+ and $f
+
+asm_48bc7: ; 48bc7 (12:4bc7)
+ hlcoord 11, 10
+ push af
+ ld a, d
+ cp $3
+ pop bc
+ ld a, b
+ jr c, .asm_48bd3
+ inc hl
+.asm_48bd3
+ ld a, $f
+ jr Function48c00
+
+Function48bd7: ; 48bd7 (12:4bd7)
+ push de
+ hlcoord 10, 9
+ ld b, $1
+ ld c, $8
+ call Function48cdc
+ pop de
+ ld a, d
+ and a
+ pop af
+ pop hl
+ ld b, a
+ ld a, d
+ and a
+ ld a, b
+ jr z, .asm_48bf3
+ bit 7, a
+ jr z, .asm_48bf8
+ dec d
+ dec hl
+.asm_48bf3
+ ld a, [hl]
+ and $f
+ jr asm_48bc7
+.asm_48bf8
+ dec d
+ ld a, [hl]
+ swap a
+ and $f
+ jr asm_48bc7
+
+Function48c00: ; 48c00 (12:4c00)
+ push af
+ hlcoord 11, 10
+ call Function489ea
+ ld a, $1
+ and a
+ pop bc
+ ld a, b
+ ret
+
+Function48c0d: ; 48c0d (12:4c0d)
+ xor a
+ and a
+
+Function48c0f: ; 48c0f (12:4c0f)
+ scf
+ ret
+
+Function48c11: ; 48c11 (12:4c11)
+ ld a, [wd002]
+ bit 7, a
+ jr z, .asm_48c20
+ ld a, d
+ cp $3
+ jr c, .asm_48c1e
+ inc hl
+.asm_48c1e
+ ld [hl], $7f
+.asm_48c20
+ ld a, [wd002]
+ swap a
+ and $3
+ inc a
+ cp b
+ jr nz, .asm_48c40
+ ld a, [wd002]
+ bit 7, a
+ jr z, .asm_48c3a
+ res 7, a
+ ld [wd002], a
+ xor a
+ jr .asm_48c40
+.asm_48c3a
+ set 7, a
+ ld [wd002], a
+ xor a
+.asm_48c40
+ swap a
+ ld b, a
+ ld a, [wd002]
+ and $cf
+ or b
+ ld [wd002], a
+ ret
+
+Function48c4d: ; 48c4d (12:4c4d)
+ swap a
+ and $f0
+ push af
+ ld a, [hl]
+ and $f
+ ld [hl], a
+ pop af
+ or [hl]
+ ld [hl], a
+ ret
+
+Function48c5a: ; 48c5a (12:4c5a)
+ push af
+ ld a, [hl]
+ and $f0
+ ld [hl], a
+ pop af
+ or [hl]
+ ld [hl], a
+ ret
+
+Function48c63: ; 48c63
+ ld a, "@"
+ ld [de], a
+ ld a, c
+ cp $30
+ jr nc, .asm_48c8c
+ and a
+ jr z, .asm_48c8c
+ dec c
+ push de
+ ld h, d
+ ld l, e
+ ld a, "@"
+ ld b, 7
+.asm_48c76
+ ld [hli], a
+ dec b
+ jr nz, .asm_48c76
+ ld hl, Prefectures
+ ld a, c
+ call GetNthString
+.asm_48c81
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ cp "@"
+ jr nz, .asm_48c81
+ and a
+ pop de
+ ret
+
+.asm_48c8c
+ scf
+ ret
+; 48c8e
+
+Function48c8e: ; 48c8e
+ ld hl, wd02a
+ ld d, h
+ ld e, l
+ callba Function48c63
+ hlcoord 10, 7
+ call PlaceString
+ call WaitBGMap
+ ret
+; 48ca3
+
+Function48ca3: ; 48ca3
+ push af
+ push bc
+ push de
+ push hl
+ ld b, 0
+ ld c, 0
+ ld d, 0
+.asm_48cad
+ cp 100
+ jr c, .asm_48cb6
+ sub 100
+ inc b
+ jr .asm_48cad
+
+.asm_48cb6
+ cp 10
+ jr c, .asm_48cbf
+ sub 10
+ inc c
+ jr .asm_48cb6
+
+.asm_48cbf
+ cp 1
+ jr c, .asm_48cc7
+ dec a
+ inc d
+ jr .asm_48cbf
+
+.asm_48cc7
+ ld a, b
+ call Function48444
+ inc hl
+ ld a, c
+ call Function48444
+ inc hl
+ ld a, d
+ call Function48444
+ pop hl
+ pop de
+ pop bc
+ pop af
+ ret
+; 48cda
+
+Function48cda: ; 48cda (12:4cda)
+ ld h, d
+ ld l, e
+
+Function48cdc: ; 48cdc (12:4cdc)
+ push bc
+ push hl
+ call Function48cfd
+ pop hl
+ pop bc
+ ld de, AttrMap - TileMap
+ add hl, de
+rept 2
+ inc b
+endr
+rept 2
+ inc c
+endr
+ ld a, $0
+.asm_48ced
+ push bc
+ push hl
+.asm_48cef
+ ld [hli], a
+ dec c
+ jr nz, .asm_48cef
+ pop hl
+ ld de, $14
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_48ced
+ ret
+
+Function48cfd: ; 48cfd (12:4cfd)
+ push hl
+ ld a, $4
+ ld [hli], a
+ inc a
+ call Function48d2a
+ inc a
+ ld [hl], a
+ pop hl
+ ld de, $14
+ add hl, de
+.asm_48d0c
+ push hl
+ ld a, $7
+ ld [hli], a
+ ld a, $7f
+ call Function48d2a
+ ld [hl], $8
+ pop hl
+ ld de, $14
+ add hl, de
+ dec b
+ jr nz, .asm_48d0c
+ ld a, $9
+ ld [hli], a
+ ld a, $a
+ call Function48d2a
+ ld [hl], $b
+ ret
+
+Function48d2a: ; 48d2a (12:4d2a)
+ ld d, c
+.asm_48d2b
+ ld [hli], a
+ dec d
+ jr nz, .asm_48d2b
+ ret
+
+Function48d30: ; 48d30 (12:4d30)
+ ld hl, wd475
+ call Function48d4a
+ ld hl, wd477
+ call Function48d4a
+ ret
+
+Function48d3d: ; 48d3d (12:4d3d)
+ ld hl, wd475
+ call Function48d94
+ ld hl, wd477
+ call Function48d94
+ ret
+
+Function48d4a: ; 48d4a (12:4d4a)
+ inc hl
+ ld a, [hl]
+ ld b, a
+ and $f
+ ld c, a
+ srl b
+ srl b
+ srl b
+ srl b
+ push bc
+ ld c, 10
+ ld a, b
+ call SimpleMultiply
+ pop bc
+ add c
+ ld [hld], a
+ xor a
+ ld [hMultiplicand + 0], a
+ ld [hMultiplicand + 1], a
+ ld a, [hl]
+ srl a
+ srl a
+ srl a
+ srl a
+ ld c, 10
+ call SimpleMultiply
+ ld b, a
+ ld a, [hli]
+ and $f
+ add b
+ ld [hMultiplicand + 2], a
+ ld a, 100
+ ld [hMultiplier], a
+ call Multiply
+ ld a, [hProduct + 2]
+ ld b, a
+ ld a, [hProduct + 3]
+ ld c, a
+ ld e, [hl]
+ add e
+ ld c, a
+ ld a, b
+ adc $0
+ ld b, a
+ ld a, c
+ ld [hld], a
+ ld [hl], b
+ ret
+
+Function48d94: ; 48d94 (12:4d94)
+ xor a
+ ld [hDividend + 0], a
+ ld [hDividend + 1], a
+ ld a, [hli]
+ ld [hDividend + 0], a
+ ld a, [hl]
+ ld [hDividend + 1], a
+ ld a, 100
+ ld [hDivisor], a
+ ld b, 2
+ call Divide
+ ld a, [hDivisor]
+ ld c, $a
+ call SimpleDivide
+ sla b
+ sla b
+ sla b
+ sla b
+ or b
+ ld [hld], a
+ ld a, [hQuotient + 2]
+ ld c, 10
+ call SimpleDivide
+ sla b
+ sla b
+ sla b
+ sla b
+ or b
+ ld [hl], a
+ ret
--- a/misc/mobile_22.asm
+++ b/misc/mobile_22.asm
@@ -93,7 +93,7 @@
Function891ab: ; 891ab
call Function89240
- callba Function104061
+ callba ReloadMapPart
call Function8923c
ret
; 891b8
@@ -150,13 +150,13 @@
Function89209: ; 89209
ld a, 1
- ld [wc2ce], a
+ ld [wSpriteUpdatesEnabled], a
ret
; 8920f
Function8920f: ; 8920f
ld a, 0
- ld [wc2ce], a
+ ld [wSpriteUpdatesEnabled], a
ret
; 89215
@@ -623,7 +623,7 @@
ld a, 5
ld [rSVBK], a
ld hl, Palette_894b3
- ld de, wMapPals + 8 * 7
+ ld de, UnknBGPals + 8 * 7
ld bc, 8
call CopyBytes
pop af
@@ -665,9 +665,10 @@
push af
ld a, 5
ld [rSVBK], a
+
ld c, d
ld b, 0
- ld hl, Unknown_89509
+ ld hl, .PalettePointers
rept 2
add hl, bc
endr
@@ -674,13 +675,14 @@
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, wMapPals
- ld bc, 24
+ ld de, UnknBGPals
+ ld bc, 3 palettes
call CopyBytes
- ld hl, Palette_89557
- ld de, wd018
- ld bc, 24
+ ld hl, .Pals345
+ ld de, UnknBGPals + 3 palettes
+ ld bc, 3 palettes
call CopyBytes
+
pop af
ld [rSVBK], a
pop bc
@@ -687,13 +689,13 @@
ret
; 89509
-Unknown_89509: ; 89509
- dw Palette_8950f
- dw Palette_89527
- dw Palette_8953f
+.PalettePointers: ; 89509
+ dw .Pals012a
+ dw .Pals012b
+ dw .Pals012c
; 8950f
-Palette_8950f: ; 8950f
+.Pals012a: ; 8950f
RGB 31, 31, 31
RGB 10, 17, 13
RGB 10, 08, 22
@@ -709,7 +711,7 @@
RGB 10, 17, 13
RGB 00, 00, 00
-Palette_89527: ; 89527
+.Pals012b: ; 89527
RGB 31, 31, 31
RGB 30, 22, 11
RGB 31, 08, 15
@@ -725,7 +727,7 @@
RGB 30, 22, 11
RGB 00, 00, 00
-Palette_8953f: ; 8953f
+.Pals012c: ; 8953f
RGB 31, 31, 31
RGB 15, 20, 26
RGB 25, 07, 20
@@ -741,7 +743,7 @@
RGB 15, 20, 26
RGB 00, 00, 00
-Palette_89557: ; 89557
+.Pals345: ; 89557
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 13, 00
@@ -2152,7 +2154,7 @@
ld a, $5
ld [rSVBK], a
ld c, $8
- ld de, wMapPals
+ ld de, UnknBGPals
.asm_89d1c
push bc
ld hl, Palette_89d4e
@@ -3392,7 +3394,7 @@
ld bc, $18
call CopyBytes
ld hl, Palette_8a5fd
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld bc, $8
call CopyBytes
ld hl, Palette_8a605
@@ -3439,7 +3441,7 @@
ld a, $5
ld [rSVBK], a
ld hl, Palette_8a624
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld bc, $0008
call CopyBytes
pop af
--- a/misc/mobile_22_2.asm
+++ b/misc/mobile_22_2.asm
@@ -610,7 +610,7 @@
ld a, $5
ld [rSVBK], a
ld hl, Palette_8b6d5
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $0018
call CopyBytes
pop af
@@ -805,7 +805,7 @@
ld a, [wd030]
ld [wMenuCursorBuffer], a
ld a, [wd031]
- ld [wd0e4], a
+ ld [wMenuScrollPosition], a
ld a, [wd032]
and a
jr z, .asm_8b7e0
@@ -856,13 +856,13 @@
ld c, a
ld a, [MenuSelection2]
ld [wd030], a
- ld a, [wd0e4]
+ ld a, [wMenuScrollPosition]
ld [wd031], a
ret
; 8b832
Function8b832: ; 8b832
- ld a, [wd0e4]
+ ld a, [wMenuScrollPosition]
ld hl, wMenuData2Items
sub [hl]
jr nc, Function8b84b
@@ -871,7 +871,7 @@
; 8b83e
Function8b83e: ; 8b83e
- ld a, [wd0e4]
+ ld a, [wMenuScrollPosition]
ld hl, wMenuData2Items
add [hl]
cp $24
@@ -879,7 +879,7 @@
ld a, $24
Function8b84b: ; 8b84b
- ld [wd0e4], a
+ ld [wMenuScrollPosition], a
ld a, [MenuSelection2]
ld [wMenuCursorBuffer], a
ret
@@ -994,7 +994,7 @@
hlcoord 19, 13
ld a, $11
ld [hl], a
- ld a, [wd0e4]
+ ld a, [wMenuScrollPosition]
cp $24
ret c
hlcoord 0, 13
@@ -1018,7 +1018,7 @@
Function8b94a: ; 8b94a
ld [wd033], a
xor a
- ld [wd0e4], a
+ ld [wMenuScrollPosition], a
ld [wd032], a
ld [wd0e3], a
ld [wd031], a
--- a/misc/mobile_40.asm
+++ b/misc/mobile_40.asm
@@ -171,6 +171,7 @@
ld [hFFC9], a
ld [hMobile], a
ei
+
ld a, [wLinkMode]
push af
xor a
@@ -837,7 +838,7 @@
Function100534: ; 100534
call Function100513
call UpdateSprites
- call Function321c
+ call ApplyTilemap
ld a, [wcd28]
inc a
ld [wcd28], a
@@ -1495,7 +1496,7 @@
call PrintNum
ld de, SFX_TWO_PC_BEEPS
call PlaySFX
- callba Function104061
+ callba ReloadMapPart
ld c, $3c
call DelayFrames
ret
@@ -1506,7 +1507,7 @@
call PlaceString
ld de, SFX_4_NOTE_DITTY
call PlaySFX
- callba Function104061
+ callba ReloadMapPart
ld c, 120
call DelayFrames
ret
@@ -1536,7 +1537,7 @@
decoord 0, 0
call Function1009a5
call Function1009ae
- callba Function104061
+ callba ReloadMapPart
ld hl, w3_dd68
decoord 0, 0, AttrMap
call Function1009a5
@@ -1591,7 +1592,7 @@
ld [rVBK], a
ld hl, w3_d800
- ld de, VBGMap0
+ debgcoord 0, 0
lb bc, $3, $24
call Get2bpp
@@ -1620,49 +1621,49 @@
ret
; 100a09
-Function100a09: ; 100a09
- call Function100a2e
+_LinkBattleSendReceiveAction: ; 100a09
+ call .StageForSend
ld [wd431], a
- callba Function4000
+ callba PlaceWaitingText
ld a, [wLinkMode]
cp LINK_MOBILE
- jr nz, .asm_100a2a
+ jr nz, .not_mobile
call Function100a87
call Function100da5
callba FinishBattleAnim
- jr .asm_100a2d
+ jr .done
-.asm_100a2a
+.not_mobile
call Function100a53
-.asm_100a2d
+.done
ret
; 100a2e
-Function100a2e: ; 100a2e
- ld a, [wd0ec]
+.StageForSend: ; 100a2e
+ ld a, [wPlayerAction]
and a
- jr nz, .asm_100a48
+ jr nz, .switch
ld a, [CurPlayerMove]
- ld b, $e
+ ld b, BATTLEACTION_E
cp STRUGGLE
- jr z, .asm_100a4f
- ld b, $d
+ jr z, .struggle
+ ld b, BATTLEACTION_D
cp $ff
- jr z, .asm_100a4f
+ jr z, .struggle
ld a, [CurMoveNum]
- jr .asm_100a50
+ jr .use_move
-.asm_100a48
+.switch
ld a, [CurPartyMon]
- add $4
- jr .asm_100a50
+ add BATTLEACTION_SWITCH1
+ jr .use_move
-.asm_100a4f
+.struggle
ld a, b
-.asm_100a50
+.use_move
and $f
ret
; 100a53
@@ -1669,29 +1670,32 @@
Function100a53: ; 100a53
ld a, [wd431]
- ld [wcf56], a
+ ld [wPlayerLinkAction], a
ld a, $ff
- ld [wcf52], a
-.asm_100a5e
- call Function8c1
+ ld [wOtherPlayerLinkAction], a
+.waiting
+ call LinkCommunicationsSendReceive
call DelayFrame
- ld a, [wcf52]
+ ld a, [wOtherPlayerLinkAction]
inc a
- jr z, .asm_100a5e
- ld b, $a
-.asm_100a6c
+ jr z, .waiting
+
+ ld b, 10
+.receive
call DelayFrame
- call Function8c1
+ call LinkCommunicationsSendReceive
dec b
- jr nz, .asm_100a6c
- ld b, $a
-.asm_100a77
+ jr nz, .receive
+
+ ld b, 10
+.acknowledge
call DelayFrame
- call Function908
+ call LinkCommunicationsSignalDataReceived
dec b
- jr nz, .asm_100a77
- ld a, [wcf52]
- ld [wd430], a
+ jr nz, .acknowledge
+
+ ld a, [wOtherPlayerLinkAction]
+ ld [wBattleAction], a
ret
; 100a87
@@ -1843,7 +1847,7 @@
callba Function24085
callba MobileTextBorder
call UpdateSprites
- call Function321c
+ call ApplyTilemap
callba Function2411a
ld hl, wcfa5
set 7, [hl]
@@ -1850,10 +1854,10 @@
ret
; 100b9f
-Function100b9f: ; 100b9f
+MobileMoveSelectionScreen: ; 100b9f
xor a
ld [wd0e3], a
- callba Function3e786
+ callba CheckPlayerHasUsableMoves
ret z
call Function100dd8
jp c, xor_a_dec_a
@@ -1984,7 +1988,7 @@
Function100c98: ; 100c98
ld de, Unknown_100cad
- call Function1bb1
+ call InitMenu3
ld a, [wd0eb]
inc a
ld [wcfa3], a
@@ -2148,7 +2152,7 @@
Function100dc0: ; 100dc0
ld a, [wLinkMode]
- cp $4
+ cp LINK_MOBILE
jr nz, .asm_100dd0
ld hl, wcd2a
bit 3, [hl]
@@ -2523,7 +2527,7 @@
db -1
Unknown_100feb: ; 100feb
- dbwww $00, sPartyScratch1, SCRATCHMON_STRUCT_LENGTH * PARTY_LENGTH, NULL
+ dbwww $00, sPartyMail, MAIL_STRUCT_LENGTH * PARTY_LENGTH, NULL
db -1
Unknown_100ff3: ; 100ff3
@@ -2794,16 +2798,16 @@
res 4, [hl]
ld hl, GameTimerPause
bit 7, [hl]
- jr z, .asm_101210
+ jr z, .skip
ld hl, wdc41
set 4, [hl]
-.asm_101210
+.skip
call Function10209c
xor a
ld [wdc5f], a
ld [wdc60], a
- ld a, $4
+ ld a, LINK_MOBILE
ld [wLinkMode], a
ret
; 101220
@@ -6305,7 +6309,7 @@
ld hl, wcd4b
set 1, [hl]
ld de, Unknown_102a33
- call Function1bb1
+ call InitMenu3
ld a, [wcd4a]
inc a
ld [wcd4a], a
@@ -6465,7 +6469,7 @@
ld [CurPartyMon], a
ld a, $1
ld [wd1e9], a
- callba Function421d8
+ callba EvolvePokemon
call Function102d9a
call Function102dd3
call Function102dec
@@ -6478,7 +6482,7 @@
ld a, [MenuSelection2]
push af
ld de, Unknown_102b73
- call Function1bb1
+ call InitMenu3
pop af
ld [MenuSelection2], a
ld a, [OTPartyCount]
@@ -6503,7 +6507,7 @@
ld a, [MenuSelection2]
push af
ld de, Unknown_102b94
- call Function1bb1
+ call InitMenu3
pop af
ld [MenuSelection2], a
ld a, [PartyCount]
@@ -6769,7 +6773,7 @@
ld hl, PartyMon1DVs
call AddNTimes
predef GetUnownLetter
- callba Functionfba18
+ callba UpdateUnownDex
ld a, [wdef4]
and a
jr nz, .asm_102d98
@@ -6825,7 +6829,7 @@
Function102dec: ; 102dec
ld hl, Unknown_1032e2
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld bc, $0020
ld a, $5
call FarCopyWRAM
@@ -7686,9 +7690,9 @@
dw Unknown_103608
dw Unknown_1035fe
- dw Function103612
- dw Function103612
- dw Function103612
+ dw AskMobileOrCable
+ dw AskMobileOrCable
+ dw AskMobileOrCable
Unknown_1035e7: ; 1035e7
dwcoord 0, 6
@@ -7719,18 +7723,18 @@
db 2, 2, 3
; 103612
-Function103612: ; 103612
+AskMobileOrCable: ; 103612
ld hl, MenuDataHeader_103640
call LoadMenuDataHeader
ld a, [wdc40]
and $f
- jr z, .asm_103622
+ jr z, .skip_load
ld [wMenuCursorBuffer], a
-.asm_103622
+.skip_load
call InterpretMenu2
call WriteBackup
- jr c, .asm_10363b
+ jr c, .pressed_b
ld a, [MenuSelection2]
ld [ScriptVar], a
ld c, a
@@ -7740,7 +7744,7 @@
ld [wdc40], a
ret
-.asm_10363b
+.pressed_b
xor a
ld [ScriptVar], a
ret
@@ -7958,16 +7962,16 @@
ld c, $0
ld hl, SwarmFlags
bit 4, [hl]
- jr nz, .asm_10379c
+ jr nz, .already_set
ld c, $1
ld hl, SwarmFlags
set 4, [hl]
-.asm_10379c
+.already_set
push bc
- callba Function14ab2
+ callba Link_SaveGame
pop bc
- jr c, .asm_1037b5
+ jr c, .failed_to_save
ld a, $1
ld [ScriptVar], a
ld a, c
@@ -7976,7 +7980,7 @@
callba Function1006fd
ret
-.asm_1037b5
+.failed_to_save
xor a
ld [ScriptVar], a
ld a, c
@@ -7989,19 +7993,19 @@
Function1037c2: ; 1037c2
call Function103823
- jr c, .asm_1037de
+ jr c, .nope
ld a, [wdc5f]
and a
- jr z, .asm_1037de
+ jr z, .nope
ld hl, UnknownText_0x1037e6
call PrintText
call YesNoBox
- jr c, .asm_1037de
+ jr c, .nope
ld a, $1
ld [ScriptVar], a
ret
-.asm_1037de
+.nope
xor a
ld [wdc5f], a
ld [ScriptVar], a
--- a/misc/mobile_41.asm
+++ b/misc/mobile_41.asm
@@ -743,7 +743,9 @@
ret
; 10630f
-Function10630f: ; 10630f
+; functions related to the cable club and various NPC scripts referencing mobile communications
+
+Mobile_DummyReturnFalse: ; 10630f
xor a
ld [ScriptVar], a
ret
@@ -766,8 +768,10 @@
Function10632f: ; 10632f
or a
- mobile
+ ret
+Function106331: ; 106331 - called by Mobile_DummyReturnFalse in Crystal-J
+ ; check ~[4:b000] == [7:a800]
ld a, $4
call GetSRAMBank
ld a, [$b000]
@@ -781,17 +785,22 @@
call CloseSRAM
ld a, c
cp b
- jr nz, .asm_106359
+ jr nz, .nope
+
+ ; check [7:a800] != 0
and a
- jr z, .asm_106359
- and $8f
+ jr z, .nope
+
+ ; check !([7:a800] & %01110000)
+ and %10001111
cp c
- jr nz, .asm_106359
+ jr nz, .nope
+
ld c, a
scf
ret
-.asm_106359
+.nope
xor a
ld c, a
ret
--- a/misc/mobile_42.asm
+++ b/misc/mobile_42.asm
@@ -241,13 +241,13 @@
Function1081ca: ; 1081ca
ld a, $1
ld [rVBK], a
- ld hl, VBGMap0
+ hlbgcoord 0, 0
ld bc, $0800
ld a, $0
call ByteFill
ld a, $0
ld [rVBK], a
- ld hl, VBGMap0
+ hlbgcoord 0, 0
ld bc, $0800
ld a, $7f
call ByteFill
@@ -276,7 +276,7 @@
ld [CurSpecies], a
call GetBaseData
pop de
- predef Function5108b
+ predef FrontpicPredef
ret
; 108219
@@ -459,7 +459,7 @@
ld [TempMonDVs], a
ld a, [$c6fe]
ld [TempMonDVs + 1], a
- ld b, $1a
+ ld b, SCGB_1A
call GetSGBLayout
ld a, $e4
call DmgToCgbBGPals
@@ -492,14 +492,14 @@
ld c, $50
call DelayFrames
call Function108bec
- lb de, $54, $58
- ld a, $20
- call Function3b2a
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_20
+ call _InitSpriteAnimStruct
ld de, SFX_BALL_POOF
call PlaySFX
hlcoord 0, 0
ld bc, $00f0
- ld a, $7f
+ ld a, " "
call ByteFill
ld c, $50
call Function1082cc
@@ -527,9 +527,9 @@
ld [hWX], a
ld a, $90
ld [hWY], a
- lb de, $54, $58
- ld a, $21
- call Function3b2a
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_21
+ call _InitSpriteAnimStruct
call Function108b45
ld a, $1
call Function108b98
@@ -552,7 +552,7 @@
ld [TempMonDVs], a
ld a, [wPlayerWrapCount]
ld [TempMonDVs + 1], a
- ld b, $1a
+ ld b, SCGB_1A
call GetSGBLayout
ld a, $e4
call DmgToCgbBGPals
@@ -594,7 +594,7 @@
ld [TempMonDVs], a
ld a, [$c6fe]
ld [TempMonDVs + 1], a
- ld b, $1a
+ ld b, SCGB_1A
call GetSGBLayout
ld a, $e4
call DmgToCgbBGPals
@@ -627,14 +627,14 @@
ld c, $50
call DelayFrames
call Function108c2b
- lb de, $54, $58
- ld a, $20
- call Function3b2a
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_20
+ call _InitSpriteAnimStruct
ld de, SFX_BALL_POOF
call PlaySFX
hlcoord 0, 0
ld bc, $00f0
- ld a, $7f
+ ld a, " "
call ByteFill
ld c, $50
call Function1082cc
@@ -671,9 +671,9 @@
ld [hWX], a
ld a, $90
ld [hWY], a
- lb de, $54, $58
- ld a, $21
- call Function3b2a
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_21
+ call _InitSpriteAnimStruct
call Function108b45
ld a, $1
call Function108b98
@@ -696,7 +696,7 @@
ld [TempMonDVs], a
ld a, [wPlayerWrapCount]
ld [TempMonDVs + 1], a
- ld b, $1a
+ ld b, SCGB_1A
call GetSGBLayout
ld a, $e4
call DmgToCgbBGPals
@@ -740,9 +740,9 @@
ld [hWX], a
ld a, $90
ld [hWY], a
- lb de, $54, $58
- ld a, $21
- call Function3b2a
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_21
+ call _InitSpriteAnimStruct
call Function108b45
ld a, $1
call Function108b98
@@ -765,7 +765,7 @@
ld [TempMonDVs], a
ld a, [wPlayerWrapCount]
ld [TempMonDVs + 1], a
- ld b, $1a
+ ld b, SCGB_1A
call GetSGBLayout
ld a, $e4
call DmgToCgbBGPals
@@ -804,7 +804,7 @@
ld a, $5
ld [rSVBK], a
ld hl, Palette_109107
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $0040
call CopyBytes
pop af
@@ -850,7 +850,7 @@
ld a, $5
ld [rSVBK], a
ld hl, Palette_109107
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $0040
call CopyBytes
pop af
@@ -894,7 +894,7 @@
ld a, $5
ld [rSVBK], a
ld hl, Palette_109107
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $0040
call CopyBytes
pop af
@@ -927,9 +927,9 @@
ld [hSCX], a
cp $f8
jr nz, .asm_10878a
- lb de, $54, $58
- ld a, $22
- call Function3b2a
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_22
+ call _InitSpriteAnimStruct
.asm_10878a
ld c, $1
@@ -953,9 +953,9 @@
jr .asm_1087c4
.asm_1087a9
- lb de, $54, $58
- ld a, $22
- call Function3b2a
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_22
+ call _InitSpriteAnimStruct
xor a
call Function108ad4
jr .asm_1087c4
@@ -985,9 +985,9 @@
call Function1082f0
call Function108af4
call Function108b5a
- lb de, $4a, $50
- ld a, $25
- call Function3b2a
+ depixel 9, 10, 2, 0
+ ld a, SPRITE_ANIM_INDEX_25
+ call _InitSpriteAnimStruct
ld de, SFX_FORESIGHT
call PlaySFX
ld c, $a
@@ -994,9 +994,9 @@
call Function1082cc
xor a
ld [wcf64], a
- lb de, $4a, $50
- ld a, $23
- call Function3b2a
+ depixel 9, 10, 2, 0
+ ld a, SPRITE_ANIM_INDEX_23
+ call _InitSpriteAnimStruct
.asm_1087fc
ld a, [hSCY]
cp $90
@@ -1021,9 +1021,9 @@
call PlaySFX
ld c, $3c
call Function1082cc
- lb de, $f2, $50
- ld a, $24
- call Function3b2a
+ depixel 30, 10, 2, 0
+ ld a, SPRITE_ANIM_INDEX_24
+ call _InitSpriteAnimStruct
call Function1082b7
ld de, SFX_THROW_BALL
call PlaySFX
@@ -1042,11 +1042,11 @@
; 10884c
Function10884c: ; 10884c
- ld c, $50
+ ld c, 80
call DelayFrames
- lb de, $f2, $50
- ld a, $24
- call Function3b2a
+ depixel 30, 10, 2, 0
+ ld a, SPRITE_ANIM_INDEX_24
+ call _InitSpriteAnimStruct
call Function1082b7
ld de, SFX_THROW_BALL
call PlaySFX
@@ -1068,9 +1068,9 @@
.asm_108879
callba Function8d03d
- lb de, $4a, $50
- ld a, $25
- call Function3b2a
+ depixel 9, 10, 2, 0
+ ld a, SPRITE_ANIM_INDEX_25
+ call _InitSpriteAnimStruct
ld de, SFX_GLASS_TING_2
call PlaySFX
call Function108af4
@@ -1105,15 +1105,15 @@
jr .asm_1088e7
.asm_1088c5
- lb de, $54, $58
- ld a, $22
- call Function3b2a
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_22
+ call _InitSpriteAnimStruct
jr .asm_1088e7
.asm_1088cf
- lb de, $54, $58
- ld a, $22
- call Function3b2a
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_22
+ call _InitSpriteAnimStruct
xor a
call Function108ad4
jr .asm_1088e7
@@ -1423,7 +1423,7 @@
and $1
jr z, .asm_108b1c
ld hl, Palette_109187
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld bc, $0040
call CopyBytes
ld hl, Palette_109187
@@ -1434,7 +1434,7 @@
.asm_108b1c
ld hl, Palette_109147
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld bc, $0040
call CopyBytes
ld hl, Palette_109147
@@ -1459,7 +1459,7 @@
ld a, $5
ld [rSVBK], a
ld de, $7fff
- ld hl, wMapPals
+ ld hl, UnknBGPals
ld a, e
ld [hli], a
ld d, a
@@ -1537,7 +1537,7 @@
ld hl, Palette_108b98
.asm_108bb0
- ld de, wMapPals + 8 * 7
+ ld de, UnknBGPals + 8 * 7
ld bc, $0040
call CopyBytes
pop af
@@ -1669,10 +1669,10 @@
Function108c6d: ; 108c6d
ld hl, LZ_108fe7
- ld de, VBGMap0
+ debgcoord 0, 0
call Decompress
ld hl, LZ_108fe7
- ld de, VBGMap1
+ debgcoord 0, 0, VBGMap1
call Decompress
ret
; 108c80
@@ -1681,10 +1681,10 @@
ld a, $1
ld [rVBK], a
ld hl, LZ_1090a7
- ld de, VBGMap0
+ debgcoord 0, 0
call Decompress
ld hl, LZ_1090a7
- ld de, VBGMap1
+ debgcoord 0, 0, VBGMap1
call Decompress
ld a, $0
ld [rVBK], a
--- a/misc/mobile_45.asm
+++ b/misc/mobile_45.asm
@@ -5750,7 +5750,7 @@
pop af
ld [rSVBK], a
- callba Function104061
+ callba ReloadMapPart
ld a, $8
ld [MusicFade], a
ld de, MUSIC_MOBILE_ADAPTER
@@ -5786,7 +5786,7 @@
ld bc, $0010
call CopyBytes
ld hl, Palette_11734e
- ld de, wMapPals + 8 * 7
+ ld de, UnknBGPals + 8 * 7
ld bc, $0008
call CopyBytes
call SetPalettes
@@ -5912,7 +5912,7 @@
ld a, $5
ld [rSVBK], a
ld hl, BGPals
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $0040
call CopyBytes
pop af
@@ -5931,7 +5931,7 @@
call UpdateSprites
pop af
ld [rSVBK], a
- callba Function104061
+ callba ReloadMapPart
ld a, $8
ld [MusicFade], a
ld a, [wc2c0]
@@ -5955,7 +5955,7 @@
call ByteFill
call DelayFrame
callba Function14146
- ld b, $9
+ ld b, SCGB_09
call GetSGBLayout
ld a, [rSVBK]
push af
@@ -5975,7 +5975,7 @@
callba Function14157
pop af
ld [rSVBK], a
- callba Function104061
+ callba ReloadMapPart
ld a, [wLinkMode]
cp $4
jr z, .asm_11642a
@@ -6006,7 +6006,7 @@
callba Function17d405
ld a, $90
ld [hWY], a
- callba Function104061
+ callba ReloadMapPart
ld a, $8
ld [MusicFade], a
ld a, [wc2c0]
@@ -7711,7 +7711,7 @@
call ClearBGPalettes
call ClearSprites
callba Function171c87
- callba Function104061
+ callba ReloadMapPart
callba Function8cf53
ret
@@ -7722,7 +7722,7 @@
jr nz, .asm_117709
call Function117719
callba Function8cf69
- callba Function104061
+ callba ReloadMapPart
jr Function1176ee
.asm_117709
callba Function8cf53
@@ -7757,16 +7757,16 @@
Function117738: ; 117738 (45:7738)
callba Function171ccd
- lb de, $30, $18
+ depixel 6, 3
ld a, $1d
- call Function3b2a
+ call _InitSpriteAnimStruct
ld hl, $c
add hl, bc
ld a, $6
ld [hl], a
- lb de, $48, $20
+ depixel 9, 4
ld a, $1d
- call Function3b2a
+ call _InitSpriteAnimStruct
ld hl, $c
add hl, bc
ld a, $7
@@ -7978,7 +7978,7 @@
call LoadMenuDataHeader
call MenuBox
call MenuBoxCoord2Tile
- callba Function104061
+ callba ReloadMapPart
hlcoord 16, 8
ld de, String_1179c5
call PlaceString
@@ -8077,7 +8077,7 @@
call LoadMenuDataHeader
call MenuBox
call MenuBoxCoord2Tile
- callba Function104061
+ callba ReloadMapPart
hlcoord 1, 14
ld de, String_1179e1
call PlaceString
@@ -8184,7 +8184,7 @@
call ClearSprites
callba Function172e78
callba Function172eb9
- callba Function104061
+ callba ReloadMapPart
ret
; 0x117acd
@@ -8299,12 +8299,12 @@
jr nz, .asm_117ba4 ; 0x117b93 $f
call ExitMenu
call ExitMenu
- callba Function104061
+ callba ReloadMapPart
jp Function117cdd
.asm_117ba4
call ExitMenu
call ExitMenu
- callba Function104061
+ callba ReloadMapPart
ld a, $80
ld [wJumptableIndex], a
ret
@@ -8387,7 +8387,7 @@
call LoadMenuDataHeader
call MenuBox
call MenuBoxCoord2Tile
- callba Function104061
+ callba ReloadMapPart
ld hl, MobileStadiumSuccessText
call PrintText
ld a, [rSVBK]
@@ -8407,7 +8407,7 @@
add hl, de
dec c
jr nz, .asm_117c71 ; 0x117c7b $f4
- call FadeToWhite
+ call RotateThreePalettesRight
pop af
ld [rSVBK], a
ld a, $80
--- a/misc/mobile_46.asm
+++ b/misc/mobile_46.asm
@@ -175,7 +175,7 @@
cp [hl]
jr nz, .asm_11813e
xor a
- ld [wMapPals], a
+ ld [w3_d000], a
pop af
ld [rSVBK], a
call Function118452
@@ -197,33 +197,37 @@
ld de, $a89c
ld bc, $0016
call CopyBytes
+
ld a, [rSVBK]
push af
ld a, $3
ld [rSVBK], a
- ld de, $d202
+
+ ld de, w3_d202
ld c, $96
- callba Function17d0b3
- jr c, .asm_1181d0
- ld de, $d202
- ld bc, $0196
- callba Function17d1e1
- jr c, .asm_1181d0
- ld hl, $d202
+ callba CheckStringForErrors_IgnoreTerminator
+ jr c, .return_d3
+
+ ld de, w3_d202
+ lb bc, 1, $96
+ callba CheckStringContainsLessThanBNextCharacters
+ jr c, .return_d3
+
+ ld hl, w3_d202
ld de, $a8b2
ld bc, $0096
call CopyBytes
-.asm_1181c9
+.reset_banks
pop af
ld [rSVBK], a
call CloseSRAM
ret
-.asm_1181d0
+.return_d3
ld a, $d3
ld [wc300], a
ld [ScriptVar], a
- jr .asm_1181c9
+ jr .reset_banks
; 1181da
Function1181da: ; 1181da
@@ -1067,7 +1071,7 @@
set 0, [hl]
ld a, $6
ld [rSVBK], a
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $1000
ld a, [hl]
sla a
@@ -1286,7 +1290,7 @@
call LoadMenuDataHeader
call MenuBox
call MenuBoxCoord2Tile
- call Function321c
+ call ApplyTilemap
hlcoord 16, 8, AttrMap
ld a, $40
or [hl]
@@ -1462,7 +1466,7 @@
ld de, wcc60
ld bc, $80
call CopyBytes
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $1000
jp Function118b10
; 118a7a
@@ -1472,7 +1476,7 @@
ld de, wcc60
ld bc, $80
call CopyBytes
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $1000
jp Function118b10
; 118a8f
@@ -1482,7 +1486,7 @@
ld de, wcc60
ld bc, $80
call CopyBytes
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $1000
jp Function118b10
; 118aa4
@@ -1504,7 +1508,7 @@
ld de, wcc60
ld bc, $80
call CopyBytes
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $1000
jr Function118b10
; 118ad0 (46:4ad0)
@@ -1514,7 +1518,7 @@
ld de, wcc60
ld bc, $80
call CopyBytes
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $1000
jr Function118b10
@@ -2101,7 +2105,7 @@
ld a, $40
ld [wcd89], a
ld hl, wc314 + 48 + 2
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $1000
ld a, $2c
jp Function119e2b
@@ -2115,7 +2119,7 @@
ld e, a
ld a, [wcd50]
ld d, a
- ld a, [wMapPals]
+ ld a, [UnknBGPals]
ld c, a
ld a, [wd001]
ld b, a
@@ -2127,7 +2131,7 @@
ld a, $6
ld [rSVBK], a
ld hl, wd002
- ld a, [wMapPals]
+ ld a, [UnknBGPals]
ld c, a
ld a, [wd001]
ld b, a
@@ -2174,7 +2178,7 @@
ld de, wcc60
call Function1191ad
ret c
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $1000
jp Function118b10
; 1190ec
@@ -2194,7 +2198,7 @@
call CloseSRAM
ld a, $6
call GetSRAMBank
- ld a, [wMapPals]
+ ld a, [UnknBGPals]
ld c, a
ld a, [wd001]
ld b, a
@@ -2207,7 +2211,7 @@
jr z, .asm_11913e
ld a, $6
ld [rSVBK], a
- ld a, [wMapPals]
+ ld a, [UnknBGPals]
ld c, a
ld a, [wd001]
ld b, a
@@ -2674,7 +2678,7 @@
ld a, $8
ld [wcd3c], a
call Function119ed8
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $1000
jp Function118b10
; 119413
@@ -2682,7 +2686,7 @@
Function119413: ; 119413
ld a, $6
call GetSRAMBank
- ld a, [wMapPals]
+ ld a, [UnknBGPals]
ld c, a
ld a, [wd001]
ld b, a
@@ -3039,7 +3043,7 @@
ld [wcd3c], a
call Function119ed8
call Function118b24
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $1000
ld a, $2a
jp Function119e2b
@@ -3334,7 +3338,7 @@
xor a
ld [de], a
call Function118b24
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $1000
ld a, $2a
jp Function119e2b
@@ -3533,7 +3537,7 @@
xor a
ld [wcf65], a
ld [StringBuffer2 + 10], a
- ld de, wMapPals
+ ld de, UnknBGPals
ld a, $20
jp Function119e2b
; 119987
@@ -3540,7 +3544,7 @@
Function119987: ; 119987
ld hl, wd001
- ld a, [wMapPals]
+ ld a, [UnknBGPals]
or [hl]
jr z, .asm_1199a0
ld a, [wcf64]
@@ -3702,13 +3706,13 @@
ld [StringBuffer2 + 12], a
Function119ac9:
- ld a, [wMapPals]
+ ld a, [UnknBGPals]
ld l, a
ld a, [wd001]
ld h, a
dec hl
ld a, l
- ld [wMapPals], a
+ ld [UnknBGPals], a
ld a, h
ld [wd001], a
ld a, [wcf64]
@@ -4463,7 +4467,7 @@
and a
jr z, .asm_119fd4
call ExitMenu
- callba Function104061
+ callba ReloadMapPart
callba Function115dc3
ld a, [wcd33]
ld [wcf66], a
@@ -4480,7 +4484,7 @@
ld [wc30d], a
ld a, $1
ld [wc314], a
- callba Function104061
+ callba ReloadMapPart
and a
ret
@@ -4487,7 +4491,7 @@
.asm_119fef
call ExitMenu
call ExitMenu
- callba Function104061
+ callba ReloadMapPart
ld a, [wcd45]
ld [wcf66], a
callba Function115dc3
@@ -4562,7 +4566,7 @@
callba Function106462
callba Function106464
call ExitMenu
- callba Function104061
+ callba ReloadMapPart
callba Function115d99
ld c, $0
callba Function115e18
@@ -4585,7 +4589,7 @@
callba Function106462
callba Function106464
call ExitMenu
- callba Function104061
+ callba ReloadMapPart
callba Function115d99
ld c, $0
callba Function115e18
@@ -4677,7 +4681,7 @@
and a
jr nz, .asm_11a1b6
call ExitMenu
- callba Function104061
+ callba ReloadMapPart
call Function11a63c
hlcoord 4, 2
ld de, String_11a6d2
@@ -4687,7 +4691,7 @@
.asm_11a1b6
call ExitMenu
- callba Function104061
+ callba ReloadMapPart
ld a, [wcd45]
ld [wcf66], a
ld [wcd80], a
@@ -4741,7 +4745,7 @@
call LoadMenuDataHeader
call MenuBox
call MenuBoxCoord2Tile
- call Function321c
+ call ApplyTilemap
hlcoord 16, 8
ld de, String_11a2cf
call PlaceString
@@ -4818,7 +4822,7 @@
and a
jr nz, .asm_11a2c4
call ExitMenu
- callba Function104061
+ callba ReloadMapPart
ld a, [wcd46]
cp $0
jr z, .asm_11a2b4
@@ -4840,7 +4844,7 @@
.asm_11a2c4
call ExitMenu
- callba Function104061
+ callba ReloadMapPart
and a
ret
; 11a2cf
@@ -4919,7 +4923,7 @@
.asm_11a346
call ExitMenu
- callba Function104061
+ callba ReloadMapPart
callba Function115dc3
and a
ret
@@ -4963,7 +4967,7 @@
and a
jr nz, .asm_11a3b1
call ExitMenu
- callba Function104061
+ callba ReloadMapPart
call Function11a63c
hlcoord 4, 2
ld de, String_11a6d2
@@ -4973,7 +4977,7 @@
.asm_11a3b1
call ExitMenu
- callba Function104061
+ callba ReloadMapPart
ld a, [wcd45]
ld [wcf66], a
ld [wcd80], a
@@ -5038,7 +5042,7 @@
and a
jr nz, .asm_11a43f
call ExitMenu
- callba Function104061
+ callba ReloadMapPart
call Function11a63c
hlcoord 4, 2
ld de, String_11a6d2
@@ -5048,7 +5052,7 @@
.asm_11a43f
call ExitMenu
- callba Function104061
+ callba ReloadMapPart
ld a, $1c
ld [wcf66], a
ld [wcd80], a
@@ -5109,7 +5113,7 @@
and a
jr nz, .asm_11a4c7
call ExitMenu
- callba Function104061
+ callba ReloadMapPart
call Function11a63c
hlcoord 4, 2
ld de, String_11a6d2
@@ -5121,7 +5125,7 @@
.asm_11a4c7
call ExitMenu
- callba Function104061
+ callba ReloadMapPart
ld a, [wcd46]
ld [wcf66], a
ld [wcd80], a
@@ -5156,7 +5160,7 @@
and a
jr nz, .asm_11a522
call ExitMenu
- callba Function104061
+ callba ReloadMapPart
call Function11a63c
hlcoord 4, 2
ld de, String_11a6d2
@@ -5166,7 +5170,7 @@
.asm_11a522
call ExitMenu
- callba Function104061
+ callba ReloadMapPart
ld a, [wcd45]
ld [wcf66], a
ld [wcd80], a
@@ -5195,7 +5199,7 @@
call Function11a9f0
jr nz, .asm_11a562
call ExitMenu
- callba Function104061
+ callba ReloadMapPart
.asm_11a562
scf
@@ -5271,7 +5275,7 @@
ld b, $4
ld c, $12
call Function3eea
- callba Function104061
+ callba ReloadMapPart
call UpdateSprites
ld c, $0
callba Function115e18
@@ -5306,7 +5310,7 @@
hlcoord 15, 7
ld a, $ed
ld [hl], a
- callba Function104061
+ callba ReloadMapPart
ret
; 11a63c
@@ -5840,9 +5844,9 @@
Function11ac3e: ; 11ac3e
call SpeechTextBox
call FadeToMenu
- callab InefficientlyClear121BytesAtwc300
+ callab ClearSpriteAnims
call Function11ac51
- call Function2b3c
+ call ReturnToCallingMenu
ret
; 11ac51
@@ -5881,7 +5885,7 @@
ld a, $78
ld [wc3b5], a
callba Function8cf7a
- callba Function104061
+ callba ReloadMapPart
jr .asm_11ac82
.asm_11aca8
@@ -6025,7 +6029,7 @@
hlcoord 10, 10, AttrMap
ld bc, $0808
call Function11afd6
- callba Function104061
+ callba ReloadMapPart
call Function11ad8a
ld a, $1
ld [MenuSelection2], a
@@ -6104,7 +6108,7 @@
.asm_11ae2e
call ExitMenu
- callba Function104061
+ callba ReloadMapPart
ret
; 11ae38
@@ -6142,7 +6146,7 @@
hlcoord 9, 12, AttrMap
lb bc, 6, 11
call Function11afd6
- callba Function104061
+ callba ReloadMapPart
call Function11ad8a
ld a, $1
ld [MenuSelection2], a
@@ -6210,7 +6214,7 @@
.asm_11aef7
call ExitMenu
call ExitMenu
- callba Function104061
+ callba ReloadMapPart
ret
; 11af04
@@ -6233,7 +6237,7 @@
hlcoord 9, 12, AttrMap
lb bc, 6, 11
call Function11afd6
- callba Function104061
+ callba ReloadMapPart
call Function11ad8a
ld a, $2
ld [MenuSelection2], a
@@ -6301,7 +6305,7 @@
.asm_11afaa
call ExitMenu
call ExitMenu
- callba Function104061
+ callba ReloadMapPart
ret
; 11afb7
@@ -7549,8 +7553,8 @@
.asm_11b70f
ld de, $c63d
- ld bc, $0105
- callba Function17d1e1
+ lb bc, 1, 5
+ callba CheckStringContainsLessThanBNextCharacters
jr nc, .asm_11b723
callba Function17d187
@@ -7563,8 +7567,8 @@
.asm_11b736
ld de, $c642
- ld bc, $0105
- callba Function17d1e1
+ lb bc, 1, 5
+ callba CheckStringContainsLessThanBNextCharacters
jr nc, .asm_11b74a
callba Function17d199
@@ -7577,8 +7581,8 @@
.asm_11b75d
ld de, $c647
- ld bc, $0221
- callba Function17d1e1
+ lb bc, 2, $21
+ callba CheckStringContainsLessThanBNextCharacters
jr c, .asm_11b770
ld a, b
cp $2
@@ -7596,8 +7600,8 @@
.asm_11b789
ld de, $c668
- ld bc, $0105
- callba Function17d1e1
+ lb bc, 1, 5
+ callba CheckStringContainsLessThanBNextCharacters
jr nc, .asm_11b79d
callba Function17d1c9
@@ -7676,7 +7680,7 @@
ld [wd1e9], a
ld a, $2
ld [wLinkMode], a
- callba Function421d8
+ callba EvolvePokemon
xor a
ld [wLinkMode], a
callba Function14a58
@@ -7697,7 +7701,7 @@
ld [de], a
.asm_11b872
- call Function2b3c
+ call ReturnToCallingMenu
call RestartMapMusic
ret
; 11b879
@@ -7919,7 +7923,7 @@
call CopyBytes
ld a, "@"
ld [de], a
- ld hl, sPartyScratch1
+ ld hl, sPartyMail
ld bc, PARTYMON_STRUCT_LENGTH - 1
ld a, [wcd2a]
.loop5
--- a/misc/mobile_5b.asm
+++ b/misc/mobile_5b.asm
@@ -169,7 +169,7 @@
call Function16c130
call Function16c145
call Function16c15c
- ld hl, VBGMap0
+ hlbgcoord 0, 0
call Function16cc73
call Function16cc02
xor a
@@ -179,7 +179,7 @@
; 16c130
Function16c130: ; 16c130
- ld de, wMapPals
+ ld de, UnknBGPals
ld hl, Unknown_16c903
ld bc, 8
ld a, $5
@@ -274,7 +274,7 @@
ld [rSVBK], a
ld a, $ff
ld bc, $0008
- ld hl, wMapPals
+ ld hl, UnknBGPals
call ByteFill
pop af
ld [rSVBK], a
@@ -291,7 +291,7 @@
call Function16cab6
call Function16cabb
ld d, a
- ld hl, wMapPals
+ ld hl, UnknBGPals
call Function16cab6
call Function16cabb
cp d
@@ -305,7 +305,7 @@
jr nz, .asm_16c981
.asm_16c988
- ld hl, wMapPals
+ ld hl, UnknBGPals
call Function16cab6
call Function16cadc
@@ -314,7 +314,7 @@
call Function16cab6
call Function16cad8
ld d, a
- ld hl, wMapPals
+ ld hl, UnknBGPals
call Function16cab6
call Function16cad8
cp d
@@ -328,7 +328,7 @@
jr nz, .asm_16c9a9
.asm_16c9b0
- ld hl, wMapPals
+ ld hl, UnknBGPals
call Function16cab6
call Function16cb08
@@ -337,7 +337,7 @@
call Function16cab6
call Function16cac4
ld d, a
- ld hl, wMapPals
+ ld hl, UnknBGPals
call Function16cab6
call Function16cac4
cp d
@@ -351,7 +351,7 @@
jr nz, .asm_16c9d1
.asm_16c9d8
- ld hl, wMapPals
+ ld hl, UnknBGPals
call Function16cab6
call Function16cae8
@@ -402,7 +402,7 @@
ld e, $0
ld a, $0
.asm_16ca28
- ld hl, wMapPals
+ ld hl, UnknBGPals
call Function16cab6
call Function16cabb
cp $1f
@@ -416,12 +416,12 @@
jr nz, .asm_16ca37
.asm_16ca3f
- ld hl, wMapPals
+ ld hl, UnknBGPals
call Function16cab6
call Function16cadc
.asm_16ca48
- ld hl, wMapPals
+ ld hl, UnknBGPals
call Function16cab6
call Function16cad8
cp $1f
@@ -435,12 +435,12 @@
jr nz, .asm_16ca57
.asm_16ca5f
- ld hl, wMapPals
+ ld hl, UnknBGPals
call Function16cab6
call Function16cb08
.asm_16ca68
- ld hl, wMapPals
+ ld hl, UnknBGPals
call Function16cab6
call Function16cac4
cp $1f
@@ -454,7 +454,7 @@
jr nz, .asm_16ca77
.asm_16ca7f
- ld hl, wMapPals
+ ld hl, UnknBGPals
call Function16cab6
call Function16cae8
@@ -752,7 +752,7 @@
ld de, wd008
call Function16cc41
ld hl, Unknown_16cfb1
- ld de, Unkn2Pals
+ ld de, UnknOBPals
call Function16cc41
ld hl, Unknown_16cfb9
ld de, wd048
@@ -795,7 +795,7 @@
; 16cc6e
Function16cc6e: ; 16cc6e
- ld hl, VBGMap1
+ hlbgcoord 0, 0, VBGMap1
jr Function16cc73
Function16cc73:
@@ -890,7 +890,7 @@
call ClearSprites
callba Function16d421
callba Function16d42e
- ld b, $8
+ ld b, SCGB_08
call GetSGBLayout
call SetPalettes
call WaitBGMap
@@ -925,19 +925,19 @@
inc c
endr
ld a, $7
-.asm_16d630
+.loop
push bc
push hl
-.asm_16d632
+.loop2
ld [hli], a
dec c
- jr nz, .asm_16d632
+ jr nz, .loop2
pop hl
- ld de, $0014
+ ld de, SCREEN_WIDTH
add hl, de
pop bc
dec b
- jr nz, .asm_16d630
+ jr nz, .loop
ret
; 16d640
@@ -950,20 +950,20 @@
inc a
ld [hl], a
pop hl
- ld de, $0014
+ ld de, SCREEN_WIDTH
add hl, de
-.asm_16d64f
+.loop
push hl
ld a, $33
ld [hli], a
- ld a, $7f
+ ld a, " "
call Function16d66d
ld [hl], $34
pop hl
- ld de, $0014
+ ld de, SCREEN_WIDTH
add hl, de
dec b
- jr nz, .asm_16d64f
+ jr nz, .loop
ld a, $35
ld [hli], a
ld a, $36
@@ -974,10 +974,10 @@
Function16d66d: ; 16d66d
ld d, c
-.asm_16d66e
+.loop
ld [hli], a
dec d
- jr nz, .asm_16d66e
+ jr nz, .loop
ret
; 16d673
@@ -1028,7 +1028,7 @@
ret
; 16d6ca
-Function16d6ca: ; 16d6ca
+LinkTextbox: ; 16d6ca
call Function16d61d
ret
; 16d6ce
@@ -1044,11 +1044,11 @@
Function16d6e1: ; 16d6e1
hlcoord 4, 10
- ld b, $1
- ld c, $a
- predef Function28eef
+ ld b, 1
+ ld c, 10
+ predef Predef_LinkTextbox
hlcoord 5, 11
- ld de, String_16d701
+ ld de, .Waiting
call PlaceString
call WaitBGMap
call Function3200
@@ -1056,7 +1056,7 @@
jp DelayFrames
; 16d701
-String_16d701: ; 16d701
+.Waiting: ; 16d701
db "WAITING..!@"
; 16d70c
--- a/misc/mobile_5c.asm
+++ b/misc/mobile_5c.asm
@@ -73,1189 +73,8 @@
ret
; 1700b0
-Function1700b0: ; 1700b0
- call Function17021e
- callba Function118121
- ret
-; 1700ba
-
-Function1700ba: ; 1700ba
- call Function17021e
- callba Function11811a
- ret
-; 1700c4
-
-Function1700c4: ; 1700c4
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- call Function17042c
- ld a, $5
- call GetSRAMBank
- ld a, $1
- ld [$be45], a
- xor a
- ld [$be46], a
- ld hl, $dffc
- ld de, $aa41
- ld bc, $0004
- call CopyBytes
- ld hl, $d202
- ld de, $aa8e
- ld bc, $0594
- call CopyBytes
- ld hl, $aa5d
- ld a, [hl]
- inc [hl]
- inc hl
- sla a
- sla a
- ld e, a
- ld d, $0
- add hl, de
- ld e, l
- ld d, h
- ld hl, $dffc
- ld bc, $0004
- call CopyBytes
- call CloseSRAM
- pop af
- ld [rSVBK], a
- ret
-; 170114
-
-Function170114: ; 170114
- call Function17021e
- call Function170121
- callba Function11805f
- ret
-; 170121
-
-Function170121: ; 170121
- ld a, $5
- call GetSRAMBank
- ld hl, $a948
- ld de, $c608
- ld bc, $00f6
- call CopyBytes
- call CloseSRAM
- call Function170c8b
- ret
-; 170139
-
-Function170139: ; 170139
- ld a, $5
- call GetSRAMBank
- ld de, $aa41
- ld h, $0
- ld l, h
- ld bc, $03e8
- call Function17020c
- ld bc, $0064
- call Function17020c
- ld bc, $000a
- call Function17020c
- ld a, [de]
- ld c, a
- ld b, $0
- add hl, bc
- call CloseSRAM
- ld a, h
- ld [$c608], a
- ld a, l
- ld [$c608 + 1], a
- ld hl, $c628
- ld a, [PlayerID]
- ld [hli], a
- ld a, [PlayerID + 1]
- ld [hli], a
- ld a, [wSecretID]
- ld [hli], a
- ld a, [wSecretID + 1]
- ld [hli], a
- ld e, l
- ld d, h
- ld hl, PlayerName
- ld bc, $0005 ; Japanese name length
- call CopyBytes
- ld bc, PlayerID
- ld de, PlayerGender
- callba Function4e929
- ld de, $c62c + 5
- ld a, c
- ld [de], a
- inc de
- ld a, $df
- ld [wcd49], a
- ld a, $dc
- ld [wcd4a], a
- ld a, $41
- ld [wcd4b], a
- ld a, $de
- ld [wcd4c], a
- ld a, $3
-.asm_1701ac
- push af
- ld a, [wcd49]
- ld l, a
- ld a, [wcd4a]
- ld h, a
- ld bc, $0030
- call CopyBytes
- ld a, l
- ld [wcd49], a
- ld a, h
- ld [wcd4a], a
- ld a, [wcd4b]
- ld l, a
- ld a, [wcd4c]
- ld h, a
- ld bc, $0006
- call CopyBytes
- ld a, l
- ld [wcd4b], a
- ld a, h
- ld [wcd4c], a
- pop af
- dec a
- jr nz, .asm_1701ac
- ld a, $4
- call GetSRAMBank
- ld hl, $a013
- ld bc, $0024
- call CopyBytes
- call CloseSRAM
- ld a, $5
- call GetSRAMBank
- ld hl, $a894
- ld bc, $0006
- call CopyBytes
- ld hl, $c608
- ld de, $a948
- ld bc, $00f6
- call CopyBytes
- call CloseSRAM
- ret
-; 17020c
-
-Function17020c: ; 17020c
- ld a, [de]
- inc de
- and a
- ret z
-.asm_170210
- add hl, bc
- dec a
- jr nz, .asm_170210
- ret
-; 170215
-
INCLUDE "misc/battle_tower_5c.asm"
-Function1704ca: ; 1704ca
- ld a, [$be46]
- cp $7
- jr c, .asm_1704d3
- ld a, $6
-
-.asm_1704d3
- ld hl, $afce
- ld de, -$e0
-.asm_1704d9
- and a
- jr z, .asm_1704e0
- add hl, de
- dec a
- jr .asm_1704d9
-
-.asm_1704e0
- ret
-; 1704e1
-
-Function1704e1: ; 1704e1
- call SpeechTextBox
- call FadeToMenu
- call Function17021e
- call Function1704f1
- call Function2b3c
- ret
-; 1704f1
-
-Function1704f1: ; 1704f1
- call ClearBGPalettes
- call ClearSprites
- call ClearScreen
-.asm_1704fa
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_17050f
- call Function170510
- callba Function104061
- jr .asm_1704fa
-
-.asm_17050f
- ret
-; 170510
-
-Function170510: ; 170510
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, Jumptable_17051f
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 17051f
-
-Jumptable_17051f: ; 17051f
- dw Function170525
- dw Function170571
- dw Function170577
-; 170525
-
-Function170525: ; 170525
- ld a, $5
- call GetSRAMBank
-
- ld hl, $a89c
- ld de, StringBuffer3
- ld bc, $0016
- call CopyBytes
-
- ld hl, $a8b2
- ld de, $c608
- ld bc, $0096
- call CopyBytes
-
- call CloseSRAM
- hlcoord 1, 1
- ld de, StringBuffer3
- call PlaceString
- hlcoord 1, 3
- ld de, String_170676
- call PlaceString
- hlcoord 4, 3
- ld de, StringBuffer4
- call PlaceString
- hlcoord 8, 3
- ld de, String_17067a
- call PlaceString
- call Function1705b7
- call Function1705f0
- jr Function1705b2
-
-
-Function170571:
- call SetPalettes
- call Function1705b2
-
-
-Function170577:
- ld hl, hJoyPressed
- ld a, [hl]
- and $1
- jr nz, .asm_1705ac
- ld a, [hl]
- and $2
- jr nz, .asm_1705ac
- ld a, [hl]
- and $40
- jr nz, .asm_17058f
- ld a, [hl]
- and $80
- jr nz, .asm_17059d
- ret
-
-.asm_17058f
- ld a, [wcf64]
- and a
- ret z
- sub $f
- ld [wcf64], a
- call Function1705f0
- ret
-
-.asm_17059d
- ld a, [wcf64]
- cp $3c
- ret z
- add $f
- ld [wcf64], a
- call Function1705f0
- ret
-
-.asm_1705ac
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-Function1705b2:
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; 1705b7
-
-Function1705b7: ; 1705b7
- hlcoord 0, 4
- ld a, $79
- ld [hli], a
- ld c, $12
-.asm_1705bf
- ld a, $7a
- ld [hli], a
- dec c
- jr nz, .asm_1705bf
- ld a, $7b
- ld [hli], a
- ld de, $0014
- ld c, $c
-.asm_1705cd
- ld a, $7c
- ld [hl], a
- add hl, de
- dec c
- jr nz, .asm_1705cd
- ld a, $7d
- ld [hli], a
- ld c, $12
-.asm_1705d9
- ld a, $7a
- ld [hli], a
- dec c
- jr nz, .asm_1705d9
- ld a, $7e
- ld [hl], a
- ld de, $ffec
- add hl, de
- ld c, $c
-.asm_1705e8
- ld a, $7c
- ld [hl], a
- add hl, de
- dec c
- jr nz, .asm_1705e8
- ret
-; 1705f0
-
-Function1705f0: ; 1705f0
- call Function17064b
- call Function17065d
- ld a, $50
- ld [wcd4e], a
- ld hl, $c608
- ld a, [wcf64]
- ld c, a
- xor a
- ld b, a
- add hl, bc
- push hl
- pop bc
- hlcoord 1, 6
- ld a, $6
-.asm_17060c
- push af
- push hl
- ld a, $3
-.asm_170610
- push af
- ld de, wcd49
- ld a, [bc]
- and a
- jr z, .asm_170625
- ld a, $5
-.asm_17061a
- push af
- ld a, [bc]
- ld [de], a
- inc bc
- inc de
- pop af
- dec a
- jr nz, .asm_17061a
- jr .asm_170631
-
-.asm_170625
- ld a, $5
-.asm_170627
- push af
- ld a, $e3
- ld [de], a
- inc de
- inc bc
- pop af
- dec a
- jr nz, .asm_170627
-
-.asm_170631
- ld de, wcd49
- push bc
- call PlaceString
- ld de, $0006
- add hl, de
- pop bc
- pop af
- dec a
- jr nz, .asm_170610
- pop hl
- ld de, $0028
- add hl, de
- pop af
- dec a
- jr nz, .asm_17060c
- ret
-; 17064b
-
-Function17064b: ; 17064b
- hlcoord 1, 5
- xor a
- ld b, $c
-.asm_170651
- ld c, $12
-.asm_170653
- ld [hli], a
- dec c
- jr nz, .asm_170653
-rept 2
- inc hl
-endr
- dec b
- jr nz, .asm_170651
- ret
-; 17065d
-
-Function17065d: ; 17065d
- ld a, [wcf64]
- and a
- jr z, .asm_170669
- hlcoord 18, 5
- ld a, $61
- ld [hl], a
-
-.asm_170669
- ld a, [wcf64]
- cp $3c
- ret z
- hlcoord 18, 16
- ld a, $ee
- ld [hl], a
- ret
-; 170676
-
-String_170676: ; 170676
- db "ルーム@"
-; 17067a
-
-String_17067a: ; 17067a
- db "れきだいりーダーいちらん@"
-; 170687
-
-BattleTowerAction: ; 170687
- ld a, [ScriptVar]
- ld e, a
- ld d, 0
- ld hl, .jumptable
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 170696
-
-
-.jumptable: ; 170696 (5c:4696)
- dw Function17075f ; 0x00
- dw Function170788 ; 0x01
- dw Function170778 ; 0x02
- dw Function170799 ; 0x03
- dw Function17079d ; 0x04
- dw Function1707ac ; 0x05
- dw Function1707f4 ; 0x06
- dw Function170868 ; 0x07
- dw Function170881 ; 0x08
- dw Function17089a ; 0x09
- dw Function1708b1 ; 0x0a
- dw CheckMobileEventIndex ; 0x0b
- dw Function1708c8 ; 0x0c
- dw Function1708f0 ; 0x0d
- dw Function17093c ; 0x0e
- dw Function1709aa ; 0x0f
- dw Function1709bb ; 0x10
- dw Function170a9c ; 0x11
- dw Function170aa0 ; 0x12
- dw Function170aaf ; 0x13
- dw Function170abe ; 0x14
- dw Function170ad7 ; 0x15
- dw Function170807 ; 0x16
- dw Function17081d ; 0x17
- dw Function170ae8 ; 0x18
- dw Function170b16 ; 0x19
- dw ResetBattleTowerTrainersSRAM ; 0x1a
- dw Function1706ee ; 0x1b
- dw Function17071b ; 0x1c
- dw Function170729 ; 0x1d
- dw Function17073e ; 0x1e
- dw Function170737 ; 0x1f
-
-
-; Reset the save memory for BattleTower-Trainers (Counter and all 7 TrainerBytes)
-ResetBattleTowerTrainersSRAM: ; 1706d6 (5c:46d6) BattleTowerAction $1a
- ld a, BANK(sBTTrainers)
- call GetSRAMBank
-
- ld a, $ff
- ld hl, sBTTrainers
- ld bc, BATTLETOWER_NROFTRAINERS
- call ByteFill
-
- xor a
- ld [sNrOfBeatenBattleTowerTrainers], a
-
- call CloseSRAM
-
- ret
-
-Function1706ee: ; 1706ee (5c:46ee)
- ld a, BANK(sbe50)
- call GetSRAMBank
-
- ld a, [sbe50]
- call CloseSRAM
- ld [ScriptVar], a
- ld hl, NumItems
- ld a, [hli]
- cp $14
- ret c
- ld b, $14
- ld a, [ScriptVar]
- ld c, a
-.asm_170709
- ld a, [hli]
- cp c
- jr nz, .asm_170711
- ld a, [hl]
- cp $5f
- ret c
-.asm_170711
- inc hl
- dec b
- jr nz, .asm_170709
- ld a, $12
- ld [ScriptVar], a
- ret
-
-Function17071b: ; 17071b (5c:471b)
- ld a, BANK(s1_be45)
- call GetSRAMBank
- ld a, $3
- ld [s1_be45], a
- call CloseSRAM
- ret
-
-Function170729: ; 170729 (5c:4729)
- ld a, BANK(s1_be45)
- call GetSRAMBank
- ld a, $4
- ld [s1_be45], a
- call CloseSRAM
- ret
-
-Function170737: ; 170737 (5c:4737)
- callba SaveOptions
- ret
-
-Function17073e: ; 17073e (5c:473e)
- call Random
- ld a, [hRandomAdd]
- and $7
- cp $6
- jr c, .asm_17074b
- sub $6
-.asm_17074b
- add $1a
- cp $1e
- jr z, Function17073e
- push af
- ld a, BANK(sbe50)
- call GetSRAMBank
- pop af
- ld [sbe50], a
- call CloseSRAM
- ret
-
-Function17075f: ; 17075f (5c:475f)
- call Function17089a
- ld a, [ScriptVar]
- and a
- ret z
- ld a, BANK(sbe4f)
- call GetSRAMBank
- ld a, [sbe4f]
- and $2
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-Function170778: ; 170778 (5c:4778)
- ld hl, s1_be45
- ld a, BANK(s1_be45)
- call GetSRAMBank
- ld a, [hl]
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-Function170788: ; 170788 (5c:4788)
- ld a, BANK(sbe4f)
- call GetSRAMBank
- ld a, [sbe4f]
- or $2
- ld [sbe4f], a
- call CloseSRAM
- ret
-
-Function170799: ; 170799 (5c:4799)
- ld c, $1
- jr asm_17079f
-
-Function17079d: ; 17079d (5c:479d)
- ld c, $0
-asm_17079f: ; 17079f (5c:479f)
- ld a, BANK(s1_be45)
- call GetSRAMBank
- ld a, c
- ld [s1_be45], a
- call CloseSRAM
- ret
-
-Function1707ac: ; 1707ac (5c:47ac)
- ld a, $5
- call GetSRAMBank
- ld a, [$aa8c]
- ld b, a
- ld a, [$be46]
- ld [ScriptVar], a
- call CloseSRAM
- and a
- ret z
- ld a, b
- cp $2
- jr nc, .asm_1707ef
- push bc
- call UpdateTime
- pop bc
- ld a, $5
- call GetSRAMBank
- ld a, [$aa8b]
- call CloseSRAM
- ld c, a
- ld a, [CurDay]
- sub c
- jr c, .asm_1707e5
- cp $8
- jr nc, .asm_1707ef
- ld a, b
- and a
- jr nz, .asm_1707ef
- ret
-.asm_1707e5
- ld hl, CurDay
- ld a, $8c
- sub c
- add [hl]
- cp $8
- ret c
-.asm_1707ef
- ld a, $8
- ld [ScriptVar], a
-
-Function1707f4: ; 1707f4 (5c:47f4)
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$be46], a
- ld [$aa8b], a
- ld [$aa8c], a
- call CloseSRAM
- ret
-
-Function170807: ; 170807 (5c:4807)
- call UpdateTime
- ld a, $5
- call GetSRAMBank
- ld a, [CurDay]
- ld [$b2f9], a
- xor a
- ld [$b2fa], a
- call CloseSRAM
- ret
-
-Function17081d: ; 17081d (5c:481d)
- xor a
- ld [ScriptVar], a
- ld a, $5
- call GetSRAMBank
- ld a, [$b2f9]
- ld c, a
- ld a, [$b2fa]
- ld b, a
- call CloseSRAM
- cp $2
- jr nc, .asm_170853
- push bc
- call UpdateTime
- pop bc
- ld a, [CurDay]
- sub c
- jr c, .asm_170849
- cp $b
- jr nc, .asm_170853
- ld a, b
- and a
- jr nz, .asm_170853
- ret
-.asm_170849
- ld hl, CurDay
- ld a, $8c
- sub c
- add [hl]
- cp $b
- ret c
-.asm_170853
- ld a, $1
- ld [ScriptVar], a
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$b2f9], a
- ld [$b2fa], a
- call CloseSRAM
- ret
-
-Function170868: ; 170868 (5c:4868)
- ld a, BANK(sbe47)
- call GetSRAMBank
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- ld a, [wd000 + $800]
- ld [sbe47], a
- pop af
- ld [rSVBK], a
- call CloseSRAM
- ret
-
-Function170881: ; 170881 (5c:4881)
- ld a, BANK(sbe47)
- call GetSRAMBank
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- ld a, [sbe47]
- ld [wd000 + $800], a
- pop af
- ld [rSVBK], a
- call CloseSRAM
- ret
-
-Function17089a: ; 17089a
- ld a, [wcfcd]
- and a
- jr z, .asm_1708ad
- callba Function14bcb
- jr z, .asm_1708ab
- xor a
- jr .asm_1708ad
-
-.asm_1708ab
- ld a, $1
-
-.asm_1708ad
- ld [ScriptVar], a
- ret
-; 1708b1
-
-
-Function1708b1: ; 1708b1 (5c:48b1)
- xor a
- ld [MusicFade], a
- call MaxVolume
- ret
-
-CheckMobileEventIndex: ; 1708b9 (5c:48b9) something to do with GS Ball
- ld a, BANK(sMobileEventIndex)
- call GetSRAMBank
- ld a, [sMobileEventIndex]
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-Function1708c8: ; 1708c8 (5c:48c8)
- call UpdateTime
- ld a, $5
- call GetSRAMBank
- ld a, [CurDay]
- ld [$aa8b], a
- xor a
- ld [$aa8c], a
- ld a, [$aa5d]
- cp $2
- jr nc, .asm_1708ec
- ld a, [CurDay]
- ld [$aa48], a
- ld a, $1
- ld [$aa47], a
-.asm_1708ec
- call CloseSRAM
- ret
-
-Function1708f0: ; 1708f0 (5c:48f0)
- xor a
- ld [ScriptVar], a
- call UpdateTime
- ld a, $5
- call GetSRAMBank
- ld a, [$aa48]
- ld c, a
- ld a, [$aa47]
- call CloseSRAM
- and a
- ret z
- ld hl, CurDay
- ld a, c
- cp [hl]
- jr nz, Function170923
- ld a, $5
- call GetSRAMBank
- ld a, [$aa5d]
- call CloseSRAM
- cp $5
- ret c
- ld a, $1
- ld [ScriptVar], a
- ret
-
-
-Function170923: ; 170923
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$aa48], a
- ld [$aa47], a
- ld hl, $aa5d
- ld bc, $0011
- call ByteFill
- call CloseSRAM
- ret
-; 17093c
-
-
-Function17093c: ; 17093c (5c:493c)
- xor a
- ld [ScriptVar], a
- ld a, EGG_TICKET
- ld [CurItem], a
- ld hl, NumItems
- call CheckItem
- ret nc
- ld a, [PartyCount]
- ld b, 0
- ld c, a
- ld hl, PartySpecies
-.loop
- ld a, [hli]
- cp EGG
- jr nz, .not_egg
- push hl
- ld hl, PartyMonOT ; wddff (aliases: PartyMonOT)
- ld de, $6
- ld a, b
- and a
- jr z, .skip
-.loop2
- add hl, de
- dec a
- jr nz, .loop2
-.skip
- ld de, String_1709a4
- ld a, $6
-.asm_17096e
- push af
- ld a, [de]
- inc de
- cp [hl]
- inc hl
- jr nz, .asm_17099d
- pop af
- dec a
- jr nz, .asm_17096e
-rept 4
- dec hl
-endr
- ld a, $50
-rept 2
- ld [hli], a
-endr
- pop hl
- ld a, EGG_TICKET
- ld [CurItem], a
- ld a, $1
- ld [wItemQuantityChangeBuffer], a
- ld a, $ff
- ld [wd107], a
- ld hl, NumItems
- call TossItem
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.asm_17099d
- pop af
- pop hl
-.not_egg
- inc b
- dec c
- jr nz, .loop
- ret
-; 1709a4 (5c:49a4)
-
-String_1709a4: ; 1709a4
- db "なぞナゾ@@"
-
-Function1709aa: ; 1709aa (5c:49aa)
- ld a, [rSVBK]
- push af
- ld a, BANK(w3_d090)
- ld [rSVBK], a
- ld a, [w3_d090]
- ld [ScriptVar], a
- pop af
- ld [rSVBK], a
- ret
-
-Function1709bb: ; 1709bb (5c:49bb)
- xor a
- ld [ScriptVar], a
- ld a, $5
- call GetSRAMBank
- ld a, [$a800]
- call CloseSRAM
- cp 6
- jr nc, .invalid
- ld e, a
- ld d, 0
- ld hl, Jumptable_1709e7
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-.invalid
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$a800], a
- call CloseSRAM
- ret
-; 1709e7 (5c:49e7)
-
-Jumptable_1709e7: ; 1709e7
- dw Function170a00
- dw Function170a00
- dw Function1709f3
- dw Function1709f3
- dw Function170a01
- dw Function170a33
-; 1709f3
-
-Function1709f3: ; 1709f3
- ld a, $5
- call GetSRAMBank
- ld a, $1
- ld [$a800], a
- call CloseSRAM
-
-Function170a00: ; 170a00
- ret
-; 170a01
-
-Function170a01: ; 170a01
- ld a, $5
- call GetSRAMBank
- ld hl, $b023
- ld de, $c608
- ld bc, $0069
- call CopyBytes
- ld a, [$a825]
- ld [wcd30], a
- ld a, [$a826]
- ld [wcd31], a
- call CloseSRAM
- callba Function11b6b4
- callba Function17d0f3
- ld a, $1
- ld [ScriptVar], a
- ret
-; 170a33
-
-Function170a33: ; 170a33
- ld a, $0
- call GetSRAMBank
- ld hl, wRTC
- ld de, $c608
- ld bc, $0004
- call CopyBytes
- call CloseSRAM
- ld a, $5
- call GetSRAMBank
- ld hl, $b08c
- ld de, $c608
- ld c, $4
-.asm_170a54
- ld a, [de]
- inc de
- cp [hl]
- jr nz, .asm_170a78
- inc hl
- dec c
- jr nz, .asm_170a54
- call CloseSRAM
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetMapTrigger
- ld a, d
- or e
- jr z, .asm_170a72
- ld a, [de]
- and a
- ret nz
-
-.asm_170a72
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.asm_170a78
- call CloseSRAM
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$a800], a
- call CloseSRAM
- ld [ScriptVar], a
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetMapTrigger
- ld a, d
- or e
- jr z, .asm_170a9b
- xor a
- ld [de], a
-
-.asm_170a9b
- ret
-; 170a9c
-
-Function170a9c: ; 170a9c (5c:4a9c)
- ld c, $0
- jr asm_170aa2
-
-Function170aa0: ; 170aa0 (5c:4aa0)
- ld c, $1
-asm_170aa2: ; 170aa2 (5c:4aa2)
- ld a, $5
- call GetSRAMBank
- ld a, c
- ld [$aa8d], a
- call CloseSRAM
- ret
-
-Function170aaf: ; 170aaf (5c:4aaf)
- ld a, $5
- call GetSRAMBank
- ld a, [$aa8d]
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-Function170abe: ; 170abe (5c:4abe)
- call Function17089a
- ld a, [ScriptVar]
- and a
- ret z
- ld a, BANK(sbe4f)
- call GetSRAMBank
- ld a, [sbe4f]
- and $1
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-Function170ad7: ; 170ad7 (5c:4ad7)
- ld a, BANK(sbe4f)
- call GetSRAMBank
- ld a, [sbe4f]
- or $1
- ld [sbe4f], a
- call CloseSRAM
- ret
-
-Function170ae8: ; 170ae8 (5c:4ae8)
- ld a, $5
- call GetSRAMBank
- ld a, [$b2fb]
- call CloseSRAM
- ld c, $a
- call SimpleDivide
- ld a, b
- ld [wcd4f], a
- xor a
- ld [ScriptVar], a
- callba Function119d93
- ret nc
- ld a, $5
- call GetSRAMBank
- ld a, [$b2fb]
- call CloseSRAM
- ld [ScriptVar], a
- ret
-
-Function170b16: ; 170b16 (5c:4b16)
- ld a, $5
- call GetSRAMBank
- ld a, [$b2fb]
- call CloseSRAM
- ld c, 10
- call SimpleDivide
- ld a, b
- ld [wcd4f], a
- xor a
- ld [ScriptVar], a
- callba Function119dd1
- ret nc
- ld a, $5
- call GetSRAMBank
- ld a, [$b2fb]
- call CloseSRAM
- ld [ScriptVar], a
- ret
-
Function_LoadOpponentTrainerAndPokemonsWithOTSprite: ; 0x170b44
callba Function_LoadOpponentTrainerAndPokemons
ld a, [rSVBK]
@@ -1297,7 +116,7 @@
ld [hUsedSpriteIndex], a
ld a, [hl]
ld [hUsedSpriteTile], a
- callba Function143c8
+ callba GetUsedSprite
ret
; 170b90
@@ -1532,7 +351,7 @@
ld hl, LZ_1715a4
ld de, wd000
call Decompress
- ld de, wMapPals
+ ld de, UnknBGPals
ld hl, VTiles0
lb bc, $6, $53
call Get2bpp
@@ -1593,7 +412,7 @@
call ClearBGPalettes
call ClearSprites
callba Function171d2b
- callba Function104061
+ callba ReloadMapPart
callba Function8cf53
ret
@@ -1604,7 +423,7 @@
jr nz, .asm_171a2c
call Function171a36
callba Function8cf69
- callba Function104061
+ callba ReloadMapPart
jr Function171a11
.asm_171a2c
callba Function8cf53
@@ -1760,23 +579,23 @@
jr Function171b42
Function171b4b: ; 171b4b (5c:5b4b)
- lb de, $40, $10
- ld a, $1d
- call Function3b2a
+ depixel 8, 2
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
ld hl, $c
add hl, bc
ld a, $8
ld [hl], a
- lb de, $40, $98
- ld a, $1d
- call Function3b2a
+ depixel 8, 19
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
ld hl, $c
add hl, bc
ld a, $9
ld [hl], a
- lb de, $8a, $70
- ld a, $1d
- call Function3b2a
+ depixel 17, 14, 2, 0
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
ld hl, $c
add hl, bc
ld a, $a
@@ -1861,7 +680,7 @@
call LoadMenuDataHeader
call MenuBox
call MenuBoxCoord2Tile
- callba Function104061
+ callba ReloadMapPart
hlcoord 1, 14
ld de, String_171c73
call PlaceString
@@ -1957,10 +776,10 @@
ld a, $5
ld [rSVBK], a
ld hl, Palette_171d71
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $40
call CopyBytes
- ld hl, MovementAnimation
+ ld hl, EngineBuffer5
ld a, $ff
ld [hli], a
ld a, $7f
@@ -2120,7 +939,7 @@
ld a, $5
ld [rSVBK], a
ld hl, Palette_172edf
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $40
call CopyBytes
ld hl, Palette_172edf
--- a/misc/mobile_5f.asm
+++ b/misc/mobile_5f.asm
@@ -6,7 +6,7 @@
call DisableLCD
ld hl, VTiles2
- ld bc, $310
+ ld bc, $31 tiles
xor a
call ByteFill
@@ -48,11 +48,11 @@
ld a, [rSVBK]
push af
- ld a, 5 ; BANK(wMapPals)
+ ld a, 5 ; BANK(UnknBGPals)
ld [rSVBK], a
ld hl, HaveWantPals
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $80
call CopyBytes
@@ -61,7 +61,7 @@
ld hl, MobileSelectGFX
ld de, VTiles0 tile $30
- ld bc, $200
+ ld bc, $20 tiles
call CopyBytes
ld a, 1
@@ -69,12 +69,12 @@
ld hl, HaveWantGFX
ld de, VTiles2
- ld bc, $800
+ ld bc, $80 tiles
call CopyBytes
ld hl, HaveWantGFX + $800
ld de, VTiles1
- ld bc, $100
+ ld bc, $10 tiles
call CopyBytes
xor a
@@ -81,7 +81,7 @@
ld [rVBK], a
call EnableLCD
- callba Function104061
+ callba ReloadMapPart
ret
; 17c083
@@ -226,46 +226,48 @@
ret
; 17d0b3
-Function17d0b3: ; 17d0b3
-.asm_17d0b3
+CheckStringForErrors_IgnoreTerminator: ; 17d0b3
+; Find control chars
+.loop
ld a, [de]
inc de
and a
- jr z, .asm_17d0ee
- cp $60
- jr nc, .asm_17d0ee
- cp $4e
- jr z, .asm_17d0ee
- cp $50
- jr z, .asm_17d0ee
+ jr z, .next
+ cp "<DEXEND>" + 1
+ jr nc, .next
+ cp "<NEXT>"
+ jr z, .next
+ cp "@"
+ jr z, .next
+
cp $5
- jr c, .asm_17d0ec
- cp $14
- jr c, .asm_17d0ee
+ jr c, .end
+ cp "<PLAY_G>"
+ jr c, .next
cp $19
- jr c, .asm_17d0ec
+ jr c, .end
cp $1d
- jr c, .asm_17d0ee
- cp $26
- jr c, .asm_17d0ec
+ jr c, .next
+ cp "%" + 1
+ jr c, .end
cp $35
- jr c, .asm_17d0ee
- cp $3a
- jr c, .asm_17d0ec
- cp $3f
- jr c, .asm_17d0ee
- cp $40
- jr c, .asm_17d0ec
- cp $49
- jr c, .asm_17d0ee
+ jr c, .next
+ cp "<GREEN>" + 1
+ jr c, .end
+ cp "<ENEMY>"
+ jr c, .next
+ cp "<ENEMY>" + 1
+ jr c, .end
+ cp "<MOM>"
+ jr c, .next
-.asm_17d0ec
+.end
scf
ret
-.asm_17d0ee
+.next
dec c
- jr nz, .asm_17d0b3
+ jr nz, .loop
and a
ret
; 17d0f3
@@ -303,7 +305,7 @@
ld [wd1e9], a
ld a, $2
ld [wLinkMode], a
- callba Function421d8
+ callba EvolvePokemon
xor a
ld [wLinkMode], a
callba Function14a58
@@ -324,7 +326,7 @@
ld [de], a
.asm_17d180
- call Function2b3c
+ call ReturnToCallingMenu
call RestartMapMusic
ret
; 17d187
@@ -380,22 +382,22 @@
ret
; 17d1e1
-Function17d1e1: ; 17d1e1
-.asm_17d1e1
+CheckStringContainsLessThanBNextCharacters: ; 17d1e1
+.loop
ld a, [de]
inc de
- cp $4e
- jr nz, .asm_17d1ea
+ cp "<NEXT>"
+ jr nz, .next_char
dec b
- jr z, .asm_17d1ef
+ jr z, .done
-.asm_17d1ea
+.next_char
dec c
- jr nz, .asm_17d1e1
+ jr nz, .loop
and a
ret
-.asm_17d1ef
+.done
scf
ret
; 17d1f1
@@ -415,7 +417,7 @@
ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
predef GetUnownLetter
- callab Functionfba18
+ callab UpdateUnownDex
ld a, [wdef4]
and a
jr nz, .asm_17d223
@@ -440,18 +442,18 @@
Special_Menu_ChallengeExplanationCancel: ; 17d224
ld a, [ScriptVar]
and a
- jr nz, .asm_17d234
+ jr nz, .English
ld a, $4
ld [ScriptVar], a
ld hl, MenuDataHeader_17d26a ; Japanese Menu, where you can choose 'News' as an option
- jr .asm_17d23c
+ jr .Load_Interpret
-.asm_17d234
+.English
ld a, $4
ld [ScriptVar], a
ld hl, MenuDataHeader_ChallengeExplanationCancel ; English Menu
-.asm_17d23c
+.Load_Interpret
call LoadMenuDataHeader
call Function17d246
call WriteBackup
@@ -460,25 +462,25 @@
Function17d246: ; 17d246
call InterpretMenu2
- jr c, .asm_17d264
+ jr c, .Exit
ld a, [ScriptVar]
cp $5
- jr nz, .asm_17d25d
+ jr nz, .UseMenuSelection2
ld a, [MenuSelection2]
cp $3
ret z
- jr c, .asm_17d25d
+ jr c, .UseMenuSelection2
dec a
- jr .asm_17d260
+ jr .LoadToScriptVar
-.asm_17d25d
+.UseMenuSelection2
ld a, [MenuSelection2]
-.asm_17d260
+.LoadToScriptVar
ld [ScriptVar], a
ret
-.asm_17d264
+.Exit
ld a, $4
ld [ScriptVar], a
ret
@@ -494,8 +496,8 @@
MenuData2_17d272: ; 17d272
db $a0 ; flags
db 4
- db "ニュース", $1f, "よみこむ@"
- db "ニュース", $1f, "みる@"
+ db "ニュース¯よみこむ@"
+ db "ニュース¯みる@"
db "せつめい@"
db "やめる@"
; 17d28f
@@ -562,7 +564,7 @@
ld [MusicFadeIDHi], a
call PlayMusic
call ReturnToMapFromSubmenu
- call Function2b3c
+ call ReturnToCallingMenu
ret
; 17d314
@@ -629,31 +631,31 @@
call ClearBGPalettes
call ClearSprites
call ClearScreen
- callba Function104061
+ callba ReloadMapPart
call DisableLCD
ld hl, VTiles1 tile $6e
ld de, $c608
- ld bc, $0010
+ ld bc, 1 tiles
call CopyBytes
ld a, $1
ld [rVBK], a
ld hl, PokemonNewsGFX
ld de, VTiles1
- ld bc, $0480
+ ld bc, $48 tiles
call CopyBytes
xor a
ld hl, VTiles2 tile $7f
- ld bc, $0010
+ ld bc, 1 tiles
call ByteFill
ld hl, $c608
ld de, VTiles1 tile $6e
- ld bc, $0010
+ ld bc, 1 tiles
call CopyBytes
xor a
ld [rVBK], a
ld hl, GFX_17eb7e
ld de, VTiles2 tile $60
- ld bc, $0010
+ ld bc, 1 tiles
call CopyBytes
call EnableLCD
call Function17d60b
@@ -664,7 +666,7 @@
ld a, $6
call GetSRAMBank
ld hl, $a006
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $1000
call CopyBytes
call CloseSRAM
@@ -675,27 +677,27 @@
call ClearBGPalettes
call ClearSprites
call ClearScreen
- callba Function104061
+ callba ReloadMapPart
Function17d405:
call DisableLCD
ld hl, VTiles1 tile $6e
ld de, $c608
- ld bc, $0010
+ ld bc, 1 tiles
call CopyBytes
ld a, $1
ld [rVBK], a
ld hl, PokemonNewsGFX
ld de, VTiles1
- ld bc, $0480
+ ld bc, $48 tiles
call CopyBytes
xor a
ld hl, VTiles2 tile $7f
- ld bc, $0010
+ ld bc, 1 tiles
call ByteFill
ld hl, $c608
ld de, VTiles1 tile $6e
- ld bc, $0010
+ ld bc, 1 tiles
call CopyBytes
xor a
ld [rVBK], a
@@ -705,7 +707,7 @@
ld a, $5
ld [rSVBK], a
ld hl, Palette_17eff6
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $0040
call CopyBytes
call SetPalettes
@@ -721,7 +723,7 @@
bit 7, a
jr nz, .asm_17d46f
call Function17d474
- callba Function104061
+ callba ReloadMapPart
jr .asm_17d45a
.asm_17d46f
@@ -935,7 +937,7 @@
call Function17e451
call Function17e55b
call Function17e5af
- callba Function104061
+ callba ReloadMapPart
jp Function17e438
; 17d5be
@@ -985,7 +987,7 @@
ld a, $5
ld [rSVBK], a
ld hl, $c608
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $0040
call CopyBytes
ld a, $4
@@ -1239,7 +1241,7 @@
call GetSRAMBank
ld hl, $a006
add hl, bc
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $1000
call CopyBytes
call CloseSRAM
@@ -1363,7 +1365,7 @@
ld a, [hli]
ld d, a
push hl
- ld hl, wMapPals
+ ld hl, UnknBGPals
add hl, de
ld de, wcc60
.asm_17d86c
@@ -1432,7 +1434,7 @@
ld a, $3
ld [rSVBK], a
ld hl, $c608
- ld de, wMapPals
+ ld de, UnknBGPals
ld b, $0
call CopyBytes
ld a, $4
@@ -1467,7 +1469,7 @@
call Function17e41e
call Function17e32b
pop de
- ld hl, wMapPals
+ ld hl, UnknBGPals
add hl, de
ld de, wcc60
.asm_17d918
@@ -1973,7 +1975,7 @@
Function17dc9f: ; 17dc9f
call Function17e415
call Function17e41e
- call Function4dd
+ call RotateFourPalettesLeft
ret
; 17dca9
@@ -1984,7 +1986,7 @@
Function17dcaf:
ld a, $5
ld [rSVBK], a
- ld hl, wMapPals
+ ld hl, UnknBGPals
ld de, $0008
ld c, $8
.asm_17dcbb
@@ -1997,7 +1999,7 @@
add hl, de
dec c
jr nz, .asm_17dcbb
- call FadeToWhite
+ call RotateThreePalettesRight
ld a, $4
ld [rSVBK], a
ret
@@ -2362,7 +2364,7 @@
push hl
push bc
predef TryAddMonToParty
- callba Function4db49
+ callba SetCaughtData
pop bc
pop hl
bit 1, b
@@ -2400,7 +2402,7 @@
ld a, [hli]
ld b, a
push hl
- callba SetPartymonCaughtData
+ callba SetGiftPartyMonCaughtData
pop hl
pop bc
jr .asm_17df5e
@@ -2558,7 +2560,7 @@
push hl
callba LoadEnemyMon
callba SentPkmnIntoBox
- callba Function4db83
+ callba SetBoxMonCaughtData
pop hl
pop bc
ld a, BANK(sBoxMonNicknames)
@@ -2587,7 +2589,7 @@
ld b, a
push hl
call CloseSRAM
- callba SetBoxMonCaughtData
+ callba SetGiftBoxMonCaughtData
ld a, $1
call GetSRAMBank
pop hl
@@ -3111,7 +3113,7 @@
push af
ld a, $1
ld [rSVBK], a
- callba Function14e13
+ callba SaveChecksum
pop af
ld [rSVBK], a
ret
@@ -3165,7 +3167,7 @@
; 17e40f
Function17e40f: ; 17e40f
- ld de, wMapPals
+ ld de, UnknBGPals
add hl, de
jr Function17e41e
@@ -4419,7 +4421,7 @@
ld e, a
ld a, [hli]
ld d, a
- ld hl, wMapPals
+ ld hl, UnknBGPals
add hl, de
ld e, l
ld d, h
@@ -4674,7 +4676,7 @@
call Function17f555
pop af
ld [rSVBK], a
- call Function2b4d
+ call ExitAllMenus
ret
; 17f555
--- a/misc/unused_title.asm
+++ b/misc/unused_title.asm
@@ -31,7 +31,7 @@
call CopyBytes
ld hl, UnusedTitleBG_Tilemap
- ld de, VBGMap0
+ debgcoord 0, 0
ld bc, 32 * 32
.copy
ld a, 0
@@ -67,12 +67,12 @@
ld [rSVBK], a
ld hl, UnusedTitleBG_Palettes
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $40
call CopyBytes
ld hl, UnusedTitleFG_Palettes
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld bc, $40
call CopyBytes
--- a/predef/cgb.asm
+++ b/predef/cgb.asm
@@ -8,12 +8,12 @@
Predef_LoadSGBLayoutCGB: ; 8d59
ld a, b
- cp $ff
- jr nz, .asm_8d61
+ cp SCGB_RAM
+ jr nz, .not_ram
ld a, [SGBPredef]
-.asm_8d61
- cp -4
+.not_ram
+ cp SCGB_FC
jp z, Function96f3
call Function9673
ld l, a
@@ -34,56 +34,56 @@
; 8d7a
.jumptable: ; 8d7a
- dw Function8db8
- dw Function8ddb
- dw Function8eb9
- dw Function8edb
- dw Function8f70
- dw Function906e
- dw Function90f8
- dw Function9122
- dw Function91ad
- dw Function91c8
- dw Function91d1
- dw Function91e4
- dw Function9228
- dw Function9251
- dw Function9373
- dw Function93a6
- dw Function93ba
- dw Function9195
- dw Function9499
- dw Function94d0
- dw Function93d3
- dw Function9289
- dw Function903e
- dw Function8fca
- dw Function925e
- dw Function94fa
- dw Function9529
- dw Function9555
- dw Function9578
- dw Function9591
- dw Function9542
+ dw _CGB00
+ dw _CGB01
+ dw _CGB02
+ dw _CGB03
+ dw _CGB04
+ dw _CGB05
+ dw _CGB06
+ dw _CGB07
+ dw _CGB08
+ dw _CGB09
+ dw _CGB0a
+ dw _CGB0b
+ dw _CGB0c
+ dw _CGB0d
+ dw _CGB0e
+ dw _CGB0f
+ dw _CGB10
+ dw _CGB11
+ dw _CGB12
+ dw _CGB13
+ dw _CGB14
+ dw _CGB15
+ dw _CGB16
+ dw _CGB17
+ dw _CGB18
+ dw _CGB19
+ dw _CGB1a
+ dw _CGB1b
+ dw _CGB1c
+ dw _CGB1d
+ dw _CGB1e
; 8db8
-Function8db8: ; 8db8
+_CGB00: ; 8db8
ld hl, PalPacket_9c66 + 1
- ld de, wMapPals
+ ld de, UnknBGPals
ld c, $4
call CopyPalettes
ld hl, PalPacket_9c66 + 1
- ld de, wMapPals + $20
+ ld de, UnknBGPals + $20
ld c, $4
call CopyPalettes
ld hl, PalPacket_9c66 + 1
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld c, $2
call CopyPalettes
jr Function8e23
-Function8ddb: ; 8ddb
- ld de, wMapPals
+_CGB01: ; 8ddb
+ ld de, UnknBGPals
call Function9729
push hl
call Function9643
@@ -110,12 +110,12 @@
call Function9643
ld hl, Palettes_a8ca
call Function9643
- ld de, Unkn2Pals
+ ld de, UnknOBPals
pop hl
call Function9643
pop hl
call Function9643
- ld a, $1
+ ld a, SCGB_01
ld [SGBPredef], a
call Function96a4
@@ -126,31 +126,31 @@
ld a, $2
call ByteFill
hlcoord 0, 4, AttrMap
- ld bc, $080a
+ lb bc, 8, 10
ld a, $0
- call Function9663
+ call FillBoxCGB
hlcoord 10, 0, AttrMap
- ld bc, $070a
+ lb bc, 7, 10
ld a, $1
- call Function9663
+ call FillBoxCGB
hlcoord 0, 0, AttrMap
- ld bc, $040a
+ lb bc, 4, 10
ld a, $2
- call Function9663
+ call FillBoxCGB
hlcoord 10, 7, AttrMap
- ld bc, $050a
+ lb bc, 5, 10
ld a, $3
- call Function9663
+ call FillBoxCGB
hlcoord 10, 11, AttrMap
- ld bc, $0109
+ lb bc, 1, 9
ld a, $4
- call Function9663
+ call FillBoxCGB
hlcoord 0, 12, AttrMap
- ld bc, $0078
+ ld bc, 6 * SCREEN_WIDTH
ld a, $7
call ByteFill
ld hl, Palettes_979c
- ld de, Unkn2Pals + $10
+ ld de, UnknOBPals + $10
ld bc, $0030
ld a, $5
call FarCopyWRAM
@@ -168,7 +168,7 @@
ld hl, Palette_b309
.asm_8e93
- ld de, wMapPals + 8 * 7
+ ld de, UnknBGPals + 8 * 7
ld bc, $0008
ld a, $5
call FarCopyWRAM
@@ -182,7 +182,7 @@
ld hl, Palette_b309
.asm_8ead
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $0008
ld a, $5
call FarCopyWRAM
@@ -189,7 +189,7 @@
ret
; 8eb9
-Function8eb9: ; 8eb9
+_CGB02: ; 8eb9
ld a, [PlayerGender]
bit 0, a
jr z, .asm_8ec5
@@ -200,7 +200,7 @@
ld hl, Palettes_b729
.asm_8ec8
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $0030
ld a, $5
call FarCopyWRAM
@@ -210,8 +210,8 @@
ret
; 8edb
-Function8edb: ; 8edb
- ld de, wMapPals
+_CGB03: ; 8edb
+ ld de, UnknBGPals
ld a, [wcda1]
ld l, a
ld h, $0
@@ -228,31 +228,31 @@
ld hl, Palettes_a8ca
call Function9643
ld hl, Palette8f52
- ld de, wMapPals + 8 * 3
+ ld de, UnknBGPals + 8 * 3
ld bc, $0018
ld a, $5
call FarCopyWRAM
call Function9699
hlcoord 0, 0, AttrMap
- ld bc, $0814
+ lb bc, 8, SCREEN_WIDTH
ld a, $1
- call Function9663
+ call FillBoxCGB
hlcoord 10, 16, AttrMap
ld bc, $000a
ld a, $2
call ByteFill
hlcoord 13, 5, AttrMap
- ld bc, $0202
+ lb bc, 2, 2
ld a, $3
- call Function9663
+ call FillBoxCGB
hlcoord 15, 5, AttrMap
- ld bc, $0202
+ lb bc, 2, 2
ld a, $4
- call Function9663
+ call FillBoxCGB
hlcoord 17, 5, AttrMap
- ld bc, $0202
+ lb bc, 2, 2
ld a, $5
- call Function9663
+ call FillBoxCGB
call Function96b3
call Function96a4
ld a, $1
@@ -285,8 +285,8 @@
RGB 17, 31, 31
; 8f70
-Function8f70: ; 8f70
- ld de, wMapPals
+_CGB04: ; 8f70
+ ld de, UnknBGPals
ld a, $1d
call GetAthPalletFromPalettes9df6
call LoadHLPaletteIntoDE
@@ -304,12 +304,12 @@
.asm_8f90
call Function9699
hlcoord 1, 1, AttrMap
- ld bc, $0707
+ lb bc, 7, 7
ld a, $1
- call Function9663
+ call FillBoxCGB
call Function971a
ld hl, Palette8fc2
- ld de, Unkn2Pals + $38
+ ld de, UnknOBPals + $38
ld bc, $0008
ld a, $5
call FarCopyWRAM
@@ -333,8 +333,8 @@
RGB 00, 00, 00
; 8fca
-Function8fca: ; 8fca
- ld de, wMapPals
+_CGB17: ; 8fca
+ ld de, UnknBGPals
ld a, $1d
call GetAthPalletFromPalettes9df6
call LoadHLPaletteIntoDE
@@ -353,9 +353,9 @@
.asm_8fed
call Function9699
hlcoord 1, 4, AttrMap
- ld bc, $0707
+ lb bc, 7, 7
ld a, $1
- call Function9663
+ call FillBoxCGB
call Function971a
call Function96b3
call Function96a4
@@ -376,9 +376,9 @@
.asm_901a
call Function9699
hlcoord 1, 1, AttrMap
- ld bc, $0707
+ lb bc, 7, 7
ld a, $1
- call Function9663
+ call FillBoxCGB
call Function971a
call Function96b3
call Function96a4
@@ -394,8 +394,8 @@
RGB 00, 00, 00
; 903e
-Function903e: ; 903e
- ld de, wMapPals
+_CGB16: ; 903e
+ ld de, UnknBGPals
ld a, $1d
call GetAthPalletFromPalettes9df6
call LoadHLPaletteIntoDE
@@ -404,9 +404,9 @@
call Function9643
call Function9699
hlcoord 7, 5, AttrMap
- ld bc, $0707
+ lb bc, 7, 7
ld a, $1
- call Function9663
+ call FillBoxCGB
call Function971a
call Function96b3
call Function96a4
@@ -415,49 +415,49 @@
ret
; 906e
-Function906e: ; 906e
+_CGB05: ; 906e
ld hl, Palettes_b7a9
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $0080
ld a, $5
call FarCopyWRAM
call Function9699
hlcoord 0, 2, AttrMap
- ld bc, $0a03
+ lb bc, 10, 3
ld a, $2
- call Function9663
+ call FillBoxCGB
hlcoord 17, 2, AttrMap
- ld bc, $0a03
+ lb bc, 10, 3
ld a, $2
- call Function9663
+ call FillBoxCGB
hlcoord 0, 4, AttrMap
- ld bc, $0603
+ lb bc, 6, 3
ld a, $3
- call Function9663
+ call FillBoxCGB
hlcoord 17, 4, AttrMap
- ld bc, $0603
+ lb bc, 6, 3
ld a, $3
- call Function9663
+ call FillBoxCGB
hlcoord 0, 6, AttrMap
- ld bc, $0203
+ lb bc, 2, 3
ld a, $4
- call Function9663
+ call FillBoxCGB
hlcoord 17, 6, AttrMap
- ld bc, $0203
+ lb bc, 2, 3
ld a, $4
- call Function9663
+ call FillBoxCGB
hlcoord 4, 2, AttrMap
- ld bc, $020c
+ lb bc, 2, 12
ld a, $1
- call Function9663
+ call FillBoxCGB
hlcoord 3, 2, AttrMap
- ld bc, $0a01
+ lb bc, 10, 1
ld a, $1
- call Function9663
+ call FillBoxCGB
hlcoord 16, 2, AttrMap
- ld bc, $0a01
+ lb bc, 10, 1
ld a, $1
- call Function9663
+ call FillBoxCGB
hlcoord 0, 12, AttrMap
ld bc, $0078
ld a, $7
@@ -469,18 +469,18 @@
ret
; 90f8
-Function90f8: ; 90f8
+_CGB06: ; 90f8
ld hl, PalPacket_9ca6 + 1
call CopyFourPalettes
call Function9699
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld a, $3c
call GetAthPalletFromPalettes9df6
call LoadHLPaletteIntoDE
hlcoord 0, 6, AttrMap
- ld bc, $0c14
+ lb bc, 12, SCREEN_WIDTH
ld a, $1
- call Function9663
+ call FillBoxCGB
call Function96b3
call Function96a4
ld a, $1
@@ -488,7 +488,7 @@
ret
; 9122
-Function9122: ; 9122
+_CGB07: ; 9122
ld b, 0
ld hl, Jumptable_912d
rept 2
@@ -508,10 +508,10 @@
Function9133: ; 9133
ld hl, Palette_914e
- ld de, wMapPals
+ ld de, UnknBGPals
call LoadHLPaletteIntoDE
ld hl, Palette_9156
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld bc, $0010
ld a, $5
call FarCopyWRAM
@@ -538,11 +538,11 @@
; 9166
Function9166: ; 9166
- ld de, wMapPals
+ ld de, UnknBGPals
ld a, $38
call GetAthPalletFromPalettes9df6
call LoadHLPaletteIntoDE
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld a, $39
call GetAthPalletFromPalettes9df6
call LoadHLPaletteIntoDE
@@ -553,7 +553,7 @@
Function9180: ; 9180
ld hl, PalPacket_9c36 + 1
call CopyFourPalettes
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld a, $3a
call GetAthPalletFromPalettes9df6
call LoadHLPaletteIntoDE
@@ -561,9 +561,9 @@
ret
; 9195
-Function9195: ; 9195
+_CGB11: ; 9195
ld hl, Palettes_b789
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $0028
ld a, $5
call FarCopyWRAM
@@ -573,9 +573,9 @@
ret
; 91ad
-Function91ad: ; 91ad
+_CGB08: ; 91ad
ld hl, Palettes_b641
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $0080
ld a, $5
call FarCopyWRAM
@@ -586,14 +586,14 @@
ret
; 91c8
-Function91c8: ; 91c8
+_CGB09: ; 91c8
call Functionb1de
- ld a, $9
+ ld a, SCGB_09
ld [SGBPredef], a
ret
; 91d1
-Function91d1: ; 91d1
+_CGB0a: ; 91d1
ld hl, PalPacket_9c56 + 1
call CopyFourPalettes
call Function8e9f
@@ -603,8 +603,8 @@
ret
; 91e4
-Function91e4: ; 91e4
- ld de, wMapPals
+_CGB0b: ; 91e4
+ ld de, UnknBGPals
ld a, c
and a
jr z, .asm_91f5
@@ -624,7 +624,7 @@
call Function974b
call Function9643
ld hl, Palettes_979c
- ld de, Unkn2Pals + $10
+ ld de, UnknOBPals + $10
ld bc, $0030
ld a, $5
call FarCopyWRAM
@@ -638,18 +638,18 @@
ret
; 9228
-Function9228: ; 9228
+_CGB0c: ; 9228
ld hl, Palettes_b6f1
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $0028
ld a, $5
call FarCopyWRAM
ld hl, Palettes_b719
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld bc, $0010
ld a, $5
call FarCopyWRAM
- ld a, $8
+ ld a, SCGB_08
ld [SGBPredef], a
call Function96a4
ld a, $1
@@ -657,7 +657,7 @@
ret
; 9251
-Function9251: ; 9251
+_CGB0d: ; 9251
ld hl, PalPacket_9cb6 + 1
call CopyFourPalettes
call Function9699
@@ -665,10 +665,10 @@
ret
; 925e
-Function925e: ; 925e
+_CGB18: ; 925e
ld hl, PalPacket_9bc6 + 1
call CopyFourPalettes
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld a, $4c
call GetAthPalletFromPalettes9df6
call LoadHLPaletteIntoDE
@@ -676,7 +676,7 @@
push af
ld a, $5
ld [rSVBK], a
- ld hl, Unkn2Pals
+ ld hl, UnknOBPals
ld a, $1f
ld [hli], a
ld a, $0
@@ -688,8 +688,8 @@
ret
; 9289
-Function9289: ; 9289
- ld de, wMapPals
+_CGB15: ; 9289
+ ld de, UnknBGPals
xor a
call Function976b
call Function9643
@@ -728,7 +728,7 @@
.asm_92e3
call ByteFill
hlcoord 14, 1, AttrMap
- ld bc, $0705
+ lb bc, 7, 5
ld a, [PlayerGender]
and a
ld a, $0
@@ -736,45 +736,45 @@
ld a, $1
.asm_92f6
- call Function9663
+ call FillBoxCGB
hlcoord 18, 1, AttrMap
ld [hl], $1
hlcoord 2, 11, AttrMap
- ld bc, $0204
+ lb bc, 2, 4
ld a, $1
- call Function9663
+ call FillBoxCGB
hlcoord 6, 11, AttrMap
- ld bc, $0204
+ lb bc, 2, 4
ld a, $2
- call Function9663
+ call FillBoxCGB
hlcoord 10, 11, AttrMap
- ld bc, $0204
+ lb bc, 2, 4
ld a, $3
- call Function9663
+ call FillBoxCGB
hlcoord 14, 11, AttrMap
- ld bc, $0204
+ lb bc, 2, 4
ld a, $4
- call Function9663
+ call FillBoxCGB
hlcoord 2, 14, AttrMap
- ld bc, $0204
+ lb bc, 2, 4
ld a, $5
- call Function9663
+ call FillBoxCGB
hlcoord 6, 14, AttrMap
- ld bc, $0204
+ lb bc, 2, 4
ld a, $6
- call Function9663
+ call FillBoxCGB
hlcoord 10, 14, AttrMap
- ld bc, $0204
+ lb bc, 2, 4
ld a, $7
- call Function9663
+ call FillBoxCGB
ld a, [PlayerGender]
and a
push af
jr z, .asm_935d
hlcoord 14, 14, AttrMap
- ld bc, $0204
+ lb bc, 2, 4
ld a, $1
- call Function9663
+ call FillBoxCGB
.asm_935d
pop af
@@ -793,8 +793,8 @@
ret
; 9373
-Function9373: ; 9373
- ld de, wMapPals
+_CGB0e: ; 9373
+ ld de, UnknBGPals
ld a, $10
call GetAthPalletFromPalettes9df6
call LoadHLPaletteIntoDE
@@ -809,9 +809,9 @@
call Function9643
call Function9699
hlcoord 11, 1, AttrMap
- ld bc, $0209
+ lb bc, 2, 9
ld a, $1
- call Function9663
+ call FillBoxCGB
call Function96b3
call Function96a4
ld a, $1
@@ -819,7 +819,7 @@
ret
; 93a6
-Function93a6: ; 93a6
+_CGB0f: ; 93a6
ld hl, PalPacket_9c46 + 1
call CopyFourPalettes
call Function9699
@@ -830,8 +830,8 @@
ret
; 93ba
-Function93ba: ; 93ba
- ld de, wMapPals
+_CGB10: ; 93ba
+ ld de, UnknBGPals
ld a, $1d
call GetAthPalletFromPalettes9df6
call LoadHLPaletteIntoDE
@@ -843,7 +843,7 @@
ret
; 93d3
-Function93d3: ; 93d3
+_CGB14: ; 93d3
ld a, [BattleType]
cp BATTLETYPE_TUTORIAL
jr z, .asm_93e6
@@ -859,31 +859,31 @@
ld hl, Palettes_9439
.asm_93e9
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $0040
ld a, $5
call FarCopyWRAM
call Function9699
hlcoord 0, 0, AttrMap
- ld bc, $010a
+ lb bc, 1, 10
ld a, $1
- call Function9663
+ call FillBoxCGB
hlcoord 10, 0, AttrMap
- ld bc, $010a
+ lb bc, 1, 10
ld a, $2
- call Function9663
+ call FillBoxCGB
hlcoord 7, 2, AttrMap
- ld bc, $0901
+ lb bc, 9, 1
ld a, $3
- call Function9663
+ call FillBoxCGB
hlcoord 0, 7, AttrMap
- ld bc, $0305
+ lb bc, 3, 5
ld a, $4
- call Function9663
+ call FillBoxCGB
hlcoord 0, 3, AttrMap
- ld bc, $0305
+ lb bc, 3, 5
ld a, $5
- call Function9663
+ call FillBoxCGB
call Function96b3
call Function96a4
ld a, $1
@@ -945,8 +945,8 @@
RGB 00, 00, 00
; 9499
-Function9499: ; 9499
- call Function91c8
+_CGB12: ; 9499
+ call _CGB09
ld de, $0014
hlcoord 0, 0, AttrMap
ld a, [wMenuBorderTopCoord]
@@ -975,23 +975,23 @@
inc a
ld c, a
ld a, $0
- call Function9663
+ call FillBoxCGB
call Function96b3
ret
; 94d0
-Function94d0: ; 94d0
+_CGB13: ; 94d0
ld hl, PalPacket_9ba6 + 1
call CopyFourPalettes
call Function9699
hlcoord 0, 4, AttrMap
- ld bc, $0a14
+ lb bc, 10, SCREEN_WIDTH
ld a, $2
- call Function9663
+ call FillBoxCGB
hlcoord 0, 6, AttrMap
- ld bc, $0614
+ lb bc, 6, SCREEN_WIDTH
ld a, $1
- call Function9663
+ call FillBoxCGB
call Function96b3
call Function96a4
ld a, $1
@@ -999,16 +999,16 @@
ret
; 94fa
-Function94fa: ; 94fa
- ld de, wMapPals
+_CGB19: ; 94fa
+ ld de, UnknBGPals
ld a, $4e
call GetAthPalletFromPalettes9df6
call LoadHLPaletteIntoDE
ld hl, Palette_9521
- ld de, Unkn2Pals
+ ld de, UnknOBPals
call LoadHLPaletteIntoDE
ld hl, Palette_9521
- ld de, Unkn2Pals + 8
+ ld de, UnknOBPals + 8
call LoadHLPaletteIntoDE
call Function9699
call Function96b3
@@ -1023,8 +1023,8 @@
RGB 00, 00, 00
; 9529
-Function9529: ; 9529
- ld de, wMapPals
+_CGB1a: ; 9529
+ ld de, UnknBGPals
ld a, [CurPartySpecies]
ld bc, TempMonDVs
call Function974b
@@ -1035,8 +1035,8 @@
ret
; 9542
-Function9542: ; 9542
- ld de, wMapPals
+_CGB1e: ; 9542
+ ld de, UnknBGPals
ld a, [CurPartySpecies]
call Function9775
call Function9643
@@ -1045,15 +1045,15 @@
ret
; 9555
-Function9555: ; 9555
+_CGB1b: ; 9555
ld hl, PalPacket_9cc6 + 1
call CopyFourPalettes
ld hl, Palettes_b681
- ld de, Unkn2Pals
+ ld de, UnknOBPals
ld bc, $0008
ld a, $5
call FarCopyWRAM
- ld de, Unkn2Pals + $38
+ ld de, UnknOBPals + $38
ld a, $1c
call GetAthPalletFromPalettes9df6
call LoadHLPaletteIntoDE
@@ -1061,8 +1061,8 @@
ret
; 9578
-Function9578: ; 9578
- ld de, wMapPals
+_CGB1c: ; 9578
+ ld de, UnknBGPals
ld a, [CurPartySpecies]
ld bc, TempMonDVs
call Function9764
@@ -1073,9 +1073,9 @@
ret
; 9591
-Function9591: ; 9591
+_CGB1d: ; 9591
ld hl, Palette95e0
- ld de, wMapPals
+ ld de, UnknBGPals
ld bc, $0010
ld a, $5
call FarCopyWRAM
@@ -1082,25 +1082,25 @@
call Function96a4
call Function9699
hlcoord 3, 7, AttrMap
- ld bc, $080e
+ lb bc, 8, 14
ld a, $1
- call Function9663
+ call FillBoxCGB
hlcoord 1, 5, AttrMap
- ld bc, $0112
+ lb bc, 1, 18
ld a, $1
- call Function9663
+ call FillBoxCGB
hlcoord 1, 16, AttrMap
- ld bc, $0112
+ lb bc, 1, 18
ld a, $1
- call Function9663
+ call FillBoxCGB
hlcoord 0, 0, AttrMap
- ld bc, $1102
+ lb bc, 17, 2
ld a, $1
- call Function9663
+ call FillBoxCGB
hlcoord 18, 5, AttrMap
- ld bc, $0c01
+ lb bc, 12, 1
ld a, $1
- call Function9663
+ call FillBoxCGB
call Function96b3
ret
; 95e0
--- a/predef/sgb.asm
+++ b/predef/sgb.asm
@@ -4,12 +4,12 @@
jp nz, Predef_LoadSGBLayoutCGB
ld a, b
- cp $ff
- jr nz, .asm_865a
+ cp SCGB_RAM
+ jr nz, .not_ram
ld a, [SGBPredef]
-.asm_865a
- cp $fc
+.not_ram
+ cp SCGB_FC
jp z, Function8ade
ld l, a
ld h, 0
@@ -33,12 +33,12 @@
dw .SGB05
dw .SGB06
dw .SGB07
- dw .SGB08_1d
+ dw .SGB08
dw .SGB09
dw .SGB0a
dw .SGB0b
dw .SGB0c
- dw .SGB0d_15
+ dw .SGB0d
dw .SGB0e
dw .SGB0f
dw .SGB10
@@ -46,7 +46,7 @@
dw .SGB12
dw .SGB13
dw .SGB14
- dw .SGB0d_15
+ dw .SGB15
dw .SGB16
dw .SGB17
dw .SGB18
@@ -54,7 +54,7 @@
dw .SGB1a
dw .SGB1b
dw .SGB1c
- dw .SGB08_1d
+ dw .SGB1d
dw .SGB1e
; 86ad
@@ -67,10 +67,12 @@
.SGB01: ; 86b4
ld hl, BlkPacket_9aa6
call Function9809
+
ld hl, PalPacket_9ce6
ld de, wcda9
ld bc, $0010
call CopyBytes
+
ld a, [PlayerHPPal]
ld l, a
ld h, 0
@@ -79,6 +81,7 @@
endr
ld de, Palettes_a8be
add hl, de
+
ld a, [hli]
ld [wcda9 + 3], a
ld a, [hli]
@@ -87,6 +90,7 @@
ld [wcda9 + 5], a
ld a, [hl]
ld [wcda9 + 6], a
+
ld a, [EnemyHPPal]
ld l, a
ld h, $0
@@ -93,6 +97,7 @@
rept 2
add hl, hl
endr
+
ld de, Palettes_a8be
add hl, de
ld a, [hli]
@@ -103,11 +108,14 @@
ld [wcda9 + 11], a
ld a, [hl]
ld [wcda9 + 12], a
+
ld hl, PalPacket_9cf6
ld de, wcda9 + $10
ld bc, $0010
call CopyBytes
+
call Function9729
+
ld a, [hli]
ld [wcda9 + $13], a
ld a, [hli]
@@ -125,9 +133,10 @@
ld [wcda9 + $1b], a
ld a, [hl]
ld [wcda9 + $1c], a
+
ld hl, wcda9
ld de, wcda9 + $10
- ld a, $1
+ ld a, SCGB_01
ld [SGBPredef], a
ret
; 873c
@@ -137,11 +146,13 @@
ld de, wcda9
ld bc, $0010
call CopyBytes
+
ld hl, wcda9 + 1
ld [hl], $10
rept 2
inc hl
endr
+
ld a, [PlayerHPPal]
add $2f
ld [hl], a
@@ -298,7 +309,8 @@
ret
; 8860
-.SGB08_1d: ; 8860
+.SGB08:
+.SGB1d: ; 8860
ld hl, PalPacket_9cb6
ld de, BlkPacket_9a86
ret
@@ -329,7 +341,7 @@
.SGB0c: ; 8884
ld hl, PalPacket_9b96
ld de, BlkPacket_9b56
- ld a, $8
+ ld a, SCGB_08
ld [SGBPredef], a
ret
; 8890
@@ -365,7 +377,7 @@
ld hl, wcda9 + 1
ld [hld], a
ld de, BlkPacket_9a86
- ld a, $9
+ ld a, SCGB_09
ld [SGBPredef], a
ret
; 88cd
@@ -414,7 +426,8 @@
ret
; 891a
-.SGB0d_15: ; 891a
+.SGB0d:
+.SGB15: ; 891a
ld hl, PalPacket_9cb6
ld de, BlkPacket_9a86
ret
--- a/sram.asm
+++ b/sram.asm
@@ -9,36 +9,76 @@
SECTION "SRAM Bank 0", SRAM [$a600], BANK [0]
-sPartyScratch1:: ds 6 * SCRATCHMON_STRUCT_LENGTH
-sPartyScratch2:: ds 6 * SCRATCHMON_STRUCT_LENGTH
-s0_a834:: ds 1
-s0_a835:: ds 10 * SCRATCHMON_STRUCT_LENGTH
-s0_aa0b:: ds 1
-s0_aa0c:: ds 10 * SCRATCHMON_STRUCT_LENGTH
+; a600
+sPartyMail::
+sPartyMon1Mail:: mailmsg sPartyMon1Mail
+sPartyMon2Mail:: mailmsg sPartyMon2Mail
+sPartyMon3Mail:: mailmsg sPartyMon3Mail
+sPartyMon4Mail:: mailmsg sPartyMon4Mail
+sPartyMon5Mail:: mailmsg sPartyMon5Mail
+sPartyMon6Mail:: mailmsg sPartyMon6Mail
+; a71a
+sPartyMailBackup::
+sPartyMon1MailBackup:: mailmsg sPartyMon1MailBackup
+sPartyMon2MailBackup:: mailmsg sPartyMon2MailBackup
+sPartyMon3MailBackup:: mailmsg sPartyMon3MailBackup
+sPartyMon4MailBackup:: mailmsg sPartyMon4MailBackup
+sPartyMon5MailBackup:: mailmsg sPartyMon5MailBackup
+sPartyMon6MailBackup:: mailmsg sPartyMon6MailBackup
+
+; a834
+sMailboxCount:: ds 1
+sMailbox::
+sMailbox1:: mailmsg sMailbox1
+sMailbox2:: mailmsg sMailbox2
+sMailbox3:: mailmsg sMailbox3
+sMailbox4:: mailmsg sMailbox4
+sMailbox5:: mailmsg sMailbox5
+sMailbox6:: mailmsg sMailbox6
+sMailbox7:: mailmsg sMailbox7
+sMailbox8:: mailmsg sMailbox8
+sMailbox9:: mailmsg sMailbox9
+sMailbox10:: mailmsg sMailbox10
+
+; aa0b
+sMailboxCountBackup:: ds 1
+sMailboxBackup::
+sMailbox1Backup:: mailmsg sMailbox1Backup
+sMailbox2Backup:: mailmsg sMailbox2Backup
+sMailbox3Backup:: mailmsg sMailbox3Backup
+sMailbox4Backup:: mailmsg sMailbox4Backup
+sMailbox5Backup:: mailmsg sMailbox5Backup
+sMailbox6Backup:: mailmsg sMailbox6Backup
+sMailbox7Backup:: mailmsg sMailbox7Backup
+sMailbox8Backup:: mailmsg sMailbox8Backup
+sMailbox9Backup:: mailmsg sMailbox9Backup
+sMailbox10Backup:: mailmsg sMailbox10Backup
+
+; abe2
sMysteryGiftItem:: ds 1
-s0_abe3:: ds 1
-s0_abe4:: ds 1
-s0_abe5:: ds 1
-s0_abe6:: ds 10
-s0_abf0:: ds 10
+sMysteryGiftUnlocked:: ds 1
+sBackupMysteryGiftItem:: ds 1
+sNumDailyMysteryGiftPartnerIDs:: ds 1
+sDailyMysteryGiftPartnerIDs:: ds 5 * 2 ; maximum 5 per day, 2 bytes per ID
+sMysteryGiftDecorationsReceived:: flag_array NUM_NON_TROPHY_DECOS
+ ds 4
sMysteryGiftTimer:: ds 1
sMysteryGiftTimerStartDay:: ds 1
ds 1
sMysteryGiftTrainerHouseFlag:: ds 1
-s0_abfe:: ds 12
-sMysteryGiftTrainer:: ds (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 1
- ds 1
-s0_abe4End::
+sMysteryGiftPartnerName:: ds NAME_LENGTH
+s0_ac09:: ds 1
+sMysteryGiftTrainer:: ds (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 2
+sBackupMysteryGiftItemEnd::
ds $30
-s0_ac60:: ds 8
+sRTCStatusFlags:: ds 8
sLuckyNumberDay:: ds 1
sLuckyIDNumber:: ds 2
- ds $b200 - $ac6b
-
+SECTION "Backup Save", SRAM [$b200], BANK [0]
sBackupOptions:: ds OptionsEnd - Options
s0_b208:: ds 1
@@ -62,7 +102,7 @@
sOptions:: ds OptionsEnd - Options
-s1_a008:: ds 1
+s1_a008:: ds 1 ; loaded with 99, used to check save corruption
sGameData::
sPlayerData:: ds wPlayerDataEnd - wPlayerData
@@ -75,7 +115,7 @@
; ad0d
sChecksum:: ds 2
-s1_ad0f:: ds 1
+s1_ad0f:: ds 1 ; loaded with 0x7f, used to check save corruption
; ad10
box sBox
@@ -103,18 +143,21 @@
sCrystalData::
ds wCrystalDataEnd - wCrystalData
sMobileEventIndexBackup:: ds 1
-s1_be45:: ds 1
+SECTION "SRAM Battle Tower", SRAM, BANK [1]
; data of the BattleTower must be in SRAM because you can save and leave between battles
+sBattleTowerChallengeState:: ds 1
+; 0: normal
+; 2: battle tower
+
sBattleTower:: ; be46
-sNrOfBeatenBattleTowerTrainers::
-sbe46:: ds 1
+sNrOfBeatenBattleTowerTrainers:: ds 1
sbe47:: ds 1
; The 7 trainers of the BattleTower are saved here, so nobody appears more than once
sBTTrainers:: ; sbe48
ds 7
sbe4f:: ds 1
-sbe50:: ds 1
+sBattleTowerReward:: ds 1
; Pkmn of previous trainer
sBTPkmnOfTrainers:: ; 0xbe51
sBTPkmnPrevTrainer1::
--- a/text/battle.asm
+++ b/text/battle.asm
@@ -194,7 +194,7 @@
GotMoneyForWinningText:
text "<PLAYER> got ¥@"
- deciram wc686, 3, 6
+ deciram wBattleReward, 3, 6
text ""
line "for winning!"
prompt
@@ -213,7 +213,7 @@
SentSomeToMomText:
text "<PLAYER> got ¥@"
- deciram wc686, 3, 6
+ deciram wBattleReward, 3, 6
text ""
line "for winning!"
cont "Sent some to MOM!"
@@ -396,7 +396,7 @@
line "level @"
deciram CurPartyLevel, 1, 3
text "!@"
- sound0
+ sound_dex_fanfare_50_79
db "@"
; 0x80cb9
--- a/text/battle_tower.asm
+++ b/text/battle_tower.asm
@@ -186,20 +186,20 @@
; 0x1ec402
UnknownText_0x1ec402: ; 0x1ec402
- text $56, $56, $56
- line $56, $56, "Battle?"
+ text "<......><......><......>"
+ line "<......><......>Battle?"
done
; 0x1ec411
UnknownText_0x1ec411: ; 0x1ec411
- text $56, $56, $56
- line $56, $56, "I won?"
+ text "<......><......><......>"
+ line "<......><......>I won?"
done
; 0x1ec41f
UnknownText_0x1ec41f: ; 0x1ec41f
- text $56, $56, $56
- line $56, $56, "I lost?"
+ text "<......><......><......>"
+ line "<......><......>I lost?"
done
; 0x1ec42e
--- a/text/common_2.asm
+++ b/text/common_2.asm
@@ -108,7 +108,7 @@
line "level @"
deciram CurPartyLevel, 1, 3
text "!@"
- sound0
+ sound_dex_fanfare_50_79
text_waitbutton
db "@"
; 0x1bc16d
@@ -1575,7 +1575,7 @@
line "@"
text_from_ram StringBuffer1
text "!@"
- sound0x0F
+ sound_item
text_waitbutton
db "@"
; 0x1bd3d6
@@ -1613,7 +1613,7 @@
; 0x1bd445
UnknownText_0x1bd445: ; 0x1bd445
- sound0x0A
+ sound_dex_fanfare_80_109
interpret_data
db "@"
; 0x1bd448
--- a/text/common_3.asm
+++ b/text/common_3.asm
@@ -279,7 +279,7 @@
; 1c04e9
UnknownText_0x1c04e9: ; 1c04e9
- text_from_ram wc903
+ text_from_ram wMysteryGiftPartnerName
text " sent"
line "@"
text_from_ram StringBuffer1
@@ -288,7 +288,7 @@
; 1c04fa
UnknownText_0x1c04fa: ; 1c04fa
- text_from_ram wc903
+ text_from_ram wMysteryGiftPartnerName
text " sent"
line "@"
text_from_ram StringBuffer1
@@ -931,7 +931,7 @@
text_from_ram StringBuffer1
text " came"
line "out of its EGG!@"
- sound0x02
+ sound_caught_mon
text_waitbutton
db "@"
; 1c0dd7
@@ -1145,7 +1145,7 @@
interpret_data
text "…"
para "@"
- text_from_ram wd016
+ text_from_ram wBugContestWinnerName
text ","
line "who caught a"
cont "@"
@@ -1158,7 +1158,7 @@
text ""
para "The winning score"
line "was @"
- deciram wd004, 2, 3
+ deciram wBugContestFirstPlaceScore, 2, 3
text " points!"
prompt
; 1c1166
@@ -1166,7 +1166,7 @@
ContestJudging_SecondPlaceText: ; 1c1166
text "Placing second was"
line "@"
- text_from_ram wd016
+ text_from_ram wBugContestWinnerName
text ","
para "who caught a"
line "@"
@@ -1179,7 +1179,7 @@
text ""
para "The score was"
line "@"
- deciram wd008, 2, 3
+ deciram wBugContestSecondPlaceScore, 2, 3
text " points!"
prompt
; 1c11b5
@@ -1187,7 +1187,7 @@
ContestJudging_ThirdPlaceText: ; 1c11b5
text "Placing third was"
line "@"
- text_from_ram wd016
+ text_from_ram wBugContestWinnerName
text ","
para "who caught a"
line "@"
@@ -1200,7 +1200,7 @@
text ""
para "The score was"
line "@"
- deciram wd00c, 2, 3
+ deciram wBugContestThirdPlaceScore, 2, 3
text " points!"
prompt
; 1c1203
@@ -1641,7 +1641,7 @@
UnknownText_0x1c1b2c: ; 1c1b2c
text "Took @"
- text_from_ram wd050
+ text_from_ram wd050_MonNick
text "'s"
line "@"
text_from_ram StringBuffer1
@@ -1656,7 +1656,7 @@
UnknownText_0x1c1b57: ; 1c1b57
text "Made @"
- text_from_ram wd050
+ text_from_ram wd050_MonNick
text ""
line "hold @"
text_from_ram StringBuffer2
@@ -1671,7 +1671,7 @@
; 1c1b8e
UnknownText_0x1c1b8e: ; 1c1b8e
- text_from_ram wd050
+ text_from_ram wd050_MonNick
text " isn't"
line "holding anything."
prompt
@@ -1688,13 +1688,13 @@
text_from_ram StringBuffer1
text ""
line "from @"
- text_from_ram wd050
+ text_from_ram wd050_MonNick
text "."
prompt
; 1c1bdc
UnknownText_0x1c1bdc: ; 1c1bdc
- text_from_ram wd050
+ text_from_ram wd050_MonNick
text " is"
line "already holding"
--- a/text/common_4.asm
+++ b/text/common_4.asm
@@ -338,10 +338,10 @@
UnknownText_0x1c47d4: ; 0x1c47d4
text "Hm… I see you met"
line "@"
- text_from_ram wd003
+ text_from_ram wSeerNickname
text " here:"
cont "@"
- text_from_ram wd00e
+ text_from_ram wSeerCaughtLocation
text "!"
prompt
; 0x1c47fa
@@ -349,11 +349,11 @@
UnknownText_0x1c47fa: ; 0x1c47fa
text "The time was"
line "@"
- text_from_ram wd01f
+ text_from_ram wSeerTimeOfDay
text "!"
para "Its level was @"
- text_from_ram wd036
+ text_from_ram wSeerCaughtLevelString
text "!"
para "Am I good or what?"
@@ -362,21 +362,21 @@
UnknownText_0x1c4837: ; 0x1c4837
text "Hm… @"
- text_from_ram wd003
+ text_from_ram wSeerNickname
text ""
line "came from @"
- text_from_ram wd02a
+ text_from_ram wSeerOTName
text ""
cont "in a trade?"
para "@"
- text_from_ram wd00e
+ text_from_ram wSeerCaughtLocation
text ""
line "was where @"
- text_from_ram wd02a
+ text_from_ram wSeerOTName
text ""
cont "met @"
- text_from_ram wd003
+ text_from_ram wSeerNickname
text "!"
prompt
; 0x1c487f
@@ -393,7 +393,7 @@
para "I can't tell where"
line "you met it, but it"
cont "was at level @"
- text_from_ram wd036
+ text_from_ram wSeerCaughtLevelString
text "."
para "Am I good or what?"
@@ -434,7 +434,7 @@
line "grown a little."
para "@"
- text_from_ram wd003
+ text_from_ram wSeerNickname
text " seems"
line "to be becoming"
cont "more confident."
@@ -445,7 +445,7 @@
text "Incidentally…"
para "@"
- text_from_ram wd003
+ text_from_ram wSeerNickname
text " has"
line "grown. It's gained"
cont "much strength."
@@ -459,7 +459,7 @@
line "grown mighty!"
para "This @"
- text_from_ram wd003
+ text_from_ram wSeerNickname
text ""
line "must have come"
@@ -483,12 +483,12 @@
para "seen a #MON as"
line "mighty as this"
cont "@"
- text_from_ram wd003
+ text_from_ram wSeerNickname
text "."
para "I'm sure that"
line "seeing @"
- text_from_ram wd003
+ text_from_ram wSeerNickname
text ""
para "in battle would"
line "excite anyone."
@@ -859,13 +859,13 @@
; 0x1c51f4
UnknownText_0x1c51f4: ; 0x1c51f4
- text_from_ram wd006
+ text_from_ram wMobileParticipant1Nickname
text ","
line "@"
- text_from_ram wd00c
+ text_from_ram wMobileParticipant2Nickname
text " and"
cont "@"
- text_from_ram wd012
+ text_from_ram wMobileParticipant3Nickname
text "."
para "Use these three?"
@@ -989,7 +989,7 @@
; 0x1c5588
UnknownText_0x1c5588: ; 0x1c5588
- text $56
+ text "<......>"
done
; 0x1c558b
@@ -1045,12 +1045,12 @@
; 0x1c5660
UnknownText_0x1c5660: ; 0x1c5660
- text_from_ram wd050
+ text_from_ram wd050_MonNick
text " learned"
line "@"
text_from_ram StringBuffer2
text "!@"
- sound0
+ sound_dex_fanfare_50_79
text_waitbutton
db "@"
; 0x1c5677
@@ -1074,7 +1074,7 @@
; 0x1c56af
UnknownText_0x1c56af: ; 0x1c56af
- text_from_ram wd050
+ text_from_ram wd050_MonNick
text ""
line "did not learn"
cont "@"
@@ -1084,7 +1084,7 @@
; 0x1c56c9
UnknownText_0x1c56c9: ; 0x1c56c9
- text_from_ram wd050
+ text_from_ram wd050_MonNick
text " is"
line "trying to learn"
cont "@"
@@ -1092,7 +1092,7 @@
text "."
para "But @"
- text_from_ram wd050
+ text_from_ram wd050_MonNick
text ""
line "can't learn more"
cont "than four moves."
@@ -1120,7 +1120,7 @@
interpret_data
text ""
para "@"
- text_from_ram wd050
+ text_from_ram wd050_MonNick
text " forgot"
line "@"
text_from_ram StringBuffer1
@@ -1189,7 +1189,7 @@
; 0x1c5824
UnknownText_0x1c5824: ; 0x1c5824
- text $56
+ text "<......>"
done
; 0x1c5827
@@ -1367,7 +1367,7 @@
text_from_ram EnemyMonNick
text ""
line "was caught!@"
- sound0x02
+ sound_caught_mon
db "@"
; 0x1c5b34
@@ -1396,7 +1396,7 @@
text "'s data"
line "was newly added to"
cont "the #DEX.@"
- sound0x2C
+ sound_slot_machine_start
text_waitbutton
db "@"
; 0x1c5b7e
@@ -1514,7 +1514,7 @@
UnknownText_0x1c5d03: ; 0x1c5d03
text "There was a trophy"
line "inside!@"
- sound0
+ sound_dex_fanfare_50_79
text ""
para "@"
text_from_ram PlayerName
--- a/text/phone/buena.asm
+++ b/text/phone/buena.asm
@@ -351,9 +351,9 @@
para "that it gradually"
line "makes me drowsy…"
- para $56, " ", $56, " ", $56
+ para "<......> <......> <......>"
- para $56, " ", $56, " ", $56, "Zzz"
+ para "<......> <......> <......>Zzz"
para "Oops, I drifted"
line "off just thinking"
--- a/tilesets/animations.asm
+++ b/tilesets/animations.asm
@@ -48,7 +48,7 @@
dw NULL, AnimateFlowerTile
dw NULL, WaitTileAnimation
dw NULL, WaitTileAnimation
- dw NULL, NextTileFrame8
+ dw NULL, StandingTileFrame8
dw NULL, DoneTileAnimation
; 0xfc047
@@ -62,7 +62,7 @@
dw NULL, AnimateFlowerTile
dw NULL, WaitTileAnimation
dw NULL, WaitTileAnimation
- dw NULL, NextTileFrame8
+ dw NULL, StandingTileFrame8
dw NULL, DoneTileAnimation
; 0xfc073
@@ -77,7 +77,7 @@
dw NULL, AnimateFlowerTile
dw VTiles2 tile $14, AnimateWaterTile
dw NULL, TileAnimationPalette
- dw NULL, NextTileFrame8
+ dw NULL, StandingTileFrame8
dw NULL, DoneTileAnimation
; 0xfc0a3
@@ -93,7 +93,7 @@
dw WhirlpoolFrames3, AnimateWhirlpoolTile
dw WhirlpoolFrames4, AnimateWhirlpoolTile
dw NULL, WaitTileAnimation
- dw NULL, NextTileFrame8
+ dw NULL, StandingTileFrame8
dw NULL, DoneTileAnimation
; 0xfc0d7
@@ -136,7 +136,7 @@
dw NULL, WaitTileAnimation
dw NULL, WaitTileAnimation
dw NULL, WaitTileAnimation
- dw NULL, NextTileFrame8
+ dw NULL, StandingTileFrame8
dw NULL, DoneTileAnimation
; 0xfc15f
@@ -147,7 +147,7 @@
dw NULL, WaitTileAnimation
dw NULL, SafariFountainAnim1
dw NULL, WaitTileAnimation
- dw NULL, NextTileFrame8
+ dw NULL, StandingTileFrame8
dw NULL, DoneTileAnimation
; 0xfc17f
@@ -239,7 +239,7 @@
dw SproutPillarTilePointer4, AnimateSproutPillarTile
dw SproutPillarTilePointer1, AnimateSproutPillarTile
dw SproutPillarTilePointer2, AnimateSproutPillarTile
- dw NULL, NextTileFrame
+ dw NULL, StandingTileFrame
dw NULL, WaitTileAnimation
dw NULL, WaitTileAnimation
dw NULL, WaitTileAnimation
@@ -302,7 +302,7 @@
ret
; fc2ff
-NextTileFrame8: ; fc2ff
+StandingTileFrame8: ; fc2ff
ld a, [TileAnimationTimer]
inc a
and a, 7
@@ -806,7 +806,7 @@
; fc673
-NextTileFrame: ; fc673
+StandingTileFrame: ; fc673
ld hl, TileAnimationTimer
inc [hl]
ret
@@ -958,7 +958,7 @@
jr z, .color2
.color1
- ld hl, wMapPals + $1a ; pal 3 color 1
+ ld hl, UnknBGPals + $1a ; pal 3 color 1
ld a, [hli]
ld [rBGPD], a
ld a, [hli]
@@ -966,7 +966,7 @@
jr .end
.color0
- ld hl, wMapPals + $18 ; pal 3 color 0
+ ld hl, UnknBGPals + $18 ; pal 3 color 0
ld a, [hli]
ld [rBGPD], a
ld a, [hli]
@@ -974,7 +974,7 @@
jr .end
.color2
- ld hl, wMapPals + $1c ; pal 3 color 2
+ ld hl, UnknBGPals + $1c ; pal 3 color 2
ld a, [hli]
ld [rBGPD], a
ld a, [hli]
@@ -1011,11 +1011,11 @@
ld a, [hVBlankCounter]
and %00000010
jr nz, .bit1set
- ld hl, wMapPals + $20 ; pal 4 color 0
+ ld hl, UnknBGPals + $20 ; pal 4 color 0
jr .okay
.bit1set
- ld hl, wMapPals + $22 ; pal 4 color 2
+ ld hl, UnknBGPals + $22 ; pal 4 color 2
.okay
ld a, [hli]
--- a/vram.asm
+++ b/vram.asm
@@ -11,3 +11,4 @@
VTiles5:: ds $800
VBGMap2:: ds $400
VBGMap3:: ds $400
+VRAM_End::
--- a/wram.asm
+++ b/wram.asm
@@ -145,6 +145,18 @@
\1TrainerEnd::
endm
+mailmsg: MACRO
+\1Message:: ds MAIL_MSG_LENGTH
+\1MessageEnd:: ds 1
+\1Author:: ds PLAYER_NAME_LENGTH
+\1AuthorNationality:: ds 2
+\1AuthorID:: ds 2
+\1Species:: ds 1
+\1Type:: ds 1
+\1End::
+endm
+
+
INCLUDE "vram.asm"
SECTION "Stack", WRAM0
@@ -299,7 +311,7 @@
wc2cc:: ds 1
wc2cd:: ds 1
-wc2ce:: ds 1
+wSpriteUpdatesEnabled:: ds 1
wc2cf:: ds 1
wc2d0:: ds 4
wc2d4:: ds 1
@@ -319,22 +331,26 @@
ds 1
wc2de:: ds 1
-wc2df:: ds 3
+wc2df:: ds 1
+ ds 2
wMovementPerson:: ds 1
wMovementDataPointer:: ds 3 ; dba
wc2e6:: ds 4
wc2ea:: ds 1
+wc2eb::
wMovementPointer:: ds 2 ; c2eb
ds 3
-wc2f0:: ds 1
-wc2f1:: ds 1
-wc2f2:: ds 1
-wc2f3:: ds 1
-wc2f4:: ds 1
-wc2f5:: ds 1
-wc2f6:: ds 1
-wc2f7:: ds 1
-wc2f8:: ds 1
+
+wTempObjectCopyMapObjectIndex:: ds 1 ; c2f0
+wTempObjectCopySprite:: ds 1 ; c2f1
+wTempObjectCopySpriteVTile:: ds 1 ; c2f2
+wTempObjectCopyPalette:: ds 1 ; c2f3
+wTempObjectCopyMovement:: ds 1 ; c2f4
+wTempObjectCopyRange:: ds 1 ; c2f5
+wTempObjectCopyX:: ds 1 ; c2f6
+wTempObjectCopyY:: ds 1 ; c2f7
+wTempObjectCopyRadius:: ds 1 ; c2f8
+
ds 1
TileDown:: ; c2fa
@@ -357,10 +373,10 @@
ds 1
-SECTION "PARTY ICONS", WRAM0 [$c300]
+SECTION "c300", WRAM0 [$c300]
; wc300 - wc313 is a 10x2 dictionary.
-wDict_c300:: ds 10 * 2
- ds wDict_c300 - @
+wSpriteAnimDict:: ds 10 * 2
+ ds wSpriteAnimDict - @
wc300:: ds 1
wc301:: ds 1
wc302:: ds 1
@@ -380,22 +396,54 @@
wc311:: ds 1
wc312:: ds 1
wc313:: ds 1
-; wPartyMonMenuIconAnims::
+wSpriteAnimationStructs::
+
+sprite_anim_struct: MACRO
+\1Index:: ds 1 ; 0
+\1Sprite01:: ds 1 ; 1
+\1AnimSeqID:: ds 1 ; 2
+\1TileID:: ds 1 ; 3
+\1XCoord:: ds 1 ; 4
+\1YCoord:: ds 1 ; 5
+\1XOffset:: ds 1 ; 6
+\1YOffset:: ds 1 ; 7
+\1FrameTimer:: ds 1 ; 8
+\1Sprite09:: ds 1 ; 9
+\1FrameIndex:: ds 1 ; a
+\1Sprite0b:: ds 1
+\1Sprite0c:: ds 1
+\1Sprite0d:: ds 1
+\1Sprite0e:: ds 1
+\1Sprite0f:: ds 1
+ENDM
+
; Field 0: Index
; Fields 1-3: Loaded from Unknown_8d1c4
-wc314:: ds 16 ; c314
-wc324:: ds 16 ; c324
-wc334:: ds 16 ; c334
-wc344:: ds 16 ; c344
-wc354:: ds 16 ; c354
-wc364:: ds 16 ; c364
-wc374:: ds 16 ; c374
-wc384:: ds 16 ; c384
-wc394:: ds 16 ; c394
-wc3a4:: ds 8 ; c3a4
-wc3ac:: ds 8 ; c3ac
-; wPartyMonMenuIconAnimsEnd::
-wc3b4:: ds 1 ; something to do with wc314
+wc314::
+SpriteAnim1:: sprite_anim_struct SpriteAnim1
+wc324::
+SpriteAnim2:: sprite_anim_struct SpriteAnim2
+wc334::
+SpriteAnim3:: sprite_anim_struct SpriteAnim3
+wc344::
+SpriteAnim4:: sprite_anim_struct SpriteAnim4
+wc354::
+SpriteAnim5:: sprite_anim_struct SpriteAnim5
+wc364::
+SpriteAnim6:: sprite_anim_struct SpriteAnim6
+wc374::
+SpriteAnim7:: sprite_anim_struct SpriteAnim7
+wc384::
+SpriteAnim8:: sprite_anim_struct SpriteAnim8
+wc394::
+SpriteAnim9:: sprite_anim_struct SpriteAnim9
+wc3a4::
+SpriteAnim10:: sprite_anim_struct SpriteAnim10
+wSpriteAnimationStructsEnd::
+ ds -8
+wc3ac:: ds 8 ; c3ac
+wSpriteAnimCount::
+wc3b4:: ds 1
wc3b5:: ds 1
CurIcon:: ; c3b6
@@ -411,6 +459,8 @@
wc3be:: ds 1
wc3bf:: ds 1
wc3c0:: ds 1
+wSpriteAnimsEnd::
+
wc3c1:: ds 11
wc3cc:: ds 1
wc3cd:: ds 31
@@ -494,7 +544,8 @@
ds 1
wEnemyTrainerItem1:: ds 1
wEnemyTrainerItem2:: ds 1
-wc652:: ds 4
+wEnemyTrainerBaseReward:: ds 1
+wEnemyTrainerAIFlags:: ds 3
wc656::
OTName:: ds NAME_LENGTH ; c656
@@ -640,8 +691,7 @@
EnemyDamageTaken:: ; c684
ds 2
-wc686:: ds 2
-wc688:: ds 1
+wBattleReward:: ds 3
wKickCounter::
wPresentPower:: ds 1
wc68a::
@@ -671,7 +721,26 @@
ds 1
PlayerSAtkLevel:: ; c6cf
ds 1
+
+trademon: MACRO
+\1Species:: ds 1 ; wc6d0 | wc702
+\1SpeciesName:: ds PKMN_NAME_LENGTH ; wc6d1 | wc703
+\1Nickname:: ds PKMN_NAME_LENGTH ; wc6dc | wc70e
+\1SenderName:: ds NAME_LENGTH ; wc6e7 | wc719
+\1OTName:: ds NAME_LENGTH ; wc6f2 | wc724
+\1DVs:: ds 2 ; wc6fd | wc72f
+\1ID:: ds 2 ; wc6ff | wc731
+\1CaughtData:: ds 1 ; wc701 | wc733
+\1End::
+ENDM
+
+wPlayerTrademon:: trademon wPlayerTrademon
+wOTTrademon:: trademon wOTTrademon
+
+ ds wPlayerTrademon - @
+
wc6d0::
+wPokedexDataStart::
PlayerSDefLevel:: ; c6d0
ds 1
wc6d1::
@@ -871,12 +940,19 @@
wPlayerRageCounter:: ds 1
wEnemyRageCounter:: ds 1
wc72d:: ds 1 ; if 0 then PrintButItFailed
+wc72e::
wPlayerTrappingMove:: ds 1
+wc72f::
wEnemyTrappingMove:: ds 1
+wc730::
wPlayerWrapCount:: ds 1
+wc731::
wEnemyWrapCount:: ds 1
+wc732::
wPlayerCharging:: ds 1
-wEnemyCharging:: ds 1
+wEnemyCharging::
+wc733:: ds 1
+wTradeAnimPointer::
wc734::
BattleEnded:: ; c734
ds 1
@@ -883,10 +959,13 @@
wWildMonMoves::
wc735:: ds 1
+wLinkPlayer1Name:: ds NAME_LENGTH
+wLinkPlayer2Name:: ds NAME_LENGTH
+ ds wLinkPlayer1Name - @
wc736:: ds 3
wWildMonPP::
wc739:: ds 4
-wc73d:: ds 1
+wAmuletCoin:: ds 1
wc73e:: ds 1
wPlayerJustGotFrozen:: ds 1
wEnemyJustGotFrozen:: ds 1
@@ -906,8 +985,8 @@
wc7d1:: ds 1
wc7d2:: ds 1
wc7d3:: ds 1
-wc7d4:: ds 1
-wc7d5:: ds 1
+wc7d4:: ds 1 ; Index of the topmost visible item in a scrolling menu
+wc7d5:: ds 1 ; Which row the cursor is at in a scrolling menu (0-6)
wc7d6:: ds 1
wc7d7:: ds 1
wc7d8:: ds 1
@@ -925,8 +1004,14 @@
wc7e4:: ds 1
IF DEF(CRYSTAL11)
wPokedexStatus::
+ELSE
+wPokedexDataEnd::
ENDC
- ds 3
+ ds 1
+IF DEF(CRYSTAL11)
+wPokedexDataEnd::
+ENDC
+ ds 2
wMiscEnd::
@@ -934,12 +1019,12 @@
SECTION "Overworld Map", WRAM0 [$c800]
-wc800::
OverworldMap:: ; c800
-; too lazy to reconcile these labels
-; ds 1300
+ ds 1300
+OverworldMapEnd::
+ ds OverworldMap - @
- ds 1
+wc800:: ds 1
wc801:: ds 1
wc802:: ds 1
wc803:: ds 4
@@ -951,6 +1036,8 @@
wc821:: ds 15
wc830:: ds 16
wc840:: ds 16
+wMysteryGiftTrainerData:: ds (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 2
+ ds wMysteryGiftTrainerData - @
wc850:: ds 16
wc860:: ds 16
wc870:: ds 16
@@ -963,9 +1050,9 @@
wc8e0:: ds 16
wc8f0:: ds 16
wc900:: ds 1
-wc901:: ds 1
-wc902:: ds 1
-wc903:: ds 12
+wMysteryGiftPartnerID:: ds 2
+wMysteryGiftPartnerName:: ds NAME_LENGTH
+wc90e:: ds 1
wc90f:: ds 1
wc910:: ds 1
wc911:: ds 1
@@ -1071,11 +1158,8 @@
wccb5:: ds 3
wccb8:: ds 1
wccb9:: ds 1
-wccba:: ds 90
-OverworldMapEnd::
+wccba:: ds 102
- ds 12
-
SECTION "Video", WRAM0
CreditsPos::
BGMapBuffer:: ; cd20
@@ -1214,9 +1298,10 @@
wcf42:: ds 2
wcf44:: ds 1
wcf45:: ds 12
-wcf51:: ds 1
-wcf52:: ds 4
-wcf56:: ds 1
+; addresses dealing with serial comms
+wOtherPlayerLinkMode:: ds 1
+wOtherPlayerLinkAction:: ds 4
+wPlayerLinkAction:: ds 1
wcf57:: ds 4
wcf5b:: ds 1
wcf5c:: ds 1
@@ -1306,8 +1391,8 @@
wcf9b:: ds 3
wcf9e:: ds 3
wMenuData2End::
+wMenuData3::
wcfa1:: ds 1
-
wcfa2:: ds 1
wcfa3:: ds 1
wcfa4:: ds 1
@@ -1315,6 +1400,7 @@
wcfa6:: ds 1 ; dynamic menu flags?
wcfa7:: ds 1
wcfa8:: ds 1
+wMenuData3End::
MenuSelection2:: ds 1
wcfaa:: ds 1
wcfab:: ds 1
@@ -1380,7 +1466,7 @@
; bit 7: battle scene off/on
ds 1
-wcfcd:: ds 1
+wSaveFileExists:: ds 1
TextBoxFrame:: ; cfce
; bits 0-2: textbox frame 0-7
@@ -1420,6 +1506,22 @@
wd000:: ds 1
DefaultSpawnpoint::
wd001:: ds 1
+
+wTempMail:: mailmsg wTempMail
+ ds wTempMail - @
+
+wSeerAction:: ds 1
+wSeerNickname:: ds PKMN_NAME_LENGTH
+wSeerCaughtLocation:: ds 17
+wSeerTimeOfDay:: ds NAME_LENGTH
+wSeerOTName:: ds NAME_LENGTH
+wSeerOTNameGrammar:: ds 1
+wSeerCaughtLevelString:: ds 4
+wSeerCaughtLevel:: ds 1
+wSeerCaughtData:: ds 1
+wSeerCaughtGender:: ds 1
+ ds wSeerAction - @
+
wd002::
PhoneScriptBank::
LuckyNumberDigit1Buffer::
@@ -1426,6 +1528,7 @@
wCurrentRadioLine::
wMovementBufferCount::
wMartItem1BCD::
+wBugContestFirstPlacePersonID::
ds 1
wd003::
LuckyNumberDigit2Buffer::
@@ -1432,11 +1535,13 @@
PhoneCallerLo::
wNextRadioLine::
wMovementBufferPerson::
+wBugContestFirstPlaceMon::
ds 1
wd004::
LuckyNumberDigit3Buffer::
PhoneCallerHi::
wRadioTextDelay::
+wBugContestFirstPlaceScore::
ds 1
wd005::
LuckyNumberDigit4Buffer::
@@ -1445,18 +1550,24 @@
wMartItem2BCD::
ds 1
wd006::
+wMobileParticipant1Nickname::
LuckyNumberDigit5Buffer::
EndFlypoint:: ; d006
wOaksPkmnTalkSegmentCounter::
+wBugContestSecondPlacePersonID::
ds 1
wd007::
MovementBuffer:: ; d007
+wBugContestSecondPlaceMon::
ds 1
wMartItem3BCD::
+wBugContestSecondPlaceScore::
wd008:: ds 2
+wBugContestThirdPlacePersonID::
wd00a:: ds 1
+wBugContestThirdPlaceMon::
wMartItem4BCD::
wd00b:: ds 1
@@ -1464,22 +1575,31 @@
wRadioTextEnd::
ds wRadioText - @
+wMobileParticipant2Nickname::
+wBugContestThirdPlaceScore::
wd00c:: ds 1
wd00d:: ds 1
wMartItem5BCD::
+wBugContestTempPersonID::
wd00e:: ds 1
+wBugContestTempMon::
wd00f:: ds 1
+wBugContestTempScore::
wd010:: ds 1
wMartItem6BCD::
wd011:: ds 1
+wMobileParticipant3Nickname::
wd012:: ds 1
wd013:: ds 1
wMartItem7BCD::
wd014:: ds 2
+wBugContestWinnerName::
wd016:: ds 1
wMartItem8BCD::
wd017:: ds 1
+ ds wd00d - @
+wd00d_MonOT:: ds NAME_LENGTH
wd018_Mon:: party_struct wd018_Mon
ds wd018_Mon - @
@@ -1526,11 +1646,13 @@
wd041::
EngineBuffer4::
+wTempTrainerHeader::
wTempTrainerEventFlagLo::
ds 1
wTempTrainerEventFlagHi::
MovementAnimation:: ; d042
+EngineBuffer5::
ds 1
wTempTrainerClass::
@@ -1557,10 +1679,12 @@
wLossTextPointer:: ds 2
wScriptAfterPointer::
wd04b:: ds 2
-wd04d:: ds 1
+wRunningTrainerBattleScript:: ds 1
MenuItemsListEnd::
+wTempTrainerHeaderEnd::
wd04e:: ds 2
wOaksPkmnTalkPkmnNameBuffer::
+wd050_MonNick::
wd050:: ds PKMN_NAME_LENGTH +- 1
wd05a:: ds 12
wd066:: ds 10
@@ -1588,8 +1712,9 @@
CurMoveNum:: ; d0d5
ds 1
-wd0d6:: ds 1
+wLastPocket:: ds 1
wd0d7:: ds 1
+wPartyMenuCursor::
wd0d8:: ds 1
wItemsPocketCursor:: ds 1
wKeyItemsPocketCursor:: ds 1
@@ -1596,16 +1721,22 @@
wBallsPocketCursor:: ds 1
wTMHMPocketCursor:: ds 1
wd0dd:: ds 2
-wd0df:: ds 1
-wd0e0:: ds 1
-wd0e1:: ds 1
-wd0e2:: ds 1
+wItemsPocketScrollPosition:: ds 1
+wKeyItemsPocketScrollPosition:: ds 1
+wBallsPocketScrollPosition:: ds 1
+wTMHMPocketScrollPosition:: ds 1
wMoveSwapBuffer::
+wSwitchMon::
wd0e3:: ds 1
-wd0e4:: ds 4
+wMenuScrollPosition:: ds 4
wQueuedScriptBank:: ds 1
wQueuedScriptAddr:: ds 2
wd0eb:: ds 1
+wFieldMoveSucceeded::
+wPlayerAction::
+; 0 - use move
+; 1 - use item
+; 2 - switch
wd0ec:: ds 1
VramState:: ; d0ed
@@ -1617,15 +1748,19 @@
wBattleResult:: ds 1
wd0ef:: ds 1
-wd0f0::
-CurMart:: ; d0f0
- ; ds 16
- ds 1
-wd0f1:: ds 1
-wd0f2:: ds 14
+CurMart:: ds 16
+ ds CurMart - @
+wd0f0:: ds 1
+wd0f1::
+wCurMessageIndex:: ds 1
+wd0f2::
+wMailboxCount:: ds 1
+wMailboxItems:: ds MAILBOX_CAPACITY
+wMailboxEnd:: ds 1 ; d1fe
+ ds 2
CurMartEnd::
-wd100:: ds 1
+wd100:: ds 1
wd101:: ds 1
wd102:: ds 1
wd103:: ds 1
@@ -1694,14 +1829,16 @@
wd14c:: ds 1 ; used in FollowNotExact
wd14d:: ds 1 ; used in FollowNotExact
-wd14e:: ds 1
-wd14f:: ds 1
-wd150:: ds 1
-wd151:: ds 1
-wd152:: ds 1
-wd153:: ds 1
-UsedSprites:: ds 64
+; Player movement
+wPlayerStepVectorX:: ds 1
+wPlayerStepVectorY:: ds 1
+wPlayerStepFlags:: ds 1
+wPlayerStepDirection:: ds 1
+
+wBGMapAnchor:: ds 2
+
+UsedSprites:: ds 64 ; d154
UsedSpritesEnd::
ds UsedSprites - @
@@ -1930,7 +2067,7 @@
UnownLetter:: ; d234
ds 1
-wd235:: ds 1
+wMoveSelectionMenuType:: ds 1
CurBaseData:: ; d236
BaseDexNo:: ; d236
@@ -1994,9 +2131,9 @@
wCurTMHM::
wTypeMatchup::
wd265:: ds 1
-wd266:: ds 1
-wd267:: ds 1
-wd268:: ds 1
+wFailedToFlee:: ds 1
+wNumFleeAttempts:: ds 1
+wMonTriedToEvolve:: ds 1
TimeOfDay:: ; d269
ds 1
@@ -2049,6 +2186,11 @@
ScriptFlags2:: ; d435
ds 1
ScriptFlags3:: ; d436
+; bit 0: count steps
+; bit 1: xy triggers
+; bit 2: warps and connections
+; bit 4: wild encounters
+; bit 5: unknown
ds 1
ScriptMode:: ; d437
@@ -2060,9 +2202,13 @@
ScriptPos:: ; d43a
ds 2
-wd43c:: ds 1
-wd43d:: ds 16
-
+wScriptStackSize:: ds 1
+wScriptStackBA1:: ds 3
+wScriptStackBA2:: ds 3
+wScriptStackBA3:: ds 3
+wScriptStackBA4:: ds 3
+wScriptStackBA5:: ds 3
+ ds 1
ScriptDelay:: ; d44d
ds 1
@@ -2075,7 +2221,7 @@
wd454:: ds 1
ds 4
-wd459:: ds 2
+wBattleScriptFlags:: ds 2
wPlayerSpriteSetupFlags:: ds 1
wMapReentryScriptQueueFlag:: ds 1 ; MemScriptFlag
wMapReentryScriptBank:: ds 1 ; MemScriptBank
@@ -2153,12 +2299,12 @@
ds 1
wObjectFollow_Leader:: ds 1
wObjectFollow_Follower:: ds 1
-wd4cf:: ds 1
+wCenteredObject:: ds 1
wd4d0:: ds 1
wd4d1:: ds 1
ds 4
-ObjectStructs::
+ObjectStructs:: ; d4d6
object_struct: MACRO
\1Struct::
\1Sprite:: ds 1
@@ -2169,24 +2315,32 @@
\1Palette:: ds 1
\1Walking:: ds 1
\1Direction:: ds 1
-\1Object09:: ds 1
+\1StepType:: ds 1
\1StepDuration:: ds 1
\1Action:: ds 1
-\1Object12:: ds 1
+\1ObjectStepFrame:: ds 1
\1Facing:: ds 1
-\1StandingTile:: ds 1
-\1NextTile:: ds 1
-\1MapX:: ds 1
-\1MapY:: ds 1
+\1NextTile:: ds 1 ; collision
+\1StandingTile:: ds 1 ; collision
\1NextMapX:: ds 1
\1NextMapY:: ds 1
- ds 3
+\1MapX:: ds 1
+\1MapY:: ds 1
+\1ObjectInitX:: ds 1
+\1ObjectInitY:: ds 1
+\1Radius:: ds 1
\1SpriteX:: ds 1
\1SpriteY:: ds 1
\1SpriteXOffset:: ds 1
\1SpriteYOffset:: ds 1
- ds 6
+\1MovementByteIndex:: ds 1
+\1Object28:: ds 1
+\1Object29:: ds 1
+\1Object30:: ds 1
+\1Object31:: ds 1
+\1Range:: ds 1
ds 7
+\1StructEnd::
ENDM
object_struct Player
@@ -2202,10 +2356,12 @@
object_struct Object10
object_struct Object11
object_struct Object12
+ObjectStructsEnd:: ; d6de
-wd6de::
- ds $40
+wCmdQueue:: ds CMDQUEUE_CAPACITY * CMDQUEUE_ENTRY_SIZE
+ ds $28
+MapObjects:: ; d71e
map_object: MACRO
\1Object::
\1ObjectStructID:: ds 1
@@ -2223,7 +2379,6 @@
ds 2
endm
-MapObjects:: ; d71e
map_object Player
map_object Map1
map_object Map2
@@ -2240,6 +2395,7 @@
map_object Map13
map_object Map14
map_object Map15
+MapObjectsEnd::
wObjectMasks:: ds NUM_OBJECTS ; d81e
@@ -2262,17 +2418,32 @@
wSecretID:: ds 1
wd84b:: ds 1
StatusFlags:: ; d84c
+ ; 0 - pokedex
+ ; 1 - unown dex
+ ; 2 -
+ ; 3 - pokerus
+ ; 4 - rocket signal
+ ; 5 - wild encounters on/off
+ ; 6 - hall of fame
+ ; 7 - bug contest on
ds 1
+
StatusFlags2:: ; d84d
+ ; 0 - rockets
+ ; 1 -
+ ; 2 - bug contest timer
+ ; 3 -
+ ; 4 - bike shop call
+ ; 5 - pokerus
+ ; 6 - berry juice?
+ ; 7 - rockets in mahogany
ds 1
Money:: ; d84e
ds 3
-wd851::
wMomsMoney:: ; d851
ds 3
-wBankOfMomMode::
wMomSavingMoney:: ; d854
ds 1
@@ -2325,8 +2496,8 @@
PlayerState:: ; d95d
ds 1
-wd95e:: ds 2
-wd960:: ds 2
+wHallOfFameCount:: ds 2
+wTradeFlags:: ds 2
MooMooBerries:: ; d962
ds 1 ; how many berries fed to MooMoo
UndergroundSwitchPositions:: ; d963
@@ -2487,8 +2658,8 @@
wCurrMapWarpCount:: ds 1
wCurrMapWarpHeaderPointer:: ds 1
wdbfd:: ds 1
-wCurrentMapXYTriggerCount:: ds 1
-wCurrentMapXYTriggerHeaderPointer:: ds 1
+wCurrentNextMapXYTriggerCount:: ds 1
+wCurrentNextMapXYTriggerHeaderPointer:: ds 1
wdc00:: ds 1
wCurrentMapSignpostCount:: ds 1
wCurrentMapSignpostHeaderPointer::
@@ -2791,7 +2962,7 @@
wPokeAnimStructEnd::
-SECTION "WRAM 3", WRAMX, BANK [3]
+SECTION "Battle Tower", WRAMX, BANK [3]
w3_d000:: ; d000
ds $80
@@ -2804,8 +2975,17 @@
BT_OTTrainer:: battle_tower_struct BT_OT
; d1e0
ds $20
-BT_TrainerTextIndex::
- ds $600
+; d200
+BT_TrainerTextIndex:: ds 2
+w3_d202:: battle_tower_struct w3_d202
+w3_d2e2:: battle_tower_struct w3_d2e2
+w3_d3c2:: battle_tower_struct w3_d3c2
+w3_d4a2:: battle_tower_struct w3_d4a2
+w3_d582:: battle_tower_struct w3_d582
+w3_d662:: battle_tower_struct w3_d662
+w3_d742:: battle_tower_struct w3_d742
+; d822
+ ds -$22
wBTChoiceOfLvlGroup::
w3_d800:: ds $400
@@ -2816,10 +2996,10 @@
SECTION "GBC Video", WRAMX, BANK [5]
; 8 4-color palettes
-wMapPals:: ds 8 * 8 ; d000
-Unkn2Pals:: ds 8 * 8 ; d040
-BGPals:: ds 8 * 8 ; d080
-OBPals:: ds 8 * 8 ; d0c0
+UnknBGPals:: ds 8 palettes ; d000
+UnknOBPals:: ds 8 palettes ; d040
+BGPals:: ds 8 palettes ; d080
+OBPals:: ds 8 palettes ; d0c0
LYOverrides:: ; d100
ds SCREEN_HEIGHT_PX
@@ -2893,7 +3073,8 @@
w6_d000:: ds $400
w6_d400:: ds $200
-w6_d600:: ds $600
+w6_d600:: ds $200
+w6_d800::
INCLUDE "sram.asm"
--
⑨