diff options
Diffstat (limited to 'engine')
35 files changed, 1887 insertions, 1671 deletions
diff --git a/engine/breeding/egg.asm b/engine/breeding/egg.asm index 0573e2ecd..cfe4d9a1c 100755 --- a/engine/breeding/egg.asm +++ b/engine/breeding/egg.asm @@ -677,9 +677,9 @@ Hatch_UpdateFrontpicBGMapCenter: ; 17254 (5:7254) ld a, b ld [hBGMapAddress + 1], a ld a, c - ld [hFillBox], a + ld [hGraphicStartTile], a lb bc, 7, 7 - predef FillBox + predef PlaceGraphic pop af call Hatch_LoadFrontpicPal call SetPalettes diff --git a/engine/compose_mail.asm b/engine/compose_mail.asm deleted file mode 100755 index 64165a13a..000000000 --- a/engine/compose_mail.asm +++ /dev/null @@ -1,517 +0,0 @@ -_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, wSpriteAnimDict - ld [hli], a - ld [hl], a - - ; init mail icon - depixel 3, 2 - ld a, SPRITE_ANIM_INDEX_00 - call _InitSpriteAnimStruct - - ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID - 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 DmgToCgbObjPal0 - 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 PlaySpriteAnimationsAndDelayFrame - call .Update - call DelayFrame - and a - ret - -.exit_mail - callab ClearSpriteAnims - 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, SPRITEANIMSTRUCT_FRAMESET_ID - add hl, bc - ld a, [hl] - ld hl, SPRITEANIMSTRUCT_0E - 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, SPRITEANIMSTRUCT_0C - add hl, bc - ld [hl], $9 - ld hl, SPRITEANIMSTRUCT_0D - 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 - -; called from engine/sprite_anims.asm -Function120c1: ; 120c1 (4:60c1) - call Function1210c - ld hl, SPRITEANIMSTRUCT_0D - add hl, bc - ld a, [hl] - ld e, a - swap e - ld hl, SPRITEANIMSTRUCT_YOFFSET - 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, SPRITEANIMSTRUCT_0E - add hl, bc - add [hl] - ld hl, SPRITEANIMSTRUCT_FRAMESET_ID - add hl, bc - ld [hl], a - ld hl, SPRITEANIMSTRUCT_0C - add hl, bc - ld l, [hl] - ld h, 0 - add hl, de - ld a, [hl] - ld hl, SPRITEANIMSTRUCT_XOFFSET - 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, SPRITEANIMSTRUCT_0C - 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, SPRITEANIMSTRUCT_0C - add hl, bc - ld [hl], a - ret - -.left - call Function1218b - and a - jr nz, .asm_12159 - ld hl, SPRITEANIMSTRUCT_0C - 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, SPRITEANIMSTRUCT_0C - add hl, bc - ld [hl], a - ret - -.down - ld hl, SPRITEANIMSTRUCT_0D - add hl, bc - ld a, [hl] - cp $5 - jr nc, .asm_12175 - inc [hl] - ret - -.asm_12175 - ld [hl], $0 - ret - -.up - ld hl, SPRITEANIMSTRUCT_0D - 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, SPRITEANIMSTRUCT_0D - add hl, bc - ld a, [hl] - cp $5 - jr nz, .asm_121aa - ld hl, SPRITEANIMSTRUCT_0C - 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 diff --git a/engine/debug.asm b/engine/debug.asm index df5dbee56..d69cd254b 100755 --- a/engine/debug.asm +++ b/engine/debug.asm @@ -401,10 +401,10 @@ Function81adb: ; 81adb ld de, VTiles2 tile $31 predef GetBackpic ld a, $31 - ld [hFillBox], a + ld [hGraphicStartTile], a hlcoord 2, 4 lb bc, 6, 6 - predef FillBox + predef PlaceGraphic ld a, [wd003] and a jr z, .asm_81b66 @@ -433,10 +433,10 @@ Function81adb: ; 81adb callab GetTrainerPic xor a ld [TempEnemyMonSpecies], a - ld [hFillBox], a + ld [hGraphicStartTile], a hlcoord 2, 3 lb bc, 7, 7 - predef FillBox + predef PlaceGraphic .asm_81ba9 ld a, $1 diff --git a/engine/dummy_game.asm b/engine/dummy_game.asm index 4e2e189da..116ad9439 100755 --- a/engine/dummy_game.asm +++ b/engine/dummy_game.asm @@ -109,7 +109,7 @@ endr .spawn_object depixel 6, 3, 4, 4 - ld a, SPRITE_ANIM_INDEX_0C + ld a, SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR call _InitSpriteAnimStruct ld a, 5 ld [wDummyGameNumberTriesRemaining], a diff --git a/engine/engine_flags.asm b/engine/engine_flags.asm index d8be9c494..2b441bab4 100644 --- a/engine/engine_flags.asm +++ b/engine/engine_flags.asm @@ -108,7 +108,7 @@ ENDM engine_flag wMomSavingMoney, 0 ; mom saving money ; $8 engine_flag wMomSavingMoney, 7 ; dst - engine_flag wdc39, 0 ; unused, possibly related to a 2-day timer + engine_flag wUnusedTwoDayTimerOn, 0 ; unused, possibly related to a 2-day timer engine_flag StatusFlags, 0 ; pokedex engine_flag StatusFlags, 1 ; unown dex diff --git a/engine/events.asm b/engine/events.asm index 9b4062aea..9b701be8a 100644 --- a/engine/events.asm +++ b/engine/events.asm @@ -124,8 +124,8 @@ StartMap: ; 96724 call ClearJoypad EnterMap: ; 9673e xor a - ld [wd453], a - ld [wd454], a + ld [wXYComparePointer], a + ld [wXYComparePointer + 1], a call SetUpFiveStepWildEncounterCooldown callba RunMapSetupScript call DisableEvents @@ -378,7 +378,7 @@ CheckTileEvent: ; 96874 ret .warp_tile - ld a, [PlayerNextTile] + ld a, [PlayerStandingTile] call CheckPitTile jr nz, .not_pit ld a, PLAYEREVENT_FALL @@ -454,7 +454,7 @@ DoMapTrigger: ; 968ec ld h, [hl] ld l, a rept 4 - add hl,de + add hl, de endr call GetMapScriptHeaderBank @@ -1031,7 +1031,7 @@ DoPlayerEvent: ; 96beb ld b, 0 ld hl, PlayerEventScriptPointers rept 3 - add hl,bc + add hl, bc endr ld a, [hli] ld [ScriptBank], a diff --git a/engine/events_2.asm b/engine/events_2.asm index 9d2763ac8..ec5026e40 100644 --- a/engine/events_2.asm +++ b/engine/events_2.asm @@ -161,7 +161,7 @@ CanUseSweetScent:: ; 97cfd jr nc, .no .ice_check - ld a, [PlayerNextTile] + ld a, [PlayerStandingTile] call CheckIceTile jr z, .no scf @@ -235,7 +235,7 @@ ChooseWildEncounter_BugContest:: ; 97d31 ; 97d64 TryWildEncounter_BugContest: ; 97d64 - ld a, [PlayerNextTile] + ld a, [PlayerStandingTile] call CheckSuperTallGrassTile ld b, 40 percent jr z, .ok diff --git a/engine/events_3.asm b/engine/events_3.asm index 57554d3f1..55dc59a1a 100755 --- a/engine/events_3.asm +++ b/engine/events_3.asm @@ -288,7 +288,7 @@ CheckForHiddenItems: ; b8172 add SCREEN_HEIGHT / 4 ld [wd1ec], a ; Get the pointer for the first signpost header in the map... - ld hl, wdc02 + ld hl, wCurrentMapSignpostHeaderPointer ld a, [hli] ld h, [hl] ld l, a diff --git a/engine/evolve.asm b/engine/evolve.asm index 4a959529a..b04a245e0 100755 --- a/engine/evolve.asm +++ b/engine/evolve.asm @@ -6,7 +6,6 @@ EvolvePokemon: ; 421d8 ld c, a ld b, SET_FLAG call EvoFlagAction - EvolveAfterBattle: ; 421e6 xor a ld [wMonTriedToEvolve], a @@ -19,7 +18,7 @@ EvolveAfterBattle: ; 421e6 push hl -CheckForEvolvablePokemon: ; 421f5 +EvolveAfterBattle_MasterLoop ld hl, CurPartyMon inc [hl] @@ -28,7 +27,7 @@ CheckForEvolvablePokemon: ; 421f5 inc hl ld a, [hl] cp $ff - jp z, Evolution_ReturnToMap + jp z, .ReturnToMap ld [Buffer1], a @@ -40,7 +39,7 @@ CheckForEvolvablePokemon: ; 421f5 call EvoFlagAction ld a, c and a - jp z, CheckForEvolvablePokemon + jp z, EvolveAfterBattle_MasterLoop ld a, [Buffer1] dec a @@ -63,7 +62,7 @@ endr .loop ld a, [hli] and a - jr z, CheckForEvolvablePokemon + jr z, EvolveAfterBattle_MasterLoop ld b, a @@ -324,7 +323,7 @@ endr push hl ld l, e ld h, d - jp CheckForEvolvablePokemon + jp EvolveAfterBattle_MasterLoop ; 423f8 .dont_evolve_1 @@ -334,12 +333,10 @@ endr .dont_evolve_3 inc hl jp .loop -; 423fe -; dummy pop +; XXX pop hl - -Evolution_ReturnToMap: ; 423ff +.ReturnToMap pop de pop bc pop hl @@ -393,7 +390,7 @@ CancelEvolution: ; 42454 call PrintText call ClearTileMap pop hl - jp CheckForEvolvablePokemon + jp EvolveAfterBattle_MasterLoop ; 42461 IsMonHoldingEverstone: ; 42461 diff --git a/engine/healmachineanim.asm b/engine/healmachineanim.asm index 57f03a8df..b4e0be1cf 100755 --- a/engine/healmachineanim.asm +++ b/engine/healmachineanim.asm @@ -19,7 +19,7 @@ HealMachineAnim: ; 12324 .DoJumptableFunctions: ; 1233e xor a - ld [wd1ec], a + ld [Buffer3], a .jumpable_loop ld a, [Buffer1] ld e, a @@ -31,10 +31,10 @@ endr ld a, [hli] ld h, [hl] ld l, a - ld a, [wd1ec] + ld a, [Buffer3] ld e, a inc a - ld [wd1ec], a + ld [Buffer3], a add hl, de ld a, [hl] cp 5 @@ -81,14 +81,14 @@ endr .PC_LoadBallsOntoMachine: ; 12393 ld hl, Sprites + $80 - ld de, .PC_ElmsLab_TileMap + ld de, .PC_ElmsLab_OAM call .PlaceHealingMachineTile call .PlaceHealingMachineTile jr .LoadBallsOntoMachine .HOF_LoadBallsOntoMachine: ; 123a1 ld hl, Sprites + $80 - ld de, .HOF_TileMap + ld de, .HOF_OAM .LoadBallsOntoMachine: ; 123a7 ld a, [PartyCount] @@ -126,28 +126,28 @@ endr ret ; 123dc -.PC_ElmsLab_TileMap: ; 123dc - db $20, $22, $7c, $16 - db $20, $26, $7c, $16 - db $26, $20, $7d, $16 - db $26, $28, $7d, $36 - db $2b, $20, $7d, $16 - db $2b, $28, $7d, $36 - db $30, $20, $7d, $16 - db $30, $28, $7d, $36 +.PC_ElmsLab_OAM: ; 123dc + dsprite 4, 0, 4, 2, $7c, $16 + dsprite 4, 0, 4, 6, $7c, $16 + dsprite 4, 6, 4, 0, $7d, $16 + dsprite 4, 6, 5, 0, $7d, $36 ; xflip + dsprite 5, 3, 4, 0, $7d, $16 + dsprite 5, 3, 5, 0, $7d, $36 ; xflip + dsprite 6, 0, 4, 0, $7d, $16 + dsprite 6, 0, 5, 0, $7d, $36 ; xflip ; 123fc .HealMachineGFX: ; 123fc INCBIN "gfx/unknown/0123fc.2bpp" ; 1241c -.HOF_TileMap: ; 1241c - db $3c, $51, $7d, $16 - db $3c, $56, $7d, $16 - db $3b, $4d, $7d, $16 - db $3b, $5a, $7d, $16 - db $39, $49, $7d, $16 - db $39, $5d, $7d, $16 +.HOF_OAM: ; 1241c + dsprite 7, 4, 10, 1, $7d, $16 + dsprite 7, 4, 10, 6, $7d, $16 + dsprite 7, 3, 9, 5, $7d, $16 + dsprite 7, 3, 11, 2, $7d, $16 + dsprite 7, 1, 9, 1, $7d, $16 + dsprite 7, 1, 11, 5, $7d, $16 ; 12434 .LoadPalettes: ; 12434 @@ -241,10 +241,10 @@ endr .PlaceHealingMachineTile: ; 124a3 push bc ld a, [Buffer1] - lb bc, $10, $20 + bcpixel 2, 4 cp $1 ; ElmsLab jr z, .okay - lb bc, $00, $00 + bcpixel 0, 0 .okay ld a, [de] diff --git a/engine/intro_menu.asm b/engine/intro_menu.asm index 46c573483..6ece8e384 100755 --- a/engine/intro_menu.asm +++ b/engine/intro_menu.asm @@ -318,7 +318,7 @@ InitializeNPCNames: ; 5ce9 InitializeWorld: ; 5d23 call ShrinkPlayer - callba GetSpawnCoord + callba SpawnPlayer callba _InitializeStartDay ret ; 5d33 @@ -947,10 +947,10 @@ Intro_PrepTrainerPic: ; 619c ld de, VTiles2 callba GetTrainerPic xor a - ld [hFillBox], a + ld [hGraphicStartTile], a hlcoord 6, 4 lb bc, 7, 7 - predef FillBox + predef PlaceGraphic ret ; 61b4 @@ -959,10 +959,10 @@ ShrinkFrame: ; 61b4 ld c, $31 predef DecompressPredef xor a - ld [hFillBox], a + ld [hGraphicStartTile], a hlcoord 6, 4 lb bc, 7, 7 - predef FillBox + predef PlaceGraphic ret ; 61cd diff --git a/engine/link.asm b/engine/link.asm index a4d23762b..e425ce4d8 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -427,7 +427,7 @@ Gen2ToGen2LinkComms: ; 28177 or $3 ld [hl], a ld hl, OTPlayerName - ld de, OTName + ld de, OTClassName ld bc, NAME_LENGTH call CopyBytes call ReturnToMapFromSubmenu @@ -578,7 +578,7 @@ FixDataForLinkTransfer: ; 28434 rept 3 ld [hli], a endr - ld b, wc6d3 - (wMisc + 3) + ld b, $c8 xor a .loop3 ld [hli], a diff --git a/engine/map_setup.asm b/engine/map_setup.asm index 50ab18335..8fa768c87 100644 --- a/engine/map_setup.asm +++ b/engine/map_setup.asm @@ -272,7 +272,7 @@ MapSetupCommands: ; 15440 dba GetCoordOfUpperLeftCorner ; 1f dba RestoreFacingAfterWarp ; 20 dba SpawnInFacingDown ; 21 - dba GetSpawnCoord ; 22 + dba SpawnPlayer ; 22 dba RefreshPlayerCoords ; 23 dba DelayClearingOldSprites ; 24 dba DelayLoadingNewSprites ; 25 diff --git a/engine/mon_icons.asm b/engine/mon_icons.asm index f579d0cd5..5e41cd4a1 100755 --- a/engine/mon_icons.asm +++ b/engine/mon_icons.asm @@ -18,16 +18,16 @@ Function8e83f: ; 8e83f push hl push de push bc - call Function8e849 + call .LoadIcon pop bc pop de pop hl ret ; 8e849 -Function8e849: ; 8e849 +.LoadIcon: ; 8e849 ld d, 0 - ld hl, .dw + ld hl, .Jumptable rept 2 add hl, de endr @@ -38,23 +38,23 @@ endr ; 8e854 -.dw: ; 8e854 (23:6854) +.Jumptable: ; 8e854 (23:6854) dw Function8e8d5 ; init dw Function8e961 dw Function8e97d - dw Function8e99a + dw Trade_LoadMonIconGFX dw Function8e898 dw Mobile_InitPartyMenuBGPal71 - dw Function8e862 + dw .GetPartyMenuMonIcon -Function8e862: ; 8e862 (23:6862) +.GetPartyMenuMonIcon: ; 8e862 (23:6862) call InitPartyMenuIcon - call Function8e86c + call .GetPartyMonItemGFX call SetPartyMonIconAnimSpeed ret -Function8e86c: ; 8e86c (23:686c) +.GetPartyMonItemGFX: ; 8e86c (23:686c) push bc ld a, [hObjectStructIndexBuffer] ld hl, PartyMon1Item @@ -63,22 +63,23 @@ Function8e86c: ; 8e86c (23:686c) pop bc ld a, [hl] and a - jr z, .asm_8e890 + jr z, .no_item push hl push bc ld d, a callab ItemIsMail pop bc pop hl - jr c, .asm_8e88e + jr c, .not_mail ld a, $6 - jr .asm_8e892 -.asm_8e88e + jr .got_tile +.not_mail ld a, $5 - ; jr .asm_8e892 -.asm_8e890 + ; jr .got_tile + +.no_item ld a, $4 -.asm_8e892 +.got_tile ld hl, SPRITEANIMSTRUCT_FRAMESET_ID add hl, bc ld [hl], a @@ -246,7 +247,7 @@ Function8e97d: ; 8e97d (23:697d) ld [hl], SPRITE_ANIM_SEQ_NULL ret -Function8e99a: ; 8e99a (23:699a) +Trade_LoadMonIconGFX: ; 8e99a (23:699a) ld a, [wd265] call ReadMonMenuIcon ld [CurIcon], a diff --git a/engine/money.asm b/engine/money.asm index d5d9b5c5c..aa1d7b696 100755 --- a/engine/money.asm +++ b/engine/money.asm @@ -86,7 +86,7 @@ CompareFunds: ; 1600d jr .skip_carry .set_carry - ld a, TRUE + ld a, 1 and a scf .skip_carry diff --git a/engine/namingscreen.asm b/engine/namingscreen.asm index f36e9b5eb..aac059a18 100755 --- a/engine/namingscreen.asm +++ b/engine/namingscreen.asm @@ -3,14 +3,15 @@ _NamingScreen: ; 0x116b7 call NamingScreen call ReturnToMapWithSpeechTextbox ret + ; 0x116c1 NamingScreen: ; 116c1 - ld hl, wc6d0 + ld hl, wNamingScreenDestinationPointer ld [hl], e inc hl ld [hl], d - ld hl, wc6d4 + ld hl, wNamingScreenType ld [hl], b ld hl, Options ld a, [hl] @@ -24,11 +25,11 @@ NamingScreen: ; 116c1 push af ld a, $1 ld [hInMenu], a - call Function116f8 + call .SetUpNamingScreen call DelayFrame -.asm_116e5 - call Function11915 - jr nc, .asm_116e5 +.loop + call NamingScreenJoypadLoop + jr nc, .loop pop af ld [hInMenu], a pop af @@ -37,31 +38,33 @@ NamingScreen: ; 116c1 ld [Options], a call ClearJoypad ret + ; 116f8 -Function116f8: ; 116f8 +.SetUpNamingScreen: ; 116f8 call ClearBGPalettes ld b, SCGB_08 call GetSGBLayout call DisableLCD - call Function11c51 - call Function118a8 + call LoadNamingScreenGFX + call NamingScreen_InitText ld a, $e3 ld [rLCDC], a - call Function1171d + call .GetNamingScreenSetup call WaitBGMap call WaitTop call SetPalettes - call Function11be0 + call NamingScreen_InitNameEntry ret + ; 1171d -Function1171d: ; 1171d - ld a, [wc6d4] +.GetNamingScreenSetup: ; 1171d + ld a, [wNamingScreenType] and 7 ld e, a ld d, 0 - ld hl, Jumptable_1172e + ld hl, .Jumptable rept 2 add hl, de endr @@ -69,21 +72,20 @@ endr ld h, [hl] ld l, a jp [hl] -; 1172e - - -Jumptable_1172e: ; 1172e (4:572e) - dw Function1173e - dw Function1178d - dw Function117ae - dw Function117d1 - dw Function117f5 - dw Function1182c - dw Function1173e - dw Function1173e +; 1172e -Function1173e: ; 1173e (4:573e) +.Jumptable: ; 1172e (4:572e) + dw .Pokemon + dw .Player + dw .Rival + dw .Mom + dw .Box + dw .Tomodachi + dw .Pokemon + dw .Pokemon + +.Pokemon: ; 1173e (4:573e) ld a, [CurPartySpecies] ld [wd265], a ld hl, Function8e83f @@ -97,180 +99,192 @@ Function1173e: ; 1173e (4:573e) call PlaceString ld l, c ld h, b - ld de, Strings_11780 + ld de, .NicknameStrings call PlaceString inc de hlcoord 5, 4 call PlaceString callba GetGender - jr c, .asm_1177c - ld a, $ef - jr nz, .asm_11778 - ld a, $f5 -.asm_11778 + jr c, .genderless + ld a, "♂" + jr nz, .place_gender + ld a, "♀" +.place_gender hlcoord 1, 2 ld [hl], a -.asm_1177c - call Function1187b +.genderless + call .StoreMonIconParams ret + ; 11780 (4:5780) -Strings_11780: ; 11780 +.NicknameStrings: ; 11780 db "'S@" db "NICKNAME?@" + ; 1178d -Function1178d: ; 1178d (4:578d) +.Player: ; 1178d (4:578d) callba GetPlayerIcon - call Function11847 + call .LoadSprite hlcoord 5, 2 - ld de, String_117a3 + ld de, .PlayerNameString call PlaceString - call Function11882 + call .StoreSpriteIconParams ret + ; 117a3 (4:57a3) -String_117a3: ; 117a3 +.PlayerNameString: ; 117a3 db "YOUR NAME?@" + ; 117ae -Function117ae: ; 117ae (4:57ae) +.Rival: ; 117ae (4:57ae) ld de, SilverSpriteGFX ld b, BANK(SilverSpriteGFX) - call Function11847 + call .LoadSprite hlcoord 5, 2 - ld de, String_117c3 + ld de, .RivalNameString call PlaceString - call Function11882 + call .StoreSpriteIconParams ret + ; 117c3 (4:57c3) -String_117c3: ; 117c3 +.RivalNameString: ; 117c3 db "RIVAL'S NAME?@" + ; 117d1 -Function117d1: ; 117d1 (4:57d1) +.Mom: ; 117d1 (4:57d1) ld de, MomSpriteGFX ld b, BANK(MomSpriteGFX) - call Function11847 + call .LoadSprite hlcoord 5, 2 - ld de, String_117e6 + ld de, .MomNameString call PlaceString - call Function11882 + call .StoreSpriteIconParams ret + ; 117e6 (4:57e6) -String_117e6: ; 117e6 +.MomNameString: ; 117e6 db "MOTHER'S NAME?@" + ; 117f5 -Function117f5: ; 117f5 (4:57f5) +.Box: ; 117f5 (4:57f5) ld de, PokeBallSpriteGFX ld hl, VTiles0 tile $00 lb bc, BANK(PokeBallSpriteGFX), $4 call Request2bpp xor a - ld hl, wc300 + ld hl, wSpriteAnimDict ld [hli], a ld [hl], a depixel 4, 4, 4, 0 - ld a, SPRITE_ANIM_INDEX_WALK_CYCLE + ld a, SPRITE_ANIM_INDEX_RED_WALK call _InitSpriteAnimStruct ld hl, SPRITEANIMSTRUCT_FRAMESET_ID add hl, bc ld [hl], $0 hlcoord 5, 2 - ld de, String_11822 + ld de, .BoxNameString call PlaceString - call Function11889 + call .StoreBoxIconParams ret + ; 11822 (4:5822) -String_11822: ; 11822 +.BoxNameString: ; 11822 db "BOX NAME?@" + ; 1182c -Function1182c: ; 1182c (4:582c) +.Tomodachi: ; 1182c (4:582c) hlcoord 3, 2 - ld de, String_11839 + ld de, .oTomodachi_no_namae_sutoringu call PlaceString - call Function11882 + call .StoreSpriteIconParams ret + ; 11839 (4:5839) -String_11839: ; 11839 +.oTomodachi_no_namae_sutoringu: ; 11839 db "おともだち の なまえは?@" + ; 11847 -Function11847: ; 11847 (4:5847) +.LoadSprite: ; 11847 (4:5847) push de ld hl, VTiles0 tile $00 ld c, $4 push bc call Request2bpp pop bc - ld hl, $c0 + ld hl, 12 tiles add hl, de ld e, l ld d, h ld hl, VTiles0 tile $04 call Request2bpp xor a - ld hl, wc300 + ld hl, wSpriteAnimDict ld [hli], a ld [hl], a pop de - ld b, SPRITE_ANIM_INDEX_WALK_CYCLE + ld b, SPRITE_ANIM_INDEX_RED_WALK ld a, d - cp $7a - jr nz, .asm_11873 + cp KrisSpriteGFX / $100 + jr nz, .not_kris ld a, e - cp $40 - jr nz, .asm_11873 - ld b, SPRITE_ANIM_INDEX_1E -.asm_11873 + cp KrisSpriteGFX % $100 + jr nz, .not_kris + ld b, SPRITE_ANIM_INDEX_BLUE_WALK +.not_kris ld a, b depixel 4, 4, 4, 0 call _InitSpriteAnimStruct ret -Function1187b: ; 1187b (4:587b) - ld a, $a +.StoreMonIconParams: ; 1187b (4:587b) + ld a, PKMN_NAME_LENGTH - 1 hlcoord 5, 6 - jr Function11890 + jr .StoreParams -Function11882: ; 11882 (4:5882) - ld a, $7 +.StoreSpriteIconParams: ; 11882 (4:5882) + ld a, PLAYER_NAME_LENGTH - 1 hlcoord 5, 6 - jr Function11890 + jr .StoreParams -Function11889: ; 11889 (4:5889) - ld a, $8 +.StoreBoxIconParams: ; 11889 (4:5889) + ld a, BOX_NAME_LENGTH - 1 hlcoord 5, 4 - jr Function11890 + jr .StoreParams -Function11890: ; 11890 (4:5890) - ld [wc6d3], a +.StoreParams: ; 11890 (4:5890) + ld [wNamingScreenMaxNameLength], a ld a, l - ld [wc6d8], a + ld [wNamingScreenStringEntryCoord], a ld a, h - ld [wc6d9], a + ld [wNamingScreenStringEntryCoord + 1], a ret - -Function1189c: ; 1189c +NamingScreen_IsTargetBox: ; 1189c push bc push af - ld a, [wc6d4] + ld a, [wNamingScreenType] sub $3 ld b, a pop af dec b pop bc ret + ; 118a8 -Function118a8: ; 118a8 +NamingScreen_InitText: ; 118a8 call WaitTop hlcoord 0, 0 ld bc, SCREEN_WIDTH * SCREEN_HEIGHT @@ -278,31 +292,31 @@ Function118a8: ; 118a8 call ByteFill hlcoord 1, 1 lb bc, 6, 18 - call Function1189c - jr nz, .asm_118c4 + call NamingScreen_IsTargetBox + jr nz, .not_box lb bc, 4, 18 -.asm_118c4 +.not_box call ClearBox ld de, NameInputUpper -Function118ca: ; 118ca - call Function1189c - jr nz, .asm_118d5 +NamingScreen_ApplyTextInputMode: ; 118ca + call NamingScreen_IsTargetBox + jr nz, .not_box ld hl, BoxNameInputLower - NameInputLower add hl, de ld d, h ld e, l -.asm_118d5 +.not_box push de hlcoord 1, 8 lb bc, 7, 18 - call Function1189c - jr nz, .asm_118e7 + call NamingScreen_IsTargetBox + jr nz, .not_box_2 hlcoord 1, 6 lb bc, 9, 18 -.asm_118e7 +.not_box_2 call ClearBox hlcoord 1, 16 lb bc, 1, 18 @@ -310,41 +324,42 @@ Function118ca: ; 118ca pop de hlcoord 2, 8 ld b, $5 - call Function1189c - jr nz, .asm_11903 + call NamingScreen_IsTargetBox + jr nz, .row hlcoord 2, 6 ld b, $6 -.asm_11903 +.row ld c, $11 -.asm_11905 +.col ld a, [de] ld [hli], a inc de dec c - jr nz, .asm_11905 + jr nz, .col push de - ld de, $17 + ld de, 2 * SCREEN_WIDTH - $11 add hl, de pop de dec b - jr nz, .asm_11903 + jr nz, .row ret + ; 11915 -Function11915: ; 11915 +NamingScreenJoypadLoop: ; 11915 call JoyTextDelay ld a, [wJumptableIndex] bit 7, a - jr nz, .asm_11930 - call Function11968 + jr nz, .quit + call .RunJumptable callba PlaySpriteAnimationsAndDelayFrame - call Function11940 + call .UpdateStringEntry call DelayFrame and a ret -.asm_11930 +.quit callab ClearSpriteAnims call ClearSprites xor a @@ -352,24 +367,25 @@ Function11915: ; 11915 ld [hSCY], a scf ret + ; 11940 -Function11940: ; 11940 +.UpdateStringEntry: ; 11940 xor a ld [hBGMapMode], a hlcoord 1, 5 - call Function1189c - jr nz, .asm_1194e + call NamingScreen_IsTargetBox + jr nz, .got_coords hlcoord 1, 3 -.asm_1194e +.got_coords lb bc, 1, 18 call ClearBox - ld hl, wc6d0 + ld hl, wNamingScreenDestinationPointer ld e, [hl] inc hl ld d, [hl] - ld hl, wc6d8 + ld hl, wNamingScreenStringEntryCoord ld a, [hli] ld h, [hl] ld l, a @@ -377,13 +393,14 @@ Function11940: ; 11940 ld a, $1 ld [hBGMapMode], a ret + ; 11968 -Function11968: ; 11968 +.RunJumptable: ; 11968 ld a, [wJumptableIndex] ld e, a ld d, $0 - ld hl, Jumptable_11977 + ld hl, .Jumptable rept 2 add hl, de endr @@ -391,26 +408,25 @@ endr ld h, [hl] ld l, a jp [hl] -; 11977 - -Jumptable_11977: ; 11977 (4:5977) - dw Function1197b - dw Function119a1 +; 11977 +.Jumptable: ; 11977 (4:5977) + dw .InitCursor + dw .ReadButtons -Function1197b: ; 1197b (4:597b) +.InitCursor: ; 1197b (4:597b) depixel 10, 3 - call Function1189c - jr nz, .asm_11985 + call NamingScreen_IsTargetBox + jr nz, .got_cursor_position ld d, 8 * 8 -.asm_11985 +.got_cursor_position ld a, SPRITE_ANIM_INDEX_02 call _InitSpriteAnimStruct ld a, c - ld [wc6d5], a + ld [wNamingScreenCursorObjectPointer], a ld a, b - ld [wc6d6], a + ld [wNamingScreenCursorObjectPointer + 1], a ld hl, SPRITEANIMSTRUCT_FRAMESET_ID add hl, bc ld a, [hl] @@ -421,7 +437,7 @@ Function1197b: ; 1197b (4:597b) inc [hl] ret -Function119a1: ; 119a1 (4:59a1) +.ReadButtons: ; 119a1 (4:59a1) ld hl, hJoyPressed ; $ffa7 ld a, [hl] and A_BUTTON @@ -438,19 +454,19 @@ Function119a1: ; 119a1 (4:59a1) ret .a - call Function11a0b + call .GetCursorPosition cp $1 jr z, .select cp $2 jr z, .b cp $3 - jr z, .asm_119eb - call Function11c11 - call Function11b14 + jr z, .end + call NamingScreen_GetLastCharacter + call NamingScreen_TryAddCharacter ret nc .start - ld hl, wc6d5 + ld hl, wNamingScreenCursorObjectPointer ld c, [hl] inc hl ld b, [hl] @@ -460,17 +476,17 @@ Function119a1: ; 119a1 (4:59a1) ld hl, SPRITEANIMSTRUCT_0D add hl, bc ld [hl], $4 - call Function1189c + call NamingScreen_IsTargetBox ret nz inc [hl] ret .b - call Function11bbc + call NamingScreen_DeleteCharacter ret -.asm_119eb - call Function11bf7 +.end + call NamingScreen_StoreEntry ld hl, wJumptableIndex set 7, [hl] ret @@ -480,56 +496,59 @@ Function119a1: ; 119a1 (4:59a1) ld a, [hl] xor 1 ld [hl], a - jr z, .asm_11a04 + jr z, .upper ld de, NameInputLower - call Function118ca + call NamingScreen_ApplyTextInputMode ret -.asm_11a04 +.upper ld de, NameInputUpper - call Function118ca + call NamingScreen_ApplyTextInputMode ret -Function11a0b: ; 11a0b (4:5a0b) - ld hl, wc6d5 +.GetCursorPosition: ; 11a0b (4:5a0b) + ld hl, wNamingScreenCursorObjectPointer ld c, [hl] inc hl ld b, [hl] -Function11a11: ; 11a11 (4:5a11) +NamingScreen_GetCursorPosition: ; 11a11 (4:5a11) ld hl, SPRITEANIMSTRUCT_0D add hl, bc ld a, [hl] push bc ld b, $4 - call Function1189c - jr nz, .asm_11a1f + call NamingScreen_IsTargetBox + jr nz, .not_box inc b -.asm_11a1f +.not_box cp b pop bc - jr nz, .asm_11a39 + jr nz, .not_bottom_row ld hl, SPRITEANIMSTRUCT_0C add hl, bc ld a, [hl] cp $3 - jr c, .asm_11a33 + jr c, .case_switch cp $6 - jr c, .asm_11a36 + jr c, .delete ld a, $3 ret -.asm_11a33 + +.case_switch ld a, $1 ret -.asm_11a36 + +.delete ld a, $2 ret -.asm_11a39 + +.not_bottom_row xor a ret -Function11a3b: ; 11a3b (4:5a3b) - call Function11a8b +NamingScreen_AnimateCursor: ; 11a3b (4:5a3b) + call .GetDPad ld hl, SPRITEANIMSTRUCT_0D add hl, bc ld a, [hl] @@ -539,17 +558,17 @@ Function11a3b: ; 11a3b (4:5a3b) add hl, bc ld [hl], e ld d, $4 - call Function1189c - jr nz, .asm_11a53 + call NamingScreen_IsTargetBox + jr nz, .ok inc d -.asm_11a53 +.ok cp d - ld de, Unknown_11a79 + ld de, .LetterEntries ld a, $0 - jr nz, .asm_11a60 - ld de, Unknown_11a82 + jr nz, .ok2 + ld de, .CaseDelEnd ld a, $1 -.asm_11a60 +.ok2 ld hl, SPRITEANIMSTRUCT_0E add hl, bc add [hl] @@ -566,15 +585,18 @@ Function11a3b: ; 11a3b (4:5a3b) add hl, bc ld [hl], a ret + ; 11a79 (4:5a79) -Unknown_11a79: ; 11a79 +.LetterEntries: ; 11a79 db $00, $10, $20, $30, $40, $50, $60, $70, $80 -Unknown_11a82: ; 11a82 + +.CaseDelEnd: ; 11a82 db $00, $00, $00, $30, $30, $30, $60, $60, $60 + ; 11a8b -Function11a8b: ; 11a8b (4:5a8b) +.GetDPad: ; 11a8b (4:5a8b) ld hl, hJoyLast ld a, [hl] and D_UP @@ -589,8 +611,9 @@ Function11a8b: ; 11a8b (4:5a8b) and D_RIGHT jr nz, .right ret + .right - call Function11a11 + call NamingScreen_GetCursorPosition and a jr nz, .asm_11ab7 ld hl, SPRITEANIMSTRUCT_0C @@ -600,9 +623,11 @@ Function11a8b: ; 11a8b (4:5a8b) jr nc, .asm_11ab4 inc [hl] ret + .asm_11ab4 ld [hl], $0 ret + .asm_11ab7 cp $3 jr nz, .asm_11abc @@ -615,8 +640,9 @@ Function11a8b: ; 11a8b (4:5a8b) add hl, bc ld [hl], a ret + .left - call Function11a11 + call NamingScreen_GetCursorPosition and a jr nz, .asm_11ad8 ld hl, SPRITEANIMSTRUCT_0C @@ -626,9 +652,11 @@ Function11a8b: ; 11a8b (4:5a8b) jr z, .asm_11ad5 dec [hl] ret + .asm_11ad5 ld [hl], $8 ret + .asm_11ad8 cp $1 jr nz, .asm_11ade @@ -644,24 +672,28 @@ endr add hl, bc ld [hl], a ret + .down ld hl, SPRITEANIMSTRUCT_0D add hl, bc ld a, [hl] - call Function1189c + call NamingScreen_IsTargetBox jr nz, .asm_11af9 cp $5 jr nc, .asm_11aff inc [hl] ret + .asm_11af9 cp $4 jr nc, .asm_11aff inc [hl] ret + .asm_11aff ld [hl], $0 ret + .up ld hl, SPRITEANIMSTRUCT_0D add hl, bc @@ -670,67 +702,70 @@ endr jr z, .asm_11b0c dec [hl] ret + .asm_11b0c ld [hl], $4 - call Function1189c + call NamingScreen_IsTargetBox ret nz inc [hl] ret -Function11b14: ; 11b14 (4:5b14) - ld a, [wc6d7] - -Function11b17: ; 11b17 (4:5b17) - ld a, [wc6d3] +NamingScreen_TryAddCharacter: ; 11b14 (4:5b14) + ld a, [wNamingScreenLastCharacter] ; lost +MailComposition_TryAddCharacter: ; 11b17 (4:5b17) + ld a, [wNamingScreenMaxNameLength] ld c, a - ld a, [wc6d2] + ld a, [wNamingScreenCurrNameLength] cp c ret nc - ld a, [wc6d7] + ld a, [wNamingScreenLastCharacter] -Function11b23: ; 11b23 - call Function11bd0 +NamingScreen_LoadNextCharacter: ; 11b23 + call NamingScreen_GetTextCursorPosition ld [hl], a -Function11b27: ; 11b27 - ld hl, wc6d2 +NamingScreen_AdvanceCursor_CheckEndOfString: ; 11b27 + ld hl, wNamingScreenCurrNameLength inc [hl] - call Function11bd0 + call NamingScreen_GetTextCursorPosition ld a, [hl] - cp $50 - jr z, .asm_11b37 + cp "@" + jr z, .end_of_string ld [hl], $f2 and a ret -.asm_11b37 + +.end_of_string scf ret + ; 11b39 (4:5b39) -Function11b39: ; 11b39 - ld a, [wc6d2] +; XXX + ld a, [wNamingScreenCurrNameLength] and a ret z push hl - ld hl, wc6d2 + ld hl, wNamingScreenCurrNameLength dec [hl] - call Function11bd0 + call NamingScreen_GetTextCursorPosition ld c, [hl] pop hl -.asm_11b48 +.loop ld a, [hli] cp $ff - jr z, Function11b27 + jr z, NamingScreen_AdvanceCursor_CheckEndOfString cp c - jr z, .asm_11b53 + jr z, .done inc hl - jr .asm_11b48 + jr .loop -.asm_11b53 +.done ld a, [hl] - jr Function11b23 + jr NamingScreen_LoadNextCharacter + ; 11b56 Dakutens: ; Dummied out @@ -748,15 +783,16 @@ Handakutens: ; Dummied out db "はぱ", "ひぴ", "ふぷ", "へぺ", "ほぽ" db "ハパ", "ヒピ", "フプ", "へぺ", "ホポ" db $ff + ; 11bbc -Function11bbc: ; 11bbc (4:5bbc) - ld hl, wc6d2 +NamingScreen_DeleteCharacter: ; 11bbc (4:5bbc) + ld hl, wNamingScreenCurrNameLength ld a, [hl] and a ret z dec [hl] - call Function11bd0 + call NamingScreen_GetTextCursorPosition ld [hl], $f2 inc hl ld a, [hl] @@ -765,64 +801,65 @@ Function11bbc: ; 11bbc (4:5bbc) ld [hl], $eb ret -Function11bd0: ; 11bd0 (4:5bd0) +NamingScreen_GetTextCursorPosition: ; 11bd0 (4:5bd0) push af - ld hl, wc6d0 + ld hl, wNamingScreenDestinationPointer ld a, [hli] ld h, [hl] ld l, a - ld a, [wc6d2] + ld a, [wNamingScreenCurrNameLength] ld e, a ld d, 0 add hl, de pop af ret + ; 11be0 -Function11be0: ; 11be0 -; load $f2, ($eb * [wc6d3]), $50 into the dw address at wc6d0 - ld hl, wc6d0 +NamingScreen_InitNameEntry: ; 11be0 +; load $f2, ($eb * [wNamingScreenMaxNameLength]), $50 into the dw address at wNamingScreenDestinationPointer + ld hl, wNamingScreenDestinationPointer ld a, [hli] ld h, [hl] ld l, a - ld [hl], "·" + ld [hl], $f2 inc hl - ld a, [wc6d3] + ld a, [wNamingScreenMaxNameLength] dec a ld c, a - ld a, "→" + ld a, $eb .loop ld [hli], a dec c jr nz, .loop ld [hl], "@" ret -; 11bf7 +; 11bf7 -Function11bf7: ; 11bf7 (4:5bf7) - ld hl, wc6d0 +NamingScreen_StoreEntry: ; 11bf7 (4:5bf7) + ld hl, wNamingScreenDestinationPointer ld a, [hli] ld h, [hl] ld l, a - ld a, [wc6d3] + ld a, [wNamingScreenMaxNameLength] ld c, a -.asm_11c01 +.loop ld a, [hl] cp $eb - jr z, .asm_11c0a + jr z, .terminator cp $f2 - jr nz, .asm_11c0c -.asm_11c0a - ld [hl], $50 -.asm_11c0c + jr nz, .not_terminator +.terminator + ld [hl], "@" +.not_terminator inc hl dec c - jr nz, .asm_11c01 + jr nz, .loop ret -Function11c11: ; 11c11 (4:5c11) - ld hl, wc6d5 +NamingScreen_GetLastCharacter: ; 11c11 (4:5c11) + ld hl, wNamingScreenCursorObjectPointer ld c, [hl] inc hl ld b, [hl] @@ -849,51 +886,51 @@ Function11c11: ; 11c11 (4:5c11) srl a ld d, a hlcoord 0, 0 - ld bc, $14 -.asm_11c43 + ld bc, SCREEN_WIDTH +.loop ld a, d and a - jr z, .asm_11c4b + jr z, .done add hl, bc dec d - jr .asm_11c43 -.asm_11c4b + jr .loop + +.done add hl, de ld a, [hl] - ld [wc6d7], a + ld [wNamingScreenLastCharacter], a ret - -Function11c51: ; 11c51 +LoadNamingScreenGFX: ; 11c51 call ClearSprites callab ClearSpriteAnims call LoadStandardFont call LoadFontsExtra - ld de, GFX_11e65 + ld de, NamingScreenGFX_MiddleLine ld hl, VTiles1 tile $6b - lb bc, BANK(GFX_11e65), 1 + lb bc, BANK(NamingScreenGFX_MiddleLine), 1 call Get1bpp - ld de, GFX_11e6d + ld de, NamingScreenGFX_UnderLine ld hl, VTiles1 tile $72 - lb bc, BANK(GFX_11e6d), 1 + lb bc, BANK(NamingScreenGFX_UnderLine), 1 call Get1bpp ld de, VTiles2 tile $60 - ld hl, GFX_11cb7 - ld bc, $10 - ld a, BANK(GFX_11cb7) + ld hl, NamingScreenGFX_Border + ld bc, 1 tiles + ld a, BANK(NamingScreenGFX_Border) call FarCopyBytes ld de, VTiles0 tile $7e - ld hl, GFX_11cc7 - ld bc, $20 - ld a, BANK(GFX_11cc7) + ld hl, NamingScreenGFX_Cursor + ld bc, 2 tiles + ld a, BANK(NamingScreenGFX_Cursor) call FarCopyBytes ld a, $5 - ld hl, wc312 + ld hl, wSpriteAnimDict + 9 * 2 ld [hli], a ld [hl], $7e xor a @@ -904,17 +941,18 @@ Function11c51: ; 11c51 ld [wJumptableIndex], a ld [wcf64], a ld [hBGMapMode], a - ld [wc6d2], a + ld [wNamingScreenCurrNameLength], a ld a, $7 ld [hWX], a ret + ; 11cb7 -GFX_11cb7: ; 11cb7 +NamingScreenGFX_Border: ; 11cb7 INCBIN "gfx/unknown/011cb7.2bpp" ; 11cc7 -GFX_11cc7: ; 11cc7 +NamingScreenGFX_Cursor: ; 11cc7 INCBIN "gfx/unknown/011cc7.2bpp" ; 11ce7 @@ -924,6 +962,7 @@ NameInputLower: db "s t u v w x y z " db "× ( ) : ; [ ] <PK> <MN>" db "UPPER DEL END " + BoxNameInputLower: db "a b c d e f g h i" db "j k l m n o p q r" @@ -931,12 +970,14 @@ BoxNameInputLower: db "é 'd 'l 'm 'r 's 't 'v 0" db "1 2 3 4 5 6 7 8 9" db "UPPER DEL END " + NameInputUpper: ; Unreferenced? db "A B C D E F G H I" db "J K L M N O P Q R" db "S T U V W X Y Z " db "- ? ! / . , " db "lower DEL END " + BoxNameInputUpper: db "A B C D E F G H I" db "J K L M N O P Q R" @@ -944,16 +985,542 @@ BoxNameInputUpper: db "× ( ) : ; [ ] <PK> <MN>" db "- ? ! ♂ ♀ / . , &" db "lower DEL END " + ; 11e5d GFX_11e5d: ; ???? INCBIN "gfx/unknown/011e5d.2bpp" ; 11e6d -GFX_11e65: +NamingScreenGFX_MiddleLine: INCBIN "gfx/unknown/011e65.2bpp" ; 11e6d -GFX_11e6d: ; 11e6d +NamingScreenGFX_UnderLine: ; 11e6d INCBIN "gfx/unknown/011e6d.2bpp" ; 11e75 + +_ComposeMailMessage: ; 11e75 (mail?) + ld hl, wNamingScreenDestinationPointer + 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 LoadNamingScreenGFX + ld de, VTiles0 tile $00 + ld hl, .MailIcon + ld bc, 8 tiles + ld a, BANK(.MailIcon) + call FarCopyBytes + xor a + ld hl, wSpriteAnimDict + ld [hli], a + ld [hl], a + + ; init mail icon + depixel 3, 2 + ld a, SPRITE_ANIM_INDEX_00 + call _InitSpriteAnimStruct + + ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID + add hl, bc + ld [hl], $0 + call .InitCharset + ld a, $e3 + ld [rLCDC], a + call .initwNamingScreenMaxNameLength + ld b, SCGB_08 + call GetSGBLayout + call WaitBGMap + call WaitTop + ld a, %11100100 + call DmgToCgbBGPals + ld a, %11100100 + call DmgToCgbObjPal0 + call NamingScreen_InitNameEntry + ld hl, wNamingScreenDestinationPointer + 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 + +.initwNamingScreenMaxNameLength: ; 11f74 (4:5f74) + ld a, MAIL_MSG_LENGTH + 1 + ld [wNamingScreenMaxNameLength], 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 PlaySpriteAnimationsAndDelayFrame + call .Update + call DelayFrame + and a + ret + +.exit_mail + callab ClearSpriteAnims + 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, wNamingScreenDestinationPointer + 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 [wNamingScreenCursorObjectPointer], a + ld a, b + ld [wNamingScreenCursorObjectPointer + 1], a + ld hl, SPRITEANIMSTRUCT_FRAMESET_ID + add hl, bc + ld a, [hl] + ld hl, SPRITEANIMSTRUCT_0E + 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 NamingScreen_PressedA_GetCursorCommand + cp $1 + jr z, .select + cp $2 + jr z, .b + cp $3 + jr z, .finished + call NamingScreen_GetLastCharacter + call MailComposition_TryAddLastCharacter + jr c, .start + ld hl, wNamingScreenCurrNameLength + ld a, [hl] + cp $10 + ret nz + inc [hl] + call NamingScreen_GetTextCursorPosition + ld [hl], $f2 + dec hl + ld [hl], $4e + ret + +.start + ld hl, wNamingScreenCursorObjectPointer + ld c, [hl] + inc hl + ld b, [hl] + ld hl, SPRITEANIMSTRUCT_0C + add hl, bc + ld [hl], $9 + ld hl, SPRITEANIMSTRUCT_0D + add hl, bc + ld [hl], $5 + ret + +.b + call NamingScreen_DeleteCharacter + ld hl, wNamingScreenCurrNameLength + ld a, [hl] + cp $10 + ret nz + dec [hl] + call NamingScreen_GetTextCursorPosition + ld [hl], $f2 + inc hl + ld [hl], $4e + ret + +.finished + call NamingScreen_StoreEntry + 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 + +; called from engine/sprite_anims.asm + +ComposeMail_AnimateCursor: ; 120c1 (4:60c1) + call .GetDPad + ld hl, SPRITEANIMSTRUCT_0D + add hl, bc + ld a, [hl] + ld e, a + swap e + ld hl, SPRITEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], e + cp $5 + ld de, .LetterEntries + ld a, 0 + jr nz, .got_pointer + ld de, .CaseDelEnd + ld a, 1 +.got_pointer + ld hl, SPRITEANIMSTRUCT_0E + add hl, bc + add [hl] + ld hl, SPRITEANIMSTRUCT_FRAMESET_ID + add hl, bc + ld [hl], a + ld hl, SPRITEANIMSTRUCT_0C + add hl, bc + ld l, [hl] + ld h, 0 + add hl, de + ld a, [hl] + ld hl, SPRITEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ret + +; 120f8 (4:60f8) + +.LetterEntries: ; 120f8 + db $00, $10, $20, $30, $40, $50, $60, $70, $80, $90 + +.CaseDelEnd: ; 12102 + db $00, $00, $00, $30, $30, $30, $60, $60, $60, $60 + +; 1210c + +.GetDPad: ; 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 ComposeMail_GetCursorPosition + and a + jr nz, .case_del_done_right + ld hl, SPRITEANIMSTRUCT_0C + add hl, bc + ld a, [hl] + cp $9 + jr nc, .wrap_around_letter_right + inc [hl] + ret + +.wrap_around_letter_right + ld [hl], $0 + ret + +.case_del_done_right + cp $3 + jr nz, .wrap_around_command_right + xor a +.wrap_around_command_right + ld e, a + add a + add e + ld hl, SPRITEANIMSTRUCT_0C + add hl, bc + ld [hl], a + ret + +.left + call ComposeMail_GetCursorPosition + and a + jr nz, .caps_del_done_left + ld hl, SPRITEANIMSTRUCT_0C + add hl, bc + ld a, [hl] + and a + jr z, .wrap_around_letter_left + dec [hl] + ret + +.wrap_around_letter_left + ld [hl], $9 + ret + +.caps_del_done_left + cp $1 + jr nz, .wrap_around_command_left + ld a, $4 +.wrap_around_command_left +rept 2 + dec a +endr + ld e, a + add a + add e + ld hl, SPRITEANIMSTRUCT_0C + add hl, bc + ld [hl], a + ret + +.down + ld hl, SPRITEANIMSTRUCT_0D + add hl, bc + ld a, [hl] + cp $5 + jr nc, .wrap_around_down + inc [hl] + ret + +.wrap_around_down + ld [hl], $0 + ret + +.up + ld hl, SPRITEANIMSTRUCT_0D + add hl, bc + ld a, [hl] + and a + jr z, .wrap_around_up + dec [hl] + ret + +.wrap_around_up + ld [hl], $5 + ret + +NamingScreen_PressedA_GetCursorCommand: ; 12185 (4:6185) + ld hl, wNamingScreenCursorObjectPointer + ld c, [hl] + inc hl + ld b, [hl] + +ComposeMail_GetCursorPosition: ; 1218b (4:618b) + ld hl, SPRITEANIMSTRUCT_0D + add hl, bc + ld a, [hl] + cp $5 + jr nz, .letter + ld hl, SPRITEANIMSTRUCT_0C + add hl, bc + ld a, [hl] + cp $3 + jr c, .case + cp $6 + jr c, .del + ld a, $3 + ret + +.case + ld a, $1 + ret + +.del + ld a, $2 + ret + +.letter + xor a + ret + +MailComposition_TryAddLastCharacter: ; 121ac (4:61ac) + ld a, [wNamingScreenLastCharacter] + jp MailComposition_TryAddCharacter + +; 121b2 (4:61b2) + +; XXX + ld a, [wNamingScreenCurrNameLength] + and a + ret z + cp $11 + jr nz, .asm_121c3 + push hl + ld hl, wNamingScreenCurrNameLength +rept 2 + dec [hl] +endr + jr .asm_121c8 + +.asm_121c3 + push hl + ld hl, wNamingScreenCurrNameLength + dec [hl] + +.asm_121c8 + call NamingScreen_GetTextCursorPosition + ld c, [hl] + pop hl +.asm_121cd + ld a, [hli] + cp $ff + jp z, NamingScreen_AdvanceCursor_CheckEndOfString + cp c + jr z, .asm_121d9 + inc hl + jr .asm_121cd + +.asm_121d9 + ld a, [hl] + jp NamingScreen_LoadNextCharacter + +; 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 diff --git a/engine/npc_movement.asm b/engine/npc_movement.asm index bc270305b..097c62017 100755 --- a/engine/npc_movement.asm +++ b/engine/npc_movement.asm @@ -234,14 +234,14 @@ CheckFacingObject:: ; 6fd9 call CheckCounterTile jr nz, .asm_6ff1 - ld a, [PlayerNextMapX] + ld a, [PlayerStandingMapX] sub d cpl inc a add d ld d, a - ld a, [PlayerNextMapY] + ld a, [PlayerStandingMapY] sub e cpl inc a @@ -482,9 +482,9 @@ IsPersonMovingOffEdgeOfScreen: ; 70ed ; 7113 Function7113: ; unreferenced - ld a, [PlayerNextMapX] + ld a, [PlayerStandingMapX] ld d, a - ld a, [PlayerNextMapY] + ld a, [PlayerStandingMapY] ld e, a ld bc, ObjectStructs xor a diff --git a/engine/npctrade.asm b/engine/npctrade.asm index 7342f8a6c..a8d3b71aa 100755 --- a/engine/npctrade.asm +++ b/engine/npctrade.asm @@ -430,21 +430,22 @@ GetTradeMonNames: ; fce1b NPCTrades: ; fce58 npctrade: MACRO - db \1, \2, \3, \4 - dw \5 - db \6 - dw \7 - db \8, \9, 0 + db \1, \2, \3, \4 ; dialog set, requested mon, offered mon, nickname + db \5, \6 ; dvs + shift + db \6 ; item + dw \7 ; OT ID + db \8, \9, 0 ; OT name, gender requested 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 + npctrade 0, ABRA, MACHOP, "MUSCLE@@@@@", $37, $66, GOLD_BERRY, 37460, "MIKE@@@@@@@", TRADE_EITHER_GENDER + npctrade 0, BELLSPROUT, ONIX, "ROCKY@@@@@@", $96, $66, BITTER_BERRY, 48926, "KYLE@@@@@@@", TRADE_EITHER_GENDER + npctrade 1, KRABBY, VOLTORB, "VOLTY@@@@@@", $98, $88, PRZCUREBERRY, 29189, "TIM@@@@@@@@", TRADE_EITHER_GENDER + npctrade 3, DRAGONAIR, DODRIO, "DORIS@@@@@@", $77, $66, SMOKE_BALL, 00283, "EMY@@@@@@@@", TRADE_FEMALE_ONLY + npctrade 2, HAUNTER, XATU, "PAUL@@@@@@@", $96, $86, MYSTERYBERRY, 15616, "CHRIS@@@@@@", TRADE_EITHER_GENDER + npctrade 3, CHANSEY, AERODACTYL, "AEROY@@@@@@", $96, $66, GOLD_BERRY, 26491, "KIM@@@@@@@@", TRADE_EITHER_GENDER + npctrade 0, DUGTRIO, MAGNETON, "MAGGIE@@@@@", $96, $66, METAL_COAT, 50082, "FOREST@@@@@", TRADE_EITHER_GENDER ; fcf38 diff --git a/engine/phone.asm b/engine/phone.asm index 805f221a7..1a3023bf1 100644 --- a/engine/phone.asm +++ b/engine/phone.asm @@ -651,15 +651,16 @@ Function90380: ; 90380 (24:4380) call GetCallerName ret -Function9038a: ; 9038a (24:438a) +CheckCanDeletePhoneNumber: ; 9038a (24:438a) ld a, c call GetCallerTrainerClass ld a, c + ; and a ret nz ld a, b - cp $1 + cp PHONECONTACT_MOM ret z - cp $4 + cp PHONECONTACT_ELM ret z ld c, $1 ret @@ -776,44 +777,44 @@ phone: MACRO dba \7 ; script 2 ENDM - phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone TRAINER_NONE, PHONECONTACT_MOM, KRISS_HOUSE_1F, 7, MomPhoneScript, 0, UnusedPhoneScript - phone TRAINER_NONE, PHONECONTACT_BIKESHOP, OAKS_LAB, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone TRAINER_NONE, PHONECONTACT_BILL, N_A, 7, BillPhoneScript1, 0, BillPhoneScript2 - phone TRAINER_NONE, PHONECONTACT_ELM, ELMS_LAB, 7, ElmPhoneScript1, 0, ElmPhoneScript2 - phone SCHOOLBOY, JACK1, NATIONAL_PARK, 7, JackPhoneScript1, 7, JackPhoneScript2 - phone POKEFANF, BEVERLY1, NATIONAL_PARK, 7, BeverlyPhoneScript1, 7, BeverlyPhoneScript2 - phone SAILOR, HUEY1, OLIVINE_LIGHTHOUSE_2F, 7, HueyPhoneScript1, 7, HueyPhoneScript2 - phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone COOLTRAINERM, GAVEN3, ROUTE_26, 7, GavenPhoneScript1, 7, GavenPhoneScript2 - phone COOLTRAINERF, BETH1, ROUTE_26, 7, BethPhoneScript1, 7, BethPhoneScript2 - phone BIRD_KEEPER, JOSE2, ROUTE_27, 7, JosePhoneScript1, 7, JosePhoneScript2 - phone COOLTRAINERF, REENA1, ROUTE_27, 7, ReenaPhoneScript1, 7, ReenaPhoneScript2 - phone YOUNGSTER, JOEY1, ROUTE_30, 7, JoeyPhoneScript1, 7, JoeyPhoneScript2 - phone BUG_CATCHER, WADE1, ROUTE_31, 7, WadePhoneScript1, 7, WadePhoneScript2 - phone FISHER, RALPH1, ROUTE_32, 7, RalphPhoneScript1, 7, RalphPhoneScript2 - phone PICNICKER, LIZ1, ROUTE_32, 7, LizPhoneScript1, 7, LizPhoneScript2 - phone HIKER, ANTHONY2, ROUTE_33, 7, AnthonyPhoneScript1, 7, AnthonyPhoneScript2 - phone CAMPER, TODD1, ROUTE_34, 7, ToddPhoneScript1, 7, ToddPhoneScript2 - phone PICNICKER, GINA1, ROUTE_34, 7, GinaPhoneScript1, 7, GinaPhoneScript2 - phone JUGGLER, IRWIN1, ROUTE_35, 7, IrwinPhoneScript1, 7, IrwinPhoneScript2 - phone BUG_CATCHER, ARNIE1, ROUTE_35, 7, ArniePhoneScript1, 7, ArniePhoneScript2 - phone SCHOOLBOY, ALAN1, ROUTE_36, 7, AlanPhoneScript1, 7, AlanPhoneScript2 - phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone LASS, DANA1, ROUTE_38, 7, DanaPhoneScript1, 7, DanaPhoneScript2 - phone SCHOOLBOY, CHAD1, ROUTE_38, 7, ChadPhoneScript1, 7, ChadPhoneScript2 - phone POKEFANM, DEREK1, ROUTE_39, 7, DerekPhoneScript1, 7, DerekPhoneScript2 - phone FISHER, TULLY1, ROUTE_42, 7, TullyPhoneScript1, 7, TullyPhoneScript2 - phone POKEMANIAC, BRENT1, ROUTE_43, 7, BrentPhoneScript1, 7, BrentPhoneScript2 - phone PICNICKER, TIFFANY3, ROUTE_43, 7, TiffanyPhoneScript1, 7, TiffanyPhoneScript2 - phone BIRD_KEEPER, VANCE1, ROUTE_44, 7, VancePhoneScript1, 7, VancePhoneScript2 - phone FISHER, WILTON1, ROUTE_44, 7, WiltonPhoneScript1, 7, WiltonPhoneScript2 - phone BLACKBELT_T, KENJI3, ROUTE_45, 7, KenjiPhoneScript1, 7, KenjiPhoneScript2 - phone HIKER, PARRY1, ROUTE_45, 7, ParryPhoneScript1, 7, ParryPhoneScript2 - phone PICNICKER, ERIN1, ROUTE_46, 7, ErinPhoneScript1, 7, ErinPhoneScript2 - phone TRAINER_NONE, PHONECONTACT_BUENA, GOLDENROD_DEPT_STORE_ROOF, 7, BuenaPhoneScript1, 7, BuenaPhoneScript2 + phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript + phone TRAINER_NONE, PHONECONTACT_MOM, KRISS_HOUSE_1F, 7, MomPhoneScript, 0, UnusedPhoneScript + phone TRAINER_NONE, PHONECONTACT_BIKESHOP, OAKS_LAB, 0, UnusedPhoneScript, 0, UnusedPhoneScript + phone TRAINER_NONE, PHONECONTACT_BILL, N_A, 7, BillPhoneScript1, 0, BillPhoneScript2 + phone TRAINER_NONE, PHONECONTACT_ELM, ELMS_LAB, 7, ElmPhoneScript1, 0, ElmPhoneScript2 + phone SCHOOLBOY, JACK1, NATIONAL_PARK, 7, JackPhoneScript1, 7, JackPhoneScript2 + phone POKEFANF, BEVERLY1, NATIONAL_PARK, 7, BeverlyPhoneScript1, 7, BeverlyPhoneScript2 + phone SAILOR, HUEY1, OLIVINE_LIGHTHOUSE_2F, 7, HueyPhoneScript1, 7, HueyPhoneScript2 + phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript + phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript + phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript + phone COOLTRAINERM, GAVEN3, ROUTE_26, 7, GavenPhoneScript1, 7, GavenPhoneScript2 + phone COOLTRAINERF, BETH1, ROUTE_26, 7, BethPhoneScript1, 7, BethPhoneScript2 + phone BIRD_KEEPER, JOSE2, ROUTE_27, 7, JosePhoneScript1, 7, JosePhoneScript2 + phone COOLTRAINERF, REENA1, ROUTE_27, 7, ReenaPhoneScript1, 7, ReenaPhoneScript2 + phone YOUNGSTER, JOEY1, ROUTE_30, 7, JoeyPhoneScript1, 7, JoeyPhoneScript2 + phone BUG_CATCHER, WADE1, ROUTE_31, 7, WadePhoneScript1, 7, WadePhoneScript2 + phone FISHER, RALPH1, ROUTE_32, 7, RalphPhoneScript1, 7, RalphPhoneScript2 + phone PICNICKER, LIZ1, ROUTE_32, 7, LizPhoneScript1, 7, LizPhoneScript2 + phone HIKER, ANTHONY2, ROUTE_33, 7, AnthonyPhoneScript1, 7, AnthonyPhoneScript2 + phone CAMPER, TODD1, ROUTE_34, 7, ToddPhoneScript1, 7, ToddPhoneScript2 + phone PICNICKER, GINA1, ROUTE_34, 7, GinaPhoneScript1, 7, GinaPhoneScript2 + phone JUGGLER, IRWIN1, ROUTE_35, 7, IrwinPhoneScript1, 7, IrwinPhoneScript2 + phone BUG_CATCHER, ARNIE1, ROUTE_35, 7, ArniePhoneScript1, 7, ArniePhoneScript2 + phone SCHOOLBOY, ALAN1, ROUTE_36, 7, AlanPhoneScript1, 7, AlanPhoneScript2 + phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript + phone LASS, DANA1, ROUTE_38, 7, DanaPhoneScript1, 7, DanaPhoneScript2 + phone SCHOOLBOY, CHAD1, ROUTE_38, 7, ChadPhoneScript1, 7, ChadPhoneScript2 + phone POKEFANM, DEREK1, ROUTE_39, 7, DerekPhoneScript1, 7, DerekPhoneScript2 + phone FISHER, TULLY1, ROUTE_42, 7, TullyPhoneScript1, 7, TullyPhoneScript2 + phone POKEMANIAC, BRENT1, ROUTE_43, 7, BrentPhoneScript1, 7, BrentPhoneScript2 + phone PICNICKER, TIFFANY3, ROUTE_43, 7, TiffanyPhoneScript1, 7, TiffanyPhoneScript2 + phone BIRD_KEEPER, VANCE1, ROUTE_44, 7, VancePhoneScript1, 7, VancePhoneScript2 + phone FISHER, WILTON1, ROUTE_44, 7, WiltonPhoneScript1, 7, WiltonPhoneScript2 + phone BLACKBELT_T, KENJI3, ROUTE_45, 7, KenjiPhoneScript1, 7, KenjiPhoneScript2 + phone HIKER, PARRY1, ROUTE_45, 7, ParryPhoneScript1, 7, ParryPhoneScript2 + phone PICNICKER, ERIN1, ROUTE_46, 7, ErinPhoneScript1, 7, ErinPhoneScript2 + phone TRAINER_NONE, PHONECONTACT_BUENA, GOLDENROD_DEPT_STORE_ROOF, 7, BuenaPhoneScript1, 7, BuenaPhoneScript2 ; 90627 SpecialPhoneCallList: ; 90627 diff --git a/engine/player_movement.asm b/engine/player_movement.asm index a57e5cef1..4bc4c483e 100755 --- a/engine/player_movement.asm +++ b/engine/player_movement.asm @@ -118,7 +118,7 @@ DoPlayerMovement:: ; 80000 ; Tiles such as waterfalls and warps move the player ; in a given direction, overriding input. - ld a, [PlayerNextTile] + ld a, [PlayerStandingTile] ld c, a call CheckWhirlpoolTile jr c, .asm_800c4 @@ -136,7 +136,7 @@ DoPlayerMovement:: ; 80000 jr z, .land2 cp $70 ; warps jr z, .warps - jr .asm_8013c + jr .no_walk .water ld a, c @@ -147,7 +147,7 @@ DoPlayerMovement:: ; 80000 add hl, bc ld a, [hl] ld [WalkingDirection], a - jr .asm_8013e + jr .continue_walk .water_table db RIGHT @@ -164,9 +164,9 @@ DoPlayerMovement:: ; 80000 add hl, bc ld a, [hl] cp STANDING - jr z, .asm_8013c + jr z, .no_walk ld [WalkingDirection], a - jr .asm_8013e + jr .continue_walk .land1_table db STANDING @@ -187,9 +187,9 @@ DoPlayerMovement:: ; 80000 add hl, bc ld a, [hl] cp STANDING - jr z, .asm_8013c + jr z, .no_walk ld [WalkingDirection], a - jr .asm_8013e + jr .continue_walk .land2_table db RIGHT @@ -210,18 +210,18 @@ DoPlayerMovement:: ; 80000 cp $7a ; stairs jr z, .down cp $7b ; cave - jr nz, .asm_8013c + jr nz, .no_walk .down ld a, DOWN ld [WalkingDirection], a - jr .asm_8013e + jr .continue_walk -.asm_8013c +.no_walk xor a ret -.asm_8013e +.continue_walk ld a, STEP_WALK call .DoStep ld a, 5 @@ -277,7 +277,7 @@ DoPlayerMovement:: ; 80000 cp 2 jr z, .bump - ld a, [PlayerNextTile] + ld a, [PlayerStandingTile] call CheckIceTile jr nc, .ice @@ -362,7 +362,7 @@ DoPlayerMovement:: ; 80000 ; 801f3 .TryJump: ; 801f3 - ld a, [PlayerNextTile] + ld a, [PlayerStandingTile] ld e, a and $f0 cp $a0 ; ledge @@ -413,7 +413,7 @@ DoPlayerMovement:: ; 80000 ld d, 0 ld hl, .EdgeWarps add hl, de - ld a, [PlayerNextTile] + ld a, [PlayerStandingTile] cp [hl] jr nz, .not_warp @@ -615,7 +615,7 @@ DoPlayerMovement:: ; 80000 ; tile collision pointer .table1 db STANDING, FACE_CURRENT, 0, 0 - dw PlayerNextTile + dw PlayerStandingTile .table2 db RIGHT, FACE_RIGHT, 1, 0 dw TileRight @@ -634,13 +634,13 @@ DoPlayerMovement:: ; 80000 ld a, 0 ld [hMapObjectIndexBuffer], a ; Load the next X coordinate into d - ld a, [PlayerNextMapX] + ld a, [PlayerStandingMapX] ld d, a ld a, [WalkingX] add d ld d, a ; Load the next Y coordinate into e - ld a, [PlayerNextMapY] + ld a, [PlayerStandingMapY] ld e, a ld a, [WalkingY] add e @@ -817,7 +817,7 @@ CheckStandingOnIce:: ; 80404 jr z, .not_ice cp $f0 jr z, .not_ice - ld a, [PlayerNextTile] + ld a, [PlayerStandingTile] call CheckIceTile jr nc, .yep ld a, [PlayerState] diff --git a/engine/pokedex.asm b/engine/pokedex.asm index 7dcfd2fdf..b7125d85a 100644 --- a/engine/pokedex.asm +++ b/engine/pokedex.asm @@ -1079,7 +1079,7 @@ Pokedex_DrawMainScreenBG: ; 4074c (10:474c) lb bc, 7, 7 call Pokedex_PlaceBorder hlcoord 0, 9 - ld bc, $607 + lb bc, 6, 7 call Pokedex_PlaceBorder hlcoord 1, 11 ld de, String_SEEN @@ -1105,11 +1105,11 @@ Pokedex_DrawMainScreenBG: ; 4074c (10:474c) ld de, String_SELECT_OPTION call Pokedex_PlaceString hlcoord 8, 1 - ld b, $7 + ld b, 7 ld a, $5a call Pokedex_HLDownBRows hlcoord 8, 10 - ld b, $6 + ld b, 6 ld a, $5a call Pokedex_HLDownBRows hlcoord 8, 0 @@ -1135,22 +1135,22 @@ String_START_SEARCH: ; 407f2 Pokedex_DrawDexEntryScreenBG: ; 407fd call Pokedex_FillBackgroundColor2 hlcoord 0, 0 - ld bc, $0f12 + lb bc, 15, 18 call Pokedex_PlaceBorder hlcoord 19, 0 ld [hl], $34 hlcoord 19, 1 - ld a, $7f - ld b, $f + ld a, " " + ld b, 15 call Pokedex_HLDownBRows ld [hl], $39 hlcoord 1, 10 - ld bc, $0013 + ld bc, 19 ld a, $61 call ByteFill hlcoord 1, 17 - ld bc, $0012 - ld a, $7f + ld bc, 18 + ld a, " " call ByteFill hlcoord 9, 7 ld de, .Height @@ -1263,7 +1263,7 @@ Pokedex_DrawSearchResultsScreenBG: ; 40962 (10:4962) hlcoord 8, 0 ld [hl], $59 hlcoord 8, 1 - ld b, $7 + ld b, 7 ld a, $5a call Pokedex_HLDownBRows hlcoord 8, 8 @@ -1717,7 +1717,7 @@ Pokedex_DisplayModeDescription: ; 40e5b xor a ld [hBGMapMode], a hlcoord 0, 12 - lb bc, 4, SCREEN_WIDTH - 2 + lb bc, 4, 18 call Pokedex_PlaceBorder ld a, [wDexArrowCursorPosIndex] ld hl, .Modes @@ -1756,7 +1756,7 @@ Pokedex_DisplayChangingModesMessage: ; 40f08 (10:4f08) xor a ld [hBGMapMode], a hlcoord 0, 12 - lb bc, 4, SCREEN_WIDTH - 2 + lb bc, 4, 18 call Pokedex_PlaceBorder ld de, String_ChangingModesPleaseWait hlcoord 1, 14 @@ -1995,7 +1995,7 @@ Pokedex_DisplayTypeNotFoundMessage: ; 41107 xor a ld [hBGMapMode], a hlcoord 0, 12 - ld bc, $0412 + lb bc, 4, 18 call Pokedex_PlaceBorder ld de, .TypeNotFound hlcoord 1, 14 diff --git a/engine/pokegear.asm b/engine/pokegear.asm index 4ef65da8c..5379734e6 100755 --- a/engine/pokegear.asm +++ b/engine/pokegear.asm @@ -3,27 +3,23 @@ PokeGear: ; 90b8d (24:4b8d) 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 .InitTilemap call DelayFrame - .loop call UpdateTime call JoyTextDelay ld a, [wJumptableIndex] bit 7, a jr nz, .done - call Function90f04 + call PokegearJumptable callba PlaySpriteAnimations call DelayFrame jr .loop @@ -45,10 +41,10 @@ PokeGear: ; 90b8d (24:4b8d) ld [hBGMapAddress + 1], a ld a, $90 ld [hWY], a - call Function91492 + call ExitPokegearRadio_HandleMusic ret -Function90bea: ; 90bea (24:4bea) +.InitTilemap: ; 90bea (24:4bea) call ClearBGPalettes call ClearTileMap call ClearSprites @@ -58,27 +54,27 @@ Function90bea: ; 90bea (24:4bea) ld [hSCX], a ld a, $7 ld [hWX], a - call Function90c4e + call Pokegear_LoadGFX callba ClearSpriteAnims call InitPokegearModeIndicatorArrow ld a, 8 call SkipMusic ld a, $e3 ld [rLCDC], a - call Function90d70 + call TownMap_InitCursorAndPlayerIconPositions 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 [wPokegearPhoneScrollPosition], a + ld [wPokegearPhoneCursorPosition], a + ld [wPokegearPhoneSelectedPerson], a + ld [wPokegearRadioChannelBank], a + ld [wPokegearRadioChannelAddr], a + ld [wPokegearRadioChannelAddr + 1], a + call Pokegear_InitJumptableIndices + call InitPokegearTilemap ld b, SCGB_POKEGEAR_PALS call GetSGBLayout call SetPalettes @@ -89,23 +85,20 @@ Function90bea: ; 90bea (24:4bea) call DmgToCgbObjPal0 ret -Function90c4e: ; 90c4e +Pokegear_LoadGFX: ; 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] @@ -113,23 +106,18 @@ Function90c4e: ; 90c4e call GetWorldMapLocation cp FAST_SHIP jr z, .ssaqua - callba GetPlayerIcon - push de ld h, d ld l, e ld a, b - ; standing sprite push af ld de, VTiles0 tile $10 ld bc, 4 tiles call FarCopyBytes pop af - pop hl - ; walking sprite ld de, 12 tiles add hl, de @@ -144,6 +132,7 @@ Function90c4e: ; 90c4e ld bc, 8 tiles call CopyBytes ret + ; 90cb2 FastShipGFX: ; 90cb2 @@ -159,24 +148,25 @@ InitPokegearModeIndicatorArrow: ; 90d32 (24:4d32) ld [hl], $0 ret -Function90d41: ; 90d41 (24:4d41) +AnimatePokegearModeIndicatorArrow: ; 90d41 (24:4d41) ld hl, wcf64 ld e, [hl] ld d, 0 - ld hl, Unknown_90d52 + ld hl, .XCoords add hl, de ld a, [hl] - ld hl, $6 + ld hl, SPRITEANIMSTRUCT_XOFFSET add hl, bc ld [hl], a ret + ; 90d52 (24:4d52) -Unknown_90d52: ; 90d52 +.XCoords: ; 90d52 db $00, $10, $20, $30 ; 90d56 -Function90d56: ; 90d56 +TownMap_GetCurrentLandmark: ; 90d56 ld a, [MapGroup] ld b, a ld a, [MapNumber] @@ -190,47 +180,43 @@ Function90d56: ; 90d56 ld c, a call GetWorldMapLocation ret -; 90d70 +; 90d70 -Function90d70: ; 90d70 (24:4d70) +TownMap_InitCursorAndPlayerIconPositions: ; 90d70 (24:4d70) ld a, [MapGroup] ld b, a ld a, [MapNumber] ld c, a call GetWorldMapLocation - cp FAST_SHIP jr z, .FastShip - cp SPECIAL_MAP jr nz, .LoadLandmark - ld a, [BackupMapGroup] ld b, a ld a, [BackupMapNumber] ld c, a call GetWorldMapLocation - .LoadLandmark - ld [wTownMapPlayerIconLandmark], a - ld [wTownMapCursorLandmark], a + ld [wPokegearMapPlayerIconLandmark], a + ld [wPokegearMapCursorLandmark], a ret .FastShip - ld [wTownMapPlayerIconLandmark], a + ld [wPokegearMapPlayerIconLandmark], a ld a, NEW_BARK_TOWN - ld [wTownMapCursorLandmark], a + ld [wPokegearMapCursorLandmark], a ret -Function90d9e: ; 90d9e (24:4d9e) +Pokegear_InitJumptableIndices: ; 90d9e (24:4d9e) ld a, $0 ld [wJumptableIndex], a xor a ld [wcf64], a ret -Function90da8: ; 90da8 (24:4da8) +InitPokegearTilemap: ; 90da8 (24:4da8) xor a ld [hBGMapMode], a hlcoord 0, 0 @@ -242,39 +228,37 @@ Function90da8: ; 90da8 (24:4da8) add a ld e, a ld d, 0 - ld hl, Jumptable_90e12 + ld hl, .Jumptable add hl, de ld a, [hli] ld h, [hl] ld l, a - ld de, .asm_90dcb + ld de, .return_from_jumptable push de jp [hl] -.asm_90dcb - call Function90eb0 +.return_from_jumptable + call Pokegear_FinishTilemap callba TownMapPals ld a, [wcf65] and a - jr nz, .asm_90de8 - + jr nz, .kanto_0 xor a ld [hBGMapAddress], a ld a, VBGMap0 / $100 ld [hBGMapAddress + 1], a - call Function90e00 + call .UpdateBGMap ld a, $90 - jr .asm_90df3 + jr .finish -.asm_90de8 +.kanto_0 xor a ld [hBGMapAddress], a ld a, VBGMap1 / $100 ld [hBGMapAddress + 1], a - call Function90e00 + call .UpdateBGMap xor a - -.asm_90df3 +.finish ld [hWY], a ld a, [wcf65] and 1 @@ -282,46 +266,48 @@ Function90da8: ; 90da8 (24:4da8) ld [wcf65], a ret -Function90e00: ; 90e00 (24:4e00) +.UpdateBGMap: ; 90e00 (24:4e00) ld a, [hCGB] and a - jr z, .asm_90e0e + jr z, .dmg ld a, $2 ld [hBGMapMode], a ld c, 3 call DelayFrames -.asm_90e0e +.dmg call WaitBGMap ret + ; 90e12 (24:4e12) -Jumptable_90e12: ; 90e12 - dw Function90e1a - dw Function90e3f - dw Function90e82 - dw Function90e72 +.Jumptable: ; 90e12 + dw .Clock + dw .Map + dw .Phone + dw .Radio + ; 90e1a -Function90e1a: ; 90e1a +.Clock: ; 90e1a ld de, ClockTilemapRLE - call Function914bb + call Pokegear_LoadTilemapRLE hlcoord 12, 1 ld de, .switch call PlaceString hlcoord 0, 12 lb bc, 4, 18 call TextBox - call Function90f86 + call Pokegear_UpdateClock ret + ; 90e36 (24:4e36) .switch db " SWITCH▶@" ; 90e3f -Function90e3f: ; 90e3f - - ld a, [wTownMapPlayerIconLandmark] +.Map: ; 90e3f + ld a, [wPokegearMapPlayerIconLandmark] cp FAST_SHIP jr z, .johto cp KANTO_LANDMARK @@ -329,6 +315,7 @@ Function90e3f: ; 90e3f .johto ld e, 0 jr .ok + .kanto ld e, 1 .ok @@ -341,32 +328,35 @@ Function90e3f: ; 90e3f ld [hl], $6 hlcoord 19, 2 ld [hl], $17 - ld a, [wTownMapCursorLandmark] - call Function910b4 + ld a, [wPokegearMapCursorLandmark] + call PokegearMap_UpdateLandmarkName ret + ; 90e72 -Function90e72: ; 90e72 +.Radio: ; 90e72 ld de, RadioTilemapRLE - call Function914bb + call Pokegear_LoadTilemapRLE hlcoord 0, 12 lb bc, 4, 18 call TextBox ret + ; 90e82 -Function90e82: ; 90e82 +.Phone: ; 90e82 ld de, PhoneTilemapRLE - call Function914bb + call Pokegear_LoadTilemapRLE hlcoord 0, 12 lb bc, 4, 18 call TextBox - call Function90e98 - call Function912d8 + call .PlacePhoneBars + call PokegearPhone_UpdateDisplayList ret + ; 90e98 -Function90e98: ; 90e98 (24:4e98) +.PlacePhoneBars: ; 90e98 (24:4e98) hlcoord 17, 1 ld a, $3c ld [hli], a @@ -382,7 +372,7 @@ Function90e98: ; 90e98 (24:4e98) ld [hl], $3f ret -Function90eb0: ; 90eb0 (24:4eb0) +Pokegear_FinishTilemap: ; 90eb0 (24:4eb0) hlcoord 0, 0 ld bc, $8 ld a, $4f @@ -394,33 +384,32 @@ Function90eb0: ; 90eb0 (24:4eb0) ld de, wPokegearFlags ld a, [de] bit 0, a - call nz, Function90ee4 + call nz, .PlaceMapIcon ld a, [de] bit 2, a - call nz, Function90eeb + call nz, .PlacePhoneIcon ld a, [de] bit 1, a - call nz, Function90ef2 + call nz, .PlaceRadioIcon hlcoord 0, 0 ld a, $46 - call Function90ef7 + call .PlacePokegearCardIcon ret -Function90ee4: ; 90ee4 (24:4ee4) +.PlaceMapIcon: ; 90ee4 (24:4ee4) hlcoord 2, 0 ld a, $40 - jr Function90ef7 + jr .PlacePokegearCardIcon -Function90eeb: ; 90eeb (24:4eeb) +.PlacePhoneIcon: ; 90eeb (24:4eeb) hlcoord 4, 0 ld a, $44 - jr Function90ef7 + jr .PlacePokegearCardIcon -Function90ef2: ; 90ef2 (24:4ef2) +.PlaceRadioIcon: ; 90ef2 (24:4ef2) hlcoord 6, 0 ld a, $42 - -Function90ef7: ; 90ef7 (24:4ef7) +.PlacePokegearCardIcon: ; 90ef7 (24:4ef7) ld [hli], a inc a ld [hld], a @@ -432,97 +421,90 @@ Function90ef7: ; 90ef7 (24:4ef7) ld [hld], a ret -Function90f04: ; 90f04 (24:4f04) +PokegearJumptable: ; 90f04 (24:4f04) ld a, [wJumptableIndex] ld e, a ld d, 0 - ld hl, Jumptable_90f13 -rept 2 + ld hl, .Jumptable + add hl, de 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 +.Jumptable: ; 90f13 (24:4f13) + dw PokegearClock_Init + dw PokegearClock_Joypad + dw PokegearMap_CheckRegion + dw PokegearMap_Init + dw PokegearMap_JohtoMap + dw PokegearMap_Init + dw PokegearMap_KantoMap + dw PokegearPhone_Init + dw PokegearPhone_Joypad + dw PokegearPhone_MakePhoneCall + dw PokegearPhone_FinishPhoneCall + dw PokegearRadio_Init + dw PokegearRadio_Joypad + +PokegearClock_Init: ; 90f2d (24:4f2d) + call InitPokegearTilemap + ld hl, PokegearText_PressAnyButtonToExit call PrintText ld hl, wJumptableIndex inc [hl] - call Function91492 + call ExitPokegearRadio_HandleMusic ret -Function90f3e: ; 90f3e (24:4f3e) - call Function90f7b +PokegearClock_Joypad: ; 90f3e (24:4f3e) + call .UpdateClock ld hl, hJoyLast - ld a, [hl] and A_BUTTON + B_BUTTON + START + SELECT - jr nz, .asm_90f75 - + jr nz, .quit ld a, [hl] and D_RIGHT ret z - ld a, [wPokegearFlags] bit 0, a - jr z, .asm_90f5a + jr z, .no_map_card ld c, $2 ld b, $1 - jr .asm_90f71 -.asm_90f5a + jr .done +.no_map_card ld a, [wPokegearFlags] bit 2, a - jr z, .asm_90f67 + jr z, .no_phone_card ld c, $7 ld b, $2 - jr .asm_90f71 -.asm_90f67 + jr .done +.no_phone_card ld a, [wPokegearFlags] bit 1, a ret z - ld c, $b ld b, $3 - -.asm_90f71 - call Function91480 +.done + call Pokegear_SwitchPage ret -.asm_90f75 +.quit ld hl, wJumptableIndex set 7, [hl] ret -Function90f7b: ; 90f7b (24:4f7b) +.UpdateClock: ; 90f7b (24:4f7b) xor a ld [hBGMapMode], a - call Function90f86 + call Pokegear_UpdateClock ld a, $1 ld [hBGMapMode], a ret -Function90f86: ; 90f86 (24:4f86) +Pokegear_UpdateClock: ; 90f86 (24:4f86) hlcoord 3, 5 lb bc, 5, 14 call ClearBox @@ -532,22 +514,23 @@ Function90f86: ; 90f86 (24:4f86) ld c, a decoord 6, 8 callba PrintHoursMins - ld hl, UnknownText_0x90faf + ld hl, .DayText bccoord 6, 6 call PlaceWholeStringInBoxAtOnce ret -; 90fa8 (24:4fa8) -String_90fa8: db "ごぜん@" -String_90fac: db "ごご@" +; 90fa8 (24:4fa8) + db "ごぜん@" + db "ごご@" -UnknownText_0x90faf: ; 0x90faf +.DayText: ; 0x90faf text_jump UnknownText_0x1c5821 db "@" + ; 0x90fb4 -Function90fb4: ; 90fb4 (24:4fb4) - ld a, [wTownMapPlayerIconLandmark] +PokegearMap_CheckRegion: ; 90fb4 (24:4fb4) + ld a, [wPokegearMapPlayerIconLandmark] cp FAST_SHIP jr z, .johto cp KANTO_LANDMARK @@ -555,38 +538,37 @@ Function90fb4: ; 90fb4 (24:4fb4) .johto ld a, 3 jr .done - ret .kanto ld a, 5 .done ld [wJumptableIndex], a - call Function91492 + call ExitPokegearRadio_HandleMusic ret -Function90fcd: ; 90fcd (24:4fcd) - call Function90da8 - ld a, [wTownMapPlayerIconLandmark] - call Function9106a - ld a, [wTownMapCursorLandmark] - call Function91098 +PokegearMap_Init: ; 90fcd (24:4fcd) + call InitPokegearTilemap + ld a, [wPokegearMapPlayerIconLandmark] + call PokegearMap_InitPlayerIcon + ld a, [wPokegearMapCursorLandmark] + call PokegearMap_InitCursor ld a, c - ld [wc6d5], a + ld [wPokegearMapCursorObjectPointer], a ld a, b - ld [wc6d6], a + ld [wPokegearMapCursorObjectPointer + 1], a ld hl, wJumptableIndex inc [hl] ret -Function90fe9: ; 90fe9 (24:4fe9) +PokegearMap_KantoMap: ; 90fe9 (24:4fe9) call TownMap_GetKantoLandmarkLimits - jr Function90ff2 + jr PokegearMap_ContinueMap -Function90fee: ; 90fee (24:4fee) - ld d, $2e - ld e, $1 -Function90ff2: ; 90ff2 (24:4ff2) +PokegearMap_JohtoMap: ; 90fee (24:4fee) + ld d, SILVER_CAVE + ld e, NEW_BARK_TOWN +PokegearMap_ContinueMap: ; 90ff2 (24:4ff2) ld hl, hJoyLast ld a, [hl] and B_BUTTON @@ -597,18 +579,18 @@ Function90ff2: ; 90ff2 (24:4ff2) ld a, [hl] and D_LEFT jr nz, .left - call Function9102f + call .DPad ret .right ld a, [wPokegearFlags] bit 2, a - jr z, .asm_91015 + jr z, .no_phone ld c, $7 ld b, $2 jr .done -.asm_91015 +.no_phone ld a, [wPokegearFlags] bit 1, a ret z @@ -620,14 +602,15 @@ Function90ff2: ; 90ff2 (24:4ff2) ld c, $0 ld b, $0 .done - call Function91480 + call Pokegear_SwitchPage ret + .cancel ld hl, wJumptableIndex set 7, [hl] ret -Function9102f: ; 9102f (24:502f) +.DPad: ; 9102f (24:502f) ld hl, hJoyLast ld a, [hl] and D_UP @@ -636,50 +619,49 @@ Function9102f: ; 9102f (24:502f) and D_DOWN jr nz, .down ret + .up - ld hl, wTownMapCursorLandmark + ld hl, wPokegearMapCursorLandmark ld a, [hl] cp d - jr c, .asm_91047 + jr c, .wrap_around_up ld a, e dec a ld [hl], a -.asm_91047 +.wrap_around_up inc [hl] - jr .done + jr .done_dpad .down - ld hl, wTownMapCursorLandmark + ld hl, wPokegearMapCursorLandmark ld a, [hl] cp e - jr nz, .asm_91054 + jr nz, .wrap_around_down ld a, d inc a ld [hl], a -.asm_91054 +.wrap_around_down dec [hl] - -.done - ld a, [wTownMapCursorLandmark] - call Function910b4 - ld a, [wc6d5] +.done_dpad + ld a, [wPokegearMapCursorLandmark] + call PokegearMap_UpdateLandmarkName + ld a, [wPokegearMapCursorObjectPointer] ld c, a - ld a, [wc6d6] + ld a, [wPokegearMapCursorObjectPointer + 1] ld b, a - ld a, [wTownMapCursorLandmark] - call Function910d4 + ld a, [wPokegearMapCursorLandmark] + call PokegearMap_UpdateCursorPosition ret -Function9106a: ; 9106a +PokegearMap_InitPlayerIcon: ; 9106a push af depixel 0, 0 - ld b, SPRITE_ANIM_INDEX_WALK_CYCLE + ld b, SPRITE_ANIM_INDEX_RED_WALK ld a, [PlayerGender] bit 0, a - jr z, .asm_91079 - ld b, SPRITE_ANIM_INDEX_1E - -.asm_91079 + jr z, .got_gender + ld b, SPRITE_ANIM_INDEX_BLUE_WALK +.got_gender ld a, b call _InitSpriteAnimStruct ld hl, SPRITEANIMSTRUCT_TILE_ID @@ -697,9 +679,10 @@ Function9106a: ; 9106a add hl, bc ld [hl], d ret + ; 91098 -Function91098: ; 91098 +PokegearMap_InitCursor: ; 91098 push af depixel 0, 0 ld a, SPRITE_ANIM_INDEX_0D @@ -712,12 +695,13 @@ Function91098: ; 91098 ld [hl], SPRITE_ANIM_SEQ_NULL pop af push bc - call Function910d4 + call PokegearMap_UpdateCursorPosition pop bc ret + ; 910b4 -Function910b4: ; 910b4 +PokegearMap_UpdateLandmarkName: ; 910b4 push af hlcoord 8, 0 lb bc, 2, 12 @@ -731,9 +715,10 @@ Function910b4: ; 910b4 hlcoord 8, 0 ld [hl], $34 ret + ; 910d4 -Function910d4: ; 910d4 +PokegearMap_UpdateCursorPosition: ; 910d4 push bc ld e, a callba GetLandmarkCoords @@ -745,6 +730,7 @@ Function910d4: ; 910d4 add hl, bc ld [hl], d ret + ; 910e8 TownMap_GetKantoLandmarkLimits: ; 910e8 @@ -759,11 +745,11 @@ TownMap_GetKantoLandmarkLimits: ; 910e8 ld d, ROUTE_28 ld e, VICTORY_ROAD ret -; 910f9 +; 910f9 -Function910f9: ; 910f9 (24:50f9) - call Function90da8 +PokegearRadio_Init: ; 910f9 (24:50f9) + call InitPokegearTilemap depixel 4, 10, 4, 4 ld a, SPRITE_ANIM_INDEX_14 call _InitSpriteAnimStruct @@ -775,7 +761,7 @@ Function910f9: ; 910f9 (24:50f9) inc [hl] ret -Function91112: ; 91112 (24:5112) +PokegearRadio_Joypad: ; 91112 (24:5112) ld hl, hJoyLast ld a, [hl] and B_BUTTON @@ -783,11 +769,11 @@ Function91112: ; 91112 (24:5112) ld a, [hl] and D_LEFT jr nz, .left - ld a, [wc6da] + ld a, [wPokegearRadioChannelAddr] ld l, a - ld a, [wc6db] + ld a, [wPokegearRadioChannelAddr + 1] ld h, a - ld a, [wc6d9] + ld a, [wPokegearRadioChannelBank] and a ret z rst FarCall @@ -796,24 +782,24 @@ Function91112: ; 91112 (24:5112) .left ld a, [wPokegearFlags] bit 2, a - jr z, .asm_9113b + jr z, .no_phone ld c, $7 ld b, $2 - jr .asm_9114c + jr .switch_page -.asm_9113b +.no_phone ld a, [wPokegearFlags] bit 0, a - jr z, .asm_91148 + jr z, .no_map ld c, $2 ld b, $1 - jr .asm_9114c + jr .switch_page -.asm_91148 +.no_map ld c, $0 ld b, $0 -.asm_9114c - call Function91480 +.switch_page + call Pokegear_SwitchPage ret .cancel @@ -821,20 +807,20 @@ Function91112: ; 91112 (24:5112) set 7, [hl] ret -Function91156: ; 91156 (24:5156) +PokegearPhone_Init: ; 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 + ld [wPokegearPhoneScrollPosition], a + ld [wPokegearPhoneCursorPosition], a + ld [wPokegearPhoneSelectedPerson], a + call InitPokegearTilemap + call ExitPokegearRadio_HandleMusic + ld hl, PokegearText_WhomToCall call PrintText ret -Function91171: ; 91171 (24:5171) +PokegearPhone_Joypad: ; 91171 (24:5171) ld hl, hJoyPressed ld a, [hl] and B_BUTTON @@ -849,20 +835,21 @@ Function91171: ; 91171 (24:5171) ld a, [hl] and D_RIGHT jr nz, .right - call Function9126d + call PokegearPhone_GetDPad ret .left ld a, [wPokegearFlags] bit 0, a - jr z, .asm_9119c + jr z, .no_map ld c, $2 ld b, $1 - jr .asm_911ac -.asm_9119c + jr .switch_page + +.no_map ld c, $0 ld b, $0 - jr .asm_911ac + jr .switch_page .right ld a, [wPokegearFlags] @@ -870,8 +857,8 @@ Function91171: ; 91171 (24:5171) ret z ld c, $b ld b, $3 -.asm_911ac - call Function91480 +.switch_page + call Pokegear_SwitchPage ret .b @@ -881,55 +868,53 @@ Function91171: ; 91171 (24:5171) .a ld hl, wPhoneList - ld a, [wc6d2] + ld a, [wPokegearPhoneScrollPosition] ld e, a ld d, 0 add hl, de - ld a, [wc6d1] + ld a, [wPokegearPhoneCursorPosition] ld e, a ld d, 0 add hl, de ld a, [hl] and a ret z - - ld [wc6d3], a + ld [wPokegearPhoneSelectedPerson], a hlcoord 1, 4 - ld a, [wc6d1] + ld a, [wPokegearPhoneCursorPosition] ld bc, 20 * 2 call AddNTimes ld [hl], "▷" - call Function91342 - jr c, .asm_911e5 - + call PokegearPhoneContactSubmenu + jr c, .quit_submenu ld hl, wJumptableIndex inc [hl] ret -.asm_911e5 +.quit_submenu ld a, $8 ld [wJumptableIndex], a ret -Function911eb: ; 911eb (24:51eb) +PokegearPhone_MakePhoneCall: ; 911eb (24:51eb) call GetMapHeaderPhoneServiceNybble and a - jr nz, .asm_91234 + jr nz, .no_service ld hl, Options res NO_TEXT_SCROLL, [hl] xor a ld [hInMenu], a ld de, SFX_CALL call PlaySFX - ld hl, UnknownText_0x9124c + ld hl, .dotdotdot call PrintText call WaitSFX ld de, SFX_CALL call PlaySFX - ld hl, UnknownText_0x9124c + ld hl, .dotdotdot call PrintText call WaitSFX - ld a, [wc6d3] + ld a, [wPokegearPhoneSelectedPerson] ld b, a call Function90199 ld c, 10 @@ -938,45 +923,49 @@ Function911eb: ; 911eb (24:51eb) set NO_TEXT_SCROLL, [hl] ld a, $1 ld [hInMenu], a - call Function912b7 + call PokegearPhone_UpdateCursor ld hl, wJumptableIndex inc [hl] ret -.asm_91234 + +.no_service callba Phone_NoSignal - ld hl, OutOfServiceAreaText + ld hl, .OutOfServiceArea call PrintText ld a, $8 ld [wJumptableIndex], a - ld hl, UnknownText_0x914ce + ld hl, PokegearText_WhomToCall call PrintText ret + ; 9124c (24:524c) -UnknownText_0x9124c: ; 0x9124c +.dotdotdot: ; 0x9124c ; text_jump UnknownText_0x1c5824 db "@" + ; 0x91251 -OutOfServiceAreaText: ; 0x91251 +.OutOfServiceArea: ; 0x91251 ; You're out of the service area. text_jump UnknownText_0x1c5827 db "@" + ; 0x91256 -Function91256: ; 91256 (24:5256) +PokegearPhone_FinishPhoneCall: ; 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 + ld hl, PokegearText_WhomToCall call PrintText ret -Function9126d: ; 9126d (24:526d) +PokegearPhone_GetDPad: ; 9126d (24:526d) ld hl, hJoyLast ld a, [hl] and D_UP @@ -987,52 +976,52 @@ Function9126d: ; 9126d (24:526d) ret .up - ld hl, wc6d1 + ld hl, wPokegearPhoneCursorPosition ld a, [hl] and a - jr z, .asm_91285 + jr z, .scroll_page_up dec [hl] - jr .asm_912a3 + jr .done_joypad_same_page -.asm_91285 - ld hl, wc6d2 +.scroll_page_up + ld hl, wPokegearPhoneScrollPosition ld a, [hl] and a ret z dec [hl] - jr .asm_912ad + jr .done_joypad_update_page .down - ld hl, wc6d1 + ld hl, wPokegearPhoneCursorPosition ld a, [hl] cp $3 - jr nc, .asm_91299 + jr nc, .scroll_page_down inc [hl] - jr .asm_912a3 + jr .done_joypad_same_page -.asm_91299 - ld hl, wc6d2 +.scroll_page_down + ld hl, wPokegearPhoneScrollPosition ld a, [hl] cp $6 ret nc inc [hl] - jr .asm_912ad + jr .done_joypad_update_page -.asm_912a3 +.done_joypad_same_page xor a ld [hBGMapMode], a - call Function912b7 + call PokegearPhone_UpdateCursor call WaitBGMap ret -.asm_912ad +.done_joypad_update_page xor a ld [hBGMapMode], a - call Function912d8 + call PokegearPhone_UpdateDisplayList call WaitBGMap ret -Function912b7: ; 912b7 (24:52b7) +PokegearPhone_UpdateCursor: ; 912b7 (24:52b7) ld a, " " hlcoord 1, 4 ld [hl], a @@ -1043,41 +1032,40 @@ Function912b7: ; 912b7 (24:52b7) hlcoord 1, 10 ld [hl], a hlcoord 1, 4 - ld a, [wc6d1] - ld bc, $28 + ld a, [wPokegearPhoneCursorPosition] + ld bc, 2 * SCREEN_WIDTH call AddNTimes ld [hl], "▶" ret -Function912d8: ; 912d8 (24:52d8) +PokegearPhone_UpdateDisplayList: ; 912d8 (24:52d8) hlcoord 1, 3 - ld b, $9 - ld a, $7f -.asm_912df - ld c, $12 -.asm_912e1 + ld b, 9 + ld a, " " +.row + ld c, 18 +.col ld [hli], a dec c - jr nz, .asm_912e1 -rept 2 + jr nz, .col + inc hl inc hl -endr dec b - jr nz, .asm_912df - ld a, [wc6d2] + jr nz, .row + ld a, [wPokegearPhoneScrollPosition] ld e, a ld d, $0 ld hl, wPhoneList add hl, de xor a - ld [wc6d0], a -.asm_912f8 + ld [wPokegearPhoneLoadNameBuffer], a +.loop ld a, [hli] push hl push af hlcoord 2, 4 - ld a, [wc6d0] - ld bc, $28 + ld a, [wPokegearPhoneLoadNameBuffer] + ld bc, 2 * SCREEN_WIDTH call AddNTimes ld d, h ld e, l @@ -1085,66 +1073,66 @@ endr ld b, a call Function90380 pop hl - ld a, [wc6d0] + ld a, [wPokegearPhoneLoadNameBuffer] inc a - ld [wc6d0], a + ld [wPokegearPhoneLoadNameBuffer], a cp $4 - jr c, .asm_912f8 - call Function912b7 + jr c, .loop + call PokegearPhone_UpdateCursor ret + ; 9131e (24:531e) -Function9131e: ; 9131e +PokegearPhone_DeletePhoneNumber: ; 9131e ld hl, wPhoneList - ld a, [wc6d2] + ld a, [wPokegearPhoneScrollPosition] ld e, a ld d, 0 add hl, de - ld a, [wc6d1] + ld a, [wPokegearPhoneCursorPosition] ld e, a ld d, 0 add hl, de ld [hl], 0 ld hl, wPhoneList - ld c, $a -.asm_91336 + ld c, CONTACT_LIST_SIZE +.loop ld a, [hli] and a - jr nz, .asm_9133e + jr nz, .skip ld a, [hld] ld [hli], a ld [hl], 0 -.asm_9133e +.skip dec c - jr nz, .asm_91336 + jr nz, .loop ret + ; 91342 -Function91342: ; 91342 (24:5342) +PokegearPhoneContactSubmenu: ; 91342 (24:5342) ld hl, wPhoneList - ld a, [wc6d2] + ld a, [wPokegearPhoneScrollPosition] ld e, a ld d, 0 add hl, de - ld a, [wc6d1] + ld a, [wPokegearPhoneCursorPosition] ld e, a ld d, 0 add hl, de ld c, [hl] - callba Function9038a + callba CheckCanDeletePhoneNumber 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 + jr z, .cant_delete + ld hl, .CallDeleteCancelJumptable + ld de, .CallDeleteCancelStrings + jr .got_menu_data + +.cant_delete + ld hl, .CallCancelJumptable + ld de, .CallCancelStrings +.got_menu_data xor a ld [hBGMapMode], a push hl @@ -1171,100 +1159,100 @@ Function91342: ; 91342 (24:5342) call PlaceString pop de xor a - ld [wc6d4], a - call Function9141d + ld [wPokegearPhoneSubmenuCursor], a + call .UpdateCursor call WaitBGMap - -.asm_91398 +.loop push de call JoyTextDelay pop de ld hl, hJoyPressed ld a, [hl] and D_UP - jr nz, .asm_913b4 + jr nz, .d_up ld a, [hl] and D_DOWN - jr nz, .asm_913c1 + jr nz, .d_down ld a, [hl] and A_BUTTON | B_BUTTON - jr nz, .asm_913d4 + jr nz, .a_b call DelayFrame - jr .asm_91398 + jr .loop -.asm_913b4 - ld hl, wc6d4 +.d_up + ld hl, wPokegearPhoneSubmenuCursor ld a, [hl] and a - jr z, .asm_91398 + jr z, .loop dec [hl] - call Function9141d - jr .asm_91398 + call .UpdateCursor + jr .loop -.asm_913c1 +.d_down ld hl, 2 add hl, de - ld a, [wc6d4] + ld a, [wPokegearPhoneSubmenuCursor] inc a cp [hl] - jr nc, .asm_91398 - ld [wc6d4], a - call Function9141d - jr .asm_91398 + jr nc, .loop + ld [wPokegearPhoneSubmenuCursor], a + call .UpdateCursor + jr .loop -.asm_913d4 +.a_b xor a ld [hBGMapMode], a - call Function912d8 + call PokegearPhone_UpdateDisplayList ld a, $1 ld [hBGMapMode], a pop hl ld a, [hJoyPressed] and B_BUTTON - jr nz, Function913f1 - - ld a, [wc6d4] + jr nz, .Cancel + ld a, [wPokegearPhoneSubmenuCursor] ld e, a ld d, 0 -rept 2 add hl, de -endr + add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] -Function913f1: ; 913f1 - ld hl, UnknownText_0x914ce +.Cancel: ; 913f1 + ld hl, PokegearText_WhomToCall call PrintText scf ret + ; 913f9 (24:53f9) -Function913f9: ; 913f9 - ld hl, UnknownText_0x914d8 +.Delete: ; 913f9 + ld hl, PokegearText_DeleteStoredNumber call MenuTextBox call YesNoBox call ExitMenu - jr c, .asm_91419 - call Function9131e + jr c, .CancelDelete + call PokegearPhone_DeletePhoneNumber xor a ld [hBGMapMode], a - call Function912d8 - ld hl, UnknownText_0x914ce + call PokegearPhone_UpdateDisplayList + ld hl, PokegearText_WhomToCall call PrintText call WaitBGMap -.asm_91419 +.CancelDelete scf ret + ; 9141b -Function9141b: ; 9141b +.Call: ; 9141b and a ret + ; 9141d -Function9141d: ; 9141d (24:541d) +.UpdateCursor: ; 9141d (24:541d) push de ld a, [de] inc de @@ -1276,22 +1264,23 @@ Function9141d: ; 9141d (24:541d) ld c, a push hl ld a, " " - ld de, 20 * 2 -.asm_9142c + ld de, SCREEN_WIDTH * 2 +.clear_column ld [hl], a add hl, de dec c - jr nz, .asm_9142c + jr nz, .clear_column pop hl - ld a, [wc6d4] - ld bc, 20 * 2 + ld a, [wPokegearPhoneSubmenuCursor] + ld bc, SCREEN_WIDTH * 2 call AddNTimes ld [hl], "▶" pop de ret + ; 9143f (24:543f) -Unknown_9143f: ; 9143f +.CallDeleteCancelStrings: ; 9143f dwcoord 10, 6 db 3 db "CALL" @@ -1300,13 +1289,14 @@ Unknown_9143f: ; 9143f db "@" ; 91455 -Jumptable_91455: ; 91455 - dw Function9141b - dw Function913f9 - dw Function913f1 +.CallDeleteCancelJumptable: ; 91455 + dw .Call + dw .Delete + dw .Cancel + ; 9145b -Unknown_9145b: ; 9145b +.CallCancelStrings: ; 9145b dwcoord 10, 8 db 2 db "CALL" @@ -1314,29 +1304,29 @@ Unknown_9145b: ; 9145b db "@" ; 9146a -Jumptable_9146a: ; 9146a - dw Function9141b - dw Function913f1 -; 9146e +.CallCancelJumptable: ; 9146a + dw .Call + dw .Cancel +; 9146e -Function9146e: ; 9146e +; XXX ld a, [hHours] cp 12 - jr c, .asm_9147b + jr c, .am sub 12 ld [wd265], a scf ret -.asm_9147b +.am ld [wd265], a and a ret -; 91480 +; 91480 -Function91480: ; 91480 (24:5480) +Pokegear_SwitchPage: ; 91480 (24:5480) ld de, SFX_READ_TEXT_2 call PlaySFX ld a, c @@ -1346,23 +1336,23 @@ Function91480: ; 91480 (24:5480) call DeleteSpriteAnimStruct2ToEnd ret -Function91492: ; 91492 - ld a, [wc6dc] +ExitPokegearRadio_HandleMusic: ; 91492 + ld a, [wPokegearRadioMusicPlaying] cp $fe - jr z, .asm_914a3 + jr z, .restart_map_music cp $ff call z, EnterMapMusic xor a - ld [wc6dc], a + ld [wPokegearRadioMusicPlaying], a ret -.asm_914a3 +.restart_map_music call RestartMapMusic xor a - ld [wc6dc], a + ld [wPokegearRadioMusicPlaying], a ret -; 914ab +; 914ab DeleteSpriteAnimStruct2ToEnd: ; 914ab (24:54ab) ld hl, SpriteAnim2 @@ -1373,9 +1363,11 @@ DeleteSpriteAnimStruct2ToEnd: ; 914ab (24:54ab) ld [wSpriteAnimCount], a ret -Function914bb: ; 914bb (24:54bb) +Pokegear_LoadTilemapRLE: ; 914bb (24:54bb) + ; Format: repeat count, tile ID + ; Terminated with $FF hlcoord 0, 0 -.asm_914be +.loop ld a, [de] cp $ff ret z @@ -1385,49 +1377,52 @@ Function914bb: ; 914bb (24:54bb) ld c, a inc de ld a, b -.asm_914c8 +.load ld [hli], a dec c - jr nz, .asm_914c8 - jr .asm_914be + jr nz, .load + jr .loop + ; 914ce (24:54ce) -UnknownText_0x914ce: ; 0x914ce +PokegearText_WhomToCall: ; 0x914ce ; Whom do you want to call? text_jump UnknownText_0x1c5847 db "@" + ; 0x914d3 -UnknownText_0x914d3: ; 0x914d3 +PokegearText_PressAnyButtonToExit: ; 0x914d3 ; Press any button to exit. text_jump UnknownText_0x1c5862 db "@" + ; 0x914d8 -UnknownText_0x914d8: ; 0x914d8 +PokegearText_DeleteStoredNumber: ; 0x914d8 ; Delete this stored phone number? text_jump UnknownText_0x1c587d db "@" -; 0x914dd +; 0x914dd PokegearSpritesGFX: ; 914dd INCBIN "gfx/misc/pokegear_sprites.2bpp.lz" ; 9150d RadioTilemapRLE: ; 9150d -INCBIN "gfx/unknown/09150d.tilemap.rle" - +INCBIN "gfx/pokegear/radio.tilemap.rle" PhoneTilemapRLE: ; 9158a -INCBIN "gfx/unknown/09158a.tilemap.rle" - +INCBIN "gfx/pokegear/phone.tilemap.rle" ClockTilemapRLE: ; 915db -INCBIN "gfx/unknown/0915db.tilemap.rle" +INCBIN "gfx/pokegear/clock.tilemap.rle" ; 9163e + _UpdateRadioStation: ; 9163e (24:563e) jr UpdateRadioStation ; called from engine/sprite_anims.asm + AnimateTuningKnob: ; 91640 (24:5640) push bc call .TuningKnob @@ -1453,9 +1448,8 @@ AnimateTuningKnob: ; 91640 (24:5640) ld a, [hl] and a ret z -rept 2 dec [hl] -endr + dec [hl] jr .update .up @@ -1463,12 +1457,9 @@ endr ld a, [hl] cp 80 ret nc -rept 2 inc [hl] -endr - + inc [hl] .update - UpdateRadioStation: ; 9166f (24:566f) ld hl, wRadioTuningKnob ld d, [hl] @@ -1479,9 +1470,8 @@ UpdateRadioStation: ; 9166f (24:566f) jr z, .nostation cp d jr z, .foundstation -rept 2 inc hl -endr + inc hl jr .loop .nostation @@ -1495,8 +1485,9 @@ endr ld de, .returnafterstation push de jp [hl] + .returnafterstation - ld a, [wc6d9] + ld a, [wPokegearRadioChannelBank] and a ret z xor a @@ -1506,20 +1497,22 @@ endr ld a, $1 ld [hBGMapMode], a ret + ; 916a1 (24:56a1) -Function916a1: ; 916a1 - ld [wc6d9], a +; XXX + ld [wPokegearRadioChannelBank], a ld a, [hli] - ld [wc6da], a + ld [wPokegearRadioChannelAddr], a ld a, [hli] - ld [wc6db], a + ld [wPokegearRadioChannelAddr + 1], a ret -; 916ad +; 916ad RadioChannels: ; frequencies and the shows that play on them. + ; frequency value given here = 4 × ingame_frequency − 2 dbw 16, .PkmnTalkAndPokedexShow dbw 28, .PokemonMusic @@ -1534,6 +1527,7 @@ RadioChannels: .PkmnTalkAndPokedexShow ; Pokédex Show in the morning + ; Oak's Pokémon Talk in the afternoon and evening call .InJohto jr nc, .NoSignal @@ -1558,7 +1552,7 @@ RadioChannels: jp LoadStation_BuenasPassword .RuinsOfAlphRadio - ld a, [wTownMapPlayerIconLandmark] + ld a, [wPokegearMapPlayerIconLandmark] cp RUINS_OF_ALPH jr nz, .NoSignal jp LoadStation_UnownRadio @@ -1589,12 +1583,10 @@ RadioChannels: .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, [wTownMapPlayerIconLandmark] + ld a, [wPokegearMapPlayerIconLandmark] cp MAHOGANY_TOWN jr z, .ok cp ROUTE_43 @@ -1610,8 +1602,9 @@ RadioChannels: .InJohto ; if in Johto or on the S.S. Aqua, set carry + ; otherwise clear carry - ld a, [wTownMapPlayerIconLandmark] + ld a, [wPokegearMapPlayerIconLandmark] cp FAST_SHIP jr z, .johto cp KANTO_LANDMARK @@ -1619,12 +1612,11 @@ RadioChannels: .kanto and a ret + .johto scf ret - - LoadStation_OaksPokemonTalk: ; 91753 (24:5753) xor a ; OAKS_POKEMON_TALK ld [wd002], a @@ -1682,6 +1674,7 @@ LoadStation_BuenasPassword: ; 917a5 (24:57a5) ret z ld de, BuenasPasswordName ret + ; 917c3 (24:57c3) BuenasPasswordName: db "BUENA'S PASSWORD@" @@ -1719,6 +1712,7 @@ LoadStation_LetsAllSing: ; 917ff (24:57ff) call Radio_BackUpFarCallParams ld de, LetsAllSingName ret + ; 91814 (24:5814) LoadStation_RocketRadio: ; 91814 @@ -1731,6 +1725,7 @@ LoadStation_RocketRadio: ; 91814 call Radio_BackUpFarCallParams ld de, LetsAllSingName ret + ; 91829 LoadStation_PokeFluteRadio: ; 91829 (24:5829) @@ -1754,6 +1749,7 @@ LoadStation_EvolutionRadio: ; 9183e (24:583e) call Radio_BackUpFarCallParams ld de, UnknownStationName ret + ; 91853 (24:5853) LoadStation_Dummy: ; 91853 @@ -1762,7 +1758,7 @@ LoadStation_Dummy: ; 91853 RadioMusicRestartDE: ; 91854 (24:5854) push de ld a, e - ld [wc6dc], a + ld [wPokegearRadioMusicPlaying], a ld de, MUSIC_NONE call PlayMusic pop de @@ -1774,7 +1770,7 @@ RadioMusicRestartDE: ; 91854 (24:5854) RadioMusicRestartPokemonChannel: ; 91868 (24:5868) push de ld a, $fe - ld [wc6dc], a + ld [wPokegearRadioMusicPlaying], a ld de, MUSIC_NONE call PlayMusic pop de @@ -1783,20 +1779,20 @@ RadioMusicRestartPokemonChannel: ; 91868 (24:5868) ret Radio_BackUpFarCallParams: ; 9187c (24:587c) - ld [wc6d9], a + ld [wPokegearRadioChannelBank], a ld a, l - ld [wc6da], a + ld [wPokegearRadioChannelAddr], a ld a, h - ld [wc6db], a + ld [wPokegearRadioChannelAddr + 1], a ret NoRadioStation: ; 91888 (24:5888) call NoRadioMusic call NoRadioName xor a - ld [wc6d9], a - ld [wc6da], a - ld [wc6db], a + ld [wPokegearRadioChannelBank], a + ld [wPokegearRadioChannelAddr], a + ld [wPokegearRadioChannelAddr + 1], a ld a, $1 ld [hBGMapMode], a ret @@ -1805,7 +1801,7 @@ NoRadioMusic: ; 9189d (24:589d) ld de, MUSIC_NONE call PlayMusic ld a, $ff - ld [wc6dc], a + ld [wPokegearRadioMusicPlaying], a ret NoRadioName: ; 918a9 (24:58a9) @@ -1818,6 +1814,7 @@ NoRadioName: ; 918a9 (24:58a9) ld bc, $412 call TextBox ret + ; 918bf OaksPkmnTalkName: db "OAK's <PK><MN> Talk@" @@ -1825,12 +1822,181 @@ 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" +_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 Pokegear_LoadGFX + callba ClearSpriteAnims + ld a, 8 + call SkipMusic + ld a, $e3 + ld [rLCDC], a + call TownMap_GetCurrentLandmark + ld [wd002], a + ld [wd003], a + xor a + ld [hBGMapMode], a + call .InitTilemap + call WaitBGMap2 + ld a, [wd002] + call PokegearMap_InitPlayerIcon + ld a, [wd003] + call PokegearMap_InitCursor + ld a, c + ld [wd004], a + ld a, b + ld [wd005], a + ld b, SCGB_POKEGEAR_PALS + call GetSGBLayout + call SetPalettes + ld a, [hCGB] + and a + jr z, .dmg + ld a, %11100100 + call DmgToCgbObjPal0 + call DelayFrame + +.dmg + ld a, [wd002] + cp KANTO_LANDMARK + jr nc, .kanto + ld d, KANTO_LANDMARK - 1 + ld e, 1 + call .loop + jr .resume + +.kanto + call TownMap_GetKantoLandmarkLimits + call .loop + +.resume + pop af + ld [VramState], a + pop af + ld [hInMenu], a + pop af + ld [Options], a + call ClearBGPalettes + ret + +.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 PlaySpriteAnimations + 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 PokegearMap_UpdateLandmarkName + ld a, [wd004] + ld c, a + ld a, [wd005] + ld b, a + ld a, [wd003] + call PokegearMap_UpdateCursorPosition + pop de + jr .loop2 +; 91a04 + +.InitTilemap: ; 91a04 + ld a, [wd002] + cp KANTO_LANDMARK + jr nc, .kanto2 + ld e, $0 + jr .okay_tilemap + +.kanto2 + ld e, $1 +.okay_tilemap + 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 PokegearMap_UpdateLandmarkName + callba TownMapPals + ret +; 91a53 PlayRadio: ; 91a53 ld hl, Options @@ -1845,15 +2011,14 @@ PlayRadio: ; 91a53 ld a, [hJoyPressed] and A_BUTTON | B_BUTTON jr nz, .stop - ld a, [wc6da] + ld a, [wPokegearRadioChannelAddr] ld l, a - ld a, [wc6db] + ld a, [wPokegearRadioChannelAddr + 1] ld h, a - ld a, [wc6d9] + ld a, [wPokegearRadioChannelBank] and a jr z, .zero rst FarCall - .zero call DelayFrame jr .loop @@ -1861,8 +2026,9 @@ PlayRadio: ; 91a53 .stop pop af ld [Options], a - call Function91492 + call ExitPokegearRadio_HandleMusic ret + ; 91a87 .PlayStation: ; 91a87 @@ -1870,9 +2036,8 @@ PlayRadio: ; 91a53 ld [EnemyTurnsTaken], a ld hl, .StationPointers ld d, $0 -rept 2 add hl, de -endr + add hl, de ld a, [hli] ld h, [hl] ld l, a @@ -1895,6 +2060,7 @@ endr ld [hl], $73 call WaitBGMap ret + ; 91ab9 .StationPointers: ; 91ab9 @@ -1907,6 +2073,7 @@ endr dw LoadStation_PlacesAndPeople dw LoadStation_LetsAllSing dw LoadStation_RocketRadio + ; 91acb .OakOrPnP: ; 91acb @@ -1921,6 +2088,7 @@ endr .kanto jp LoadStation_PlacesAndPeople + ; 91ae1 PokegearMap: ; 91ae1 @@ -1935,6 +2103,7 @@ PokegearMap: ; 91ae1 call LoadTownMapGFX call FillKantoMap ret + ; 91af3 _FlyMap: ; 91af3 @@ -1985,7 +2154,6 @@ _FlyMap: ; 91af3 ld de, Flypoints + 1 add hl, de ld a, [hl] - .exit ld [wd002], a pop af @@ -2000,6 +2168,7 @@ _FlyMap: ; 91af3 ld a, [wd002] ld e, a ret + ; 91b73 FlyMapScroll: ; 91b73 @@ -2024,7 +2193,6 @@ FlyMapScroll: ; 91b73 ld a, e dec a ld [hl], a - .NotAtEndYet inc [hl] call CheckIfVisitedFlypoint @@ -2039,18 +2207,17 @@ FlyMapScroll: ; 91b73 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 @@ -2060,47 +2227,38 @@ TownMapBubble: ; 91bb5 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 @@ -2118,13 +2276,12 @@ TownMapBubble: ; 91bb5 ld de, Flypoints add hl, de ld e, [hl] - callba GetLandmarkName - hlcoord 2, 1 ld de, StringBuffer1 call PlaceString ret + ; 91c17 GetMapCursorCoordinates: ; 91c17 @@ -2147,6 +2304,7 @@ GetMapCursorCoordinates: ; 91c17 add hl, bc ld [hl], d ret + ; 91c3c CheckIfVisitedFlypoint: ; 91c3c @@ -2166,6 +2324,7 @@ CheckIfVisitedFlypoint: ; 91c3c pop bc and a ret + ; 91c50 HasVisitedSpawn: ; 91c50 @@ -2176,18 +2335,16 @@ HasVisitedSpawn: ; 91c50 predef FlagPredef ld a, c ret + ; 91c5e Flypoints: ; 91c5e ; landmark, spawn point - const_def - flypoint: MACRO const FLY_\1 db \2, SPAWN_\1 ENDM - ; Johto flypoint NEW_BARK, NEW_BARK_TOWN flypoint CHERRYGROVE, CHERRYGROVE_CITY @@ -2201,10 +2358,9 @@ ENDM flypoint LAKE, LAKE_OF_RAGE flypoint BLACKTHORN, BLACKTHORN_CITY flypoint MT_SILVER, SILVER_CAVE - ; Kanto -KANTO_FLYPOINT EQU const_value +KANTO_FLYPOINT EQU const_value flypoint PALLET, PALLET_TOWN flypoint VIRIDIAN, VIRIDIAN_CITY flypoint PEWTER, PEWTER_CITY @@ -2217,54 +2373,46 @@ KANTO_FLYPOINT EQU const_value flypoint FUCHSIA, FUCHSIA_CITY flypoint CINNABAR, CINNABAR_ISLAND flypoint INDIGO, INDIGO_PLATEAU - db -1 + ; 91c8f ret_91c8f: ; 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 +; 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 @@ -2273,23 +2421,23 @@ FlyMap: ; 91c90 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 +; 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... @@ -2298,11 +2446,10 @@ FlyMap: ; 91c90 ; ...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 @@ -2316,30 +2463,25 @@ FlyMap: ; 91c90 ; 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 _Area: ; 91d11 @@ -2355,17 +2497,14 @@ _Area: ; 91d11 ld [hBGMapMode], a ld a, $1 ld [hInMenu], a - ld de, PokedexNestIconGFX ld hl, VTiles0 tile $7f lb bc, BANK(PokedexNestIconGFX), 1 call Request2bpp - call .GetPlayerOrFastShipIcon ld hl, VTiles0 tile $78 ld c, 4 call Request2bpp - call LoadTownMapGFX call FillKantoMap call .PlaceString_MonsNest @@ -2399,7 +2538,6 @@ _Area: ; 91d11 .select call .HideNestsShowPlayer - .next call DelayFrame jr .loop @@ -2411,6 +2549,7 @@ _Area: ; 91d11 pop af ld [wd002], a ret + ; 91d9b .LeftRightInput: ; 91d9b @@ -2446,6 +2585,7 @@ _Area: ; 91d11 ld a, 1 ; Kanto call .GetAndPlaceNest ret + ; 91dcd .BlinkNestIcons: ; 91dcd @@ -2465,6 +2605,7 @@ _Area: ; 91d11 ld bc, SpritesEnd - Sprites call CopyBytes ret + ; 91de9 .PlaceString_MonsNest: ; 91de9 @@ -2487,6 +2628,7 @@ _Area: ; 91d11 ld de, .String_SNest call PlaceString ret + ; 91e16 .String_SNest: @@ -2530,12 +2672,12 @@ _Area: ; 91d11 ld bc, SpritesEnd - Sprites call CopyBytes ret + ; 91e5a .HideNestsShowPlayer: ; 91e5a call .CheckPlayerLocation ret c - ld a, [wd002] ld e, a callba GetLandmarkCoords @@ -2546,22 +2688,18 @@ _Area: ; 91d11 .ShowPlayerLoop ld a, [de] cp $80 - jr z, .copy - + jr z, .clear_oam add b ld [hli], a inc de - ld a, [de] add c ld [hli], a inc de - ld a, [de] add $78 ; where the player's sprite is loaded ld [hli], a inc de - push bc ld c, 0 ; RED ld a, [PlayerGender] @@ -2572,15 +2710,15 @@ _Area: ; 91d11 ld a, c ld [hli], a pop bc - jr .ShowPlayerLoop -.copy - ld hl, Sprites + $10 - ld bc, SpritesEnd - (Sprites + $10) +.clear_oam + ld hl, Sprites + 4 * 4 + ld bc, SpritesEnd - (Sprites + 4 * 4) xor a call ByteFill ret + ; 91e9c .PlayerOAM: ; 91e9c @@ -2593,6 +2731,7 @@ _Area: ; 91d11 .CheckPlayerLocation: ; 91ea9 ; Don't show the player's sprite if you're + ; not in the same region as what's currently ; on the screen. ld a, [wd002] @@ -2600,7 +2739,6 @@ _Area: ; 91d11 jr z, .johto cp KANTO_LANDMARK jr c, .johto - .kanto ld a, [wd003] and a @@ -2611,7 +2749,6 @@ _Area: ; 91d11 ld a, [wd003] and a jr nz, .clear - .ok and a ret @@ -2623,6 +2760,7 @@ _Area: ; 91d11 call ByteFill scf ret + ; 91ed0 .GetPlayerOrFastShipIcon: ; 91ed0 @@ -2636,6 +2774,7 @@ _Area: ; 91d11 ld de, FastShipGFX ld b, BANK(FastShipGFX) ret + ; 91ee4 TownMapBGUpdate: ; 91ee4 @@ -2646,29 +2785,26 @@ TownMapBGUpdate: ; 91ee4 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 @@ -2677,7 +2813,6 @@ FillJohtoMap: ; 91eff FillKantoMap: ; 91f04 ld de, KantoMap - FillTownMap: ; 91f07 hlcoord 0, 0 .loop @@ -2688,11 +2823,11 @@ FillTownMap: ; 91f07 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, SCREEN_WIDTH * SCREEN_HEIGHT @@ -2700,17 +2835,15 @@ TownMapPals: ; 91f13 ; 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 @@ -2735,7 +2868,6 @@ TownMapPals: ; 91f13 .pal0 xor a - .update pop hl ld [de], a @@ -2766,16 +2898,13 @@ TownMapMon: ; 91f7b add hl, de ld a, [hl] ld [wd265], a - ; Get FlyMon icon ld e, 8 ; starting tile in VRAM callba GetSpeciesIcon - ; Animation/palette depixel 0, 0 ld a, SPRITE_ANIM_INDEX_00 call _InitSpriteAnimStruct - ld hl, SPRITEANIMSTRUCT_TILE_ID add hl, bc ld [hl], $8 @@ -2783,19 +2912,17 @@ TownMapMon: ; 91f7b add hl, bc ld [hl], SPRITE_ANIM_SEQ_NULL 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 @@ -2805,28 +2932,24 @@ TownMapPlayerIcon: ; 91fa6 ld c, 4 ; # tiles ld a, BANK(ChrisSpriteGFX) ; does nothing call Request2bpp - ; Animation/palette depixel 0, 0 - ld b, SPRITE_ANIM_INDEX_WALK_CYCLE ; Male + ld b, SPRITE_ANIM_INDEX_RED_WALK ; Male ld a, [PlayerGender] bit 0, a jr z, .got_gender - ld b, SPRITE_ANIM_INDEX_1E ; Female + ld b, SPRITE_ANIM_INDEX_BLUE_WALK ; Female .got_gender ld a, b call _InitSpriteAnimStruct - ld hl, SPRITEANIMSTRUCT_TILE_ID add hl, bc ld [hl], $10 - pop af ld e, a push bc callba GetLandmarkCoords pop bc - ld hl, SPRITEANIMSTRUCT_XCOORD add hl, bc ld [hl], e @@ -2834,6 +2957,7 @@ TownMapPlayerIcon: ; 91fa6 add hl, bc ld [hl], d ret + ; 0x91ff2 LoadTownMapGFX: ; 91ff2 @@ -2842,8 +2966,8 @@ LoadTownMapGFX: ; 91ff2 lb bc, BANK(TownMapGFX), $30 call DecompressRequest2bpp ret -; 91fff +; 91fff JohtoMap: ; 91fff INCBIN "gfx/misc/johto.bin" @@ -2855,12 +2979,10 @@ INCBIN "gfx/misc/kanto.bin" PokedexNestIconGFX: ; 922d1 INCBIN "gfx/pokegear/dexmap_nest_icon.2bpp" - FlyMapLabelBorderGFX: ; 922e1 INCBIN "gfx/pokegear/flymap_label_border.2bpp" -Function92311: ; 92311 -; unreferenced +; XXX xor a ld [wd002], a call ClearBGPalettes @@ -2913,7 +3035,7 @@ Function92311: ; 92311 .pressedB ld a, -1 - jr .asm_9239f + jr .finished_a_b .pressedA ld a, [wd002] @@ -2923,8 +3045,7 @@ Function92311: ; 92311 ld de, Flypoints + 1 add hl, de ld a, [hl] - -.asm_9239f +.finished_a_b ld [wd002], a pop af ld [hInMenu], a @@ -2938,6 +3059,7 @@ Function92311: ; 92311 ld a, [wd002] ld e, a ret + ; 923b8 .HandleDPad: ; 923b8 @@ -2968,12 +3090,10 @@ Function92311: ; 92311 ld [hl], FLY_INDIGO + 1 .okay_ul dec [hl] - .continue ld a, [wd002] cp KANTO_FLYPOINT jr c, .johto - call FillKantoMap xor a ld b, $9c @@ -2983,7 +3103,6 @@ Function92311: ; 92311 call FillJohtoMap ld a, $90 ld b, $98 - .finish ld [hWY], a ld a, b @@ -2993,4 +3112,5 @@ Function92311: ; 92311 xor a ld [hBGMapMode], a ret + ; 92402 diff --git a/engine/predef.asm b/engine/predef.asm index f459747bb..f52127311 100644 --- a/engine/predef.asm +++ b/engine/predef.asm @@ -49,7 +49,7 @@ PredefPointers:: ; 856b add_predef Predef_LinkTextbox ; $ 10 add_predef PrintMoveDesc add_predef UpdatePlayerHUD - add_predef FillBox + add_predef PlaceGraphic add_predef CheckPlayerPartyForFitPkmn add_predef UpdateEnemyHUD add_predef StartBattle @@ -88,7 +88,7 @@ PredefPointers:: ; 856b add_predef PlayBattleAnim add_predef Predef38 ; $38 add_predef Predef39 - add_predef Functionfd1d0 + add_predef Predef3A add_predef PartyMonItemName add_predef GetFrontpic add_predef GetBackpic @@ -103,6 +103,6 @@ PredefPointers:: ; 856b add_predef LoadMonAnimation add_predef AnimateFrontpic add_predef Functiond0669 ; $48 - add_predef Functiond066e + add_predef HOF_AnimateFrontpic dbw $ff, Function2d43 ; ???? ; 864c diff --git a/engine/prof_oaks_pc.asm b/engine/prof_oaks_pc.asm new file mode 100755 index 000000000..05ff2b691 --- /dev/null +++ b/engine/prof_oaks_pc.asm @@ -0,0 +1,219 @@ + +ProfOaksPC: ; 0x265d3 + ld hl, OakPCText1 + call MenuTextBox + call YesNoBox + jr c, .shutdown + call ProfOaksPCBoot ; player chose "yes"? +.shutdown + ld hl, OakPCText4 + call PrintText + call JoyWaitAorB + call ExitMenu + ret + +ProfOaksPCBoot ; 0x265ee + ld hl, OakPCText2 + call PrintText + call Rate + call PlaySFX ; sfx loaded by previous Rate function call + call JoyWaitAorB + call WaitSFX + ret + +ProfOaksPCRating: ; 0x26601 + call Rate + push de + ld de, MUSIC_NONE + call PlayMusic + pop de + call PlaySFX + call JoyWaitAorB + call WaitSFX + ret + +Rate: ; 0x26616 +; calculate Seen/Owned + ld hl, PokedexSeen + ld b, EndPokedexSeen - PokedexSeen + call CountSetBits + ld [wd002], a + ld hl, PokedexCaught + ld b, EndPokedexCaught - PokedexCaught + call CountSetBits + ld [wd003], a + +; print appropriate rating + call .UpdateRatingBuffers + ld hl, OakPCText3 + call PrintText + call JoyWaitAorB + ld a, [wd003] + ld hl, OakRatings + call FindOakRating + push de + call PrintText + pop de + ret + +.UpdateRatingBuffers: ; 0x26647 + ld hl, StringBuffer3 + ld de, wd002 + call .UpdateRatingBuffer + ld hl, StringBuffer4 + ld de, wd003 + call .UpdateRatingBuffer + ret + +.UpdateRatingBuffer: ; 0x2665a + push hl + ld a, "@" + ld bc, ITEM_NAME_LENGTH + call ByteFill + pop hl + lb bc, PRINTNUM_RIGHTALIGN | 1, 3 + call PrintNum + ret + +FindOakRating: ; 0x2666b +; return sound effect in de +; return text pointer in hl + nop + ld c, a +.loop + ld a, [hli] + cp c + jr nc, .match +rept 4 + inc hl +endr + jr .loop + +.match + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld h, [hl] + ld l, a + ret + +OakRatings: ; 0x2667f +oakrating: MACRO + db \1 + dw \2, \3 +endm + +; if you caught at most this many, play this sound, load this text + oakrating 9, SFX_DEX_FANFARE_LESS_THAN_20, OakRating01 + oakrating 19, SFX_DEX_FANFARE_LESS_THAN_20, OakRating02 + oakrating 34, SFX_DEX_FANFARE_20_49, OakRating03 + oakrating 49, SFX_DEX_FANFARE_20_49, OakRating04 + oakrating 64, SFX_DEX_FANFARE_50_79, OakRating05 + oakrating 79, SFX_DEX_FANFARE_50_79, OakRating06 + oakrating 94, SFX_DEX_FANFARE_80_109, OakRating07 + oakrating 109, SFX_DEX_FANFARE_80_109, OakRating08 + oakrating 124, SFX_CAUGHT_MON, OakRating09 + oakrating 139, SFX_CAUGHT_MON, OakRating10 + oakrating 154, SFX_DEX_FANFARE_140_169, OakRating11 + oakrating 169, SFX_DEX_FANFARE_140_169, OakRating12 + oakrating 184, SFX_DEX_FANFARE_170_199, OakRating13 + oakrating 199, SFX_DEX_FANFARE_170_199, OakRating14 + oakrating 214, SFX_DEX_FANFARE_200_229, OakRating15 + oakrating 229, SFX_DEX_FANFARE_200_229, OakRating16 + oakrating 239, SFX_DEX_FANFARE_230_PLUS, OakRating17 + oakrating 248, SFX_DEX_FANFARE_230_PLUS, OakRating18 + oakrating 255, SFX_DEX_FANFARE_230_PLUS, OakRating19 + +OakPCText1: ; 0x266de + text_jump _OakPCText1 + db "@" + +OakPCText2: ; 0x266e3 + text_jump _OakPCText2 + db "@" + +OakPCText3: ; 0x266e8 + text_jump _OakPCText3 + db "@" + +OakRating01: + text_jump _OakRating01 + db "@" + +OakRating02: + text_jump _OakRating02 + db "@" + +OakRating03: + text_jump _OakRating03 + db "@" + +OakRating04: + text_jump _OakRating04 + db "@" + +OakRating05: + text_jump _OakRating05 + db "@" + +OakRating06: + text_jump _OakRating06 + db "@" + +OakRating07: + text_jump _OakRating07 + db "@" + +OakRating08: + text_jump _OakRating08 + db "@" + +OakRating09: + text_jump _OakRating09 + db "@" + +OakRating10: + text_jump _OakRating10 + db "@" + +OakRating11: + text_jump _OakRating11 + db "@" + +OakRating12: + text_jump _OakRating12 + db "@" + +OakRating13: + text_jump _OakRating13 + db "@" + +OakRating14: + text_jump _OakRating14 + db "@" + +OakRating15: + text_jump _OakRating15 + db "@" + +OakRating16: + text_jump _OakRating16 + db "@" + +OakRating17: + text_jump _OakRating17 + db "@" + +OakRating18: + text_jump _OakRating18 + db "@" + +OakRating19: + text_jump _OakRating19 + db "@" + +OakPCText4: ; 0x2674c + text_jump _OakPCText4 + db "@" diff --git a/engine/scripting.asm b/engine/scripting.asm index 0a68243d3..42d060e9b 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -2806,9 +2806,9 @@ Script_xycompare: ; 97a01 ; pointer (MultiByteParam) call GetScriptByte - ld [wd453], a + ld [wXYComparePointer], a call GetScriptByte - ld [wd454], a + ld [wXYComparePointer + 1], a ret ; 97a0e diff --git a/engine/sprite_anims.asm b/engine/sprite_anims.asm index 827626114..50eb61df6 100755 --- a/engine/sprite_anims.asm +++ b/engine/sprite_anims.asm @@ -19,14 +19,14 @@ DoAnimFrame: ; 8d24b dw .two ; bouncing mon icon, selected dw .three ; bouncing mon icon, menu open dw .four - dw .five + dw .namingscreencursor dw .GameFreakLogo ; Game Freak logo dw .seven dw .eight dw .SlotsGolem ; Something to do with slots dw .SlotsChansey ; Something to do with slots dw .SlotsChanseyEgg ; Something to do with slots - dw .twelve ; blinking cursor + dw .mailcompositioncursor ; blinking cursor dw .thirteen dw .fourteen dw .fifteen @@ -217,12 +217,12 @@ DoAnimFrame: ; 8d24b ld [hl], a ret -.five: ; 8d36c (23:536c) - callab Function11a3b +.namingscreencursor: ; 8d36c (23:536c) + callab NamingScreen_AnimateCursor ret -.twelve: ; 8d373 (23:5373) - callab Function120c1 +.mailcompositioncursor: ; 8d373 (23:5373) + callab ComposeMail_AnimateCursor ret .GameFreakLogo: ; 8d37a (23:537a) @@ -409,7 +409,7 @@ DoAnimFrame: ; 8d24b ret .fifteen: ; 8d475 (23:5475) - callab Function90d41 + callab AnimatePokegearModeIndicatorArrow ret .fourteen: ; 8d47c (23:547c) diff --git a/engine/startmenu.asm b/engine/startmenu.asm index 6ba60af36..25a3eee39 100755 --- a/engine/startmenu.asm +++ b/engine/startmenu.asm @@ -393,7 +393,7 @@ endr ld hl, StatusFlags2 bit 2, [hl] ; bug catching contest ret z - callba Function24bdc + callba StartMenu_DrawBugContestStatusBox ret ; 128de @@ -403,7 +403,7 @@ endr jr nz, .contest ret .contest - callba Function24be7 + callba StartMenu_PrintBugContestStatus ret ; 128ed diff --git a/engine/tile_events.asm b/engine/tile_events.asm index 8a6f2bc66..a6794e817 100755 --- a/engine/tile_events.asm +++ b/engine/tile_events.asm @@ -1,6 +1,6 @@ CheckWarpCollision:: ; 1499a ; Is this tile a warp? - ld a, [PlayerNextTile] + ld a, [PlayerStandingTile] cp $60 jr z, .warp cp $68 @@ -19,7 +19,7 @@ CheckWarpCollision:: ; 1499a CheckDirectionalWarp:: ; 149af ; If this is a directional warp, clear carry (press the designated button to warp). ; Else, set carry (immediate warp). - ld a, [PlayerNextTile] + ld a, [PlayerStandingTile] cp $70 ; Warp on down jr z, .not_warp cp $76 ; Warp on left @@ -39,7 +39,7 @@ CheckDirectionalWarp:: ; 149af CheckWarpFacingDown: ; 149c6 ld de, 1 ld hl, .blocks - ld a, [PlayerNextTile] + ld a, [PlayerStandingTile] call IsInArray ret ; 149d3 @@ -58,7 +58,7 @@ CheckWarpFacingDown: ; 149c6 ; 149dd CheckGrassCollision:: ; 149dd - ld a, [PlayerNextTile] + ld a, [PlayerStandingTile] ld hl, .blocks ld de, 1 call IsInArray @@ -98,7 +98,7 @@ CheckCutCollision: ; 149f5 ; 14a07 Function14a07:: ; 14a07 - ld a, [PlayerNextTile] + ld a, [PlayerStandingTile] ld de, $1f cp $71 ; door ret z diff --git a/engine/time.asm b/engine/time.asm index 542141198..4240522c2 100755 --- a/engine/time.asm +++ b/engine/time.asm @@ -200,11 +200,9 @@ CheckPokerusTick:: ; 114e7 call CalcDaysSince call GetDaysSince and a - jr z, .done - + jr z, .done ; not even a day has passed since game start ld b, a callba ApplyPokerusTick - .done xor a ret @@ -229,13 +227,13 @@ CheckUnusedTwoDayTimer: ; 1150c ret ; 1151c -Function1151c: ; unreferenced +; XXX ld hl, DailyFlags set 2, [hl] ret ; 11522 -Function11522: ; unreferenced +; XXX and a ld hl, DailyFlags bit 2, [hl] diff --git a/engine/time_capsule/conversion.asm b/engine/time_capsule/conversion.asm index e2c545c48..5d093d515 100755 --- a/engine/time_capsule/conversion.asm +++ b/engine/time_capsule/conversion.asm @@ -367,13 +367,13 @@ NewPokedexEntry: ; fb877 ld a, [hSCX] add -5 ; 251 ; NUM_POKEMON ld [hSCX], a - call Functionfb8c8 + call .ReturnFromDexRegistration pop af ld [hMapAnims], a ret ; fb8c8 -Functionfb8c8: ; fb8c8 +.ReturnFromDexRegistration: ; fb8c8 call ClearTileMap call LoadFontsExtra call LoadStandardFont diff --git a/engine/tmhm2.asm b/engine/tmhm2.asm index fdb829034..94de4f3e3 100755 --- a/engine/tmhm2.asm +++ b/engine/tmhm2.asm @@ -196,16 +196,16 @@ TMHM_PocketLoop: ; 2c8d3 (b:48d3) xor a ld [hBGMapMode], a call TMHM_DisplayPocketItems - ld a, $2 + ld a, 2 ld [w2DMenuCursorInitY], a - ld a, $7 + ld a, 7 ld [w2DMenuCursorInitX], a - ld a, $1 + ld a, 1 ld [w2DMenuNumCols], a - ld a, $5 + ld a, 5 sub d inc a - cp $6 + cp 6 jr nz, .okay dec a .okay diff --git a/engine/town_map.asm b/engine/town_map.asm deleted file mode 100755 index 100aaae17..000000000 --- a/engine/town_map.asm +++ /dev/null @@ -1,171 +0,0 @@ - -_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 ClearSpriteAnims - 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 WaitBGMap2 - 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_POKEGEAR_PALS - call GetSGBLayout - call SetPalettes - ld a, [hCGB] - and a - jr z, .dmg - ld a, %11100100 - call DmgToCgbObjPal0 - call DelayFrame - -.dmg - ld a, [wd002] - cp KANTO_LANDMARK - jr nc, .kanto - ld d, KANTO_LANDMARK - 1 - ld e, 1 - call .loop - jr .resume - -.kanto - call TownMap_GetKantoLandmarkLimits - call .loop - -.resume - pop af - ld [VramState], a - pop af - ld [hInMenu], a - pop af - ld [Options], a - call ClearBGPalettes - ret - -.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 PlaySpriteAnimations - 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 diff --git a/engine/trade/animation.asm b/engine/trade/animation.asm index a084fc3be..719a230ff 100755 --- a/engine/trade/animation.asm +++ b/engine/trade/animation.asm @@ -3,12 +3,12 @@ TradeAnimation: ; 28f24 ld [wcf66], a ld hl, wPlayerTrademonSenderName ld de, wOTTrademonSenderName - call Function297ff + call LinkTradeAnim_LoadTradePlayerNames ld hl, wPlayerTrademonSpecies ld de, wOTTrademonSpecies - call Function29814 + call LinkTradeAnim_LoadTradeMonSpecies ld de, .data_28f3f - jr Function28fa1 + jr RunTradeAnimSequence .data_28f3f tradeanim_setup_givemon_scroll @@ -54,12 +54,12 @@ TradeAnimationPlayer2: ; 28f63 ld [wcf66], a ld hl, wOTTrademonSenderName ld de, wPlayerTrademonSenderName - call Function297ff + call LinkTradeAnim_LoadTradePlayerNames ld hl, wOTTrademonSpecies ld de, wPlayerTrademonSpecies - call Function29814 + call LinkTradeAnim_LoadTradeMonSpecies ld de, .data_28f7e - jr Function28fa1 + jr RunTradeAnimSequence .data_28f7e tradeanim_ot_sends_text_2 @@ -99,7 +99,7 @@ TradeAnimationPlayer2: ; 28f63 tradeanim_scroll_out_right tradeanim_end -Function28fa1: ; 28fa1 +RunTradeAnimSequence: ; 28fa1 ld hl, wTradeAnimPointer ld [hl], e inc hl @@ -116,7 +116,7 @@ Function28fa1: ; 28fa1 ld a, [hl] push af set 4, [hl] - call Function28fdb + call .TradeAnimLayout ld a, [wcf66] and a jr nz, .anim_loop @@ -134,7 +134,7 @@ Function28fa1: ; 28fa1 ret ; 28fdb -Function28fdb: ; 28fdb +.TradeAnimLayout: ; 28fdb xor a ld [wJumptableIndex], a call ClearBGPalettes @@ -145,7 +145,7 @@ Function28fdb: ; 28fdb callab ClearSpriteAnims ld a, [hCGB] and a - jr z, .asm_2900b + jr z, .NotCGB ld a, $1 ld [rVBK], a ld hl, VTiles0 @@ -155,7 +155,7 @@ Function28fdb: ; 28fdb ld a, $0 ld [rVBK], a -.asm_2900b +.NotCGB hlbgcoord 0, 0 ld bc, sScratch - VBGMap0 ld a, " " @@ -182,7 +182,7 @@ Function28fdb: ; 28fdb ld [hWY], a callba GetTrademonFrontpic call EnableLCD - call Function2982b + call LoadTradeBallAndCableGFX ld a, [wPlayerTrademonSpecies] ld hl, wPlayerTrademonDVs ld de, VTiles0 @@ -313,7 +313,7 @@ TradeAnim_End: ; 29123 TradeAnim_TubeToOT1: ; 29129 ld a, $ed call Function292f6 - ld a, [wc74c] + ld a, [wLinkTradeSendmonSpecies] ld [wd265], a xor a depixel 5, 11, 4, 0 @@ -323,7 +323,7 @@ TradeAnim_TubeToOT1: ; 29129 TradeAnim_TubeToPlayer1: ; 2913c ld a, $ee call Function292f6 - ld a, [wc74d] + ld a, [wLinkTradeGetmonSpecies] ld [wd265], a ld a, $2 depixel 9, 18, 4, 4 @@ -350,7 +350,7 @@ Function2914e: ; 2914e ld a, $70 ld [hWY], a call EnableLCD - call Function2985a + call LoadTradeBubbleGFX pop de ld a, SPRITE_ANIM_INDEX_11 call _InitSpriteAnimStruct @@ -476,7 +476,7 @@ TradeAnim_TubeToPlayer8: ; 29229 ld a, $90 ld [hWY], a call EnableLCD - call Function2982b + call LoadTradeBallAndCableGFX call WaitBGMap call Function297ed call TradeAnim_Next @@ -864,9 +864,9 @@ TradeAnim_ShowFrontpic: ; 294c3 call Function297cf hlcoord 7, 2 xor a - ld [hFillBox], a + ld [hGraphicStartTile], a lb bc, 7, 7 - predef FillBox + predef PlaceGraphic call WaitBGMap ret ; 294e7 @@ -1376,17 +1376,17 @@ Function297ed: ; 297ed ld a, [hSGB] and a ld a, %11100100 ; 3,2,1,0 - jr z, .asm_297f6 + jr z, .not_sgb ld a, $f0 -.asm_297f6 +.not_sgb call DmgToCgbObjPal0 ld a, %11100100 ; 3,2,1,0 call DmgToCgbBGPals ret ; 297ff -Function297ff: ; 297ff +LinkTradeAnim_LoadTradePlayerNames: ; 297ff push de ld de, wLinkPlayer1Name ld bc, NAME_LENGTH @@ -1398,11 +1398,11 @@ Function297ff: ; 297ff ret ; 29814 -Function29814: ; 29814 +LinkTradeAnim_LoadTradeMonSpecies: ; 29814 ld a, [hl] - ld [wc74c], a + ld [wLinkTradeSendmonSpecies], a ld a, [de] - ld [wc74d], a + ld [wLinkTradeGetmonSpecies], a ret ; 2981d @@ -1416,7 +1416,7 @@ Function2981d: ; 2981d ret ; 2982b -Function2982b: ; 2982b +LoadTradeBallAndCableGFX: ; 2982b call DelayFrame ld de, TradeBallGFX ld hl, VTiles0 tile $62 @@ -1431,13 +1431,13 @@ Function2982b: ; 2982b lb bc, BANK(TradeCableGFX), $4 call Request2bpp xor a - ld hl, wc300 + ld hl, wSpriteAnimDict ld [hli], a ld [hl], $62 ret ; 2985a -Function2985a: ; 2985a +LoadTradeBubbleGFX: ; 2985a call DelayFrame ld e, $3 callab Function8e83f @@ -1446,7 +1446,7 @@ Function2985a: ; 2985a lb bc, BANK(TradeBubbleGFX), $4 call Request2bpp xor a - ld hl, wc300 + ld hl, wSpriteAnimDict ld [hli], a ld [hl], $62 ret diff --git a/engine/trainer_card.asm b/engine/trainer_card.asm index ae8ad2aa5..4898d657a 100755 --- a/engine/trainer_card.asm +++ b/engine/trainer_card.asm @@ -245,8 +245,8 @@ TrainerCard_PrintTopHalfOfCard: ; 25299 (9:5299) hlcoord 14, 1 lb bc, 5, 7 xor a - ld [hFillBox], a - predef FillBox + ld [hGraphicStartTile], a + predef PlaceGraphic ret ; 252ec (9:52ec) diff --git a/engine/warp_connection.asm b/engine/warp_connection.asm index 7df4fc35b..6d7e00181 100755 --- a/engine/warp_connection.asm +++ b/engine/warp_connection.asm @@ -349,7 +349,7 @@ CheckMovingOffEdgeOfMap:: ; 104820 (41:4820) ret .down - ld a, [PlayerNextMapY] + ld a, [PlayerStandingMapY] sub 4 ld b, a ld a, [MapHeight] @@ -360,7 +360,7 @@ CheckMovingOffEdgeOfMap:: ; 104820 (41:4820) ret .up - ld a, [PlayerNextMapY] + ld a, [PlayerStandingMapY] sub 4 cp -1 jr z, .ok @@ -368,7 +368,7 @@ CheckMovingOffEdgeOfMap:: ; 104820 (41:4820) ret .left - ld a, [PlayerNextMapX] + ld a, [PlayerStandingMapX] sub $4 cp -1 jr z, .ok @@ -376,7 +376,7 @@ CheckMovingOffEdgeOfMap:: ; 104820 (41:4820) ret .right - ld a, [PlayerNextMapX] + ld a, [PlayerStandingMapX] sub 4 ld b, a ld a, [MapWidth] |