From e0b4fc781aba3c9ac184e0ab91dfcf5d11c585c5 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 13 Nov 2015 00:49:27 -0500 Subject: [PATCH 01/40] sprite engine; tileset constants --- constants/tilemap_constants.asm | 72 +- engine/color.asm | 8 +- engine/engine_flags.asm | 26 +- engine/events.asm | 2 +- engine/events_2.asm | 4 +- engine/flypoints.asm | 2 +- engine/map_objects.asm | 6 +- engine/overworld.asm | 1480 +++++++++++ engine/pokedex.asm | 8 +- engine/sprites.asm | 4166 +++++++++++++++++++++---------- event/mom.asm | 20 +- home/map.asm | 245 +- home/palettes.asm | 2 + hram.asm | 1 + main.asm | 2979 +--------------------- maps/map_headers.asm | 146 +- predef/cgb.asm | 308 +-- predef/sgb.asm | 25 +- wram.asm | 47 +- 19 files changed, 4805 insertions(+), 4742 deletions(-) create mode 100755 engine/overworld.asm diff --git a/constants/tilemap_constants.asm b/constants/tilemap_constants.asm index 215bd2934..e64d042d8 100644 --- a/constants/tilemap_constants.asm +++ b/constants/tilemap_constants.asm @@ -5,39 +5,39 @@ WATRTILE EQU 15 TALK EQU 1 << 4 const_value SET 1 - const TILESET_JOHTO_OUTSIDE_1 ; 01 - const TILESET_JOHTO_OUTSIDE_2 ; 02 - const TILESET_KANTO_OUTSIDE ; 03 - const TILESET_BATTLE_TOWER_OUTSIDE ; 04 - const TILESET_HOUSE_1 ; 05 - const TILESET_KRISS_HOUSE ; 06 - const TILESET_POKECENTER ; 07 - const TILESET_GATE ; 08 - const TILESET_PORT ; 09 - const TILESET_LAB ; 0a - const TILESET_POWER_PLANT ; 0b - const TILESET_MART ; 0c - const TILESET_CELADON_MANSION ; 0d - const TILESET_GAME_CORNER ; 0e - const TILESET_GYM_1 ; 0f - const TILESET_KURT_HOUSE ; 10 - const TILESET_TRAIN_STATION ; 11 - const TILESET_OLIVINE_GYM ; 12 - const TILESET_LIGHTHOUSE ; 13 - const TILESET_KRISS_HOUSE_2F ; 14 - const TILESET_GOLDENROD_POKECOM_CENTER_2F_MOBILE ; 15 - const TILESET_BATTLE_TOWER ; 16 - const TILESET_SPROUT_TOWER ; 17 - const TILESET_CAVE ; 18 - const TILESET_PARK ; 19 - const TILESET_RUINS_OF_ALPH ; 1a - const TILESET_RADIO_TOWER ; 1b - const TILESET_UNDERGROUND ; 1c - const TILESET_ICE_PATH ; 1d - const TILESET_WHIRL_ISLANDS ; 1e - const TILESET_ILEX_FOREST ; 1f - const TILESET_20 ; 20 - const TILESET_HO_OH_WORD_ROOM ; 21 - const TILESET_KABUTO_WORD_ROOM ; 22 - const TILESET_OMANYTE_WORD_ROOM ; 23 - const TILESET_AERODACTYL_WORD_ROOM ; 24 + const TILESET_JOHTO_1 ; 01 + const TILESET_JOHTO_2 ; 02 + const TILESET_KANTO ; 03 + const TILESET_BATTLE_TOWER_OUTSIDE ; 04 + const TILESET_HOUSE_1 ; 05 + const TILESET_KRISS_HOUSE ; 06 + const TILESET_POKECENTER ; 07 + const TILESET_GATE ; 08 + const TILESET_PORT ; 09 + const TILESET_LAB ; 0a + const TILESET_POWER_PLANT ; 0b + const TILESET_MART ; 0c + const TILESET_CELADON_MANSION ; 0d + const TILESET_GAME_CORNER ; 0e + const TILESET_GYM_1 ; 0f + const TILESET_KURT_HOUSE ; 10 + const TILESET_TRAIN_STATION ; 11 + const TILESET_OLIVINE_GYM ; 12 + const TILESET_LIGHTHOUSE ; 13 + const TILESET_KRISS_HOUSE_2F ; 14 + const TILESET_POKECOM_CENTER ; 15 + const TILESET_BATTLE_TOWER ; 16 + const TILESET_SPROUT_TOWER ; 17 + const TILESET_CAVE ; 18 + const TILESET_PARK ; 19 + const TILESET_RUINS_OF_ALPH ; 1a + const TILESET_RADIO_TOWER ; 1b + const TILESET_UNDERGROUND ; 1c + const TILESET_ICE_PATH ; 1d + const TILESET_WHIRL_ISLANDS ; 1e + const TILESET_ILEX_FOREST ; 1f + const TILESET_20 ; 20 + const TILESET_HO_OH_WORD_ROOM ; 21 + const TILESET_KABUTO_WORD_ROOM ; 22 + const TILESET_OMANYTE_WORD_ROOM ; 23 + const TILESET_AERODACTYL_WORD_ROOM ; 24 diff --git a/engine/color.asm b/engine/color.asm index 8530c2181..d24fdf2df 100644 --- a/engine/color.asm +++ b/engine/color.asm @@ -318,7 +318,7 @@ Function8bec: ; 8bec lb bc, 6, 4 ld a, [EnemySafeguardCount] and $3 - call Function9663 + call FillBoxCGB call LoadDETile ret ; 8c1d @@ -394,7 +394,7 @@ endr .asm_8c82 lb bc, 2, 8 ld a, e - call Function9663 + call FillBoxCGB ret ; 8c8a @@ -618,7 +618,7 @@ Function9643: ; 9643 ret ; 9663 -Function9663: ; 9663 +FillBoxCGB: ; 9663 .row push bc push hl @@ -752,7 +752,7 @@ Function96f3: ; 96f3 .asm_9712 lb bc, 2, 8 ld a, e - call Function9663 + call FillBoxCGB ret ; 971a diff --git a/engine/engine_flags.asm b/engine/engine_flags.asm index 5baa52cc4..49a7d82e1 100644 --- a/engine/engine_flags.asm +++ b/engine/engine_flags.asm @@ -22,7 +22,7 @@ ENDM engine_flag wMomSavingMoney, 0 ; mom saving money ; $8 engine_flag wMomSavingMoney, 7 ; dst - engine_flag wdc39, 0 + engine_flag wdc39, 0 ; unused, possibly related to a 2-day timer engine_flag StatusFlags, 0 ; pokedex engine_flag StatusFlags, 1 ; unown dex @@ -31,7 +31,7 @@ ENDM engine_flag StatusFlags, 6 ; credits skip engine_flag StatusFlags, 7 ; bug contest on ; $10 engine_flag StatusFlags2, 2 ; bug contest timer - engine_flag StatusFlags2, 1 + engine_flag StatusFlags2, 1 ; ??? engine_flag StatusFlags2, 0 ; rockets in radio tower engine_flag StatusFlags2, 4 ; bike shop call enabled (1024 bike steps reqd) engine_flag StatusFlags2, 5 ; give pokerus @@ -71,14 +71,14 @@ ENDM engine_flag UnlockedUnowns, 7 ; 8 ; fly - engine_flag VisitedSpawns, 0 ; your house - engine_flag VisitedSpawns, 1 ; viridian pokecenter - engine_flag VisitedSpawns, 2 ; pallet - engine_flag VisitedSpawns, 3 ; viridian - engine_flag VisitedSpawns, 4 ; pewter - engine_flag VisitedSpawns, 5 ; cerulean ; $38 - engine_flag VisitedSpawns, 6 ; rock tunnel - engine_flag VisitedSpawns, 7 ; vermilion + engine_flag VisitedSpawns, 0 ; your house + engine_flag VisitedSpawns, 1 ; viridian pokecenter + engine_flag VisitedSpawns, 2 ; pallet + engine_flag VisitedSpawns, 3 ; viridian + engine_flag VisitedSpawns, 4 ; pewter + engine_flag VisitedSpawns, 5 ; cerulean ; $38 + engine_flag VisitedSpawns, 6 ; rock tunnel + engine_flag VisitedSpawns, 7 ; vermilion engine_flag VisitedSpawns + 1, 0 ; lavender engine_flag VisitedSpawns + 1, 1 ; saffron engine_flag VisitedSpawns + 1, 2 ; celadon @@ -88,6 +88,7 @@ ENDM engine_flag VisitedSpawns + 1, 6 ; new bark engine_flag VisitedSpawns + 1, 7 ; cherrygrove engine_flag VisitedSpawns + 2, 0 ; violet + ; union cave engine_flag VisitedSpawns + 2, 2 ; azalea engine_flag VisitedSpawns + 2, 3 ; cianwood engine_flag VisitedSpawns + 2, 4 ; goldenrod @@ -97,6 +98,7 @@ ENDM engine_flag VisitedSpawns + 3, 0 ; lake of rage engine_flag VisitedSpawns + 3, 1 ; blackthorn engine_flag VisitedSpawns + 3, 2 ; silver cave + ; fast ship engine_flag VisitedSpawns + 3, 4 ; unused engine_flag wLuckyNumberShowFlag, 0 ; lucky number show @@ -157,7 +159,7 @@ ENDM engine_flag wDailyPhoneItemFlags, 0 ; beverly has nugget engine_flag wDailyPhoneItemFlags, 1 ; jose has star piece - engine_flag wDailyPhoneItemFlags, 2 ; wade has item (see bittable1 $032b-e) + engine_flag wDailyPhoneItemFlags, 2 ; wade has item (see EVENT_WADE_HAS_*** in constants/event_flags.asm) engine_flag wDailyPhoneItemFlags, 3 ; gina has leaf stone ; $80 engine_flag wDailyPhoneItemFlags, 4 ; alan has fire stone engine_flag wDailyPhoneItemFlags, 5 ; liz has thunderstone @@ -165,7 +167,7 @@ ENDM engine_flag wDailyPhoneItemFlags, 7 ; tully has water stone engine_flag wDailyPhoneItemFlags + 1, 0 ; tiffany has pink bow - engine_flag wDailyPhoneItemFlags + 1, 1 ; wilton has item (see bittable1 $032f-31) + engine_flag wDailyPhoneItemFlags + 1, 1 ; wilton has item (see EVENT_WILTON_HAS_*** in constants/event_flags.asm) engine_flag wDailyPhoneTimeOfDayFlags, 0 engine_flag wDailyPhoneTimeOfDayFlags, 1 ; $88 diff --git a/engine/events.asm b/engine/events.asm index bd26afffd..d41e3495a 100644 --- a/engine/events.asm +++ b/engine/events.asm @@ -511,7 +511,7 @@ CheckTimeEvents: ; 9693a jr nz, .nothing ld hl, StatusFlags2 - bit 2, [hl] + bit 2, [hl] ; bug contest jr z, .do_daily callba CheckBugContestTimer diff --git a/engine/events_2.asm b/engine/events_2.asm index 9dd604a47..f88a31c2a 100644 --- a/engine/events_2.asm +++ b/engine/events_2.asm @@ -3,8 +3,8 @@ WarpToSpawnPoint:: ; 97c28 ld hl, StatusFlags2 - res 1, [hl] - res 2, [hl] + res 1, [hl] ; ?? + res 2, [hl] ; bug contest ret ; 97c30 diff --git a/engine/flypoints.asm b/engine/flypoints.asm index 7f6d384aa..0eb49d70e 100755 --- a/engine/flypoints.asm +++ b/engine/flypoints.asm @@ -496,7 +496,7 @@ Function91d9b: ; 91d9b .asm_91db7 ld a, [StatusFlags] - bit 6, a + bit 6, a ; hall of fame ret z ld a, [hWY] and a diff --git a/engine/map_objects.asm b/engine/map_objects.asm index 4c2adc9aa..d174c76d9 100644 --- a/engine/map_objects.asm +++ b/engine/map_objects.asm @@ -717,7 +717,7 @@ Function46a6: ; 46a6 ld e, a push bc - call Function2a3c + call GetCoordTile pop bc ld hl, OBJECT_STANDING_TILE @@ -922,7 +922,7 @@ Function47bc: ; 47bc add hl, bc ld e, [hl] push bc - call Function2a3c + call GetCoordTile pop bc ld hl, OBJECT_STANDING_TILE add hl, bc @@ -2874,7 +2874,7 @@ Function5688: ; 5688 ld hl, OBJECT_MAP_Y add hl, bc ld e, [hl] - call Function2a3c + call GetCoordTile pop bc ld hl, OBJECT_STANDING_TILE add hl, bc diff --git a/engine/overworld.asm b/engine/overworld.asm new file mode 100755 index 000000000..517428007 --- /dev/null +++ b/engine/overworld.asm @@ -0,0 +1,1480 @@ +GetEmote2bpp: ; 1412a + ld a, $1 + ld [rVBK], a + call Get2bpp + xor a + ld [rVBK], a + ret +; 14135 + +_ReplaceKrisSprite:: ; 14135 + call GetPlayerSprite + ld a, [UsedSprites] + ld [hUsedSpriteIndex], a + ld a, [UsedSprites + 1] + ld [hUsedSpriteTile], a + call Function143c8 + ret +; 14146 + +Function14146: ; 14146 + ld hl, wSpriteFlags + ld a, [hl] + push af + res 7, [hl] + set 6, [hl] + call RunCallback_04 + pop af + ld [wSpriteFlags], a + ret +; 14157 + +Function14157: ; 14157 + ld hl, wSpriteFlags + ld a, [hl] + push af + set 7, [hl] + res 6, [hl] + call RunCallback_04 + pop af + ld [wSpriteFlags], a + ret +; 14168 + +RefreshSprites:: ; 14168 + call .Refresh + call RunCallback_04 + ret +; 1416f + +.Refresh: ; 1416f + xor a + ld bc, UsedSpritesEnd - UsedSprites + ld hl, UsedSprites + call ByteFill + call GetPlayerSprite + call AddMapSprites + call LoadAndSortSprites + ret +; 14183 + +GetPlayerSprite: ; 14183 +; Get Chris or Kris's sprite. + ld hl, .Chris + ld a, [wPlayerSpriteSetupFlags] + bit 2, a + jr nz, .go + ld a, [PlayerGender] + bit 0, a + jr z, .go + ld hl, .Kris + +.go + ld a, [PlayerState] + ld c, a +.loop + ld a, [hli] + cp c + jr z, .good + inc hl + cp $ff + jr nz, .loop + +; Any player state not in the array defaults to Chris's sprite. + xor a ; ld a, PLAYER_NORMAL + ld [PlayerState], a + ld a, SPRITE_CHRIS + jr .finish + +.good + ld a, [hl] + +.finish + ld [UsedSprites + 0], a + ld [PlayerSprite], a + ld [PlayerObjectSprite], a + ret + +.Chris + db PLAYER_NORMAL, SPRITE_CHRIS + db PLAYER_BIKE, SPRITE_CHRIS_BIKE + db PLAYER_SURF, SPRITE_SURF + db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU + db $ff + +.Kris + db PLAYER_NORMAL, SPRITE_KRIS + db PLAYER_BIKE, SPRITE_KRIS_BIKE + db PLAYER_SURF, SPRITE_SURF + db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU + db $ff +; 141c9 + + +AddMapSprites: ; 141c9 + call GetMapPermission + call CheckOutdoorMap + jr z, .outdoor + call AddIndoorSprites + ret + +.outdoor + call AddOutdoorSprites + ret +; 141d9 + + +AddIndoorSprites: ; 141d9 + ld hl, Map1ObjectSprite + ld a, 1 +.loop + push af + ld a, [hl] + call AddSpriteGFX + ld de, OBJECT_LENGTH + add hl, de + pop af + inc a + cp NUM_OBJECTS + jr nz, .loop + ret +; 141ee + + +AddOutdoorSprites: ; 141ee + ld a, [MapGroup] + dec a + ld c, a + ld b, 0 + ld hl, OutdoorSprites +rept 2 + add hl, bc +endr + ld a, [hli] + ld h, [hl] + ld l, a + ld c, MAX_OUTDOOR_SPRITES +.loop + push bc + ld a, [hli] + call AddSpriteGFX + pop bc + dec c + jr nz, .loop + ret +; 14209 + + +RunCallback_04: ; 14209 + ld a, $4 + call RunMapCallback + call Function1439b + call Function14215 + ret +; 14215 + +Function14215: ; 14215 + ld a, [wSpriteFlags] + bit 6, a + ret nz + ld c, EMOTE_08 + callba LoadEmote + call GetMapPermission + call CheckOutdoorMap + ld c, EMOTE_0B + jr z, .outdoor + ld c, EMOTE_0A + +.outdoor + callba LoadEmote + ret +; 14236 + + + +SafeGetSprite: ; 14236 + push hl + call GetSprite + pop hl + ret +; 1423c + +GetSprite: ; 1423c + call GetMonSprite + ret c + + ld hl, SpriteHeaders ; address + dec a + ld c, a + ld b, 0 + ld a, 6 + call AddNTimes + ; load the address into de + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ; load the length into c + ld a, [hli] + swap a + ld c, a + ; load the sprite bank into both b and h + ld b, [hl] + ld a, [hli] + ; load the sprite type into l + ld l, [hl] + ld h, a + ret +; 14259 + + +GetMonSprite: ; 14259 +; Return carry if a monster sprite was loaded. + + cp SPRITE_POKEMON + jr c, .Normal + cp SPRITE_DAYCARE_MON_1 + jr z, .wBreedMon1 + cp SPRITE_DAYCARE_MON_2 + jr z, .wBreedMon2 + cp SPRITE_VARS + jr nc, .Variable + jr .Icon + +.Normal + and a + ret + +.Icon + sub SPRITE_POKEMON + ld e, a + ld d, 0 + ld hl, SpriteMons + add hl, de + ld a, [hl] + jr .Mon + +.wBreedMon1 + ld a, [wBreedMon1Species] + jr .Mon + +.wBreedMon2 + ld a, [wBreedMon2Species] + +.Mon + ld e, a + and a + jr z, .NoBreedmon + + callba Function8e82b + + ld l, 1 + ld h, 0 + scf + ret + +.Variable + sub SPRITE_VARS + ld e, a + ld d, 0 + ld hl, VariableSprites + add hl, de + ld a, [hl] + and a + jp nz, GetMonSprite + +.NoBreedmon + ld a, 1 + ld l, 1 + ld h, 0 + and a + ret +; 142a7 + + +_DoesSpriteHaveFacings:: ; 142a7 +; Checks to see whether we can apply a facing to a sprite. +; Returns carry unless the sprite is a Pokemon or a Still Sprite. + cp SPRITE_POKEMON + jr nc, .only_down + + push hl + push bc + ld hl, SpriteHeaders + SPRITEHEADER_TYPE ; type + dec a + ld c, a + ld b, 0 + ld a, NUM_SPRITEHEADER_FIELDS + call AddNTimes + ld a, [hl] + pop bc + pop hl + cp STILL_SPRITE + jr nz, .only_down + scf + ret + +.only_down + and a + ret +; 142c4 + + +_GetSpritePalette:: ; 142c4 + ld a, c + call GetMonSprite + jr c, .is_pokemon + + ld hl, SpriteHeaders + 5 ; palette + dec a + ld c, a + ld b, 0 + ld a, 6 + call AddNTimes + ld c, [hl] + ret + +.is_pokemon + xor a + ld c, a + ret +; 142db + + +LoadAndSortSprites: ; 142db + call LoadSpriteGFX + call SortUsedSprites + call ArrangeUsedSprites + ret +; 142e5 + + +AddSpriteGFX: ; 142e5 +; Add any new sprite ids to a list of graphics to be loaded. +; Return carry if the list is full. + + push hl + push bc + ld b, a + ld hl, UsedSprites + 2 + ld c, SPRITE_GFX_LIST_CAPACITY - 1 +.loop + ld a, [hl] + cp b + jr z, .exists + and a + jr z, .new +rept 2 + inc hl +endr + dec c + jr nz, .loop + + pop bc + pop hl + scf + ret + +.exists + pop bc + pop hl + and a + ret + +.new + ld [hl], b + pop bc + pop hl + and a + ret +; 14306 + + +LoadSpriteGFX: ; 14306 +; Bug: b is not preserved, so +; it's useless as a next count. + + ld hl, UsedSprites + ld b, SPRITE_GFX_LIST_CAPACITY +.loop + ld a, [hli] + and a + jr z, .done + push hl + call .LoadSprite + pop hl + ld [hli], a + dec b + jr nz, .loop + +.done + ret + +.LoadSprite + call GetSprite + ld a, l + ret +; 1431e + + +SortUsedSprites: ; 1431e +; Bubble-sort sprites by type. + +; Run backwards through UsedSprites to find the last one. + + ld c, SPRITE_GFX_LIST_CAPACITY + ld de, UsedSprites + (SPRITE_GFX_LIST_CAPACITY - 1) * 2 +.FindLastSprite + ld a, [de] + and a + jr nz, .FoundLastSprite +rept 2 + dec de +endr + dec c + jr nz, .FindLastSprite +.FoundLastSprite + dec c + jr z, .quit + +; If the length of the current sprite is +; higher than a later one, swap them. + + inc de + ld hl, UsedSprites + 1 + +.CheckSprite + push bc + push de + push hl + +.CheckFollowing + ld a, [de] + cp [hl] + jr nc, .loop + +; Swap the two sprites. + + ld b, a + ld a, [hl] + ld [hl], b + ld [de], a + dec de + dec hl + ld a, [de] + ld b, a + ld a, [hl] + ld [hl], b + ld [de], a + inc de + inc hl + +; Keep doing this until everything's in order. + +.loop +rept 2 + dec de +endr + dec c + jr nz, .CheckFollowing + + pop hl +rept 2 + inc hl +endr + pop de + pop bc + dec c + jr nz, .CheckSprite + +.quit + ret +; 14355 + + +ArrangeUsedSprites: ; 14355 +; Get the length of each sprite and space them out in VRAM. +; Crystal introduces a second table in VRAM bank 0. + + ld hl, UsedSprites + ld c, SPRITE_GFX_LIST_CAPACITY + ld b, 0 +.FirstTableLength +; Keep going until the end of the list. + ld a, [hli] + and a + jr z, .quit + + ld a, [hl] + call GetSpriteLength + +; Spill over into the second table after $80 tiles. + add b + cp $80 + jr z, .loop + jr nc, .SecondTable + +.loop + ld [hl], b + inc hl + ld b, a + +; Assumes the next table will be reached before c hits 0. + dec c + jr nz, .FirstTableLength + +.SecondTable +; The second tile table starts at tile $80. + ld b, $80 + dec hl +.SecondTableLength +; Keep going until the end of the list. + ld a, [hli] + and a + jr z, .quit + + ld a, [hl] + call GetSpriteLength + +; There are only two tables, so don't go any further than that. + add b + jr c, .quit + + ld [hl], b + ld b, a + inc hl + + dec c + jr nz, .SecondTableLength + +.quit + ret +; 14386 + + +GetSpriteLength: ; 14386 +; Return the length of sprite type a in tiles. + + cp WALKING_SPRITE + jr z, .AnyDirection + cp STANDING_SPRITE + jr z, .AnyDirection + cp STILL_SPRITE + jr z, .OneDirection + + ld a, 12 + ret + +.AnyDirection + ld a, 12 + ret + +.OneDirection + ld a, 4 + ret +; 1439b + + +Function1439b: ; 1439b + ld hl, UsedSprites + ld c, SPRITE_GFX_LIST_CAPACITY +.loop + ld a, [wSpriteFlags] + res 5, a + ld [wSpriteFlags], a + ld a, [hli] + and a + jr z, .done + ld [hUsedSpriteIndex], a + ld a, [hli] + ld [hUsedSpriteTile], a + bit 7, a + jr z, .dont_set + ld a, [wSpriteFlags] + set 5, a + ld [wSpriteFlags], a + +.dont_set + push bc + push hl + call Function143c8 + pop hl + pop bc + dec c + jr nz, .loop + +.done + ret +; 143c8 + +Function143c8: ; 143c8 + ld a, [hUsedSpriteIndex] + call SafeGetSprite + ld a, [hUsedSpriteTile] + call .GetTileAddr + push hl + push de + push bc + ld a, [wSpriteFlags] + bit 7, a + jr nz, .skip + call .CopyToVram + +.skip + pop bc + ld l, c + ld h, $0 +rept 4 + add hl, hl +endr + pop de + add hl, de + ld d, h + ld e, l + pop hl + ld a, [wSpriteFlags] + bit 5, a + jr nz, .done + bit 6, a + jr nz, .done + ld a, [hUsedSpriteIndex] + call _DoesSpriteHaveFacings + jr c, .done + ld a, h + add $8 + ld h, a + call .CopyToVram + +.done + ret +; 14406 + +.GetTileAddr: ; 14406 +; Return the address of tile (a) in (hl). + and $7f + ld l, a + ld h, 0 +rept 4 + add hl, hl +endr + ld a, l + add VTiles0 % $100 + ld l, a + ld a, h + adc VTiles0 / $100 + ld h, a + ret +; 14418 + +.CopyToVram: ; 14418 + ld a, [rVBK] + push af + ld a, [wSpriteFlags] + bit 5, a + ld a, $1 + jr z, .bankswitch + ld a, $0 + +.bankswitch + ld [rVBK], a + call Get2bpp + pop af + ld [rVBK], a + ret +; 1442f + +LoadEmote:: ; 1442f +; Get the address of the pointer to emote c. + ld a, c + ld bc, 6 + ld hl, EmotesPointers + call AddNTimes +; Load the emote address into de + ld e, [hl] + inc hl + ld d, [hl] +; load the length of the emote (in tiles) into c + inc hl + ld c, [hl] + swap c +; load the emote pointer bank into b + inc hl + ld b, [hl] +; load the VRAM destination into hl + inc hl + ld a, [hli] + ld h, [hl] + ld l, a +; if the emote has a length of 0, do not proceed (error handling) + ld a, c + and a + ret z + call GetEmote2bpp + ret +; 1444d + +emote_header: MACRO + dw \1 + db \2 tiles, BANK(\1) + dw \3 +ENDM + +EmotesPointers: ; 144d +; dw source address +; db length, bank +; dw dest address + + emote_header ShockEmote, 4, VTiles1 tile $78 + emote_header QuestionEmote, 4, VTiles1 tile $78 + emote_header HappyEmote, 4, VTiles1 tile $78 + emote_header SadEmote, 4, VTiles1 tile $78 + emote_header HeartEmote, 4, VTiles1 tile $78 + emote_header BoltEmote, 4, VTiles1 tile $78 + emote_header SleepEmote, 4, VTiles1 tile $78 + emote_header FishEmote, 4, VTiles1 tile $78 + emote_header FishingRodGFX1, 1, VTiles1 tile $7c + emote_header FishingRodGFX2, 2, VTiles1 tile $7c + emote_header FishingRodGFX3, 2, VTiles1 tile $7e + emote_header FishingRodGFX4, 1, VTiles1 tile $7e +; 14495 + + +SpriteMons: ; 14495 + db UNOWN + db GEODUDE + db GROWLITHE + db WEEDLE + db SHELLDER + db ODDISH + db GENGAR + db ZUBAT + db MAGIKARP + db SQUIRTLE + db TOGEPI + db BUTTERFREE + db DIGLETT + db POLIWAG + db PIKACHU + db CLEFAIRY + db CHARMANDER + db JYNX + db STARMIE + db BULBASAUR + db JIGGLYPUFF + db GRIMER + db EKANS + db PARAS + db TENTACOOL + db TAUROS + db MACHOP + db VOLTORB + db LAPRAS + db RHYDON + db MOLTRES + db SNORLAX + db GYARADOS + db LUGIA + db HO_OH +; 144b8 + + +OutdoorSprites: ; 144b8 +; Valid sprite IDs for each map group. + + dw Group1Sprites + dw Group2Sprites + dw Group3Sprites + dw Group4Sprites + dw Group5Sprites + dw Group6Sprites + dw Group7Sprites + dw Group8Sprites + dw Group9Sprites + dw Group10Sprites + dw Group11Sprites + dw Group12Sprites + dw Group13Sprites + dw Group14Sprites + dw Group15Sprites + dw Group16Sprites + dw Group17Sprites + dw Group18Sprites + dw Group19Sprites + dw Group20Sprites + dw Group21Sprites + dw Group22Sprites + dw Group23Sprites + dw Group24Sprites + dw Group25Sprites + dw Group26Sprites +; 144ec + + +Group13Sprites: ; 144ec + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_TEACHER + db SPRITE_FISHER + db SPRITE_YOUNGSTER + db SPRITE_BLUE + db SPRITE_GRAMPS + db SPRITE_BUG_CATCHER + db SPRITE_COOLTRAINER_F + db SPRITE_SWIMMER_GIRL + db SPRITE_SWIMMER_GUY + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 14503 + +Group23Sprites: ; 14503 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_TEACHER + db SPRITE_FISHER + db SPRITE_YOUNGSTER + db SPRITE_BLUE + db SPRITE_GRAMPS + db SPRITE_BUG_CATCHER + db SPRITE_COOLTRAINER_F + db SPRITE_SWIMMER_GIRL + db SPRITE_SWIMMER_GUY + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 1451a + +Group14Sprites: ; 1451a + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_TEACHER + db SPRITE_FISHER + db SPRITE_YOUNGSTER + db SPRITE_BLUE + db SPRITE_GRAMPS + db SPRITE_BUG_CATCHER + db SPRITE_COOLTRAINER_F + db SPRITE_SWIMMER_GIRL + db SPRITE_SWIMMER_GUY + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 14531 + +Group6Sprites: ; 14531 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_TEACHER + db SPRITE_FISHER + db SPRITE_YOUNGSTER + db SPRITE_BLUE + db SPRITE_GRAMPS + db SPRITE_BUG_CATCHER + db SPRITE_COOLTRAINER_F + db SPRITE_SWIMMER_GIRL + db SPRITE_SWIMMER_GUY + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 14548 + +Group7Sprites: ; 14548 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_COOLTRAINER_M + db SPRITE_SUPER_NERD + db SPRITE_COOLTRAINER_F + db SPRITE_FISHER + db SPRITE_YOUNGSTER + db SPRITE_LASS + db SPRITE_POKEFAN_M + db SPRITE_ROCKET + db SPRITE_MISTY + db SPRITE_POKE_BALL + db SPRITE_SLOWPOKE +; 1455f + +Group25Sprites: ; 1455f + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_COOLTRAINER_M + db SPRITE_SUPER_NERD + db SPRITE_COOLTRAINER_F + db SPRITE_FISHER + db SPRITE_YOUNGSTER + db SPRITE_LASS + db SPRITE_POKEFAN_M + db SPRITE_ROCKET + db SPRITE_MISTY + db SPRITE_POKE_BALL + db SPRITE_SLOWPOKE +; 14576 + +Group21Sprites: ; 14576 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_FISHER + db SPRITE_POLIWAG + db SPRITE_TEACHER + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_LASS + db SPRITE_BIKER + db SPRITE_SILVER + db SPRITE_BLUE + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 1458d + +Group18Sprites: ; 1458d + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_POKEFAN_M + db SPRITE_MACHOP + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_FISHER + db SPRITE_TEACHER + db SPRITE_SUPER_NERD + db SPRITE_BIG_SNORLAX + db SPRITE_BIKER + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 145a4 + +Group12Sprites: ; 145a4 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_POKEFAN_M + db SPRITE_MACHOP + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_FISHER + db SPRITE_TEACHER + db SPRITE_SUPER_NERD + db SPRITE_BIG_SNORLAX + db SPRITE_BIKER + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 145bb + +Group17Sprites: ; 145bb + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_POKEFAN_M + db SPRITE_MACHOP + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_FISHER + db SPRITE_TEACHER + db SPRITE_SUPER_NERD + db SPRITE_BIG_SNORLAX + db SPRITE_BIKER + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 145d2 + +Group16Sprites: ; 145d2 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_POKEFAN_M + db SPRITE_BUENA + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_FISHER + db SPRITE_TEACHER + db SPRITE_SUPER_NERD + db SPRITE_MACHOP + db SPRITE_BIKER + db SPRITE_POKE_BALL + db SPRITE_BOULDER +; 145e9 + +Group24Sprites: ; 145e9 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_SILVER + db SPRITE_TEACHER + db SPRITE_FISHER + db SPRITE_COOLTRAINER_M + db SPRITE_YOUNGSTER + db SPRITE_MONSTER + db SPRITE_GRAMPS + db SPRITE_BUG_CATCHER + db SPRITE_COOLTRAINER_F + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 14600 + +Group26Sprites: ; 14600 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_SILVER + db SPRITE_TEACHER + db SPRITE_FISHER + db SPRITE_COOLTRAINER_M + db SPRITE_YOUNGSTER + db SPRITE_MONSTER + db SPRITE_GRAMPS + db SPRITE_BUG_CATCHER + db SPRITE_COOLTRAINER_F + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 14617 + +Group19Sprites: ; 14617 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_SILVER + db SPRITE_TEACHER + db SPRITE_FISHER + db SPRITE_COOLTRAINER_M + db SPRITE_YOUNGSTER + db SPRITE_MONSTER + db SPRITE_GRAMPS + db SPRITE_BUG_CATCHER + db SPRITE_COOLTRAINER_F + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 1462e + +Group10Sprites: ; 1462e + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_FISHER + db SPRITE_LASS + db SPRITE_OFFICER + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_COOLTRAINER_M + db SPRITE_BUG_CATCHER + db SPRITE_SUPER_NERD + db SPRITE_WEIRD_TREE + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 14645 + +Group4Sprites: ; 14645 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_FISHER + db SPRITE_LASS + db SPRITE_OFFICER + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_COOLTRAINER_M + db SPRITE_BUG_CATCHER + db SPRITE_SUPER_NERD + db SPRITE_WEIRD_TREE + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 1465c + +Group8Sprites: ; 1465c + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_KURT_OUTSIDE + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_OFFICER + db SPRITE_POKEFAN_M + db SPRITE_BLACK_BELT + db SPRITE_TEACHER + db SPRITE_AZALEA_ROCKET + db SPRITE_LASS + db SPRITE_SILVER + db SPRITE_FRUIT_TREE + db SPRITE_SLOWPOKE +; 14673 + +Group11Sprites: ; 14673 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_POKE_BALL + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_OFFICER + db SPRITE_POKEFAN_M + db SPRITE_DAYCARE_MON_1 + db SPRITE_COOLTRAINER_F + db SPRITE_ROCKET + db SPRITE_LASS + db SPRITE_DAYCARE_MON_2 + db SPRITE_FRUIT_TREE + db SPRITE_SLOWPOKE +; 1468a + +Group22Sprites: ; 1468a + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_STANDING_YOUNGSTER + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_OLIVINE_RIVAL + db SPRITE_POKEFAN_M + db SPRITE_LASS + db SPRITE_BUENA + db SPRITE_SWIMMER_GIRL + db SPRITE_SAILOR + db SPRITE_POKEFAN_F + db SPRITE_SUPER_NERD + db SPRITE_TAUROS + db SPRITE_FRUIT_TREE + db SPRITE_ROCK +; 146a1 + +Group1Sprites: ; 146a1 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_STANDING_YOUNGSTER + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_OLIVINE_RIVAL + db SPRITE_POKEFAN_M + db SPRITE_LASS + db SPRITE_BUENA + db SPRITE_SWIMMER_GIRL + db SPRITE_SAILOR + db SPRITE_POKEFAN_F + db SPRITE_SUPER_NERD + db SPRITE_TAUROS + db SPRITE_FRUIT_TREE + db SPRITE_ROCK +; 146b8 + +Group9Sprites: ; 146b8 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_LANCE + db SPRITE_GRAMPS + db SPRITE_SUPER_NERD + db SPRITE_COOLTRAINER_F + db SPRITE_FISHER + db SPRITE_COOLTRAINER_M + db SPRITE_LASS + db SPRITE_YOUNGSTER + db SPRITE_GYARADOS + db SPRITE_FRUIT_TREE + db SPRITE_POKE_BALL +; 146cf + +Group2Sprites: ; 146cf + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_LASS + db SPRITE_SUPER_NERD + db SPRITE_COOLTRAINER_M + db SPRITE_POKEFAN_M + db SPRITE_BLACK_BELT + db SPRITE_COOLTRAINER_F + db SPRITE_FISHER + db SPRITE_FRUIT_TREE + db SPRITE_POKE_BALL +; 146e6 + +Group5Sprites: ; 146e6 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_LASS + db SPRITE_SUPER_NERD + db SPRITE_COOLTRAINER_M + db SPRITE_POKEFAN_M + db SPRITE_BLACK_BELT + db SPRITE_COOLTRAINER_F + db SPRITE_FISHER + db SPRITE_FRUIT_TREE + db SPRITE_POKE_BALL +; 146fd + +Group3Sprites: ; 146fd + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_GAMEBOY_KID + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_LASS + db SPRITE_POKEFAN_F + db SPRITE_TEACHER + db SPRITE_YOUNGSTER + db SPRITE_GROWLITHE + db SPRITE_POKEFAN_M + db SPRITE_ROCKER + db SPRITE_FISHER + db SPRITE_SCIENTIST + db SPRITE_POKE_BALL + db SPRITE_BOULDER +; 14714 + +Group15Sprites: ; 14714 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_SAILOR + db SPRITE_FISHING_GURU + db SPRITE_GENTLEMAN + db SPRITE_SUPER_NERD + db SPRITE_HO_OH + db SPRITE_TEACHER + db SPRITE_COOLTRAINER_F + db SPRITE_YOUNGSTER + db SPRITE_FAIRY + db SPRITE_POKE_BALL + db SPRITE_ROCK +; 1472b + +Group20Sprites: ; 1472b + db SPRITE_OAK + db SPRITE_FISHER + db SPRITE_TEACHER + db SPRITE_TWIN + db SPRITE_POKEFAN_M + db SPRITE_GRAMPS + db SPRITE_FAIRY + db SPRITE_SILVER + db SPRITE_FISHING_GURU + db SPRITE_POKE_BALL + db SPRITE_POKEDEX +; 14736 + + +SpriteHeaders: ; 14736 +INCLUDE "gfx/overworld/sprite_headers.asm" +; 1499a diff --git a/engine/pokedex.asm b/engine/pokedex.asm index 8d5680ded..080647895 100644 --- a/engine/pokedex.asm +++ b/engine/pokedex.asm @@ -65,12 +65,8 @@ InitPokedex: ; 40063 call ClearTileMap call Function414b7 - ld hl, wc6d0 -IF DEF(CRYSTAL11) - ld bc, $0116 -ELSE - ld bc, $0115 -ENDC + ld hl, wPokedexDataStart + ld bc, wPokedexDataEnd - wPokedexDataStart xor a call ByteFill diff --git a/engine/sprites.asm b/engine/sprites.asm index 517428007..82c50f743 100755 --- a/engine/sprites.asm +++ b/engine/sprites.asm @@ -1,1480 +1,2888 @@ -GetEmote2bpp: ; 1412a - ld a, $1 - ld [rVBK], a - call Get2bpp - xor a - ld [rVBK], a - ret -; 14135 - -_ReplaceKrisSprite:: ; 14135 - call GetPlayerSprite - ld a, [UsedSprites] - ld [hUsedSpriteIndex], a - ld a, [UsedSprites + 1] - ld [hUsedSpriteTile], a - call Function143c8 - ret -; 14146 - -Function14146: ; 14146 - ld hl, wSpriteFlags - ld a, [hl] - push af - res 7, [hl] - set 6, [hl] - call RunCallback_04 - pop af - ld [wSpriteFlags], a - ret -; 14157 - -Function14157: ; 14157 - ld hl, wSpriteFlags - ld a, [hl] - push af - set 7, [hl] - res 6, [hl] - call RunCallback_04 - pop af - ld [wSpriteFlags], a - ret -; 14168 - -RefreshSprites:: ; 14168 - call .Refresh - call RunCallback_04 - ret -; 1416f - -.Refresh: ; 1416f - xor a - ld bc, UsedSpritesEnd - UsedSprites - ld hl, UsedSprites - call ByteFill - call GetPlayerSprite - call AddMapSprites - call LoadAndSortSprites - ret -; 14183 - -GetPlayerSprite: ; 14183 -; Get Chris or Kris's sprite. - ld hl, .Chris - ld a, [wPlayerSpriteSetupFlags] - bit 2, a - jr nz, .go - ld a, [PlayerGender] - bit 0, a - jr z, .go - ld hl, .Kris - -.go - ld a, [PlayerState] - ld c, a +Function8cf53: ; 8cf53 + ld hl, wc300 + ld bc, wc3c1 - wc300 .loop - ld a, [hli] - cp c - jr z, .good + ld [hl], $0 inc hl - cp $ff + dec bc + ld a, c + or b jr nz, .loop - -; Any player state not in the array defaults to Chris's sprite. - xor a ; ld a, PLAYER_NORMAL - ld [PlayerState], a - ld a, SPRITE_CHRIS - jr .finish - -.good - ld a, [hl] - -.finish - ld [UsedSprites + 0], a - ld [PlayerSprite], a - ld [PlayerObjectSprite], a ret +; 8cf62 -.Chris - db PLAYER_NORMAL, SPRITE_CHRIS - db PLAYER_BIKE, SPRITE_CHRIS_BIKE - db PLAYER_SURF, SPRITE_SURF - db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU - db $ff - -.Kris - db PLAYER_NORMAL, SPRITE_KRIS - db PLAYER_BIKE, SPRITE_KRIS_BIKE - db PLAYER_SURF, SPRITE_SURF - db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU - db $ff -; 141c9 - - -AddMapSprites: ; 141c9 - call GetMapPermission - call CheckOutdoorMap - jr z, .outdoor - call AddIndoorSprites +Function8cf62: ; 8cf62 + call Function8cf69 + call DelayFrame ret +; 8cf69 -.outdoor - call AddOutdoorSprites - ret -; 141d9 - - -AddIndoorSprites: ; 141d9 - ld hl, Map1ObjectSprite - ld a, 1 -.loop +Function8cf69: ; 8cf69 + push hl + push de + push bc push af - ld a, [hl] - call AddSpriteGFX - ld de, OBJECT_LENGTH - add hl, de + + ld a, $0 + ld [wc3b5], a + call Function8cf7a + pop af - inc a - cp NUM_OBJECTS + pop bc + pop de + pop hl + ret +; 8cf7a + +Function8cf7a: ; 8cf7a + ld hl, wc314 + ld e, 10 ; There are 10 structs here. + +.loop + ld a, [hl] + and a + jr z, .next ; This struct is deinitialized. + ld c, l + ld b, h + push hl + push de + call Function8d24b ; Uses a massive jumptable + call Function8d04c + pop de + pop hl + jr c, .done + +.next + ld bc, $10 + add hl, bc + dec e + jr nz, .loop + + ld a, [wc3b5] + ld l, a + ld h, Sprites / $0100 + +.loop2 ; Clear (Sprites + [wc3b5] --> SpritesEnd) + ld a, l + cp SpritesEnd % $100 + jr nc, .done + xor a + ld [hli], a + jr .loop2 + +.done + ret +; 8cfa8 + +Function8cfa8: ; 8cfa8 (23:4fa8) + ld hl, wc314 + ld e, 10 + +.loop + ld a, [hl] + and a + jr z, .next + ld c, l + ld b, h + push hl + push de + call Function8d24b ; Uses a massive jumptable + call Function8d04c + pop de + pop hl + jr c, .done + +.next + ld bc, $10 + add hl, bc + dec e + jr nz, .loop + + ld a, [wc3b5] + ld l, a + ld h, (Sprites + $40) / $100 + +.loop2 ; Clear (Sprites + [wc3b5] --> Sprites + $40) + ld a, l + cp (Sprites + $40) % $100 + jr nc, .done + xor a + ld [hli], a + jr .loop2 + +.done + ret + +Function8cfd6:: ; 8cfd6 +; Find if there's any room in the wc314 array, which is 10x16 + push de + push af + ld hl, wc314 + ld e, 10 +.loop + ld a, [hl] + and a + jr z, .found + ld bc, $10 + add hl, bc + dec e + jr nz, .loop +; We've reached the end. There is no more room here. +; Return carry. + pop af + pop de + scf + ret + +.found +; Back up the structure address to bc. + ld c, l + ld b, h +; Value [wc3b4] is initially set to -1. Set it to +; the number of objects loaded into this array. + ld hl, wc3b4 + inc [hl] + ld a, [hl] + and a + jr nz, .initialized + inc [hl] + +.initialized +; Get row a of Unknown_8d1c4, copy the pointer into de + pop af + ld e, a + ld d, 0 + ld hl, Unknown_8d1c4 +rept 3 + add hl, de +endr + ld e, l + ld d, h +; Set hl to the first field (field 0) in the current structure. + ld hl, 0 + add hl, bc +; Load the index. + ld a, [wc3b4] + ld [hli], a +; Copy the table entry to the next two fields. + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de +; Look up the third field from the table in the wc300 array (10x2). +; Take the value and load it in + ld a, [de] + call LookUpInwDict_c300 + ld [hli], a + pop de +; Set hl to field 4. Kinda pointless, because we're presumably already here. + ld hl, $4 + add hl, bc +; Load the original value of de into here. + ld a, e + ld [hli], a + ld a, d + ld [hli], a +; load 0 into the next four fields + xor a +rept 2 + ld [hli], a +endr + xor a +rept 2 + ld [hli], a +endr +; load -1 into the next field + dec a + ld [hli], a +; load 0 into the last five fields + xor a +rept 4 + ld [hli], a +endr + ld [hl], a +; back up the address of the first field to wc3b8 + ld a, c + ld [wc3b8], a + ld a, b + ld [wc3b8 + 1], a + ret +; 8d036 + +Function8d036: ; 8d036 +; Clear the index field of the struct in bc. + ld hl, 0 + add hl, bc + ld [hl], $0 + ret +; 8d03d + + +Function8d03d: ; 8d03d (23:503d) +; Clear the index field of every struct in the wc314 array. + ld hl, wc314 + ld bc, $10 + ld e, 10 + xor a +.loop + ld [hl], a + add hl, bc + dec e jr nz, .loop ret -; 141ee -AddOutdoorSprites: ; 141ee - ld a, [MapGroup] - dec a - ld c, a - ld b, 0 - ld hl, OutdoorSprites -rept 2 - add hl, bc -endr +Function8d04c: ; 8d04c +; Populate Sprites with the bouncing mon icons + call Function8d0ec ; init WRAM + call Function8d132 ; read from a memory array + cp -3 + jr z, .done + cp -4 + jr z, .almost + call Function8d1a2 ; read from a pointer table + ld a, [wc3ba] + add [hl] + ld [wc3ba], a + inc hl ld a, [hli] ld h, [hl] ld l, a - ld c, MAX_OUTDOOR_SPRITES -.loop push bc + ld a, [wc3b5] + ld e, a + ld d, Sprites / $100 ld a, [hli] - call AddSpriteGFX - pop bc + ld c, a +.loop + ld a, [wc3bc] + ld b, a + ld a, [wc3be] + add b + ld b, a + ld a, [wc3bf] + add b + ld b, a + call Function8d0be + add b + ld [de], a + inc hl + inc de + ld a, [wc3bb] + ld b, a + ld a, [wc3bd] + add b + ld b, a + ld a, [wc3c0] + add b + ld b, a + call Function8d0ce + add b + ld [de], a + inc hl + inc de + ld a, [wc3ba] + add [hl] + ld [de], a + inc hl + inc de + call Function8d0de + ld [de], a + inc hl + inc de + ld a, e + ld [wc3b5], a + cp SpritesEnd % $100 + jr nc, .outofroom dec c jr nz, .loop - ret -; 14209 - - -RunCallback_04: ; 14209 - ld a, $4 - call RunMapCallback - call Function1439b - call Function14215 - ret -; 14215 - -Function14215: ; 14215 - ld a, [wSpriteFlags] - bit 6, a - ret nz - ld c, EMOTE_08 - callba LoadEmote - call GetMapPermission - call CheckOutdoorMap - ld c, EMOTE_0B - jr z, .outdoor - ld c, EMOTE_0A - -.outdoor - callba LoadEmote - ret -; 14236 - - - -SafeGetSprite: ; 14236 - push hl - call GetSprite - pop hl - ret -; 1423c - -GetSprite: ; 1423c - call GetMonSprite - ret c - - ld hl, SpriteHeaders ; address - dec a - ld c, a - ld b, 0 - ld a, 6 - call AddNTimes - ; load the address into de - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ; load the length into c - ld a, [hli] - swap a - ld c, a - ; load the sprite bank into both b and h - ld b, [hl] - ld a, [hli] - ; load the sprite type into l - ld l, [hl] - ld h, a - ret -; 14259 - - -GetMonSprite: ; 14259 -; Return carry if a monster sprite was loaded. - - cp SPRITE_POKEMON - jr c, .Normal - cp SPRITE_DAYCARE_MON_1 - jr z, .wBreedMon1 - cp SPRITE_DAYCARE_MON_2 - jr z, .wBreedMon2 - cp SPRITE_VARS - jr nc, .Variable - jr .Icon - -.Normal - and a - ret - -.Icon - sub SPRITE_POKEMON - ld e, a - ld d, 0 - ld hl, SpriteMons - add hl, de - ld a, [hl] - jr .Mon - -.wBreedMon1 - ld a, [wBreedMon1Species] - jr .Mon - -.wBreedMon2 - ld a, [wBreedMon2Species] - -.Mon - ld e, a - and a - jr z, .NoBreedmon - - callba Function8e82b - - ld l, 1 - ld h, 0 - scf - ret - -.Variable - sub SPRITE_VARS - ld e, a - ld d, 0 - ld hl, VariableSprites - add hl, de - ld a, [hl] - and a - jp nz, GetMonSprite - -.NoBreedmon - ld a, 1 - ld l, 1 - ld h, 0 - and a - ret -; 142a7 - - -_DoesSpriteHaveFacings:: ; 142a7 -; Checks to see whether we can apply a facing to a sprite. -; Returns carry unless the sprite is a Pokemon or a Still Sprite. - cp SPRITE_POKEMON - jr nc, .only_down - - push hl - push bc - ld hl, SpriteHeaders + SPRITEHEADER_TYPE ; type - dec a - ld c, a - ld b, 0 - ld a, NUM_SPRITEHEADER_FIELDS - call AddNTimes - ld a, [hl] pop bc - pop hl - cp STILL_SPRITE - jr nz, .only_down - scf - ret + jr .done -.only_down +.almost + call Function8d036 + +.done and a ret -; 142c4 - -_GetSpritePalette:: ; 142c4 - ld a, c - call GetMonSprite - jr c, .is_pokemon - - ld hl, SpriteHeaders + 5 ; palette - dec a - ld c, a - ld b, 0 - ld a, 6 - call AddNTimes - ld c, [hl] +.outofroom + pop bc + scf ret +; 8d0be -.is_pokemon +Function8d0be: ; 8d0be + push hl + ld a, [hl] + ld hl, wc3b8 + bit 6, [hl] + jr z, .ok + add $8 + xor $ff + inc a + +.ok + pop hl + ret +; 8d0ce + +Function8d0ce: ; 8d0ce + push hl + ld a, [hl] + ld hl, wc3b8 + bit 5, [hl] + jr z, .ok + add $8 + xor $ff + inc a + +.ok + pop hl + ret +; 8d0de + +Function8d0de: ; 8d0de + ld a, [wc3b8] + ld b, a + ld a, [hl] + xor b + and $e0 + ld b, a + ld a, [hl] + and $1f + or b + ret +; 8d0ec + +Function8d0ec: ; 8d0ec xor a - ld c, a + ld [wc3b8], a + ld hl, $3 + add hl, bc + ld a, [hli] + ld [wc3ba], a + ld a, [hli] + ld [wc3bb], a + ld a, [hli] + ld [wc3bc], a + ld a, [hli] + ld [wc3bd], a + ld a, [hli] + ld [wc3be], a ret -; 142db - - -LoadAndSortSprites: ; 142db - call LoadSpriteGFX - call SortUsedSprites - call ArrangeUsedSprites - ret -; 142e5 - - -AddSpriteGFX: ; 142e5 -; Add any new sprite ids to a list of graphics to be loaded. -; Return carry if the list is full. +; 8d109 +LookUpInwDict_c300: ; 8d109 +; a = wDict_c300[a] if a in wDict_c300 else 0 push hl push bc + ld hl, wDict_c300 ld b, a - ld hl, UsedSprites + 2 - ld c, SPRITE_GFX_LIST_CAPACITY - 1 + ld c, 10 .loop - ld a, [hl] + ld a, [hli] cp b - jr z, .exists - and a - jr z, .new -rept 2 + jr z, .ok inc hl -endr dec c jr nz, .loop + xor a + jr .done - pop bc - pop hl - scf - ret - -.exists - pop bc - pop hl - and a - ret - -.new - ld [hl], b - pop bc - pop hl - and a - ret -; 14306 - - -LoadSpriteGFX: ; 14306 -; Bug: b is not preserved, so -; it's useless as a next count. - - ld hl, UsedSprites - ld b, SPRITE_GFX_LIST_CAPACITY -.loop - ld a, [hli] - and a - jr z, .done - push hl - call .LoadSprite - pop hl - ld [hli], a - dec b - jr nz, .loop +.ok + ld a, [hl] .done - ret - -.LoadSprite - call GetSprite - ld a, l - ret -; 1431e - - -SortUsedSprites: ; 1431e -; Bubble-sort sprites by type. - -; Run backwards through UsedSprites to find the last one. - - ld c, SPRITE_GFX_LIST_CAPACITY - ld de, UsedSprites + (SPRITE_GFX_LIST_CAPACITY - 1) * 2 -.FindLastSprite - ld a, [de] - and a - jr nz, .FoundLastSprite -rept 2 - dec de -endr - dec c - jr nz, .FindLastSprite -.FoundLastSprite - dec c - jr z, .quit - -; If the length of the current sprite is -; higher than a later one, swap them. - - inc de - ld hl, UsedSprites + 1 - -.CheckSprite - push bc - push de - push hl - -.CheckFollowing - ld a, [de] - cp [hl] - jr nc, .loop - -; Swap the two sprites. - - ld b, a - ld a, [hl] - ld [hl], b - ld [de], a - dec de - dec hl - ld a, [de] - ld b, a - ld a, [hl] - ld [hl], b - ld [de], a - inc de - inc hl - -; Keep doing this until everything's in order. - -.loop -rept 2 - dec de -endr - dec c - jr nz, .CheckFollowing - - pop hl -rept 2 - inc hl -endr - pop de pop bc - dec c - jr nz, .CheckSprite - -.quit - ret -; 14355 - - -ArrangeUsedSprites: ; 14355 -; Get the length of each sprite and space them out in VRAM. -; Crystal introduces a second table in VRAM bank 0. - - ld hl, UsedSprites - ld c, SPRITE_GFX_LIST_CAPACITY - ld b, 0 -.FirstTableLength -; Keep going until the end of the list. - ld a, [hli] - and a - jr z, .quit - - ld a, [hl] - call GetSpriteLength - -; Spill over into the second table after $80 tiles. - add b - cp $80 - jr z, .loop - jr nc, .SecondTable - -.loop - ld [hl], b - inc hl - ld b, a - -; Assumes the next table will be reached before c hits 0. - dec c - jr nz, .FirstTableLength - -.SecondTable -; The second tile table starts at tile $80. - ld b, $80 - dec hl -.SecondTableLength -; Keep going until the end of the list. - ld a, [hli] - and a - jr z, .quit - - ld a, [hl] - call GetSpriteLength - -; There are only two tables, so don't go any further than that. - add b - jr c, .quit - - ld [hl], b - ld b, a - inc hl - - dec c - jr nz, .SecondTableLength - -.quit - ret -; 14386 - - -GetSpriteLength: ; 14386 -; Return the length of sprite type a in tiles. - - cp WALKING_SPRITE - jr z, .AnyDirection - cp STANDING_SPRITE - jr z, .AnyDirection - cp STILL_SPRITE - jr z, .OneDirection - - ld a, 12 - ret - -.AnyDirection - ld a, 12 - ret - -.OneDirection - ld a, 4 - ret -; 1439b - - -Function1439b: ; 1439b - ld hl, UsedSprites - ld c, SPRITE_GFX_LIST_CAPACITY -.loop - ld a, [wSpriteFlags] - res 5, a - ld [wSpriteFlags], a - ld a, [hli] - and a - jr z, .done - ld [hUsedSpriteIndex], a - ld a, [hli] - ld [hUsedSpriteTile], a - bit 7, a - jr z, .dont_set - ld a, [wSpriteFlags] - set 5, a - ld [wSpriteFlags], a - -.dont_set - push bc - push hl - call Function143c8 pop hl - pop bc - dec c - jr nz, .loop - -.done ret -; 143c8 +; 8d120 -Function143c8: ; 143c8 - ld a, [hUsedSpriteIndex] - call SafeGetSprite - ld a, [hUsedSpriteTile] - call .GetTileAddr +Function8d120:: ; 8d120 + ld hl, $1 + add hl, bc + ld [hl], a + ld hl, $8 + add hl, bc + ld [hl], $0 + ld hl, $a + add hl, bc + ld [hl], $ff + ret +; 8d132 + + +Function8d132: ; 8d132 +.loop + ld hl, $8 + add hl, bc + ld a, [hl] + and a + jr z, .ok + dec [hl] + call Function8d189 + ld a, [hli] + push af + jr .skip + +.ok + ld hl, $a + add hl, bc + inc [hl] + call Function8d189 + ld a, [hli] + cp $fe + jr z, .minus_2 + cp $ff + jr z, .minus_1 + push af + ld a, [hl] push hl - push de - push bc - ld a, [wSpriteFlags] - bit 7, a - jr nz, .skip - call .CopyToVram + and $3f + ld hl, $9 + add hl, bc + add [hl] + ld hl, $8 + add hl, bc + ld [hl], a + pop hl .skip - pop bc - ld l, c - ld h, $0 -rept 4 - add hl, hl -endr - pop de - add hl, de - ld d, h - ld e, l - pop hl - ld a, [wSpriteFlags] - bit 5, a - jr nz, .done - bit 6, a - jr nz, .done - ld a, [hUsedSpriteIndex] - call _DoesSpriteHaveFacings - jr c, .done - ld a, h - add $8 - ld h, a - call .CopyToVram - -.done - ret -; 14406 - -.GetTileAddr: ; 14406 -; Return the address of tile (a) in (hl). - and $7f - ld l, a - ld h, 0 -rept 4 - add hl, hl -endr - ld a, l - add VTiles0 % $100 - ld l, a - ld a, h - adc VTiles0 / $100 - ld h, a - ret -; 14418 - -.CopyToVram: ; 14418 - ld a, [rVBK] - push af - ld a, [wSpriteFlags] - bit 5, a - ld a, $1 - jr z, .bankswitch - ld a, $0 - -.bankswitch - ld [rVBK], a - call Get2bpp + ld a, [hl] + and $c0 + srl a + ld [wc3b8], a pop af - ld [rVBK], a ret -; 1442f -LoadEmote:: ; 1442f -; Get the address of the pointer to emote c. - ld a, c - ld bc, 6 - ld hl, EmotesPointers - call AddNTimes -; Load the emote address into de +.minus_1 + xor a + ld hl, $8 + add hl, bc + ld [hl], a + ld hl, $a + add hl, bc +rept 2 + dec [hl] +endr + jr .loop + +.minus_2 + xor a + ld hl, $8 + add hl, bc + ld [hl], a + dec a + ld hl, $a + add hl, bc + ld [hl], a + jr .loop +; 8d189 + +Function8d189: ; 8d189 + ; Get the [bc+10]th entry in the data table + ; indexed at [bc+1] in Unknown_8d6e6 + ld hl, $1 + add hl, bc + ld e, [hl] + ld d, 0 + ld hl, Unknown_8d6e6 +rept 2 + add hl, de +endr ld e, [hl] inc hl ld d, [hl] -; load the length of the emote (in tiles) into c - inc hl + ld hl, $a + add hl, bc + ld l, [hl] + ld h, 0 + add hl, hl + add hl, de + ret +; 8d1a2 + +Function8d1a2: ; 8d1a2 + ld e, a + ld d, 0 + ld hl, Unknown_8d94d +rept 3 + add hl, de +endr + ret +; 8d1ac + +Function8d1ac: ; unreferenced + push hl + ld l, a + ld h, 0 +rept 2 + add hl, hl +endr + ld de, Unknown_8e706 ; broken 2bpp pointers + add hl, de ld c, [hl] - swap c -; load the emote pointer bank into b inc hl ld b, [hl] -; load the VRAM destination into hl inc hl + ld e, [hl] + inc hl + ld d, [hl] + pop hl + push bc + call Request2bpp + pop bc + ret +; 8d1c4 + +Unknown_8d1c4: ; 8d1c4 + db $01, JUMPTABLE_8D24B_FUNCTION_01, $00 ; 00 + db $07, JUMPTABLE_8D24B_FUNCTION_04, $00 ; 01 + db $08, JUMPTABLE_8D24B_FUNCTION_05, $05 ; 02 + db $0a, JUMPTABLE_8D24B_FUNCTION_06, $00 ; 03 + db $0b, JUMPTABLE_8D24B_FUNCTION_07, $06 ; 04 + db $0c, JUMPTABLE_8D24B_FUNCTION_08, $06 ; 05 + db $0d, JUMPTABLE_8D24B_FUNCTION_09, $07 ; 06 + db $0e, JUMPTABLE_8D24B_FUNCTION_0A, $07 ; 07 + db $10, JUMPTABLE_8D24B_FUNCTION_0B, $07 ; 08 + db $08, JUMPTABLE_8D24B_FUNCTION_0C, $05 ; 09 + db $11, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 0a + db $12, JUMPTABLE_8D24B_FUNCTION_0D, $08 ; 0b + db $12, JUMPTABLE_8D24B_FUNCTION_0E, $08 ; 0c + db $12, JUMPTABLE_8D24B_FUNCTION_0F, $08 ; 0d + db $13, JUMPTABLE_8D24B_FUNCTION_10, $00 ; 0e + db $15, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 0f + db $16, JUMPTABLE_8D24B_FUNCTION_11, $00 ; 10 + db $17, JUMPTABLE_8D24B_FUNCTION_12, $00 ; 11 + db $18, JUMPTABLE_8D24B_FUNCTION_12, $00 ; 12 + db $19, JUMPTABLE_8D24B_FUNCTION_13, $00 ; 13 + db $1a, JUMPTABLE_8D24B_FUNCTION_14, $00 ; 14 + db $1b, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 15 + db $1d, JUMPTABLE_8D24B_FUNCTION_15, $00 ; 16 + db $1e, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 17 + db $1d, JUMPTABLE_8D24B_FUNCTION_17, $00 ; 18 + db $1f, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 19 + db $24, JUMPTABLE_8D24B_FUNCTION_19, $00 ; 1a + db $25, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1b + db $20, JUMPTABLE_8D24B_FUNCTION_13, $00 ; 1c + db $26, JUMPTABLE_8D24B_FUNCTION_1A, $00 ; 1d + db $2d, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1e + db $2e, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1f + db $2f, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 20 + db $30, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 21 + db $31, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 22 + db $32, JUMPTABLE_8D24B_FUNCTION_1B, $00 ; 23 + db $33, JUMPTABLE_8D24B_FUNCTION_1C, $00 ; 24 + db $34, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 25 + db $35, JUMPTABLE_8D24B_FUNCTION_1D, $00 ; 26 + db $37, JUMPTABLE_8D24B_FUNCTION_1E, $00 ; 27 + db $38, JUMPTABLE_8D24B_FUNCTION_1E, $00 ; 28 + db $39, JUMPTABLE_8D24B_FUNCTION_20, $00 ; 29 + db $3f, JUMPTABLE_8D24B_FUNCTION_21, $00 ; 2a + db $3e, JUMPTABLE_8D24B_FUNCTION_22, $00 ; 2b + db $40, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 2c +; 8d24b + + +Function8d24b: ; 8d24b + ld hl, $2 ; field 2, see the second column in the above table + add hl, bc + ld e, [hl] + ld d, 0 + ld hl, .Jumptable +rept 2 + add hl, de +endr ld a, [hli] ld h, [hl] ld l, a -; if the emote has a length of 0, do not proceed (error handling) - ld a, c + jp [hl] +; 8d25b + + +.Jumptable: ; 8d25b (23:525b) + dw .zero ; town map + dw .one ; bouncing mon icons + dw .two + dw .three + dw .four + dw .five + dw .six ; Game Freak logo + dw .seven + dw .eight + dw .nine + dw .ten + dw .eleven + dw .twelve + dw .thirteen + dw .fourteen + dw .fifteen + dw .sixteen + dw .seventeen + dw .eighteen + dw .nineteen + dw .twenty + dw .twentyone + dw .twentytwo ; flying sprite + dw .twentythree ; flying leaves + dw .twentyfour + dw .twentyfive + dw .twentysix + dw .twentyseven + dw .twentyeight + dw .twentynine ; intro suicune + dw .thirty ; intro pichu wooper + dw .thirtyone + dw .thirtytwo ; intro unown + dw .thirtythree ; intro unown F with suicune leaping up + dw .thirtyfour ; intro suicune facing away from us + + +.zero: ; 8d2a1 (23:52a1) + ret + +.one: ; 8d2a2 (23:52a2) + ld a, [MenuSelection2] + ld hl, 0 + add hl, bc + cp [hl] + jr z, .two + ld hl, $4 + add hl, bc + ld [hl], $10 + ld hl, $7 + add hl, bc + ld [hl], $0 + ret + +.two: ; 8d2b9 (23:52b9) + ld hl, $4 + add hl, bc + ld [hl], $18 + ld hl, $c + add hl, bc + ld a, [hl] + ld d, a + inc [hl] + and $f + ret nz + ld hl, $d + add hl, bc + ld e, [hl] + ld hl, $7 + add hl, bc + ld a, d + and $10 ; bit 4 + jr z, .asm_8d2df + ld a, e + and a + jr z, .asm_8d2e6 + cp $1 + jr z, .asm_8d2e2 +.asm_8d2df + xor a + ld [hl], a + ret +.asm_8d2e2 + ld a, $ff + ld [hl], a + ret +.asm_8d2e6 + ld a, $fe + ld [hl], a + ret + +.three: ; 8d2ea (23:52ea) + ld a, [MenuSelection2] + ld hl, 0 + add hl, bc + cp [hl] + jr z, .asm_8d2fb + ld hl, $4 + add hl, bc + ld [hl], $10 + ret +.asm_8d2fb + ld hl, $4 + add hl, bc + ld [hl], $18 + ret + +.four: ; 8d302 (23:5302) + call .anonymous_jumptable + jp [hl] +; 8d306 (23:5306) + +; Anonymous jumptable (see .anonymous_jumptable) + dw .four_zero + dw .four_one +; 8d30a + +.four_zero: ; 8d30a + call .asm_8d6d8 + ld hl, 0 + add hl, bc + ld a, [hl] + ld hl, $d + add hl, bc + and $3 + ld [hl], a + inc [hl] + swap a + ld hl, $c + add hl, bc + ld [hl], a + +.four_one: ; 8d321 + ld hl, $4 + add hl, bc + ld a, [hl] + cp $a4 + jr nc, .asm_8d356 + ld hl, $d + add hl, bc + add $4 + ld hl, $4 + add hl, bc + ld [hl], a + ld hl, $5 + add hl, bc + inc [hl] + ld hl, $d + add hl, bc + ld a, [hl] + sla a + sla a + ld d, $2 + ld hl, $c + add hl, bc + ld a, [hl] + add $3 + ld [hl], a + call .asm_8d6de + ld hl, $7 + add hl, bc + ld [hl], a + ret + +.asm_8d356 + call Function8d036 + ret +; 8d35a + +.twentyfive: ; 8d35a (23:535a) + ld hl, $c + add hl, bc + ld a, [hl] + inc a + ld [hl], a + ld d, $2 + call .asm_8d6de + ld hl, $7 + add hl, bc + ld [hl], a + ret + +.five: ; 8d36c (23:536c) + callab Function11a3b + ret + +.twelve: ; 8d373 (23:5373) + callab Function120c1 + ret + +.six: ; 8d37a (23:537a) + callab GameFreakLogoJumper + ret + +.seven: ; 8d381 (23:5381) + ld hl, $c + add hl, bc + ld a, [hl] + and a + jr z, .asm_8d3ba +rept 2 + dec [hl] +endr + ld d, a + and $1f + jr nz, .asm_8d395 + ld hl, $d + add hl, bc + dec [hl] +.asm_8d395 + ld hl, $b + add hl, bc + ld a, [hl] + push af + push de + call .asm_8d6de + ld hl, $7 + add hl, bc + ld [hl], a + pop de + pop af + call .asm_8d6e2 + ld hl, $6 + add hl, bc + ld [hl], a + ld hl, $d + add hl, bc + ld a, [hl] + ld hl, $b + add hl, bc + add [hl] + ld [hl], a + ret +.asm_8d3ba + ld a, $1 + ld [wcf64], a + call Function8d036 + ret + +.eight: ; 8d3c3 (23:53c3) + ld hl, $c + add hl, bc + ld a, [hli] + or [hl] + jr z, .asm_8d41e + ld hl, $f + add hl, bc + ld d, [hl] + ld hl, $b + add hl, bc + ld a, [hl] + push af + push de + call .asm_8d6de + ld hl, $7 + add hl, bc + ld [hl], a + pop de + pop af + call .asm_8d6e2 + ld hl, $6 + add hl, bc + ld [hl], a + ld hl, $c + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $e + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + ld e, l + ld d, h + ld hl, $e + add hl, bc + ld [hl], e + inc hl + ld [hl], d + ld hl, $c + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld de, $fff0 + add hl, de + ld e, l + ld d, h + ld hl, $c + add hl, bc + ld [hl], e + inc hl + ld [hl], d + ld hl, $b + add hl, bc + ld a, [hl] + xor $20 + ld [hl], a + ret +.asm_8d41e + call Function8d036 + ret + +.nine: ; 8d422 (23:5422) + callab Function9321d + ret + +.ten: ; 8d429 (23:5429) + callab Function932ac + ld hl, wcf64 + ld a, [hl] + cp $2 + ret nz + ld [hl], $3 + ld a, $f + call Function8d120 + ret + +.eleven: ; 8d43e (23:543e) + ld hl, $b + add hl, bc + ld a, [hl] + dec [hl] + ld e, a + and $1 + jr z, .asm_8d462 + ld hl, $4 + add hl, bc + ld a, [hl] + cp $78 + jr c, .asm_8d461 + call Function8d036 + ld a, $4 + ld [wcf64], a + ld de, SFX_PLACE_PUZZLE_PIECE_DOWN + call PlaySFX + ret +.asm_8d461 + inc [hl] +.asm_8d462 + ld a, e + ld d, $20 + call .asm_8d6de + ld hl, $7 + add hl, bc + ld [hl], a + ret + +.thirteen: ; 8d46e (23:546e) + callab Functione00ed + ret + +.fifteen: ; 8d475 (23:5475) + callab Function90d41 + ret + +.fourteen: ; 8d47c (23:547c) + callab Functione21a1 + ret + +.sixteen: ; 8d483 (23:5483) + call .anonymous_jumptable + jp [hl] +; 8d487 (23:5487) + +; Anonymous jumptable (see .anonymous_jumptable) + dw .sixteen_zero + dw .sixteen_one + dw .sixteen_two + dw .sixteen_three + dw .sixteen_four + dw .sixteen_five +; 8d493 + +.sixteen_zero: ; 8d493 + ld a, $14 + call Function8d120 + ld hl, $b + add hl, bc + ld [hl], $2 + ld hl, $c + add hl, bc + ld [hl], $20 + ret +; 8d4a5 + +.sixteen_two: ; 8d4a5 + ld hl, $c + add hl, bc + ld a, [hl] + and a + jr z, .asm_8d4af + dec [hl] + ret + +.asm_8d4af + call .asm_8d6d8 + ld hl, $c + add hl, bc + ld [hl], $40 + +.sixteen_three: ; 8d4b8 + ld hl, $c + add hl, bc + ld a, [hl] + cp $30 + jr c, .asm_8d4cd + dec [hl] + ld d, $28 + call .asm_8d6de + ld hl, $7 + add hl, bc + ld [hl], a + ret + +.asm_8d4cd + ld de, SFX_GOT_SAFARI_BALLS + call PlaySFX + jr .sixteen_five +; 8d4d5 + +.sixteen_one: ; 8d4d5 + ld hl, $b + add hl, bc + ld [hl], $4 + ld hl, $c + add hl, bc + ld [hl], $30 + ld hl, $d + add hl, bc + ld [hl], $24 + ret +; 8d4e8 + +.sixteen_four: ; 8d4e8 + ld hl, $d + add hl, bc + ld a, [hl] + and a + jr z, .asm_8d51c + ld d, a + ld hl, $c + add hl, bc + ld a, [hl] + call Function8e72c + ld hl, $7 + add hl, bc + ld [hl], a + ld hl, $c + add hl, bc + inc [hl] + ld a, [hl] + and $3f + ret nz + ld hl, $c + add hl, bc + ld [hl], $20 + ld hl, $d + add hl, bc + ld a, [hl] + sub $c + ld [hl], a + ld de, SFX_SWITCH_POKEMON + call PlaySFX + ret + +.asm_8d51c + xor a + ld hl, $7 + add hl, bc + ld [hl], a + call .asm_8d6d8 + ret + +.sixteen_five: ; 8d526 + call Function8d036 + ret +; 8d52a + +.seventeen: ; 8d52a (23:552a) + ld hl, $4 + add hl, bc + ld a, [hl] +rept 2 + inc [hl] +endr + cp $b0 + jr nc, .asm_8d53f + and $3 + ret nz + ld de, SFX_POKEBALLS_PLACED_ON_TABLE + call PlaySFX + ret + +.asm_8d53f + call Function8d036 + ret + +.eighteen: ; 8d543 (23:5543) + callab Function29676 + ret + +.nineteen: ; 8d54a (23:554a) + ld hl, $c + add hl, bc + ld a, [hl] + cp $80 + jr nc, .asm_8d574 + ld d, a + add $8 + ld [hl], a + ld hl, $b + add hl, bc + ld a, [hl] + xor $20 + ld [hl], a + push af + push de + call .asm_8d6de + ld hl, $7 + add hl, bc + ld [hl], a + pop de + pop af + call .asm_8d6e2 + ld hl, $6 + add hl, bc + ld [hl], a + ret +.asm_8d574 + call Function8d036 + ret + +.twenty: ; 8d578 (23:5578) + callab Function91640 + ret + +.twentyone: ; 8d57f (23:557f) + ld hl, $d + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $80 + add hl, de + ld e, l + ld d, h + ld hl, $d + add hl, bc + ld [hl], e + inc hl + ld [hl], d + ld hl, $c + add hl, bc + ld a, [hl] +rept 3 + inc [hl] +endr + push af + push de + call .asm_8d6de + ld hl, $7 + add hl, bc + ld [hl], a + pop de + pop af + call .asm_8d6e2 + ld hl, $6 + add hl, bc + ld [hl], a + ret + +.twentytwo: ; 8d5b0 (23:55b0) + ld hl, $5 + add hl, bc + ld a, [hl] and a ret z - call GetEmote2bpp + ld hl, $d + add hl, bc + ld a, [hl] + inc [hl] + cp $40 + ret c + ld hl, $5 + add hl, bc +rept 2 + dec [hl] +endr + ld hl, $f + add hl, bc + ld a, [hl] + ld d, a + cp $40 + jr nc, .asm_8d5d3 + add $8 + ld [hl], a +.asm_8d5d3 + ld hl, $e + add hl, bc + ld a, [hl] + inc [hl] + call .asm_8d6e2 + ld hl, $6 + add hl, bc + ld [hl], a ret -; 1444d -emote_header: MACRO - dw \1 - db \2 tiles, BANK(\1) - dw \3 -ENDM +.twentythree: ; 8d5e2 (23:55e2) + ld hl, $4 + add hl, bc + ld a, [hl] + cp $b8 + jr nc, .asm_8d603 +rept 2 + inc [hl] +endr + ld hl, $5 + add hl, bc + dec [hl] + ld d, $40 + ld hl, $c + add hl, bc + ld a, [hl] + inc [hl] + call .asm_8d6e2 + ld hl, $6 + add hl, bc + ld [hl], a + ret +.asm_8d603 + call Function8d036 + ret -EmotesPointers: ; 144d -; dw source address -; db length, bank -; dw dest address +.twentyfour: ; 8d607 (23:5607) + ld hl, $5 + add hl, bc + ld a, [hl] + cp $54 + ret z + ld hl, $5 + add hl, bc +rept 2 + inc [hl] +endr + ld hl, $f + add hl, bc + ld a, [hl] + ld d, a + and a + jr z, .asm_8d621 + sub $2 + ld [hl], a +.asm_8d621 + ld hl, $e + add hl, bc + ld a, [hl] + inc [hl] + call .asm_8d6e2 + ld hl, $6 + add hl, bc + ld [hl], a + ret - emote_header ShockEmote, 4, VTiles1 tile $78 - emote_header QuestionEmote, 4, VTiles1 tile $78 - emote_header HappyEmote, 4, VTiles1 tile $78 - emote_header SadEmote, 4, VTiles1 tile $78 - emote_header HeartEmote, 4, VTiles1 tile $78 - emote_header BoltEmote, 4, VTiles1 tile $78 - emote_header SleepEmote, 4, VTiles1 tile $78 - emote_header FishEmote, 4, VTiles1 tile $78 - emote_header FishingRodGFX1, 1, VTiles1 tile $7c - emote_header FishingRodGFX2, 2, VTiles1 tile $7c - emote_header FishingRodGFX3, 2, VTiles1 tile $7e - emote_header FishingRodGFX4, 1, VTiles1 tile $7e -; 14495 +.twentyseven: ; 8d630 (23:5630) + callba Function108bc7 + ret + +.twentyeight: ; 8d637 (23:5637) + callba Function108be0 + ret + +.twentynine: ; 8d63e (23:563e) + ld a, [wcf65] + and a + jr nz, .asm_8d645 + ret +.asm_8d645 + ld hl, $7 + add hl, bc + ld [hl], $0 + ld hl, $d + add hl, bc + ld a, [hl] + add $2 + ld [hl], a + xor $ff + inc a + ld d, $20 + call .asm_8d6de + ld hl, $7 + add hl, bc + ld [hl], a + ld a, $36 + call Function8d120 + ret + +.thirty: ; 8d666 (23:5666) + ld hl, $c + add hl, bc + ld a, [hl] + cp $14 + jr nc, .asm_8d67f + add $2 + ld [hl], a + xor $ff + inc a + ld d, $20 + call .asm_8d6de + ld hl, $7 + add hl, bc + ld [hl], a +.asm_8d67f + ret + +.thirtytwo: ; 8d680 (23:5680) + ld hl, $b + add hl, bc + ld d, [hl] +rept 3 + inc [hl] +endr + ld hl, $c + add hl, bc + ld a, [hl] + push af + push de + call .asm_8d6de + ld hl, $7 + add hl, bc + ld [hl], a + pop de + pop af + call .asm_8d6e2 + ld hl, $6 + add hl, bc + ld [hl], a + ret + +.thirtythree: ; 8d6a2 (23:56a2) + ld a, [wcf64] + cp $40 + ret nz + ld a, $3d + call Function8d120 + ret + +.thirtyfour: ; 8d6ae (23:56ae) + ld hl, $5 + add hl, bc + ld a, [hl] + add $10 + ld [hl], a + ret + +.twentysix: ; 8d6b7 (23:56b7) + callba Function11d0b6 + ret + +.thirtyone: ; 8d6be (23:56be) + callba Function49aa2 + ret + +.anonymous_jumptable: ; 8d6c5 (23:56c5) + ld hl, [sp+$0] + ld e, [hl] + inc hl + ld d, [hl] + inc de + ld hl, $b + add hl, bc + ld l, [hl] + ld h, $0 + add hl, hl + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ret +; 8d6d8 (23:56d8) + +.asm_8d6d8: ; 8d6d8 + ld hl, $b + add hl, bc + inc [hl] + ret +; 8d6de + +.asm_8d6de: ; 8d6de (23:56de) + call Function8e72c + ret + +.asm_8d6e2: ; 8d6e2 (23:56e2) + call Function8e72a + ret +; 8d6e6 (23:56e6) + +Unknown_8d6e6: ; 8d6e6 + dw Unknown_8d76a + dw Unknown_8d76d + dw Unknown_8d772 + dw Unknown_8d777 + dw Unknown_8d77c + dw Unknown_8d781 + dw Unknown_8d786 + dw Unknown_8d7a6 + dw Unknown_8d7ab + dw Unknown_8d7b0 + dw Unknown_8d7b5 + dw Unknown_8d7d4 + dw Unknown_8d7d9 + dw Unknown_8d7e2 + dw Unknown_8d7eb + dw Unknown_8d7f4 + dw Unknown_8d7ff + dw Unknown_8d78b + dw Unknown_8d802 + dw Unknown_8d805 + dw Unknown_8d808 + dw Unknown_8d811 + dw Unknown_8d818 + dw Unknown_8d81d + dw Unknown_8d822 + dw Unknown_8d825 + dw Unknown_8d82c + dw Unknown_8d82f + dw Unknown_8d861 + dw Unknown_8d864 + dw Unknown_8d867 + dw Unknown_8d874 + dw Unknown_8d877 + dw Unknown_8d87a + dw Unknown_8d87d + dw Unknown_8d880 + dw Unknown_8d883 + dw Unknown_8d890 + dw Unknown_8d899 + dw Unknown_8d89c + dw Unknown_8d89f + dw Unknown_8d8a2 + dw Unknown_8d8a5 + dw Unknown_8d8a8 + dw Unknown_8d8ab + dw Unknown_8d794 + dw Unknown_8d79d + dw Unknown_8d8ae + dw Unknown_8d8cd + dw Unknown_8d8ec + dw Unknown_8d8f1 + dw Unknown_8d8f4 + dw Unknown_8d8f7 + dw Unknown_8d8fe + dw Unknown_8d907 + dw Unknown_8d90c + dw Unknown_8d913 + dw Unknown_8d916 + dw Unknown_8d91d + dw Unknown_8d924 + dw Unknown_8d92b + dw Unknown_8d932 + dw Unknown_8d93d + dw Unknown_8d940 + dw Unknown_8d943 + dw Unknown_8d948 +; 8d76a + +Unknown_8d76a: dw $2000 + db -1 +Unknown_8d76d: dw $0800, $0801 + db -2 +Unknown_8d772: dw $083d, $083e + db -2 +Unknown_8d777: dw $083f, $0840 + db -2 +Unknown_8d77c: dw $0400, $0401 + db -2 +Unknown_8d781: dw $043d, $043e + db -2 +Unknown_8d786: dw $043f, $0440 + db -2 +Unknown_8d78b: dw $0800, $0801, $0800, $4801 + db -2 +Unknown_8d794: dw $0863, $0864, $0863, $4864 + db -2 +Unknown_8d79d: dw $0865, $0866, $0865, $4866 + db -2 +Unknown_8d7a6: dw $011e, $011f + db -2 +Unknown_8d7ab: dw $0120, $01fd + db -2 +Unknown_8d7b0: dw $0121, $01fd + db -2 +Unknown_8d7b5: dw $0c81, $0182, $0183, $0482, $0c81, $0c82, $0483, $2084, $0385, $0386, $0487, $0488, $0489, $0a8a, $078b + db -1 +Unknown_8d7d4: dw $0323, $8323 + db -2 +Unknown_8d7d9: dw $0224, $0225, $0226, $0225 + db -2 +Unknown_8d7e2: dw $0727, $0728, $8727, $4728 + db -2 +Unknown_8d7eb: dw $0729, $072a, $0729, $072b + db -2 +Unknown_8d7f4: dw $0729, $072c, $072d, $072c, $0729 + db -1 +Unknown_8d7ff: dw $142e + db -1 +Unknown_8d802: dw $202f + db -1 +Unknown_8d805: dw $2030 + db -1 +Unknown_8d808: dw $0330, $0331, $0330, $4331 + db -2 +Unknown_8d811: dw $0432, $0433, $0434 + db -4 +Unknown_8d818: dw $0335, $0336 + db -2 +Unknown_8d81d: dw $0737, $0738 + db -2 +Unknown_8d822: dw $2039 + db -1 +Unknown_8d825: dw $023b, $023a, $023b + db -1 +Unknown_8d82c: dw $203c + db -1 +Unknown_8d82f: dw $0841, $0842, $0841, $4842 + db -2 + dw $0843, $0844 + db -2 + dw $0845, $0846 + db -2 + dw $0847, $0848 + db -2 + dw $0149, $4149, $c149, $8149 + db -2 + dw $204a + db -1 + dw $204b + db -1 + dw $204c + db -1 + dw $204d + db -1 + dw $034e, $03fd + db -2 +Unknown_8d861: dw $20fd + db -1 +Unknown_8d864: dw $204f + db -1 +Unknown_8d867: dw $0250, $1051, $01fd, $0152, $01fd, $0153 + db -4 +Unknown_8d874: dw $2054 + db -1 +Unknown_8d877: dw $2055 + db -1 +Unknown_8d87a: dw $6055 + db -1 +Unknown_8d87d: dw $a055 + db -1 +Unknown_8d880: dw $e055 + db -1 +Unknown_8d883: dw $0a56, $0957, $0a58, $0a59, $0958, $0a5a + db -2 +Unknown_8d890: dw $0250, $025b, $0250, $425b + db -2 +Unknown_8d899: dw $025c + db -1 +Unknown_8d89c: dw $025d + db -1 +Unknown_8d89f: dw $025e + db -1 +Unknown_8d8a2: dw $025f + db -1 +Unknown_8d8a5: dw $0260 + db -1 +Unknown_8d8a8: dw $0261 + db -1 +Unknown_8d8ab: dw $0262 + db -1 +Unknown_8d8ae: dw $0332, $0333, $0334, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331 + db -1 +Unknown_8d8cd: dw $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0332, $0333, $0334 + db -4 +Unknown_8d8ec: dw $0367, $0368 + db -2 +Unknown_8d8f1: dw $036c + db -1 +Unknown_8d8f4: dw $036d + db -1 +Unknown_8d8f7: dw $0269, $026a, $026b + db -4 +Unknown_8d8fe: dw $036e, $036f, $0370, $0371 + db -2 +Unknown_8d907: dw $0371, $076e + db -1 +Unknown_8d90c: dw $2072, $0773, $0774 + db -1 +Unknown_8d913: dw $0375 + db -1 +Unknown_8d916: dw $0376, $0377, $0778 + db -4 +Unknown_8d91d: dw $4376, $4377, $4778 + db -4 +Unknown_8d924: dw $8376, $8377, $8778 + db -4 +Unknown_8d92b: dw $c376, $c377, $c778 + db -4 +Unknown_8d932: dw $0379, $037a, $037b, $077c, $077d + db -1 +Unknown_8d93d: dw $037e + db -1 +Unknown_8d940: dw $00fd + db -1 +Unknown_8d943: dw $087f, $0880 + db -1 +Unknown_8d948: dw $487f, $4880 + db -1 +; 8d94d + +Unknown_8d94d: ; 8d94d + dbw $00, Unknown_8dd8a ; 00 + dbw $04, Unknown_8dd8a ; 01 + dbw $4c, Unknown_8daf1 ; 02 + dbw $5c, Unknown_8daf1 ; 03 + dbw $6c, Unknown_8daf6 ; 04 + dbw $6e, Unknown_8daf6 ; 05 + dbw $2d, Unknown_8ddf0 ; 06 + dbw $4d, Unknown_8ddf0 ; 07 + dbw $60, Unknown_8de09 ; 08 + dbw $00, Unknown_8de09 ; 09 + dbw $00, Unknown_8de09 ; 0a + dbw $06, Unknown_8de09 ; 0b + dbw $0c, Unknown_8de7e ; 0c + dbw $0d, Unknown_8daf1 ; 0d + dbw $00, Unknown_8dc53 ; 0e + dbw $04, Unknown_8dc53 ; 0f + dbw $08, Unknown_8dc53 ; 10 + dbw $40, Unknown_8dc53 ; 11 + dbw $44, Unknown_8dc53 ; 12 + dbw $48, Unknown_8dc53 ; 13 + dbw $4c, Unknown_8dc53 ; 14 + dbw $80, Unknown_8de87 ; 15 + dbw $85, Unknown_8de87 ; 16 + dbw $8a, Unknown_8de87 ; 17 + dbw $00, Unknown_8db29 ; 18 + dbw $01, Unknown_8db5c ; 19 + dbw $09, Unknown_8db9d ; 1a + dbw $10, Unknown_8dc94 ; 1b + dbw $29, Unknown_8dc94 ; 1c + dbw $42, Unknown_8dc94 ; 1d + dbw $f8, Unknown_8e17e ; 1e + dbw $fa, Unknown_8e17e ; 1f + dbw $00, Unknown_8deb2 ; 20 + dbw $00, Unknown_8dec3 ; 21 + dbw $00, Unknown_8deec ; 22 + dbw $0f, Unknown_8db07 ; 23 + dbw $11, Unknown_8daf1 ; 24 + dbw $12, Unknown_8daf1 ; 25 + dbw $13, Unknown_8daf1 ; 26 + dbw $00, Unknown_8df29 ; 27 + dbw $08, Unknown_8df29 ; 28 + dbw $10, Unknown_8df42 ; 29 + dbw $10, Unknown_8df5b ; 2a + dbw $10, Unknown_8df74 ; 2b + dbw $10, Unknown_8df8d ; 2c + dbw $10, Unknown_8dfa6 ; 2d + dbw $3a, Unknown_8daf1 ; 2e + dbw $00, Unknown_8dd8a ; 2f + dbw $00, Unknown_8db18 ; 30 + dbw $02, Unknown_8dd9b ; 31 + dbw $06, Unknown_8db5c ; 32 + dbw $0a, Unknown_8db5c ; 33 + dbw $0e, Unknown_8db5c ; 34 + dbw $12, Unknown_8db3a ; 35 + dbw $13, Unknown_8db3a ; 36 + dbw $00, Unknown_8dd8a ; 37 + dbw $04, Unknown_8dd8a ; 38 + dbw $10, Unknown_8db5c ; 39 + dbw $00, Unknown_8dd9b ; 3a + dbw $04, Unknown_8daf1 ; 3b + dbw $00, Unknown_8dfbf ; 3c + dbw $00, Unknown_8ddac ; 3d + dbw $00, Unknown_8ddbd ; 3e + dbw $00, Unknown_8ddce ; 3f + dbw $00, Unknown_8dddf ; 40 + dbw $00, Unknown_8dd9b ; 41 + dbw $04, Unknown_8dd9b ; 42 + dbw $00, Unknown_8dc2e ; 43 + dbw $30, Unknown_8dc2e ; 44 + dbw $03, Unknown_8dc2e ; 45 + dbw $33, Unknown_8dc2e ; 46 + dbw $06, Unknown_8dc2e ; 47 + dbw $36, Unknown_8dc2e ; 48 + dbw $09, Unknown_8dc2e ; 49 + dbw $39, Unknown_8dc2e ; 4a + dbw $0c, Unknown_8dfcc ; 4b + dbw $0c, Unknown_8dfe5 ; 4c + dbw $3c, Unknown_8daf1 ; 4d + dbw $3e, Unknown_8daf1 ; 4e + dbw $00, Unknown_8de9c ; 4f + dbw $00, Unknown_8dea1 ; 50 + dbw $00, Unknown_8dff6 ; 51 + dbw $00, Unknown_8e007 ; 52 + dbw $00, Unknown_8e018 ; 53 + dbw $00, Unknown_8daf1 ; 54 + dbw $01, Unknown_8daf1 ; 55 + dbw $00, Unknown_8e029 ; 56 + dbw $00, Unknown_8e076 ; 57 + dbw $00, Unknown_8e0b7 ; 58 + dbw $00, Unknown_8e0f4 ; 59 + dbw $00, Unknown_8e139 ; 5a + dbw $04, Unknown_8dea1 ; 5b + dbw $00, Unknown_8e183 ; 5c + dbw $00, Unknown_8e1b4 ; 5d + dbw $00, Unknown_8e1b9 ; 5e + dbw $00, Unknown_8e1ca ; 5f + dbw $00, Unknown_8e1eb ; 60 + dbw $00, Unknown_8e1f0 ; 61 + dbw $00, Unknown_8e1f9 ; 62 + dbw $00, Unknown_8e202 ; 63 + dbw $04, Unknown_8e202 ; 64 + dbw $00, Unknown_8e213 ; 65 + dbw $04, Unknown_8e213 ; 66 + dbw $20, Unknown_8e224 ; 67 + dbw $21, Unknown_8e224 ; 68 + dbw $22, Unknown_8e24b ; 69 + dbw $23, Unknown_8e25c ; 6a + dbw $27, Unknown_8e27d ; 6b + dbw $2a, Unknown_8e229 ; 6c + dbw $2a, Unknown_8e23a ; 6d + dbw $00, Unknown_8e2ae ; 6e + dbw $08, Unknown_8e33f ; 6f + dbw $60, Unknown_8e3b0 ; 70 + dbw $68, Unknown_8e429 ; 71 + dbw $00, Unknown_8e4a6 ; 72 + dbw $05, Unknown_8e4a6 ; 73 + dbw $0a, Unknown_8e4a6 ; 74 + dbw $50, Unknown_8e50b ; 75 + dbw $00, Unknown_8e54c ; 76 + dbw $01, Unknown_8e551 ; 77 + dbw $04, Unknown_8e55e ; 78 + dbw $00, Unknown_8db29 ; 79 + dbw $01, Unknown_8e57b ; 7a + dbw $03, Unknown_8e59c ; 7b + dbw $08, Unknown_8e5cd ; 7c + dbw $1c, Unknown_8e5cd ; 7d + dbw $80, Unknown_8e61e ; 7e + dbw $00, Unknown_8e66f ; 7f + dbw $04, Unknown_8e66f ; 80 + dbw $d0, Unknown_8e680 ; 81 + dbw $d3, Unknown_8e680 ; 82 + dbw $d6, Unknown_8e680 ; 83 + dbw $6c, Unknown_8e6a5 ; 84 + dbw $68, Unknown_8e6a5 ; 85 + dbw $64, Unknown_8e6a5 ; 86 + dbw $60, Unknown_8e6a5 ; 87 + dbw $0c, Unknown_8e6a5 ; 88 + dbw $08, Unknown_8e6a5 ; 89 + dbw $04, Unknown_8e6a5 ; 8a + dbw $00, Unknown_8e6a5 ; 8b +; 8daf1 -SpriteMons: ; 14495 - db UNOWN - db GEODUDE - db GROWLITHE - db WEEDLE - db SHELLDER - db ODDISH - db GENGAR - db ZUBAT - db MAGIKARP - db SQUIRTLE - db TOGEPI - db BUTTERFREE - db DIGLETT - db POLIWAG - db PIKACHU - db CLEFAIRY - db CHARMANDER - db JYNX - db STARMIE - db BULBASAUR - db JIGGLYPUFF - db GRIMER - db EKANS - db PARAS - db TENTACOOL - db TAUROS - db MACHOP - db VOLTORB - db LAPRAS - db RHYDON - db MOLTRES - db SNORLAX - db GYARADOS - db LUGIA - db HO_OH -; 144b8 +Unknown_8daf1: ; 8daf1 + db 1 + db $fc, $fc, $00, $00 +; 8daf6 +Unknown_8daf6: ; 8daf6 + db 4 + db $f8, $f8, $00, $00 + db $f8, $00, $01, $00 + db $00, $f8, $10, $00 + db $00, $00, $11, $00 +; 8db07 -OutdoorSprites: ; 144b8 -; Valid sprite IDs for each map group. +Unknown_8db07: ; 8db07 + db 4 + db $f8, $f8, $00, $00 + db $f8, $00, $00, $20 + db $00, $f8, $01, $00 + db $00, $00, $01, $20 +; 8db18 - dw Group1Sprites - dw Group2Sprites - dw Group3Sprites - dw Group4Sprites - dw Group5Sprites - dw Group6Sprites - dw Group7Sprites - dw Group8Sprites - dw Group9Sprites - dw Group10Sprites - dw Group11Sprites - dw Group12Sprites - dw Group13Sprites - dw Group14Sprites - dw Group15Sprites - dw Group16Sprites - dw Group17Sprites - dw Group18Sprites - dw Group19Sprites - dw Group20Sprites - dw Group21Sprites - dw Group22Sprites - dw Group23Sprites - dw Group24Sprites - dw Group25Sprites - dw Group26Sprites -; 144ec +Unknown_8db18: ; 8db18 + db 4 + db $f8, $f8, $00, $80 + db $f8, $00, $00, $a0 + db $00, $f8, $01, $80 + db $00, $00, $01, $a0 +; 8db29 +Unknown_8db29: ; 8db29 + db 4 + db $f8, $f8, $00, $00 + db $f8, $00, $00, $20 + db $00, $f8, $00, $40 + db $00, $00, $00, $60 +; 8db3a -Group13Sprites: ; 144ec - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14503 +Unknown_8db3a: ; 8db3a + db 4 + db $f8, $f8, $00, $07 + db $f8, $00, $00, $27 + db $00, $f8, $00, $47 + db $00, $00, $00, $67 +; 8db4b -Group23Sprites: ; 14503 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1451a +; 8db4b + db 4 + db $f8, $f8, $00, $80 + db $f8, $00, $00, $a0 + db $00, $f8, $00, $c0 + db $00, $00, $00, $e0 +; 8db5c -Group14Sprites: ; 1451a - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14531 +Unknown_8db5c: ; 8db5c + db 16 + db $f0, $f0, $00, $00 + db $f0, $f8, $01, $00 + db $f8, $f0, $02, $00 + db $f8, $f8, $03, $00 + db $f0, $00, $01, $20 + db $f0, $08, $00, $20 + db $f8, $00, $03, $20 + db $f8, $08, $02, $20 + db $00, $f0, $02, $40 + db $00, $f8, $03, $40 + db $08, $f0, $00, $40 + db $08, $f8, $01, $40 + db $00, $00, $03, $60 + db $00, $08, $02, $60 + db $08, $00, $01, $60 + db $08, $08, $00, $60 +; 8db9d -Group6Sprites: ; 14531 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14548 +Unknown_8db9d: ; 8db9d + db 36 + db $e8, $e8, $00, $00 + db $e8, $f0, $01, $00 + db $e8, $f8, $02, $00 + db $f0, $e8, $03, $00 + db $f0, $f0, $04, $00 + db $f0, $f8, $05, $00 + db $f8, $e8, $06, $00 + db $f8, $f0, $05, $00 + db $f8, $f8, $05, $00 + db $e8, $00, $02, $20 + db $e8, $08, $01, $20 + db $e8, $10, $00, $20 + db $f0, $00, $05, $20 + db $f0, $08, $04, $20 + db $f0, $10, $03, $20 + db $f8, $00, $05, $20 + db $f8, $08, $05, $20 + db $f8, $10, $06, $20 + db $00, $e8, $06, $40 + db $00, $f0, $05, $40 + db $00, $f8, $05, $40 + db $08, $e8, $03, $40 + db $08, $f0, $04, $40 + db $08, $f8, $05, $40 + db $10, $e8, $00, $40 + db $10, $f0, $01, $40 + db $10, $f8, $02, $40 + db $00, $00, $05, $60 + db $00, $08, $05, $60 + db $00, $10, $06, $60 + db $08, $00, $05, $60 + db $08, $08, $04, $60 + db $08, $10, $03, $60 + db $10, $00, $02, $60 + db $10, $08, $01, $60 + db $10, $10, $00, $60 +; 8dc2e -Group7Sprites: ; 14548 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_COOLTRAINER_M - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_POKEFAN_M - db SPRITE_ROCKET - db SPRITE_MISTY - db SPRITE_POKE_BALL - db SPRITE_SLOWPOKE -; 1455f +Unknown_8dc2e: ; 8dc2e + db 9 + db $f4, $f4, $00, $00 + db $f4, $fc, $01, $00 + db $f4, $04, $02, $00 + db $fc, $f4, $10, $00 + db $fc, $fc, $11, $00 + db $fc, $04, $12, $00 + db $04, $f4, $20, $00 + db $04, $fc, $21, $00 + db $04, $04, $22, $00 +; 8dc53 -Group25Sprites: ; 1455f - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_COOLTRAINER_M - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_POKEFAN_M - db SPRITE_ROCKET - db SPRITE_MISTY - db SPRITE_POKE_BALL - db SPRITE_SLOWPOKE -; 14576 +Unknown_8dc53: ; 8dc53 + db 16 + db $f0, $f0, $00, $00 + db $f0, $f8, $01, $00 + db $f0, $00, $02, $00 + db $f0, $08, $03, $00 + db $f8, $f0, $10, $00 + db $f8, $f8, $11, $00 + db $f8, $00, $12, $00 + db $f8, $08, $13, $00 + db $00, $f0, $20, $00 + db $00, $f8, $21, $00 + db $00, $00, $22, $00 + db $00, $08, $23, $00 + db $08, $f0, $30, $00 + db $08, $f8, $31, $00 + db $08, $00, $32, $00 + db $08, $08, $33, $00 +; 8dc94 -Group21Sprites: ; 14576 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_FISHER - db SPRITE_POLIWAG - db SPRITE_TEACHER - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_BIKER - db SPRITE_SILVER - db SPRITE_BLUE - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1458d +Unknown_8dc94: ; 8dc94 + db 25 + db $ec, $ec, $00, $00 + db $f4, $ec, $01, $00 + db $fc, $ec, $02, $00 + db $04, $ec, $03, $00 + db $0c, $ec, $04, $00 + db $ec, $f4, $05, $00 + db $f4, $f4, $06, $00 + db $fc, $f4, $07, $00 + db $04, $f4, $08, $00 + db $0c, $f4, $09, $00 + db $ec, $fc, $0a, $00 + db $f4, $fc, $0b, $00 + db $fc, $fc, $0c, $00 + db $04, $fc, $0d, $00 + db $0c, $fc, $0e, $00 + db $ec, $04, $0f, $00 + db $f4, $04, $10, $00 + db $fc, $04, $11, $00 + db $04, $04, $12, $00 + db $0c, $04, $13, $00 + db $ec, $0c, $14, $00 + db $f4, $0c, $15, $00 + db $fc, $0c, $16, $00 + db $04, $0c, $17, $00 + db $0c, $0c, $18, $00 +; 8dcf9 -Group18Sprites: ; 1458d - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_MACHOP - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_BIG_SNORLAX - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 145a4 +; 8dcf9 + db 36 + db $e8, $e8, $00, $00 + db $e8, $f0, $01, $00 + db $e8, $f8, $02, $00 + db $e8, $00, $03, $00 + db $e8, $08, $04, $00 + db $e8, $10, $05, $00 + db $f0, $e8, $06, $00 + db $f0, $f0, $07, $00 + db $f0, $f8, $08, $00 + db $f0, $00, $09, $00 + db $f0, $08, $0a, $00 + db $f0, $10, $0b, $00 + db $f8, $e8, $0c, $00 + db $f8, $f0, $0d, $00 + db $f8, $f8, $0e, $00 + db $f8, $00, $0f, $00 + db $f8, $08, $10, $00 + db $f8, $10, $11, $00 + db $00, $e8, $12, $00 + db $00, $f0, $13, $00 + db $00, $f8, $14, $00 + db $00, $00, $15, $00 + db $00, $08, $16, $00 + db $00, $10, $17, $00 + db $08, $e8, $18, $00 + db $08, $f0, $19, $00 + db $08, $f8, $1a, $00 + db $08, $00, $1b, $00 + db $08, $08, $1c, $00 + db $08, $10, $1d, $00 + db $10, $e8, $1e, $00 + db $10, $f0, $1f, $00 + db $10, $f8, $20, $00 + db $10, $00, $21, $00 + db $10, $08, $22, $00 + db $10, $10, $23, $00 +; 8dd8a -Group12Sprites: ; 145a4 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_MACHOP - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_BIG_SNORLAX - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 145bb +Unknown_8dd8a: ; 8dd8a + db 4 + db $f8, $f8, $00, $00 + db $f8, $00, $01, $00 + db $00, $f8, $02, $00 + db $00, $00, $03, $00 +; 8dd9b -Group17Sprites: ; 145bb - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_MACHOP - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_BIG_SNORLAX - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 145d2 +Unknown_8dd9b: ; 8dd9b + db 4 + db $f8, $f8, $00, $80 + db $f8, $00, $01, $80 + db $00, $f8, $02, $80 + db $00, $00, $03, $80 +; 8ddac -Group16Sprites: ; 145d2 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_BUENA - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_MACHOP - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_BOULDER -; 145e9 +Unknown_8ddac: ; 8ddac + db 4 + db $f8, $f8, $00, $00 + db $f8, $00, $01, $00 + db $00, $f8, $08, $00 + db $00, $00, $03, $00 +; 8ddbd -Group24Sprites: ; 145e9 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SILVER - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_YOUNGSTER - db SPRITE_MONSTER - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14600 +Unknown_8ddbd: ; 8ddbd + db 4 + db $f8, $f8, $04, $00 + db $f8, $00, $05, $00 + db $00, $f8, $08, $00 + db $00, $00, $07, $00 +; 8ddce -Group26Sprites: ; 14600 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SILVER - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_YOUNGSTER - db SPRITE_MONSTER - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14617 +Unknown_8ddce: ; 8ddce + db 4 + db $f8, $f8, $00, $00 + db $f8, $00, $01, $00 + db $00, $f8, $09, $00 + db $00, $00, $03, $00 +; 8dddf -Group19Sprites: ; 14617 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SILVER - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_YOUNGSTER - db SPRITE_MONSTER - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1462e +Unknown_8dddf: ; 8dddf + db 4 + db $f8, $f8, $04, $00 + db $f8, $00, $05, $00 + db $00, $f8, $09, $00 + db $00, $00, $07, $00 +; 8ddf0 -Group10Sprites: ; 1462e - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_FISHER - db SPRITE_LASS - db SPRITE_OFFICER - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_COOLTRAINER_M - db SPRITE_BUG_CATCHER - db SPRITE_SUPER_NERD - db SPRITE_WEIRD_TREE - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14645 +Unknown_8ddf0: ; 8ddf0 + db 6 + db $f8, $f4, $00, $01 + db $f8, $fc, $01, $01 + db $f8, $04, $02, $01 + db $00, $f4, $10, $01 + db $00, $fc, $11, $01 + db $00, $04, $12, $01 +; 8de09 -Group4Sprites: ; 14645 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_FISHER - db SPRITE_LASS - db SPRITE_OFFICER - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_COOLTRAINER_M - db SPRITE_BUG_CATCHER - db SPRITE_SUPER_NERD - db SPRITE_WEIRD_TREE - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1465c +Unknown_8de09: ; 8de09 + db 29 + db $e8, $e8, $00, $00 + db $e8, $f0, $01, $00 + db $e8, $f8, $02, $00 + db $e8, $00, $03, $00 + db $f0, $e8, $10, $00 + db $f0, $f0, $11, $00 + db $f0, $f8, $12, $00 + db $f0, $00, $13, $00 + db $f8, $e8, $20, $00 + db $f8, $f0, $21, $00 + db $f8, $f8, $22, $00 + db $f8, $00, $23, $00 + db $f8, $08, $24, $00 + db $00, $e8, $30, $80 + db $00, $f0, $31, $80 + db $00, $f8, $32, $80 + db $00, $00, $33, $80 + db $00, $08, $34, $80 + db $08, $e8, $40, $80 + db $08, $f0, $41, $80 + db $08, $f8, $42, $80 + db $08, $00, $43, $80 + db $08, $08, $44, $80 + db $08, $10, $45, $80 + db $10, $f0, $51, $80 + db $10, $f8, $52, $80 + db $10, $00, $53, $80 + db $10, $08, $54, $80 + db $10, $10, $55, $80 +; 8de7e -Group8Sprites: ; 1465c - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_KURT_OUTSIDE - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_OFFICER - db SPRITE_POKEFAN_M - db SPRITE_BLACK_BELT - db SPRITE_TEACHER - db SPRITE_AZALEA_ROCKET - db SPRITE_LASS - db SPRITE_SILVER - db SPRITE_FRUIT_TREE - db SPRITE_SLOWPOKE -; 14673 +Unknown_8de7e: ; 8de7e + db 2 + db $f8, $fc, $00, $00 + db $00, $fc, $10, $00 +; 8de87 -Group11Sprites: ; 14673 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_POKE_BALL - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_OFFICER - db SPRITE_POKEFAN_M - db SPRITE_DAYCARE_MON_1 - db SPRITE_COOLTRAINER_F - db SPRITE_ROCKET - db SPRITE_LASS - db SPRITE_DAYCARE_MON_2 - db SPRITE_FRUIT_TREE - db SPRITE_SLOWPOKE -; 1468a +Unknown_8de87: ; 8de87 + db 5 + db $f0, $18, $00, $00 + db $f0, $20, $01, $00 + db $f8, $10, $02, $00 + db $f8, $18, $03, $00 + db $00, $10, $04, $00 +; 8de9c -Group22Sprites: ; 1468a - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_STANDING_YOUNGSTER - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_OLIVINE_RIVAL - db SPRITE_POKEFAN_M - db SPRITE_LASS - db SPRITE_BUENA - db SPRITE_SWIMMER_GIRL - db SPRITE_SAILOR - db SPRITE_POKEFAN_F - db SPRITE_SUPER_NERD - db SPRITE_TAUROS - db SPRITE_FRUIT_TREE - db SPRITE_ROCK -; 146a1 +Unknown_8de9c: ; 8de9c + db 1 + db $fc, $fc, $00, $06 +; 8dea1 -Group1Sprites: ; 146a1 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_STANDING_YOUNGSTER - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_OLIVINE_RIVAL - db SPRITE_POKEFAN_M - db SPRITE_LASS - db SPRITE_BUENA - db SPRITE_SWIMMER_GIRL - db SPRITE_SAILOR - db SPRITE_POKEFAN_F - db SPRITE_SUPER_NERD - db SPRITE_TAUROS - db SPRITE_FRUIT_TREE - db SPRITE_ROCK -; 146b8 +Unknown_8dea1: ; 8dea1 + db 4 + db $f8, $f8, $00, $06 + db $f8, $00, $01, $06 + db $00, $f8, $02, $06 + db $00, $00, $03, $06 +; 8deb2 -Group9Sprites: ; 146b8 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_LANCE - db SPRITE_GRAMPS - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_LASS - db SPRITE_YOUNGSTER - db SPRITE_GYARADOS - db SPRITE_FRUIT_TREE - db SPRITE_POKE_BALL -; 146cf +Unknown_8deb2: ; 8deb2 + db 4 + db $ff, $ff, $00, $00 + db $ff, $00, $00, $20 + db $00, $ff, $00, $40 + db $00, $00, $00, $60 +; 8dec3 -Group2Sprites: ; 146cf - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_M - db SPRITE_POKEFAN_M - db SPRITE_BLACK_BELT - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_FRUIT_TREE - db SPRITE_POKE_BALL -; 146e6 +Unknown_8dec3: ; 8dec3 + db 10 + db $ff, $00, $00, $00 + db $ff, $08, $01, $00 + db $ff, $10, $01, $00 + db $ff, $18, $01, $00 + db $ff, $20, $00, $20 + db $00, $00, $00, $40 + db $00, $08, $01, $40 + db $00, $10, $01, $40 + db $00, $18, $01, $40 + db $00, $20, $00, $60 +; 8deec -Group5Sprites: ; 146e6 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_M - db SPRITE_POKEFAN_M - db SPRITE_BLACK_BELT - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_FRUIT_TREE - db SPRITE_POKE_BALL -; 146fd +Unknown_8deec: ; 8deec + db 15 + db $ec, $f4, $00, $11 + db $ec, $fc, $01, $11 + db $ec, $04, $02, $11 + db $f4, $f4, $03, $11 + db $f4, $fc, $04, $11 + db $f4, $04, $05, $11 + db $fc, $f4, $06, $11 + db $fc, $fc, $07, $11 + db $fc, $04, $08, $11 + db $04, $f4, $09, $11 + db $04, $fc, $0a, $11 + db $04, $04, $0b, $11 + db $0c, $f4, $0c, $11 + db $0c, $fc, $0d, $11 + db $0c, $04, $0e, $11 +; 8df29 -Group3Sprites: ; 146fd - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_GAMEBOY_KID - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_LASS - db SPRITE_POKEFAN_F - db SPRITE_TEACHER - db SPRITE_YOUNGSTER - db SPRITE_GROWLITHE - db SPRITE_POKEFAN_M - db SPRITE_ROCKER - db SPRITE_FISHER - db SPRITE_SCIENTIST - db SPRITE_POKE_BALL - db SPRITE_BOULDER -; 14714 +Unknown_8df29: ; 8df29 + db 6 + db $f4, $f4, $00, $15 + db $f4, $fc, $02, $15 + db $f4, $04, $00, $35 + db $04, $f4, $04, $15 + db $04, $fc, $06, $15 + db $04, $04, $04, $35 +; 8df42 -Group15Sprites: ; 14714 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SAILOR - db SPRITE_FISHING_GURU - db SPRITE_GENTLEMAN - db SPRITE_SUPER_NERD - db SPRITE_HO_OH - db SPRITE_TEACHER - db SPRITE_COOLTRAINER_F - db SPRITE_YOUNGSTER - db SPRITE_FAIRY - db SPRITE_POKE_BALL - db SPRITE_ROCK -; 1472b +Unknown_8df42: ; 8df42 + db 6 + db $f4, $f4, $00, $16 + db $f4, $fc, $02, $16 + db $f4, $04, $04, $16 + db $04, $f4, $06, $16 + db $04, $fc, $08, $16 + db $04, $04, $0a, $16 +; 8df5b -Group20Sprites: ; 1472b - db SPRITE_OAK - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_TWIN - db SPRITE_POKEFAN_M - db SPRITE_GRAMPS - db SPRITE_FAIRY - db SPRITE_SILVER - db SPRITE_FISHING_GURU - db SPRITE_POKE_BALL - db SPRITE_POKEDEX -; 14736 +Unknown_8df5b: ; 8df5b + db 6 + db $f4, $f4, $00, $16 + db $f4, $fc, $02, $16 + db $f4, $04, $04, $16 + db $04, $f4, $0c, $16 + db $04, $fc, $0e, $16 + db $04, $04, $10, $16 +; 8df74 +Unknown_8df74: ; 8df74 + db 6 + db $f4, $f4, $00, $16 + db $f4, $fc, $02, $16 + db $f4, $04, $04, $16 + db $04, $f4, $12, $16 + db $04, $fc, $14, $16 + db $04, $04, $16, $16 +; 8df8d -SpriteHeaders: ; 14736 -INCLUDE "gfx/overworld/sprite_headers.asm" -; 1499a +Unknown_8df8d: ; 8df8d + db 6 + db $f4, $f4, $00, $16 + db $f4, $fc, $02, $16 + db $f4, $04, $04, $16 + db $04, $f4, $18, $16 + db $04, $fc, $1a, $16 + db $04, $04, $1c, $16 +; 8dfa6 + +Unknown_8dfa6: ; 8dfa6 + db 6 + db $f4, $f4, $1e, $16 + db $f4, $fc, $20, $16 + db $f4, $04, $22, $16 + db $04, $f4, $24, $16 + db $04, $fc, $26, $16 + db $04, $04, $28, $16 +; 8dfbf + +Unknown_8dfbf: ; 8dfbf + db 3 + db $f4, $fc, $00, $10 + db $fc, $fc, $00, $10 + db $04, $fc, $00, $10 +; 8dfcc + +Unknown_8dfcc: ; 8dfcc + db 6 + db $00, $00, $00, $00 + db $00, $08, $01, $00 + db $00, $10, $01, $00 + db $00, $18, $01, $00 + db $00, $20, $02, $00 + db $00, $28, $03, $00 +; 8dfe5 + +Unknown_8dfe5: ; 8dfe5 + db 4 + db $00, $00, $00, $00 + db $00, $08, $01, $00 + db $00, $10, $02, $00 + db $00, $18, $03, $00 +; 8dff6 + +Unknown_8dff6: ; 8dff6 + db 4 + db $f8, $f6, $00, $06 + db $f8, $02, $01, $06 + db $00, $f6, $02, $06 + db $00, $02, $03, $06 +; 8e007 + +Unknown_8e007: ; 8e007 + db 4 + db $f8, $f4, $00, $06 + db $f8, $04, $01, $06 + db $00, $f4, $02, $06 + db $00, $04, $03, $06 +; 8e018 + +Unknown_8e018: ; 8e018 + db 4 + db $f8, $f0, $00, $06 + db $f8, $08, $01, $06 + db $00, $f0, $02, $06 + db $00, $08, $03, $06 +; 8e029 + +Unknown_8e029: ; 8e029 + db 19 + db $f8, $e0, $00, $00 + db $f0, $e8, $02, $00 + db $00, $e8, $04, $00 + db $e8, $f0, $06, $00 + db $f8, $f0, $08, $00 + db $08, $f0, $0a, $00 + db $e8, $f8, $0c, $00 + db $f8, $f8, $0e, $00 + db $08, $f8, $10, $00 + db $e8, $00, $12, $00 + db $f8, $00, $14, $00 + db $08, $00, $16, $00 + db $e8, $08, $18, $00 + db $f8, $08, $1a, $00 + db $08, $08, $1c, $00 + db $f8, $10, $1e, $00 + db $08, $10, $20, $00 + db $f0, $18, $22, $00 + db $00, $18, $24, $00 +; 8e076 + +Unknown_8e076: ; 8e076 + db 16 + db $f8, $e0, $00, $00 + db $f0, $e8, $02, $00 + db $00, $e8, $04, $00 + db $f8, $f0, $26, $00 + db $08, $f0, $0a, $00 + db $e8, $f8, $28, $00 + db $f8, $f8, $2a, $00 + db $08, $f8, $10, $00 + db $f8, $00, $2c, $00 + db $08, $00, $16, $00 + db $f8, $08, $30, $00 + db $08, $08, $1c, $00 + db $f8, $10, $1e, $00 + db $08, $10, $20, $00 + db $f0, $18, $22, $00 + db $00, $18, $24, $00 +; 8e0b7 + +Unknown_8e0b7: ; 8e0b7 + db 15 + db $f8, $e0, $00, $00 + db $f0, $e8, $02, $00 + db $00, $e8, $32, $00 + db $f8, $f0, $34, $00 + db $08, $f0, $36, $00 + db $f8, $f8, $38, $00 + db $08, $f8, $3a, $00 + db $f8, $00, $3c, $00 + db $08, $00, $3e, $00 + db $f8, $08, $30, $00 + db $08, $08, $1c, $00 + db $f8, $10, $1e, $00 + db $08, $10, $20, $00 + db $f0, $18, $22, $00 + db $00, $18, $24, $00 +; 8e0f4 + +Unknown_8e0f4: ; 8e0f4 + db 17 + db $f8, $e0, $00, $00 + db $f0, $e8, $02, $00 + db $00, $e8, $04, $00 + db $f8, $f0, $40, $00 + db $08, $f0, $42, $00 + db $18, $f0, $44, $00 + db $f8, $f8, $46, $00 + db $08, $f8, $48, $00 + db $18, $f8, $4a, $00 + db $f8, $00, $4c, $00 + db $08, $00, $4e, $00 + db $f8, $08, $30, $00 + db $08, $08, $1c, $00 + db $f8, $10, $1e, $00 + db $08, $10, $20, $00 + db $f0, $18, $22, $00 + db $00, $18, $24, $00 +; 8e139 + +Unknown_8e139: ; 8e139 + db 17 + db $f8, $e0, $00, $00 + db $f0, $e8, $02, $00 + db $00, $e8, $04, $00 + db $f8, $f0, $50, $00 + db $08, $f0, $0a, $00 + db $e8, $f8, $52, $00 + db $f8, $f8, $54, $00 + db $08, $f8, $10, $00 + db $e8, $00, $56, $00 + db $f8, $00, $2e, $00 + db $08, $00, $16, $00 + db $f8, $08, $30, $00 + db $08, $08, $1c, $00 + db $f8, $10, $1e, $00 + db $08, $10, $20, $00 + db $f0, $18, $22, $00 + db $00, $18, $24, $00 +; 8e17e + +Unknown_8e17e: ; 8e17e + db 1 + db $fc, $fc, $00, $11 +; 8e183 + +Unknown_8e183: ; 8e183 + db 12 + db $00, $00, $30, $00 + db $00, $08, $31, $00 + db $00, $10, $31, $00 + db $00, $18, $31, $00 + db $00, $20, $31, $00 + db $00, $28, $32, $00 + db $08, $00, $33, $00 + db $08, $08, $34, $00 + db $08, $10, $34, $00 + db $08, $18, $34, $00 + db $08, $20, $34, $00 + db $08, $28, $35, $00 +; 8e1b4 + +Unknown_8e1b4: ; 8e1b4 + db 1 + db $00, $00, $ed, $00 +; 8e1b9 + +Unknown_8e1b9: ; 8e1b9 + db 4 + db $ff, $ff, $30, $00 + db $ff, $01, $32, $00 + db $01, $ff, $33, $00 + db $01, $01, $35, $00 +; 8e1ca + +Unknown_8e1ca: ; 8e1ca + db 8 + db $ff, $ff, $30, $00 + db $ff, $04, $31, $00 + db $ff, $0c, $31, $00 + db $ff, $11, $32, $00 + db $01, $ff, $33, $00 + db $01, $04, $34, $00 + db $01, $0c, $34, $00 + db $01, $11, $35, $00 +; 8e1eb + +Unknown_8e1eb: ; 8e1eb + db 1 + db $00, $00, $34, $00 +; 8e1f0 + +Unknown_8e1f0: ; 8e1f0 + db 2 + db $00, $00, $30, $00 + db $08, $00, $33, $00 +; 8e1f9 + +Unknown_8e1f9: ; 8e1f9 + db 2 + db $00, $00, $32, $00 + db $08, $00, $35, $00 +; 8e202 + +Unknown_8e202: ; 8e202 + db 4 + db $f8, $f8, $00, $01 + db $f8, $00, $01, $01 + db $00, $f8, $02, $01 + db $00, $00, $03, $01 +; 8e213 + +Unknown_8e213: ; 8e213 + db 4 + db $f8, $f8, $00, $81 + db $f8, $00, $01, $81 + db $00, $f8, $02, $81 + db $00, $00, $03, $81 +; 8e224 + +Unknown_8e224: ; 8e224 + db 1 + db $fc, $fc, $00, $02 +; 8e229 + +Unknown_8e229: ; 8e229 + db 4 + db $f0, $fc, $00, $03 + db $f8, $fc, $01, $03 + db $00, $fc, $02, $03 + db $08, $fc, $03, $03 +; 8e23a + +Unknown_8e23a: ; 8e23a + db 4 + db $f0, $fc, $03, $44 + db $f8, $fc, $02, $44 + db $00, $fc, $01, $44 + db $08, $fc, $00, $44 +; 8e24b + +Unknown_8e24b: ; 8e24b + db 4 + db $f8, $f8, $00, $01 + db $f8, $00, $00, $21 + db $00, $f8, $00, $41 + db $00, $00, $00, $61 +; 8e25c + +Unknown_8e25c: ; 8e25c + db 8 + db $f4, $f4, $00, $01 + db $f4, $fc, $01, $01 + db $f4, $04, $00, $21 + db $fc, $f4, $02, $01 + db $fc, $04, $02, $21 + db $04, $f4, $00, $41 + db $04, $fc, $01, $41 + db $04, $04, $00, $61 +; 8e27d + +Unknown_8e27d: ; 8e27d + db 12 + db $f0, $f0, $00, $01 + db $f0, $f8, $01, $01 + db $f8, $f0, $02, $01 + db $f0, $00, $01, $21 + db $f0, $08, $00, $21 + db $f8, $08, $02, $21 + db $00, $f0, $02, $41 + db $08, $f0, $00, $41 + db $08, $f8, $01, $41 + db $00, $08, $02, $61 + db $08, $00, $01, $61 + db $08, $08, $00, $61 +; 8e2ae + +Unknown_8e2ae: ; 8e2ae + db 36 + db $e8, $08, $05, $00 + db $e8, $10, $06, $00 + db $e8, $18, $07, $00 + db $f0, $e8, $11, $00 + db $f0, $f0, $12, $00 + db $f0, $f8, $13, $00 + db $f0, $00, $14, $00 + db $f0, $08, $15, $00 + db $f0, $10, $16, $00 + db $f0, $18, $17, $00 + db $f8, $e0, $20, $00 + db $f8, $e8, $21, $00 + db $f8, $f0, $22, $00 + db $f8, $f8, $23, $00 + db $f8, $00, $24, $00 + db $f8, $08, $25, $00 + db $f8, $10, $26, $00 + db $f8, $18, $27, $00 + db $00, $e0, $30, $00 + db $00, $e8, $31, $00 + db $00, $f0, $32, $00 + db $00, $f8, $33, $00 + db $00, $00, $34, $00 + db $00, $08, $35, $00 + db $00, $10, $36, $00 + db $08, $e0, $40, $00 + db $08, $e8, $41, $00 + db $08, $f0, $42, $00 + db $08, $f8, $43, $00 + db $08, $00, $44, $00 + db $08, $08, $45, $00 + db $08, $10, $46, $00 + db $08, $18, $47, $00 + db $10, $e0, $50, $00 + db $10, $e8, $51, $00 + db $10, $18, $57, $00 +; 8e33f + +Unknown_8e33f: ; 8e33f + db 28 + db $e8, $00, $04, $00 + db $e8, $08, $05, $00 + db $e8, $10, $06, $00 + db $f0, $e8, $11, $00 + db $f0, $f0, $12, $00 + db $f0, $f8, $13, $00 + db $f0, $00, $14, $00 + db $f0, $08, $15, $00 + db $f0, $10, $16, $00 + db $f8, $e8, $21, $00 + db $f8, $f0, $22, $00 + db $f8, $f8, $23, $00 + db $f8, $00, $24, $00 + db $f8, $08, $25, $00 + db $f8, $10, $26, $00 + db $00, $e0, $30, $00 + db $00, $e8, $31, $00 + db $00, $f0, $32, $00 + db $00, $f8, $33, $00 + db $00, $00, $34, $00 + db $00, $08, $35, $00 + db $08, $f0, $42, $00 + db $08, $f8, $43, $00 + db $08, $00, $44, $00 + db $08, $08, $45, $00 + db $10, $f8, $53, $00 + db $10, $00, $54, $00 + db $10, $08, $55, $00 +; 8e3b0 + +Unknown_8e3b0: ; 8e3b0 + db 30 + db $e8, $00, $04, $00 + db $e8, $08, $05, $00 + db $f0, $e8, $11, $00 + db $f0, $f0, $12, $00 + db $f0, $f8, $13, $00 + db $f0, $00, $14, $00 + db $f0, $08, $15, $00 + db $f0, $10, $16, $00 + db $f0, $18, $17, $00 + db $f8, $e0, $20, $00 + db $f8, $e8, $21, $00 + db $f8, $f0, $22, $00 + db $f8, $f8, $23, $00 + db $f8, $00, $24, $00 + db $f8, $08, $25, $00 + db $f8, $10, $26, $00 + db $00, $e0, $30, $00 + db $00, $e8, $31, $00 + db $00, $f0, $32, $00 + db $00, $f8, $33, $00 + db $00, $00, $34, $00 + db $00, $08, $35, $00 + db $08, $f0, $42, $00 + db $08, $f8, $43, $00 + db $08, $00, $44, $00 + db $08, $08, $45, $00 + db $10, $f0, $52, $00 + db $10, $f8, $53, $00 + db $10, $00, $54, $00 + db $10, $08, $55, $00 +; 8e429 + +Unknown_8e429: ; 8e429 + db 31 + db $f0, $e8, $11, $00 + db $f0, $f0, $12, $00 + db $f0, $f8, $13, $00 + db $f0, $00, $14, $00 + db $f0, $08, $15, $00 + db $f0, $10, $16, $00 + db $f0, $18, $17, $00 + db $f8, $e0, $20, $00 + db $f8, $e8, $21, $00 + db $f8, $f0, $22, $00 + db $f8, $f8, $23, $00 + db $f8, $00, $24, $00 + db $f8, $08, $25, $00 + db $f8, $10, $26, $00 + db $f8, $18, $27, $00 + db $00, $e0, $30, $00 + db $00, $e8, $31, $00 + db $00, $f0, $32, $00 + db $00, $f8, $33, $00 + db $00, $00, $34, $00 + db $00, $08, $35, $00 + db $00, $10, $36, $00 + db $08, $e8, $41, $00 + db $08, $f0, $42, $00 + db $08, $f8, $43, $00 + db $08, $00, $44, $00 + db $08, $08, $45, $00 + db $10, $e8, $51, $00 + db $10, $f0, $52, $00 + db $10, $00, $54, $00 + db $10, $08, $55, $00 +; 8e4a6 + +Unknown_8e4a6: ; 8e4a6 + db 25 + db $ec, $ec, $00, $09 + db $ec, $f4, $01, $09 + db $ec, $fc, $02, $09 + db $ec, $04, $03, $09 + db $ec, $0c, $04, $09 + db $f4, $ec, $10, $09 + db $f4, $f4, $11, $09 + db $f4, $fc, $12, $09 + db $f4, $04, $13, $09 + db $f4, $0c, $14, $09 + db $fc, $ec, $20, $09 + db $fc, $f4, $21, $09 + db $fc, $fc, $22, $09 + db $fc, $04, $23, $09 + db $fc, $0c, $24, $09 + db $04, $ec, $30, $09 + db $04, $f4, $31, $09 + db $04, $fc, $32, $09 + db $04, $04, $33, $09 + db $04, $0c, $34, $09 + db $0c, $ec, $40, $09 + db $0c, $f4, $41, $09 + db $0c, $fc, $42, $09 + db $0c, $04, $43, $09 + db $0c, $0c, $44, $09 +; 8e50b + +Unknown_8e50b: ; 8e50b + db 16 + db $f0, $ec, $00, $0a + db $f0, $f4, $01, $0a + db $f0, $fc, $02, $0a + db $f0, $04, $03, $0a + db $f8, $ec, $04, $0a + db $f8, $f4, $05, $0a + db $f8, $fc, $06, $0a + db $f8, $04, $07, $0a + db $00, $ec, $08, $0a + db $00, $f4, $09, $0a + db $00, $fc, $0a, $0a + db $00, $04, $0b, $0a + db $08, $ec, $0c, $0a + db $08, $f4, $0d, $0a + db $08, $fc, $0e, $0a + db $08, $04, $0f, $0a +; 8e54c + +Unknown_8e54c: ; 8e54c + db 1 + db $fc, $fc, $00, $00 +; 8e551 + +Unknown_8e551: ; 8e551 + db 3 + db $00, $f8, $00, $00 + db $f8, $f8, $01, $00 + db $f8, $00, $02, $00 +; 8e55e + +Unknown_8e55e: ; 8e55e + db 7 + db $08, $f0, $00, $00 + db $00, $f0, $01, $00 + db $f8, $f0, $02, $00 + db $f8, $f8, $03, $00 + db $f0, $f8, $04, $00 + db $f0, $00, $05, $00 + db $f0, $08, $06, $00 +; 8e57b + +Unknown_8e57b: ; 8e57b + db 8 + db $f8, $f0, $00, $00 + db $f8, $f8, $01, $00 + db $f8, $00, $01, $20 + db $f8, $08, $00, $20 + db $00, $f0, $00, $40 + db $00, $f8, $01, $40 + db $00, $00, $01, $60 + db $00, $08, $00, $60 +; 8e59c + +Unknown_8e59c: ; 8e59c + db 12 + db $e8, $f8, $00, $00 + db $f0, $f8, $01, $00 + db $f8, $f8, $02, $00 + db $e8, $00, $00, $20 + db $f0, $00, $01, $20 + db $f8, $00, $02, $20 + db $00, $f8, $02, $40 + db $08, $f8, $01, $40 + db $10, $f8, $00, $40 + db $00, $00, $02, $60 + db $08, $00, $01, $60 + db $10, $00, $00, $60 +; 8e5cd + +Unknown_8e5cd: ; 8e5cd + db 20 + db $ec, $f0, $00, $00 + db $ec, $f8, $01, $00 + db $ec, $00, $02, $00 + db $ec, $08, $03, $00 + db $f4, $f0, $04, $00 + db $f4, $f8, $05, $00 + db $f4, $00, $06, $00 + db $f4, $08, $07, $00 + db $fc, $f0, $08, $00 + db $fc, $f8, $09, $00 + db $fc, $00, $0a, $00 + db $fc, $08, $0b, $00 + db $04, $f0, $0c, $00 + db $04, $f8, $0d, $00 + db $04, $00, $0e, $00 + db $04, $08, $0f, $00 + db $0c, $f0, $10, $00 + db $0c, $f8, $11, $00 + db $0c, $00, $12, $00 + db $0c, $08, $13, $00 +; 8e61e + +Unknown_8e61e: ; 8e61e + db 20 + db $00, $08, $00, $81 + db $08, $10, $00, $81 + db $10, $18, $00, $81 + db $18, $20, $00, $81 + db $20, $28, $00, $81 + db $18, $30, $00, $81 + db $10, $38, $00, $81 + db $08, $40, $00, $81 + db $00, $48, $00, $81 + db $08, $50, $00, $81 + db $10, $58, $00, $81 + db $18, $60, $00, $81 + db $20, $68, $00, $81 + db $18, $70, $00, $81 + db $10, $78, $00, $81 + db $08, $80, $00, $81 + db $00, $88, $00, $81 + db $08, $90, $00, $81 + db $10, $98, $00, $81 + db $18, $a0, $00, $81 +; 8e66f + +Unknown_8e66f: ; 8e66f + db 4 + db $f8, $f8, $00, $02 + db $f8, $00, $01, $02 + db $00, $f8, $02, $02 + db $00, $00, $03, $02 +; 8e680 + +Unknown_8e680: ; 8e680 + db 9 + db $f0, $f4, $00, $01 + db $f0, $fc, $01, $01 + db $f0, $04, $02, $01 + db $f8, $f4, $10, $01 + db $f8, $fc, $11, $01 + db $f8, $04, $12, $01 + db $00, $f4, $20, $01 + db $00, $fc, $21, $01 + db $00, $04, $22, $01 +; 8e6a5 + +Unknown_8e6a5: ; 8e6a5 + db 24 + db $d8, $f4, $00, $01 + db $d8, $fc, $01, $01 + db $d8, $04, $02, $01 + db $d8, $0c, $03, $01 + db $e0, $f4, $10, $01 + db $e0, $fc, $11, $01 + db $e0, $04, $12, $01 + db $e0, $0c, $13, $01 + db $e8, $f4, $20, $01 + db $e8, $fc, $21, $01 + db $e8, $04, $22, $01 + db $e8, $0c, $23, $01 + db $f0, $f4, $30, $01 + db $f0, $fc, $31, $01 + db $f0, $04, $32, $01 + db $f0, $0c, $33, $01 + db $f8, $f4, $40, $01 + db $f8, $fc, $41, $01 + db $f8, $04, $42, $01 + db $f8, $0c, $43, $01 + db $00, $f4, $50, $01 + db $00, $fc, $51, $01 + db $00, $04, $52, $01 + db $00, $0c, $53, $01 +; 8e706 +Unknown_8e706: ; Broken 2bpp pointers + dbbw $80, $01, $672a ; 128-tile 2bpp at 1:672a (inside Multiply) + dbbw $80, $01, $672a + dbbw $80, $01, $672a + dbbw $80, $01, $672a + dbbw $10, $37, $672a ; 16-tile 2bpp at 37:672a (within Tileset11GFX) + dbbw $10, $11, $672a ; 16-tile 2bpp at 11:672a (empty data) + dbbw $10, $39, $672a ; 16-tile 2bpp at 39:672a (empty data) + dbbw $10, $24, $672a ; 16-tile 2bpp at 24:672a (inside Function926f7) + dbbw $10, $21, $672a ; 16-tile 2bpp at 21:672a (inside Function8671c) + +Function8e72a: ; 8e72a + add $10 +Function8e72c: ; 8e72c + and $3f + cp $20 + jr nc, .asm_8e737 + call Function8e741 + ld a, h + ret + +.asm_8e737 + and $1f + call Function8e741 + ld a, h + xor $ff ; cpl + inc a + ret +; 8e741 + +Function8e741: ; 8e741 + ld e, a + ld a, d + ld d, 0 + ld hl, Unknown_8e75d +rept 2 + add hl, de +endr + ld e, [hl] + inc hl + ld d, [hl] + ld hl, 0 +.asm_8e750 + srl a + jr nc, .asm_8e755 + add hl, de + +.asm_8e755 + sla e + rl d + and a + jr nz, .asm_8e750 + ret +; 8e75d + +Unknown_8e75d: ; 8e75d + sine_wave $100 diff --git a/event/mom.asm b/event/mom.asm index 987f4bf0c..61d374de9 100644 --- a/event/mom.asm +++ b/event/mom.asm @@ -45,11 +45,11 @@ endr ; 16254 .CheckIfBankInitialized: ; 16254 - ld a, [wBankOfMomMode] + ld a, [wMomSavingMoney] bit 7, a jr nz, .savingmoneyalready set 7, a - ld [wBankOfMomMode], a + ld [wMomSavingMoney], a ld a, $1 jr .done_0 @@ -75,7 +75,7 @@ endr ld a, %10000000 .done_1 - ld [wBankOfMomMode], a + ld [wMomSavingMoney], a ld hl, UnknownText_0x16653 call PrintText ld a, $8 @@ -168,7 +168,7 @@ endr ld de, StringBuffer2 + 3 ld bc, 3 call CopyBytes - ld bc, wd851 + ld bc, wMomsMoney ld de, StringBuffer2 callba GiveMoney jr c, .CantDepositThatMuch @@ -176,7 +176,7 @@ endr ld de, Money callba TakeMoney ld hl, StringBuffer2 - ld de, wd851 + ld de, wMomsMoney ld bc, 3 call CopyBytes ld de, SFX_TRANSACTION @@ -232,7 +232,7 @@ endr ld de, StringBuffer2 + 3 ld bc, 3 call CopyBytes - ld de, wd851 + ld de, wMomsMoney ld bc, StringBuffer2 callba CompareMoney jr c, .InsufficientFundsInBank @@ -241,7 +241,7 @@ endr callba GiveMoney jr c, .NotEnoughRoomInWallet ld bc, StringBuffer2 + 3 - ld de, wd851 + ld de, wMomsMoney callba TakeMoney ld hl, StringBuffer2 ld de, Money @@ -279,7 +279,7 @@ endr call YesNoBox jr c, .StopSavingMoney ld a, $81 - ld [wBankOfMomMode], a + ld [wMomSavingMoney], a ld hl, UnknownText_0x16685 call PrintText ld a, $8 @@ -288,7 +288,7 @@ endr .StopSavingMoney ld a, $80 - ld [wBankOfMomMode], a + ld [wMomSavingMoney], a ld a, $7 ld [wJumptableIndex], a ret @@ -461,7 +461,7 @@ Function1651a: ; 1651a ld de, String_16699 call PlaceString hlcoord 12, 2 - ld de, wd851 + ld de, wMomsMoney lb bc, PRINTNUM_MONEY | 3, 6 call PrintNum hlcoord 1, 4 diff --git a/home/map.asm b/home/map.asm index 81c7988d8..1a964fc22 100644 --- a/home/map.asm +++ b/home/map.asm @@ -1232,128 +1232,129 @@ UnmaskObject:: ; 271e ; 272a -Function272a:: ; 272a +ScrollMapDown:: ; 272a hlcoord 0, 0 ld de, BGMapBuffer - call Function27b7 - ld c, $28 + call BackupBGMapRow + ld c, 2 * SCREEN_WIDTH call FarCallScrollBGMapPalettes - ld a, [wd152] + ld a, [wBGMapAnchorLo] ld e, a - ld a, [wd153] + ld a, [wBGMapAnchorHi] ld d, a - call Function27d3 + call UpdateBGMapRow ld a, $1 ld [hBGMapUpdate], a ret ; 2748 -Function2748:: ; 2748 - hlcoord 0, 16 +ScrollMapUp:: ; 2748 + hlcoord 0, SCREEN_HEIGHT - 2 ld de, BGMapBuffer - call Function27b7 - ld c, $28 + call BackupBGMapRow + ld c, 2 * SCREEN_WIDTH call FarCallScrollBGMapPalettes - ld a, [wd152] + ld a, [wBGMapAnchorLo] ld l, a - ld a, [wd153] + ld a, [wBGMapAnchorHi] ld h, a ld bc, $0200 add hl, bc +; cap d at VBGMap1 / $100 ld a, h - and $3 - or $98 + and %00000011 + or VBGMap0 / $100 ld e, l ld d, a - call Function27d3 + call UpdateBGMapRow ld a, $1 ld [hBGMapUpdate], a ret ; 2771 -Function2771:: ; 2771 +ScrollMapLeft:: ; 2771 hlcoord 0, 0 ld de, BGMapBuffer - call Function27c0 - ld c, $24 + call BackupBGMapColumn + ld c, 2 * SCREEN_HEIGHT call FarCallScrollBGMapPalettes - ld a, [wd152] + ld a, [wBGMapAnchorLo] ld e, a - ld a, [wd153] + ld a, [wBGMapAnchorHi] ld d, a - call Function27f8 + call UpdateBGMapColumn ld a, $1 ld [hBGMapUpdate], a ret ; 278f -Function278f:: ; 278f - hlcoord 18, 0 +ScrollMapRight:: ; 278f + hlcoord SCREEN_WIDTH - 2, 0 ld de, BGMapBuffer - call Function27c0 - ld c, $24 + call BackupBGMapColumn + ld c, 2 * SCREEN_HEIGHT call FarCallScrollBGMapPalettes - ld a, [wd152] + ld a, [wBGMapAnchorLo] ld e, a - and $e0 + and %11100000 ld b, a ld a, e - add $12 - and $1f + add SCREEN_HEIGHT + and %00011111 or b ld e, a - ld a, [wd153] + ld a, [wBGMapAnchorHi] ld d, a - call Function27f8 + call UpdateBGMapColumn ld a, $1 ld [hBGMapUpdate], a ret ; 27b7 -Function27b7:: ; 27b7 - ld c, $28 -.asm_27b9 +BackupBGMapRow:: ; 27b7 + ld c, 2 * SCREEN_WIDTH +.loop ld a, [hli] ld [de], a inc de dec c - jr nz, .asm_27b9 + jr nz, .loop ret ; 27c0 -Function27c0:: ; 27c0 - ld c, $12 -.asm_27c2 +BackupBGMapColumn:: ; 27c0 + ld c, SCREEN_HEIGHT +.loop ld a, [hli] ld [de], a inc de ld a, [hl] ld [de], a inc de - ld a, $13 + ld a, SCREEN_WIDTH - 1 add l ld l, a - jr nc, .asm_27cf + jr nc, .skip inc h -.asm_27cf +.skip dec c - jr nz, .asm_27c2 + jr nz, .loop ret ; 27d3 -Function27d3:: ; 27d3 +UpdateBGMapRow:: ; 27d3 ld hl, BGMapBufferPtrs push de - call .asm_27df + call .iteration pop de ld a, $20 add e ld e, a -.asm_27df - ld c, $a -.asm_27e1 +.iteration + ld c, 10 +.loop ld a, e ld [hli], a ld a, d @@ -1369,16 +1370,16 @@ endr or b ld e, a dec c - jr nz, .asm_27e1 - ld a, $14 - ld [$ffdc], a + jr nz, .loop + ld a, SCREEN_WIDTH + ld [hFFDC], a ret ; 27f8 -Function27f8:: ; 27f8 +UpdateBGMapColumn:: ; 27f8 ld hl, BGMapBufferPtrs - ld c, $12 -.asm_27fd + ld c, SCREEN_HEIGHT +.loop ld a, e ld [hli], a ld a, d @@ -1386,72 +1387,81 @@ Function27f8:: ; 27f8 ld a, $20 add e ld e, a - jr nc, .asm_280e + jr nc, .skip inc d +; cap d at VBGMap1 / $100 ld a, d and $3 - or $98 + or VBGMap0 / $100 ld d, a -.asm_280e +.skip dec c - jr nz, .asm_27fd - ld a, $12 - ld [$ffdc], a + jr nz, .loop + ld a, SCREEN_HEIGHT + ld [hFFDC], a ret ; 2816 -Function2816:: ; 2816 +; unreferenced ld hl, BGMapBuffer - ld bc, $0078 + ld bc, SGBPredef - BGMapBuffer xor a call ByteFill ret ; 2821 -Function2821:: ; 2821 +LoadTileset:: ; 2821 ld hl, TilesetAddress ld a, [hli] ld h, [hl] ld l, a ld a, [TilesetBank] ld e, a + ld a, [rSVBK] push af ld a, $6 ld [rSVBK], a + ld a, e ld de, w6_d000 call FarDecompress + ld hl, w6_d000 ld de, VTiles2 ld bc, $60 tiles call CopyBytes + ld a, [rVBK] push af ld a, $1 ld [rVBK], a + ld hl, w6_d600 ld de, VTiles2 ld bc, $60 tiles call CopyBytes + pop af ld [rVBK], a + pop af ld [rSVBK], a - ld a, [wTileset] - cp $1 - jr z, .asm_286f - cp $2 - jr z, .asm_286f - cp $4 - jr z, .asm_286f - jr .asm_2875 -.asm_286f + ld a, [wTileset] + cp TILESET_JOHTO_1 + jr z, .load_roof + cp TILESET_JOHTO_2 + jr z, .load_roof + cp TILESET_BATTLE_TOWER_OUTSIDE + jr z, .load_roof + jr .skip_roof + +.load_roof callba LoadMapGroupRoof -.asm_2875 +.skip_roof xor a ld [hTileAnimFrame], a ret @@ -1497,40 +1507,40 @@ SaveScreen:: ; 289d ld [hMapObjectIndexBuffer], a ld a, [wd151] and a - jr z, .asm_28cb - cp $1 - jr z, .asm_28c0 - cp $2 - jr z, .asm_28d4 - cp $3 - jr z, .asm_28da + jr z, .down + cp UP + jr z, .up + cp LEFT + jr z, .left + cp RIGHT + jr z, .right ret -.asm_28c0 +.up ld de, wdcbf ld a, [hMapObjectIndexBuffer] ld c, a ld b, $0 add hl, bc - jr .asm_28ce + jr .vertical -.asm_28cb +.down ld de, XCoord + 1 -.asm_28ce +.vertical ld b, $6 ld c, $4 jr Function28f7 -.asm_28d4 +.left ld de, XCoord + 2 inc hl - jr .asm_28dd + jr .horizontal -.asm_28da +.right ld de, XCoord + 1 -.asm_28dd +.horizontal ld b, $5 ld c, $5 jr Function28f7 @@ -1543,54 +1553,56 @@ LoadNeighboringBlockData:: ; 28e3 ld l, a ld a, [MapWidth] add $6 - ld [hMapObjectIndexBuffer], a + ld [hConnectionStripLength], a ld de, XCoord + 1 ld b, $6 ld c, $5 Function28f7:: ; 28f7 -.asm_28f7 +.loop1 push bc push hl push de -.asm_28fa +.loop2 ld a, [de] inc de ld [hli], a dec b - jr nz, .asm_28fa + jr nz, .loop2 pop de ld a, e add $6 ld e, a - jr nc, .asm_2908 + jr nc, .okay inc d -.asm_2908 +.okay pop hl - ld a, [hMapObjectIndexBuffer] + ld a, [hConnectionStripLength] ld c, a ld b, $0 add hl, bc pop bc dec c - jr nz, .asm_28f7 + jr nz, .loop1 ret ; 2914 Function2914:: ; 2914 xor a ld [TilePermissions], a - call Function296c - call Function294d + call GetLeftRightCollision + call GetUpDownCollision +; get coords of current tile ld a, [PlayerMapX] ld d, a ld a, [PlayerMapY] ld e, a - call Function2a3c + call GetCoordTile ld [PlayerStandingTile], a call Function29ff ret nz + ld a, [PlayerStandingTile] and 7 ld hl, .data_2945 @@ -1610,37 +1622,41 @@ Function2914:: ; 2914 db 1, 2, 4, 8, 9, 10, 5, 6 ; 294d -Function294d:: ; 294d +GetUpDownCollision:: ; 294d ld a, [PlayerMapX] ld d, a ld a, [PlayerMapY] ld e, a + push de inc e - call Function2a3c + call GetCoordTile ld [TileDown], a call Function298b + pop de dec e - call Function2a3c + call GetCoordTile ld [TileUp], a call Function29a8 ret ; 296c -Function296c:: ; 296c +GetLeftRightCollision:: ; 296c ld a, [PlayerMapX] ld d, a ld a, [PlayerMapY] ld e, a + push de dec d - call Function2a3c + call GetCoordTile ld [TileLeft], a call Function29e2 + pop de inc d - call Function2a3c + call GetCoordTile ld [TileRight], a call Function29c5 ret @@ -1650,7 +1666,7 @@ Function298b:: ; 298b call Function29ff ret nz ld a, [TileDown] - and $7 + and 7 cp $2 jr z, .ok cp $6 @@ -1660,7 +1676,7 @@ Function298b:: ; 298b .ok ld a, [TilePermissions] - or $8 + or FACE_DOWN ld [TilePermissions], a ret ; 29a8 @@ -1669,7 +1685,7 @@ Function29a8:: ; 29a8 call Function29ff ret nz ld a, [TileUp] - and $7 + and 7 cp $3 jr z, .ok cp $4 @@ -1679,7 +1695,7 @@ Function29a8:: ; 29a8 .ok ld a, [TilePermissions] - or $4 + or FACE_UP ld [TilePermissions], a ret ; 29c5 @@ -1688,7 +1704,7 @@ Function29c5:: ; 29c5 call Function29ff ret nz ld a, [TileRight] - and $7 + and 7 cp $1 jr z, .ok cp $5 @@ -1698,7 +1714,7 @@ Function29c5:: ; 29c5 .ok ld a, [TilePermissions] - or $1 + or FACE_RIGHT ld [TilePermissions], a ret ; 29e2 @@ -1707,7 +1723,7 @@ Function29e2:: ; 29e2 call Function29ff ret nz ld a, [TileLeft] - and $7 + and 7 cp $0 jr z, .ok cp $4 @@ -1717,7 +1733,7 @@ Function29e2:: ; 29e2 .ok ld a, [TilePermissions] - or $2 + or FACE_LEFT ld [TilePermissions], a ret ; 29ff @@ -1778,7 +1794,8 @@ endr ; 2a3c -Function2a3c:: ; 2a3c +GetCoordTile:: ; 2a3c +; Get the collision byte for tile d, e call GetBlockLocation ld a, [hl] and a @@ -2065,7 +2082,7 @@ Function2bae:: ; 2bae call SwitchToAnyMapBank callba Function8c001 call OverworldTextModeSwitch - call Function2821 + call LoadTileset ld a, 9 call SkipMusic pop af diff --git a/home/palettes.asm b/home/palettes.asm index 1a2e0b037..99bf7c3c3 100644 --- a/home/palettes.asm +++ b/home/palettes.asm @@ -347,7 +347,9 @@ FarCallScrollBGMapPalettes:: ; dbd push af ld a, BANK(ScrollBGMapPalettes) rst Bankswitch + call ScrollBGMapPalettes + pop af rst Bankswitch ret diff --git a/hram.asm b/hram.asm index 99db5d3f9..1ed8eaba0 100644 --- a/hram.asm +++ b/hram.asm @@ -96,6 +96,7 @@ hOAMUpdate EQU $ffd8 hSPBuffer EQU $ffd9 hBGMapUpdate EQU $ffdb +hFFDC EQU $ffdc hMapAnims EQU $ffde hTileAnimFrame EQU $ffdf diff --git a/main.asm b/main.asm index afb94d1ff..c4a4eb095 100644 --- a/main.asm +++ b/main.asm @@ -2323,12 +2323,12 @@ Function6fa1: ; 6fa1 inc e .asm_6fc2 - call Function2a3c + call GetCoordTile call GetTileCollision pop de and a jr nz, .asm_6fd7 - call Function2a3c + call GetCoordTile call GetTileCollision and a jr nz, .asm_6fd7 @@ -4847,42 +4847,42 @@ CheckOverworldTileArrays: ; c840 CutTreeBlockPointers: ; c862 ; Which tileset are we in? - dbw $01, .one - dbw $02, .two - dbw $03, .three - dbw $19, .twentyfive - dbw $1f, .thirtyone + dbw TILESET_JOHTO_1, .one + dbw TILESET_JOHTO_2, .two + dbw TILESET_KANTO, .three + dbw TILESET_PARK, .twentyfive + dbw TILESET_ILEX_FOREST, .thirtyone db -1 ; c872 .one: ; Johto OW ; Which meta tile are we facing, which should we replace it with, and does it affect encounters? - db $03, $02, $01 - db $5b, $3c, $00 - db $5f, $3d, $00 - db $63, $3f, $00 - db $67, $3e, $00 + db $03, $02, $01 ; grass + db $5b, $3c, $00 ; tree + db $5f, $3d, $00 ; tree + db $63, $3f, $00 ; tree + db $67, $3e, $00 ; tree db -1 ; c882 .two: ; Goldenrod area - db $03, $02, $01 + db $03, $02, $01 ; grass db -1 ; c886 .three: ; Kanto OW - db $0b, $0a, $01 - db $32, $6d, $00 - db $33, $6c, $00 - db $34, $6f, $00 - db $35, $4c, $00 - db $60, $6e, $00 + db $0b, $0a, $01 ; grass + db $32, $6d, $00 ; tree + db $33, $6c, $00 ; tree + db $34, $6f, $00 ; tree + db $35, $4c, $00 ; tree + db $60, $6e, $00 ; tree db -1 ; c899 .twentyfive: ; National Park - db $13, $03, $01 - db $03, $04, $01 + db $13, $03, $01 ; grass + db $03, $04, $01 ; grass db -1 ; c8a0 @@ -4892,7 +4892,7 @@ CutTreeBlockPointers: ; c862 ; c8a4 WhirlpoolBlockPointers: ; c8a4 - dbw $01, .one + dbw TILESET_JOHTO_1, .one db -1 ; c8a8 @@ -7325,25 +7325,25 @@ Functiond4e5: ; d4e5 (3:54e5) Jumptable_d4f2: ; d4f2 (3:54f2) dw Function2914 dw BufferScreen - dw Functiond509 - dw Functiond510 - dw Functiond508 - dw Functiond508 - dw Functiond508 - dw Functiond508 - dw Functiond508 - dw Functiond508 - dw Functiond508 + dw .mobile + dw .fail2 + dw .fail1 + dw .fail1 + dw .fail1 + dw .fail1 + dw .fail1 + dw .fail1 + dw .fail1 -Functiond508: ; d508 (3:5508) +.fail1: ; d508 (3:5508) ret -Functiond509: ; d509 (3:5509) +.mobile: ; d509 (3:5509) callba MobileFn_10602e ret -Functiond510: ; d510 (3:5510) +.fail2: ; d510 (3:5510) ret Functiond511: ; d511 (3:5511) @@ -7383,25 +7383,29 @@ Functiond536: ; d536 (3:5536) cp $3 jr z, .asm_d567 ret + .asm_d549 call Functiond571 call LoadMapPart - call Function2748 + call ScrollMapUp ret + .asm_d553 call Functiond5a2 call LoadMapPart - call Function272a + call ScrollMapDown ret + .asm_d55d call Functiond5d5 call LoadMapPart - call Function2771 + call ScrollMapLeft ret + .asm_d567 call Functiond5fe call LoadMapPart - call Function278f + call ScrollMapRight ret Functiond571: ; d571 (3:5571) @@ -11332,7 +11336,7 @@ Function140ed:: ; 140ed ret ; 1412a -INCLUDE "engine/sprites.asm" +INCLUDE "engine/overworld.asm" Function1499a:: ; 1499a ld a, [PlayerStandingTile] @@ -25858,7 +25862,7 @@ Function49496: ; 49496 LoadSpecialMapPalette: ; 494ac ld a, [wTileset] - cp TILESET_GOLDENROD_POKECOM_CENTER_2F_MOBILE + cp TILESET_POKECOM_CENTER jr z, .pokecom_2f cp TILESET_BATTLE_TOWER jr z, .battle_tower @@ -29187,6 +29191,8 @@ ScrollBGMapPalettes:: ; 4c03f push hl srl a jr c, .UpperNybble + +; .LowerNybble ld hl, TilesetPalettes add [hl] ld l, a @@ -40000,2896 +40006,7 @@ Function8cf4f: ; 8cf4f ; 8cf53 -Function8cf53: ; 8cf53 - ld hl, wc300 - ld bc, $c1 -.asm_8cf59 - ld [hl], $0 - inc hl - dec bc - ld a, c - or b - jr nz, .asm_8cf59 - ret -; 8cf62 - -Function8cf62: ; 8cf62 - call Function8cf69 - call DelayFrame - ret -; 8cf69 - -Function8cf69: ; 8cf69 - push hl - push de - push bc - push af - - ld a, $0 - ld [wc3b5], a - call Function8cf7a - - pop af - pop bc - pop de - pop hl - ret -; 8cf7a - -Function8cf7a: ; 8cf7a - ld hl, wc314 - ld e, 10 ; There are 10 structs here. - -.loop - ld a, [hl] - and a - jr z, .next ; This struct is deinitialized. - ld c, l - ld b, h - push hl - push de - call Function8d24b ; Uses a massive jumptable - call LoadBouncingMonIcon - pop de - pop hl - jr c, .done - -.next - ld bc, $10 - add hl, bc - dec e - jr nz, .loop - - ld a, [wc3b5] - ld l, a - ld h, Sprites / $0100 - -.loop2 ; Clear (Sprites + [wc3b5] --> SpritesEnd) - ld a, l - cp SpritesEnd % $100 - jr nc, .done - xor a - ld [hli], a - jr .loop2 - -.done - ret -; 8cfa8 - -Function8cfa8: ; 8cfa8 (23:4fa8) - ld hl, wc314 - ld e, 10 - -.loop - ld a, [hl] - and a - jr z, .next - ld c, l - ld b, h - push hl - push de - call Function8d24b ; Uses a massive jumptable - call LoadBouncingMonIcon - pop de - pop hl - jr c, .done - -.next - ld bc, $10 - add hl, bc - dec e - jr nz, .loop - - ld a, [wc3b5] - ld l, a - ld h, (Sprites + $40) / $100 - -.loop2 ; Clear (Sprites + [wc3b5] --> Sprites + $40) - ld a, l - cp (Sprites + $40) % $100 - jr nc, .done - xor a - ld [hli], a - jr .loop2 - -.done - ret - -Function8cfd6:: ; 8cfd6 -; Find if there's any room in the wc314 array, which is 10x16 - push de - push af - ld hl, wc314 - ld e, 10 -.loop - ld a, [hl] - and a - jr z, .found - ld bc, $10 - add hl, bc - dec e - jr nz, .loop -; We've reached the end. There is no more room here. -; Return carry. - pop af - pop de - scf - ret - -.found -; Back up the structure address to bc. - ld c, l - ld b, h -; Value [wc3b4] is initially set to -1. Set it to -; the number of objects loaded into this array. - ld hl, wc3b4 - inc [hl] - ld a, [hl] - and a - jr nz, .initialized - inc [hl] - -.initialized -; Get row a of Unknown_8d1c4, copy the pointer into de - pop af - ld e, a - ld d, 0 - ld hl, Unknown_8d1c4 -rept 3 - add hl, de -endr - ld e, l - ld d, h -; Set hl to the first field (field 0) in the current structure. - ld hl, 0 - add hl, bc -; Load the index. - ld a, [wc3b4] - ld [hli], a -; Copy the table entry to the next two fields. - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de -; Look up the third field from the table in the wc300 array (10x2). -; Take the value and load it in - ld a, [de] - call LookUpInwDict_c300 - ld [hli], a - pop de -; Set hl to field 4. Kinda pointless, because we're presumably already here. - ld hl, $4 - add hl, bc -; Load the original value of de into here. - ld a, e - ld [hli], a - ld a, d - ld [hli], a -; load 0 into the next four fields - xor a -rept 2 - ld [hli], a -endr - xor a -rept 2 - ld [hli], a -endr -; load -1 into the next field - dec a - ld [hli], a -; load 0 into the last five fields - xor a -rept 4 - ld [hli], a -endr - ld [hl], a -; back up the address of the first field to wc3b8 - ld a, c - ld [wc3b8], a - ld a, b - ld [wc3b8 + 1], a - ret -; 8d036 - -Function8d036: ; 8d036 -; Clear the index field of the struct in bc. - ld hl, 0 - add hl, bc - ld [hl], $0 - ret -; 8d03d - - -Function8d03d: ; 8d03d (23:503d) -; Clear the index field of every struct in the wc314 array. - ld hl, wc314 - ld bc, $10 - ld e, 10 - xor a -.loop - ld [hl], a - add hl, bc - dec e - jr nz, .loop - ret - - -LoadBouncingMonIcon: ; 8d04c -; Populate Sprites with the bouncing mon icons - call Function8d0ec - call Function8d132 - cp EGG - jr z, .done - cp NUM_POKEMON + 1 - jr z, .almost - call Function8d1a2 - ld a, [wc3ba] - add [hl] - ld [wc3ba], a - inc hl - ld a, [hli] - ld h, [hl] - ld l, a - push bc - ld a, [wc3b5] - ld e, a - ld d, Sprites / $100 - ld a, [hli] - ld c, a -.loop - ld a, [wc3bc] - ld b, a - ld a, [wc3be] - add b - ld b, a - ld a, [wc3bf] - add b - ld b, a - call Function8d0be - add b - ld [de], a - inc hl - inc de - ld a, [wc3bb] - ld b, a - ld a, [wc3bd] - add b - ld b, a - ld a, [wc3c0] - add b - ld b, a - call Function8d0ce - add b - ld [de], a - inc hl - inc de - ld a, [wc3ba] - add [hl] - ld [de], a - inc hl - inc de - call Function8d0de - ld [de], a - inc hl - inc de - ld a, e - ld [wc3b5], a - cp SpritesEnd % $100 - jr nc, .outofroom - dec c - jr nz, .loop - pop bc - jr .done - -.almost - call Function8d036 - -.done - and a - ret - -.outofroom - pop bc - scf - ret -; 8d0be - -Function8d0be: ; 8d0be - push hl - ld a, [hl] - ld hl, wc3b8 - bit 6, [hl] - jr z, .ok - add $8 - xor $ff - inc a - -.ok - pop hl - ret -; 8d0ce - -Function8d0ce: ; 8d0ce - push hl - ld a, [hl] - ld hl, wc3b8 - bit 5, [hl] - jr z, .ok - add $8 - xor $ff - inc a - -.ok - pop hl - ret -; 8d0de - -Function8d0de: ; 8d0de - ld a, [wc3b8] - ld b, a - ld a, [hl] - xor b - and $e0 - ld b, a - ld a, [hl] - and $1f - or b - ret -; 8d0ec - -Function8d0ec: ; 8d0ec - xor a - ld [wc3b8], a - ld hl, $3 - add hl, bc - ld a, [hli] - ld [wc3ba], a - ld a, [hli] - ld [wc3bb], a - ld a, [hli] - ld [wc3bc], a - ld a, [hli] - ld [wc3bd], a - ld a, [hli] - ld [wc3be], a - ret -; 8d109 - -LookUpInwDict_c300: ; 8d109 -; a = wDict_c300[a] if a in wDict_c300 else 0 - push hl - push bc - ld hl, wDict_c300 - ld b, a - ld c, 10 -.loop - ld a, [hli] - cp b - jr z, .ok - inc hl - dec c - jr nz, .loop - xor a - jr .done - -.ok - ld a, [hl] - -.done - pop bc - pop hl - ret -; 8d120 - -Function8d120:: ; 8d120 - ld hl, $1 - add hl, bc - ld [hl], a - ld hl, $8 - add hl, bc - ld [hl], $0 - ld hl, $a - add hl, bc - ld [hl], $ff - ret -; 8d132 - - -Function8d132: ; 8d132 -.loop - ld hl, $8 - add hl, bc - ld a, [hl] - and a - jr z, .ok - dec [hl] - call Function8d189 - ld a, [hli] - push af - jr .skip - -.ok - ld hl, $a - add hl, bc - inc [hl] - call Function8d189 - ld a, [hli] - cp $fe - jr z, .minus_2 - cp $ff - jr z, .minus_1 - push af - ld a, [hl] - push hl - and $3f - ld hl, $9 - add hl, bc - add [hl] - ld hl, $8 - add hl, bc - ld [hl], a - pop hl - -.skip - ld a, [hl] - and $c0 - srl a - ld [wc3b8], a - pop af - ret - -.minus_1 - xor a - ld hl, $8 - add hl, bc - ld [hl], a - ld hl, $a - add hl, bc -rept 2 - dec [hl] -endr - jr .loop - -.minus_2 - xor a - ld hl, $8 - add hl, bc - ld [hl], a - dec a - ld hl, $a - add hl, bc - ld [hl], a - jr .loop -; 8d189 - -Function8d189: ; 8d189 - ; Get the [bc+10]th entry in the data table - ; indexed at [bc+1] in Unknown_8d6e6 - ld hl, $1 - add hl, bc - ld e, [hl] - ld d, 0 - ld hl, Unknown_8d6e6 -rept 2 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $a - add hl, bc - ld l, [hl] - ld h, 0 - add hl, hl - add hl, de - ret -; 8d1a2 - -Function8d1a2: ; 8d1a2 - ld e, a - ld d, 0 - ld hl, Unknown_8d94d -rept 3 - add hl, de -endr - ret -; 8d1ac - -Function8d1ac: ; unreferenced - push hl - ld l, a - ld h, 0 -rept 2 - add hl, hl -endr - ld de, Unknown_8e706 - add hl, de - ld c, [hl] - inc hl - ld b, [hl] - inc hl - ld e, [hl] - inc hl - ld d, [hl] - pop hl - push bc - call Request2bpp - pop bc - ret -; 8d1c4 - -Unknown_8d1c4: ; 8d1c4 - db $01, JUMPTABLE_8D24B_FUNCTION_01, $00 ; 00 - db $07, JUMPTABLE_8D24B_FUNCTION_04, $00 ; 01 - db $08, JUMPTABLE_8D24B_FUNCTION_05, $05 ; 02 - db $0a, JUMPTABLE_8D24B_FUNCTION_06, $00 ; 03 - db $0b, JUMPTABLE_8D24B_FUNCTION_07, $06 ; 04 - db $0c, JUMPTABLE_8D24B_FUNCTION_08, $06 ; 05 - db $0d, JUMPTABLE_8D24B_FUNCTION_09, $07 ; 06 - db $0e, JUMPTABLE_8D24B_FUNCTION_0A, $07 ; 07 - db $10, JUMPTABLE_8D24B_FUNCTION_0B, $07 ; 08 - db $08, JUMPTABLE_8D24B_FUNCTION_0C, $05 ; 09 - db $11, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 0a - db $12, JUMPTABLE_8D24B_FUNCTION_0D, $08 ; 0b - db $12, JUMPTABLE_8D24B_FUNCTION_0E, $08 ; 0c - db $12, JUMPTABLE_8D24B_FUNCTION_0F, $08 ; 0d - db $13, JUMPTABLE_8D24B_FUNCTION_10, $00 ; 0e - db $15, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 0f - db $16, JUMPTABLE_8D24B_FUNCTION_11, $00 ; 10 - db $17, JUMPTABLE_8D24B_FUNCTION_12, $00 ; 11 - db $18, JUMPTABLE_8D24B_FUNCTION_12, $00 ; 12 - db $19, JUMPTABLE_8D24B_FUNCTION_13, $00 ; 13 - db $1a, JUMPTABLE_8D24B_FUNCTION_14, $00 ; 14 - db $1b, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 15 - db $1d, JUMPTABLE_8D24B_FUNCTION_15, $00 ; 16 - db $1e, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 17 - db $1d, JUMPTABLE_8D24B_FUNCTION_17, $00 ; 18 - db $1f, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 19 - db $24, JUMPTABLE_8D24B_FUNCTION_19, $00 ; 1a - db $25, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1b - db $20, JUMPTABLE_8D24B_FUNCTION_13, $00 ; 1c - db $26, JUMPTABLE_8D24B_FUNCTION_1A, $00 ; 1d - db $2d, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1e - db $2e, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1f - db $2f, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 20 - db $30, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 21 - db $31, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 22 - db $32, JUMPTABLE_8D24B_FUNCTION_1B, $00 ; 23 - db $33, JUMPTABLE_8D24B_FUNCTION_1C, $00 ; 24 - db $34, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 25 - db $35, JUMPTABLE_8D24B_FUNCTION_1D, $00 ; 26 - db $37, JUMPTABLE_8D24B_FUNCTION_1E, $00 ; 27 - db $38, JUMPTABLE_8D24B_FUNCTION_1E, $00 ; 28 - db $39, JUMPTABLE_8D24B_FUNCTION_20, $00 ; 29 - db $3f, JUMPTABLE_8D24B_FUNCTION_21, $00 ; 2a - db $3e, JUMPTABLE_8D24B_FUNCTION_22, $00 ; 2b - db $40, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 2c -; 8d24b - - -Function8d24b: ; 8d24b - ld hl, $2 ; field 2, see the second column in the above table - add hl, bc - ld e, [hl] - ld d, 0 - ld hl, .Jumptable -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 8d25b - - -.Jumptable: ; 8d25b (23:525b) - dw .zero - dw .one - dw .two - dw .three - dw .four - dw .five - dw .six - dw .seven - dw .eight - dw .nine - dw .ten - dw .eleven - dw .twelve - dw .thirteen - dw .fourteen - dw .fifteen - dw .sixteen - dw .seventeen - dw .eighteen - dw .nineteen - dw .twenty - dw .twentyone - dw .twentytwo - dw .twentythree - dw .twentyfour - dw .twentyfive - dw .twentysix - dw .twentyseven - dw .twentyeight - dw .twentynine - dw .thirty - dw .thirtyone - dw .thirtytwo - dw .thirtythree - dw .thirtyfour - - -.zero: ; 8d2a1 (23:52a1) - ret - -.one: ; 8d2a2 (23:52a2) - ld a, [MenuSelection2] - ld hl, 0 - add hl, bc - cp [hl] - jr z, .two - ld hl, $4 - add hl, bc - ld [hl], $10 - ld hl, $7 - add hl, bc - ld [hl], $0 - ret - -.two: ; 8d2b9 (23:52b9) - ld hl, $4 - add hl, bc - ld [hl], $18 - ld hl, $c - add hl, bc - ld a, [hl] - ld d, a - inc [hl] - and $f - ret nz - ld hl, $d - add hl, bc - ld e, [hl] - ld hl, $7 - add hl, bc - ld a, d - and $10 ; bit 4 - jr z, .asm_8d2df - ld a, e - and a - jr z, .asm_8d2e6 - cp $1 - jr z, .asm_8d2e2 -.asm_8d2df - xor a - ld [hl], a - ret -.asm_8d2e2 - ld a, $ff - ld [hl], a - ret -.asm_8d2e6 - ld a, $fe - ld [hl], a - ret - -.three: ; 8d2ea (23:52ea) - ld a, [MenuSelection2] - ld hl, 0 - add hl, bc - cp [hl] - jr z, .asm_8d2fb - ld hl, $4 - add hl, bc - ld [hl], $10 - ret -.asm_8d2fb - ld hl, $4 - add hl, bc - ld [hl], $18 - ret - -.four: ; 8d302 (23:5302) - call .anonymous_jumptable - jp [hl] -; 8d306 (23:5306) - -; Anonymous jumptable (see .anonymous_jumptable) - dw .four_zero - dw .four_one -; 8d30a - -.four_zero: ; 8d30a - call Function8d6d8 - ld hl, 0 - add hl, bc - ld a, [hl] - ld hl, $d - add hl, bc - and $3 - ld [hl], a - inc [hl] - swap a - ld hl, $c - add hl, bc - ld [hl], a - -.four_one: ; 8d321 - ld hl, $4 - add hl, bc - ld a, [hl] - cp $a4 - jr nc, .asm_8d356 - ld hl, $d - add hl, bc - add $4 - ld hl, $4 - add hl, bc - ld [hl], a - ld hl, $5 - add hl, bc - inc [hl] - ld hl, $d - add hl, bc - ld a, [hl] - sla a - sla a - ld d, $2 - ld hl, $c - add hl, bc - ld a, [hl] - add $3 - ld [hl], a - call Function8d6de - ld hl, $7 - add hl, bc - ld [hl], a - ret - -.asm_8d356 - call Function8d036 - ret -; 8d35a - -.twentyfive: ; 8d35a (23:535a) - ld hl, $c - add hl, bc - ld a, [hl] - inc a - ld [hl], a - ld d, $2 - call Function8d6de - ld hl, $7 - add hl, bc - ld [hl], a - ret - -.five: ; 8d36c (23:536c) - callab Function11a3b - ret - -.twelve: ; 8d373 (23:5373) - callab Function120c1 - ret - -.six: ; 8d37a (23:537a) - callab GameFreakLogoJumper - ret - -.seven: ; 8d381 (23:5381) - ld hl, $c - add hl, bc - ld a, [hl] - and a - jr z, .asm_8d3ba -rept 2 - dec [hl] -endr - ld d, a - and $1f - jr nz, .asm_8d395 - ld hl, $d - add hl, bc - dec [hl] -.asm_8d395 - ld hl, $b - add hl, bc - ld a, [hl] - push af - push de - call Function8d6de - ld hl, $7 - add hl, bc - ld [hl], a - pop de - pop af - call Function8d6e2 - ld hl, $6 - add hl, bc - ld [hl], a - ld hl, $d - add hl, bc - ld a, [hl] - ld hl, $b - add hl, bc - add [hl] - ld [hl], a - ret -.asm_8d3ba - ld a, $1 - ld [wcf64], a - call Function8d036 - ret - -.eight: ; 8d3c3 (23:53c3) - ld hl, $c - add hl, bc - ld a, [hli] - or [hl] - jr z, .asm_8d41e - ld hl, $f - add hl, bc - ld d, [hl] - ld hl, $b - add hl, bc - ld a, [hl] - push af - push de - call Function8d6de - ld hl, $7 - add hl, bc - ld [hl], a - pop de - pop af - call Function8d6e2 - ld hl, $6 - add hl, bc - ld [hl], a - ld hl, $c - add hl, bc - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $e - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - add hl, de - ld e, l - ld d, h - ld hl, $e - add hl, bc - ld [hl], e - inc hl - ld [hl], d - ld hl, $c - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld de, $fff0 - add hl, de - ld e, l - ld d, h - ld hl, $c - add hl, bc - ld [hl], e - inc hl - ld [hl], d - ld hl, $b - add hl, bc - ld a, [hl] - xor $20 - ld [hl], a - ret -.asm_8d41e - call Function8d036 - ret - -.nine: ; 8d422 (23:5422) - callab Function9321d - ret - -.ten: ; 8d429 (23:5429) - callab Function932ac - ld hl, wcf64 - ld a, [hl] - cp $2 - ret nz - ld [hl], $3 - ld a, $f - call Function8d120 - ret - -.eleven: ; 8d43e (23:543e) - ld hl, $b - add hl, bc - ld a, [hl] - dec [hl] - ld e, a - and $1 - jr z, .asm_8d462 - ld hl, $4 - add hl, bc - ld a, [hl] - cp $78 - jr c, .asm_8d461 - call Function8d036 - ld a, $4 - ld [wcf64], a - ld de, SFX_PLACE_PUZZLE_PIECE_DOWN - call PlaySFX - ret -.asm_8d461 - inc [hl] -.asm_8d462 - ld a, e - ld d, $20 - call Function8d6de - ld hl, $7 - add hl, bc - ld [hl], a - ret - -.thirteen: ; 8d46e (23:546e) - callab Functione00ed - ret - -.fifteen: ; 8d475 (23:5475) - callab Function90d41 - ret - -.fourteen: ; 8d47c (23:547c) - callab Functione21a1 - ret - -.sixteen: ; 8d483 (23:5483) - call .anonymous_jumptable - jp [hl] -; 8d487 (23:5487) - -; Anonymous jumptable (see .anonymous_jumptable) - dw .sixteen_zero - dw .sixteen_one - dw .sixteen_two - dw .sixteen_three - dw .sixteen_four - dw .sixteen_five -; 8d493 - -.sixteen_zero: ; 8d493 - ld a, $14 - call Function8d120 - ld hl, $b - add hl, bc - ld [hl], $2 - ld hl, $c - add hl, bc - ld [hl], $20 - ret -; 8d4a5 - -.sixteen_two: ; 8d4a5 - ld hl, $c - add hl, bc - ld a, [hl] - and a - jr z, .asm_8d4af - dec [hl] - ret - -.asm_8d4af - call Function8d6d8 - ld hl, $c - add hl, bc - ld [hl], $40 - -.sixteen_three: ; 8d4b8 - ld hl, $c - add hl, bc - ld a, [hl] - cp $30 - jr c, .asm_8d4cd - dec [hl] - ld d, $28 - call Function8d6de - ld hl, $7 - add hl, bc - ld [hl], a - ret - -.asm_8d4cd - ld de, SFX_GOT_SAFARI_BALLS - call PlaySFX - jr .sixteen_five -; 8d4d5 - -.sixteen_one: ; 8d4d5 - ld hl, $b - add hl, bc - ld [hl], $4 - ld hl, $c - add hl, bc - ld [hl], $30 - ld hl, $d - add hl, bc - ld [hl], $24 - ret -; 8d4e8 - -.sixteen_four: ; 8d4e8 - ld hl, $d - add hl, bc - ld a, [hl] - and a - jr z, .asm_8d51c - ld d, a - ld hl, $c - add hl, bc - ld a, [hl] - call Function8e72c - ld hl, $7 - add hl, bc - ld [hl], a - ld hl, $c - add hl, bc - inc [hl] - ld a, [hl] - and $3f - ret nz - ld hl, $c - add hl, bc - ld [hl], $20 - ld hl, $d - add hl, bc - ld a, [hl] - sub $c - ld [hl], a - ld de, SFX_SWITCH_POKEMON - call PlaySFX - ret - -.asm_8d51c - xor a - ld hl, $7 - add hl, bc - ld [hl], a - call Function8d6d8 - ret - -.sixteen_five: ; 8d526 - call Function8d036 - ret -; 8d52a - -.seventeen: ; 8d52a (23:552a) - ld hl, $4 - add hl, bc - ld a, [hl] -rept 2 - inc [hl] -endr - cp $b0 - jr nc, .asm_8d53f - and $3 - ret nz - ld de, SFX_POKEBALLS_PLACED_ON_TABLE - call PlaySFX - ret -.asm_8d53f - call Function8d036 - ret - -.eighteen: ; 8d543 (23:5543) - callab Function29676 - ret - -.nineteen: ; 8d54a (23:554a) - ld hl, $c - add hl, bc - ld a, [hl] - cp $80 - jr nc, .asm_8d574 - ld d, a - add $8 - ld [hl], a - ld hl, $b - add hl, bc - ld a, [hl] - xor $20 - ld [hl], a - push af - push de - call Function8d6de - ld hl, $7 - add hl, bc - ld [hl], a - pop de - pop af - call Function8d6e2 - ld hl, $6 - add hl, bc - ld [hl], a - ret -.asm_8d574 - call Function8d036 - ret - -.twenty: ; 8d578 (23:5578) - callab Function91640 - ret - -.twentyone: ; 8d57f (23:557f) - ld hl, $d - add hl, bc - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $80 - add hl, de - ld e, l - ld d, h - ld hl, $d - add hl, bc - ld [hl], e - inc hl - ld [hl], d - ld hl, $c - add hl, bc - ld a, [hl] -rept 3 - inc [hl] -endr - push af - push de - call Function8d6de - ld hl, $7 - add hl, bc - ld [hl], a - pop de - pop af - call Function8d6e2 - ld hl, $6 - add hl, bc - ld [hl], a - ret - -.twentytwo: ; 8d5b0 (23:55b0) - ld hl, $5 - add hl, bc - ld a, [hl] - and a - ret z - ld hl, $d - add hl, bc - ld a, [hl] - inc [hl] - cp $40 - ret c - ld hl, $5 - add hl, bc -rept 2 - dec [hl] -endr - ld hl, $f - add hl, bc - ld a, [hl] - ld d, a - cp $40 - jr nc, .asm_8d5d3 - add $8 - ld [hl], a -.asm_8d5d3 - ld hl, $e - add hl, bc - ld a, [hl] - inc [hl] - call Function8d6e2 - ld hl, $6 - add hl, bc - ld [hl], a - ret - -.twentythree: ; 8d5e2 (23:55e2) - ld hl, $4 - add hl, bc - ld a, [hl] - cp $b8 - jr nc, .asm_8d603 -rept 2 - inc [hl] -endr - ld hl, $5 - add hl, bc - dec [hl] - ld d, $40 - ld hl, $c - add hl, bc - ld a, [hl] - inc [hl] - call Function8d6e2 - ld hl, $6 - add hl, bc - ld [hl], a - ret -.asm_8d603 - call Function8d036 - ret - -.twentyfour: ; 8d607 (23:5607) - ld hl, $5 - add hl, bc - ld a, [hl] - cp $54 - ret z - ld hl, $5 - add hl, bc -rept 2 - inc [hl] -endr - ld hl, $f - add hl, bc - ld a, [hl] - ld d, a - and a - jr z, .asm_8d621 - sub $2 - ld [hl], a -.asm_8d621 - ld hl, $e - add hl, bc - ld a, [hl] - inc [hl] - call Function8d6e2 - ld hl, $6 - add hl, bc - ld [hl], a - ret - -.twentyseven: ; 8d630 (23:5630) - callba Function108bc7 - ret - -.twentyeight: ; 8d637 (23:5637) - callba Function108be0 - ret - -.twentynine: ; 8d63e (23:563e) - ld a, [wcf65] - and a - jr nz, .asm_8d645 - ret -.asm_8d645 - ld hl, $7 - add hl, bc - ld [hl], $0 - ld hl, $d - add hl, bc - ld a, [hl] - add $2 - ld [hl], a - xor $ff - inc a - ld d, $20 - call Function8d6de - ld hl, $7 - add hl, bc - ld [hl], a - ld a, $36 - call Function8d120 - ret - -.thirty: ; 8d666 (23:5666) - ld hl, $c - add hl, bc - ld a, [hl] - cp $14 - jr nc, .asm_8d67f - add $2 - ld [hl], a - xor $ff - inc a - ld d, $20 - call Function8d6de - ld hl, $7 - add hl, bc - ld [hl], a -.asm_8d67f - ret - -.thirtytwo: ; 8d680 (23:5680) - ld hl, $b - add hl, bc - ld d, [hl] -rept 3 - inc [hl] -endr - ld hl, $c - add hl, bc - ld a, [hl] - push af - push de - call Function8d6de - ld hl, $7 - add hl, bc - ld [hl], a - pop de - pop af - call Function8d6e2 - ld hl, $6 - add hl, bc - ld [hl], a - ret - -.thirtythree: ; 8d6a2 (23:56a2) - ld a, [wcf64] - cp $40 - ret nz - ld a, $3d - call Function8d120 - ret - -.thirtyfour: ; 8d6ae (23:56ae) - ld hl, $5 - add hl, bc - ld a, [hl] - add $10 - ld [hl], a - ret - -.twentysix: ; 8d6b7 (23:56b7) - callba Function11d0b6 - ret - -.thirtyone: ; 8d6be (23:56be) - callba Function49aa2 - ret - -.anonymous_jumptable: ; 8d6c5 (23:56c5) - ld hl, [sp+$0] - ld e, [hl] - inc hl - ld d, [hl] - inc de - ld hl, $b - add hl, bc - ld l, [hl] - ld h, $0 - add hl, hl - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ret -; 8d6d8 (23:56d8) - -Function8d6d8: ; 8d6d8 - ld hl, $b - add hl, bc - inc [hl] - ret -; 8d6de - -Function8d6de: ; 8d6de (23:56de) - call Function8e72c - ret - -Function8d6e2: ; 8d6e2 (23:56e2) - call Function8e72a - ret -; 8d6e6 (23:56e6) - -Unknown_8d6e6: ; 8d6e6 - dw Unknown_8d76a - dw Unknown_8d76d - dw Unknown_8d772 - dw Unknown_8d777 - dw Unknown_8d77c - dw Unknown_8d781 - dw Unknown_8d786 - dw Unknown_8d7a6 - dw Unknown_8d7ab - dw Unknown_8d7b0 - dw Unknown_8d7b5 - dw Unknown_8d7d4 - dw Unknown_8d7d9 - dw Unknown_8d7e2 - dw Unknown_8d7eb - dw Unknown_8d7f4 - dw Unknown_8d7ff - dw Unknown_8d78b - dw Unknown_8d802 - dw Unknown_8d805 - dw Unknown_8d808 - dw Unknown_8d811 - dw Unknown_8d818 - dw Unknown_8d81d - dw Unknown_8d822 - dw Unknown_8d825 - dw Unknown_8d82c - dw Unknown_8d82f - dw Unknown_8d861 - dw Unknown_8d864 - dw Unknown_8d867 - dw Unknown_8d874 - dw Unknown_8d877 - dw Unknown_8d87a - dw Unknown_8d87d - dw Unknown_8d880 - dw Unknown_8d883 - dw Unknown_8d890 - dw Unknown_8d899 - dw Unknown_8d89c - dw Unknown_8d89f - dw Unknown_8d8a2 - dw Unknown_8d8a5 - dw Unknown_8d8a8 - dw Unknown_8d8ab - dw Unknown_8d794 - dw Unknown_8d79d - dw Unknown_8d8ae - dw Unknown_8d8cd - dw Unknown_8d8ec - dw Unknown_8d8f1 - dw Unknown_8d8f4 - dw Unknown_8d8f7 - dw Unknown_8d8fe - dw Unknown_8d907 - dw Unknown_8d90c - dw Unknown_8d913 - dw Unknown_8d916 - dw Unknown_8d91d - dw Unknown_8d924 - dw Unknown_8d92b - dw Unknown_8d932 - dw Unknown_8d93d - dw Unknown_8d940 - dw Unknown_8d943 - dw Unknown_8d948 -; 8d76a - -Unknown_8d76a: dw $2000 - db -1 -Unknown_8d76d: dw $0800, $0801 - db -2 -Unknown_8d772: dw $083d, $083e - db -2 -Unknown_8d777: dw $083f, $0840 - db -2 -Unknown_8d77c: dw $0400, $0401 - db -2 -Unknown_8d781: dw $043d, $043e - db -2 -Unknown_8d786: dw $043f, $0440 - db -2 -Unknown_8d78b: dw $0800, $0801, $0800, $4801 - db -2 -Unknown_8d794: dw $0863, $0864, $0863, $4864 - db -2 -Unknown_8d79d: dw $0865, $0866, $0865, $4866 - db -2 -Unknown_8d7a6: dw $011e, $011f - db -2 -Unknown_8d7ab: dw $0120, $01fd - db -2 -Unknown_8d7b0: dw $0121, $01fd - db -2 -Unknown_8d7b5: dw $0c81, $0182, $0183, $0482, $0c81, $0c82, $0483, $2084, $0385, $0386, $0487, $0488, $0489, $0a8a, $078b - db -1 -Unknown_8d7d4: dw $0323, $8323 - db -2 -Unknown_8d7d9: dw $0224, $0225, $0226, $0225 - db -2 -Unknown_8d7e2: dw $0727, $0728, $8727, $4728 - db -2 -Unknown_8d7eb: dw $0729, $072a, $0729, $072b - db -2 -Unknown_8d7f4: dw $0729, $072c, $072d, $072c, $0729 - db -1 -Unknown_8d7ff: dw $142e - db -1 -Unknown_8d802: dw $202f - db -1 -Unknown_8d805: dw $2030 - db -1 -Unknown_8d808: dw $0330, $0331, $0330, $4331 - db -2 -Unknown_8d811: dw $0432, $0433, $0434 - db -4 -Unknown_8d818: dw $0335, $0336 - db -2 -Unknown_8d81d: dw $0737, $0738 - db -2 -Unknown_8d822: dw $2039 - db -1 -Unknown_8d825: dw $023b, $023a, $023b - db -1 -Unknown_8d82c: dw $203c - db -1 -Unknown_8d82f: dw $0841, $0842, $0841, $4842 - db -2 - dw $0843, $0844 - db -2 - dw $0845, $0846 - db -2 - dw $0847, $0848 - db -2 - dw $0149, $4149, $c149, $8149 - db -2 - dw $204a - db -1 - dw $204b - db -1 - dw $204c - db -1 - dw $204d - db -1 - dw $034e, $03fd - db -2 -Unknown_8d861: dw $20fd - db -1 -Unknown_8d864: dw $204f - db -1 -Unknown_8d867: dw $0250, $1051, $01fd, $0152, $01fd, $0153 - db -4 -Unknown_8d874: dw $2054 - db -1 -Unknown_8d877: dw $2055 - db -1 -Unknown_8d87a: dw $6055 - db -1 -Unknown_8d87d: dw $a055 - db -1 -Unknown_8d880: dw $e055 - db -1 -Unknown_8d883: dw $0a56, $0957, $0a58, $0a59, $0958, $0a5a - db -2 -Unknown_8d890: dw $0250, $025b, $0250, $425b - db -2 -Unknown_8d899: dw $025c - db -1 -Unknown_8d89c: dw $025d - db -1 -Unknown_8d89f: dw $025e - db -1 -Unknown_8d8a2: dw $025f - db -1 -Unknown_8d8a5: dw $0260 - db -1 -Unknown_8d8a8: dw $0261 - db -1 -Unknown_8d8ab: dw $0262 - db -1 -Unknown_8d8ae: dw $0332, $0333, $0334, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331 - db -1 -Unknown_8d8cd: dw $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0332, $0333, $0334 - db -4 -Unknown_8d8ec: dw $0367, $0368 - db -2 -Unknown_8d8f1: dw $036c - db -1 -Unknown_8d8f4: dw $036d - db -1 -Unknown_8d8f7: dw $0269, $026a, $026b - db -4 -Unknown_8d8fe: dw $036e, $036f, $0370, $0371 - db -2 -Unknown_8d907: dw $0371, $076e - db -1 -Unknown_8d90c: dw $2072, $0773, $0774 - db -1 -Unknown_8d913: dw $0375 - db -1 -Unknown_8d916: dw $0376, $0377, $0778 - db -4 -Unknown_8d91d: dw $4376, $4377, $4778 - db -4 -Unknown_8d924: dw $8376, $8377, $8778 - db -4 -Unknown_8d92b: dw $c376, $c377, $c778 - db -4 -Unknown_8d932: dw $0379, $037a, $037b, $077c, $077d - db -1 -Unknown_8d93d: dw $037e - db -1 -Unknown_8d940: dw $00fd - db -1 -Unknown_8d943: dw $087f, $0880 - db -1 -Unknown_8d948: dw $487f, $4880 - db -1 -; 8d94d - -Unknown_8d94d: ; 8d94d - dbw $00, Unknown_8dd8a - dbw $04, Unknown_8dd8a - dbw $4c, Unknown_8daf1 - dbw $5c, Unknown_8daf1 - dbw $6c, Unknown_8daf6 - dbw $6e, Unknown_8daf6 - dbw $2d, Unknown_8ddf0 - dbw $4d, Unknown_8ddf0 - dbw $60, Unknown_8de09 - dbw $00, Unknown_8de09 - dbw $00, Unknown_8de09 - dbw $06, Unknown_8de09 - dbw $0c, Unknown_8de7e - dbw $0d, Unknown_8daf1 - dbw $00, Unknown_8dc53 - dbw $04, Unknown_8dc53 - dbw $08, Unknown_8dc53 - dbw $40, Unknown_8dc53 - dbw $44, Unknown_8dc53 - dbw $48, Unknown_8dc53 - dbw $4c, Unknown_8dc53 - dbw $80, Unknown_8de87 - dbw $85, Unknown_8de87 - dbw $8a, Unknown_8de87 - dbw $00, Unknown_8db29 - dbw $01, Unknown_8db5c - dbw $09, Unknown_8db9d - dbw $10, Unknown_8dc94 - dbw $29, Unknown_8dc94 - dbw $42, Unknown_8dc94 - dbw $f8, Unknown_8e17e - dbw $fa, Unknown_8e17e - dbw $00, Unknown_8deb2 - dbw $00, Unknown_8dec3 - dbw $00, Unknown_8deec - dbw $0f, Unknown_8db07 - dbw $11, Unknown_8daf1 - dbw $12, Unknown_8daf1 - dbw $13, Unknown_8daf1 - dbw $00, Unknown_8df29 - dbw $08, Unknown_8df29 - dbw $10, Unknown_8df42 - dbw $10, Unknown_8df5b - dbw $10, Unknown_8df74 - dbw $10, Unknown_8df8d - dbw $10, Unknown_8dfa6 - dbw $3a, Unknown_8daf1 - dbw $00, Unknown_8dd8a - dbw $00, Unknown_8db18 - dbw $02, Unknown_8dd9b - dbw $06, Unknown_8db5c - dbw $0a, Unknown_8db5c - dbw $0e, Unknown_8db5c - dbw $12, Unknown_8db3a - dbw $13, Unknown_8db3a - dbw $00, Unknown_8dd8a - dbw $04, Unknown_8dd8a - dbw $10, Unknown_8db5c - dbw $00, Unknown_8dd9b - dbw $04, Unknown_8daf1 - dbw $00, Unknown_8dfbf - dbw $00, Unknown_8ddac - dbw $00, Unknown_8ddbd - dbw $00, Unknown_8ddce - dbw $00, Unknown_8dddf - dbw $00, Unknown_8dd9b - dbw $04, Unknown_8dd9b - dbw $00, Unknown_8dc2e - dbw $30, Unknown_8dc2e - dbw $03, Unknown_8dc2e - dbw $33, Unknown_8dc2e - dbw $06, Unknown_8dc2e - dbw $36, Unknown_8dc2e - dbw $09, Unknown_8dc2e - dbw $39, Unknown_8dc2e - dbw $0c, Unknown_8dfcc - dbw $0c, Unknown_8dfe5 - dbw $3c, Unknown_8daf1 - dbw $3e, Unknown_8daf1 - dbw $00, Unknown_8de9c - dbw $00, Unknown_8dea1 - dbw $00, Unknown_8dff6 - dbw $00, Unknown_8e007 - dbw $00, Unknown_8e018 - dbw $00, Unknown_8daf1 - dbw $01, Unknown_8daf1 - dbw $00, Unknown_8e029 - dbw $00, Unknown_8e076 - dbw $00, Unknown_8e0b7 - dbw $00, Unknown_8e0f4 - dbw $00, Unknown_8e139 - dbw $04, Unknown_8dea1 - dbw $00, Unknown_8e183 - dbw $00, Unknown_8e1b4 - dbw $00, Unknown_8e1b9 - dbw $00, Unknown_8e1ca - dbw $00, Unknown_8e1eb - dbw $00, Unknown_8e1f0 - dbw $00, Unknown_8e1f9 - dbw $00, Unknown_8e202 - dbw $04, Unknown_8e202 - dbw $00, Unknown_8e213 - dbw $04, Unknown_8e213 - dbw $20, Unknown_8e224 - dbw $21, Unknown_8e224 - dbw $22, Unknown_8e24b - dbw $23, Unknown_8e25c - dbw $27, Unknown_8e27d - dbw $2a, Unknown_8e229 - dbw $2a, Unknown_8e23a - dbw $00, Unknown_8e2ae - dbw $08, Unknown_8e33f - dbw $60, Unknown_8e3b0 - dbw $68, Unknown_8e429 - dbw $00, Unknown_8e4a6 - dbw $05, Unknown_8e4a6 - dbw $0a, Unknown_8e4a6 - dbw $50, Unknown_8e50b - dbw $00, Unknown_8e54c - dbw $01, Unknown_8e551 - dbw $04, Unknown_8e55e - dbw $00, Unknown_8db29 - dbw $01, Unknown_8e57b - dbw $03, Unknown_8e59c - dbw $08, Unknown_8e5cd - dbw $1c, Unknown_8e5cd - dbw $80, Unknown_8e61e - dbw $00, Unknown_8e66f - dbw $04, Unknown_8e66f - dbw $d0, Unknown_8e680 - dbw $d3, Unknown_8e680 - dbw $d6, Unknown_8e680 - dbw $6c, Unknown_8e6a5 - dbw $68, Unknown_8e6a5 - dbw $64, Unknown_8e6a5 - dbw $60, Unknown_8e6a5 - dbw $0c, Unknown_8e6a5 - dbw $08, Unknown_8e6a5 - dbw $04, Unknown_8e6a5 - dbw $00, Unknown_8e6a5 -; 8daf1 - - -Unknown_8daf1: ; 8daf1 - db 1 - db $fc, $fc, $00, $00 -; 8daf6 - -Unknown_8daf6: ; 8daf6 - db 4 - db $f8, $f8, $00, $00 - db $f8, $00, $01, $00 - db $00, $f8, $10, $00 - db $00, $00, $11, $00 -; 8db07 - -Unknown_8db07: ; 8db07 - db 4 - db $f8, $f8, $00, $00 - db $f8, $00, $00, $20 - db $00, $f8, $01, $00 - db $00, $00, $01, $20 -; 8db18 - -Unknown_8db18: ; 8db18 - db 4 - db $f8, $f8, $00, $80 - db $f8, $00, $00, $a0 - db $00, $f8, $01, $80 - db $00, $00, $01, $a0 -; 8db29 - -Unknown_8db29: ; 8db29 - db 4 - db $f8, $f8, $00, $00 - db $f8, $00, $00, $20 - db $00, $f8, $00, $40 - db $00, $00, $00, $60 -; 8db3a - -Unknown_8db3a: ; 8db3a - db 4 - db $f8, $f8, $00, $07 - db $f8, $00, $00, $27 - db $00, $f8, $00, $47 - db $00, $00, $00, $67 -; 8db4b - -; 8db4b - db 4 - db $f8, $f8, $00, $80 - db $f8, $00, $00, $a0 - db $00, $f8, $00, $c0 - db $00, $00, $00, $e0 -; 8db5c - -Unknown_8db5c: ; 8db5c - db 16 - db $f0, $f0, $00, $00 - db $f0, $f8, $01, $00 - db $f8, $f0, $02, $00 - db $f8, $f8, $03, $00 - db $f0, $00, $01, $20 - db $f0, $08, $00, $20 - db $f8, $00, $03, $20 - db $f8, $08, $02, $20 - db $00, $f0, $02, $40 - db $00, $f8, $03, $40 - db $08, $f0, $00, $40 - db $08, $f8, $01, $40 - db $00, $00, $03, $60 - db $00, $08, $02, $60 - db $08, $00, $01, $60 - db $08, $08, $00, $60 -; 8db9d - -Unknown_8db9d: ; 8db9d - db 36 - db $e8, $e8, $00, $00 - db $e8, $f0, $01, $00 - db $e8, $f8, $02, $00 - db $f0, $e8, $03, $00 - db $f0, $f0, $04, $00 - db $f0, $f8, $05, $00 - db $f8, $e8, $06, $00 - db $f8, $f0, $05, $00 - db $f8, $f8, $05, $00 - db $e8, $00, $02, $20 - db $e8, $08, $01, $20 - db $e8, $10, $00, $20 - db $f0, $00, $05, $20 - db $f0, $08, $04, $20 - db $f0, $10, $03, $20 - db $f8, $00, $05, $20 - db $f8, $08, $05, $20 - db $f8, $10, $06, $20 - db $00, $e8, $06, $40 - db $00, $f0, $05, $40 - db $00, $f8, $05, $40 - db $08, $e8, $03, $40 - db $08, $f0, $04, $40 - db $08, $f8, $05, $40 - db $10, $e8, $00, $40 - db $10, $f0, $01, $40 - db $10, $f8, $02, $40 - db $00, $00, $05, $60 - db $00, $08, $05, $60 - db $00, $10, $06, $60 - db $08, $00, $05, $60 - db $08, $08, $04, $60 - db $08, $10, $03, $60 - db $10, $00, $02, $60 - db $10, $08, $01, $60 - db $10, $10, $00, $60 -; 8dc2e - -Unknown_8dc2e: ; 8dc2e - db 9 - db $f4, $f4, $00, $00 - db $f4, $fc, $01, $00 - db $f4, $04, $02, $00 - db $fc, $f4, $10, $00 - db $fc, $fc, $11, $00 - db $fc, $04, $12, $00 - db $04, $f4, $20, $00 - db $04, $fc, $21, $00 - db $04, $04, $22, $00 -; 8dc53 - -Unknown_8dc53: ; 8dc53 - db 16 - db $f0, $f0, $00, $00 - db $f0, $f8, $01, $00 - db $f0, $00, $02, $00 - db $f0, $08, $03, $00 - db $f8, $f0, $10, $00 - db $f8, $f8, $11, $00 - db $f8, $00, $12, $00 - db $f8, $08, $13, $00 - db $00, $f0, $20, $00 - db $00, $f8, $21, $00 - db $00, $00, $22, $00 - db $00, $08, $23, $00 - db $08, $f0, $30, $00 - db $08, $f8, $31, $00 - db $08, $00, $32, $00 - db $08, $08, $33, $00 -; 8dc94 - -Unknown_8dc94: ; 8dc94 - db 25 - db $ec, $ec, $00, $00 - db $f4, $ec, $01, $00 - db $fc, $ec, $02, $00 - db $04, $ec, $03, $00 - db $0c, $ec, $04, $00 - db $ec, $f4, $05, $00 - db $f4, $f4, $06, $00 - db $fc, $f4, $07, $00 - db $04, $f4, $08, $00 - db $0c, $f4, $09, $00 - db $ec, $fc, $0a, $00 - db $f4, $fc, $0b, $00 - db $fc, $fc, $0c, $00 - db $04, $fc, $0d, $00 - db $0c, $fc, $0e, $00 - db $ec, $04, $0f, $00 - db $f4, $04, $10, $00 - db $fc, $04, $11, $00 - db $04, $04, $12, $00 - db $0c, $04, $13, $00 - db $ec, $0c, $14, $00 - db $f4, $0c, $15, $00 - db $fc, $0c, $16, $00 - db $04, $0c, $17, $00 - db $0c, $0c, $18, $00 -; 8dcf9 - -; 8dcf9 - db 36 - db $e8, $e8, $00, $00 - db $e8, $f0, $01, $00 - db $e8, $f8, $02, $00 - db $e8, $00, $03, $00 - db $e8, $08, $04, $00 - db $e8, $10, $05, $00 - db $f0, $e8, $06, $00 - db $f0, $f0, $07, $00 - db $f0, $f8, $08, $00 - db $f0, $00, $09, $00 - db $f0, $08, $0a, $00 - db $f0, $10, $0b, $00 - db $f8, $e8, $0c, $00 - db $f8, $f0, $0d, $00 - db $f8, $f8, $0e, $00 - db $f8, $00, $0f, $00 - db $f8, $08, $10, $00 - db $f8, $10, $11, $00 - db $00, $e8, $12, $00 - db $00, $f0, $13, $00 - db $00, $f8, $14, $00 - db $00, $00, $15, $00 - db $00, $08, $16, $00 - db $00, $10, $17, $00 - db $08, $e8, $18, $00 - db $08, $f0, $19, $00 - db $08, $f8, $1a, $00 - db $08, $00, $1b, $00 - db $08, $08, $1c, $00 - db $08, $10, $1d, $00 - db $10, $e8, $1e, $00 - db $10, $f0, $1f, $00 - db $10, $f8, $20, $00 - db $10, $00, $21, $00 - db $10, $08, $22, $00 - db $10, $10, $23, $00 -; 8dd8a - -Unknown_8dd8a: ; 8dd8a - db 4 - db $f8, $f8, $00, $00 - db $f8, $00, $01, $00 - db $00, $f8, $02, $00 - db $00, $00, $03, $00 -; 8dd9b - -Unknown_8dd9b: ; 8dd9b - db 4 - db $f8, $f8, $00, $80 - db $f8, $00, $01, $80 - db $00, $f8, $02, $80 - db $00, $00, $03, $80 -; 8ddac - -Unknown_8ddac: ; 8ddac - db 4 - db $f8, $f8, $00, $00 - db $f8, $00, $01, $00 - db $00, $f8, $08, $00 - db $00, $00, $03, $00 -; 8ddbd - -Unknown_8ddbd: ; 8ddbd - db 4 - db $f8, $f8, $04, $00 - db $f8, $00, $05, $00 - db $00, $f8, $08, $00 - db $00, $00, $07, $00 -; 8ddce - -Unknown_8ddce: ; 8ddce - db 4 - db $f8, $f8, $00, $00 - db $f8, $00, $01, $00 - db $00, $f8, $09, $00 - db $00, $00, $03, $00 -; 8dddf - -Unknown_8dddf: ; 8dddf - db 4 - db $f8, $f8, $04, $00 - db $f8, $00, $05, $00 - db $00, $f8, $09, $00 - db $00, $00, $07, $00 -; 8ddf0 - -Unknown_8ddf0: ; 8ddf0 - db 6 - db $f8, $f4, $00, $01 - db $f8, $fc, $01, $01 - db $f8, $04, $02, $01 - db $00, $f4, $10, $01 - db $00, $fc, $11, $01 - db $00, $04, $12, $01 -; 8de09 - -Unknown_8de09: ; 8de09 - db 29 - db $e8, $e8, $00, $00 - db $e8, $f0, $01, $00 - db $e8, $f8, $02, $00 - db $e8, $00, $03, $00 - db $f0, $e8, $10, $00 - db $f0, $f0, $11, $00 - db $f0, $f8, $12, $00 - db $f0, $00, $13, $00 - db $f8, $e8, $20, $00 - db $f8, $f0, $21, $00 - db $f8, $f8, $22, $00 - db $f8, $00, $23, $00 - db $f8, $08, $24, $00 - db $00, $e8, $30, $80 - db $00, $f0, $31, $80 - db $00, $f8, $32, $80 - db $00, $00, $33, $80 - db $00, $08, $34, $80 - db $08, $e8, $40, $80 - db $08, $f0, $41, $80 - db $08, $f8, $42, $80 - db $08, $00, $43, $80 - db $08, $08, $44, $80 - db $08, $10, $45, $80 - db $10, $f0, $51, $80 - db $10, $f8, $52, $80 - db $10, $00, $53, $80 - db $10, $08, $54, $80 - db $10, $10, $55, $80 -; 8de7e - -Unknown_8de7e: ; 8de7e - db 2 - db $f8, $fc, $00, $00 - db $00, $fc, $10, $00 -; 8de87 - -Unknown_8de87: ; 8de87 - db 5 - db $f0, $18, $00, $00 - db $f0, $20, $01, $00 - db $f8, $10, $02, $00 - db $f8, $18, $03, $00 - db $00, $10, $04, $00 -; 8de9c - -Unknown_8de9c: ; 8de9c - db 1 - db $fc, $fc, $00, $06 -; 8dea1 - -Unknown_8dea1: ; 8dea1 - db 4 - db $f8, $f8, $00, $06 - db $f8, $00, $01, $06 - db $00, $f8, $02, $06 - db $00, $00, $03, $06 -; 8deb2 - -Unknown_8deb2: ; 8deb2 - db 4 - db $ff, $ff, $00, $00 - db $ff, $00, $00, $20 - db $00, $ff, $00, $40 - db $00, $00, $00, $60 -; 8dec3 - -Unknown_8dec3: ; 8dec3 - db 10 - db $ff, $00, $00, $00 - db $ff, $08, $01, $00 - db $ff, $10, $01, $00 - db $ff, $18, $01, $00 - db $ff, $20, $00, $20 - db $00, $00, $00, $40 - db $00, $08, $01, $40 - db $00, $10, $01, $40 - db $00, $18, $01, $40 - db $00, $20, $00, $60 -; 8deec - -Unknown_8deec: ; 8deec - db 15 - db $ec, $f4, $00, $11 - db $ec, $fc, $01, $11 - db $ec, $04, $02, $11 - db $f4, $f4, $03, $11 - db $f4, $fc, $04, $11 - db $f4, $04, $05, $11 - db $fc, $f4, $06, $11 - db $fc, $fc, $07, $11 - db $fc, $04, $08, $11 - db $04, $f4, $09, $11 - db $04, $fc, $0a, $11 - db $04, $04, $0b, $11 - db $0c, $f4, $0c, $11 - db $0c, $fc, $0d, $11 - db $0c, $04, $0e, $11 -; 8df29 - -Unknown_8df29: ; 8df29 - db 6 - db $f4, $f4, $00, $15 - db $f4, $fc, $02, $15 - db $f4, $04, $00, $35 - db $04, $f4, $04, $15 - db $04, $fc, $06, $15 - db $04, $04, $04, $35 -; 8df42 - -Unknown_8df42: ; 8df42 - db 6 - db $f4, $f4, $00, $16 - db $f4, $fc, $02, $16 - db $f4, $04, $04, $16 - db $04, $f4, $06, $16 - db $04, $fc, $08, $16 - db $04, $04, $0a, $16 -; 8df5b - -Unknown_8df5b: ; 8df5b - db 6 - db $f4, $f4, $00, $16 - db $f4, $fc, $02, $16 - db $f4, $04, $04, $16 - db $04, $f4, $0c, $16 - db $04, $fc, $0e, $16 - db $04, $04, $10, $16 -; 8df74 - -Unknown_8df74: ; 8df74 - db 6 - db $f4, $f4, $00, $16 - db $f4, $fc, $02, $16 - db $f4, $04, $04, $16 - db $04, $f4, $12, $16 - db $04, $fc, $14, $16 - db $04, $04, $16, $16 -; 8df8d - -Unknown_8df8d: ; 8df8d - db 6 - db $f4, $f4, $00, $16 - db $f4, $fc, $02, $16 - db $f4, $04, $04, $16 - db $04, $f4, $18, $16 - db $04, $fc, $1a, $16 - db $04, $04, $1c, $16 -; 8dfa6 - -Unknown_8dfa6: ; 8dfa6 - db 6 - db $f4, $f4, $1e, $16 - db $f4, $fc, $20, $16 - db $f4, $04, $22, $16 - db $04, $f4, $24, $16 - db $04, $fc, $26, $16 - db $04, $04, $28, $16 -; 8dfbf - -Unknown_8dfbf: ; 8dfbf - db 3 - db $f4, $fc, $00, $10 - db $fc, $fc, $00, $10 - db $04, $fc, $00, $10 -; 8dfcc - -Unknown_8dfcc: ; 8dfcc - db 6 - db $00, $00, $00, $00 - db $00, $08, $01, $00 - db $00, $10, $01, $00 - db $00, $18, $01, $00 - db $00, $20, $02, $00 - db $00, $28, $03, $00 -; 8dfe5 - -Unknown_8dfe5: ; 8dfe5 - db 4 - db $00, $00, $00, $00 - db $00, $08, $01, $00 - db $00, $10, $02, $00 - db $00, $18, $03, $00 -; 8dff6 - -Unknown_8dff6: ; 8dff6 - db 4 - db $f8, $f6, $00, $06 - db $f8, $02, $01, $06 - db $00, $f6, $02, $06 - db $00, $02, $03, $06 -; 8e007 - -Unknown_8e007: ; 8e007 - db 4 - db $f8, $f4, $00, $06 - db $f8, $04, $01, $06 - db $00, $f4, $02, $06 - db $00, $04, $03, $06 -; 8e018 - -Unknown_8e018: ; 8e018 - db 4 - db $f8, $f0, $00, $06 - db $f8, $08, $01, $06 - db $00, $f0, $02, $06 - db $00, $08, $03, $06 -; 8e029 - -Unknown_8e029: ; 8e029 - db 19 - db $f8, $e0, $00, $00 - db $f0, $e8, $02, $00 - db $00, $e8, $04, $00 - db $e8, $f0, $06, $00 - db $f8, $f0, $08, $00 - db $08, $f0, $0a, $00 - db $e8, $f8, $0c, $00 - db $f8, $f8, $0e, $00 - db $08, $f8, $10, $00 - db $e8, $00, $12, $00 - db $f8, $00, $14, $00 - db $08, $00, $16, $00 - db $e8, $08, $18, $00 - db $f8, $08, $1a, $00 - db $08, $08, $1c, $00 - db $f8, $10, $1e, $00 - db $08, $10, $20, $00 - db $f0, $18, $22, $00 - db $00, $18, $24, $00 -; 8e076 - -Unknown_8e076: ; 8e076 - db 16 - db $f8, $e0, $00, $00 - db $f0, $e8, $02, $00 - db $00, $e8, $04, $00 - db $f8, $f0, $26, $00 - db $08, $f0, $0a, $00 - db $e8, $f8, $28, $00 - db $f8, $f8, $2a, $00 - db $08, $f8, $10, $00 - db $f8, $00, $2c, $00 - db $08, $00, $16, $00 - db $f8, $08, $30, $00 - db $08, $08, $1c, $00 - db $f8, $10, $1e, $00 - db $08, $10, $20, $00 - db $f0, $18, $22, $00 - db $00, $18, $24, $00 -; 8e0b7 - -Unknown_8e0b7: ; 8e0b7 - db 15 - db $f8, $e0, $00, $00 - db $f0, $e8, $02, $00 - db $00, $e8, $32, $00 - db $f8, $f0, $34, $00 - db $08, $f0, $36, $00 - db $f8, $f8, $38, $00 - db $08, $f8, $3a, $00 - db $f8, $00, $3c, $00 - db $08, $00, $3e, $00 - db $f8, $08, $30, $00 - db $08, $08, $1c, $00 - db $f8, $10, $1e, $00 - db $08, $10, $20, $00 - db $f0, $18, $22, $00 - db $00, $18, $24, $00 -; 8e0f4 - -Unknown_8e0f4: ; 8e0f4 - db 17 - db $f8, $e0, $00, $00 - db $f0, $e8, $02, $00 - db $00, $e8, $04, $00 - db $f8, $f0, $40, $00 - db $08, $f0, $42, $00 - db $18, $f0, $44, $00 - db $f8, $f8, $46, $00 - db $08, $f8, $48, $00 - db $18, $f8, $4a, $00 - db $f8, $00, $4c, $00 - db $08, $00, $4e, $00 - db $f8, $08, $30, $00 - db $08, $08, $1c, $00 - db $f8, $10, $1e, $00 - db $08, $10, $20, $00 - db $f0, $18, $22, $00 - db $00, $18, $24, $00 -; 8e139 - -Unknown_8e139: ; 8e139 - db 17 - db $f8, $e0, $00, $00 - db $f0, $e8, $02, $00 - db $00, $e8, $04, $00 - db $f8, $f0, $50, $00 - db $08, $f0, $0a, $00 - db $e8, $f8, $52, $00 - db $f8, $f8, $54, $00 - db $08, $f8, $10, $00 - db $e8, $00, $56, $00 - db $f8, $00, $2e, $00 - db $08, $00, $16, $00 - db $f8, $08, $30, $00 - db $08, $08, $1c, $00 - db $f8, $10, $1e, $00 - db $08, $10, $20, $00 - db $f0, $18, $22, $00 - db $00, $18, $24, $00 -; 8e17e - -Unknown_8e17e: ; 8e17e - db 1 - db $fc, $fc, $00, $11 -; 8e183 - -Unknown_8e183: ; 8e183 - db 12 - db $00, $00, $30, $00 - db $00, $08, $31, $00 - db $00, $10, $31, $00 - db $00, $18, $31, $00 - db $00, $20, $31, $00 - db $00, $28, $32, $00 - db $08, $00, $33, $00 - db $08, $08, $34, $00 - db $08, $10, $34, $00 - db $08, $18, $34, $00 - db $08, $20, $34, $00 - db $08, $28, $35, $00 -; 8e1b4 - -Unknown_8e1b4: ; 8e1b4 - db 1 - db $00, $00, $ed, $00 -; 8e1b9 - -Unknown_8e1b9: ; 8e1b9 - db 4 - db $ff, $ff, $30, $00 - db $ff, $01, $32, $00 - db $01, $ff, $33, $00 - db $01, $01, $35, $00 -; 8e1ca - -Unknown_8e1ca: ; 8e1ca - db 8 - db $ff, $ff, $30, $00 - db $ff, $04, $31, $00 - db $ff, $0c, $31, $00 - db $ff, $11, $32, $00 - db $01, $ff, $33, $00 - db $01, $04, $34, $00 - db $01, $0c, $34, $00 - db $01, $11, $35, $00 -; 8e1eb - -Unknown_8e1eb: ; 8e1eb - db 1 - db $00, $00, $34, $00 -; 8e1f0 - -Unknown_8e1f0: ; 8e1f0 - db 2 - db $00, $00, $30, $00 - db $08, $00, $33, $00 -; 8e1f9 - -Unknown_8e1f9: ; 8e1f9 - db 2 - db $00, $00, $32, $00 - db $08, $00, $35, $00 -; 8e202 - -Unknown_8e202: ; 8e202 - db 4 - db $f8, $f8, $00, $01 - db $f8, $00, $01, $01 - db $00, $f8, $02, $01 - db $00, $00, $03, $01 -; 8e213 - -Unknown_8e213: ; 8e213 - db 4 - db $f8, $f8, $00, $81 - db $f8, $00, $01, $81 - db $00, $f8, $02, $81 - db $00, $00, $03, $81 -; 8e224 - -Unknown_8e224: ; 8e224 - db 1 - db $fc, $fc, $00, $02 -; 8e229 - -Unknown_8e229: ; 8e229 - db 4 - db $f0, $fc, $00, $03 - db $f8, $fc, $01, $03 - db $00, $fc, $02, $03 - db $08, $fc, $03, $03 -; 8e23a - -Unknown_8e23a: ; 8e23a - db 4 - db $f0, $fc, $03, $44 - db $f8, $fc, $02, $44 - db $00, $fc, $01, $44 - db $08, $fc, $00, $44 -; 8e24b - -Unknown_8e24b: ; 8e24b - db 4 - db $f8, $f8, $00, $01 - db $f8, $00, $00, $21 - db $00, $f8, $00, $41 - db $00, $00, $00, $61 -; 8e25c - -Unknown_8e25c: ; 8e25c - db 8 - db $f4, $f4, $00, $01 - db $f4, $fc, $01, $01 - db $f4, $04, $00, $21 - db $fc, $f4, $02, $01 - db $fc, $04, $02, $21 - db $04, $f4, $00, $41 - db $04, $fc, $01, $41 - db $04, $04, $00, $61 -; 8e27d - -Unknown_8e27d: ; 8e27d - db 12 - db $f0, $f0, $00, $01 - db $f0, $f8, $01, $01 - db $f8, $f0, $02, $01 - db $f0, $00, $01, $21 - db $f0, $08, $00, $21 - db $f8, $08, $02, $21 - db $00, $f0, $02, $41 - db $08, $f0, $00, $41 - db $08, $f8, $01, $41 - db $00, $08, $02, $61 - db $08, $00, $01, $61 - db $08, $08, $00, $61 -; 8e2ae - -Unknown_8e2ae: ; 8e2ae - db 36 - db $e8, $08, $05, $00 - db $e8, $10, $06, $00 - db $e8, $18, $07, $00 - db $f0, $e8, $11, $00 - db $f0, $f0, $12, $00 - db $f0, $f8, $13, $00 - db $f0, $00, $14, $00 - db $f0, $08, $15, $00 - db $f0, $10, $16, $00 - db $f0, $18, $17, $00 - db $f8, $e0, $20, $00 - db $f8, $e8, $21, $00 - db $f8, $f0, $22, $00 - db $f8, $f8, $23, $00 - db $f8, $00, $24, $00 - db $f8, $08, $25, $00 - db $f8, $10, $26, $00 - db $f8, $18, $27, $00 - db $00, $e0, $30, $00 - db $00, $e8, $31, $00 - db $00, $f0, $32, $00 - db $00, $f8, $33, $00 - db $00, $00, $34, $00 - db $00, $08, $35, $00 - db $00, $10, $36, $00 - db $08, $e0, $40, $00 - db $08, $e8, $41, $00 - db $08, $f0, $42, $00 - db $08, $f8, $43, $00 - db $08, $00, $44, $00 - db $08, $08, $45, $00 - db $08, $10, $46, $00 - db $08, $18, $47, $00 - db $10, $e0, $50, $00 - db $10, $e8, $51, $00 - db $10, $18, $57, $00 -; 8e33f - -Unknown_8e33f: ; 8e33f - db 28 - db $e8, $00, $04, $00 - db $e8, $08, $05, $00 - db $e8, $10, $06, $00 - db $f0, $e8, $11, $00 - db $f0, $f0, $12, $00 - db $f0, $f8, $13, $00 - db $f0, $00, $14, $00 - db $f0, $08, $15, $00 - db $f0, $10, $16, $00 - db $f8, $e8, $21, $00 - db $f8, $f0, $22, $00 - db $f8, $f8, $23, $00 - db $f8, $00, $24, $00 - db $f8, $08, $25, $00 - db $f8, $10, $26, $00 - db $00, $e0, $30, $00 - db $00, $e8, $31, $00 - db $00, $f0, $32, $00 - db $00, $f8, $33, $00 - db $00, $00, $34, $00 - db $00, $08, $35, $00 - db $08, $f0, $42, $00 - db $08, $f8, $43, $00 - db $08, $00, $44, $00 - db $08, $08, $45, $00 - db $10, $f8, $53, $00 - db $10, $00, $54, $00 - db $10, $08, $55, $00 -; 8e3b0 - -Unknown_8e3b0: ; 8e3b0 - db 30 - db $e8, $00, $04, $00 - db $e8, $08, $05, $00 - db $f0, $e8, $11, $00 - db $f0, $f0, $12, $00 - db $f0, $f8, $13, $00 - db $f0, $00, $14, $00 - db $f0, $08, $15, $00 - db $f0, $10, $16, $00 - db $f0, $18, $17, $00 - db $f8, $e0, $20, $00 - db $f8, $e8, $21, $00 - db $f8, $f0, $22, $00 - db $f8, $f8, $23, $00 - db $f8, $00, $24, $00 - db $f8, $08, $25, $00 - db $f8, $10, $26, $00 - db $00, $e0, $30, $00 - db $00, $e8, $31, $00 - db $00, $f0, $32, $00 - db $00, $f8, $33, $00 - db $00, $00, $34, $00 - db $00, $08, $35, $00 - db $08, $f0, $42, $00 - db $08, $f8, $43, $00 - db $08, $00, $44, $00 - db $08, $08, $45, $00 - db $10, $f0, $52, $00 - db $10, $f8, $53, $00 - db $10, $00, $54, $00 - db $10, $08, $55, $00 -; 8e429 - -Unknown_8e429: ; 8e429 - db 31 - db $f0, $e8, $11, $00 - db $f0, $f0, $12, $00 - db $f0, $f8, $13, $00 - db $f0, $00, $14, $00 - db $f0, $08, $15, $00 - db $f0, $10, $16, $00 - db $f0, $18, $17, $00 - db $f8, $e0, $20, $00 - db $f8, $e8, $21, $00 - db $f8, $f0, $22, $00 - db $f8, $f8, $23, $00 - db $f8, $00, $24, $00 - db $f8, $08, $25, $00 - db $f8, $10, $26, $00 - db $f8, $18, $27, $00 - db $00, $e0, $30, $00 - db $00, $e8, $31, $00 - db $00, $f0, $32, $00 - db $00, $f8, $33, $00 - db $00, $00, $34, $00 - db $00, $08, $35, $00 - db $00, $10, $36, $00 - db $08, $e8, $41, $00 - db $08, $f0, $42, $00 - db $08, $f8, $43, $00 - db $08, $00, $44, $00 - db $08, $08, $45, $00 - db $10, $e8, $51, $00 - db $10, $f0, $52, $00 - db $10, $00, $54, $00 - db $10, $08, $55, $00 -; 8e4a6 - -Unknown_8e4a6: ; 8e4a6 - db 25 - db $ec, $ec, $00, $09 - db $ec, $f4, $01, $09 - db $ec, $fc, $02, $09 - db $ec, $04, $03, $09 - db $ec, $0c, $04, $09 - db $f4, $ec, $10, $09 - db $f4, $f4, $11, $09 - db $f4, $fc, $12, $09 - db $f4, $04, $13, $09 - db $f4, $0c, $14, $09 - db $fc, $ec, $20, $09 - db $fc, $f4, $21, $09 - db $fc, $fc, $22, $09 - db $fc, $04, $23, $09 - db $fc, $0c, $24, $09 - db $04, $ec, $30, $09 - db $04, $f4, $31, $09 - db $04, $fc, $32, $09 - db $04, $04, $33, $09 - db $04, $0c, $34, $09 - db $0c, $ec, $40, $09 - db $0c, $f4, $41, $09 - db $0c, $fc, $42, $09 - db $0c, $04, $43, $09 - db $0c, $0c, $44, $09 -; 8e50b - -Unknown_8e50b: ; 8e50b - db 16 - db $f0, $ec, $00, $0a - db $f0, $f4, $01, $0a - db $f0, $fc, $02, $0a - db $f0, $04, $03, $0a - db $f8, $ec, $04, $0a - db $f8, $f4, $05, $0a - db $f8, $fc, $06, $0a - db $f8, $04, $07, $0a - db $00, $ec, $08, $0a - db $00, $f4, $09, $0a - db $00, $fc, $0a, $0a - db $00, $04, $0b, $0a - db $08, $ec, $0c, $0a - db $08, $f4, $0d, $0a - db $08, $fc, $0e, $0a - db $08, $04, $0f, $0a -; 8e54c - -Unknown_8e54c: ; 8e54c - db 1 - db $fc, $fc, $00, $00 -; 8e551 - -Unknown_8e551: ; 8e551 - db 3 - db $00, $f8, $00, $00 - db $f8, $f8, $01, $00 - db $f8, $00, $02, $00 -; 8e55e - -Unknown_8e55e: ; 8e55e - db 7 - db $08, $f0, $00, $00 - db $00, $f0, $01, $00 - db $f8, $f0, $02, $00 - db $f8, $f8, $03, $00 - db $f0, $f8, $04, $00 - db $f0, $00, $05, $00 - db $f0, $08, $06, $00 -; 8e57b - -Unknown_8e57b: ; 8e57b - db 8 - db $f8, $f0, $00, $00 - db $f8, $f8, $01, $00 - db $f8, $00, $01, $20 - db $f8, $08, $00, $20 - db $00, $f0, $00, $40 - db $00, $f8, $01, $40 - db $00, $00, $01, $60 - db $00, $08, $00, $60 -; 8e59c - -Unknown_8e59c: ; 8e59c - db 12 - db $e8, $f8, $00, $00 - db $f0, $f8, $01, $00 - db $f8, $f8, $02, $00 - db $e8, $00, $00, $20 - db $f0, $00, $01, $20 - db $f8, $00, $02, $20 - db $00, $f8, $02, $40 - db $08, $f8, $01, $40 - db $10, $f8, $00, $40 - db $00, $00, $02, $60 - db $08, $00, $01, $60 - db $10, $00, $00, $60 -; 8e5cd - -Unknown_8e5cd: ; 8e5cd - db 20 - db $ec, $f0, $00, $00 - db $ec, $f8, $01, $00 - db $ec, $00, $02, $00 - db $ec, $08, $03, $00 - db $f4, $f0, $04, $00 - db $f4, $f8, $05, $00 - db $f4, $00, $06, $00 - db $f4, $08, $07, $00 - db $fc, $f0, $08, $00 - db $fc, $f8, $09, $00 - db $fc, $00, $0a, $00 - db $fc, $08, $0b, $00 - db $04, $f0, $0c, $00 - db $04, $f8, $0d, $00 - db $04, $00, $0e, $00 - db $04, $08, $0f, $00 - db $0c, $f0, $10, $00 - db $0c, $f8, $11, $00 - db $0c, $00, $12, $00 - db $0c, $08, $13, $00 -; 8e61e - -Unknown_8e61e: ; 8e61e - db 20 - db $00, $08, $00, $81 - db $08, $10, $00, $81 - db $10, $18, $00, $81 - db $18, $20, $00, $81 - db $20, $28, $00, $81 - db $18, $30, $00, $81 - db $10, $38, $00, $81 - db $08, $40, $00, $81 - db $00, $48, $00, $81 - db $08, $50, $00, $81 - db $10, $58, $00, $81 - db $18, $60, $00, $81 - db $20, $68, $00, $81 - db $18, $70, $00, $81 - db $10, $78, $00, $81 - db $08, $80, $00, $81 - db $00, $88, $00, $81 - db $08, $90, $00, $81 - db $10, $98, $00, $81 - db $18, $a0, $00, $81 -; 8e66f - -Unknown_8e66f: ; 8e66f - db 4 - db $f8, $f8, $00, $02 - db $f8, $00, $01, $02 - db $00, $f8, $02, $02 - db $00, $00, $03, $02 -; 8e680 - -Unknown_8e680: ; 8e680 - db 9 - db $f0, $f4, $00, $01 - db $f0, $fc, $01, $01 - db $f0, $04, $02, $01 - db $f8, $f4, $10, $01 - db $f8, $fc, $11, $01 - db $f8, $04, $12, $01 - db $00, $f4, $20, $01 - db $00, $fc, $21, $01 - db $00, $04, $22, $01 -; 8e6a5 - -Unknown_8e6a5: ; 8e6a5 - db 24 - db $d8, $f4, $00, $01 - db $d8, $fc, $01, $01 - db $d8, $04, $02, $01 - db $d8, $0c, $03, $01 - db $e0, $f4, $10, $01 - db $e0, $fc, $11, $01 - db $e0, $04, $12, $01 - db $e0, $0c, $13, $01 - db $e8, $f4, $20, $01 - db $e8, $fc, $21, $01 - db $e8, $04, $22, $01 - db $e8, $0c, $23, $01 - db $f0, $f4, $30, $01 - db $f0, $fc, $31, $01 - db $f0, $04, $32, $01 - db $f0, $0c, $33, $01 - db $f8, $f4, $40, $01 - db $f8, $fc, $41, $01 - db $f8, $04, $42, $01 - db $f8, $0c, $43, $01 - db $00, $f4, $50, $01 - db $00, $fc, $51, $01 - db $00, $04, $52, $01 - db $00, $0c, $53, $01 -; 8e706 - - -Unknown_8e706: ; Broken 2bpp pointers - dbbw $80, $01, $672a ; 128-tile 2bpp at 1:672a (inside Multiply) - dbbw $80, $01, $672a - dbbw $80, $01, $672a - dbbw $80, $01, $672a - dbbw $10, $37, $672a ; 16-tile 2bpp at 37:672a (within Tileset11GFX) - dbbw $10, $11, $672a ; 16-tile 2bpp at 11:672a (empty data) - dbbw $10, $39, $672a ; 16-tile 2bpp at 39:672a (empty data) - dbbw $10, $24, $672a ; 16-tile 2bpp at 24:672a (inside Function926f7) - dbbw $10, $21, $672a ; 16-tile 2bpp at 21:672a (inside Function8671c) - -Function8e72a: ; 8e72a - add $10 -Function8e72c: ; 8e72c - and $3f - cp $20 - jr nc, .asm_8e737 - call Function8e741 - ld a, h - ret - -.asm_8e737 - and $1f - call Function8e741 - ld a, h - xor $ff ; cpl - inc a - ret -; 8e741 - -Function8e741: ; 8e741 - ld e, a - ld a, d - ld d, 0 - ld hl, Unknown_8e75d -rept 2 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - ld hl, 0 -.asm_8e750 - srl a - jr nc, .asm_8e755 - add hl, de - -.asm_8e755 - sla e - rl d - and a - jr nz, .asm_8e750 - ret -; 8e75d - -Unknown_8e75d: ; 8e75d - sine_wave $100 - +INCLUDE "engine/sprites.asm" Function8e79d: ; 8e79d ld a, [hSGB] @@ -53568,7 +50685,7 @@ Function1047b4: ; 1047b4 (41:47b4) LoadGraphics: ; 1047cf call LoadTilesetHeader - call Function2821 + call LoadTileset xor a ld [hMapAnims], a xor a diff --git a/maps/map_headers.asm b/maps/map_headers.asm index 3b49db763..acbd650a4 100644 --- a/maps/map_headers.asm +++ b/maps/map_headers.asm @@ -41,9 +41,9 @@ MapGroup1: map_header Route38EcruteakGate, TILESET_GATE, GATE, ROUTE_38, MUSIC_ROUTE_37, 0, PALETTE_DAY, 1 map_header Route39Barn, TILESET_KURT_HOUSE, INDOOR, ROUTE_39, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 map_header Route39Farmhouse, TILESET_HOUSE_1, INDOOR, ROUTE_39, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 - map_header Route38, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_38, MUSIC_ROUTE_37, 0, PALETTE_AUTO, 1 - map_header Route39, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_39, MUSIC_ROUTE_37, 0, PALETTE_AUTO, 1 - map_header OlivineCity, TILESET_JOHTO_OUTSIDE_1, TOWN, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, 1 + map_header Route38, TILESET_JOHTO_1, ROUTE, ROUTE_38, MUSIC_ROUTE_37, 0, PALETTE_AUTO, 1 + map_header Route39, TILESET_JOHTO_1, ROUTE, ROUTE_39, MUSIC_ROUTE_37, 0, PALETTE_AUTO, 1 + map_header OlivineCity, TILESET_JOHTO_1, TOWN, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, 1 MapGroup2: @@ -51,9 +51,9 @@ MapGroup2: map_header MahoganyGym, TILESET_GYM_1, INDOOR, MAHOGANY_TOWN, MUSIC_GYM, 1, PALETTE_DAY, 1 map_header MahoganyPokeCenter1F, TILESET_POKECENTER, INDOOR, MAHOGANY_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 map_header Route42EcruteakGate, TILESET_GATE, GATE, ROUTE_42, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1 - map_header Route42, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_42, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 3 - map_header Route44, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_44, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 4 - map_header MahoganyTown, TILESET_JOHTO_OUTSIDE_1, TOWN, MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_AUTO, 1 + map_header Route42, TILESET_JOHTO_1, ROUTE, ROUTE_42, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 3 + map_header Route44, TILESET_JOHTO_1, ROUTE, ROUTE_44, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 4 + map_header MahoganyTown, TILESET_JOHTO_1, TOWN, MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_AUTO, 1 MapGroup3: @@ -78,7 +78,7 @@ MapGroup3: map_header RadioTower3F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1 map_header RadioTower4F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1 map_header RadioTower5F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1 - map_header RuinsofAlphOutside, TILESET_JOHTO_OUTSIDE_1, ROUTE, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 0, PALETTE_AUTO, 4 + map_header RuinsofAlphOutside, TILESET_JOHTO_1, ROUTE, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 0, PALETTE_AUTO, 4 map_header RuinsofAlphHoOhChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 map_header RuinsofAlphKabutoChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 map_header RuinsofAlphOmanyteChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 @@ -137,7 +137,7 @@ MapGroup3: map_header DarkCaveVioletEntrance, TILESET_WHIRL_ISLANDS, CAVE, DARK_CAVE, MUSIC_DARK_CAVE, 1, PALETTE_DARK, 3 map_header DarkCaveBlackthornEntrance, TILESET_WHIRL_ISLANDS, CAVE, DARK_CAVE, MUSIC_DARK_CAVE, 1, PALETTE_DARK, 3 map_header DragonsDen1F, TILESET_CAVE, CAVE, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, 5 - map_header DragonsDenB1F, TILESET_JOHTO_OUTSIDE_1, CAVE, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, 5 + map_header DragonsDenB1F, TILESET_JOHTO_1, CAVE, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, 5 map_header DragonShrine, TILESET_LAB, INDOOR, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, 1 map_header TohjoFalls, TILESET_CAVE, CAVE, TOHJO_FALLS, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3 map_header DiglettsCave, TILESET_CAVE, CAVE, DIGLETTS_CAVE, MUSIC_MT_MOON, 1, PALETTE_NITE, 1 @@ -159,7 +159,7 @@ MapGroup4: map_header EcruteakMart, TILESET_MART, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 map_header EcruteakGym, TILESET_SPROUT_TOWER, INDOOR, ECRUTEAK_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 map_header EcruteakItemfinderHouse, TILESET_KURT_HOUSE, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 - map_header EcruteakCity, TILESET_JOHTO_OUTSIDE_1, TOWN, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_AUTO, 4 + map_header EcruteakCity, TILESET_JOHTO_1, TOWN, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_AUTO, 4 MapGroup5: @@ -170,9 +170,9 @@ MapGroup5: map_header BlackthornMart, TILESET_MART, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 map_header BlackthornPokeCenter1F, TILESET_POKECENTER, INDOOR, BLACKTHORN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 map_header MoveDeletersHouse, TILESET_HOUSE_1, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 - map_header Route45, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_45, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 9 - map_header Route46, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_46, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1 - map_header BlackthornCity, TILESET_JOHTO_OUTSIDE_1, TOWN, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_AUTO, 4 + map_header Route45, TILESET_JOHTO_1, ROUTE, ROUTE_45, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 9 + map_header Route46, TILESET_JOHTO_1, ROUTE, ROUTE_46, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1 + map_header BlackthornCity, TILESET_JOHTO_1, TOWN, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_AUTO, 4 MapGroup6: @@ -180,10 +180,10 @@ MapGroup6: map_header CinnabarPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 map_header Route19FuchsiaGate, TILESET_GATE, GATE, ROUTE_19, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1 map_header SeafoamGym, TILESET_CAVE, INDOOR, SEAFOAM_ISLANDS, MUSIC_GYM, 1, PALETTE_DAY, 1 - map_header Route19, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_19, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 - map_header Route20, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_20, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 2 - map_header Route21, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_21, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 2 - map_header CinnabarIsland, TILESET_KANTO_OUTSIDE, TOWN, CINNABAR_ISLAND, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 2 + map_header Route19, TILESET_KANTO, ROUTE, ROUTE_19, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 + map_header Route20, TILESET_KANTO, ROUTE, ROUTE_20, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 2 + map_header Route21, TILESET_KANTO, ROUTE, ROUTE_21, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 2 + map_header CinnabarIsland, TILESET_KANTO, TOWN, CINNABAR_ISLAND, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 2 MapGroup7: @@ -198,12 +198,12 @@ MapGroup7: map_header Route10PokeCenter2FBeta, TILESET_POKECENTER, INDOOR, ROUTE_10, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 map_header PowerPlant, TILESET_POWER_PLANT, INDOOR, POWER_PLANT, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 map_header BillsHouse, TILESET_HOUSE_1, INDOOR, ROUTE_25, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header Route4, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_4, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 0 - map_header Route9, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_9, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3 - map_header Route10North, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_10, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3 - map_header Route24, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_24, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3 - map_header Route25, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_25, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3 - map_header CeruleanCity, TILESET_KANTO_OUTSIDE, TOWN, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 0 + map_header Route4, TILESET_KANTO, ROUTE, ROUTE_4, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 0 + map_header Route9, TILESET_KANTO, ROUTE, ROUTE_9, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3 + map_header Route10North, TILESET_KANTO, ROUTE, ROUTE_10, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3 + map_header Route24, TILESET_KANTO, ROUTE, ROUTE_24, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3 + map_header Route25, TILESET_KANTO, ROUTE, ROUTE_25, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3 + map_header CeruleanCity, TILESET_KANTO, TOWN, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 0 MapGroup8: @@ -212,8 +212,8 @@ MapGroup8: map_header AzaleaMart, TILESET_MART, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 map_header KurtsHouse, TILESET_KURT_HOUSE, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 map_header AzaleaGym, TILESET_GYM_1, INDOOR, AZALEA_TOWN, MUSIC_GYM, 1, PALETTE_DAY, 1 - map_header Route33, TILESET_JOHTO_OUTSIDE_2, ROUTE, ROUTE_33, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 1 - map_header AzaleaTown, TILESET_JOHTO_OUTSIDE_2, TOWN, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_AUTO, 1 + map_header Route33, TILESET_JOHTO_2, ROUTE, ROUTE_33, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 1 + map_header AzaleaTown, TILESET_JOHTO_2, TOWN, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_AUTO, 1 MapGroup9: @@ -221,16 +221,16 @@ MapGroup9: map_header LakeofRageMagikarpHouse, TILESET_HOUSE_1, INDOOR, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1 map_header Route43MahoganyGate, TILESET_GATE, GATE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1 map_header Route43Gate, TILESET_GATE, GATE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1 - map_header Route43, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 4 - map_header LakeofRage, TILESET_JOHTO_OUTSIDE_1, TOWN, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 8 + map_header Route43, TILESET_JOHTO_1, ROUTE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 4 + map_header LakeofRage, TILESET_JOHTO_1, TOWN, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 8 MapGroup10: - map_header Route32, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_32, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 11 - map_header Route35, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_35, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 4 - map_header Route36, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_36, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1 - map_header Route37, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_37, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1 - map_header VioletCity, TILESET_JOHTO_OUTSIDE_1, TOWN, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, 4 + map_header Route32, TILESET_JOHTO_1, ROUTE, ROUTE_32, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 11 + map_header Route35, TILESET_JOHTO_1, ROUTE, ROUTE_35, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 4 + map_header Route36, TILESET_JOHTO_1, ROUTE, ROUTE_36, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1 + map_header Route37, TILESET_JOHTO_1, ROUTE, ROUTE_37, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1 + map_header VioletCity, TILESET_JOHTO_1, TOWN, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, 4 map_header VioletMart, TILESET_MART, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 map_header VioletGym, TILESET_GYM_1, INDOOR, VIOLET_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 map_header EarlsPokemonAcademy, TILESET_LAB, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 @@ -246,8 +246,8 @@ MapGroup10: MapGroup11: - map_header Route34, TILESET_JOHTO_OUTSIDE_2, ROUTE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1 - map_header GoldenrodCity, TILESET_JOHTO_OUTSIDE_2, TOWN, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_AUTO, 1 + map_header Route34, TILESET_JOHTO_2, ROUTE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1 + map_header GoldenrodCity, TILESET_JOHTO_2, TOWN, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_AUTO, 1 map_header GoldenrodGym, TILESET_GYM_1, INDOOR, GOLDENROD_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 map_header GoldenrodBikeShop, TILESET_OLIVINE_GYM, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 map_header GoldenrodHappinessRater, TILESET_HOUSE_1, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 @@ -266,16 +266,16 @@ MapGroup11: map_header GoldenrodDeptStoreRoof, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 map_header GoldenrodGameCorner, TILESET_GAME_CORNER, INDOOR, GOLDENROD_CITY, MUSIC_GAME_CORNER, 0, PALETTE_DAY, 1 map_header GoldenrodPokeCenter1F, TILESET_POKECENTER, INDOOR, GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header GoldenrodPokeComCenter2FMobile, TILESET_GOLDENROD_POKECOM_CENTER_2F_MOBILE, INDOOR, GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header GoldenrodPokeComCenter2FMobile, TILESET_POKECOM_CENTER, INDOOR, GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 map_header IlexForestAzaleaGate, TILESET_GATE, GATE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1 map_header Route34IlexForestGate, TILESET_GATE, GATE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1 map_header DayCare, TILESET_HOUSE_1, INDOOR, ROUTE_34, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 MapGroup12: - map_header Route6, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_6, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 4 - map_header Route11, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_11, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1 - map_header VermilionCity, TILESET_KANTO_OUTSIDE, TOWN, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_AUTO, 2 + map_header Route6, TILESET_KANTO, ROUTE, ROUTE_6, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 4 + map_header Route11, TILESET_KANTO, ROUTE, ROUTE_11, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1 + map_header VermilionCity, TILESET_KANTO, TOWN, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_AUTO, 2 map_header VermilionHouseFishingSpeechHouse, TILESET_HOUSE_1, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1 map_header VermilionPokeCenter1F, TILESET_POKECENTER, INDOOR, VERMILION_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 map_header VermilionPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1 @@ -289,8 +289,8 @@ MapGroup12: MapGroup13: - map_header Route1, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_1, MUSIC_ROUTE_1, 0, PALETTE_AUTO, 1 - map_header PalletTown, TILESET_KANTO_OUTSIDE, TOWN, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_AUTO, 2 + map_header Route1, TILESET_KANTO, ROUTE, ROUTE_1, MUSIC_ROUTE_1, 0, PALETTE_AUTO, 1 + map_header PalletTown, TILESET_KANTO, TOWN, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_AUTO, 2 map_header RedsHouse1F, TILESET_KRISS_HOUSE, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, 1 map_header RedsHouse2F, TILESET_KRISS_HOUSE, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, 1 map_header BluesHouse, TILESET_HOUSE_1, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, 1 @@ -298,8 +298,8 @@ MapGroup13: MapGroup14: - map_header Route3, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_3, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 - map_header PewterCity, TILESET_KANTO_OUTSIDE, TOWN, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 1 + map_header Route3, TILESET_KANTO, ROUTE, ROUTE_3, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 + map_header PewterCity, TILESET_KANTO, TOWN, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 1 map_header PewterNidoranSpeechHouse, TILESET_HOUSE_1, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 map_header PewterGym, TILESET_SPROUT_TOWER, INDOOR, PEWTER_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 map_header PewterMart, TILESET_MART, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 @@ -318,13 +318,13 @@ MapGroup15: map_header FastShipB1F, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1 map_header OlivinePortPassage, TILESET_UNDERGROUND, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 map_header VermilionPortPassage, TILESET_UNDERGROUND, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1 - map_header MountMoonSquare, TILESET_KANTO_OUTSIDE, ROUTE, MT_MOON, MUSIC_MT_MOON_SQUARE, 0, PALETTE_AUTO, 1 + map_header MountMoonSquare, TILESET_KANTO, ROUTE, MT_MOON, MUSIC_MT_MOON_SQUARE, 0, PALETTE_AUTO, 1 map_header MountMoonGiftShop, TILESET_KURT_HOUSE, INDOOR, MT_MOON, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 map_header TinTowerRoof, TILESET_SPROUT_TOWER, ROUTE, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_AUTO, 1 MapGroup16: - map_header Route23, TILESET_KANTO_OUTSIDE, TOWN, ROUTE_23, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 1 + map_header Route23, TILESET_KANTO, TOWN, ROUTE_23, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 1 map_header IndigoPlateauPokeCenter1F, TILESET_POKECENTER, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 0, PALETTE_DAY, 1 map_header WillsRoom, TILESET_GYM_1, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1 map_header KogasRoom, TILESET_GYM_1, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1 @@ -335,11 +335,11 @@ MapGroup16: MapGroup17: - map_header Route13, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_13, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 13 - map_header Route14, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_14, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1 - map_header Route15, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_15, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1 - map_header Route18, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_18, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 - map_header FuchsiaCity, TILESET_KANTO_OUTSIDE, TOWN, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_AUTO, 8 + map_header Route13, TILESET_KANTO, ROUTE, ROUTE_13, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 13 + map_header Route14, TILESET_KANTO, ROUTE, ROUTE_14, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1 + map_header Route15, TILESET_KANTO, ROUTE, ROUTE_15, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1 + map_header Route18, TILESET_KANTO, ROUTE, ROUTE_18, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 + map_header FuchsiaCity, TILESET_KANTO, TOWN, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_AUTO, 8 map_header FuchsiaMart, TILESET_MART, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 map_header SafariZoneMainOffice, TILESET_GAME_CORNER, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 map_header FuchsiaGym, TILESET_LAB, INDOOR, FUCHSIA_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 @@ -351,10 +351,10 @@ MapGroup17: MapGroup18: - map_header Route8, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_8, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 - map_header Route12, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_12, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 13 - map_header Route10South, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_10, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3 - map_header LavenderTown, TILESET_KANTO_OUTSIDE, TOWN, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_AUTO, 1 + map_header Route8, TILESET_KANTO, ROUTE, ROUTE_8, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 + map_header Route12, TILESET_KANTO, ROUTE, ROUTE_12, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 13 + map_header Route10South, TILESET_KANTO, ROUTE, ROUTE_10, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3 + map_header LavenderTown, TILESET_KANTO, TOWN, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_AUTO, 1 map_header LavenderPokeCenter1F, TILESET_POKECENTER, INDOOR, LAVENDER_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 map_header LavenderPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, LAVENDER_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 map_header MrFujisHouse, TILESET_HOUSE_1, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1 @@ -368,8 +368,8 @@ MapGroup18: MapGroup19: - map_header Route28, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_28, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 4 - map_header SilverCaveOutside, TILESET_KANTO_OUTSIDE, TOWN, SILVER_CAVE, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 4 + map_header Route28, TILESET_KANTO, ROUTE, ROUTE_28, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 4 + map_header SilverCaveOutside, TILESET_KANTO, TOWN, SILVER_CAVE, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 4 map_header SilverCavePokeCenter1F, TILESET_POKECENTER, INDOOR, SILVER_CAVE, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 map_header Route28FamousSpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_28, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 @@ -384,10 +384,10 @@ MapGroup20: MapGroup21: - map_header Route7, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_7, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 - map_header Route16, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_16, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 - map_header Route17, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_17, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 0 - map_header CeladonCity, TILESET_KANTO_OUTSIDE, TOWN, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_AUTO, 0 + map_header Route7, TILESET_KANTO, ROUTE, ROUTE_7, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 + map_header Route16, TILESET_KANTO, ROUTE, ROUTE_16, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 + map_header Route17, TILESET_KANTO, ROUTE, ROUTE_17, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 0 + map_header CeladonCity, TILESET_KANTO, TOWN, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_AUTO, 0 map_header CeladonDeptStore1F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 map_header CeladonDeptStore2F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 map_header CeladonDeptStore3F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 @@ -413,9 +413,9 @@ MapGroup21: MapGroup22: - map_header Route40, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_40, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1 - map_header Route41, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_41, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 2 - map_header CianwoodCity, TILESET_JOHTO_OUTSIDE_1, TOWN, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_AUTO, 1 + map_header Route40, TILESET_JOHTO_1, ROUTE, ROUTE_40, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1 + map_header Route41, TILESET_JOHTO_1, ROUTE, ROUTE_41, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 2 + map_header CianwoodCity, TILESET_JOHTO_1, TOWN, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_AUTO, 1 map_header ManiasHouse, TILESET_HOUSE_1, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 map_header CianwoodGym, TILESET_SPROUT_TOWER, INDOOR, CIANWOOD_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 map_header CianwoodPokeCenter1F, TILESET_POKECENTER, INDOOR, CIANWOOD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 @@ -432,9 +432,9 @@ MapGroup22: MapGroup23: - map_header Route2, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_2, MUSIC_ROUTE_2, 0, PALETTE_AUTO, 1 - map_header Route22, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_22, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 4 - map_header ViridianCity, TILESET_KANTO_OUTSIDE, TOWN, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 4 + map_header Route2, TILESET_KANTO, ROUTE, ROUTE_2, MUSIC_ROUTE_2, 0, PALETTE_AUTO, 1 + map_header Route22, TILESET_KANTO, ROUTE, ROUTE_22, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 4 + map_header ViridianCity, TILESET_KANTO, TOWN, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 4 map_header ViridianGym, TILESET_TRAIN_STATION, INDOOR, VIRIDIAN_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 map_header ViridianNicknameSpeechHouse, TILESET_HOUSE_1, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 map_header TrainerHouse1F, TILESET_HOUSE_1, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 @@ -448,10 +448,10 @@ MapGroup23: MapGroup24: - map_header Route26, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_26, MUSIC_ROUTE_26, 0, PALETTE_AUTO, 2 - map_header Route27, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_27, MUSIC_ROUTE_26, 0, PALETTE_AUTO, 2 - map_header Route29, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_29, MUSIC_ROUTE_29, 0, PALETTE_AUTO, 1 - map_header NewBarkTown, TILESET_JOHTO_OUTSIDE_1, TOWN, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_AUTO, 2 + map_header Route26, TILESET_JOHTO_1, ROUTE, ROUTE_26, MUSIC_ROUTE_26, 0, PALETTE_AUTO, 2 + map_header Route27, TILESET_JOHTO_1, ROUTE, ROUTE_27, MUSIC_ROUTE_26, 0, PALETTE_AUTO, 2 + map_header Route29, TILESET_JOHTO_1, ROUTE, ROUTE_29, MUSIC_ROUTE_29, 0, PALETTE_AUTO, 1 + map_header NewBarkTown, TILESET_JOHTO_1, TOWN, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_AUTO, 2 map_header ElmsLab, TILESET_LAB, INDOOR, NEW_BARK_TOWN, MUSIC_PROF_ELM, 0, PALETTE_DAY, 1 map_header KrissHouse1F, TILESET_KRISS_HOUSE, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1 map_header KrissHouse2F, TILESET_KRISS_HOUSE_2F, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1 @@ -464,8 +464,8 @@ MapGroup24: MapGroup25: - map_header Route5, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_5, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 - map_header SaffronCity, TILESET_KANTO_OUTSIDE, TOWN, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 1 + map_header Route5, TILESET_KANTO, ROUTE, ROUTE_5, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 + map_header SaffronCity, TILESET_KANTO, TOWN, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 1 map_header FightingDojo, TILESET_TRAIN_STATION, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 map_header SaffronGym, TILESET_UNDERGROUND, INDOOR, SAFFRON_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 map_header SaffronMart, TILESET_MART, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 @@ -482,9 +482,9 @@ MapGroup25: MapGroup26: - map_header Route30, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_30, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 4 - map_header Route31, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_31, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 4 - map_header CherrygroveCity, TILESET_JOHTO_OUTSIDE_1, TOWN, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_AUTO, 1 + map_header Route30, TILESET_JOHTO_1, ROUTE, ROUTE_30, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 4 + map_header Route31, TILESET_JOHTO_1, ROUTE, ROUTE_31, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 4 + map_header CherrygroveCity, TILESET_JOHTO_1, TOWN, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_AUTO, 1 map_header CherrygroveMart, TILESET_MART, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1 map_header CherrygrovePokeCenter1F, TILESET_POKECENTER, INDOOR, CHERRYGROVE_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 map_header CherrygroveGymSpeechHouse, TILESET_HOUSE_1, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1 diff --git a/predef/cgb.asm b/predef/cgb.asm index e6b0d291e..c267174d2 100644 --- a/predef/cgb.asm +++ b/predef/cgb.asm @@ -34,40 +34,40 @@ Predef_LoadSGBLayoutCGB: ; 8d59 ; 8d7a .jumptable: ; 8d7a - dw Function8db8 - dw Function8ddb - dw Function8eb9 - dw Function8edb - dw Function8f70 - dw Function906e - dw Function90f8 - dw Function9122 - dw Function91ad - dw Function91c8 - dw Function91d1 - dw Function91e4 - dw Function9228 - dw Function9251 - dw Function9373 - dw Function93a6 - dw Function93ba - dw Function9195 - dw Function9499 - dw Function94d0 - dw Function93d3 - dw Function9289 - dw Function903e - dw Function8fca - dw Function925e - dw Function94fa - dw Function9529 - dw Function9555 - dw Function9578 - dw Function9591 - dw Function9542 + dw _CGB00 + dw _CGB01 + dw _CGB02 + dw _CGB03 + dw _CGB04 + dw _CGB05 + dw _CGB06 + dw _CGB07 + dw _CGB08 + dw _CGB09 + dw _CGB0a + dw _CGB0b + dw _CGB0c + dw _CGB0d + dw _CGB0e + dw _CGB0f + dw _CGB10 + dw _CGB11 + dw _CGB12 + dw _CGB13 + dw _CGB14 + dw _CGB15 + dw _CGB16 + dw _CGB17 + dw _CGB18 + dw _CGB19 + dw _CGB1a + dw _CGB1b + dw _CGB1c + dw _CGB1d + dw _CGB1e ; 8db8 -Function8db8: ; 8db8 +_CGB00: ; 8db8 ld hl, PalPacket_9c66 + 1 ld de, wMapPals ld c, $4 @@ -82,7 +82,7 @@ Function8db8: ; 8db8 call CopyPalettes jr Function8e23 -Function8ddb: ; 8ddb +_CGB01: ; 8ddb ld de, wMapPals call Function9729 push hl @@ -126,25 +126,25 @@ Function8e23: ; 8e23 ld a, $2 call ByteFill hlcoord 0, 4, AttrMap - ld bc, $080a + lb bc, 8, 10 ld a, $0 - call Function9663 + call FillBoxCGB hlcoord 10, 0, AttrMap - ld bc, $070a + lb bc, 7, 10 ld a, $1 - call Function9663 + call FillBoxCGB hlcoord 0, 0, AttrMap - ld bc, $040a + lb bc, 4, 10 ld a, $2 - call Function9663 + call FillBoxCGB hlcoord 10, 7, AttrMap - ld bc, $050a + lb bc, 5, 10 ld a, $3 - call Function9663 + call FillBoxCGB hlcoord 10, 11, AttrMap - ld bc, $0109 + lb bc, 1, 9 ld a, $4 - call Function9663 + call FillBoxCGB hlcoord 0, 12, AttrMap ld bc, $0078 ld a, $7 @@ -189,7 +189,7 @@ Function8e9f: ; 8e9f ret ; 8eb9 -Function8eb9: ; 8eb9 +_CGB02: ; 8eb9 ld a, [PlayerGender] bit 0, a jr z, .asm_8ec5 @@ -210,7 +210,7 @@ Function8eb9: ; 8eb9 ret ; 8edb -Function8edb: ; 8edb +_CGB03: ; 8edb ld de, wMapPals ld a, [wcda1] ld l, a @@ -234,25 +234,25 @@ endr call FarCopyWRAM call Function9699 hlcoord 0, 0, AttrMap - ld bc, $0814 + lb bc, 8, SCREEN_WIDTH ld a, $1 - call Function9663 + call FillBoxCGB hlcoord 10, 16, AttrMap ld bc, $000a ld a, $2 call ByteFill hlcoord 13, 5, AttrMap - ld bc, $0202 + lb bc, 2, 2 ld a, $3 - call Function9663 + call FillBoxCGB hlcoord 15, 5, AttrMap - ld bc, $0202 + lb bc, 2, 2 ld a, $4 - call Function9663 + call FillBoxCGB hlcoord 17, 5, AttrMap - ld bc, $0202 + lb bc, 2, 2 ld a, $5 - call Function9663 + call FillBoxCGB call Function96b3 call Function96a4 ld a, $1 @@ -285,7 +285,7 @@ Unknown_8f6a: ; 8f6a RGB 17, 31, 31 ; 8f70 -Function8f70: ; 8f70 +_CGB04: ; 8f70 ld de, wMapPals ld a, $1d call GetAthPalletFromPalettes9df6 @@ -304,9 +304,9 @@ Function8f70: ; 8f70 .asm_8f90 call Function9699 hlcoord 1, 1, AttrMap - ld bc, $0707 + lb bc, 7, 7 ld a, $1 - call Function9663 + call FillBoxCGB call Function971a ld hl, Palette8fc2 ld de, Unkn2Pals + $38 @@ -333,7 +333,7 @@ Palette8fc2: ; 8fc2 RGB 00, 00, 00 ; 8fca -Function8fca: ; 8fca +_CGB17: ; 8fca ld de, wMapPals ld a, $1d call GetAthPalletFromPalettes9df6 @@ -353,9 +353,9 @@ Function8fca: ; 8fca .asm_8fed call Function9699 hlcoord 1, 4, AttrMap - ld bc, $0707 + lb bc, 7, 7 ld a, $1 - call Function9663 + call FillBoxCGB call Function971a call Function96b3 call Function96a4 @@ -376,9 +376,9 @@ Function9009: ; 9009 .asm_901a call Function9699 hlcoord 1, 1, AttrMap - ld bc, $0707 + lb bc, 7, 7 ld a, $1 - call Function9663 + call FillBoxCGB call Function971a call Function96b3 call Function96a4 @@ -394,7 +394,7 @@ Palette9036: ; 9036 RGB 00, 00, 00 ; 903e -Function903e: ; 903e +_CGB16: ; 903e ld de, wMapPals ld a, $1d call GetAthPalletFromPalettes9df6 @@ -404,9 +404,9 @@ Function903e: ; 903e call Function9643 call Function9699 hlcoord 7, 5, AttrMap - ld bc, $0707 + lb bc, 7, 7 ld a, $1 - call Function9663 + call FillBoxCGB call Function971a call Function96b3 call Function96a4 @@ -415,7 +415,7 @@ Function903e: ; 903e ret ; 906e -Function906e: ; 906e +_CGB05: ; 906e ld hl, Palettes_b7a9 ld de, wMapPals ld bc, $0080 @@ -423,41 +423,41 @@ Function906e: ; 906e call FarCopyWRAM call Function9699 hlcoord 0, 2, AttrMap - ld bc, $0a03 + lb bc, 10, 3 ld a, $2 - call Function9663 + call FillBoxCGB hlcoord 17, 2, AttrMap - ld bc, $0a03 + lb bc, 10, 3 ld a, $2 - call Function9663 + call FillBoxCGB hlcoord 0, 4, AttrMap - ld bc, $0603 + lb bc, 6, 3 ld a, $3 - call Function9663 + call FillBoxCGB hlcoord 17, 4, AttrMap - ld bc, $0603 + lb bc, 6, 3 ld a, $3 - call Function9663 + call FillBoxCGB hlcoord 0, 6, AttrMap - ld bc, $0203 + lb bc, 2, 3 ld a, $4 - call Function9663 + call FillBoxCGB hlcoord 17, 6, AttrMap - ld bc, $0203 + lb bc, 2, 3 ld a, $4 - call Function9663 + call FillBoxCGB hlcoord 4, 2, AttrMap - ld bc, $020c + lb bc, 2, 12 ld a, $1 - call Function9663 + call FillBoxCGB hlcoord 3, 2, AttrMap - ld bc, $0a01 + lb bc, 10, 1 ld a, $1 - call Function9663 + call FillBoxCGB hlcoord 16, 2, AttrMap - ld bc, $0a01 + lb bc, 10, 1 ld a, $1 - call Function9663 + call FillBoxCGB hlcoord 0, 12, AttrMap ld bc, $0078 ld a, $7 @@ -469,7 +469,7 @@ Function906e: ; 906e ret ; 90f8 -Function90f8: ; 90f8 +_CGB06: ; 90f8 ld hl, PalPacket_9ca6 + 1 call CopyFourPalettes call Function9699 @@ -478,9 +478,9 @@ Function90f8: ; 90f8 call GetAthPalletFromPalettes9df6 call LoadHLPaletteIntoDE hlcoord 0, 6, AttrMap - ld bc, $0c14 + lb bc, 12, SCREEN_WIDTH ld a, $1 - call Function9663 + call FillBoxCGB call Function96b3 call Function96a4 ld a, $1 @@ -488,7 +488,7 @@ Function90f8: ; 90f8 ret ; 9122 -Function9122: ; 9122 +_CGB07: ; 9122 ld b, 0 ld hl, Jumptable_912d rept 2 @@ -561,7 +561,7 @@ Function9180: ; 9180 ret ; 9195 -Function9195: ; 9195 +_CGB11: ; 9195 ld hl, Palettes_b789 ld de, wMapPals ld bc, $0028 @@ -573,7 +573,7 @@ Function9195: ; 9195 ret ; 91ad -Function91ad: ; 91ad +_CGB08: ; 91ad ld hl, Palettes_b641 ld de, wMapPals ld bc, $0080 @@ -586,14 +586,14 @@ Function91ad: ; 91ad ret ; 91c8 -Function91c8: ; 91c8 +_CGB09: ; 91c8 call Functionb1de ld a, $9 ld [SGBPredef], a ret ; 91d1 -Function91d1: ; 91d1 +_CGB0a: ; 91d1 ld hl, PalPacket_9c56 + 1 call CopyFourPalettes call Function8e9f @@ -603,7 +603,7 @@ Function91d1: ; 91d1 ret ; 91e4 -Function91e4: ; 91e4 +_CGB0b: ; 91e4 ld de, wMapPals ld a, c and a @@ -638,7 +638,7 @@ Function91e4: ; 91e4 ret ; 9228 -Function9228: ; 9228 +_CGB0c: ; 9228 ld hl, Palettes_b6f1 ld de, wMapPals ld bc, $0028 @@ -657,7 +657,7 @@ Function9228: ; 9228 ret ; 9251 -Function9251: ; 9251 +_CGB0d: ; 9251 ld hl, PalPacket_9cb6 + 1 call CopyFourPalettes call Function9699 @@ -665,7 +665,7 @@ Function9251: ; 9251 ret ; 925e -Function925e: ; 925e +_CGB18: ; 925e ld hl, PalPacket_9bc6 + 1 call CopyFourPalettes ld de, Unkn2Pals @@ -688,7 +688,7 @@ Function925e: ; 925e ret ; 9289 -Function9289: ; 9289 +_CGB15: ; 9289 ld de, wMapPals xor a call Function976b @@ -728,7 +728,7 @@ Function9289: ; 9289 .asm_92e3 call ByteFill hlcoord 14, 1, AttrMap - ld bc, $0705 + lb bc, 7, 5 ld a, [PlayerGender] and a ld a, $0 @@ -736,45 +736,45 @@ Function9289: ; 9289 ld a, $1 .asm_92f6 - call Function9663 + call FillBoxCGB hlcoord 18, 1, AttrMap ld [hl], $1 hlcoord 2, 11, AttrMap - ld bc, $0204 + lb bc, 2, 4 ld a, $1 - call Function9663 + call FillBoxCGB hlcoord 6, 11, AttrMap - ld bc, $0204 + lb bc, 2, 4 ld a, $2 - call Function9663 + call FillBoxCGB hlcoord 10, 11, AttrMap - ld bc, $0204 + lb bc, 2, 4 ld a, $3 - call Function9663 + call FillBoxCGB hlcoord 14, 11, AttrMap - ld bc, $0204 + lb bc, 2, 4 ld a, $4 - call Function9663 + call FillBoxCGB hlcoord 2, 14, AttrMap - ld bc, $0204 + lb bc, 2, 4 ld a, $5 - call Function9663 + call FillBoxCGB hlcoord 6, 14, AttrMap - ld bc, $0204 + lb bc, 2, 4 ld a, $6 - call Function9663 + call FillBoxCGB hlcoord 10, 14, AttrMap - ld bc, $0204 + lb bc, 2, 4 ld a, $7 - call Function9663 + call FillBoxCGB ld a, [PlayerGender] and a push af jr z, .asm_935d hlcoord 14, 14, AttrMap - ld bc, $0204 + lb bc, 2, 4 ld a, $1 - call Function9663 + call FillBoxCGB .asm_935d pop af @@ -793,7 +793,7 @@ Function9289: ; 9289 ret ; 9373 -Function9373: ; 9373 +_CGB0e: ; 9373 ld de, wMapPals ld a, $10 call GetAthPalletFromPalettes9df6 @@ -809,9 +809,9 @@ endr call Function9643 call Function9699 hlcoord 11, 1, AttrMap - ld bc, $0209 + lb bc, 2, 9 ld a, $1 - call Function9663 + call FillBoxCGB call Function96b3 call Function96a4 ld a, $1 @@ -819,7 +819,7 @@ endr ret ; 93a6 -Function93a6: ; 93a6 +_CGB0f: ; 93a6 ld hl, PalPacket_9c46 + 1 call CopyFourPalettes call Function9699 @@ -830,7 +830,7 @@ Function93a6: ; 93a6 ret ; 93ba -Function93ba: ; 93ba +_CGB10: ; 93ba ld de, wMapPals ld a, $1d call GetAthPalletFromPalettes9df6 @@ -843,7 +843,7 @@ Function93ba: ; 93ba ret ; 93d3 -Function93d3: ; 93d3 +_CGB14: ; 93d3 ld a, [BattleType] cp BATTLETYPE_TUTORIAL jr z, .asm_93e6 @@ -865,25 +865,25 @@ Function93d3: ; 93d3 call FarCopyWRAM call Function9699 hlcoord 0, 0, AttrMap - ld bc, $010a + lb bc, 1, 10 ld a, $1 - call Function9663 + call FillBoxCGB hlcoord 10, 0, AttrMap - ld bc, $010a + lb bc, 1, 10 ld a, $2 - call Function9663 + call FillBoxCGB hlcoord 7, 2, AttrMap - ld bc, $0901 + lb bc, 9, 1 ld a, $3 - call Function9663 + call FillBoxCGB hlcoord 0, 7, AttrMap - ld bc, $0305 + lb bc, 3, 5 ld a, $4 - call Function9663 + call FillBoxCGB hlcoord 0, 3, AttrMap - ld bc, $0305 + lb bc, 3, 5 ld a, $5 - call Function9663 + call FillBoxCGB call Function96b3 call Function96a4 ld a, $1 @@ -945,8 +945,8 @@ Palettes_9469: ; 9469 RGB 00, 00, 00 ; 9499 -Function9499: ; 9499 - call Function91c8 +_CGB12: ; 9499 + call _CGB09 ld de, $0014 hlcoord 0, 0, AttrMap ld a, [wMenuBorderTopCoord] @@ -975,23 +975,23 @@ Function9499: ; 9499 inc a ld c, a ld a, $0 - call Function9663 + call FillBoxCGB call Function96b3 ret ; 94d0 -Function94d0: ; 94d0 +_CGB13: ; 94d0 ld hl, PalPacket_9ba6 + 1 call CopyFourPalettes call Function9699 hlcoord 0, 4, AttrMap - ld bc, $0a14 + lb bc, 10, SCREEN_WIDTH ld a, $2 - call Function9663 + call FillBoxCGB hlcoord 0, 6, AttrMap - ld bc, $0614 + lb bc, 6, SCREEN_WIDTH ld a, $1 - call Function9663 + call FillBoxCGB call Function96b3 call Function96a4 ld a, $1 @@ -999,7 +999,7 @@ Function94d0: ; 94d0 ret ; 94fa -Function94fa: ; 94fa +_CGB19: ; 94fa ld de, wMapPals ld a, $4e call GetAthPalletFromPalettes9df6 @@ -1023,7 +1023,7 @@ Palette_9521: ; 9521 RGB 00, 00, 00 ; 9529 -Function9529: ; 9529 +_CGB1a: ; 9529 ld de, wMapPals ld a, [CurPartySpecies] ld bc, TempMonDVs @@ -1035,7 +1035,7 @@ Function9529: ; 9529 ret ; 9542 -Function9542: ; 9542 +_CGB1e: ; 9542 ld de, wMapPals ld a, [CurPartySpecies] call Function9775 @@ -1045,7 +1045,7 @@ Function9542: ; 9542 ret ; 9555 -Function9555: ; 9555 +_CGB1b: ; 9555 ld hl, PalPacket_9cc6 + 1 call CopyFourPalettes ld hl, Palettes_b681 @@ -1061,7 +1061,7 @@ Function9555: ; 9555 ret ; 9578 -Function9578: ; 9578 +_CGB1c: ; 9578 ld de, wMapPals ld a, [CurPartySpecies] ld bc, TempMonDVs @@ -1073,7 +1073,7 @@ Function9578: ; 9578 ret ; 9591 -Function9591: ; 9591 +_CGB1d: ; 9591 ld hl, Palette95e0 ld de, wMapPals ld bc, $0010 @@ -1082,25 +1082,25 @@ Function9591: ; 9591 call Function96a4 call Function9699 hlcoord 3, 7, AttrMap - ld bc, $080e + lb bc, 8, 14 ld a, $1 - call Function9663 + call FillBoxCGB hlcoord 1, 5, AttrMap - ld bc, $0112 + lb bc, 1, 18 ld a, $1 - call Function9663 + call FillBoxCGB hlcoord 1, 16, AttrMap - ld bc, $0112 + lb bc, 1, 18 ld a, $1 - call Function9663 + call FillBoxCGB hlcoord 0, 0, AttrMap - ld bc, $1102 + lb bc, 17, 2 ld a, $1 - call Function9663 + call FillBoxCGB hlcoord 18, 5, AttrMap - ld bc, $0c01 + lb bc, 12, 1 ld a, $1 - call Function9663 + call FillBoxCGB call Function96b3 ret ; 95e0 diff --git a/predef/sgb.asm b/predef/sgb.asm index 12038da24..94d553343 100644 --- a/predef/sgb.asm +++ b/predef/sgb.asm @@ -33,12 +33,12 @@ Predef_LoadSGBLayout: ; 864c dw .SGB05 dw .SGB06 dw .SGB07 - dw .SGB08_1d + dw .SGB08 dw .SGB09 dw .SGB0a dw .SGB0b dw .SGB0c - dw .SGB0d_15 + dw .SGB0d dw .SGB0e dw .SGB0f dw .SGB10 @@ -46,7 +46,7 @@ Predef_LoadSGBLayout: ; 864c dw .SGB12 dw .SGB13 dw .SGB14 - dw .SGB0d_15 + dw .SGB15 dw .SGB16 dw .SGB17 dw .SGB18 @@ -54,7 +54,7 @@ Predef_LoadSGBLayout: ; 864c dw .SGB1a dw .SGB1b dw .SGB1c - dw .SGB08_1d + dw .SGB1d dw .SGB1e ; 86ad @@ -67,10 +67,12 @@ Predef_LoadSGBLayout: ; 864c .SGB01: ; 86b4 ld hl, BlkPacket_9aa6 call Function9809 + ld hl, PalPacket_9ce6 ld de, wcda9 ld bc, $0010 call CopyBytes + ld a, [PlayerHPPal] ld l, a ld h, 0 @@ -79,6 +81,7 @@ rept 2 endr ld de, Palettes_a8be add hl, de + ld a, [hli] ld [wcda9 + 3], a ld a, [hli] @@ -87,12 +90,14 @@ endr ld [wcda9 + 5], a ld a, [hl] ld [wcda9 + 6], a + ld a, [EnemyHPPal] ld l, a ld h, $0 rept 2 add hl, hl endr + ld de, Palettes_a8be add hl, de ld a, [hli] @@ -103,11 +108,14 @@ endr ld [wcda9 + 11], a ld a, [hl] ld [wcda9 + 12], a + ld hl, PalPacket_9cf6 ld de, wcda9 + $10 ld bc, $0010 call CopyBytes + call Function9729 + ld a, [hli] ld [wcda9 + $13], a ld a, [hli] @@ -125,6 +133,7 @@ endr ld [wcda9 + $1b], a ld a, [hl] ld [wcda9 + $1c], a + ld hl, wcda9 ld de, wcda9 + $10 ld a, $1 @@ -137,11 +146,13 @@ endr ld de, wcda9 ld bc, $0010 call CopyBytes + ld hl, wcda9 + 1 ld [hl], $10 rept 2 inc hl endr + ld a, [PlayerHPPal] add $2f ld [hl], a @@ -298,7 +309,8 @@ endr ret ; 8860 -.SGB08_1d: ; 8860 +.SGB08: +.SGB1d: ; 8860 ld hl, PalPacket_9cb6 ld de, BlkPacket_9a86 ret @@ -414,7 +426,8 @@ endr ret ; 891a -.SGB0d_15: ; 891a +.SGB0d: +.SGB15: ; 891a ld hl, PalPacket_9cb6 ld de, BlkPacket_9a86 ret diff --git a/wram.asm b/wram.asm index d4b4fe8c2..f7b62e722 100644 --- a/wram.asm +++ b/wram.asm @@ -357,7 +357,7 @@ TilePermissions:: ; c2fe ds 1 -SECTION "PARTY ICONS", WRAM0 [$c300] +SECTION "c300", WRAM0 [$c300] ; wc300 - wc313 is a 10x2 dictionary. wDict_c300:: ds 10 * 2 ds wDict_c300 - @ @@ -392,9 +392,10 @@ wc364:: ds 16 ; c364 wc374:: ds 16 ; c374 wc384:: ds 16 ; c384 wc394:: ds 16 ; c394 -wc3a4:: ds 8 ; c3a4 -wc3ac:: ds 8 ; c3ac +wc3a4:: ds 16 ; c3a4 ; wPartyMonMenuIconAnimsEnd:: + ds -8 +wc3ac:: ds 8 ; c3ac wc3b4:: ds 1 ; something to do with wc314 wc3b5:: ds 1 @@ -411,6 +412,8 @@ wc3bd:: ds 1 wc3be:: ds 1 wc3bf:: ds 1 wc3c0:: ds 1 +; wc300_data_end + wc3c1:: ds 11 wc3cc:: ds 1 wc3cd:: ds 31 @@ -672,6 +675,7 @@ PlayerSpdLevel:: ; c6ce PlayerSAtkLevel:: ; c6cf ds 1 wc6d0:: +wPokedexDataStart:: PlayerSDefLevel:: ; c6d0 ds 1 wc6d1:: @@ -906,8 +910,8 @@ wc7d0:: ds 1 wc7d1:: ds 1 wc7d2:: ds 1 wc7d3:: ds 1 -wc7d4:: ds 1 -wc7d5:: ds 1 +wc7d4:: ds 1 ; Index of the topmost visible item in a scrolling menu +wc7d5:: ds 1 ; Which row the cursor is at in a scrolling menu (0-6) wc7d6:: ds 1 wc7d7:: ds 1 wc7d8:: ds 1 @@ -925,8 +929,14 @@ wc7e3:: ds 1 wc7e4:: ds 1 IF DEF(CRYSTAL11) wPokedexStatus:: +ELSE +wPokedexDataEnd:: ENDC - ds 3 + ds 1 +IF DEF(CRYSTAL11) +wPokedexDataEnd:: +ENDC + ds 2 wMiscEnd:: @@ -1694,11 +1704,14 @@ wd14b:: ds 1 wd14c:: ds 1 ; used in FollowNotExact wd14d:: ds 1 ; used in FollowNotExact +; Player movement wd14e:: ds 1 wd14f:: ds 1 wd150:: ds 1 wd151:: ds 1 +wBGMapAnchorLo:: wd152:: ds 1 +wBGMapAnchorHi:: wd153:: ds 1 UsedSprites:: ds 64 @@ -2174,8 +2187,8 @@ object_struct: MACRO \1Action:: ds 1 \1Object12:: ds 1 \1Facing:: ds 1 -\1StandingTile:: ds 1 -\1NextTile:: ds 1 +\1StandingTile:: ds 1 ; collision +\1NextTile:: ds 1 ; collision \1MapX:: ds 1 \1MapY:: ds 1 \1NextMapX:: ds 1 @@ -2262,17 +2275,31 @@ CurTimeOfDay:: ; d848 wSecretID:: ds 1 wd84b:: ds 1 StatusFlags:: ; d84c + ; 0 - pokedex + ; 1 - unown dex + ; 2 - + ; 3 - pokerus + ; 4 - rocket signal + ; 5 - wild encounters on/off + ; 6 - hall of fame + ; 7 - bug contest on ds 1 StatusFlags2:: ; d84d + ; 0 - rockets + ; 1 - + ; 2 - bug contest timer + ; 3 - + ; 4 - bike shop call + ; 5 - pokerus + ; 6 - berry juice? + ; 7 - rockets in mahogany ds 1 Money:: ; d84e ds 3 -wd851:: wMomsMoney:: ; d851 ds 3 -wBankOfMomMode:: wMomSavingMoney:: ; d854 ds 1 From 21276b79f12fa8e261e63f7ddba0cdfb2391c0f9 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 13 Nov 2015 10:48:49 -0500 Subject: [PATCH 02/40] SpriteAnim --- constants/misc_constants.asm | 117 ++++++++++++++------- engine/breeding/egg.asm | 8 +- engine/dummy_game.asm | 2 +- engine/evolution_animation.asm | 2 +- engine/flypoints.asm | 4 +- engine/link.asm | 12 +-- engine/namingscreen.asm | 18 ++-- engine/slot_machine.asm | 18 ++-- engine/sprites.asm | 93 +++++++++-------- home.asm | 6 +- main.asm | 183 +++++++++++++++++---------------- misc/battle_tower_47.asm | 24 ++--- misc/mobile_42.asm | 62 +++++------ misc/mobile_45.asm | 4 +- misc/mobile_5c.asm | 12 +-- wram.asm | 53 +++++++--- 16 files changed, 347 insertions(+), 271 deletions(-) diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 108eda873..4991daf0a 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -189,38 +189,85 @@ NUM_KANTO_BADGES EQU const_value NUM_BADGES EQU NUM_JOHTO_BADGES + NUM_KANTO_BADGES const_def - const JUMPTABLE_8D24B_FUNCTION_00 - const JUMPTABLE_8D24B_FUNCTION_01 - const JUMPTABLE_8D24B_FUNCTION_02 - const JUMPTABLE_8D24B_FUNCTION_03 - const JUMPTABLE_8D24B_FUNCTION_04 - const JUMPTABLE_8D24B_FUNCTION_05 - const JUMPTABLE_8D24B_FUNCTION_06 - const JUMPTABLE_8D24B_FUNCTION_07 - const JUMPTABLE_8D24B_FUNCTION_08 - const JUMPTABLE_8D24B_FUNCTION_09 - const JUMPTABLE_8D24B_FUNCTION_0A - const JUMPTABLE_8D24B_FUNCTION_0B - const JUMPTABLE_8D24B_FUNCTION_0C - const JUMPTABLE_8D24B_FUNCTION_0D - const JUMPTABLE_8D24B_FUNCTION_0E - const JUMPTABLE_8D24B_FUNCTION_0F - const JUMPTABLE_8D24B_FUNCTION_10 - const JUMPTABLE_8D24B_FUNCTION_11 - const JUMPTABLE_8D24B_FUNCTION_12 - const JUMPTABLE_8D24B_FUNCTION_13 - const JUMPTABLE_8D24B_FUNCTION_14 - const JUMPTABLE_8D24B_FUNCTION_15 - const JUMPTABLE_8D24B_FUNCTION_16 - const JUMPTABLE_8D24B_FUNCTION_17 - const JUMPTABLE_8D24B_FUNCTION_18 - const JUMPTABLE_8D24B_FUNCTION_19 - const JUMPTABLE_8D24B_FUNCTION_1A - const JUMPTABLE_8D24B_FUNCTION_1B - const JUMPTABLE_8D24B_FUNCTION_1C - const JUMPTABLE_8D24B_FUNCTION_1D - const JUMPTABLE_8D24B_FUNCTION_1E - const JUMPTABLE_8D24B_FUNCTION_1F - const JUMPTABLE_8D24B_FUNCTION_20 - const JUMPTABLE_8D24B_FUNCTION_21 - const JUMPTABLE_8D24B_FUNCTION_22 + const SPRITE_ANIM_SEQ_00 + const SPRITE_ANIM_SEQ_01 + const SPRITE_ANIM_SEQ_02 + const SPRITE_ANIM_SEQ_03 + const SPRITE_ANIM_SEQ_04 + const SPRITE_ANIM_SEQ_05 + const SPRITE_ANIM_SEQ_06 + const SPRITE_ANIM_SEQ_07 + const SPRITE_ANIM_SEQ_08 + const SPRITE_ANIM_SEQ_09 + const SPRITE_ANIM_SEQ_0A + const SPRITE_ANIM_SEQ_0B + const SPRITE_ANIM_SEQ_0C + const SPRITE_ANIM_SEQ_0D + const SPRITE_ANIM_SEQ_0E + const SPRITE_ANIM_SEQ_0F + const SPRITE_ANIM_SEQ_10 + const SPRITE_ANIM_SEQ_11 + const SPRITE_ANIM_SEQ_12 + const SPRITE_ANIM_SEQ_13 + const SPRITE_ANIM_SEQ_14 + const SPRITE_ANIM_SEQ_15 + const SPRITE_ANIM_SEQ_16 + const SPRITE_ANIM_SEQ_17 + const SPRITE_ANIM_SEQ_18 + const SPRITE_ANIM_SEQ_19 + const SPRITE_ANIM_SEQ_1A + const SPRITE_ANIM_SEQ_1B + const SPRITE_ANIM_SEQ_1C + const SPRITE_ANIM_SEQ_1D + const SPRITE_ANIM_SEQ_1E + const SPRITE_ANIM_SEQ_1F + const SPRITE_ANIM_SEQ_20 + const SPRITE_ANIM_SEQ_21 + const SPRITE_ANIM_SEQ_22 + + const_def + const SPRITE_ANIM_INDEX_00 + const SPRITE_ANIM_INDEX_01 + const SPRITE_ANIM_INDEX_02 + const SPRITE_ANIM_INDEX_03 + const SPRITE_ANIM_INDEX_04 + const SPRITE_ANIM_INDEX_05 + const SPRITE_ANIM_INDEX_06 + const SPRITE_ANIM_INDEX_07 + const SPRITE_ANIM_INDEX_08 + const SPRITE_ANIM_INDEX_09 + const SPRITE_ANIM_INDEX_0A + const SPRITE_ANIM_INDEX_0B + const SPRITE_ANIM_INDEX_0C + const SPRITE_ANIM_INDEX_0D + const SPRITE_ANIM_INDEX_0E + const SPRITE_ANIM_INDEX_0F + const SPRITE_ANIM_INDEX_10 + const SPRITE_ANIM_INDEX_11 + const SPRITE_ANIM_INDEX_12 + const SPRITE_ANIM_INDEX_13 + const SPRITE_ANIM_INDEX_14 + const SPRITE_ANIM_INDEX_15 + const SPRITE_ANIM_INDEX_16 + const SPRITE_ANIM_INDEX_17 + const SPRITE_ANIM_INDEX_18 + const SPRITE_ANIM_INDEX_19 + const SPRITE_ANIM_INDEX_1A + const SPRITE_ANIM_INDEX_1B + const SPRITE_ANIM_INDEX_1C + const SPRITE_ANIM_INDEX_1D + const SPRITE_ANIM_INDEX_1E + const SPRITE_ANIM_INDEX_1F + const SPRITE_ANIM_INDEX_20 + const SPRITE_ANIM_INDEX_21 + const SPRITE_ANIM_INDEX_22 + const SPRITE_ANIM_INDEX_23 + const SPRITE_ANIM_INDEX_24 + const SPRITE_ANIM_INDEX_25 + const SPRITE_ANIM_INDEX_26 + const SPRITE_ANIM_INDEX_27 + const SPRITE_ANIM_INDEX_28 + const SPRITE_ANIM_INDEX_29 + const SPRITE_ANIM_INDEX_2A + const SPRITE_ANIM_INDEX_2B + const SPRITE_ANIM_INDEX_2C diff --git a/engine/breeding/egg.asm b/engine/breeding/egg.asm index 7c4d8ba62..8798233a1 100755 --- a/engine/breeding/egg.asm +++ b/engine/breeding/egg.asm @@ -792,8 +792,8 @@ Function1736d: ; 1736d (5:736d) add $4c ld d, a ld e, $58 - ld a, $19 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_19 + call _InitSpriteAnimStruct ld hl, $3 add hl, bc ld [hl], $0 @@ -821,8 +821,8 @@ Function173b3: ; 173b3 (5:73b3) ld b, a push hl push bc - ld a, $1c - call Function3b2a + ld a, SPRITE_ANIM_INDEX_1C + call _InitSpriteAnimStruct ld hl, $3 add hl, bc ld [hl], $0 diff --git a/engine/dummy_game.asm b/engine/dummy_game.asm index 86d505e0e..72a8e3a80 100755 --- a/engine/dummy_game.asm +++ b/engine/dummy_game.asm @@ -123,7 +123,7 @@ Functione1f1c: ; e1f1c .asm_e1f30 ld de, $341c ld a, $c - call Function3b2a + call _InitSpriteAnimStruct ld a, $5 ld [wc702], a ld hl, wJumptableIndex diff --git a/engine/evolution_animation.asm b/engine/evolution_animation.asm index 69e7aec4c..ce7dbd7f5 100755 --- a/engine/evolution_animation.asm +++ b/engine/evolution_animation.asm @@ -321,7 +321,7 @@ Function4e7e8: ; 4e7e8 push de ld de, $4858 ld a, $13 - call Function3b2a + call _InitSpriteAnimStruct ld hl, $b add hl, bc ld a, [wJumptableIndex] diff --git a/engine/flypoints.asm b/engine/flypoints.asm index 0eb49d70e..f56facf09 100755 --- a/engine/flypoints.asm +++ b/engine/flypoints.asm @@ -828,7 +828,7 @@ TownMapMon: ; 91f7b ; Animation/palette ld de, 0 ld a, $0 - call Function3b2a + call _InitSpriteAnimStruct ld hl, 3 add hl, bc @@ -869,7 +869,7 @@ TownMapPlayerIcon: ; 91fa6 ld b, $1e ; Female .asm_91fd3 ld a, b - call Function3b2a + call _InitSpriteAnimStruct ld hl, $3 add hl, bc diff --git a/engine/link.asm b/engine/link.asm index a1fa0661b..c50a6ff42 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -2388,14 +2388,14 @@ Function2914e: ; 2914e call Function2985a pop de ld a, $11 - call Function3b2a + call _InitSpriteAnimStruct ld hl, $b add hl, bc pop bc ld [hl], b pop de ld a, $12 - call Function3b2a + call _InitSpriteAnimStruct ld hl, $b add hl, bc pop bc @@ -3082,7 +3082,7 @@ Function29611: ; 29611 Function2961b: ; 2961b lb de, $54, $58 ld a, $e - call Function3b2a + call _InitSpriteAnimStruct call Function29114 ld a, $20 ld [wcf64], a @@ -3092,7 +3092,7 @@ Function2961b: ; 2961b Function2962c: ; 2962c lb de, $54, $58 ld a, $e - call Function3b2a + call _InitSpriteAnimStruct ld hl, $b add hl, bc ld [hl], $1 @@ -3108,7 +3108,7 @@ Function2962c: ; 2962c Function29649: ; 29649 lb de, $54, $58 ld a, $f - call Function3b2a + call _InitSpriteAnimStruct call Function29114 ld a, $10 ld [wcf64], a @@ -3122,7 +3122,7 @@ Function29660: ; 29660 call Functioncf8 lb de, $28, $58 ld a, $10 - call Function3b2a + call _InitSpriteAnimStruct call Function29114 ld a, $40 ld [wcf64], a diff --git a/engine/namingscreen.asm b/engine/namingscreen.asm index 21ec969b4..3b381a016 100755 --- a/engine/namingscreen.asm +++ b/engine/namingscreen.asm @@ -173,9 +173,9 @@ Function117f5: ; 117f5 (4:57f5) ld hl, wc300 ld [hli], a ld [hl], a - ld de, $2420 - ld a, $a - call Function3b2a + lb de, $24, $20 + ld a, SPRITE_ANIM_INDEX_0A + call _InitSpriteAnimStruct ld hl, $1 add hl, bc ld [hl], $0 @@ -220,18 +220,18 @@ Function11847: ; 11847 (4:5847) ld [hli], a ld [hl], a pop de - ld b, $a + ld b, SPRITE_ANIM_INDEX_0A ld a, d cp $7a jr nz, .asm_11873 ld a, e cp $40 jr nz, .asm_11873 - ld b, $1e + ld b, SPRITE_ANIM_INDEX_1E .asm_11873 ld a, b - ld de, $2420 - call Function3b2a + lb de, $24, $20 + call _InitSpriteAnimStruct ret Function1187b: ; 1187b (4:587b) @@ -405,8 +405,8 @@ Function1197b: ; 1197b (4:597b) jr nz, .asm_11985 ld d, $40 .asm_11985 - ld a, $2 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_02 + call _InitSpriteAnimStruct ld a, c ld [wc6d5], a ld a, b diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm index 075b1ba78..8318942fe 100755 --- a/engine/slot_machine.asm +++ b/engine/slot_machine.asm @@ -1037,9 +1037,9 @@ Function92d20: ; 92d20 call Function92fc0 push bc push af - ld de, $6068 - ld a, $6 - call Function3b2a + lb de, $60, $68 + ld a, SPRITE_ANIM_INDEX_06 + call _InitSpriteAnimStruct ld hl, $e add hl, bc pop af @@ -1096,9 +1096,9 @@ Function92d7e: ; 92d7e add hl, bc ld [hl], $0 push bc - ld de, $6000 - ld a, $7 - call Function3b2a + lb de, $60, $00 + ld a, SPRITE_ANIM_INDEX_07 + call _InitSpriteAnimStruct pop bc xor a ld [wcf64], a @@ -2063,9 +2063,9 @@ Function932fc: ; 932fc (24:72fc) add hl, bc dec [hl] push bc - ld de, $606c - ld a, $8 - call Function3b2a + lb de, $60, $6c + ld a, SPRITE_ANIM_INDEX_08 + call _InitSpriteAnimStruct pop bc ret ; 93316 (24:7316) diff --git a/engine/sprites.asm b/engine/sprites.asm index 82c50f743..38b8ed82f 100755 --- a/engine/sprites.asm +++ b/engine/sprites.asm @@ -113,7 +113,7 @@ Function8cfa8: ; 8cfa8 (23:4fa8) .done ret -Function8cfd6:: ; 8cfd6 +InitSpriteAnimStruct:: ; 8cfd6 ; Find if there's any room in the wc314 array, which is 10x16 push de push af @@ -235,7 +235,6 @@ Function8d03d: ; 8d03d (23:503d) Function8d04c: ; 8d04c -; Populate Sprites with the bouncing mon icons call Function8d0ec ; init WRAM call Function8d132 ; read from a memory array cp -3 @@ -539,51 +538,51 @@ endr ; 8d1c4 Unknown_8d1c4: ; 8d1c4 - db $01, JUMPTABLE_8D24B_FUNCTION_01, $00 ; 00 - db $07, JUMPTABLE_8D24B_FUNCTION_04, $00 ; 01 - db $08, JUMPTABLE_8D24B_FUNCTION_05, $05 ; 02 - db $0a, JUMPTABLE_8D24B_FUNCTION_06, $00 ; 03 - db $0b, JUMPTABLE_8D24B_FUNCTION_07, $06 ; 04 - db $0c, JUMPTABLE_8D24B_FUNCTION_08, $06 ; 05 - db $0d, JUMPTABLE_8D24B_FUNCTION_09, $07 ; 06 - db $0e, JUMPTABLE_8D24B_FUNCTION_0A, $07 ; 07 - db $10, JUMPTABLE_8D24B_FUNCTION_0B, $07 ; 08 - db $08, JUMPTABLE_8D24B_FUNCTION_0C, $05 ; 09 - db $11, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 0a - db $12, JUMPTABLE_8D24B_FUNCTION_0D, $08 ; 0b - db $12, JUMPTABLE_8D24B_FUNCTION_0E, $08 ; 0c - db $12, JUMPTABLE_8D24B_FUNCTION_0F, $08 ; 0d - db $13, JUMPTABLE_8D24B_FUNCTION_10, $00 ; 0e - db $15, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 0f - db $16, JUMPTABLE_8D24B_FUNCTION_11, $00 ; 10 - db $17, JUMPTABLE_8D24B_FUNCTION_12, $00 ; 11 - db $18, JUMPTABLE_8D24B_FUNCTION_12, $00 ; 12 - db $19, JUMPTABLE_8D24B_FUNCTION_13, $00 ; 13 - db $1a, JUMPTABLE_8D24B_FUNCTION_14, $00 ; 14 - db $1b, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 15 - db $1d, JUMPTABLE_8D24B_FUNCTION_15, $00 ; 16 - db $1e, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 17 - db $1d, JUMPTABLE_8D24B_FUNCTION_17, $00 ; 18 - db $1f, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 19 - db $24, JUMPTABLE_8D24B_FUNCTION_19, $00 ; 1a - db $25, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1b - db $20, JUMPTABLE_8D24B_FUNCTION_13, $00 ; 1c - db $26, JUMPTABLE_8D24B_FUNCTION_1A, $00 ; 1d - db $2d, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1e - db $2e, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1f - db $2f, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 20 - db $30, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 21 - db $31, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 22 - db $32, JUMPTABLE_8D24B_FUNCTION_1B, $00 ; 23 - db $33, JUMPTABLE_8D24B_FUNCTION_1C, $00 ; 24 - db $34, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 25 - db $35, JUMPTABLE_8D24B_FUNCTION_1D, $00 ; 26 - db $37, JUMPTABLE_8D24B_FUNCTION_1E, $00 ; 27 - db $38, JUMPTABLE_8D24B_FUNCTION_1E, $00 ; 28 - db $39, JUMPTABLE_8D24B_FUNCTION_20, $00 ; 29 - db $3f, JUMPTABLE_8D24B_FUNCTION_21, $00 ; 2a - db $3e, JUMPTABLE_8D24B_FUNCTION_22, $00 ; 2b - db $40, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 2c + db $01, SPRITE_ANIM_SEQ_01, $00 ; 00 + db $07, SPRITE_ANIM_SEQ_04, $00 ; 01 + db $08, SPRITE_ANIM_SEQ_05, $05 ; 02 + db $0a, SPRITE_ANIM_SEQ_06, $00 ; 03 + db $0b, SPRITE_ANIM_SEQ_07, $06 ; 04 + db $0c, SPRITE_ANIM_SEQ_08, $06 ; 05 + db $0d, SPRITE_ANIM_SEQ_09, $07 ; 06 + db $0e, SPRITE_ANIM_SEQ_0A, $07 ; 07 + db $10, SPRITE_ANIM_SEQ_0B, $07 ; 08 + db $08, SPRITE_ANIM_SEQ_0C, $05 ; 09 + db $11, SPRITE_ANIM_SEQ_00, $00 ; 0a + db $12, SPRITE_ANIM_SEQ_0D, $08 ; 0b + db $12, SPRITE_ANIM_SEQ_0E, $08 ; 0c + db $12, SPRITE_ANIM_SEQ_0F, $08 ; 0d + db $13, SPRITE_ANIM_SEQ_10, $00 ; 0e + db $15, SPRITE_ANIM_SEQ_00, $00 ; 0f + db $16, SPRITE_ANIM_SEQ_11, $00 ; 10 + db $17, SPRITE_ANIM_SEQ_12, $00 ; 11 + db $18, SPRITE_ANIM_SEQ_12, $00 ; 12 + db $19, SPRITE_ANIM_SEQ_13, $00 ; 13 + db $1a, SPRITE_ANIM_SEQ_14, $00 ; 14 + db $1b, SPRITE_ANIM_SEQ_00, $00 ; 15 + db $1d, SPRITE_ANIM_SEQ_15, $00 ; 16 + db $1e, SPRITE_ANIM_SEQ_00, $00 ; 17 + db $1d, SPRITE_ANIM_SEQ_17, $00 ; 18 + db $1f, SPRITE_ANIM_SEQ_00, $00 ; 19 + db $24, SPRITE_ANIM_SEQ_19, $00 ; 1a + db $25, SPRITE_ANIM_SEQ_00, $00 ; 1b + db $20, SPRITE_ANIM_SEQ_13, $00 ; 1c + db $26, SPRITE_ANIM_SEQ_1A, $00 ; 1d + db $2d, SPRITE_ANIM_SEQ_00, $00 ; 1e + db $2e, SPRITE_ANIM_SEQ_00, $00 ; 1f + db $2f, SPRITE_ANIM_SEQ_00, $00 ; 20 + db $30, SPRITE_ANIM_SEQ_00, $00 ; 21 + db $31, SPRITE_ANIM_SEQ_00, $00 ; 22 + db $32, SPRITE_ANIM_SEQ_1B, $00 ; 23 + db $33, SPRITE_ANIM_SEQ_1C, $00 ; 24 + db $34, SPRITE_ANIM_SEQ_00, $00 ; 25 + db $35, SPRITE_ANIM_SEQ_1D, $00 ; 26 + db $37, SPRITE_ANIM_SEQ_1E, $00 ; 27 + db $38, SPRITE_ANIM_SEQ_1E, $00 ; 28 + db $39, SPRITE_ANIM_SEQ_20, $00 ; 29 + db $3f, SPRITE_ANIM_SEQ_21, $00 ; 2a + db $3e, SPRITE_ANIM_SEQ_22, $00 ; 2b + db $40, SPRITE_ANIM_SEQ_00, $00 ; 2c ; 8d24b diff --git a/home.asm b/home.asm index d4ec46de4..8995d45d8 100644 --- a/home.asm +++ b/home.asm @@ -2016,17 +2016,17 @@ Function3b0c:: ; 3b0c -Function3b2a:: ; 3b2a +_InitSpriteAnimStruct:: ; 3b2a ld [wc3b8], a ld a, [hROMBank] push af - ld a, BANK(Function8cfd6) + ld a, BANK(InitSpriteAnimStruct) rst Bankswitch ld a, [wc3b8] - call Function8cfd6 + call InitSpriteAnimStruct pop af rst Bankswitch diff --git a/main.asm b/main.asm index c4a4eb095..628f04794 100644 --- a/main.asm +++ b/main.asm @@ -1392,8 +1392,8 @@ Function639b: ; unreferenced ld a, [wcf65] and $3 ret nz - ld bc, wc3a4 - ld hl, $a + ld bc, SpriteAnim10 + ld hl, SpriteAnim10FrameIndex - SpriteAnim10 add hl, bc ; over-the-top compicated way to load wc3ae into hl ld l, [hl] ld h, 0 @@ -1418,18 +1418,19 @@ endr ret z ld e, a ld d, [hl] - ld a, $1 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_01 + call _InitSpriteAnimStruct ret ; 63ca Data63ca: ; 63ca - dw $505c, 0 - dw $685c, $585c - dw $685c, $785c - dw $885c, $785c - dw 0, $785c - dw 0, $585c +; frame 0 y, x; frame 1 y, x + db $5c, $50, $00, $00 + db $5c, $68, $5c, $58 + db $5c, $68, $5c, $78 + db $5c, $88, $5c, $78 + db $00, $00, $5c, $78 + db $00, $00, $5c, $58 ; 63e2 Copyright: ; 63e2 @@ -10421,9 +10422,9 @@ Function11e9a: ; 11e9a (4:5e9a) ld hl, wc300 ld [hli], a ld [hl], a - ld de, $1810 - ld a, $0 - call Function3b2a + lb de, $18, $10 + ld a, SPRITE_ANIM_INDEX_00 + call _InitSpriteAnimStruct ld hl, $2 add hl, bc ld [hl], $0 @@ -10554,8 +10555,8 @@ Jumptable_12017: ; 12017 (4:6017) Function1201b: ; 1201b (4:601b) lb de, $48, $10 - ld a, $9 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_09 + call _InitSpriteAnimStruct ld a, c ld [wc6d5], a ld a, b @@ -26260,9 +26261,9 @@ Special_CelebiShrineEvent: ; 4989a xor a ld [VramState], a call LoadCelebiGFX - ld de, $750 - ld a, $2c - call Function3b2a + lb de, $07, $50 + ld a, SPRITE_ANIM_INDEX_2C + call _InitSpriteAnimStruct ld hl, $3 add hl, bc ld [hl], $84 @@ -26362,8 +26363,8 @@ Function49944: ; 49944 add $40 ld d, a ld e, $0 - ld a, $18 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_18 ; fly land + call _InitSpriteAnimStruct ld hl, $3 add hl, bc ld [hl], $80 @@ -39087,8 +39088,8 @@ ShakeHeadbuttTree: ; 8c80a lb bc, BANK(HeadbuttTreeGFX), 8 call Request2bpp call Function8cad3 - ld a, $1b - call Function3b2a + ld a, SPRITE_ANIM_INDEX_1B + call _InitSpriteAnimStruct ld hl, $3 add hl, bc ld [hl], $84 @@ -39237,8 +39238,8 @@ endr Function8ca23: ; 8ca23 (23:4a23) call Function8cad3 - ld a, $17 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_17 ; leaf + call _InitSpriteAnimStruct ld hl, $3 add hl, bc ld [hl], $84 @@ -39287,8 +39288,8 @@ Function8ca64: ; 8ca64 (23:4a64) Function8ca73: ; 8ca73 (23:4a73) push de push af - ld a, $16 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_16 ; fly takeoff + call _InitSpriteAnimStruct ld hl, $3 add hl, bc ld [hl], $80 @@ -39375,9 +39376,9 @@ Function8caed: ; 8caed xor a ld [VramState], a call Function8cb9b - ld de, $5450 - ld a, $a - call Function3b2a + lb de, $54, $50 + ld a, SPRITE_ANIM_INDEX_0A + call _InitSpriteAnimStruct ld hl, $3 add hl, bc ld [hl], $84 @@ -39409,9 +39410,9 @@ Function8cb33: ; 8cb33 xor a ld [VramState], a call Function8cb9b - ld de, $fc50 - ld a, $a - call Function3b2a + lb de, $fc, $50 + ld a, SPRITE_ANIM_INDEX_0A + call _InitSpriteAnimStruct ld hl, $3 add hl, bc ld [hl], $84 @@ -39507,8 +39508,8 @@ Function8cbe6: ; 8cbe6 (23:4be6) add $40 ld d, a ld e, $0 - ld a, $18 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_18 ; fly land + call _InitSpriteAnimStruct ld hl, $3 add hl, bc ld [hl], $80 @@ -39840,7 +39841,7 @@ Function8ce19: ; 8ce19 ld d, $55 ld a, [wd194 + 1] ld e, a - ld b, $15 + ld b, SPRITE_ANIM_INDEX_15 ld a, [rSVBK] push af ld a, $1 @@ -39848,13 +39849,13 @@ Function8ce19: ; 8ce19 ld a, [PlayerGender] bit 0, a jr z, .asm_8ce31 - ld b, $1f + ld b, SPRITE_ANIM_INDEX_1F .asm_8ce31 pop af ld [rSVBK], a ld a, b - call Function3b2a + call _InitSpriteAnimStruct ld hl, $3 add hl, bc ld [hl], $0 @@ -40264,15 +40265,17 @@ Function8e908: ; 8e908 (23:6908) ld [CurIcon], a call Function8e9db ld a, [hObjectStructIndexBuffer] -; and $f \ swap a +; y coord rept 4 add a endr add $1c ld d, a +; x coord ld e, $10 - ld a, $0 - call Function8cfd6 +; type is partymon icon + ld a, SPRITE_ANIM_INDEX_00 + call InitSpriteAnimStruct pop af ld hl, $3 add hl, bc @@ -40317,9 +40320,9 @@ Function8e961: ; 8e961 (23:6961) ld [CurIcon], a xor a call GetIconGFX - ld de, $2420 - ld a, $0 - call Function8cfd6 + lb de, $24, $20 + ld a, SPRITE_ANIM_INDEX_00 + call InitSpriteAnimStruct ld hl, $2 add hl, bc ld [hl], $0 @@ -40333,8 +40336,8 @@ Function8e97d: ; 8e97d (23:697d) call GetIconGFX ld d, $1a ld e, $24 - ld a, $0 - call Function8cfd6 + ld a, SPRITE_ANIM_INDEX_00 + call InitSpriteAnimStruct ld hl, $2 add hl, bc ld [hl], $0 @@ -41468,9 +41471,9 @@ INCBIN "gfx/misc/fast_ship.2bpp" ; 90d32 Function90d32: ; 90d32 (24:4d32) - ld de, $2410 - ld a, $d - call Function3b2a + lb de, $24, $10 + ld a, SPRITE_ANIM_INDEX_0D + call _InitSpriteAnimStruct ld hl, $3 add hl, bc ld [hl], $0 @@ -41990,15 +41993,15 @@ Function9102f: ; 9102f (24:502f) Function9106a: ; 9106a push af ld de, 0 - ld b, $a + ld b, SPRITE_ANIM_INDEX_0A ld a, [PlayerGender] bit 0, a jr z, .asm_91079 - ld b, $1e + ld b, SPRITE_ANIM_INDEX_1E .asm_91079 ld a, b - call Function3b2a + call _InitSpriteAnimStruct ld hl, $3 add hl, bc ld [hl], $10 @@ -42019,8 +42022,8 @@ Function9106a: ; 9106a Function91098: ; 91098 push af ld de, 0 - ld a, $d - call Function3b2a + ld a, SPRITE_ANIM_INDEX_0D + call _InitSpriteAnimStruct ld hl, $3 add hl, bc ld [hl], $4 @@ -42081,9 +42084,9 @@ Function910e8: ; 910e8 Function910f9: ; 910f9 (24:50f9) call Function90da8 - ld de, $2454 - ld a, $14 - call Function3b2a + lb de, $24, $54 + ld a, SPRITE_ANIM_INDEX_14 + call _InitSpriteAnimStruct ld hl, $3 add hl, bc ld [hl], $8 @@ -42660,7 +42663,7 @@ Function91480: ; 91480 (24:5480) ld [wJumptableIndex], a ld a, b ld [wcf64], a - call Function914ab + call DeleteSpriteAnimStruct2ToEnd ret Function91492: ; 91492 @@ -42681,13 +42684,13 @@ Function91492: ; 91492 ; 914ab -Function914ab: ; 914ab (24:54ab) - ld hl, wc314 + 16 - ld bc, $90 +DeleteSpriteAnimStruct2ToEnd: ; 914ab (24:54ab) + ld hl, SpriteAnim2 + ld bc, wSpriteAnimationStructsEnd - SpriteAnim2 xor a call ByteFill - ld a, $2 - ld [wc3b4], a + ld a, 2 + ld [wSpriteAnimCount], a ret Function914bb: ; 914bb (24:54bb) @@ -43160,14 +43163,14 @@ INCLUDE "data/wild/fish.asm" INCLUDE "engine/slot_machine.asm" -SECTION "bank28", ROMX, BANK[$28] +SECTION "Phone Engine", ROMX, BANK[$28] INCLUDE "engine/more_phone_scripts.asm" INCLUDE "engine/buena_phone_scripts.asm" INCLUDE "text/phone/buena.asm" -SECTION "bank29", ROMX, BANK[$29] +SECTION "Phone Text", ROMX, BANK[$29] INCLUDE "text/phone/anthony_overworld.asm" INCLUDE "text/phone/todd_overworld.asm" @@ -45377,9 +45380,9 @@ Functione45e8: ; e45e8 pop af ld [rSVBK], a callba Function8cf53 - ld de, $5458 - ld a, $3 - call Function3b2a + lb de, $54, $58 + ld a, SPRITE_ANIM_INDEX_03 + call _InitSpriteAnimStruct ld hl, $7 add hl, bc ld [hl], $a0 @@ -46057,9 +46060,9 @@ IntroScene7: ; e4b3f (39:4b3f) ld [hWY], a call Functione5516 callba Function8cf53 - ld de, $6cd8 - ld a, $26 - call Function3b2a + lb de, $6c, $d8 + ld a, SPRITE_ANIM_INDEX_26 + call _InitSpriteAnimStruct ld a, $f0 ld [wc3c0], a call Functione549e @@ -46146,16 +46149,16 @@ IntroScene10: ; e4c4f (39:4c4f) .pichu lb de, $a9, $80 - ld a, $27 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_27 + call _InitSpriteAnimStruct ld de, SFX_INTRO_PICHU call PlaySFX ret .wooper lb de, $b0, $30 - ld a, $28 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_28 + call _InitSpriteAnimStruct ld de, SFX_INTRO_PICHU call PlaySFX ret @@ -46332,8 +46335,8 @@ IntroScene13: ; e4d6d (39:4d6d) ld [hWY], a callba Function8cf53 lb de, $6c, $58 - ld a, $26 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_26 + call _InitSpriteAnimStruct ld de, MUSIC_CRYSTAL_OPENING call PlayMusic xor a @@ -46443,11 +46446,11 @@ IntroScene15: ; e4e40 (39:4e40) callba Function8cf53 call Functione549e lb de, $40, $28 - ld a, $2a - call Function3b2a + ld a, SPRITE_ANIM_INDEX_2A + call _InitSpriteAnimStruct lb de, $60, $00 - ld a, $2b - call Function3b2a + ld a, SPRITE_ANIM_INDEX_2B + call _InitSpriteAnimStruct xor a ld [wcf64], a ld [wcf65], a @@ -46595,8 +46598,8 @@ IntroScene19: ; e4f7e (39:4f7e) ld [hl], $7f call Functione549e lb de, $60, $00 - ld a, $2b - call Function3b2a + ld a, SPRITE_ANIM_INDEX_2B + call _InitSpriteAnimStruct xor a ld [wcf64], a ld [wcf65], a @@ -46891,8 +46894,8 @@ Unknown_e519c: ; e519c Functione51dc: ; e51dc (39:51dc) push de - ld a, $29 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_29 + call _InitSpriteAnimStruct ld hl, $c add hl, bc ld [hl], $8 @@ -46901,8 +46904,8 @@ Functione51dc: ; e51dc (39:51dc) pop de push de - ld a, $29 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_29 + call _InitSpriteAnimStruct ld hl, $c add hl, bc ld [hl], $18 @@ -46911,8 +46914,8 @@ Functione51dc: ; e51dc (39:51dc) pop de push de - ld a, $29 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_29 + call _InitSpriteAnimStruct ld hl, $c add hl, bc ld [hl], $28 @@ -46920,8 +46923,8 @@ Functione51dc: ; e51dc (39:51dc) call Function3b3c pop de - ld a, $29 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_29 + call _InitSpriteAnimStruct ld hl, $c add hl, bc ld [hl], $38 diff --git a/misc/battle_tower_47.asm b/misc/battle_tower_47.asm index 68abcf1b9..014e79586 100755 --- a/misc/battle_tower_47.asm +++ b/misc/battle_tower_47.asm @@ -495,39 +495,39 @@ Jumptable_11c2bb: ; 11c2bb (47:42bb) Function11c2e9: ; 11c2e9 (47:42e9) lb de, $1a, $0d - ld a, $1d - call Function3b2a + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct lb de, $42, $0d - ld a, $1d - call Function3b2a + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct ld hl, $c add hl, bc ld a, $1 ld [hl], a lb de, $4a, $10 - ld a, $1d - call Function3b2a + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct ld hl, $c add hl, bc ld a, $3 ld [hl], a lb de, $50, $80 - ld a, $1d - call Function3b2a + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct ld hl, $c add hl, bc ld a, $4 ld [hl], a lb de, $50, $20 - ld a, $1d - call Function3b2a + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct ld hl, $c add hl, bc ld a, $5 ld [hl], a lb de, $50, $10 - ld a, $1d - call Function3b2a + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct ld hl, $c add hl, bc ld a, $2 diff --git a/misc/mobile_42.asm b/misc/mobile_42.asm index 39d27e941..f4bed3f26 100644 --- a/misc/mobile_42.asm +++ b/misc/mobile_42.asm @@ -493,13 +493,13 @@ Function10830e: ; 10830e call DelayFrames call Function108bec lb de, $54, $58 - ld a, $20 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_20 + call _InitSpriteAnimStruct ld de, SFX_BALL_POOF call PlaySFX hlcoord 0, 0 ld bc, $00f0 - ld a, $7f + ld a, " " call ByteFill ld c, $50 call Function1082cc @@ -528,8 +528,8 @@ Function10839b: ; 10839b ld a, $90 ld [hWY], a lb de, $54, $58 - ld a, $21 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_21 + call _InitSpriteAnimStruct call Function108b45 ld a, $1 call Function108b98 @@ -628,13 +628,13 @@ Function10842c: ; 10842c call DelayFrames call Function108c2b lb de, $54, $58 - ld a, $20 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_20 + call _InitSpriteAnimStruct ld de, SFX_BALL_POOF call PlaySFX hlcoord 0, 0 ld bc, $00f0 - ld a, $7f + ld a, " " call ByteFill ld c, $50 call Function1082cc @@ -672,8 +672,8 @@ Function1084d7: ; 1084d7 ld a, $90 ld [hWY], a lb de, $54, $58 - ld a, $21 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_21 + call _InitSpriteAnimStruct call Function108b45 ld a, $1 call Function108b98 @@ -741,8 +741,8 @@ Function108589: ; 108589 ld a, $90 ld [hWY], a lb de, $54, $58 - ld a, $21 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_21 + call _InitSpriteAnimStruct call Function108b45 ld a, $1 call Function108b98 @@ -928,8 +928,8 @@ endr cp $f8 jr nz, .asm_10878a lb de, $54, $58 - ld a, $22 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_22 + call _InitSpriteAnimStruct .asm_10878a ld c, $1 @@ -954,8 +954,8 @@ endr .asm_1087a9 lb de, $54, $58 - ld a, $22 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_22 + call _InitSpriteAnimStruct xor a call Function108ad4 jr .asm_1087c4 @@ -986,8 +986,8 @@ Function1087cf: ; 1087cf call Function108af4 call Function108b5a lb de, $4a, $50 - ld a, $25 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_25 + call _InitSpriteAnimStruct ld de, SFX_FORESIGHT call PlaySFX ld c, $a @@ -995,8 +995,8 @@ Function1087cf: ; 1087cf xor a ld [wcf64], a lb de, $4a, $50 - ld a, $23 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_23 + call _InitSpriteAnimStruct .asm_1087fc ld a, [hSCY] cp $90 @@ -1022,8 +1022,8 @@ Function108811: ; 108811 ld c, $3c call Function1082cc lb de, $f2, $50 - ld a, $24 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_24 + call _InitSpriteAnimStruct call Function1082b7 ld de, SFX_THROW_BALL call PlaySFX @@ -1042,11 +1042,11 @@ Function108838: ; 108838 ; 10884c Function10884c: ; 10884c - ld c, $50 + ld c, 80 call DelayFrames lb de, $f2, $50 - ld a, $24 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_24 + call _InitSpriteAnimStruct call Function1082b7 ld de, SFX_THROW_BALL call PlaySFX @@ -1069,8 +1069,8 @@ Function108863: ; 108863 .asm_108879 callba Function8d03d lb de, $4a, $50 - ld a, $25 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_25 + call _InitSpriteAnimStruct ld de, SFX_GLASS_TING_2 call PlaySFX call Function108af4 @@ -1106,14 +1106,14 @@ endr .asm_1088c5 lb de, $54, $58 - ld a, $22 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_22 + call _InitSpriteAnimStruct jr .asm_1088e7 .asm_1088cf lb de, $54, $58 - ld a, $22 - call Function3b2a + ld a, SPRITE_ANIM_INDEX_22 + call _InitSpriteAnimStruct xor a call Function108ad4 jr .asm_1088e7 diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm index 6852745b5..8855bdcfc 100644 --- a/misc/mobile_45.asm +++ b/misc/mobile_45.asm @@ -7759,14 +7759,14 @@ Function117738: ; 117738 (45:7738) callba Function171ccd lb de, $30, $18 ld a, $1d - call Function3b2a + call _InitSpriteAnimStruct ld hl, $c add hl, bc ld a, $6 ld [hl], a lb de, $48, $20 ld a, $1d - call Function3b2a + call _InitSpriteAnimStruct ld hl, $c add hl, bc ld a, $7 diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm index 5d9e207bb..06bf5453b 100755 --- a/misc/mobile_5c.asm +++ b/misc/mobile_5c.asm @@ -1761,22 +1761,22 @@ Function171b42: ; 171b42 (5c:5b42) Function171b4b: ; 171b4b (5c:5b4b) lb de, $40, $10 - ld a, $1d - call Function3b2a + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct ld hl, $c add hl, bc ld a, $8 ld [hl], a lb de, $40, $98 - ld a, $1d - call Function3b2a + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct ld hl, $c add hl, bc ld a, $9 ld [hl], a lb de, $8a, $70 - ld a, $1d - call Function3b2a + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct ld hl, $c add hl, bc ld a, $a diff --git a/wram.asm b/wram.asm index f7b62e722..effb83b1f 100644 --- a/wram.asm +++ b/wram.asm @@ -380,23 +380,50 @@ wc310:: ds 1 wc311:: ds 1 wc312:: ds 1 wc313:: ds 1 -; wPartyMonMenuIconAnims:: +wSpriteAnimationStructs:: + +sprite_anim_struct: MACRO +\1Index:: ds 1 + ds 1 +\1AnimSeqID:: ds 1 +\1TileID:: ds 1 +\1XCoord:: ds 1 +\1YCoord:: ds 1 +\1XOffset:: ds 1 +\1YOffset:: ds 1 +\1FrameTimer:: ds 1 + ds 1 +\1FrameIndex:: ds 1 + ds 5 +ENDM + ; Field 0: Index ; Fields 1-3: Loaded from Unknown_8d1c4 -wc314:: ds 16 ; c314 -wc324:: ds 16 ; c324 -wc334:: ds 16 ; c334 -wc344:: ds 16 ; c344 -wc354:: ds 16 ; c354 -wc364:: ds 16 ; c364 -wc374:: ds 16 ; c374 -wc384:: ds 16 ; c384 -wc394:: ds 16 ; c394 -wc3a4:: ds 16 ; c3a4 -; wPartyMonMenuIconAnimsEnd:: +wc314:: +SpriteAnim1:: sprite_anim_struct SpriteAnim1 +wc324:: +SpriteAnim2:: sprite_anim_struct SpriteAnim2 +wc334:: +SpriteAnim3:: sprite_anim_struct SpriteAnim3 +wc344:: +SpriteAnim4:: sprite_anim_struct SpriteAnim4 +wc354:: +SpriteAnim5:: sprite_anim_struct SpriteAnim5 +wc364:: +SpriteAnim6:: sprite_anim_struct SpriteAnim6 +wc374:: +SpriteAnim7:: sprite_anim_struct SpriteAnim7 +wc384:: +SpriteAnim8:: sprite_anim_struct SpriteAnim8 +wc394:: +SpriteAnim9:: sprite_anim_struct SpriteAnim9 +wc3a4:: +SpriteAnim10:: sprite_anim_struct SpriteAnim10 +wSpriteAnimationStructsEnd:: ds -8 wc3ac:: ds 8 ; c3ac -wc3b4:: ds 1 ; something to do with wc314 +wSpriteAnimCount:: +wc3b4:: ds 1 wc3b5:: ds 1 CurIcon:: ; c3b6 From cc8c36ee149b287b7a1cabb85abb4bf42873a3b2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 13 Nov 2015 18:59:49 -0500 Subject: [PATCH 03/40] Creation of constants for OBJECT_09 indices --- constants/sprite_constants.asm | 28 +++++ engine/events.asm | 82 ++++++------- engine/map_objects.asm | 202 +++++++++++++++++---------------- engine/mart.asm | 8 +- engine/movement.asm | 88 +++++++------- engine/scripting.asm | 6 +- engine/sprites.asm | 2 +- home/map_objects.asm | 2 +- macros/movement.asm | 5 +- main.asm | 149 ++++++++++++++---------- misc/mobile_5c.asm | 2 +- wram.asm | 11 +- 12 files changed, 330 insertions(+), 255 deletions(-) diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm index a017d41b0..d42f0f5d8 100644 --- a/constants/sprite_constants.asm +++ b/constants/sprite_constants.asm @@ -266,3 +266,31 @@ SPRITEMOVEDATA_FIELDS EQU 6 const SPRITEMOVEFN_1B MAX_OUTDOOR_SPRITES EQU 23 + + const_def + const OBJECT_09_VALUE_00 + const OBJECT_09_VALUE_01 + const OBJECT_09_VALUE_02 + const OBJECT_09_VALUE_03 + const OBJECT_09_VALUE_04 + const OBJECT_09_VALUE_05 + const OBJECT_09_VALUE_06 + const OBJECT_09_VALUE_07 + const OBJECT_09_VALUE_08 + const OBJECT_09_VALUE_09 + const OBJECT_09_VALUE_0A + const OBJECT_09_VALUE_0B + const OBJECT_09_VALUE_0C + const OBJECT_09_VALUE_0D + const OBJECT_09_VALUE_0E + const OBJECT_09_VALUE_0F + const OBJECT_09_VALUE_10 + const OBJECT_09_VALUE_11 + const OBJECT_09_VALUE_12 + const OBJECT_09_VALUE_13 + const OBJECT_09_VALUE_14 + const OBJECT_09_VALUE_15 + const OBJECT_09_VALUE_16 + const OBJECT_09_VALUE_17 + const OBJECT_09_VALUE_18 + const OBJECT_09_VALUE_19 diff --git a/engine/events.asm b/engine/events.asm index d41e3495a..04e090483 100644 --- a/engine/events.asm +++ b/engine/events.asm @@ -24,13 +24,13 @@ OverworldLoop:: ; 966b0 ; 966cb -ClearAllScriptFlags3: ; 966cb +DisableEvents: ; 966cb xor a ld [ScriptFlags3], a ret ; 966d0 -SetAll_ScriptFlags3:: ; 966d0 +EnableEvents:: ; 966d0 ld a, $ff ld [ScriptFlags3], a ret @@ -42,73 +42,73 @@ CheckBit5_ScriptFlags3: ; 966d6 ret ; 966dc -ResetBit2_ScriptFlags3: ; 966dc +DisableWarpsConnxns: ; 966dc ld hl, ScriptFlags3 res 2, [hl] ret ; 966e2 -ResetBit1_ScriptFlags3: ; 966e2 +DisableCoordEvents: ; 966e2 ld hl, ScriptFlags3 res 1, [hl] ret ; 966e8 -ResetBit0_ScriptFlags3: ; 966e8 +DisableStepCount: ; 966e8 ld hl, ScriptFlags3 res 0, [hl] ret ; 966ee -ResetBit4_ScriptFlags3: ; 966ee +DisableWildEncounters: ; 966ee ld hl, ScriptFlags3 res 4, [hl] ret ; 966f4 -SetBit2_ScriptFlags3: ; 966f4 +EnableWarpsConnxns: ; 966f4 ld hl, ScriptFlags3 set 2, [hl] ret ; 966fa -SetBit1_ScriptFlags3: ; 966fa +EnableCoordEvents: ; 966fa ld hl, ScriptFlags3 set 1, [hl] ret ; 96700 -SetBit0_ScriptFlags3: ; 96700 +EnableStepCount: ; 96700 ld hl, ScriptFlags3 set 0, [hl] ret ; 96706 -SetBit4_ScriptFlags3: ; 96706 +EnableWildEncounters: ; 96706 ld hl, ScriptFlags3 set 4, [hl] ret ; 9670c -CheckBit2_ScriptFlags3: ; 9670c +CheckWarpConnxnScriptFlag: ; 9670c ld hl, ScriptFlags3 bit 2, [hl] ret ; 96712 -CheckBit1_ScriptFlags3: ; 96712 +CheckCoordEventScriptFlag: ; 96712 ld hl, ScriptFlags3 bit 1, [hl] ret ; 96718 -CheckBit0_ScriptFlags3: ; 96718 +CheckStepCountScriptFlag: ; 96718 ld hl, ScriptFlags3 bit 0, [hl] ret ; 9671e -CheckBit4_ScriptFlags3: ; 9671e +CheckWildEncountersScriptFlag: ; 9671e ld hl, ScriptFlags3 bit 4, [hl] ret @@ -135,13 +135,13 @@ EnterMap: ; 9673e ld [wd454], a call SetUpFiveStepWildEncounterCooldown callba RunMapSetupScript - call ClearAllScriptFlags3 + call DisableEvents ld a, [hMapEntryMethod] cp MAPSETUP_CONNECTION - jr nz, .dontset - call SetAll_ScriptFlags3 -.dontset + jr nz, .dont_enable + call EnableEvents +.dont_enable ld a, [hMapEntryMethod] cp MAPSETUP_RELOADMAP @@ -197,7 +197,7 @@ MapEvents: ; 96795 .events ; 967a1 call PlayerEvents - call ClearAllScriptFlags3 + call DisableEvents callba ScriptEvents ret ; 967ae @@ -238,7 +238,7 @@ Function967c1: ; 967c1 ; 967d1 Function967d1: ; 967d1 - callba Function576a + callba Function576a ; engine/map_objects.asm callba Functiond497 call Function96812 ret @@ -259,7 +259,7 @@ Function967f4: ; 967f4 jr z, .noevents bit 4, a jr nz, .noevents - call SetAll_ScriptFlags3 + call EnableEvents .events ld a, 0 ; events @@ -355,8 +355,8 @@ CheckTrainerBattle3: ; 96867 CheckTileEvent: ; 96874 ; Check for warps, tile triggers or wild battles. - call CheckBit2_ScriptFlags3 - jr z, .bit2 + call CheckWarpConnxnScriptFlag + jr z, .connections_disabled callba CheckMovingOffEdgeOfMap jr c, .map_connection @@ -364,22 +364,22 @@ CheckTileEvent: ; 96874 call CheckWarpTile jr c, .warp_tile -.bit2 - call CheckBit1_ScriptFlags3 - jr z, .bit1 +.connections_disabled + call CheckCoordEventScriptFlag + jr z, .coord_events_disabled call CheckCurrentMapXYTriggers - jr c, .movement + jr c, .coord_event -.bit1 - call CheckBit0_ScriptFlags3 - jr z, .bit0 +.coord_events_disabled + call CheckStepCountScriptFlag + jr z, .step_count_disabled call CountStep ret c -.bit0 - call CheckBit4_ScriptFlags3 +.step_count_disabled + call CheckWildEncountersScriptFlag jr z, .ok call RandomEncounter @@ -408,8 +408,8 @@ CheckTileEvent: ; 96874 scf ret -.movement - ld hl, MovementAnimation +.coord_event + ld hl, EngineBuffer5 ld a, [hli] ld h, [hl] ld l, a @@ -552,7 +552,7 @@ OWPlayerInput: ; 96974 jr nz, .NoAction ; Can't perform button actions while sliding on ice. - callba Function80404 + callba CheckStandingOnIce jr c, .NoAction call CheckAPressOW @@ -1077,12 +1077,12 @@ PlayerEventScriptPointers: ; 96c0c dba SeenByTrainerScript ; 1 dba TalkToTrainerScript ; 2 dba FindItemInBallScript ; 3 - dba UnknownScript_0x96c4d ; 4 + dba EdgeWarpScript ; 4 dba WarpToNewMapScript ; 5 dba FallIntoMapScript ; 6 dba Script_OverworldWhiteout ; 7 dba HatchEggScript ; 8 - dba UnknownScript_0x96c4f ; 9 + dba ChangeDirectionScript ; 9 dba Invalid_0x96c2d ; 10 ; 96c2d @@ -1124,13 +1124,13 @@ LandAfterPitfallScript: ; 96c4a end ; 96c4d -UnknownScript_0x96c4d: ; 4 +EdgeWarpScript: ; 4 reloadandreturn MAPSETUP_CONNECTION ; 96c4f -UnknownScript_0x96c4f: ; 9 - deactivatefacing $3 - callasm SetBit4_ScriptFlags3 +ChangeDirectionScript: ; 9 + deactivatefacing 3 + callasm EnableWildEncounters end ; 96c56 diff --git a/engine/map_objects.asm b/engine/map_objects.asm index d174c76d9..a53658e60 100644 --- a/engine/map_objects.asm +++ b/engine/map_objects.asm @@ -2,45 +2,45 @@ INCLUDE "engine/facings.asm" SpriteMovementData:: ; 4273 - ; function, facing, ?, ?, ?, ? - db SPRITEMOVEFN_00, DOWN, $01, $02, $00, $00 ; 00 - db SPRITEMOVEFN_STANDING, DOWN, $01, $0c, $00, $00 ; 01 - db SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, $01, $00, $00, $00 ; 02 - db SPRITEMOVEFN_SLOW_RANDOM_SPIN, DOWN, $01, $00, $00, $00 ; 03 - db SPRITEMOVEFN_RANDOM_WALK_Y, DOWN, $01, $00, $00, $00 ; 04 - db SPRITEMOVEFN_RANDOM_WALK_X, DOWN, $01, $00, $00, $00 ; 05 - db SPRITEMOVEFN_STANDING, DOWN, $01, $00, $00, $00 ; 06 - db SPRITEMOVEFN_STANDING, UP, $01, $00, $00, $00 ; 07 - db SPRITEMOVEFN_STANDING, LEFT, $01, $00, $00, $00 ; 08 - db SPRITEMOVEFN_STANDING, RIGHT, $01, $00, $00, $00 ; 09 - db SPRITEMOVEFN_FAST_RANDOM_SPIN, DOWN, $01, $00, $00, $00 ; 0a - db SPRITEMOVEFN_OBEY_DPAD, DOWN, $01, $02, $00, $00 ; 0b - db SPRITEMOVEFN_08, DOWN, $01, $00, $00, $00 ; 0c - db SPRITEMOVEFN_09, DOWN, $01, $00, $00, $00 ; 0d - db SPRITEMOVEFN_0A, DOWN, $01, $00, $00, $00 ; 0e - db SPRITEMOVEFN_0B, DOWN, $01, $00, $00, $00 ; 0f - db SPRITEMOVEFN_0C, DOWN, $01, $00, $00, $00 ; 10 - db SPRITEMOVEFN_0D, DOWN, $01, $00, $00, $00 ; 11 - db SPRITEMOVEFN_0E, DOWN, $01, $00, $00, $00 ; 12 - db SPRITEMOVEFN_FOLLOW, DOWN, $01, $02, $00, $00 ; 13 - db SPRITEMOVEFN_SCRIPTED, DOWN, $01, $02, $00, $00 ; 14 - db SPRITEMOVEFN_BIG_SNORLAX, DOWN, $09, $2e, $01, $c0 ; 15 - db SPRITEMOVEFN_BOUNCE, DOWN, $0a, $2e, $00, $00 ; 16 - db SPRITEMOVEFN_STANDING, DOWN, $01, $0c, $00, $00 ; 17 - db SPRITEMOVEFN_STANDING, DOWN, $01, $2e, $10, $00 ; 18 - db SPRITEMOVEFN_STRENGTH, DOWN, $01, $2e, $00, $40 ; 19 - db SPRITEMOVEFN_FOLLOWNOTEXACT, DOWN, $01, $02, $00, $00 ; 1a - db SPRITEMOVEFN_13, DOWN, $00, $8e, $01, $00 ; 1b - db SPRITEMOVEFN_14, DOWN, $08, $8e, $02, $00 ; 1c - db SPRITEMOVEFN_17, DOWN, $00, $82, $00, $00 ; 1d + ; function, facing, ?, ?, ?, ? + db SPRITEMOVEFN_00, DOWN, $01, $02, $00, $00 ; 00 + db SPRITEMOVEFN_STANDING, DOWN, $01, $0c, $00, $00 ; 01 + db SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, $01, $00, $00, $00 ; 02 + db SPRITEMOVEFN_SLOW_RANDOM_SPIN, DOWN, $01, $00, $00, $00 ; 03 + db SPRITEMOVEFN_RANDOM_WALK_Y, DOWN, $01, $00, $00, $00 ; 04 + db SPRITEMOVEFN_RANDOM_WALK_X, DOWN, $01, $00, $00, $00 ; 05 + db SPRITEMOVEFN_STANDING, DOWN, $01, $00, $00, $00 ; 06 + db SPRITEMOVEFN_STANDING, UP, $01, $00, $00, $00 ; 07 + db SPRITEMOVEFN_STANDING, LEFT, $01, $00, $00, $00 ; 08 + db SPRITEMOVEFN_STANDING, RIGHT, $01, $00, $00, $00 ; 09 + db SPRITEMOVEFN_FAST_RANDOM_SPIN, DOWN, $01, $00, $00, $00 ; 0a + db SPRITEMOVEFN_OBEY_DPAD, DOWN, $01, $02, $00, $00 ; 0b + db SPRITEMOVEFN_08, DOWN, $01, $00, $00, $00 ; 0c + db SPRITEMOVEFN_09, DOWN, $01, $00, $00, $00 ; 0d + db SPRITEMOVEFN_0A, DOWN, $01, $00, $00, $00 ; 0e + db SPRITEMOVEFN_0B, DOWN, $01, $00, $00, $00 ; 0f + db SPRITEMOVEFN_0C, DOWN, $01, $00, $00, $00 ; 10 + db SPRITEMOVEFN_0D, DOWN, $01, $00, $00, $00 ; 11 + db SPRITEMOVEFN_0E, DOWN, $01, $00, $00, $00 ; 12 + db SPRITEMOVEFN_FOLLOW, DOWN, $01, $02, $00, $00 ; 13 + db SPRITEMOVEFN_SCRIPTED, DOWN, $01, $02, $00, $00 ; 14 + db SPRITEMOVEFN_BIG_SNORLAX, DOWN, $09, $2e, $01, $c0 ; 15 + db SPRITEMOVEFN_BOUNCE, DOWN, $0a, $2e, $00, $00 ; 16 + db SPRITEMOVEFN_STANDING, DOWN, $01, $0c, $00, $00 ; 17 + db SPRITEMOVEFN_STANDING, DOWN, $01, $2e, $10, $00 ; 18 + db SPRITEMOVEFN_STRENGTH, DOWN, $01, $2e, $00, $40 ; 19 + db SPRITEMOVEFN_FOLLOWNOTEXACT, DOWN, $01, $02, $00, $00 ; 1a + db SPRITEMOVEFN_13, DOWN, $00, $8e, $01, $00 ; 1b + db SPRITEMOVEFN_14, DOWN, $08, $8e, $02, $00 ; 1c + db SPRITEMOVEFN_17, DOWN, $00, $82, $00, $00 ; 1d db SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE, LEFT, $01, $00, $00, $00 ; 1e - db SPRITEMOVEFN_SPIN_CLOCKWISE, RIGHT, $01, $00, $00, $00 ; 1f - db SPRITEMOVEFN_STRENGTH, DOWN, $0c, $2e, $01, $c0 ; 20 - db SPRITEMOVEFN_STRENGTH, DOWN, $0d, $2e, $01, $c0 ; 21 - db SPRITEMOVEFN_1A, DOWN, $0e, $8e, $01, $00 ; 22 - db SPRITEMOVEFN_1B, DOWN, $0f, $8e, $02, $00 ; 23 - db SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, $01, $00, $00, $20 ; 24 - db SPRITEMOVEFN_00, DOWN, $01, $00, $00, $00 ; 25 + db SPRITEMOVEFN_SPIN_CLOCKWISE, RIGHT, $01, $00, $00, $00 ; 1f + db SPRITEMOVEFN_STRENGTH, DOWN, $0c, $2e, $01, $c0 ; 20 + db SPRITEMOVEFN_STRENGTH, DOWN, $0d, $2e, $01, $c0 ; 21 + db SPRITEMOVEFN_1A, DOWN, $0e, $8e, $01, $00 ; 22 + db SPRITEMOVEFN_1B, DOWN, $0f, $8e, $02, $00 ; 23 + db SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, $01, $00, $00, $20 ; 24 + db SPRITEMOVEFN_00, DOWN, $01, $00, $00, $00 ; 25 ; 4357 @@ -156,11 +156,13 @@ Function43f3: ; 43f3 ld a, [hl] and a jr z, .zero + ld hl, OBJECT_FLAGS2 add hl, bc bit 5, [hl] jr nz, .bit5 - cp 1 + + cp OBJECT_09_VALUE_01 jr z, .one jr .ok @@ -178,7 +180,7 @@ Function43f3: ; 43f3 ld a, [hl] and a ret z - cp 1 + cp OBJECT_09_VALUE_01 ret z .ok @@ -892,6 +894,7 @@ IncrementObjectStructField28: ; 47a2 ; 47a8 JumptoObjectStructField28: ; 47a8 +; anonymous jumptable ld hl, OBJECT_28 add hl, bc ld a, [hl] @@ -931,7 +934,7 @@ Function47bc: ; 47bc call Function467b ld hl, OBJECT_09 add hl, bc - ld [hl], 1 + ld [hl], OBJECT_09_VALUE_01 ret ; 47dd @@ -1037,7 +1040,7 @@ Function47dd: ; 47dd ld [hl], 1 ld hl, OBJECT_09 add hl, bc - ld [hl], 5 + ld [hl], OBJECT_09_VALUE_05 ret ; 487c @@ -1121,7 +1124,7 @@ Function47dd: ; 47dd call Function463f ld hl, OBJECT_09 add hl, bc - ld [hl], $f + ld [hl], OBJECT_09_VALUE_0F ret .ok2 @@ -1223,7 +1226,7 @@ Function47dd: ; 47dd ld [hl], 9 ld hl, OBJECT_09 add hl, bc - ld [hl], 4 + ld [hl], OBJECT_09_VALUE_04 ret ; 496e @@ -1237,7 +1240,7 @@ Function47dd: ; 47dd ld [hl], 10 ld hl, OBJECT_09 add hl, bc - ld [hl], 4 + ld [hl], OBJECT_09_VALUE_04 ret ; 4984 @@ -1274,7 +1277,7 @@ Function47dd: ; 47dd ld [hl], a ld hl, OBJECT_09 add hl, bc - ld [hl], 3 + ld [hl], OBJECT_09_VALUE_03 call IncrementObjectStructField27 ret ; 49b8 @@ -1351,7 +1354,7 @@ Function47dd: ; 47dd ld [hl], 0 ld hl, OBJECT_09 add hl, bc - ld [hl], $13 + ld [hl], OBJECT_09_VALUE_13 ret ; 4a21 @@ -1372,7 +1375,7 @@ Function47dd: ; 47dd ld [hl], 0 ld hl, OBJECT_09 add hl, bc - ld [hl], $13 + ld [hl], OBJECT_09_VALUE_13 ret ; 4a46 @@ -1411,7 +1414,7 @@ endr ld [hl], e ld hl, OBJECT_09 add hl, bc - ld [hl], $13 + ld [hl], OBJECT_09_VALUE_13 ret ; 4a81 @@ -1438,7 +1441,7 @@ endr ld [hl], a ld hl, OBJECT_09 add hl, bc - ld [hl], $13 + ld [hl], OBJECT_09_VALUE_13 ret ; 4aa8 @@ -1476,7 +1479,7 @@ endr ld [hl], a ld hl, OBJECT_09 add hl, bc - ld [hl], $15 + ld [hl], OBJECT_09_VALUE_15 ret ; 4ade @@ -1512,13 +1515,13 @@ endr jr z, .load_6 ld hl, OBJECT_09 add hl, bc - ld [hl], 7 + ld [hl], OBJECT_09_VALUE_07 ret .load_6 ld hl, OBJECT_09 add hl, bc - ld [hl], 6 + ld [hl], OBJECT_09_VALUE_06 ret Function4b17: ; 4b17 @@ -1553,37 +1556,38 @@ Function4b2d: ; 4b2d ld [hl], 1 ld hl, OBJECT_09 add hl, bc - ld [hl], 3 + ld [hl], OBJECT_09_VALUE_03 ret ; 4b45 Pointers4b45: ; 4b45 - dw Function47bc - dw Function47dd - dw Function4e2b - dw Function4ddd - dw Function4e21 - dw Function4e0c - dw Function4e56 - dw Function4e47 - dw Function4b86 - dw Function4bbf - dw Function4e83 - dw Function4dff - dw Function4c18 - dw Function4c89 - dw Function4d14 - dw Function4ecd - dw Function4d7e - dw Function4daf - dw Function4dc8 - dw Function4f04 - dw Function4f33 - dw Function4f33 - dw Function4f77 - dw Function4f7a - dw Function4df0 - dw Function4f83 +; These pointers use OBJECT_09. See constants/sprite_constants.asm + dw Function47bc ; 00 + dw Function47dd ; 01 + dw Function4e2b ; 02 + dw Function4ddd ; 03 + dw Function4e21 ; 04 + dw Function4e0c ; 05 + dw Function4e56 ; 06 + dw Function4e47 ; 07 + dw Function4b86 ; 08 + dw Function4bbf ; 09 + dw Function4e83 ; 0a + dw Function4dff ; 0b + dw Function4c18 ; 0c + dw Function4c89 ; 0d + dw Function4d14 ; 0e + dw Function4ecd ; 0f + dw Function4d7e ; 10 + dw Function4daf ; 11 + dw Function4dc8 ; 12 + dw Function4f04 ; 13 + dw Function4f33 ; 14 + dw Function4f33 ; 15 + dw Function4f77 ; 16 + dw Function4f7a ; 17 + dw Function4df0 ; 18 + dw Function4f83 ; 19 ; 4b79 Function4b79: ; 4b79 @@ -1593,7 +1597,7 @@ Function4b79: ; 4b79 ret nz ld hl, OBJECT_09 add hl, bc - ld [hl], 1 + ld [hl], OBJECT_09_VALUE_01 ret ; 4b86 @@ -1629,7 +1633,7 @@ Function4ba9: ; 4ba9 call Function4600 ld hl, OBJECT_09 add hl, bc - ld [hl], 1 + ld [hl], OBJECT_09_VALUE_01 ret ; 4bbf @@ -1686,7 +1690,7 @@ Function4bfd: ; 4bfd call Function4600 ld hl, OBJECT_09 add hl, bc - ld [hl], 1 + ld [hl], OBJECT_09_VALUE_01 ret ; 4c18 @@ -1762,7 +1766,7 @@ Function4c5d: ; 4c5d ld [hl], 0 ld hl, OBJECT_09 add hl, bc - ld [hl], 1 + ld [hl], OBJECT_09_VALUE_01 ret ; 4c89 @@ -1861,7 +1865,7 @@ Function4d01: ; 4d01 ld [hl], 0 ld hl, OBJECT_09 add hl, bc - ld [hl], 1 + ld [hl], OBJECT_09_VALUE_01 ret ; 4d14 @@ -1934,7 +1938,7 @@ Function4d6b: ; 4d6b ld [hl], 0 ld hl, OBJECT_09 add hl, bc - ld [hl], 1 + ld [hl], OBJECT_09_VALUE_01 ret ; 4d7e @@ -1970,7 +1974,7 @@ Function4d94: ; 4d94 ld [hl], 0 ld hl, OBJECT_09 add hl, bc - ld [hl], 1 + ld [hl], OBJECT_09_VALUE_01 ret ; 4daf @@ -2021,7 +2025,7 @@ Function4ddd: ; 4ddd ret nz ld hl, OBJECT_09 add hl, bc - ld [hl], 1 + ld [hl], OBJECT_09_VALUE_01 ret ; 4df0 @@ -2043,7 +2047,7 @@ Function4dff: ; 4dff ret nz ld hl, OBJECT_09 add hl, bc - ld [hl], 1 + ld [hl], OBJECT_09_VALUE_01 ret ; 4e0c @@ -2055,7 +2059,7 @@ Function4e0c: ; 4e0c Function4e13: ; 4e13 call RestoreDefaultMovement - call Function1a47 + call GetInitialFacing ld hl, OBJECT_FACING add hl, bc ld [hl], a @@ -2084,7 +2088,7 @@ Function4e2b: ; 4e2b ld [hl], STANDING ld hl, OBJECT_09 add hl, bc - ld [hl], 1 + ld [hl], OBJECT_09_VALUE_01 ret ; 4e47 @@ -2126,7 +2130,7 @@ Function4e65: ; 4e65 ld [hl], STANDING ld hl, OBJECT_09 add hl, bc - ld [hl], 1 + ld [hl], OBJECT_09_VALUE_01 ret ; 4e83 @@ -2183,7 +2187,7 @@ Function4ec0: ; 4ec0 ret nz ld hl, OBJECT_09 add hl, bc - ld [hl], 1 + ld [hl], OBJECT_09_VALUE_01 ret ; 4ecd @@ -2215,7 +2219,7 @@ Function4ecd: ; 4ecd ld [hl], STANDING ld hl, OBJECT_09 add hl, bc - ld [hl], 1 + ld [hl], OBJECT_09_VALUE_01 ret ; 4f04 @@ -2347,7 +2351,7 @@ Function4f99: ; 4f99 ld [hl], 0 ld hl, OBJECT_09 add hl, bc - ld [hl], 1 + ld [hl], OBJECT_09_VALUE_01 ret ; 4fb2 @@ -2404,7 +2408,7 @@ UpdateJumpPosition: ; 4fd5 ; 5000 Function5000: ; unscripted? -; copy [wc3de] to [wc2df] +; copy [wc2de] to [wc2df] ld a, [wc2de] ld hl, wc2df ld [hl], a @@ -3188,7 +3192,7 @@ SetFollowerIfVisible: ; 582c ld [hl], SPRITEMOVEDATA_FOLLOWING ld hl, OBJECT_09 add hl, bc - ld [hl], 0 + ld [hl], OBJECT_09_VALUE_00 ld a, [hObjectStructIndexBuffer] ld [wObjectFollow_Follower], a ret @@ -3328,7 +3332,7 @@ Function58e3: ; 58e3 ld hl, OBJECT_09 add hl, bc - ld [hl], 0 + ld [hl], OBJECT_09_VALUE_00 ret ; 5903 @@ -3347,7 +3351,7 @@ Function5903: ; 5903 ld hl, OBJECT_09 add hl, bc - ld [hl], 0 + ld [hl], OBJECT_09_VALUE_00 ret .standing_movefns diff --git a/engine/mart.asm b/engine/mart.asm index 2c3dac0e7..81ab22d12 100755 --- a/engine/mart.asm +++ b/engine/mart.asm @@ -29,7 +29,7 @@ MartDialog: ; 15a61 ld a, 0 ld [EngineBuffer1], a xor a - ld [MovementAnimation], a + ld [EngineBuffer5], a call StandardMart ret ; 15a6e @@ -129,7 +129,7 @@ LoadMartPointer: ; 15b10 ld bc, 16 call ByteFill xor a - ld [MovementAnimation], a + ld [EngineBuffer5], a ld [wBargainShopFlags], a ld [FacingDirection], a ret @@ -157,10 +157,10 @@ endr StandardMart: ; 15b47 .loop - ld a, [MovementAnimation] + ld a, [EngineBuffer5] ld hl, .MartFunctions rst JumpTable - ld [MovementAnimation], a + ld [EngineBuffer5], a cp $ff jr nz, .loop ret diff --git a/engine/movement.asm b/engine/movement.asm index 21dd89e9f..a908624e1 100644 --- a/engine/movement.asm +++ b/engine/movement.asm @@ -79,7 +79,7 @@ MovementPointers: ; 5075 dw Movement_teleport_to ; 4d dw Movement_skyfall ; 4e dw Movement_step_wait5 ; 4f - dw Movement_50 ; 50 + dw Movement_step_bump ; 50 dw Movement_fish_got_bite ; 51 dw Movement_fish_cast_rod ; 52 dw Movement_hide_emote ; 53 @@ -95,28 +95,28 @@ MovementPointers: ; 5075 Movement_teleport_from: ; 5129 ld hl, OBJECT_09 add hl, bc - ld [hl], $c + ld [hl], OBJECT_09_VALUE_0C ret ; 5130 Movement_teleport_to: ; 5130 ld hl, OBJECT_09 add hl, bc - ld [hl], $d + ld [hl], OBJECT_09_VALUE_0D ret ; 5137 Movement_skyfall: ; 5137 ld hl, OBJECT_09 add hl, bc - ld [hl], $e + ld [hl], OBJECT_09_VALUE_0E ret ; 513e Movement_59: ; 513e ld hl, OBJECT_09 add hl, bc - ld [hl], $19 + ld [hl], OBJECT_09_VALUE_19 ret ; 5145 @@ -136,7 +136,7 @@ Movement_step_wait5: ; 5145 ld [hl], a ld hl, OBJECT_09 add hl, bc - ld [hl], $3 + ld [hl], OBJECT_09_VALUE_03 ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld [hl], STANDING @@ -159,7 +159,7 @@ Movement_58: ; 516a ld [hl], STANDING ld hl, OBJECT_09 add hl, bc - ld [hl], $12 + ld [hl], OBJECT_09_VALUE_12 ret ; 5189 @@ -169,7 +169,7 @@ Movement_fish_got_bite: ; 5189 ld [hl], $6 ld hl, OBJECT_09 add hl, bc - ld [hl], $10 + ld [hl], OBJECT_09_VALUE_10 ret ; 5196 @@ -183,7 +183,7 @@ Movement_rock_smash: ; 5196 ld [hl], $1 ld hl, OBJECT_09 add hl, bc - ld [hl], $11 + ld [hl], OBJECT_09_VALUE_11 ret ; 51ab @@ -193,7 +193,7 @@ Movement_fish_cast_rod: ; 51ab ld [hl], $6 ld hl, OBJECT_09 add hl, bc - ld [hl], $1 + ld [hl], OBJECT_09_VALUE_01 ret ; 51b8 @@ -219,7 +219,7 @@ Movement_step_end: ; 51c1 ld hl, OBJECT_09 add hl, bc - ld [hl], $1 + ld [hl], OBJECT_09_VALUE_01 ret ; 51db @@ -240,7 +240,7 @@ Movement_48: ; 51db ld hl, OBJECT_09 add hl, bc - ld [hl], $3 + ld [hl], OBJECT_09_VALUE_03 ld hl, VramState res 7, [hl] @@ -268,7 +268,7 @@ Movement_4b: ; 5210 ld hl, OBJECT_09 add hl, bc - ld [hl], $4 + ld [hl], OBJECT_09_VALUE_04 ld hl, VramState res 7, [hl] @@ -276,52 +276,52 @@ Movement_4b: ; 5210 ; 5222 Movement_step_sleep_1: ; 5222 - ld a, $1 - jr Function5247 + ld a, 1 + jr Movement_step_sleep_common Movement_step_sleep_2: ; 5226 - ld a, $2 - jr Function5247 + ld a, 2 + jr Movement_step_sleep_common Movement_step_sleep_3: ; 522a - ld a, $3 - jr Function5247 + ld a, 3 + jr Movement_step_sleep_common Movement_step_sleep_4: ; 522e - ld a, $4 - jr Function5247 + ld a, 4 + jr Movement_step_sleep_common Movement_step_sleep_5: ; 5232 - ld a, $5 - jr Function5247 + ld a, 5 + jr Movement_step_sleep_common Movement_step_sleep_6: ; 5236 - ld a, $6 - jr Function5247 + ld a, 6 + jr Movement_step_sleep_common Movement_step_sleep_7: ; 523a - ld a, $7 - jr Function5247 + ld a, 7 + jr Movement_step_sleep_common Movement_step_sleep_8: ; 523e - ld a, $8 - jr Function5247 + ld a, 8 + jr Movement_step_sleep_common Movement_step_sleep: ; 5242 ; parameters: ; duration (DecimalParam) call GetMovementByte - jr Function5247 + jr Movement_step_sleep_common -Function5247: ; 5247 +Movement_step_sleep_common: ; 5247 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], a ld hl, OBJECT_09 add hl, bc - ld [hl], $3 + ld [hl], OBJECT_09_VALUE_03 ld hl, OBJECT_11 add hl, bc @@ -333,14 +333,14 @@ Function5247: ; 5247 ret ; 525f -Movement_50: ; 525f +Movement_step_bump: ; 525f ld a, $1 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], a ld hl, OBJECT_09 add hl, bc - ld [hl], $b + ld [hl], OBJECT_09_VALUE_0B ld hl, OBJECT_11 add hl, bc ld [hl], $3 @@ -357,7 +357,7 @@ Movement_56: ; 5279 ld [hl], a ld hl, OBJECT_09 add hl, bc - ld [hl], $3 + ld [hl], OBJECT_09_VALUE_03 ld hl, OBJECT_11 add hl, bc ld [hl], $b @@ -726,7 +726,7 @@ HalfStep: ; 5400 ld [hl], $2 ld hl, OBJECT_09 add hl, bc - ld [hl], $a + ld [hl], OBJECT_09_VALUE_0A ret ; 5412 @@ -756,13 +756,13 @@ NormalStep: ; 5412 ld hl, OBJECT_09 add hl, bc - ld [hl], $2 + ld [hl], OBJECT_09_VALUE_02 ret .asm_543f ld hl, OBJECT_09 add hl, bc - ld [hl], $6 + ld [hl], OBJECT_09_VALUE_06 ret ; 5446 @@ -778,13 +778,13 @@ TurningStep: ; 5446 jr z, .asm_5461 ld hl, OBJECT_09 add hl, bc - ld [hl], $2 + ld [hl], OBJECT_09_VALUE_02 ret .asm_5461 ld hl, OBJECT_09 add hl, bc - ld [hl], $6 + ld [hl], OBJECT_09_VALUE_06 ret ; 5468 @@ -801,13 +801,13 @@ SlideStep: ; 5468 jr z, .asm_5483 ld hl, OBJECT_09 add hl, bc - ld [hl], $2 + ld [hl], OBJECT_09_VALUE_02 ret .asm_5483 ld hl, OBJECT_09 add hl, bc - ld [hl], $6 + ld [hl], OBJECT_09_VALUE_06 ret ; 548a @@ -830,12 +830,12 @@ JumpStep: ; 548a jr z, .asm_54b1 ld hl, OBJECT_09 add hl, bc - ld [hl], $8 + ld [hl], OBJECT_09_VALUE_08 ret .asm_54b1 ld hl, OBJECT_09 add hl, bc - ld [hl], $9 + ld [hl], OBJECT_09_VALUE_09 ret ; 54b8 diff --git a/engine/scripting.asm b/engine/scripting.asm index ae5041bc2..720ea1de4 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -2987,12 +2987,12 @@ Script_warpcheck: ; 0x97af6 call WarpCheck ret nc - callba SetAll_ScriptFlags3 + callba EnableEvents ret ; 0x97b01 -Function97b01: ; 0x97b01 - callba SetAll_ScriptFlags3 +Script_enableevents: ; unreferenced + callba EnableEvents ret ; 0x97b08 diff --git a/engine/sprites.asm b/engine/sprites.asm index 38b8ed82f..e95894292 100755 --- a/engine/sprites.asm +++ b/engine/sprites.asm @@ -75,7 +75,7 @@ Function8cf7a: ; 8cf7a ; 8cfa8 Function8cfa8: ; 8cfa8 (23:4fa8) - ld hl, wc314 + ld hl, wSpriteAnimationStructs ld e, 10 .loop diff --git a/home/map_objects.asm b/home/map_objects.asm index e5d6dab01..c6b7f271c 100644 --- a/home/map_objects.asm +++ b/home/map_objects.asm @@ -508,7 +508,7 @@ endr ret ; 1a47 -Function1a47:: ; 1a47 +GetInitialFacing:: ; 1a47 push bc push de ld e, a diff --git a/macros/movement.asm b/macros/movement.asm index 2b5720832..0b018f7d6 100644 --- a/macros/movement.asm +++ b/macros/movement.asm @@ -388,7 +388,10 @@ step_wait5: macro db movement_step_wait5 ; $4f endm -__enum__ = $51 + enum movement_step_bump +step_bump: macro + db movement_step_bump ; $50 + endm enum movement_fish_got_bite fish_got_bite: macro diff --git a/main.asm b/main.asm index 628f04794..93cd9d44f 100644 --- a/main.asm +++ b/main.asm @@ -2369,7 +2369,7 @@ CheckFacingObject:: ; 6fd9 ld bc, ObjectStructs ; redundant ld a, 0 ld [hMapObjectIndexBuffer], a - call Function7041 + call IsNPCAtCoord ret nc ld hl, OBJECT_DIRECTION_WALKING add hl, bc @@ -2392,14 +2392,14 @@ Function7009: ; 7009 ld hl, OBJECT_MAP_Y add hl, bc ld e, [hl] - jr Function7041 + jr IsNPCAtCoord ; 7015 Function7015: ; unreferenced ld a, [hMapObjectIndexBuffer] call GetObjectStruct call Function7021 - call Function7041 + call IsNPCAtCoord ret Function7021: ; 7021 @@ -2432,21 +2432,24 @@ Function7021: ; 7021 ret ; 7041 -Function7041: ; 7041 +IsNPCAtCoord: ; 7041 ld bc, ObjectStructs xor a .loop ld [hObjectStructIndexBuffer], a call GetObjectSprite jr z, .next + ld hl, OBJECT_FLAGS1 add hl, bc bit 7, [hl] jr nz, .next + ld hl, OBJECT_PALETTE add hl, bc bit 7, [hl] jr z, .got + call Function7171 jr nc, .ok jr .ok2 @@ -3631,7 +3634,7 @@ Function8286: ; 8286 ld hl, OBJECT_09 add hl, de - ld [hl], $0 + ld [hl], OBJECT_09_VALUE_00 ld hl, OBJECT_FACING_STEP add hl, de @@ -3882,7 +3885,7 @@ FollowNotExact:: ; 839e ld [hl], SPRITEMOVEDATA_FOLLOWNOTEXACT ld hl, OBJECT_09 add hl, de - ld [hl], $0 + ld [hl], OBJECT_09_VALUE_00 ret ; 8417 @@ -33993,7 +33996,7 @@ SECTION "bank20", ROMX, BANK[$20] DoPlayerMovement:: ; 80000 call GetMovementInput - ld a, $3e ; standing + ld a, movement_step_sleep_1 ld [MovementAnimation], a xor a ld [wd041], a @@ -34039,7 +34042,7 @@ GetPlayerMovement: ; 8002d cp PLAYER_BIKE jr z, .Normal cp PLAYER_SLIP - jr z, .Board + jr z, .Ice .Normal call CheckForcedMovementInput @@ -34067,7 +34070,7 @@ GetPlayerMovement: ; 8002d ret c jr .NotMoving -.Board +.Ice call CheckForcedMovementInput call GetMovementAction call CheckTileMovement @@ -34095,7 +34098,7 @@ GetPlayerMovement: ; 8002d jr z, .Standing ; Walking into an edge warp won't bump. - ld a, [wd041] + ld a, [EngineBuffer4] and a jr nz, .CantMove call PlayBump @@ -34268,13 +34271,13 @@ TryStep: ; 8016b jr z, TrySurfStep call CheckLandPermissions - jr c, .asm_801be + jr c, .bump call IsNPCInFront and a - jr z, .asm_801be + jr z, .bump cp 2 - jr z, .asm_801be + jr z, .bump ld a, [PlayerStandingTile] call CheckIceTile @@ -34282,7 +34285,7 @@ TryStep: ; 8016b ; Downhill riding is slower when not moving down. call CheckRiding - jr nz, .asm_801ae + jr nz, .walk ld hl, BikeFlags bit 2, [hl] ; downhill @@ -34303,7 +34306,7 @@ TryStep: ; 8016b scf ret -.asm_801ae +.walk ld a, STEP_WALK call DoStep scf @@ -34319,7 +34322,7 @@ TryStep: ; 8016b xor a ret -.asm_801be +.bump xor a ret ; 801c0 @@ -34417,13 +34420,13 @@ CheckEdgeWarp: ; 80226 add hl, de ld a, [PlayerStandingTile] cp [hl] - jr nz, .asm_80259 + jr nz, .nope ld a, 1 ld [wd041], a ld a, [WalkingDirection] cp STANDING - jr z, .asm_80259 + jr z, .nope ld e, a ld a, [PlayerDirection] @@ -34431,16 +34434,16 @@ CheckEdgeWarp: ; 80226 rrca and 3 cp e - jr nz, .asm_80259 - call WarpCheck ; CheckFallPit? - jr nc, .asm_80259 + jr nz, .nope + call WarpCheck + jr nc, .nope call StandInPlace scf ld a, 1 ret -.asm_80259 +.nope xor a ret @@ -34488,28 +34491,52 @@ endr dw .WalkInPlace .Slow - db $08, $09, $0a, $0b + slow_step_down + slow_step_up + slow_step_left + slow_step_right .Walk - db $0c, $0d, $0e, $0f + step_down + step_up + step_left + step_right .Bike - db $10, $11, $12, $13 + big_step_down + big_step_up + big_step_left + big_step_right .Ledge - db $30, $31, $32, $33 + jump_step_down + jump_step_up + jump_step_left + jump_step_right .Ice - db $1c, $1d, $1e, $1f + fast_slide_step_down + fast_slide_step_up + fast_slide_step_left + fast_slide_step_right .BackwardsLedge - db $31, $30, $33, $32 + jump_step_up + jump_step_down + jump_step_right + jump_step_left .Turn - db $04, $05, $06, $07 + half_step_down + half_step_up + half_step_left + half_step_right .WalkInPlace - db $80, $81, $82, $83 + db $80 + movement_turn_head_down + db $80 + movement_turn_head_up + db $80 + movement_turn_head_left + db $80 + movement_turn_head_right ; 802b3 StandInPlace: ; 802b3 ld a, 0 ld [wd04e], a - ld a, $3e ; standing + ld a, movement_step_sleep_1 ld [MovementAnimation], a xor a ret @@ -34519,7 +34546,7 @@ StandInPlace: ; 802b3 WalkInPlace: ; 802bf ld a, 0 ld [wd04e], a - ld a, $50 ; walking + ld a, movement_step_bump ld [MovementAnimation], a xor a ret @@ -34529,7 +34556,7 @@ WalkInPlace: ; 802bf CheckForcedMovementInput: ; 802cb ; When sliding on ice, input is forced to remain in the same direction. - call Function80404 + call CheckStandingOnIce ret nc ld a, [wd04e] @@ -34542,7 +34569,7 @@ CheckForcedMovementInput: ; 802cb ld hl, .data_802e8 add hl, de ld a, [CurInput] - and A_BUTTON | B_BUTTON | SELECT | START + and BUTTONS or [hl] ld [CurInput], a ret @@ -34613,33 +34640,39 @@ GetMovementAction: ; 802ec IsNPCInFront: ; 80341 - +; Returns 0 if there is an NPC in front that you can't move +; Returns 1 if there is no NPC in front +; Returns 2 if there is a movable NPC in front ld a, 0 ld [hMapObjectIndexBuffer], a +; Load the next X coordinate into d ld a, [PlayerMapX] ld d, a ld a, [WalkingX] add d ld d, a +; Load the next Y coordinate into e ld a, [PlayerMapY] ld e, a ld a, [WalkingY] add e ld e, a +; Find an object struct with coordinates equal to d,e ld bc, ObjectStructs ; redundant - callba Function7041 - jr nc, .asm_80369 + callba IsNPCAtCoord + jr nc, .nope call Function8036f - jr c, .asm_8036c + jr c, .no_bump +; .bump xor a ret -.asm_80369 +.nope ld a, 1 ret -.asm_8036c +.no_bump ld a, 2 ret ; 8036f @@ -34648,27 +34681,27 @@ IsNPCInFront: ; 80341 Function8036f: ; 8036f ld hl, BikeFlags - bit 0, [hl] - jr z, .asm_8039c + bit 0, [hl] ; using strength + jr z, .nope - ld hl, $7 + ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld a, [hl] - cp $ff - jr nz, .asm_8039c + cp STANDING + jr nz, .nope - ld hl, $6 + ld hl, OBJECT_PALETTE add hl, bc bit 6, [hl] - jr z, .asm_8039c + jr z, .nope - ld hl, $5 + ld hl, OBJECT_FLAGS2 add hl, bc set 2, [hl] ld a, [WalkingDirection] ld d, a - ld hl, $20 + ld hl, OBJECT_32 add hl, bc ld a, [hl] and $fc @@ -34678,7 +34711,7 @@ Function8036f: ; 8036f scf ret -.asm_8039c +.nope xor a ret ; 8039e @@ -34799,24 +34832,24 @@ WaterToLandSprite: ; 803f9 ; 80404 -Function80404:: ; 80404 +CheckStandingOnIce:: ; 80404 ld a, [wd04e] cp 0 - jr z, .asm_80420 + jr z, .nope cp $f0 - jr z, .asm_80420 + jr z, .nope ld a, [PlayerStandingTile] call CheckIceTile - jr nc, .asm_8041e + jr nc, .yep ld a, [PlayerState] cp PLAYER_SLIP - jr nz, .asm_80420 + jr nz, .nope -.asm_8041e +.yep scf ret -.asm_80420 +.nope and a ret ; 80422 @@ -34824,7 +34857,7 @@ Function80404:: ; 80404 Function80422:: ; 80422 ld hl, wc2de - ld a, $3e ; standing + ld a, movement_step_sleep_1 cp [hl] ret z ld [hl], a diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm index 06bf5453b..72669766f 100755 --- a/misc/mobile_5c.asm +++ b/misc/mobile_5c.asm @@ -1960,7 +1960,7 @@ Function171ccd: ; 171ccd (5c:5ccd) ld de, wMapPals ld bc, $40 call CopyBytes - ld hl, MovementAnimation + ld hl, EngineBuffer5 ld a, $ff ld [hli], a ld a, $7f diff --git a/wram.asm b/wram.asm index effb83b1f..504294902 100644 --- a/wram.asm +++ b/wram.asm @@ -319,7 +319,8 @@ ScriptVar:: ; c2dd ds 1 wc2de:: ds 1 -wc2df:: ds 3 +wc2df:: ds 1 + ds 2 wMovementPerson:: ds 1 wMovementDataPointer:: ds 3 ; dba wc2e6:: ds 4 @@ -1568,6 +1569,7 @@ wTempTrainerEventFlagLo:: wTempTrainerEventFlagHi:: MovementAnimation:: ; d042 +EngineBuffer5:: ds 1 wTempTrainerClass:: @@ -2089,6 +2091,11 @@ ScriptFlags:: ; d434 ScriptFlags2:: ; d435 ds 1 ScriptFlags3:: ; d436 +; bit 0: count steps +; bit 1: xy triggers +; bit 2: warps and connections +; bit 4: wild encounters +; bit 5: unknown ds 1 ScriptMode:: ; d437 @@ -2198,7 +2205,7 @@ wd4d0:: ds 1 wd4d1:: ds 1 ds 4 -ObjectStructs:: +ObjectStructs:: ; d4d6 object_struct: MACRO \1Struct:: \1Sprite:: ds 1 From ed44de4bb4688f6b8c83aeb4f5fd8658d17615fb Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 14 Nov 2015 14:41:47 -0500 Subject: [PATCH 04/40] More map object work --- constants/map_constants.asm | 16 +- constants/sprite_constants.asm | 26 +- engine/events.asm | 2 +- engine/map_objects.asm | 401 ++++++++++--------- engine/map_setup.asm | 4 +- engine/movement.asm | 42 +- engine/overworld.asm | 4 +- gfx/misc/{fishing3.2bpp => boulderdust.2bpp} | Bin gfx/misc/{fishing1.2bpp => shadow.2bpp} | 0 home.asm | 12 +- home/map.asm | 36 +- home/map_objects.asm | 7 +- main.asm | 259 ++++++------ tilesets/animations.asm | 18 +- wram.asm | 32 +- 15 files changed, 450 insertions(+), 409 deletions(-) rename gfx/misc/{fishing3.2bpp => boulderdust.2bpp} (100%) rename gfx/misc/{fishing1.2bpp => shadow.2bpp} (100%) diff --git a/constants/map_constants.asm b/constants/map_constants.asm index c98c64ff9..7891b10f9 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -529,18 +529,18 @@ const_value SET 1 const OBJECT_FACING const OBJECT_09 const OBJECT_STEP_DURATION - const OBJECT_11 + const OBJECT_ACTION const OBJECT_12 const OBJECT_FACING_STEP const OBJECT_STANDING_TILE const OBJECT_NEXT_TILE - const OBJECT_MAP_X - const OBJECT_MAP_Y const OBJECT_NEXT_MAP_X const OBJECT_NEXT_MAP_Y - const OBJECT_20 - const OBJECT_21 - const OBJECT_22 + const OBJECT_MAP_X + const OBJECT_MAP_Y + const OBJECT_INIT_X + const OBJECT_INIT_Y + const OBJECT_RADIUS const OBJECT_SPRITE_X const OBJECT_SPRITE_Y const OBJECT_SPRITE_X_OFFSET @@ -550,7 +550,7 @@ const_value SET 1 const OBJECT_29 const OBJECT_30 const OBJECT_31 - const OBJECT_32 + const OBJECT_RANGE ; 33-39 are not used ; map object struct @@ -651,3 +651,5 @@ NUM_SPAWNS EQU const_value const PALETTE_NITE const PALETTE_MORN const PALETTE_DARK + +FIXED_FACING EQU 2 diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm index d42f0f5d8..1310b0565 100644 --- a/constants/sprite_constants.asm +++ b/constants/sprite_constants.asm @@ -220,15 +220,15 @@ NUM_SPRITEHEADER_FIELDS EQU const_value const SPRITEMOVEDATA_SMASHABLE_ROCK const SPRITEMOVEDATA_STRENGTH_BOULDER const SPRITEMOVEDATA_FOLLOWNOTEXACT - const SPRITEMOVEDATA_1B - const SPRITEMOVEDATA_1C - const SPRITEMOVEDATA_1D + const SPRITEMOVEDATA_SHADOW + const SPRITEMOVEDATA_EMOTE + const SPRITEMOVEDATA_SCREENSHAKE const SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE const SPRITEMOVEDATA_SPINCLOCKWISE const SPRITEMOVEDATA_20 const SPRITEMOVEDATA_BIGDOLL - const SPRITEMOVEDATA_22 - const SPRITEMOVEDATA_23 + const SPRITEMOVEDATA_BOULDERDUST + const SPRITEMOVEDATA_GRASS const SPRITEMOVEDATA_LAPRAS const SPRITEMOVEDATA_25 NUM_SPRITEMOVEDATA EQU const_value +- 1 @@ -255,23 +255,23 @@ SPRITEMOVEDATA_FIELDS EQU 6 const SPRITEMOVEFN_SCRIPTED const SPRITEMOVEFN_STRENGTH const SPRITEMOVEFN_FOLLOWNOTEXACT - const SPRITEMOVEFN_13 - const SPRITEMOVEFN_14 + const SPRITEMOVEFN_SHADOW + const SPRITEMOVEFN_EMOTE const SPRITEMOVEFN_BIG_SNORLAX const SPRITEMOVEFN_BOUNCE - const SPRITEMOVEFN_17 + const SPRITEMOVEFN_SCREENSHAKE const SPRITEMOVEFN_SPIN_CLOCKWISE const SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE - const SPRITEMOVEFN_1A - const SPRITEMOVEFN_1B + const SPRITEMOVEFN_BOULDERDUST + const SPRITEMOVEFN_GRASS MAX_OUTDOOR_SPRITES EQU 23 const_def const OBJECT_09_VALUE_00 - const OBJECT_09_VALUE_01 - const OBJECT_09_VALUE_02 - const OBJECT_09_VALUE_03 + const OBJECT_09_VALUE_01 ; standing + const OBJECT_09_VALUE_02 ; walking + const OBJECT_09_VALUE_03 ; bumping const OBJECT_09_VALUE_04 const OBJECT_09_VALUE_05 const OBJECT_09_VALUE_06 diff --git a/engine/events.asm b/engine/events.asm index 04e090483..004cbf33e 100644 --- a/engine/events.asm +++ b/engine/events.asm @@ -368,7 +368,7 @@ CheckTileEvent: ; 96874 call CheckCoordEventScriptFlag jr z, .coord_events_disabled - call CheckCurrentMapXYTriggers + call CheckCurrentNextMapXYTriggers jr c, .coord_event .coord_events_disabled diff --git a/engine/map_objects.asm b/engine/map_objects.asm index a53658e60..670eca9a6 100644 --- a/engine/map_objects.asm +++ b/engine/map_objects.asm @@ -30,15 +30,15 @@ SpriteMovementData:: ; 4273 db SPRITEMOVEFN_STANDING, DOWN, $01, $2e, $10, $00 ; 18 db SPRITEMOVEFN_STRENGTH, DOWN, $01, $2e, $00, $40 ; 19 db SPRITEMOVEFN_FOLLOWNOTEXACT, DOWN, $01, $02, $00, $00 ; 1a - db SPRITEMOVEFN_13, DOWN, $00, $8e, $01, $00 ; 1b - db SPRITEMOVEFN_14, DOWN, $08, $8e, $02, $00 ; 1c - db SPRITEMOVEFN_17, DOWN, $00, $82, $00, $00 ; 1d + db SPRITEMOVEFN_SHADOW, DOWN, $00, $8e, $01, $00 ; 1b + db SPRITEMOVEFN_EMOTE, DOWN, $08, $8e, $02, $00 ; 1c + db SPRITEMOVEFN_SCREENSHAKE, DOWN, $00, $82, $00, $00 ; 1d db SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE, LEFT, $01, $00, $00, $00 ; 1e db SPRITEMOVEFN_SPIN_CLOCKWISE, RIGHT, $01, $00, $00, $00 ; 1f db SPRITEMOVEFN_STRENGTH, DOWN, $0c, $2e, $01, $c0 ; 20 db SPRITEMOVEFN_STRENGTH, DOWN, $0d, $2e, $01, $c0 ; 21 - db SPRITEMOVEFN_1A, DOWN, $0e, $8e, $01, $00 ; 22 - db SPRITEMOVEFN_1B, DOWN, $0f, $8e, $02, $00 ; 23 + db SPRITEMOVEFN_BOULDERDUST, DOWN, $0e, $8e, $01, $00 ; 22 + db SPRITEMOVEFN_GRASS, DOWN, $0f, $8e, $02, $00 ; 23 db SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, $01, $00, $00, $20 ; 24 db SPRITEMOVEFN_00, DOWN, $01, $00, $00, $00 ; 25 ; 4357 @@ -84,7 +84,7 @@ Function4386: ; 4386 res 6, [hl] ld a, [XCoord] ld e, a - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld a, [hl] add 1 @@ -94,7 +94,7 @@ Function4386: ; 4386 jr nc, .ok ld a, [YCoord] ld e, a - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld a, [hl] add 1 @@ -110,7 +110,7 @@ Function4386: ; 4386 set 6, [hl] ld a, [XCoord] ld e, a - ld hl, OBJECT_20 + ld hl, OBJECT_INIT_X add hl, bc ld a, [hl] add 1 @@ -120,7 +120,7 @@ Function4386: ; 4386 jr nc, .ok2 ld a, [YCoord] ld e, a - ld hl, OBJECT_21 + ld hl, OBJECT_INIT_Y add hl, bc ld a, [hl] add 1 @@ -224,7 +224,8 @@ Function4448: ; 4448 ; 444d Function444d: ; 444d - ld hl, OBJECT_11 +; call [4 * ObjectStructs[ObjInd, OBJECT_ACTION] + de] + ld hl, OBJECT_ACTION add hl, bc ld a, [hl] ld l, a @@ -242,39 +243,39 @@ endr Pointers445f: ; 445f dw Function44a3 ; 00 - dw Function44a3 ; 01 - dw Function44b5 ; 02 - dw Function44aa ; 03 - dw Function44c1 ; 04 - dw Function44aa ; 05 - dw Function4508 ; 06 - dw Function44aa ; 07 - dw Function4529 ; 08 - dw Function44aa ; 09 - dw Function4539 ; 0a - dw Function44a3 ; 0b - dw Function456e ; 0c - dw Function456e ; 0d - dw Function457b ; 0e - dw Function44a3 ; 0f - dw Function4582 ; 10 - dw Function4582 ; 11 - dw Function4589 ; 12 - dw Function4589 ; 13 - dw Function4590 ; 14 - dw Function45a4 ; 15 - dw Function45ab ; 16 - dw Function44aa ; 17 - dw Function45be ; 18 - dw Function45be ; 19 - dw Function45c5 ; 1a - dw Function45c5 ; 1b - dw Function45da ; 1c - dw Function44a3 ; 1d - dw Function45ed ; 1e - dw Function44a3 ; 1f - dw Function44e4 ; 20 - dw Function44aa ; 21 + dw Function44a3 ; 01 (00) + dw Function44b5 ; 02 (01) + dw Function44aa ; 03 (02) + dw Function44c1 ; 04 (03) + dw Function44aa ; 05 (04) + dw Function4508 ; 06 (05) + dw Function44aa ; 07 (06) + dw Function4529 ; 08 (07) + dw Function44aa ; 09 (08) + dw Function4539 ; 0a (09) + dw Function44a3 ; 0b (0a) + dw Function456e ; 0c (0b) + dw Function456e ; 0d (0c) + dw Function457b ; 0e (0d) + dw Function44a3 ; 0f (0e) + dw Function4582 ; 10 (0f) + dw Function4582 ; 11 (10) + dw Function4589 ; 12 (11) + dw Function4589 ; 13 (12) + dw Function4590 ; 14 (13) + dw Function45a4 ; 15 (14) + dw Function45ab ; 16 (15) + dw Function44aa ; 17 (16) + dw Function45be ; 18 (17) + dw Function45be ; 19 (18) + dw Function45c5 ; 1a (19) + dw Function45c5 ; 1b (1a) + dw Function45da ; 1c (1b) + dw Function44a3 ; 1d (1c) + dw Function45ed ; 1e (1d) + dw Function44a3 ; 1f (1e) + dw Function44e4 ; 20 (1f) + dw Function44aa ; 21 (20) ; 44a3 Function44a3: ; 44a3 @@ -286,7 +287,7 @@ Function44a3: ; 44a3 Function44aa: ; 44aa call GetSpriteDirection - or 0 + or 0 ; useless ld hl, OBJECT_FACING_STEP add hl, bc ld [hl], a @@ -556,17 +557,17 @@ Function45ed: ; 45ed Function4600: ; 4600 - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld a, [hl] - ld hl, OBJECT_NEXT_MAP_X + ld hl, OBJECT_MAP_X add hl, bc ld [hl], a - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld a, [hl] - ld hl, OBJECT_NEXT_MAP_Y + ld hl, OBJECT_MAP_Y add hl, bc ld [hl], a @@ -588,17 +589,17 @@ Function4600: ; 4600 Function462a: ; 462a - ld hl, OBJECT_NEXT_MAP_X + ld hl, OBJECT_MAP_X add hl, bc ld a, [hl] - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld [hl], a - ld hl, OBJECT_NEXT_MAP_Y + ld hl, OBJECT_MAP_Y add hl, bc ld a, [hl] - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld [hl], a @@ -662,7 +663,7 @@ Function467b: ; 467b rept 3 ld [hli], a endr - ld [hl], a + ld [hl], a ; OBJECT_30 ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld [hl], STANDING @@ -675,8 +676,8 @@ Function4690: ; 4690 ld [hl], a ld hl, OBJECT_FLAGS1 add hl, bc - bit 2, [hl] - jr nz, .ok + bit FIXED_FACING, [hl] + jr nz, GetCurTile rept 2 add a @@ -685,12 +686,7 @@ endr ld hl, OBJECT_FACING add hl, bc ld [hl], a - -.ok - ; fallthrough -; 46a6 - -Function46a6: ; 46a6 +GetCurTile: ; 46a6 call GetStepVector @@ -699,21 +695,21 @@ Function46a6: ; 46a6 ld [hl], a ld a, d - call Function4730 - ld hl, OBJECT_NEXT_MAP_X + call GetStepVectorSign + ld hl, OBJECT_MAP_X add hl, bc add [hl] - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld [hl], a ld d, a ld a, e - call Function4730 - ld hl, OBJECT_NEXT_MAP_Y + call GetStepVectorSign + ld hl, OBJECT_MAP_Y add hl, bc add [hl] - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld [hl], a ld e, a @@ -729,7 +725,7 @@ Function46a6: ; 46a6 ret ; 46d7 -Function46d7: ; 46d7 +AddStepVector: ; 46d7 call GetStepVector @@ -789,13 +785,15 @@ StepVectors: ; 4700 db 4, 0, 4, 4 ; 4730 -Function4730: ; 4730 +GetStepVectorSign: ; 4730 add a - ret z + ret z ; 0 or 128 + ld a, 1 - ret nc + ret nc ; 1 - 127 + ld a, -1 - ret + ret ; 129 - 255 ; 4738 Function4738: ; 4738 @@ -804,7 +802,7 @@ Function4738: ; 4738 ld a, [hl] and %00000011 ld [wd151], a - call Function46d7 + call AddStepVector ld a, [wd14e] add d ld [wd14e], a @@ -849,28 +847,28 @@ RestoreDefaultMovement: ; 4769 ret ; 4780 -ClearObjectStructField27: ; 4780 +ClearObjectMovementByteIndex: ; 4780 ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc ld [hl], 0 ret ; 4787 -IncrementObjectStructField27: ; 4787 +IncrementObjectMovementByteIndex: ; 4787 ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc inc [hl] ret ; 478d -DecrementObjectStructField27: ; 478d +DecrementObjectMovementByteIndex: ; 478d ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc dec [hl] ret ; 4793 -JumptoObjectStructField27: ; 4793 +JumptoObjectMovementByteIndex: ; 4793 ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc ld a, [hl] @@ -893,7 +891,7 @@ IncrementObjectStructField28: ; 47a2 ret ; 47a8 -JumptoObjectStructField28: ; 47a8 +Object28AnonymousJumptable: ; 47a8 ; anonymous jumptable ld hl, OBJECT_28 add hl, bc @@ -918,10 +916,10 @@ SetValueObjectStructField28: ; 47b6 ; 47bc Function47bc: ; 47bc - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld d, [hl] - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld e, [hl] push bc @@ -1011,7 +1009,7 @@ Function47dd: ; 47dd ld hl, OBJECT_FACING add hl, bc ld [hl], a - jp Function4b1d + jp RandomStepDuration_Slow ; 4851 .RandomSpin2: ; 4851 @@ -1029,13 +1027,13 @@ Function47dd: ; 47dd .keep ld [hl], a - jp Function4b26 + jp RandomStepDuration_Fast ; 4869 .Standing: ; 4869 call Function462a call Function467b - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], 1 ld hl, OBJECT_09 @@ -1091,7 +1089,7 @@ Function47dd: ; 47dd ; 48ac .Strength: ; 48ac - call JumptoObjectStructField27 + call JumptoObjectMovementByteIndex dw .Strength_Start dw .Strength_Stop ; 48b3 @@ -1109,7 +1107,7 @@ Function47dd: ; 47dd res 2, [hl] jr z, .ok - ld hl, OBJECT_32 + ld hl, OBJECT_RANGE add hl, bc ld a, [hl] and %00000011 @@ -1120,7 +1118,7 @@ Function47dd: ; 47dd ld de, SFX_STRENGTH call PlaySFX - call Function5538 + call SpawnStrengthBoulderDust call Function463f ld hl, OBJECT_09 add hl, bc @@ -1137,7 +1135,7 @@ Function47dd: ; 47dd ret .on_pit - call IncrementObjectStructField27 + call IncrementObjectMovementByteIndex ; fallthrough ; 48f8 @@ -1149,15 +1147,15 @@ Function47dd: ; 47dd ; 48ff .FollowNotExact: ; 48ff - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld d, [hl] - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld e, [hl] - ld hl, OBJECT_32 + ld hl, OBJECT_RANGE add hl, bc ld a, [hl] @@ -1169,7 +1167,7 @@ Function47dd: ; 47dd cp STANDING jr z, .standing - ld hl, OBJECT_NEXT_MAP_X + ld hl, OBJECT_MAP_X add hl, bc ld a, [hl] cp d @@ -1183,7 +1181,7 @@ Function47dd: ; 47dd jr .done .equal - ld hl, OBJECT_NEXT_MAP_Y + ld hl, OBJECT_MAP_Y add hl, bc ld a, [hl] cp e @@ -1210,7 +1208,7 @@ Function47dd: ; 47dd ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld [hl], STANDING - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], 1 ret @@ -1221,7 +1219,7 @@ Function47dd: ; 47dd ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld [hl], STANDING - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], 9 ld hl, OBJECT_09 @@ -1235,7 +1233,7 @@ Function47dd: ; 47dd ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld [hl], STANDING - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], 10 ld hl, OBJECT_09 @@ -1245,14 +1243,14 @@ Function47dd: ; 47dd ; 4984 .MovementSpinCounterclockwise: ; 4984 - call JumptoObjectStructField27 + call JumptoObjectMovementByteIndex dw .MovementSpinInit dw .MovementSpinRepeat dw .MovementSpinTurnLeft ; 498d .MovementSpinClockwise: ; 498d - call JumptoObjectStructField27 + call JumptoObjectMovementByteIndex dw .MovementSpinInit dw .MovementSpinRepeat dw .MovementSpinTurnRight @@ -1260,25 +1258,25 @@ Function47dd: ; 47dd .MovementSpinInit: ; 4996 call Function467b - call IncrementObjectStructField27 + call IncrementObjectMovementByteIndex ; fallthrough ; 499c .MovementSpinRepeat: ; 499c - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], 1 - ld hl, OBJECT_32 + ld hl, OBJECT_RANGE add hl, bc ld a, [hl] - ld a, $10 + ld a, 16 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], a ld hl, OBJECT_09 add hl, bc ld [hl], OBJECT_09_VALUE_03 - call IncrementObjectStructField27 + call IncrementObjectMovementByteIndex ret ; 49b8 @@ -1316,13 +1314,13 @@ Function47dd: ; 47dd ld a, [hl] pop hl ld [hl], a - call DecrementObjectStructField27 + call DecrementObjectMovementByteIndex ret ; 49e5 .Movement13: ; 49e5 call ._Movement13_14_1a_1b - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], $7 ld hl, OBJECT_STEP_DURATION @@ -1361,7 +1359,7 @@ Function47dd: ; 47dd .Movement14: ; 4a21 call Function467b call ._Movement13_14_1a_1b - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], 8 ld hl, OBJECT_STEP_DURATION @@ -1382,7 +1380,7 @@ Function47dd: ; 47dd .Movement1a: ; 4a46 call Function467b call ._Movement13_14_1a_1b - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], $e ld hl, OBJECT_STEP_DURATION @@ -1429,7 +1427,7 @@ endr .Movement1b: ; 4a89 call Function467b call ._Movement13_14_1a_1b - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], $f ld hl, OBJECT_STEP_DURATION @@ -1446,7 +1444,7 @@ endr ; 4aa8 ._Movement13_14_1a_1b: ; 4aa8 - ld hl, OBJECT_32 + ld hl, OBJECT_RANGE add hl, bc ld a, [hl] push bc @@ -1464,10 +1462,10 @@ endr .Movement17: ; 4abc call Function467b - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], 0 - ld hl, OBJECT_32 + ld hl, OBJECT_RANGE add hl, bc ld a, [hl] call ._Movement17 @@ -1506,7 +1504,7 @@ endr call Function6ec1 jr c, Function4b17 call Function463f - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], 2 ld hl, wd4cf @@ -1530,28 +1528,28 @@ Function4b17: ; 4b17 ; fallthrough ; 4b1d -Function4b1d: ; 4b1d +RandomStepDuration_Slow: ; 4b1d call Random ld a, [hRandomAdd] and %01111111 - jr Function4b2d + jr SetRandomStepDuration ; 4b26 -Function4b26: ; 4b26 +RandomStepDuration_Fast: ; 4b26 call Random ld a, [hRandomAdd] and %00011111 ; fallthrough ; 4b2d -Function4b2d: ; 4b2d +SetRandomStepDuration: ; 4b2d ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], a ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld [hl], STANDING - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], 1 ld hl, OBJECT_09 @@ -1602,20 +1600,21 @@ Function4b79: ; 4b79 ; 4b86 Function4b86: ; 4b86 - call JumptoObjectStructField28 + call Object28AnonymousJumptable +; anonymous jumptable dw Function4b8d dw Function4ba9 ; 4b8d Function4b8d: ; 4b8d - call Function46d7 + call AddStepVector call UpdateJumpPosition ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz call Function4600 - call Function46a6 + call GetCurTile ld hl, OBJECT_FLAGS2 add hl, bc res 3, [hl] @@ -1624,7 +1623,7 @@ Function4b8d: ; 4b8d ; 4ba9 Function4ba9: ; 4ba9 - call Function46d7 + call AddStepVector call UpdateJumpPosition ld hl, OBJECT_STEP_DURATION add hl, bc @@ -1638,7 +1637,8 @@ Function4ba9: ; 4ba9 ; 4bbf Function4bbf: ; 4bbf - call JumptoObjectStructField28 + call Object28AnonymousJumptable +; anonymous jumptable dw Function4bca dw Function4bd2 dw Function4bf2 @@ -1671,7 +1671,7 @@ Function4bd2: ; 4bd2 ; 4bf2 Function4bf2: ; 4bf2 - call Function46a6 + call GetCurTile ld hl, wd150 set 7, [hl] call IncrementObjectStructField28 @@ -1695,7 +1695,8 @@ Function4bfd: ; 4bfd ; 4c18 Function4c18: ; 4c18 - call JumptoObjectStructField28 + call Object28AnonymousJumptable +; anonymous jumptable dw Function4c23 dw Function4c32 dw Function4c42 @@ -1714,7 +1715,7 @@ Function4c23: ; 4c23 ; 4c32 Function4c32: ; 4c32 - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], 4 ld hl, OBJECT_STEP_DURATION @@ -1743,7 +1744,7 @@ Function4c42: ; 4c42 ; 4c5d Function4c5d: ; 4c5d - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], 4 ld hl, OBJECT_31 @@ -1771,7 +1772,8 @@ Function4c5d: ; 4c5d ; 4c89 Function4c89: ; 4c89 - call JumptoObjectStructField28 + call Object28AnonymousJumptable +; anonymous jumptable dw Function4c9a dw Function4caa dw Function4cb3 @@ -1782,7 +1784,7 @@ Function4c89: ; 4c89 ; 4c9a Function4c9a: ; 4c9a - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], 0 ld hl, OBJECT_STEP_DURATION @@ -1816,7 +1818,7 @@ Function4cb3: ; 4cb3 ; 4cc9 Function4cc9: ; 4cc9 - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], 4 ld hl, OBJECT_31 @@ -1847,7 +1849,7 @@ Function4ceb: ; 4ceb ; 4cf5 Function4cf5: ; 4cf5 - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], 4 ld hl, OBJECT_STEP_DURATION @@ -1870,7 +1872,8 @@ Function4d01: ; 4d01 ; 4d14 Function4d14: ; 4d14 - call JumptoObjectStructField28 + call Object28AnonymousJumptable +; anonymous jumptable dw Function4d1f dw Function4d2e dw Function4d4f @@ -1878,7 +1881,7 @@ Function4d14: ; 4d14 ; 4d1f Function4d1f: ; 4d1f - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], 0 ld hl, OBJECT_STEP_DURATION @@ -1893,7 +1896,7 @@ Function4d2e: ; 4d2e add hl, bc dec [hl] ret nz - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], 2 ld hl, OBJECT_12 @@ -1943,7 +1946,8 @@ Function4d6b: ; 4d6b ; 4d7e Function4d7e: ; 4d7e - call JumptoObjectStructField28 + call Object28AnonymousJumptable +; anonymous jumptable dw Function4d85 dw Function4d94 ; 4d85 @@ -1993,7 +1997,7 @@ Function4db5: ; 4db5 ld a, 0 .yes - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], a ret @@ -2009,7 +2013,7 @@ Function4dc8: ; 4dc8 ld a, 5 .yes - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], a jp Function4b79 @@ -2052,7 +2056,8 @@ Function4dff: ; 4dff ; 4e0c Function4e0c: ; 4e0c - call JumptoObjectStructField28 + call Object28AnonymousJumptable +; anonymous jumptable dw Function4e13 dw Function4e21 ; 4e13 @@ -2077,7 +2082,7 @@ Function4e21: ; 4e21 Function4e2b: ; 4e2b call Function4fb2 - call Function46d7 + call AddStepVector ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] @@ -2093,18 +2098,19 @@ Function4e2b: ; 4e2b ; 4e47 Function4e47: ; 4e47 - call Function46d7 + call AddStepVector ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz call Function4600 - jp Function4b1d + jp RandomStepDuration_Slow ; 4e56 Function4e56: ; 4e56 ; AnimateStep? - call JumptoObjectStructField28 + call Object28AnonymousJumptable +; anonymous jumptable dw Function4e5d dw Function4e65 ; 4e5d @@ -2122,6 +2128,7 @@ Function4e65: ; 4e65 add hl, bc dec [hl] ret nz + ld hl, wd150 set 6, [hl] call Function4600 @@ -2135,7 +2142,8 @@ Function4e65: ; 4e65 ; 4e83 Function4e83: ; 4e83 - call JumptoObjectStructField28 + call Object28AnonymousJumptable +; anonymous jumptable dw Function4e8e dw Function4ea4 dw Function4ead @@ -2192,16 +2200,16 @@ Function4ec0: ; 4ec0 ; 4ecd Function4ecd: ; 4ecd - call Function46d7 + call AddStepVector ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz push bc - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld d, [hl] - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld e, [hl] ld hl, OBJECT_MAP_OBJECT_INDEX @@ -2259,7 +2267,8 @@ Function4f04: ; 4f04 ; 4f33 Function4f33: ; 4f33 - call JumptoObjectStructField28 + call Object28AnonymousJumptable +; anonymous jumptable dw Function4f3a dw Function4f43 ; 4f3a @@ -2312,24 +2321,26 @@ Function4f6c: ; 4f6c ; 4f77 Function4f77: ; 4f77 - call JumptoObjectStructField28 ; ???? + call Object28AnonymousJumptable ; ???? ; 4f7a Function4f7a: ; 4f7a - call JumptoObjectStructField28 + call Object28AnonymousJumptable +; anonymous jumptable dw Function4f83 dw Function4f83 dw Function4f83 ; 4f83 Function4f83: ; 4f83 - call JumptoObjectStructField28 + call Object28AnonymousJumptable +; anonymous jumptable dw Function4f8a dw Function4f99 ; 4f8a Function4f8a: ; 4f8a - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], $10 ld hl, OBJECT_STEP_DURATION @@ -2602,79 +2613,80 @@ Function550a: ; 550a ret ; 5529 -Function5529: ; 5529 +SpawnShadow: ; 5529 push bc - ld de, .data_5535 - call Function55b9 - call Function55ac + ld de, .ShadowObject + call CopyTempObjectData + call InitTempObject pop bc ret -.data_5535 - db $00, $05, $1b +.ShadowObject + ; vtile, palette, movement + db $00, PAL_OW_SILVER, SPRITEMOVEDATA_SHADOW ; 5538 -Function5538: ; 5538 +SpawnStrengthBoulderDust: ; 5538 push bc - ld de, .data_5544 - call Function55b9 - call Function55ac + ld de, .BoulderDustObject + call CopyTempObjectData + call InitTempObject pop bc ret -.data_5544 - db $00, $05, $22 +.BoulderDustObject + db $00, PAL_OW_SILVER, SPRITEMOVEDATA_BOULDERDUST ; 5547 -Function5547: ; 5547 +SpawnEmote: ; 5547 push bc - ld de, .data_5553 - call Function55b9 - call Function55ac + ld de, .EmoteObject + call CopyTempObjectData + call InitTempObject pop bc ret -.data_5553 - db $00, $05, $1c +.EmoteObject + db $00, PAL_OW_SILVER, SPRITEMOVEDATA_EMOTE ; 5556 -Function5556: ; 5556 +ShakeGrass: ; 5556 push bc ld de, .data_5562 - call Function55b9 - call Function55ac + call CopyTempObjectData + call InitTempObject pop bc ret .data_5562 - db $00, $06, $23 + db $00, PAL_OW_TREE, SPRITEMOVEDATA_GRASS ; 5565 -Function5565: ; 5565 +ShakeScreen: ; 5565 push bc push af - ld de, .data_5576 - call Function55b9 + ld de, .ScreenShakeObject + call CopyTempObjectData pop af - ld [wc2f5], a - call Function55ac + ld [wTempObjectCopyRange], a + call InitTempObject pop bc ret -.data_5576 - db $00, $05, $1d +.ScreenShakeObject + db $00, PAL_OW_SILVER, SPRITEMOVEDATA_SCREENSHAKE ; 5579 -Function5579: ; 5579 +DespawnEmote: ; 5579 push bc ld a, [hMapObjectIndexBuffer] ld c, a - call Function5582 + call .DeleteEmote pop bc ret ; 5582 -Function5582: ; 5582 +.DeleteEmote: ; 5582 ld de, ObjectStructs ld a, NUM_OBJECT_STRUCTS .loop @@ -2705,20 +2717,21 @@ Function5582: ; 5582 ret ; 55ac -Function55ac: ; 55ac +InitTempObject: ; 55ac call FindFirstEmptyObjectStruct ret nc ld d, h ld e, l - callba Function8286 + callba CopyTempObjectToObjectStruct ret ; 55b9 -Function55b9: ; 55b9 -; load into wc2f0: -; -1, -1, [de], [de + 1], [de + 2], [hMapObjectIndexBuffer], [MapX], [MapY], -1 - ld hl, wc2f0 +CopyTempObjectData: ; 55b9 +; load into wTempObjectCopy: +; -1, -1, [de], [de + 1], [de + 2], [hMapObjectIndexBuffer], [NextMapX], [NextMapY], -1 +; This spawns the object at the same place as whichever object is loaded into bc. + ld hl, wTempObjectCopyMapObjectIndex ld [hl], -1 inc hl ld [hl], -1 @@ -2737,10 +2750,10 @@ Function55b9: ; 55b9 ld [hli], a push hl - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld d, [hl] - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld e, [hl] pop hl @@ -2872,10 +2885,10 @@ Function5680: ; 5680 Function5688: ; 5688 push bc - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld d, [hl] - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld e, [hl] call GetCoordTile @@ -2888,10 +2901,10 @@ Function5688: ; 5688 ; 56a3 Function56a3: ; 56a3 - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld d, [hl] - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld e, [hl] inc d @@ -3612,7 +3625,7 @@ Function59f3: ; 59f3 ld hl, OBJECT_FACING_STEP add hl, bc ld a, [hl] - cp -1 + cp STANDING jp z, .done cp NUM_FACINGS jp nc, .done diff --git a/engine/map_setup.asm b/engine/map_setup.asm index 9c99df2f6..7e0bfd3c1 100644 --- a/engine/map_setup.asm +++ b/engine/map_setup.asm @@ -311,10 +311,10 @@ SuspendMapAnims: ; 154d3 ; 154d7 LoadObjectsRunCallback_02: ; 154d7 - ld a, $2 + ld a, 2 call RunMapCallback callba LoadObjectMasks - callba Function8177 + callba InitializeVisibleSprites ret ; 154ea (5:54ea) diff --git a/engine/movement.asm b/engine/movement.asm index a908624e1..7708773aa 100644 --- a/engine/movement.asm +++ b/engine/movement.asm @@ -127,7 +127,7 @@ Movement_step_wait5: ; 5145 ld hl, OBJECT_12 add hl, bc ld [hl], a - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], $4 call GetMovementByte @@ -164,7 +164,7 @@ Movement_58: ; 516a ; 5189 Movement_fish_got_bite: ; 5189 - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], $6 ld hl, OBJECT_09 @@ -178,7 +178,7 @@ Movement_rock_smash: ; 5196 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], a - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], $1 ld hl, OBJECT_09 @@ -188,7 +188,7 @@ Movement_rock_smash: ; 5196 ; 51ab Movement_fish_cast_rod: ; 51ab - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], $6 ld hl, OBJECT_09 @@ -262,7 +262,7 @@ Movement_remove_person: ; 51fd ; 5210 Movement_4b: ; 5210 - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], $1 @@ -323,7 +323,7 @@ Movement_step_sleep_common: ; 5247 add hl, bc ld [hl], OBJECT_09_VALUE_03 - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], $1 @@ -341,7 +341,7 @@ Movement_step_bump: ; 525f ld hl, OBJECT_09 add hl, bc ld [hl], OBJECT_09_VALUE_0B - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], $3 ld hl, OBJECT_DIRECTION_WALKING @@ -358,7 +358,7 @@ Movement_56: ; 5279 ld hl, OBJECT_09 add hl, bc ld [hl], OBJECT_09_VALUE_03 - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], $b ld hl, OBJECT_DIRECTION_WALKING @@ -384,14 +384,14 @@ Movement_39: ; 529c Movement_remove_fixed_facing: ; 52a5 ld hl, OBJECT_FLAGS1 add hl, bc - res 2, [hl] + res FIXED_FACING, [hl] jp ContinueReadingMovement ; 52ae Movement_fix_facing: ; 52ae ld hl, OBJECT_FLAGS1 add hl, bc - set 2, [hl] + set FIXED_FACING, [hl] jp ContinueReadingMovement ; 52b7 @@ -410,12 +410,12 @@ Movement_hide_person: ; 52c0 ; 52c9 Movement_hide_emote: ; 52c9 - call Function5579 + call DespawnEmote jp ContinueReadingMovement ; 52cf Movement_show_emote: ; 52cf - call Function5547 + call SpawnEmote jp ContinueReadingMovement ; 52d5 @@ -424,7 +424,7 @@ Movement_step_shake: ; 52d5 ; displacement (DecimalParam) call GetMovementByte - call Function5565 + call ShakeScreen jp ContinueReadingMovement ; 52de @@ -448,7 +448,7 @@ TurnHead: ; 52ee ld hl, OBJECT_FACING add hl, bc ld [hl], a - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], $1 ld hl, OBJECT_DIRECTION_WALKING @@ -721,7 +721,7 @@ HalfStep: ; 5400 ld hl, OBJECT_29 add hl, bc ld [hl], a - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], $2 ld hl, OBJECT_09 @@ -733,7 +733,7 @@ HalfStep: ; 5400 NormalStep: ; 5412 call Function4690 call Function463f - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], $2 ld hl, OBJECT_STANDING_TILE @@ -746,7 +746,7 @@ NormalStep: ; 5412 jr c, .asm_5430 .asm_542d - call Function5556 + call ShakeGrass .asm_5430 ld hl, wd4cf @@ -769,7 +769,7 @@ NormalStep: ; 5412 TurningStep: ; 5446 call Function4690 call Function463f - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], $4 ld hl, wd4cf @@ -792,7 +792,7 @@ TurningStep: ; 5446 SlideStep: ; 5468 call Function4690 call Function463f - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], $1 ld hl, wd4cf @@ -820,10 +820,10 @@ JumpStep: ; 548a ld hl, OBJECT_FLAGS2 add hl, bc res 3, [hl] - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, bc ld [hl], $2 - call Function5529 + call SpawnShadow ld hl, wd4cf ld a, [hMapObjectIndexBuffer] cp [hl] diff --git a/engine/overworld.asm b/engine/overworld.asm index 517428007..566cc2a9b 100755 --- a/engine/overworld.asm +++ b/engine/overworld.asm @@ -732,9 +732,9 @@ EmotesPointers: ; 144d emote_header BoltEmote, 4, VTiles1 tile $78 emote_header SleepEmote, 4, VTiles1 tile $78 emote_header FishEmote, 4, VTiles1 tile $78 - emote_header FishingRodGFX1, 1, VTiles1 tile $7c + emote_header JumpShadowGFX, 1, VTiles1 tile $7c emote_header FishingRodGFX2, 2, VTiles1 tile $7c - emote_header FishingRodGFX3, 2, VTiles1 tile $7e + emote_header BoulderDustGFX, 2, VTiles1 tile $7e emote_header FishingRodGFX4, 1, VTiles1 tile $7e ; 14495 diff --git a/gfx/misc/fishing3.2bpp b/gfx/misc/boulderdust.2bpp similarity index 100% rename from gfx/misc/fishing3.2bpp rename to gfx/misc/boulderdust.2bpp diff --git a/gfx/misc/fishing1.2bpp b/gfx/misc/shadow.2bpp similarity index 100% rename from gfx/misc/fishing1.2bpp rename to gfx/misc/shadow.2bpp diff --git a/home.asm b/home.asm index 8995d45d8..ad757acb1 100644 --- a/home.asm +++ b/home.asm @@ -1508,19 +1508,19 @@ FacingPlayerDistance:: ; 36ad ; Return carry if the sprite at bc is facing the player, ; and its distance in d. - ld hl, OBJECT_MAP_X ; x + ld hl, OBJECT_NEXT_MAP_X ; x add hl, bc ld d, [hl] - ld hl, OBJECT_MAP_Y ; y + ld hl, OBJECT_NEXT_MAP_Y ; y add hl, bc ld e, [hl] - ld a, [PlayerMapX] + ld a, [PlayerNextMapX] cp d jr z, .CheckY - ld a, [PlayerMapY] + ld a, [PlayerNextMapY] cp e jr z, .CheckX @@ -1528,7 +1528,7 @@ FacingPlayerDistance:: ; 36ad ret .CheckY - ld a, [PlayerMapY] + ld a, [PlayerNextMapY] sub e jr z, .NotFacing jr nc, .Above @@ -1546,7 +1546,7 @@ FacingPlayerDistance:: ; 36ad jr .CheckFacing .CheckX - ld a, [PlayerMapX] + ld a, [PlayerNextMapX] sub d jr z, .NotFacing jr nc, .Left diff --git a/home/map.asm b/home/map.asm index 1a964fc22..dd4dc069a 100644 --- a/home/map.asm +++ b/home/map.asm @@ -258,10 +258,10 @@ GetDestinationWarpNumber:: ; 2252 ; 2266 .GetDestinationWarpNumber ; 2266 - ld a, [PlayerMapY] + ld a, [PlayerNextMapY] sub $4 ld e, a - ld a, [PlayerMapX] + ld a, [PlayerNextMapX] sub $4 ld d, a ld a, [wCurrMapWarpCount] @@ -570,11 +570,11 @@ ReadWarps:: ; 23da ReadCoordEvents:: ; 23f1 ld a, [hli] ld c, a - ld [wCurrentMapXYTriggerCount], a + ld [wCurrentNextMapXYTriggerCount], a ld a, l - ld [wCurrentMapXYTriggerHeaderPointer], a + ld [wCurrentNextMapXYTriggerHeaderPointer], a ld a, h - ld [wCurrentMapXYTriggerHeaderPointer + 1], a + ld [wCurrentNextMapXYTriggerHeaderPointer + 1], a ld a, c and a @@ -1594,9 +1594,9 @@ Function2914:: ; 2914 call GetLeftRightCollision call GetUpDownCollision ; get coords of current tile - ld a, [PlayerMapX] + ld a, [PlayerNextMapX] ld d, a - ld a, [PlayerMapY] + ld a, [PlayerNextMapY] ld e, a call GetCoordTile ld [PlayerStandingTile], a @@ -1623,9 +1623,9 @@ Function2914:: ; 2914 ; 294d GetUpDownCollision:: ; 294d - ld a, [PlayerMapX] + ld a, [PlayerNextMapX] ld d, a - ld a, [PlayerMapY] + ld a, [PlayerNextMapY] ld e, a push de @@ -1643,9 +1643,9 @@ GetUpDownCollision:: ; 294d ; 296c GetLeftRightCollision:: ; 296c - ld a, [PlayerMapX] + ld a, [PlayerNextMapX] ld d, a - ld a, [PlayerMapY] + ld a, [PlayerNextMapY] ld e, a push de @@ -1772,10 +1772,10 @@ endr ld h, [hl] ld l, a - ld a, [PlayerMapX] + ld a, [PlayerNextMapX] add d ld d, a - ld a, [PlayerMapY] + ld a, [PlayerNextMapY] add e ld e, a ld a, [hl] @@ -1928,9 +1928,9 @@ CheckIfFacingTileCoordIsSign:: ; 2aaa ret ; 2ad4 -CheckCurrentMapXYTriggers:: ; 2ad4 +CheckCurrentNextMapXYTriggers:: ; 2ad4 ; If there are no xy triggers, we don't need to be here. - ld a, [wCurrentMapXYTriggerCount] + ld a, [wCurrentNextMapXYTriggerCount] and a ret z ; Copy the trigger count into c. @@ -1947,7 +1947,7 @@ CheckCurrentMapXYTriggers:: ; 2ad4 CheckStandingOnXYTrigger:: ; 2ae7 ; Checks to see if you are standing on an xy-trigger. If yes, copies the trigger to EngineBuffer1 and sets carry. - ld hl, wCurrentMapXYTriggerHeaderPointer + ld hl, wCurrentNextMapXYTriggerHeaderPointer ld a, [hli] ld h, [hl] ld l, a @@ -1955,10 +1955,10 @@ CheckStandingOnXYTrigger:: ; 2ae7 call CheckTriggers ld b, a ; Load your current coordinates into de. This will be used to check if your position is in the xy-trigger table for the current map. - ld a, [PlayerMapX] + ld a, [PlayerNextMapX] sub 4 ld d, a - ld a, [PlayerMapY] + ld a, [PlayerNextMapY] sub 4 ld e, a diff --git a/home/map_objects.asm b/home/map_objects.asm index c6b7f271c..c2512b22f 100644 --- a/home/map_objects.asm +++ b/home/map_objects.asm @@ -6,7 +6,9 @@ GetSpritePalette:: ; 17ff push de push bc ld c, a + callba _GetSpritePalette + ld a, c pop bc pop de @@ -15,7 +17,7 @@ GetSpritePalette:: ; 17ff ; 180e -Function180e:: ; 180e +GetSpriteVTile:: ; 180e push hl push bc ld hl, UsedSprites + 2 @@ -571,7 +573,7 @@ endr ld [hl], a ld a, [bc] inc bc - ld hl, OBJECT_11 + ld hl, OBJECT_ACTION add hl, de ld [hl], a ld a, [bc] @@ -659,6 +661,7 @@ GetObjectSprite:: ; 1af1 ; 1af8 SetSpriteDirection:: ; 1af8 + ; preserves other flags push af ld hl, OBJECT_FACING add hl, bc diff --git a/main.asm b/main.asm index 93cd9d44f..c455092e6 100644 --- a/main.asm +++ b/main.asm @@ -2178,10 +2178,10 @@ Function6ec1: ; 6ec1 Function6f07: ; 6f07 call Function6f5f ret c - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld d, [hl] - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld e, [hl] ld hl, OBJECT_PALETTE @@ -2351,14 +2351,14 @@ CheckFacingObject:: ; 6fd9 call CheckCounterTile jr nz, .asm_6ff1 - ld a, [PlayerMapX] + ld a, [PlayerNextMapX] sub d cpl inc a add d ld d, a - ld a, [PlayerMapY] + ld a, [PlayerNextMapY] sub e cpl inc a @@ -2386,10 +2386,10 @@ CheckFacingObject:: ; 6fd9 Function7009: ; 7009 - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld d, [hl] - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld e, [hl] jr IsNPCAtCoord @@ -2403,10 +2403,10 @@ Function7015: ; unreferenced ret Function7021: ; 7021 - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld d, [hl] - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld e, [hl] call GetSpriteDirection @@ -2455,12 +2455,12 @@ IsNPCAtCoord: ; 7041 jr .ok2 .got - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld a, [hl] cp d jr nz, .ok - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld a, [hl] cp e @@ -2474,12 +2474,12 @@ IsNPCAtCoord: ; 7041 jr nz, .setcarry .ok - ld hl, OBJECT_NEXT_MAP_X + ld hl, OBJECT_MAP_X add hl, bc ld a, [hl] cp d jr nz, .next - ld hl, OBJECT_NEXT_MAP_Y + ld hl, OBJECT_MAP_Y add hl, bc ld a, [hl] cp e @@ -2508,7 +2508,7 @@ IsNPCAtCoord: ; 7041 ; 70a4 Function70a4: ; 70a4 - ld hl, OBJECT_22 + ld hl, OBJECT_RADIUS add hl, bc ld a, [hl] and a @@ -2517,7 +2517,7 @@ Function70a4: ; 70a4 jr z, .asm_70c7 ld e, a ld d, a - ld hl, OBJECT_20 + ld hl, OBJECT_INIT_X add hl, bc ld a, [hl] sub d @@ -2525,7 +2525,7 @@ Function70a4: ; 70a4 ld a, [hl] add e ld e, a - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld a, [hl] cp d @@ -2534,7 +2534,7 @@ Function70a4: ; 70a4 jr z, .asm_70eb .asm_70c7 - ld hl, OBJECT_22 + ld hl, OBJECT_RADIUS add hl, bc ld a, [hl] swap a @@ -2542,7 +2542,7 @@ Function70a4: ; 70a4 jr z, .asm_70e9 ld e, a ld d, a - ld hl, OBJECT_21 + ld hl, OBJECT_INIT_Y add hl, bc ld a, [hl] sub d @@ -2550,7 +2550,7 @@ Function70a4: ; 70a4 ld a, [hl] add e ld e, a - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld a, [hl] cp d @@ -2568,7 +2568,7 @@ Function70a4: ; 70a4 ; 70ed Function70ed: ; 70ed - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld a, [XCoord] cp [hl] @@ -2579,7 +2579,7 @@ Function70ed: ; 70ed jr c, .asm_7111 .asm_70fe - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld a, [YCoord] cp [hl] @@ -2599,9 +2599,9 @@ Function70ed: ; 70ed ; 7113 Function7113: ; unreferenced - ld a, [PlayerMapX] + ld a, [PlayerNextMapX] ld d, a - ld a, [PlayerMapY] + ld a, [PlayerNextMapY] ld e, a ld bc, ObjectStructs xor a @@ -2619,12 +2619,12 @@ Function7113: ; unreferenced jr .asm_7160 .asm_7136 - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld a, [hl] cp e jr nz, .asm_714e - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld a, [hl] cp d @@ -2635,12 +2635,12 @@ Function7113: ; unreferenced jr .asm_716f .asm_714e - ld hl, OBJECT_NEXT_MAP_Y + ld hl, OBJECT_MAP_Y add hl, bc ld a, [hl] cp e jr nz, .asm_7160 - ld hl, OBJECT_NEXT_MAP_X + ld hl, OBJECT_MAP_X add hl, bc ld a, [hl] cp d @@ -2666,14 +2666,14 @@ Function7113: ; unreferenced Function7171: ; 7171 - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld a, d sub [hl] jr c, .asm_718b cp $2 jr nc, .asm_718b - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld a, e sub [hl] @@ -3235,7 +3235,7 @@ GetSpawnCoord: ; 8029 ld a, $0 ld [hObjectStructIndexBuffer], a ld de, ObjectStructs - call Function8116 + call CopyMapObjectToObjectStruct ld a, $0 ld [wd4cf], a ret @@ -3281,10 +3281,10 @@ WritePersonXY:: ; 80a1 call CheckObjectVisibility ret c - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld d, [hl] - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld e, [hl] ld a, [hMapObjectIndexBuffer] @@ -3298,23 +3298,23 @@ RefreshPlayerCoords: ; 80b8 ld a, [XCoord] add 4 ld d, a - ld hl, PlayerMapX + ld hl, PlayerNextMapX sub [hl] ld [hl], d ld hl, MapObjects + MAPOBJECT_X_COORD ld [hl], d - ld hl, PlayerNextMapX + ld hl, PlayerMapX ld [hl], d ld d, a ld a, [YCoord] add 4 ld e, a - ld hl, PlayerMapY + ld hl, PlayerNextMapY sub [hl] ld [hl], e ld hl, MapObjects + MAPOBJECT_Y_COORD ld [hl], e - ld hl, PlayerNextMapY + ld hl, PlayerMapY ld [hl], e ld e, a ld a, [wObjectFollow_Leader] @@ -3328,6 +3328,7 @@ CopyObjectStruct:: ; 80e7 call CheckObjectMask and a ret nz ; masked + ld hl, ObjectStructs + OBJECT_STRUCT_LENGTH * 1 ld a, 1 ld de, OBJECT_STRUCT_LENGTH @@ -3342,77 +3343,87 @@ CopyObjectStruct:: ; 80e7 cp NUM_OBJECT_STRUCTS jr nz, .loop scf - ret + ret ; overflow .done ld d, h ld e, l - call Function8116 + call CopyMapObjectToObjectStruct ld hl, VramState bit 7, [hl] ret z + ld hl, OBJECT_FLAGS2 add hl, de set 5, [hl] ret ; 8116 -Function8116: ; 8116 - call Function811d - call Function8286 +CopyMapObjectToObjectStruct: ; 8116 + call .CopyMapObjectToTempObject + call CopyTempObjectToObjectStruct ret ; 811d -Function811d: ; 811d +.CopyMapObjectToTempObject: ; 811d ld a, [hObjectStructIndexBuffer] ld hl, MAPOBJECT_OBJECT_STRUCT_ID add hl, bc ld [hl], a + ld a, [hMapObjectIndexBuffer] - ld [wc2f0], a + ld [wTempObjectCopyMapObjectIndex], a + ld hl, MAPOBJECT_SPRITE add hl, bc ld a, [hl] - ld [wc2f1], a - call Function180e - ld [wc2f2], a + ld [wTempObjectCopySprite], a + + call GetSpriteVTile + ld [wTempObjectCopySpriteVTile], a + ld a, [hl] call GetSpritePalette - ld [wc2f3], a + ld [wTempObjectCopyPalette], a + ld hl, MAPOBJECT_COLOR add hl, bc ld a, [hl] and $f0 - jr z, .no_color + jr z, .skip_color_override swap a - and $7 - ld [wc2f3], a + and $7 ; OAM_PALETTE + ld [wTempObjectCopyPalette], a -.no_color +.skip_color_override ld hl, MAPOBJECT_MOVEMENT add hl, bc ld a, [hl] - ld [wc2f4], a + ld [wTempObjectCopyMovement], a + ld hl, MAPOBJECT_RANGE add hl, bc ld a, [hl] - ld [wc2f5], a + ld [wTempObjectCopyRange], a + ld hl, MAPOBJECT_X_COORD add hl, bc ld a, [hl] - ld [wc2f6], a + ld [wTempObjectCopyX], a + ld hl, MAPOBJECT_Y_COORD add hl, bc ld a, [hl] - ld [wc2f7], a + ld [wTempObjectCopyY], a + ld hl, MAPOBJECT_RADIUS add hl, bc ld a, [hl] - ld [wc2f8], a + ld [wTempObjectCopyRadius], a ret ; 8177 -Function8177: ; 8177 +InitializeVisibleSprites: ; 8177 ld bc, MapObjects + OBJECT_LENGTH ld a, 1 .loop @@ -3422,35 +3433,42 @@ Function8177: ; 8177 ld a, [hl] and a jr z, .next + ld hl, MAPOBJECT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] cp -1 jr nz, .next + ld a, [XCoord] ld d, a ld a, [YCoord] ld e, a + ld hl, MAPOBJECT_X_COORD add hl, bc ld a, [hl] add 1 sub d jr c, .next + cp MAPOBJECT_SCREEN_WIDTH jr nc, .next + ld hl, MAPOBJECT_Y_COORD add hl, bc ld a, [hl] add 1 sub e jr c, .next + cp MAPOBJECT_SCREEN_HEIGHT jr nc, .next + push bc call CopyObjectStruct pop bc - jp c, Function81c9 + jp c, .ret .next ld hl, OBJECT_LENGTH @@ -3464,7 +3482,7 @@ Function8177: ; 8177 ret ; 81c9 -Function81c9: ; 81c9 +.ret: ; 81c9 ret ; 81ca @@ -3473,12 +3491,12 @@ Function81ca:: ; 81ca ld a, [wd151] cp $ff ret z - ld hl, Table81d6 + ld hl, .jumptable rst JumpTable ret ; 81d6 -Table81d6: ; 81d6 +.jumptable: ; 81d6 dw Function81e5 dw Function81de dw Function8232 @@ -3602,32 +3620,33 @@ Function823e: ; 823e ; 8286 -Function8286: ; 8286 - ld a, [wc2f0] +CopyTempObjectToObjectStruct: ; 8286 + ld a, [wTempObjectCopyMapObjectIndex] ld hl, OBJECT_MAP_OBJECT_INDEX add hl, de ld [hl], a - ld a, [wc2f4] + ld a, [wTempObjectCopyMovement] call Function1a61 - ld a, [wc2f3] + + ld a, [wTempObjectCopyPalette] ld hl, OBJECT_PALETTE add hl, de or [hl] ld [hl], a - ld a, [wc2f7] - call Function82d5 + ld a, [wTempObjectCopyY] + call .InitYCoord - ld a, [wc2f6] - call Function82f1 + ld a, [wTempObjectCopyX] + call .InitXCoord - ld a, [wc2f1] + ld a, [wTempObjectCopySprite] ld hl, OBJECT_SPRITE add hl, de ld [hl], a - ld a, [wc2f2] + ld a, [wTempObjectCopySpriteVTile] ld hl, OBJECT_SPRITE_TILE add hl, de ld [hl], a @@ -3638,13 +3657,13 @@ Function8286: ; 8286 ld hl, OBJECT_FACING_STEP add hl, de - ld [hl], $ff + ld [hl], STANDING - ld a, [wc2f8] - call Function830d + ld a, [wTempObjectCopyRadius] + call .InitRadius - ld a, [wc2f5] - ld hl, OBJECT_32 + ld a, [wTempObjectCopyRange] + ld hl, OBJECT_RANGE add hl, de ld [hl], a @@ -3652,13 +3671,15 @@ Function8286: ; 8286 ret ; 82d5 -Function82d5: ; 82d5 - ld hl, OBJECT_21 +.InitYCoord: ; 82d5 + ld hl, OBJECT_INIT_Y add hl, de ld [hl], a - ld hl, OBJECT_MAP_Y + + ld hl, OBJECT_NEXT_MAP_Y add hl, de ld [hl], a + ld hl, YCoord sub [hl] and $f @@ -3671,11 +3692,11 @@ Function82d5: ; 82d5 ret ; 82f1 -Function82f1: ; 82f1 - ld hl, OBJECT_20 +.InitXCoord: ; 82f1 + ld hl, OBJECT_INIT_X add hl, de ld [hl], a - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, de ld [hl], a ld hl, XCoord @@ -3690,7 +3711,7 @@ Function82f1: ; 82f1 ret ; 830d -Function830d: ; 830d +.InitRadius: ; 830d ld h, a inc a and $f @@ -3699,7 +3720,7 @@ Function830d: ; 830d add $10 and $f0 or l - ld hl, OBJECT_22 + ld hl, OBJECT_RADIUS add hl, de ld [hl], a ret @@ -3749,19 +3770,19 @@ TrainerWalkToPlayer: ; 831e call GetObjectStruct ; get last talked coords, load to bc - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld a, [hl] - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld c, [hl] ld b, a ; get player coords, load to de - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, de ld a, [hl] - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, de ld e, [hl] ld d, a @@ -3815,15 +3836,15 @@ FollowNotExact:: ; 839e ret c ; Person 2 is now in bc, person 1 is now in de - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld a, [hl] - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld c, [hl] ld b, a - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, de ld a, [hl] cp b @@ -3837,7 +3858,7 @@ FollowNotExact:: ; 839e jr .continue .same_x - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, de ld a, [hl] cp c @@ -3850,7 +3871,7 @@ FollowNotExact:: ; 839e dec c .continue - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, de ld [hl], b ld a, b @@ -3863,7 +3884,7 @@ FollowNotExact:: ; 839e ld hl, OBJECT_SPRITE_X add hl, de ld [hl], a - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, de ld [hl], c ld a, c @@ -3877,7 +3898,7 @@ FollowNotExact:: ; 839e add hl, de ld [hl], a ld a, [hObjectStructIndexBuffer] - ld hl, OBJECT_32 + ld hl, OBJECT_RANGE add hl, de ld [hl], a ld hl, OBJECT_MOVEMENTTYPE @@ -3920,10 +3941,10 @@ GetRelativeFacing:: ; 8417 ; load the coordinates of object d into bc ld a, d call GetObjectStruct - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld a, [hl] - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld c, [hl] ld b, a @@ -3931,10 +3952,10 @@ GetRelativeFacing:: ; 8417 ; load the coordinates of object e into de ld a, e call GetObjectStruct - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld d, [hl] - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld e, [hl] pop bc @@ -4014,15 +4035,15 @@ Function848a: ; 848a Function849d: ; 849d ld a, [wObjectFollow_Leader] call GetObjectStruct - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld d, [hl] - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld e, [hl] ld a, [wObjectFollow_Follower] call GetObjectStruct - ld hl, OBJECT_MAP_X + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld a, d cp [hl] @@ -4038,7 +4059,7 @@ Function849d: ; 849d ret .check_y - ld hl, OBJECT_MAP_Y + ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld a, e cp [hl] @@ -34646,13 +34667,13 @@ IsNPCInFront: ; 80341 ld a, 0 ld [hMapObjectIndexBuffer], a ; Load the next X coordinate into d - ld a, [PlayerMapX] + ld a, [PlayerNextMapX] ld d, a ld a, [WalkingX] add d ld d, a ; Load the next Y coordinate into e - ld a, [PlayerMapY] + ld a, [PlayerNextMapY] ld e, a ld a, [WalkingY] add e @@ -34701,7 +34722,7 @@ Function8036f: ; 8036f ld a, [WalkingDirection] ld d, a - ld hl, OBJECT_32 + ld hl, OBJECT_RANGE add hl, bc ld a, [hl] and $fc @@ -50405,17 +50426,17 @@ Function10433a: ; 10433a (41:433a) ret ; 104350 -ShockEmote: INCBIN "gfx/emotes/shock.2bpp" -QuestionEmote: INCBIN "gfx/emotes/question.2bpp" -HappyEmote: INCBIN "gfx/emotes/happy.2bpp" -SadEmote: INCBIN "gfx/emotes/sad.2bpp" -HeartEmote: INCBIN "gfx/emotes/heart.2bpp" -BoltEmote: INCBIN "gfx/emotes/bolt.2bpp" -SleepEmote: INCBIN "gfx/emotes/sleep.2bpp" -FishEmote: INCBIN "gfx/emotes/fish.2bpp" -FishingRodGFX1: INCBIN "gfx/misc/fishing1.2bpp" +ShockEmote: INCBIN "gfx/emotes/shock.2bpp" +QuestionEmote: INCBIN "gfx/emotes/question.2bpp" +HappyEmote: INCBIN "gfx/emotes/happy.2bpp" +SadEmote: INCBIN "gfx/emotes/sad.2bpp" +HeartEmote: INCBIN "gfx/emotes/heart.2bpp" +BoltEmote: INCBIN "gfx/emotes/bolt.2bpp" +SleepEmote: INCBIN "gfx/emotes/sleep.2bpp" +FishEmote: INCBIN "gfx/emotes/fish.2bpp" +JumpShadowGFX: INCBIN "gfx/misc/shadow.2bpp" FishingRodGFX2: INCBIN "gfx/misc/fishing2.2bpp" -FishingRodGFX3: INCBIN "gfx/misc/fishing3.2bpp" +BoulderDustGFX: INCBIN "gfx/misc/boulderdust.2bpp" FishingRodGFX4: INCBIN "gfx/misc/fishing4.2bpp" @@ -50770,7 +50791,7 @@ CheckMovingOffEdgeOfMap:: ; 104820 (41:4820) ret .down - ld a, [PlayerMapY] + ld a, [PlayerNextMapY] sub 4 ld b, a ld a, [MapHeight] @@ -50781,7 +50802,7 @@ CheckMovingOffEdgeOfMap:: ; 104820 (41:4820) ret .up - ld a, [PlayerMapY] + ld a, [PlayerNextMapY] sub 4 cp -1 jr z, .ok @@ -50789,7 +50810,7 @@ CheckMovingOffEdgeOfMap:: ; 104820 (41:4820) ret .left - ld a, [PlayerMapX] + ld a, [PlayerNextMapX] sub $4 cp -1 jr z, .ok @@ -50797,7 +50818,7 @@ CheckMovingOffEdgeOfMap:: ; 104820 (41:4820) ret .right - ld a, [PlayerMapX] + ld a, [PlayerNextMapX] sub 4 ld b, a ld a, [MapWidth] diff --git a/tilesets/animations.asm b/tilesets/animations.asm index d0e44a063..0a681c86b 100644 --- a/tilesets/animations.asm +++ b/tilesets/animations.asm @@ -48,7 +48,7 @@ Tileset03Anim: ; 0xfc01b dw NULL, AnimateFlowerTile dw NULL, WaitTileAnimation dw NULL, WaitTileAnimation - dw NULL, NextTileFrame8 + dw NULL, CurTileFrame8 dw NULL, DoneTileAnimation ; 0xfc047 @@ -62,7 +62,7 @@ Tileset25Anim: ; 0xfc047 dw NULL, AnimateFlowerTile dw NULL, WaitTileAnimation dw NULL, WaitTileAnimation - dw NULL, NextTileFrame8 + dw NULL, CurTileFrame8 dw NULL, DoneTileAnimation ; 0xfc073 @@ -77,7 +77,7 @@ Tileset31Anim: ; 0xfc073 dw NULL, AnimateFlowerTile dw VTiles2 tile $14, AnimateWaterTile dw NULL, TileAnimationPalette - dw NULL, NextTileFrame8 + dw NULL, CurTileFrame8 dw NULL, DoneTileAnimation ; 0xfc0a3 @@ -93,7 +93,7 @@ Tileset01Anim: ; 0xfc0a3 dw WhirlpoolFrames3, AnimateWhirlpoolTile dw WhirlpoolFrames4, AnimateWhirlpoolTile dw NULL, WaitTileAnimation - dw NULL, NextTileFrame8 + dw NULL, CurTileFrame8 dw NULL, DoneTileAnimation ; 0xfc0d7 @@ -136,7 +136,7 @@ Tileset09Anim: ; 0xfc12f dw NULL, WaitTileAnimation dw NULL, WaitTileAnimation dw NULL, WaitTileAnimation - dw NULL, NextTileFrame8 + dw NULL, CurTileFrame8 dw NULL, DoneTileAnimation ; 0xfc15f @@ -147,7 +147,7 @@ Tileset15Anim: ; 0xfc15f dw NULL, WaitTileAnimation dw NULL, SafariFountainAnim1 dw NULL, WaitTileAnimation - dw NULL, NextTileFrame8 + dw NULL, CurTileFrame8 dw NULL, DoneTileAnimation ; 0xfc17f @@ -239,7 +239,7 @@ Tileset23Anim: ; 0xfc27f dw SproutPillarTilePointer4, AnimateSproutPillarTile dw SproutPillarTilePointer1, AnimateSproutPillarTile dw SproutPillarTilePointer2, AnimateSproutPillarTile - dw NULL, NextTileFrame + dw NULL, CurTileFrame dw NULL, WaitTileAnimation dw NULL, WaitTileAnimation dw NULL, WaitTileAnimation @@ -302,7 +302,7 @@ WaitTileAnimation: ; fc2fe ret ; fc2ff -NextTileFrame8: ; fc2ff +CurTileFrame8: ; fc2ff ld a, [TileAnimationTimer] inc a and a, 7 @@ -806,7 +806,7 @@ AnimateSproutPillarTile: ; fc645 ; fc673 -NextTileFrame: ; fc673 +CurTileFrame: ; fc673 ld hl, TileAnimationTimer inc [hl] ret diff --git a/wram.asm b/wram.asm index 504294902..42de7cb76 100644 --- a/wram.asm +++ b/wram.asm @@ -327,15 +327,17 @@ wc2e6:: ds 4 wc2ea:: ds 1 wMovementPointer:: ds 2 ; c2eb ds 3 -wc2f0:: ds 1 -wc2f1:: ds 1 -wc2f2:: ds 1 -wc2f3:: ds 1 -wc2f4:: ds 1 -wc2f5:: ds 1 -wc2f6:: ds 1 -wc2f7:: ds 1 -wc2f8:: ds 1 + +wTempObjectCopyMapObjectIndex:: ds 1 ; c2f0 +wTempObjectCopySprite:: ds 1 ; c2f1 +wTempObjectCopySpriteVTile:: ds 1 ; c2f2 +wTempObjectCopyPalette:: ds 1 ; c2f3 +wTempObjectCopyMovement:: ds 1 ; c2f4 +wTempObjectCopyRange:: ds 1 ; c2f5 +wTempObjectCopyX:: ds 1 ; c2f6 +wTempObjectCopyY:: ds 1 ; c2f7 +wTempObjectCopyRadius:: ds 1 ; c2f8 + ds 1 TileDown:: ; c2fa @@ -1743,7 +1745,7 @@ wd152:: ds 1 wBGMapAnchorHi:: wd153:: ds 1 -UsedSprites:: ds 64 +UsedSprites:: ds 64 ; d154 UsedSpritesEnd:: ds UsedSprites - @ @@ -2222,11 +2224,11 @@ object_struct: MACRO \1Object12:: ds 1 \1Facing:: ds 1 \1StandingTile:: ds 1 ; collision -\1NextTile:: ds 1 ; collision -\1MapX:: ds 1 -\1MapY:: ds 1 +\1CurTile:: ds 1 ; collision \1NextMapX:: ds 1 \1NextMapY:: ds 1 +\1MapX:: ds 1 +\1MapY:: ds 1 ds 3 \1SpriteX:: ds 1 \1SpriteY:: ds 1 @@ -2548,8 +2550,8 @@ wCurrentCaller:: ds 2 wCurrMapWarpCount:: ds 1 wCurrMapWarpHeaderPointer:: ds 1 wdbfd:: ds 1 -wCurrentMapXYTriggerCount:: ds 1 -wCurrentMapXYTriggerHeaderPointer:: ds 1 +wCurrentNextMapXYTriggerCount:: ds 1 +wCurrentNextMapXYTriggerHeaderPointer:: ds 1 wdc00:: ds 1 wCurrentMapSignpostCount:: ds 1 wCurrentMapSignpostHeaderPointer:: From b921226aea7e624655f0d32436638ea3ffd63419 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 14 Nov 2015 23:02:38 -0500 Subject: [PATCH 05/40] More map object, swap StandingTile and NextTile --- constants/map_constants.asm | 10 +- constants/sprite_constants.asm | 71 ++++--- engine/events.asm | 6 +- engine/events_2.asm | 4 +- engine/facings.asm | 38 ++-- engine/map_objects.asm | 342 ++++++++++++++++----------------- engine/movement.asm | 144 +++++++------- engine/overworld.asm | 60 +++--- home/map.asm | 22 +-- home/map_objects.asm | 8 +- main.asm | 136 ++++++------- misc/mobile_5c.asm | 2 +- tilesets/animations.asm | 18 +- wram.asm | 21 +- 14 files changed, 450 insertions(+), 432 deletions(-) diff --git a/constants/map_constants.asm b/constants/map_constants.asm index 7891b10f9..2b5a139c7 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -527,13 +527,13 @@ const_value SET 1 const OBJECT_PALETTE const OBJECT_DIRECTION_WALKING const OBJECT_FACING - const OBJECT_09 + const OBJECT_STEP_TYPE const OBJECT_STEP_DURATION const OBJECT_ACTION const OBJECT_12 const OBJECT_FACING_STEP - const OBJECT_STANDING_TILE const OBJECT_NEXT_TILE + const OBJECT_STANDING_TILE const OBJECT_NEXT_MAP_X const OBJECT_NEXT_MAP_Y const OBJECT_MAP_X @@ -590,9 +590,9 @@ OW_RIGHT EQU RIGHT << 2 const EMOTE_BOLT ; 5 const EMOTE_SLEEP ; 6 const EMOTE_FISH ; 7 - const EMOTE_08 ; 8 - const EMOTE_09 ; 9 - const EMOTE_0A ; 10 + const EMOTE_SHADOW ; 8 + const EMOTE_ROD ; 9 + const EMOTE_BOULDER_DUST ; 10 const EMOTE_0B ; 11 EMOTE_MEM EQU -1 diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm index 1310b0565..f507ad6f6 100644 --- a/constants/sprite_constants.asm +++ b/constants/sprite_constants.asm @@ -268,29 +268,48 @@ SPRITEMOVEDATA_FIELDS EQU 6 MAX_OUTDOOR_SPRITES EQU 23 const_def - const OBJECT_09_VALUE_00 - const OBJECT_09_VALUE_01 ; standing - const OBJECT_09_VALUE_02 ; walking - const OBJECT_09_VALUE_03 ; bumping - const OBJECT_09_VALUE_04 - const OBJECT_09_VALUE_05 - const OBJECT_09_VALUE_06 - const OBJECT_09_VALUE_07 - const OBJECT_09_VALUE_08 - const OBJECT_09_VALUE_09 - const OBJECT_09_VALUE_0A - const OBJECT_09_VALUE_0B - const OBJECT_09_VALUE_0C - const OBJECT_09_VALUE_0D - const OBJECT_09_VALUE_0E - const OBJECT_09_VALUE_0F - const OBJECT_09_VALUE_10 - const OBJECT_09_VALUE_11 - const OBJECT_09_VALUE_12 - const OBJECT_09_VALUE_13 - const OBJECT_09_VALUE_14 - const OBJECT_09_VALUE_15 - const OBJECT_09_VALUE_16 - const OBJECT_09_VALUE_17 - const OBJECT_09_VALUE_18 - const OBJECT_09_VALUE_19 + const STEP_TYPE_00 + const STEP_TYPE_01 ; standing + const STEP_TYPE_02 ; walking + const STEP_TYPE_03 ; bumping + const STEP_TYPE_04 + const STEP_TYPE_05 + const STEP_TYPE_06 + const STEP_TYPE_07 + const STEP_TYPE_08 + const STEP_TYPE_09 + const STEP_TYPE_0A + const STEP_TYPE_0B + const STEP_TYPE_0C + const STEP_TYPE_0D + const STEP_TYPE_0E + const STEP_TYPE_0F + const STEP_TYPE_10 + const STEP_TYPE_11 + const STEP_TYPE_12 + const STEP_TYPE_13 + const STEP_TYPE_14 + const STEP_TYPE_15 + const STEP_TYPE_16 + const STEP_TYPE_17 + const STEP_TYPE_18 + const STEP_TYPE_19 + + const_def + const PERSON_ACTION_00 + const PERSON_ACTION_01 + const PERSON_ACTION_02 + const PERSON_ACTION_03 + const PERSON_ACTION_04 + const PERSON_ACTION_05 + const PERSON_ACTION_06 + const PERSON_ACTION_07 + const PERSON_ACTION_08 + const PERSON_ACTION_09 + const PERSON_ACTION_0A + const PERSON_ACTION_0B + const PERSON_ACTION_0C + const PERSON_ACTION_0D + const PERSON_ACTION_0E + const PERSON_ACTION_0F + const PERSON_ACTION_10 diff --git a/engine/events.asm b/engine/events.asm index 004cbf33e..6e955b86d 100644 --- a/engine/events.asm +++ b/engine/events.asm @@ -252,7 +252,7 @@ Function967e1: ; 967e1 ; 967f4 Function967f4: ; 967f4 - ld a, [wd150] + ld a, [wPlayerStepFlags] bit 5, a jr z, .events bit 6, a @@ -273,7 +273,7 @@ Function967f4: ; 967f4 ; 96812 Function96812: ; 96812 - ld hl, wd150 + ld hl, wPlayerStepFlags bit 6, [hl] ret z @@ -396,7 +396,7 @@ CheckTileEvent: ; 96874 ret .warp_tile - ld a, [PlayerStandingTile] + ld a, [PlayerNextTile] call CheckPitTile jr nz, .not_pit ld a, PLAYEREVENT_FALL diff --git a/engine/events_2.asm b/engine/events_2.asm index f88a31c2a..4597e92e5 100644 --- a/engine/events_2.asm +++ b/engine/events_2.asm @@ -161,7 +161,7 @@ CanUseSweetScent:: ; 97cfd jr nc, .no .ice_check - ld a, [PlayerStandingTile] + ld a, [PlayerNextTile] call CheckIceTile jr z, .no scf @@ -235,7 +235,7 @@ ChooseWildEncounter_BugContest:: ; 97d31 ; 97d64 TryWildEncounter_BugContest: ; 97d64 - ld a, [PlayerStandingTile] + ld a, [PlayerNextTile] call CheckSuperTallGrassTile ld b, 40 percent jr z, .ok diff --git a/engine/facings.asm b/engine/facings.asm index 47e6fd352..9f516a306 100644 --- a/engine/facings.asm +++ b/engine/facings.asm @@ -50,7 +50,7 @@ BEHIND_BG EQU 1 << OAM_PRIORITY Facing00: Facing02: Facing24: -Facing26: ; 408b +Facing26: ; standing down db 4 ; # db 0, 0, 0, $00 db 0, 8, 0, $01 @@ -58,7 +58,7 @@ Facing26: ; 408b db 8, 8, 2, $03 ; 409c -Facing01: ; 409c +Facing01: ; walking down 1 db 4 ; # db 0, 0, 0, $80 db 0, 8, 0, $81 @@ -66,7 +66,7 @@ Facing01: ; 409c db 8, 8, 2, $83 ; 40ad -Facing03: ; 40ad +Facing03: ; walking down 2 db 4 ; # db 0, 8, X_FLIP, $80 db 0, 0, X_FLIP, $81 @@ -75,7 +75,7 @@ Facing03: ; 40ad ; 40be Facing04: -Facing06: ; 40be +Facing06: ; standing up db 4 ; # db 0, 0, 0, $04 db 0, 8, 0, $05 @@ -83,7 +83,7 @@ Facing06: ; 40be db 8, 8, 2, $07 ; 40cf -Facing05: ; 40cf +Facing05: ; walking up 1 db 4 ; # db 0, 0, 0, $84 db 0, 8, 0, $85 @@ -91,7 +91,7 @@ Facing05: ; 40cf db 8, 8, 2, $87 ; 40e0 -Facing07: ; 40e0 +Facing07: ; walking up 2 db 4 ; # db 0, 8, X_FLIP, $84 db 0, 0, X_FLIP, $85 @@ -100,7 +100,7 @@ Facing07: ; 40e0 ; 40f1 Facing08: -Facing10: ; 40f1 +Facing10: ; standing left db 4 ; # db 0, 0, 0, $08 db 0, 8, 0, $09 @@ -109,7 +109,7 @@ Facing10: ; 40f1 ; 4102 Facing12: -Facing14: ; 4102 +Facing14: ; standing right db 4 ; # db 0, 8, X_FLIP, $08 db 0, 0, X_FLIP, $09 @@ -118,7 +118,7 @@ Facing14: ; 4102 ; 4113 Facing09: -Facing11: ; 4113 +Facing11: ; walking left db 4 ; # db 0, 0, 0, $88 db 0, 8, 0, $89 @@ -127,7 +127,7 @@ Facing11: ; 4113 ; 4124 Facing13: -Facing15: ; 4124 +Facing15: ; walking right db 4 ; # db 0, 8, X_FLIP, $88 db 0, 0, X_FLIP, $89 @@ -135,7 +135,7 @@ Facing15: ; 4124 db 8, 0, 2 | X_FLIP, $8b ; 4135 -Facing16: ; 4135 +Facing16: ; fishing down db 5 ; # db 0, 0, 0, $00 db 0, 8, 0, $01 @@ -144,7 +144,7 @@ Facing16: ; 4135 db 16, 0, 4, $fc ; 414a -Facing17: ; 414a +Facing17: ; fishing up db 5 ; # db 0, 0, 0, $04 db 0, 8, 0, $05 @@ -153,7 +153,7 @@ Facing17: ; 414a db -8, 0, 4, $fc ; 415f -Facing18: ; 415f +Facing18: ; fishing left db 5 ; # db 0, 0, 0, $08 db 0, 8, 0, $09 @@ -162,7 +162,7 @@ Facing18: ; 415f db 5, -8, 4 | X_FLIP, $fd ; 4174 -Facing19: ; 4174 +Facing19: ; fishing right db 5 ; # db 0, 8, X_FLIP, $08 db 0, 0, X_FLIP, $09 @@ -171,7 +171,7 @@ Facing19: ; 4174 db 5, 16, 4, $fd ; 4189 -Facing20: ; 4189 +Facing20: ; emote db 4 ; # db 0, 0, 4, $f8 db 0, 8, 4, $f9 @@ -179,13 +179,13 @@ Facing20: ; 4189 db 8, 8, 4, $fb ; 419a -Facing21: ; 419a +Facing21: ; shadow db 2 ; # db 0, 0, 4, $fc db 0, 8, 4 | X_FLIP, $fc ; 41a3 -Facing23: ; 41a3 +Facing23: ; big doll db 16 ; # db 0, 0, 0, $00 db 0, 8, 0, $01 @@ -239,7 +239,7 @@ Facing22: ; 4206 db 24, 16, 0, $0b ; 423f -Facing28: ; 423f +Facing28: ; boulder dust 1 db 4 ; # db 0, 0, 4, $fe db 0, 8, 4, $fe @@ -247,7 +247,7 @@ Facing28: ; 423f db 8, 8, 4, $fe ; 4250 -Facing29: ; 4250 +Facing29: ; boulder dust 2 db 4 ; # db 0, 0, 4, $ff db 0, 8, 4, $ff diff --git a/engine/map_objects.asm b/engine/map_objects.asm index 670eca9a6..f15ca1401 100644 --- a/engine/map_objects.asm +++ b/engine/map_objects.asm @@ -151,7 +151,7 @@ Function4386: ; 4386 ; 43f3 Function43f3: ; 43f3 - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc ld a, [hl] and a @@ -162,7 +162,7 @@ Function43f3: ; 43f3 bit 5, [hl] jr nz, .bit5 - cp OBJECT_09_VALUE_01 + cp STEP_TYPE_01 jr z, .one jr .ok @@ -175,12 +175,13 @@ Function43f3: ; 43f3 .one call Function47dd - ld hl, OBJECT_09 + + ld hl, OBJECT_STEP_TYPE add hl, bc ld a, [hl] and a ret z - cp OBJECT_09_VALUE_01 + cp STEP_TYPE_01 ret z .ok @@ -242,40 +243,23 @@ endr ; 445f Pointers445f: ; 445f - dw Function44a3 ; 00 - dw Function44a3 ; 01 (00) - dw Function44b5 ; 02 (01) - dw Function44aa ; 03 (02) - dw Function44c1 ; 04 (03) - dw Function44aa ; 05 (04) - dw Function4508 ; 06 (05) - dw Function44aa ; 07 (06) - dw Function4529 ; 08 (07) - dw Function44aa ; 09 (08) - dw Function4539 ; 0a (09) - dw Function44a3 ; 0b (0a) - dw Function456e ; 0c (0b) - dw Function456e ; 0d (0c) - dw Function457b ; 0e (0d) - dw Function44a3 ; 0f (0e) - dw Function4582 ; 10 (0f) - dw Function4582 ; 11 (10) - dw Function4589 ; 12 (11) - dw Function4589 ; 13 (12) - dw Function4590 ; 14 (13) - dw Function45a4 ; 15 (14) - dw Function45ab ; 16 (15) - dw Function44aa ; 17 (16) - dw Function45be ; 18 (17) - dw Function45be ; 19 (18) - dw Function45c5 ; 1a (19) - dw Function45c5 ; 1b (1a) - dw Function45da ; 1c (1b) - dw Function44a3 ; 1d (1c) - dw Function45ed ; 1e (1d) - dw Function44a3 ; 1f (1e) - dw Function44e4 ; 20 (1f) - dw Function44aa ; 21 (20) + dw Function44a3, Function44a3 ; 00 + dw Function44b5, Function44aa ; 01 + dw Function44c1, Function44aa ; 02 + dw Function4508, Function44aa ; 03 + dw Function4529, Function44aa ; 04 + dw Function4539, Function44a3 ; 05 + dw Function456e, Function456e ; 06 + dw Function457b, Function44a3 ; 07 + dw Function4582, Function4582 ; 08 + dw Function4589, Function4589 ; 09 + dw Function4590, Function45a4 ; 0a + dw Function45ab, Function44aa ; 0c + dw Function45be, Function45be ; 0b + dw Function45c5, Function45c5 ; 0d + dw Function45da, Function44a3 ; 0e + dw Function45ed, Function44a3 ; 0f + dw Function44e4, Function44aa ; 10 ; 44a3 Function44a3: ; 44a3 @@ -571,15 +555,15 @@ Function4600: ; 4600 add hl, bc ld [hl], a - ld hl, OBJECT_STANDING_TILE + ld hl, OBJECT_NEXT_TILE add hl, bc ld a, [hl] - ld hl, OBJECT_NEXT_TILE + ld hl, OBJECT_STANDING_TILE add hl, bc ld [hl], a call Function4661 - ld hl, OBJECT_STANDING_TILE + ld hl, OBJECT_NEXT_TILE add hl, bc ld a, [hl] @@ -611,18 +595,18 @@ Function463f: ; 463f add hl, bc bit 3, [hl] jr z, .ok - ld hl, OBJECT_STANDING_TILE + ld hl, OBJECT_NEXT_TILE add hl, bc ld a, [hl] call Function4661 .ok - ld hl, OBJECT_STANDING_TILE + ld hl, OBJECT_NEXT_TILE add hl, bc ld a, [hl] call Function4679 ret c - ld hl, OBJECT_NEXT_TILE + ld hl, OBJECT_STANDING_TILE add hl, bc ld a, [hl] call Function4679 @@ -677,7 +661,7 @@ Function4690: ; 4690 ld hl, OBJECT_FLAGS1 add hl, bc bit FIXED_FACING, [hl] - jr nz, GetCurTile + jr nz, GetStandingTile rept 2 add a @@ -686,7 +670,7 @@ endr ld hl, OBJECT_FACING add hl, bc ld [hl], a -GetCurTile: ; 46a6 +GetStandingTile: ; 46a6 call GetStepVector @@ -718,7 +702,7 @@ GetCurTile: ; 46a6 call GetCoordTile pop bc - ld hl, OBJECT_STANDING_TILE + ld hl, OBJECT_NEXT_TILE add hl, bc ld [hl], a @@ -801,15 +785,15 @@ Function4738: ; 4738 add hl, bc ld a, [hl] and %00000011 - ld [wd151], a + ld [wPlayerStepDirection], a call AddStepVector - ld a, [wd14e] + ld a, [wPlayerStepVectorX] add d - ld [wd14e], a - ld a, [wd14f] + ld [wPlayerStepVectorX], a + ld a, [wPlayerStepVectorY] add e - ld [wd14f], a - ld hl, wd150 + ld [wPlayerStepVectorY], a + ld hl, wPlayerStepFlags set 5, [hl] ret ; 4759 @@ -925,14 +909,14 @@ Function47bc: ; 47bc push bc call GetCoordTile pop bc - ld hl, OBJECT_STANDING_TILE + ld hl, OBJECT_NEXT_TILE add hl, bc ld [hl], a call Function4600 call Function467b - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_01 + ld [hl], STEP_TYPE_01 ret ; 47dd @@ -965,15 +949,15 @@ Function47dd: ; 47dd dw .Script ; 10 dw .Strength ; 11 dw .FollowNotExact ; 12 - dw .Movement13 ; 13 - dw .Movement14 ; 14 + dw .MovementShadow ; 13 + dw .MovementEmote ; 14 dw .MovementBigStanding ; 15 dw .MovementBouncing ; 16 - dw .Movement17 ; 17 + dw .MovementScreenShake ; 17 dw .MovementSpinClockwise ; 18 dw .MovementSpinCounterclockwise ; 19 - dw .Movement1a ; 1a - dw .Movement1b ; 1b + dw .MovementBoulderDust ; 1a + dw .MovementShakingGrass ; 1b ; 4821 .Null_00: ; 4821 @@ -1035,10 +1019,10 @@ Function47dd: ; 47dd call Function467b ld hl, OBJECT_ACTION add hl, bc - ld [hl], 1 - ld hl, OBJECT_09 + ld [hl], PERSON_ACTION_01 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_05 + ld [hl], STEP_TYPE_05 ret ; 487c @@ -1095,7 +1079,7 @@ Function47dd: ; 47dd ; 48b3 .Strength_Start: ; 48b3 - ld hl, OBJECT_STANDING_TILE + ld hl, OBJECT_NEXT_TILE add hl, bc ld a, [hl] call CheckPitTile @@ -1120,9 +1104,9 @@ Function47dd: ; 47dd call PlaySFX call SpawnStrengthBoulderDust call Function463f - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_0F + ld [hl], STEP_TYPE_0F ret .ok2 @@ -1210,7 +1194,7 @@ Function47dd: ; 47dd ld [hl], STANDING ld hl, OBJECT_ACTION add hl, bc - ld [hl], 1 + ld [hl], PERSON_ACTION_01 ret ; 4958 @@ -1221,10 +1205,10 @@ Function47dd: ; 47dd ld [hl], STANDING ld hl, OBJECT_ACTION add hl, bc - ld [hl], 9 - ld hl, OBJECT_09 + ld [hl], PERSON_ACTION_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_04 + ld [hl], STEP_TYPE_04 ret ; 496e @@ -1235,10 +1219,10 @@ Function47dd: ; 47dd ld [hl], STANDING ld hl, OBJECT_ACTION add hl, bc - ld [hl], 10 - ld hl, OBJECT_09 + ld [hl], PERSON_ACTION_0A + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_04 + ld [hl], STEP_TYPE_04 ret ; 4984 @@ -1265,17 +1249,17 @@ Function47dd: ; 47dd .MovementSpinRepeat: ; 499c ld hl, OBJECT_ACTION add hl, bc - ld [hl], 1 + ld [hl], PERSON_ACTION_01 ld hl, OBJECT_RANGE add hl, bc ld a, [hl] - ld a, 16 + ld a, $10 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], a - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_03 + ld [hl], STEP_TYPE_03 call IncrementObjectMovementByteIndex ret ; 49b8 @@ -1318,11 +1302,11 @@ Function47dd: ; 47dd ret ; 49e5 -.Movement13: ; 49e5 - call ._Movement13_14_1a_1b +.MovementShadow: ; 49e5 + call ._MovementShadow_14_1a_1b ld hl, OBJECT_ACTION add hl, bc - ld [hl], $7 + ld [hl], PERSON_ACTION_07 ld hl, OBJECT_STEP_DURATION add hl, de ld a, [hl] @@ -1350,39 +1334,39 @@ Function47dd: ; 47dd ld hl, OBJECT_SPRITE_X_OFFSET add hl, bc ld [hl], 0 - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_13 + ld [hl], STEP_TYPE_13 ret ; 4a21 -.Movement14: ; 4a21 +.MovementEmote: ; 4a21 call Function467b - call ._Movement13_14_1a_1b + call ._MovementShadow_14_1a_1b ld hl, OBJECT_ACTION add hl, bc - ld [hl], 8 + ld [hl], PERSON_ACTION_08 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], 0 ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc - ld [hl], $f0 + ld [hl], -$10 ld hl, OBJECT_SPRITE_X_OFFSET add hl, bc ld [hl], 0 - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_13 + ld [hl], STEP_TYPE_13 ret ; 4a46 -.Movement1a: ; 4a46 +.MovementBoulderDust: ; 4a46 call Function467b - call ._Movement13_14_1a_1b + call ._MovementShadow_14_1a_1b ld hl, OBJECT_ACTION add hl, bc - ld [hl], $e + ld [hl], PERSON_ACTION_0E ld hl, OBJECT_STEP_DURATION add hl, de ld a, [hl] @@ -1410,9 +1394,9 @@ endr ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc ld [hl], e - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_13 + ld [hl], STEP_TYPE_13 ret ; 4a81 @@ -1424,12 +1408,12 @@ endr db -6, 2 ; 4a89 -.Movement1b: ; 4a89 +.MovementShakingGrass: ; 4a89 call Function467b - call ._Movement13_14_1a_1b + call ._MovementShadow_14_1a_1b ld hl, OBJECT_ACTION add hl, bc - ld [hl], $f + ld [hl], PERSON_ACTION_0F ld hl, OBJECT_STEP_DURATION add hl, de ld a, [hl] @@ -1437,13 +1421,13 @@ endr ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], a - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_13 + ld [hl], STEP_TYPE_13 ret ; 4aa8 -._Movement13_14_1a_1b: ; 4aa8 +._MovementShadow_14_1a_1b: ; 4aa8 ld hl, OBJECT_RANGE add hl, bc ld a, [hl] @@ -1460,28 +1444,28 @@ endr ret ; 4abc -.Movement17: ; 4abc +.MovementScreenShake: ; 4abc call Function467b ld hl, OBJECT_ACTION add hl, bc - ld [hl], 0 + ld [hl], PERSON_ACTION_00 ld hl, OBJECT_RANGE add hl, bc ld a, [hl] - call ._Movement17 + call ._MovementScreenShake ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], e ld hl, OBJECT_30 add hl, bc ld [hl], a - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_15 + ld [hl], STEP_TYPE_15 ret ; 4ade -._Movement17: ; 4ade +._MovementScreenShake: ; 4ade ld d, a and %00111111 ld e, a @@ -1506,20 +1490,20 @@ endr call Function463f ld hl, OBJECT_ACTION add hl, bc - ld [hl], 2 + ld [hl], PERSON_ACTION_02 ld hl, wd4cf ld a, [hMapObjectIndexBuffer] cp [hl] jr z, .load_6 - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_07 + ld [hl], STEP_TYPE_07 ret .load_6 - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_06 + ld [hl], STEP_TYPE_06 ret Function4b17: ; 4b17 @@ -1551,15 +1535,15 @@ SetRandomStepDuration: ; 4b2d ld [hl], STANDING ld hl, OBJECT_ACTION add hl, bc - ld [hl], 1 - ld hl, OBJECT_09 + ld [hl], PERSON_ACTION_01 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_03 + ld [hl], STEP_TYPE_03 ret ; 4b45 Pointers4b45: ; 4b45 -; These pointers use OBJECT_09. See constants/sprite_constants.asm +; These pointers use OBJECT_STEP_TYPE. See constants/sprite_constants.asm dw Function47bc ; 00 dw Function47dd ; 01 dw Function4e2b ; 02 @@ -1593,9 +1577,9 @@ Function4b79: ; 4b79 add hl, bc dec [hl] ret nz - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_01 + ld [hl], STEP_TYPE_01 ret ; 4b86 @@ -1614,7 +1598,7 @@ Function4b8d: ; 4b8d dec [hl] ret nz call Function4600 - call GetCurTile + call GetStandingTile ld hl, OBJECT_FLAGS2 add hl, bc res 3, [hl] @@ -1630,9 +1614,9 @@ Function4ba9: ; 4ba9 dec [hl] ret nz call Function4600 - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_01 + ld [hl], STEP_TYPE_01 ret ; 4bbf @@ -1646,7 +1630,7 @@ Function4bbf: ; 4bbf ; 4bca Function4bca: ; 4bca - ld hl, wd150 + ld hl, wPlayerStepFlags set 7, [hl] call IncrementObjectStructField28 ; fallthrough @@ -1663,7 +1647,7 @@ Function4bd2: ; 4bd2 ld hl, OBJECT_FLAGS2 add hl, bc res 3, [hl] - ld hl, wd150 + ld hl, wPlayerStepFlags set 6, [hl] set 4, [hl] call IncrementObjectStructField28 @@ -1671,8 +1655,8 @@ Function4bd2: ; 4bd2 ; 4bf2 Function4bf2: ; 4bf2 - call GetCurTile - ld hl, wd150 + call GetStandingTile + ld hl, wPlayerStepFlags set 7, [hl] call IncrementObjectStructField28 ; fallthrough @@ -1685,12 +1669,12 @@ Function4bfd: ; 4bfd add hl, bc dec [hl] ret nz - ld hl, wd150 + ld hl, wPlayerStepFlags set 6, [hl] call Function4600 - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_01 + ld [hl], STEP_TYPE_01 ret ; 4c18 @@ -1717,7 +1701,7 @@ Function4c23: ; 4c23 Function4c32: ; 4c32 ld hl, OBJECT_ACTION add hl, bc - ld [hl], 4 + ld [hl], PERSON_ACTION_04 ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] @@ -1746,7 +1730,7 @@ Function4c42: ; 4c42 Function4c5d: ; 4c5d ld hl, OBJECT_ACTION add hl, bc - ld [hl], 4 + ld [hl], PERSON_ACTION_04 ld hl, OBJECT_31 add hl, bc inc [hl] @@ -1765,9 +1749,9 @@ Function4c5d: ; 4c5d ld hl, OBJECT_12 add hl, bc ld [hl], 0 - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_01 + ld [hl], STEP_TYPE_01 ret ; 4c89 @@ -1786,7 +1770,7 @@ Function4c89: ; 4c89 Function4c9a: ; 4c9a ld hl, OBJECT_ACTION add hl, bc - ld [hl], 0 + ld [hl], PERSON_ACTION_00 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], $10 @@ -1820,7 +1804,7 @@ Function4cb3: ; 4cb3 Function4cc9: ; 4cc9 ld hl, OBJECT_ACTION add hl, bc - ld [hl], 4 + ld [hl], PERSON_ACTION_04 ld hl, OBJECT_31 add hl, bc inc [hl] @@ -1851,7 +1835,7 @@ Function4ceb: ; 4ceb Function4cf5: ; 4cf5 ld hl, OBJECT_ACTION add hl, bc - ld [hl], 4 + ld [hl], PERSON_ACTION_04 ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] @@ -1865,9 +1849,9 @@ Function4d01: ; 4d01 ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc ld [hl], 0 - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_01 + ld [hl], STEP_TYPE_01 ret ; 4d14 @@ -1883,7 +1867,7 @@ Function4d14: ; 4d14 Function4d1f: ; 4d1f ld hl, OBJECT_ACTION add hl, bc - ld [hl], 0 + ld [hl], PERSON_ACTION_00 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], $10 @@ -1898,7 +1882,7 @@ Function4d2e: ; 4d2e ret nz ld hl, OBJECT_ACTION add hl, bc - ld [hl], 2 + ld [hl], PERSON_ACTION_02 ld hl, OBJECT_12 add hl, bc ld [hl], 0 @@ -1939,9 +1923,9 @@ Function4d6b: ; 4d6b ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc ld [hl], 0 - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_01 + ld [hl], STEP_TYPE_01 ret ; 4d7e @@ -1976,9 +1960,9 @@ Function4d94: ; 4d94 ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc ld [hl], 0 - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_01 + ld [hl], STEP_TYPE_01 ret ; 4daf @@ -1992,9 +1976,9 @@ Function4db5: ; 4db5 add hl, bc ld a, [hl] and %00000001 - ld a, 1 + ld a, PERSON_ACTION_01 jr z, .yes - ld a, 0 + ld a, PERSON_ACTION_00 .yes ld hl, OBJECT_ACTION @@ -2008,9 +1992,9 @@ Function4dc8: ; 4dc8 add hl, bc ld a, [hl] and %00000001 - ld a, 4 + ld a, PERSON_ACTION_04 jr z, .yes - ld a, 5 + ld a, PERSON_ACTION_05 .yes ld hl, OBJECT_ACTION @@ -2027,9 +2011,9 @@ Function4ddd: ; 4ddd add hl, bc dec [hl] ret nz - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_01 + ld [hl], STEP_TYPE_01 ret ; 4df0 @@ -2049,9 +2033,9 @@ Function4dff: ; 4dff add hl, bc dec [hl] ret nz - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_01 + ld [hl], STEP_TYPE_01 ret ; 4e0c @@ -2091,9 +2075,9 @@ Function4e2b: ; 4e2b ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld [hl], STANDING - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_01 + ld [hl], STEP_TYPE_01 ret ; 4e47 @@ -2116,7 +2100,7 @@ Function4e56: ; 4e56 ; 4e5d Function4e5d: ; 4e5d - ld hl, wd150 + ld hl, wPlayerStepFlags set 7, [hl] call IncrementObjectStructField28 ; fallthrough @@ -2129,15 +2113,15 @@ Function4e65: ; 4e65 dec [hl] ret nz - ld hl, wd150 + ld hl, wPlayerStepFlags set 6, [hl] call Function4600 ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld [hl], STANDING - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_01 + ld [hl], STEP_TYPE_01 ret ; 4e83 @@ -2193,9 +2177,9 @@ Function4ec0: ; 4ec0 add hl, bc dec [hl] ret nz - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_01 + ld [hl], STEP_TYPE_01 ret ; 4ecd @@ -2225,9 +2209,9 @@ Function4ecd: ; 4ecd ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld [hl], STANDING - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_01 + ld [hl], STEP_TYPE_01 ret ; 4f04 @@ -2286,9 +2270,9 @@ Function4f43: ; 4f43 ld hl, OBJECT_29 add hl, bc ld d, [hl] - ld a, [wd14f] + ld a, [wPlayerStepVectorY] sub d - ld [wd14f], a + ld [wPlayerStepVectorY], a ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] @@ -2299,9 +2283,9 @@ Function4f43: ; 4f43 add hl, bc ld [hl], a ld d, a - ld a, [wd14f] + ld a, [wPlayerStepVectorY] add d - ld [wd14f], a + ld [wPlayerStepVectorY], a ret .ok @@ -2342,10 +2326,10 @@ Function4f83: ; 4f83 Function4f8a: ; 4f8a ld hl, OBJECT_ACTION add hl, bc - ld [hl], $10 + ld [hl], PERSON_ACTION_10 ld hl, OBJECT_STEP_DURATION add hl, bc - ld [hl], $10 + ld [hl], 16 call IncrementObjectStructField28 ; 4f99 @@ -2360,9 +2344,9 @@ Function4f99: ; 4f99 ld hl, OBJECT_12 add hl, bc ld [hl], 0 - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_01 + ld [hl], STEP_TYPE_01 ret ; 4fb2 @@ -2893,7 +2877,7 @@ Function5688: ; 5688 ld e, [hl] call GetCoordTile pop bc - ld hl, OBJECT_STANDING_TILE + ld hl, OBJECT_NEXT_TILE add hl, bc ld [hl], a callba Function463f @@ -3060,11 +3044,11 @@ Function576a:: ; 576a Function5771: ; 5771 xor a - ld [wd14e], a - ld [wd14f], a - ld [wd150], a + ld [wPlayerStepVectorX], a + ld [wPlayerStepVectorY], a + ld [wPlayerStepFlags], a ld a, -1 - ld [wd151], a + ld [wPlayerStepDirection], a ret ; 5781 @@ -3203,9 +3187,9 @@ SetFollowerIfVisible: ; 582c ld hl, OBJECT_MOVEMENTTYPE add hl, bc ld [hl], SPRITEMOVEDATA_FOLLOWING - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_00 + ld [hl], STEP_TYPE_00 ld a, [hObjectStructIndexBuffer] ld [wObjectFollow_Follower], a ret @@ -3343,9 +3327,9 @@ Function58e3: ; 58e3 add hl, bc ld [hl], a - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_00 + ld [hl], STEP_TYPE_00 ret ; 5903 @@ -3362,9 +3346,9 @@ Function5903: ; 5903 add hl, bc ld [hl], a - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_00 + ld [hl], STEP_TYPE_00 ret .standing_movefns diff --git a/engine/movement.asm b/engine/movement.asm index 7708773aa..4e3182c12 100644 --- a/engine/movement.asm +++ b/engine/movement.asm @@ -93,30 +93,30 @@ MovementPointers: ; 5075 Movement_teleport_from: ; 5129 - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_0C + ld [hl], STEP_TYPE_0C ret ; 5130 Movement_teleport_to: ; 5130 - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_0D + ld [hl], STEP_TYPE_0D ret ; 5137 Movement_skyfall: ; 5137 - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_0E + ld [hl], STEP_TYPE_0E ret ; 513e Movement_59: ; 513e - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_19 + ld [hl], STEP_TYPE_19 ret ; 5145 @@ -129,14 +129,14 @@ Movement_step_wait5: ; 5145 ld [hl], a ld hl, OBJECT_ACTION add hl, bc - ld [hl], $4 + ld [hl], PERSON_ACTION_04 call GetMovementByte ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], a - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_03 + ld [hl], STEP_TYPE_03 ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld [hl], STANDING @@ -157,19 +157,19 @@ Movement_58: ; 516a ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld [hl], STANDING - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_12 + ld [hl], STEP_TYPE_12 ret ; 5189 Movement_fish_got_bite: ; 5189 ld hl, OBJECT_ACTION add hl, bc - ld [hl], $6 - ld hl, OBJECT_09 + ld [hl], PERSON_ACTION_06 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_10 + ld [hl], STEP_TYPE_10 ret ; 5196 @@ -180,20 +180,20 @@ Movement_rock_smash: ; 5196 ld [hl], a ld hl, OBJECT_ACTION add hl, bc - ld [hl], $1 - ld hl, OBJECT_09 + ld [hl], PERSON_ACTION_01 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_11 + ld [hl], STEP_TYPE_11 ret ; 51ab Movement_fish_cast_rod: ; 51ab ld hl, OBJECT_ACTION add hl, bc - ld [hl], $6 - ld hl, OBJECT_09 + ld [hl], PERSON_ACTION_06 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_01 + ld [hl], STEP_TYPE_01 ret ; 51b8 @@ -217,9 +217,9 @@ Movement_step_end: ; 51c1 ld hl, VramState res 7, [hl] - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_01 + ld [hl], STEP_TYPE_01 ret ; 51db @@ -238,9 +238,9 @@ Movement_48: ; 51db add hl, bc ld [hl], a - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_03 + ld [hl], STEP_TYPE_03 ld hl, VramState res 7, [hl] @@ -264,11 +264,11 @@ Movement_remove_person: ; 51fd Movement_4b: ; 5210 ld hl, OBJECT_ACTION add hl, bc - ld [hl], $1 + ld [hl], PERSON_ACTION_01 - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_04 + ld [hl], STEP_TYPE_04 ld hl, VramState res 7, [hl] @@ -319,13 +319,13 @@ Movement_step_sleep_common: ; 5247 add hl, bc ld [hl], a - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_03 + ld [hl], STEP_TYPE_03 ld hl, OBJECT_ACTION add hl, bc - ld [hl], $1 + ld [hl], PERSON_ACTION_01 ld hl, OBJECT_DIRECTION_WALKING add hl, bc @@ -338,12 +338,12 @@ Movement_step_bump: ; 525f ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], a - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_0B + ld [hl], STEP_TYPE_0B ld hl, OBJECT_ACTION add hl, bc - ld [hl], $3 + ld [hl], PERSON_ACTION_03 ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld [hl], STANDING @@ -351,16 +351,19 @@ Movement_step_bump: ; 525f ; 5279 Movement_56: ; 5279 - ld a, $18 + ld a, 24 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], a - ld hl, OBJECT_09 + + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_03 + ld [hl], STEP_TYPE_03 + ld hl, OBJECT_ACTION add hl, bc - ld [hl], $b + ld [hl], PERSON_ACTION_0B + ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld [hl], STANDING @@ -448,9 +451,11 @@ TurnHead: ; 52ee ld hl, OBJECT_FACING add hl, bc ld [hl], a + ld hl, OBJECT_ACTION add hl, bc - ld [hl], $1 + ld [hl], PERSON_ACTION_01 + ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld [hl], STANDING @@ -721,12 +726,14 @@ HalfStep: ; 5400 ld hl, OBJECT_29 add hl, bc ld [hl], a + ld hl, OBJECT_ACTION add hl, bc - ld [hl], $2 - ld hl, OBJECT_09 + ld [hl], PERSON_ACTION_02 + + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_0A + ld [hl], STEP_TYPE_0A ret ; 5412 @@ -735,34 +742,35 @@ NormalStep: ; 5412 call Function463f ld hl, OBJECT_ACTION add hl, bc - ld [hl], $2 - ld hl, OBJECT_STANDING_TILE + ld [hl], PERSON_ACTION_02 + + ld hl, OBJECT_NEXT_TILE add hl, bc ld a, [hl] call CheckSuperTallGrassTile - jr z, .asm_542d + jr z, .shake_grass call Function1875 - jr c, .asm_5430 + jr c, .skip_grass -.asm_542d +.shake_grass call ShakeGrass -.asm_5430 +.skip_grass ld hl, wd4cf ld a, [hMapObjectIndexBuffer] cp [hl] jr z, .asm_543f - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_02 + ld [hl], STEP_TYPE_02 ret .asm_543f - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_06 + ld [hl], STEP_TYPE_06 ret ; 5446 @@ -771,20 +779,20 @@ TurningStep: ; 5446 call Function463f ld hl, OBJECT_ACTION add hl, bc - ld [hl], $4 + ld [hl], PERSON_ACTION_04 ld hl, wd4cf ld a, [hMapObjectIndexBuffer] cp [hl] jr z, .asm_5461 - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_02 + ld [hl], STEP_TYPE_02 ret .asm_5461 - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_06 + ld [hl], STEP_TYPE_06 ret ; 5468 @@ -794,20 +802,20 @@ SlideStep: ; 5468 call Function463f ld hl, OBJECT_ACTION add hl, bc - ld [hl], $1 + ld [hl], PERSON_ACTION_01 ld hl, wd4cf ld a, [hMapObjectIndexBuffer] cp [hl] jr z, .asm_5483 - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_02 + ld [hl], STEP_TYPE_02 ret .asm_5483 - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_06 + ld [hl], STEP_TYPE_06 ret ; 548a @@ -822,20 +830,20 @@ JumpStep: ; 548a res 3, [hl] ld hl, OBJECT_ACTION add hl, bc - ld [hl], $2 + ld [hl], PERSON_ACTION_02 call SpawnShadow ld hl, wd4cf ld a, [hMapObjectIndexBuffer] cp [hl] jr z, .asm_54b1 - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_08 + ld [hl], STEP_TYPE_08 ret .asm_54b1 - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], OBJECT_09_VALUE_09 + ld [hl], STEP_TYPE_09 ret ; 54b8 diff --git a/engine/overworld.asm b/engine/overworld.asm index 566cc2a9b..fa4d02e7c 100755 --- a/engine/overworld.asm +++ b/engine/overworld.asm @@ -13,11 +13,11 @@ _ReplaceKrisSprite:: ; 14135 ld [hUsedSpriteIndex], a ld a, [UsedSprites + 1] ld [hUsedSpriteTile], a - call Function143c8 + call GetUsedSprite ret ; 14146 -Function14146: ; 14146 +Function14146: ; mobile ld hl, wSpriteFlags ld a, [hl] push af @@ -29,7 +29,7 @@ Function14146: ; 14146 ret ; 14157 -Function14157: ; 14157 +Function14157: ; mobile ld hl, wSpriteFlags ld a, [hl] push af @@ -168,23 +168,23 @@ endr RunCallback_04: ; 14209 ld a, $4 call RunMapCallback - call Function1439b - call Function14215 + call GetUsedSprites + call .LoadMiscTiles ret ; 14215 -Function14215: ; 14215 +.LoadMiscTiles: ; 14215 ld a, [wSpriteFlags] bit 6, a ret nz - ld c, EMOTE_08 + + ld c, EMOTE_SHADOW callba LoadEmote call GetMapPermission call CheckOutdoorMap ld c, EMOTE_0B jr z, .outdoor - ld c, EMOTE_0A - + ld c, EMOTE_BOULDER_DUST .outdoor callba LoadEmote ret @@ -575,29 +575,34 @@ GetSpriteLength: ; 14386 ; 1439b -Function1439b: ; 1439b +GetUsedSprites: ; 1439b ld hl, UsedSprites ld c, SPRITE_GFX_LIST_CAPACITY + .loop ld a, [wSpriteFlags] res 5, a ld [wSpriteFlags], a + ld a, [hli] and a jr z, .done ld [hUsedSpriteIndex], a + ld a, [hli] ld [hUsedSpriteTile], a + bit 7, a jr z, .dont_set + ld a, [wSpriteFlags] - set 5, a + set 5, a ; load VBank0 ld [wSpriteFlags], a .dont_set push bc push hl - call Function143c8 + call GetUsedSprite pop hl pop bc dec c @@ -607,7 +612,7 @@ Function1439b: ; 1439b ret ; 143c8 -Function143c8: ; 143c8 +GetUsedSprite: ; 143c8 ld a, [hUsedSpriteIndex] call SafeGetSprite ld a, [hUsedSpriteTile] @@ -632,14 +637,17 @@ endr ld d, h ld e, l pop hl + ld a, [wSpriteFlags] bit 5, a jr nz, .done bit 6, a jr nz, .done + ld a, [hUsedSpriteIndex] call _DoesSpriteHaveFacings jr c, .done + ld a, h add $8 ld h, a @@ -716,7 +724,7 @@ LoadEmote:: ; 1442f emote_header: MACRO dw \1 db \2 tiles, BANK(\1) - dw \3 + dw VTiles1 tile \3 ENDM EmotesPointers: ; 144d @@ -724,18 +732,18 @@ EmotesPointers: ; 144d ; db length, bank ; dw dest address - emote_header ShockEmote, 4, VTiles1 tile $78 - emote_header QuestionEmote, 4, VTiles1 tile $78 - emote_header HappyEmote, 4, VTiles1 tile $78 - emote_header SadEmote, 4, VTiles1 tile $78 - emote_header HeartEmote, 4, VTiles1 tile $78 - emote_header BoltEmote, 4, VTiles1 tile $78 - emote_header SleepEmote, 4, VTiles1 tile $78 - emote_header FishEmote, 4, VTiles1 tile $78 - emote_header JumpShadowGFX, 1, VTiles1 tile $7c - emote_header FishingRodGFX2, 2, VTiles1 tile $7c - emote_header BoulderDustGFX, 2, VTiles1 tile $7e - emote_header FishingRodGFX4, 1, VTiles1 tile $7e + emote_header ShockEmote, 4, $78 + emote_header QuestionEmote, 4, $78 + emote_header HappyEmote, 4, $78 + emote_header SadEmote, 4, $78 + emote_header HeartEmote, 4, $78 + emote_header BoltEmote, 4, $78 + emote_header SleepEmote, 4, $78 + emote_header FishEmote, 4, $78 + emote_header JumpShadowGFX, 1, $7c + emote_header FishingRodGFX2, 2, $7c + emote_header BoulderDustGFX, 2, $7e + emote_header FishingRodGFX4, 1, $7e ; 14495 diff --git a/home/map.asm b/home/map.asm index dd4dc069a..4400e411b 100644 --- a/home/map.asm +++ b/home/map.asm @@ -1238,9 +1238,9 @@ ScrollMapDown:: ; 272a call BackupBGMapRow ld c, 2 * SCREEN_WIDTH call FarCallScrollBGMapPalettes - ld a, [wBGMapAnchorLo] + ld a, [wBGMapAnchor] ld e, a - ld a, [wBGMapAnchorHi] + ld a, [wBGMapAnchor + 1] ld d, a call UpdateBGMapRow ld a, $1 @@ -1254,9 +1254,9 @@ ScrollMapUp:: ; 2748 call BackupBGMapRow ld c, 2 * SCREEN_WIDTH call FarCallScrollBGMapPalettes - ld a, [wBGMapAnchorLo] + ld a, [wBGMapAnchor] ld l, a - ld a, [wBGMapAnchorHi] + ld a, [wBGMapAnchor + 1] ld h, a ld bc, $0200 add hl, bc @@ -1278,9 +1278,9 @@ ScrollMapLeft:: ; 2771 call BackupBGMapColumn ld c, 2 * SCREEN_HEIGHT call FarCallScrollBGMapPalettes - ld a, [wBGMapAnchorLo] + ld a, [wBGMapAnchor] ld e, a - ld a, [wBGMapAnchorHi] + ld a, [wBGMapAnchor + 1] ld d, a call UpdateBGMapColumn ld a, $1 @@ -1294,7 +1294,7 @@ ScrollMapRight:: ; 278f call BackupBGMapColumn ld c, 2 * SCREEN_HEIGHT call FarCallScrollBGMapPalettes - ld a, [wBGMapAnchorLo] + ld a, [wBGMapAnchor] ld e, a and %11100000 ld b, a @@ -1303,7 +1303,7 @@ ScrollMapRight:: ; 278f and %00011111 or b ld e, a - ld a, [wBGMapAnchorHi] + ld a, [wBGMapAnchor + 1] ld d, a call UpdateBGMapColumn ld a, $1 @@ -1505,7 +1505,7 @@ SaveScreen:: ; 289d ld a, [MapWidth] add $6 ld [hMapObjectIndexBuffer], a - ld a, [wd151] + ld a, [wPlayerStepDirection] and a jr z, .down cp UP @@ -1599,11 +1599,11 @@ Function2914:: ; 2914 ld a, [PlayerNextMapY] ld e, a call GetCoordTile - ld [PlayerStandingTile], a + ld [PlayerNextTile], a call Function29ff ret nz - ld a, [PlayerStandingTile] + ld a, [PlayerNextTile] and 7 ld hl, .data_2945 add l diff --git a/home/map_objects.asm b/home/map_objects.asm index c2512b22f..bcd5ad1ea 100644 --- a/home/map_objects.asm +++ b/home/map_objects.asm @@ -80,14 +80,14 @@ DoesSpriteHaveFacings:: ; 1836 Function184a:: ; 184a - ld a, [PlayerStandingTile] + ld a, [PlayerNextTile] call GetTileCollision ld b, a ret ; 1852 CheckOnWater:: ; 1852 - ld a, [PlayerStandingTile] + ld a, [PlayerNextTile] call GetTileCollision sub 1 ret z @@ -211,7 +211,7 @@ CheckWaterfallTile:: ; 18bd ; 18c3 CheckStandingOnEntrance:: ; 18c3 - ld a, [PlayerStandingTile] + ld a, [PlayerNextTile] cp $71 ; door ret z cp $79 @@ -447,7 +447,7 @@ LoadMovementDataPointer:: ; 19e9 add hl, bc ld [hl], SPRITEMOVEDATA_SCRIPTED - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, bc ld [hl], 0 diff --git a/main.asm b/main.asm index c455092e6..f6c42b4f7 100644 --- a/main.asm +++ b/main.asm @@ -1526,9 +1526,9 @@ Function6473: ; 6473 ld a, VBGMap0 / $100 call Function64b9 xor a - ld [wd152], a - ld a, $98 - ld [wd153], a + ld [wBGMapAnchor], a + ld a, VBGMap0 / $100 + ld [wBGMapAnchor + 1], a xor a ld [hSCX], a ld [hSCY], a @@ -2188,7 +2188,7 @@ Function6f07: ; 6f07 add hl, bc bit 7, [hl] jp nz, Function6fa1 - ld hl, OBJECT_STANDING_TILE + ld hl, OBJECT_NEXT_TILE add hl, bc ld a, [hl] ld d, a @@ -2202,7 +2202,7 @@ Function6f07: ; 6f07 Function6f2c: ; 6f2c call Function6f5f ret c - ld hl, OBJECT_STANDING_TILE + ld hl, OBJECT_NEXT_TILE add hl, bc ld a, [hl] call GetTileCollision @@ -2213,7 +2213,7 @@ Function6f2c: ; 6f2c ; 6f3e Function6f3e: ; 6f3e - ld hl, OBJECT_STANDING_TILE + ld hl, OBJECT_NEXT_TILE add hl, bc ld a, [hl] call Function6f7f @@ -2239,7 +2239,7 @@ Function6f3e: ; 6f3e ; 6f5f Function6f5f: ; 6f5f - ld hl, OBJECT_NEXT_TILE + ld hl, OBJECT_STANDING_TILE add hl, bc ld a, [hl] call Function6f7f @@ -3488,7 +3488,7 @@ InitializeVisibleSprites: ; 8177 Function81ca:: ; 81ca nop - ld a, [wd151] + ld a, [wPlayerStepDirection] cp $ff ret z ld hl, .jumptable @@ -3651,9 +3651,9 @@ CopyTempObjectToObjectStruct: ; 8286 add hl, de ld [hl], a - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, de - ld [hl], OBJECT_09_VALUE_00 + ld [hl], STEP_TYPE_00 ld hl, OBJECT_FACING_STEP add hl, de @@ -3904,9 +3904,9 @@ FollowNotExact:: ; 839e ld hl, OBJECT_MOVEMENTTYPE add hl, de ld [hl], SPRITEMOVEDATA_FOLLOWNOTEXACT - ld hl, OBJECT_09 + ld hl, OBJECT_STEP_TYPE add hl, de - ld [hl], OBJECT_09_VALUE_00 + ld [hl], STEP_TYPE_00 ret ; 8417 @@ -5381,7 +5381,7 @@ Script_UsedWaterfall: ; 0xcb20 CheckContinueWaterfall: ; cb38 xor a ld [ScriptVar], a - ld a, [PlayerStandingTile] + ld a, [PlayerNextTile] call CheckWaterfallTile ret z callba MobileFn_1060c1 @@ -6325,7 +6325,7 @@ Script_NotEvenANibble2: ; 0xd027 writetext UnknownText_0xd0a9 Script_NotEvenANibble_FallThrough: ; 0xd02d - loademote EMOTE_08 + loademote EMOTE_SHADOW callasm PutTheRodAway loadmovesprites end @@ -6396,7 +6396,7 @@ Script_FishCastRod: ; 0xd07c reloadmappart loadvar hBGMapMode, $0 special UpdateTimePals - loademote EMOTE_09 + loademote EMOTE_ROD callasm LoadFishingGFX loademote EMOTE_SHOCK applymovement PLAYER, MovementData_0xd093 @@ -7291,7 +7291,7 @@ GetItemPrice: ; d486 Functiond497:: ; d497 (3:5497) - ld a, [wd150] + ld a, [wPlayerStepFlags] and a ret z bit 7, a @@ -7311,9 +7311,9 @@ Functiond497:: ; d497 (3:5497) jr .asm_d4b8 .asm_d4b8 call Functiond4e5 - ld a, [wd14e] + ld a, [wPlayerStepVectorX] ld d, a - ld a, [wd14f] + ld a, [wPlayerStepVectorY] ld e, a ld a, [wd14c] sub d @@ -7324,9 +7324,9 @@ Functiond497:: ; d497 (3:5497) ret Functiond4d2:: ; d4d2 (3:54d2) - ld a, [wd14e] + ld a, [wPlayerStepVectorX] ld d, a - ld a, [wd14f] + ld a, [wPlayerStepVectorY] ld e, a ld a, [hSCX] add d @@ -7372,7 +7372,7 @@ Jumptable_d4f2: ; d4f2 (3:54f2) ret Functiond511: ; d511 (3:5511) - ld a, [wd151] + ld a, [wPlayerStepDirection] and a jr nz, .asm_d51c ld hl, YCoord @@ -7398,7 +7398,7 @@ Functiond511: ; d511 (3:5511) ret Functiond536: ; d536 (3:5536) - ld a, [wd151] + ld a, [wPlayerStepDirection] and a jr z, .asm_d549 cp $1 @@ -7434,24 +7434,24 @@ Functiond536: ; d536 (3:5536) ret Functiond571: ; d571 (3:5571) - ld a, [wd152] + ld a, [wBGMapAnchor] add $40 - ld [wd152], a - jr nc, .asm_d586 - ld a, [wd153] + ld [wBGMapAnchor], a + jr nc, .not_overflowed + ld a, [wBGMapAnchor + 1] inc a and $3 - or $98 - ld [wd153], a -.asm_d586 + or VBGMap0 / $100 + ld [wBGMapAnchor + 1], a +.not_overflowed ld hl, wd196 inc [hl] ld a, [hl] - cp $2 - jr nz, .asm_d594 + cp $2 ; was 1 + jr nz, .skip ld [hl], $0 call Functiond595 -.asm_d594 +.skip ret Functiond595: ; d595 (3:5595) @@ -7465,24 +7465,24 @@ Functiond595: ; d595 (3:5595) ret Functiond5a2: ; d5a2 (3:55a2) - ld a, [wd152] + ld a, [wBGMapAnchor] sub $40 - ld [wd152], a - jr nc, .asm_d5b7 - ld a, [wd153] + ld [wBGMapAnchor], a + jr nc, .not_underflowed + ld a, [wBGMapAnchor + 1] dec a and $3 - or $98 - ld [wd153], a -.asm_d5b7 + or VBGMap0 / $100 + ld [wBGMapAnchor + 1], a +.not_underflowed ld hl, wd196 dec [hl] ld a, [hl] - cp $ff - jr nz, .asm_d5c5 + cp $ff ; was 0 + jr nz, .skip ld [hl], $1 call Functiond5c6 -.asm_d5c5 +.skip ret Functiond5c6: ; d5c6 (3:55c6) @@ -7498,7 +7498,7 @@ Functiond5c6: ; d5c6 (3:55c6) ret Functiond5d5: ; d5d5 (3:55d5) - ld a, [wd152] + ld a, [wBGMapAnchor] ld e, a and $e0 ld d, a @@ -7506,7 +7506,7 @@ Functiond5d5: ; d5d5 (3:55d5) sub $2 and $1f or d - ld [wd152], a + ld [wBGMapAnchor], a ld hl, wd197 dec [hl] ld a, [hl] @@ -7527,7 +7527,7 @@ Functiond5f4: ; d5f4 (3:55f4) ret Functiond5fe: ; d5fe (3:55fe) - ld a, [wd152] + ld a, [wBGMapAnchor] ld e, a and $e0 ld d, a @@ -7535,7 +7535,7 @@ Functiond5fe: ; d5fe (3:55fe) add $2 and $1f or d - ld [wd152], a + ld [wBGMapAnchor], a ld hl, wd197 inc [hl] ld a, [hl] @@ -11364,7 +11364,7 @@ Function140ed:: ; 140ed INCLUDE "engine/overworld.asm" Function1499a:: ; 1499a - ld a, [PlayerStandingTile] + ld a, [PlayerNextTile] cp $60 jr z, .asm_149ad cp $68 @@ -11381,7 +11381,7 @@ Function1499a:: ; 1499a ; 149af Function149af:: ; 149af - ld a, [PlayerStandingTile] + ld a, [PlayerNextTile] cp $70 jr z, .asm_149c4 cp $76 @@ -11401,7 +11401,7 @@ Function149af:: ; 149af CheckWarpCollision: ; 149c6 ld de, 1 ld hl, .blocks - ld a, [PlayerStandingTile] + ld a, [PlayerNextTile] call IsInArray ret ; 149d3 @@ -11420,7 +11420,7 @@ CheckWarpCollision: ; 149c6 ; 149dd CheckGrassCollision:: ; 149dd - ld a, [PlayerStandingTile] + ld a, [PlayerNextTile] ld hl, .blocks ld de, 1 call IsInArray @@ -11460,7 +11460,7 @@ CheckCutCollision: ; 149f5 ; 14a07 Function14a07:: ; 14a07 - ld a, [PlayerStandingTile] + ld a, [PlayerNextTile] ld de, $1f cp $71 ; door ret z @@ -34139,7 +34139,7 @@ CheckTileMovement: ; 800b7 ; Tiles such as waterfalls and warps move the player ; in a given direction, overriding input. - ld a, [PlayerStandingTile] + ld a, [PlayerNextTile] ld c, a call CheckWhirlpoolTile jr c, .asm_800c4 @@ -34300,7 +34300,7 @@ TryStep: ; 8016b cp 2 jr z, .bump - ld a, [PlayerStandingTile] + ld a, [PlayerNextTile] call CheckIceTile jr nc, .ice @@ -34387,7 +34387,7 @@ TrySurfStep: ; 801c0 TryJumpLedge: ; 801f3 - ld a, [PlayerStandingTile] + ld a, [PlayerNextTile] ld e, a and $f0 cp $a0 ; ledge @@ -34439,7 +34439,7 @@ CheckEdgeWarp: ; 80226 ld d, 0 ld hl, .EdgeWarps add hl, de - ld a, [PlayerStandingTile] + ld a, [PlayerNextTile] cp [hl] jr nz, .nope @@ -34647,7 +34647,7 @@ GetMovementAction: ; 802ec ; tile collision pointer .table1 db STANDING, FACE_CURRENT, 0, 0 - dw PlayerStandingTile + dw PlayerNextTile .table2 db RIGHT, FACE_RIGHT, 1, 0 dw TileRight @@ -34859,7 +34859,7 @@ CheckStandingOnIce:: ; 80404 jr z, .nope cp $f0 jr z, .nope - ld a, [PlayerStandingTile] + ld a, [PlayerNextTile] call CheckIceTile jr nc, .yep ld a, [PlayerState] @@ -50406,23 +50406,23 @@ Function104309: ret Function10433a: ; 10433a (41:433a) - ld b, $4 -.asm_10433c - ld c, $14 -.asm_10433e + ld b, 4 +.outer_loop + ld c, 20 +.inner_loop ld a, [de] ld [hli], a inc de dec c - jr nz, .asm_10433e + jr nz, .inner_loop ld a, l - add $c + add $20 - 20 ld l, a ld a, h adc $0 ld h, a dec b - jr nz, .asm_10433c + jr nz, .outer_loop ret ; 104350 @@ -50460,7 +50460,7 @@ RunCallback_03: ; 1045c4 EnterMapConnection: ; 1045d6 ; Return carry if a connection has been entered. - ld a, [wd151] + ld a, [wPlayerStepDirection] and a jp z, EnterSouthConnection cp 1 @@ -50687,9 +50687,9 @@ LoadMapTimeOfDay: ; 104750 Function104770: ; 104770 (41:4770) ld a, $98 - ld [wd153], a + ld [wBGMapAnchor + 1], a xor a - ld [wd152], a + ld [wBGMapAnchor], a ld [hSCY], a ld [hSCX], a callba Function5958 @@ -50776,7 +50776,7 @@ RefreshMapSprites: ; 1047f0 ret CheckMovingOffEdgeOfMap:: ; 104820 (41:4820) - ld a, [wd151] + ld a, [wPlayerStepDirection] cp STANDING ret z and a ; DOWN diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm index 72669766f..7c36b993d 100755 --- a/misc/mobile_5c.asm +++ b/misc/mobile_5c.asm @@ -1297,7 +1297,7 @@ Function_LoadOpponentTrainerAndPokemonsWithOTSprite: ; 0x170b44 ld [hUsedSpriteIndex], a ld a, [hl] ld [hUsedSpriteTile], a - callba Function143c8 + callba GetUsedSprite ret ; 170b90 diff --git a/tilesets/animations.asm b/tilesets/animations.asm index 0a681c86b..feafbf6d8 100644 --- a/tilesets/animations.asm +++ b/tilesets/animations.asm @@ -48,7 +48,7 @@ Tileset03Anim: ; 0xfc01b dw NULL, AnimateFlowerTile dw NULL, WaitTileAnimation dw NULL, WaitTileAnimation - dw NULL, CurTileFrame8 + dw NULL, StandingTileFrame8 dw NULL, DoneTileAnimation ; 0xfc047 @@ -62,7 +62,7 @@ Tileset25Anim: ; 0xfc047 dw NULL, AnimateFlowerTile dw NULL, WaitTileAnimation dw NULL, WaitTileAnimation - dw NULL, CurTileFrame8 + dw NULL, StandingTileFrame8 dw NULL, DoneTileAnimation ; 0xfc073 @@ -77,7 +77,7 @@ Tileset31Anim: ; 0xfc073 dw NULL, AnimateFlowerTile dw VTiles2 tile $14, AnimateWaterTile dw NULL, TileAnimationPalette - dw NULL, CurTileFrame8 + dw NULL, StandingTileFrame8 dw NULL, DoneTileAnimation ; 0xfc0a3 @@ -93,7 +93,7 @@ Tileset01Anim: ; 0xfc0a3 dw WhirlpoolFrames3, AnimateWhirlpoolTile dw WhirlpoolFrames4, AnimateWhirlpoolTile dw NULL, WaitTileAnimation - dw NULL, CurTileFrame8 + dw NULL, StandingTileFrame8 dw NULL, DoneTileAnimation ; 0xfc0d7 @@ -136,7 +136,7 @@ Tileset09Anim: ; 0xfc12f dw NULL, WaitTileAnimation dw NULL, WaitTileAnimation dw NULL, WaitTileAnimation - dw NULL, CurTileFrame8 + dw NULL, StandingTileFrame8 dw NULL, DoneTileAnimation ; 0xfc15f @@ -147,7 +147,7 @@ Tileset15Anim: ; 0xfc15f dw NULL, WaitTileAnimation dw NULL, SafariFountainAnim1 dw NULL, WaitTileAnimation - dw NULL, CurTileFrame8 + dw NULL, StandingTileFrame8 dw NULL, DoneTileAnimation ; 0xfc17f @@ -239,7 +239,7 @@ Tileset23Anim: ; 0xfc27f dw SproutPillarTilePointer4, AnimateSproutPillarTile dw SproutPillarTilePointer1, AnimateSproutPillarTile dw SproutPillarTilePointer2, AnimateSproutPillarTile - dw NULL, CurTileFrame + dw NULL, StandingTileFrame dw NULL, WaitTileAnimation dw NULL, WaitTileAnimation dw NULL, WaitTileAnimation @@ -302,7 +302,7 @@ WaitTileAnimation: ; fc2fe ret ; fc2ff -CurTileFrame8: ; fc2ff +StandingTileFrame8: ; fc2ff ld a, [TileAnimationTimer] inc a and a, 7 @@ -806,7 +806,7 @@ AnimateSproutPillarTile: ; fc645 ; fc673 -CurTileFrame: ; fc673 +StandingTileFrame: ; fc673 ld hl, TileAnimationTimer inc [hl] ret diff --git a/wram.asm b/wram.asm index 42de7cb76..edf88c5d6 100644 --- a/wram.asm +++ b/wram.asm @@ -1735,15 +1735,14 @@ wd14b:: ds 1 wd14c:: ds 1 ; used in FollowNotExact wd14d:: ds 1 ; used in FollowNotExact + ; Player movement -wd14e:: ds 1 -wd14f:: ds 1 -wd150:: ds 1 -wd151:: ds 1 -wBGMapAnchorLo:: -wd152:: ds 1 -wBGMapAnchorHi:: -wd153:: ds 1 +wPlayerStepVectorX:: ds 1 +wPlayerStepVectorY:: ds 1 +wPlayerStepFlags:: ds 1 +wPlayerStepDirection:: ds 1 + +wBGMapAnchor:: ds 2 UsedSprites:: ds 64 ; d154 UsedSpritesEnd:: @@ -2218,13 +2217,13 @@ object_struct: MACRO \1Palette:: ds 1 \1Walking:: ds 1 \1Direction:: ds 1 -\1Object09:: ds 1 +\1StepType:: ds 1 \1StepDuration:: ds 1 \1Action:: ds 1 \1Object12:: ds 1 \1Facing:: ds 1 -\1StandingTile:: ds 1 ; collision -\1CurTile:: ds 1 ; collision +\1NextTile:: ds 1 ; collision +\1StandingTile:: ds 1 ; collision \1NextMapX:: ds 1 \1NextMapY:: ds 1 \1MapX:: ds 1 From ead04b3b75c79446a337b5b2c38f2650f22a5f3b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 15 Nov 2015 14:59:38 -0500 Subject: [PATCH 06/40] Backup prior to global introduction of PERSONTYPE constants --- constants/map_constants.asm | 9 +++ engine/events.asm | 37 ++++++------ engine/map_objects.asm | 115 ++++++++++++++++++------------------ engine/movement.asm | 2 +- home.asm | 20 ++++--- home/map_objects.asm | 15 ++++- main.asm | 24 ++++---- maps/AzaleaGym.asm | 10 ++-- maps/IlexForest.asm | 22 +++---- wram.asm | 23 ++++++-- 10 files changed, 157 insertions(+), 120 deletions(-) diff --git a/constants/map_constants.asm b/constants/map_constants.asm index 2b5a139c7..71a877c4c 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -653,3 +653,12 @@ NUM_SPAWNS EQU const_value const PALETTE_DARK FIXED_FACING EQU 2 + + const_def + const PERSONTYPE_SCRIPT + const PERSONTYPE_ITEMFRAGMENT + const PERSONTYPE_TRAINER + const PERSONTYPE_3 + const PERSONTYPE_4 + const PERSONTYPE_5 + const PERSONTYPE_6 diff --git a/engine/events.asm b/engine/events.asm index 6e955b86d..8538d9ec9 100644 --- a/engine/events.asm +++ b/engine/events.asm @@ -635,21 +635,23 @@ TryObjectEvent: ; 969b5 jp [hl] .nope_bugged + ; pop bc xor a ret .pointers - dbw 0, .zero - dbw 1, .one - dbw 2, .two - dbw 3, .three - dbw 4, .four - dbw 5, .five - dbw 6, .six + dbw PERSONTYPE_SCRIPT, .script + dbw PERSONTYPE_ITEMFRAGMENT, .itemfragment + dbw PERSONTYPE_TRAINER, .trainer + ; the remaining four are dummy events + dbw PERSONTYPE_3, .three + dbw PERSONTYPE_4, .four + dbw PERSONTYPE_5, .five + dbw PERSONTYPE_6, .six db -1 ; 96a04 -.zero ; 96a04 +.script ; 96a04 ld hl, MAPOBJECT_SCRIPT_POINTER add hl, bc ld a, [hli] @@ -657,11 +659,10 @@ TryObjectEvent: ; 969b5 ld l, a call GetMapScriptHeaderBank call CallScript -; ld a, -1 ret ; 96a12 -.one ; 96a12 +.itemfragment ; 96a12 ld hl, MAPOBJECT_SCRIPT_POINTER add hl, bc ld a, [hli] @@ -671,14 +672,14 @@ TryObjectEvent: ; 969b5 ld de, EngineBuffer1 ld bc, 2 call FarCopyBytes - ld a, 3 + ld a, PLAYEREVENT_ITEMBALL scf ret ; 96a29 -.two ; 96a29 - call Function3674 - ld a, 2 +.trainer ; 96a29 + call TalkToTrainer + ld a, PLAYEREVENT_TALKTOTRAINER scf ret ; 96a30 @@ -729,16 +730,16 @@ TryReadSign: ; 96a38 ; 96a59 .up - ld b, UP << 2 + ld b, OW_UP jr .checkdir .down - ld b, DOWN << 2 + ld b, OW_DOWN jr .checkdir .right - ld b, RIGHT << 2 + ld b, OW_RIGHT jr .checkdir .left - ld b, LEFT << 2 + ld b, OW_LEFT jr .checkdir .checkdir diff --git a/engine/map_objects.asm b/engine/map_objects.asm index f15ca1401..0c83b1986 100644 --- a/engine/map_objects.asm +++ b/engine/map_objects.asm @@ -197,12 +197,12 @@ Function4427: ; 4427 ld hl, OBJECT_FLAGS1 add hl, bc bit 0, [hl] - jr nz, Function44a3 + jr nz, SetFacingStanding ld hl, OBJECT_FLAGS2 add hl, bc bit 6, [hl] - jr nz, Function44a3 + jr nz, SetFacingStanding bit 5, [hl] jr nz, Function4448 @@ -215,7 +215,7 @@ Function4440: ; 4440 ld hl, OBJECT_FLAGS1 add hl, bc bit 0, [hl] - jr nz, Function44a3 + jr nz, SetFacingStanding ; fallthrough ; 4448 @@ -243,33 +243,33 @@ endr ; 445f Pointers445f: ; 445f - dw Function44a3, Function44a3 ; 00 - dw Function44b5, Function44aa ; 01 - dw Function44c1, Function44aa ; 02 - dw Function4508, Function44aa ; 03 - dw Function4529, Function44aa ; 04 - dw Function4539, Function44a3 ; 05 + dw SetFacingStanding, SetFacingStanding ; 00 + dw Function44b5, SetFacingCurrent ; 01 + dw Function44c1, SetFacingCurrent ; 02 + dw Function4508, SetFacingCurrent ; 03 + dw Function4529, SetFacingCurrent ; 04 + dw Function4539, SetFacingStanding ; 05 dw Function456e, Function456e ; 06 - dw Function457b, Function44a3 ; 07 + dw Function457b, SetFacingStanding ; 07 dw Function4582, Function4582 ; 08 dw Function4589, Function4589 ; 09 dw Function4590, Function45a4 ; 0a - dw Function45ab, Function44aa ; 0c + dw Function45ab, SetFacingCurrent ; 0c dw Function45be, Function45be ; 0b dw Function45c5, Function45c5 ; 0d - dw Function45da, Function44a3 ; 0e - dw Function45ed, Function44a3 ; 0f - dw Function44e4, Function44aa ; 10 + dw Function45da, SetFacingStanding ; 0e + dw Function45ed, SetFacingStanding ; 0f + dw Function44e4, SetFacingCurrent ; 10 ; 44a3 -Function44a3: ; 44a3 +SetFacingStanding: ; 44a3 ld hl, OBJECT_FACING_STEP add hl, bc - ld [hl], -1 + ld [hl], STANDING ret ; 44aa -Function44aa: ; 44aa +SetFacingCurrent: ; 44aa call GetSpriteDirection or 0 ; useless ld hl, OBJECT_FACING_STEP @@ -284,26 +284,28 @@ Function44b5: ; 44b5 ld a, [hl] and 1 jr nz, Function44c1 - jp Function44aa + jp SetFacingCurrent ; 44c1 Function44c1: ; 44c1 ld hl, OBJECT_FLAGS1 add hl, bc bit 3, [hl] - jp nz, Function44aa + jp nz, SetFacingCurrent + ld hl, OBJECT_12 add hl, bc ld a, [hl] inc a and %00001111 ld [hl], a + rrca rrca and %00000011 ld d, a call GetSpriteDirection - or 0 + or 0 ; useless or d ld hl, OBJECT_FACING_STEP add hl, bc @@ -315,7 +317,7 @@ Function44e4: ; 44e4 ld hl, OBJECT_FLAGS1 add hl, bc bit 3, [hl] - jp nz, Function44aa + jp nz, SetFacingCurrent ld hl, OBJECT_12 add hl, bc ld a, [hl] @@ -327,7 +329,7 @@ Function44e4: ; 44e4 and %00000011 ld d, a call GetSpriteDirection - or 0 + or 0 ; useless or d ld hl, OBJECT_FACING_STEP add hl, bc @@ -339,7 +341,7 @@ Function4508: ; 4508 ld hl, OBJECT_FLAGS1 add hl, bc bit 3, [hl] - jp nz, Function44aa + jp nz, SetFacingCurrent ld hl, OBJECT_12 add hl, bc inc [hl] @@ -350,7 +352,7 @@ Function4508: ; 4508 and %00000011 ld d, a call GetSpriteDirection - or 0 + or 0 ; useless or d ld hl, OBJECT_FACING_STEP add hl, bc @@ -363,7 +365,7 @@ Function4529: ; 4529 ld hl, OBJECT_FACING add hl, bc ld a, [hl] - or 0 + or 0 ; useless ld hl, OBJECT_FACING_STEP add hl, bc ld [hl], a @@ -372,7 +374,7 @@ Function4529: ; 4529 Function4539: ; 4539 call Function453f - jp Function44a3 + jp SetFacingStanding ; 453f Function453f: ; 453f @@ -409,7 +411,7 @@ Function453f: ; 453f ; 456a .Directions ; 456a - db DOWN << 2, RIGHT << 2, UP << 2, LEFT << 2 + db OW_DOWN, OW_RIGHT, OW_UP, OW_LEFT ; 456e Function456e: ; 456e @@ -562,12 +564,12 @@ Function4600: ; 4600 add hl, bc ld [hl], a - call Function4661 + call SetTallGrassFlags ld hl, OBJECT_NEXT_TILE add hl, bc ld a, [hl] - call Function4679 + call UselessAndA ret ; 462a @@ -593,30 +595,30 @@ Function462a: ; 462a Function463f: ; 463f ld hl, OBJECT_FLAGS2 add hl, bc - bit 3, [hl] + bit 3, [hl] ; is current tile grass? jr z, .ok ld hl, OBJECT_NEXT_TILE add hl, bc ld a, [hl] - call Function4661 + call SetTallGrassFlags .ok ld hl, OBJECT_NEXT_TILE add hl, bc ld a, [hl] - call Function4679 - ret c + call UselessAndA + ret c ; never happens ld hl, OBJECT_STANDING_TILE add hl, bc ld a, [hl] - call Function4679 + call UselessAndA ret ; 4661 -Function4661: ; 4661 +SetTallGrassFlags: ; 4661 call CheckSuperTallGrassTile jr z, .set - call Function1875 + call CheckGrassTile jr c, .reset .set @@ -632,7 +634,7 @@ Function4661: ; 4661 ret ; 4679 -Function4679: ; 4679 +UselessAndA: ; 4679 and a ret ; 467b @@ -661,7 +663,7 @@ Function4690: ; 4690 ld hl, OBJECT_FLAGS1 add hl, bc bit FIXED_FACING, [hl] - jr nz, GetStandingTile + jr nz, GetNextTile rept 2 add a @@ -670,8 +672,8 @@ endr ld hl, OBJECT_FACING add hl, bc ld [hl], a -GetStandingTile: ; 46a6 +GetNextTile: ; 46a6 call GetStepVector ld hl, OBJECT_STEP_DURATION @@ -852,7 +854,7 @@ DecrementObjectMovementByteIndex: ; 478d ret ; 4793 -JumptoObjectMovementByteIndex: ; 4793 +MovementAnonymousJumptable: ; 4793 ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc ld a, [hl] @@ -1073,7 +1075,7 @@ Function47dd: ; 47dd ; 48ac .Strength: ; 48ac - call JumptoObjectMovementByteIndex + call MovementAnonymousJumptable dw .Strength_Start dw .Strength_Stop ; 48b3 @@ -1120,8 +1122,6 @@ Function47dd: ; 47dd .on_pit call IncrementObjectMovementByteIndex - ; fallthrough -; 48f8 .Strength_Stop: ; 48f8 ld hl, OBJECT_DIRECTION_WALKING @@ -1227,14 +1227,14 @@ Function47dd: ; 47dd ; 4984 .MovementSpinCounterclockwise: ; 4984 - call JumptoObjectMovementByteIndex + call MovementAnonymousJumptable dw .MovementSpinInit dw .MovementSpinRepeat dw .MovementSpinTurnLeft ; 498d .MovementSpinClockwise: ; 498d - call JumptoObjectMovementByteIndex + call MovementAnonymousJumptable dw .MovementSpinInit dw .MovementSpinRepeat dw .MovementSpinTurnRight @@ -1243,9 +1243,6 @@ Function47dd: ; 47dd .MovementSpinInit: ; 4996 call Function467b call IncrementObjectMovementByteIndex - ; fallthrough -; 499c - .MovementSpinRepeat: ; 499c ld hl, OBJECT_ACTION add hl, bc @@ -1271,7 +1268,7 @@ Function47dd: ; 47dd ; 49c0 .DirectionData_Counterclockwise ; 49c0 - db RIGHT << 2, LEFT << 2, DOWN << 2, UP << 2 + db OW_RIGHT, OW_LEFT, OW_DOWN, OW_UP ; 49c4 .MovementSpinTurnRight: ; 49c4 @@ -1281,7 +1278,7 @@ Function47dd: ; 47dd ; 49cc .DirectionData_Clockwise ; 49cc - db LEFT << 2, RIGHT << 2, UP << 2, DOWN << 2 + db OW_LEFT, OW_RIGHT, OW_UP, OW_DOWN ; 49d0 .MovementSpinNextFacing: ; 49d0 @@ -1485,16 +1482,19 @@ endr .RandomWalkContinue: ; 4af0 call Function4690 - call Function6ec1 - jr c, Function4b17 + call Function6ec1 ; check whether the object can move in that direction + jr c, .NewDuration + call Function463f ld hl, OBJECT_ACTION add hl, bc ld [hl], PERSON_ACTION_02 + ld hl, wd4cf ld a, [hMapObjectIndexBuffer] cp [hl] jr z, .load_6 + ld hl, OBJECT_STEP_TYPE add hl, bc ld [hl], STEP_TYPE_07 @@ -1506,12 +1506,9 @@ endr ld [hl], STEP_TYPE_06 ret -Function4b17: ; 4b17 +.NewDuration: ; 4b17 call Function467b call Function462a - ; fallthrough -; 4b1d - RandomStepDuration_Slow: ; 4b1d call Random ld a, [hRandomAdd] @@ -1598,7 +1595,7 @@ Function4b8d: ; 4b8d dec [hl] ret nz call Function4600 - call GetStandingTile + call GetNextTile ld hl, OBJECT_FLAGS2 add hl, bc res 3, [hl] @@ -1655,7 +1652,7 @@ Function4bd2: ; 4bd2 ; 4bf2 Function4bf2: ; 4bf2 - call GetStandingTile + call GetNextTile ld hl, wPlayerStepFlags set 7, [hl] call IncrementObjectStructField28 @@ -2880,7 +2877,7 @@ Function5688: ; 5688 ld hl, OBJECT_NEXT_TILE add hl, bc ld [hl], a - callba Function463f + callba Function463f ; no need to farcall ret ; 56a3 diff --git a/engine/movement.asm b/engine/movement.asm index 4e3182c12..bce6fdd92 100644 --- a/engine/movement.asm +++ b/engine/movement.asm @@ -750,7 +750,7 @@ NormalStep: ; 5412 call CheckSuperTallGrassTile jr z, .shake_grass - call Function1875 + call CheckGrassTile jr c, .skip_grass .shake_grass diff --git a/home.asm b/home.asm index ad757acb1..37a451aa0 100644 --- a/home.asm +++ b/home.asm @@ -1464,26 +1464,28 @@ CheckTrainerBattle:: ; 360d ld [EngineBuffer2], a ld a, c ld [EngineBuffer3], a - jr Function367e + jr LoadTrainer_continue ; 3674 -Function3674:: ; 3674 +TalkToTrainer:: ; 3674 ld a, 1 ld [EngineBuffer2], a ld a, -1 ld [EngineBuffer3], a -Function367e:: ; 367e +LoadTrainer_continue:: ; 367e call GetMapScriptHeaderBank ld [EngineBuffer1], a + ld a, [hLastTalked] call GetMapObject + ld hl, MAPOBJECT_SCRIPT_POINTER add hl, bc ld a, [EngineBuffer1] call GetFarHalfword - ld de, wd041 - ld bc, $000d + ld de, wTempTrainerHeader + ld bc, wTempTrainerHeaderEnd - wTempTrainerHeader ld a, [EngineBuffer1] call FarCopyBytes xor a @@ -1537,12 +1539,12 @@ FacingPlayerDistance:: ; 36ad cpl inc a ld d, a - ld e, UP << 2 + ld e, OW_UP jr .CheckFacing .Above ld d, a - ld e, DOWN << 2 + ld e, OW_DOWN jr .CheckFacing .CheckX @@ -1555,12 +1557,12 @@ FacingPlayerDistance:: ; 36ad cpl inc a ld d, a - ld e, LEFT << 2 + ld e, OW_LEFT jr .CheckFacing .Left ld d, a - ld e, RIGHT << 2 + ld e, OW_RIGHT .CheckFacing call GetSpriteDirection diff --git a/home/map_objects.asm b/home/map_objects.asm index bcd5ad1ea..1437c1cde 100644 --- a/home/map_objects.asm +++ b/home/map_objects.asm @@ -124,7 +124,18 @@ GetTileCollision:: ; 185d ; 1875 -Function1875:: ; 1875 +CheckGrassTile:: ; 1875 + ; and %00110111 + ; cp $10 + ; ret c + ; cp $30 + ; jr nc, .okay + ; scf + ; ret + ; .okay + ; xor a + ; ret + ld d, a and $f0 cp $10 @@ -140,7 +151,7 @@ Function1875:: ; 1875 ret z scf ret - +; For some reason, the above code is duplicated down here. .ok_20 ld a, d and 7 diff --git a/main.asm b/main.asm index f6c42b4f7..95bedcaa9 100644 --- a/main.asm +++ b/main.asm @@ -2123,23 +2123,24 @@ Function6ec1: ; 6ec1 ld hl, OBJECT_PALETTE add hl, bc bit 5, [hl] - jr z, .asm_6ed9 + jr z, .not_bit_5 + ld hl, OBJECT_FLAGS1 add hl, bc - bit 4, [hl] + bit 4, [hl] ; lost push hl push bc call Function6f2c pop bc pop hl ret c - jr .asm_6ee9 + jr .resume -.asm_6ed9 +.not_bit_5 ld hl, OBJECT_FLAGS1 add hl, bc bit 4, [hl] - jr nz, .asm_6ee9 + jr nz, .resume push hl push bc call Function6f07 @@ -2147,9 +2148,9 @@ Function6ec1: ; 6ec1 pop hl ret c -.asm_6ee9 +.resume bit 6, [hl] - jr nz, .asm_6ef5 + jr nz, .bit_6 push hl push bc @@ -2158,18 +2159,20 @@ Function6ec1: ; 6ec1 pop hl ret c -.asm_6ef5 +.bit_6 bit 5, [hl] - jr nz, .asm_6f05 + jr nz, .bit_5 push hl call Function70a4 pop hl ret c + push hl call Function70ed pop hl ret c -.asm_6f05 + +.bit_5 and a ret ; 6f07 @@ -34881,6 +34884,7 @@ Function80422:: ; 80422 ld a, movement_step_sleep_1 cp [hl] ret z + ld [hl], a ld a, 0 ld [wd04e], a diff --git a/maps/AzaleaGym.asm b/maps/AzaleaGym.asm index 3efc3a376..44e0a377b 100644 --- a/maps/AzaleaGym.asm +++ b/maps/AzaleaGym.asm @@ -372,9 +372,9 @@ AzaleaGym_MapEventHeader: .PersonEvents: db 7 person_event SPRITE_BUGSY, 7, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BugsyScript, -1 - person_event SPRITE_BUG_CATCHER, 3, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerBug_catcherbenny, -1 - person_event SPRITE_BUG_CATCHER, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherAl, -1 - person_event SPRITE_BUG_CATCHER, 2, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherJosh, -1 - person_event SPRITE_TWIN, 10, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsAmyandmay1, -1 - person_event SPRITE_TWIN, 10, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsAmyandmay2, -1 + person_event SPRITE_BUG_CATCHER, 3, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerBug_catcherbenny, -1 + person_event SPRITE_BUG_CATCHER, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerBug_catcherAl, -1 + person_event SPRITE_BUG_CATCHER, PERSONTYPE_TRAINER, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerBug_catcherJosh, -1 + person_event SPRITE_TWIN, 10, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerTwinsAmyandmay1, -1 + person_event SPRITE_TWIN, 10, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerTwinsAmyandmay2, -1 person_event SPRITE_GYM_GUY, 13, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, AzaleaGymGuyScript, -1 diff --git a/maps/IlexForest.asm b/maps/IlexForest.asm index e1aaa43da..68db34544 100644 --- a/maps/IlexForest.asm +++ b/maps/IlexForest.asm @@ -950,14 +950,14 @@ IlexForest_MapEventHeader: .PersonEvents: db 11 - person_event SPRITE_BIRD, 31, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, BirdScript_0x6eb8f, EVENT_ILEX_FOREST_FARFETCHD - person_event SPRITE_YOUNGSTER, 28, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x6eb7b, EVENT_ILEX_FOREST_APPRENTICE - person_event SPRITE_BLACK_BELT, 28, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x6edae, EVENT_ILEX_FOREST_CHARCOAL_MASTER - person_event SPRITE_ROCKER, 14, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, RockerScript_0x6edde, -1 - person_event SPRITE_POKE_BALL, 32, 20, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee10, EVENT_ILEX_FOREST_REVIVE - person_event SPRITE_KURT, 29, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_ILEX_FOREST_KURT - person_event SPRITE_LASS, 24, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x6ee0d, EVENT_ILEX_FOREST_LASS - person_event SPRITE_YOUNGSTER, 1, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 0, TrainerBug_catcherWayne, -1 - person_event SPRITE_POKE_BALL, 17, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee12, EVENT_ILEX_FOREST_X_ATTACK - person_event SPRITE_POKE_BALL, 7, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee14, EVENT_ILEX_FOREST_ANTIDOTE - person_event SPRITE_POKE_BALL, 1, 27, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee16, EVENT_ILEX_FOREST_ETHER + person_event SPRITE_BIRD, 31, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, BirdScript_0x6eb8f, EVENT_ILEX_FOREST_FARFETCHD + person_event SPRITE_YOUNGSTER, 28, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x6eb7b, EVENT_ILEX_FOREST_APPRENTICE + person_event SPRITE_BLACK_BELT, 28, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x6edae, EVENT_ILEX_FOREST_CHARCOAL_MASTER + person_event SPRITE_ROCKER, 14, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RockerScript_0x6edde, -1 + person_event SPRITE_POKE_BALL, 32, 20, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6ee10, EVENT_ILEX_FOREST_REVIVE + person_event SPRITE_KURT, 29, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_ILEX_FOREST_KURT + person_event SPRITE_LASS, 24, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x6ee0d, EVENT_ILEX_FOREST_LASS + person_event SPRITE_YOUNGSTER, 1, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 0, TrainerBug_catcherWayne, -1 + person_event SPRITE_POKE_BALL, 17, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6ee12, EVENT_ILEX_FOREST_X_ATTACK + person_event SPRITE_POKE_BALL, 7, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6ee14, EVENT_ILEX_FOREST_ANTIDOTE + person_event SPRITE_POKE_BALL, 1, 27, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6ee16, EVENT_ILEX_FOREST_ETHER diff --git a/wram.asm b/wram.asm index edf88c5d6..d6255f56b 100644 --- a/wram.asm +++ b/wram.asm @@ -1566,6 +1566,7 @@ EngineBuffer3:: wd041:: EngineBuffer4:: +wTempTrainerHeader:: wTempTrainerEventFlagLo:: ds 1 @@ -1600,6 +1601,7 @@ wScriptAfterPointer:: wd04b:: ds 2 wd04d:: ds 1 MenuItemsListEnd:: +wTempTrainerHeaderEnd:: wd04e:: ds 2 wOaksPkmnTalkPkmnNameBuffer:: wd050:: ds PKMN_NAME_LENGTH +- 1 @@ -2222,19 +2224,27 @@ object_struct: MACRO \1Action:: ds 1 \1Object12:: ds 1 \1Facing:: ds 1 -\1NextTile:: ds 1 ; collision -\1StandingTile:: ds 1 ; collision +\1NextTile:: ds 1 ; collision +\1StandingTile:: ds 1 ; collision \1NextMapX:: ds 1 \1NextMapY:: ds 1 \1MapX:: ds 1 \1MapY:: ds 1 - ds 3 +\1ObjectInitX:: ds 1 +\1ObjectInitY:: ds 1 +\1Radius:: ds 1 \1SpriteX:: ds 1 \1SpriteY:: ds 1 \1SpriteXOffset:: ds 1 \1SpriteYOffset:: ds 1 - ds 6 +\1MovementByteIndex:: ds 1 +\1Object28:: ds 1 +\1Object29:: ds 1 +\1Object30:: ds 1 +\1Object31:: ds 1 +\1Range:: ds 1 ds 7 +\1StructEnd:: ENDM object_struct Player @@ -2250,10 +2260,12 @@ ENDM object_struct Object10 object_struct Object11 object_struct Object12 +ObjectStructsEnd:: wd6de:: ds $40 +MapObjects:: ; d71e map_object: MACRO \1Object:: \1ObjectStructID:: ds 1 @@ -2271,7 +2283,6 @@ map_object: MACRO ds 2 endm -MapObjects:: ; d71e map_object Player map_object Map1 map_object Map2 @@ -2288,6 +2299,7 @@ MapObjects:: ; d71e map_object Map13 map_object Map14 map_object Map15 +MapObjectsEnd:: wObjectMasks:: ds NUM_OBJECTS ; d81e @@ -2319,6 +2331,7 @@ StatusFlags:: ; d84c ; 6 - hall of fame ; 7 - bug contest on ds 1 + StatusFlags2:: ; d84d ; 0 - rockets ; 1 - From 36470537e09762f1963e003a0566c56041fc23ea Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 15 Nov 2015 15:07:20 -0500 Subject: [PATCH 07/40] Globally introduce PERSONTYPE constants --- maps/AzaleaGym.asm | 4 +-- maps/AzaleaMart.asm | 6 ++-- maps/AzaleaPokeCenter1F.asm | 8 ++--- maps/AzaleaTown.asm | 24 +++++++-------- maps/BattleTower1F.asm | 10 +++---- maps/BattleTowerBattleRoom.asm | 4 +-- maps/BattleTowerElevator.asm | 2 +- maps/BattleTowerHallway.asm | 2 +- maps/BattleTowerOutside.asm | 8 ++--- maps/BillsHouse.asm | 2 +- maps/BlackthornCity.asm | 18 +++++------ maps/BlackthornDodrioTradeHouse.asm | 2 +- maps/BlackthornDragonSpeechHouse.asm | 4 +-- maps/BlackthornGym1F.asm | 10 +++---- maps/BlackthornGym2F.asm | 16 +++++----- maps/BlackthornMart.asm | 6 ++-- maps/BlackthornPokeCenter1F.asm | 8 ++--- maps/BluesHouse.asm | 2 +- maps/BrunosRoom.asm | 2 +- maps/BurnedTower1F.asm | 10 +++---- maps/BurnedTowerB1F.asm | 18 +++++------ maps/CeladonCafe.asm | 10 +++---- maps/CeladonCity.asm | 18 +++++------ maps/CeladonDeptStore1F.asm | 6 ++-- maps/CeladonDeptStore2F.asm | 8 ++--- maps/CeladonDeptStore3F.asm | 10 +++---- maps/CeladonDeptStore4F.asm | 6 ++-- maps/CeladonDeptStore5F.asm | 10 +++---- maps/CeladonDeptStore6F.asm | 4 +-- maps/CeladonGameCorner.asm | 18 +++++------ maps/CeladonGameCornerPrizeRoom.asm | 4 +-- maps/CeladonGym.asm | 12 ++++---- maps/CeladonMansion1F.asm | 8 ++--- maps/CeladonMansion3F.asm | 8 ++--- maps/CeladonMansionRoof.asm | 2 +- maps/CeladonMansionRoofHouse.asm | 2 +- maps/CeladonPokeCenter1F.asm | 10 +++---- maps/CeruleanCity.asm | 12 ++++---- maps/CeruleanGym.asm | 12 ++++---- maps/CeruleanGymBadgeSpeechHouse.asm | 2 +- maps/CeruleanMart.asm | 6 ++-- maps/CeruleanPokeCenter1F.asm | 6 ++-- maps/CeruleanPoliceStation.asm | 6 ++-- maps/CeruleanTradeSpeechHouse.asm | 8 ++--- maps/CharcoalKiln.asm | 6 ++-- maps/CherrygroveCity.asm | 10 +++---- maps/CherrygroveEvolutionSpeechHouse.asm | 4 +-- maps/CherrygroveGymSpeechHouse.asm | 4 +-- maps/CherrygroveMart.asm | 6 ++-- maps/CherrygrovePokeCenter1F.asm | 8 ++--- maps/CianwoodCity.asm | 24 +++++++-------- maps/CianwoodCityPhotoStudio.asm | 2 +- maps/CianwoodGym.asm | 18 +++++------ maps/CianwoodLugiaSpeechHouse.asm | 6 ++-- maps/CianwoodPharmacy.asm | 2 +- maps/CianwoodPokeCenter1F.asm | 8 ++--- maps/CinnabarIsland.asm | 2 +- maps/CinnabarPokeCenter1F.asm | 6 ++-- maps/Colosseum.asm | 4 +-- maps/CopycatsHouse1F.asm | 6 ++-- maps/CopycatsHouse2F.asm | 12 ++++---- maps/DanceTheatre.asm | 18 +++++------ maps/DarkCaveBlackthornEntrance.asm | 6 ++-- maps/DarkCaveVioletEntrance.asm | 16 +++++----- maps/DayCare.asm | 4 +-- maps/DiglettsCave.asm | 2 +- maps/DragonShrine.asm | 8 ++--- maps/DragonsDenB1F.asm | 18 +++++------ maps/EarlsPokemonAcademy.asm | 12 ++++---- maps/EcruteakCity.asm | 14 ++++----- maps/EcruteakGym.asm | 14 ++++----- maps/EcruteakHouse.asm | 8 ++--- maps/EcruteakItemfinderHouse.asm | 4 +-- maps/EcruteakLugiaSpeechHouse.asm | 4 +-- maps/EcruteakMart.asm | 6 ++-- maps/EcruteakPokeCenter1F.asm | 10 +++---- maps/ElmsHouse.asm | 4 +-- maps/ElmsLab.asm | 12 ++++---- maps/FastShip1F.asm | 8 ++--- maps/FastShipB1F.asm | 24 +++++++-------- maps/FastShipCabins_NNW_NNE_NE.asm | 14 ++++----- maps/FastShipCabins_SE_SSE_CaptainsCabin.asm | 22 +++++++------- maps/FastShipCabins_SW_SSW_NW.asm | 8 ++--- maps/FightingDojo.asm | 4 +-- maps/FuchsiaBillSpeechHouse.asm | 4 +-- maps/FuchsiaCity.asm | 8 ++--- maps/FuchsiaGym.asm | 12 ++++---- maps/FuchsiaMart.asm | 6 ++-- maps/FuchsiaPokeCenter1F.asm | 8 ++--- maps/GoldenrodBikeShop.asm | 2 +- maps/GoldenrodBillsHouse.asm | 6 ++-- maps/GoldenrodCity.asm | 30 +++++++++---------- maps/GoldenrodDeptStore1F.asm | 8 ++--- maps/GoldenrodDeptStore2F.asm | 10 +++---- maps/GoldenrodDeptStore3F.asm | 6 ++-- maps/GoldenrodDeptStore4F.asm | 8 ++--- maps/GoldenrodDeptStore5F.asm | 12 ++++---- maps/GoldenrodDeptStore6F.asm | 4 +-- maps/GoldenrodDeptStoreB1F.asm | 16 +++++----- maps/GoldenrodDeptStoreRoof.asm | 16 +++++----- maps/GoldenrodFlowerShop.asm | 4 +-- maps/GoldenrodGameCorner.asm | 24 +++++++-------- maps/GoldenrodGym.asm | 12 ++++---- maps/GoldenrodHappinessRater.asm | 6 ++-- maps/GoldenrodMagnetTrainStation.asm | 4 +-- maps/GoldenrodNameRatersHouse.asm | 2 +- maps/GoldenrodPPSpeechHouse.asm | 4 +-- maps/GoldenrodPokeCenter1F.asm | 10 +++---- maps/GoldenrodPokeComCenter2FMobile.asm | 6 ++-- maps/GuideGentsHouse.asm | 2 +- maps/HallOfFame.asm | 2 +- maps/IcePath1F.asm | 6 ++-- maps/IcePathB1F.asm | 10 +++---- maps/IcePathB2FBlackthornSide.asm | 2 +- maps/IcePathB2FMahoganySide.asm | 12 ++++---- maps/IcePathB3F.asm | 4 +-- maps/IlexForestAzaleaGate.asm | 4 +-- maps/IndigoPlateauPokeCenter1F.asm | 12 ++++---- maps/KarensRoom.asm | 2 +- maps/KogasRoom.asm | 2 +- maps/KrissHouse1F.asm | 10 +++---- maps/KrissHouse2F.asm | 8 ++--- maps/KrissNeighborsHouse.asm | 4 +-- maps/KurtsHouse.asm | 10 +++---- maps/LakeofRage.asm | 24 +++++++-------- maps/LakeofRageHiddenPowerHouse.asm | 2 +- maps/LakeofRageMagikarpHouse.asm | 2 +- maps/LancesRoom.asm | 6 ++-- maps/LavRadioTower1F.asm | 10 +++---- maps/LavenderMart.asm | 6 ++-- maps/LavenderNameRater.asm | 2 +- maps/LavenderPokeCenter1F.asm | 8 ++--- maps/LavenderTown.asm | 8 ++--- maps/LavenderTownSpeechHouse.asm | 2 +- maps/MahoganyGym.asm | 14 ++++----- maps/MahoganyMart1F.asm | 10 +++---- maps/MahoganyPokeCenter1F.asm | 8 ++--- maps/MahoganyRedGyaradosSpeechHouse.asm | 4 +-- maps/MahoganyTown.asm | 8 ++--- maps/ManiasHouse.asm | 2 +- maps/MountMoon.asm | 2 +- maps/MountMoonGiftShop.asm | 8 ++--- maps/MountMoonSquare.asm | 6 ++-- maps/MountMortar1FInside.asm | 20 ++++++------- maps/MountMortar1FOutside.asm | 4 +-- maps/MountMortar2FInside.asm | 14 ++++----- maps/MountMortarB1F.asm | 14 ++++----- maps/MoveDeletersHouse.asm | 2 +- maps/MrFujisHouse.asm | 10 +++---- maps/MrPokemonsHouse.asm | 4 +-- maps/MrPsychicsHouse.asm | 2 +- maps/NationalPark.asm | 28 ++++++++--------- maps/NationalParkBugContest.asm | 24 +++++++-------- maps/NewBarkTown.asm | 6 ++-- maps/OaksLab.asm | 8 ++--- maps/OlivineCafe.asm | 6 ++-- maps/OlivineCity.asm | 8 ++--- maps/OlivineGoodRodHouse.asm | 2 +- maps/OlivineGym.asm | 4 +-- maps/OlivineHouseBeta.asm | 4 +-- maps/OlivineLighthouse1F.asm | 4 +-- maps/OlivineLighthouse2F.asm | 4 +-- maps/OlivineLighthouse3F.asm | 8 ++--- maps/OlivineLighthouse4F.asm | 4 +-- maps/OlivineLighthouse5F.asm | 10 +++---- maps/OlivineLighthouse6F.asm | 6 ++-- maps/OlivineMart.asm | 6 ++-- maps/OlivinePokeCenter1F.asm | 8 ++--- maps/OlivinePort.asm | 14 ++++----- maps/OlivinePortPassage.asm | 2 +- maps/OlivinePunishmentSpeechHouse.asm | 4 +-- maps/OlivineVoltorbHouse.asm | 2 +- maps/PalletTown.asm | 4 +-- maps/PewterCity.asm | 10 +++---- maps/PewterGym.asm | 6 ++-- maps/PewterMart.asm | 6 ++-- maps/PewterNidoranSpeechHouse.asm | 4 +-- maps/PewterPokeCenter1F.asm | 10 +++---- maps/PewterSnoozeSpeechHouse.asm | 2 +- maps/PokeCenter2F.asm | 8 ++--- maps/PokeSeersHouse.asm | 2 +- maps/PokemonFanClub.asm | 12 ++++---- maps/PowerPlant.asm | 14 ++++----- maps/RadioTower1F.asm | 12 ++++---- maps/RadioTower2F.asm | 22 +++++++------- maps/RadioTower3F.asm | 14 ++++----- maps/RadioTower4F.asm | 14 ++++----- maps/RadioTower5F.asm | 10 +++---- maps/RedsHouse1F.asm | 2 +- maps/RockTunnel1F.asm | 4 +-- maps/RockTunnelB1F.asm | 6 ++-- maps/Route1.asm | 6 ++-- maps/Route10PokeCenter1F.asm | 8 ++--- maps/Route10South.asm | 4 +-- maps/Route11.asm | 10 +++---- maps/Route12.asm | 12 ++++---- maps/Route12SuperRodHouse.asm | 2 +- maps/Route13.asm | 10 +++---- maps/Route14.asm | 8 ++--- maps/Route15.asm | 14 ++++----- maps/Route15FuchsiaGate.asm | 2 +- maps/Route16FuchsiaSpeechHouse.asm | 2 +- maps/Route16Gate.asm | 2 +- maps/Route17.asm | 8 ++--- maps/Route1718Gate.asm | 2 +- maps/Route18.asm | 4 +-- maps/Route19.asm | 12 ++++---- maps/Route19FuchsiaGate.asm | 2 +- maps/Route2.asm | 16 +++++----- maps/Route20.asm | 6 ++-- maps/Route21.asm | 6 ++-- maps/Route24.asm | 2 +- maps/Route25.asm | 22 +++++++------- maps/Route26.asm | 16 +++++----- maps/Route26DayofWeekSiblingsHouse.asm | 2 +- maps/Route26HealSpeechHouse.asm | 2 +- maps/Route27.asm | 18 +++++------ maps/Route27SandstormHouse.asm | 2 +- maps/Route28FamousSpeechHouse.asm | 4 +-- maps/Route29.asm | 16 +++++----- maps/Route2946Gate.asm | 4 +-- maps/Route2Gate.asm | 2 +- maps/Route2NuggetSpeechHouse.asm | 2 +- maps/Route3.asm | 8 ++--- maps/Route30.asm | 22 +++++++------- maps/Route30BerrySpeechHouse.asm | 2 +- maps/Route31.asm | 14 ++++----- maps/Route31VioletGate.asm | 4 +-- maps/Route32.asm | 28 ++++++++--------- maps/Route32PokeCenter1F.asm | 6 ++-- maps/Route32RuinsofAlphGate.asm | 6 ++-- maps/Route33.asm | 6 ++-- maps/Route34.asm | 26 ++++++++-------- maps/Route34IlexForestGate.asm | 8 ++--- maps/Route35.asm | 22 +++++++------- maps/Route35Goldenrodgate.asm | 6 ++-- maps/Route35NationalParkgate.asm | 6 ++-- maps/Route36.asm | 18 +++++------ maps/Route36NationalParkgate.asm | 24 +++++++-------- maps/Route36RuinsofAlphgate.asm | 4 +-- maps/Route37.asm | 14 ++++----- maps/Route38.asm | 14 ++++----- maps/Route38EcruteakGate.asm | 2 +- maps/Route39.asm | 20 ++++++------- maps/Route39Barn.asm | 6 ++-- maps/Route39Farmhouse.asm | 4 +-- maps/Route4.asm | 8 ++--- maps/Route40.asm | 24 +++++++-------- maps/Route40BattleTowerGate.asm | 4 +-- maps/Route41.asm | 20 ++++++------- maps/Route42.asm | 18 +++++------ maps/Route42EcruteakGate.asm | 2 +- maps/Route43.asm | 16 +++++----- maps/Route43Gate.asm | 6 ++-- maps/Route43MahoganyGate.asm | 2 +- maps/Route44.asm | 22 +++++++------- maps/Route45.asm | 26 ++++++++-------- maps/Route46.asm | 12 ++++---- maps/Route5.asm | 2 +- maps/Route5CleanseTagSpeechHouse.asm | 4 +-- maps/Route5SaffronCityGate.asm | 2 +- maps/Route5UndergroundEntrance.asm | 2 +- maps/Route6.asm | 6 ++-- maps/Route6SaffronGate.asm | 2 +- maps/Route7SaffronGate.asm | 2 +- maps/Route8.asm | 12 ++++---- maps/Route8SaffronGate.asm | 2 +- maps/Route9.asm | 12 ++++---- maps/RuinsofAlphAerodactylItemRoom.asm | 8 ++--- maps/RuinsofAlphHoOhItemRoom.asm | 8 ++--- maps/RuinsofAlphInnerChamber.asm | 6 ++-- maps/RuinsofAlphKabutoChamber.asm | 4 +-- maps/RuinsofAlphKabutoItemRoom.asm | 8 ++--- maps/RuinsofAlphOmanyteItemRoom.asm | 8 ++--- maps/RuinsofAlphOutside.asm | 10 +++---- maps/RuinsofAlphResearchCenter.asm | 6 ++-- maps/SafariZoneWardensHome.asm | 2 +- maps/SaffronCity.asm | 16 +++++----- maps/SaffronGym.asm | 12 ++++---- maps/SaffronMart.asm | 6 ++-- maps/SaffronPokeCenter1F.asm | 8 ++--- maps/SaffronTrainStation.asm | 8 ++--- maps/SeafoamGym.asm | 4 +-- maps/SilphCo1F.asm | 4 +-- maps/SilverCaveItemRooms.asm | 4 +-- maps/SilverCavePokeCenter1F.asm | 4 +-- maps/SilverCaveRoom1.asm | 8 ++--- maps/SilverCaveRoom2.asm | 6 ++-- maps/SilverCaveRoom3.asm | 2 +- maps/SlowpokeWellB1F.asm | 18 +++++------ maps/SlowpokeWellB2F.asm | 4 +-- maps/SoulHouse.asm | 8 ++--- maps/SproutTower1F.asm | 12 ++++---- maps/SproutTower2F.asm | 6 ++-- maps/SproutTower3F.asm | 14 ++++----- maps/TeamRocketBaseB1F.asm | 12 ++++---- maps/TeamRocketBaseB2F.asm | 28 ++++++++--------- maps/TeamRocketBaseB3F.asm | 28 ++++++++--------- maps/TimeCapsule.asm | 4 +-- maps/TinTower1F.asm | 20 ++++++------- maps/TinTower3F.asm | 2 +- maps/TinTower4F.asm | 6 ++-- maps/TinTower5F.asm | 2 +- maps/TinTower6F.asm | 2 +- maps/TinTower7F.asm | 2 +- maps/TinTower8F.asm | 6 ++-- maps/TinTower9F.asm | 2 +- maps/TinTowerRoof.asm | 2 +- maps/TohjoFalls.asm | 2 +- maps/TradeCenter.asm | 4 +-- maps/TrainerHouse1F.asm | 10 +++---- maps/TrainerHouseB1F.asm | 4 +-- maps/UndergroundPathSwitchRoomEntrances.asm | 22 +++++++------- maps/UndergroundWarehouse.asm | 14 ++++----- maps/UnionCave1F.asm | 18 +++++------ maps/UnionCaveB1F.asm | 14 ++++----- maps/UnionCaveB2F.asm | 12 ++++---- maps/VermilionCity.asm | 12 ++++---- maps/VermilionGym.asm | 10 +++---- .../VermilionHouseDiglettsCaveSpeechHouse.asm | 2 +- maps/VermilionHouseFishingSpeechHouse.asm | 2 +- maps/VermilionMagnetTrainSpeechHouse.asm | 4 +-- maps/VermilionMart.asm | 6 ++-- maps/VermilionPokeCenter1F.asm | 8 ++--- maps/VermilionPort.asm | 6 ++-- maps/VermilionPortPassage.asm | 2 +- maps/VictoryRoad.asm | 12 ++++---- maps/VictoryRoadGate.asm | 6 ++-- maps/VioletCity.asm | 16 +++++----- maps/VioletGym.asm | 8 ++--- maps/VioletMart.asm | 6 ++-- maps/VioletNicknameSpeechHouse.asm | 6 ++-- maps/VioletOnixTradeHouse.asm | 4 +-- maps/VioletPokeCenter1F.asm | 10 +++---- maps/ViridianCity.asm | 8 ++--- maps/ViridianGym.asm | 4 +-- maps/ViridianMart.asm | 6 ++-- maps/ViridianNicknameSpeechHouse.asm | 8 ++--- maps/ViridianPokeCenter1F.asm | 8 ++--- maps/WarehouseEntrance.asm | 18 +++++------ maps/WhirlIslandB1F.asm | 12 ++++---- maps/WhirlIslandB2F.asm | 6 ++-- maps/WhirlIslandLugiaChamber.asm | 2 +- maps/WhirlIslandNE.asm | 2 +- maps/WhirlIslandSW.asm | 2 +- maps/WillsRoom.asm | 2 +- maps/WiseTriosRoom.asm | 12 ++++---- 347 files changed, 1450 insertions(+), 1450 deletions(-) diff --git a/maps/AzaleaGym.asm b/maps/AzaleaGym.asm index 44e0a377b..82b3d9fe6 100644 --- a/maps/AzaleaGym.asm +++ b/maps/AzaleaGym.asm @@ -371,10 +371,10 @@ AzaleaGym_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_BUGSY, 7, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BugsyScript, -1 + person_event SPRITE_BUGSY, 7, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, BugsyScript, -1 person_event SPRITE_BUG_CATCHER, 3, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerBug_catcherbenny, -1 person_event SPRITE_BUG_CATCHER, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerBug_catcherAl, -1 person_event SPRITE_BUG_CATCHER, PERSONTYPE_TRAINER, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerBug_catcherJosh, -1 person_event SPRITE_TWIN, 10, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerTwinsAmyandmay1, -1 person_event SPRITE_TWIN, 10, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerTwinsAmyandmay2, -1 - person_event SPRITE_GYM_GUY, 13, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, AzaleaGymGuyScript, -1 + person_event SPRITE_GYM_GUY, 13, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, AzaleaGymGuyScript, -1 diff --git a/maps/AzaleaMart.asm b/maps/AzaleaMart.asm index 58331f411..ab7242564 100644 --- a/maps/AzaleaMart.asm +++ b/maps/AzaleaMart.asm @@ -57,6 +57,6 @@ AzaleaMart_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x18e040, -1 - person_event SPRITE_COOLTRAINER_M, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x18e047, -1 - person_event SPRITE_BUG_CATCHER, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, BugCatcherScript_0x18e04a, -1 + person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x18e040, -1 + person_event SPRITE_COOLTRAINER_M, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x18e047, -1 + person_event SPRITE_BUG_CATCHER, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x18e04a, -1 diff --git a/maps/AzaleaPokeCenter1F.asm b/maps/AzaleaPokeCenter1F.asm index 821becf39..77555270c 100644 --- a/maps/AzaleaPokeCenter1F.asm +++ b/maps/AzaleaPokeCenter1F.asm @@ -90,7 +90,7 @@ AzaleaPokeCenter1F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x18db28, -1 - person_event SPRITE_GENTLEMAN, 6, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, GentlemanScript_0x18db2b, -1 - person_event SPRITE_FISHING_GURU, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, FishingGuruScript_0x18db2e, -1 - person_event SPRITE_POKEFAN_F, 4, 1, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, 0, 0, PokefanFScript_0x18db31, -1 + person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x18db28, -1 + person_event SPRITE_GENTLEMAN, 6, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x18db2b, -1 + person_event SPRITE_FISHING_GURU, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x18db2e, -1 + person_event SPRITE_POKEFAN_F, 4, 1, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x18db31, -1 diff --git a/maps/AzaleaTown.asm b/maps/AzaleaTown.asm index 493437e7f..9e9129cad 100644 --- a/maps/AzaleaTown.asm +++ b/maps/AzaleaTown.asm @@ -481,15 +481,15 @@ AzaleaTown_MapEventHeader: .PersonEvents: db 12 - person_event SPRITE_AZALEA_ROCKET, 9, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, AzaleaRocketScript_0x1980ab, EVENT_AZALEA_TOWN_SLOWPOKETAIL_ROCKET - person_event SPRITE_GRAMPS, 9, 21, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, 0, 0, GrampsScript_0x1980b1, -1 - person_event SPRITE_TEACHER, 13, 15, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x1980c5, -1 - person_event SPRITE_YOUNGSTER, 9, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1980c8, -1 - person_event SPRITE_SLOWPOKE, 17, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES - person_event SPRITE_SLOWPOKE, 9, 18, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES - person_event SPRITE_SLOWPOKE, 9, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES - person_event SPRITE_SLOWPOKE, 15, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES - person_event SPRITE_FRUIT_TREE, 2, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, WhiteApricornTree, -1 - person_event SPRITE_AZALEA_ROCKET, 10, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_AZALEA_TOWN - person_event SPRITE_AZALEA_ROCKET, 16, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, AzaleaRocketScript_0x1980ae, EVENT_SLOWPOKE_WELL_ROCKETS - person_event SPRITE_KURT_OUTSIDE, 5, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, KurtOutsideScript_0x19810c, EVENT_AZALEA_TOWN_KURT + person_event SPRITE_AZALEA_ROCKET, 9, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, AzaleaRocketScript_0x1980ab, EVENT_AZALEA_TOWN_SLOWPOKETAIL_ROCKET + person_event SPRITE_GRAMPS, 9, 21, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1980b1, -1 + person_event SPRITE_TEACHER, 13, 15, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1980c5, -1 + person_event SPRITE_YOUNGSTER, 9, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1980c8, -1 + person_event SPRITE_SLOWPOKE, 17, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES + person_event SPRITE_SLOWPOKE, 9, 18, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES + person_event SPRITE_SLOWPOKE, 9, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES + person_event SPRITE_SLOWPOKE, 15, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES + person_event SPRITE_FRUIT_TREE, 2, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, WhiteApricornTree, -1 + person_event SPRITE_AZALEA_ROCKET, 10, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_RIVAL_AZALEA_TOWN + person_event SPRITE_AZALEA_ROCKET, 16, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, AzaleaRocketScript_0x1980ae, EVENT_SLOWPOKE_WELL_ROCKETS + person_event SPRITE_KURT_OUTSIDE, 5, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, KurtOutsideScript_0x19810c, EVENT_AZALEA_TOWN_KURT diff --git a/maps/BattleTower1F.asm b/maps/BattleTower1F.asm index a6788486e..760cf7e6f 100644 --- a/maps/BattleTower1F.asm +++ b/maps/BattleTower1F.asm @@ -808,8 +808,8 @@ BattleTower1F_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_RECEPTIONIST, 6, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ReceptionistScript_0x9e3e2, -1 - person_event SPRITE_YOUNGSTER, 9, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, YoungsterScript_0x9e55d, -1 - person_event SPRITE_COOLTRAINER_F, 9, 4, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerFScript_0x9e568, -1 - person_event SPRITE_BUG_CATCHER, 3, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, BugCatcherScript_0x9e56b, -1 - person_event SPRITE_GRANNY, 3, 14, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, GrannyScript_0x9e56e, -1 + person_event SPRITE_RECEPTIONIST, 6, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x9e3e2, -1 + person_event SPRITE_YOUNGSTER, 9, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x9e55d, -1 + person_event SPRITE_COOLTRAINER_F, 9, 4, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x9e568, -1 + person_event SPRITE_BUG_CATCHER, 3, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x9e56b, -1 + person_event SPRITE_GRANNY, 3, 14, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x9e56e, -1 diff --git a/maps/BattleTowerBattleRoom.asm b/maps/BattleTowerBattleRoom.asm index e22057abf..858b51fb0 100644 --- a/maps/BattleTowerBattleRoom.asm +++ b/maps/BattleTowerBattleRoom.asm @@ -155,5 +155,5 @@ BattleTowerBattleRoom_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_YOUNGSTER, 0, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_BATTLE_TOWER_BATTLE_ROOM_YOUNGSTER - person_event SPRITE_RECEPTIONIST, 6, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, -1 + person_event SPRITE_YOUNGSTER, 0, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_BATTLE_TOWER_BATTLE_ROOM_YOUNGSTER + person_event SPRITE_RECEPTIONIST, 6, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, -1 diff --git a/maps/BattleTowerElevator.asm b/maps/BattleTowerElevator.asm index 944f15988..20ae591bb 100644 --- a/maps/BattleTowerElevator.asm +++ b/maps/BattleTowerElevator.asm @@ -60,4 +60,4 @@ BattleTowerElevator_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_RECEPTIONIST, 2, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, MovementData_0x9f58f, -1 + person_event SPRITE_RECEPTIONIST, 2, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MovementData_0x9f58f, -1 diff --git a/maps/BattleTowerHallway.asm b/maps/BattleTowerHallway.asm index 8e5ed3743..52ef201fd 100644 --- a/maps/BattleTowerHallway.asm +++ b/maps/BattleTowerHallway.asm @@ -98,4 +98,4 @@ BattleTowerHallway_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_RECEPTIONIST, 2, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, BattleTowerHallway_MapEventHeader, -1 + person_event SPRITE_RECEPTIONIST, 2, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BattleTowerHallway_MapEventHeader, -1 diff --git a/maps/BattleTowerOutside.asm b/maps/BattleTowerOutside.asm index 6e58f3400..a5a198d7d 100644 --- a/maps/BattleTowerOutside.asm +++ b/maps/BattleTowerOutside.asm @@ -142,7 +142,7 @@ BattleTowerOutside_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_STANDING_YOUNGSTER, 12, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, StandingYoungsterScript_0x9f85f, -1 - person_event SPRITE_BUENA, 11, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BuenaScript_0x9f862, -1 - person_event SPRITE_SAILOR, 18, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, SailorScript_0x9f865, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR - person_event SPRITE_LASS, 24, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ObjectEvent, -1 + person_event SPRITE_STANDING_YOUNGSTER, 12, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, StandingYoungsterScript_0x9f85f, -1 + person_event SPRITE_BUENA, 11, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, BuenaScript_0x9f862, -1 + person_event SPRITE_SAILOR, 18, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x9f865, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR + person_event SPRITE_LASS, 24, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ObjectEvent, -1 diff --git a/maps/BillsHouse.asm b/maps/BillsHouse.asm index f5077287b..b2151f512 100644 --- a/maps/BillsHouse.asm +++ b/maps/BillsHouse.asm @@ -367,4 +367,4 @@ BillsHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_STANDING_UP, 2, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrampsScript_0x189538, -1 + person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_STANDING_UP, 2, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GrampsScript_0x189538, -1 diff --git a/maps/BlackthornCity.asm b/maps/BlackthornCity.asm index 1c396777f..b970499f8 100644 --- a/maps/BlackthornCity.asm +++ b/maps/BlackthornCity.asm @@ -333,12 +333,12 @@ BlackthornCity_MapEventHeader: .PersonEvents: db 9 - person_event SPRITE_SUPER_NERD, 12, 18, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x1a46e8, EVENT_BLACKTHORN_CITY_SUPER_NERD_BLOCKS_GYM - person_event SPRITE_SUPER_NERD, 12, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x1a46e8, EVENT_BLACKTHORN_CITY_SUPER_NERD_DOES_NOT_BLOCK_GYM - person_event SPRITE_GRAMPS, 2, 20, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x1a4708, EVENT_BLACKTHORN_CITY_GRAMPS_BLOCKS_DRAGONS_DEN - person_event SPRITE_GRAMPS, 2, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x1a470b, EVENT_BLACKTHORN_CITY_GRAMPS_NOT_BLOCKING_DRAGONS_DEN - person_event SPRITE_BLACK_BELT, 31, 24, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, BlackBeltScript_0x1a470e, -1 - person_event SPRITE_COOLTRAINER_F, 25, 9, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerFScript_0x1a4722, -1 - person_event SPRITE_YOUNGSTER, 15, 13, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, YoungsterScript_0x1a4725, -1 - person_event SPRITE_YOUNGSTER, 20, 22, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, SantosScript, EVENT_BLACKTHORN_CITY_SANTOS_OF_SATURDAY - person_event SPRITE_COOLTRAINER_F, 19, 35, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x1a4728, -1 + person_event SPRITE_SUPER_NERD, 12, 18, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x1a46e8, EVENT_BLACKTHORN_CITY_SUPER_NERD_BLOCKS_GYM + person_event SPRITE_SUPER_NERD, 12, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x1a46e8, EVENT_BLACKTHORN_CITY_SUPER_NERD_DOES_NOT_BLOCK_GYM + person_event SPRITE_GRAMPS, 2, 20, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a4708, EVENT_BLACKTHORN_CITY_GRAMPS_BLOCKS_DRAGONS_DEN + person_event SPRITE_GRAMPS, 2, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a470b, EVENT_BLACKTHORN_CITY_GRAMPS_NOT_BLOCKING_DRAGONS_DEN + person_event SPRITE_BLACK_BELT, 31, 24, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x1a470e, -1 + person_event SPRITE_COOLTRAINER_F, 25, 9, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x1a4722, -1 + person_event SPRITE_YOUNGSTER, 15, 13, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a4725, -1 + person_event SPRITE_YOUNGSTER, 20, 22, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SantosScript, EVENT_BLACKTHORN_CITY_SANTOS_OF_SATURDAY + person_event SPRITE_COOLTRAINER_F, 19, 35, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x1a4728, -1 diff --git a/maps/BlackthornDodrioTradeHouse.asm b/maps/BlackthornDodrioTradeHouse.asm index e0d2557d9..7f84fe8dc 100644 --- a/maps/BlackthornDodrioTradeHouse.asm +++ b/maps/BlackthornDodrioTradeHouse.asm @@ -35,4 +35,4 @@ BlackthornDodrioTradeHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_LASS, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, Emy, -1 + person_event SPRITE_LASS, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, Emy, -1 diff --git a/maps/BlackthornDragonSpeechHouse.asm b/maps/BlackthornDragonSpeechHouse.asm index 0686184de..04e6554c4 100644 --- a/maps/BlackthornDragonSpeechHouse.asm +++ b/maps/BlackthornDragonSpeechHouse.asm @@ -58,5 +58,5 @@ BlackthornDragonSpeechHouse_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_GRANNY, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x195949, -1 - person_event SPRITE_EKANS, 5, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, EkansScript_0x19594c, -1 + person_event SPRITE_GRANNY, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x195949, -1 + person_event SPRITE_EKANS, 5, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, EkansScript_0x19594c, -1 diff --git a/maps/BlackthornGym1F.asm b/maps/BlackthornGym1F.asm index 5bd21b7bc..5fa27432c 100644 --- a/maps/BlackthornGym1F.asm +++ b/maps/BlackthornGym1F.asm @@ -404,8 +404,8 @@ BlackthornGym1F_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_CLAIR, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ClairScript_0x194e24, -1 - person_event SPRITE_COOLTRAINER_M, 6, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainermMike, -1 - person_event SPRITE_COOLTRAINER_M, 14, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainermPaul, -1 - person_event SPRITE_COOLTRAINER_F, 2, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainerfLola, -1 - person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, BlackthornGymGuyScript, -1 + person_event SPRITE_CLAIR, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ClairScript_0x194e24, -1 + person_event SPRITE_COOLTRAINER_M, 6, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerCooltrainermMike, -1 + person_event SPRITE_COOLTRAINER_M, 14, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerCooltrainermPaul, -1 + person_event SPRITE_COOLTRAINER_F, 2, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerCooltrainerfLola, -1 + person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, BlackthornGymGuyScript, -1 diff --git a/maps/BlackthornGym2F.asm b/maps/BlackthornGym2F.asm index b24b0c662..48ea2db38 100644 --- a/maps/BlackthornGym2F.asm +++ b/maps/BlackthornGym2F.asm @@ -145,11 +145,11 @@ BlackthornGym2F_MapEventHeader: .PersonEvents: db 8 - person_event SPRITE_COOLTRAINER_M, 1, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainermCody, -1 - person_event SPRITE_COOLTRAINER_F, 11, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainerfFran, -1 - person_event SPRITE_BOULDER, 2, 8, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_1 - person_event SPRITE_BOULDER, 3, 2, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_2 - person_event SPRITE_BOULDER, 16, 6, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_3 - person_event SPRITE_BOULDER, 3, 3, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, -1 - person_event SPRITE_BOULDER, 1, 6, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, -1 - person_event SPRITE_BOULDER, 14, 8, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, -1 + person_event SPRITE_COOLTRAINER_M, 1, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerCooltrainermCody, -1 + person_event SPRITE_COOLTRAINER_F, 11, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerCooltrainerfFran, -1 + person_event SPRITE_BOULDER, 2, 8, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_1 + person_event SPRITE_BOULDER, 3, 2, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_2 + person_event SPRITE_BOULDER, 16, 6, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_3 + person_event SPRITE_BOULDER, 3, 3, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackthornGymBoulder, -1 + person_event SPRITE_BOULDER, 1, 6, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackthornGymBoulder, -1 + person_event SPRITE_BOULDER, 14, 8, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackthornGymBoulder, -1 diff --git a/maps/BlackthornMart.asm b/maps/BlackthornMart.asm index 10d0a97a2..317c0a84c 100644 --- a/maps/BlackthornMart.asm +++ b/maps/BlackthornMart.asm @@ -58,6 +58,6 @@ BlackthornMart_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x195a5d, -1 - person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, 0, 0, CooltrainerMScript_0x195a64, -1 - person_event SPRITE_BLACK_BELT, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BlackBeltScript_0x195a67, -1 + person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x195a5d, -1 + person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x195a64, -1 + person_event SPRITE_BLACK_BELT, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x195a67, -1 diff --git a/maps/BlackthornPokeCenter1F.asm b/maps/BlackthornPokeCenter1F.asm index 6d1656043..5cd378eff 100644 --- a/maps/BlackthornPokeCenter1F.asm +++ b/maps/BlackthornPokeCenter1F.asm @@ -61,7 +61,7 @@ BlackthornPokeCenter1F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x195b79, -1 - person_event SPRITE_GENTLEMAN, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x195b7c, -1 - person_event SPRITE_TWIN, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TwinScript_0x195b7f, -1 - person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x195b82, -1 + person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x195b79, -1 + person_event SPRITE_GENTLEMAN, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x195b7c, -1 + person_event SPRITE_TWIN, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TwinScript_0x195b7f, -1 + person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x195b82, -1 diff --git a/maps/BluesHouse.asm b/maps/BluesHouse.asm index 1540239bc..6cdf97d4f 100644 --- a/maps/BluesHouse.asm +++ b/maps/BluesHouse.asm @@ -158,4 +158,4 @@ BluesHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_DAISY, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, DaisyScript_0x19b0d0, -1 + person_event SPRITE_DAISY, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DaisyScript_0x19b0d0, -1 diff --git a/maps/BrunosRoom.asm b/maps/BrunosRoom.asm index 73b74be4e..a862137de 100644 --- a/maps/BrunosRoom.asm +++ b/maps/BrunosRoom.asm @@ -145,4 +145,4 @@ BrunosRoom_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_BRUNO, 7, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, BrunoScript_0x1809c5, -1 + person_event SPRITE_BRUNO, 7, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, BrunoScript_0x1809c5, -1 diff --git a/maps/BurnedTower1F.asm b/maps/BurnedTower1F.asm index b318e2e39..20c30336d 100644 --- a/maps/BurnedTower1F.asm +++ b/maps/BurnedTower1F.asm @@ -309,8 +309,8 @@ BurnedTower1F_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_ROCK, 4, 15, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, BurnedTower1FRock, -1 - person_event SPRITE_SUPER_NERD, 12, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x185cbc, EVENT_BURNED_TOWER_1F_EUSINE - person_event SPRITE_SILVER, 9, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 2, 3, ObjectEvent, EVENT_RIVAL_BURNED_TOWER - person_event SPRITE_MORTY, 14, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MortyScript_0x185cbf, EVENT_BURNED_TOWER_MORTY - person_event SPRITE_POKE_BALL, 2, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185ccb, EVENT_BURNED_TOWER_1F_HP_UP + person_event SPRITE_ROCK, 4, 15, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BurnedTower1FRock, -1 + person_event SPRITE_SUPER_NERD, 12, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x185cbc, EVENT_BURNED_TOWER_1F_EUSINE + person_event SPRITE_SILVER, 9, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, ObjectEvent, EVENT_RIVAL_BURNED_TOWER + person_event SPRITE_MORTY, 14, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, MortyScript_0x185cbf, EVENT_BURNED_TOWER_MORTY + person_event SPRITE_POKE_BALL, 2, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185ccb, EVENT_BURNED_TOWER_1F_HP_UP diff --git a/maps/BurnedTowerB1F.asm b/maps/BurnedTowerB1F.asm index d90ca49b3..935b94f4f 100644 --- a/maps/BurnedTowerB1F.asm +++ b/maps/BurnedTowerB1F.asm @@ -251,12 +251,12 @@ BurnedTowerB1F_MapEventHeader: .PersonEvents: db 9 - person_event SPRITE_BOULDER, 8, 17, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BurnedTowerB1FBoulder, -1 - person_event SPRITE_RAIKOU, 3, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1 - person_event SPRITE_ENTEI, 3, 12, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1 - person_event SPRITE_SUICUNE, 4, 10, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1 - person_event SPRITE_RAIKOU, 3, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_SILVER, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2 - person_event SPRITE_ENTEI, 3, 12, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_SILVER, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2 - person_event SPRITE_SUICUNE, 4, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_SILVER, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2 - person_event SPRITE_POKE_BALL, 4, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x186231, EVENT_BURNED_TOWER_B1F_TM_ENDURE - person_event SPRITE_SUPER_NERD, 12, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x186212, EVENT_EUSINE_IN_BURNED_TOWER + person_event SPRITE_BOULDER, 8, 17, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BurnedTowerB1FBoulder, -1 + person_event SPRITE_RAIKOU, 3, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1 + person_event SPRITE_ENTEI, 3, 12, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1 + person_event SPRITE_SUICUNE, 4, 10, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1 + person_event SPRITE_RAIKOU, 3, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_SILVER, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2 + person_event SPRITE_ENTEI, 3, 12, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_SILVER, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2 + person_event SPRITE_SUICUNE, 4, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_SILVER, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2 + person_event SPRITE_POKE_BALL, 4, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x186231, EVENT_BURNED_TOWER_B1F_TM_ENDURE + person_event SPRITE_SUPER_NERD, 12, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x186212, EVENT_EUSINE_IN_BURNED_TOWER diff --git a/maps/CeladonCafe.asm b/maps/CeladonCafe.asm index dd626fe31..35ca2971f 100644 --- a/maps/CeladonCafe.asm +++ b/maps/CeladonCafe.asm @@ -219,8 +219,8 @@ CeladonCafe_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_SUPER_NERD, 3, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, SuperNerdScript_0x73049, -1 - person_event SPRITE_FISHER, 6, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x73051, -1 - person_event SPRITE_FISHER, 7, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x73062, -1 - person_event SPRITE_FISHER, 2, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x73073, -1 - person_event SPRITE_TEACHER, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x73084, -1 + person_event SPRITE_SUPER_NERD, 3, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x73049, -1 + person_event SPRITE_FISHER, 6, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FisherScript_0x73051, -1 + person_event SPRITE_FISHER, 7, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x73062, -1 + person_event SPRITE_FISHER, 2, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FisherScript_0x73073, -1 + person_event SPRITE_TEACHER, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x73084, -1 diff --git a/maps/CeladonCity.asm b/maps/CeladonCity.asm index 798b6ca2a..d2c29fe1c 100644 --- a/maps/CeladonCity.asm +++ b/maps/CeladonCity.asm @@ -257,12 +257,12 @@ CeladonCity_MapEventHeader: .PersonEvents: db 9 - person_event SPRITE_FISHER, 11, 26, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1a9f43, -1 - person_event SPRITE_POLIWAG, 11, 27, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CeladonCityPoliwrath, -1 - person_event SPRITE_TEACHER, 24, 20, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, TeacherScript_0x1a9f50, -1 - person_event SPRITE_GRAMPS, 16, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrampsScript_0x1a9f53, -1 - person_event SPRITE_GRAMPS, 31, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GrampsScript_0x1a9f56, -1 - person_event SPRITE_YOUNGSTER, 13, 18, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x1a9f59, -1 - person_event SPRITE_YOUNGSTER, 33, 24, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a9f5c, -1 - person_event SPRITE_TEACHER, 14, 6, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x1a9f5f, -1 - person_event SPRITE_LASS, 22, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, LassScript_0x1a9f62, -1 + person_event SPRITE_FISHER, 11, 26, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x1a9f43, -1 + person_event SPRITE_POLIWAG, 11, 27, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, CeladonCityPoliwrath, -1 + person_event SPRITE_TEACHER, 24, 20, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1a9f50, -1 + person_event SPRITE_GRAMPS, 16, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a9f53, -1 + person_event SPRITE_GRAMPS, 31, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a9f56, -1 + person_event SPRITE_YOUNGSTER, 13, 18, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a9f59, -1 + person_event SPRITE_YOUNGSTER, 33, 24, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a9f5c, -1 + person_event SPRITE_TEACHER, 14, 6, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1a9f5f, -1 + person_event SPRITE_LASS, 22, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, LassScript_0x1a9f62, -1 diff --git a/maps/CeladonDeptStore1F.asm b/maps/CeladonDeptStore1F.asm index e87450176..6b307b91c 100644 --- a/maps/CeladonDeptStore1F.asm +++ b/maps/CeladonDeptStore1F.asm @@ -89,6 +89,6 @@ CeladonDeptStore1F_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_RECEPTIONIST, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ReceptionistScript_0x709e0, -1 - person_event SPRITE_GENTLEMAN, 4, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, GentlemanScript_0x709e3, -1 - person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x709e6, -1 + person_event SPRITE_RECEPTIONIST, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x709e0, -1 + person_event SPRITE_GENTLEMAN, 4, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x709e3, -1 + person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x709e6, -1 diff --git a/maps/CeladonDeptStore2F.asm b/maps/CeladonDeptStore2F.asm index b2fe823da..6ce11883f 100644 --- a/maps/CeladonDeptStore2F.asm +++ b/maps/CeladonDeptStore2F.asm @@ -82,7 +82,7 @@ CeladonDeptStore2F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ClerkScript_0x70bad, -1 - person_event SPRITE_CLERK, 5, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ClerkScript_0x70bb5, -1 - person_event SPRITE_POKEFAN_M, 2, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x70bbd, -1 - person_event SPRITE_YOUNGSTER, 2, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x70bc0, -1 + person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x70bad, -1 + person_event SPRITE_CLERK, 5, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x70bb5, -1 + person_event SPRITE_POKEFAN_M, 2, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x70bbd, -1 + person_event SPRITE_YOUNGSTER, 2, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x70bc0, -1 diff --git a/maps/CeladonDeptStore3F.asm b/maps/CeladonDeptStore3F.asm index f28dd9171..4d0d4dfe0 100644 --- a/maps/CeladonDeptStore3F.asm +++ b/maps/CeladonDeptStore3F.asm @@ -107,8 +107,8 @@ CeladonDeptStore3F_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_CLERK, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ClerkScript_0x70d29, -1 - person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x70d31, -1 - person_event SPRITE_GAMEBOY_KID, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GameboyKidScript_0x70d34, -1 - person_event SPRITE_GAMEBOY_KID, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GameboyKidScript_0x70d3f, -1 - person_event SPRITE_SUPER_NERD, 4, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x70d4a, -1 + person_event SPRITE_CLERK, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x70d29, -1 + person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x70d31, -1 + person_event SPRITE_GAMEBOY_KID, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x70d34, -1 + person_event SPRITE_GAMEBOY_KID, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x70d3f, -1 + person_event SPRITE_SUPER_NERD, 4, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x70d4a, -1 diff --git a/maps/CeladonDeptStore4F.asm b/maps/CeladonDeptStore4F.asm index e91d4310c..27eaa7352 100644 --- a/maps/CeladonDeptStore4F.asm +++ b/maps/CeladonDeptStore4F.asm @@ -65,6 +65,6 @@ CeladonDeptStore4F_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ClerkScript_0x70f0d, -1 - person_event SPRITE_SUPER_NERD, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x70f15, -1 - person_event SPRITE_YOUNGSTER, 2, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, YoungsterScript_0x70f18, -1 + person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x70f0d, -1 + person_event SPRITE_SUPER_NERD, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x70f15, -1 + person_event SPRITE_YOUNGSTER, 2, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x70f18, -1 diff --git a/maps/CeladonDeptStore5F.asm b/maps/CeladonDeptStore5F.asm index e7abd43e1..fcd7ff7ff 100644 --- a/maps/CeladonDeptStore5F.asm +++ b/maps/CeladonDeptStore5F.asm @@ -84,8 +84,8 @@ CeladonDeptStore5F_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_CLERK, 5, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ClerkScript_0x71004, -1 - person_event SPRITE_CLERK, 5, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ClerkScript_0x7100c, -1 - person_event SPRITE_GENTLEMAN, 5, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GentlemanScript_0x71014, -1 - person_event SPRITE_SAILOR, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SailorScript_0x71017, -1 - person_event SPRITE_TEACHER, 7, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x7101a, -1 + person_event SPRITE_CLERK, 5, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x71004, -1 + person_event SPRITE_CLERK, 5, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x7100c, -1 + person_event SPRITE_GENTLEMAN, 5, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x71014, -1 + person_event SPRITE_SAILOR, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SailorScript_0x71017, -1 + person_event SPRITE_TEACHER, 7, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7101a, -1 diff --git a/maps/CeladonDeptStore6F.asm b/maps/CeladonDeptStore6F.asm index 2ab328324..7591cb907 100644 --- a/maps/CeladonDeptStore6F.asm +++ b/maps/CeladonDeptStore6F.asm @@ -168,5 +168,5 @@ CeladonDeptStore6F_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_SUPER_NERD, 2, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, SuperNerdScript_0x7117a, -1 - person_event SPRITE_YOUNGSTER, 5, 12, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x7117d, -1 + person_event SPRITE_SUPER_NERD, 2, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x7117a, -1 + person_event SPRITE_YOUNGSTER, 5, 12, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x7117d, -1 diff --git a/maps/CeladonGameCorner.asm b/maps/CeladonGameCorner.asm index 04ea5d14f..ef644dcd4 100644 --- a/maps/CeladonGameCorner.asm +++ b/maps/CeladonGameCorner.asm @@ -325,12 +325,12 @@ CeladonGameCorner_MapEventHeader: .PersonEvents: db 9 - person_event SPRITE_CLERK, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ClerkScript_0x7211d, -1 - person_event SPRITE_RECEPTIONIST, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ReceptionistScript_0x72120, -1 - person_event SPRITE_POKEFAN_M, 10, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x72123, -1 - person_event SPRITE_TEACHER, 7, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x7212e, -1 - person_event SPRITE_FISHING_GURU, 7, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FishingGuruScript_0x72139, -1 - person_event SPRITE_FISHER, 10, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, 2, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x72144, -1 - person_event SPRITE_FISHER, 10, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, 4, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x72144, -1 - person_event SPRITE_GYM_GUY, 3, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CeladonGymGuyScript, -1 - person_event SPRITE_GRAMPS, 8, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GrampsScript_0x72190, -1 + person_event SPRITE_CLERK, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ClerkScript_0x7211d, -1 + person_event SPRITE_RECEPTIONIST, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x72120, -1 + person_event SPRITE_POKEFAN_M, 10, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x72123, -1 + person_event SPRITE_TEACHER, 7, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7212e, -1 + person_event SPRITE_FISHING_GURU, 7, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x72139, -1 + person_event SPRITE_FISHER, 10, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, 2, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x72144, -1 + person_event SPRITE_FISHER, 10, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, 4, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x72144, -1 + person_event SPRITE_GYM_GUY, 3, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CeladonGymGuyScript, -1 + person_event SPRITE_GRAMPS, 8, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x72190, -1 diff --git a/maps/CeladonGameCornerPrizeRoom.asm b/maps/CeladonGameCornerPrizeRoom.asm index 781833311..004b60810 100644 --- a/maps/CeladonGameCornerPrizeRoom.asm +++ b/maps/CeladonGameCornerPrizeRoom.asm @@ -284,5 +284,5 @@ CeladonGameCornerPrizeRoom_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_GENTLEMAN, 2, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GentlemanScript_0x726e9, -1 - person_event SPRITE_PHARMACIST, 4, 4, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, PharmacistScript_0x726ec, -1 + person_event SPRITE_GENTLEMAN, 2, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x726e9, -1 + person_event SPRITE_PHARMACIST, 4, 4, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, PharmacistScript_0x726ec, -1 diff --git a/maps/CeladonGym.asm b/maps/CeladonGym.asm index f8c53a138..5e17aed09 100644 --- a/maps/CeladonGym.asm +++ b/maps/CeladonGym.asm @@ -278,9 +278,9 @@ CeladonGym_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_ERIKA, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ErikaScript_0x72a6a, -1 - person_event SPRITE_LASS, 8, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerLassMichelle, -1 - person_event SPRITE_LASS, 8, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerPicnickerTanya, -1 - person_event SPRITE_BUENA, 5, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerBeautyJulia, -1 - person_event SPRITE_TWIN, 10, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsJoandzoe1, -1 - person_event SPRITE_TWIN, 10, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsJoandzoe2, -1 + person_event SPRITE_ERIKA, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ErikaScript_0x72a6a, -1 + person_event SPRITE_LASS, 8, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerLassMichelle, -1 + person_event SPRITE_LASS, 8, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 2, TrainerPicnickerTanya, -1 + person_event SPRITE_BUENA, 5, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerBeautyJulia, -1 + person_event SPRITE_TWIN, 10, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerTwinsJoandzoe1, -1 + person_event SPRITE_TWIN, 10, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerTwinsJoandzoe2, -1 diff --git a/maps/CeladonMansion1F.asm b/maps/CeladonMansion1F.asm index c900741f1..e90f167bd 100644 --- a/maps/CeladonMansion1F.asm +++ b/maps/CeladonMansion1F.asm @@ -91,7 +91,7 @@ CeladonMansion1F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_GRANNY, 5, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, CeladonMansionManager, -1 - person_event SPRITE_GROWLITHE, 6, 2, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, CeladonMansion1FMeowth, -1 - person_event SPRITE_CLEFAIRY, 4, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, CeladonMansion1FClefairy, -1 - person_event SPRITE_GROWLITHE, 4, 4, SPRITEMOVEDATA_POKEMON, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CeladonMansion1FNidoranF, -1 + person_event SPRITE_GRANNY, 5, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CeladonMansionManager, -1 + person_event SPRITE_GROWLITHE, 6, 2, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CeladonMansion1FMeowth, -1 + person_event SPRITE_CLEFAIRY, 4, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CeladonMansion1FClefairy, -1 + person_event SPRITE_GROWLITHE, 4, 4, SPRITEMOVEDATA_POKEMON, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, CeladonMansion1FNidoranF, -1 diff --git a/maps/CeladonMansion3F.asm b/maps/CeladonMansion3F.asm index f8dbc5a49..9a7858d40 100644 --- a/maps/CeladonMansion3F.asm +++ b/maps/CeladonMansion3F.asm @@ -206,7 +206,7 @@ CeladonMansion3F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_COOLTRAINER_M, 6, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x71670, -1 - person_event SPRITE_GYM_GUY, 4, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GymGuyScript_0x71696, -1 - person_event SPRITE_SUPER_NERD, 7, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x716bc, -1 - person_event SPRITE_FISHER, 4, 0, SPRITEMOVEDATA_STANDING_UP, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x716bf, -1 + person_event SPRITE_COOLTRAINER_M, 6, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x71670, -1 + person_event SPRITE_GYM_GUY, 4, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x71696, -1 + person_event SPRITE_SUPER_NERD, 7, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x716bc, -1 + person_event SPRITE_FISHER, 4, 0, SPRITEMOVEDATA_STANDING_UP, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x716bf, -1 diff --git a/maps/CeladonMansionRoof.asm b/maps/CeladonMansionRoof.asm index bc79e1058..748f6012e 100644 --- a/maps/CeladonMansionRoof.asm +++ b/maps/CeladonMansionRoof.asm @@ -49,4 +49,4 @@ CeladonMansionRoof_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_FISHER, 5, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FisherScript_0x71a39, -1 + person_event SPRITE_FISHER, 5, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, FisherScript_0x71a39, -1 diff --git a/maps/CeladonMansionRoofHouse.asm b/maps/CeladonMansionRoofHouse.asm index 25c3a0dbe..c7d453fbb 100644 --- a/maps/CeladonMansionRoofHouse.asm +++ b/maps/CeladonMansionRoofHouse.asm @@ -130,4 +130,4 @@ CeladonMansionRoofHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_PHARMACIST, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, PharmacistScript_0x71afd, -1 + person_event SPRITE_PHARMACIST, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, PharmacistScript_0x71afd, -1 diff --git a/maps/CeladonPokeCenter1F.asm b/maps/CeladonPokeCenter1F.asm index 562bc0bef..baf108b09 100644 --- a/maps/CeladonPokeCenter1F.asm +++ b/maps/CeladonPokeCenter1F.asm @@ -156,8 +156,8 @@ CeladonPokeCenter1F_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x71e22, -1 - person_event SPRITE_GENTLEMAN, 5, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, GentlemanScript_0x71e25, -1 - person_event SPRITE_PHARMACIST, 3, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PharmacistScript_0x71e2b, -1 - person_event SPRITE_COOLTRAINER_F, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x71e28, -1 - person_event SPRITE_SUPER_NERD, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x71e2e, EVENT_SET_WHEN_FOUGHT_HO_OH + person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x71e22, -1 + person_event SPRITE_GENTLEMAN, 5, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x71e25, -1 + person_event SPRITE_PHARMACIST, 3, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PharmacistScript_0x71e2b, -1 + person_event SPRITE_COOLTRAINER_F, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x71e28, -1 + person_event SPRITE_SUPER_NERD, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x71e2e, EVENT_SET_WHEN_FOUGHT_HO_OH diff --git a/maps/CeruleanCity.asm b/maps/CeruleanCity.asm index 09b27c93e..969f2ca34 100644 --- a/maps/CeruleanCity.asm +++ b/maps/CeruleanCity.asm @@ -299,9 +299,9 @@ CeruleanCity_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_COOLTRAINER_M, 23, 15, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CooltrainerMScript_0x184009, -1 - person_event SPRITE_SUPER_NERD, 15, 23, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x18401d, -1 - person_event SPRITE_SLOWPOKE, 24, 20, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, CeruleanCitySlowbro, -1 - person_event SPRITE_COOLTRAINER_F, 24, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x18402a, -1 - person_event SPRITE_FISHER, 26, 30, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x18404a, -1 - person_event SPRITE_YOUNGSTER, 12, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x184064, -1 + person_event SPRITE_COOLTRAINER_M, 23, 15, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x184009, -1 + person_event SPRITE_SUPER_NERD, 15, 23, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x18401d, -1 + person_event SPRITE_SLOWPOKE, 24, 20, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CeruleanCitySlowbro, -1 + person_event SPRITE_COOLTRAINER_F, 24, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x18402a, -1 + person_event SPRITE_FISHER, 26, 30, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x18404a, -1 + person_event SPRITE_YOUNGSTER, 12, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x184064, -1 diff --git a/maps/CeruleanGym.asm b/maps/CeruleanGym.asm index 10c00d18a..a15eeb496 100644 --- a/maps/CeruleanGym.asm +++ b/maps/CeruleanGym.asm @@ -377,9 +377,9 @@ CeruleanGym_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_ROCKET, 10, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_CERULEAN_GYM_ROCKET - person_event SPRITE_MISTY, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, MistyScript_0x188432, EVENT_TRAINERS_IN_CERULEAN_GYM - person_event SPRITE_SWIMMER_GIRL, 6, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfDiana, EVENT_TRAINERS_IN_CERULEAN_GYM - person_event SPRITE_SWIMMER_GIRL, 9, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerSwimmerfBriana, EVENT_TRAINERS_IN_CERULEAN_GYM - person_event SPRITE_SWIMMER_GUY, 9, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermParker, EVENT_TRAINERS_IN_CERULEAN_GYM - person_event SPRITE_GYM_GUY, 13, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CeruleanGymGuyScript, EVENT_TRAINERS_IN_CERULEAN_GYM + person_event SPRITE_ROCKET, 10, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_CERULEAN_GYM_ROCKET + person_event SPRITE_MISTY, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, MistyScript_0x188432, EVENT_TRAINERS_IN_CERULEAN_GYM + person_event SPRITE_SWIMMER_GIRL, 6, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerSwimmerfDiana, EVENT_TRAINERS_IN_CERULEAN_GYM + person_event SPRITE_SWIMMER_GIRL, 9, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerSwimmerfBriana, EVENT_TRAINERS_IN_CERULEAN_GYM + person_event SPRITE_SWIMMER_GUY, 9, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerSwimmermParker, EVENT_TRAINERS_IN_CERULEAN_GYM + person_event SPRITE_GYM_GUY, 13, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, CeruleanGymGuyScript, EVENT_TRAINERS_IN_CERULEAN_GYM diff --git a/maps/CeruleanGymBadgeSpeechHouse.asm b/maps/CeruleanGymBadgeSpeechHouse.asm index ba415aa08..ef5ceb76b 100644 --- a/maps/CeruleanGymBadgeSpeechHouse.asm +++ b/maps/CeruleanGymBadgeSpeechHouse.asm @@ -30,4 +30,4 @@ CeruleanGymBadgeSpeechHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x188002, -1 + person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x188002, -1 diff --git a/maps/CeruleanMart.asm b/maps/CeruleanMart.asm index af7fdc656..b2ec0ad79 100644 --- a/maps/CeruleanMart.asm +++ b/maps/CeruleanMart.asm @@ -57,6 +57,6 @@ CeruleanMart_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x188ac0, -1 - person_event SPRITE_COOLTRAINER_M, 6, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerMScript_0x188ac7, -1 - person_event SPRITE_COOLTRAINER_F, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerFScript_0x188aca, -1 + person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x188ac0, -1 + person_event SPRITE_COOLTRAINER_M, 6, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x188ac7, -1 + person_event SPRITE_COOLTRAINER_F, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x188aca, -1 diff --git a/maps/CeruleanPokeCenter1F.asm b/maps/CeruleanPokeCenter1F.asm index 5c72966a0..15ab1911e 100644 --- a/maps/CeruleanPokeCenter1F.asm +++ b/maps/CeruleanPokeCenter1F.asm @@ -75,6 +75,6 @@ CeruleanPokeCenter1F_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x18820f, -1 - person_event SPRITE_SUPER_NERD, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, SuperNerdScript_0x188212, -1 - person_event SPRITE_GYM_GUY, 5, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GymGuyScript_0x18821e, -1 + person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x18820f, -1 + person_event SPRITE_SUPER_NERD, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x188212, -1 + person_event SPRITE_GYM_GUY, 5, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x18821e, -1 diff --git a/maps/CeruleanPoliceStation.asm b/maps/CeruleanPoliceStation.asm index c4fe89f31..4440aa322 100644 --- a/maps/CeruleanPoliceStation.asm +++ b/maps/CeruleanPoliceStation.asm @@ -55,6 +55,6 @@ CeruleanPoliceStation_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_FISHING_GURU, 1, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FishingGuruScript_0x18804a, -1 - person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, PokefanFScript_0x18804d, -1 - person_event SPRITE_DIGLETT, 5, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, DiglettScript_0x188050, -1 + person_event SPRITE_FISHING_GURU, 1, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x18804a, -1 + person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x18804d, -1 + person_event SPRITE_DIGLETT, 5, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, DiglettScript_0x188050, -1 diff --git a/maps/CeruleanTradeSpeechHouse.asm b/maps/CeruleanTradeSpeechHouse.asm index 85c166b1c..15fdd9320 100644 --- a/maps/CeruleanTradeSpeechHouse.asm +++ b/maps/CeruleanTradeSpeechHouse.asm @@ -64,7 +64,7 @@ CeruleanTradeSpeechHouse_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_GRANNY, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrannyScript_0x188133, -1 - person_event SPRITE_GRAMPS, 2, 1, SPRITEMOVEDATA_WANDER, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GrampsScript_0x188136, -1 - person_event SPRITE_RHYDON, 2, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, RhydonScript_0x188139, -1 - person_event SPRITE_ZUBAT, 6, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, ZubatScript_0x188143, -1 + person_event SPRITE_GRANNY, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GrannyScript_0x188133, -1 + person_event SPRITE_GRAMPS, 2, 1, SPRITEMOVEDATA_WANDER, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x188136, -1 + person_event SPRITE_RHYDON, 2, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, RhydonScript_0x188139, -1 + person_event SPRITE_ZUBAT, 6, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ZubatScript_0x188143, -1 diff --git a/maps/CharcoalKiln.asm b/maps/CharcoalKiln.asm index 0f2fc3a43..3c4ee42cf 100644 --- a/maps/CharcoalKiln.asm +++ b/maps/CharcoalKiln.asm @@ -163,6 +163,6 @@ CharcoalKiln_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_BLACK_BELT, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, CharcoalKilnBoss, EVENT_CHARCOAL_KILN_BOSS - person_event SPRITE_YOUNGSTER, 3, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, CharcoalKilnApprentice, EVENT_CHARCOAL_KILN_APPRENTICE - person_event SPRITE_MOLTRES, 6, 5, SPRITEMOVEDATA_POKEMON, 2, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CharcoalKilnFarfetchd, EVENT_CHARCOAL_KILN_FARFETCH_D + person_event SPRITE_BLACK_BELT, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CharcoalKilnBoss, EVENT_CHARCOAL_KILN_BOSS + person_event SPRITE_YOUNGSTER, 3, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CharcoalKilnApprentice, EVENT_CHARCOAL_KILN_APPRENTICE + person_event SPRITE_MOLTRES, 6, 5, SPRITEMOVEDATA_POKEMON, 2, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, CharcoalKilnFarfetchd, EVENT_CHARCOAL_KILN_FARFETCH_D diff --git a/maps/CherrygroveCity.asm b/maps/CherrygroveCity.asm index af98e3735..026aea8fa 100644 --- a/maps/CherrygroveCity.asm +++ b/maps/CherrygroveCity.asm @@ -570,8 +570,8 @@ CherrygroveCity_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_GRAMPS, 6, 32, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, CherrygroveCityGuideGent, EVENT_GUIDE_GENT_IN_HIS_HOUSE - person_event SPRITE_SILVER, 6, 39, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_CHERRYGROVE_CITY - person_event SPRITE_TEACHER, 12, 27, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x19c146, -1 - person_event SPRITE_YOUNGSTER, 7, 23, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x19c15a, -1 - person_event SPRITE_FISHER, 12, 7, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, MysticWaterGuy, -1 + person_event SPRITE_GRAMPS, 6, 32, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CherrygroveCityGuideGent, EVENT_GUIDE_GENT_IN_HIS_HOUSE + person_event SPRITE_SILVER, 6, 39, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_RIVAL_CHERRYGROVE_CITY + person_event SPRITE_TEACHER, 12, 27, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x19c146, -1 + person_event SPRITE_YOUNGSTER, 7, 23, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x19c15a, -1 + person_event SPRITE_FISHER, 12, 7, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, MysticWaterGuy, -1 diff --git a/maps/CherrygroveEvolutionSpeechHouse.asm b/maps/CherrygroveEvolutionSpeechHouse.asm index 8c68d57f2..e2a294d06 100644 --- a/maps/CherrygroveEvolutionSpeechHouse.asm +++ b/maps/CherrygroveEvolutionSpeechHouse.asm @@ -56,5 +56,5 @@ CherrygroveEvolutionSpeechHouse_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_LASS, 5, 3, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x196cb9, -1 - person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x196cb2, -1 + person_event SPRITE_LASS, 5, 3, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x196cb9, -1 + person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x196cb2, -1 diff --git a/maps/CherrygroveGymSpeechHouse.asm b/maps/CherrygroveGymSpeechHouse.asm index 06d3e1ee7..64c841b7e 100644 --- a/maps/CherrygroveGymSpeechHouse.asm +++ b/maps/CherrygroveGymSpeechHouse.asm @@ -59,5 +59,5 @@ CherrygroveGymSpeechHouse_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x196ae1, -1 - person_event SPRITE_BUG_CATCHER, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, BugCatcherScript_0x196ae4, -1 + person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x196ae1, -1 + person_event SPRITE_BUG_CATCHER, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x196ae4, -1 diff --git a/maps/CherrygroveMart.asm b/maps/CherrygroveMart.asm index 27ebac628..02ccb1007 100644 --- a/maps/CherrygroveMart.asm +++ b/maps/CherrygroveMart.asm @@ -83,6 +83,6 @@ CherrygroveMart_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x19680a, -1 - person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, 0, 0, CooltrainerMScript_0x19681d, -1 - person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x196831, -1 + person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x19680a, -1 + person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x19681d, -1 + person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x196831, -1 diff --git a/maps/CherrygrovePokeCenter1F.asm b/maps/CherrygrovePokeCenter1F.asm index 8da08229c..51b5c74af 100644 --- a/maps/CherrygrovePokeCenter1F.asm +++ b/maps/CherrygrovePokeCenter1F.asm @@ -80,7 +80,7 @@ CherrygrovePokeCenter1F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x19696d, -1 - person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x196970, -1 - person_event SPRITE_GENTLEMAN, 6, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x196973, -1 - person_event SPRITE_TEACHER, 6, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x196976, -1 + person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x19696d, -1 + person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x196970, -1 + person_event SPRITE_GENTLEMAN, 6, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x196973, -1 + person_event SPRITE_TEACHER, 6, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x196976, -1 diff --git a/maps/CianwoodCity.asm b/maps/CianwoodCity.asm index f2ce88737..a4986e0fa 100644 --- a/maps/CianwoodCity.asm +++ b/maps/CianwoodCity.asm @@ -401,15 +401,15 @@ CianwoodCity_MapEventHeader: .PersonEvents: db 12 - person_event SPRITE_STANDING_YOUNGSTER, 37, 21, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, StandingYoungsterScript_0x1a00b3, -1 - person_event SPRITE_POKEFAN_M, 33, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, PokefanMScript_0x1a00b6, -1 - person_event SPRITE_LASS, 42, 14, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, 0, 0, 0, LassScript_0x1a00b9, -1 - person_event SPRITE_ROCK, 16, 8, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1 - person_event SPRITE_ROCK, 17, 9, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1 - person_event SPRITE_ROCK, 25, 4, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1 - person_event SPRITE_ROCK, 29, 5, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1 - person_event SPRITE_ROCK, 27, 10, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1 - person_event SPRITE_ROCK, 19, 4, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1 - person_event SPRITE_POKEFAN_F, 46, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, PokefanFScript_0x1a0084, -1 - person_event SPRITE_SUPER_NERD, 21, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_CIANWOOD_CITY_EUSINE - person_event SPRITE_SUICUNE, 14, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY + person_event SPRITE_STANDING_YOUNGSTER, 37, 21, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, StandingYoungsterScript_0x1a00b3, -1 + person_event SPRITE_POKEFAN_M, 33, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x1a00b6, -1 + person_event SPRITE_LASS, 42, 14, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x1a00b9, -1 + person_event SPRITE_ROCK, 16, 8, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CianwoodCityRock, -1 + person_event SPRITE_ROCK, 17, 9, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CianwoodCityRock, -1 + person_event SPRITE_ROCK, 25, 4, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CianwoodCityRock, -1 + person_event SPRITE_ROCK, 29, 5, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CianwoodCityRock, -1 + person_event SPRITE_ROCK, 27, 10, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CianwoodCityRock, -1 + person_event SPRITE_ROCK, 19, 4, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CianwoodCityRock, -1 + person_event SPRITE_POKEFAN_F, 46, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x1a0084, -1 + person_event SPRITE_SUPER_NERD, 21, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_CIANWOOD_CITY_EUSINE + person_event SPRITE_SUICUNE, 14, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY diff --git a/maps/CianwoodCityPhotoStudio.asm b/maps/CianwoodCityPhotoStudio.asm index 33644d8fe..95cba4982 100644 --- a/maps/CianwoodCityPhotoStudio.asm +++ b/maps/CianwoodCityPhotoStudio.asm @@ -62,4 +62,4 @@ CianwoodCityPhotoStudio_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FishingGuruScript_0x9e0e0, -1 + person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x9e0e0, -1 diff --git a/maps/CianwoodGym.asm b/maps/CianwoodGym.asm index f1cde441e..a081cdcd8 100644 --- a/maps/CianwoodGym.asm +++ b/maps/CianwoodGym.asm @@ -313,12 +313,12 @@ CianwoodGym_MapEventHeader: .PersonEvents: db 9 - person_event SPRITE_CHUCK, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, ChuckScript_0x9d60f, -1 - person_event SPRITE_BLACK_BELT, 12, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBlackbeltYoshi, -1 - person_event SPRITE_BLACK_BELT, 12, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBlackbeltLao, -1 - person_event SPRITE_BLACK_BELT, 9, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerBlackbeltNob, -1 - person_event SPRITE_BLACK_BELT, 5, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerBlackbeltLung, -1 - person_event SPRITE_BOULDER, 1, 5, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1 - person_event SPRITE_BOULDER, 7, 3, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1 - person_event SPRITE_BOULDER, 7, 4, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1 - person_event SPRITE_BOULDER, 7, 5, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1 + person_event SPRITE_CHUCK, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, ChuckScript_0x9d60f, -1 + person_event SPRITE_BLACK_BELT, 12, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerBlackbeltYoshi, -1 + person_event SPRITE_BLACK_BELT, 12, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerBlackbeltLao, -1 + person_event SPRITE_BLACK_BELT, 9, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerBlackbeltNob, -1 + person_event SPRITE_BLACK_BELT, 5, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 1, TrainerBlackbeltLung, -1 + person_event SPRITE_BOULDER, 1, 5, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CianwoodGymBoulder, -1 + person_event SPRITE_BOULDER, 7, 3, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CianwoodGymBoulder, -1 + person_event SPRITE_BOULDER, 7, 4, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CianwoodGymBoulder, -1 + person_event SPRITE_BOULDER, 7, 5, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CianwoodGymBoulder, -1 diff --git a/maps/CianwoodLugiaSpeechHouse.asm b/maps/CianwoodLugiaSpeechHouse.asm index 503fafd6e..ac19a402e 100644 --- a/maps/CianwoodLugiaSpeechHouse.asm +++ b/maps/CianwoodLugiaSpeechHouse.asm @@ -75,6 +75,6 @@ CianwoodLugiaSpeechHouse_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_TEACHER, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x9e1b0, -1 - person_event SPRITE_LASS, 5, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x9e1b3, -1 - person_event SPRITE_TWIN, 2, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TwinScript_0x9e1b6, -1 + person_event SPRITE_TEACHER, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x9e1b0, -1 + person_event SPRITE_LASS, 5, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x9e1b3, -1 + person_event SPRITE_TWIN, 2, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TwinScript_0x9e1b6, -1 diff --git a/maps/CianwoodPharmacy.asm b/maps/CianwoodPharmacy.asm index f9e776d38..528789583 100644 --- a/maps/CianwoodPharmacy.asm +++ b/maps/CianwoodPharmacy.asm @@ -90,4 +90,4 @@ CianwoodPharmacy_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_PHARMACIST, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CianwoodPharmacist, -1 + person_event SPRITE_PHARMACIST, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CianwoodPharmacist, -1 diff --git a/maps/CianwoodPokeCenter1F.asm b/maps/CianwoodPokeCenter1F.asm index c8553fac2..4969a507a 100644 --- a/maps/CianwoodPokeCenter1F.asm +++ b/maps/CianwoodPokeCenter1F.asm @@ -143,7 +143,7 @@ CianwoodPokeCenter1F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x9dbcf, -1 - person_event SPRITE_LASS, 5, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x9dbd2, -1 - person_event SPRITE_GYM_GUY, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CianwoodGymGuyScript, -1 - person_event SPRITE_SUPER_NERD, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x9dbea, -1 + person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x9dbcf, -1 + person_event SPRITE_LASS, 5, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x9dbd2, -1 + person_event SPRITE_GYM_GUY, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CianwoodGymGuyScript, -1 + person_event SPRITE_SUPER_NERD, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x9dbea, -1 diff --git a/maps/CinnabarIsland.asm b/maps/CinnabarIsland.asm index fa39a5ba5..77c1ae2f2 100644 --- a/maps/CinnabarIsland.asm +++ b/maps/CinnabarIsland.asm @@ -146,4 +146,4 @@ CinnabarIsland_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_BLUE, 6, 9, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, CinnabarIslandBlue, EVENT_BLUE_IN_CINNABAR + person_event SPRITE_BLUE, 6, 9, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CinnabarIslandBlue, EVENT_BLUE_IN_CINNABAR diff --git a/maps/CinnabarPokeCenter1F.asm b/maps/CinnabarPokeCenter1F.asm index 68c2e579f..d42451dc1 100644 --- a/maps/CinnabarPokeCenter1F.asm +++ b/maps/CinnabarPokeCenter1F.asm @@ -47,6 +47,6 @@ CinnabarPokeCenter1F_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x1ab32c, -1 - person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerFScript_0x1ab32f, -1 - person_event SPRITE_FISHER, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1ab332, -1 + person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x1ab32c, -1 + person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x1ab32f, -1 + person_event SPRITE_FISHER, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x1ab332, -1 diff --git a/maps/Colosseum.asm b/maps/Colosseum.asm index 4e9db3be0..3c1e597b2 100644 --- a/maps/Colosseum.asm +++ b/maps/Colosseum.asm @@ -83,5 +83,5 @@ Colosseum_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_CHRIS, 4, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ChrisScript_0x193499, EVENT_GAVE_KURT_APRICORNS - person_event SPRITE_CHRIS, 4, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ChrisScript_0x193499, EVENT_RECEIVED_BALLS_FROM_KURT + person_event SPRITE_CHRIS, 4, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ChrisScript_0x193499, EVENT_GAVE_KURT_APRICORNS + person_event SPRITE_CHRIS, 4, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ChrisScript_0x193499, EVENT_RECEIVED_BALLS_FROM_KURT diff --git a/maps/CopycatsHouse1F.asm b/maps/CopycatsHouse1F.asm index 1e4cce6d3..34a8dea5b 100644 --- a/maps/CopycatsHouse1F.asm +++ b/maps/CopycatsHouse1F.asm @@ -85,6 +85,6 @@ CopycatsHouse1F_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x18ad13, -1 - person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, PokefanFScript_0x18ad16, -1 - person_event SPRITE_CLEFAIRY, 6, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, ClefairyScript_0x18ad2a, -1 + person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x18ad13, -1 + person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x18ad16, -1 + person_event SPRITE_CLEFAIRY, 6, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClefairyScript_0x18ad2a, -1 diff --git a/maps/CopycatsHouse2F.asm b/maps/CopycatsHouse2F.asm index 255b606e4..fe41d7a3d 100644 --- a/maps/CopycatsHouse2F.asm +++ b/maps/CopycatsHouse2F.asm @@ -373,9 +373,9 @@ CopycatsHouse2F_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_COPYCAT, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, Copycat, EVENT_COPYCAT_1 - person_event SPRITE_MOLTRES, 4, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CopycatsDodrio, -1 - person_event SPRITE_FAIRY, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CopycatsHouse2FDoll, EVENT_COPYCATS_HOUSE_2F_DOLL - person_event SPRITE_MONSTER, 1, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CopycatsHouse2FDoll, -1 - person_event SPRITE_BIRD, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CopycatsHouse2FDoll, -1 - person_event SPRITE_COPYCAT, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, Copycat, EVENT_COPYCAT_2 + person_event SPRITE_COPYCAT, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, Copycat, EVENT_COPYCAT_1 + person_event SPRITE_MOLTRES, 4, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, CopycatsDodrio, -1 + person_event SPRITE_FAIRY, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CopycatsHouse2FDoll, EVENT_COPYCATS_HOUSE_2F_DOLL + person_event SPRITE_MONSTER, 1, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CopycatsHouse2FDoll, -1 + person_event SPRITE_BIRD, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, CopycatsHouse2FDoll, -1 + person_event SPRITE_COPYCAT, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, Copycat, EVENT_COPYCAT_2 diff --git a/maps/DanceTheatre.asm b/maps/DanceTheatre.asm index bf852a2e5..40b48da85 100644 --- a/maps/DanceTheatre.asm +++ b/maps/DanceTheatre.asm @@ -345,12 +345,12 @@ DanceTheatre_MapEventHeader: .PersonEvents: db 9 - person_event SPRITE_KIMONO_GIRL, 2, 0, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 0, TrainerKimono_girlNaoko2, -1 - person_event SPRITE_KIMONO_GIRL, 1, 2, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 0, TrainerKimono_girlSayo, -1 - person_event SPRITE_KIMONO_GIRL, 2, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 0, TrainerKimono_girlZuki, -1 - person_event SPRITE_KIMONO_GIRL, 1, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 0, TrainerKimono_girlKuni, -1 - person_event SPRITE_KIMONO_GIRL, 2, 11, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 0, TrainerKimono_girlMiki, -1 - person_event SPRITE_GENTLEMAN, 10, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x994c6, -1 - person_event SPRITE_RHYDON, 8, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, RhydonScript_0x9951b, -1 - person_event SPRITE_COOLTRAINER_M, 10, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x99525, -1 - person_event SPRITE_GRANNY, 6, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x99528, -1 + person_event SPRITE_KIMONO_GIRL, 2, 0, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 0, TrainerKimono_girlNaoko2, -1 + person_event SPRITE_KIMONO_GIRL, 1, 2, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 0, TrainerKimono_girlSayo, -1 + person_event SPRITE_KIMONO_GIRL, 2, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 0, TrainerKimono_girlZuki, -1 + person_event SPRITE_KIMONO_GIRL, 1, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 0, TrainerKimono_girlKuni, -1 + person_event SPRITE_KIMONO_GIRL, 2, 11, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 0, TrainerKimono_girlMiki, -1 + person_event SPRITE_GENTLEMAN, 10, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x994c6, -1 + person_event SPRITE_RHYDON, 8, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, RhydonScript_0x9951b, -1 + person_event SPRITE_COOLTRAINER_M, 10, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x99525, -1 + person_event SPRITE_GRANNY, 6, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x99528, -1 diff --git a/maps/DarkCaveBlackthornEntrance.asm b/maps/DarkCaveBlackthornEntrance.asm index 5f06e6b88..88fa67028 100644 --- a/maps/DarkCaveBlackthornEntrance.asm +++ b/maps/DarkCaveBlackthornEntrance.asm @@ -73,6 +73,6 @@ DarkCaveBlackthornEntrance_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_PHARMACIST, 3, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, PharmacistScript_0x18c720, -1 - person_event SPRITE_POKE_BALL, 24, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c73b, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_REVIVE - person_event SPRITE_POKE_BALL, 22, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c73d, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_TM_SNORE + person_event SPRITE_PHARMACIST, 3, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PharmacistScript_0x18c720, -1 + person_event SPRITE_POKE_BALL, 24, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c73b, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_REVIVE + person_event SPRITE_POKE_BALL, 22, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c73d, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_TM_SNORE diff --git a/maps/DarkCaveVioletEntrance.asm b/maps/DarkCaveVioletEntrance.asm index 71c1be49a..c8629f558 100644 --- a/maps/DarkCaveVioletEntrance.asm +++ b/maps/DarkCaveVioletEntrance.asm @@ -43,11 +43,11 @@ DarkCaveVioletEntrance_MapEventHeader: .PersonEvents: db 8 - person_event SPRITE_POKE_BALL, 8, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c68e, EVENT_DARK_CAVE_VIOLET_ENTRANCE_POTION - person_event SPRITE_ROCK, 14, 16, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1 - person_event SPRITE_ROCK, 6, 27, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1 - person_event SPRITE_ROCK, 14, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1 - person_event SPRITE_ROCK, 31, 36, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1 - person_event SPRITE_POKE_BALL, 22, 36, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c690, EVENT_DARK_CAVE_VIOLET_ENTRANCE_FULL_HEAL - person_event SPRITE_POKE_BALL, 9, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c692, EVENT_DARK_CAVE_VIOLET_ENTRANCE_HYPER_POTION - person_event SPRITE_POKE_BALL, 28, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c694, EVENT_DARK_CAVE_VIOLET_ENTRANCE_DIRE_HIT + person_event SPRITE_POKE_BALL, 8, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c68e, EVENT_DARK_CAVE_VIOLET_ENTRANCE_POTION + person_event SPRITE_ROCK, 14, 16, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DarkCaveVioletEntranceRock, -1 + person_event SPRITE_ROCK, 6, 27, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DarkCaveVioletEntranceRock, -1 + person_event SPRITE_ROCK, 14, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DarkCaveVioletEntranceRock, -1 + person_event SPRITE_ROCK, 31, 36, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DarkCaveVioletEntranceRock, -1 + person_event SPRITE_POKE_BALL, 22, 36, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c690, EVENT_DARK_CAVE_VIOLET_ENTRANCE_FULL_HEAL + person_event SPRITE_POKE_BALL, 9, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c692, EVENT_DARK_CAVE_VIOLET_ENTRANCE_HYPER_POTION + person_event SPRITE_POKE_BALL, 28, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c694, EVENT_DARK_CAVE_VIOLET_ENTRANCE_DIRE_HIT diff --git a/maps/DayCare.asm b/maps/DayCare.asm index 8a405aed4..5c2ec8c56 100644 --- a/maps/DayCare.asm +++ b/maps/DayCare.asm @@ -175,5 +175,5 @@ DayCare_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x62f8f, EVENT_DAYCARE_MAN_IN_DAYCARE - person_event SPRITE_GRANNY, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GrannyScript_0x62fc3, -1 + person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x62f8f, EVENT_DAYCARE_MAN_IN_DAYCARE + person_event SPRITE_GRANNY, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GrannyScript_0x62fc3, -1 diff --git a/maps/DiglettsCave.asm b/maps/DiglettsCave.asm index bbbba9286..222330d3c 100644 --- a/maps/DiglettsCave.asm +++ b/maps/DiglettsCave.asm @@ -42,4 +42,4 @@ DiglettsCave_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKEFAN_M, 31, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x74002, -1 + person_event SPRITE_POKEFAN_M, 31, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x74002, -1 diff --git a/maps/DragonShrine.asm b/maps/DragonShrine.asm index 3a46472e4..67d365378 100644 --- a/maps/DragonShrine.asm +++ b/maps/DragonShrine.asm @@ -681,7 +681,7 @@ DragonShrine_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_ELDER, 1, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ElderScript_0x18d1a5, EVENT_GAVE_KURT_APRICORNS - person_event SPRITE_ELDER, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ElderScript_0x18d205, EVENT_GAVE_KURT_APRICORNS - person_event SPRITE_ELDER, 4, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ElderScript_0x18d20d, EVENT_GAVE_KURT_APRICORNS - person_event SPRITE_CLAIR, 8, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_DRAGON_SHRINE_CLAIR + person_event SPRITE_ELDER, 1, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ElderScript_0x18d1a5, EVENT_GAVE_KURT_APRICORNS + person_event SPRITE_ELDER, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ElderScript_0x18d205, EVENT_GAVE_KURT_APRICORNS + person_event SPRITE_ELDER, 4, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ElderScript_0x18d20d, EVENT_GAVE_KURT_APRICORNS + person_event SPRITE_CLAIR, 8, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_DRAGON_SHRINE_CLAIR diff --git a/maps/DragonsDenB1F.asm b/maps/DragonsDenB1F.asm index 62a506089..96b735cd2 100644 --- a/maps/DragonsDenB1F.asm +++ b/maps/DragonsDenB1F.asm @@ -419,12 +419,12 @@ DragonsDenB1F_MapEventHeader: .PersonEvents: db 9 - person_event SPRITE_POKE_BALL, 16, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, PokeBallScript_0x18c95a, EVENT_DRAGONS_DEN_B1F_DRAGON_FANG - person_event SPRITE_CLAIR, 30, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_DRAGONS_DEN_CLAIR - person_event SPRITE_SILVER, 23, 20, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, SilverScript_0x18c97e, EVENT_RIVAL_DRAGONS_DEN - person_event SPRITE_COOLTRAINER_M, 8, 20, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerCooltrainermDarin, -1 - person_event SPRITE_COOLTRAINER_F, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfCara, -1 - person_event SPRITE_TWIN, 17, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsLeaandpia1, -1 - person_event SPRITE_TWIN, 18, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsLeaandpia2, -1 - person_event SPRITE_POKE_BALL, 4, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c9a1, EVENT_DRAGONS_DEN_B1F_CALCIUM - person_event SPRITE_POKE_BALL, 20, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c9a3, EVENT_DRAGONS_DEN_B1F_MAX_ELIXER + person_event SPRITE_POKE_BALL, 16, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokeBallScript_0x18c95a, EVENT_DRAGONS_DEN_B1F_DRAGON_FANG + person_event SPRITE_CLAIR, 30, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_DRAGONS_DEN_CLAIR + person_event SPRITE_SILVER, 23, 20, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SilverScript_0x18c97e, EVENT_RIVAL_DRAGONS_DEN + person_event SPRITE_COOLTRAINER_M, 8, 20, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerCooltrainermDarin, -1 + person_event SPRITE_COOLTRAINER_F, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerCooltrainerfCara, -1 + person_event SPRITE_TWIN, 17, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerTwinsLeaandpia1, -1 + person_event SPRITE_TWIN, 18, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerTwinsLeaandpia2, -1 + person_event SPRITE_POKE_BALL, 4, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c9a1, EVENT_DRAGONS_DEN_B1F_CALCIUM + person_event SPRITE_POKE_BALL, 20, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c9a3, EVENT_DRAGONS_DEN_B1F_MAX_ELIXER diff --git a/maps/EarlsPokemonAcademy.asm b/maps/EarlsPokemonAcademy.asm index 8a00ae5be..64b541994 100644 --- a/maps/EarlsPokemonAcademy.asm +++ b/maps/EarlsPokemonAcademy.asm @@ -425,9 +425,9 @@ EarlsPokemonAcademy_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_FISHER, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, AcademyEarl, EVENT_EARLS_ACADEMY_EARL - person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x68a83, -1 - person_event SPRITE_GAMEBOY_KID, 11, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, GameboyKidScript_0x68a86, -1 - person_event SPRITE_GAMEBOY_KID, 11, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GameboyKidScript_0x68a91, -1 - person_event SPRITE_YOUNGSTER, 7, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, YoungsterScript_0x68a9c, -1 - person_event SPRITE_POKEDEX, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, AcademyNotebook, -1 + person_event SPRITE_FISHER, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, AcademyEarl, EVENT_EARLS_ACADEMY_EARL + person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x68a83, -1 + person_event SPRITE_GAMEBOY_KID, 11, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x68a86, -1 + person_event SPRITE_GAMEBOY_KID, 11, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x68a91, -1 + person_event SPRITE_YOUNGSTER, 7, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x68a9c, -1 + person_event SPRITE_POKEDEX, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, AcademyNotebook, -1 diff --git a/maps/EcruteakCity.asm b/maps/EcruteakCity.asm index 4c8408dcc..fc2d407a7 100644 --- a/maps/EcruteakCity.asm +++ b/maps/EcruteakCity.asm @@ -290,10 +290,10 @@ EcruteakCity_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_GRAMPS, 15, 18, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, GrampsScript_0x1a4009, -1 - person_event SPRITE_GRAMPS, 21, 20, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x1a400c, -1 - person_event SPRITE_LASS, 29, 21, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LassScript_0x1a4012, -1 - person_event SPRITE_LASS, 9, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, LassScript_0x1a4015, -1 - person_event SPRITE_FISHER, 22, 9, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1a4029, -1 - person_event SPRITE_YOUNGSTER, 14, 10, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x1a403d, -1 - person_event SPRITE_GRAMPS, 7, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GrampsScript_0x1a400f, EVENT_ECRUTEAK_CITY_GRAMPS + person_event SPRITE_GRAMPS, 15, 18, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a4009, -1 + person_event SPRITE_GRAMPS, 21, 20, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a400c, -1 + person_event SPRITE_LASS, 29, 21, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, LassScript_0x1a4012, -1 + person_event SPRITE_LASS, 9, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x1a4015, -1 + person_event SPRITE_FISHER, 22, 9, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x1a4029, -1 + person_event SPRITE_YOUNGSTER, 14, 10, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a403d, -1 + person_event SPRITE_GRAMPS, 7, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a400f, EVENT_ECRUTEAK_CITY_GRAMPS diff --git a/maps/EcruteakGym.asm b/maps/EcruteakGym.asm index caf60826f..f3e136c9d 100644 --- a/maps/EcruteakGym.asm +++ b/maps/EcruteakGym.asm @@ -429,10 +429,10 @@ EcruteakGym_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_MORTY, 1, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MortyScript_0x99d58, -1 - person_event SPRITE_SAGE, 7, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSageJeffrey, -1 - person_event SPRITE_SAGE, 13, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSagePing, -1 - person_event SPRITE_GRANNY, 5, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerMediumMartha, -1 - person_event SPRITE_GRANNY, 9, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerMediumGrace, -1 - person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, EcruteakGymGuyScript, -1 - person_event SPRITE_GRAMPS, 14, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ObjectEvent, EVENT_ECRUTEAK_GYM_GRAMPS + person_event SPRITE_MORTY, 1, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, MortyScript_0x99d58, -1 + person_event SPRITE_SAGE, 7, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerSageJeffrey, -1 + person_event SPRITE_SAGE, 13, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSagePing, -1 + person_event SPRITE_GRANNY, 5, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 1, TrainerMediumMartha, -1 + person_event SPRITE_GRANNY, 9, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 1, TrainerMediumGrace, -1 + person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, EcruteakGymGuyScript, -1 + person_event SPRITE_GRAMPS, 14, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_ECRUTEAK_GYM_GRAMPS diff --git a/maps/EcruteakHouse.asm b/maps/EcruteakHouse.asm index 724cf79a9..5719e14bc 100644 --- a/maps/EcruteakHouse.asm +++ b/maps/EcruteakHouse.asm @@ -298,7 +298,7 @@ EcruteakHouse_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_SAGE, 6, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, SageScript_0x98062, EVENT_RANG_CLEAR_BELL_1 - person_event SPRITE_SAGE, 6, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, SageScript_0x98062, EVENT_RANG_CLEAR_BELL_2 - person_event SPRITE_SAGE, 9, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, SageScript_0x980b0, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE - person_event SPRITE_GRAMPS, 11, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, GrampsScript_0x980c4, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE + person_event SPRITE_SAGE, 6, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x98062, EVENT_RANG_CLEAR_BELL_1 + person_event SPRITE_SAGE, 6, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x98062, EVENT_RANG_CLEAR_BELL_2 + person_event SPRITE_SAGE, 9, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x980b0, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE + person_event SPRITE_GRAMPS, 11, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x980c4, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE diff --git a/maps/EcruteakItemfinderHouse.asm b/maps/EcruteakItemfinderHouse.asm index 1be31c113..a6e2c872f 100644 --- a/maps/EcruteakItemfinderHouse.asm +++ b/maps/EcruteakItemfinderHouse.asm @@ -176,5 +176,5 @@ EcruteakItemfinderHouse_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_COOLTRAINER_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x9a5fb, -1 - person_event SPRITE_POKEDEX, 3, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, PokedexScript_0x9a620, -1 + person_event SPRITE_COOLTRAINER_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x9a5fb, -1 + person_event SPRITE_POKEDEX, 3, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokedexScript_0x9a620, -1 diff --git a/maps/EcruteakLugiaSpeechHouse.asm b/maps/EcruteakLugiaSpeechHouse.asm index 15454ce94..f200a2ed4 100644 --- a/maps/EcruteakLugiaSpeechHouse.asm +++ b/maps/EcruteakLugiaSpeechHouse.asm @@ -58,5 +58,5 @@ EcruteakLugiaSpeechHouse_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x99334, -1 - person_event SPRITE_YOUNGSTER, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, YoungsterScript_0x99337, -1 + person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x99334, -1 + person_event SPRITE_YOUNGSTER, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x99337, -1 diff --git a/maps/EcruteakMart.asm b/maps/EcruteakMart.asm index aaf021af9..d10ee827a 100644 --- a/maps/EcruteakMart.asm +++ b/maps/EcruteakMart.asm @@ -57,6 +57,6 @@ EcruteakMart_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x99c3b, -1 - person_event SPRITE_SUPER_NERD, 2, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x99c42, -1 - person_event SPRITE_GRANNY, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x99c45, -1 + person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x99c3b, -1 + person_event SPRITE_SUPER_NERD, 2, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x99c42, -1 + person_event SPRITE_GRANNY, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x99c45, -1 diff --git a/maps/EcruteakPokeCenter1F.asm b/maps/EcruteakPokeCenter1F.asm index 16fde129e..12858558d 100644 --- a/maps/EcruteakPokeCenter1F.asm +++ b/maps/EcruteakPokeCenter1F.asm @@ -219,8 +219,8 @@ EcruteakPokeCenter1F_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x98eb0, -1 - person_event SPRITE_POKEFAN_M, 6, 7, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x98eb3, -1 - person_event SPRITE_COOLTRAINER_F, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x98ebf, -1 - person_event SPRITE_GYM_GUY, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GymGuyScript_0x98ec2, -1 - person_event SPRITE_BILL, 7, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_ECRUTEAK_POKE_CENTER_BILL + person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x98eb0, -1 + person_event SPRITE_POKEFAN_M, 6, 7, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x98eb3, -1 + person_event SPRITE_COOLTRAINER_F, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x98ebf, -1 + person_event SPRITE_GYM_GUY, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x98ec2, -1 + person_event SPRITE_BILL, 7, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_ECRUTEAK_POKE_CENTER_BILL diff --git a/maps/ElmsHouse.asm b/maps/ElmsHouse.asm index 1c303a5f7..9672611e8 100644 --- a/maps/ElmsHouse.asm +++ b/maps/ElmsHouse.asm @@ -99,5 +99,5 @@ ElmsHouse_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_TEACHER, 5, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ElmsWife, -1 - person_event SPRITE_BUG_CATCHER, 4, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ElmsSon, -1 + person_event SPRITE_TEACHER, 5, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ElmsWife, -1 + person_event SPRITE_BUG_CATCHER, 4, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ElmsSon, -1 diff --git a/maps/ElmsLab.asm b/maps/ElmsLab.asm index 33e954102..af3545944 100644 --- a/maps/ElmsLab.asm +++ b/maps/ElmsLab.asm @@ -1408,9 +1408,9 @@ ElmsLab_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_ELM, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ProfElmScript, -1 - person_event SPRITE_SCIENTIST, 9, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ElmsAideScript, EVENT_ELMS_AIDE_IN_LAB - person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, CyndaquilPokeBallScript, EVENT_CYNDAQUIL_POKEBALL_IN_ELMS_LAB - person_event SPRITE_POKE_BALL, 3, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, TotodilePokeBallScript, EVENT_TOTODILE_POKEBALL_IN_ELMS_LAB - person_event SPRITE_POKE_BALL, 3, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, ChikoritaPokeBallScript, EVENT_CHIKORITA_POKEBALL_IN_ELMS_LAB - person_event SPRITE_OFFICER, 3, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CopScript, EVENT_COP_IN_ELMS_LAB + person_event SPRITE_ELM, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ProfElmScript, -1 + person_event SPRITE_SCIENTIST, 9, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ElmsAideScript, EVENT_ELMS_AIDE_IN_LAB + person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CyndaquilPokeBallScript, EVENT_CYNDAQUIL_POKEBALL_IN_ELMS_LAB + person_event SPRITE_POKE_BALL, 3, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TotodilePokeBallScript, EVENT_TOTODILE_POKEBALL_IN_ELMS_LAB + person_event SPRITE_POKE_BALL, 3, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ChikoritaPokeBallScript, EVENT_CHIKORITA_POKEBALL_IN_ELMS_LAB + person_event SPRITE_OFFICER, 3, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, CopScript, EVENT_COP_IN_ELMS_LAB diff --git a/maps/FastShip1F.asm b/maps/FastShip1F.asm index bf7ff442b..209813653 100644 --- a/maps/FastShip1F.asm +++ b/maps/FastShip1F.asm @@ -310,7 +310,7 @@ FastShip1F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_SAILOR, 2, 25, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x75160, -1 - person_event SPRITE_SAILOR, 7, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x751d0, -1 - person_event SPRITE_SAILOR, 17, 22, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, 0, 0, SailorScript_0x751e4, -1 - person_event SPRITE_GENTLEMAN, 6, 19, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_FAST_SHIP_1F_GENTLEMAN + person_event SPRITE_SAILOR, 2, 25, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x75160, -1 + person_event SPRITE_SAILOR, 7, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x751d0, -1 + person_event SPRITE_SAILOR, 17, 22, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x751e4, -1 + person_event SPRITE_GENTLEMAN, 6, 19, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_FAST_SHIP_1F_GENTLEMAN diff --git a/maps/FastShipB1F.asm b/maps/FastShipB1F.asm index 145f890d4..7634bd7f2 100644 --- a/maps/FastShipB1F.asm +++ b/maps/FastShipB1F.asm @@ -456,15 +456,15 @@ FastShipB1F_MapEventHeader: .PersonEvents: db 12 - person_event SPRITE_SAILOR, 6, 30, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SailorScript_0x76767, EVENT_FAST_SHIP_B1F_SAILOR_LEFT - person_event SPRITE_SAILOR, 6, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SailorScript_0x76767, EVENT_FAST_SHIP_B1F_SAILOR_RIGHT - person_event SPRITE_SAILOR, 11, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSailorJeff, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP - person_event SPRITE_LASS, 4, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerPicnickerDebra, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP - person_event SPRITE_SUPER_NERD, 9, 26, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerJugglerFritz, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP - person_event SPRITE_SAILOR, 4, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSailorGarrett, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND - person_event SPRITE_FISHER, 8, 25, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerFisherJonah, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND - person_event SPRITE_BLACK_BELT, 11, 15, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBlackbeltWai, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND - person_event SPRITE_SAILOR, 4, 23, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSailorKenneth, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND - person_event SPRITE_TEACHER, 11, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerTeacherShirley, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND - person_event SPRITE_YOUNGSTER, 9, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSchoolboyNate, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND - person_event SPRITE_YOUNGSTER, 11, 14, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSchoolboyRicky, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND + person_event SPRITE_SAILOR, 6, 30, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SailorScript_0x76767, EVENT_FAST_SHIP_B1F_SAILOR_LEFT + person_event SPRITE_SAILOR, 6, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SailorScript_0x76767, EVENT_FAST_SHIP_B1F_SAILOR_RIGHT + person_event SPRITE_SAILOR, 11, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSailorJeff, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP + person_event SPRITE_LASS, 4, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerPicnickerDebra, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP + person_event SPRITE_SUPER_NERD, 9, 26, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerJugglerFritz, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP + person_event SPRITE_SAILOR, 4, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerSailorGarrett, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND + person_event SPRITE_FISHER, 8, 25, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerFisherJonah, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND + person_event SPRITE_BLACK_BELT, 11, 15, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerBlackbeltWai, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND + person_event SPRITE_SAILOR, 4, 23, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerSailorKenneth, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND + person_event SPRITE_TEACHER, 11, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerTeacherShirley, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND + person_event SPRITE_YOUNGSTER, 9, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerSchoolboyNate, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND + person_event SPRITE_YOUNGSTER, 11, 14, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerSchoolboyRicky, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND diff --git a/maps/FastShipCabins_NNW_NNE_NE.asm b/maps/FastShipCabins_NNW_NNE_NE.asm index f0c972aba..d7f50a3b1 100644 --- a/maps/FastShipCabins_NNW_NNE_NE.asm +++ b/maps/FastShipCabins_NNW_NNE_NE.asm @@ -278,10 +278,10 @@ FastShipCabins_NNW_NNE_NE_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_COOLTRAINER_M, 3, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainermSean, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND - person_event SPRITE_COOLTRAINER_F, 5, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfCarol, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND - person_event SPRITE_SUPER_NERD, 5, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacEthan, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND - person_event SPRITE_POKEFAN_M, 17, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerNoland, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP - person_event SPRITE_SAILOR, 26, 4, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SailorScript_0x755f1, EVENT_FAST_SHIP_CABINS_NNW_NNE_NE_SAILOR - person_event SPRITE_GENTLEMAN, 30, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerGentlemanEdward, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND - person_event SPRITE_PHARMACIST, 30, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerBurglarCorey, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND + person_event SPRITE_COOLTRAINER_M, 3, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 2, TrainerCooltrainermSean, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND + person_event SPRITE_COOLTRAINER_F, 5, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerCooltrainerfCarol, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND + person_event SPRITE_SUPER_NERD, 5, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPokemaniacEthan, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND + person_event SPRITE_POKEFAN_M, 17, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerHikerNoland, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP + person_event SPRITE_SAILOR, 26, 4, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SailorScript_0x755f1, EVENT_FAST_SHIP_CABINS_NNW_NNE_NE_SAILOR + person_event SPRITE_GENTLEMAN, 30, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerGentlemanEdward, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND + person_event SPRITE_PHARMACIST, 30, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 4, TrainerBurglarCorey, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND diff --git a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm index 3c823caaf..70759c740 100644 --- a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm +++ b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm @@ -471,14 +471,14 @@ FastShipCabins_SE_SSE_CaptainsCabin_MapEventHeader: .PersonEvents: db 11 - person_event SPRITE_CAPTAIN, 25, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CaptainScript_0x75ea7, -1 - person_event SPRITE_GENTLEMAN, 17, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GentlemanScript_0x75f1f, EVENT_FAST_SHIP_CABINS_SE_SSE_GENTLEMAN - person_event SPRITE_TWIN, 17, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, 0, 0, TwinScript_0x75f6d, EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_1 - person_event SPRITE_TWIN, 25, 2, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, 0, 0, TwinScript_0x75ebb, EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_2 - person_event SPRITE_POKEFAN_M, 6, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 5, TrainerPokefanmColin, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP - person_event SPRITE_TWIN, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsMegandpeg1, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP - person_event SPRITE_TWIN, 4, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsMegandpeg2, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP - person_event SPRITE_SUPER_NERD, 5, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 5, TrainerPsychicRodney, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND - person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmJeremy, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND - person_event SPRITE_POKEFAN_F, 5, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerPokefanfGeorgia, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND - person_event SPRITE_SUPER_NERD, 15, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerSupernerdShawn, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND + person_event SPRITE_CAPTAIN, 25, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, CaptainScript_0x75ea7, -1 + person_event SPRITE_GENTLEMAN, 17, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x75f1f, EVENT_FAST_SHIP_CABINS_SE_SSE_GENTLEMAN + person_event SPRITE_TWIN, 17, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TwinScript_0x75f6d, EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_1 + person_event SPRITE_TWIN, 25, 2, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TwinScript_0x75ebb, EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_2 + person_event SPRITE_POKEFAN_M, 6, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 5, TrainerPokefanmColin, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP + person_event SPRITE_TWIN, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerTwinsMegandpeg1, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP + person_event SPRITE_TWIN, 4, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerTwinsMegandpeg2, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP + person_event SPRITE_SUPER_NERD, 5, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 5, TrainerPsychicRodney, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND + person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerPokefanmJeremy, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND + person_event SPRITE_POKEFAN_F, 5, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerPokefanfGeorgia, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND + person_event SPRITE_SUPER_NERD, 15, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerSupernerdShawn, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND diff --git a/maps/FastShipCabins_SW_SSW_NW.asm b/maps/FastShipCabins_SW_SSW_NW.asm index 7a0b5d3a6..6161d4287 100644 --- a/maps/FastShipCabins_SW_SSW_NW.asm +++ b/maps/FastShipCabins_SW_SSW_NW.asm @@ -239,7 +239,7 @@ FastShipCabins_SW_SSW_NW_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_FISHER, 15, 1, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerFirebreatherLyle, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP - person_event SPRITE_BUG_CATCHER, 15, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerBug_catcherKen, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND - person_event SPRITE_BUENA, 26, 1, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBeautyCassie, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND - person_event SPRITE_ROCKER, 28, 3, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerGuitaristClyde, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND + person_event SPRITE_FISHER, 15, 1, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 2, TrainerFirebreatherLyle, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP + person_event SPRITE_BUG_CATCHER, 15, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerBug_catcherKen, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND + person_event SPRITE_BUENA, 26, 1, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBeautyCassie, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND + person_event SPRITE_ROCKER, 28, 3, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 2, TrainerGuitaristClyde, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND diff --git a/maps/FightingDojo.asm b/maps/FightingDojo.asm index e8c91b9d9..cc7f38889 100644 --- a/maps/FightingDojo.asm +++ b/maps/FightingDojo.asm @@ -57,5 +57,5 @@ FightingDojo_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_BLACK_BELT, 4, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, BlackBeltScript_0x189b61, -1 - person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x189b6a, EVENT_PICKED_UP_FOCUS_BAND + person_event SPRITE_BLACK_BELT, 4, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x189b61, -1 + person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x189b6a, EVENT_PICKED_UP_FOCUS_BAND diff --git a/maps/FuchsiaBillSpeechHouse.asm b/maps/FuchsiaBillSpeechHouse.asm index 3cfe24411..b95469107 100644 --- a/maps/FuchsiaBillSpeechHouse.asm +++ b/maps/FuchsiaBillSpeechHouse.asm @@ -40,5 +40,5 @@ FuchsiaBillSpeechHouse_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanFScript_0x1963bd, -1 - person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, YoungsterScript_0x1963c0, -1 + person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x1963bd, -1 + person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1963c0, -1 diff --git a/maps/FuchsiaCity.asm b/maps/FuchsiaCity.asm index a2fdd770a..bd42f0fc3 100644 --- a/maps/FuchsiaCity.asm +++ b/maps/FuchsiaCity.asm @@ -154,7 +154,7 @@ FuchsiaCity_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_YOUNGSTER, 18, 23, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x194b22, -1 - person_event SPRITE_POKEFAN_M, 8, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x194b25, -1 - person_event SPRITE_TEACHER, 14, 16, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, TeacherScript_0x194b28, -1 - person_event SPRITE_FRUIT_TREE, 1, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x194b43, -1 + person_event SPRITE_YOUNGSTER, 18, 23, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x194b22, -1 + person_event SPRITE_POKEFAN_M, 8, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x194b25, -1 + person_event SPRITE_TEACHER, 14, 16, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, TeacherScript_0x194b28, -1 + person_event SPRITE_FRUIT_TREE, 1, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x194b43, -1 diff --git a/maps/FuchsiaGym.asm b/maps/FuchsiaGym.asm index e28079fec..d5a739898 100644 --- a/maps/FuchsiaGym.asm +++ b/maps/FuchsiaGym.asm @@ -391,9 +391,9 @@ FuchsiaGym_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_JANINE, 10, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, JanineScript_0x195db9, -1 - person_event SPRITE_FUCHSIA_GYM_1, 7, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym1Script_0x195e1b, -1 - person_event SPRITE_FUCHSIA_GYM_2, 11, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym2Script_0x195e55, -1 - person_event SPRITE_FUCHSIA_GYM_3, 4, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym3Script_0x195e8f, -1 - person_event SPRITE_FUCHSIA_GYM_4, 2, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym4Script_0x195ec9, -1 - person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuchsiaGymGuyScript, -1 + person_event SPRITE_JANINE, 10, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, JanineScript_0x195db9, -1 + person_event SPRITE_FUCHSIA_GYM_1, 7, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, FuschiaGym1Script_0x195e1b, -1 + person_event SPRITE_FUCHSIA_GYM_2, 11, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, FuschiaGym2Script_0x195e55, -1 + person_event SPRITE_FUCHSIA_GYM_3, 4, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, FuschiaGym3Script_0x195e8f, -1 + person_event SPRITE_FUCHSIA_GYM_4, 2, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, FuschiaGym4Script_0x195ec9, -1 + person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, FuchsiaGymGuyScript, -1 diff --git a/maps/FuchsiaMart.asm b/maps/FuchsiaMart.asm index 143c91575..ee32abccb 100644 --- a/maps/FuchsiaMart.asm +++ b/maps/FuchsiaMart.asm @@ -49,6 +49,6 @@ FuchsiaMart_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x195ce8, -1 - person_event SPRITE_FISHER, 2, 3, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x195cef, -1 - person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x195cf2, -1 + person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x195ce8, -1 + person_event SPRITE_FISHER, 2, 3, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x195cef, -1 + person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x195cf2, -1 diff --git a/maps/FuchsiaPokeCenter1F.asm b/maps/FuchsiaPokeCenter1F.asm index 536f6e042..8241aefe6 100644 --- a/maps/FuchsiaPokeCenter1F.asm +++ b/maps/FuchsiaPokeCenter1F.asm @@ -102,7 +102,7 @@ FuchsiaPokeCenter1F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, NurseScript_0x196459, -1 - person_event SPRITE_COOLTRAINER_M, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, CooltrainerMScript_0x19645c, -1 - person_event SPRITE_COOLTRAINER_F, 4, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, CooltrainerFScript_0x19645f, -1 - person_event SPRITE_JANINE_IMPERSONATOR, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, JanineImpersonatorScript_0x196462, -1 + person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, NurseScript_0x196459, -1 + person_event SPRITE_COOLTRAINER_M, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x19645c, -1 + person_event SPRITE_COOLTRAINER_F, 4, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x19645f, -1 + person_event SPRITE_JANINE_IMPERSONATOR, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, JanineImpersonatorScript_0x196462, -1 diff --git a/maps/GoldenrodBikeShop.asm b/maps/GoldenrodBikeShop.asm index 42b8cfabd..5f11981e0 100644 --- a/maps/GoldenrodBikeShop.asm +++ b/maps/GoldenrodBikeShop.asm @@ -125,4 +125,4 @@ GoldenrodBikeShop_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_CLERK, 2, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ClerkScript_0x54750, -1 + person_event SPRITE_CLERK, 2, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ClerkScript_0x54750, -1 diff --git a/maps/GoldenrodBillsHouse.asm b/maps/GoldenrodBillsHouse.asm index 03647f81d..0cf7952c3 100644 --- a/maps/GoldenrodBillsHouse.asm +++ b/maps/GoldenrodBillsHouse.asm @@ -257,6 +257,6 @@ GoldenrodBillsHouse_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_BILL, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, BillsHouseBill, EVENT_MET_BILL - person_event SPRITE_POKEFAN_F, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, BillsMom, -1 - person_event SPRITE_TWIN, 4, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BillsSister, -1 + person_event SPRITE_BILL, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BillsHouseBill, EVENT_MET_BILL + person_event SPRITE_POKEFAN_F, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BillsMom, -1 + person_event SPRITE_TWIN, 4, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, BillsSister, -1 diff --git a/maps/GoldenrodCity.asm b/maps/GoldenrodCity.asm index 83f6fa797..260d7011a 100644 --- a/maps/GoldenrodCity.asm +++ b/maps/GoldenrodCity.asm @@ -581,18 +581,18 @@ GoldenrodCity_MapEventHeader: .PersonEvents: db 15 - person_event SPRITE_POKEFAN_M, 18, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x1989e3, EVENT_GOLDENROD_CITY_CIVILIANS - person_event SPRITE_YOUNGSTER, 17, 30, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, YoungsterScript_0x1989e6, EVENT_GOLDENROD_CITY_CIVILIANS - person_event SPRITE_COOLTRAINER_F, 16, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x1989e9, EVENT_GOLDENROD_CITY_CIVILIANS - person_event SPRITE_COOLTRAINER_F, 26, 20, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, 0, 0, CooltrainerFScript_0x1989fd, EVENT_GOLDENROD_CITY_CIVILIANS - person_event SPRITE_YOUNGSTER, 17, 19, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x198a11, EVENT_GOLDENROD_CITY_CIVILIANS - person_event SPRITE_LASS, 10, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x198a14, EVENT_GOLDENROD_CITY_CIVILIANS - person_event SPRITE_GRAMPS, 27, 11, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, GrampsScript_0x198a17, EVENT_GOLDENROD_CITY_CIVILIANS - person_event SPRITE_ROCKET, 16, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a1a, EVENT_GOLDENROD_CITY_ROCKET_SCOUT - person_event SPRITE_ROCKET, 20, 28, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a29, EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER - person_event SPRITE_ROCKET, 15, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a2c, EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER - person_event SPRITE_ROCKET, 23, 16, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a2f, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_ROCKET, 20, 29, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a32, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_ROCKET, 7, 29, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a35, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_ROCKET, 10, 31, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a38, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_POKEFAN_M, 22, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, MoveTutor, EVENT_GOLDENROD_CITY_MOVE_TUTOR + person_event SPRITE_POKEFAN_M, 18, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x1989e3, EVENT_GOLDENROD_CITY_CIVILIANS + person_event SPRITE_YOUNGSTER, 17, 30, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1989e6, EVENT_GOLDENROD_CITY_CIVILIANS + person_event SPRITE_COOLTRAINER_F, 16, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x1989e9, EVENT_GOLDENROD_CITY_CIVILIANS + person_event SPRITE_COOLTRAINER_F, 26, 20, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x1989fd, EVENT_GOLDENROD_CITY_CIVILIANS + person_event SPRITE_YOUNGSTER, 17, 19, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x198a11, EVENT_GOLDENROD_CITY_CIVILIANS + person_event SPRITE_LASS, 10, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x198a14, EVENT_GOLDENROD_CITY_CIVILIANS + person_event SPRITE_GRAMPS, 27, 11, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x198a17, EVENT_GOLDENROD_CITY_CIVILIANS + person_event SPRITE_ROCKET, 16, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a1a, EVENT_GOLDENROD_CITY_ROCKET_SCOUT + person_event SPRITE_ROCKET, 20, 28, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a29, EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER + person_event SPRITE_ROCKET, 15, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a2c, EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER + person_event SPRITE_ROCKET, 23, 16, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a2f, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_ROCKET, 20, 29, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a32, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_ROCKET, 7, 29, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a35, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_ROCKET, 10, 31, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a38, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_POKEFAN_M, 22, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, MoveTutor, EVENT_GOLDENROD_CITY_MOVE_TUTOR diff --git a/maps/GoldenrodDeptStore1F.asm b/maps/GoldenrodDeptStore1F.asm index ef42c651b..ccc74c28e 100644 --- a/maps/GoldenrodDeptStore1F.asm +++ b/maps/GoldenrodDeptStore1F.asm @@ -93,7 +93,7 @@ GoldenrodDeptStore1F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_RECEPTIONIST, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ReceptionistScript_0x55981, -1 - person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, PokefanFScript_0x55987, -1 - person_event SPRITE_BUG_CATCHER, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BugCatcherScript_0x5598a, -1 - person_event SPRITE_GENTLEMAN, 5, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, GentlemanScript_0x55984, -1 + person_event SPRITE_RECEPTIONIST, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x55981, -1 + person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x55987, -1 + person_event SPRITE_BUG_CATCHER, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x5598a, -1 + person_event SPRITE_GENTLEMAN, 5, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x55984, -1 diff --git a/maps/GoldenrodDeptStore2F.asm b/maps/GoldenrodDeptStore2F.asm index 6f59e8523..2a39b3fa9 100644 --- a/maps/GoldenrodDeptStore2F.asm +++ b/maps/GoldenrodDeptStore2F.asm @@ -113,8 +113,8 @@ GoldenrodDeptStore2F_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x55b5d, -1 - person_event SPRITE_CLERK, 6, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x55b65, -1 - person_event SPRITE_YOUNGSTER, 6, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, YoungsterScript_0x55b6d, -1 - person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerFScript_0x55b70, -1 - person_event SPRITE_GENTLEMAN, 6, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x55b73, -1 + person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x55b5d, -1 + person_event SPRITE_CLERK, 6, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x55b65, -1 + person_event SPRITE_YOUNGSTER, 6, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x55b6d, -1 + person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x55b70, -1 + person_event SPRITE_GENTLEMAN, 6, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x55b73, -1 diff --git a/maps/GoldenrodDeptStore3F.asm b/maps/GoldenrodDeptStore3F.asm index 522798fa1..5073b0863 100644 --- a/maps/GoldenrodDeptStore3F.asm +++ b/maps/GoldenrodDeptStore3F.asm @@ -71,6 +71,6 @@ GoldenrodDeptStore3F_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_CLERK, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x55db8, -1 - person_event SPRITE_SUPER_NERD, 5, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x55dc0, -1 - person_event SPRITE_ROCKER, 5, 2, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, RockerScript_0x55dc3, -1 + person_event SPRITE_CLERK, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x55db8, -1 + person_event SPRITE_SUPER_NERD, 5, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x55dc0, -1 + person_event SPRITE_ROCKER, 5, 2, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RockerScript_0x55dc3, -1 diff --git a/maps/GoldenrodDeptStore4F.asm b/maps/GoldenrodDeptStore4F.asm index 812c406f4..16a5024bb 100644 --- a/maps/GoldenrodDeptStore4F.asm +++ b/maps/GoldenrodDeptStore4F.asm @@ -91,7 +91,7 @@ GoldenrodDeptStore4F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x55ee9, -1 - person_event SPRITE_COOLTRAINER_M, 7, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x55ef1, -1 - person_event SPRITE_BUG_CATCHER, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, BugCatcherScript_0x55ef4, -1 - person_event SPRITE_GAMEBOY_KID, 1, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, GameboyKidScript_0x55ef7, -1 + person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x55ee9, -1 + person_event SPRITE_COOLTRAINER_M, 7, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x55ef1, -1 + person_event SPRITE_BUG_CATCHER, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x55ef4, -1 + person_event SPRITE_GAMEBOY_KID, 1, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x55ef7, -1 diff --git a/maps/GoldenrodDeptStore5F.asm b/maps/GoldenrodDeptStore5F.asm index 4bfa0e907..35f055909 100644 --- a/maps/GoldenrodDeptStore5F.asm +++ b/maps/GoldenrodDeptStore5F.asm @@ -232,9 +232,9 @@ GoldenrodDeptStore5F_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_CLERK, 5, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x5609c, -1 - person_event SPRITE_LASS, 6, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, LassScript_0x56130, -1 - person_event SPRITE_COOLTRAINER_M, 3, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x56133, -1 - person_event SPRITE_POKEFAN_M, 5, 13, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, PokefanMScript_0x5613a, -1 - person_event SPRITE_TWIN, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TwinScript_0x56118, -1 - person_event SPRITE_RECEPTIONIST, 5, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ReceptionistScript_0x560ce, EVENT_GOLDENROD_DEPT_STORE_5F_HAPPINESS_EVENT_LADY + person_event SPRITE_CLERK, 5, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x5609c, -1 + person_event SPRITE_LASS, 6, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x56130, -1 + person_event SPRITE_COOLTRAINER_M, 3, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x56133, -1 + person_event SPRITE_POKEFAN_M, 5, 13, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x5613a, -1 + person_event SPRITE_TWIN, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TwinScript_0x56118, -1 + person_event SPRITE_RECEPTIONIST, 5, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x560ce, EVENT_GOLDENROD_DEPT_STORE_5F_HAPPINESS_EVENT_LADY diff --git a/maps/GoldenrodDeptStore6F.asm b/maps/GoldenrodDeptStore6F.asm index 8619a516e..d81df73a1 100644 --- a/maps/GoldenrodDeptStore6F.asm +++ b/maps/GoldenrodDeptStore6F.asm @@ -169,5 +169,5 @@ GoldenrodDeptStore6F_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_LASS, 2, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x564bf, -1 - person_event SPRITE_SUPER_NERD, 2, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x564c2, -1 + person_event SPRITE_LASS, 2, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x564bf, -1 + person_event SPRITE_SUPER_NERD, 2, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x564c2, -1 diff --git a/maps/GoldenrodDeptStoreB1F.asm b/maps/GoldenrodDeptStoreB1F.asm index e17bb5368..e726755da 100644 --- a/maps/GoldenrodDeptStoreB1F.asm +++ b/maps/GoldenrodDeptStoreB1F.asm @@ -121,11 +121,11 @@ GoldenrodDeptStoreB1F_MapEventHeader: .PersonEvents: db 8 - person_event SPRITE_POKE_BALL, 15, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c3, EVENT_GOLDENROD_DEPT_STORE_B1F_ETHER - person_event SPRITE_POKE_BALL, 2, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c5, EVENT_GOLDENROD_DEPT_STORE_B1F_AMULET_COIN - person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c7, EVENT_GOLDENROD_DEPT_STORE_B1F_BURN_HEAL - person_event SPRITE_POKE_BALL, 15, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c9, EVENT_GOLDENROD_DEPT_STORE_B1F_ULTRA_BALL - person_event SPRITE_BLACK_BELT, 10, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BlackBeltScript_0x7d7b0, -1 - person_event SPRITE_BLACK_BELT, 8, 4, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, BlackBeltScript_0x7d7b3, -1 - person_event SPRITE_BLACK_BELT, 13, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, BlackBeltScript_0x7d7b6, -1 - person_event SPRITE_MACHOP, 7, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, MachopScript_0x7d7b9, -1 + person_event SPRITE_POKE_BALL, 15, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7d7c3, EVENT_GOLDENROD_DEPT_STORE_B1F_ETHER + person_event SPRITE_POKE_BALL, 2, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7d7c5, EVENT_GOLDENROD_DEPT_STORE_B1F_AMULET_COIN + person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7d7c7, EVENT_GOLDENROD_DEPT_STORE_B1F_BURN_HEAL + person_event SPRITE_POKE_BALL, 15, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7d7c9, EVENT_GOLDENROD_DEPT_STORE_B1F_ULTRA_BALL + person_event SPRITE_BLACK_BELT, 10, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x7d7b0, -1 + person_event SPRITE_BLACK_BELT, 8, 4, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x7d7b3, -1 + person_event SPRITE_BLACK_BELT, 13, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x7d7b6, -1 + person_event SPRITE_MACHOP, 7, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, MachopScript_0x7d7b9, -1 diff --git a/maps/GoldenrodDeptStoreRoof.asm b/maps/GoldenrodDeptStoreRoof.asm index 234a3adfc..f0ed3e21d 100644 --- a/maps/GoldenrodDeptStoreRoof.asm +++ b/maps/GoldenrodDeptStoreRoof.asm @@ -225,11 +225,11 @@ GoldenrodDeptStoreRoof_MapEventHeader: .PersonEvents: db 8 - person_event SPRITE_CLERK, 4, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x5673f, EVENT_GOLDENROD_SALE_OFF - person_event SPRITE_POKEFAN_F, 3, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanFScript_0x56746, -1 - person_event SPRITE_FISHER, 1, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FisherScript_0x56749, -1 - person_event SPRITE_TWIN, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TwinScript_0x56754, EVENT_GOLDENROD_SALE_ON - person_event SPRITE_SUPER_NERD, 6, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x56757, EVENT_GOLDENROD_SALE_ON - person_event SPRITE_POKEFAN_M, 0, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, PokefanMScript_0x5676a, EVENT_GOLDENROD_SALE_OFF - person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x5676d, EVENT_GOLDENROD_SALE_OFF - person_event SPRITE_BUG_CATCHER, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, BugCatcherScript_0x56770, EVENT_GOLDENROD_SALE_OFF + person_event SPRITE_CLERK, 4, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x5673f, EVENT_GOLDENROD_SALE_OFF + person_event SPRITE_POKEFAN_F, 3, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x56746, -1 + person_event SPRITE_FISHER, 1, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, FisherScript_0x56749, -1 + person_event SPRITE_TWIN, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TwinScript_0x56754, EVENT_GOLDENROD_SALE_ON + person_event SPRITE_SUPER_NERD, 6, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x56757, EVENT_GOLDENROD_SALE_ON + person_event SPRITE_POKEFAN_M, 0, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x5676a, EVENT_GOLDENROD_SALE_OFF + person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x5676d, EVENT_GOLDENROD_SALE_OFF + person_event SPRITE_BUG_CATCHER, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x56770, EVENT_GOLDENROD_SALE_OFF diff --git a/maps/GoldenrodFlowerShop.asm b/maps/GoldenrodFlowerShop.asm index 51f574688..d99afb751 100644 --- a/maps/GoldenrodFlowerShop.asm +++ b/maps/GoldenrodFlowerShop.asm @@ -172,5 +172,5 @@ GoldenrodFlowerShop_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_TEACHER, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, FlowerShopTeacherScript, -1 - person_event SPRITE_LASS, 6, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FlowerShopFloriaScript, EVENT_FLORIA_AT_FLOWER_SHOP + person_event SPRITE_TEACHER, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FlowerShopTeacherScript, -1 + person_event SPRITE_LASS, 6, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, FlowerShopFloriaScript, EVENT_FLORIA_AT_FLOWER_SHOP diff --git a/maps/GoldenrodGameCorner.asm b/maps/GoldenrodGameCorner.asm index fc635d694..88e99f217 100644 --- a/maps/GoldenrodGameCorner.asm +++ b/maps/GoldenrodGameCorner.asm @@ -479,15 +479,15 @@ GoldenrodGameCorner_MapEventHeader: .PersonEvents: db 12 - person_event SPRITE_CLERK, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ClerkScript_0x56c25, -1 - person_event SPRITE_RECEPTIONIST, 2, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ReceptionistScript_0x56c28, -1 - person_event SPRITE_RECEPTIONIST, 2, 18, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ReceptionistScript_0x56d01, -1 - person_event SPRITE_PHARMACIST, 7, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, 2, (1 << 3) | PAL_OW_BLUE, 0, 0, PharmacistScript_0x56df1, -1 - person_event SPRITE_PHARMACIST, 7, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, 4, (1 << 3) | PAL_OW_BLUE, 0, 0, PharmacistScript_0x56df1, -1 - person_event SPRITE_POKEFAN_M, 10, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x56dfc, -1 - person_event SPRITE_COOLTRAINER_M, 8, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CooltrainerMScript_0x56e07, -1 - person_event SPRITE_POKEFAN_F, 6, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanFScript_0x56e12, -1 - person_event SPRITE_COOLTRAINER_F, 3, 10, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x56e1d, -1 - person_event SPRITE_GENTLEMAN, 10, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GentlemanScript_0x56e20, -1 - person_event SPRITE_POKEFAN_M, 9, 2, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x56e2b, -1 - person_event SPRITE_POKEFAN_M, 10, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x56c1a, EVENT_GOLDENROD_GAME_CORNER_MOVE_TUTOR + person_event SPRITE_CLERK, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ClerkScript_0x56c25, -1 + person_event SPRITE_RECEPTIONIST, 2, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x56c28, -1 + person_event SPRITE_RECEPTIONIST, 2, 18, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x56d01, -1 + person_event SPRITE_PHARMACIST, 7, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, 2, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, PharmacistScript_0x56df1, -1 + person_event SPRITE_PHARMACIST, 7, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, 4, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, PharmacistScript_0x56df1, -1 + person_event SPRITE_POKEFAN_M, 10, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x56dfc, -1 + person_event SPRITE_COOLTRAINER_M, 8, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x56e07, -1 + person_event SPRITE_POKEFAN_F, 6, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x56e12, -1 + person_event SPRITE_COOLTRAINER_F, 3, 10, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x56e1d, -1 + person_event SPRITE_GENTLEMAN, 10, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x56e20, -1 + person_event SPRITE_POKEFAN_M, 9, 2, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x56e2b, -1 + person_event SPRITE_POKEFAN_M, 10, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x56c1a, EVENT_GOLDENROD_GAME_CORNER_MOVE_TUTOR diff --git a/maps/GoldenrodGym.asm b/maps/GoldenrodGym.asm index ba9d1a5b1..c2746de68 100644 --- a/maps/GoldenrodGym.asm +++ b/maps/GoldenrodGym.asm @@ -393,9 +393,9 @@ GoldenrodGym_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_WHITNEY, 3, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, WhitneyScript_0x5400c, -1 - person_event SPRITE_LASS, 13, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerLassCarrie, -1 - person_event SPRITE_LASS, 6, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerLassBridget, -1 - person_event SPRITE_BUENA, 2, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBeautyVictoria, -1 - person_event SPRITE_BUENA, 5, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBeautySamantha, -1 - person_event SPRITE_GYM_GUY, 15, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GoldenrodGymGuyScript, -1 + person_event SPRITE_WHITNEY, 3, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, WhitneyScript_0x5400c, -1 + person_event SPRITE_LASS, 13, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerLassCarrie, -1 + person_event SPRITE_LASS, 6, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerLassBridget, -1 + person_event SPRITE_BUENA, 2, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBeautyVictoria, -1 + person_event SPRITE_BUENA, 5, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBeautySamantha, -1 + person_event SPRITE_GYM_GUY, 15, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GoldenrodGymGuyScript, -1 diff --git a/maps/GoldenrodHappinessRater.asm b/maps/GoldenrodHappinessRater.asm index 7d6f786c1..3ef382fa5 100644 --- a/maps/GoldenrodHappinessRater.asm +++ b/maps/GoldenrodHappinessRater.asm @@ -151,6 +151,6 @@ GoldenrodHappinessRater_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_TEACHER, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x54953, -1 - person_event SPRITE_POKEFAN_M, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x54997, -1 - person_event SPRITE_TWIN, 6, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TwinScript_0x5499a, -1 + person_event SPRITE_TEACHER, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x54953, -1 + person_event SPRITE_POKEFAN_M, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x54997, -1 + person_event SPRITE_TWIN, 6, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TwinScript_0x5499a, -1 diff --git a/maps/GoldenrodMagnetTrainStation.asm b/maps/GoldenrodMagnetTrainStation.asm index d95cfb934..75819cf92 100644 --- a/maps/GoldenrodMagnetTrainStation.asm +++ b/maps/GoldenrodMagnetTrainStation.asm @@ -182,5 +182,5 @@ GoldenrodMagnetTrainStation_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_OFFICER, 9, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, OfficerScript_0x550ec, -1 - person_event SPRITE_GENTLEMAN, 14, 11, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, GentlemanScript_0x55143, EVENT_GOLDENROD_TRAIN_STATION_GENTLEMAN + person_event SPRITE_OFFICER, 9, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OfficerScript_0x550ec, -1 + person_event SPRITE_GENTLEMAN, 14, 11, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x55143, EVENT_GOLDENROD_TRAIN_STATION_GENTLEMAN diff --git a/maps/GoldenrodNameRatersHouse.asm b/maps/GoldenrodNameRatersHouse.asm index 268e60c98..4253fe3ef 100644 --- a/maps/GoldenrodNameRatersHouse.asm +++ b/maps/GoldenrodNameRatersHouse.asm @@ -41,4 +41,4 @@ GoldenrodNameRatersHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_GENTLEMAN, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 2, -1, -1, 0, 0, 0, GentlemanScript_0x5577c, -1 + person_event SPRITE_GENTLEMAN, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x5577c, -1 diff --git a/maps/GoldenrodPPSpeechHouse.asm b/maps/GoldenrodPPSpeechHouse.asm index 043ee445b..0f373281a 100644 --- a/maps/GoldenrodPPSpeechHouse.asm +++ b/maps/GoldenrodPPSpeechHouse.asm @@ -67,5 +67,5 @@ GoldenrodPPSpeechHouse_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_FISHER, 4, 2, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x5564a, -1 - person_event SPRITE_LASS, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 1, 0, -1, -1, 0, 0, 0, LassScript_0x5564d, -1 + person_event SPRITE_FISHER, 4, 2, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x5564a, -1 + person_event SPRITE_LASS, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x5564d, -1 diff --git a/maps/GoldenrodPokeCenter1F.asm b/maps/GoldenrodPokeCenter1F.asm index a41d3e739..83fe5e26a 100644 --- a/maps/GoldenrodPokeCenter1F.asm +++ b/maps/GoldenrodPokeCenter1F.asm @@ -818,8 +818,8 @@ GoldenrodPokeCenter1F_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x60f91, -1 - person_event SPRITE_LINK_RECEPTIONIST, 8, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, -1 - person_event SPRITE_GAMEBOY_KID, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GameboyKidScript_0x6101e, -1 - person_event SPRITE_LASS, 4, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, LassScript_0x61021, -1 - person_event SPRITE_POKEFAN_F, 5, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanFScript_0x61024, -1 + person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x60f91, -1 + person_event SPRITE_LINK_RECEPTIONIST, 8, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ObjectEvent, -1 + person_event SPRITE_GAMEBOY_KID, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x6101e, -1 + person_event SPRITE_LASS, 4, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x61021, -1 + person_event SPRITE_POKEFAN_F, 5, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x61024, -1 diff --git a/maps/GoldenrodPokeComCenter2FMobile.asm b/maps/GoldenrodPokeComCenter2FMobile.asm index 1718bd7e1..6a0f26f55 100644 --- a/maps/GoldenrodPokeComCenter2FMobile.asm +++ b/maps/GoldenrodPokeComCenter2FMobile.asm @@ -283,6 +283,6 @@ GoldenrodPokeComCenter2FMobile_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_SCIENTIST, 28, 4, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ScientistScript_0x625d1, -1 - person_event SPRITE_SCIENTIST, 27, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x625d4, -1 - person_event SPRITE_SCIENTIST, 29, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ScientistScript_0x625d7, -1 + person_event SPRITE_SCIENTIST, 28, 4, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ScientistScript_0x625d1, -1 + person_event SPRITE_SCIENTIST, 27, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x625d4, -1 + person_event SPRITE_SCIENTIST, 29, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ScientistScript_0x625d7, -1 diff --git a/maps/GuideGentsHouse.asm b/maps/GuideGentsHouse.asm index 6ccdbd527..ecc481750 100644 --- a/maps/GuideGentsHouse.asm +++ b/maps/GuideGentsHouse.asm @@ -43,4 +43,4 @@ GuideGentsHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, GuideGentsHouseGuideGent, EVENT_GUIDE_GENT_VISIBLE_IN_CHERRYGROVE + person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GuideGentsHouseGuideGent, EVENT_GUIDE_GENT_VISIBLE_IN_CHERRYGROVE diff --git a/maps/HallOfFame.asm b/maps/HallOfFame.asm index f07322211..35da37630 100644 --- a/maps/HallOfFame.asm +++ b/maps/HallOfFame.asm @@ -126,4 +126,4 @@ HallOfFame_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_LANCE, 12, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, -1 + person_event SPRITE_LANCE, 12, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, -1 diff --git a/maps/IcePath1F.asm b/maps/IcePath1F.asm index ca6777565..c39fd9a45 100644 --- a/maps/IcePath1F.asm +++ b/maps/IcePath1F.asm @@ -33,6 +33,6 @@ IcePath1F_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_POKE_BALL, 7, 31, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e472, EVENT_GOT_HM07_WATERFALL - person_event SPRITE_POKE_BALL, 23, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e474, EVENT_ICE_PATH_1F_PP_UP - person_event SPRITE_POKE_BALL, 9, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e476, EVENT_ICE_PATH_1F_PROTEIN + person_event SPRITE_POKE_BALL, 7, 31, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e472, EVENT_GOT_HM07_WATERFALL + person_event SPRITE_POKE_BALL, 23, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e474, EVENT_ICE_PATH_1F_PP_UP + person_event SPRITE_POKE_BALL, 9, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e476, EVENT_ICE_PATH_1F_PROTEIN diff --git a/maps/IcePathB1F.asm b/maps/IcePathB1F.asm index 4374f4c64..c7ce6cc0b 100644 --- a/maps/IcePathB1F.asm +++ b/maps/IcePathB1F.asm @@ -107,8 +107,8 @@ IcePathB1F_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_BOULDER, 7, 11, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_1 - person_event SPRITE_BOULDER, 8, 7, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_2 - person_event SPRITE_BOULDER, 9, 8, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_3 - person_event SPRITE_BOULDER, 7, 17, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_4 - person_event SPRITE_POKE_BALL, 35, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e50d, EVENT_ICE_PATH_B1F_IRON + person_event SPRITE_BOULDER, 7, 11, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_1 + person_event SPRITE_BOULDER, 8, 7, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_2 + person_event SPRITE_BOULDER, 9, 8, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_3 + person_event SPRITE_BOULDER, 7, 17, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_4 + person_event SPRITE_POKE_BALL, 35, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e50d, EVENT_ICE_PATH_B1F_IRON diff --git a/maps/IcePathB2FBlackthornSide.asm b/maps/IcePathB2FBlackthornSide.asm index 651538e9e..d229579f8 100644 --- a/maps/IcePathB2FBlackthornSide.asm +++ b/maps/IcePathB2FBlackthornSide.asm @@ -30,4 +30,4 @@ IcePathB2FBlackthornSide_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKE_BALL, 16, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e646, EVENT_ICE_PATH_B2F_BLACKTHORN_SIDE_TM_REST + person_event SPRITE_POKE_BALL, 16, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e646, EVENT_ICE_PATH_B2F_BLACKTHORN_SIDE_TM_REST diff --git a/maps/IcePathB2FMahoganySide.asm b/maps/IcePathB2FMahoganySide.asm index 7f8c01649..77a5ff29a 100644 --- a/maps/IcePathB2FMahoganySide.asm +++ b/maps/IcePathB2FMahoganySide.asm @@ -45,9 +45,9 @@ IcePathB2FMahoganySide_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_BOULDER, 3, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_1A - person_event SPRITE_BOULDER, 7, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_2A - person_event SPRITE_BOULDER, 12, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_3A - person_event SPRITE_BOULDER, 13, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_4A - person_event SPRITE_POKE_BALL, 9, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e5a6, EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_FULL_HEAL - person_event SPRITE_POKE_BALL, 2, 0, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e5a8, EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_MAX_POTION + person_event SPRITE_BOULDER, 3, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_1A + person_event SPRITE_BOULDER, 7, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_2A + person_event SPRITE_BOULDER, 12, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_3A + person_event SPRITE_BOULDER, 13, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_4A + person_event SPRITE_POKE_BALL, 9, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e5a6, EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_FULL_HEAL + person_event SPRITE_POKE_BALL, 2, 0, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e5a8, EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_MAX_POTION diff --git a/maps/IcePathB3F.asm b/maps/IcePathB3F.asm index 636f2ae47..0fe12cd7d 100644 --- a/maps/IcePathB3F.asm +++ b/maps/IcePathB3F.asm @@ -28,5 +28,5 @@ IcePathB3F_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_POKE_BALL, 7, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e66f, EVENT_ICE_PATH_B3F_NEVERMELTICE - person_event SPRITE_ROCK, 6, 6, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, IcePathB3FRock, -1 + person_event SPRITE_POKE_BALL, 7, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e66f, EVENT_ICE_PATH_B3F_NEVERMELTICE + person_event SPRITE_ROCK, 6, 6, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, IcePathB3FRock, -1 diff --git a/maps/IlexForestAzaleaGate.asm b/maps/IlexForestAzaleaGate.asm index 3823b6c07..39596b0a2 100644 --- a/maps/IlexForestAzaleaGate.asm +++ b/maps/IlexForestAzaleaGate.asm @@ -45,5 +45,5 @@ IlexForestAzaleaGate_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x62c7a, -1 - person_event SPRITE_GRANNY, 3, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrannyScript_0x62c7d, -1 + person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x62c7a, -1 + person_event SPRITE_GRANNY, 3, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, GrannyScript_0x62c7d, -1 diff --git a/maps/IndigoPlateauPokeCenter1F.asm b/maps/IndigoPlateauPokeCenter1F.asm index e0e56981c..51b502452 100644 --- a/maps/IndigoPlateauPokeCenter1F.asm +++ b/maps/IndigoPlateauPokeCenter1F.asm @@ -319,9 +319,9 @@ IndigoPlateauPokeCenter1F_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_NURSE, 7, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x18012c, -1 - person_event SPRITE_CLERK, 7, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x18012f, -1 - person_event SPRITE_COOLTRAINER_M, 11, 11, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, CooltrainerMScript_0x180136, -1 - person_event SPRITE_SILVER, 9, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_INDIGO_PLATEAU_POKECENTER_RIVAL - person_event SPRITE_GRAMPS, 9, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeleportGuyScript, EVENT_TELEPORT_GUY - person_event SPRITE_JYNX, 9, 0, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, AbraScript, EVENT_TELEPORT_GUY + person_event SPRITE_NURSE, 7, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x18012c, -1 + person_event SPRITE_CLERK, 7, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x18012f, -1 + person_event SPRITE_COOLTRAINER_M, 11, 11, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x180136, -1 + person_event SPRITE_SILVER, 9, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_INDIGO_PLATEAU_POKECENTER_RIVAL + person_event SPRITE_GRAMPS, 9, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TeleportGuyScript, EVENT_TELEPORT_GUY + person_event SPRITE_JYNX, 9, 0, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, AbraScript, EVENT_TELEPORT_GUY diff --git a/maps/KarensRoom.asm b/maps/KarensRoom.asm index eb7171b9a..0f32ebebc 100644 --- a/maps/KarensRoom.asm +++ b/maps/KarensRoom.asm @@ -153,4 +153,4 @@ KarensRoom_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_KAREN, 7, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, KarenScript_0x180bee, -1 + person_event SPRITE_KAREN, 7, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, KarenScript_0x180bee, -1 diff --git a/maps/KogasRoom.asm b/maps/KogasRoom.asm index 7d3ce2c62..b822efd9f 100644 --- a/maps/KogasRoom.asm +++ b/maps/KogasRoom.asm @@ -150,4 +150,4 @@ KogasRoom_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_KOGA, 7, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, KogaScript_0x18075a, -1 + person_event SPRITE_KOGA, 7, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, KogaScript_0x18075a, -1 diff --git a/maps/KrissHouse1F.asm b/maps/KrissHouse1F.asm index 2863583f8..a211456c9 100644 --- a/maps/KrissHouse1F.asm +++ b/maps/KrissHouse1F.asm @@ -404,8 +404,8 @@ KrissHouse1F_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_MOM, 4, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_1 - person_event SPRITE_MOM, 2, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, 1, 0, 0, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_2 - person_event SPRITE_MOM, 4, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, 2, 0, 0, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_2 - person_event SPRITE_MOM, 2, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, 4, 0, 0, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_2 - person_event SPRITE_POKEFAN_F, 4, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, NeighborScript, EVENT_KRISS_HOUSE_1F_NEIGHBOR + person_event SPRITE_MOM, 4, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_1 + person_event SPRITE_MOM, 2, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, 1, 0, PERSONTYPE_SCRIPT, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_2 + person_event SPRITE_MOM, 4, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, 2, 0, PERSONTYPE_SCRIPT, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_2 + person_event SPRITE_MOM, 2, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, 4, 0, PERSONTYPE_SCRIPT, 0, MomScript_0x7a582, EVENT_KRISS_HOUSE_MOM_2 + person_event SPRITE_POKEFAN_F, 4, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, NeighborScript, EVENT_KRISS_HOUSE_1F_NEIGHBOR diff --git a/maps/KrissHouse2F.asm b/maps/KrissHouse2F.asm index e344f7f4d..4275dd8ee 100644 --- a/maps/KrissHouse2F.asm +++ b/maps/KrissHouse2F.asm @@ -134,7 +134,7 @@ KrissHouse2F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_CONSOLE, 2, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, GameConsole, EVENT_KRISS_HOUSE_2F_CONSOLE - person_event SPRITE_DOLL_1, 4, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, Doll1, EVENT_KRISS_HOUSE_2F_DOLL_1 - person_event SPRITE_DOLL_2, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, Doll2, EVENT_KRISS_HOUSE_2F_DOLL_2 - person_event SPRITE_BIG_DOLL, 1, 0, SPRITEMOVEDATA_BIGDOLL, 0, 0, -1, -1, 0, 0, 0, BigDoll, EVENT_KRISS_HOUSE_2F_BIG_DOLL + person_event SPRITE_CONSOLE, 2, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GameConsole, EVENT_KRISS_HOUSE_2F_CONSOLE + person_event SPRITE_DOLL_1, 4, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Doll1, EVENT_KRISS_HOUSE_2F_DOLL_1 + person_event SPRITE_DOLL_2, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Doll2, EVENT_KRISS_HOUSE_2F_DOLL_2 + person_event SPRITE_BIG_DOLL, 1, 0, SPRITEMOVEDATA_BIGDOLL, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BigDoll, EVENT_KRISS_HOUSE_2F_BIG_DOLL diff --git a/maps/KrissNeighborsHouse.asm b/maps/KrissNeighborsHouse.asm index 8f8678e97..07ec09d72 100644 --- a/maps/KrissNeighborsHouse.asm +++ b/maps/KrissNeighborsHouse.asm @@ -114,5 +114,5 @@ KrissNeighborsHouse_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_COOLTRAINER_F, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, KrissNeighborsDaughter, -1 - person_event SPRITE_POKEFAN_F, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, KrissNeighbor, EVENT_KRISS_NEIGHBORS_HOUSE_NEIGHBOR + person_event SPRITE_COOLTRAINER_F, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, KrissNeighborsDaughter, -1 + person_event SPRITE_POKEFAN_F, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, KrissNeighbor, EVENT_KRISS_NEIGHBORS_HOUSE_NEIGHBOR diff --git a/maps/KurtsHouse.asm b/maps/KurtsHouse.asm index 9d8a16753..07d36b64e 100644 --- a/maps/KurtsHouse.asm +++ b/maps/KurtsHouse.asm @@ -696,8 +696,8 @@ KurtsHouse_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_KURT, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, KurtScript_0x18e178, EVENT_KURTS_HOUSE_KURT_1 - person_event SPRITE_TWIN, 3, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, KurtsGranddaughter1, EVENT_KURTS_HOUSE_GRANDDAUGHTER_1 - person_event SPRITE_SLOWPOKE, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, KurtsHouseSlowpoke, EVENT_KURTS_HOUSE_SLOWPOKE - person_event SPRITE_KURT, 3, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, KurtScript_0x18e3bd, EVENT_KURTS_HOUSE_KURT_2 - person_event SPRITE_TWIN, 4, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, KurtsGranddaughter2, EVENT_KURTS_HOUSE_GRANDDAUGHTER_2 + person_event SPRITE_KURT, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, KurtScript_0x18e178, EVENT_KURTS_HOUSE_KURT_1 + person_event SPRITE_TWIN, 3, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, KurtsGranddaughter1, EVENT_KURTS_HOUSE_GRANDDAUGHTER_1 + person_event SPRITE_SLOWPOKE, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, KurtsHouseSlowpoke, EVENT_KURTS_HOUSE_SLOWPOKE + person_event SPRITE_KURT, 3, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, KurtScript_0x18e3bd, EVENT_KURTS_HOUSE_KURT_2 + person_event SPRITE_TWIN, 4, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, KurtsGranddaughter2, EVENT_KURTS_HOUSE_GRANDDAUGHTER_2 diff --git a/maps/LakeofRage.asm b/maps/LakeofRage.asm index d2bea4ddd..a31201e5d 100644 --- a/maps/LakeofRage.asm +++ b/maps/LakeofRage.asm @@ -509,15 +509,15 @@ LakeofRage_MapEventHeader: .PersonEvents: db 12 - person_event SPRITE_LANCE, 28, 21, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, LanceScript_0x70022, EVENT_LAKE_OF_RAGE_LANCE - person_event SPRITE_GRAMPS, 26, 20, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x7008e, -1 - person_event SPRITE_SUPER_NERD, 13, 36, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, SuperNerdScript_0x700a2, -1 - person_event SPRITE_COOLTRAINER_F, 29, 25, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, CooltrainerFScript_0x700a5, -1 - person_event SPRITE_FISHER, 23, 30, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerFisherAndre, EVENT_LAKE_OF_RAGE_CIVILIANS - person_event SPRITE_FISHER, 26, 24, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerFisherRaymond, EVENT_LAKE_OF_RAGE_CIVILIANS - person_event SPRITE_COOLTRAINER_M, 15, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainermAaron, EVENT_LAKE_OF_RAGE_CIVILIANS - person_event SPRITE_COOLTRAINER_F, 7, 36, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 0, TrainerCooltrainerfLois, EVENT_LAKE_OF_RAGE_CIVILIANS - person_event SPRITE_GYARADOS, 22, 18, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GyaradosScript_0x70063, EVENT_LAKE_OF_RAGE_RED_GYARADOS - person_event SPRITE_SUPER_NERD, 4, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, WesleyScript, EVENT_LAKE_OF_RAGE_WESLEY_OF_WEDNESDAY - person_event SPRITE_POKE_BALL, 10, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x70148, EVENT_LAKE_OF_RAGE_ELIXER - person_event SPRITE_POKE_BALL, 2, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7014a, EVENT_LAKE_OF_RAGE_TM_DETECT + person_event SPRITE_LANCE, 28, 21, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LanceScript_0x70022, EVENT_LAKE_OF_RAGE_LANCE + person_event SPRITE_GRAMPS, 26, 20, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x7008e, -1 + person_event SPRITE_SUPER_NERD, 13, 36, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x700a2, -1 + person_event SPRITE_COOLTRAINER_F, 29, 25, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x700a5, -1 + person_event SPRITE_FISHER, 23, 30, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerFisherAndre, EVENT_LAKE_OF_RAGE_CIVILIANS + person_event SPRITE_FISHER, 26, 24, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerFisherRaymond, EVENT_LAKE_OF_RAGE_CIVILIANS + person_event SPRITE_COOLTRAINER_M, 15, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerCooltrainermAaron, EVENT_LAKE_OF_RAGE_CIVILIANS + person_event SPRITE_COOLTRAINER_F, 7, 36, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 0, TrainerCooltrainerfLois, EVENT_LAKE_OF_RAGE_CIVILIANS + person_event SPRITE_GYARADOS, 22, 18, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GyaradosScript_0x70063, EVENT_LAKE_OF_RAGE_RED_GYARADOS + person_event SPRITE_SUPER_NERD, 4, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, WesleyScript, EVENT_LAKE_OF_RAGE_WESLEY_OF_WEDNESDAY + person_event SPRITE_POKE_BALL, 10, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x70148, EVENT_LAKE_OF_RAGE_ELIXER + person_event SPRITE_POKE_BALL, 2, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7014a, EVENT_LAKE_OF_RAGE_TM_DETECT diff --git a/maps/LakeofRageHiddenPowerHouse.asm b/maps/LakeofRageHiddenPowerHouse.asm index a5d4dd2a0..2c616d617 100644 --- a/maps/LakeofRageHiddenPowerHouse.asm +++ b/maps/LakeofRageHiddenPowerHouse.asm @@ -83,4 +83,4 @@ LakeofRageHiddenPowerHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, HiddenPowerGuy, -1 + person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, HiddenPowerGuy, -1 diff --git a/maps/LakeofRageMagikarpHouse.asm b/maps/LakeofRageMagikarpHouse.asm index 5dcf7e4f8..48b563d46 100644 --- a/maps/LakeofRageMagikarpHouse.asm +++ b/maps/LakeofRageMagikarpHouse.asm @@ -221,4 +221,4 @@ LakeofRageMagikarpHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, FishingGuruScript_0x19a6ae, -1 + person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x19a6ae, -1 diff --git a/maps/LancesRoom.asm b/maps/LancesRoom.asm index 3929e6f35..56fba7897 100644 --- a/maps/LancesRoom.asm +++ b/maps/LancesRoom.asm @@ -358,6 +358,6 @@ LancesRoom_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_LANCE, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, LanceScript_0x180e7b, -1 - person_event SPRITE_TEACHER, 7, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ObjectEvent, EVENT_LANCES_ROOM_OAK_AND_MARY - person_event SPRITE_OAK, 7, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_LANCES_ROOM_OAK_AND_MARY + person_event SPRITE_LANCE, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LanceScript_0x180e7b, -1 + person_event SPRITE_TEACHER, 7, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_LANCES_ROOM_OAK_AND_MARY + person_event SPRITE_OAK, 7, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_LANCES_ROOM_OAK_AND_MARY diff --git a/maps/LavRadioTower1F.asm b/maps/LavRadioTower1F.asm index 47d189725..23bd3c222 100644 --- a/maps/LavRadioTower1F.asm +++ b/maps/LavRadioTower1F.asm @@ -233,8 +233,8 @@ LavRadioTower1F_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_RECEPTIONIST, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ReceptionistScript_0x7ee63, -1 - person_event SPRITE_OFFICER, 1, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OfficerScript_0x7ee66, -1 - person_event SPRITE_SUPER_NERD, 3, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x7ee69, -1 - person_event SPRITE_GENTLEMAN, 1, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x7ee6c, -1 - person_event SPRITE_SUPER_NERD, 6, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, SuperNerdScript_0x7eea2, -1 + person_event SPRITE_RECEPTIONIST, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x7ee63, -1 + person_event SPRITE_OFFICER, 1, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, OfficerScript_0x7ee66, -1 + person_event SPRITE_SUPER_NERD, 3, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x7ee69, -1 + person_event SPRITE_GENTLEMAN, 1, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x7ee6c, -1 + person_event SPRITE_SUPER_NERD, 6, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x7eea2, -1 diff --git a/maps/LavenderMart.asm b/maps/LavenderMart.asm index 7cadf2ecc..2b1243fd8 100644 --- a/maps/LavenderMart.asm +++ b/maps/LavenderMart.asm @@ -59,6 +59,6 @@ LavenderMart_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x7eb1c, -1 - person_event SPRITE_POKEFAN_M, 6, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x7eb23, -1 - person_event SPRITE_ROCKER, 2, 9, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, RockerScript_0x7eb26, -1 + person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x7eb1c, -1 + person_event SPRITE_POKEFAN_M, 6, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x7eb23, -1 + person_event SPRITE_ROCKER, 2, 9, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RockerScript_0x7eb26, -1 diff --git a/maps/LavenderNameRater.asm b/maps/LavenderNameRater.asm index 2603c66e5..0bb873e3e 100644 --- a/maps/LavenderNameRater.asm +++ b/maps/LavenderNameRater.asm @@ -40,4 +40,4 @@ LavenderNameRater_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_GENTLEMAN, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, LavenderNameRater, -1 + person_event SPRITE_GENTLEMAN, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, LavenderNameRater, -1 diff --git a/maps/LavenderPokeCenter1F.asm b/maps/LavenderPokeCenter1F.asm index b507b4040..53cfb6e17 100644 --- a/maps/LavenderPokeCenter1F.asm +++ b/maps/LavenderPokeCenter1F.asm @@ -92,7 +92,7 @@ LavenderPokeCenter1F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x7e6a0, -1 - person_event SPRITE_GENTLEMAN, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, GentlemanScript_0x7e6a3, -1 - person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x7e6a6, -1 - person_event SPRITE_YOUNGSTER, 5, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x7e6a9, -1 + person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x7e6a0, -1 + person_event SPRITE_GENTLEMAN, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x7e6a3, -1 + person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7e6a6, -1 + person_event SPRITE_YOUNGSTER, 5, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x7e6a9, -1 diff --git a/maps/LavenderTown.asm b/maps/LavenderTown.asm index f33b1d804..c29ad4182 100644 --- a/maps/LavenderTown.asm +++ b/maps/LavenderTown.asm @@ -129,7 +129,7 @@ LavenderTown_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_POKEFAN_M, 7, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x1ad6e4, -1 - person_event SPRITE_TEACHER, 15, 2, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x1ad6e7, -1 - person_event SPRITE_GRAMPS, 12, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x1ad6ea, -1 - person_event SPRITE_YOUNGSTER, 11, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 1, YoungsterScript_0x1ad6ed, -1 + person_event SPRITE_POKEFAN_M, 7, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x1ad6e4, -1 + person_event SPRITE_TEACHER, 15, 2, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1ad6e7, -1 + person_event SPRITE_GRAMPS, 12, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1ad6ea, -1 + person_event SPRITE_YOUNGSTER, 11, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 1, YoungsterScript_0x1ad6ed, -1 diff --git a/maps/LavenderTownSpeechHouse.asm b/maps/LavenderTownSpeechHouse.asm index c18a2edfe..d2f450339 100644 --- a/maps/LavenderTownSpeechHouse.asm +++ b/maps/LavenderTownSpeechHouse.asm @@ -44,4 +44,4 @@ LavenderTownSpeechHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, PokefanFScript_0x7ea47, -1 + person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x7ea47, -1 diff --git a/maps/MahoganyGym.asm b/maps/MahoganyGym.asm index a9b6d05ed..eaf72b515 100644 --- a/maps/MahoganyGym.asm +++ b/maps/MahoganyGym.asm @@ -382,10 +382,10 @@ MahoganyGym_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_PRYCE, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PryceScript_0x199a9e, -1 - person_event SPRITE_BUENA, 6, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerSkierRoxanne, -1 - person_event SPRITE_ROCKER, 17, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBoarderRonald, -1 - person_event SPRITE_BUENA, 17, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerSkierClarissa, -1 - person_event SPRITE_ROCKER, 9, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBoarderBrad, -1 - person_event SPRITE_ROCKER, 4, 2, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBoarderDouglas, -1 - person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, MahoganyGymGuyScript, -1 + person_event SPRITE_PRYCE, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, PryceScript_0x199a9e, -1 + person_event SPRITE_BUENA, 6, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerSkierRoxanne, -1 + person_event SPRITE_ROCKER, 17, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerBoarderRonald, -1 + person_event SPRITE_BUENA, 17, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerSkierClarissa, -1 + person_event SPRITE_ROCKER, 9, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerBoarderBrad, -1 + person_event SPRITE_ROCKER, 4, 2, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerBoarderDouglas, -1 + person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, MahoganyGymGuyScript, -1 diff --git a/maps/MahoganyMart1F.asm b/maps/MahoganyMart1F.asm index 82e828473..50aa6c407 100644 --- a/maps/MahoganyMart1F.asm +++ b/maps/MahoganyMart1F.asm @@ -236,8 +236,8 @@ MahoganyMart1F_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_PHARMACIST, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, PharmacistScript_0x6c367, EVENT_TEAM_ROCKET_BASE_POPULATION - person_event SPRITE_BLACK_BELT, 6, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x6c37b, EVENT_TEAM_ROCKET_BASE_POPULATION - person_event SPRITE_LANCE, 6, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE - person_event SPRITE_DRAGON, 6, 3, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE - person_event SPRITE_GRANNY, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x6c3ee, EVENT_MAHOGANY_MART_OWNERS + person_event SPRITE_PHARMACIST, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PharmacistScript_0x6c367, EVENT_TEAM_ROCKET_BASE_POPULATION + person_event SPRITE_BLACK_BELT, 6, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x6c37b, EVENT_TEAM_ROCKET_BASE_POPULATION + person_event SPRITE_LANCE, 6, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE + person_event SPRITE_DRAGON, 6, 3, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE + person_event SPRITE_GRANNY, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x6c3ee, EVENT_MAHOGANY_MART_OWNERS diff --git a/maps/MahoganyPokeCenter1F.asm b/maps/MahoganyPokeCenter1F.asm index ce1230329..24e03dd22 100644 --- a/maps/MahoganyPokeCenter1F.asm +++ b/maps/MahoganyPokeCenter1F.asm @@ -65,7 +65,7 @@ MahoganyPokeCenter1F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x19a356, -1 - person_event SPRITE_POKEFAN_M, 2, 7, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x19a359, -1 - person_event SPRITE_YOUNGSTER, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x19a35c, -1 - person_event SPRITE_COOLTRAINER_F, 3, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x19a35f, -1 + person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x19a356, -1 + person_event SPRITE_POKEFAN_M, 2, 7, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x19a359, -1 + person_event SPRITE_YOUNGSTER, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x19a35c, -1 + person_event SPRITE_COOLTRAINER_F, 3, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x19a35f, -1 diff --git a/maps/MahoganyRedGyaradosSpeechHouse.asm b/maps/MahoganyRedGyaradosSpeechHouse.asm index ddae9a1db..5ae52fe85 100644 --- a/maps/MahoganyRedGyaradosSpeechHouse.asm +++ b/maps/MahoganyRedGyaradosSpeechHouse.asm @@ -73,5 +73,5 @@ MahoganyRedGyaradosSpeechHouse_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_BLACK_BELT, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x19997f, -1 - person_event SPRITE_TEACHER, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x199982, -1 + person_event SPRITE_BLACK_BELT, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x19997f, -1 + person_event SPRITE_TEACHER, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x199982, -1 diff --git a/maps/MahoganyTown.asm b/maps/MahoganyTown.asm index ce93c18a8..60ee8cef9 100644 --- a/maps/MahoganyTown.asm +++ b/maps/MahoganyTown.asm @@ -268,7 +268,7 @@ MahoganyTown_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_POKEFAN_M, 8, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x19002e, EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_EAST - person_event SPRITE_GRAMPS, 9, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, GrampsScript_0x19007e, -1 - person_event SPRITE_FISHER, 14, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x190092, EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_GYM - person_event SPRITE_LASS, 8, 12, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, LassScript_0x190095, EVENT_MAHOGANY_MART_OWNERS + person_event SPRITE_POKEFAN_M, 8, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x19002e, EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_EAST + person_event SPRITE_GRAMPS, 9, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x19007e, -1 + person_event SPRITE_FISHER, 14, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x190092, EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_GYM + person_event SPRITE_LASS, 8, 12, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x190095, EVENT_MAHOGANY_MART_OWNERS diff --git a/maps/ManiasHouse.asm b/maps/ManiasHouse.asm index 51c33b76c..f07170951 100644 --- a/maps/ManiasHouse.asm +++ b/maps/ManiasHouse.asm @@ -212,4 +212,4 @@ ManiasHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_ROCKER, 4, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, ManiaScript, -1 + person_event SPRITE_ROCKER, 4, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ManiaScript, -1 diff --git a/maps/MountMoon.asm b/maps/MountMoon.asm index cf1600416..a23ab085d 100644 --- a/maps/MountMoon.asm +++ b/maps/MountMoon.asm @@ -182,4 +182,4 @@ MountMoon_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_SILVER, 3, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MT_MOON_RIVAL + person_event SPRITE_SILVER, 3, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_MT_MOON_RIVAL diff --git a/maps/MountMoonGiftShop.asm b/maps/MountMoonGiftShop.asm index b3287327e..5fa8925e3 100644 --- a/maps/MountMoonGiftShop.asm +++ b/maps/MountMoonGiftShop.asm @@ -38,7 +38,7 @@ MountMoonGiftShop_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_GRAMPS, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, 1, 0, 0, 0, GrampsScript_0x771a8, -1 - person_event SPRITE_GRAMPS, 2, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, 2, 0, 0, 0, GrampsScript_0x771a8, -1 - person_event SPRITE_LASS, 6, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, 1, 0, 0, 0, LassScript_0x771b0, -1 - person_event SPRITE_LASS, 4, 5, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, 2, 0, 0, 0, LassScript_0x771b0, -1 + person_event SPRITE_GRAMPS, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, 1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x771a8, -1 + person_event SPRITE_GRAMPS, 2, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, 2, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x771a8, -1 + person_event SPRITE_LASS, 6, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, 1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x771b0, -1 + person_event SPRITE_LASS, 4, 5, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, 2, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x771b0, -1 diff --git a/maps/MountMoonSquare.asm b/maps/MountMoonSquare.asm index e1d364efd..299d4eab7 100644 --- a/maps/MountMoonSquare.asm +++ b/maps/MountMoonSquare.asm @@ -155,6 +155,6 @@ MountMoonSquare_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_FAIRY, 6, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MT_MOON_SQUARE_CLEFAIRY - person_event SPRITE_FAIRY, 6, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MT_MOON_SQUARE_CLEFAIRY - person_event SPRITE_ROCK, 7, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, MtMoonSquareRock, EVENT_MT_MOON_SQUARE_ROCK + person_event SPRITE_FAIRY, 6, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_MT_MOON_SQUARE_CLEFAIRY + person_event SPRITE_FAIRY, 6, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_MT_MOON_SQUARE_CLEFAIRY + person_event SPRITE_ROCK, 7, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MtMoonSquareRock, EVENT_MT_MOON_SQUARE_ROCK diff --git a/maps/MountMortar1FInside.asm b/maps/MountMortar1FInside.asm index 36c30f601..345305172 100644 --- a/maps/MountMortar1FInside.asm +++ b/maps/MountMortar1FInside.asm @@ -127,13 +127,13 @@ MountMortar1FInside_MapEventHeader: .PersonEvents: db 10 - person_event SPRITE_BOULDER, 43, 21, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, MountMortar1FBoulder, -1 - person_event SPRITE_POKE_BALL, 38, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de7c, EVENT_MOUNT_MORTAR_1F_INSIDE_ESCAPE_ROPE - person_event SPRITE_POKE_BALL, 10, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de7e, EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_REVIVE - person_event SPRITE_POKE_BALL, 27, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de80, EVENT_MOUNT_MORTAR_1F_INSIDE_HYPER_POTION - person_event SPRITE_POKE_BALL, 20, 22, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de82, EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_POTION - person_event SPRITE_POKE_BALL, 19, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de84, EVENT_MOUNT_MORTAR_1F_INSIDE_NUGGET - person_event SPRITE_SUPER_NERD, 43, 33, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacMiller, -1 - person_event SPRITE_SUPER_NERD, 28, 24, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerSupernerdMarkus, -1 - person_event SPRITE_POKE_BALL, 16, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de86, EVENT_MOUNT_MORTAR_1F_INSIDE_IRON - person_event SPRITE_POKE_BALL, 17, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de88, EVENT_MOUNT_MORTAR_1F_INSIDE_ULTRA_BALL + person_event SPRITE_BOULDER, 43, 21, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MountMortar1FBoulder, -1 + person_event SPRITE_POKE_BALL, 38, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7de7c, EVENT_MOUNT_MORTAR_1F_INSIDE_ESCAPE_ROPE + person_event SPRITE_POKE_BALL, 10, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7de7e, EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_REVIVE + person_event SPRITE_POKE_BALL, 27, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7de80, EVENT_MOUNT_MORTAR_1F_INSIDE_HYPER_POTION + person_event SPRITE_POKE_BALL, 20, 22, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7de82, EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_POTION + person_event SPRITE_POKE_BALL, 19, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7de84, EVENT_MOUNT_MORTAR_1F_INSIDE_NUGGET + person_event SPRITE_SUPER_NERD, 43, 33, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPokemaniacMiller, -1 + person_event SPRITE_SUPER_NERD, 28, 24, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerSupernerdMarkus, -1 + person_event SPRITE_POKE_BALL, 16, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7de86, EVENT_MOUNT_MORTAR_1F_INSIDE_IRON + person_event SPRITE_POKE_BALL, 17, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7de88, EVENT_MOUNT_MORTAR_1F_INSIDE_ULTRA_BALL diff --git a/maps/MountMortar1FOutside.asm b/maps/MountMortar1FOutside.asm index e1fd49999..b6612d2bf 100644 --- a/maps/MountMortar1FOutside.asm +++ b/maps/MountMortar1FOutside.asm @@ -40,5 +40,5 @@ MountMortar1FOutside_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_POKE_BALL, 15, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ddf6, EVENT_MOUNT_MORTAR_1F_OUTSIDE_ETHER - person_event SPRITE_POKE_BALL, 18, 31, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ddf8, EVENT_MOUNT_MORTAR_1F_OUTSIDE_REVIVE + person_event SPRITE_POKE_BALL, 15, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7ddf6, EVENT_MOUNT_MORTAR_1F_OUTSIDE_ETHER + person_event SPRITE_POKE_BALL, 18, 31, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7ddf8, EVENT_MOUNT_MORTAR_1F_OUTSIDE_REVIVE diff --git a/maps/MountMortar2FInside.asm b/maps/MountMortar2FInside.asm index 1919737bd..d27f9b082 100644 --- a/maps/MountMortar2FInside.asm +++ b/maps/MountMortar2FInside.asm @@ -76,10 +76,10 @@ MountMortar2FInside_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_POKE_BALL, 22, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0de, EVENT_MOUNT_MORTAR_2F_INSIDE_MAX_POTION - person_event SPRITE_POKE_BALL, 33, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e0, EVENT_MOUNT_MORTAR_2F_INSIDE_RARE_CANDY - person_event SPRITE_POKE_BALL, 17, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e2, EVENT_MOUNT_MORTAR_2F_INSIDE_TM_DEFENSE_CURL - person_event SPRITE_POKE_BALL, 5, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e4, EVENT_MOUNT_MORTAR_2F_INSIDE_DRAGON_SCALE - person_event SPRITE_POKE_BALL, 11, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e6, EVENT_MOUNT_MORTAR_2F_INSIDE_ELIXER - person_event SPRITE_POKE_BALL, 5, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e8, EVENT_MOUNT_MORTAR_2F_INSIDE_ESCAPE_ROPE - person_event SPRITE_SUPER_NERD, 26, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerSupernerdHugh, -1 + person_event SPRITE_POKE_BALL, 22, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e0de, EVENT_MOUNT_MORTAR_2F_INSIDE_MAX_POTION + person_event SPRITE_POKE_BALL, 33, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e0e0, EVENT_MOUNT_MORTAR_2F_INSIDE_RARE_CANDY + person_event SPRITE_POKE_BALL, 17, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e0e2, EVENT_MOUNT_MORTAR_2F_INSIDE_TM_DEFENSE_CURL + person_event SPRITE_POKE_BALL, 5, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e0e4, EVENT_MOUNT_MORTAR_2F_INSIDE_DRAGON_SCALE + person_event SPRITE_POKE_BALL, 11, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e0e6, EVENT_MOUNT_MORTAR_2F_INSIDE_ELIXER + person_event SPRITE_POKE_BALL, 5, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e0e8, EVENT_MOUNT_MORTAR_2F_INSIDE_ESCAPE_ROPE + person_event SPRITE_SUPER_NERD, 26, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerSupernerdHugh, -1 diff --git a/maps/MountMortarB1F.asm b/maps/MountMortarB1F.asm index ba89f111b..b10adf856 100644 --- a/maps/MountMortarB1F.asm +++ b/maps/MountMortarB1F.asm @@ -144,10 +144,10 @@ MountMortarB1F_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_POKE_BALL, 12, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e240, EVENT_MOUNT_MORTAR_B1F_HYPER_POTION - person_event SPRITE_POKE_BALL, 16, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e242, EVENT_MOUNT_MORTAR_B1F_CARBOS - person_event SPRITE_BOULDER, 10, 9, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, MountMortarB1FBoulder, -1 - person_event SPRITE_BLACK_BELT, 4, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, BlackBeltScript_0x7e1f6, -1 - person_event SPRITE_POKE_BALL, 24, 34, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e244, EVENT_MOUNT_MORTAR_B1F_FULL_RESTORE - person_event SPRITE_POKE_BALL, 3, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e246, EVENT_MOUNT_MORTAR_B1F_MAX_ETHER - person_event SPRITE_POKE_BALL, 26, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e248, EVENT_MOUNT_MORTAR_B1F_PP_UP + person_event SPRITE_POKE_BALL, 12, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e240, EVENT_MOUNT_MORTAR_B1F_HYPER_POTION + person_event SPRITE_POKE_BALL, 16, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e242, EVENT_MOUNT_MORTAR_B1F_CARBOS + person_event SPRITE_BOULDER, 10, 9, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MountMortarB1FBoulder, -1 + person_event SPRITE_BLACK_BELT, 4, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x7e1f6, -1 + person_event SPRITE_POKE_BALL, 24, 34, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e244, EVENT_MOUNT_MORTAR_B1F_FULL_RESTORE + person_event SPRITE_POKE_BALL, 3, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e246, EVENT_MOUNT_MORTAR_B1F_MAX_ETHER + person_event SPRITE_POKE_BALL, 26, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7e248, EVENT_MOUNT_MORTAR_B1F_PP_UP diff --git a/maps/MoveDeletersHouse.asm b/maps/MoveDeletersHouse.asm index 2efc21b11..59bf15c35 100644 --- a/maps/MoveDeletersHouse.asm +++ b/maps/MoveDeletersHouse.asm @@ -35,4 +35,4 @@ MoveDeletersHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_SUPER_NERD, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, MoveDeleter, -1 + person_event SPRITE_SUPER_NERD, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MoveDeleter, -1 diff --git a/maps/MrFujisHouse.asm b/maps/MrFujisHouse.asm index dda963a8a..2bb05c813 100644 --- a/maps/MrFujisHouse.asm +++ b/maps/MrFujisHouse.asm @@ -91,8 +91,8 @@ MrFujisHouse_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_SUPER_NERD, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x7e8ca, -1 - person_event SPRITE_LASS, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, LassScript_0x7e8cd, -1 - person_event SPRITE_RHYDON, 4, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, MrFujisPsyduck, -1 - person_event SPRITE_GROWLITHE, 5, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, MrFujisNidorino, -1 - person_event SPRITE_MOLTRES, 3, 1, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MrFujisPidgey, -1 + person_event SPRITE_SUPER_NERD, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x7e8ca, -1 + person_event SPRITE_LASS, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x7e8cd, -1 + person_event SPRITE_RHYDON, 4, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MrFujisPsyduck, -1 + person_event SPRITE_GROWLITHE, 5, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, MrFujisNidorino, -1 + person_event SPRITE_MOLTRES, 3, 1, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, MrFujisPidgey, -1 diff --git a/maps/MrPokemonsHouse.asm b/maps/MrPokemonsHouse.asm index d66ad7506..aeac05928 100644 --- a/maps/MrPokemonsHouse.asm +++ b/maps/MrPokemonsHouse.asm @@ -392,5 +392,5 @@ MrPokemonsHouse_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_GENTLEMAN, 5, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x196e97, -1 - person_event SPRITE_OAK, 5, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MR_POKEMONS_HOUSE_OAK + person_event SPRITE_GENTLEMAN, 5, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x196e97, -1 + person_event SPRITE_OAK, 5, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_MR_POKEMONS_HOUSE_OAK diff --git a/maps/MrPsychicsHouse.asm b/maps/MrPsychicsHouse.asm index 703e425d4..6fdd2b9f5 100644 --- a/maps/MrPsychicsHouse.asm +++ b/maps/MrPsychicsHouse.asm @@ -63,4 +63,4 @@ MrPsychicsHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_FISHING_GURU, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, MrPsychic, -1 + person_event SPRITE_FISHING_GURU, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, MrPsychic, -1 diff --git a/maps/NationalPark.asm b/maps/NationalPark.asm index b556ef134..a689fbca5 100644 --- a/maps/NationalPark.asm +++ b/maps/NationalPark.asm @@ -521,17 +521,17 @@ NationalPark_MapEventHeader: .PersonEvents: db 14 - person_event SPRITE_LASS, 24, 15, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x5c002, -1 - person_event SPRITE_POKEFAN_F, 4, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, PokefanFScript_0x5c005, -1 - person_event SPRITE_TEACHER, 40, 27, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x5c008, -1 - person_event SPRITE_YOUNGSTER, 41, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, YoungsterScript_0x5c023, -1 - person_event SPRITE_YOUNGSTER, 41, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5c026, -1 - person_event SPRITE_TEACHER, 41, 17, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, 0, 0, TeacherScript_0x5c029, -1 - person_event SPRITE_GROWLITHE, 40, 26, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, GrowlitheScript_0x5c02c, -1 - person_event SPRITE_YOUNGSTER, 23, 27, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSchoolboyJack1, -1 - person_event SPRITE_POKEFAN_F, 29, 18, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerPokefanfBeverly1, -1 - person_event SPRITE_POKEFAN_M, 9, 16, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerPokefanmWilliam, -1 - person_event SPRITE_LASS, 14, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerLassKrise, -1 - person_event SPRITE_POKE_BALL, 12, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c1cc, EVENT_NATIONAL_PARK_PARLYZ_HEAL - person_event SPRITE_GAMEBOY_KID, 6, 26, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, GameboyKidScript_0x5c037, -1 - person_event SPRITE_POKE_BALL, 43, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c1ce, EVENT_NATIONAL_PARK_TM_DIG + person_event SPRITE_LASS, 24, 15, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x5c002, -1 + person_event SPRITE_POKEFAN_F, 4, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x5c005, -1 + person_event SPRITE_TEACHER, 40, 27, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x5c008, -1 + person_event SPRITE_YOUNGSTER, 41, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5c023, -1 + person_event SPRITE_YOUNGSTER, 41, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5c026, -1 + person_event SPRITE_TEACHER, 41, 17, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x5c029, -1 + person_event SPRITE_GROWLITHE, 40, 26, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrowlitheScript_0x5c02c, -1 + person_event SPRITE_YOUNGSTER, 23, 27, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSchoolboyJack1, -1 + person_event SPRITE_POKEFAN_F, 29, 18, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 2, TrainerPokefanfBeverly1, -1 + person_event SPRITE_POKEFAN_M, 9, 16, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 2, TrainerPokefanmWilliam, -1 + person_event SPRITE_LASS, 14, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerLassKrise, -1 + person_event SPRITE_POKE_BALL, 12, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5c1cc, EVENT_NATIONAL_PARK_PARLYZ_HEAL + person_event SPRITE_GAMEBOY_KID, 6, 26, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x5c037, -1 + person_event SPRITE_POKE_BALL, 43, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5c1ce, EVENT_NATIONAL_PARK_TM_DIG diff --git a/maps/NationalParkBugContest.asm b/maps/NationalParkBugContest.asm index 5796a70d0..c2c4c130e 100644 --- a/maps/NationalParkBugContest.asm +++ b/maps/NationalParkBugContest.asm @@ -230,15 +230,15 @@ NationalParkBugContest_MapEventHeader: .PersonEvents: db 12 - person_event SPRITE_YOUNGSTER, 29, 19, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5c8ec, EVENT_BUG_CATCHING_CONTESTANT_1A - person_event SPRITE_YOUNGSTER, 22, 28, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x5c8f4, EVENT_BUG_CATCHING_CONTESTANT_2A - person_event SPRITE_ROCKER, 18, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, RockerScript_0x5c8fc, EVENT_BUG_CATCHING_CONTESTANT_3A - person_event SPRITE_POKEFAN_M, 13, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x5c904, EVENT_BUG_CATCHING_CONTESTANT_4A - person_event SPRITE_YOUNGSTER, 9, 23, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5c90c, EVENT_BUG_CATCHING_CONTESTANT_5A - person_event SPRITE_YOUNGSTER, 13, 27, SPRITEMOVEDATA_WANDER, 3, 3, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x5c914, EVENT_BUG_CATCHING_CONTESTANT_6A - person_event SPRITE_LASS, 23, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LassScript_0x5c91c, EVENT_BUG_CATCHING_CONTESTANT_7A - person_event SPRITE_YOUNGSTER, 27, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5c924, EVENT_BUG_CATCHING_CONTESTANT_8A - person_event SPRITE_YOUNGSTER, 8, 16, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x5c92c, EVENT_BUG_CATCHING_CONTESTANT_9A - person_event SPRITE_YOUNGSTER, 34, 17, SPRITEMOVEDATA_WANDER, 3, 3, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x5c934, EVENT_BUG_CATCHING_CONTESTANT_10A - person_event SPRITE_POKE_BALL, 12, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c945, EVENT_NATIONAL_PARK_PARLYZ_HEAL - person_event SPRITE_POKE_BALL, 43, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c947, EVENT_NATIONAL_PARK_TM_DIG + person_event SPRITE_YOUNGSTER, 29, 19, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5c8ec, EVENT_BUG_CATCHING_CONTESTANT_1A + person_event SPRITE_YOUNGSTER, 22, 28, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5c8f4, EVENT_BUG_CATCHING_CONTESTANT_2A + person_event SPRITE_ROCKER, 18, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, RockerScript_0x5c8fc, EVENT_BUG_CATCHING_CONTESTANT_3A + person_event SPRITE_POKEFAN_M, 13, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x5c904, EVENT_BUG_CATCHING_CONTESTANT_4A + person_event SPRITE_YOUNGSTER, 9, 23, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5c90c, EVENT_BUG_CATCHING_CONTESTANT_5A + person_event SPRITE_YOUNGSTER, 13, 27, SPRITEMOVEDATA_WANDER, 3, 3, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5c914, EVENT_BUG_CATCHING_CONTESTANT_6A + person_event SPRITE_LASS, 23, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, LassScript_0x5c91c, EVENT_BUG_CATCHING_CONTESTANT_7A + person_event SPRITE_YOUNGSTER, 27, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5c924, EVENT_BUG_CATCHING_CONTESTANT_8A + person_event SPRITE_YOUNGSTER, 8, 16, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5c92c, EVENT_BUG_CATCHING_CONTESTANT_9A + person_event SPRITE_YOUNGSTER, 34, 17, SPRITEMOVEDATA_WANDER, 3, 3, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5c934, EVENT_BUG_CATCHING_CONTESTANT_10A + person_event SPRITE_POKE_BALL, 12, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5c945, EVENT_NATIONAL_PARK_PARLYZ_HEAL + person_event SPRITE_POKE_BALL, 43, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5c947, EVENT_NATIONAL_PARK_TM_DIG diff --git a/maps/NewBarkTown.asm b/maps/NewBarkTown.asm index 059746efe..915da5ff2 100644 --- a/maps/NewBarkTown.asm +++ b/maps/NewBarkTown.asm @@ -305,6 +305,6 @@ NewBarkTown_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_TEACHER, 8, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 1, -1, -1, 0, 0, 0, TeacherScript_0x1a806f, -1 - person_event SPRITE_FISHER, 9, 12, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1a809b, -1 - person_event SPRITE_SILVER, 2, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, SilverScript_0x1a809e, EVENT_RIVAL_NEW_BARK_TOWN + person_event SPRITE_TEACHER, 8, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1a806f, -1 + person_event SPRITE_FISHER, 9, 12, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x1a809b, -1 + person_event SPRITE_SILVER, 2, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SilverScript_0x1a809e, EVENT_RIVAL_NEW_BARK_TOWN diff --git a/maps/OaksLab.asm b/maps/OaksLab.asm index 8c349ae45..7eb650378 100644 --- a/maps/OaksLab.asm +++ b/maps/OaksLab.asm @@ -283,7 +283,7 @@ OaksLab_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_OAK, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, Oak, -1 - person_event SPRITE_SCIENTIST, 8, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x19b40f, -1 - person_event SPRITE_SCIENTIST, 9, 8, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x19b412, -1 - person_event SPRITE_SCIENTIST, 4, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x19b415, -1 + person_event SPRITE_OAK, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Oak, -1 + person_event SPRITE_SCIENTIST, 8, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x19b40f, -1 + person_event SPRITE_SCIENTIST, 9, 8, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x19b412, -1 + person_event SPRITE_SCIENTIST, 4, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x19b415, -1 diff --git a/maps/OlivineCafe.asm b/maps/OlivineCafe.asm index 799b6bac6..80dc08b3a 100644 --- a/maps/OlivineCafe.asm +++ b/maps/OlivineCafe.asm @@ -90,6 +90,6 @@ OlivineCafe_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_SAILOR, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x9c8c1, -1 - person_event SPRITE_FISHING_GURU, 3, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, FishingGuruScript_0x9c8d9, -1 - person_event SPRITE_SAILOR, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x9c8dc, -1 + person_event SPRITE_SAILOR, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x9c8c1, -1 + person_event SPRITE_FISHING_GURU, 3, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x9c8d9, -1 + person_event SPRITE_SAILOR, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x9c8dc, -1 diff --git a/maps/OlivineCity.asm b/maps/OlivineCity.asm index 9b431973f..f299560bb 100644 --- a/maps/OlivineCity.asm +++ b/maps/OlivineCity.asm @@ -320,7 +320,7 @@ OlivineCity_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_SAILOR, 27, 26, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, SailorScript_0x1a88a3, -1 - person_event SPRITE_STANDING_YOUNGSTER, 13, 20, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, StandingYoungsterScript_0x1a88a6, -1 - person_event SPRITE_SAILOR, 21, 17, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, SailorScript_0x1a88ba, -1 - person_event SPRITE_OLIVINE_RIVAL, 11, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_OLIVINE_CITY + person_event SPRITE_SAILOR, 27, 26, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x1a88a3, -1 + person_event SPRITE_STANDING_YOUNGSTER, 13, 20, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, StandingYoungsterScript_0x1a88a6, -1 + person_event SPRITE_SAILOR, 21, 17, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x1a88ba, -1 + person_event SPRITE_OLIVINE_RIVAL, 11, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_RIVAL_OLIVINE_CITY diff --git a/maps/OlivineGoodRodHouse.asm b/maps/OlivineGoodRodHouse.asm index 52a969d1c..c704bc967 100644 --- a/maps/OlivineGoodRodHouse.asm +++ b/maps/OlivineGoodRodHouse.asm @@ -96,4 +96,4 @@ OlivineGoodRodHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GoodRodGuru, -1 + person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, GoodRodGuru, -1 diff --git a/maps/OlivineGym.asm b/maps/OlivineGym.asm index ecdcf8e33..ce45363e7 100644 --- a/maps/OlivineGym.asm +++ b/maps/OlivineGym.asm @@ -212,5 +212,5 @@ OlivineGym_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_JASMINE, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, JasmineScript_0x9c12f, EVENT_OLIVINE_GYM_JASMINE - person_event SPRITE_GYM_GUY, 13, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OlivineGymGuyScript, -1 + person_event SPRITE_JASMINE, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, JasmineScript_0x9c12f, EVENT_OLIVINE_GYM_JASMINE + person_event SPRITE_GYM_GUY, 13, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, OlivineGymGuyScript, -1 diff --git a/maps/OlivineHouseBeta.asm b/maps/OlivineHouseBeta.asm index 9fdf16e59..7f7b8d237 100644 --- a/maps/OlivineHouseBeta.asm +++ b/maps/OlivineHouseBeta.asm @@ -54,5 +54,5 @@ OlivineHouseBeta_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x9c58f, -1 - person_event SPRITE_RHYDON, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, 0, 0, 0, RhydonScript_0x9c592, -1 + person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x9c58f, -1 + person_event SPRITE_RHYDON, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RhydonScript_0x9c592, -1 diff --git a/maps/OlivineLighthouse1F.asm b/maps/OlivineLighthouse1F.asm index ab89ca6cc..d5269f1e5 100644 --- a/maps/OlivineLighthouse1F.asm +++ b/maps/OlivineLighthouse1F.asm @@ -52,5 +52,5 @@ OlivineLighthouse1F_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_SAILOR, 2, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x5ae67, -1 - person_event SPRITE_POKEFAN_F, 9, 16, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, 0, 0, 0, PokefanFScript_0x5ae6a, -1 + person_event SPRITE_SAILOR, 2, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x5ae67, -1 + person_event SPRITE_POKEFAN_F, 9, 16, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x5ae6a, -1 diff --git a/maps/OlivineLighthouse2F.asm b/maps/OlivineLighthouse2F.asm index 0b84dad11..50528ea7b 100644 --- a/maps/OlivineLighthouse2F.asm +++ b/maps/OlivineLighthouse2F.asm @@ -221,5 +221,5 @@ OlivineLighthouse2F_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_SAILOR, 3, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSailorHuey1, -1 - person_event SPRITE_GENTLEMAN, 8, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerGentlemanAlfred, -1 + person_event SPRITE_SAILOR, 3, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSailorHuey1, -1 + person_event SPRITE_GENTLEMAN, 8, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerGentlemanAlfred, -1 diff --git a/maps/OlivineLighthouse3F.asm b/maps/OlivineLighthouse3F.asm index d94095e8a..21eb3d72c 100644 --- a/maps/OlivineLighthouse3F.asm +++ b/maps/OlivineLighthouse3F.asm @@ -130,7 +130,7 @@ OlivineLighthouse3F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_SAILOR, 2, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSailorTerrell, -1 - person_event SPRITE_GENTLEMAN, 5, 13, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerGentlemanPreston, -1 - person_event SPRITE_YOUNGSTER, 9, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperTheo, -1 - person_event SPRITE_POKE_BALL, 2, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5b279, EVENT_OLIVINE_LIGHTHOUSE_3F_ETHER + person_event SPRITE_SAILOR, 2, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerSailorTerrell, -1 + person_event SPRITE_GENTLEMAN, 5, 13, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerGentlemanPreston, -1 + person_event SPRITE_YOUNGSTER, 9, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBird_keeperTheo, -1 + person_event SPRITE_POKE_BALL, 2, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5b279, EVENT_OLIVINE_LIGHTHOUSE_3F_ETHER diff --git a/maps/OlivineLighthouse4F.asm b/maps/OlivineLighthouse4F.asm index 5aaabdee7..9a9f5fc78 100644 --- a/maps/OlivineLighthouse4F.asm +++ b/maps/OlivineLighthouse4F.asm @@ -102,5 +102,5 @@ OlivineLighthouse4F_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_SAILOR, 14, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSailorKent, -1 - person_event SPRITE_LASS, 2, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerLassConnie, -1 + person_event SPRITE_SAILOR, 14, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSailorKent, -1 + person_event SPRITE_LASS, 2, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerLassConnie, -1 diff --git a/maps/OlivineLighthouse5F.asm b/maps/OlivineLighthouse5F.asm index 024e1a739..3db655189 100644 --- a/maps/OlivineLighthouse5F.asm +++ b/maps/OlivineLighthouse5F.asm @@ -107,8 +107,8 @@ OlivineLighthouse5F_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_SAILOR, 11, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSailorErnest, -1 - person_event SPRITE_YOUNGSTER, 3, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerBird_keeperDenis, -1 - person_event SPRITE_POKE_BALL, 12, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x609aa, EVENT_OLIVINE_LIGHTHOUSE_5F_RARE_CANDY - person_event SPRITE_POKE_BALL, 15, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x609ac, EVENT_OLIVINE_LIGHTHOUSE_5F_SUPER_REPEL - person_event SPRITE_POKE_BALL, 13, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x609ae, EVENT_OLIVINE_LIGHTHOUSE_5F_TM_SWAGGER + person_event SPRITE_SAILOR, 11, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSailorErnest, -1 + person_event SPRITE_YOUNGSTER, 3, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerBird_keeperDenis, -1 + person_event SPRITE_POKE_BALL, 12, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x609aa, EVENT_OLIVINE_LIGHTHOUSE_5F_RARE_CANDY + person_event SPRITE_POKE_BALL, 15, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x609ac, EVENT_OLIVINE_LIGHTHOUSE_5F_SUPER_REPEL + person_event SPRITE_POKE_BALL, 13, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x609ae, EVENT_OLIVINE_LIGHTHOUSE_5F_TM_SWAGGER diff --git a/maps/OlivineLighthouse6F.asm b/maps/OlivineLighthouse6F.asm index c9bb683e7..aae5ed42e 100644 --- a/maps/OlivineLighthouse6F.asm +++ b/maps/OlivineLighthouse6F.asm @@ -270,6 +270,6 @@ OlivineLighthouse6F_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_JASMINE, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, JasmineScript_0x60b91, EVENT_OLIVINE_LIGHTHOUSE_JASMINE - person_event SPRITE_MONSTER, 8, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MonsterScript_0x60c3a, -1 - person_event SPRITE_POKE_BALL, 4, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x60c66, EVENT_OLIVINE_LIGHTHOUSE_6F_SUPER_POTION + person_event SPRITE_JASMINE, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, JasmineScript_0x60b91, EVENT_OLIVINE_LIGHTHOUSE_JASMINE + person_event SPRITE_MONSTER, 8, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, MonsterScript_0x60c3a, -1 + person_event SPRITE_POKE_BALL, 4, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x60c66, EVENT_OLIVINE_LIGHTHOUSE_6F_SUPER_POTION diff --git a/maps/OlivineMart.asm b/maps/OlivineMart.asm index 9ec10b3f6..b16f96d6f 100644 --- a/maps/OlivineMart.asm +++ b/maps/OlivineMart.asm @@ -57,6 +57,6 @@ OlivineMart_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x9cac7, -1 - person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x9cace, -1 - person_event SPRITE_LASS, 6, 1, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, LassScript_0x9cad1, -1 + person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x9cac7, -1 + person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x9cace, -1 + person_event SPRITE_LASS, 6, 1, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x9cad1, -1 diff --git a/maps/OlivinePokeCenter1F.asm b/maps/OlivinePokeCenter1F.asm index 6ca581a56..f2e39540f 100644 --- a/maps/OlivinePokeCenter1F.asm +++ b/maps/OlivinePokeCenter1F.asm @@ -59,7 +59,7 @@ OlivinePokeCenter1F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x9c002, -1 - person_event SPRITE_FISHING_GURU, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, FishingGuruScript_0x9c005, -1 - person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x9c008, -1 - person_event SPRITE_TEACHER, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x9c00b, -1 + person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x9c002, -1 + person_event SPRITE_FISHING_GURU, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x9c005, -1 + person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x9c008, -1 + person_event SPRITE_TEACHER, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x9c00b, -1 diff --git a/maps/OlivinePort.asm b/maps/OlivinePort.asm index 51af0670d..38941d295 100644 --- a/maps/OlivinePort.asm +++ b/maps/OlivinePort.asm @@ -397,10 +397,10 @@ OlivinePort_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_SAILOR, 23, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x748c0, EVENT_OLIVINE_PORT_SAILOR_AT_GANGWAY - person_event SPRITE_SAILOR, 15, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x749fe, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME - person_event SPRITE_SAILOR, 15, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x7499c, EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME - person_event SPRITE_FISHING_GURU, 14, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, FishingGuruScript_0x74a01, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME - person_event SPRITE_FISHING_GURU, 14, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, FishingGuruScript_0x74a0c, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME - person_event SPRITE_YOUNGSTER, 15, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, YoungsterScript_0x74a17, EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME - person_event SPRITE_COOLTRAINER_F, 15, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x74a22, EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME + person_event SPRITE_SAILOR, 23, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x748c0, EVENT_OLIVINE_PORT_SAILOR_AT_GANGWAY + person_event SPRITE_SAILOR, 15, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x749fe, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME + person_event SPRITE_SAILOR, 15, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x7499c, EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME + person_event SPRITE_FISHING_GURU, 14, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x74a01, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME + person_event SPRITE_FISHING_GURU, 14, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x74a0c, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME + person_event SPRITE_YOUNGSTER, 15, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x74a17, EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME + person_event SPRITE_COOLTRAINER_F, 15, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x74a22, EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME diff --git a/maps/OlivinePortPassage.asm b/maps/OlivinePortPassage.asm index 9bfd8a2f6..0083332b3 100644 --- a/maps/OlivinePortPassage.asm +++ b/maps/OlivinePortPassage.asm @@ -36,4 +36,4 @@ OlivinePortPassage_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKEFAN_M, 1, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x76fac, EVENT_OLIVINE_PORT_PASSAGE_POKEFAN_M + person_event SPRITE_POKEFAN_M, 1, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x76fac, EVENT_OLIVINE_PORT_PASSAGE_POKEFAN_M diff --git a/maps/OlivinePunishmentSpeechHouse.asm b/maps/OlivinePunishmentSpeechHouse.asm index cfe7a6b96..d1c28edbb 100644 --- a/maps/OlivinePunishmentSpeechHouse.asm +++ b/maps/OlivinePunishmentSpeechHouse.asm @@ -54,5 +54,5 @@ OlivinePunishmentSpeechHouse_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_POKEFAN_M, 2, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, OlivinePunishmentSpeechHouseDad, -1 - person_event SPRITE_LASS, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, 0, 0, OlivinePunishmentSpeechHouseDaughter, -1 + person_event SPRITE_POKEFAN_M, 2, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivinePunishmentSpeechHouseDad, -1 + person_event SPRITE_LASS, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivinePunishmentSpeechHouseDaughter, -1 diff --git a/maps/OlivineVoltorbHouse.asm b/maps/OlivineVoltorbHouse.asm index b812c0181..083cda395 100644 --- a/maps/OlivineVoltorbHouse.asm +++ b/maps/OlivineVoltorbHouse.asm @@ -35,4 +35,4 @@ OlivineVoltorbHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, Tim, -1 + person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, Tim, -1 diff --git a/maps/PalletTown.asm b/maps/PalletTown.asm index dbff72a67..bf6fd50fc 100644 --- a/maps/PalletTown.asm +++ b/maps/PalletTown.asm @@ -89,5 +89,5 @@ PalletTown_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_TEACHER, 8, 3, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, TeacherScript_0x1ac6d5, -1 - person_event SPRITE_FISHER, 14, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1ac6d8, -1 + person_event SPRITE_TEACHER, 8, 3, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1ac6d5, -1 + person_event SPRITE_FISHER, 14, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x1ac6d8, -1 diff --git a/maps/PewterCity.asm b/maps/PewterCity.asm index 56a1cfcf1..9d5c755b2 100644 --- a/maps/PewterCity.asm +++ b/maps/PewterCity.asm @@ -174,8 +174,8 @@ PewterCity_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_COOLTRAINER_F, 11, 19, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x18c009, -1 - person_event SPRITE_BUG_CATCHER, 29, 14, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, BugCatcherScript_0x18c00c, -1 - person_event SPRITE_GRAMPS, 17, 29, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrampsScript_0x18c00f, -1 - person_event SPRITE_FRUIT_TREE, 3, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x18c03e, -1 - person_event SPRITE_FRUIT_TREE, 3, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x18c040, -1 + person_event SPRITE_COOLTRAINER_F, 11, 19, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x18c009, -1 + person_event SPRITE_BUG_CATCHER, 29, 14, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x18c00c, -1 + person_event SPRITE_GRAMPS, 17, 29, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GrampsScript_0x18c00f, -1 + person_event SPRITE_FRUIT_TREE, 3, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x18c03e, -1 + person_event SPRITE_FRUIT_TREE, 3, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x18c040, -1 diff --git a/maps/PewterGym.asm b/maps/PewterGym.asm index 79aed4f84..9585b7320 100644 --- a/maps/PewterGym.asm +++ b/maps/PewterGym.asm @@ -222,6 +222,6 @@ PewterGym_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_BROCK, 1, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, BrockScript_0x1a2864, -1 - person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerCamperJerry, -1 - person_event SPRITE_GYM_GUY, 11, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 1, PewterGymGuyScript, -1 + person_event SPRITE_BROCK, 1, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, BrockScript_0x1a2864, -1 + person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerCamperJerry, -1 + person_event SPRITE_GYM_GUY, 11, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 1, PewterGymGuyScript, -1 diff --git a/maps/PewterMart.asm b/maps/PewterMart.asm index e88de05f6..0cfc70011 100644 --- a/maps/PewterMart.asm +++ b/maps/PewterMart.asm @@ -57,6 +57,6 @@ PewterMart_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x1a2dcb, -1 - person_event SPRITE_YOUNGSTER, 2, 9, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, 0, 0, YoungsterScript_0x1a2dd2, -1 - person_event SPRITE_SUPER_NERD, 6, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x1a2dd5, -1 + person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x1a2dcb, -1 + person_event SPRITE_YOUNGSTER, 2, 9, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a2dd2, -1 + person_event SPRITE_SUPER_NERD, 6, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x1a2dd5, -1 diff --git a/maps/PewterNidoranSpeechHouse.asm b/maps/PewterNidoranSpeechHouse.asm index 9e4b95306..42c0fc63b 100644 --- a/maps/PewterNidoranSpeechHouse.asm +++ b/maps/PewterNidoranSpeechHouse.asm @@ -41,5 +41,5 @@ PewterNidoranSpeechHouse_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_SUPER_NERD, 5, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x1a2807, -1 - person_event SPRITE_GROWLITHE, 5, 4, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrowlitheScript_0x1a280a, -1 + person_event SPRITE_SUPER_NERD, 5, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x1a2807, -1 + person_event SPRITE_GROWLITHE, 5, 4, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GrowlitheScript_0x1a280a, -1 diff --git a/maps/PewterPokeCenter1F.asm b/maps/PewterPokeCenter1F.asm index f6379e60f..b8f0d960e 100644 --- a/maps/PewterPokeCenter1F.asm +++ b/maps/PewterPokeCenter1F.asm @@ -78,8 +78,8 @@ PewterPokeCenter1F_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x1a2ee7, -1 - person_event SPRITE_TEACHER, 6, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x1a2eea, -1 - person_event SPRITE_JIGGLYPUFF, 3, 1, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, JigglypuffScript_0x1a2eed, -1 - person_event SPRITE_BUG_CATCHER, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, BugCatcherScript_0x1a2ef7, -1 - person_event SPRITE_POKEFAN_M, 2, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x1a2efa, -1 + person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x1a2ee7, -1 + person_event SPRITE_TEACHER, 6, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1a2eea, -1 + person_event SPRITE_JIGGLYPUFF, 3, 1, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, JigglypuffScript_0x1a2eed, -1 + person_event SPRITE_BUG_CATCHER, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x1a2ef7, -1 + person_event SPRITE_POKEFAN_M, 2, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x1a2efa, -1 diff --git a/maps/PewterSnoozeSpeechHouse.asm b/maps/PewterSnoozeSpeechHouse.asm index 37dc6882c..4660ed2e1 100644 --- a/maps/PewterSnoozeSpeechHouse.asm +++ b/maps/PewterSnoozeSpeechHouse.asm @@ -36,4 +36,4 @@ PewterSnoozeSpeechHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_GRAMPS, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrampsScript_0x1a3059, -1 + person_event SPRITE_GRAMPS, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a3059, -1 diff --git a/maps/PokeCenter2F.asm b/maps/PokeCenter2F.asm index 9c3a858a9..ede7b5305 100644 --- a/maps/PokeCenter2F.asm +++ b/maps/PokeCenter2F.asm @@ -1040,7 +1040,7 @@ PokeCenter2F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_LINK_RECEPTIONIST, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LinkReceptionistScript_Trade, -1 - person_event SPRITE_LINK_RECEPTIONIST, 2, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LinkReceptionistScript_Battle, -1 - person_event SPRITE_LINK_RECEPTIONIST, 3, 13, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LinkReceptionistScript_TimeCapsule, -1 - person_event SPRITE_OFFICER, 1, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, OfficerScript_0x192c9a, EVENT_MYSTERY_GIFT_DELIVERY_GUY + person_event SPRITE_LINK_RECEPTIONIST, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LinkReceptionistScript_Trade, -1 + person_event SPRITE_LINK_RECEPTIONIST, 2, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LinkReceptionistScript_Battle, -1 + person_event SPRITE_LINK_RECEPTIONIST, 3, 13, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LinkReceptionistScript_TimeCapsule, -1 + person_event SPRITE_OFFICER, 1, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OfficerScript_0x192c9a, EVENT_MYSTERY_GIFT_DELIVERY_GUY diff --git a/maps/PokeSeersHouse.asm b/maps/PokeSeersHouse.asm index 6e5f976fe..f371cb300 100644 --- a/maps/PokeSeersHouse.asm +++ b/maps/PokeSeersHouse.asm @@ -30,4 +30,4 @@ PokeSeersHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_GRANNY, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SeerScript, -1 + person_event SPRITE_GRANNY, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SeerScript, -1 diff --git a/maps/PokemonFanClub.asm b/maps/PokemonFanClub.asm index 581b95050..ccb1156a7 100644 --- a/maps/PokemonFanClub.asm +++ b/maps/PokemonFanClub.asm @@ -307,9 +307,9 @@ PokemonFanClub_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_GENTLEMAN, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x1917e9, -1 - person_event SPRITE_RECEPTIONIST, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ReceptionistScript_0x191821, -1 - person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x191824, -1 - person_event SPRITE_TEACHER, 2, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x19186b, -1 - person_event SPRITE_FAIRY, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, FairyScript_0x19186e, EVENT_VERMILION_FAN_CLUB_DOLL - person_event SPRITE_ODDISH, 3, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OddishScript_0x191871, -1 + person_event SPRITE_GENTLEMAN, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x1917e9, -1 + person_event SPRITE_RECEPTIONIST, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x191821, -1 + person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FisherScript_0x191824, -1 + person_event SPRITE_TEACHER, 2, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x19186b, -1 + person_event SPRITE_FAIRY, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FairyScript_0x19186e, EVENT_VERMILION_FAN_CLUB_DOLL + person_event SPRITE_ODDISH, 3, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, OddishScript_0x191871, -1 diff --git a/maps/PowerPlant.asm b/maps/PowerPlant.asm index bbe11d568..1c97b73fc 100644 --- a/maps/PowerPlant.asm +++ b/maps/PowerPlant.asm @@ -401,10 +401,10 @@ PowerPlant_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_OFFICER, 14, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OfficerScript_0x188df5, -1 - person_event SPRITE_GYM_GUY, 9, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GymGuyScript_0x188e15, -1 - person_event SPRITE_GYM_GUY, 11, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GymGuyScript_0x188e29, -1 - person_event SPRITE_OFFICER, 3, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OfficerScript_0x188e3d, -1 - person_event SPRITE_GYM_GUY, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GymGuyScript_0x188e51, -1 - person_event SPRITE_FISHER, 10, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PowerPlantManager, -1 - person_event SPRITE_GYM_GUY, 5, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GymGuyScript_0x188ecb, -1 + person_event SPRITE_OFFICER, 14, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, OfficerScript_0x188df5, -1 + person_event SPRITE_GYM_GUY, 9, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x188e15, -1 + person_event SPRITE_GYM_GUY, 11, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x188e29, -1 + person_event SPRITE_OFFICER, 3, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, OfficerScript_0x188e3d, -1 + person_event SPRITE_GYM_GUY, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x188e51, -1 + person_event SPRITE_FISHER, 10, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PowerPlantManager, -1 + person_event SPRITE_GYM_GUY, 5, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x188ecb, -1 diff --git a/maps/RadioTower1F.asm b/maps/RadioTower1F.asm index 84630c3b2..78cfd8f0e 100644 --- a/maps/RadioTower1F.asm +++ b/maps/RadioTower1F.asm @@ -484,9 +484,9 @@ RadioTower1F_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_RECEPTIONIST, 6, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ReceptionistScript_0x5cd29, -1 - person_event SPRITE_LASS, 4, 16, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, LassScript_0x5ce51, EVENT_GOLDENROD_CITY_CIVILIANS - person_event SPRITE_YOUNGSTER, 4, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x5ce54, EVENT_GOLDENROD_CITY_CIVILIANS - person_event SPRITE_ROCKET, 1, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM3, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_GENTLEMAN, 6, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GentlemanScript_0x5cd3d, EVENT_GOLDENROD_CITY_CIVILIANS - person_event SPRITE_COOLTRAINER_F, 6, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x5cdd5, EVENT_GOLDENROD_CITY_CIVILIANS + person_event SPRITE_RECEPTIONIST, 6, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x5cd29, -1 + person_event SPRITE_LASS, 4, 16, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, LassScript_0x5ce51, EVENT_GOLDENROD_CITY_CIVILIANS + person_event SPRITE_YOUNGSTER, 4, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5ce54, EVENT_GOLDENROD_CITY_CIVILIANS + person_event SPRITE_ROCKET, 1, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM3, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_GENTLEMAN, 6, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x5cd3d, EVENT_GOLDENROD_CITY_CIVILIANS + person_event SPRITE_COOLTRAINER_F, 6, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x5cdd5, EVENT_GOLDENROD_CITY_CIVILIANS diff --git a/maps/RadioTower2F.asm b/maps/RadioTower2F.asm index 7efe8bf1e..edca82682 100644 --- a/maps/RadioTower2F.asm +++ b/maps/RadioTower2F.asm @@ -720,14 +720,14 @@ RadioTower2F_MapEventHeader: .PersonEvents: db 11 - person_event SPRITE_SUPER_NERD, 6, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x5d6fe, EVENT_GOLDENROD_CITY_CIVILIANS - person_event SPRITE_TEACHER, 2, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, TeacherScript_0x5d701, -1 - person_event SPRITE_ROCKET, 4, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM4, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_ROCKET, 4, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM5, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_ROCKET, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 2, TrainerGruntM6, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_ROCKET_GIRL, 5, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerGruntF2, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_BLACK_BELT, 1, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x5d71f, EVENT_RADIO_TOWER_BLACKBELT_BLOCKS_STAIRS - person_event SPRITE_BLACK_BELT, 1, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x5d722, EVENT_RADIO_TOWER_CIVILIANS_AFTER - person_event SPRITE_JIGGLYPUFF, 1, 12, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, JigglypuffScript_0x5d715, -1 - person_event SPRITE_BUENA, 5, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, Buena, -1 - person_event SPRITE_RECEPTIONIST, 7, 12, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ReceptionistScript_0x5d8ff, EVENT_GOLDENROD_CITY_CIVILIANS + person_event SPRITE_SUPER_NERD, 6, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x5d6fe, EVENT_GOLDENROD_CITY_CIVILIANS + person_event SPRITE_TEACHER, 2, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, TeacherScript_0x5d701, -1 + person_event SPRITE_ROCKET, 4, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM4, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_ROCKET, 4, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM5, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_ROCKET, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerGruntM6, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_ROCKET_GIRL, 5, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerGruntF2, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_BLACK_BELT, 1, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x5d71f, EVENT_RADIO_TOWER_BLACKBELT_BLOCKS_STAIRS + person_event SPRITE_BLACK_BELT, 1, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x5d722, EVENT_RADIO_TOWER_CIVILIANS_AFTER + person_event SPRITE_JIGGLYPUFF, 1, 12, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, JigglypuffScript_0x5d715, -1 + person_event SPRITE_BUENA, 5, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, Buena, -1 + person_event SPRITE_RECEPTIONIST, 7, 12, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x5d8ff, EVENT_GOLDENROD_CITY_CIVILIANS diff --git a/maps/RadioTower3F.asm b/maps/RadioTower3F.asm index 8e3bdaf26..676bcfb83 100644 --- a/maps/RadioTower3F.asm +++ b/maps/RadioTower3F.asm @@ -343,10 +343,10 @@ RadioTower3F_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_SUPER_NERD, 4, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x5e553, EVENT_RADIO_TOWER_CIVILIANS_AFTER - person_event SPRITE_GYM_GUY, 4, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GymGuyScript_0x5e556, -1 - person_event SPRITE_COOLTRAINER_F, 3, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x5e56a, -1 - person_event SPRITE_ROCKET, 1, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 2, 2, TrainerGruntM7, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_ROCKET, 2, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM8, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_ROCKET, 6, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM9, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_SCIENTIST, 6, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 5, TrainerScientistMarc, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_SUPER_NERD, 4, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x5e553, EVENT_RADIO_TOWER_CIVILIANS_AFTER + person_event SPRITE_GYM_GUY, 4, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x5e556, -1 + person_event SPRITE_COOLTRAINER_F, 3, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x5e56a, -1 + person_event SPRITE_ROCKET, 1, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerGruntM7, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_ROCKET, 2, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM8, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_ROCKET, 6, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM9, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_SCIENTIST, 6, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 5, TrainerScientistMarc, EVENT_RADIO_TOWER_ROCKET_TAKEOVER diff --git a/maps/RadioTower4F.asm b/maps/RadioTower4F.asm index cdfe97692..061b11a17 100644 --- a/maps/RadioTower4F.asm +++ b/maps/RadioTower4F.asm @@ -257,10 +257,10 @@ RadioTower4F_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_FISHER, 4, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x5eb82, EVENT_RADIO_TOWER_CIVILIANS_AFTER - person_event SPRITE_TEACHER, 6, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x5eb85, -1 - person_event SPRITE_GROWLITHE, 7, 12, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GrowlitheScript_0x5ebb2, -1 - person_event SPRITE_ROCKET, 6, 5, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM10, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_ROCKET, 1, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 2, -1, -1, 0, 2, 2, TrainerExecutivem2, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_ROCKET_GIRL, 4, 12, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerGruntF4, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_SCIENTIST, 2, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerScientistRich, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_FISHER, 4, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x5eb82, EVENT_RADIO_TOWER_CIVILIANS_AFTER + person_event SPRITE_TEACHER, 6, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x5eb85, -1 + person_event SPRITE_GROWLITHE, 7, 12, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GrowlitheScript_0x5ebb2, -1 + person_event SPRITE_ROCKET, 6, 5, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM10, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_ROCKET, 1, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 2, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerExecutivem2, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_ROCKET_GIRL, 4, 12, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerGruntF4, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_SCIENTIST, 2, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerScientistRich, EVENT_RADIO_TOWER_ROCKET_TAKEOVER diff --git a/maps/RadioTower5F.asm b/maps/RadioTower5F.asm index 31a94eeb5..32a363e55 100644 --- a/maps/RadioTower5F.asm +++ b/maps/RadioTower5F.asm @@ -439,8 +439,8 @@ RadioTower5F_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_GENTLEMAN, 6, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, Director, -1 - person_event SPRITE_ROCKET, 5, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_ROCKET_GIRL, 2, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerExecutivef1, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_ROCKER, 5, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, Ben, EVENT_RADIO_TOWER_CIVILIANS_AFTER - person_event SPRITE_POKE_BALL, 5, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x600fe, EVENT_RADIO_TOWER_5F_ULTRA_BALL + person_event SPRITE_GENTLEMAN, 6, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Director, -1 + person_event SPRITE_ROCKET, 5, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_ROCKET_GIRL, 2, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerExecutivef1, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_ROCKER, 5, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, Ben, EVENT_RADIO_TOWER_CIVILIANS_AFTER + person_event SPRITE_POKE_BALL, 5, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x600fe, EVENT_RADIO_TOWER_5F_ULTRA_BALL diff --git a/maps/RedsHouse1F.asm b/maps/RedsHouse1F.asm index c1bfe2806..43c953e45 100644 --- a/maps/RedsHouse1F.asm +++ b/maps/RedsHouse1F.asm @@ -94,4 +94,4 @@ RedsHouse1F_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_REDS_MOM, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, RedsMom, -1 + person_event SPRITE_REDS_MOM, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RedsMom, -1 diff --git a/maps/RockTunnel1F.asm b/maps/RockTunnel1F.asm index 8843ee243..b795f5e64 100644 --- a/maps/RockTunnel1F.asm +++ b/maps/RockTunnel1F.asm @@ -42,5 +42,5 @@ RockTunnel1F_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_POKE_BALL, 18, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x743b5, EVENT_ROCK_TUNNEL_1F_ELIXER - person_event SPRITE_POKE_BALL, 15, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x743b7, EVENT_ROCK_TUNNEL_1F_TM_STEEL_WING + person_event SPRITE_POKE_BALL, 18, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x743b5, EVENT_ROCK_TUNNEL_1F_ELIXER + person_event SPRITE_POKE_BALL, 15, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x743b7, EVENT_ROCK_TUNNEL_1F_TM_STEEL_WING diff --git a/maps/RockTunnelB1F.asm b/maps/RockTunnelB1F.asm index 99722d62f..f25f4b013 100644 --- a/maps/RockTunnelB1F.asm +++ b/maps/RockTunnelB1F.asm @@ -38,6 +38,6 @@ RockTunnelB1F_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_POKE_BALL, 25, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x74409, EVENT_ROCK_TUNNEL_B1F_IRON - person_event SPRITE_POKE_BALL, 17, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7440b, EVENT_ROCK_TUNNEL_B1F_PP_UP - person_event SPRITE_POKE_BALL, 2, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7440d, EVENT_ROCK_TUNNEL_B1F_REVIVE + person_event SPRITE_POKE_BALL, 25, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x74409, EVENT_ROCK_TUNNEL_B1F_IRON + person_event SPRITE_POKE_BALL, 17, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7440b, EVENT_ROCK_TUNNEL_B1F_PP_UP + person_event SPRITE_POKE_BALL, 2, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7440d, EVENT_ROCK_TUNNEL_B1F_REVIVE diff --git a/maps/Route1.asm b/maps/Route1.asm index 1708caa9f..14d65bf9c 100644 --- a/maps/Route1.asm +++ b/maps/Route1.asm @@ -91,6 +91,6 @@ Route1_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_YOUNGSTER, 12, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSchoolboyDanny, -1 - person_event SPRITE_COOLTRAINER_F, 25, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainerfQuinn, -1 - person_event SPRITE_FRUIT_TREE, 7, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1ac581, -1 + person_event SPRITE_YOUNGSTER, 12, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerSchoolboyDanny, -1 + person_event SPRITE_COOLTRAINER_F, 25, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 2, TrainerCooltrainerfQuinn, -1 + person_event SPRITE_FRUIT_TREE, 7, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1ac581, -1 diff --git a/maps/Route10PokeCenter1F.asm b/maps/Route10PokeCenter1F.asm index cea3cbd7a..76b39967f 100644 --- a/maps/Route10PokeCenter1F.asm +++ b/maps/Route10PokeCenter1F.asm @@ -92,7 +92,7 @@ Route10PokeCenter1F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x188bd4, -1 - person_event SPRITE_GENTLEMAN, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GentlemanScript_0x188bd7, -1 - person_event SPRITE_GYM_GUY, 2, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GymGuyScript_0x188bda, -1 - person_event SPRITE_COOLTRAINER_F, 3, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x188bee, -1 + person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x188bd4, -1 + person_event SPRITE_GENTLEMAN, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x188bd7, -1 + person_event SPRITE_GYM_GUY, 2, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x188bda, -1 + person_event SPRITE_COOLTRAINER_F, 3, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x188bee, -1 diff --git a/maps/Route10South.asm b/maps/Route10South.asm index 477d03c20..2e4c36ff4 100644 --- a/maps/Route10South.asm +++ b/maps/Route10South.asm @@ -88,5 +88,5 @@ Route10South_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_POKEFAN_M, 3, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerJim, -1 - person_event SPRITE_POKEFAN_M, 10, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmRobert, -1 + person_event SPRITE_POKEFAN_M, 3, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerHikerJim, -1 + person_event SPRITE_POKEFAN_M, 10, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerPokefanmRobert, -1 diff --git a/maps/Route11.asm b/maps/Route11.asm index 0ec066825..ccbfe1499 100644 --- a/maps/Route11.asm +++ b/maps/Route11.asm @@ -156,8 +156,8 @@ Route11_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_YOUNGSTER, 14, 22, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterOwen, -1 - person_event SPRITE_YOUNGSTER, 4, 20, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterJason, -1 - person_event SPRITE_YOUNGSTER, 7, 28, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerPsychicHerman, -1 - person_event SPRITE_YOUNGSTER, 6, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicFidel, -1 - person_event SPRITE_FRUIT_TREE, 2, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x68055, -1 + person_event SPRITE_YOUNGSTER, 14, 22, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerYoungsterOwen, -1 + person_event SPRITE_YOUNGSTER, 4, 20, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerYoungsterJason, -1 + person_event SPRITE_YOUNGSTER, 7, 28, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerPsychicHerman, -1 + person_event SPRITE_YOUNGSTER, 6, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPsychicFidel, -1 + person_event SPRITE_FRUIT_TREE, 2, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x68055, -1 diff --git a/maps/Route12.asm b/maps/Route12.asm index f5632d2ca..3f4d06fa4 100644 --- a/maps/Route12.asm +++ b/maps/Route12.asm @@ -178,9 +178,9 @@ Route12_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_FISHER, 13, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherMartin, -1 - person_event SPRITE_FISHER, 23, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherStephen, -1 - person_event SPRITE_FISHER, 38, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 5, TrainerFisherBarney, -1 - person_event SPRITE_FISHER, 7, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerFisherKyle, -1 - person_event SPRITE_POKE_BALL, 43, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a700b, EVENT_ROUTE_12_CALCIUM - person_event SPRITE_POKE_BALL, 51, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a700d, EVENT_ROUTE_12_NUGGET + person_event SPRITE_FISHER, 13, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerFisherMartin, -1 + person_event SPRITE_FISHER, 23, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerFisherStephen, -1 + person_event SPRITE_FISHER, 38, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 5, TrainerFisherBarney, -1 + person_event SPRITE_FISHER, 7, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerFisherKyle, -1 + person_event SPRITE_POKE_BALL, 43, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a700b, EVENT_ROUTE_12_CALCIUM + person_event SPRITE_POKE_BALL, 51, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a700d, EVENT_ROUTE_12_NUGGET diff --git a/maps/Route12SuperRodHouse.asm b/maps/Route12SuperRodHouse.asm index 4fd67e033..8c5840b95 100644 --- a/maps/Route12SuperRodHouse.asm +++ b/maps/Route12SuperRodHouse.asm @@ -93,4 +93,4 @@ Route12SuperRodHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_FISHING_GURU, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FishingGuruScript_0x7f484, -1 + person_event SPRITE_FISHING_GURU, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x7f484, -1 diff --git a/maps/Route13.asm b/maps/Route13.asm index ff6292440..77b5b1fe5 100644 --- a/maps/Route13.asm +++ b/maps/Route13.asm @@ -204,8 +204,8 @@ Route13_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_YOUNGSTER, 6, 42, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerBird_keeperPerry, -1 - person_event SPRITE_YOUNGSTER, 6, 43, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerBird_keeperBret, -1 - person_event SPRITE_POKEFAN_M, 8, 32, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmJoshua, -1 - person_event SPRITE_POKEFAN_M, 10, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerHikerKenny, -1 - person_event SPRITE_POKEFAN_M, 6, 25, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerPokefanmAlex, -1 + person_event SPRITE_YOUNGSTER, 6, 42, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerBird_keeperPerry, -1 + person_event SPRITE_YOUNGSTER, 6, 43, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerBird_keeperBret, -1 + person_event SPRITE_POKEFAN_M, 8, 32, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerPokefanmJoshua, -1 + person_event SPRITE_POKEFAN_M, 10, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerHikerKenny, -1 + person_event SPRITE_POKEFAN_M, 6, 25, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerPokefanmAlex, -1 diff --git a/maps/Route14.asm b/maps/Route14.asm index ed68dd97f..0c62003d7 100644 --- a/maps/Route14.asm +++ b/maps/Route14.asm @@ -124,7 +124,7 @@ Route14_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_POKEFAN_M, 15, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmCarter, -1 - person_event SPRITE_YOUNGSTER, 27, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperRoy, -1 - person_event SPRITE_POKEFAN_M, 11, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmTrevor, -1 - person_event SPRITE_TEACHER, 5, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 4, TeacherScript_0x1ad47f, -1 + person_event SPRITE_POKEFAN_M, 15, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerPokefanmCarter, -1 + person_event SPRITE_YOUNGSTER, 27, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBird_keeperRoy, -1 + person_event SPRITE_POKEFAN_M, 11, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerPokefanmTrevor, -1 + person_event SPRITE_TEACHER, 5, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 4, TeacherScript_0x1ad47f, -1 diff --git a/maps/Route15.asm b/maps/Route15.asm index 0dbcfd80e..0f52d8daa 100644 --- a/maps/Route15.asm +++ b/maps/Route15.asm @@ -210,10 +210,10 @@ Route15_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_YOUNGSTER, 10, 10, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSchoolboyKipp, -1 - person_event SPRITE_YOUNGSTER, 13, 15, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSchoolboyTommy, -1 - person_event SPRITE_YOUNGSTER, 10, 33, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSchoolboyJohnny, -1 - person_event SPRITE_YOUNGSTER, 10, 27, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSchoolboyBilly, -1 - person_event SPRITE_TEACHER, 12, 30, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerTeacherColette, -1 - person_event SPRITE_TEACHER, 10, 20, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerTeacherHillary, -1 - person_event SPRITE_POKE_BALL, 5, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1aa5e4, EVENT_ROUTE_15_PP_UP + person_event SPRITE_YOUNGSTER, 10, 10, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerSchoolboyKipp, -1 + person_event SPRITE_YOUNGSTER, 13, 15, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSchoolboyTommy, -1 + person_event SPRITE_YOUNGSTER, 10, 33, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSchoolboyJohnny, -1 + person_event SPRITE_YOUNGSTER, 10, 27, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSchoolboyBilly, -1 + person_event SPRITE_TEACHER, 12, 30, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerTeacherColette, -1 + person_event SPRITE_TEACHER, 10, 20, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerTeacherHillary, -1 + person_event SPRITE_POKE_BALL, 5, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1aa5e4, EVENT_ROUTE_15_PP_UP diff --git a/maps/Route15FuchsiaGate.asm b/maps/Route15FuchsiaGate.asm index 7edf797c9..9576ccd51 100644 --- a/maps/Route15FuchsiaGate.asm +++ b/maps/Route15FuchsiaGate.asm @@ -35,4 +35,4 @@ Route15FuchsiaGate_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x19679e, -1 + person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x19679e, -1 diff --git a/maps/Route16FuchsiaSpeechHouse.asm b/maps/Route16FuchsiaSpeechHouse.asm index fcd3ad5fa..80bcfbb26 100644 --- a/maps/Route16FuchsiaSpeechHouse.asm +++ b/maps/Route16FuchsiaSpeechHouse.asm @@ -38,4 +38,4 @@ Route16FuchsiaSpeechHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_SUPER_NERD, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x73373, -1 + person_event SPRITE_SUPER_NERD, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x73373, -1 diff --git a/maps/Route16Gate.asm b/maps/Route16Gate.asm index 085afbf2a..bae75eac6 100644 --- a/maps/Route16Gate.asm +++ b/maps/Route16Gate.asm @@ -80,4 +80,4 @@ Route16Gate_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x733ea, -1 + person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x733ea, -1 diff --git a/maps/Route17.asm b/maps/Route17.asm index 3c7166198..994f91628 100644 --- a/maps/Route17.asm +++ b/maps/Route17.asm @@ -150,7 +150,7 @@ Route17_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_BIKER, 17, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 4, TrainerBikerRiley, -1 - person_event SPRITE_BIKER, 68, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerBikerJoel, -1 - person_event SPRITE_BIKER, 53, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBikerGlenn, -1 - person_event SPRITE_BIKER, 80, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 4, TrainerBikerCharles, -1 + person_event SPRITE_BIKER, 17, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 4, TrainerBikerRiley, -1 + person_event SPRITE_BIKER, 68, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 1, TrainerBikerJoel, -1 + person_event SPRITE_BIKER, 53, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerBikerGlenn, -1 + person_event SPRITE_BIKER, 80, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 4, TrainerBikerCharles, -1 diff --git a/maps/Route1718Gate.asm b/maps/Route1718Gate.asm index 2558d5a5f..1d8b9eb43 100644 --- a/maps/Route1718Gate.asm +++ b/maps/Route1718Gate.asm @@ -71,4 +71,4 @@ Route1718Gate_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x7360e, -1 + person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x7360e, -1 diff --git a/maps/Route18.asm b/maps/Route18.asm index bbdb33ca0..e846e52f9 100644 --- a/maps/Route18.asm +++ b/maps/Route18.asm @@ -91,5 +91,5 @@ Route18_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_YOUNGSTER, 12, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperBoris, -1 - person_event SPRITE_YOUNGSTER, 6, 13, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperBob, -1 + person_event SPRITE_YOUNGSTER, 12, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBird_keeperBoris, -1 + person_event SPRITE_YOUNGSTER, 6, 13, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBird_keeperBob, -1 diff --git a/maps/Route19.asm b/maps/Route19.asm index 824d2c2f4..aa38af4ed 100644 --- a/maps/Route19.asm +++ b/maps/Route19.asm @@ -247,9 +247,9 @@ Route19_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_SWIMMER_GIRL, 23, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 0, TrainerSwimmerfDawn, -1 - person_event SPRITE_SWIMMER_GUY, 28, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermHarold, -1 - person_event SPRITE_SWIMMER_GUY, 17, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermJerome, -1 - person_event SPRITE_SWIMMER_GUY, 23, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 0, TrainerSwimmermTucker, -1 - person_event SPRITE_FISHER, 5, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 1, FisherScript_0x19ea4d, -1 - person_event SPRITE_FISHER, 5, 11, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 1, FisherScript_0x19ea61, -1 + person_event SPRITE_SWIMMER_GIRL, 23, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 0, TrainerSwimmerfDawn, -1 + person_event SPRITE_SWIMMER_GUY, 28, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerSwimmermHarold, -1 + person_event SPRITE_SWIMMER_GUY, 17, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerSwimmermJerome, -1 + person_event SPRITE_SWIMMER_GUY, 23, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 0, TrainerSwimmermTucker, -1 + person_event SPRITE_FISHER, 5, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 1, FisherScript_0x19ea4d, -1 + person_event SPRITE_FISHER, 5, 11, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 1, FisherScript_0x19ea61, -1 diff --git a/maps/Route19FuchsiaGate.asm b/maps/Route19FuchsiaGate.asm index cce480c65..7fb3fb0a4 100644 --- a/maps/Route19FuchsiaGate.asm +++ b/maps/Route19FuchsiaGate.asm @@ -61,4 +61,4 @@ Route19FuchsiaGate_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x1ab3f6, -1 + person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x1ab3f6, -1 diff --git a/maps/Route2.asm b/maps/Route2.asm index 0731b5820..d9748f40b 100644 --- a/maps/Route2.asm +++ b/maps/Route2.asm @@ -162,11 +162,11 @@ Route2_MapEventHeader: .PersonEvents: db 8 - person_event SPRITE_BUG_CATCHER, 45, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 5, TrainerBug_catcherRob, -1 - person_event SPRITE_BUG_CATCHER, 4, 6, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherEd, -1 - person_event SPRITE_BUG_CATCHER, 40, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherDoug, -1 - person_event SPRITE_POKE_BALL, 29, 0, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac2fe, EVENT_ROUTE_2_DIRE_HIT - person_event SPRITE_POKE_BALL, 23, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac300, EVENT_ROUTE_2_MAX_POTION - person_event SPRITE_POKE_BALL, 2, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac302, EVENT_ROUTE_2_CARBOS - person_event SPRITE_POKE_BALL, 50, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac304, EVENT_ROUTE_2_ELIXER - person_event SPRITE_FRUIT_TREE, 14, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1ac306, -1 + person_event SPRITE_BUG_CATCHER, 45, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 5, TrainerBug_catcherRob, -1 + person_event SPRITE_BUG_CATCHER, 4, 6, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerBug_catcherEd, -1 + person_event SPRITE_BUG_CATCHER, 40, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerBug_catcherDoug, -1 + person_event SPRITE_POKE_BALL, 29, 0, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1ac2fe, EVENT_ROUTE_2_DIRE_HIT + person_event SPRITE_POKE_BALL, 23, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1ac300, EVENT_ROUTE_2_MAX_POTION + person_event SPRITE_POKE_BALL, 2, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1ac302, EVENT_ROUTE_2_CARBOS + person_event SPRITE_POKE_BALL, 50, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1ac304, EVENT_ROUTE_2_ELIXER + person_event SPRITE_FRUIT_TREE, 14, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1ac306, -1 diff --git a/maps/Route20.asm b/maps/Route20.asm index 3d821258a..86a0ad424 100644 --- a/maps/Route20.asm +++ b/maps/Route20.asm @@ -127,6 +127,6 @@ Route20_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_SWIMMER_GIRL, 8, 52, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfNicole, -1 - person_event SPRITE_SWIMMER_GIRL, 13, 45, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfLori, -1 - person_event SPRITE_SWIMMER_GUY, 13, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermCameron, -1 + person_event SPRITE_SWIMMER_GIRL, 8, 52, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerSwimmerfNicole, -1 + person_event SPRITE_SWIMMER_GIRL, 13, 45, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerSwimmerfLori, -1 + person_event SPRITE_SWIMMER_GUY, 13, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerSwimmermCameron, -1 diff --git a/maps/Route21.asm b/maps/Route21.asm index 852fc28cf..36620ae53 100644 --- a/maps/Route21.asm +++ b/maps/Route21.asm @@ -99,6 +99,6 @@ Route21_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_SWIMMER_GIRL, 16, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfNikki, -1 - person_event SPRITE_SWIMMER_GUY, 30, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerSwimmermSeth, -1 - person_event SPRITE_FISHER, 22, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherArnold, -1 + person_event SPRITE_SWIMMER_GIRL, 16, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerSwimmerfNikki, -1 + person_event SPRITE_SWIMMER_GUY, 30, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerSwimmermSeth, -1 + person_event SPRITE_FISHER, 22, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerFisherArnold, -1 diff --git a/maps/Route24.asm b/maps/Route24.asm index 2d8efbb8f..081bde6a7 100644 --- a/maps/Route24.asm +++ b/maps/Route24.asm @@ -130,4 +130,4 @@ Route24_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_ROCKET, 7, 8, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x1adbfa, EVENT_ROUTE_24_ROCKET + person_event SPRITE_ROCKET, 7, 8, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x1adbfa, EVENT_ROUTE_24_ROCKET diff --git a/maps/Route25.asm b/maps/Route25.asm index 8fdad8bda..12a60ef65 100644 --- a/maps/Route25.asm +++ b/maps/Route25.asm @@ -439,14 +439,14 @@ Route25_MapEventHeader: .PersonEvents: db 11 - person_event SPRITE_MISTY, 9, 46, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, EVENT_ROUTE_25_MISTY_BOYFRIEND - person_event SPRITE_COOLTRAINER_M, 10, 46, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ObjectEvent, EVENT_ROUTE_25_MISTY_BOYFRIEND - person_event SPRITE_YOUNGSTER, 8, 12, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSchoolboyDudley, -1 - person_event SPRITE_LASS, 11, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerLassEllen, -1 - person_event SPRITE_YOUNGSTER, 8, 21, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSchoolboyJoe, -1 - person_event SPRITE_LASS, 6, 22, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerLassLaura, -1 - person_event SPRITE_YOUNGSTER, 4, 25, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerCamperLloyd, -1 - person_event SPRITE_LASS, 11, 28, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerLassShannon, -1 - person_event SPRITE_SUPER_NERD, 7, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerSupernerdPat, -1 - person_event SPRITE_COOLTRAINER_M, 8, 37, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x19efac, -1 - person_event SPRITE_POKE_BALL, 4, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19efe3, EVENT_ROUTE_25_PROTEIN + person_event SPRITE_MISTY, 9, 46, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_ROUTE_25_MISTY_BOYFRIEND + person_event SPRITE_COOLTRAINER_M, 10, 46, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_ROUTE_25_MISTY_BOYFRIEND + person_event SPRITE_YOUNGSTER, 8, 12, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSchoolboyDudley, -1 + person_event SPRITE_LASS, 11, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerLassEllen, -1 + person_event SPRITE_YOUNGSTER, 8, 21, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerSchoolboyJoe, -1 + person_event SPRITE_LASS, 6, 22, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerLassLaura, -1 + person_event SPRITE_YOUNGSTER, 4, 25, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 2, TrainerCamperLloyd, -1 + person_event SPRITE_LASS, 11, 28, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerLassShannon, -1 + person_event SPRITE_SUPER_NERD, 7, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 1, TrainerSupernerdPat, -1 + person_event SPRITE_COOLTRAINER_M, 8, 37, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x19efac, -1 + person_event SPRITE_POKE_BALL, 4, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x19efe3, EVENT_ROUTE_25_PROTEIN diff --git a/maps/Route26.asm b/maps/Route26.asm index 50a54ad75..f24ab10ac 100644 --- a/maps/Route26.asm +++ b/maps/Route26.asm @@ -421,11 +421,11 @@ Route26_MapEventHeader: .PersonEvents: db 8 - person_event SPRITE_COOLTRAINER_M, 24, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainermJake, -1 - person_event SPRITE_COOLTRAINER_M, 38, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainermGaven3, -1 - person_event SPRITE_COOLTRAINER_F, 56, 10, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfJoyce, -1 - person_event SPRITE_COOLTRAINER_F, 8, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerCooltrainerfBeth1, -1 - person_event SPRITE_YOUNGSTER, 79, 13, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPsychicRichard, -1 - person_event SPRITE_FISHER, 92, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerFisherScott, -1 - person_event SPRITE_FRUIT_TREE, 54, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a4ec2, -1 - person_event SPRITE_POKE_BALL, 15, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a4ec4, EVENT_ROUTE_26_MAX_ELIXER + person_event SPRITE_COOLTRAINER_M, 24, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 2, TrainerCooltrainermJake, -1 + person_event SPRITE_COOLTRAINER_M, 38, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerCooltrainermGaven3, -1 + person_event SPRITE_COOLTRAINER_F, 56, 10, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerCooltrainerfJoyce, -1 + person_event SPRITE_COOLTRAINER_F, 8, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerCooltrainerfBeth1, -1 + person_event SPRITE_YOUNGSTER, 79, 13, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerPsychicRichard, -1 + person_event SPRITE_FISHER, 92, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerFisherScott, -1 + person_event SPRITE_FRUIT_TREE, 54, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a4ec2, -1 + person_event SPRITE_POKE_BALL, 15, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a4ec4, EVENT_ROUTE_26_MAX_ELIXER diff --git a/maps/Route26DayofWeekSiblingsHouse.asm b/maps/Route26DayofWeekSiblingsHouse.asm index 294394016..ae8cd10b5 100644 --- a/maps/Route26DayofWeekSiblingsHouse.asm +++ b/maps/Route26DayofWeekSiblingsHouse.asm @@ -84,4 +84,4 @@ Route26DayofWeekSiblingsHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKEDEX, 3, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, PokedexScript_0x7b1e4, -1 + person_event SPRITE_POKEDEX, 3, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokedexScript_0x7b1e4, -1 diff --git a/maps/Route26HealSpeechHouse.asm b/maps/Route26HealSpeechHouse.asm index 5e3fa30e6..785daaeb2 100644 --- a/maps/Route26HealSpeechHouse.asm +++ b/maps/Route26HealSpeechHouse.asm @@ -64,4 +64,4 @@ Route26HealSpeechHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x7b125, -1 + person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7b125, -1 diff --git a/maps/Route27.asm b/maps/Route27.asm index 98319f426..08351a33c 100644 --- a/maps/Route27.asm +++ b/maps/Route27.asm @@ -479,12 +479,12 @@ Route27_MapEventHeader: .PersonEvents: db 9 - person_event SPRITE_COOLTRAINER_M, 7, 48, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainermBlake, -1 - person_event SPRITE_COOLTRAINER_M, 6, 58, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerCooltrainermBrian, -1 - person_event SPRITE_COOLTRAINER_F, 10, 72, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerCooltrainerfReena, -1 - person_event SPRITE_COOLTRAINER_F, 6, 37, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainerfMegan, -1 - person_event SPRITE_YOUNGSTER, 7, 65, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicGilbert, -1 - person_event SPRITE_YOUNGSTER, 13, 58, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperJose2, -1 - person_event SPRITE_POKE_BALL, 12, 60, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a0a62, EVENT_ROUTE_27_TM_SOLARBEAM - person_event SPRITE_POKE_BALL, 12, 53, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a0a64, EVENT_ROUTE_27_RARE_CANDY - person_event SPRITE_FISHER, 10, 21, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 3, FisherScript_0x1a089c, -1 + person_event SPRITE_COOLTRAINER_M, 7, 48, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerCooltrainermBlake, -1 + person_event SPRITE_COOLTRAINER_M, 6, 58, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerCooltrainermBrian, -1 + person_event SPRITE_COOLTRAINER_F, 10, 72, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerCooltrainerfReena, -1 + person_event SPRITE_COOLTRAINER_F, 6, 37, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 2, TrainerCooltrainerfMegan, -1 + person_event SPRITE_YOUNGSTER, 7, 65, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPsychicGilbert, -1 + person_event SPRITE_YOUNGSTER, 13, 58, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBird_keeperJose2, -1 + person_event SPRITE_POKE_BALL, 12, 60, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a0a62, EVENT_ROUTE_27_TM_SOLARBEAM + person_event SPRITE_POKE_BALL, 12, 53, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a0a64, EVENT_ROUTE_27_RARE_CANDY + person_event SPRITE_FISHER, 10, 21, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 3, FisherScript_0x1a089c, -1 diff --git a/maps/Route27SandstormHouse.asm b/maps/Route27SandstormHouse.asm index a219b935d..afb5b69e6 100644 --- a/maps/Route27SandstormHouse.asm +++ b/maps/Route27SandstormHouse.asm @@ -109,4 +109,4 @@ Route27SandstormHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_GRANNY, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, SandstormHouseWoman, -1 + person_event SPRITE_GRANNY, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SandstormHouseWoman, -1 diff --git a/maps/Route28FamousSpeechHouse.asm b/maps/Route28FamousSpeechHouse.asm index c2c63ba71..c72bfaea3 100644 --- a/maps/Route28FamousSpeechHouse.asm +++ b/maps/Route28FamousSpeechHouse.asm @@ -87,5 +87,5 @@ Route28FamousSpeechHouse_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_COOLTRAINER_F, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, Celebrity, -1 - person_event SPRITE_MOLTRES, 5, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CelebritysFearow, -1 + person_event SPRITE_COOLTRAINER_F, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, Celebrity, -1 + person_event SPRITE_MOLTRES, 5, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, CelebritysFearow, -1 diff --git a/maps/Route29.asm b/maps/Route29.asm index f8a26bffe..a0d50b8f2 100644 --- a/maps/Route29.asm +++ b/maps/Route29.asm @@ -430,11 +430,11 @@ Route29_MapEventHeader: .PersonEvents: db 8 - person_event SPRITE_COOLTRAINER_M, 12, 50, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x1a0ff1, -1 - person_event SPRITE_YOUNGSTER, 16, 27, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a1028, -1 - person_event SPRITE_TEACHER, 11, 15, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x1a102b, -1 - person_event SPRITE_FRUIT_TREE, 2, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a1089, -1 - person_event SPRITE_FISHER, 3, 25, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FisherScript_0x1a102e, -1 - person_event SPRITE_COOLTRAINER_M, 4, 13, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x1a1031, -1 - person_event SPRITE_TEACHER, 12, 29, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, TuscanyScript, EVENT_ROUTE_29_TUSCANY_OF_TUESDAY - person_event SPRITE_POKE_BALL, 2, 48, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a108b, EVENT_ROUTE_29_POTION + person_event SPRITE_COOLTRAINER_M, 12, 50, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x1a0ff1, -1 + person_event SPRITE_YOUNGSTER, 16, 27, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a1028, -1 + person_event SPRITE_TEACHER, 11, 15, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1a102b, -1 + person_event SPRITE_FRUIT_TREE, 2, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a1089, -1 + person_event SPRITE_FISHER, 3, 25, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, FisherScript_0x1a102e, -1 + person_event SPRITE_COOLTRAINER_M, 4, 13, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x1a1031, -1 + person_event SPRITE_TEACHER, 12, 29, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TuscanyScript, EVENT_ROUTE_29_TUSCANY_OF_TUESDAY + person_event SPRITE_POKE_BALL, 2, 48, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a108b, EVENT_ROUTE_29_POTION diff --git a/maps/Route2946Gate.asm b/maps/Route2946Gate.asm index e5728f6a1..476574864 100644 --- a/maps/Route2946Gate.asm +++ b/maps/Route2946Gate.asm @@ -51,5 +51,5 @@ Route2946Gate_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x7b5bb, -1 - person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x7b5be, -1 + person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x7b5bb, -1 + person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x7b5be, -1 diff --git a/maps/Route2Gate.asm b/maps/Route2Gate.asm index 1cb97ff83..e93fa496c 100644 --- a/maps/Route2Gate.asm +++ b/maps/Route2Gate.asm @@ -41,4 +41,4 @@ Route2Gate_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_SCIENTIST, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x9b952, -1 + person_event SPRITE_SCIENTIST, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x9b952, -1 diff --git a/maps/Route2NuggetSpeechHouse.asm b/maps/Route2NuggetSpeechHouse.asm index 143897a9d..bb0cbad93 100644 --- a/maps/Route2NuggetSpeechHouse.asm +++ b/maps/Route2NuggetSpeechHouse.asm @@ -66,4 +66,4 @@ Route2NuggetSpeechHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_FISHER, 4, 2, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FisherScript_0x9b847, -1 + person_event SPRITE_FISHER, 4, 2, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, FisherScript_0x9b847, -1 diff --git a/maps/Route3.asm b/maps/Route3.asm index 7e482ceb8..e8333b9a4 100644 --- a/maps/Route3.asm +++ b/maps/Route3.asm @@ -143,7 +143,7 @@ Route3_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_FISHER, 12, 26, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerFirebreatherOtis, -1 - person_event SPRITE_YOUNGSTER, 7, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterWarren, -1 - person_event SPRITE_YOUNGSTER, 3, 16, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerYoungsterJimmy, -1 - person_event SPRITE_FISHER, 5, 49, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerFirebreatherBurt, -1 + person_event SPRITE_FISHER, 12, 26, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 2, TrainerFirebreatherOtis, -1 + person_event SPRITE_YOUNGSTER, 7, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerYoungsterWarren, -1 + person_event SPRITE_YOUNGSTER, 3, 16, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerYoungsterJimmy, -1 + person_event SPRITE_FISHER, 5, 49, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerFirebreatherBurt, -1 diff --git a/maps/Route30.asm b/maps/Route30.asm index a6c0fc7b3..ebc3e9c54 100644 --- a/maps/Route30.asm +++ b/maps/Route30.asm @@ -416,14 +416,14 @@ Route30_MapEventHeader: .PersonEvents: db 11 - person_event SPRITE_YOUNGSTER, 26, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x1a1673, EVENT_ROUTE_30_BATTLE - person_event SPRITE_YOUNGSTER, 28, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterJoey, EVENT_ROUTE_30_YOUNGSTER_JOEY - person_event SPRITE_YOUNGSTER, 23, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerYoungsterMikey, -1 - person_event SPRITE_BUG_CATCHER, 7, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherDon, -1 - person_event SPRITE_YOUNGSTER, 30, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x1a17d2, -1 - person_event SPRITE_MONSTER, 24, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, EVENT_ROUTE_30_BATTLE - person_event SPRITE_MONSTER, 25, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_ROUTE_30_BATTLE - person_event SPRITE_FRUIT_TREE, 39, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a17f7, -1 - person_event SPRITE_FRUIT_TREE, 5, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a17f9, -1 - person_event SPRITE_COOLTRAINER_F, 13, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x1a17e6, -1 - person_event SPRITE_POKE_BALL, 35, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a17f5, EVENT_ROUTE_30_ANTIDOTE + person_event SPRITE_YOUNGSTER, 26, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a1673, EVENT_ROUTE_30_BATTLE + person_event SPRITE_YOUNGSTER, 28, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerYoungsterJoey, EVENT_ROUTE_30_YOUNGSTER_JOEY + person_event SPRITE_YOUNGSTER, 23, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerYoungsterMikey, -1 + person_event SPRITE_BUG_CATCHER, 7, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerBug_catcherDon, -1 + person_event SPRITE_YOUNGSTER, 30, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a17d2, -1 + person_event SPRITE_MONSTER, 24, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_ROUTE_30_BATTLE + person_event SPRITE_MONSTER, 25, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_ROUTE_30_BATTLE + person_event SPRITE_FRUIT_TREE, 39, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a17f7, -1 + person_event SPRITE_FRUIT_TREE, 5, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a17f9, -1 + person_event SPRITE_COOLTRAINER_F, 13, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x1a17e6, -1 + person_event SPRITE_POKE_BALL, 35, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a17f5, EVENT_ROUTE_30_ANTIDOTE diff --git a/maps/Route30BerrySpeechHouse.asm b/maps/Route30BerrySpeechHouse.asm index 177f93781..e0c100815 100644 --- a/maps/Route30BerrySpeechHouse.asm +++ b/maps/Route30BerrySpeechHouse.asm @@ -62,4 +62,4 @@ Route30BerrySpeechHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x196d64, -1 + person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x196d64, -1 diff --git a/maps/Route31.asm b/maps/Route31.asm index 0273a9669..fc0bc87a4 100644 --- a/maps/Route31.asm +++ b/maps/Route31.asm @@ -430,10 +430,10 @@ Route31_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_FISHER, 7, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x1a5570, -1 - person_event SPRITE_YOUNGSTER, 5, 9, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, YoungsterScript_0x1a55ed, -1 - person_event SPRITE_BUG_CATCHER, 13, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 5, TrainerBug_catcherWade1, -1 - person_event SPRITE_COOLTRAINER_M, 8, 33, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, CooltrainerMScript_0x1a55f6, -1 - person_event SPRITE_FRUIT_TREE, 7, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a55f9, -1 - person_event SPRITE_POKE_BALL, 5, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a55fb, EVENT_ROUTE_31_POTION - person_event SPRITE_POKE_BALL, 15, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a55fd, EVENT_ROUTE_31_POKE_BALL + person_event SPRITE_FISHER, 7, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FisherScript_0x1a5570, -1 + person_event SPRITE_YOUNGSTER, 5, 9, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a55ed, -1 + person_event SPRITE_BUG_CATCHER, 13, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 5, TrainerBug_catcherWade1, -1 + person_event SPRITE_COOLTRAINER_M, 8, 33, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x1a55f6, -1 + person_event SPRITE_FRUIT_TREE, 7, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a55f9, -1 + person_event SPRITE_POKE_BALL, 5, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a55fb, EVENT_ROUTE_31_POTION + person_event SPRITE_POKE_BALL, 15, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a55fd, EVENT_ROUTE_31_POKE_BALL diff --git a/maps/Route31VioletGate.asm b/maps/Route31VioletGate.asm index 0ea2105cf..e55b02d6f 100644 --- a/maps/Route31VioletGate.asm +++ b/maps/Route31VioletGate.asm @@ -42,5 +42,5 @@ Route31VioletGate_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x197634, -1 - person_event SPRITE_COOLTRAINER_F, 2, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CooltrainerFScript_0x197637, -1 + person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x197634, -1 + person_event SPRITE_COOLTRAINER_F, 2, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x197637, -1 diff --git a/maps/Route32.asm b/maps/Route32.asm index 2387b8153..da557fde9 100644 --- a/maps/Route32.asm +++ b/maps/Route32.asm @@ -946,17 +946,17 @@ Route32_MapEventHeader: .PersonEvents: db 14 - person_event SPRITE_FISHER, 49, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherJustin, -1 - person_event SPRITE_FISHER, 56, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerFisherRalph1, -1 - person_event SPRITE_FISHER, 48, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherHenry, -1 - person_event SPRITE_YOUNGSTER, 22, 12, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterAlbert, -1 - person_event SPRITE_YOUNGSTER, 63, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterGordon, -1 - person_event SPRITE_YOUNGSTER, 45, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerCamperRoland, -1 - person_event SPRITE_LASS, 30, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerPicnickerLiz1, -1 - person_event SPRITE_COOLTRAINER_M, 8, 19, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x19046f, -1 - person_event SPRITE_YOUNGSTER, 82, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperPeter, -1 - person_event SPRITE_FISHER, 70, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x1904f2, EVENT_SLOWPOKE_WELL_ROCKETS - person_event SPRITE_POKE_BALL, 53, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x190773, EVENT_ROUTE_32_GREAT_BALL - person_event SPRITE_FISHER, 13, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x1904ce, -1 - person_event SPRITE_LASS, 67, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, FriedaScript, EVENT_ROUTE_32_FRIEDA_OF_FRIDAY - person_event SPRITE_POKE_BALL, 30, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x190775, EVENT_ROUTE_32_REPEL + person_event SPRITE_FISHER, 49, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerFisherJustin, -1 + person_event SPRITE_FISHER, 56, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerFisherRalph1, -1 + person_event SPRITE_FISHER, 48, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerFisherHenry, -1 + person_event SPRITE_YOUNGSTER, 22, 12, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerYoungsterAlbert, -1 + person_event SPRITE_YOUNGSTER, 63, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerYoungsterGordon, -1 + person_event SPRITE_YOUNGSTER, 45, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerCamperRoland, -1 + person_event SPRITE_LASS, 30, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerPicnickerLiz1, -1 + person_event SPRITE_COOLTRAINER_M, 8, 19, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x19046f, -1 + person_event SPRITE_YOUNGSTER, 82, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBird_keeperPeter, -1 + person_event SPRITE_FISHER, 70, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FisherScript_0x1904f2, EVENT_SLOWPOKE_WELL_ROCKETS + person_event SPRITE_POKE_BALL, 53, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x190773, EVENT_ROUTE_32_GREAT_BALL + person_event SPRITE_FISHER, 13, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FisherScript_0x1904ce, -1 + person_event SPRITE_LASS, 67, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FriedaScript, EVENT_ROUTE_32_FRIEDA_OF_FRIDAY + person_event SPRITE_POKE_BALL, 30, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x190775, EVENT_ROUTE_32_REPEL diff --git a/maps/Route32PokeCenter1F.asm b/maps/Route32PokeCenter1F.asm index eaff59e08..439aecbb6 100644 --- a/maps/Route32PokeCenter1F.asm +++ b/maps/Route32PokeCenter1F.asm @@ -107,6 +107,6 @@ Route32PokeCenter1F_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x69b52, -1 - person_event SPRITE_FISHING_GURU, 4, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FishingGuruScript_0x69b55, -1 - person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerFScript_0x69b80, -1 + person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x69b52, -1 + person_event SPRITE_FISHING_GURU, 4, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x69b55, -1 + person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x69b80, -1 diff --git a/maps/Route32RuinsofAlphGate.asm b/maps/Route32RuinsofAlphGate.asm index 525247282..4f43f5121 100644 --- a/maps/Route32RuinsofAlphGate.asm +++ b/maps/Route32RuinsofAlphGate.asm @@ -60,6 +60,6 @@ Route32RuinsofAlphGate_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x69a2d, -1 - person_event SPRITE_POKEFAN_M, 2, 8, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x69a30, -1 - person_event SPRITE_YOUNGSTER, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x69a33, -1 + person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x69a2d, -1 + person_event SPRITE_POKEFAN_M, 2, 8, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x69a30, -1 + person_event SPRITE_YOUNGSTER, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x69a33, -1 diff --git a/maps/Route33.asm b/maps/Route33.asm index 37f445ba3..aec3c72df 100644 --- a/maps/Route33.asm +++ b/maps/Route33.asm @@ -206,6 +206,6 @@ Route33_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_POKEFAN_M, 13, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerAnthony, -1 - person_event SPRITE_LASS, 16, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LassScript_0x1ac002, -1 - person_event SPRITE_FRUIT_TREE, 16, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1ac0ea, -1 + person_event SPRITE_POKEFAN_M, 13, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerHikerAnthony, -1 + person_event SPRITE_LASS, 16, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, LassScript_0x1ac002, -1 + person_event SPRITE_FRUIT_TREE, 16, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1ac0ea, -1 diff --git a/maps/Route34.asm b/maps/Route34.asm index 81e5d7024..0b336311e 100644 --- a/maps/Route34.asm +++ b/maps/Route34.asm @@ -775,16 +775,16 @@ Route34_MapEventHeader: .PersonEvents: db 13 - person_event SPRITE_YOUNGSTER, 7, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 5, TrainerCamperTodd1, -1 - person_event SPRITE_YOUNGSTER, 32, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterSamuel, -1 - person_event SPRITE_YOUNGSTER, 20, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterIan, -1 - person_event SPRITE_LASS, 26, 10, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerPicnickerGina1, -1 - person_event SPRITE_OFFICER, 11, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x7824c, -1 - person_event SPRITE_POKEFAN_M, 28, 18, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmBrandon, -1 - person_event SPRITE_GRAMPS, 16, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x7803d, EVENT_DAYCARE_MAN_ON_ROUTE_34 - person_event SPRITE_DAYCARE_MON_1, 18, 14, SPRITEMOVEDATA_POKEMON, 2, 2, -1, -1, 0, 0, 0, DaycareMon1Script_0x78065, EVENT_DAYCARE_MON_1 - person_event SPRITE_DAYCARE_MON_2, 19, 17, SPRITEMOVEDATA_POKEMON, 2, 2, -1, -1, 0, 0, 0, DaycareMon2Script_0x7806b, EVENT_DAYCARE_MON_2 - person_event SPRITE_COOLTRAINER_F, 48, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 5, TrainerCooltrainerfIrene, -1 - person_event SPRITE_COOLTRAINER_F, 48, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfJenn, -1 - person_event SPRITE_COOLTRAINER_F, 51, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainerfKate, -1 - person_event SPRITE_POKE_BALL, 30, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7832b, EVENT_ROUTE_34_NUGGET + person_event SPRITE_YOUNGSTER, 7, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 5, TrainerCamperTodd1, -1 + person_event SPRITE_YOUNGSTER, 32, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerYoungsterSamuel, -1 + person_event SPRITE_YOUNGSTER, 20, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerYoungsterIan, -1 + person_event SPRITE_LASS, 26, 10, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerPicnickerGina1, -1 + person_event SPRITE_OFFICER, 11, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x7824c, -1 + person_event SPRITE_POKEFAN_M, 28, 18, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerPokefanmBrandon, -1 + person_event SPRITE_GRAMPS, 16, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x7803d, EVENT_DAYCARE_MAN_ON_ROUTE_34 + person_event SPRITE_DAYCARE_MON_1, 18, 14, SPRITEMOVEDATA_POKEMON, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DaycareMon1Script_0x78065, EVENT_DAYCARE_MON_1 + person_event SPRITE_DAYCARE_MON_2, 19, 17, SPRITEMOVEDATA_POKEMON, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DaycareMon2Script_0x7806b, EVENT_DAYCARE_MON_2 + person_event SPRITE_COOLTRAINER_F, 48, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 5, TrainerCooltrainerfIrene, -1 + person_event SPRITE_COOLTRAINER_F, 48, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerCooltrainerfJenn, -1 + person_event SPRITE_COOLTRAINER_F, 51, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 2, TrainerCooltrainerfKate, -1 + person_event SPRITE_POKE_BALL, 30, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7832b, EVENT_ROUTE_34_NUGGET diff --git a/maps/Route34IlexForestGate.asm b/maps/Route34IlexForestGate.asm index 2144132ae..78c161082 100644 --- a/maps/Route34IlexForestGate.asm +++ b/maps/Route34IlexForestGate.asm @@ -152,7 +152,7 @@ Route34IlexForestGate_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_TEACHER, 3, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x62d63, EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_BEHIND_COUNTER - person_event SPRITE_BUTTERFREE, 4, 9, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ButterfreeScript_0x62d8a, -1 - person_event SPRITE_LASS, 4, 3, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x62d94, EVENT_ROUTE_34_ILEX_FOREST_GATE_LASS - person_event SPRITE_TEACHER, 7, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x62d63, EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_IN_WALKWAY + person_event SPRITE_TEACHER, 3, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x62d63, EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_BEHIND_COUNTER + person_event SPRITE_BUTTERFREE, 4, 9, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ButterfreeScript_0x62d8a, -1 + person_event SPRITE_LASS, 4, 3, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x62d94, EVENT_ROUTE_34_ILEX_FOREST_GATE_LASS + person_event SPRITE_TEACHER, 7, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x62d63, EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_IN_WALKWAY diff --git a/maps/Route35.asm b/maps/Route35.asm index 2ec57fe28..05ba5f863 100644 --- a/maps/Route35.asm +++ b/maps/Route35.asm @@ -469,14 +469,14 @@ Route35_MapEventHeader: .PersonEvents: db 11 - person_event SPRITE_YOUNGSTER, 19, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerCamperIvan, -1 - person_event SPRITE_YOUNGSTER, 20, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerCamperElliot, -1 - person_event SPRITE_LASS, 20, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerPicnickerBrooke, -1 - person_event SPRITE_LASS, 26, 10, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerPicnickerKim, -1 - person_event SPRITE_YOUNGSTER, 28, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 0, TrainerBird_keeperBryan, -1 - person_event SPRITE_FISHER, 10, 2, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerFirebreatherWalt, -1 - person_event SPRITE_BUG_CATCHER, 7, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherArnie1, -1 - person_event SPRITE_SUPER_NERD, 10, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerJugglerIrwin, -1 - person_event SPRITE_OFFICER, 6, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x19ca49, -1 - person_event SPRITE_FRUIT_TREE, 25, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19ca7e, -1 - person_event SPRITE_POKE_BALL, 16, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19ca7c, EVENT_ROUTE_35_TM_ROLLOUT + person_event SPRITE_YOUNGSTER, 19, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 2, TrainerCamperIvan, -1 + person_event SPRITE_YOUNGSTER, 20, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerCamperElliot, -1 + person_event SPRITE_LASS, 20, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerPicnickerBrooke, -1 + person_event SPRITE_LASS, 26, 10, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerPicnickerKim, -1 + person_event SPRITE_YOUNGSTER, 28, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 0, TrainerBird_keeperBryan, -1 + person_event SPRITE_FISHER, 10, 2, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 2, TrainerFirebreatherWalt, -1 + person_event SPRITE_BUG_CATCHER, 7, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerBug_catcherArnie1, -1 + person_event SPRITE_SUPER_NERD, 10, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerJugglerIrwin, -1 + person_event SPRITE_OFFICER, 6, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x19ca49, -1 + person_event SPRITE_FRUIT_TREE, 25, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x19ca7e, -1 + person_event SPRITE_POKE_BALL, 16, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x19ca7c, EVENT_ROUTE_35_TM_ROLLOUT diff --git a/maps/Route35Goldenrodgate.asm b/maps/Route35Goldenrodgate.asm index 9c735e599..161aa3e1f 100644 --- a/maps/Route35Goldenrodgate.asm +++ b/maps/Route35Goldenrodgate.asm @@ -209,6 +209,6 @@ Route35Goldenrodgate_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x69d37, -1 - person_event SPRITE_POKEFAN_F, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, PokefanFScript_0x69dc6, -1 - person_event SPRITE_FISHER, 2, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x69dda, -1 + person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x69d37, -1 + person_event SPRITE_POKEFAN_F, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x69dc6, -1 + person_event SPRITE_FISHER, 2, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x69dda, -1 diff --git a/maps/Route35NationalParkgate.asm b/maps/Route35NationalParkgate.asm index c95707c78..ba5c3516a 100644 --- a/maps/Route35NationalParkgate.asm +++ b/maps/Route35NationalParkgate.asm @@ -458,6 +458,6 @@ Route35NationalParkgate_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_OFFICER, 1, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OfficerScript_0x6a204, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY - person_event SPRITE_YOUNGSTER, 5, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x6a2d8, EVENT_ROUTE_35_NATIONAL_PARK_GATE_YOUNGSTER - person_event SPRITE_OFFICER, 3, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OfficerScript_0x6a2ca, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY + person_event SPRITE_OFFICER, 1, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, OfficerScript_0x6a204, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY + person_event SPRITE_YOUNGSTER, 5, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x6a2d8, EVENT_ROUTE_35_NATIONAL_PARK_GATE_YOUNGSTER + person_event SPRITE_OFFICER, 3, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, OfficerScript_0x6a2ca, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY diff --git a/maps/Route36.asm b/maps/Route36.asm index 8c7dda3b6..50ceeba5f 100644 --- a/maps/Route36.asm +++ b/maps/Route36.asm @@ -679,12 +679,12 @@ Route36_MapEventHeader: .PersonEvents: db 9 - person_event SPRITE_YOUNGSTER, 13, 20, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicMark, -1 - person_event SPRITE_YOUNGSTER, 14, 31, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 5, TrainerSchoolboyAlan1, -1 - person_event SPRITE_WEIRD_TREE, 9, 35, SPRITEMOVEDATA_SUDOWOODO, 0, 0, -1, -1, 0, 0, 0, WeirdTreeScript_0x19403c, EVENT_ROUTE_36_SUDOWOODO - person_event SPRITE_LASS, 8, 51, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, 0, 0, LassScript_0x1940e0, -1 - person_event SPRITE_FISHER, 9, 44, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x1940b9, -1 - person_event SPRITE_FRUIT_TREE, 4, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x194247, -1 - person_event SPRITE_YOUNGSTER, 6, 46, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, ArthurScript, EVENT_ROUTE_36_ARTHUR_OF_THURSDAY - person_event SPRITE_LASS, 12, 33, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LassScript_0x19408c, EVENT_FLORIA_AT_SUDOWOODO - person_event SPRITE_SUICUNE, 6, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_SAW_SUICUNE_ON_ROUTE_36 + person_event SPRITE_YOUNGSTER, 13, 20, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPsychicMark, -1 + person_event SPRITE_YOUNGSTER, 14, 31, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 5, TrainerSchoolboyAlan1, -1 + person_event SPRITE_WEIRD_TREE, 9, 35, SPRITEMOVEDATA_SUDOWOODO, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, WeirdTreeScript_0x19403c, EVENT_ROUTE_36_SUDOWOODO + person_event SPRITE_LASS, 8, 51, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x1940e0, -1 + person_event SPRITE_FISHER, 9, 44, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FisherScript_0x1940b9, -1 + person_event SPRITE_FRUIT_TREE, 4, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x194247, -1 + person_event SPRITE_YOUNGSTER, 6, 46, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ArthurScript, EVENT_ROUTE_36_ARTHUR_OF_THURSDAY + person_event SPRITE_LASS, 12, 33, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, LassScript_0x19408c, EVENT_FLORIA_AT_SUDOWOODO + person_event SPRITE_SUICUNE, 6, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_SAW_SUICUNE_ON_ROUTE_36 diff --git a/maps/Route36NationalParkgate.asm b/maps/Route36NationalParkgate.asm index 4ae506977..03c8c2474 100644 --- a/maps/Route36NationalParkgate.asm +++ b/maps/Route36NationalParkgate.asm @@ -862,15 +862,15 @@ Route36NationalParkgate_MapEventHeader: .PersonEvents: db 12 - person_event SPRITE_OFFICER, 3, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, Route36OfficerScriptContest, EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY - person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x6ad06, EVENT_BUG_CATCHING_CONTESTANT_1B - person_event SPRITE_YOUNGSTER, 5, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x6ad1a, EVENT_BUG_CATCHING_CONTESTANT_2B - person_event SPRITE_ROCKER, 6, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, RockerScript_0x6ad2e, EVENT_BUG_CATCHING_CONTESTANT_3B - person_event SPRITE_POKEFAN_M, 5, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x6ad42, EVENT_BUG_CATCHING_CONTESTANT_4B - person_event SPRITE_YOUNGSTER, 7, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x6ad56, EVENT_BUG_CATCHING_CONTESTANT_5B - person_event SPRITE_YOUNGSTER, 6, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x6ad6a, EVENT_BUG_CATCHING_CONTESTANT_6B - person_event SPRITE_LASS, 6, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LassScript_0x6ad7e, EVENT_BUG_CATCHING_CONTESTANT_7B - person_event SPRITE_YOUNGSTER, 7, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x6ad92, EVENT_BUG_CATCHING_CONTESTANT_8B - person_event SPRITE_YOUNGSTER, 7, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x6ada6, EVENT_BUG_CATCHING_CONTESTANT_9B - person_event SPRITE_YOUNGSTER, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x6adba, EVENT_BUG_CATCHING_CONTESTANT_10B - person_event SPRITE_OFFICER, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OfficerScript_0x6acf4, EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY + person_event SPRITE_OFFICER, 3, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, Route36OfficerScriptContest, EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY + person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x6ad06, EVENT_BUG_CATCHING_CONTESTANT_1B + person_event SPRITE_YOUNGSTER, 5, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x6ad1a, EVENT_BUG_CATCHING_CONTESTANT_2B + person_event SPRITE_ROCKER, 6, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, RockerScript_0x6ad2e, EVENT_BUG_CATCHING_CONTESTANT_3B + person_event SPRITE_POKEFAN_M, 5, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x6ad42, EVENT_BUG_CATCHING_CONTESTANT_4B + person_event SPRITE_YOUNGSTER, 7, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x6ad56, EVENT_BUG_CATCHING_CONTESTANT_5B + person_event SPRITE_YOUNGSTER, 6, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x6ad6a, EVENT_BUG_CATCHING_CONTESTANT_6B + person_event SPRITE_LASS, 6, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, LassScript_0x6ad7e, EVENT_BUG_CATCHING_CONTESTANT_7B + person_event SPRITE_YOUNGSTER, 7, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x6ad92, EVENT_BUG_CATCHING_CONTESTANT_8B + person_event SPRITE_YOUNGSTER, 7, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x6ada6, EVENT_BUG_CATCHING_CONTESTANT_9B + person_event SPRITE_YOUNGSTER, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x6adba, EVENT_BUG_CATCHING_CONTESTANT_10B + person_event SPRITE_OFFICER, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, OfficerScript_0x6acf4, EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY diff --git a/maps/Route36RuinsofAlphgate.asm b/maps/Route36RuinsofAlphgate.asm index a528a44d5..b24097c80 100644 --- a/maps/Route36RuinsofAlphgate.asm +++ b/maps/Route36RuinsofAlphgate.asm @@ -49,5 +49,5 @@ Route36RuinsofAlphgate_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x6aa1a, -1 - person_event SPRITE_GRAMPS, 5, 7, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrampsScript_0x6aa1d, -1 + person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x6aa1a, -1 + person_event SPRITE_GRAMPS, 5, 7, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x6aa1d, -1 diff --git a/maps/Route37.asm b/maps/Route37.asm index b0b301355..868aa5966 100644 --- a/maps/Route37.asm +++ b/maps/Route37.asm @@ -249,10 +249,10 @@ Route37_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_WEIRD_TREE, 12, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsAnnandanne1, -1 - person_event SPRITE_WEIRD_TREE, 12, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsAnnandanne2, -1 - person_event SPRITE_YOUNGSTER, 6, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerPsychicGreg, -1 - person_event SPRITE_FRUIT_TREE, 5, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8e09, -1 - person_event SPRITE_BUG_CATCHER, 8, 16, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, SunnyScript, EVENT_ROUTE_37_SUNNY_OF_SUNDAY - person_event SPRITE_FRUIT_TREE, 5, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8e0b, -1 - person_event SPRITE_FRUIT_TREE, 7, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8e0d, -1 + person_event SPRITE_WEIRD_TREE, 12, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerTwinsAnnandanne1, -1 + person_event SPRITE_WEIRD_TREE, 12, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerTwinsAnnandanne2, -1 + person_event SPRITE_YOUNGSTER, 6, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerPsychicGreg, -1 + person_event SPRITE_FRUIT_TREE, 5, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a8e09, -1 + person_event SPRITE_BUG_CATCHER, 8, 16, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SunnyScript, EVENT_ROUTE_37_SUNNY_OF_SUNDAY + person_event SPRITE_FRUIT_TREE, 5, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a8e0b, -1 + person_event SPRITE_FRUIT_TREE, 7, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a8e0d, -1 diff --git a/maps/Route38.asm b/maps/Route38.asm index 3236dec8f..b7dda1d81 100644 --- a/maps/Route38.asm +++ b/maps/Route38.asm @@ -482,10 +482,10 @@ Route38_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_STANDING_YOUNGSTER, 1, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSchoolboyChad1, -1 - person_event SPRITE_LASS, 3, 15, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerLassDana1, -1 - person_event SPRITE_STANDING_YOUNGSTER, 15, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBird_keeperToby, -1 - person_event SPRITE_BUENA, 9, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBeautyValerie, -1 - person_event SPRITE_SAILOR, 5, 24, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerSailorHarry, -1 - person_event SPRITE_FRUIT_TREE, 10, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a1f33, -1 - person_event SPRITE_BUENA, 8, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBeautyOlivia, -1 + person_event SPRITE_STANDING_YOUNGSTER, 1, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerSchoolboyChad1, -1 + person_event SPRITE_LASS, 3, 15, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerLassDana1, -1 + person_event SPRITE_STANDING_YOUNGSTER, 15, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerBird_keeperToby, -1 + person_event SPRITE_BUENA, 9, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerBeautyValerie, -1 + person_event SPRITE_SAILOR, 5, 24, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerSailorHarry, -1 + person_event SPRITE_FRUIT_TREE, 10, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a1f33, -1 + person_event SPRITE_BUENA, 8, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerBeautyOlivia, -1 diff --git a/maps/Route38EcruteakGate.asm b/maps/Route38EcruteakGate.asm index a08ef214c..afeb6000c 100644 --- a/maps/Route38EcruteakGate.asm +++ b/maps/Route38EcruteakGate.asm @@ -40,4 +40,4 @@ Route38EcruteakGate_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x9cbd7, -1 + person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x9cbd7, -1 diff --git a/maps/Route39.asm b/maps/Route39.asm index e399385a8..9da2e6587 100644 --- a/maps/Route39.asm +++ b/maps/Route39.asm @@ -353,13 +353,13 @@ Route39_MapEventHeader: .PersonEvents: db 10 - person_event SPRITE_SAILOR, 29, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 5, TrainerSailorEugene, -1 - person_event SPRITE_POKEFAN_M, 22, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerPokefanmDerek1, -1 - person_event SPRITE_POKEFAN_F, 19, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerPokefanfRuth, -1 - person_event SPRITE_TAUROS, 12, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1 - person_event SPRITE_TAUROS, 11, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1 - person_event SPRITE_TAUROS, 15, 4, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1 - person_event SPRITE_TAUROS, 13, 8, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1 - person_event SPRITE_STANDING_YOUNGSTER, 7, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerPsychicNorman, -1 - person_event SPRITE_FRUIT_TREE, 3, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a5bf4, -1 - person_event SPRITE_POKEFAN_F, 22, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanFScript_0x1a5bbe, -1 + person_event SPRITE_SAILOR, 29, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 5, TrainerSailorEugene, -1 + person_event SPRITE_POKEFAN_M, 22, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerPokefanmDerek1, -1 + person_event SPRITE_POKEFAN_F, 19, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerPokefanfRuth, -1 + person_event SPRITE_TAUROS, 12, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TaurosScript_0x1a5af5, -1 + person_event SPRITE_TAUROS, 11, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TaurosScript_0x1a5af5, -1 + person_event SPRITE_TAUROS, 15, 4, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TaurosScript_0x1a5af5, -1 + person_event SPRITE_TAUROS, 13, 8, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TaurosScript_0x1a5af5, -1 + person_event SPRITE_STANDING_YOUNGSTER, 7, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 1, TrainerPsychicNorman, -1 + person_event SPRITE_FRUIT_TREE, 3, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a5bf4, -1 + person_event SPRITE_POKEFAN_F, 22, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x1a5bbe, -1 diff --git a/maps/Route39Barn.asm b/maps/Route39Barn.asm index f87519d65..d4574eac6 100644 --- a/maps/Route39Barn.asm +++ b/maps/Route39Barn.asm @@ -200,6 +200,6 @@ Route39Barn_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_TWIN, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, TwinScript_0x9cc76, -1 - person_event SPRITE_TWIN, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TwinScript_0x9cc90, -1 - person_event SPRITE_TAUROS, 3, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x9ccaa, -1 + person_event SPRITE_TWIN, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TwinScript_0x9cc76, -1 + person_event SPRITE_TWIN, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TwinScript_0x9cc90, -1 + person_event SPRITE_TAUROS, 3, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TaurosScript_0x9ccaa, -1 diff --git a/maps/Route39Farmhouse.asm b/maps/Route39Farmhouse.asm index ce736a806..7e9b06226 100644 --- a/maps/Route39Farmhouse.asm +++ b/maps/Route39Farmhouse.asm @@ -207,5 +207,5 @@ Route39Farmhouse_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_POKEFAN_M, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, PokefanMScript_0x9ceb4, -1 - person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanFScript_0x9cf0e, -1 + person_event SPRITE_POKEFAN_M, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x9ceb4, -1 + person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x9cf0e, -1 diff --git a/maps/Route4.asm b/maps/Route4.asm index 47aa42dcf..281c97f38 100644 --- a/maps/Route4.asm +++ b/maps/Route4.asm @@ -133,7 +133,7 @@ Route4_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_YOUNGSTER, 9, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperHank, -1 - person_event SPRITE_LASS, 8, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerPicnickerHope, -1 - person_event SPRITE_LASS, 6, 21, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerPicnickerSharon, -1 - person_event SPRITE_POKE_BALL, 3, 26, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ae20f, EVENT_ROUTE_4_HP_UP + person_event SPRITE_YOUNGSTER, 9, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBird_keeperHank, -1 + person_event SPRITE_LASS, 8, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 4, TrainerPicnickerHope, -1 + person_event SPRITE_LASS, 6, 21, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 4, TrainerPicnickerSharon, -1 + person_event SPRITE_POKE_BALL, 3, 26, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1ae20f, EVENT_ROUTE_4_HP_UP diff --git a/maps/Route40.asm b/maps/Route40.asm index 140eca1a1..a9947beb6 100644 --- a/maps/Route40.asm +++ b/maps/Route40.asm @@ -344,15 +344,15 @@ Route40_MapEventHeader: .PersonEvents: db 12 - person_event SPRITE_OLIVINE_RIVAL, 15, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerSwimmermSimon, -1 - person_event SPRITE_OLIVINE_RIVAL, 30, 18, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 5, TrainerSwimmermRandall, -1 - person_event SPRITE_SWIMMER_GIRL, 19, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerSwimmerfElaine, -1 - person_event SPRITE_SWIMMER_GIRL, 25, 10, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfPaula, -1 - person_event SPRITE_ROCK, 11, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, Route40Rock, -1 - person_event SPRITE_ROCK, 9, 6, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, Route40Rock, -1 - person_event SPRITE_ROCK, 8, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, Route40Rock, -1 - person_event SPRITE_LASS, 13, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, LassScript_0x1a61c4, -1 - person_event SPRITE_BUENA, 10, 8, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, MonicaScript, EVENT_ROUTE_40_MONICA_OF_MONDAY - person_event SPRITE_POKEFAN_M, 6, 7, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x1a61c7, -1 - person_event SPRITE_LASS, 4, 13, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x1a61d3, -1 - person_event SPRITE_STANDING_YOUNGSTER, 9, 16, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, StandingYoungsterScript_0x1a61d6, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR + person_event SPRITE_OLIVINE_RIVAL, 15, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerSwimmermSimon, -1 + person_event SPRITE_OLIVINE_RIVAL, 30, 18, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 5, TrainerSwimmermRandall, -1 + person_event SPRITE_SWIMMER_GIRL, 19, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 4, TrainerSwimmerfElaine, -1 + person_event SPRITE_SWIMMER_GIRL, 25, 10, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerSwimmerfPaula, -1 + person_event SPRITE_ROCK, 11, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Route40Rock, -1 + person_event SPRITE_ROCK, 9, 6, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Route40Rock, -1 + person_event SPRITE_ROCK, 8, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Route40Rock, -1 + person_event SPRITE_LASS, 13, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x1a61c4, -1 + person_event SPRITE_BUENA, 10, 8, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MonicaScript, EVENT_ROUTE_40_MONICA_OF_MONDAY + person_event SPRITE_POKEFAN_M, 6, 7, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x1a61c7, -1 + person_event SPRITE_LASS, 4, 13, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x1a61d3, -1 + person_event SPRITE_STANDING_YOUNGSTER, 9, 16, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, StandingYoungsterScript_0x1a61d6, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR diff --git a/maps/Route40BattleTowerGate.asm b/maps/Route40BattleTowerGate.asm index e8f5e6e41..9827690b3 100644 --- a/maps/Route40BattleTowerGate.asm +++ b/maps/Route40BattleTowerGate.asm @@ -88,5 +88,5 @@ Route40BattleTowerGate_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_ROCKER, 3, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, RockerScript_0x9f669, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR - person_event SPRITE_TWIN, 5, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, TwinScript_0x9f66c, -1 + person_event SPRITE_ROCKER, 3, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, RockerScript_0x9f669, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR + person_event SPRITE_TWIN, 5, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, TwinScript_0x9f66c, -1 diff --git a/maps/Route41.asm b/maps/Route41.asm index d30932a29..31ecded71 100644 --- a/maps/Route41.asm +++ b/maps/Route41.asm @@ -349,13 +349,13 @@ Route41_MapEventHeader: .PersonEvents: db 10 - person_event SPRITE_OLIVINE_RIVAL, 6, 32, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermCharlie, -1 - person_event SPRITE_OLIVINE_RIVAL, 8, 46, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermGeorge, -1 - person_event SPRITE_OLIVINE_RIVAL, 26, 20, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermBerke, -1 - person_event SPRITE_OLIVINE_RIVAL, 30, 32, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermKirk, -1 - person_event SPRITE_OLIVINE_RIVAL, 46, 19, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermMathew, -1 - person_event SPRITE_SWIMMER_GIRL, 4, 17, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfKaylee, -1 - person_event SPRITE_SWIMMER_GIRL, 19, 23, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfSusie, -1 - person_event SPRITE_SWIMMER_GIRL, 34, 27, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfDenise, -1 - person_event SPRITE_SWIMMER_GIRL, 28, 44, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerSwimmerfKara, -1 - person_event SPRITE_SWIMMER_GIRL, 50, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerSwimmerfWendy, -1 + person_event SPRITE_OLIVINE_RIVAL, 6, 32, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerSwimmermCharlie, -1 + person_event SPRITE_OLIVINE_RIVAL, 8, 46, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerSwimmermGeorge, -1 + person_event SPRITE_OLIVINE_RIVAL, 26, 20, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerSwimmermBerke, -1 + person_event SPRITE_OLIVINE_RIVAL, 30, 32, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerSwimmermKirk, -1 + person_event SPRITE_OLIVINE_RIVAL, 46, 19, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerSwimmermMathew, -1 + person_event SPRITE_SWIMMER_GIRL, 4, 17, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerSwimmerfKaylee, -1 + person_event SPRITE_SWIMMER_GIRL, 19, 23, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerSwimmerfSusie, -1 + person_event SPRITE_SWIMMER_GIRL, 34, 27, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerSwimmerfDenise, -1 + person_event SPRITE_SWIMMER_GIRL, 28, 44, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 4, TrainerSwimmerfKara, -1 + person_event SPRITE_SWIMMER_GIRL, 50, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 2, TrainerSwimmerfWendy, -1 diff --git a/maps/Route42.asm b/maps/Route42.asm index 00033853c..6f01af5c1 100644 --- a/maps/Route42.asm +++ b/maps/Route42.asm @@ -336,12 +336,12 @@ Route42_MapEventHeader: .PersonEvents: db 9 - person_event SPRITE_FISHER, 10, 40, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherTully1, -1 - person_event SPRITE_POKEFAN_M, 9, 51, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerBenjamin, -1 - person_event SPRITE_SUPER_NERD, 8, 47, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacShane, -1 - person_event SPRITE_FRUIT_TREE, 16, 27, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a934d, -1 - person_event SPRITE_FRUIT_TREE, 16, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a934f, -1 - person_event SPRITE_FRUIT_TREE, 16, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a9351, -1 - person_event SPRITE_POKE_BALL, 4, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a9349, EVENT_ROUTE_42_ULTRA_BALL - person_event SPRITE_POKE_BALL, 8, 33, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a934b, EVENT_ROUTE_42_SUPER_POTION - person_event SPRITE_SUICUNE, 16, 26, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_SAW_SUICUNE_ON_ROUTE_42 + person_event SPRITE_FISHER, 10, 40, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerFisherTully1, -1 + person_event SPRITE_POKEFAN_M, 9, 51, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerHikerBenjamin, -1 + person_event SPRITE_SUPER_NERD, 8, 47, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPokemaniacShane, -1 + person_event SPRITE_FRUIT_TREE, 16, 27, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a934d, -1 + person_event SPRITE_FRUIT_TREE, 16, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a934f, -1 + person_event SPRITE_FRUIT_TREE, 16, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a9351, -1 + person_event SPRITE_POKE_BALL, 4, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a9349, EVENT_ROUTE_42_ULTRA_BALL + person_event SPRITE_POKE_BALL, 8, 33, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a934b, EVENT_ROUTE_42_SUPER_POTION + person_event SPRITE_SUICUNE, 16, 26, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_SAW_SUICUNE_ON_ROUTE_42 diff --git a/maps/Route42EcruteakGate.asm b/maps/Route42EcruteakGate.asm index d8fa8bd76..773b7279d 100644 --- a/maps/Route42EcruteakGate.asm +++ b/maps/Route42EcruteakGate.asm @@ -35,4 +35,4 @@ Route42EcruteakGate_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x19a4b5, -1 + person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x19a4b5, -1 diff --git a/maps/Route43.asm b/maps/Route43.asm index f348133dc..2eee50867 100644 --- a/maps/Route43.asm +++ b/maps/Route43.asm @@ -516,11 +516,11 @@ Route43_MapEventHeader: .PersonEvents: db 8 - person_event SPRITE_SUPER_NERD, 5, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPokemaniacBen, -1 - person_event SPRITE_SUPER_NERD, 20, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacBrent1, -1 - person_event SPRITE_SUPER_NERD, 7, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPokemaniacRon, -1 - person_event SPRITE_FISHER, 16, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerFisherMarvin, -1 - person_event SPRITE_LASS, 25, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerPicnickerTiffany3, -1 - person_event SPRITE_YOUNGSTER, 40, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerCamperSpencer, -1 - person_event SPRITE_FRUIT_TREE, 26, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19d266, -1 - person_event SPRITE_POKE_BALL, 32, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19d268, EVENT_ROUTE_43_MAX_ETHER + person_event SPRITE_SUPER_NERD, 5, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerPokemaniacBen, -1 + person_event SPRITE_SUPER_NERD, 20, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPokemaniacBrent1, -1 + person_event SPRITE_SUPER_NERD, 7, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerPokemaniacRon, -1 + person_event SPRITE_FISHER, 16, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 4, TrainerFisherMarvin, -1 + person_event SPRITE_LASS, 25, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 2, TrainerPicnickerTiffany3, -1 + person_event SPRITE_YOUNGSTER, 40, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerCamperSpencer, -1 + person_event SPRITE_FRUIT_TREE, 26, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x19d266, -1 + person_event SPRITE_POKE_BALL, 32, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x19d268, EVENT_ROUTE_43_MAX_ETHER diff --git a/maps/Route43Gate.asm b/maps/Route43Gate.asm index c863bc937..c4fafdf81 100644 --- a/maps/Route43Gate.asm +++ b/maps/Route43Gate.asm @@ -264,6 +264,6 @@ Route43Gate_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x19ac85, EVENT_LAKE_OF_RAGE_CIVILIANS - person_event SPRITE_ROCKET, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x19ac82, EVENT_ROUTE_43_GATE_ROCKETS - person_event SPRITE_ROCKET, 4, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x19ac82, EVENT_ROUTE_43_GATE_ROCKETS + person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x19ac85, EVENT_LAKE_OF_RAGE_CIVILIANS + person_event SPRITE_ROCKET, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x19ac82, EVENT_ROUTE_43_GATE_ROCKETS + person_event SPRITE_ROCKET, 4, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x19ac82, EVENT_ROUTE_43_GATE_ROCKETS diff --git a/maps/Route43MahoganyGate.asm b/maps/Route43MahoganyGate.asm index c0d9974bb..e3f750a44 100644 --- a/maps/Route43MahoganyGate.asm +++ b/maps/Route43MahoganyGate.asm @@ -54,4 +54,4 @@ Route43MahoganyGate_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x19ab0b, -1 + person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x19ab0b, -1 diff --git a/maps/Route44.asm b/maps/Route44.asm index ca1935065..d6b661d81 100644 --- a/maps/Route44.asm +++ b/maps/Route44.asm @@ -513,14 +513,14 @@ Route44_MapEventHeader: .PersonEvents: db 11 - person_event SPRITE_FISHER, 3, 35, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherWilton1, -1 - person_event SPRITE_FISHER, 13, 19, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherEdgar, -1 - person_event SPRITE_YOUNGSTER, 9, 10, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicPhil, -1 - person_event SPRITE_SUPER_NERD, 2, 43, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerPokemaniacZach, -1 - person_event SPRITE_YOUNGSTER, 5, 51, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerBird_keeperVance1, -1 - person_event SPRITE_COOLTRAINER_M, 15, 41, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 5, TrainerCooltrainermAllen, -1 - person_event SPRITE_COOLTRAINER_F, 14, 31, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 5, TrainerCooltrainerfCybil, -1 - person_event SPRITE_FRUIT_TREE, 5, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19da40, -1 - person_event SPRITE_POKE_BALL, 8, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19da42, EVENT_ROUTE_44_MAX_REVIVE - person_event SPRITE_POKE_BALL, 4, 45, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19da44, EVENT_ROUTE_44_ULTRA_BALL - person_event SPRITE_POKE_BALL, 9, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19da46, EVENT_ROUTE_44_MAX_REPEL + person_event SPRITE_FISHER, 3, 35, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerFisherWilton1, -1 + person_event SPRITE_FISHER, 13, 19, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerFisherEdgar, -1 + person_event SPRITE_YOUNGSTER, 9, 10, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPsychicPhil, -1 + person_event SPRITE_SUPER_NERD, 2, 43, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerPokemaniacZach, -1 + person_event SPRITE_YOUNGSTER, 5, 51, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 2, TrainerBird_keeperVance1, -1 + person_event SPRITE_COOLTRAINER_M, 15, 41, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 5, TrainerCooltrainermAllen, -1 + person_event SPRITE_COOLTRAINER_F, 14, 31, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 5, TrainerCooltrainerfCybil, -1 + person_event SPRITE_FRUIT_TREE, 5, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x19da40, -1 + person_event SPRITE_POKE_BALL, 8, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x19da42, EVENT_ROUTE_44_MAX_REVIVE + person_event SPRITE_POKE_BALL, 4, 45, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x19da44, EVENT_ROUTE_44_ULTRA_BALL + person_event SPRITE_POKE_BALL, 9, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x19da46, EVENT_ROUTE_44_MAX_REPEL diff --git a/maps/Route45.asm b/maps/Route45.asm index e818c36ae..6f5131973 100644 --- a/maps/Route45.asm +++ b/maps/Route45.asm @@ -535,16 +535,16 @@ Route45_MapEventHeader: .PersonEvents: db 13 - person_event SPRITE_POKEFAN_M, 16, 10, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerHikerErik, -1 - person_event SPRITE_POKEFAN_M, 65, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerMichael, -1 - person_event SPRITE_POKEFAN_M, 28, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerParry, -1 - person_event SPRITE_POKEFAN_M, 65, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerHikerTimothy, -1 - person_event SPRITE_BLACK_BELT, 50, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerBlackbeltKenji, -1 - person_event SPRITE_COOLTRAINER_M, 18, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainermRyan, -1 - person_event SPRITE_COOLTRAINER_F, 36, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfKelly, -1 - person_event SPRITE_FRUIT_TREE, 82, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19e294, -1 - person_event SPRITE_POKE_BALL, 51, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e296, EVENT_ROUTE_45_NUGGET - person_event SPRITE_POKE_BALL, 66, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e298, EVENT_ROUTE_45_REVIVE - person_event SPRITE_POKE_BALL, 20, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e29a, EVENT_ROUTE_45_ELIXER - person_event SPRITE_POKE_BALL, 33, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e29c, EVENT_ROUTE_45_MAX_POTION - person_event SPRITE_YOUNGSTER, 70, 4, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x19e269, -1 + person_event SPRITE_POKEFAN_M, 16, 10, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 1, TrainerHikerErik, -1 + person_event SPRITE_POKEFAN_M, 65, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerHikerMichael, -1 + person_event SPRITE_POKEFAN_M, 28, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerHikerParry, -1 + person_event SPRITE_POKEFAN_M, 65, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 1, TrainerHikerTimothy, -1 + person_event SPRITE_BLACK_BELT, 50, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerBlackbeltKenji, -1 + person_event SPRITE_COOLTRAINER_M, 18, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerCooltrainermRyan, -1 + person_event SPRITE_COOLTRAINER_F, 36, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerCooltrainerfKelly, -1 + person_event SPRITE_FRUIT_TREE, 82, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x19e294, -1 + person_event SPRITE_POKE_BALL, 51, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x19e296, EVENT_ROUTE_45_NUGGET + person_event SPRITE_POKE_BALL, 66, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x19e298, EVENT_ROUTE_45_REVIVE + person_event SPRITE_POKE_BALL, 20, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x19e29a, EVENT_ROUTE_45_ELIXER + person_event SPRITE_POKE_BALL, 33, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x19e29c, EVENT_ROUTE_45_MAX_POTION + person_event SPRITE_YOUNGSTER, 70, 4, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x19e269, -1 diff --git a/maps/Route46.asm b/maps/Route46.asm index e7c19942f..88d046d44 100644 --- a/maps/Route46.asm +++ b/maps/Route46.asm @@ -261,9 +261,9 @@ Route46_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_POKEFAN_M, 19, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerBailey, -1 - person_event SPRITE_YOUNGSTER, 14, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerCamperTed, -1 - person_event SPRITE_LASS, 13, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerPicnickerErin1, -1 - person_event SPRITE_FRUIT_TREE, 5, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a978f, -1 - person_event SPRITE_FRUIT_TREE, 6, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a9791, -1 - person_event SPRITE_POKE_BALL, 15, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a978d, EVENT_ROUTE_46_X_SPEED + person_event SPRITE_POKEFAN_M, 19, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerHikerBailey, -1 + person_event SPRITE_YOUNGSTER, 14, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 2, TrainerCamperTed, -1 + person_event SPRITE_LASS, 13, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 2, TrainerPicnickerErin1, -1 + person_event SPRITE_FRUIT_TREE, 5, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a978f, -1 + person_event SPRITE_FRUIT_TREE, 6, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a9791, -1 + person_event SPRITE_POKE_BALL, 15, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a978d, EVENT_ROUTE_46_X_SPEED diff --git a/maps/Route5.asm b/maps/Route5.asm index 74a9949dc..607b98413 100644 --- a/maps/Route5.asm +++ b/maps/Route5.asm @@ -57,4 +57,4 @@ Route5_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKEFAN_M, 16, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x1adb19, EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH + person_event SPRITE_POKEFAN_M, 16, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x1adb19, EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH diff --git a/maps/Route5CleanseTagSpeechHouse.asm b/maps/Route5CleanseTagSpeechHouse.asm index fd60b1757..9cafc81ea 100644 --- a/maps/Route5CleanseTagSpeechHouse.asm +++ b/maps/Route5CleanseTagSpeechHouse.asm @@ -75,5 +75,5 @@ Route5CleanseTagSpeechHouse_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_GRANNY, 5, 2, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrannyScript_0x18b634, -1 - person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, TeacherScript_0x18b64f, -1 + person_event SPRITE_GRANNY, 5, 2, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, GrannyScript_0x18b634, -1 + person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, TeacherScript_0x18b64f, -1 diff --git a/maps/Route5SaffronCityGate.asm b/maps/Route5SaffronCityGate.asm index 298fbcfbf..293d53121 100644 --- a/maps/Route5SaffronCityGate.asm +++ b/maps/Route5SaffronCityGate.asm @@ -36,4 +36,4 @@ Route5SaffronCityGate_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x18b5b9, -1 + person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x18b5b9, -1 diff --git a/maps/Route5UndergroundEntrance.asm b/maps/Route5UndergroundEntrance.asm index 2e2e286e1..d56a31b26 100644 --- a/maps/Route5UndergroundEntrance.asm +++ b/maps/Route5UndergroundEntrance.asm @@ -34,4 +34,4 @@ Route5UndergroundEntrance_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_TEACHER, 2, 2, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x18b555, -1 + person_event SPRITE_TEACHER, 2, 2, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x18b555, -1 diff --git a/maps/Route6.asm b/maps/Route6.asm index 910669d54..d70ed689d 100644 --- a/maps/Route6.asm +++ b/maps/Route6.asm @@ -104,6 +104,6 @@ Route6_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_POKEFAN_M, 4, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 2, PokefanMScript_0x1ad951, EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH - person_event SPRITE_POKEFAN_M, 12, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 0, TrainerPokefanmRex, -1 - person_event SPRITE_POKEFAN_M, 12, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 0, TrainerPokefanmAllan, -1 + person_event SPRITE_POKEFAN_M, 4, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 2, PokefanMScript_0x1ad951, EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH + person_event SPRITE_POKEFAN_M, 12, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 0, TrainerPokefanmRex, -1 + person_event SPRITE_POKEFAN_M, 12, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 0, TrainerPokefanmAllan, -1 diff --git a/maps/Route6SaffronGate.asm b/maps/Route6SaffronGate.asm index 4a6770211..cb32e10c6 100644 --- a/maps/Route6SaffronGate.asm +++ b/maps/Route6SaffronGate.asm @@ -75,4 +75,4 @@ Route6SaffronGate_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x1926ea, -1 + person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x1926ea, -1 diff --git a/maps/Route7SaffronGate.asm b/maps/Route7SaffronGate.asm index 003c36245..29be287d4 100644 --- a/maps/Route7SaffronGate.asm +++ b/maps/Route7SaffronGate.asm @@ -61,4 +61,4 @@ Route7SaffronGate_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x73518, -1 + person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x73518, -1 diff --git a/maps/Route8.asm b/maps/Route8.asm index da454b477..8dc7e76b0 100644 --- a/maps/Route8.asm +++ b/maps/Route8.asm @@ -183,9 +183,9 @@ Route8_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_BIKER, 8, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 5, TrainerBikerDwayne, -1 - person_event SPRITE_BIKER, 9, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 5, TrainerBikerHarris, -1 - person_event SPRITE_BIKER, 10, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 5, TrainerBikerZeke, -1 - person_event SPRITE_SUPER_NERD, 2, 23, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerSupernerdSam, -1 - person_event SPRITE_SUPER_NERD, 12, 31, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 4, TrainerSupernerdTom, -1 - person_event SPRITE_FRUIT_TREE, 5, 33, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x6c06c, -1 + person_event SPRITE_BIKER, 8, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 5, TrainerBikerDwayne, -1 + person_event SPRITE_BIKER, 9, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 5, TrainerBikerHarris, -1 + person_event SPRITE_BIKER, 10, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 5, TrainerBikerZeke, -1 + person_event SPRITE_SUPER_NERD, 2, 23, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerSupernerdSam, -1 + person_event SPRITE_SUPER_NERD, 12, 31, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 4, TrainerSupernerdTom, -1 + person_event SPRITE_FRUIT_TREE, 5, 33, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x6c06c, -1 diff --git a/maps/Route8SaffronGate.asm b/maps/Route8SaffronGate.asm index 9764d1ff0..047599830 100644 --- a/maps/Route8SaffronGate.asm +++ b/maps/Route8SaffronGate.asm @@ -35,4 +35,4 @@ Route8SaffronGate_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x7f416, -1 + person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x7f416, -1 diff --git a/maps/Route9.asm b/maps/Route9.asm index 8afe0f978..5d13a398c 100644 --- a/maps/Route9.asm +++ b/maps/Route9.asm @@ -216,9 +216,9 @@ Route9_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_YOUNGSTER, 11, 23, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerCamperDean, -1 - person_event SPRITE_LASS, 8, 39, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerPicnickerHeidi, -1 - person_event SPRITE_YOUNGSTER, 4, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 5, TrainerCamperSid, -1 - person_event SPRITE_LASS, 15, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerPicnickerEdna, -1 - person_event SPRITE_POKEFAN_M, 3, 28, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerTim, -1 - person_event SPRITE_POKEFAN_M, 15, 36, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 4, TrainerHikerSidney, -1 + person_event SPRITE_YOUNGSTER, 11, 23, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerCamperDean, -1 + person_event SPRITE_LASS, 8, 39, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 3, TrainerPicnickerHeidi, -1 + person_event SPRITE_YOUNGSTER, 4, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 5, TrainerCamperSid, -1 + person_event SPRITE_LASS, 15, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 1, TrainerPicnickerEdna, -1 + person_event SPRITE_POKEFAN_M, 3, 28, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerHikerTim, -1 + person_event SPRITE_POKEFAN_M, 15, 36, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 4, TrainerHikerSidney, -1 diff --git a/maps/RuinsofAlphAerodactylItemRoom.asm b/maps/RuinsofAlphAerodactylItemRoom.asm index 316fadea8..07e2a2103 100644 --- a/maps/RuinsofAlphAerodactylItemRoom.asm +++ b/maps/RuinsofAlphAerodactylItemRoom.asm @@ -47,7 +47,7 @@ RuinsofAlphAerodactylItemRoom_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59ab6, EVENT_PICKED_UP_GOLD_BERRY_FROM_AERODACTYL_ITEM_ROOM - person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59ab8, EVENT_PICKED_UP_MOON_STONE_FROM_AERODACTYL_ITEM_ROOM - person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59aba, EVENT_PICKED_UP_HEAL_POWDER_FROM_AERODACTYL_ITEM_ROOM - person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59abc, EVENT_PICKED_UP_ENERGY_ROOT_FROM_AERODACTYL_ITEM_ROOM + person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59ab6, EVENT_PICKED_UP_GOLD_BERRY_FROM_AERODACTYL_ITEM_ROOM + person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59ab8, EVENT_PICKED_UP_MOON_STONE_FROM_AERODACTYL_ITEM_ROOM + person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59aba, EVENT_PICKED_UP_HEAL_POWDER_FROM_AERODACTYL_ITEM_ROOM + person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59abc, EVENT_PICKED_UP_ENERGY_ROOT_FROM_AERODACTYL_ITEM_ROOM diff --git a/maps/RuinsofAlphHoOhItemRoom.asm b/maps/RuinsofAlphHoOhItemRoom.asm index e1b93cb1c..83d5720c4 100644 --- a/maps/RuinsofAlphHoOhItemRoom.asm +++ b/maps/RuinsofAlphHoOhItemRoom.asm @@ -47,7 +47,7 @@ RuinsofAlphHoOhItemRoom_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59918, EVENT_PICKED_UP_GOLD_BERRY_FROM_HO_OH_ITEM_ROOM - person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5991a, EVENT_PICKED_UP_MYSTERYBERRY_FROM_HO_OH_ITEM_ROOM - person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5991c, EVENT_PICKED_UP_REVIVAL_HERB_FROM_HO_OH_ITEM_ROOM - person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5991e, EVENT_PICKED_UP_CHARCOAL_FROM_HO_OH_ITEM_ROOM + person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59918, EVENT_PICKED_UP_GOLD_BERRY_FROM_HO_OH_ITEM_ROOM + person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5991a, EVENT_PICKED_UP_MYSTERYBERRY_FROM_HO_OH_ITEM_ROOM + person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5991c, EVENT_PICKED_UP_REVIVAL_HERB_FROM_HO_OH_ITEM_ROOM + person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5991e, EVENT_PICKED_UP_CHARCOAL_FROM_HO_OH_ITEM_ROOM diff --git a/maps/RuinsofAlphInnerChamber.asm b/maps/RuinsofAlphInnerChamber.asm index ae5b818da..bb4b47d85 100644 --- a/maps/RuinsofAlphInnerChamber.asm +++ b/maps/RuinsofAlphInnerChamber.asm @@ -125,6 +125,6 @@ RuinsofAlphInnerChamber_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_FISHER, 7, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x58f7d, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS - person_event SPRITE_TEACHER, 13, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, TeacherScript_0x58f80, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS - person_event SPRITE_GRAMPS, 19, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrampsScript_0x58f83, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS + person_event SPRITE_FISHER, 7, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x58f7d, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS + person_event SPRITE_TEACHER, 13, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x58f80, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS + person_event SPRITE_GRAMPS, 19, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x58f83, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS diff --git a/maps/RuinsofAlphKabutoChamber.asm b/maps/RuinsofAlphKabutoChamber.asm index 295117c8c..63bd06be8 100644 --- a/maps/RuinsofAlphKabutoChamber.asm +++ b/maps/RuinsofAlphKabutoChamber.asm @@ -284,5 +284,5 @@ RuinsofAlphKabutoChamber_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_RECEPTIONIST, 5, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ReceptionistScript_0x58769, EVENT_RUINS_OF_ALPH_KABUTO_CHAMBER_RECEPTIONIST - person_event SPRITE_SCIENTIST, 1, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x587a8, -1 + person_event SPRITE_RECEPTIONIST, 5, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x58769, EVENT_RUINS_OF_ALPH_KABUTO_CHAMBER_RECEPTIONIST + person_event SPRITE_SCIENTIST, 1, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x587a8, -1 diff --git a/maps/RuinsofAlphKabutoItemRoom.asm b/maps/RuinsofAlphKabutoItemRoom.asm index a64a9ab34..19a991479 100644 --- a/maps/RuinsofAlphKabutoItemRoom.asm +++ b/maps/RuinsofAlphKabutoItemRoom.asm @@ -47,7 +47,7 @@ RuinsofAlphKabutoItemRoom_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a2, EVENT_PICKED_UP_BERRY_FROM_KABUTO_ITEM_ROOM - person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a4, EVENT_PICKED_UP_PSNCUREBERRY_FROM_KABUTO_ITEM_ROOM - person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a6, EVENT_PICKED_UP_HEAL_POWDER_FROM_KABUTO_ITEM_ROOM - person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a8, EVENT_PICKED_UP_ENERGYPOWDER_FROM_KABUTO_ITEM_ROOM + person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x599a2, EVENT_PICKED_UP_BERRY_FROM_KABUTO_ITEM_ROOM + person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x599a4, EVENT_PICKED_UP_PSNCUREBERRY_FROM_KABUTO_ITEM_ROOM + person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x599a6, EVENT_PICKED_UP_HEAL_POWDER_FROM_KABUTO_ITEM_ROOM + person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x599a8, EVENT_PICKED_UP_ENERGYPOWDER_FROM_KABUTO_ITEM_ROOM diff --git a/maps/RuinsofAlphOmanyteItemRoom.asm b/maps/RuinsofAlphOmanyteItemRoom.asm index 48b980505..0611de183 100644 --- a/maps/RuinsofAlphOmanyteItemRoom.asm +++ b/maps/RuinsofAlphOmanyteItemRoom.asm @@ -47,7 +47,7 @@ RuinsofAlphOmanyteItemRoom_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a2c, EVENT_PICKED_UP_MYSTERYBERRY_FROM_OMANYTE_ITEM_ROOM - person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a2e, EVENT_PICKED_UP_MYSTIC_WATER_FROM_OMANYTE_ITEM_ROOM - person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a30, EVENT_PICKED_UP_STARDUST_FROM_OMANYTE_ITEM_ROOM - person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a32, EVENT_PICKED_UP_STAR_PIECE_FROM_OMANYTE_ITEM_ROOM + person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59a2c, EVENT_PICKED_UP_MYSTERYBERRY_FROM_OMANYTE_ITEM_ROOM + person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59a2e, EVENT_PICKED_UP_MYSTIC_WATER_FROM_OMANYTE_ITEM_ROOM + person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59a30, EVENT_PICKED_UP_STARDUST_FROM_OMANYTE_ITEM_ROOM + person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59a32, EVENT_PICKED_UP_STAR_PIECE_FROM_OMANYTE_ITEM_ROOM diff --git a/maps/RuinsofAlphOutside.asm b/maps/RuinsofAlphOutside.asm index 019ab920e..4c5293821 100644 --- a/maps/RuinsofAlphOutside.asm +++ b/maps/RuinsofAlphOutside.asm @@ -311,8 +311,8 @@ RuinsofAlphOutside_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_YOUNGSTER, 20, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 1, TrainerPsychicNathan, -1 - person_event SPRITE_SCIENTIST, 15, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ScientistScript_0x58043, EVENT_RUINS_OF_ALPH_OUTSIDE_SCIENTIST - person_event SPRITE_FISHER, 17, 13, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x58061, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_FISHER - person_event SPRITE_YOUNGSTER, 11, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, YoungsterScript_0x58076, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS - person_event SPRITE_YOUNGSTER, 8, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5807e, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS + person_event SPRITE_YOUNGSTER, 20, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 1, TrainerPsychicNathan, -1 + person_event SPRITE_SCIENTIST, 15, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ScientistScript_0x58043, EVENT_RUINS_OF_ALPH_OUTSIDE_SCIENTIST + person_event SPRITE_FISHER, 17, 13, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x58061, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_FISHER + person_event SPRITE_YOUNGSTER, 11, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x58076, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS + person_event SPRITE_YOUNGSTER, 8, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5807e, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS diff --git a/maps/RuinsofAlphResearchCenter.asm b/maps/RuinsofAlphResearchCenter.asm index 5433134b0..59262d20b 100644 --- a/maps/RuinsofAlphResearchCenter.asm +++ b/maps/RuinsofAlphResearchCenter.asm @@ -412,6 +412,6 @@ RuinsofAlphResearchCenter_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_SCIENTIST, 5, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x591e5, -1 - person_event SPRITE_SCIENTIST, 2, 5, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x59214, -1 - person_event SPRITE_SCIENTIST, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x591d1, EVENT_RUINS_OF_ALPH_RESEARCH_CENTER_SCIENTIST + person_event SPRITE_SCIENTIST, 5, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x591e5, -1 + person_event SPRITE_SCIENTIST, 2, 5, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x59214, -1 + person_event SPRITE_SCIENTIST, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x591d1, EVENT_RUINS_OF_ALPH_RESEARCH_CENTER_SCIENTIST diff --git a/maps/SafariZoneWardensHome.asm b/maps/SafariZoneWardensHome.asm index 5e4f5621b..e3ea7f4ed 100644 --- a/maps/SafariZoneWardensHome.asm +++ b/maps/SafariZoneWardensHome.asm @@ -94,4 +94,4 @@ SafariZoneWardensHome_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_LASS, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, WardensGranddaughter, -1 + person_event SPRITE_LASS, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, WardensGranddaughter, -1 diff --git a/maps/SaffronCity.asm b/maps/SaffronCity.asm index 0955b339f..46fd6186f 100644 --- a/maps/SaffronCity.asm +++ b/maps/SaffronCity.asm @@ -295,11 +295,11 @@ SaffronCity_MapEventHeader: .PersonEvents: db 8 - person_event SPRITE_LASS, 14, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, LassScript_0x19932a, -1 - person_event SPRITE_POKEFAN_M, 30, 19, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x19933e, -1 - person_event SPRITE_COOLTRAINER_M, 7, 32, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerMScript_0x199352, -1 - person_event SPRITE_COOLTRAINER_F, 24, 20, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerFScript_0x199355, -1 - person_event SPRITE_FISHER, 12, 27, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x199358, -1 - person_event SPRITE_YOUNGSTER, 19, 15, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x19936c, -1 - person_event SPRITE_YOUNGSTER, 22, 35, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x19936f, -1 - person_event SPRITE_LASS, 8, 19, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x199372, -1 + person_event SPRITE_LASS, 14, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, LassScript_0x19932a, -1 + person_event SPRITE_POKEFAN_M, 30, 19, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x19933e, -1 + person_event SPRITE_COOLTRAINER_M, 7, 32, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x199352, -1 + person_event SPRITE_COOLTRAINER_F, 24, 20, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x199355, -1 + person_event SPRITE_FISHER, 12, 27, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x199358, -1 + person_event SPRITE_YOUNGSTER, 19, 15, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x19936c, -1 + person_event SPRITE_YOUNGSTER, 22, 35, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x19936f, -1 + person_event SPRITE_LASS, 8, 19, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x199372, -1 diff --git a/maps/SaffronGym.asm b/maps/SaffronGym.asm index f7e3ae784..0813c904a 100644 --- a/maps/SaffronGym.asm +++ b/maps/SaffronGym.asm @@ -330,9 +330,9 @@ SaffronGym_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_SABRINA, 8, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SabrinaScript_0x189c2e, -1 - person_event SPRITE_GRANNY, 16, 17, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerMediumRebecca, -1 - person_event SPRITE_YOUNGSTER, 16, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicFranklin, -1 - person_event SPRITE_GRANNY, 4, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerMediumDoris, -1 - person_event SPRITE_YOUNGSTER, 4, 17, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPsychicJared, -1 - person_event SPRITE_GYM_GUY, 14, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SaffronGymGuyScript, -1 + person_event SPRITE_SABRINA, 8, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SabrinaScript_0x189c2e, -1 + person_event SPRITE_GRANNY, 16, 17, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerMediumRebecca, -1 + person_event SPRITE_YOUNGSTER, 16, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPsychicFranklin, -1 + person_event SPRITE_GRANNY, 4, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerMediumDoris, -1 + person_event SPRITE_YOUNGSTER, 4, 17, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerPsychicJared, -1 + person_event SPRITE_GYM_GUY, 14, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SaffronGymGuyScript, -1 diff --git a/maps/SaffronMart.asm b/maps/SaffronMart.asm index ea1f211cb..de4f50a67 100644 --- a/maps/SaffronMart.asm +++ b/maps/SaffronMart.asm @@ -49,6 +49,6 @@ SaffronMart_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x18a3bf, -1 - person_event SPRITE_COOLTRAINER_M, 2, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CooltrainerMScript_0x18a3c6, -1 - person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x18a3c9, -1 + person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x18a3bf, -1 + person_event SPRITE_COOLTRAINER_M, 2, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x18a3c6, -1 + person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x18a3c9, -1 diff --git a/maps/SaffronPokeCenter1F.asm b/maps/SaffronPokeCenter1F.asm index 15d998dce..0a3202d0e 100644 --- a/maps/SaffronPokeCenter1F.asm +++ b/maps/SaffronPokeCenter1F.asm @@ -123,7 +123,7 @@ SaffronPokeCenter1F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x18a47d, -1 - person_event SPRITE_TEACHER, 2, 7, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x18a480, -1 - person_event SPRITE_FISHER, 6, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x18a48c, -1 - person_event SPRITE_YOUNGSTER, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x18a4a0, -1 + person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x18a47d, -1 + person_event SPRITE_TEACHER, 2, 7, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x18a480, -1 + person_event SPRITE_FISHER, 6, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x18a48c, -1 + person_event SPRITE_YOUNGSTER, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x18a4a0, -1 diff --git a/maps/SaffronTrainStation.asm b/maps/SaffronTrainStation.asm index 72bc19056..b79485c2e 100644 --- a/maps/SaffronTrainStation.asm +++ b/maps/SaffronTrainStation.asm @@ -231,7 +231,7 @@ SaffronTrainStation_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_OFFICER, 9, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, OfficerScript_0x18a81e, -1 - person_event SPRITE_GYM_GUY, 14, 10, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, GymGuyScript_0x18a875, -1 - person_event SPRITE_TEACHER, 11, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x18a889, EVENT_SAFFRON_TRAIN_STATION_POPULATION - person_event SPRITE_LASS, 10, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x18a88c, EVENT_SAFFRON_TRAIN_STATION_POPULATION + person_event SPRITE_OFFICER, 9, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OfficerScript_0x18a81e, -1 + person_event SPRITE_GYM_GUY, 14, 10, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x18a875, -1 + person_event SPRITE_TEACHER, 11, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x18a889, EVENT_SAFFRON_TRAIN_STATION_POPULATION + person_event SPRITE_LASS, 10, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x18a88c, EVENT_SAFFRON_TRAIN_STATION_POPULATION diff --git a/maps/SeafoamGym.asm b/maps/SeafoamGym.asm index 420ef2d3b..4b0a49491 100644 --- a/maps/SeafoamGym.asm +++ b/maps/SeafoamGym.asm @@ -171,5 +171,5 @@ SeafoamGym_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_BLAINE, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, BlaineScript_0x1ab4fb, -1 - person_event SPRITE_GYM_GUY, 5, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SeafoamGymGuyScript, EVENT_SEAFOAM_GYM_GYM_GUY + person_event SPRITE_BLAINE, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, BlaineScript_0x1ab4fb, -1 + person_event SPRITE_GYM_GUY, 5, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SeafoamGymGuyScript, EVENT_SEAFOAM_GYM_GYM_GUY diff --git a/maps/SilphCo1F.asm b/maps/SilphCo1F.asm index de52fd6f6..b5424ff25 100644 --- a/maps/SilphCo1F.asm +++ b/maps/SilphCo1F.asm @@ -68,5 +68,5 @@ SilphCo1F_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_RECEPTIONIST, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ReceptionistScript_0x18abe5, -1 - person_event SPRITE_OFFICER, 1, 13, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x18abe8, -1 + person_event SPRITE_RECEPTIONIST, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x18abe5, -1 + person_event SPRITE_OFFICER, 1, 13, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x18abe8, -1 diff --git a/maps/SilverCaveItemRooms.asm b/maps/SilverCaveItemRooms.asm index e2f998dba..19830802e 100644 --- a/maps/SilverCaveItemRooms.asm +++ b/maps/SilverCaveItemRooms.asm @@ -28,5 +28,5 @@ SilverCaveItemRooms_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c65e, EVENT_SILVER_CAVE_ITEM_ROOMS_MAX_REVIVE - person_event SPRITE_POKE_BALL, 11, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c660, EVENT_SILVER_CAVE_ITEM_ROOMS_FULL_RESTORE + person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c65e, EVENT_SILVER_CAVE_ITEM_ROOMS_MAX_REVIVE + person_event SPRITE_POKE_BALL, 11, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c660, EVENT_SILVER_CAVE_ITEM_ROOMS_FULL_RESTORE diff --git a/maps/SilverCavePokeCenter1F.asm b/maps/SilverCavePokeCenter1F.asm index 7c974a5ee..32f11f61b 100644 --- a/maps/SilverCavePokeCenter1F.asm +++ b/maps/SilverCavePokeCenter1F.asm @@ -43,5 +43,5 @@ SilverCavePokeCenter1F_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x1ae59a, -1 - person_event SPRITE_GRANNY, 5, 1, SPRITEMOVEDATA_STANDING_LEFT, 1, 2, -1, -1, 0, 0, 0, GrannyScript_0x1ae59d, -1 + person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x1ae59a, -1 + person_event SPRITE_GRANNY, 5, 1, SPRITEMOVEDATA_STANDING_LEFT, 1, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x1ae59d, -1 diff --git a/maps/SilverCaveRoom1.asm b/maps/SilverCaveRoom1.asm index 019dd016f..03c33bda2 100644 --- a/maps/SilverCaveRoom1.asm +++ b/maps/SilverCaveRoom1.asm @@ -44,7 +44,7 @@ SilverCaveRoom1_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_POKE_BALL, 9, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c554, EVENT_SILVER_CAVE_ROOM_1_MAX_ELIXER - person_event SPRITE_POKE_BALL, 29, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c556, EVENT_SILVER_CAVE_ROOM_1_PROTEIN - person_event SPRITE_POKE_BALL, 30, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c558, EVENT_SILVER_CAVE_ROOM_1_ESCAPE_ROPE - person_event SPRITE_POKE_BALL, 18, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c55a, EVENT_SILVER_CAVE_ROOM_1_ULTRA_BALL + person_event SPRITE_POKE_BALL, 9, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c554, EVENT_SILVER_CAVE_ROOM_1_MAX_ELIXER + person_event SPRITE_POKE_BALL, 29, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c556, EVENT_SILVER_CAVE_ROOM_1_PROTEIN + person_event SPRITE_POKE_BALL, 30, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c558, EVENT_SILVER_CAVE_ROOM_1_ESCAPE_ROPE + person_event SPRITE_POKE_BALL, 18, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c55a, EVENT_SILVER_CAVE_ROOM_1_ULTRA_BALL diff --git a/maps/SilverCaveRoom2.asm b/maps/SilverCaveRoom2.asm index f1095cb4e..c596024c1 100644 --- a/maps/SilverCaveRoom2.asm +++ b/maps/SilverCaveRoom2.asm @@ -38,6 +38,6 @@ SilverCaveRoom2_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_POKE_BALL, 10, 24, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c5b2, EVENT_SILVER_CAVE_ROOM_2_CALCIUM - person_event SPRITE_POKE_BALL, 24, 22, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c5b4, EVENT_SILVER_CAVE_ROOM_2_ULTRA_BALL - person_event SPRITE_POKE_BALL, 20, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c5b6, EVENT_SILVER_CAVE_ROOM_2_PP_UP + person_event SPRITE_POKE_BALL, 10, 24, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c5b2, EVENT_SILVER_CAVE_ROOM_2_CALCIUM + person_event SPRITE_POKE_BALL, 24, 22, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c5b4, EVENT_SILVER_CAVE_ROOM_2_ULTRA_BALL + person_event SPRITE_POKE_BALL, 20, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c5b6, EVENT_SILVER_CAVE_ROOM_2_PP_UP diff --git a/maps/SilverCaveRoom3.asm b/maps/SilverCaveRoom3.asm index 056e74880..194aa1717 100644 --- a/maps/SilverCaveRoom3.asm +++ b/maps/SilverCaveRoom3.asm @@ -63,4 +63,4 @@ SilverCaveRoom3_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_RED, 10, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, RedScript_0x18c603, EVENT_RED_IN_MT_SILVER + person_event SPRITE_RED, 10, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, RedScript_0x18c603, EVENT_RED_IN_MT_SILVER diff --git a/maps/SlowpokeWellB1F.asm b/maps/SlowpokeWellB1F.asm index 95ec72694..27b397543 100644 --- a/maps/SlowpokeWellB1F.asm +++ b/maps/SlowpokeWellB1F.asm @@ -326,12 +326,12 @@ SlowpokeWellB1F_MapEventHeader: .PersonEvents: db 9 - person_event SPRITE_ROCKET, 7, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM29, EVENT_SLOWPOKE_WELL_ROCKETS - person_event SPRITE_ROCKET, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 1, TrainerGruntM1, EVENT_SLOWPOKE_WELL_ROCKETS - person_event SPRITE_ROCKET, 6, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 2, 2, TrainerGruntM2, EVENT_SLOWPOKE_WELL_ROCKETS - person_event SPRITE_ROCKET_GIRL, 4, 10, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerGruntF1, EVENT_SLOWPOKE_WELL_ROCKETS - person_event SPRITE_SLOWPOKE, 4, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SlowpokeScript_0x5a681, EVENT_SLOWPOKE_WELL_SLOWPOKES - person_event SPRITE_SLOWPOKE, 2, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SlowpokeScript_0x5a695, EVENT_SLOWPOKE_WELL_SLOWPOKES - person_event SPRITE_KURT, 14, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, KurtScript_0x5a5d5, EVENT_SLOWPOKE_WELL_KURT - person_event SPRITE_BOULDER, 2, 3, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, SlowpokeWellB1FBoulder, -1 - person_event SPRITE_POKE_BALL, 3, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a6a3, EVENT_SLOWPOKE_WELL_B1F_SUPER_POTION + person_event SPRITE_ROCKET, 7, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM29, EVENT_SLOWPOKE_WELL_ROCKETS + person_event SPRITE_ROCKET, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 1, TrainerGruntM1, EVENT_SLOWPOKE_WELL_ROCKETS + person_event SPRITE_ROCKET, 6, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerGruntM2, EVENT_SLOWPOKE_WELL_ROCKETS + person_event SPRITE_ROCKET_GIRL, 4, 10, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerGruntF1, EVENT_SLOWPOKE_WELL_ROCKETS + person_event SPRITE_SLOWPOKE, 4, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SlowpokeScript_0x5a681, EVENT_SLOWPOKE_WELL_SLOWPOKES + person_event SPRITE_SLOWPOKE, 2, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SlowpokeScript_0x5a695, EVENT_SLOWPOKE_WELL_SLOWPOKES + person_event SPRITE_KURT, 14, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, KurtScript_0x5a5d5, EVENT_SLOWPOKE_WELL_KURT + person_event SPRITE_BOULDER, 2, 3, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SlowpokeWellB1FBoulder, -1 + person_event SPRITE_POKE_BALL, 3, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5a6a3, EVENT_SLOWPOKE_WELL_B1F_SUPER_POTION diff --git a/maps/SlowpokeWellB2F.asm b/maps/SlowpokeWellB2F.asm index a532cd648..f33718b12 100644 --- a/maps/SlowpokeWellB2F.asm +++ b/maps/SlowpokeWellB2F.asm @@ -73,5 +73,5 @@ SlowpokeWellB2F_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_GYM_GUY, 4, 5, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, 0, 1, GymGuyScript_0x5ad0b, -1 - person_event SPRITE_POKE_BALL, 5, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5ad28, EVENT_SLOWPOKE_WELL_B2F_TM_RAIN_DANCE + person_event SPRITE_GYM_GUY, 4, 5, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 1, GymGuyScript_0x5ad0b, -1 + person_event SPRITE_POKE_BALL, 5, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5ad28, EVENT_SLOWPOKE_WELL_B2F_TM_RAIN_DANCE diff --git a/maps/SoulHouse.asm b/maps/SoulHouse.asm index 992142d75..30b682850 100644 --- a/maps/SoulHouse.asm +++ b/maps/SoulHouse.asm @@ -83,7 +83,7 @@ SoulHouse_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_GRAMPS, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrampsScript_0x7ec47, -1 - person_event SPRITE_TEACHER, 3, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x7ec4a, -1 - person_event SPRITE_LASS, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LassScript_0x7ec4d, -1 - person_event SPRITE_GRANNY, 3, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrannyScript_0x7ec50, -1 + person_event SPRITE_GRAMPS, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GrampsScript_0x7ec47, -1 + person_event SPRITE_TEACHER, 3, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7ec4a, -1 + person_event SPRITE_LASS, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, LassScript_0x7ec4d, -1 + person_event SPRITE_GRANNY, 3, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GrannyScript_0x7ec50, -1 diff --git a/maps/SproutTower1F.asm b/maps/SproutTower1F.asm index a10f41ed8..7e0d0069a 100644 --- a/maps/SproutTower1F.asm +++ b/maps/SproutTower1F.asm @@ -116,9 +116,9 @@ SproutTower1F_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_SAGE, 4, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SageScript_0x1844fe, -1 - person_event SPRITE_SAGE, 7, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SageScript_0x184501, -1 - person_event SPRITE_GRANNY, 12, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x184504, -1 - person_event SPRITE_TEACHER, 9, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x184507, -1 - person_event SPRITE_SAGE, 5, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSageChow, -1 - person_event SPRITE_POKE_BALL, 7, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18451e, EVENT_SPROUT_TOWER1F_PARLYZ_HEAL + person_event SPRITE_SAGE, 4, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SageScript_0x1844fe, -1 + person_event SPRITE_SAGE, 7, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SageScript_0x184501, -1 + person_event SPRITE_GRANNY, 12, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x184504, -1 + person_event SPRITE_TEACHER, 9, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x184507, -1 + person_event SPRITE_SAGE, 5, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerSageChow, -1 + person_event SPRITE_POKE_BALL, 7, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18451e, EVENT_SPROUT_TOWER1F_PARLYZ_HEAL diff --git a/maps/SproutTower2F.asm b/maps/SproutTower2F.asm index 0e0b4b799..bdf50309b 100644 --- a/maps/SproutTower2F.asm +++ b/maps/SproutTower2F.asm @@ -99,6 +99,6 @@ SproutTower2F_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_SAGE, 3, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSageNico, -1 - person_event SPRITE_SAGE, 14, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 5, TrainerSageEdmond, -1 - person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1847a7, EVENT_SPROUT_TOWER2F_X_ACCURACY + person_event SPRITE_SAGE, 3, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerSageNico, -1 + person_event SPRITE_SAGE, 14, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 5, TrainerSageEdmond, -1 + person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1847a7, EVENT_SPROUT_TOWER2F_X_ACCURACY diff --git a/maps/SproutTower3F.asm b/maps/SproutTower3F.asm index da36b255a..ae55d237f 100644 --- a/maps/SproutTower3F.asm +++ b/maps/SproutTower3F.asm @@ -345,10 +345,10 @@ SproutTower3F_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_SAGE, 13, 8, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSageJin, -1 - person_event SPRITE_SAGE, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerSageTroy, -1 - person_event SPRITE_SAGE, 2, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SageLiScript, -1 - person_event SPRITE_SAGE, 11, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSageNeal, -1 - person_event SPRITE_POKE_BALL, 14, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x184a19, EVENT_SPROUT_TOWER_3F_POTION - person_event SPRITE_POKE_BALL, 1, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x184a1b, EVENT_SPROUT_TOWER_3F_ESCAPE_ROPE - person_event SPRITE_SILVER, 4, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_SPROUT_TOWER + person_event SPRITE_SAGE, 13, 8, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSageJin, -1 + person_event SPRITE_SAGE, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerSageTroy, -1 + person_event SPRITE_SAGE, 2, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SageLiScript, -1 + person_event SPRITE_SAGE, 11, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerSageNeal, -1 + person_event SPRITE_POKE_BALL, 14, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x184a19, EVENT_SPROUT_TOWER_3F_POTION + person_event SPRITE_POKE_BALL, 1, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x184a1b, EVENT_SPROUT_TOWER_3F_ESCAPE_ROPE + person_event SPRITE_SILVER, 4, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_RIVAL_SPROUT_TOWER diff --git a/maps/TeamRocketBaseB1F.asm b/maps/TeamRocketBaseB1F.asm index 29ca078b8..e9e68a97d 100644 --- a/maps/TeamRocketBaseB1F.asm +++ b/maps/TeamRocketBaseB1F.asm @@ -786,9 +786,9 @@ TeamRocketBaseB1F_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_ROCKET, 0, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_SECURITY_GRUNTS - person_event SPRITE_ROCKET, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM16, EVENT_TEAM_ROCKET_BASE_POPULATION - person_event SPRITE_SCIENTIST, 12, 18, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerScientistJed, EVENT_TEAM_ROCKET_BASE_POPULATION - person_event SPRITE_POKE_BALL, 6, 27, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6cac4, EVENT_TEAM_ROCKET_BASE_B1F_HYPER_POTION - person_event SPRITE_POKE_BALL, 15, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6cac6, EVENT_TEAM_ROCKET_BASE_B1F_NUGGET - person_event SPRITE_POKE_BALL, 12, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6cac8, EVENT_TEAM_ROCKET_BASE_B1F_GUARD_SPEC + person_event SPRITE_ROCKET, 0, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_SECURITY_GRUNTS + person_event SPRITE_ROCKET, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM16, EVENT_TEAM_ROCKET_BASE_POPULATION + person_event SPRITE_SCIENTIST, 12, 18, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerScientistJed, EVENT_TEAM_ROCKET_BASE_POPULATION + person_event SPRITE_POKE_BALL, 6, 27, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6cac4, EVENT_TEAM_ROCKET_BASE_B1F_HYPER_POTION + person_event SPRITE_POKE_BALL, 15, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6cac6, EVENT_TEAM_ROCKET_BASE_B1F_NUGGET + person_event SPRITE_POKE_BALL, 12, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6cac8, EVENT_TEAM_ROCKET_BASE_B1F_GUARD_SPEC diff --git a/maps/TeamRocketBaseB2F.asm b/maps/TeamRocketBaseB2F.asm index 7774ef97f..2a44c4652 100644 --- a/maps/TeamRocketBaseB2F.asm +++ b/maps/TeamRocketBaseB2F.asm @@ -952,17 +952,17 @@ TeamRocketBaseB2F_MapEventHeader: .PersonEvents: db 14 - person_event SPRITE_ROCKET, 16, 20, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_GRUNT_WITH_EXECUTIVE - person_event SPRITE_ROCKET_GIRL, 16, 20, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_EXECUTIVE - person_event SPRITE_LANCE, 13, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_LANCE - person_event SPRITE_DRAGON, 13, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_DRAGONITE - person_event SPRITE_VOLTORB, 5, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, VoltorbScript_0x6d101, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1 - person_event SPRITE_VOLTORB, 7, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, VoltorbScript_0x6d12c, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2 - person_event SPRITE_VOLTORB, 9, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, VoltorbScript_0x6d157, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3 - person_event SPRITE_VOLTORB, 5, 22, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1 - person_event SPRITE_VOLTORB, 7, 22, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2 - person_event SPRITE_VOLTORB, 9, 22, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3 - person_event SPRITE_ROCKET, 13, 25, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM17, EVENT_TEAM_ROCKET_BASE_POPULATION - person_event SPRITE_ROCKET, 1, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, 2, 1, TrainerGruntM18, EVENT_TEAM_ROCKET_BASE_POPULATION - person_event SPRITE_ROCKET, 14, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 2, 4, TrainerGruntM19, EVENT_TEAM_ROCKET_BASE_POPULATION - person_event SPRITE_POKE_BALL, 10, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6d20d, EVENT_TEAM_ROCKET_BASE_B2F_TM_THIEF + person_event SPRITE_ROCKET, 16, 20, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_GRUNT_WITH_EXECUTIVE + person_event SPRITE_ROCKET_GIRL, 16, 20, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_EXECUTIVE + person_event SPRITE_LANCE, 13, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_LANCE + person_event SPRITE_DRAGON, 13, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_DRAGONITE + person_event SPRITE_VOLTORB, 5, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VoltorbScript_0x6d101, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1 + person_event SPRITE_VOLTORB, 7, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VoltorbScript_0x6d12c, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2 + person_event SPRITE_VOLTORB, 9, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VoltorbScript_0x6d157, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3 + person_event SPRITE_VOLTORB, 5, 22, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1 + person_event SPRITE_VOLTORB, 7, 22, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2 + person_event SPRITE_VOLTORB, 9, 22, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3 + person_event SPRITE_ROCKET, 13, 25, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM17, EVENT_TEAM_ROCKET_BASE_POPULATION + person_event SPRITE_ROCKET, 1, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 1, TrainerGruntM18, EVENT_TEAM_ROCKET_BASE_POPULATION + person_event SPRITE_ROCKET, 14, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 4, TrainerGruntM19, EVENT_TEAM_ROCKET_BASE_POPULATION + person_event SPRITE_POKE_BALL, 10, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6d20d, EVENT_TEAM_ROCKET_BASE_B2F_TM_THIEF diff --git a/maps/TeamRocketBaseB3F.asm b/maps/TeamRocketBaseB3F.asm index 2672e2410..001ca4893 100644 --- a/maps/TeamRocketBaseB3F.asm +++ b/maps/TeamRocketBaseB3F.asm @@ -587,17 +587,17 @@ TeamRocketBaseB3F_MapEventHeader: .PersonEvents: db 14 - person_event SPRITE_LANCE, 14, 25, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, LanceScript_0x6dffc, EVENT_TEAM_ROCKET_BASE_B3F_LANCE_PASSWORDS - person_event SPRITE_ROCKET, 3, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B3F_EXECUTIVE - person_event SPRITE_MOLTRES, 2, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, MoltresScript_0x6e091, EVENT_TEAM_ROCKET_BASE_POPULATION - person_event SPRITE_ROCKET_GIRL, 7, 21, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 0, TrainerGruntF5, EVENT_TEAM_ROCKET_BASE_POPULATION - person_event SPRITE_ROCKET, 14, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM28, EVENT_TEAM_ROCKET_BASE_POPULATION - person_event SPRITE_SCIENTIST, 11, 23, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 0, TrainerScientistRoss, EVENT_TEAM_ROCKET_BASE_POPULATION - person_event SPRITE_SCIENTIST, 15, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerScientistMitch, EVENT_TEAM_ROCKET_BASE_POPULATION - person_event SPRITE_ROCKET, 14, 24, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x6e048, EVENT_TEAM_ROCKET_BASE_POPULATION - person_event SPRITE_SILVER, 5, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_TEAM_ROCKET_BASE - person_event SPRITE_POKE_BALL, 12, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e120, EVENT_TEAM_ROCKET_BASE_B3F_PROTEIN - person_event SPRITE_POKE_BALL, 12, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e122, EVENT_TEAM_ROCKET_BASE_B3F_X_SPECIAL - person_event SPRITE_POKE_BALL, 9, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e124, EVENT_TEAM_ROCKET_BASE_B3F_FULL_HEAL - person_event SPRITE_POKE_BALL, 2, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e126, EVENT_TEAM_ROCKET_BASE_B3F_ICE_HEAL - person_event SPRITE_POKE_BALL, 10, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e128, EVENT_TEAM_ROCKET_BASE_B3F_ULTRA_BALL + person_event SPRITE_LANCE, 14, 25, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LanceScript_0x6dffc, EVENT_TEAM_ROCKET_BASE_B3F_LANCE_PASSWORDS + person_event SPRITE_ROCKET, 3, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B3F_EXECUTIVE + person_event SPRITE_MOLTRES, 2, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, MoltresScript_0x6e091, EVENT_TEAM_ROCKET_BASE_POPULATION + person_event SPRITE_ROCKET_GIRL, 7, 21, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 0, TrainerGruntF5, EVENT_TEAM_ROCKET_BASE_POPULATION + person_event SPRITE_ROCKET, 14, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM28, EVENT_TEAM_ROCKET_BASE_POPULATION + person_event SPRITE_SCIENTIST, 11, 23, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 0, TrainerScientistRoss, EVENT_TEAM_ROCKET_BASE_POPULATION + person_event SPRITE_SCIENTIST, 15, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerScientistMitch, EVENT_TEAM_ROCKET_BASE_POPULATION + person_event SPRITE_ROCKET, 14, 24, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x6e048, EVENT_TEAM_ROCKET_BASE_POPULATION + person_event SPRITE_SILVER, 5, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_RIVAL_TEAM_ROCKET_BASE + person_event SPRITE_POKE_BALL, 12, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6e120, EVENT_TEAM_ROCKET_BASE_B3F_PROTEIN + person_event SPRITE_POKE_BALL, 12, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6e122, EVENT_TEAM_ROCKET_BASE_B3F_X_SPECIAL + person_event SPRITE_POKE_BALL, 9, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6e124, EVENT_TEAM_ROCKET_BASE_B3F_FULL_HEAL + person_event SPRITE_POKE_BALL, 2, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6e126, EVENT_TEAM_ROCKET_BASE_B3F_ICE_HEAL + person_event SPRITE_POKE_BALL, 10, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6e128, EVENT_TEAM_ROCKET_BASE_B3F_ULTRA_BALL diff --git a/maps/TimeCapsule.asm b/maps/TimeCapsule.asm index 9795265b6..3d9237d63 100644 --- a/maps/TimeCapsule.asm +++ b/maps/TimeCapsule.asm @@ -73,5 +73,5 @@ TimeCapsule_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_CHRIS, 4, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ChrisScript_0x19351a, EVENT_GAVE_KURT_APRICORNS - person_event SPRITE_CHRIS, 4, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ChrisScript_0x19351a, EVENT_RECEIVED_BALLS_FROM_KURT + person_event SPRITE_CHRIS, 4, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ChrisScript_0x19351a, EVENT_GAVE_KURT_APRICORNS + person_event SPRITE_CHRIS, 4, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ChrisScript_0x19351a, EVENT_RECEIVED_BALLS_FROM_KURT diff --git a/maps/TinTower1F.asm b/maps/TinTower1F.asm index 66c34d708..765764fd7 100644 --- a/maps/TinTower1F.asm +++ b/maps/TinTower1F.asm @@ -534,13 +534,13 @@ TinTower1F_MapEventHeader: .PersonEvents: db 10 - person_event SPRITE_SUICUNE, 9, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_TIN_TOWER_1F_SUICUNE - person_event SPRITE_RAIKOU, 9, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, ObjectEvent, EVENT_TIN_TOWER_1F_RAIKOU - person_event SPRITE_ENTEI, 9, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, EVENT_TIN_TOWER_1F_ENTEI - person_event SPRITE_SUPER_NERD, 3, 8, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x1851c8, EVENT_TIN_TOWER_1F_EUSINE - person_event SPRITE_SAGE, 9, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185173, EVENT_TIN_TOWER_1F_WISE_TRIO_1 - person_event SPRITE_SAGE, 11, 11, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185176, EVENT_TIN_TOWER_1F_WISE_TRIO_1 - person_event SPRITE_SAGE, 6, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185179, EVENT_TIN_TOWER_1F_WISE_TRIO_1 - person_event SPRITE_SAGE, 2, 4, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, SageScript_0x18517c, EVENT_TIN_TOWER_1F_WISE_TRIO_2 - person_event SPRITE_SAGE, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185188, EVENT_TIN_TOWER_1F_WISE_TRIO_2 - person_event SPRITE_SAGE, 2, 14, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, SageScript_0x1851bc, EVENT_TIN_TOWER_1F_WISE_TRIO_2 + person_event SPRITE_SUICUNE, 9, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TIN_TOWER_1F_SUICUNE + person_event SPRITE_RAIKOU, 9, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TIN_TOWER_1F_RAIKOU + person_event SPRITE_ENTEI, 9, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TIN_TOWER_1F_ENTEI + person_event SPRITE_SUPER_NERD, 3, 8, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x1851c8, EVENT_TIN_TOWER_1F_EUSINE + person_event SPRITE_SAGE, 9, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x185173, EVENT_TIN_TOWER_1F_WISE_TRIO_1 + person_event SPRITE_SAGE, 11, 11, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x185176, EVENT_TIN_TOWER_1F_WISE_TRIO_1 + person_event SPRITE_SAGE, 6, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x185179, EVENT_TIN_TOWER_1F_WISE_TRIO_1 + person_event SPRITE_SAGE, 2, 4, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x18517c, EVENT_TIN_TOWER_1F_WISE_TRIO_2 + person_event SPRITE_SAGE, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x185188, EVENT_TIN_TOWER_1F_WISE_TRIO_2 + person_event SPRITE_SAGE, 2, 14, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x1851bc, EVENT_TIN_TOWER_1F_WISE_TRIO_2 diff --git a/maps/TinTower3F.asm b/maps/TinTower3F.asm index 41873c9aa..78f520a64 100644 --- a/maps/TinTower3F.asm +++ b/maps/TinTower3F.asm @@ -25,4 +25,4 @@ TinTower3F_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKE_BALL, 14, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a37, EVENT_TIN_TOWER_3F_FULL_HEAL + person_event SPRITE_POKE_BALL, 14, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185a37, EVENT_TIN_TOWER_3F_FULL_HEAL diff --git a/maps/TinTower4F.asm b/maps/TinTower4F.asm index 60b085abd..9d4f1bb2c 100644 --- a/maps/TinTower4F.asm +++ b/maps/TinTower4F.asm @@ -38,6 +38,6 @@ TinTower4F_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_POKE_BALL, 10, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a58, EVENT_TIN_TOWER_4F_ULTRA_BALL - person_event SPRITE_POKE_BALL, 14, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a5a, EVENT_TIN_TOWER_4F_PP_UP - person_event SPRITE_POKE_BALL, 12, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a5c, EVENT_TIN_TOWER_4F_ESCAPE_ROPE + person_event SPRITE_POKE_BALL, 10, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185a58, EVENT_TIN_TOWER_4F_ULTRA_BALL + person_event SPRITE_POKE_BALL, 14, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185a5a, EVENT_TIN_TOWER_4F_PP_UP + person_event SPRITE_POKE_BALL, 12, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185a5c, EVENT_TIN_TOWER_4F_ESCAPE_ROPE diff --git a/maps/TinTower5F.asm b/maps/TinTower5F.asm index 848942bf0..f946986e8 100644 --- a/maps/TinTower5F.asm +++ b/maps/TinTower5F.asm @@ -37,4 +37,4 @@ TinTower5F_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKE_BALL, 9, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185aa9, EVENT_TIN_TOWER_5F_RARE_CANDY + person_event SPRITE_POKE_BALL, 9, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185aa9, EVENT_TIN_TOWER_5F_RARE_CANDY diff --git a/maps/TinTower6F.asm b/maps/TinTower6F.asm index 7a58b6153..9063a82dd 100644 --- a/maps/TinTower6F.asm +++ b/maps/TinTower6F.asm @@ -25,4 +25,4 @@ TinTower6F_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKE_BALL, 8, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185ae4, EVENT_TIN_TOWER_6F_MAX_POTION + person_event SPRITE_POKE_BALL, 8, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185ae4, EVENT_TIN_TOWER_6F_MAX_POTION diff --git a/maps/TinTower7F.asm b/maps/TinTower7F.asm index bc6b79700..0398ba0c3 100644 --- a/maps/TinTower7F.asm +++ b/maps/TinTower7F.asm @@ -28,4 +28,4 @@ TinTower7F_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKE_BALL, 1, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b05, EVENT_TIN_TOWER_7F_MAX_REVIVE + person_event SPRITE_POKE_BALL, 1, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185b05, EVENT_TIN_TOWER_7F_MAX_REVIVE diff --git a/maps/TinTower8F.asm b/maps/TinTower8F.asm index 12c7acf5e..d89317a82 100644 --- a/maps/TinTower8F.asm +++ b/maps/TinTower8F.asm @@ -35,6 +35,6 @@ TinTower8F_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_POKE_BALL, 13, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b35, EVENT_TIN_TOWER_8F_NUGGET - person_event SPRITE_POKE_BALL, 6, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b37, EVENT_TIN_TOWER_8F_MAX_ELIXER - person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b39, EVENT_TIN_TOWER_8F_FULL_RESTORE + person_event SPRITE_POKE_BALL, 13, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185b35, EVENT_TIN_TOWER_8F_NUGGET + person_event SPRITE_POKE_BALL, 6, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185b37, EVENT_TIN_TOWER_8F_MAX_ELIXER + person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185b39, EVENT_TIN_TOWER_8F_FULL_RESTORE diff --git a/maps/TinTower9F.asm b/maps/TinTower9F.asm index 78e052a31..8e129a15b 100644 --- a/maps/TinTower9F.asm +++ b/maps/TinTower9F.asm @@ -38,4 +38,4 @@ TinTower9F_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKE_BALL, 1, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b88, EVENT_TIN_TOWER_9F_HP_UP + person_event SPRITE_POKE_BALL, 1, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x185b88, EVENT_TIN_TOWER_9F_HP_UP diff --git a/maps/TinTowerRoof.asm b/maps/TinTowerRoof.asm index 6efa6e21f..09c6ef5e3 100644 --- a/maps/TinTowerRoof.asm +++ b/maps/TinTowerRoof.asm @@ -60,4 +60,4 @@ TinTowerRoof_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_HO_OH, 5, 9, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, HoOhScript_0x77244, EVENT_TIN_TOWER_ROOF_HO_OH + person_event SPRITE_HO_OH, 5, 9, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, HoOhScript_0x77244, EVENT_TIN_TOWER_ROOF_HO_OH diff --git a/maps/TohjoFalls.asm b/maps/TohjoFalls.asm index 2bda0033b..c14dba7b9 100644 --- a/maps/TohjoFalls.asm +++ b/maps/TohjoFalls.asm @@ -25,4 +25,4 @@ TohjoFalls_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18db02, EVENT_TOHJO_FALLS_MOON_STONE + person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18db02, EVENT_TOHJO_FALLS_MOON_STONE diff --git a/maps/TradeCenter.asm b/maps/TradeCenter.asm index 982650b4e..def2de6ec 100644 --- a/maps/TradeCenter.asm +++ b/maps/TradeCenter.asm @@ -73,5 +73,5 @@ TradeCenter_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_CHRIS, 4, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ChrisScript_0x193499, EVENT_GAVE_KURT_APRICORNS - person_event SPRITE_CHRIS, 4, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ChrisScript_0x193499, EVENT_RECEIVED_BALLS_FROM_KURT + person_event SPRITE_CHRIS, 4, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ChrisScript_0x193499, EVENT_GAVE_KURT_APRICORNS + person_event SPRITE_CHRIS, 4, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ChrisScript_0x193499, EVENT_RECEIVED_BALLS_FROM_KURT diff --git a/maps/TrainerHouse1F.asm b/maps/TrainerHouse1F.asm index 19f40b74b..cbd68d69d 100644 --- a/maps/TrainerHouse1F.asm +++ b/maps/TrainerHouse1F.asm @@ -151,8 +151,8 @@ TrainerHouse1F_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_RECEPTIONIST, 11, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ReceptionistScript_0x9af67, -1 - person_event SPRITE_COOLTRAINER_M, 11, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x9af6a, -1 - person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerFScript_0x9af6d, -1 - person_event SPRITE_YOUNGSTER, 8, 4, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x9af70, -1 - person_event SPRITE_GENTLEMAN, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x9af73, -1 + person_event SPRITE_RECEPTIONIST, 11, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x9af67, -1 + person_event SPRITE_COOLTRAINER_M, 11, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x9af6a, -1 + person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x9af6d, -1 + person_event SPRITE_YOUNGSTER, 8, 4, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x9af70, -1 + person_event SPRITE_GENTLEMAN, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x9af73, -1 diff --git a/maps/TrainerHouseB1F.asm b/maps/TrainerHouseB1F.asm index e6dd1103a..acb57b158 100644 --- a/maps/TrainerHouseB1F.asm +++ b/maps/TrainerHouseB1F.asm @@ -184,5 +184,5 @@ TrainerHouseB1F_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_RECEPTIONIST, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ObjectEvent, -1 - person_event SPRITE_CHRIS, 11, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, -1 + person_event SPRITE_RECEPTIONIST, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, ObjectEvent, -1 + person_event SPRITE_CHRIS, 11, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, ObjectEvent, -1 diff --git a/maps/UndergroundPathSwitchRoomEntrances.asm b/maps/UndergroundPathSwitchRoomEntrances.asm index 34f77d333..43c021b76 100644 --- a/maps/UndergroundPathSwitchRoomEntrances.asm +++ b/maps/UndergroundPathSwitchRoomEntrances.asm @@ -923,14 +923,14 @@ UndergroundPathSwitchRoomEntrances_MapEventHeader: .PersonEvents: db 11 - person_event SPRITE_PHARMACIST, 12, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerBurglarDuncan, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_PHARMACIST, 8, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerBurglarEddie, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_ROCKET, 2, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM13, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_ROCKET, 2, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM11, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_ROCKET, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM25, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_ROCKET_GIRL, 12, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerGruntF3, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_TEACHER, 27, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x7ca7d, -1 - person_event SPRITE_SUPER_NERD, 27, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, SuperNerdScript_0x7ca7a, -1 - person_event SPRITE_POKE_BALL, 12, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ce7d, EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_SMOKE_BALL - person_event SPRITE_POKE_BALL, 9, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ce7f, EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_FULL_HEAL - person_event SPRITE_SILVER, 3, 23, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_UNDERGROUND_PATH + person_event SPRITE_PHARMACIST, 12, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 2, TrainerBurglarDuncan, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_PHARMACIST, 8, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 2, TrainerBurglarEddie, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_ROCKET, 2, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM13, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_ROCKET, 2, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM11, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_ROCKET, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM25, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_ROCKET_GIRL, 12, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerGruntF3, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_TEACHER, 27, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7ca7d, -1 + person_event SPRITE_SUPER_NERD, 27, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x7ca7a, -1 + person_event SPRITE_POKE_BALL, 12, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7ce7d, EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_SMOKE_BALL + person_event SPRITE_POKE_BALL, 9, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7ce7f, EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_FULL_HEAL + person_event SPRITE_SILVER, 3, 23, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_RIVAL_UNDERGROUND_PATH diff --git a/maps/UndergroundWarehouse.asm b/maps/UndergroundWarehouse.asm index 3e272fb52..1f04c7d82 100644 --- a/maps/UndergroundWarehouse.asm +++ b/maps/UndergroundWarehouse.asm @@ -222,10 +222,10 @@ UndergroundWarehouse_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_ROCKET, 8, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM24, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_ROCKET, 15, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM14, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_ROCKET, 3, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 2, 4, TrainerGruntM15, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_GENTLEMAN, 8, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x7d9bf, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_POKE_BALL, 15, 18, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d9e4, EVENT_UNDERGROUND_WAREHOUSE_MAX_ETHER - person_event SPRITE_POKE_BALL, 9, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d9e6, EVENT_UNDERGROUND_WAREHOUSE_TM_SLEEP_TALK - person_event SPRITE_POKE_BALL, 1, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d9e8, EVENT_UNDERGROUND_WAREHOUSE_ULTRA_BALL + person_event SPRITE_ROCKET, 8, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM24, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_ROCKET, 15, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM14, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_ROCKET, 3, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 4, TrainerGruntM15, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_GENTLEMAN, 8, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x7d9bf, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_POKE_BALL, 15, 18, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7d9e4, EVENT_UNDERGROUND_WAREHOUSE_MAX_ETHER + person_event SPRITE_POKE_BALL, 9, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7d9e6, EVENT_UNDERGROUND_WAREHOUSE_TM_SLEEP_TALK + person_event SPRITE_POKE_BALL, 1, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7d9e8, EVENT_UNDERGROUND_WAREHOUSE_ULTRA_BALL diff --git a/maps/UnionCave1F.asm b/maps/UnionCave1F.asm index e35c88e78..cf9b6ed88 100644 --- a/maps/UnionCave1F.asm +++ b/maps/UnionCave1F.asm @@ -207,12 +207,12 @@ UnionCave1F_MapEventHeader: .PersonEvents: db 9 - person_event SPRITE_POKEFAN_M, 6, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerDaniel, -1 - person_event SPRITE_SUPER_NERD, 21, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacLarry, -1 - person_event SPRITE_POKEFAN_M, 8, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerHikerRussell, -1 - person_event SPRITE_FISHER, 27, 15, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerFirebreatherRay, -1 - person_event SPRITE_FISHER, 19, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerFirebreatherBill, -1 - person_event SPRITE_POKE_BALL, 21, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c00, EVENT_UNION_CAVE_1F_GREAT_BALL - person_event SPRITE_POKE_BALL, 2, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c02, EVENT_UNION_CAVE_1F_X_ATTACK - person_event SPRITE_POKE_BALL, 17, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c04, EVENT_UNION_CAVE_1F_POTION - person_event SPRITE_POKE_BALL, 33, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c06, EVENT_UNION_CAVE_1F_AWAKENING + person_event SPRITE_POKEFAN_M, 6, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerHikerDaniel, -1 + person_event SPRITE_SUPER_NERD, 21, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPokemaniacLarry, -1 + person_event SPRITE_POKEFAN_M, 8, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 1, TrainerHikerRussell, -1 + person_event SPRITE_FISHER, 27, 15, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerFirebreatherRay, -1 + person_event SPRITE_FISHER, 19, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 4, TrainerFirebreatherBill, -1 + person_event SPRITE_POKE_BALL, 21, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59c00, EVENT_UNION_CAVE_1F_GREAT_BALL + person_event SPRITE_POKE_BALL, 2, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59c02, EVENT_UNION_CAVE_1F_X_ATTACK + person_event SPRITE_POKE_BALL, 17, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59c04, EVENT_UNION_CAVE_1F_POTION + person_event SPRITE_POKE_BALL, 33, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x59c06, EVENT_UNION_CAVE_1F_AWAKENING diff --git a/maps/UnionCaveB1F.asm b/maps/UnionCaveB1F.asm index 54d6914ad..d8cbad843 100644 --- a/maps/UnionCaveB1F.asm +++ b/maps/UnionCaveB1F.asm @@ -163,10 +163,10 @@ UnionCaveB1F_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_POKEFAN_M, 4, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerPhillip, -1 - person_event SPRITE_POKEFAN_M, 7, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerLeonard, -1 - person_event SPRITE_SUPER_NERD, 32, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacAndrew, -1 - person_event SPRITE_SUPER_NERD, 30, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacCalvin, -1 - person_event SPRITE_POKE_BALL, 16, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a016, EVENT_UNION_CAVE_B1F_TM_SWIFT - person_event SPRITE_BOULDER, 10, 7, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, UnionCaveB1FBoulder, -1 - person_event SPRITE_POKE_BALL, 23, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a018, EVENT_UNION_CAVE_B1F_X_DEFEND + person_event SPRITE_POKEFAN_M, 4, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerHikerPhillip, -1 + person_event SPRITE_POKEFAN_M, 7, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerHikerLeonard, -1 + person_event SPRITE_SUPER_NERD, 32, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPokemaniacAndrew, -1 + person_event SPRITE_SUPER_NERD, 30, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPokemaniacCalvin, -1 + person_event SPRITE_POKE_BALL, 16, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5a016, EVENT_UNION_CAVE_B1F_TM_SWIFT + person_event SPRITE_BOULDER, 10, 7, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, UnionCaveB1FBoulder, -1 + person_event SPRITE_POKE_BALL, 23, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5a018, EVENT_UNION_CAVE_B1F_X_DEFEND diff --git a/maps/UnionCaveB2F.asm b/maps/UnionCaveB2F.asm index afeba994e..a0e1c24e3 100644 --- a/maps/UnionCaveB2F.asm +++ b/maps/UnionCaveB2F.asm @@ -152,9 +152,9 @@ UnionCaveB2F_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_ROCKER, 19, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainermNick, -1 - person_event SPRITE_COOLTRAINER_F, 13, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainerfGwen, -1 - person_event SPRITE_COOLTRAINER_F, 30, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfEmma, -1 - person_event SPRITE_POKE_BALL, 2, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a36a, EVENT_UNION_CAVE_B2F_ELIXER - person_event SPRITE_POKE_BALL, 19, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a36c, EVENT_UNION_CAVE_B2F_HYPER_POTION - person_event SPRITE_SURF, 31, 11, SPRITEMOVEDATA_LAPRAS, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SurfScript_0x5a31f, EVENT_UNION_CAVE_B2F_LAPRAS + person_event SPRITE_ROCKER, 19, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerCooltrainermNick, -1 + person_event SPRITE_COOLTRAINER_F, 13, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 1, TrainerCooltrainerfGwen, -1 + person_event SPRITE_COOLTRAINER_F, 30, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerCooltrainerfEmma, -1 + person_event SPRITE_POKE_BALL, 2, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5a36a, EVENT_UNION_CAVE_B2F_ELIXER + person_event SPRITE_POKE_BALL, 19, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x5a36c, EVENT_UNION_CAVE_B2F_HYPER_POTION + person_event SPRITE_SURF, 31, 11, SPRITEMOVEDATA_LAPRAS, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SurfScript_0x5a31f, EVENT_UNION_CAVE_B2F_LAPRAS diff --git a/maps/VermilionCity.asm b/maps/VermilionCity.asm index 5a2939d63..426cc8249 100644 --- a/maps/VermilionCity.asm +++ b/maps/VermilionCity.asm @@ -294,9 +294,9 @@ VermilionCity_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_TEACHER, 9, 18, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, TeacherScript_0x1aa983, -1 - person_event SPRITE_GRAMPS, 6, 23, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x1aa986, -1 - person_event SPRITE_MACHOP, 7, 26, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, VermilionMachop, -1 - person_event SPRITE_SUPER_NERD, 16, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x1aa99b, -1 - person_event SPRITE_BIG_SNORLAX, 8, 34, SPRITEMOVEDATA_SNORLAX, 0, 0, -1, -1, 0, 0, 0, VermilionSnorlax, EVENT_VERMILION_CITY_SNORLAX - person_event SPRITE_POKEFAN_M, 12, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, VermilionGymBadgeGuy, -1 + person_event SPRITE_TEACHER, 9, 18, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1aa983, -1 + person_event SPRITE_GRAMPS, 6, 23, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1aa986, -1 + person_event SPRITE_MACHOP, 7, 26, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, VermilionMachop, -1 + person_event SPRITE_SUPER_NERD, 16, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x1aa99b, -1 + person_event SPRITE_BIG_SNORLAX, 8, 34, SPRITEMOVEDATA_SNORLAX, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VermilionSnorlax, EVENT_VERMILION_CITY_SNORLAX + person_event SPRITE_POKEFAN_M, 12, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, VermilionGymBadgeGuy, -1 diff --git a/maps/VermilionGym.asm b/maps/VermilionGym.asm index a0a5e76c4..17c51ff47 100644 --- a/maps/VermilionGym.asm +++ b/maps/VermilionGym.asm @@ -287,8 +287,8 @@ VermilionGym_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_SURGE, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, SurgeScript_0x1920a5, -1 - person_event SPRITE_GENTLEMAN, 8, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerGentlemanGregory, -1 - person_event SPRITE_ROCKER, 7, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 3, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerGuitaristVincent, -1 - person_event SPRITE_SUPER_NERD, 10, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerJugglerHorton, -1 - person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 1, VermilionGymGuyScript, -1 + person_event SPRITE_SURGE, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, SurgeScript_0x1920a5, -1 + person_event SPRITE_GENTLEMAN, 8, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerGentlemanGregory, -1 + person_event SPRITE_ROCKER, 7, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 3, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_TRAINER, 3, TrainerGuitaristVincent, -1 + person_event SPRITE_SUPER_NERD, 10, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 4, TrainerJugglerHorton, -1 + person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 1, VermilionGymGuyScript, -1 diff --git a/maps/VermilionHouseDiglettsCaveSpeechHouse.asm b/maps/VermilionHouseDiglettsCaveSpeechHouse.asm index bbde7f786..96e683728 100644 --- a/maps/VermilionHouseDiglettsCaveSpeechHouse.asm +++ b/maps/VermilionHouseDiglettsCaveSpeechHouse.asm @@ -34,4 +34,4 @@ VermilionHouseDiglettsCaveSpeechHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_GENTLEMAN, 3, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GentlemanScript_0x192031, -1 + person_event SPRITE_GENTLEMAN, 3, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x192031, -1 diff --git a/maps/VermilionHouseFishingSpeechHouse.asm b/maps/VermilionHouseFishingSpeechHouse.asm index c644aff41..fc784e562 100644 --- a/maps/VermilionHouseFishingSpeechHouse.asm +++ b/maps/VermilionHouseFishingSpeechHouse.asm @@ -65,4 +65,4 @@ VermilionHouseFishingSpeechHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_FISHING_GURU, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FishingDude, -1 + person_event SPRITE_FISHING_GURU, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FishingDude, -1 diff --git a/maps/VermilionMagnetTrainSpeechHouse.asm b/maps/VermilionMagnetTrainSpeechHouse.asm index 99d930647..b9b86a019 100644 --- a/maps/VermilionMagnetTrainSpeechHouse.asm +++ b/maps/VermilionMagnetTrainSpeechHouse.asm @@ -48,5 +48,5 @@ VermilionMagnetTrainSpeechHouse_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, PokefanFScript_0x191eb7, -1 - person_event SPRITE_YOUNGSTER, 3, 0, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x191eba, -1 + person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x191eb7, -1 + person_event SPRITE_YOUNGSTER, 3, 0, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x191eba, -1 diff --git a/maps/VermilionMart.asm b/maps/VermilionMart.asm index e303e64ef..b1f33863e 100644 --- a/maps/VermilionMart.asm +++ b/maps/VermilionMart.asm @@ -48,6 +48,6 @@ VermilionMart_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x191f7e, -1 - person_event SPRITE_SUPER_NERD, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x191f85, -1 - person_event SPRITE_BUENA, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BuenaScript_0x191f88, -1 + person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x191f7e, -1 + person_event SPRITE_SUPER_NERD, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x191f85, -1 + person_event SPRITE_BUENA, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, BuenaScript_0x191f88, -1 diff --git a/maps/VermilionPokeCenter1F.asm b/maps/VermilionPokeCenter1F.asm index 0ac63a69e..300f70722 100644 --- a/maps/VermilionPokeCenter1F.asm +++ b/maps/VermilionPokeCenter1F.asm @@ -88,7 +88,7 @@ VermilionPokeCenter1F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x191603, -1 - person_event SPRITE_FISHING_GURU, 2, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FishingGuruScript_0x191606, -1 - person_event SPRITE_SAILOR, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SailorScript_0x19161a, -1 - person_event SPRITE_BUG_CATCHER, 5, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BugCatcherScript_0x19161d, -1 + person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x191603, -1 + person_event SPRITE_FISHING_GURU, 2, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x191606, -1 + person_event SPRITE_SAILOR, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, SailorScript_0x19161a, -1 + person_event SPRITE_BUG_CATCHER, 5, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x19161d, -1 diff --git a/maps/VermilionPort.asm b/maps/VermilionPort.asm index de943b3e4..c9cb32207 100644 --- a/maps/VermilionPort.asm +++ b/maps/VermilionPort.asm @@ -317,6 +317,6 @@ VermilionPort_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_SAILOR, 17, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x74dc4, EVENT_VERMILION_PORT_SAILOR_AT_GANGWAY - person_event SPRITE_SAILOR, 11, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, SailorScript_0x74e97, -1 - person_event SPRITE_SUPER_NERD, 11, 11, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, 0, 0, SuperNerdScript_0x74ee6, -1 + person_event SPRITE_SAILOR, 17, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x74dc4, EVENT_VERMILION_PORT_SAILOR_AT_GANGWAY + person_event SPRITE_SAILOR, 11, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x74e97, -1 + person_event SPRITE_SUPER_NERD, 11, 11, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x74ee6, -1 diff --git a/maps/VermilionPortPassage.asm b/maps/VermilionPortPassage.asm index 8710ce55a..29b61c72e 100644 --- a/maps/VermilionPortPassage.asm +++ b/maps/VermilionPortPassage.asm @@ -35,4 +35,4 @@ VermilionPortPassage_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_TEACHER, 1, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x7701a, -1 + person_event SPRITE_TEACHER, 1, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7701a, -1 diff --git a/maps/VictoryRoad.asm b/maps/VictoryRoad.asm index e15f0c40c..a5f751194 100644 --- a/maps/VictoryRoad.asm +++ b/maps/VictoryRoad.asm @@ -263,9 +263,9 @@ VictoryRoad_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_SILVER, 13, 18, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_VICTORY_ROAD - person_event SPRITE_POKE_BALL, 28, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x74529, EVENT_VICTORY_ROAD_TM_EARTHQUAKE - person_event SPRITE_POKE_BALL, 48, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7452b, EVENT_VICTORY_ROAD_MAX_REVIVE - person_event SPRITE_POKE_BALL, 29, 18, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7452d, EVENT_VICTORY_ROAD_FULL_RESTORE - person_event SPRITE_POKE_BALL, 48, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7452f, EVENT_VICTORY_ROAD_FULL_HEAL - person_event SPRITE_POKE_BALL, 38, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x74531, EVENT_VICTORY_ROAD_HP_UP + person_event SPRITE_SILVER, 13, 18, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_RIVAL_VICTORY_ROAD + person_event SPRITE_POKE_BALL, 28, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x74529, EVENT_VICTORY_ROAD_TM_EARTHQUAKE + person_event SPRITE_POKE_BALL, 48, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7452b, EVENT_VICTORY_ROAD_MAX_REVIVE + person_event SPRITE_POKE_BALL, 29, 18, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7452d, EVENT_VICTORY_ROAD_FULL_RESTORE + person_event SPRITE_POKE_BALL, 48, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7452f, EVENT_VICTORY_ROAD_FULL_HEAL + person_event SPRITE_POKE_BALL, 38, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x74531, EVENT_VICTORY_ROAD_HP_UP diff --git a/maps/VictoryRoadGate.asm b/maps/VictoryRoadGate.asm index 62c6ace9b..aca132bd1 100644 --- a/maps/VictoryRoadGate.asm +++ b/maps/VictoryRoadGate.asm @@ -118,6 +118,6 @@ VictoryRoadGate_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_OFFICER, 11, 8, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, OfficerScript_0x9ba03, -1 - person_event SPRITE_BLACK_BELT, 5, 7, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x9ba21, EVENT_OPENED_MT_SILVER - person_event SPRITE_BLACK_BELT, 5, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x9ba24, EVENT_FOUGHT_SNORLAX + person_event SPRITE_OFFICER, 11, 8, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OfficerScript_0x9ba03, -1 + person_event SPRITE_BLACK_BELT, 5, 7, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x9ba21, EVENT_OPENED_MT_SILVER + person_event SPRITE_BLACK_BELT, 5, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x9ba24, EVENT_FOUGHT_SNORLAX diff --git a/maps/VioletCity.asm b/maps/VioletCity.asm index 6203ce87a..a16813e7c 100644 --- a/maps/VioletCity.asm +++ b/maps/VioletCity.asm @@ -301,11 +301,11 @@ VioletCity_MapEventHeader: .PersonEvents: db 8 - person_event SPRITE_FISHER, 16, 13, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1a83bb, EVENT_VIOLET_CITY_EARL - person_event SPRITE_LASS, 28, 28, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x1a8403, -1 - person_event SPRITE_SUPER_NERD, 14, 24, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x1a8406, -1 - person_event SPRITE_GRAMPS, 20, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, GrampsScript_0x1a8409, -1 - person_event SPRITE_YOUNGSTER, 18, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a840c, -1 - person_event SPRITE_FRUIT_TREE, 29, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8425, -1 - person_event SPRITE_POKE_BALL, 1, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a8421, EVENT_VIOLET_CITY_PP_UP - person_event SPRITE_POKE_BALL, 5, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a8423, EVENT_VIOLET_CITY_RARE_CANDY + person_event SPRITE_FISHER, 16, 13, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x1a83bb, EVENT_VIOLET_CITY_EARL + person_event SPRITE_LASS, 28, 28, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x1a8403, -1 + person_event SPRITE_SUPER_NERD, 14, 24, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x1a8406, -1 + person_event SPRITE_GRAMPS, 20, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a8409, -1 + person_event SPRITE_YOUNGSTER, 18, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a840c, -1 + person_event SPRITE_FRUIT_TREE, 29, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x1a8425, -1 + person_event SPRITE_POKE_BALL, 1, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a8421, EVENT_VIOLET_CITY_PP_UP + person_event SPRITE_POKE_BALL, 5, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x1a8423, EVENT_VIOLET_CITY_RARE_CANDY diff --git a/maps/VioletGym.asm b/maps/VioletGym.asm index 041ba6f4e..7b9d36025 100644 --- a/maps/VioletGym.asm +++ b/maps/VioletGym.asm @@ -294,7 +294,7 @@ VioletGym_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_FALKNER, 1, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FalknerScript_0x683c2, -1 - person_event SPRITE_YOUNGSTER, 6, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperRod, -1 - person_event SPRITE_YOUNGSTER, 10, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperAbe, -1 - person_event SPRITE_GYM_GUY, 13, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, VioletGymGuyScript, -1 + person_event SPRITE_FALKNER, 1, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, FalknerScript_0x683c2, -1 + person_event SPRITE_YOUNGSTER, 6, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBird_keeperRod, -1 + person_event SPRITE_YOUNGSTER, 10, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerBird_keeperAbe, -1 + person_event SPRITE_GYM_GUY, 13, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, VioletGymGuyScript, -1 diff --git a/maps/VioletMart.asm b/maps/VioletMart.asm index 441c94855..f338b7086 100644 --- a/maps/VioletMart.asm +++ b/maps/VioletMart.asm @@ -60,6 +60,6 @@ VioletMart_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x68295, -1 - person_event SPRITE_GRANNY, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, GrannyScript_0x6829c, -1 - person_event SPRITE_COOLTRAINER_M, 2, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x6829f, -1 + person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x68295, -1 + person_event SPRITE_GRANNY, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x6829c, -1 + person_event SPRITE_COOLTRAINER_M, 2, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x6829f, -1 diff --git a/maps/VioletNicknameSpeechHouse.asm b/maps/VioletNicknameSpeechHouse.asm index 16ad10020..28ed77051 100644 --- a/maps/VioletNicknameSpeechHouse.asm +++ b/maps/VioletNicknameSpeechHouse.asm @@ -56,6 +56,6 @@ VioletNicknameSpeechHouse_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x693e9, -1 - person_event SPRITE_LASS, 4, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x693ec, -1 - person_event SPRITE_BIRD, 2, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, BirdScript_0x693ef, -1 + person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x693e9, -1 + person_event SPRITE_LASS, 4, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x693ec, -1 + person_event SPRITE_BIRD, 2, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, BirdScript_0x693ef, -1 diff --git a/maps/VioletOnixTradeHouse.asm b/maps/VioletOnixTradeHouse.asm index f5872dcea..bbdf8639b 100644 --- a/maps/VioletOnixTradeHouse.asm +++ b/maps/VioletOnixTradeHouse.asm @@ -45,5 +45,5 @@ VioletOnixTradeHouse_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x6998d, -1 - person_event SPRITE_YOUNGSTER, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x69990, -1 + person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x6998d, -1 + person_event SPRITE_YOUNGSTER, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x69990, -1 diff --git a/maps/VioletPokeCenter1F.asm b/maps/VioletPokeCenter1F.asm index fb11bd4a6..94d56df43 100644 --- a/maps/VioletPokeCenter1F.asm +++ b/maps/VioletPokeCenter1F.asm @@ -226,8 +226,8 @@ VioletPokeCenter1F_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x694c9, -1 - person_event SPRITE_GAMEBOY_KID, 6, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GameboyKidScript_0x69540, -1 - person_event SPRITE_GENTLEMAN, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x69543, -1 - person_event SPRITE_YOUNGSTER, 1, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x69546, -1 - person_event SPRITE_SCIENTIST, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x694cc, EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER + person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x694c9, -1 + person_event SPRITE_GAMEBOY_KID, 6, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x69540, -1 + person_event SPRITE_GENTLEMAN, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x69543, -1 + person_event SPRITE_YOUNGSTER, 1, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x69546, -1 + person_event SPRITE_SCIENTIST, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x694cc, EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER diff --git a/maps/ViridianCity.asm b/maps/ViridianCity.asm index 7313b89eb..83743b017 100644 --- a/maps/ViridianCity.asm +++ b/maps/ViridianCity.asm @@ -237,7 +237,7 @@ ViridianCity_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_GRAMPS, 5, 18, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, GrampsScript_0x1a9a4c, -1 - person_event SPRITE_GRAMPS, 8, 30, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrampsScript_0x1a9a61, -1 - person_event SPRITE_FISHER, 23, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x1a9a75, -1 - person_event SPRITE_YOUNGSTER, 21, 17, SPRITEMOVEDATA_WANDER, 3, 3, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a9a90, -1 + person_event SPRITE_GRAMPS, 5, 18, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a9a4c, -1 + person_event SPRITE_GRAMPS, 8, 30, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a9a61, -1 + person_event SPRITE_FISHER, 23, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x1a9a75, -1 + person_event SPRITE_YOUNGSTER, 21, 17, SPRITEMOVEDATA_WANDER, 3, 3, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a9a90, -1 diff --git a/maps/ViridianGym.asm b/maps/ViridianGym.asm index ba12ffade..54dd617e8 100644 --- a/maps/ViridianGym.asm +++ b/maps/ViridianGym.asm @@ -183,5 +183,5 @@ ViridianGym_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_BLUE, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, BlueScript_0x9aa26, EVENT_VIRIDIAN_GYM_BLUE - person_event SPRITE_GYM_GUY, 13, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ViridianGymGuyScript, EVENT_VIRIDIAN_GYM_BLUE + person_event SPRITE_BLUE, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlueScript_0x9aa26, EVENT_VIRIDIAN_GYM_BLUE + person_event SPRITE_GYM_GUY, 13, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ViridianGymGuyScript, EVENT_VIRIDIAN_GYM_BLUE diff --git a/maps/ViridianMart.asm b/maps/ViridianMart.asm index f6db83302..0a3eb2356 100644 --- a/maps/ViridianMart.asm +++ b/maps/ViridianMart.asm @@ -48,6 +48,6 @@ ViridianMart_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x9b5e7, -1 - person_event SPRITE_LASS, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, 0, 0, LassScript_0x9b5ee, -1 - person_event SPRITE_COOLTRAINER_M, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x9b5f1, -1 + person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x9b5e7, -1 + person_event SPRITE_LASS, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x9b5ee, -1 + person_event SPRITE_COOLTRAINER_M, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x9b5f1, -1 diff --git a/maps/ViridianNicknameSpeechHouse.asm b/maps/ViridianNicknameSpeechHouse.asm index 45e489a60..efdc8df83 100644 --- a/maps/ViridianNicknameSpeechHouse.asm +++ b/maps/ViridianNicknameSpeechHouse.asm @@ -72,7 +72,7 @@ ViridianNicknameSpeechHouse_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_POKEFAN_M, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x9ae3a, -1 - person_event SPRITE_LASS, 4, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x9ae3d, -1 - person_event SPRITE_MOLTRES, 2, 5, SPRITEMOVEDATA_POKEMON, 0, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MoltresScript_0x9ae40, -1 - person_event SPRITE_GROWLITHE, 3, 6, SPRITEMOVEDATA_POKEMON, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrowlitheScript_0x9ae4a, -1 + person_event SPRITE_POKEFAN_M, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x9ae3a, -1 + person_event SPRITE_LASS, 4, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x9ae3d, -1 + person_event SPRITE_MOLTRES, 2, 5, SPRITEMOVEDATA_POKEMON, 0, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, MoltresScript_0x9ae40, -1 + person_event SPRITE_GROWLITHE, 3, 6, SPRITEMOVEDATA_POKEMON, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, GrowlitheScript_0x9ae4a, -1 diff --git a/maps/ViridianPokeCenter1F.asm b/maps/ViridianPokeCenter1F.asm index 3151b7b7a..7669ab8d9 100644 --- a/maps/ViridianPokeCenter1F.asm +++ b/maps/ViridianPokeCenter1F.asm @@ -83,7 +83,7 @@ ViridianPokeCenter1F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x9b690, -1 - person_event SPRITE_COOLTRAINER_M, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x9b693, -1 - person_event SPRITE_COOLTRAINER_F, 3, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CooltrainerFScript_0x9b6a7, -1 - person_event SPRITE_BUG_CATCHER, 6, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BugCatcherScript_0x9b6aa, -1 + person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x9b690, -1 + person_event SPRITE_COOLTRAINER_M, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x9b693, -1 + person_event SPRITE_COOLTRAINER_F, 3, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x9b6a7, -1 + person_event SPRITE_BUG_CATCHER, 6, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x9b6aa, -1 diff --git a/maps/WarehouseEntrance.asm b/maps/WarehouseEntrance.asm index 7199599d7..af5cf93b8 100644 --- a/maps/WarehouseEntrance.asm +++ b/maps/WarehouseEntrance.asm @@ -669,12 +669,12 @@ WarehouseEntrance_MapEventHeader: .PersonEvents: db 9 - person_event SPRITE_SUPER_NERD, 31, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerSupernerdEric, -1 - person_event SPRITE_SUPER_NERD, 9, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerSupernerdTeru, -1 - person_event SPRITE_SUPER_NERD, 27, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPokemaniacIssac, -1 - person_event SPRITE_SUPER_NERD, 6, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacDonald, -1 - person_event SPRITE_POKE_BALL, 25, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7c306, EVENT_WAREHOUSE_ENTRANCE_COIN_CASE - person_event SPRITE_GRAMPS, 11, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrampsScript_0x7c146, EVENT_WAREHOUSE_ENTRANCE_GRAMPS - person_event SPRITE_SUPER_NERD, 14, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OlderHaircutBrotherScript, EVENT_WAREHOUSE_ENTRANCE_OLDER_HAIRCUT_BROTHER - person_event SPRITE_SUPER_NERD, 15, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungerHaircutBrotherScript, EVENT_WAREHOUSE_ENTRANCE_YOUNGER_HAIRCUT_BROTHER - person_event SPRITE_GRANNY, 21, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrannyScript_0x7c132, EVENT_WAREHOUSE_ENTRANCE_GRANNY + person_event SPRITE_SUPER_NERD, 31, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 3, TrainerSupernerdEric, -1 + person_event SPRITE_SUPER_NERD, 9, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_TRAINER, 2, TrainerSupernerdTeru, -1 + person_event SPRITE_SUPER_NERD, 27, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 2, TrainerPokemaniacIssac, -1 + person_event SPRITE_SUPER_NERD, 6, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 3, TrainerPokemaniacDonald, -1 + person_event SPRITE_POKE_BALL, 25, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x7c306, EVENT_WAREHOUSE_ENTRANCE_COIN_CASE + person_event SPRITE_GRAMPS, 11, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x7c146, EVENT_WAREHOUSE_ENTRANCE_GRAMPS + person_event SPRITE_SUPER_NERD, 14, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, OlderHaircutBrotherScript, EVENT_WAREHOUSE_ENTRANCE_OLDER_HAIRCUT_BROTHER + person_event SPRITE_SUPER_NERD, 15, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungerHaircutBrotherScript, EVENT_WAREHOUSE_ENTRANCE_YOUNGER_HAIRCUT_BROTHER + person_event SPRITE_GRANNY, 21, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, GrannyScript_0x7c132, EVENT_WAREHOUSE_ENTRANCE_GRANNY diff --git a/maps/WhirlIslandB1F.asm b/maps/WhirlIslandB1F.asm index 5dc118841..e1de0b780 100644 --- a/maps/WhirlIslandB1F.asm +++ b/maps/WhirlIslandB1F.asm @@ -62,9 +62,9 @@ WhirlIslandB1F_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_POKE_BALL, 13, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c410, EVENT_WHIRL_ISLAND_B1F_FULL_RESTORE - person_event SPRITE_POKE_BALL, 18, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c412, EVENT_WHIRL_ISLAND_B1F_CARBOS - person_event SPRITE_POKE_BALL, 23, 33, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c414, EVENT_WHIRL_ISLAND_B1F_CALCIUM - person_event SPRITE_POKE_BALL, 8, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c416, EVENT_WHIRL_ISLAND_B1F_NUGGET - person_event SPRITE_POKE_BALL, 26, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c418, EVENT_WHIRL_ISLAND_B1F_ESCAPE_ROPE - person_event SPRITE_BOULDER, 26, 23, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, WhirlIslandB1FBoulder, -1 + person_event SPRITE_POKE_BALL, 13, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c410, EVENT_WHIRL_ISLAND_B1F_FULL_RESTORE + person_event SPRITE_POKE_BALL, 18, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c412, EVENT_WHIRL_ISLAND_B1F_CARBOS + person_event SPRITE_POKE_BALL, 23, 33, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c414, EVENT_WHIRL_ISLAND_B1F_CALCIUM + person_event SPRITE_POKE_BALL, 8, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c416, EVENT_WHIRL_ISLAND_B1F_NUGGET + person_event SPRITE_POKE_BALL, 26, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c418, EVENT_WHIRL_ISLAND_B1F_ESCAPE_ROPE + person_event SPRITE_BOULDER, 26, 23, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, WhirlIslandB1FBoulder, -1 diff --git a/maps/WhirlIslandB2F.asm b/maps/WhirlIslandB2F.asm index 0a5a4ed39..7d8d4311b 100644 --- a/maps/WhirlIslandB2F.asm +++ b/maps/WhirlIslandB2F.asm @@ -33,6 +33,6 @@ WhirlIslandB2F_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_POKE_BALL, 11, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c4b8, EVENT_WHIRL_ISLAND_B2F_FULL_RESTORE - person_event SPRITE_POKE_BALL, 4, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c4ba, EVENT_WHIRL_ISLAND_B2F_MAX_REVIVE - person_event SPRITE_POKE_BALL, 12, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c4bc, EVENT_WHIRL_ISLAND_B2F_MAX_ELIXER + person_event SPRITE_POKE_BALL, 11, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c4b8, EVENT_WHIRL_ISLAND_B2F_FULL_RESTORE + person_event SPRITE_POKE_BALL, 4, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c4ba, EVENT_WHIRL_ISLAND_B2F_MAX_REVIVE + person_event SPRITE_POKE_BALL, 12, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c4bc, EVENT_WHIRL_ISLAND_B2F_MAX_ELIXER diff --git a/maps/WhirlIslandLugiaChamber.asm b/maps/WhirlIslandLugiaChamber.asm index e3c192a09..6a1f215a1 100644 --- a/maps/WhirlIslandLugiaChamber.asm +++ b/maps/WhirlIslandLugiaChamber.asm @@ -59,4 +59,4 @@ WhirlIslandLugiaChamber_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_LUGIA, 5, 9, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LugiaScript_0x18c518, EVENT_WHIRL_ISLAND_LUGIA_CHAMBER_LUGIA + person_event SPRITE_LUGIA, 5, 9, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, LugiaScript_0x18c518, EVENT_WHIRL_ISLAND_LUGIA_CHAMBER_LUGIA diff --git a/maps/WhirlIslandNE.asm b/maps/WhirlIslandNE.asm index 25566611c..e8992db89 100644 --- a/maps/WhirlIslandNE.asm +++ b/maps/WhirlIslandNE.asm @@ -26,4 +26,4 @@ WhirlIslandNE_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKE_BALL, 11, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c396, EVENT_WHIRL_ISLAND_NE_ULTRA_BALL + person_event SPRITE_POKE_BALL, 11, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c396, EVENT_WHIRL_ISLAND_NE_ULTRA_BALL diff --git a/maps/WhirlIslandSW.asm b/maps/WhirlIslandSW.asm index 01b09e319..8cc34dc17 100644 --- a/maps/WhirlIslandSW.asm +++ b/maps/WhirlIslandSW.asm @@ -28,4 +28,4 @@ WhirlIslandSW_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKE_BALL, 2, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c3bc, EVENT_WHIRL_ISLAND_SW_ULTRA_BALL + person_event SPRITE_POKE_BALL, 2, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x18c3bc, EVENT_WHIRL_ISLAND_SW_ULTRA_BALL diff --git a/maps/WillsRoom.asm b/maps/WillsRoom.asm index 208e723da..a3288fec8 100644 --- a/maps/WillsRoom.asm +++ b/maps/WillsRoom.asm @@ -148,4 +148,4 @@ WillsRoom_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_WILL, 7, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, WillScript_0x1804f8, -1 + person_event SPRITE_WILL, 7, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT, 0, WillScript_0x1804f8, -1 diff --git a/maps/WiseTriosRoom.asm b/maps/WiseTriosRoom.asm index d51462ca2..01a098a7f 100644 --- a/maps/WiseTriosRoom.asm +++ b/maps/WiseTriosRoom.asm @@ -360,9 +360,9 @@ WiseTriosRoom_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_SAGE, 2, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, SageScript_0x9859a, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1 - person_event SPRITE_SAGE, 7, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, SageScript_0x9859d, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1 - person_event SPRITE_SAGE, 5, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, SageScript_0x985a0, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1 - person_event SPRITE_SAGE, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 2, TrainerSageGaku, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2 - person_event SPRITE_SAGE, 6, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 2, 2, TrainerSageMasa, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2 - person_event SPRITE_SAGE, 4, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 2, 2, TrainerSageKoji, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2 + person_event SPRITE_SAGE, 2, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x9859a, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1 + person_event SPRITE_SAGE, 7, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x9859d, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1 + person_event SPRITE_SAGE, 5, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x985a0, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1 + person_event SPRITE_SAGE, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerSageGaku, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2 + person_event SPRITE_SAGE, 6, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerSageMasa, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2 + person_event SPRITE_SAGE, 4, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerSageKoji, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2 From 434c97a146d4416829a44955d325d023dacf9e54 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 15 Nov 2015 15:53:49 -0500 Subject: [PATCH 08/40] Makefile cleanup --- Makefile | 5 +++-- wram.asm | 13 +++++-------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index e791e3491..48367c980 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,8 @@ PYTHON := python MD5 := md5sum -c --quiet -.SUFFIXES: .SUFFIXES: .asm .o .gbc .png .2bpp .1bpp .lz .pal .bin .blk .tilemap -.PHONY: all clean crystal pngs +.PHONY: all clean crystal crystal11 pngs .SECONDEXPANSION: poketools := extras/pokemontools @@ -54,6 +53,8 @@ roms := pokecrystal.gbc all: $(roms) crystal: pokecrystal.gbc +crystal11: pokecrystal11.gbc + clean: rm -f $(roms) $(all_obj) $(roms:.gbc=.map) $(roms:.gbc=.sym) diff --git a/wram.asm b/wram.asm index d6255f56b..5d5d861ff 100644 --- a/wram.asm +++ b/wram.asm @@ -974,12 +974,12 @@ wc7e8:: ds 24 SECTION "Overworld Map", WRAM0 [$c800] -wc800:: OverworldMap:: ; c800 -; too lazy to reconcile these labels -; ds 1300 + ds 1300 +OverworldMapEnd:: + ds OverworldMap - @ - ds 1 +wc800:: ds 1 wc801:: ds 1 wc802:: ds 1 wc803:: ds 4 @@ -1111,10 +1111,7 @@ wccb4:: ds 1 wccb5:: ds 3 wccb8:: ds 1 wccb9:: ds 1 -wccba:: ds 90 -OverworldMapEnd:: - - ds 12 +wccba:: ds 102 SECTION "Video", WRAM0 CreditsPos:: From aba038a4a4b5a1ef9ab683a3683849809ef95467 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 15 Nov 2015 21:28:15 -0500 Subject: [PATCH 09/40] Fix some movement macro/function names --- constants/map_constants.asm | 5 +- constants/sprite_constants.asm | 48 ++++++- engine/events.asm | 2 +- engine/facings.asm | 4 +- engine/map_objects.asm | 228 +++++++++++++-------------------- engine/movement.asm | 64 +++++---- engine/scripting.asm | 2 +- event/forced_movement.asm | 24 ++-- home/map_objects.asm | 2 +- macros/movement.asm | 22 +++- main.asm | 27 ++-- wram.asm | 3 +- 12 files changed, 218 insertions(+), 213 deletions(-) diff --git a/constants/map_constants.asm b/constants/map_constants.asm index 71a877c4c..bdc1319ae 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -530,7 +530,7 @@ const_value SET 1 const OBJECT_STEP_TYPE const OBJECT_STEP_DURATION const OBJECT_ACTION - const OBJECT_12 + const OBJECT_STEP_FRAME const OBJECT_FACING_STEP const OBJECT_NEXT_TILE const OBJECT_STANDING_TILE @@ -652,7 +652,10 @@ NUM_SPAWNS EQU const_value const PALETTE_MORN const PALETTE_DARK +INVISIBLE EQU 0 FIXED_FACING EQU 2 +SLIDING EQU 3 +EMOTE_OBJECT EQU 7 const_def const PERSONTYPE_SCRIPT diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm index f507ad6f6..438e4cb54 100644 --- a/constants/sprite_constants.asm +++ b/constants/sprite_constants.asm @@ -269,20 +269,20 @@ MAX_OUTDOOR_SPRITES EQU 23 const_def const STEP_TYPE_00 - const STEP_TYPE_01 ; standing + const STEP_TYPE_01 const STEP_TYPE_02 ; walking - const STEP_TYPE_03 ; bumping + const STEP_TYPE_03 ; stationary const STEP_TYPE_04 const STEP_TYPE_05 const STEP_TYPE_06 const STEP_TYPE_07 const STEP_TYPE_08 const STEP_TYPE_09 - const STEP_TYPE_0A - const STEP_TYPE_0B - const STEP_TYPE_0C - const STEP_TYPE_0D - const STEP_TYPE_0E + const STEP_TYPE_0A ; half step + const STEP_TYPE_0B ; bump + const STEP_TYPE_TELEPORT_FROM + const STEP_TYPE_TELEPORT_TO + const STEP_TYPE_SKYFALL const STEP_TYPE_0F const STEP_TYPE_10 const STEP_TYPE_11 @@ -313,3 +313,37 @@ MAX_OUTDOOR_SPRITES EQU 23 const PERSON_ACTION_0E const PERSON_ACTION_0F const PERSON_ACTION_10 + + const_def + const FACING_00 + const FACING_01 + const FACING_02 + const FACING_03 + const FACING_04 + const FACING_05 + const FACING_06 + const FACING_07 + const FACING_08 + const FACING_09 + const FACING_0A + const FACING_0B + const FACING_0C + const FACING_0D + const FACING_0E + const FACING_0F + const FACING_10 + const FACING_11 + const FACING_12 + const FACING_13 + const FACING_14 + const FACING_15 + const FACING_16 + const FACING_17 + const FACING_18 + const FACING_19 + const FACING_1A + const FACING_1B + const FACING_1C + const FACING_1D + const FACING_1E + const FACING_1F diff --git a/engine/events.asm b/engine/events.asm index 8538d9ec9..95c002042 100644 --- a/engine/events.asm +++ b/engine/events.asm @@ -245,7 +245,7 @@ Function967d1: ; 967d1 ; 967e1 Function967e1: ; 967e1 - callba RefreshMapAppearDisappear + callba _UpdateSprites callba Functiond4d2 callba PlaceMapNameSign ret diff --git a/engine/facings.asm b/engine/facings.asm index 9f516a306..f807e77f8 100644 --- a/engine/facings.asm +++ b/engine/facings.asm @@ -185,7 +185,7 @@ Facing21: ; shadow db 0, 8, 4 | X_FLIP, $fc ; 41a3 -Facing23: ; big doll +Facing23: ; big snorlax or lapras doll db 16 ; # db 0, 0, 0, $00 db 0, 8, 0, $01 @@ -221,7 +221,7 @@ Facing27: ; 41f5 db 8, 0, X_FLIP, $07 ; 4206 -Facing22: ; 4206 +Facing22: ; big doll other than snorlax or lapras db 14 ; # db 0, 0, 0, $00 db 0, 8, 0, $01 diff --git a/engine/map_objects.asm b/engine/map_objects.asm index 0c83b1986..58b0f7493 100644 --- a/engine/map_objects.asm +++ b/engine/map_objects.asm @@ -196,7 +196,7 @@ Function43f3: ; 43f3 Function4427: ; 4427 ld hl, OBJECT_FLAGS1 add hl, bc - bit 0, [hl] + bit INVISIBLE, [hl] jr nz, SetFacingStanding ld hl, OBJECT_FLAGS2 @@ -214,11 +214,8 @@ Function4427: ; 4427 Function4440: ; 4440 ld hl, OBJECT_FLAGS1 add hl, bc - bit 0, [hl] + bit INVISIBLE, [hl] jr nz, SetFacingStanding - ; fallthrough -; 4448 - Function4448: ; 4448 ld de, Pointers445f + 2 jr Function444d @@ -290,10 +287,10 @@ Function44b5: ; 44b5 Function44c1: ; 44c1 ld hl, OBJECT_FLAGS1 add hl, bc - bit 3, [hl] + bit SLIDING, [hl] jp nz, SetFacingCurrent - ld hl, OBJECT_12 + ld hl, OBJECT_STEP_FRAME add hl, bc ld a, [hl] inc a @@ -304,6 +301,7 @@ Function44c1: ; 44c1 rrca and %00000011 ld d, a + call GetSpriteDirection or 0 ; useless or d @@ -316,18 +314,21 @@ Function44c1: ; 44c1 Function44e4: ; 44e4 ld hl, OBJECT_FLAGS1 add hl, bc - bit 3, [hl] + bit SLIDING, [hl] jp nz, SetFacingCurrent - ld hl, OBJECT_12 + + ld hl, OBJECT_STEP_FRAME add hl, bc ld a, [hl] add 2 and %00001111 ld [hl], a + rrca rrca and %00000011 ld d, a + call GetSpriteDirection or 0 ; useless or d @@ -340,17 +341,20 @@ Function44e4: ; 44e4 Function4508: ; 4508 ld hl, OBJECT_FLAGS1 add hl, bc - bit 3, [hl] + bit SLIDING, [hl] jp nz, SetFacingCurrent - ld hl, OBJECT_12 + + ld hl, OBJECT_STEP_FRAME add hl, bc inc [hl] + ld a, [hl] rrca rrca rrca and %00000011 ld d, a + call GetSpriteDirection or 0 ; useless or d @@ -378,17 +382,19 @@ Function4539: ; 4539 ; 453f Function453f: ; 453f - ld hl, OBJECT_12 + ld hl, OBJECT_STEP_FRAME add hl, bc ld a, [hl] and %11110000 ld e, a + ld a, [hl] inc a and %00001111 ld d, a cp 4 jr c, .ok + ld d, 0 ld a, e add $10 @@ -399,6 +405,7 @@ Function453f: ; 453f ld a, d or e ld [hl], a + swap e ld d, 0 ld hl, .Directions @@ -428,26 +435,26 @@ Function456e: ; 456e Function457b: ; 457b ld hl, OBJECT_FACING_STEP add hl, bc - ld [hl], $15 + ld [hl], FACING_15 ret ; 4582 Function4582: ; 4582 ld hl, OBJECT_FACING_STEP add hl, bc - ld [hl], $14 + ld [hl], FACING_14 ret ; 4589 Function4589: ; 4589 ld hl, OBJECT_FACING_STEP add hl, bc - ld [hl], $17 + ld [hl], FACING_17 ret ; 4590 Function4590: ; 4590 - ld hl, OBJECT_12 + ld hl, OBJECT_STEP_FRAME add hl, bc ld a, [hl] inc a @@ -457,7 +464,7 @@ Function4590: ; 4590 jr z, Function45a4 ld hl, OBJECT_FACING_STEP add hl, bc - ld [hl], $4 + ld [hl], FACING_04 ret ; 45a4 @@ -469,7 +476,7 @@ Function45a4: ; 45a4 ; 45ab Function45ab: ; 45ab - ld hl, OBJECT_12 + ld hl, OBJECT_STEP_FRAME add hl, bc ld a, [hl] inc a @@ -487,18 +494,18 @@ Function45ab: ; 45ab Function45be: ; 45be ld hl, OBJECT_FACING_STEP add hl, bc - ld [hl], $16 + ld [hl], FACING_16 ret ; 45c5 Function45c5: ; 45c5 ld a, [VariableSprites + SPRITE_BIG_DOLL - SPRITE_VARS] - ld d, $17 + ld d, FACING_17 cp SPRITE_BIG_SNORLAX jr z, .ok cp SPRITE_BIG_LAPRAS jr z, .ok - ld d, $16 + ld d, FACING_16 .ok ld hl, OBJECT_FACING_STEP @@ -508,7 +515,7 @@ Function45c5: ; 45c5 ; 45da Function45da: ; 45da - ld hl, OBJECT_12 + ld hl, OBJECT_STEP_FRAME add hl, bc inc [hl] ld a, [hl] @@ -516,25 +523,25 @@ Function45da: ; 45da ld hl, OBJECT_FACING_STEP add hl, bc and 2 - ld a, $1c + ld a, FACING_1C jr z, .ok - inc a + inc a ; FACING_1D .ok ld [hl], a ret ; 45ed Function45ed: ; 45ed - ld hl, OBJECT_12 + ld hl, OBJECT_STEP_FRAME add hl, bc inc [hl] ld a, [hl] ld hl, OBJECT_FACING_STEP add hl, bc and 4 - ld a, $1e + ld a, FACING_1E jr z, .ok - inc a + inc a ; FACING_1F .ok ld [hl], a @@ -641,7 +648,7 @@ UselessAndA: ; 4679 Function467b: ; 467b xor a - ld hl, OBJECT_12 + ld hl, OBJECT_STEP_FRAME add hl, bc ld [hl], a ld hl, OBJECT_MOVEMENT_BYTE_INDEX @@ -1300,7 +1307,7 @@ Function47dd: ; 47dd ; 49e5 .MovementShadow: ; 49e5 - call ._MovementShadow_14_1a_1b + call ._MovementShadow_Grass_Emote_BoulderDust ld hl, OBJECT_ACTION add hl, bc ld [hl], PERSON_ACTION_07 @@ -1339,7 +1346,7 @@ Function47dd: ; 47dd .MovementEmote: ; 4a21 call Function467b - call ._MovementShadow_14_1a_1b + call ._MovementShadow_Grass_Emote_BoulderDust ld hl, OBJECT_ACTION add hl, bc ld [hl], PERSON_ACTION_08 @@ -1360,7 +1367,7 @@ Function47dd: ; 47dd .MovementBoulderDust: ; 4a46 call Function467b - call ._MovementShadow_14_1a_1b + call ._MovementShadow_Grass_Emote_BoulderDust ld hl, OBJECT_ACTION add hl, bc ld [hl], PERSON_ACTION_0E @@ -1407,7 +1414,7 @@ endr .MovementShakingGrass: ; 4a89 call Function467b - call ._MovementShadow_14_1a_1b + call ._MovementShadow_Grass_Emote_BoulderDust ld hl, OBJECT_ACTION add hl, bc ld [hl], PERSON_ACTION_0F @@ -1424,7 +1431,7 @@ endr ret ; 4aa8 -._MovementShadow_14_1a_1b: ; 4aa8 +._MovementShadow_Grass_Emote_BoulderDust: ; 4aa8 ld hl, OBJECT_RANGE add hl, bc ld a, [hl] @@ -1520,9 +1527,6 @@ RandomStepDuration_Fast: ; 4b26 call Random ld a, [hRandomAdd] and %00011111 - ; fallthrough -; 4b2d - SetRandomStepDuration: ; 4b2d ld hl, OBJECT_STEP_DURATION add hl, bc @@ -1630,9 +1634,6 @@ Function4bca: ; 4bca ld hl, wPlayerStepFlags set 7, [hl] call IncrementObjectStructField28 -; fallthrough -; 4bd2 - Function4bd2: ; 4bd2 call UpdateJumpPosition call Function4738 @@ -1656,9 +1657,6 @@ Function4bf2: ; 4bf2 ld hl, wPlayerStepFlags set 7, [hl] call IncrementObjectStructField28 -; fallthrough -; 4bfd - Function4bfd: ; 4bfd call UpdateJumpPosition call Function4738 @@ -1685,16 +1683,13 @@ Function4c18: ; 4c18 ; 4c23 Function4c23: ; 4c23 - ld hl, OBJECT_12 + ld hl, OBJECT_STEP_FRAME add hl, bc ld [hl], 0 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], $10 call IncrementObjectStructField28 -; fallthrough -; 4c32 - Function4c32: ; 4c32 ld hl, OBJECT_ACTION add hl, bc @@ -1708,7 +1703,7 @@ Function4c32: ; 4c32 ; 4c42 Function4c42: ; 4c42 - ld hl, OBJECT_12 + ld hl, OBJECT_STEP_FRAME add hl, bc ld [hl], 0 ld hl, OBJECT_31 @@ -1721,9 +1716,6 @@ Function4c42: ; 4c42 add hl, bc res 3, [hl] call IncrementObjectStructField28 -; fallthrough -; 4c5d - Function4c5d: ; 4c5d ld hl, OBJECT_ACTION add hl, bc @@ -1743,7 +1735,7 @@ Function4c5d: ; 4c5d add hl, bc dec [hl] ret nz - ld hl, OBJECT_12 + ld hl, OBJECT_STEP_FRAME add hl, bc ld [hl], 0 ld hl, OBJECT_STEP_TYPE @@ -1781,11 +1773,8 @@ Function4caa: ; 4caa dec [hl] ret nz call IncrementObjectStructField28 -; fallthrough -; 4cb3 - Function4cb3: ; 4cb3 - ld hl, OBJECT_12 + ld hl, OBJECT_STEP_FRAME add hl, bc ld [hl], 0 ld hl, OBJECT_31 @@ -1818,9 +1807,6 @@ Function4cc9: ; 4cc9 dec [hl] ret nz call IncrementObjectStructField28 -; fallthrough -; 4ceb - Function4ceb: ; 4ceb ld hl, OBJECT_STEP_DURATION add hl, bc @@ -1837,10 +1823,8 @@ Function4cf5: ; 4cf5 add hl, bc dec [hl] ret nz -; 4d01 - Function4d01: ; 4d01 - ld hl, OBJECT_12 + ld hl, OBJECT_STEP_FRAME add hl, bc ld [hl], 0 ld hl, OBJECT_SPRITE_Y_OFFSET @@ -1869,9 +1853,6 @@ Function4d1f: ; 4d1f add hl, bc ld [hl], $10 call IncrementObjectStructField28 -; fallthrough -; 4d2e - Function4d2e: ; 4d2e ld hl, OBJECT_STEP_DURATION add hl, bc @@ -1880,7 +1861,7 @@ Function4d2e: ; 4d2e ld hl, OBJECT_ACTION add hl, bc ld [hl], PERSON_ACTION_02 - ld hl, OBJECT_12 + ld hl, OBJECT_STEP_FRAME add hl, bc ld [hl], 0 ld hl, OBJECT_31 @@ -1890,9 +1871,6 @@ Function4d2e: ; 4d2e add hl, bc ld [hl], $10 call IncrementObjectStructField28 -; fallthrough -; 4d4f - Function4d4f: ; 4d4f ld hl, OBJECT_31 add hl, bc @@ -1910,11 +1888,8 @@ Function4d4f: ; 4d4f dec [hl] ret nz call IncrementObjectStructField28 -; fallthrough -; 4d6b - Function4d6b: ; 4d6b - ld hl, OBJECT_12 + ld hl, OBJECT_STEP_FRAME add hl, bc ld [hl], 0 ld hl, OBJECT_SPRITE_Y_OFFSET @@ -1941,9 +1916,6 @@ Function4d85: ; 4d85 add hl, bc ld [hl], 0 call IncrementObjectStructField28 - ; fallthrough -; 4d94 - Function4d94: ; 4d94 ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc @@ -2050,9 +2022,6 @@ Function4e13: ; 4e13 add hl, bc ld [hl], a call IncrementObjectStructField28 - ; fallthrough -; 4e21 - Function4e21: ; 4e21 call Function4fb2 ld hl, OBJECT_DIRECTION_WALKING @@ -2100,9 +2069,6 @@ Function4e5d: ; 4e5d ld hl, wPlayerStepFlags set 7, [hl] call IncrementObjectStructField28 - ; fallthrough -; 4e65 - Function4e65: ; 4e65 call Function4738 ld hl, OBJECT_STEP_DURATION @@ -2135,7 +2101,7 @@ Function4e8e: ; 4e8e ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld [hl], STANDING - ld hl, OBJECT_12 + ld hl, OBJECT_STEP_FRAME add hl, bc ld a, [hl] ld [hl], 2 @@ -2143,18 +2109,12 @@ Function4e8e: ; 4e8e add hl, bc ld [hl], 2 call IncrementObjectStructField28 - ; fallthrough -; 4ea4 - Function4ea4: ; 4ea4 ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz call IncrementObjectStructField28 - ; fallthrough -; 4ead - Function4ead: ; 4ead ld hl, OBJECT_29 add hl, bc @@ -2166,9 +2126,6 @@ Function4ead: ; 4ead add hl, bc ld [hl], $2 call IncrementObjectStructField28 - ; fallthrough -; 4ec0 - Function4ec0: ; 4ec0 ld hl, OBJECT_STEP_DURATION add hl, bc @@ -2260,9 +2217,6 @@ Function4f3a: ; 4f3a add hl, bc ld [hl], a call IncrementObjectStructField28 - ; fallthrough -; 4f43 - Function4f43: ; 4f43 ld hl, OBJECT_29 add hl, bc @@ -2338,7 +2292,7 @@ Function4f99: ; 4f99 ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc ld [hl], $60 - ld hl, OBJECT_12 + ld hl, OBJECT_STEP_FRAME add hl, bc ld [hl], 0 ld hl, OBJECT_STEP_TYPE @@ -2674,7 +2628,7 @@ DespawnEmote: ; 5579 push af ld hl, OBJECT_FLAGS1 add hl, de - bit 7, [hl] + bit EMOTE_OBJECT, [hl] jr z, .next ld hl, OBJECT_SPRITE add hl, de @@ -2784,7 +2738,7 @@ Function5602: ; 5602 call Function5629 .ok - call RefreshMapAppearDisappear + call _UpdateSprites ret ; 561d @@ -2792,7 +2746,7 @@ Function561d: ; 561d call Function5645 ld a, 0 call Function5629 - call RefreshMapAppearDisappear + call _UpdateSprites ret ; 5629 @@ -3076,11 +3030,11 @@ Function579d: ; 579d ld [wc2df], a xor a ld [wd04e], a - ld [PlayerObject12], a + ld [PlayerObjectStepFrame], a call Function57bc callba CheckWarpCollision call c, SpawnInFacingDown - call Function57ca + call SpawnInCustomFacing ret ; 57bc @@ -3096,7 +3050,7 @@ Function57bc: ; 57bc ret ; 57ca -Function57ca: ; 57ca +SpawnInCustomFacing: ; 57ca ld hl, wPlayerSpriteSetupFlags bit 5, [hl] ret z @@ -3105,15 +3059,12 @@ Function57ca: ; 57ca rept 2 add a endr - jr Function57db + jr ContinueSpawnFacing ; 57d9 SpawnInFacingDown: ; 57d9 ld a, 0 - ; fallthrough -; 57db - -Function57db: ; 57db +ContinueSpawnFacing: ; 57db ld bc, PlayerStruct call SetSpriteDirection ret @@ -3355,7 +3306,7 @@ Function5903: ; 5903 db SPRITEMOVEDATA_STANDING_RIGHT ; 5920 -RefreshMapAppearDisappear:: ; 5920 +_UpdateSprites:: ; 5920 ld a, [VramState] bit 0, a ret z @@ -3365,29 +3316,29 @@ RefreshMapAppearDisappear:: ; 5920 push af ld a, 1 ld [hOAMUpdate], a - call Function5991 - call Function593a + call InitSprites + call .fill pop af ld [hOAMUpdate], a ret ; 593a -Function593a: ; 593a +.fill: ; 593a ld a, [VramState] bit 1, a - ld b, $a0 + ld b, SpritesEnd % $100 jr z, .ok - ld b, $70 + ld b, 28 * 4 .ok ld a, [hUsedSpriteIndex] cp b ret nc ld l, a - ld h, $c4 - ld de, OBJECT_FLAGS1 + ld h, Sprites / $100 + ld de, 4 ld a, b - ld c, $a0 + ld c, SCREEN_HEIGHT_PX + 16 .loop ld [hl], c add hl, de @@ -3442,26 +3393,29 @@ Function5958: ; 5958 ret ; 5991 -Function5991: ; 5991 - call Function59a4 - ld c, $30 - call Function59f3 - ld c, $20 - call Function59f3 - ld c, $10 - call Function59f3 +InitSprites: ; 5991 +PRIORITY_LOW EQU $10 +PRIORITY_NORM EQU $20 +PRIORITY_HIGH EQU $30 + call .DeterminePriorities + ld c, PRIORITY_HIGH + call .InitSpritesByPriority + ld c, PRIORITY_NORM + call .InitSpritesByPriority + ld c, PRIORITY_LOW + call .InitSpritesByPriority ret ; 59a4 -Function59a4: ; 59a4 +.DeterminePriorities: ; 59a4 xor a - ld hl, wMovementPointer - ld bc, 13 + ld hl, wc2eb + ld bc, NUM_OBJECT_STRUCTS call ByteFill ld d, 0 ld bc, ObjectStructs - ld hl, wMovementPointer + ld hl, wc2eb .loop push hl call GetObjectSprite @@ -3470,19 +3424,19 @@ Function59a4: ; 59a4 ld hl, OBJECT_FACING_STEP add hl, bc ld a, [hl] - cp -1 + cp STANDING jr z, .skip ; Define the sprite priority. - ld e, $10 + ld e, PRIORITY_LOW ld hl, OBJECT_FLAGS2 add hl, bc bit 0, [hl] jr nz, .add - ld e, $20 + ld e, PRIORITY_NORM bit 1, [hl] jr z, .add - ld e, $30 + ld e, PRIORITY_HIGH jr .add .skip @@ -3511,28 +3465,28 @@ Function59a4: ; 59a4 ret ; 59f3 -Function59f3: ; 59f3 +.InitSpritesByPriority: ; 59f3 ld hl, wMovementPointer -.next +.next_sprite ld a, [hli] ld d, a and $f0 ret z cp c - jr nz, .next + jr nz, .next_sprite push bc push hl ld a, d and $f call .GetObjectStructPointer - call .asm_5a0d + call .InitSprite pop hl pop bc - jr .next + jr .next_sprite ; 5a0d -.asm_5a0d: ; 5a0d +.InitSprite: ; 5a0d ld hl, OBJECT_SPRITE_TILE add hl, bc ld a, [hl] diff --git a/engine/movement.asm b/engine/movement.asm index bce6fdd92..07bdc37c7 100644 --- a/engine/movement.asm +++ b/engine/movement.asm @@ -59,7 +59,7 @@ MovementPointers: ; 5075 dw Movement_39 ; 39 dw Movement_remove_fixed_facing ; 3a dw Movement_fix_facing ; 3b - dw Movement_3c ; 3c + dw Movement_show_person ; 3c dw Movement_hide_person ; 3d dw Movement_step_sleep_1 ; 3e dw Movement_step_sleep_2 ; 3f @@ -78,8 +78,8 @@ MovementPointers: ; 5075 dw Movement_teleport_from ; 4c dw Movement_teleport_to ; 4d dw Movement_skyfall ; 4e - dw Movement_step_wait5 ; 4f - dw Movement_step_bump ; 50 + dw Movement_step_dig ; 4f + dw Movement_step_bump ; 50 dw Movement_fish_got_bite ; 51 dw Movement_fish_cast_rod ; 52 dw Movement_hide_emote ; 53 @@ -87,7 +87,7 @@ MovementPointers: ; 5075 dw Movement_step_shake ; 55 dw Movement_56 ; 56 dw Movement_rock_smash ; 57 - dw Movement_58 ; 58 + dw Movement_return_dig ; 58 dw Movement_59 ; 59 ; 5129 @@ -95,21 +95,21 @@ MovementPointers: ; 5075 Movement_teleport_from: ; 5129 ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_0C + ld [hl], STEP_TYPE_TELEPORT_FROM ret ; 5130 Movement_teleport_to: ; 5130 ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_0D + ld [hl], STEP_TYPE_TELEPORT_TO ret ; 5137 Movement_skyfall: ; 5137 ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_0E + ld [hl], STEP_TYPE_SKYFALL ret ; 513e @@ -120,11 +120,11 @@ Movement_59: ; 513e ret ; 5145 -Movement_step_wait5: ; 5145 +Movement_step_dig: ; 5145 call GetSpriteDirection rlca rlca - ld hl, OBJECT_12 + ld hl, OBJECT_STEP_FRAME add hl, bc ld [hl], a ld hl, OBJECT_ACTION @@ -143,11 +143,11 @@ Movement_step_wait5: ; 5145 ret ; 516a -Movement_58: ; 516a +Movement_return_dig: ; 516a call GetSpriteDirection rlca rlca - ld hl, OBJECT_12 + ld hl, OBJECT_STEP_FRAME add hl, bc ld [hl], a call GetMovementByte @@ -334,16 +334,19 @@ Movement_step_sleep_common: ; 5247 ; 525f Movement_step_bump: ; 525f - ld a, $1 + ld a, 1 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], a + ld hl, OBJECT_STEP_TYPE add hl, bc ld [hl], STEP_TYPE_0B + ld hl, OBJECT_ACTION add hl, bc ld [hl], PERSON_ACTION_03 + ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld [hl], STANDING @@ -373,14 +376,14 @@ Movement_56: ; 5279 Movement_38: ; 5293 ld hl, OBJECT_FLAGS1 add hl, bc - res 3, [hl] + res SLIDING, [hl] jp ContinueReadingMovement ; 529c Movement_39: ; 529c ld hl, OBJECT_FLAGS1 add hl, bc - set 3, [hl] + set SLIDING, [hl] jp ContinueReadingMovement ; 52a5 @@ -398,17 +401,17 @@ Movement_fix_facing: ; 52ae jp ContinueReadingMovement ; 52b7 -Movement_3c: ; 52b7 +Movement_show_person: ; 52b7 ld hl, OBJECT_FLAGS1 add hl, bc - res 0, [hl] + res INVISIBLE, [hl] jp ContinueReadingMovement ; 52c0 Movement_hide_person: ; 52c0 ld hl, OBJECT_FLAGS1 add hl, bc - set 0, [hl] + set INVISIBLE, [hl] jp ContinueReadingMovement ; 52c9 @@ -760,14 +763,14 @@ NormalStep: ; 5412 ld hl, wd4cf ld a, [hMapObjectIndexBuffer] cp [hl] - jr z, .asm_543f + jr z, .step_type_06 ld hl, OBJECT_STEP_TYPE add hl, bc ld [hl], STEP_TYPE_02 ret -.asm_543f +.step_type_06 ld hl, OBJECT_STEP_TYPE add hl, bc ld [hl], STEP_TYPE_06 @@ -777,19 +780,22 @@ NormalStep: ; 5412 TurningStep: ; 5446 call Function4690 call Function463f + ld hl, OBJECT_ACTION add hl, bc ld [hl], PERSON_ACTION_04 + ld hl, wd4cf ld a, [hMapObjectIndexBuffer] cp [hl] - jr z, .asm_5461 + jr z, .step_type_06 + ld hl, OBJECT_STEP_TYPE add hl, bc ld [hl], STEP_TYPE_02 ret -.asm_5461 +.step_type_06 ld hl, OBJECT_STEP_TYPE add hl, bc ld [hl], STEP_TYPE_06 @@ -800,19 +806,22 @@ TurningStep: ; 5446 SlideStep: ; 5468 call Function4690 call Function463f + ld hl, OBJECT_ACTION add hl, bc ld [hl], PERSON_ACTION_01 + ld hl, wd4cf ld a, [hMapObjectIndexBuffer] cp [hl] - jr z, .asm_5483 + jr z, .step_type_06 + ld hl, OBJECT_STEP_TYPE add hl, bc ld [hl], STEP_TYPE_02 ret -.asm_5483 +.step_type_06 ld hl, OBJECT_STEP_TYPE add hl, bc ld [hl], STEP_TYPE_06 @@ -825,23 +834,28 @@ JumpStep: ; 548a ld hl, OBJECT_31 add hl, bc ld [hl], $0 + ld hl, OBJECT_FLAGS2 add hl, bc res 3, [hl] + ld hl, OBJECT_ACTION add hl, bc ld [hl], PERSON_ACTION_02 + call SpawnShadow + ld hl, wd4cf ld a, [hMapObjectIndexBuffer] cp [hl] - jr z, .asm_54b1 + jr z, .step_type_09 + ld hl, OBJECT_STEP_TYPE add hl, bc ld [hl], STEP_TYPE_08 ret -.asm_54b1 +.step_type_09 ld hl, OBJECT_STEP_TYPE add hl, bc ld [hl], STEP_TYPE_09 diff --git a/engine/scripting.asm b/engine/scripting.asm index 720ea1de4..60618abab 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -1284,7 +1284,7 @@ Script_disappear: ; 0x972ee ld a, [hMapObjectIndexBuffer] ld b, 1 ; set call ApplyEventActionAppearDisappear - callba RefreshMapAppearDisappear + callba _UpdateSprites ret ; 0x9730b diff --git a/event/forced_movement.asm b/event/forced_movement.asm index 89a776d60..b6e6091ff 100755 --- a/event/forced_movement.asm +++ b/event/forced_movement.asm @@ -28,41 +28,33 @@ Script_ForcedMovement:: ; 0x1253d ; 0x12564 .MovementData_up: ; 0x12564 - step_wait5 - big_step_down + step_dig 16 turn_in_down - step_wait5 - big_step_down + step_dig 16 turn_head_down step_end ; 0x1256b .MovementData_down: ; 0x1256b - step_wait5 - big_step_down + step_dig 16 turn_in_up - step_wait5 - big_step_down + step_dig 16 turn_head_up step_end ; 0x12572 .MovementData_right: ; 0x12572 - step_wait5 - big_step_down + step_dig 16 turn_in_left - step_wait5 - big_step_down + step_dig 16 turn_head_left step_end ; 0x12579 .MovementData_left: ; 0x12579 - step_wait5 - big_step_down + step_dig 16 turn_in_right - step_wait5 - big_step_down + step_dig 16 turn_head_right step_end ; 0x12580 diff --git a/home/map_objects.asm b/home/map_objects.asm index 1437c1cde..17ea916ab 100644 --- a/home/map_objects.asm +++ b/home/map_objects.asm @@ -649,7 +649,7 @@ UpdateSprites:: ; 1ad2 bit 0, a ret z callba Function55e0 - callba RefreshMapAppearDisappear + callba _UpdateSprites ret ; 1ae5 diff --git a/macros/movement.asm b/macros/movement.asm index 0b018f7d6..c354b0d5c 100644 --- a/macros/movement.asm +++ b/macros/movement.asm @@ -292,10 +292,9 @@ fix_facing: macro db movement_fix_facing ; $3b endm - enum movement_return_dig -return_dig: macro - db movement_return_dig - db \1 + enum movement_show_person +show_person: macro + db movement_show_person ; $3c endm enum movement_hide_person @@ -354,6 +353,8 @@ step_end: macro db movement_step_end ; $47 endm +; Whatever Movement_48 is, it takes a one-byte parameter + __enum__ = $49 enum movement_remove_person @@ -383,9 +384,10 @@ skyfall: macro db movement_skyfall ; $4e endm - enum movement_step_wait5 -step_wait5: macro - db movement_step_wait5 ; $4f + enum movement_step_dig +step_dig: macro + db movement_step_dig ; $4f + db \1 endm enum movement_step_bump @@ -425,3 +427,9 @@ rock_smash: macro db movement_rock_smash ; $57 db \1 endm + + enum movement_return_dig +return_dig: macro + db movement_return_dig ; $58 + db \1 + endm diff --git a/main.asm b/main.asm index 95bedcaa9..f38ab3749 100644 --- a/main.asm +++ b/main.asm @@ -1522,7 +1522,7 @@ Function6473: ; 6473 xor a ld [hBGMapMode], a ld [hWY], a - callba Function64db ; no need to callba + callba Function64db ; no need to farcall ld a, VBGMap0 / $100 call Function64b9 xor a @@ -5571,26 +5571,25 @@ UsedDigOrEscapeRopeScript: ; 0xcc3c closetext loadmovesprites playsound SFX_WARP_TO - applymovement PLAYER, MovementData_0xcc59 + applymovement PLAYER, .DigOut farscall Script_AbortBugContest special WarpToSpawnPoint writecode VAR_MOVEMENT, $0 newloadmap MAPSETUP_DOOR playsound SFX_WARP_FROM - applymovement PLAYER, MovementData_0xcc5d + applymovement PLAYER, .DigReturn end ; 0xcc59 -MovementData_0xcc59: ; 0xcc59 - step_wait5 - turn_away_down +.DigOut: ; 0xcc59 + step_dig 32 hide_person step_end ; 0xcc5d -MovementData_0xcc5d: ; 0xcc5d - return_dig $58 - turn_away_down +.DigReturn: ; 0xcc5d + show_person + return_dig 32 step_end ; 0xcc61 @@ -5669,22 +5668,22 @@ Script_UsedTeleport: ; 0xccbb reloadmappart loadmovesprites playsound SFX_WARP_TO - applymovement PLAYER, MovementData_0xcce1 + applymovement PLAYER, .TeleportFrom farscall Script_AbortBugContest special WarpToSpawnPoint writecode VAR_MOVEMENT, $0 newloadmap MAPSETUP_TELEPORT playsound SFX_WARP_FROM - applymovement PLAYER, MovementData_0xcce3 + applymovement PLAYER, .TeleportTo end ; 0xcce1 -MovementData_0xcce1: ; cce1 +.TeleportFrom: ; cce1 teleport_from step_end ; cce3 -MovementData_0xcce3: ; cce3 +.TeleportTo: ; cce3 teleport_to step_end ; cce5 @@ -50690,7 +50689,7 @@ LoadMapTimeOfDay: ; 104750 ret Function104770: ; 104770 (41:4770) - ld a, $98 + ld a, VBGMap0 / $100 ld [wBGMapAnchor + 1], a xor a ld [wBGMapAnchor], a diff --git a/wram.asm b/wram.asm index 5d5d861ff..149c40cba 100644 --- a/wram.asm +++ b/wram.asm @@ -325,6 +325,7 @@ wMovementPerson:: ds 1 wMovementDataPointer:: ds 3 ; dba wc2e6:: ds 4 wc2ea:: ds 1 +wc2eb:: wMovementPointer:: ds 2 ; c2eb ds 3 @@ -2219,7 +2220,7 @@ object_struct: MACRO \1StepType:: ds 1 \1StepDuration:: ds 1 \1Action:: ds 1 -\1Object12:: ds 1 +\1ObjectStepFrame:: ds 1 \1Facing:: ds 1 \1NextTile:: ds 1 ; collision \1StandingTile:: ds 1 ; collision From 8290f851fd97131d927a9702deee20b150d3eae3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 16 Nov 2015 00:52:53 -0500 Subject: [PATCH 10/40] Further decoding of SpriteMovementData --- engine/map_objects.asm | 84 ++++++++++++++++++++++-------------------- home/map_objects.asm | 15 ++++++-- main.asm | 4 +- 3 files changed, 58 insertions(+), 45 deletions(-) diff --git a/engine/map_objects.asm b/engine/map_objects.asm index 58b0f7493..2de4074a8 100644 --- a/engine/map_objects.asm +++ b/engine/map_objects.asm @@ -2,45 +2,50 @@ INCLUDE "engine/facings.asm" SpriteMovementData:: ; 4273 - ; function, facing, ?, ?, ?, ? - db SPRITEMOVEFN_00, DOWN, $01, $02, $00, $00 ; 00 - db SPRITEMOVEFN_STANDING, DOWN, $01, $0c, $00, $00 ; 01 - db SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, $01, $00, $00, $00 ; 02 - db SPRITEMOVEFN_SLOW_RANDOM_SPIN, DOWN, $01, $00, $00, $00 ; 03 - db SPRITEMOVEFN_RANDOM_WALK_Y, DOWN, $01, $00, $00, $00 ; 04 - db SPRITEMOVEFN_RANDOM_WALK_X, DOWN, $01, $00, $00, $00 ; 05 - db SPRITEMOVEFN_STANDING, DOWN, $01, $00, $00, $00 ; 06 - db SPRITEMOVEFN_STANDING, UP, $01, $00, $00, $00 ; 07 - db SPRITEMOVEFN_STANDING, LEFT, $01, $00, $00, $00 ; 08 - db SPRITEMOVEFN_STANDING, RIGHT, $01, $00, $00, $00 ; 09 - db SPRITEMOVEFN_FAST_RANDOM_SPIN, DOWN, $01, $00, $00, $00 ; 0a - db SPRITEMOVEFN_OBEY_DPAD, DOWN, $01, $02, $00, $00 ; 0b - db SPRITEMOVEFN_08, DOWN, $01, $00, $00, $00 ; 0c - db SPRITEMOVEFN_09, DOWN, $01, $00, $00, $00 ; 0d - db SPRITEMOVEFN_0A, DOWN, $01, $00, $00, $00 ; 0e - db SPRITEMOVEFN_0B, DOWN, $01, $00, $00, $00 ; 0f - db SPRITEMOVEFN_0C, DOWN, $01, $00, $00, $00 ; 10 - db SPRITEMOVEFN_0D, DOWN, $01, $00, $00, $00 ; 11 - db SPRITEMOVEFN_0E, DOWN, $01, $00, $00, $00 ; 12 - db SPRITEMOVEFN_FOLLOW, DOWN, $01, $02, $00, $00 ; 13 - db SPRITEMOVEFN_SCRIPTED, DOWN, $01, $02, $00, $00 ; 14 - db SPRITEMOVEFN_BIG_SNORLAX, DOWN, $09, $2e, $01, $c0 ; 15 - db SPRITEMOVEFN_BOUNCE, DOWN, $0a, $2e, $00, $00 ; 16 - db SPRITEMOVEFN_STANDING, DOWN, $01, $0c, $00, $00 ; 17 - db SPRITEMOVEFN_STANDING, DOWN, $01, $2e, $10, $00 ; 18 - db SPRITEMOVEFN_STRENGTH, DOWN, $01, $2e, $00, $40 ; 19 - db SPRITEMOVEFN_FOLLOWNOTEXACT, DOWN, $01, $02, $00, $00 ; 1a - db SPRITEMOVEFN_SHADOW, DOWN, $00, $8e, $01, $00 ; 1b - db SPRITEMOVEFN_EMOTE, DOWN, $08, $8e, $02, $00 ; 1c - db SPRITEMOVEFN_SCREENSHAKE, DOWN, $00, $82, $00, $00 ; 1d - db SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE, LEFT, $01, $00, $00, $00 ; 1e - db SPRITEMOVEFN_SPIN_CLOCKWISE, RIGHT, $01, $00, $00, $00 ; 1f - db SPRITEMOVEFN_STRENGTH, DOWN, $0c, $2e, $01, $c0 ; 20 - db SPRITEMOVEFN_STRENGTH, DOWN, $0d, $2e, $01, $c0 ; 21 - db SPRITEMOVEFN_BOULDERDUST, DOWN, $0e, $8e, $01, $00 ; 22 - db SPRITEMOVEFN_GRASS, DOWN, $0f, $8e, $02, $00 ; 23 - db SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, $01, $00, $00, $20 ; 24 - db SPRITEMOVEFN_00, DOWN, $01, $00, $00, $00 ; 25 + +sprite_movement_data: macro + db \1, \2, \3, \4, \5 + dn \6, 0 + endm + ; function, facing, action, flags1, flags2, palette flags + sprite_movement_data SPRITEMOVEFN_00, DOWN, PERSON_ACTION_01, $02, $00, %0000 ; 00 + sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_01, $0c, $00, %0000 ; 01 + sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 02 + sprite_movement_data SPRITEMOVEFN_SLOW_RANDOM_SPIN, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 03 + sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_Y, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 04 + sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_X, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 05 + sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 06 + sprite_movement_data SPRITEMOVEFN_STANDING, UP, PERSON_ACTION_01, $00, $00, %0000 ; 07 + sprite_movement_data SPRITEMOVEFN_STANDING, LEFT, PERSON_ACTION_01, $00, $00, %0000 ; 08 + sprite_movement_data SPRITEMOVEFN_STANDING, RIGHT, PERSON_ACTION_01, $00, $00, %0000 ; 09 + sprite_movement_data SPRITEMOVEFN_FAST_RANDOM_SPIN, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 0a + sprite_movement_data SPRITEMOVEFN_OBEY_DPAD, DOWN, PERSON_ACTION_01, $02, $00, %0000 ; 0b + sprite_movement_data SPRITEMOVEFN_08, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 0c + sprite_movement_data SPRITEMOVEFN_09, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 0d + sprite_movement_data SPRITEMOVEFN_0A, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 0e + sprite_movement_data SPRITEMOVEFN_0B, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 0f + sprite_movement_data SPRITEMOVEFN_0C, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 10 + sprite_movement_data SPRITEMOVEFN_0D, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 11 + sprite_movement_data SPRITEMOVEFN_0E, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 12 + sprite_movement_data SPRITEMOVEFN_FOLLOW, DOWN, PERSON_ACTION_01, $02, $00, %0000 ; 13 + sprite_movement_data SPRITEMOVEFN_SCRIPTED, DOWN, PERSON_ACTION_01, $02, $00, %0000 ; 14 + sprite_movement_data SPRITEMOVEFN_BIG_SNORLAX, DOWN, PERSON_ACTION_09, $2e, $01, %1100 ; 15 + sprite_movement_data SPRITEMOVEFN_BOUNCE, DOWN, PERSON_ACTION_0A, $2e, $00, %0000 ; 16 + sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_01, $0c, $00, %0000 ; 17 + sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_01, $2e, $10, %0000 ; 18 + sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, PERSON_ACTION_01, $2e, $00, %0100 ; 19 + sprite_movement_data SPRITEMOVEFN_FOLLOWNOTEXACT, DOWN, PERSON_ACTION_01, $02, $00, %0000 ; 1a + sprite_movement_data SPRITEMOVEFN_SHADOW, DOWN, PERSON_ACTION_00, $8e, $01, %0000 ; 1b + sprite_movement_data SPRITEMOVEFN_EMOTE, DOWN, PERSON_ACTION_08, $8e, $02, %0000 ; 1c + sprite_movement_data SPRITEMOVEFN_SCREENSHAKE, DOWN, PERSON_ACTION_00, $82, $00, %0000 ; 1d + sprite_movement_data SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE, LEFT, PERSON_ACTION_01, $00, $00, %0000 ; 1e + sprite_movement_data SPRITEMOVEFN_SPIN_CLOCKWISE, RIGHT, PERSON_ACTION_01, $00, $00, %0000 ; 1f + sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, PERSON_ACTION_0C, $2e, $01, %1100 ; 20 + sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, PERSON_ACTION_0D, $2e, $01, %1100 ; 21 + sprite_movement_data SPRITEMOVEFN_BOULDERDUST, DOWN, PERSON_ACTION_0E, $8e, $01, %0000 ; 22 + sprite_movement_data SPRITEMOVEFN_GRASS, DOWN, PERSON_ACTION_0F, $8e, $02, %0000 ; 23 + sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, PERSON_ACTION_01, $00, $00, %0010 ; 24 + sprite_movement_data SPRITEMOVEFN_00, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 25 ; 4357 @@ -2705,6 +2710,7 @@ Function55e0:: ; 55e0 ld a, [VramState] bit 0, a ret z + ld bc, ObjectStructs xor a .loop diff --git a/home/map_objects.asm b/home/map_objects.asm index 17ea916ab..67a6c52d5 100644 --- a/home/map_objects.asm +++ b/home/map_objects.asm @@ -542,7 +542,7 @@ endr ; 1a61 -Function1a61:: ; 1a61 +CopySpriteMovementData:: ; 1a61 ld l, a ld a, [hROMBank] push af @@ -551,7 +551,7 @@ Function1a61:: ; 1a61 ld a, l push bc - call Function1a71 + call .CopyData pop bc pop af @@ -560,10 +560,11 @@ Function1a61:: ; 1a61 ret ; 1a71 -Function1a71:: ; 1a71 +.CopyData ; 1a71 ld hl, OBJECT_MOVEMENTTYPE add hl, de ld [hl], a + push de ld e, a ld d, 0 @@ -574,29 +575,34 @@ endr ld b, h ld c, l pop de + ld a, [bc] inc bc rlca rlca - and $c + and %00001100 ld hl, OBJECT_FACING add hl, de ld [hl], a + ld a, [bc] inc bc ld hl, OBJECT_ACTION add hl, de ld [hl], a + ld a, [bc] inc bc ld hl, OBJECT_FLAGS1 add hl, de ld [hl], a + ld a, [bc] inc bc ld hl, OBJECT_FLAGS2 add hl, de ld [hl], a + ld a, [bc] inc bc ld hl, OBJECT_PALETTE @@ -648,6 +654,7 @@ UpdateSprites:: ; 1ad2 ld a, [VramState] bit 0, a ret z + callba Function55e0 callba _UpdateSprites ret diff --git a/main.asm b/main.asm index f38ab3749..9ae03319b 100644 --- a/main.asm +++ b/main.asm @@ -3248,7 +3248,7 @@ PlayerObjectTemplate: ; 8071 ; A dummy map object used to initialize the player object. ; Shorter than the actual amount copied by two bytes. ; Said bytes seem to be unused. - person_event SPRITE_CHRIS, -4, -4, SPRITEMOVEDATA_PLAYER, 15, 15, -1, -1, 0, 0, 0, 0, -1 + person_event SPRITE_CHRIS, -4, -4, SPRITEMOVEDATA_PLAYER, 15, 15, -1, -1, 0, PERSONTYPE_SCRIPT, 0, 0, -1 ; 807e CopyDECoordsToMapObject:: ; 807e @@ -3630,7 +3630,7 @@ CopyTempObjectToObjectStruct: ; 8286 ld [hl], a ld a, [wTempObjectCopyMovement] - call Function1a61 + call CopySpriteMovementData ld a, [wTempObjectCopyPalette] ld hl, OBJECT_PALETTE From fb88b2ccf8f0897f95d25b82f95444ec775aa917 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 16 Nov 2015 11:53:26 -0500 Subject: [PATCH 11/40] Movement constants, script stack --- constants/script_constants.asm | 56 ++++----- constants/sprite_constants.asm | 38 +++--- engine/battle_start.asm | 16 ++- engine/map_objects.asm | 208 +++++++++++++++++---------------- engine/movement.asm | 82 ++++++------- engine/save.asm | 18 +-- engine/scripting.asm | 149 ++++++++++++----------- macros/event.asm | 6 +- main.asm | 146 +++++++++++------------ sram.asm | 4 +- wram.asm | 12 +- 11 files changed, 377 insertions(+), 358 deletions(-) diff --git a/constants/script_constants.asm b/constants/script_constants.asm index 058f9d92d..f1e608ab9 100644 --- a/constants/script_constants.asm +++ b/constants/script_constants.asm @@ -3,34 +3,34 @@ PLAYER EQU 0 LAST_TALKED EQU -2 const_def - const VAR_STRINGBUFFER2 - const VAR_PARTYCOUNT - const VAR_BATTLERESULT - const VAR_BATTLETYPE - const VAR_TIMEOFDAY - const VAR_DEXCAUGHT - const VAR_DEXSEEN - const VAR_BADGES - const VAR_MOVEMENT - const VAR_FACING - const VAR_HOUR - const VAR_WEEKDAY - const VAR_MAPGROUP - const VAR_MAPNUMBER - const VAR_UNOWNCOUNT - const VAR_ROOFPALETTE - const VAR_BOXSPACE - const VAR_CONTESTMINUTES - const VAR_XCOORD - const VAR_YCOORD - const VAR_SPECIALPHONECALL - const VAR_15 - const VAR_KURT_APRICORNS - const VAR_CALLERID - const VAR_BLUECARDBALANCE - const VAR_BUENASPASSWORD - const VAR_KENJI_BREAK -NUM_VARS EQU const_value + const VAR_STRINGBUFFER2 ; 00 + const VAR_PARTYCOUNT ; 01 + const VAR_BATTLERESULT ; 02 + const VAR_BATTLETYPE ; 03 + const VAR_TIMEOFDAY ; 04 + const VAR_DEXCAUGHT ; 05 + const VAR_DEXSEEN ; 06 + const VAR_BADGES ; 07 + const VAR_MOVEMENT ; 08 + const VAR_FACING ; 09 + const VAR_HOUR ; 0a + const VAR_WEEKDAY ; 0b + const VAR_MAPGROUP ; 0c + const VAR_MAPNUMBER ; 0d + const VAR_UNOWNCOUNT ; 0e + const VAR_ROOFPALETTE ; 0f + const VAR_BOXSPACE ; 10 + const VAR_CONTESTMINUTES ; 11 + const VAR_XCOORD ; 12 + const VAR_YCOORD ; 13 + const VAR_SPECIALPHONECALL ; 14 + const VAR_15 ; 15 + const VAR_KURT_APRICORNS ; 16 + const VAR_CALLERID ; 17 + const VAR_BLUECARDBALANCE ; 18 + const VAR_BUENASPASSWORD ; 19 + const VAR_KENJI_BREAK ; 1a +NUM_VARS EQU const_value ; 1b RETVAR_STRBUF2 EQU (0 << 6) RETVAR_ADDR_DE EQU (1 << 6) diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm index 438e4cb54..c34ac6c28 100644 --- a/constants/sprite_constants.asm +++ b/constants/sprite_constants.asm @@ -269,24 +269,24 @@ MAX_OUTDOOR_SPRITES EQU 23 const_def const STEP_TYPE_00 - const STEP_TYPE_01 - const STEP_TYPE_02 ; walking - const STEP_TYPE_03 ; stationary + const STEP_TYPE_STANDING + const STEP_TYPE_NPC_WALK + const STEP_TYPE_03 const STEP_TYPE_04 const STEP_TYPE_05 - const STEP_TYPE_06 + const STEP_TYPE_PLAYER_WALK const STEP_TYPE_07 - const STEP_TYPE_08 - const STEP_TYPE_09 - const STEP_TYPE_0A ; half step - const STEP_TYPE_0B ; bump + const STEP_TYPE_NPC_JUMP + const STEP_TYPE_PLAYER_JUMP + const STEP_TYPE_HALF_STEP + const STEP_TYPE_BUMP const STEP_TYPE_TELEPORT_FROM const STEP_TYPE_TELEPORT_TO const STEP_TYPE_SKYFALL const STEP_TYPE_0F - const STEP_TYPE_10 - const STEP_TYPE_11 - const STEP_TYPE_12 + const STEP_TYPE_GOT_BITE + const STEP_TYPE_ROCK_SMASH + const STEP_TYPE_RETURN_DIG const STEP_TYPE_13 const STEP_TYPE_14 const STEP_TYPE_15 @@ -297,14 +297,14 @@ MAX_OUTDOOR_SPRITES EQU 23 const_def const PERSON_ACTION_00 - const PERSON_ACTION_01 - const PERSON_ACTION_02 - const PERSON_ACTION_03 - const PERSON_ACTION_04 - const PERSON_ACTION_05 - const PERSON_ACTION_06 + const PERSON_ACTION_STAND + const PERSON_ACTION_STEP + const PERSON_ACTION_BUMP + const PERSON_ACTION_SPIN + const PERSON_ACTION_SPIN_FLICKER + const PERSON_ACTION_FISHING const PERSON_ACTION_07 - const PERSON_ACTION_08 + const PERSON_ACTION_EMOTE const PERSON_ACTION_09 const PERSON_ACTION_0A const PERSON_ACTION_0B @@ -335,7 +335,7 @@ MAX_OUTDOOR_SPRITES EQU 23 const FACING_11 const FACING_12 const FACING_13 - const FACING_14 + const FACING_EMOTE const FACING_15 const FACING_16 const FACING_17 diff --git a/engine/battle_start.asm b/engine/battle_start.asm index 0897b8a4a..5bcaad99c 100644 --- a/engine/battle_start.asm +++ b/engine/battle_start.asm @@ -27,7 +27,7 @@ Predef_StartBattle: ; 8c20f ld [rSVBK], a ld hl, wMapPals - ld bc, $0040 + ld bc, 8 palettes xor a call ByteFill @@ -308,9 +308,11 @@ StartTrainerBattle_Flash: ; 8c3ab (23:43ab) StartTrainerBattle_SetUpForWavyOutro: ; 8c3e8 (23:43e8) callba Function5602 - ld a, $5 + ld a, $5 ; BANK(LYOverrides) ld [rSVBK], a + call StartTrainerBattle_NextScene + ld a, $43 ld [hLCDStatCustom], a xor a @@ -342,8 +344,8 @@ StartTrainerBattle_SineWave: ; 8c408 (23:4408) ld d, [hl] add [hl] ld [hl], a - ld a, $90 - ld bc, wd100 + ld a, LYOverridesEnd - LYOverrides + ld bc, LYOverrides ld e, $0 .loop @@ -364,7 +366,7 @@ StartTrainerBattle_SineWave: ; 8c408 (23:4408) StartTrainerBattle_SetUpForSpinOutro: ; 8c43d (23:443d) callba Function5602 - ld a, $5 + ld a, $5 ; BANK(LYOverrides) ld [rSVBK], a call StartTrainerBattle_NextScene xor a @@ -507,7 +509,7 @@ endr StartTrainerBattle_SetUpForRandomScatterOutro: ; 8c578 (23:4578) callba Function5602 - ld a, $5 + ld a, $5 ; BANK(LYOverrides) ld [rSVBK], a call StartTrainerBattle_NextScene ld a, $10 @@ -739,10 +741,12 @@ WipeLYOverrides: ; 8c6d8 push af ld a, $5 ld [rSVBK], a + ld hl, LYOverrides call .wipe ld hl, LYOverridesBackup call .wipe + pop af ld [rSVBK], a ret diff --git a/engine/map_objects.asm b/engine/map_objects.asm index 2de4074a8..e442b7f77 100644 --- a/engine/map_objects.asm +++ b/engine/map_objects.asm @@ -8,44 +8,44 @@ sprite_movement_data: macro dn \6, 0 endm ; function, facing, action, flags1, flags2, palette flags - sprite_movement_data SPRITEMOVEFN_00, DOWN, PERSON_ACTION_01, $02, $00, %0000 ; 00 - sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_01, $0c, $00, %0000 ; 01 - sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 02 - sprite_movement_data SPRITEMOVEFN_SLOW_RANDOM_SPIN, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 03 - sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_Y, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 04 - sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_X, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 05 - sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 06 - sprite_movement_data SPRITEMOVEFN_STANDING, UP, PERSON_ACTION_01, $00, $00, %0000 ; 07 - sprite_movement_data SPRITEMOVEFN_STANDING, LEFT, PERSON_ACTION_01, $00, $00, %0000 ; 08 - sprite_movement_data SPRITEMOVEFN_STANDING, RIGHT, PERSON_ACTION_01, $00, $00, %0000 ; 09 - sprite_movement_data SPRITEMOVEFN_FAST_RANDOM_SPIN, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 0a - sprite_movement_data SPRITEMOVEFN_OBEY_DPAD, DOWN, PERSON_ACTION_01, $02, $00, %0000 ; 0b - sprite_movement_data SPRITEMOVEFN_08, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 0c - sprite_movement_data SPRITEMOVEFN_09, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 0d - sprite_movement_data SPRITEMOVEFN_0A, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 0e - sprite_movement_data SPRITEMOVEFN_0B, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 0f - sprite_movement_data SPRITEMOVEFN_0C, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 10 - sprite_movement_data SPRITEMOVEFN_0D, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 11 - sprite_movement_data SPRITEMOVEFN_0E, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 12 - sprite_movement_data SPRITEMOVEFN_FOLLOW, DOWN, PERSON_ACTION_01, $02, $00, %0000 ; 13 - sprite_movement_data SPRITEMOVEFN_SCRIPTED, DOWN, PERSON_ACTION_01, $02, $00, %0000 ; 14 + sprite_movement_data SPRITEMOVEFN_00, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 00 + sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_STAND, $0c, $00, %0000 ; 01 + sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 02 + sprite_movement_data SPRITEMOVEFN_SLOW_RANDOM_SPIN, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 03 + sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_Y, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 04 + sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_X, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 05 + sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 06 + sprite_movement_data SPRITEMOVEFN_STANDING, UP, PERSON_ACTION_STAND, $00, $00, %0000 ; 07 + sprite_movement_data SPRITEMOVEFN_STANDING, LEFT, PERSON_ACTION_STAND, $00, $00, %0000 ; 08 + sprite_movement_data SPRITEMOVEFN_STANDING, RIGHT, PERSON_ACTION_STAND, $00, $00, %0000 ; 09 + sprite_movement_data SPRITEMOVEFN_FAST_RANDOM_SPIN, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0a + sprite_movement_data SPRITEMOVEFN_OBEY_DPAD, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 0b + sprite_movement_data SPRITEMOVEFN_08, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0c + sprite_movement_data SPRITEMOVEFN_09, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0d + sprite_movement_data SPRITEMOVEFN_0A, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0e + sprite_movement_data SPRITEMOVEFN_0B, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0f + sprite_movement_data SPRITEMOVEFN_0C, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 10 + sprite_movement_data SPRITEMOVEFN_0D, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 11 + sprite_movement_data SPRITEMOVEFN_0E, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 12 + sprite_movement_data SPRITEMOVEFN_FOLLOW, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 13 + sprite_movement_data SPRITEMOVEFN_SCRIPTED, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 14 sprite_movement_data SPRITEMOVEFN_BIG_SNORLAX, DOWN, PERSON_ACTION_09, $2e, $01, %1100 ; 15 sprite_movement_data SPRITEMOVEFN_BOUNCE, DOWN, PERSON_ACTION_0A, $2e, $00, %0000 ; 16 - sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_01, $0c, $00, %0000 ; 17 - sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_01, $2e, $10, %0000 ; 18 - sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, PERSON_ACTION_01, $2e, $00, %0100 ; 19 - sprite_movement_data SPRITEMOVEFN_FOLLOWNOTEXACT, DOWN, PERSON_ACTION_01, $02, $00, %0000 ; 1a + sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_STAND, $0c, $00, %0000 ; 17 + sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_STAND, $2e, $10, %0000 ; 18 + sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, PERSON_ACTION_STAND, $2e, $00, %0100 ; 19 + sprite_movement_data SPRITEMOVEFN_FOLLOWNOTEXACT, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 1a sprite_movement_data SPRITEMOVEFN_SHADOW, DOWN, PERSON_ACTION_00, $8e, $01, %0000 ; 1b - sprite_movement_data SPRITEMOVEFN_EMOTE, DOWN, PERSON_ACTION_08, $8e, $02, %0000 ; 1c + sprite_movement_data SPRITEMOVEFN_EMOTE, DOWN, PERSON_ACTION_EMOTE, $8e, $02, %0000 ; 1c sprite_movement_data SPRITEMOVEFN_SCREENSHAKE, DOWN, PERSON_ACTION_00, $82, $00, %0000 ; 1d - sprite_movement_data SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE, LEFT, PERSON_ACTION_01, $00, $00, %0000 ; 1e - sprite_movement_data SPRITEMOVEFN_SPIN_CLOCKWISE, RIGHT, PERSON_ACTION_01, $00, $00, %0000 ; 1f + sprite_movement_data SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE, LEFT, PERSON_ACTION_STAND, $00, $00, %0000 ; 1e + sprite_movement_data SPRITEMOVEFN_SPIN_CLOCKWISE, RIGHT, PERSON_ACTION_STAND, $00, $00, %0000 ; 1f sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, PERSON_ACTION_0C, $2e, $01, %1100 ; 20 sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, PERSON_ACTION_0D, $2e, $01, %1100 ; 21 sprite_movement_data SPRITEMOVEFN_BOULDERDUST, DOWN, PERSON_ACTION_0E, $8e, $01, %0000 ; 22 sprite_movement_data SPRITEMOVEFN_GRASS, DOWN, PERSON_ACTION_0F, $8e, $02, %0000 ; 23 - sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, PERSON_ACTION_01, $00, $00, %0010 ; 24 - sprite_movement_data SPRITEMOVEFN_00, DOWN, PERSON_ACTION_01, $00, $00, %0000 ; 25 + sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, PERSON_ACTION_STAND, $00, $00, %0010 ; 24 + sprite_movement_data SPRITEMOVEFN_00, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 25 ; 4357 @@ -167,7 +167,7 @@ Function43f3: ; 43f3 bit 5, [hl] jr nz, .bit5 - cp STEP_TYPE_01 + cp STEP_TYPE_STANDING jr z, .one jr .ok @@ -186,7 +186,7 @@ Function43f3: ; 43f3 ld a, [hl] and a ret z - cp STEP_TYPE_01 + cp STEP_TYPE_STANDING ret z .ok @@ -246,22 +246,22 @@ endr Pointers445f: ; 445f dw SetFacingStanding, SetFacingStanding ; 00 - dw Function44b5, SetFacingCurrent ; 01 - dw Function44c1, SetFacingCurrent ; 02 - dw Function4508, SetFacingCurrent ; 03 - dw Function4529, SetFacingCurrent ; 04 - dw Function4539, SetFacingStanding ; 05 - dw Function456e, Function456e ; 06 - dw Function457b, SetFacingStanding ; 07 - dw Function4582, Function4582 ; 08 - dw Function4589, Function4589 ; 09 - dw Function4590, Function45a4 ; 0a - dw Function45ab, SetFacingCurrent ; 0c - dw Function45be, Function45be ; 0b - dw Function45c5, Function45c5 ; 0d - dw Function45da, SetFacingStanding ; 0e - dw Function45ed, SetFacingStanding ; 0f - dw Function44e4, SetFacingCurrent ; 10 + dw Function44b5, SetFacingCurrent ; 01 standing? + dw Function44c1, SetFacingCurrent ; 02 walking? + dw Function4508, SetFacingCurrent ; 03 bumping? + dw Function4529, SetFacingCurrent ; 04 + dw Function4539, SetFacingStanding ; 05 + dw Function456e, Function456e ; 06 + dw Function457b, SetFacingStanding ; 07 + dw Function4582, Function4582 ; 08 + dw Function4589, Function4589 ; 09 + dw Function4590, Function45a4 ; 0a + dw Function45ab, SetFacingCurrent ; 0c + dw Function45be, Function45be ; 0b + dw Function45c5, Function45c5 ; 0d + dw Function45da, SetFacingStanding ; 0e + dw Function45ed, SetFacingStanding ; 0f + dw Function44e4, SetFacingCurrent ; 10 ; 44a3 SetFacingStanding: ; 44a3 @@ -444,10 +444,10 @@ Function457b: ; 457b ret ; 4582 -Function4582: ; 4582 +Function4582: ; 4582 emote ld hl, OBJECT_FACING_STEP add hl, bc - ld [hl], FACING_14 + ld [hl], FACING_EMOTE ret ; 4589 @@ -930,7 +930,7 @@ Function47bc: ; 47bc call Function467b ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_01 + ld [hl], STEP_TYPE_STANDING ret ; 47dd @@ -1033,7 +1033,7 @@ Function47dd: ; 47dd call Function467b ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_01 + ld [hl], PERSON_ACTION_STAND ld hl, OBJECT_STEP_TYPE add hl, bc ld [hl], STEP_TYPE_05 @@ -1206,7 +1206,7 @@ Function47dd: ; 47dd ld [hl], STANDING ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_01 + ld [hl], PERSON_ACTION_STAND ret ; 4958 @@ -1258,7 +1258,7 @@ Function47dd: ; 47dd .MovementSpinRepeat: ; 499c ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_01 + ld [hl], PERSON_ACTION_STAND ld hl, OBJECT_RANGE add hl, bc ld a, [hl] @@ -1354,7 +1354,7 @@ Function47dd: ; 47dd call ._MovementShadow_Grass_Emote_BoulderDust ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_08 + ld [hl], PERSON_ACTION_EMOTE ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], 0 @@ -1500,9 +1500,9 @@ endr call Function463f ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_02 + ld [hl], PERSON_ACTION_STEP - ld hl, wd4cf + ld hl, wCenteredObject ld a, [hMapObjectIndexBuffer] cp [hl] jr z, .load_6 @@ -1515,7 +1515,7 @@ endr .load_6 ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_06 + ld [hl], STEP_TYPE_PLAYER_WALK ret .NewDuration: ; 4b17 @@ -1541,7 +1541,7 @@ SetRandomStepDuration: ; 4b2d ld [hl], STANDING ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_01 + ld [hl], PERSON_ACTION_STAND ld hl, OBJECT_STEP_TYPE add hl, bc ld [hl], STEP_TYPE_03 @@ -1552,19 +1552,19 @@ Pointers4b45: ; 4b45 ; These pointers use OBJECT_STEP_TYPE. See constants/sprite_constants.asm dw Function47bc ; 00 dw Function47dd ; 01 - dw Function4e2b ; 02 + dw Function4e2b ; 02 npc walk dw Function4ddd ; 03 dw Function4e21 ; 04 dw Function4e0c ; 05 - dw Function4e56 ; 06 + dw Function4e56 ; 06 player walk dw Function4e47 ; 07 - dw Function4b86 ; 08 - dw Function4bbf ; 09 - dw Function4e83 ; 0a + dw Function4b86 ; 08 npc jump step + dw Function4bbf ; 09 player jump step + dw Function4e83 ; 0a half step dw Function4dff ; 0b - dw Function4c18 ; 0c - dw Function4c89 ; 0d - dw Function4d14 ; 0e + dw Function4c18 ; 0c teleport from + dw Function4c89 ; 0d teleport to + dw Function4d14 ; 0e skyfall dw Function4ecd ; 0f dw Function4d7e ; 10 dw Function4daf ; 11 @@ -1585,7 +1585,7 @@ Function4b79: ; 4b79 ret nz ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_01 + ld [hl], STEP_TYPE_STANDING ret ; 4b86 @@ -1622,7 +1622,7 @@ Function4ba9: ; 4ba9 call Function4600 ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_01 + ld [hl], STEP_TYPE_STANDING ret ; 4bbf @@ -1674,7 +1674,7 @@ Function4bfd: ; 4bfd call Function4600 ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_01 + ld [hl], STEP_TYPE_STANDING ret ; 4c18 @@ -1698,7 +1698,7 @@ Function4c23: ; 4c23 Function4c32: ; 4c32 ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_04 + ld [hl], PERSON_ACTION_SPIN ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] @@ -1724,7 +1724,7 @@ Function4c42: ; 4c42 Function4c5d: ; 4c5d ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_04 + ld [hl], PERSON_ACTION_SPIN ld hl, OBJECT_31 add hl, bc inc [hl] @@ -1745,7 +1745,7 @@ Function4c5d: ; 4c5d ld [hl], 0 ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_01 + ld [hl], STEP_TYPE_STANDING ret ; 4c89 @@ -1795,7 +1795,7 @@ Function4cb3: ; 4cb3 Function4cc9: ; 4cc9 ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_04 + ld [hl], PERSON_ACTION_SPIN ld hl, OBJECT_31 add hl, bc inc [hl] @@ -1823,7 +1823,7 @@ Function4ceb: ; 4ceb Function4cf5: ; 4cf5 ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_04 + ld [hl], PERSON_ACTION_SPIN ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] @@ -1837,7 +1837,7 @@ Function4d01: ; 4d01 ld [hl], 0 ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_01 + ld [hl], STEP_TYPE_STANDING ret ; 4d14 @@ -1865,7 +1865,7 @@ Function4d2e: ; 4d2e ret nz ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_02 + ld [hl], PERSON_ACTION_STEP ld hl, OBJECT_STEP_FRAME add hl, bc ld [hl], 0 @@ -1902,7 +1902,7 @@ Function4d6b: ; 4d6b ld [hl], 0 ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_01 + ld [hl], STEP_TYPE_STANDING ret ; 4d7e @@ -1936,7 +1936,7 @@ Function4d94: ; 4d94 ld [hl], 0 ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_01 + ld [hl], STEP_TYPE_STANDING ret ; 4daf @@ -1950,7 +1950,7 @@ Function4db5: ; 4db5 add hl, bc ld a, [hl] and %00000001 - ld a, PERSON_ACTION_01 + ld a, PERSON_ACTION_STAND jr z, .yes ld a, PERSON_ACTION_00 @@ -1966,9 +1966,9 @@ Function4dc8: ; 4dc8 add hl, bc ld a, [hl] and %00000001 - ld a, PERSON_ACTION_04 + ld a, PERSON_ACTION_SPIN jr z, .yes - ld a, PERSON_ACTION_05 + ld a, PERSON_ACTION_SPIN_FLICKER .yes ld hl, OBJECT_ACTION @@ -1987,7 +1987,7 @@ Function4ddd: ; 4ddd ret nz ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_01 + ld [hl], STEP_TYPE_STANDING ret ; 4df0 @@ -2009,7 +2009,7 @@ Function4dff: ; 4dff ret nz ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_01 + ld [hl], STEP_TYPE_STANDING ret ; 4e0c @@ -2048,7 +2048,7 @@ Function4e2b: ; 4e2b ld [hl], STANDING ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_01 + ld [hl], STEP_TYPE_STANDING ret ; 4e47 @@ -2089,7 +2089,7 @@ Function4e65: ; 4e65 ld [hl], STANDING ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_01 + ld [hl], STEP_TYPE_STANDING ret ; 4e83 @@ -2138,7 +2138,7 @@ Function4ec0: ; 4ec0 ret nz ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_01 + ld [hl], STEP_TYPE_STANDING ret ; 4ecd @@ -2170,7 +2170,7 @@ Function4ecd: ; 4ecd ld [hl], STANDING ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_01 + ld [hl], STEP_TYPE_STANDING ret ; 4f04 @@ -2302,7 +2302,7 @@ Function4f99: ; 4f99 ld [hl], 0 ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_01 + ld [hl], STEP_TYPE_STANDING ret ; 4fb2 @@ -2731,17 +2731,19 @@ Function55e0:: ; 55e0 ret ; 5602 -Function5602: ; 5602 - call Function5645 - ld a, 0 - call Function5629 +Function5602: ; 5602, called at battle start + call Function5645 ; clear sprites + ld a, PLAYER + call Function5629 ; respawn player + ld a, [wd459] bit 7, a jr z, .ok + ld a, [hLastTalked] and a jr z, .ok - call Function5629 + call Function5629 ; respawn opponent .ok call _UpdateSprites @@ -2749,9 +2751,9 @@ Function5602: ; 5602 ; 561d Function561d: ; 561d - call Function5645 - ld a, 0 - call Function5629 + call Function5645 ; clear sprites + ld a, PLAYER + call Function5629 ; respawn player call _UpdateSprites ret ; 5629 @@ -2783,7 +2785,7 @@ Function5645: ; 5645 ld bc, ObjectStructs .loop ld [hMapObjectIndexBuffer], a - call Function5680 + call SetFacing_Standing ld hl, OBJECT_STRUCT_LENGTH add hl, bc ld b, h @@ -2799,9 +2801,9 @@ Function565c: ; 565c push bc call Function56cd pop bc - jr c, Function5680 + jr c, SetFacing_Standing call Function56a3 - jr c, Function5680 + jr c, SetFacing_Standing call Function5688 callba Function4440 xor a @@ -2810,13 +2812,13 @@ Function565c: ; 565c Function5673: ; 5673 call Function56a3 - jr c, Function5680 - callba Function4440 + jr c, SetFacing_Standing + callba Function4440 ; no need to farcall xor a ret ; 5680 -Function5680: ; 5680 +SetFacing_Standing: ; 5680 ld hl, OBJECT_FACING_STEP add hl, bc ld [hl], STANDING diff --git a/engine/movement.asm b/engine/movement.asm index 07bdc37c7..86a2eb6fb 100644 --- a/engine/movement.asm +++ b/engine/movement.asm @@ -87,7 +87,7 @@ MovementPointers: ; 5075 dw Movement_step_shake ; 55 dw Movement_56 ; 56 dw Movement_rock_smash ; 57 - dw Movement_return_dig ; 58 + dw Movement_return_dig ; 58 dw Movement_59 ; 59 ; 5129 @@ -129,7 +129,7 @@ Movement_step_dig: ; 5145 ld [hl], a ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_04 + ld [hl], PERSON_ACTION_SPIN call GetMovementByte ld hl, OBJECT_STEP_DURATION add hl, bc @@ -159,17 +159,17 @@ Movement_return_dig: ; 516a ld [hl], STANDING ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_12 + ld [hl], STEP_TYPE_RETURN_DIG ret ; 5189 Movement_fish_got_bite: ; 5189 ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_06 + ld [hl], PERSON_ACTION_FISHING ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_10 + ld [hl], STEP_TYPE_GOT_BITE ret ; 5196 @@ -180,20 +180,20 @@ Movement_rock_smash: ; 5196 ld [hl], a ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_01 + ld [hl], PERSON_ACTION_STAND ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_11 + ld [hl], STEP_TYPE_ROCK_SMASH ret ; 51ab Movement_fish_cast_rod: ; 51ab ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_06 + ld [hl], PERSON_ACTION_FISHING ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_01 + ld [hl], STEP_TYPE_STANDING ret ; 51b8 @@ -219,7 +219,7 @@ Movement_step_end: ; 51c1 ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_01 + ld [hl], STEP_TYPE_STANDING ret ; 51db @@ -264,7 +264,7 @@ Movement_remove_person: ; 51fd Movement_4b: ; 5210 ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_01 + ld [hl], PERSON_ACTION_STAND ld hl, OBJECT_STEP_TYPE add hl, bc @@ -325,7 +325,7 @@ Movement_step_sleep_common: ; 5247 ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_01 + ld [hl], PERSON_ACTION_STAND ld hl, OBJECT_DIRECTION_WALKING add hl, bc @@ -341,11 +341,11 @@ Movement_step_bump: ; 525f ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_0B + ld [hl], STEP_TYPE_BUMP ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_03 + ld [hl], PERSON_ACTION_BUMP ld hl, OBJECT_DIRECTION_WALKING add hl, bc @@ -457,7 +457,7 @@ TurnHead: ; 52ee ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_01 + ld [hl], PERSON_ACTION_STAND ld hl, OBJECT_DIRECTION_WALKING add hl, bc @@ -732,11 +732,11 @@ HalfStep: ; 5400 ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_02 + ld [hl], PERSON_ACTION_STEP ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_0A + ld [hl], STEP_TYPE_HALF_STEP ret ; 5412 @@ -745,7 +745,7 @@ NormalStep: ; 5412 call Function463f ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_02 + ld [hl], PERSON_ACTION_STEP ld hl, OBJECT_NEXT_TILE add hl, bc @@ -760,20 +760,20 @@ NormalStep: ; 5412 call ShakeGrass .skip_grass - ld hl, wd4cf + ld hl, wCenteredObject ld a, [hMapObjectIndexBuffer] cp [hl] - jr z, .step_type_06 + jr z, .player ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_02 + ld [hl], STEP_TYPE_NPC_WALK ret -.step_type_06 +.player ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_06 + ld [hl], STEP_TYPE_PLAYER_WALK ret ; 5446 @@ -783,22 +783,22 @@ TurningStep: ; 5446 ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_04 + ld [hl], PERSON_ACTION_SPIN - ld hl, wd4cf + ld hl, wCenteredObject ld a, [hMapObjectIndexBuffer] cp [hl] - jr z, .step_type_06 + jr z, .player ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_02 + ld [hl], STEP_TYPE_NPC_WALK ret -.step_type_06 +.player ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_06 + ld [hl], STEP_TYPE_PLAYER_WALK ret ; 5468 @@ -809,22 +809,22 @@ SlideStep: ; 5468 ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_01 + ld [hl], PERSON_ACTION_STAND - ld hl, wd4cf + ld hl, wCenteredObject ld a, [hMapObjectIndexBuffer] cp [hl] - jr z, .step_type_06 + jr z, .player ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_02 + ld [hl], STEP_TYPE_NPC_WALK ret -.step_type_06 +.player ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_06 + ld [hl], STEP_TYPE_PLAYER_WALK ret ; 548a @@ -841,23 +841,23 @@ JumpStep: ; 548a ld hl, OBJECT_ACTION add hl, bc - ld [hl], PERSON_ACTION_02 + ld [hl], PERSON_ACTION_STEP call SpawnShadow - ld hl, wd4cf + ld hl, wCenteredObject ld a, [hMapObjectIndexBuffer] cp [hl] - jr z, .step_type_09 + jr z, .player ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_08 + ld [hl], STEP_TYPE_NPC_JUMP ret -.step_type_09 +.player ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_09 + ld [hl], STEP_TYPE_PLAYER_JUMP ret ; 54b8 diff --git a/engine/save.asm b/engine/save.asm index de11a8133..8bccd932c 100644 --- a/engine/save.asm +++ b/engine/save.asm @@ -496,9 +496,9 @@ Function14da0: ; 14da0 ValidateSave: ; 14da9 ld a, BANK(s1_a008) call GetSRAMBank - ld a, $63 + ld a, 99 ld [s1_a008], a - ld a, $7f + ld a, " " ld [s1_ad0f], a jp CloseSRAM ; 14dbb @@ -564,9 +564,9 @@ Function14e13: ; 14e13 ValidateBackupSave: ; 14e2d ld a, BANK(s0_b208) call GetSRAMBank - ld a, $63 + ld a, 99 ld [s0_b208], a - ld a, $7f + ld a, " " ld [s0_bf0f], a call CloseSRAM ret @@ -661,7 +661,7 @@ TryLoadSaveFile: ; 14ea5 (5:4ea5) .corrupt ld a, [Options] push af - set 4, a + set NO_TEXT_SCROLL, a ld [Options], a ld hl, UnknownText_0x1529c call PrintText @@ -735,10 +735,10 @@ Function14f84: ; 14f84 ld a, BANK(s1_a008) call GetSRAMBank ld a, [s1_a008] - cp $63 + cp 99 jr nz, .nope ld a, [s1_ad0f] - cp $7f + cp " " jr nz, .nope ld hl, sOptions ld de, Options @@ -757,10 +757,10 @@ Function14faf: ; 14faf ld a, BANK(s0_b208) call GetSRAMBank ld a, [s0_b208] - cp $63 + cp 99 jr nz, .nope ld a, [s0_bf0f] - cp $7f + cp " " jr nz, .nope ld hl, sBackupOptions ld de, Options diff --git a/engine/scripting.asm b/engine/scripting.asm index 60618abab..a0acbf75c 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -241,7 +241,7 @@ ENDC dw Script_trainerclassname dw Script_name dw Script_wait - dw Script_unknown0xa9 + dw Script_check_save ; 0x96e05 StartScript: ; 0x96e05 @@ -415,10 +415,10 @@ Script_repeattext: ; 0x96ebb call GetScriptByte ld h, a cp -1 - jr nz, .done ; 0x96ec5 $11 + jr nz, .done ld a, l cp -1 - jr nz, .done ; 0x96eca $c + jr nz, .done ld hl, wd44e ld a, [hli] ld b, a @@ -456,7 +456,7 @@ Script_yesorno: ; 0x96eed call YesNoBox ld a, 0 - jr c, .no ; 0x96ef2 $2 + jr c, .no ld a, 1 .no ld [ScriptVar], a @@ -567,12 +567,12 @@ Script_verbosegiveitem: ; 0x96f60 ; 0x96f76 -Function96f76: ; 96f76 +ret_96f76: ; 96f76 ret ; 96f77 GiveItemScript: ; 96f77 - callasm Function96f76 + callasm ret_96f76 writetext ReceivedItemText iffalse .Full waitbutton @@ -792,16 +792,16 @@ Script_askforphonenumber: ; 0x970be ; number (SingleByteParam) call YesNoBox - jr c, .refused ; 0x970c1 $13 + jr c, .refused call GetScriptByte ld c, a callba AddPhoneNumber - jr c, .phonefull ; 0x970cd $3 + jr c, .phonefull xor a - jr .done ; 0x970d0 $9 + jr .done .phonefull ld a, 1 - jr .done ; 0x970d4 $5 + jr .done .refused call GetScriptByte ld a, 2 @@ -1196,7 +1196,7 @@ ApplyPersonFacing: ; 0x9728b ld a, d push de call CheckObjectVisibility - jr c, .not_visible ; 0x97290 $27 + jr c, .not_visible ld hl, OBJECT_SPRITE add hl, bc ld a, [hl] @@ -1207,13 +1207,13 @@ ApplyPersonFacing: ; 0x9728b ld hl, OBJECT_FLAGS1 add hl, bc bit 2, [hl] - jr nz, .not_visible ; 0x972a4 $13 + jr nz, .not_visible pop de ld a, e call SetSpriteDirection ld hl, VramState bit 6, [hl] - jr nz, .text_state ; 0x972b0 $3 + jr nz, .text_state call .DisableTextTiles .text_state call UpdateSprites @@ -1235,7 +1235,7 @@ ApplyPersonFacing: ; 0x9728b dec bc ld a, b or c - jr nz, .loop ; 0x972cb $f8 + jr nz, .loop ret ; 0x972ce @@ -1299,9 +1299,9 @@ ApplyEventActionAppearDisappear: ; 0x9730b ld d, [hl] ld a, -1 cp e - jr nz, .okay ; 0x9731a $5 + jr nz, .okay cp d - jr nz, .okay ; 0x9731d $2 + jr nz, .okay xor a ret .okay @@ -1391,7 +1391,7 @@ Script_loademote: ; 0x97384 call GetScriptByte cp -1 - jr nz, .not_var_emote ; 0x97389 $3 + jr nz, .not_var_emote ld a, [ScriptVar] .not_var_emote ld c, a @@ -1563,21 +1563,21 @@ Script_returnafterbattle: ; 0x97459 ld a, [wBattleResult] and $3f cp $1 - jr nz, .notblackedout ; 0x97466 $8 + jr nz, .notblackedout ld b, BANK(Script_BattleWhiteout) ld hl, Script_BattleWhiteout jp ScriptJump .notblackedout bit 0, d - jr z, .was_wild ; 0x97472 $8 + jr z, .was_wild callba MomTriesToBuySomething - jr .done ; 0x9747a $12 + jr .done .was_wild ld a, [wBattleResult] bit 7, a - jr z, .done ; 0x97481 $b + jr z, .done ld b, BANK(Script_SpecialBillCall) ld de, Script_SpecialBillCall callba LoadScriptBDE @@ -1643,12 +1643,18 @@ Script_2ptcall: ; 0x974be ; fallthrough ScriptCall: ; 0x974cb +; Bug: The script stack has a capacity of 5 scripts, yet there is +; nothing to stop you from pushing a sixth script. The high part +; of the script address can then be overwritten by modifications +; to ScriptDelay, causing the script to return to the rst/interrupt +; space. + push de - ld hl, wd43c + ld hl, wScriptStackSize ld e, [hl] inc [hl] ld d, $0 - ld hl, wd43d + ld hl, wScriptStackBA1 rept 3 add hl, de endr @@ -1751,8 +1757,8 @@ Script_if_equal: ; 0x97540 call GetScriptByte ld hl, ScriptVar cp [hl] - jr z, Script_2jump ; 0x97547 $b5 - jr SkipTwoScriptBytes ; 0x97549 $4b + jr z, Script_2jump + jr SkipTwoScriptBytes ; 0x9754b Script_if_not_equal: ; 0x9754b @@ -1764,8 +1770,8 @@ Script_if_not_equal: ; 0x9754b call GetScriptByte ld hl, ScriptVar cp [hl] - jr nz, Script_2jump ; 0x97552 $aa - jr SkipTwoScriptBytes ; 0x97554 $40 + jr nz, Script_2jump + jr SkipTwoScriptBytes ; 0x97556 Script_if_greater_than: ; 0x97556 @@ -1778,8 +1784,8 @@ Script_if_greater_than: ; 0x97556 ld b, a call GetScriptByte cp b - jr c, Script_2jump ; 0x9755e $9e - jr SkipTwoScriptBytes ; 0x97560 $34 + jr c, Script_2jump + jr SkipTwoScriptBytes ; 0x97562 Script_if_less_than: ; 0x97562 @@ -1792,8 +1798,8 @@ Script_if_less_than: ; 0x97562 ld b, a ld a, [ScriptVar] cp b - jr c, Script_2jump ; 0x9756a $92 - jr SkipTwoScriptBytes ; 0x9756c $28 + jr c, Script_2jump + jr SkipTwoScriptBytes ; 0x9756e Script_jumpstd: ; 0x9756e @@ -1802,7 +1808,7 @@ Script_jumpstd: ; 0x9756e ; predefined_script (MultiByteParam) call StdScript - jr ScriptJump ; 0x97571 $2a + jr ScriptJump ; 0x97573 Script_callstd: ; 0x97573 @@ -1870,7 +1876,7 @@ Script_checktriggers: ; 0x975c2 ; script command 0x13 call CheckTriggers - jr z, .asm_975cb ; 0x975c5 $4 + jr z, .asm_975cb ld [ScriptVar], a ret .asm_975cb @@ -1892,7 +1898,7 @@ Script_checkmaptriggers: ; 0x975d1 call GetMapTrigger ld a, d or e - jr z, .asm_975e5 ; 0x975de $5 + jr z, .asm_975e5 ld a, [de] ld [ScriptVar], a ret @@ -1911,7 +1917,7 @@ Script_dotrigger: ; 0x975eb ld b, a ld a, [MapNumber] ld c, a - jr Unknown_975fd ; 0x975f3 $8 + jr Unknown_975fd ; 0x975f5 Script_domaptrigger: ; 0x975f5 @@ -1931,7 +1937,7 @@ Unknown_975fd: ; 0x975fd call GetMapTrigger ld a, d or e - jr z, .asm_97608 ; 0x97602 $4 + jr z, .asm_97608 call GetScriptByte ld [de], a .asm_97608 @@ -2012,28 +2018,31 @@ Script_random: ; 0x97640 ld [ScriptVar], a and a ret z + ld c, a - call Function97673 + call .Divide256byC and a - jr z, .asm_9765f ; 0x9764d $10 + jr z, .no_restriction ; 256 % b == 0 ld b, a xor a sub b ld b, a -.asm_97653 +.loop push bc call Random pop bc - ld a, [$ffe1] + ld a, [hRandomAdd] cp b - jr nc, .asm_97653 ; 0x9765b $f6 - jr .asm_97666 ; 0x9765d $7 -.asm_9765f + jr nc, .loop + jr .finish + +.no_restriction push bc call Random pop bc - ld a, [$ffe1] -.asm_97666 + ld a, [hRandomAdd] + +.finish push af ld a, [ScriptVar] ld c, a @@ -2043,14 +2052,14 @@ Script_random: ; 0x97640 ret ; 0x97673 -Function97673: ; 0x97673 +.Divide256byC: ; 0x97673 xor a ld b, a sub c -.asm_97676 +.mod_loop inc b sub c - jr nc, .asm_97676 ; 0x97678 $fc + jr nc, .mod_loop dec b add c ret @@ -2119,7 +2128,7 @@ Script_pokenamemem: ; 0x976ae call GetScriptByte and a - jr nz, .gotit ; 0x976b2 $3 + jr nz, .gotit ld a, [ScriptVar] .gotit ld [wd265], a @@ -2149,13 +2158,13 @@ Script_itemtotext: ; 0x976d5 call GetScriptByte and a - jr nz, .ok ; 0x976d9 $3 + jr nz, .ok ld a, [ScriptVar] .ok ld [wd265], a call GetItemName ld de, StringBuffer1 - jr ConvertMemToText ; 0x976e7 $d7 + jr ConvertMemToText ; 0x976e9 Script_mapnametotext: ; 0x976e9 @@ -2183,7 +2192,7 @@ Script_displaylocation: ; 0x97701 ; memory (SingleByteParam) call GetScriptByte - jr ConvertLandmarkToText ; 0x97704 $ee + jr ConvertLandmarkToText ; 0x97706 Script_trainertotext: ; 0x97706 @@ -2198,7 +2207,7 @@ Script_trainertotext: ; 0x97706 call GetScriptByte ld b, a callba GetTrainerName - jr ConvertMemToText ; 0x97714 $aa + jr ConvertMemToText ; 0x97716 Script_name: ; 0x97716 @@ -2227,7 +2236,7 @@ Script_trainerclassname: ; 0x9772b ld a, TRAINER_NAME ld [wNamedObjectTypeBuffer], a - jr ContinueToGetName ; 0x97730 $ea + jr ContinueToGetName ; 0x97732 Script_readmoney: ; 0x97732 @@ -2344,7 +2353,7 @@ Script_giveitem: ; 0x977ca call GetScriptByte cp ITEM_FROM_MEM - jr nz, .ok ; 0x977cf $3 + jr nz, .ok ld a, [ScriptVar] .ok ld [CurItem], a @@ -2352,7 +2361,7 @@ Script_giveitem: ; 0x977ca ld [wItemQuantityChangeBuffer], a ld hl, NumItems call ReceiveItem - jr nc, .full ; 0x977e3 $6 + jr nc, .full ld a, $1 ld [ScriptVar], a ret @@ -2718,7 +2727,7 @@ Script_checkevent: ; 0x979a4 call EventFlagAction ld a, c and a - jr z, .false ; 0x979b3 $2 + jr z, .false ld a, 1 .false ld [ScriptVar], a @@ -2766,7 +2775,7 @@ Script_checkflag: ; 0x979d7 call _EngineFlagAction ld a, c and a - jr z, .false ; 0x979e6 $2 + jr z, .false ld a, 1 .false ld [ScriptVar], a @@ -2835,7 +2844,7 @@ Script_warp: ; 0x97a1d ; This seems to be some sort of error handling case. call GetScriptByte and a - jr z, .not_ok ; 0x97a21 $27 + jr z, .not_ok ld [MapGroup], a call GetScriptByte ld [MapNumber], a @@ -3080,14 +3089,14 @@ Script_pause: ; 0x97b47 call GetScriptByte and a - jr z, .loop ; 0x97b4b $3 + jr z, .loop ld [ScriptDelay], a .loop ld c, 2 call DelayFrames ld hl, ScriptDelay dec [hl] - jr nz, .loop ; 0x97b59 $f5 + jr nz, .loop ret ; 0x97b5c @@ -3098,7 +3107,7 @@ Script_deactivatefacing: ; 0x97b5c call GetScriptByte and a - jr z, .no_time ; 0x97b60 $3 + jr z, .no_time ld [ScriptDelay], a .no_time ld a, SCRIPT_WAIT @@ -3149,14 +3158,14 @@ Script_return: ; 0x97b8c ExitScriptSubroutine: ; 0x97b9a ; Return carry if there's no parent to return to. - ld hl, wd43c + ld hl, wScriptStackSize ld a, [hl] and a - jr z, .done ; 0x97b9f $1d + jr z, .done dec [hl] ld e, [hl] ld d, $0 - ld hl, wd43d + ld hl, wScriptStackBA1 rept 3 add hl,de endr @@ -3181,7 +3190,7 @@ Script_resetfuncs: ; 0x97bc0 ; script command 0x93 xor a - ld [wd43c], a + ld [wScriptStackSize], a ld [ScriptRunning], a ld a, SCRIPT_OFF ld [ScriptMode], a @@ -3231,22 +3240,22 @@ Script_wait: ; 0x97c05 call DelayFrames pop af dec a - jr nz, .loop ; 0x97c11 $f6 + jr nz, .loop pop bc ret ; 0x97c15 -Script_unknown0xa9: ; 0x97c15 +Script_check_save: ; 0x97c15 ; script command 0xa9 - callba Function4cffe + callba CheckSave ld a, c ld [ScriptVar], a ret ; 0x97c20 -Function97c20: ; 97c20 unreferenced +; 97c20 unreferenced ld a, [.byte] ld [ScriptVar], a ret diff --git a/macros/event.asm b/macros/event.asm index c51f798c5..0f495b4b8 100644 --- a/macros/event.asm +++ b/macros/event.asm @@ -1068,7 +1068,7 @@ wait: macro db \1 ; duration endm - enum unknown0xa9_command -unknown0xa9: macro - db unknown0xa9_command + enum check_save_command +check_save: macro + db check_save_command endm diff --git a/main.asm b/main.asm index 9ae03319b..28e4a04cd 100644 --- a/main.asm +++ b/main.asm @@ -2154,7 +2154,7 @@ Function6ec1: ; 6ec1 push hl push bc - call Function7009 + call WillPersonBumpIntoSomeoneElse pop bc pop hl ret c @@ -2163,12 +2163,12 @@ Function6ec1: ; 6ec1 bit 5, [hl] jr nz, .bit_5 push hl - call Function70a4 + call HasPersonReachedMovementLimit pop hl ret c push hl - call Function70ed + call IsPersonMovingOffEdgeOfScreen pop hl ret c @@ -2388,7 +2388,7 @@ CheckFacingObject:: ; 6fd9 ; 7009 -Function7009: ; 7009 +WillPersonBumpIntoSomeoneElse: ; 7009 ld hl, OBJECT_NEXT_MAP_X add hl, bc ld d, [hl] @@ -2401,11 +2401,11 @@ Function7009: ; 7009 Function7015: ; unreferenced ld a, [hMapObjectIndexBuffer] call GetObjectStruct - call Function7021 + call .CheckWillBeFacingNPC call IsNPCAtCoord ret -Function7021: ; 7021 +.CheckWillBeFacingNPC: ; 7021 ld hl, OBJECT_NEXT_MAP_X add hl, bc ld d, [hl] @@ -2510,14 +2510,14 @@ IsNPCAtCoord: ; 7041 ret ; 70a4 -Function70a4: ; 70a4 +HasPersonReachedMovementLimit: ; 70a4 ld hl, OBJECT_RADIUS add hl, bc ld a, [hl] and a - jr z, .asm_70e9 + jr z, .nope and $f - jr z, .asm_70c7 + jr z, .check_y ld e, a ld d, a ld hl, OBJECT_INIT_X @@ -2532,17 +2532,17 @@ Function70a4: ; 70a4 add hl, bc ld a, [hl] cp d - jr z, .asm_70eb + jr z, .yes cp e - jr z, .asm_70eb + jr z, .yes -.asm_70c7 +.check_y ld hl, OBJECT_RADIUS add hl, bc ld a, [hl] swap a and $f - jr z, .asm_70e9 + jr z, .nope ld e, a ld d, a ld hl, OBJECT_INIT_Y @@ -2557,46 +2557,46 @@ Function70a4: ; 70a4 add hl, bc ld a, [hl] cp d - jr z, .asm_70eb + jr z, .yes cp e - jr z, .asm_70eb + jr z, .yes -.asm_70e9 +.nope xor a ret -.asm_70eb +.yes scf ret ; 70ed -Function70ed: ; 70ed +IsPersonMovingOffEdgeOfScreen: ; 70ed ld hl, OBJECT_NEXT_MAP_X add hl, bc ld a, [XCoord] cp [hl] - jr z, .asm_70fe - jr nc, .asm_7111 + jr z, .check_y + jr nc, .yes add $9 cp [hl] - jr c, .asm_7111 + jr c, .yes -.asm_70fe +.check_y ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld a, [YCoord] cp [hl] - jr z, .asm_710f - jr nc, .asm_7111 + jr z, .nope + jr nc, .yes add $8 cp [hl] - jr c, .asm_7111 + jr c, .yes -.asm_710f +.nope and a ret -.asm_7111 +.yes scf ret ; 7113 @@ -2611,46 +2611,46 @@ Function7113: ; unreferenced .loop ld [hObjectStructIndexBuffer], a call GetObjectSprite - jr z, .asm_7160 + jr z, .next ld hl, OBJECT_MOVEMENTTYPE add hl, bc ld a, [hl] cp SPRITEMOVEDATA_SNORLAX - jr nz, .asm_7136 + jr nz, .not_snorlax call Function7171 - jr c, .asm_716f - jr .asm_7160 + jr c, .yes + jr .next -.asm_7136 +.not_snorlax ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld a, [hl] cp e - jr nz, .asm_714e + jr nz, .check_current_coords ld hl, OBJECT_NEXT_MAP_X add hl, bc ld a, [hl] cp d - jr nz, .asm_714e + jr nz, .check_current_coords ld a, [hObjectStructIndexBuffer] cp $0 - jr z, .asm_7160 - jr .asm_716f + jr z, .next + jr .yes -.asm_714e +.check_current_coords ld hl, OBJECT_MAP_Y add hl, bc ld a, [hl] cp e - jr nz, .asm_7160 + jr nz, .next ld hl, OBJECT_MAP_X add hl, bc ld a, [hl] cp d - jr nz, .asm_7160 - jr .asm_716f + jr nz, .next + jr .yes -.asm_7160 +.next ld hl, OBJECT_STRUCT_LENGTH add hl, bc ld b, h @@ -2662,7 +2662,7 @@ Function7113: ; unreferenced xor a ret -.asm_716f +.yes scf ret ; 7171 @@ -2673,20 +2673,20 @@ Function7171: ; 7171 add hl, bc ld a, d sub [hl] - jr c, .asm_718b + jr c, .nope cp $2 - jr nc, .asm_718b + jr nc, .nope ld hl, OBJECT_NEXT_MAP_Y add hl, bc ld a, e sub [hl] - jr c, .asm_718b + jr c, .nope cp $2 - jr nc, .asm_718b + jr nc, .nope scf ret -.asm_718b +.nope and a ret ; 718d @@ -3221,14 +3221,14 @@ GetSpawnCoord: ; 8029 call GetMapObject ld hl, MAPOBJECT_COLOR add hl, bc - ln e, (1 << 3) | PAL_OW_RED, $0 + ln e, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT ld a, [wPlayerSpriteSetupFlags] bit 2, a jr nz, .ok ld a, [PlayerGender] bit 0, a jr z, .ok - ln e, (1 << 3) | PAL_OW_BLUE, $0 + ln e, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT .ok ld [hl], e @@ -3239,8 +3239,8 @@ GetSpawnCoord: ; 8029 ld [hObjectStructIndexBuffer], a ld de, ObjectStructs call CopyMapObjectToObjectStruct - ld a, $0 - ld [wd4cf], a + ld a, PLAYER + ld [wCenteredObject], a ret ; 8071 @@ -3322,7 +3322,7 @@ RefreshPlayerCoords: ; 80b8 ld e, a ld a, [wObjectFollow_Leader] cp $0 - ret nz + ret nz ; wtf ret ; 80e7 @@ -5306,15 +5306,15 @@ FlyFunction: ; ca3b farscall Script_AbortBugContest special WarpToSpawnPoint callasm DelayLoadingNewSprites - writecode VAR_MOVEMENT, $0 + writecode VAR_MOVEMENT, PLAYER_NORMAL newloadmap MAPSETUP_FLY callasm Function8cb33 special WaitSFX - callasm Functioncacb + callasm .ReturnFromFly end ; 0xcacb -Functioncacb: ; cacb +.ReturnFromFly: ; cacb callba Function561d call DelayFrame call ReplaceKrisSprite @@ -5574,7 +5574,7 @@ UsedDigOrEscapeRopeScript: ; 0xcc3c applymovement PLAYER, .DigOut farscall Script_AbortBugContest special WarpToSpawnPoint - writecode VAR_MOVEMENT, $0 + writecode VAR_MOVEMENT, PLAYER_NORMAL newloadmap MAPSETUP_DOOR playsound SFX_WARP_FROM applymovement PLAYER, .DigReturn @@ -5671,7 +5671,7 @@ Script_UsedTeleport: ; 0xccbb applymovement PLAYER, .TeleportFrom farscall Script_AbortBugContest special WarpToSpawnPoint - writecode VAR_MOVEMENT, $0 + writecode VAR_MOVEMENT, PLAYER_NORMAL newloadmap MAPSETUP_TELEPORT playsound SFX_WARP_FROM applymovement PLAYER, .TeleportTo @@ -6336,17 +6336,17 @@ Script_NotEvenANibble_FallThrough: ; 0xd02d Script_GotABite: ; 0xd035 scall Script_FishCastRod callasm Fishing_CheckFacingUp - iffalse .FacingUp - applymovement PLAYER, MovementData_0xd062 + iffalse .NotFacingUp + applymovement PLAYER, .Movement_FacingUp jump .FightTheHookedPokemon ; 0xd046 -.FacingUp: ; 0xd046 - applymovement PLAYER, MovementData_0xd05c +.NotFacingUp: ; 0xd046 + applymovement PLAYER, .Movement_NotFacingUp .FightTheHookedPokemon: ; 0xd04a pause 40 - applymovement PLAYER, MovementData_0xd069 + applymovement PLAYER, .Movement_RestoreRod writetext UnknownText_0xd0a4 callasm PutTheRodAway loadmovesprites @@ -6356,7 +6356,7 @@ Script_GotABite: ; 0xd035 end ; 0xd05c -MovementData_0xd05c: ; d05c +.Movement_NotFacingUp: ; d05c fish_got_bite fish_got_bite fish_got_bite @@ -6365,7 +6365,7 @@ MovementData_0xd05c: ; d05c step_end ; d062 -MovementData_0xd062: ; d062 +.Movement_FacingUp: ; d062 fish_got_bite fish_got_bite fish_got_bite @@ -6375,7 +6375,7 @@ MovementData_0xd062: ; d062 step_end ; d069 -MovementData_0xd069: ; d069 +.Movement_RestoreRod: ; d069 hide_emote fish_cast_rod step_end @@ -6384,7 +6384,7 @@ MovementData_0xd069: ; d069 Fishing_CheckFacingUp: ; d06c ld a, [PlayerDirection] and $c - cp $4 + cp OW_UP ld a, $1 jr z, .up xor a @@ -6532,7 +6532,7 @@ BikeFunction: ; d0b3 Script_GetOnBike: ; 0xd13e reloadmappart special UpdateTimePals - writecode VAR_MOVEMENT, $1 + writecode VAR_MOVEMENT, PLAYER_BIKE writetext UnknownText_0xd17c closetext loadmovesprites @@ -6541,7 +6541,7 @@ Script_GetOnBike: ; 0xd13e ; 0xd14e Script_GetOnBike_Register: ; 0xd14e - writecode VAR_MOVEMENT, $1 + writecode VAR_MOVEMENT, PLAYER_BIKE loadmovesprites special ReplaceKrisSprite end @@ -6554,11 +6554,11 @@ Functiond156: ; unreferenced Script_GetOffBike: ; 0xd158 reloadmappart special UpdateTimePals - writecode VAR_MOVEMENT, $0 + writecode VAR_MOVEMENT, PLAYER_NORMAL writetext UnknownText_0xd181 closetext -UnknownScript_0xd163: +FinishGettingOffBike: loadmovesprites special ReplaceKrisSprite special PlayMapMusic @@ -6566,8 +6566,8 @@ UnknownScript_0xd163: ; 0xd16b Script_GetOffBike_Register: ; 0xd16b - writecode VAR_MOVEMENT, $0 - jump UnknownScript_0xd163 + writecode VAR_MOVEMENT, PLAYER_NORMAL + jump FinishGettingOffBike ; 0xd171 UnknownScript_0xd171: ; 0xd171 @@ -29402,7 +29402,7 @@ endr ret -Function4cffe:: ; 4cffe +CheckSave:: ; 4cffe ld a, BANK(s1_a008) call GetSRAMBank ld a, [s1_a008] diff --git a/sram.asm b/sram.asm index ae8f6e062..1e1d85860 100644 --- a/sram.asm +++ b/sram.asm @@ -62,7 +62,7 @@ SECTION "SRAM Bank 1", SRAM, BANK [1] sOptions:: ds OptionsEnd - Options -s1_a008:: ds 1 +s1_a008:: ds 1 ; loaded with 99, used to check save corruption sGameData:: sPlayerData:: ds wPlayerDataEnd - wPlayerData @@ -75,7 +75,7 @@ sGameDataEnd:: ; ad0d sChecksum:: ds 2 -s1_ad0f:: ds 1 +s1_ad0f:: ds 1 ; loaded with 0x7f, used to check save corruption ; ad10 box sBox diff --git a/wram.asm b/wram.asm index 149c40cba..72536ab76 100644 --- a/wram.asm +++ b/wram.asm @@ -2108,9 +2108,13 @@ ScriptBank:: ; d439 ScriptPos:: ; d43a ds 2 -wd43c:: ds 1 -wd43d:: ds 16 - +wScriptStackSize:: ds 1 +wScriptStackBA1:: ds 3 +wScriptStackBA2:: ds 3 +wScriptStackBA3:: ds 3 +wScriptStackBA4:: ds 3 +wScriptStackBA5:: ds 3 + ds 1 ScriptDelay:: ; d44d ds 1 @@ -2201,7 +2205,7 @@ CurDay:: ; d4cb ds 1 wObjectFollow_Leader:: ds 1 wObjectFollow_Follower:: ds 1 -wd4cf:: ds 1 +wCenteredObject:: ds 1 wd4d0:: ds 1 wd4d1:: ds 1 ds 4 From 4b5424368f09ff83bfdd2454a4fd06985f5ff54d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 16 Nov 2015 12:49:42 -0500 Subject: [PATCH 12/40] Little cleanup on engine/scripting.asm --- engine/scripting.asm | 836 +++++++++++++++++++++---------------------- macros/event.asm | 14 +- 2 files changed, 426 insertions(+), 424 deletions(-) diff --git a/engine/scripting.asm b/engine/scripting.asm index a0acbf75c..4aa1de224 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -69,13 +69,13 @@ RunScriptCommand: ; 96ca9 ; 96cb1 -ScriptCommandTable: ; 0x96cb1 - dw Script_2call - dw Script_3call - dw Script_2ptcall - dw Script_2jump - dw Script_3jump - dw Script_2ptjump +ScriptCommandTable: ; 96cb1 + dw Script_scall + dw Script_farscall + dw Script_ptcall + dw Script_jump + dw Script_farjump + dw Script_ptjump dw Script_if_equal dw Script_if_not_equal dw Script_iffalse @@ -84,9 +84,9 @@ ScriptCommandTable: ; 0x96cb1 dw Script_if_less_than dw Script_jumpstd dw Script_callstd - dw Script_3callasm + dw Script_callasm dw Script_special - dw Script_2ptcallasm + dw Script_ptcallasm dw Script_checkmaptriggers dw Script_domaptrigger dw Script_checktriggers @@ -144,16 +144,16 @@ ScriptCommandTable: ; 0x96cb1 dw Script_loadfont dw Script_refreshscreen dw Script_loadmovesprites - dw Script_loadbytec1ce - dw Script_3writetext - dw Script_2writetext + dw Script_loadbytec2cf + dw Script_farwritetext + dw Script_writetext dw Script_repeattext dw Script_yesorno dw Script_loadmenudata dw Script_writebackup dw Script_jumptextfaceplayer IF _CRYSTAL - dw Script_3jumptext + dw Script_farjumptext ENDC dw Script_jumptext dw Script_closetext @@ -242,27 +242,27 @@ ENDC dw Script_name dw Script_wait dw Script_check_save -; 0x96e05 +; 96e05 -StartScript: ; 0x96e05 +StartScript: ; 96e05 ld hl, ScriptFlags set SCRIPT_RUNNING, [hl] ret -; 0x96e0b +; 96e0b -CheckScript: ; 0x96e0b +CheckScript: ; 96e0b ld hl, ScriptFlags bit SCRIPT_RUNNING, [hl] ret -; 0x96e11 +; 96e11 -StopScript: ; 0x96e11 +StopScript: ; 96e11 ld hl, ScriptFlags res SCRIPT_RUNNING, [hl] ret -; 0x96e17 +; 96e17 -Script_3callasm: ; 0x96e17 +Script_callasm: ; 96e17 ; script command 0xe ; parameters: ; asm (AsmPointerParam) @@ -276,9 +276,9 @@ Script_3callasm: ; 0x96e17 ld a, b rst FarCall ret -; 0x96e26 +; 96e26 -Script_special: ; 0x96e26 +Script_special: ; 96e26 ; script command 0xf ; parameters: ; predefined_script (MultiByteParam) @@ -289,9 +289,9 @@ Script_special: ; 0x96e26 ld d, a callba Special ret -; 0x96e35 +; 96e35 -Script_2ptcallasm: ; 0x96e35 +Script_ptcallasm: ; 96e35 ; script command 0x10 ; parameters: ; asm (PointerToAsmPointerParam) @@ -308,9 +308,9 @@ Script_2ptcallasm: ; 0x96e35 ld a, b rst FarCall ret -; 0x96e45 +; 96e45 -Script_jumptextfaceplayer: ; 0x96e45 +Script_jumptextfaceplayer: ; 96e45 ; script command 0x51 ; parameters: ; text_pointer (RawTextPointerLabelParam) @@ -324,9 +324,9 @@ Script_jumptextfaceplayer: ; 0x96e45 ld b, BANK(JumpTextFacePlayerScript) ld hl, JumpTextFacePlayerScript jp ScriptJump -; 0x96e5f +; 96e5f -Script_jumptext: ; 0x96e5f +Script_jumptext: ; 96e5f ; script command 0x53 ; parameters: ; text_pointer (RawTextPointerLabelParam) @@ -340,22 +340,22 @@ Script_jumptext: ; 0x96e5f ld b, BANK(JumpTextScript) ld hl, JumpTextScript jp ScriptJump -; 0x96e79 +; 96e79 -JumpTextFacePlayerScript: ; 0x96e79 +JumpTextFacePlayerScript: ; 96e79 faceplayer -JumpTextScript: ; 0x96e7a +JumpTextScript: ; 96e7a loadfont repeattext -1, -1 closetext loadmovesprites end -; 0x96e81 +; 96e81 IF _CRYSTAL -Script_3jumptext: ; 0x96e81 +Script_farjumptext: ; 96e81 ; script command 0x52 ; parameters: ; text_pointer (PointerLabelBeforeBank) @@ -369,12 +369,12 @@ Script_3jumptext: ; 0x96e81 ld b, BANK(JumpTextScript) ld hl, JumpTextScript jp ScriptJump -; 0x96e9b +; 96e9b ENDC -Script_2writetext: ; 0x96e9b +Script_writetext: ; 96e9b ; script command 0x4c ; parameters: ; text_pointer (RawTextPointerLabelParam) @@ -387,9 +387,9 @@ Script_2writetext: ; 0x96e9b ld b, a call MapTextbox ret -; 0x96eab +; 96eab -Script_3writetext: ; 0x96eab +Script_farwritetext: ; 96eab ; script command 0x4b ; parameters: ; text_pointer (PointerLabelBeforeBank) @@ -402,9 +402,9 @@ Script_3writetext: ; 0x96eab ld h, a call MapTextbox ret -; 0x96ebb +; 96ebb -Script_repeattext: ; 0x96ebb +Script_repeattext: ; 96ebb ; script command 0x4d ; parameters: ; byte (SingleByteParam) @@ -429,15 +429,15 @@ Script_repeattext: ; 0x96ebb ret .done ret -; 0x96ed9 +; 96ed9 -Script_closetext: ; 0x96ed9 +Script_closetext: ; 96ed9 ; script command 0x54 jp CloseText -; 0x96edc +; 96edc -Script_keeptextopen: ; 0x96edc +Script_keeptextopen: ; 96edc ; script command 0x55 ld a, [hOAMUpdate] @@ -449,9 +449,9 @@ Script_keeptextopen: ; 0x96edc pop af ld [hOAMUpdate], a ret -; 0x96eed +; 96eed -Script_yesorno: ; 0x96eed +Script_yesorno: ; 96eed ; script command 0x4e call YesNoBox @@ -461,9 +461,9 @@ Script_yesorno: ; 0x96eed .no ld [ScriptVar], a ret -; 0x96efa +; 96efa -Script_loadmenudata: ; 0x96efa +Script_loadmenudata: ; 96efa ; script command 0x4f ; parameters: ; data (MenuDataPointerParam) @@ -477,17 +477,17 @@ Script_loadmenudata: ; 0x96efa call Call_a_de call UpdateSprites ret -; 0x96f0f +; 96f0f -Script_writebackup: ; 0x96f0f +Script_writebackup: ; 96f0f ; script command 0x50 call WriteBackup call UpdateSprites ret -; 0x96f16 +; 96f16 -Script_pokepic: ; 0x96f16 +Script_pokepic: ; 96f16 ; script command 0x56 ; parameters: ; pokemon (PokemonParam) @@ -500,16 +500,16 @@ Script_pokepic: ; 0x96f16 ld [CurPartySpecies], a callba Pokepic ret -; 0x96f29 +; 96f29 -Script_pokepicyesorno: ; 0x96f29 +Script_pokepicyesorno: ; 96f29 ; script command 0x57 callba PokepicYesOrNo ret -; 0x96f30 +; 96f30 -Script_interpretmenu2: ; 0x96f30 +Script_interpretmenu2: ; 96f30 ; script command 0x59 ld a, [ScriptBank] @@ -521,9 +521,9 @@ Script_interpretmenu2: ; 0x96f30 .ok ld [ScriptVar], a ret -; 0x96f41 +; 96f41 -Script_interpretmenu: ; 0x96f41 +Script_interpretmenu: ; 96f41 ; script command 0x58 ld a, [ScriptBank] @@ -535,9 +535,9 @@ Script_interpretmenu: ; 0x96f41 .ok ld [ScriptVar], a ret -; 0x96f52 +; 96f52 -Script_battletowertext: ; 0x96f52 +Script_battletowertext: ; 96f52 ; script command 0xa4 ; parameters: ; pointer (PointerLabelBeforeBank) @@ -548,9 +548,9 @@ Script_battletowertext: ; 0x96f52 ld c, a callba BattleTowerText ret -; 0x96f60 +; 96f60 -Script_verbosegiveitem: ; 0x96f60 +Script_verbosegiveitem: ; 96f60 ; script command 0x9e ; parameters: ; item (ItemLabelByte) @@ -564,7 +564,7 @@ Script_verbosegiveitem: ; 0x96f60 ld b, BANK(GiveItemScript) ld de, GiveItemScript jp ScriptCall -; 0x96f76 +; 96f76 ret_96f76: ; 96f76 @@ -593,7 +593,7 @@ ReceivedItemText: ; 96f89 ; 96f8e -Script_verbosegiveitem2: ; 0x96f8e +Script_verbosegiveitem2: ; 96f8e ; script command 0x9f ; parameters: ; item (ItemLabelByte) @@ -623,9 +623,9 @@ Script_verbosegiveitem2: ; 0x96f8e ld b, BANK(GiveItemScript) ld de, GiveItemScript jp ScriptCall -; 0x96fc6 +; 96fc6 -Script_itemnotify: ; 0x96fc6 +Script_itemnotify: ; 96fc6 ; script command 0x45 call GetPocketName @@ -634,9 +634,9 @@ Script_itemnotify: ; 0x96fc6 ld hl, PutItemInPocketText call MapTextbox ret -; 0x96fd5 +; 96fd5 -Script_pocketisfull: ; 0x96fd5 +Script_pocketisfull: ; 96fd5 ; script command 0x46 call GetPocketName @@ -645,9 +645,9 @@ Script_pocketisfull: ; 0x96fd5 ld hl, PocketIsFullText call MapTextbox ret -; 0x96fe4 +; 96fe4 -Script_specialsound: ; 0x96fe4 +Script_specialsound: ; 96fe4 ; script command 0x88 callba CheckItemPocket @@ -660,7 +660,7 @@ Script_specialsound: ; 0x96fe4 call PlaySFX call WaitSFX ret -; 0x96ffe +; 96ffe GetPocketName: ; 96ffe @@ -715,7 +715,7 @@ PocketIsFullText: ; 97060 ; 97065 -Script_pokemart: ; 0x97065 +Script_pokemart: ; 97065 ; script command 0x94 ; parameters: ; dialog_id (SingleByteParam) @@ -731,9 +731,9 @@ Script_pokemart: ; 0x97065 ld b, a callba OpenMartDialog ret -; 0x9707c +; 9707c -Script_elevator: ; 0x9707c +Script_elevator: ; 9707c ; script command 0x95 ; parameters: ; floor_list_pointer (PointerLabelParam) @@ -751,9 +751,9 @@ Script_elevator: ; 0x9707c ld a, $1 ld [ScriptVar], a ret -; 0x97099 +; 97099 -Script_trade: ; 0x97099 +Script_trade: ; 97099 ; script command 0x96 ; parameters: ; trade_id (SingleByteParam) @@ -762,9 +762,9 @@ Script_trade: ; 0x97099 ld e, a callba NPCTrade ret -; 0x970a4 +; 970a4 -Script_phonecall: ; 0x970a4 +Script_phonecall: ; 970a4 ; script command 0x98 ; parameters: ; caller_name (RawTextPointerLabelParam) @@ -777,16 +777,16 @@ Script_phonecall: ; 0x970a4 ld b, a callba PhoneCall ret -; 0x970b7 +; 970b7 -Script_hangup: ; 0x970b7 +Script_hangup: ; 970b7 ; script command 0x99 callba HangUp ret -; 0x970be +; 970be -Script_askforphonenumber: ; 0x970be +Script_askforphonenumber: ; 970be ; script command 0x97 ; parameters: ; number (SingleByteParam) @@ -808,9 +808,9 @@ Script_askforphonenumber: ; 0x970be .done ld [ScriptVar], a ret -; 0x970df +; 970df -Script_describedecoration: ; 0x970df +Script_describedecoration: ; 970df ; script command 0x9a ; parameters: ; byte (SingleByteParam) @@ -821,9 +821,9 @@ Script_describedecoration: ; 0x970df ld h, d ld l, e jp ScriptJump -; 0x970ee +; 970ee -Script_fruittree: ; 0x970ee +Script_fruittree: ; 970ee ; script command 0x9b ; parameters: ; tree_id (SingleByteParam) @@ -833,9 +833,9 @@ Script_fruittree: ; 0x970ee ld b, BANK(FruitTreeScript) ld hl, FruitTreeScript jp ScriptJump -; 0x970fc +; 970fc -Script_loadwilddata: ; 0x970fc +Script_loadwilddata: ; 970fc ; script command 0xa0 ; parameters: ; flag (SingleByteParam) @@ -850,9 +850,9 @@ Script_loadwilddata: ; 0x970fc ld e, a callba LoadWildData ret -; 0x9710f +; 9710f -Script_trainertext: ; 0x9710f +Script_trainertext: ; 9710f ; script command 0x62 ; parameters: ; which_text (SingleByteParam) @@ -871,9 +871,9 @@ endr ld b, a call MapTextbox ret -; 0x97125 +; 97125 -Script_scripttalkafter: ; 0x97125 +Script_scripttalkafter: ; 97125 ; script command 0x65 ld hl, wd04b @@ -883,9 +883,9 @@ Script_scripttalkafter: ; 0x97125 ld a, [EngineBuffer1] ld b, a jp ScriptJump -; 0x97132 +; 97132 -Script_trainerstatus: ; 0x97132 +Script_trainerstatus: ; 97132 ; script command 0x63 ; parameters: ; action (SingleByteParam) @@ -905,9 +905,9 @@ Script_trainerstatus: ; 0x97132 ld a, 1 ld [ScriptVar], a ret -; 0x9714c +; 9714c -Script_winlosstext: ; 0x9714c +Script_winlosstext: ; 9714c ; script command 0x64 ; parameters: ; win_text_pointer (TextPointerLabelParam) @@ -924,18 +924,18 @@ Script_winlosstext: ; 0x9714c call GetScriptByte ld [hli], a ret -; 0x97163 +; 97163 -Script_talkaftercancel: ; 0x97163 +Script_talkaftercancel: ; 97163 ; script command 0x66 ld a, [wd04d] and a ret z jp Script_end -; 0x9716b +; 9716b -Script_talkaftercheck: ; 0x9716b +Script_talkaftercheck: ; 9716b ; script command 0x67 ld a, 1 @@ -946,25 +946,25 @@ Script_talkaftercheck: ; 0x9716b xor a ld [ScriptVar], a ret -; 0x9717a +; 9717a -Script_playrammusic: ; 0x9717a +Script_playrammusic: ; 9717a ; script command 0x80 ld a, [OtherTrainerClass] ld e, a callba PlayTrainerEncounterMusic ret -; 0x97185 +; 97185 -Script_playmapmusic: ; 0x97185 +Script_playmapmusic: ; 97185 ; script command 0x82 call PlayMapMusic ret -; 0x97189 +; 97189 -Script_playmusic: ; 0x97189 +Script_playmusic: ; 97189 ; script command 0x7f ; parameters: ; music_pointer (MultiByteParam) @@ -980,9 +980,9 @@ Script_playmusic: ; 0x97189 ld d, a call PlayMusic ret -; 0x971a2 +; 971a2 -Script_musicfadeout: ; 0x971a2 +Script_musicfadeout: ; 971a2 ; script command 0x81 ; parameters: ; music (MultiByteParam) @@ -996,9 +996,9 @@ Script_musicfadeout: ; 0x971a2 and $7f ld [MusicFade], a ret -; 0x971b7 +; 971b7 -Script_playsound: ; 0x971b7 +Script_playsound: ; 971b7 ; script command 0x85 ; parameters: ; sound_pointer (MultiByteParam) @@ -1009,24 +1009,24 @@ Script_playsound: ; 0x971b7 ld d, a call PlaySFX ret -; 0x971c3 +; 971c3 -Script_waitbutton: ; 0x971c3 +Script_waitbutton: ; 971c3 ; script command 0x86 call WaitSFX ret -; 0x971c7 +; 971c7 -Script_warpsound: ; 0x971c7 +Script_warpsound: ; 971c7 ; script command 0x87 callba Function14a07 call PlaySFX ret -; 0x971d1 +; 971d1 -Script_cry: ; 0x971d1 +Script_cry: ; 971d1 ; script command 0x84 ; parameters: ; cry_id (MultiByteParam) @@ -1041,18 +1041,18 @@ Script_cry: ; 0x971d1 .ok call PlayCry ret -; 0x971e3 +; 971e3 -GetScriptPerson: ; 0x971e3 +GetScriptPerson: ; 971e3 and a ret z cp LAST_TALKED ret z dec a ret -; 0x971ea +; 971ea -Script_setlasttalked: ; 0x971ea +Script_setlasttalked: ; 971ea ; script command 0x68 ; parameters: ; person (SingleByteParam) @@ -1061,9 +1061,9 @@ Script_setlasttalked: ; 0x971ea call GetScriptPerson ld [hLastTalked], a ret -; 0x971f3 +; 971f3 -Script_applymovement: ; 0x971f3 +Script_applymovement: ; 971f3 ; script command 0x69 ; parameters: ; person (SingleByteParam) @@ -1097,14 +1097,14 @@ ApplyMovement: ; 971fa ld [ScriptMode], a call StopScript ret -; 0x97221 +; 97221 -SetFlagsForMovement_2: ; 0x97221 +SetFlagsForMovement_2: ; 97221 callba _SetFlagsForMovement_2 ret -; 0x97228 +; 97228 -Script_applymovement2: ; 0x97228 +Script_applymovement2: ; 97228 ; apply movement to last talked ; script command 0x6a ; parameters: @@ -1113,9 +1113,9 @@ Script_applymovement2: ; 0x97228 ld a, [hLastTalked] ld c, a jp ApplyMovement -; 0x9722e +; 9722e -Script_faceplayer: ; 0x9722e +Script_faceplayer: ; 9722e ; script command 0x6b ld a, [hLastTalked] @@ -1134,9 +1134,9 @@ endr ld d, a call ApplyPersonFacing ret -; 0x97248 +; 97248 -Script_faceperson: ; 0x97248 +Script_faceperson: ; 97248 ; script command 0x6c ; parameters: ; person1 (SingleByteParam) @@ -1168,9 +1168,9 @@ endr ld d, c call ApplyPersonFacing ret -; 0x97274 +; 97274 -Script_spriteface: ; 0x97274 +Script_spriteface: ; 97274 ; script command 0x76 ; parameters: ; person (SingleByteParam) @@ -1190,9 +1190,9 @@ endr ld e, a call ApplyPersonFacing ret -; 0x9728b +; 9728b -ApplyPersonFacing: ; 0x9728b +ApplyPersonFacing: ; 9728b ld a, d push de call CheckObjectVisibility @@ -1223,9 +1223,9 @@ ApplyPersonFacing: ; 0x9728b pop de scf ret -; 0x972bc +; 972bc -.DisableTextTiles: ; 0x972bc +.DisableTextTiles: ; 972bc call LoadMapPart hlcoord 0, 0 ld bc, SCREEN_WIDTH * SCREEN_HEIGHT @@ -1237,9 +1237,9 @@ ApplyPersonFacing: ; 0x9728b or c jr nz, .loop ret -; 0x972ce +; 972ce -Script_variablesprite: ; 0x972ce +Script_variablesprite: ; 972ce ; script command 0x6d ; parameters: ; byte (SingleByteParam) @@ -1253,9 +1253,9 @@ Script_variablesprite: ; 0x972ce call GetScriptByte ld [hl], a ret -; 0x972dd +; 972dd -Script_appear: ; 0x972dd +Script_appear: ; 972dd ; script command 0x6f ; parameters: ; person (SingleByteParam) @@ -1267,9 +1267,9 @@ Script_appear: ; 0x972dd ld b, 0 ; clear call ApplyEventActionAppearDisappear ret -; 0x972ee +; 972ee -Script_disappear: ; 0x972ee +Script_disappear: ; 972ee ; script command 0x6e ; parameters: ; person (SingleByteParam) @@ -1286,9 +1286,9 @@ Script_disappear: ; 0x972ee call ApplyEventActionAppearDisappear callba _UpdateSprites ret -; 0x9730b +; 9730b -ApplyEventActionAppearDisappear: ; 0x9730b +ApplyEventActionAppearDisappear: ; 9730b push bc call GetMapObject ld hl, MAPOBJECT_EVENT_FLAG @@ -1307,9 +1307,9 @@ ApplyEventActionAppearDisappear: ; 0x9730b .okay call EventFlagAction ret -; 0x97325 +; 97325 -Script_follow: ; 0x97325 +Script_follow: ; 97325 ; script command 0x70 ; parameters: ; person2 (SingleByteParam) @@ -1323,16 +1323,16 @@ Script_follow: ; 0x97325 ld c, a callba StartFollow ret -; 0x9733a +; 9733a -Script_stopfollow: ; 0x9733a +Script_stopfollow: ; 9733a ; script command 0x71 callba StopFollow ret -; 0x97341 +; 97341 -Script_moveperson: ; 0x97341 +Script_moveperson: ; 97341 ; script command 0x72 ; parameters: ; person (SingleByteParam) @@ -1350,9 +1350,9 @@ Script_moveperson: ; 0x97341 ld e, a callba CopyDECoordsToMapObject ret -; 0x9735b +; 9735b -Script_writepersonxy: ; 0x9735b +Script_writepersonxy: ; 9735b ; script command 0x73 ; parameters: ; person (SingleByteParam) @@ -1366,9 +1366,9 @@ Script_writepersonxy: ; 0x9735b ld b, a callba WritePersonXY ret -; 0x9736f +; 9736f -Script_follownotexact: ; 0x9736f +Script_follownotexact: ; 9736f ; script command 0x77 ; parameters: ; person2 (SingleByteParam) @@ -1382,9 +1382,9 @@ Script_follownotexact: ; 0x9736f ld c, a callba FollowNotExact ret -; 0x97384 +; 97384 -Script_loademote: ; 0x97384 +Script_loademote: ; 97384 ; script command 0x74 ; parameters: ; bubble (SingleByteParam) @@ -1397,9 +1397,9 @@ Script_loademote: ; 0x97384 ld c, a callba LoadEmote ret -; 0x97396 +; 97396 -Script_showemote: ; 0x97396 +Script_showemote: ; 97396 ; script command 0x75 ; parameters: ; bubble (SingleByteParam) @@ -1419,7 +1419,7 @@ Script_showemote: ; 0x97396 ld b, BANK(ShowEmoteScript) ld de, ShowEmoteScript jp ScriptCall -; 0x973b6 +; 973b6 ShowEmoteScript: ; 973b6 loademote EMOTE_MEM @@ -1440,7 +1440,7 @@ ShowEmoteScript: ; 973b6 ; 973c7 -Script_earthquake: ; 0x973c7 +Script_earthquake: ; 973c7 ; script command 0x78 ; parameters: ; param (DecimalParam) @@ -1456,7 +1456,7 @@ Script_earthquake: ; 0x973c7 ld b, BANK(.script) ld de, .script jp ScriptCall -; 0x973e6 +; 973e6 .script: ; 973e6 applymovement PLAYER, wd002 @@ -1471,7 +1471,7 @@ EarthquakeMovementEnd ; 973f0 -Script_loadpikachudata: ; 0x973f0 +Script_loadpikachudata: ; 973f0 ; script command 0x5a ld a, PIKACHU @@ -1479,17 +1479,17 @@ Script_loadpikachudata: ; 0x973f0 ld a, 5 ld [CurPartyLevel], a ret -; 0x973fb +; 973fb -Script_battlecheck: ; 0x973fb +Script_battlecheck: ; 973fb ; script command 0x5b xor a ld [wd459], a ret -; 0x97400 +; 97400 -Script_loadtrainerdata: ; 0x97400 +Script_loadtrainerdata: ; 97400 ; script command 0x5c ld a, (1 << 7) | 1 @@ -1499,9 +1499,9 @@ Script_loadtrainerdata: ; 0x97400 ld a, [FacingDirection] ld [OtherTrainerID], a ret -; 0x97412 +; 97412 -Script_loadpokedata: ; 0x97412 +Script_loadpokedata: ; 97412 ; script command 0x5d ; parameters: ; pokemon (PokemonParam) @@ -1514,9 +1514,9 @@ Script_loadpokedata: ; 0x97412 call GetScriptByte ld [CurPartyLevel], a ret -; 0x97424 +; 97424 -Script_loadtrainer: ; 0x97424 +Script_loadtrainer: ; 97424 ; script command 0x5e ; parameters: ; trainer_group (TrainerGroupParam) @@ -1529,9 +1529,9 @@ Script_loadtrainer: ; 0x97424 call GetScriptByte ld [OtherTrainerID], a ret -; 0x97436 +; 97436 -Script_startbattle: ; 0x97436 +Script_startbattle: ; 97436 ; script command 0x5f call BufferScreen @@ -1540,9 +1540,9 @@ Script_startbattle: ; 0x97436 and $3f ld [ScriptVar], a ret -; 0x97447 +; 97447 -Script_catchtutorial: ; 0x97447 +Script_catchtutorial: ; 97447 ; script command 0x61 ; parameters: ; byte (SingleByteParam) @@ -1552,9 +1552,9 @@ Script_catchtutorial: ; 0x97447 call BufferScreen callba CatchTutorial jp Script_reloadmap -; 0x97459 +; 97459 -Script_returnafterbattle: ; 0x97459 +Script_returnafterbattle: ; 97459 ; script command 0x60 ld hl, wd459 @@ -1583,9 +1583,9 @@ Script_returnafterbattle: ; 0x97459 callba LoadScriptBDE .done jp Script_reloadmap -; 0x97491 +; 97491 -Script_reloadmap: ; 0x97491 +Script_reloadmap: ; 97491 ; script command 0x7b xor a @@ -1596,9 +1596,9 @@ Script_reloadmap: ; 0x97491 call LoadMapStatus call StopScript ret -; 0x974a2 +; 974a2 -Script_2call: ; 0x974a2 +Script_scall: ; 974a2 ; script command 0x0 ; parameters: ; pointer (ScriptPointerLabelParam) @@ -1610,9 +1610,9 @@ Script_2call: ; 0x974a2 call GetScriptByte ld d, a jr ScriptCall -; 0x974b0 +; 974b0 -Script_3call: ; 0x974b0 +Script_farscall: ; 974b0 ; script command 0x1 ; parameters: ; pointer (ScriptPointerLabelBeforeBank) @@ -1624,9 +1624,9 @@ Script_3call: ; 0x974b0 call GetScriptByte ld d, a jr ScriptCall -; 0x974be +; 974be -Script_2ptcall: ; 0x974be +Script_ptcall: ; 974be ; script command 0x2 ; parameters: ; pointer (PointerLabelToScriptPointer) @@ -1642,7 +1642,7 @@ Script_2ptcall: ; 0x974be ld d, [hl] ; fallthrough -ScriptCall: ; 0x974cb +ScriptCall: ; 974cb ; Bug: The script stack has a capacity of 5 scripts, yet there is ; nothing to stop you from pushing a sixth script. The high part ; of the script address can then be overwritten by modifications @@ -1672,16 +1672,16 @@ endr ld a, d ld [ScriptPos + 1], a ret -; 0x974f3 +; 974f3 -CallCallback:: ; 0x974f3 +CallCallback:: ; 974f3 ld a, [ScriptBank] or $80 ld [ScriptBank], a jp ScriptCall -; 0x974fe +; 974fe -Script_2jump: ; 0x974fe +Script_jump: ; 974fe ; script command 0x3 ; parameters: ; pointer (ScriptPointerLabelParam) @@ -1693,9 +1693,9 @@ Script_2jump: ; 0x974fe ld a, [ScriptBank] ld b, a jp ScriptJump -; 0x9750d +; 9750d -Script_3jump: ; 0x9750d +Script_farjump: ; 9750d ; script command 0x4 ; parameters: ; pointer (ScriptPointerLabelBeforeBank) @@ -1707,9 +1707,9 @@ Script_3jump: ; 0x9750d call GetScriptByte ld h, a jp ScriptJump -; 0x9751c +; 9751c -Script_2ptjump: ; 0x9751c +Script_ptjump: ; 9751c ; script command 0x5 ; parameters: ; pointer (PointerLabelToScriptPointer) @@ -1724,9 +1724,9 @@ Script_2ptjump: ; 0x9751c ld h, [hl] ld l, a jp ScriptJump -; 0x9752c +; 9752c -Script_iffalse: ; 0x9752c +Script_iffalse: ; 9752c ; script command 0x8 ; parameters: ; pointer (ScriptPointerLabelParam) @@ -1734,21 +1734,21 @@ Script_iffalse: ; 0x9752c ld a, [ScriptVar] and a jp nz, SkipTwoScriptBytes - jp Script_2jump -; 0x97536 + jp Script_jump +; 97536 -Script_iftrue: ; 0x97536 +Script_iftrue: ; 97536 ; script command 0x9 ; parameters: ; pointer (ScriptPointerLabelParam) ld a, [ScriptVar] and a - jp nz, Script_2jump + jp nz, Script_jump jp SkipTwoScriptBytes -; 0x97540 +; 97540 -Script_if_equal: ; 0x97540 +Script_if_equal: ; 97540 ; script command 0x6 ; parameters: ; byte (SingleByteParam) @@ -1757,11 +1757,11 @@ Script_if_equal: ; 0x97540 call GetScriptByte ld hl, ScriptVar cp [hl] - jr z, Script_2jump + jr z, Script_jump jr SkipTwoScriptBytes -; 0x9754b +; 9754b -Script_if_not_equal: ; 0x9754b +Script_if_not_equal: ; 9754b ; script command 0x7 ; parameters: ; byte (SingleByteParam) @@ -1770,11 +1770,11 @@ Script_if_not_equal: ; 0x9754b call GetScriptByte ld hl, ScriptVar cp [hl] - jr nz, Script_2jump + jr nz, Script_jump jr SkipTwoScriptBytes -; 0x97556 +; 97556 -Script_if_greater_than: ; 0x97556 +Script_if_greater_than: ; 97556 ; script command 0xa ; parameters: ; byte (SingleByteParam) @@ -1784,11 +1784,11 @@ Script_if_greater_than: ; 0x97556 ld b, a call GetScriptByte cp b - jr c, Script_2jump + jr c, Script_jump jr SkipTwoScriptBytes -; 0x97562 +; 97562 -Script_if_less_than: ; 0x97562 +Script_if_less_than: ; 97562 ; script command 0xb ; parameters: ; byte (SingleByteParam) @@ -1798,20 +1798,20 @@ Script_if_less_than: ; 0x97562 ld b, a ld a, [ScriptVar] cp b - jr c, Script_2jump + jr c, Script_jump jr SkipTwoScriptBytes -; 0x9756e +; 9756e -Script_jumpstd: ; 0x9756e +Script_jumpstd: ; 9756e ; script command 0xc ; parameters: ; predefined_script (MultiByteParam) call StdScript jr ScriptJump -; 0x97573 +; 97573 -Script_callstd: ; 0x97573 +Script_callstd: ; 97573 ; script command 0xd ; parameters: ; predefined_script (MultiByteParam) @@ -1820,9 +1820,9 @@ Script_callstd: ; 0x97573 ld d, h ld e, l jp ScriptCall -; 0x9757b +; 9757b -StdScript: ; 0x9757b +StdScript: ; 9757b call GetScriptByte ld e, a call GetScriptByte @@ -1838,15 +1838,15 @@ endr ld a, BANK(StdScripts) call GetFarHalfword ret -; 0x97596 +; 97596 -SkipTwoScriptBytes: ; 0x97596 +SkipTwoScriptBytes: ; 97596 call GetScriptByte call GetScriptByte ret -; 0x9759d +; 9759d -ScriptJump: ; 0x9759d +ScriptJump: ; 9759d ld a, b ld [ScriptBank], a ld a, l @@ -1854,9 +1854,9 @@ ScriptJump: ; 0x9759d ld a, h ld [ScriptPos + 1], a ret -; 0x975aa +; 975aa -Script_priorityjump: ; 0x975aa +Script_priorityjump: ; 975aa ; script command 0x8d ; parameters: ; pointer (ScriptPointerLabelParam) @@ -1870,22 +1870,23 @@ Script_priorityjump: ; 0x975aa ld hl, ScriptFlags set 3, [hl] ret -; 0x975c2 +; 975c2 -Script_checktriggers: ; 0x975c2 +Script_checktriggers: ; 975c2 ; script command 0x13 call CheckTriggers - jr z, .asm_975cb + jr z, .no_triggers ld [ScriptVar], a ret -.asm_975cb + +.no_triggers ld a, $ff ld [ScriptVar], a ret -; 0x975d1 +; 975d1 -Script_checkmaptriggers: ; 0x975d1 +Script_checkmaptriggers: ; 975d1 ; script command 0x11 ; parameters: ; map_group (SingleByteParam) @@ -1898,17 +1899,18 @@ Script_checkmaptriggers: ; 0x975d1 call GetMapTrigger ld a, d or e - jr z, .asm_975e5 + jr z, .no_triggers ld a, [de] ld [ScriptVar], a ret -.asm_975e5 + +.no_triggers ld a, $ff ld [ScriptVar], a ret -; 0x975eb +; 975eb -Script_dotrigger: ; 0x975eb +Script_dotrigger: ; 975eb ; script command 0x14 ; parameters: ; trigger_id (SingleByteParam) @@ -1917,10 +1919,10 @@ Script_dotrigger: ; 0x975eb ld b, a ld a, [MapNumber] ld c, a - jr Unknown_975fd -; 0x975f5 + jr DoTrigger +; 975f5 -Script_domaptrigger: ; 0x975f5 +Script_domaptrigger: ; 975f5 ; script command 0x12 ; parameters: ; map_group (MapGroupParam) @@ -1931,20 +1933,18 @@ Script_domaptrigger: ; 0x975f5 ld b, a call GetScriptByte ld c, a - ; fallthrough - -Unknown_975fd: ; 0x975fd +DoTrigger: ; 975fd call GetMapTrigger ld a, d or e - jr z, .asm_97608 + jr z, .no_trigger call GetScriptByte ld [de], a -.asm_97608 +.no_trigger ret -; 0x97609 +; 97609 -Script_copybytetovar: ; 0x97609 +Script_copybytetovar: ; 97609 ; script command 0x19 ; parameters: ; address (RAMAddressParam) @@ -1956,9 +1956,9 @@ Script_copybytetovar: ; 0x97609 ld a, [hl] ld [ScriptVar], a ret -; 0x97616 +; 97616 -Script_copyvartobyte: ; 0x97616 +Script_copyvartobyte: ; 97616 ; script command 0x1a ; parameters: ; address (RAMAddressParam) @@ -1970,9 +1970,9 @@ Script_copyvartobyte: ; 0x97616 ld a, [ScriptVar] ld [hl], a ret -; 0x97623 +; 97623 -Script_loadvar: ; 0x97623 +Script_loadvar: ; 97623 ; script command 0x1b ; parameters: ; address (RAMAddressParam) @@ -1985,9 +1985,9 @@ Script_loadvar: ; 0x97623 call GetScriptByte ld [hl], a ret -; 0x97630 +; 97630 -Script_writebyte: ; 0x97630 +Script_writebyte: ; 97630 ; script command 0x15 ; parameters: ; value (SingleByteParam) @@ -1995,9 +1995,9 @@ Script_writebyte: ; 0x97630 call GetScriptByte ld [ScriptVar], a ret -; 0x97637 +; 97637 -Script_addvar: ; 0x97637 +Script_addvar: ; 97637 ; script command 0x16 ; parameters: ; value (SingleByteParam) @@ -2007,9 +2007,9 @@ Script_addvar: ; 0x97637 add [hl] ld [hl], a ret -; 0x97640 +; 97640 -Script_random: ; 0x97640 +Script_random: ; 97640 ; script command 0x17 ; parameters: ; input (SingleByteParam) @@ -2050,9 +2050,9 @@ Script_random: ; 0x97640 call SimpleDivide ld [ScriptVar], a ret -; 0x97673 +; 97673 -.Divide256byC: ; 0x97673 +.Divide256byC: ; 97673 xor a ld b, a sub c @@ -2063,9 +2063,9 @@ Script_random: ; 0x97640 dec b add c ret -; 0x9767d +; 9767d -Script_checkcode: ; 0x9767d +Script_checkcode: ; 9767d ; script command 0x1c ; parameters: ; variable_id (SingleByteParam) @@ -2075,9 +2075,9 @@ Script_checkcode: ; 0x9767d ld a, [de] ld [ScriptVar], a ret -; 0x97688 +; 97688 -Script_writevarcode: ; 0x97688 +Script_writevarcode: ; 97688 ; script command 0x1d ; parameters: ; variable_id (SingleByteParam) @@ -2087,9 +2087,9 @@ Script_writevarcode: ; 0x97688 ld a, [ScriptVar] ld [de], a ret -; 0x97693 +; 97693 -Script_writecode: ; 0x97693 +Script_writecode: ; 97693 ; script command 0x1e ; parameters: ; variable_id (SingleByteParam) @@ -2100,27 +2100,27 @@ Script_writecode: ; 0x97693 call GetScriptByte ld [de], a ret -; 0x9769e +; 9769e -GetVarAction: ; 0x9769e +GetVarAction: ; 9769e ld c, a callba _GetVarAction ret -; 0x976a6 +; 976a6 -Script_checkver: ; 0x976a6 +Script_checkver: ; 976a6 ; script command 0x18 ld a, [Version] ld [ScriptVar], a ret -; 0x976ad +; 976ad Version: ; 976ad db VERSION ; 976ae -Script_pokenamemem: ; 0x976ae +Script_pokenamemem: ; 976ae ; script command 0x40 ; parameters: ; pokemon (PokemonParam); leave $0 to draw from script var @@ -2135,7 +2135,7 @@ Script_pokenamemem: ; 0x976ae call GetPokemonName ld de, StringBuffer1 -ConvertMemToText: ; 0x976c0 +ConvertMemToText: ; 976c0 call GetScriptByte cp 3 jr c, .ok @@ -2148,9 +2148,9 @@ CopyConvertedText: ; 976c8 call AddNTimes call CopyName2 ret -; 0x976d5 +; 976d5 -Script_itemtotext: ; 0x976d5 +Script_itemtotext: ; 976d5 ; script command 0x41 ; parameters: ; item (ItemLabelByte) @@ -2165,9 +2165,9 @@ Script_itemtotext: ; 0x976d5 call GetItemName ld de, StringBuffer1 jr ConvertMemToText -; 0x976e9 +; 976e9 -Script_mapnametotext: ; 0x976e9 +Script_mapnametotext: ; 976e9 ; script command 0x42 ; parameters: ; memory (SingleByteParam) @@ -2178,14 +2178,14 @@ Script_mapnametotext: ; 0x976e9 ld c, a call GetWorldMapLocation -ConvertLandmarkToText: ; 0x976f4 +ConvertLandmarkToText: ; 976f4 ld e, a callba GetLandmarkName ld de, StringBuffer1 jp ConvertMemToText -; 0x97701 +; 97701 -Script_displaylocation: ; 0x97701 +Script_displaylocation: ; 97701 ; script command 0xa5 ; parameters: ; id (SingleByteParam) @@ -2193,9 +2193,9 @@ Script_displaylocation: ; 0x97701 call GetScriptByte jr ConvertLandmarkToText -; 0x97706 +; 97706 -Script_trainertotext: ; 0x97706 +Script_trainertotext: ; 97706 ; script command 0x43 ; parameters: ; trainer_id (TrainerGroupParam) @@ -2208,9 +2208,9 @@ Script_trainertotext: ; 0x97706 ld b, a callba GetTrainerName jr ConvertMemToText -; 0x97716 +; 97716 -Script_name: ; 0x97716 +Script_name: ; 97716 ; script command 0xa7 ; parameters: ; type (SingleByteParam) @@ -2220,15 +2220,15 @@ Script_name: ; 0x97716 call GetScriptByte ld [wNamedObjectTypeBuffer], a -ContinueToGetName: ; 0x9771c +ContinueToGetName: ; 9771c call GetScriptByte ld [CurSpecies], a call GetName ld de, StringBuffer1 jp ConvertMemToText -; 0x9772b +; 9772b -Script_trainerclassname: ; 0x9772b +Script_trainerclassname: ; 9772b ; script command 0xa6 ; parameters: ; id (SingleByteParam) @@ -2237,9 +2237,9 @@ Script_trainerclassname: ; 0x9772b ld a, TRAINER_NAME ld [wNamedObjectTypeBuffer], a jr ContinueToGetName -; 0x97732 +; 97732 -Script_readmoney: ; 0x97732 +Script_readmoney: ; 97732 ; script command 0x3d ; parameters: ; account (SingleByteParam) @@ -2252,9 +2252,9 @@ Script_readmoney: ; 0x97732 call PrintNum ld de, StringBuffer1 jp ConvertMemToText -; 0x97747 +; 97747 -Script_readcoins: ; 0x97747 +Script_readcoins: ; 97747 ; script command 0x3e ; parameters: ; memory (SingleByteParam) @@ -2266,9 +2266,9 @@ Script_readcoins: ; 0x97747 call PrintNum ld de, StringBuffer1 jp ConvertMemToText -; 0x9775c +; 9775c -Script_RAM2MEM: ; 0x9775c +Script_RAM2MEM: ; 9775c ; script command 0x3f ; parameters: ; memory (SingleByteParam) @@ -2280,17 +2280,17 @@ Script_RAM2MEM: ; 0x9775c call PrintNum ld de, StringBuffer1 jp ConvertMemToText -; 0x97771 +; 97771 -ResetStringBuffer1: ; 0x97771 +ResetStringBuffer1: ; 97771 ld hl, StringBuffer1 ld bc, NAME_LENGTH ld a, "@" call ByteFill ret -; 0x9777d +; 9777d -Script_stringtotext: ; 0x9777d +Script_stringtotext: ; 9777d ; script command 0x44 ; parameters: ; text_pointer (EncodedTextLabelParam) @@ -2305,9 +2305,9 @@ Script_stringtotext: ; 0x9777d rst FarCall ld de, StringBuffer2 jp ConvertMemToText -; 0x97792 +; 97792 -Script_givepokeitem: ; 0x97792 +Script_givepokeitem: ; 97792 ; script command 0x2f ; parameters: ; pointer (PointerParamToItemAndLetter) @@ -2328,9 +2328,9 @@ Script_givepokeitem: ; 0x97792 pop bc callba GivePokeItem ret -; 0x977b7 +; 977b7 -Script_checkpokeitem: ; 0x977b7 +Script_checkpokeitem: ; 977b7 ; script command 0x30 ; parameters: ; pointer (PointerParamToItemAndLetter) @@ -2343,9 +2343,9 @@ Script_checkpokeitem: ; 0x977b7 ld b, a callba Function44654 ret -; 0x977ca +; 977ca -Script_giveitem: ; 0x977ca +Script_giveitem: ; 977ca ; script command 0x1f ; parameters: ; item (ItemLabelByte) @@ -2369,9 +2369,9 @@ Script_giveitem: ; 0x977ca xor a ld [ScriptVar], a ret -; 0x977f0 +; 977f0 -Script_takeitem: ; 0x977f0 +Script_takeitem: ; 977f0 ; script command 0x20 ; parameters: ; item (ItemLabelByte) @@ -2391,9 +2391,9 @@ Script_takeitem: ; 0x977f0 ld a, $1 ld [ScriptVar], a ret -; 0x97812 +; 97812 -Script_checkitem: ; 0x97812 +Script_checkitem: ; 97812 ; script command 0x21 ; parameters: ; item (ItemLabelByte) @@ -2408,9 +2408,9 @@ Script_checkitem: ; 0x97812 ld a, 1 ld [ScriptVar], a ret -; 0x97829 +; 97829 -Script_givemoney: ; 0x97829 +Script_givemoney: ; 97829 ; script command 0x22 ; parameters: ; account (SingleByteParam) @@ -2420,9 +2420,9 @@ Script_givemoney: ; 0x97829 call LoadMoneyAmountToMem callba GiveMoney ret -; 0x97836 +; 97836 -Script_takemoney: ; 0x97836 +Script_takemoney: ; 97836 ; script command 0x23 ; parameters: ; account (SingleByteParam) @@ -2432,9 +2432,9 @@ Script_takemoney: ; 0x97836 call LoadMoneyAmountToMem callba TakeMoney ret -; 0x97843 +; 97843 -Script_checkmoney: ; 0x97843 +Script_checkmoney: ; 97843 ; script command 0x24 ; parameters: ; account (SingleByteParam) @@ -2443,9 +2443,9 @@ Script_checkmoney: ; 0x97843 call GetMoneyAccount call LoadMoneyAmountToMem callba CompareMoney -; 0x9784f +; 9784f -CompareMoneyAction: ; 0x9784f +CompareMoneyAction: ; 9784f jr c, .two jr z, .one ld a, 0 @@ -2458,18 +2458,18 @@ CompareMoneyAction: ; 0x9784f .done ld [ScriptVar], a ret -; 0x97861 +; 97861 -GetMoneyAccount: ; 0x97861 +GetMoneyAccount: ; 97861 call GetScriptByte and a ld de, Money ret z ld de, wMomsMoney ret -; 0x9786d +; 9786d -LoadMoneyAmountToMem: ; 0x9786d +LoadMoneyAmountToMem: ; 9786d ld bc, hMoneyTemp push bc call GetScriptByte @@ -2482,9 +2482,9 @@ LoadMoneyAmountToMem: ; 0x9786d ld [bc], a pop bc ret -; 0x97881 +; 97881 -Script_givecoins: ; 0x97881 +Script_givecoins: ; 97881 ; script command 0x25 ; parameters: ; coins (CoinByteParam) @@ -2492,9 +2492,9 @@ Script_givecoins: ; 0x97881 call LoadCoinAmountToMem callba GiveCoins ret -; 0x9788b +; 9788b -Script_takecoins: ; 0x9788b +Script_takecoins: ; 9788b ; script command 0x26 ; parameters: ; coins (CoinByteParam) @@ -2502,9 +2502,9 @@ Script_takecoins: ; 0x9788b call LoadCoinAmountToMem callba TakeCoins ret -; 0x97895 +; 97895 -Script_checkcoins: ; 0x97895 +Script_checkcoins: ; 97895 ; script command 0x27 ; parameters: ; coins (CoinByteParam) @@ -2521,9 +2521,9 @@ LoadCoinAmountToMem: ; 978a0 ld [hMoneyTemp], a ld bc, hMoneyTemp ret -; 0x978ae +; 978ae -Script_checktime: ; 0x978ae +Script_checktime: ; 978ae ; script command 0x2b ; parameters: ; time (SingleByteParam) @@ -2537,9 +2537,9 @@ Script_checktime: ; 0x978ae ld a, $1 ld [ScriptVar], a ret -; 0x978c3 +; 978c3 -Script_checkpoke: ; 0x978c3 +Script_checkpoke: ; 978c3 ; script command 0x2c ; parameters: ; pkmn (PokemonParam) @@ -2554,9 +2554,9 @@ Script_checkpoke: ; 0x978c3 ld a, 1 ld [ScriptVar], a ret -; 0x978da +; 978da -Script_addcellnum: ; 0x978da +Script_addcellnum: ; 978da ; script command 0x28 ; parameters: ; person (SingleByteParam) @@ -2570,9 +2570,9 @@ Script_addcellnum: ; 0x978da ld a, $1 ld [ScriptVar], a ret -; 0x978ef +; 978ef -Script_delcellnum: ; 0x978ef +Script_delcellnum: ; 978ef ; script command 0x29 ; parameters: ; person (SingleByteParam) @@ -2586,9 +2586,9 @@ Script_delcellnum: ; 0x978ef ld a, $1 ld [ScriptVar], a ret -; 0x97904 +; 97904 -Script_checkcellnum: ; 0x97904 +Script_checkcellnum: ; 97904 ; script command 0x2a ; parameters: ; person (SingleByteParam) @@ -2603,9 +2603,9 @@ Script_checkcellnum: ; 0x97904 ld a, $1 ld [ScriptVar], a ret -; 0x97919 +; 97919 -Script_specialphonecall: ; 0x97919 +Script_specialphonecall: ; 97919 ; script command 0x9c ; parameters: ; call_id (MultiByteParam) @@ -2615,9 +2615,9 @@ Script_specialphonecall: ; 0x97919 call GetScriptByte ld [wSpecialPhoneCallID + 1], a ret -; 0x97926 +; 97926 -Script_checkphonecall: ; 0x97926 +Script_checkphonecall: ; 97926 ; script command 0x9d ; returns false if no special phone call is stored @@ -2628,9 +2628,9 @@ Script_checkphonecall: ; 0x97926 .ok ld [ScriptVar], a ret -; 0x97932 +; 97932 -Script_givepoke: ; 0x97932 +Script_givepoke: ; 97932 ; script command 0x2d ; parameters: ; pokemon (PokemonParam) @@ -2663,9 +2663,9 @@ Script_givepoke: ; 0x97932 ld a, b ld [ScriptVar], a ret -; 0x97968 +; 97968 -Script_giveegg: ; 0x97968 +Script_giveegg: ; 97968 ; script command 0x2e ; parameters: ; pkmn (PokemonParam) @@ -2684,9 +2684,9 @@ Script_giveegg: ; 0x97968 ld a, 2 ld [ScriptVar], a ret -; 0x97988 +; 97988 -Script_setevent: ; 0x97988 +Script_setevent: ; 97988 ; script command 0x33 ; parameters: ; bit_number (MultiByteParam) @@ -2698,9 +2698,9 @@ Script_setevent: ; 0x97988 ld b, SET_FLAG call EventFlagAction ret -; 0x97996 +; 97996 -Script_clearevent: ; 0x97996 +Script_clearevent: ; 97996 ; script command 0x32 ; parameters: ; bit_number (MultiByteParam) @@ -2712,9 +2712,9 @@ Script_clearevent: ; 0x97996 ld b, RESET_FLAG call EventFlagAction ret -; 0x979a4 +; 979a4 -Script_checkevent: ; 0x979a4 +Script_checkevent: ; 979a4 ; script command 0x31 ; parameters: ; bit_number (MultiByteParam) @@ -2732,9 +2732,9 @@ Script_checkevent: ; 0x979a4 .false ld [ScriptVar], a ret -; 0x979bb +; 979bb -Script_setflag: ; 0x979bb +Script_setflag: ; 979bb ; script command 0x36 ; parameters: ; bit_number (MultiByteParam) @@ -2746,9 +2746,9 @@ Script_setflag: ; 0x979bb ld b, 1 ; set call _EngineFlagAction ret -; 0x979c9 +; 979c9 -Script_clearflag: ; 0x979c9 +Script_clearflag: ; 979c9 ; script command 0x35 ; parameters: ; bit_number (MultiByteParam) @@ -2760,9 +2760,9 @@ Script_clearflag: ; 0x979c9 ld b, 0 ; clear call _EngineFlagAction ret -; 0x979d7 +; 979d7 -Script_checkflag: ; 0x979d7 +Script_checkflag: ; 979d7 ; script command 0x34 ; parameters: ; bit_number (MultiByteParam) @@ -2780,30 +2780,30 @@ Script_checkflag: ; 0x979d7 .false ld [ScriptVar], a ret -; 0x979ee +; 979ee -_EngineFlagAction: ; 0x979ee +_EngineFlagAction: ; 979ee callba EngineFlagAction ret -; 0x979f5 +; 979f5 -Script_wildoff: ; 0x979f5 +Script_wildoff: ; 979f5 ; script command 0x38 ld hl, StatusFlags set 5, [hl] ret -; 0x979fb +; 979fb -Script_wildon: ; 0x979fb +Script_wildon: ; 979fb ; script command 0x37 ld hl, StatusFlags res 5, [hl] ret -; 0x97a01 +; 97a01 -Script_xycompare: ; 0x97a01 +Script_xycompare: ; 97a01 ; script command 0x39 ; parameters: ; pointer (MultiByteParam) @@ -2813,9 +2813,9 @@ Script_xycompare: ; 0x97a01 call GetScriptByte ld [wd454], a ret -; 0x97a0e +; 97a0e -Script_warpfacing: ; 0x97a0e +Script_warpfacing: ; 97a0e ; script command 0xa3 ; parameters: ; facing (SingleByteParam) @@ -2833,7 +2833,7 @@ Script_warpfacing: ; 0x97a0e ld [wPlayerSpriteSetupFlags], a ; fall through -Script_warp: ; 0x97a1d +Script_warp: ; 97a1d ; script command 0x3c ; parameters: ; map_group (MapGroupParam) @@ -2873,9 +2873,9 @@ Script_warp: ; 0x97a1d call LoadMapStatus call StopScript ret -; 0x97a65 +; 97a65 -Script_warpmod: ; 0x97a65 +Script_warpmod: ; 97a65 ; script command 0x3a ; parameters: ; warp_id (SingleByteParam) @@ -2889,9 +2889,9 @@ Script_warpmod: ; 0x97a65 call GetScriptByte ld [BackupMapNumber], a ret -; 0x97a78 +; 97a78 -Script_blackoutmod: ; 0x97a78 +Script_blackoutmod: ; 97a78 ; script command 0x3b ; parameters: ; map_group (MapGroupParam) @@ -2902,17 +2902,17 @@ Script_blackoutmod: ; 0x97a78 call GetScriptByte ld [wLastSpawnMapNumber], a ret -; 0x97a85 +; 97a85 -Script_reloadmapmusic: ; 0x97a85 +Script_reloadmapmusic: ; 97a85 ; script command 0x83 ld a, 1 ld [wc2c1], a ret -; 0x97a8b +; 97a8b -Script_writecmdqueue: ; 0x97a8b +Script_writecmdqueue: ; 97a8b ; script command 0x7d ; parameters: ; queue_pointer (MultiByteParam) @@ -2925,9 +2925,9 @@ Script_writecmdqueue: ; 0x97a8b ld b, a callba Function97e31 ret -; 0x97a9e +; 97a9e -Script_delcmdqueue: ; 0x97a9e +Script_delcmdqueue: ; 97a9e ; script command 0x7e ; parameters: ; byte (SingleByteParam) @@ -2941,9 +2941,9 @@ Script_delcmdqueue: ; 0x97a9e ld a, 1 ld [ScriptVar], a ret -; 0x97ab3 +; 97ab3 -Script_changemap: ; 0x97ab3 +Script_changemap: ; 97ab3 ; script command 0x79 ; parameters: ; map_data_pointer (MapDataPointerParam) @@ -2957,9 +2957,9 @@ Script_changemap: ; 0x97ab3 call ChangeMap call BufferScreen ret -; 0x97acc +; 97acc -Script_changeblock: ; 0x97acc +Script_changeblock: ; 97acc ; script command 0x7a ; parameters: ; x (SingleByteParam) @@ -2977,9 +2977,9 @@ Script_changeblock: ; 0x97acc ld [hl], a call BufferScreen ret -; 0x97ae3 +; 97ae3 -Script_reloadmappart:: ; 0x97ae3 +Script_reloadmappart:: ; 97ae3 ; script command 0x7c xor a @@ -2989,23 +2989,23 @@ Script_reloadmappart:: ; 0x97ae3 callba Function104061 call UpdateSprites ret -; 0x97af6 +; 97af6 -Script_warpcheck: ; 0x97af6 +Script_warpcheck: ; 97af6 ; script command 0x8e call WarpCheck ret nc callba EnableEvents ret -; 0x97b01 +; 97b01 Script_enableevents: ; unreferenced callba EnableEvents ret -; 0x97b08 +; 97b08 -Script_newloadmap: ; 0x97b08 +Script_newloadmap: ; 97b08 ; script command 0x8a ; parameters: ; which_method (SingleByteParam) @@ -3016,23 +3016,23 @@ Script_newloadmap: ; 0x97b08 call LoadMapStatus call StopScript ret -; 0x97b16 +; 97b16 -Script_reloadandreturn: ; 0x97b16 +Script_reloadandreturn: ; 97b16 ; script command 0x92 call Script_newloadmap jp Script_end -; 0x97b1c +; 97b1c -Script_loadfont: ; 0x97b1c +Script_loadfont: ; 97b1c ; script command 0x47 call LoadFont ret -; 0x97b20 +; 97b20 -Script_refreshscreen: ; 0x97b20 +Script_refreshscreen: ; 97b20 ; script command 0x48 ; parameters: ; dummy (SingleByteParam) @@ -3040,9 +3040,9 @@ Script_refreshscreen: ; 0x97b20 call ResetWindow call GetScriptByte ret -; 0x97b27 +; 97b27 -Script_loadbytec1ce: ; 0x97b27 +Script_loadbytec2cf: ; 97b27 ; script command 0x4a ; parameters: ; byte (SingleByteParam) @@ -3050,23 +3050,23 @@ Script_loadbytec1ce: ; 0x97b27 call GetScriptByte ld [wc2cf], a ret -; 0x97b2e +; 97b2e LoadMoveSpritesScript: ; 97b2e loadmovesprites ; 97b2f -Script_loadmovesprites: ; 0x97b2f +Script_loadmovesprites: ; 97b2f ; script command 0x49 call Function2e20 call LoadMoveSprites ret -; 0x97b36 +; 97b36 -Script_passtoengine: ; 0x97b36 +Script_passtoengine: ; 97b36 ; script command 0x89 ; parameters: ; data_pointer (PointerLabelBeforeBank) @@ -3080,9 +3080,9 @@ Script_passtoengine: ; 0x97b36 pop af call StartAutoInput ret -; 0x97b47 +; 97b47 -Script_pause: ; 0x97b47 +Script_pause: ; 97b47 ; script command 0x8b ; parameters: ; length (DecimalParam) @@ -3098,9 +3098,9 @@ Script_pause: ; 0x97b47 dec [hl] jr nz, .loop ret -; 0x97b5c +; 97b5c -Script_deactivatefacing: ; 0x97b5c +Script_deactivatefacing: ; 97b5c ; script command 0x8c ; parameters: ; time (SingleByteParam) @@ -3114,18 +3114,18 @@ Script_deactivatefacing: ; 0x97b5c ld [ScriptMode], a call StopScript ret -; 0x97b6e +; 97b6e -Script_ptpriorityjump: ; 0x97b6e +Script_ptpriorityjump: ; 97b6e ; script command 0x8f ; parameters: ; pointer (ScriptPointerLabelParam) call StopScript - jp Script_2jump -; 0x97b74 + jp Script_jump +; 97b74 -Script_end: ; 0x97b74 +Script_end: ; 97b74 ; script command 0x91 call ExitScriptSubroutine @@ -3141,9 +3141,9 @@ Script_end: ; 0x97b74 res 0, [hl] call StopScript ret -; 0x97b8c +; 97b8c -Script_return: ; 0x97b8c +Script_return: ; 97b8c ; script command 0x90 call ExitScriptSubroutine @@ -3153,9 +3153,9 @@ Script_return: ; 0x97b8c res 0, [hl] call StopScript ret -; 0x97b9a +; 97b9a -ExitScriptSubroutine: ; 0x97b9a +ExitScriptSubroutine: ; 97b9a ; Return carry if there's no parent to return to. ld hl, wScriptStackSize @@ -3184,9 +3184,9 @@ endr .done scf ret -; 0x97bc0 +; 97bc0 -Script_resetfuncs: ; 0x97bc0 +Script_resetfuncs: ; 97bc0 ; script command 0x93 xor a @@ -3198,9 +3198,9 @@ Script_resetfuncs: ; 0x97bc0 res 0, [hl] call StopScript ret -; 0x97bd5 +; 97bd5 -Script_halloffame: ; 0x97bd5 +Script_halloffame: ; 97bd5 ; script command 0xa1 ld hl, GameTimerPause @@ -3211,9 +3211,9 @@ Script_halloffame: ; 0x97bd5 ld hl, GameTimerPause set 0, [hl] jr DisplayCredits -; 0x97bf3 +; 97bf3 -Script_credits: ; 0x97bf3 +Script_credits: ; 97bf3 ; script command 0xa2 callba RedCredits @@ -3225,9 +3225,9 @@ DisplayCredits: call LoadMapStatus call StopScript ret -; 0x97c051 +; 97c051 -Script_wait: ; 0x97c05 +Script_wait: ; 97c05 ; script command 0xa8 ; parameters: ; unknown (SingleByteParam) @@ -3243,16 +3243,16 @@ Script_wait: ; 0x97c05 jr nz, .loop pop bc ret -; 0x97c15 +; 97c15 -Script_check_save: ; 0x97c15 +Script_check_save: ; 97c15 ; script command 0xa9 callba CheckSave ld a, c ld [ScriptVar], a ret -; 0x97c20 +; 97c20 ; 97c20 unreferenced diff --git a/macros/event.asm b/macros/event.asm index 0f495b4b8..18483abc3 100644 --- a/macros/event.asm +++ b/macros/event.asm @@ -293,9 +293,9 @@ checktime: macro db \1 ; time endm -checkmorn EQUS "checktime 1" -checkday EQUS "checktime 2" -checknite EQUS "checktime 4" +checkmorn EQUS "checktime 1 << MORN" +checkday EQUS "checktime 1 << DAY" +checknite EQUS "checktime 1 << NITE" enum checkpoke_command checkpoke: macro @@ -496,9 +496,9 @@ loadmovesprites: macro db loadmovesprites_command endm - enum loadbytec1ce_command -loadbytec1ce: macro - db loadbytec1ce_command + enum loadbytec2cf_command +loadbytec2cf: macro + db loadbytec2cf_command db \1 ; byte endm @@ -544,12 +544,14 @@ jumptextfaceplayer: macro dw \1 ; text_pointer endm +; IF _CRYSTAL enum farjumptext_command farjumptext: macro db farjumptext_command db BANK(\1) dw \1 endm +; ENDC enum jumptext_command jumptext: macro From 435b0cf686e55bbe60acbce1e6154b0c2450bbac Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 16 Nov 2015 16:01:45 -0500 Subject: [PATCH 13/40] Options menu, some mobile fns --- battle/anim_commands.asm | 2 +- battle/core.asm | 12 +- battle/effect_commands.asm | 2 +- constants.asm | 1 + constants/cgb_constants.asm | 32 + constants/misc_constants.asm | 26 +- constants/wram_constants.asm | 15 + engine/color.asm | 13 +- engine/map_objects.asm | 2 +- engine/options_menu.asm | 565 +++++++ engine/radio2.asm | 260 +++ engine/specials.asm | 4 +- engine/{flypoints.asm => town_map.asm} | 168 +- engine/wildmons.asm | 1057 ++++++++++++ main.asm | 2143 +----------------------- maps/CeruleanPokeCenter1F.asm | 6 +- maps/EcruteakPokeCenter1F.asm | 6 +- maps/FastShip1F.asm | 14 +- maps/FastShipCabins_SW_SSW_NW.asm | 6 +- maps/PokeCenter2F.asm | 8 +- maps/Route40.asm | 6 +- maps/SaffronPokeCenter1F.asm | 10 +- misc/mobile_40.asm | 16 +- misc/mobile_41.asm | 23 +- predef/cgb.asm | 2 +- 25 files changed, 2237 insertions(+), 2162 deletions(-) create mode 100755 constants/cgb_constants.asm create mode 100755 engine/options_menu.asm rename engine/{flypoints.asm => town_map.asm} (86%) create mode 100755 engine/wildmons.asm diff --git a/battle/anim_commands.asm b/battle/anim_commands.asm index fed2c9236..064920afe 100644 --- a/battle/anim_commands.asm +++ b/battle/anim_commands.asm @@ -1172,7 +1172,7 @@ BattleAnimCmd_BeatUp: ; cc776 (33:4776) .done pop af ld [CurPartySpecies], a ; CurPartySpecies - ld b, $1 + ld b, SCGB_01 call GetSGBLayout pop af ld [rSVBK], a diff --git a/battle/core.asm b/battle/core.asm index 1defd0e23..7b68e0729 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -3146,7 +3146,7 @@ LostBattle: ; 3d38e jr nz, .LostLinkBattle ; Greyscale - ld b, 0 + ld b, SCGB_00 call GetSGBLayout call SetPalettes jr .end @@ -7375,7 +7375,7 @@ FinishBattleAnim: ; 3ee27 push bc push de push hl - ld b, $1 + ld b, SCGB_01 call GetSGBLayout call SetPalettes call DelayFrame @@ -8510,7 +8510,7 @@ BattleIntro: ; 3f4dd callba ClearBattleRAM call InitEnemy call BackUpVBGMap2 - ld b, $0 + ld b, SCGB_00 call GetSGBLayout ld hl, rLCDC res 6, [hl] @@ -8936,7 +8936,7 @@ Function3f836: ; 3f836 ld bc, SCREEN_WIDTH * SCREEN_HEIGHT call ByteFill call Function3200 - ld b, $8 + ld b, SCGB_08 call GetSGBLayout call SetPalettes ld c, $8 @@ -9438,7 +9438,7 @@ InitBattleDisplay: ; 3fb6c ld [rWY], a call WaitBGMap call HideSprites - ld b, $1 + ld b, SCGB_01 call GetSGBLayout call SetPalettes ld a, $90 @@ -9488,7 +9488,7 @@ GetTrainerBackpic: ; 3fbff ; What gender are we? ld a, [wPlayerSpriteSetupFlags] - bit 2, a + bit 2, a ; transformed to male jr nz, .Chris ld a, [PlayerGender] bit 0, a diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index 38a00bb73..2ebe1f843 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -8966,7 +8966,7 @@ BattleCommand_BatonPass: ; 379c9 hlcoord 1, 0 lb bc, 4, 10 call ClearBox - ld b, 1 + ld b, SCGB_01 call GetSGBLayout call SetPalettes call BatonPass_LinkPlayerSwitch diff --git a/constants.asm b/constants.asm index 1d8f7d9b2..707883198 100644 --- a/constants.asm +++ b/constants.asm @@ -28,4 +28,5 @@ INCLUDE "constants/deco_constants.asm" INCLUDE "constants/radio_constants.asm" INCLUDE "constants/sprite_constants.asm" INCLUDE "constants/tilemap_constants.asm" +INCLUDE "constants/cgb_constants.asm" INCLUDE "constants/battle_tower_constants.asm" diff --git a/constants/cgb_constants.asm b/constants/cgb_constants.asm new file mode 100755 index 000000000..27dce0494 --- /dev/null +++ b/constants/cgb_constants.asm @@ -0,0 +1,32 @@ + const_def + const SCGB_00 + const SCGB_01 + const SCGB_02 + const SCGB_03 + const SCGB_04 + const SCGB_05 + const SCGB_06 + const SCGB_07 + const SCGB_08 + const SCGB_09 + const SCGB_0A + const SCGB_0B + const SCGB_0C + const SCGB_0D + const SCGB_0E + const SCGB_0F + const SCGB_10 + const SCGB_11 + const SCGB_12 + const SCGB_13 + const SCGB_14 + const SCGB_15 + const SCGB_16 + const SCGB_17 + const SCGB_18 + const SCGB_19 + const SCGB_1A + const SCGB_1B + const SCGB_1C + const SCGB_1D + const SCGB_1E diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 4991daf0a..cc0257cfb 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -46,15 +46,25 @@ CHECK_FLAG EQU 2 ; joypad + const_def + const A_BUTTON_F + const B_BUTTON_F + const SELECT_F + const START_F + const D_RIGHT_F + const D_LEFT_F + const D_UP_F + const D_DOWN_F + NO_INPUT EQU %00000000 -A_BUTTON EQU %00000001 -B_BUTTON EQU %00000010 -SELECT EQU %00000100 -START EQU %00001000 -D_RIGHT EQU %00010000 -D_LEFT EQU %00100000 -D_UP EQU %01000000 -D_DOWN EQU %10000000 +A_BUTTON EQU 1 << A_BUTTON_F +B_BUTTON EQU 1 << B_BUTTON_F +SELECT EQU 1 << SELECT_F +START EQU 1 << START_F +D_RIGHT EQU 1 << D_RIGHT_F +D_LEFT EQU 1 << D_LEFT_F +D_UP EQU 1 << D_UP_F +D_DOWN EQU 1 << D_DOWN_F BUTTONS EQU A_BUTTON | B_BUTTON | SELECT | START D_PAD EQU D_RIGHT | D_LEFT | D_UP | D_DOWN diff --git a/constants/wram_constants.asm b/constants/wram_constants.asm index ffe9b11a6..a8d348e6c 100644 --- a/constants/wram_constants.asm +++ b/constants/wram_constants.asm @@ -7,10 +7,25 @@ BREEDMON EQU 3 WILDMON EQU 4 ; Options: ; cfcc +FAST_TEXT EQU 0 +MED_TEXT EQU 1 +SLOW_TEXT EQU 2 NO_TEXT_SCROLL EQU 4 +; bits +STEREO EQU 5 BATTLE_SHIFT EQU 6 BATTLE_SCENE EQU 7 +; Options2: +MENU_ACCOUNT EQU 0 + +; GBPrinter: +PRINT_LIGHTEST EQU $00 +PRINT_LIGHTER EQU $20 +PRINT_NORMAL EQU $40 +PRINT_DARKER EQU $60 +PRINT_DARKEST EQU $7f + ; WalkingDirection: ; d043 STANDING EQU -1 DOWN EQU 0 diff --git a/engine/color.asm b/engine/color.asm index d24fdf2df..c44b296d4 100644 --- a/engine/color.asm +++ b/engine/color.asm @@ -1,4 +1,4 @@ - +PALPACKET_LENGTH EQU $10 INCLUDE "predef/sgb.asm" SHINY_ATK_BIT EQU 5 @@ -89,7 +89,7 @@ Function8aa4: ; 8aa4 push bc ld hl, PalPacket_9ce6 ld de, wcda9 - ld bc, PalPacket_9cf6 - PalPacket_9ce6 + ld bc, PALPACKET_LENGTH call CopyBytes pop bc pop de @@ -232,7 +232,7 @@ Function8b81: ; 8b81 push af ld hl, PalPacket_9ce6 ld de, wcda9 - ld bc, $0010 + ld bc, PALPACKET_LENGTH call CopyBytes pop af call Function9775 @@ -437,7 +437,7 @@ endr push hl ld hl, PalPacket_9ce6 ld de, wcda9 - ld bc, $0010 + ld bc, PALPACKET_LENGTH call CopyBytes pop hl rept 2 @@ -792,7 +792,7 @@ Function974b: ; 974b and a jp nz, Function97f9 ld a, [wPlayerSpriteSetupFlags] - bit 2, a + bit 2, a ; transformed to male jr nz, .male ld a, [PlayerGender] and a @@ -1212,7 +1212,7 @@ Function99d8: ; 99d8 ld a, $e4 ld [rBGP], a ld de, VTiles1 - ld bc, $0140 + ld bc, 20 tiles call CopyData ld b, $12 .asm_99ea @@ -1367,6 +1367,7 @@ BlkPacket_9b86: ; 9a86 ; 9b96 ; 9b96 + PalPacket_9b96: db $51, $48, $00, $49, $00, $4a, $00, $4b, $00, $00, $00, $00, $00, $00, $00, $00 PalPacket_9ba6: db $51, $2b, $00, $24, $00, $20, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 PalPacket_9bb6: db $51, $41, $00, $42, $00, $43, $00, $44, $00, $00, $00, $00, $00, $00, $00, $00 diff --git a/engine/map_objects.asm b/engine/map_objects.asm index e442b7f77..ef8878565 100644 --- a/engine/map_objects.asm +++ b/engine/map_objects.asm @@ -3053,7 +3053,7 @@ Function57bc: ; 57bc ret .ok - ld a, 0 + ld a, PERSON_ACTION_00 ld [PlayerAction], a ret ; 57ca diff --git a/engine/options_menu.asm b/engine/options_menu.asm new file mode 100755 index 000000000..ed2c21f30 --- /dev/null +++ b/engine/options_menu.asm @@ -0,0 +1,565 @@ +_OptionsMenu: ; e41d0 + ld hl, hInMenu + ld a, [hl] + push af + ld [hl], $1 + call ClearBGPalettes + hlcoord 0, 0 + ld b, $10 + ld c, $12 + call TextBox + hlcoord 2, 2 + ld de, StringOptions + call PlaceString + xor a + ld [wJumptableIndex], a + ld c, $6 ; number of items on the menu minus 1 (for cancel) + +.print_text_loop ; this next will display the settings of each option when the menu is opened + push bc + xor a + ld [hJoyLast], a + call GetOptionPointer + pop bc + ld hl, wJumptableIndex + inc [hl] + dec c + jr nz, .print_text_loop + + call UpdateFrame + xor a + ld [wJumptableIndex], a + inc a + ld [hBGMapMode], a + call WaitBGMap + ld b, SCGB_08 + call GetSGBLayout + call SetPalettes + +.joypad_loop + call JoyTextDelay + ld a, [hJoyPressed] + and START | B_BUTTON + jr nz, .ExitOptions + call OptionsControl + jr c, .dpad + call GetOptionPointer + jr c, .ExitOptions + +.dpad + call Functione455c + ld c, 3 + call DelayFrames + jr .joypad_loop + +.ExitOptions + ld de, SFX_TRANSACTION + call PlaySFX + call WaitSFX + pop af + ld [hInMenu], a + ret +; e4241 + +StringOptions: ; e4241 + db "TEXT SPEED" + db " :" + db "BATTLE SCENE" + db " :" + db "BATTLE STYLE" + db " :" + db "SOUND" + db " :" + db "PRINT" + db " :" + db "MENU ACCOUNT" + db " :" + db "FRAME" + db " :TYPE" + db "CANCEL@" +; e42d6 + + +GetOptionPointer: ; e42d6 + ld a, [wJumptableIndex] ; load the cursor position to a + ld e, a ; copy it to de + ld d, 0 + ld hl, .Pointers +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] ; jump to the code of the current highlighted item +; e42e5 + +.Pointers + dw Options_TextSpeed + dw Options_BattleScene + dw Options_BattleStyle + dw Options_Sound + dw Options_Print + dw Options_MenuAccount + dw Options_Frame + dw Options_Cancel +; e42f5 + + +Options_TextSpeed: ; e42f5 + call GetTextSpeed + ld a, [hJoyPressed] + bit D_LEFT_F, a + jr nz, .LeftPressed + bit D_RIGHT_F, a + jr z, .NonePressed + ld a, c ; right pressed + cp SLOW_TEXT + jr c, .Increase + ld c, FAST_TEXT +- 1 + +.Increase + inc c + ld a, e + jr .Save + +.LeftPressed + ld a, c + and a + jr nz, .Decrease + ld c, SLOW_TEXT + 1 + +.Decrease + dec c + ld a, d + +.Save + ld b, a + ld a, [Options] + and $f0 + or b + ld [Options], a + +.NonePressed + ld b, 0 + ld hl, .Strings +rept 2 + add hl, bc +endr + ld e, [hl] + inc hl + ld d, [hl] + hlcoord 11, 3 + call PlaceString + and a + ret +; e4331 + +.Strings + dw .Fast + dw .Mid + dw .Slow + +.Fast + db "FAST@" +.Mid + db "MID @" +.Slow + db "SLOW@" +; e4346 + + +GetTextSpeed: ; e4346 + ld a, [Options] ; This converts the number of frames, to 0, 1, 2 representing speed + and 7 + cp 5 ; 5 frames of delay is slow + jr z, .slow + cp 1 ; 1 frame of delay is fast + jr z, .fast + ld c, MED_TEXT ; set it to mid if not one of the above + lb de, 1, 5 + ret + +.slow + ld c, SLOW_TEXT + lb de, 3, 1 + ret + +.fast + ld c, FAST_TEXT + lb de, 5, 3 + ret +; e4365 + + +Options_BattleScene: ; e4365 + ld hl, Options + ld a, [hJoyPressed] + bit D_LEFT_F, a + jr nz, .LeftPressed + bit D_RIGHT_F, a + jr z, .NonePressed + bit BATTLE_SCENE, [hl] + jr nz, .ToggleOn + jr .ToggleOff + +.LeftPressed + bit BATTLE_SCENE, [hl] + jr z, .ToggleOff + jr .ToggleOn + +.NonePressed + bit BATTLE_SCENE, [hl] + jr z, .ToggleOn + jr .ToggleOff + +.ToggleOn + res BATTLE_SCENE, [hl] + ld de, .On + jr .Display + +.ToggleOff + set BATTLE_SCENE, [hl] + ld de, .Off + +.Display + hlcoord 11, 5 + call PlaceString + and a + ret +; e4398 + +.On + db "ON @" +.Off + db "OFF@" +; e43a0 + + +Options_BattleStyle: ; e43a0 + ld hl, Options + ld a, [hJoyPressed] + bit D_LEFT_F, a + jr nz, .LeftPressed + bit D_RIGHT_F, a + jr z, .NonePressed + bit BATTLE_SHIFT, [hl] + jr nz, .ToggleShift + jr .ToggleSet + +.LeftPressed + bit BATTLE_SHIFT, [hl] + jr z, .ToggleSet + jr .ToggleShift + +.NonePressed + bit BATTLE_SHIFT, [hl] + jr nz, .ToggleSet + +.ToggleShift + res BATTLE_SHIFT, [hl] + ld de, .Shift + jr .Display + +.ToggleSet + set BATTLE_SHIFT, [hl] + ld de, .Set + +.Display + hlcoord 11, 7 + call PlaceString + and a + ret +; e43d1 + +.Shift + db "SHIFT@" +.Set + db "SET @" +; e43dd + + +Options_Sound: ; e43dd + ld hl, Options + ld a, [hJoyPressed] + bit D_LEFT_F, a + jr nz, .LeftPressed + bit D_RIGHT_F, a + jr z, .NonePressed + bit STEREO, [hl] + jr nz, .SetMono + jr .SetStereo + +.LeftPressed + bit STEREO, [hl] + jr z, .SetStereo + jr .SetMono + +.NonePressed + bit STEREO, [hl] + jr nz, .ToggleStereo + jr .ToggleMono + +.SetMono + res STEREO, [hl] + call RestartMapMusic + +.ToggleMono + ld de, .Mono + jr .Display + +.SetStereo + set STEREO, [hl] + call RestartMapMusic + +.ToggleStereo + ld de, .Stereo + +.Display + hlcoord 11, 9 + call PlaceString + and a + ret +; e4416 + +.Mono + db "MONO @" +.Stereo + db "STEREO@" +; e4424 + + +Options_Print: ; e4424 + call GetPrinterSetting + ld a, [hJoyPressed] + bit D_LEFT_F, a + jr nz, .LeftPressed + bit D_RIGHT_F, a + jr z, .NonePressed + ld a, c + cp 4 + jr c, .Increase + ld c, -1 + +.Increase + inc c + ld a, e + jr .Save + +.LeftPressed + ld a, c + and a + jr nz, .Decrease + ld c, 5 + +.Decrease + dec c + ld a, d + +.Save + ld b, a + ld [GBPrinter], a + +.NonePressed + ld b, $0 + ld hl, .Strings +rept 2 + add hl, bc +endr + ld e, [hl] + inc hl + ld d, [hl] + hlcoord 11, 11 + call PlaceString + and a + ret +; e445a + +.Strings + dw .Lightest + dw .Lighter + dw .Normal + dw .Darker + dw .Darkest + +.Lightest + db "LIGHTEST@" +.Lighter + db "LIGHTER @" +.Normal + db "NORMAL @" +.Darker + db "DARKER @" +.Darkest + db "DARKEST @" +; e4491 + + +GetPrinterSetting: ; e4491 + ld a, [GBPrinter] ; converts from the stored printer setting to 0,1,2,3,4 + and a + jr z, .IsLightest + cp PRINT_LIGHTER + jr z, .IsLight + cp PRINT_DARKER + jr z, .IsDark + cp PRINT_DARKEST + jr z, .IsDarkest + ld c, 2 ; normal if none of the above + lb de, PRINT_LIGHTER, PRINT_DARKER ; the 2 values next to this setting + ret + +.IsLightest + ld c, 0 + lb de, PRINT_DARKEST, PRINT_LIGHTER ; the 2 values next to this setting + ret + +.IsLight + ld c, 1 + lb de, PRINT_LIGHTEST, PRINT_NORMAL ; the 2 values next to this setting + ret + +.IsDark + ld c, 3 + lb de, PRINT_NORMAL, PRINT_DARKEST ; the 2 values next to this setting + ret + +.IsDarkest + ld c, 4 + lb de, PRINT_DARKER, PRINT_LIGHTEST ; the 2 values next to this setting + ret +; e44c1 + +Options_MenuAccount: ; e44c1 + ld hl, Options2 + ld a, [hJoyPressed] + bit D_LEFT_F, a + jr nz, .LeftPressed + bit D_RIGHT_F, a + jr z, .NonePressed + bit MENU_ACCOUNT, [hl] + jr nz, .ToggleOff + jr .ToggleOn + +.LeftPressed + bit MENU_ACCOUNT, [hl] + jr z, .ToggleOn + jr .ToggleOff + +.NonePressed + bit MENU_ACCOUNT, [hl] + jr nz, .ToggleOn + +.ToggleOff + res MENU_ACCOUNT, [hl] + ld de, .Off + jr .Display + +.ToggleOn + set MENU_ACCOUNT, [hl] + ld de, .On + +.Display + hlcoord 11, 13 + call PlaceString + and a + ret +; e44f2 + +.Off + db "OFF@" +.On + db "ON @" +; e44fa + + +Options_Frame: ; e44fa + ld hl, TextBoxFrame + ld a, [hJoyPressed] + bit D_LEFT_F, a + jr nz, .LeftPressed + bit D_RIGHT_F, a + jr nz, .RightPressed + and a + ret + +.RightPressed + ld a, [hl] + inc a + jr .Save + +.LeftPressed + ld a, [hl] + dec a + +.Save + and $7 + ld [hl], a +UpdateFrame: ; e4512 + ld a, [TextBoxFrame] + hlcoord 16, 15 ; where on the screen the number is drawn + add "1" + ld [hl], a + call LoadFontsExtra + and a + ret +; e4520 + +Options_Cancel: ; e4520 + ld a, [hJoyPressed] + and A_BUTTON + jr nz, .Exit + and a + ret + +.Exit + scf + ret +; e452a + +OptionsControl: ; e452a + ld hl, wJumptableIndex + ld a, [hJoyLast] + cp D_DOWN + jr z, .DownPressed + cp D_UP + jr z, .UpPressed + and a + ret + +.DownPressed + ld a, [hl] ; load the cursor position to a + cp $7 ; maximum number of items in option menu + jr nz, .CheckFive + ld [hl], $0 + scf + ret + +.CheckFive ; I have no idea why this exists... + cp $5 + jr nz, .Increase + ld [hl], $5 + +.Increase + inc [hl] + scf + ret + +.UpPressed + ld a, [hl] + cp $6 + jr nz, .NotSix + ld [hl], $5 ; Another thing where I'm not sure why it exists + scf + ret + +.NotSix + and a + jr nz, .Decrease + ld [hl], $8 ; number of option items +1 + +.Decrease + dec [hl] + scf + ret +; e455c diff --git a/engine/radio2.asm b/engine/radio2.asm index 1d07c904c..e9ffedd7c 100644 --- a/engine/radio2.asm +++ b/engine/radio2.asm @@ -402,3 +402,263 @@ PlacesAndPeopleName: db "Places & People@" LetsAllSingName: db "Let's All Sing!@" PokeFluteStationName: db "# FLUTE@" ; 9191c + + +Function9191c: ; 9191c + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + ld a, [VramState] + push af + xor a + ld [VramState], a + call ClearBGPalettes + call ClearTileMap + call ClearSprites + call DisableLCD + call Function90c4e + callba Function8cf53 + ld a, 8 + call SkipMusic + ld a, $e3 + ld [rLCDC], a + call Function90d56 + ld [wd002], a + ld [wd003], a + xor a + ld [hBGMapMode], a + call Function91a04 + call Function3200 + ld a, [wd002] + call Function9106a + ld a, [wd003] + call Function91098 + ld a, c + ld [wd004], a + ld a, b + ld [wd005], a + ld b, SCGB_02 + call GetSGBLayout + call SetPalettes + ld a, [hCGB] + and a + jr z, .asm_9198b + ld a, $e4 + call Functioncf8 + call DelayFrame + +.asm_9198b + ld a, [wd002] + cp KANTO_LANDMARK + jr nc, .asm_9199b + ld d, KANTO_LANDMARK - 1 + ld e, 1 + call Function919b0 + jr .asm_919a1 + +.asm_9199b + call Function910e8 + call Function919b0 + +.asm_919a1 + pop af + ld [VramState], a + pop af + ld [hInMenu], a + pop af + ld [Options], a + call ClearBGPalettes + ret +; 919b0 + +Function919b0: ; 919b0 +.asm_919b0 + call JoyTextDelay + ld hl, hJoyPressed + ld a, [hl] + and B_BUTTON + ret nz + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, .asm_919d4 + ld a, [hl] + and D_DOWN + jr nz, .asm_919e1 +.asm_919c7 + push de + callba Function8cf69 + pop de + call DelayFrame + jr .asm_919b0 + +.asm_919d4 + ld hl, wd003 + ld a, [hl] + cp d + jr c, .asm_919de + ld a, e + dec a + ld [hl], a + +.asm_919de + inc [hl] + jr .asm_919ec + +.asm_919e1 + ld hl, wd003 + ld a, [hl] + cp e + jr nz, .asm_919eb + ld a, d + inc a + ld [hl], a + +.asm_919eb + dec [hl] + +.asm_919ec + push de + ld a, [wd003] + call Function910b4 + ld a, [wd004] + ld c, a + ld a, [wd005] + ld b, a + ld a, [wd003] + call Function910d4 + pop de + jr .asm_919c7 +; 91a04 + +Function91a04: ; 91a04 + ld a, [wd002] + cp KANTO_LANDMARK + jr nc, .asm_91a0f + ld e, $0 + jr .asm_91a11 + +.asm_91a0f + ld e, $1 + +.asm_91a11 + callba Function91ae1 + ld a, $7 + ld bc, 6 + hlcoord 1, 0 + call ByteFill + hlcoord 0, 0 + ld [hl], $6 + hlcoord 7, 0 + ld [hl], $17 + hlcoord 7, 1 + ld [hl], $16 + hlcoord 7, 2 + ld [hl], $26 + ld a, $7 + ld bc, NAME_LENGTH + hlcoord 8, 2 + call ByteFill + hlcoord 19, 2 + ld [hl], $17 + ld a, [wd003] + call Function910b4 + callba TownMapPals + ret +; 91a53 + +PlayRadio: ; 91a53 + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + call .PlayStation + ld c, 100 + call DelayFrames +.loop + call JoyTextDelay + ld a, [hJoyPressed] + and A_BUTTON | B_BUTTON + jr nz, .stop + ld a, [wc6da] + ld l, a + ld a, [wc6db] + ld h, a + ld a, [wc6d9] + and a + jr z, .zero + rst FarCall + +.zero + call DelayFrame + jr .loop + +.stop + pop af + ld [Options], a + call Function91492 + ret +; 91a87 + +.PlayStation: ; 91a87 + ld a, -1 + ld [EnemyTurnsTaken], a + ld hl, .StationPointers + ld d, $0 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + ld de, .jump_return + push de + jp [hl] + +.jump_return + push de + hlcoord 0, 12 + lb bc, 4, 18 + call TextBox + hlcoord 1, 14 + ld [hl], $72 + pop de + hlcoord 2, 14 + call PlaceString + ld h, b + ld l, c + ld [hl], $73 + call WaitBGMap + ret +; 91ab9 + +.StationPointers: ; 91ab9 + dw .OakOrPnP + dw LoadStation_OaksPokemonTalk + dw LoadStation_PokedexShow + dw LoadStation_PokemonMusic + dw LoadStation_LuckyChannel + dw LoadStation_UnownRadio + dw LoadStation_PlacesAndPeople + dw LoadStation_LetsAllSing + dw LoadStation_RocketRadio +; 91acb + +.OakOrPnP: ; 91acb + call IsInJohto + and a + jr nz, .kanto + call UpdateTime + ld a, [TimeOfDay] + and a + jp z, LoadStation_PokedexShow + jp LoadStation_OaksPokemonTalk + +.kanto + jp LoadStation_PlacesAndPeople +; 91ae1 diff --git a/engine/specials.asm b/engine/specials.asm index 21d391faa..825cf3870 100644 --- a/engine/specials.asm +++ b/engine/specials.asm @@ -160,7 +160,7 @@ SpecialsPointers:: ; c029 add_special Function17d2b6 add_special Function17d2ce add_special Function17f53d - add_special Function103612 + add_special AskMobileOrCable add_special SpecialHoOhChamber add_special Function102142 add_special Special_CelebiShrineEvent @@ -180,7 +180,7 @@ SpecialsPointers:: ; c029 add_special Mobile_HealParty add_special RefreshSprites add_special Function1037c2 - add_special Function10630f + add_special Mobile_DummyReturnFalse add_special Function103780 add_special Function10387b add_special Function4ae12 diff --git a/engine/flypoints.asm b/engine/town_map.asm similarity index 86% rename from engine/flypoints.asm rename to engine/town_map.asm index f56facf09..bc24af23b 100755 --- a/engine/flypoints.asm +++ b/engine/town_map.asm @@ -1,3 +1,17 @@ +Function91ae1: ; 91ae1 + ld a, e + and a + jr nz, .kanto + call Function91ff2 + call FillJohtoMap + ret + +.kanto + call Function91ff2 + call FillKantoMap + ret +; 91af3 + _FlyMap: ; 91af3 call ClearBGPalettes call ClearTileMap @@ -419,14 +433,18 @@ Function91d11: ; 91d11 ld [hBGMapMode], a ld a, $1 ld [hInMenu], a + ld de, GFX_922d1 ld hl, VTiles0 tile $7f lb bc, BANK(GFX_922d1), 1 call Request2bpp ; actually 1bpp + call Function91ed0 + ld hl, VTiles0 tile $78 ld c, $4 call Request2bpp + call Function91ff2 call FillKantoMap call Function91de9 @@ -445,27 +463,27 @@ Function91d11: ; 91d11 ld [hBGMapMode], a xor a call Function91e1e -.asm_91d6e +.loop call JoyTextDelay ld hl, hJoyPressed ld a, [hl] and A_BUTTON | B_BUTTON - jr nz, .asm_91d8f + jr nz, .a_b ld a, [hJoypadDown] and SELECT - jr nz, .asm_91d87 + jr nz, .select call Function91d9b call Function91dcd - jr .asm_91d8a + jr .next -.asm_91d87 +.select call Function91e5a -.asm_91d8a +.next call DelayFrame - jr .asm_91d6e + jr .loop -.asm_91d8f +.a_b call ClearSprites pop af ld [wd003], a @@ -914,3 +932,137 @@ GFX_922e1: ; 922e1 INCBIN "gfx/unknown/0922e1.2bpp" GFX_92301: ; 92301 INCBIN "gfx/unknown/092301.2bpp" +Function92311: ; unreferenced + xor a + ld [wd002], a + call ClearBGPalettes + call ClearTileMap + call ClearSprites + ld hl, hInMenu + ld a, [hl] + push af + ld [hl], $1 + xor a + ld [hBGMapMode], a + callba Function8cf53 + call Function91ff2 + ld de, GFX_922e1 + ld hl, VTiles2 tile $30 + lb bc, BANK(GFX_922e1), 6 + call Request1bpp + call FillKantoMap + call TownMapBubble + call TownMapPals + ld hl, VBGMap1 + call TownMapBGUpdate + call FillJohtoMap + call TownMapBubble + call TownMapPals + ld hl, VBGMap0 + call TownMapBGUpdate + call TownMapMon + ld a, c + ld [wd003], a + ld a, b + ld [wd004], a + ld b, SCGB_02 + call GetSGBLayout + call SetPalettes +.loop + call JoyTextDelay + ld hl, hJoyPressed + ld a, [hl] + and B_BUTTON + jr nz, .pressedB + ld a, [hl] + and A_BUTTON + jr nz, .pressedA + call Function923b8 + call GetMapCursorCoordinates + callba Function8cf69 + call DelayFrame + jr .loop + +.pressedB + ld a, -1 + jr .asm_9239f + +.pressedA + ld a, [wd002] + ld l, a + ld h, 0 + add hl, hl + ld de, Flypoints + 1 + add hl, de + ld a, [hl] + +.asm_9239f + ld [wd002], a + pop af + ld [hInMenu], a + call ClearBGPalettes + ld a, $90 + ld [hWY], a + xor a + ld [hBGMapAddress], a + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a + ld a, [wd002] + ld e, a + ret +; 923b8 + +Function923b8: ; 923b8 + ld hl, hJoyLast + ld a, [hl] + and D_DOWN | D_RIGHT + jr nz, .asm_923c6 + ld a, [hl] + and D_UP | D_LEFT + jr nz, .asm_923d3 + ret + +.asm_923c6 + ld hl, wd002 + ld a, [hl] + cp FLY_INDIGO + jr c, .asm_923d0 + ld [hl], -1 +.asm_923d0 + inc [hl] + jr .asm_923dd + +.asm_923d3 + ld hl, wd002 + ld a, [hl] + and a + jr nz, .asm_923dc + ld [hl], FLY_INDIGO + 1 +.asm_923dc + dec [hl] + +.asm_923dd + ld a, [wd002] + cp KANTO_FLYPOINT + jr c, .johto + + call FillKantoMap + xor a + ld b, $9c + jr .asm_923f3 + +.johto + call FillJohtoMap + ld a, $90 + ld b, $98 + +.asm_923f3 + ld [hWY], a + ld a, b + ld [hBGMapAddress + 1], a + call TownMapBubble + call WaitBGMap + xor a + ld [hBGMapMode], a + ret +; 92402 diff --git a/engine/wildmons.asm b/engine/wildmons.asm new file mode 100755 index 000000000..6f39e19dc --- /dev/null +++ b/engine/wildmons.asm @@ -0,0 +1,1057 @@ +LoadWildMonData: ; 29ff8 + call _GrassWildmonLookup + jr c, .copy + ld hl, wd25a + xor a + ld [hli], a + ld [hli], a + ld [hl], a + jr .done_copy +.copy + inc hl + inc hl + ld de, wd25a + ld bc, $3 + call CopyBytes +.done_copy + call _WaterWildmonLookup + ld a, $0 + jr nc, .no_copy + inc hl + inc hl + ld a, [hl] +.no_copy + ld [wd25d], a + ret + +Function2a01f: ; 2a01f + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + xor a + call ByteFill + ld a, e + and a + jr nz, .kanto + decoord 0, 0 + ld hl, JohtoGrassWildMons + call Function2a052 + ld hl, JohtoWaterWildMons + call Function2a06e + call Function2a0b7 + call Function2a0cf + ret + +.kanto + decoord 0, 0 + ld hl, KantoGrassWildMons + call Function2a052 + ld hl, KantoWaterWildMons + jp Function2a06e +; 2a052 + +Function2a052: ; 2a052 +.loop + ld a, [hl] + cp $ff + ret z + push hl + ld a, [hli] + ld b, a + ld a, [hli] + ld c, a +rept 3 + inc hl +endr + ld a, $15 + call Function2a088 + jr nc, .next + ld [de], a + inc de + +.next + pop hl + ld bc, $2f + add hl, bc + jr .loop +; 2a06e + +Function2a06e: ; 2a06e +.loop + ld a, [hl] + cp $ff + ret z + push hl + ld a, [hli] + ld b, a + ld a, [hli] + ld c, a + inc hl + ld a, $3 + call Function2a088 + jr nc, .next + ld [de], a + inc de + +.next + pop hl + ld bc, 9 + add hl, bc + jr .loop +; 2a088 + +Function2a088: ; 2a088 + inc hl +.loop + push af + ld a, [wd265] + cp [hl] + jr z, .found +rept 2 + inc hl +endr + pop af + dec a + jr nz, .loop + and a + ret + +.found + pop af + jp Function2a09c +; 2a09c + +Function2a09c: ; 2a09c + push de + call GetWorldMapLocation + ld c, a + hlcoord 0, 0 + ld de, SCREEN_WIDTH * SCREEN_HEIGHT +.loop + ld a, [hli] + cp c + jr z, .found + dec de + ld a, e + or d + jr nz, .loop + ld a, c + pop de + scf + ret + +.found + pop de + and a + ret +; 2a0b7 + +Function2a0b7: ; 2a0b7 + ld a, [wRoamMon1Species] + ld b, a + ld a, [wd265] + cp b + ret nz + ld a, [wRoamMon1MapGroup] + ld b, a + ld a, [wRoamMon1MapNumber] + ld c, a + call Function2a09c + ret nc + ld [de], a + inc de + ret +; 2a0cf + +Function2a0cf: ; 2a0cf + ld a, [wRoamMon2Species] + ld b, a + ld a, [wd265] + cp b + ret nz + ld a, [wRoamMon2MapGroup] + ld b, a + ld a, [wRoamMon2MapNumber] + ld c, a + call Function2a09c + ret nc + ld [de], a + inc de + ret +; 2a0e7 + +TryWildEncounter:: ; 2a0e7 +; Try to trigger a wild encounter. + call .EncounterRate + jr nc, .no_battle + call ChooseWildEncounter + jr nz, .no_battle + call CheckRepelEffect + jr nc, .no_battle + xor a + ret + +.no_battle + xor a ; BATTLETYPE_NORMAL + ld [TempWildMonSpecies], a + ld [BattleType], a + ld a, 1 + and a + ret +; 2a103 + +.EncounterRate: ; 2a103 + call GetMapEncounterRate + call ApplyMusicEffectOnEncounterRate + call ApplyCleanseTagEffectOnEncounterRate + call Random + cp b + ret +; 2a111 + +GetMapEncounterRate: ; 2a111 + ld hl, wd25a + call CheckOnWater + ld a, 3 + jr z, .ok + ld a, [TimeOfDay] +.ok + ld c, a + ld b, 0 + add hl, bc + ld b, [hl] + ret +; 2a124 + +ApplyMusicEffectOnEncounterRate:: ; 2a124 +; Pokemon March and Ruins of Alph signal double encounter rate. +; Pokemon Lullaby halves encounter rate. + ld a, [wMapMusic] + cp MUSIC_POKEMON_MARCH + jr z, .double + cp MUSIC_RUINS_OF_ALPH_RADIO + jr z, .double + cp MUSIC_POKEMON_LULLABY + ret nz + srl b + ret + +.double + sla b + ret +; 2a138 + +ApplyCleanseTagEffectOnEncounterRate:: ; 2a138 +; Cleanse Tag halves encounter rate. + ld hl, PartyMon1Item + ld de, PARTYMON_STRUCT_LENGTH + ld a, [PartyCount] + ld c, a +.loop + ld a, [hl] + cp CLEANSE_TAG + jr z, .cleansetag + add hl, de + dec c + jr nz, .loop + ret + +.cleansetag + srl b + ret +; 2a14f + +ChooseWildEncounter: ; 2a14f + call LoadWildMonDataPointer + jp nc, .nowildbattle + call CheckEncounterRoamMon + jp c, .startwildbattle + +rept 3 + inc hl +endr + call CheckOnWater + ld de, .WaterMonTable + jr z, .watermon +rept 2 + inc hl +endr + ld a, [TimeOfDay] + ld bc, $e + call AddNTimes + ld de, .GrassMonTable + +.watermon +; hl contains the pointer to the wild mon data, let's save that to the stack + push hl +.randomloop + call Random + cp 100 + jr nc, .randomloop + inc a ; 1 <= a <= 100 + ld b, a + ld h, d + ld l, e +; This next loop chooses which mon to load up. +.prob_bracket_loop + ld a, [hli] + cp b + jr nc, .got_it + inc hl + jr .prob_bracket_loop + +.got_it + ld c, [hl] + ld b, 0 + pop hl + add hl, bc ; this selects our mon + ld a, [hli] + ld b, a +; If the Pokemon is encountered by surfing, we need to give the levels some variety. + call CheckOnWater + jr nz, .ok +; Check if we buff the wild mon, and by how much. + call Random + cp 35 percent + jr c, .ok + inc b + cp 65 percent + jr c, .ok + inc b + cp 85 percent + jr c, .ok + inc b + cp 95 percent + jr c, .ok + inc b +; Store the level +.ok + ld a, b + ld [CurPartyLevel], a + ld b, [hl] + ; ld a, b + call ValidateTempWildMonSpecies + jr c, .nowildbattle + + ld a, b ; This is in the wrong place. + cp UNOWN + jr nz, .done + + ld a, [UnlockedUnowns] + and a + jr z, .nowildbattle + +.done + jr .loadwildmon + +.nowildbattle + ld a, 1 + and a + ret + +.loadwildmon + ld a, b + ld [TempWildMonSpecies], a + +.startwildbattle + xor a + ret +; 2a1cb + +.GrassMonTable: ; 2a1cb + db 30, $0 ; 30% chance + db 60, $2 ; 30% chance + db 80, $4 ; 20% chance + db 90, $6 ; 10% chance + db 95, $8 ; 5% chance + db 99, $a ; 4% chance + db 100, $c ; 1% chance +; 2a1d9 + +.WaterMonTable: ; 2a1d9 + db 60, $0 ; 60% chance + db 90, $2 ; 30% chance + db 100, $4 ; 10% chance +; 2a1df + +CheckRepelEffect:: ; 2a1df +; If there is no active Repel, there's no need to be here. + ld a, [wRepelEffect] + and a + jr z, .encounter +; Get the first Pokemon in your party that isn't fainted. + ld hl, PartyMon1HP + ld bc, PARTYMON_STRUCT_LENGTH - 1 +.loop + ld a, [hli] + or [hl] + jr nz, .ok + add hl, bc + jr .loop + +.ok +; to PartyMonLevel +rept 4 + dec hl +endr + + ld a, [CurPartyLevel] + cp [hl] + jr nc, .encounter + and a + ret + +.encounter + scf + ret +; 2a200 + +LoadWildMonDataPointer: ; 2a200 + call CheckOnWater + jr z, _WaterWildmonLookup + +_GrassWildmonLookup: ; 2a205 + ld hl, SwarmGrassWildMons + ld bc, GRASS_WILDDATA_LENGTH + call _SwarmWildmonCheck + ret c + ld hl, JohtoGrassWildMons + ld de, KantoGrassWildMons + call _JohtoWildmonCheck + ld bc, GRASS_WILDDATA_LENGTH + jr _NormalWildmonOK + +_WaterWildmonLookup: ; 2a21d + ld hl, SwarmWaterWildMons + ld bc, WATER_WILDDATA_LENGTH + call _SwarmWildmonCheck + ret c + ld hl, JohtoWaterWildMons + ld de, KantoWaterWildMons + call _JohtoWildmonCheck + ld bc, WATER_WILDDATA_LENGTH + jr _NormalWildmonOK + +_JohtoWildmonCheck + call IsInJohto + and a + ret z + ld h, d + ld l, e + ret + +_SwarmWildmonCheck + call CopyCurrMapDE + push hl + ld hl, SwarmFlags + bit 2, [hl] + pop hl + jr z, .CheckYanma + ld a, [wdfcc] + cp d + jr nz, .CheckYanma + ld a, [wdfcd] + cp e + jr nz, .CheckYanma + call LookUpWildmonsForMapDE + jr nc, _NoSwarmWildmon + scf + ret + +.CheckYanma + push hl + ld hl, SwarmFlags + bit 3, [hl] + pop hl + jr z, _NoSwarmWildmon + ld a, [wdc5a] + cp d + jr nz, _NoSwarmWildmon + ld a, [wdc5b] + cp e + jr nz, _NoSwarmWildmon + call LookUpWildmonsForMapDE + jr nc, _NoSwarmWildmon + scf + ret + +_NoSwarmWildmon + and a + ret + +_NormalWildmonOK + call CopyCurrMapDE + jr LookUpWildmonsForMapDE +; 2a27f + +CopyCurrMapDE: ; 2a27f + ld a, [MapGroup] + ld d, a + ld a, [MapNumber] + ld e, a + ret +; 2a288 + +LookUpWildmonsForMapDE: ; 2a288 + push hl + ld a, [hl] + inc a + jr z, .nope + ld a, d + cp [hl] + jr nz, .next + inc hl + ld a, e + cp [hl] + jr z, .yup + +.next + pop hl + add hl, bc + jr LookUpWildmonsForMapDE + +.nope + pop hl + and a + ret + +.yup + pop hl + scf + ret +; 2a2a0 + + +InitRoamMons: ; 2a2a0 +; initialize wRoamMon structs + +; species + ld a, RAIKOU + ld [wRoamMon1Species], a + ld a, ENTEI + ld [wRoamMon2Species], a +; ld a, SUICUNE +; ld [wRoamMon3Species], a + +; level + ld a, 40 + ld [wRoamMon1Level], a + ld [wRoamMon2Level], a +; ld [wRoamMon3Level], a + +; raikou starting map + ld a, GROUP_ROUTE_42 + ld [wRoamMon1MapGroup], a + ld a, MAP_ROUTE_42 + ld [wRoamMon1MapNumber], a + +; entei starting map + ld a, GROUP_ROUTE_37 + ld [wRoamMon2MapGroup], a + ld a, MAP_ROUTE_37 + ld [wRoamMon2MapNumber], a + +; suicune starting map +; ld a, GROUP_ROUTE_38 +; ld [wRoamMon3MapGroup], a +; ld a, MAP_ROUTE_38 +; ld [wRoamMon3MapNumber], a + +; hp + xor a ; generate new stats + ld [wRoamMon1HP], a + ld [wRoamMon2HP], a +; ld [wRoamMon3HP], a + + ret +; 2a2ce + + +CheckEncounterRoamMon: ; 2a2ce + push hl +; Don't trigger an encounter if we're on water. + call CheckOnWater + jr z, .DontEncounterRoamMon +; Load the current map group and number to de + call CopyCurrMapDE +; Randomly select a beast. + call Random + cp 100 ; 25/64 chance + jr nc, .DontEncounterRoamMon + and %00000011 ; Of that, a 3/4 chance. Running total: 75/256, or around 29.3%. + jr z, .DontEncounterRoamMon + dec a ; 1/3 chance that it's Entei, 1/3 chance that it's Raikou +; Compare its current location with yours + ld hl, wRoamMon1MapGroup + ld c, a + ld b, 0 + ld a, 7 ; length of the RoamMon struct + call AddNTimes + ld a, d + cp [hl] + jr nz, .DontEncounterRoamMon + inc hl + ld a, e + cp [hl] + jr nz, .DontEncounterRoamMon +; We've decided to take on a beast, so stage its information for battle. +rept 3 + dec hl +endr + ld a, [hli] + ld [TempWildMonSpecies], a + ld a, [hl] + ld [CurPartyLevel], a + ld a, BATTLETYPE_ROAMING + ld [BattleType], a + + pop hl + scf + ret + +.DontEncounterRoamMon + pop hl + and a + ret +; 2a30d + + +UpdateRoamMons: ; 2a30d + ld a, [wRoamMon1MapGroup] + cp GROUP_N_A + jr z, .SkipRaikou + ld b, a + ld a, [wRoamMon1MapNumber] + ld c, a + call .Update + ld a, b + ld [wRoamMon1MapGroup], a + ld a, c + ld [wRoamMon1MapNumber], a + +.SkipRaikou + ld a, [wRoamMon2MapGroup] + cp GROUP_N_A + jr z, .SkipEntei + ld b, a + ld a, [wRoamMon2MapNumber] + ld c, a + call .Update + ld a, b + ld [wRoamMon2MapGroup], a + ld a, c + ld [wRoamMon2MapNumber], a + +.SkipEntei + ld a, [wRoamMon3MapGroup] + cp GROUP_N_A + jr z, .SkipSuicune + ld b, a + ld a, [wRoamMon3MapNumber] + ld c, a + call .Update + ld a, b + ld [wRoamMon3MapGroup], a + ld a, c + ld [wRoamMon3MapNumber], a + +.SkipSuicune + jp _BackUpMapIndices +; 2a355 + + +.Update: ; 2a355 + ld hl, RoamMaps +.loop +; Are we at the end of the table? + ld a, [hl] + cp -1 + ret z +; Is this the correct entry? + ld a, b + cp [hl] + jr nz, .next + inc hl + ld a, c + cp [hl] + jr z, .yes +; We don't have the correct entry yet, so let's continue. A 0 terminates each entry. +.next + ld a, [hli] + and a + jr nz, .next + jr .loop + +; We have the correct entry now, so let's choose a random map from it. +.yes + inc hl + ld d, h + ld e, l +.update_loop + ld h, d + ld l, e +; Choose which map to warp to. + call Random + and $1f ; 1/8n chance it moves to a completely random map, where n is the number of roaming connections from the current map. + jr z, JumpRoamMon + and 3 + cp [hl] + jr nc, .update_loop ; invalid index, try again + inc hl + ld c, a + ld b, $0 +rept 2 + add hl, bc +endr + ld a, [wdfe7] + cp [hl] + jr nz, .done + inc hl + ld a, [wdfe6] + cp [hl] + jr z, .update_loop + dec hl + +.done + ld a, [hli] + ld b, a + ld c, [hl] + ret + +JumpRoamMons: ; 2a394 + ld a, [wRoamMon1MapGroup] + cp GROUP_N_A + jr z, .SkipRaikou + call JumpRoamMon + ld a, b + ld [wRoamMon1MapGroup], a + ld a, c + ld [wRoamMon1MapNumber], a +.SkipRaikou + + ld a, [wRoamMon2MapGroup] + cp GROUP_N_A + jr z, .SkipEntei + call JumpRoamMon + ld a, b + ld [wRoamMon2MapGroup], a + ld a, c + ld [wRoamMon2MapNumber], a +.SkipEntei + + ld a, [wRoamMon3MapGroup] + cp GROUP_N_A + jr z, .SkipSuicune + call JumpRoamMon + ld a, b + ld [wRoamMon3MapGroup], a + ld a, c + ld [wRoamMon3MapNumber], a +.SkipSuicune + + jp _BackUpMapIndices + +JumpRoamMon: ; 2a3cd +.loop + ld hl, RoamMaps +.innerloop1 ; This loop is completely unnecessary. + call Random ; Choose a random number + and $f ; Take the lower nybble only. This gives a number between 0 and 15. + cp $10 ; If the number is greater than or equal to 16, loop back and try again. + jr nc, .innerloop1 ; I'm sure you can guess why this check is bogus. + inc a + ld b, a +.innerloop2 ; Loop to get hl to the address of the chosen roam map. + dec b + jr z, .ok +.innerloop3 ; Loop to skip the current roam map, which is terminated by a 0. + ld a, [hli] + and a + jr nz, .innerloop3 + jr .innerloop2 +; Check to see if the selected map is the one the player is currently in. If so, try again. +.ok + ld a, [MapGroup] + cp [hl] + jr nz, .done + inc hl + ld a, [MapNumber] + cp [hl] + jr z, .loop + dec hl +; Return the map group and number in bc. +.done + ld a, [hli] + ld b, a + ld c, [hl] + ret +; 2a3f6 + +_BackUpMapIndices: ; 2a3f6 + ld a, [wdfe4] + ld [wdfe6], a + ld a, [wdfe5] + ld [wdfe7], a + ld a, [MapNumber] + ld [wdfe4], a + ld a, [MapGroup] + ld [wdfe5], a + ret +; 2a40f + +RoamMaps: ; 2a40f +; Maps that roaming monsters can be on, +; and possible maps they can jump to. +; Notably missing are Route 40 and +; Route 41, which are water routes. + roam_map ROUTE_29, 2, ROUTE_30, ROUTE_46 + roam_map ROUTE_30, 2, ROUTE_29, ROUTE_31 + roam_map ROUTE_31, 3, ROUTE_30, ROUTE_32, ROUTE_36 + roam_map ROUTE_32, 3, ROUTE_36, ROUTE_31, ROUTE_33 + roam_map ROUTE_33, 2, ROUTE_32, ROUTE_34 + roam_map ROUTE_34, 2, ROUTE_33, ROUTE_35 + roam_map ROUTE_35, 2, ROUTE_34, ROUTE_36 + roam_map ROUTE_36, 4, ROUTE_35, ROUTE_31, ROUTE_32, ROUTE_37 + roam_map ROUTE_37, 3, ROUTE_36, ROUTE_38, ROUTE_42 + roam_map ROUTE_38, 3, ROUTE_37, ROUTE_39, ROUTE_42 + roam_map ROUTE_39, 1, ROUTE_38 + roam_map ROUTE_42, 4, ROUTE_43, ROUTE_44, ROUTE_37, ROUTE_38 + roam_map ROUTE_43, 2, ROUTE_42, ROUTE_44 + roam_map ROUTE_44, 3, ROUTE_42, ROUTE_43, ROUTE_45 + roam_map ROUTE_45, 2, ROUTE_44, ROUTE_46 + roam_map ROUTE_46, 2, ROUTE_45, ROUTE_29 + db -1 +; 2a4a0 + +ValidateTempWildMonSpecies: ; 2a4a0 +; Due to a development oversight, this function is called with the wild Pokemon's level, not its species, in a. + and a + jr z, .nowildmon ; = 0 + cp NUM_POKEMON + 1 ; 252 + jr nc, .nowildmon ; >= 252 + and a ; 1 <= Species <= 251 + ret + +.nowildmon + scf + ret +; 2a4ab + +RandomPhoneRareWildMon: ; 2a4ab +; Related to the phone? + callba GetCallerLocation + ld d, b + ld e, c + ld hl, JohtoGrassWildMons + ld bc, GRASS_WILDDATA_LENGTH + call LookUpWildmonsForMapDE + jr c, .GetGrassmon + ld hl, KantoGrassWildMons + call LookUpWildmonsForMapDE + jr nc, .done + +.GetGrassmon + push hl + ld bc, 5 + 4 * 2 ; Location of the level of the 5th wild Pokemon in that map + add hl, bc + ld a, [TimeOfDay] + ld bc, 7 * 2 + call AddNTimes +.randloop1 + call Random + and $3 + jr z, .randloop1 + dec a + ld c, a + ld b, $0 +rept 2 + add hl, bc +endr +; We now have the pointer to one of the last (rarest) three wild Pokemon found in that area. + inc hl + ld c, [hl] ; Contains the species index of this rare Pokemon + pop hl + ld de, 5 + 0 * 2 + add hl, de + inc hl ; Species index of the most common Pokemon on that route + ld b, 4 +.loop2 + ld a, [hli] + cp c ; Compare this most common Pokemon with the rare one stored in c. + jr z, .done + inc hl + dec b + jr nz, .loop2 +; This Pokemon truly is rare. + push bc + dec c + ld a, c + call CheckSeenMon + pop bc + jr nz, .done +; Since we haven't seen it, have the caller tell us about it. + ld de, StringBuffer1 + call CopyName1 + ld a, c + ld [wd265], a + call GetPokemonName + ld hl, UnknownText_0x2a51a + call PrintText + xor a + ld [ScriptVar], a + ret + +.done + ld a, $1 + ld [ScriptVar], a + ret +; 2a51a + +UnknownText_0x2a51a: ; 0x2a51a + ; I just saw some rare @ in @ . I'll call you if I see another rare #MON, OK? + text_jump UnknownText_0x1bd34b + db "@" +; 0x2a51f + +RandomPhoneWildMon: ; 2a51f + callba GetCallerLocation + ld d, b + ld e, c + ld hl, JohtoGrassWildMons + ld bc, GRASS_WILDDATA_LENGTH + call LookUpWildmonsForMapDE + jr c, .ok + ld hl, KantoGrassWildMons + call LookUpWildmonsForMapDE + +.ok + ld bc, 5 + 0 * 2 + add hl, bc + ld a, [TimeOfDay] + inc a + ld bc, 7 * 2 +.loop + dec a + jr z, .done + add hl, bc + jr .loop + +.done + call Random + and $3 + ld c, a + ld b, $0 +rept 2 + add hl, bc +endr + inc hl + ld a, [hl] + ld [wd265], a + call GetPokemonName + ld hl, StringBuffer1 + ld de, StringBuffer4 + ld bc, PKMN_NAME_LENGTH + jp CopyBytes +; 2a567 + +RandomPhoneMon: ; 2a567 +; Get a random monster owned by the trainer who's calling. + callba GetCallerLocation + ld hl, TrainerGroups + ld a, d + dec a + ld c, a + ld b, 0 +rept 2 + add hl, bc +endr + ld a, BANK(TrainerGroups) + call GetFarHalfword + +.skip_trainer + dec e + jr z, .skipped +.skip + ld a, BANK(Trainers) + call GetFarByte + inc hl + cp -1 + jr nz, .skip + jr .skip_trainer +.skipped + +.skip_name + ld a, BANK(Trainers) + call GetFarByte + inc hl + cp "@" + jr nz, .skip_name + + ld a, BANK(Trainers) + call GetFarByte + inc hl + ld bc, 2 + cp 0 + jr z, .got_mon_length + ld bc, 2 + NUM_MOVES + cp 1 + jr z, .got_mon_length + ld bc, 2 + 1 + cp 2 + jr z, .got_mon_length + ld bc, 2 + 1 + NUM_MOVES +.got_mon_length + + ld e, 0 + push hl +.count_mon + inc e + add hl, bc + ld a, BANK(Trainers) + call GetFarByte + cp -1 + jr nz, .count_mon + pop hl + +.rand + call Random + and 7 + cp e + jr nc, .rand + + inc a +.get_mon + dec a + jr z, .got_mon + add hl, bc + jr .get_mon +.got_mon + + inc hl ; species + ld a, BANK(Trainers) + call GetFarByte + ld [wd265], a + call GetPokemonName + ld hl, StringBuffer1 + ld de, StringBuffer4 + ld bc, PKMN_NAME_LENGTH + jp CopyBytes +; 2a5e9 + + +JohtoGrassWildMons: ; 0x2a5e9 +INCLUDE "data/wild/johto_grass.asm" + +JohtoWaterWildMons: ; 0x2b11d +INCLUDE "data/wild/johto_water.asm" + +KantoGrassWildMons: ; 0x2b274 +INCLUDE "data/wild/kanto_grass.asm" + +KantoWaterWildMons: ; 0x2b7f7 +INCLUDE "data/wild/kanto_water.asm" + +SwarmGrassWildMons: ; 0x2b8d0 +INCLUDE "data/wild/swarm_grass.asm" + +SwarmWaterWildMons: ; 0x2b92f +INCLUDE "data/wild/swarm_water.asm" diff --git a/main.asm b/main.asm index 28e4a04cd..769aa6f22 100644 --- a/main.asm +++ b/main.asm @@ -742,7 +742,7 @@ OakSpeech: ; 0x5f99 ld [TrainerClass], a call Intro_PrepTrainerPic - ld b, $1c + ld b, SCGB_1C call GetSGBLayout call Intro_FadeInFrontpic @@ -763,7 +763,7 @@ OakSpeech: ; 0x5f99 ld [TempMonDVs], a ld [TempMonDVs + 1], a - ld b, $1c + ld b, SCGB_1C call GetSGBLayout call Intro_WipeInFrontpic @@ -780,7 +780,7 @@ OakSpeech: ; 0x5f99 ld [TrainerClass], a call Intro_PrepTrainerPic - ld b, $1c + ld b, SCGB_1C call GetSGBLayout call Intro_FadeInFrontpic @@ -793,7 +793,7 @@ OakSpeech: ; 0x5f99 ld [CurPartySpecies], a callba DrawIntroPlayerPic - ld b, $1c + ld b, SCGB_1C call GetSGBLayout call Intro_FadeInFrontpic @@ -863,7 +863,7 @@ NamePlayer: ; 0x6074 ld [CurPartySpecies], a callba DrawIntroPlayerPic - ld b, $1c + ld b, SCGB_1C call GetSGBLayout call Function4f0 @@ -1102,7 +1102,7 @@ Function6219: ; 6219 ld [hWX], a ld a, $90 ld [hWY], a - ld b, $8 + ld b, SCGB_08 call GetSGBLayout call UpdateTimePals ld a, [wcf64] @@ -10458,7 +10458,7 @@ Function11e9a: ; 11e9a (4:5e9a) ld a, $e3 ld [rLCDC], a call Function11f74 - ld b, $8 + ld b, SCGB_08 call GetSGBLayout call WaitBGMap call WaitTop @@ -13233,7 +13233,7 @@ Function16be4: ; 16be4 ld [TempMonDVs], a ld [TempMonDVs + 1], a - ld b, $1c + ld b, SCGB_1C call GetSGBLayout call SetPalettes @@ -13791,7 +13791,7 @@ Pokepic:: ; 244e3 call MenuBox call UpdateSprites call Function321c - ld b, $12 + ld b, SCGB_12 call GetSGBLayout xor a ld [hBGMapMode], a @@ -15772,7 +15772,7 @@ Function2513b: ; 2513b (9:513b) call Function253b0 call EnableLCD call WaitBGMap - ld b, $15 + ld b, SCGB_15 call GetSGBLayout call SetPalettes call WaitBGMap @@ -18171,1064 +18171,7 @@ Function29fe4: ; unreferenced ret ; 29ff8 -LoadWildMonData: ; 29ff8 - call _GrassWildmonLookup - jr c, .copy - ld hl, wd25a - xor a - ld [hli], a - ld [hli], a - ld [hl], a - jr .done_copy -.copy - inc hl - inc hl - ld de, wd25a - ld bc, $3 - call CopyBytes -.done_copy - call _WaterWildmonLookup - ld a, $0 - jr nc, .no_copy - inc hl - inc hl - ld a, [hl] -.no_copy - ld [wd25d], a - ret - -Function2a01f: ; 2a01f - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - xor a - call ByteFill - ld a, e - and a - jr nz, .kanto - decoord 0, 0 - ld hl, JohtoGrassWildMons - call Function2a052 - ld hl, JohtoWaterWildMons - call Function2a06e - call Function2a0b7 - call Function2a0cf - ret - -.kanto - decoord 0, 0 - ld hl, KantoGrassWildMons - call Function2a052 - ld hl, KantoWaterWildMons - jp Function2a06e -; 2a052 - -Function2a052: ; 2a052 -.loop - ld a, [hl] - cp $ff - ret z - push hl - ld a, [hli] - ld b, a - ld a, [hli] - ld c, a -rept 3 - inc hl -endr - ld a, $15 - call Function2a088 - jr nc, .next - ld [de], a - inc de - -.next - pop hl - ld bc, $2f - add hl, bc - jr .loop -; 2a06e - -Function2a06e: ; 2a06e -.loop - ld a, [hl] - cp $ff - ret z - push hl - ld a, [hli] - ld b, a - ld a, [hli] - ld c, a - inc hl - ld a, $3 - call Function2a088 - jr nc, .next - ld [de], a - inc de - -.next - pop hl - ld bc, 9 - add hl, bc - jr .loop -; 2a088 - -Function2a088: ; 2a088 - inc hl -.loop - push af - ld a, [wd265] - cp [hl] - jr z, .found -rept 2 - inc hl -endr - pop af - dec a - jr nz, .loop - and a - ret - -.found - pop af - jp Function2a09c -; 2a09c - -Function2a09c: ; 2a09c - push de - call GetWorldMapLocation - ld c, a - hlcoord 0, 0 - ld de, SCREEN_WIDTH * SCREEN_HEIGHT -.loop - ld a, [hli] - cp c - jr z, .found - dec de - ld a, e - or d - jr nz, .loop - ld a, c - pop de - scf - ret - -.found - pop de - and a - ret -; 2a0b7 - -Function2a0b7: ; 2a0b7 - ld a, [wRoamMon1Species] - ld b, a - ld a, [wd265] - cp b - ret nz - ld a, [wRoamMon1MapGroup] - ld b, a - ld a, [wRoamMon1MapNumber] - ld c, a - call Function2a09c - ret nc - ld [de], a - inc de - ret -; 2a0cf - -Function2a0cf: ; 2a0cf - ld a, [wRoamMon2Species] - ld b, a - ld a, [wd265] - cp b - ret nz - ld a, [wRoamMon2MapGroup] - ld b, a - ld a, [wRoamMon2MapNumber] - ld c, a - call Function2a09c - ret nc - ld [de], a - inc de - ret -; 2a0e7 - -TryWildEncounter:: ; 2a0e7 -; Try to trigger a wild encounter. - call .EncounterRate - jr nc, .no_battle - call ChooseWildEncounter - jr nz, .no_battle - call CheckRepelEffect - jr nc, .no_battle - xor a - ret - -.no_battle - xor a ; BATTLETYPE_NORMAL - ld [TempWildMonSpecies], a - ld [BattleType], a - ld a, 1 - and a - ret -; 2a103 - -.EncounterRate: ; 2a103 - call GetMapEncounterRate - call ApplyMusicEffectOnEncounterRate - call ApplyCleanseTagEffectOnEncounterRate - call Random - cp b - ret -; 2a111 - -GetMapEncounterRate: ; 2a111 - ld hl, wd25a - call CheckOnWater - ld a, 3 - jr z, .ok - ld a, [TimeOfDay] -.ok - ld c, a - ld b, 0 - add hl, bc - ld b, [hl] - ret -; 2a124 - -ApplyMusicEffectOnEncounterRate:: ; 2a124 -; Pokemon March and Ruins of Alph signal double encounter rate. -; Pokemon Lullaby halves encounter rate. - ld a, [wMapMusic] - cp MUSIC_POKEMON_MARCH - jr z, .double - cp MUSIC_RUINS_OF_ALPH_RADIO - jr z, .double - cp MUSIC_POKEMON_LULLABY - ret nz - srl b - ret - -.double - sla b - ret -; 2a138 - -ApplyCleanseTagEffectOnEncounterRate:: ; 2a138 -; Cleanse Tag halves encounter rate. - ld hl, PartyMon1Item - ld de, PARTYMON_STRUCT_LENGTH - ld a, [PartyCount] - ld c, a -.loop - ld a, [hl] - cp CLEANSE_TAG - jr z, .cleansetag - add hl, de - dec c - jr nz, .loop - ret - -.cleansetag - srl b - ret -; 2a14f - -ChooseWildEncounter: ; 2a14f - call LoadWildMonDataPointer - jp nc, .nowildbattle - call CheckEncounterRoamMon - jp c, .startwildbattle - -rept 3 - inc hl -endr - call CheckOnWater - ld de, .WaterMonTable - jr z, .watermon -rept 2 - inc hl -endr - ld a, [TimeOfDay] - ld bc, $e - call AddNTimes - ld de, .GrassMonTable - -.watermon -; hl contains the pointer to the wild mon data, let's save that to the stack - push hl -.randomloop - call Random - cp 100 - jr nc, .randomloop - inc a ; 1 <= a <= 100 - ld b, a - ld h, d - ld l, e -; This next loop chooses which mon to load up. -.prob_bracket_loop - ld a, [hli] - cp b - jr nc, .got_it - inc hl - jr .prob_bracket_loop - -.got_it - ld c, [hl] - ld b, 0 - pop hl - add hl, bc ; this selects our mon - ld a, [hli] - ld b, a -; If the Pokemon is encountered by surfing, we need to give the levels some variety. - call CheckOnWater - jr nz, .ok -; Check if we buff the wild mon, and by how much. - call Random - cp 35 percent - jr c, .ok - inc b - cp 65 percent - jr c, .ok - inc b - cp 85 percent - jr c, .ok - inc b - cp 95 percent - jr c, .ok - inc b -; Store the level -.ok - ld a, b - ld [CurPartyLevel], a - ld b, [hl] - ; ld a, b - call ValidateTempWildMonSpecies - jr c, .nowildbattle - - ld a, b ; This is in the wrong place. - cp UNOWN - jr nz, .done - - ld a, [UnlockedUnowns] - and a - jr z, .nowildbattle - -.done - jr .loadwildmon - -.nowildbattle - ld a, 1 - and a - ret - -.loadwildmon - ld a, b - ld [TempWildMonSpecies], a - -.startwildbattle - xor a - ret -; 2a1cb - -.GrassMonTable: ; 2a1cb - db 30, $0 ; 30% chance - db 60, $2 ; 30% chance - db 80, $4 ; 20% chance - db 90, $6 ; 10% chance - db 95, $8 ; 5% chance - db 99, $a ; 4% chance - db 100, $c ; 1% chance -; 2a1d9 - -.WaterMonTable: ; 2a1d9 - db 60, $0 ; 60% chance - db 90, $2 ; 30% chance - db 100, $4 ; 10% chance -; 2a1df - -CheckRepelEffect:: ; 2a1df -; If there is no active Repel, there's no need to be here. - ld a, [wRepelEffect] - and a - jr z, .encounter -; Get the first Pokemon in your party that isn't fainted. - ld hl, PartyMon1HP - ld bc, PARTYMON_STRUCT_LENGTH - 1 -.loop - ld a, [hli] - or [hl] - jr nz, .ok - add hl, bc - jr .loop - -.ok -; to PartyMonLevel -rept 4 - dec hl -endr - - ld a, [CurPartyLevel] - cp [hl] - jr nc, .encounter - and a - ret - -.encounter - scf - ret -; 2a200 - -LoadWildMonDataPointer: ; 2a200 - call CheckOnWater - jr z, _WaterWildmonLookup - -_GrassWildmonLookup: ; 2a205 - ld hl, SwarmGrassWildMons - ld bc, GRASS_WILDDATA_LENGTH - call _SwarmWildmonCheck - ret c - ld hl, JohtoGrassWildMons - ld de, KantoGrassWildMons - call _JohtoWildmonCheck - ld bc, GRASS_WILDDATA_LENGTH - jr _NormalWildmonOK - -_WaterWildmonLookup: ; 2a21d - ld hl, SwarmWaterWildMons - ld bc, WATER_WILDDATA_LENGTH - call _SwarmWildmonCheck - ret c - ld hl, JohtoWaterWildMons - ld de, KantoWaterWildMons - call _JohtoWildmonCheck - ld bc, WATER_WILDDATA_LENGTH - jr _NormalWildmonOK - -_JohtoWildmonCheck - call IsInJohto - and a - ret z - ld h, d - ld l, e - ret - -_SwarmWildmonCheck - call CopyCurrMapDE - push hl - ld hl, SwarmFlags - bit 2, [hl] - pop hl - jr z, .CheckYanma - ld a, [wdfcc] - cp d - jr nz, .CheckYanma - ld a, [wdfcd] - cp e - jr nz, .CheckYanma - call LookUpWildmonsForMapDE - jr nc, _NoSwarmWildmon - scf - ret - -.CheckYanma - push hl - ld hl, SwarmFlags - bit 3, [hl] - pop hl - jr z, _NoSwarmWildmon - ld a, [wdc5a] - cp d - jr nz, _NoSwarmWildmon - ld a, [wdc5b] - cp e - jr nz, _NoSwarmWildmon - call LookUpWildmonsForMapDE - jr nc, _NoSwarmWildmon - scf - ret - -_NoSwarmWildmon - and a - ret - -_NormalWildmonOK - call CopyCurrMapDE - jr LookUpWildmonsForMapDE -; 2a27f - -CopyCurrMapDE: ; 2a27f - ld a, [MapGroup] - ld d, a - ld a, [MapNumber] - ld e, a - ret -; 2a288 - -LookUpWildmonsForMapDE: ; 2a288 - push hl - ld a, [hl] - inc a - jr z, .nope - ld a, d - cp [hl] - jr nz, .next - inc hl - ld a, e - cp [hl] - jr z, .yup - -.next - pop hl - add hl, bc - jr LookUpWildmonsForMapDE - -.nope - pop hl - and a - ret - -.yup - pop hl - scf - ret -; 2a2a0 - - -InitRoamMons: ; 2a2a0 -; initialize wRoamMon structs - -; species - ld a, RAIKOU - ld [wRoamMon1Species], a - ld a, ENTEI - ld [wRoamMon2Species], a -; ld a, SUICUNE -; ld [wRoamMon3Species], a - -; level - ld a, 40 - ld [wRoamMon1Level], a - ld [wRoamMon2Level], a -; ld [wRoamMon3Level], a - -; raikou starting map - ld a, GROUP_ROUTE_42 - ld [wRoamMon1MapGroup], a - ld a, MAP_ROUTE_42 - ld [wRoamMon1MapNumber], a - -; entei starting map - ld a, GROUP_ROUTE_37 - ld [wRoamMon2MapGroup], a - ld a, MAP_ROUTE_37 - ld [wRoamMon2MapNumber], a - -; suicune starting map -; ld a, GROUP_ROUTE_38 -; ld [wRoamMon3MapGroup], a -; ld a, MAP_ROUTE_38 -; ld [wRoamMon3MapNumber], a - -; hp - xor a ; generate new stats - ld [wRoamMon1HP], a - ld [wRoamMon2HP], a -; ld [wRoamMon3HP], a - - ret -; 2a2ce - - -CheckEncounterRoamMon: ; 2a2ce - push hl -; Don't trigger an encounter if we're on water. - call CheckOnWater - jr z, .DontEncounterRoamMon -; Load the current map group and number to de - call CopyCurrMapDE -; Randomly select a beast. - call Random - cp 100 ; 25/64 chance - jr nc, .DontEncounterRoamMon - and %00000011 ; Of that, a 3/4 chance. Running total: 75/256, or around 29.3%. - jr z, .DontEncounterRoamMon - dec a ; 1/3 chance that it's Entei, 1/3 chance that it's Raikou -; Compare its current location with yours - ld hl, wRoamMon1MapGroup - ld c, a - ld b, 0 - ld a, 7 ; length of the RoamMon struct - call AddNTimes - ld a, d - cp [hl] - jr nz, .DontEncounterRoamMon - inc hl - ld a, e - cp [hl] - jr nz, .DontEncounterRoamMon -; We've decided to take on a beast, so stage its information for battle. -rept 3 - dec hl -endr - ld a, [hli] - ld [TempWildMonSpecies], a - ld a, [hl] - ld [CurPartyLevel], a - ld a, BATTLETYPE_ROAMING - ld [BattleType], a - - pop hl - scf - ret - -.DontEncounterRoamMon - pop hl - and a - ret -; 2a30d - - -UpdateRoamMons: ; 2a30d - ld a, [wRoamMon1MapGroup] - cp GROUP_N_A - jr z, .SkipRaikou - ld b, a - ld a, [wRoamMon1MapNumber] - ld c, a - call .Update - ld a, b - ld [wRoamMon1MapGroup], a - ld a, c - ld [wRoamMon1MapNumber], a - -.SkipRaikou - ld a, [wRoamMon2MapGroup] - cp GROUP_N_A - jr z, .SkipEntei - ld b, a - ld a, [wRoamMon2MapNumber] - ld c, a - call .Update - ld a, b - ld [wRoamMon2MapGroup], a - ld a, c - ld [wRoamMon2MapNumber], a - -.SkipEntei - ld a, [wRoamMon3MapGroup] - cp GROUP_N_A - jr z, .SkipSuicune - ld b, a - ld a, [wRoamMon3MapNumber] - ld c, a - call .Update - ld a, b - ld [wRoamMon3MapGroup], a - ld a, c - ld [wRoamMon3MapNumber], a - -.SkipSuicune - jp _BackUpMapIndices -; 2a355 - - -.Update: ; 2a355 - ld hl, RoamMaps -.loop -; Are we at the end of the table? - ld a, [hl] - cp -1 - ret z -; Is this the correct entry? - ld a, b - cp [hl] - jr nz, .next - inc hl - ld a, c - cp [hl] - jr z, .yes -; We don't have the correct entry yet, so let's continue. A 0 terminates each entry. -.next - ld a, [hli] - and a - jr nz, .next - jr .loop - -; We have the correct entry now, so let's choose a random map from it. -.yes - inc hl - ld d, h - ld e, l -.update_loop - ld h, d - ld l, e -; Choose which map to warp to. - call Random - and $1f ; 1/8n chance it moves to a completely random map, where n is the number of roaming connections from the current map. - jr z, JumpRoamMon - and 3 - cp [hl] - jr nc, .update_loop ; invalid index, try again - inc hl - ld c, a - ld b, $0 -rept 2 - add hl, bc -endr - ld a, [wdfe7] - cp [hl] - jr nz, .done - inc hl - ld a, [wdfe6] - cp [hl] - jr z, .update_loop - dec hl - -.done - ld a, [hli] - ld b, a - ld c, [hl] - ret - -JumpRoamMons: ; 2a394 - ld a, [wRoamMon1MapGroup] - cp GROUP_N_A - jr z, .SkipRaikou - call JumpRoamMon - ld a, b - ld [wRoamMon1MapGroup], a - ld a, c - ld [wRoamMon1MapNumber], a -.SkipRaikou - - ld a, [wRoamMon2MapGroup] - cp GROUP_N_A - jr z, .SkipEntei - call JumpRoamMon - ld a, b - ld [wRoamMon2MapGroup], a - ld a, c - ld [wRoamMon2MapNumber], a -.SkipEntei - - ld a, [wRoamMon3MapGroup] - cp GROUP_N_A - jr z, .SkipSuicune - call JumpRoamMon - ld a, b - ld [wRoamMon3MapGroup], a - ld a, c - ld [wRoamMon3MapNumber], a -.SkipSuicune - - jp _BackUpMapIndices - -JumpRoamMon: ; 2a3cd -.loop - ld hl, RoamMaps -.innerloop1 ; This loop is completely unnecessary. - call Random ; Choose a random number - and $f ; Take the lower nybble only. This gives a number between 0 and 15. - cp $10 ; If the number is greater than or equal to 16, loop back and try again. - jr nc, .innerloop1 ; I'm sure you can guess why this check is bogus. - inc a - ld b, a -.innerloop2 ; Loop to get hl to the address of the chosen roam map. - dec b - jr z, .ok -.innerloop3 ; Loop to skip the current roam map, which is terminated by a 0. - ld a, [hli] - and a - jr nz, .innerloop3 - jr .innerloop2 -; Check to see if the selected map is the one the player is currently in. If so, try again. -.ok - ld a, [MapGroup] - cp [hl] - jr nz, .done - inc hl - ld a, [MapNumber] - cp [hl] - jr z, .loop - dec hl -; Return the map group and number in bc. -.done - ld a, [hli] - ld b, a - ld c, [hl] - ret -; 2a3f6 - -_BackUpMapIndices: ; 2a3f6 - ld a, [wdfe4] - ld [wdfe6], a - ld a, [wdfe5] - ld [wdfe7], a - ld a, [MapNumber] - ld [wdfe4], a - ld a, [MapGroup] - ld [wdfe5], a - ret -; 2a40f - -RoamMaps: ; 2a40f -; Maps that roaming monsters can be on, -; and possible maps they can jump to. -; Notably missing are Route 40 and -; Route 41, which are water routes. - roam_map ROUTE_29, 2, ROUTE_30, ROUTE_46 - roam_map ROUTE_30, 2, ROUTE_29, ROUTE_31 - roam_map ROUTE_31, 3, ROUTE_30, ROUTE_32, ROUTE_36 - roam_map ROUTE_32, 3, ROUTE_36, ROUTE_31, ROUTE_33 - roam_map ROUTE_33, 2, ROUTE_32, ROUTE_34 - roam_map ROUTE_34, 2, ROUTE_33, ROUTE_35 - roam_map ROUTE_35, 2, ROUTE_34, ROUTE_36 - roam_map ROUTE_36, 4, ROUTE_35, ROUTE_31, ROUTE_32, ROUTE_37 - roam_map ROUTE_37, 3, ROUTE_36, ROUTE_38, ROUTE_42 - roam_map ROUTE_38, 3, ROUTE_37, ROUTE_39, ROUTE_42 - roam_map ROUTE_39, 1, ROUTE_38 - roam_map ROUTE_42, 4, ROUTE_43, ROUTE_44, ROUTE_37, ROUTE_38 - roam_map ROUTE_43, 2, ROUTE_42, ROUTE_44 - roam_map ROUTE_44, 3, ROUTE_42, ROUTE_43, ROUTE_45 - roam_map ROUTE_45, 2, ROUTE_44, ROUTE_46 - roam_map ROUTE_46, 2, ROUTE_45, ROUTE_29 - db -1 -; 2a4a0 - -ValidateTempWildMonSpecies: ; 2a4a0 -; Due to a development oversight, this function is called with the wild Pokemon's level, not its species, in a. - and a - jr z, .nowildmon ; = 0 - cp NUM_POKEMON + 1 ; 252 - jr nc, .nowildmon ; >= 252 - and a ; 1 <= Species <= 251 - ret - -.nowildmon - scf - ret -; 2a4ab - -RandomPhoneRareWildMon: ; 2a4ab -; Related to the phone? - callba GetCallerLocation - ld d, b - ld e, c - ld hl, JohtoGrassWildMons - ld bc, GRASS_WILDDATA_LENGTH - call LookUpWildmonsForMapDE - jr c, .GetGrassmon - ld hl, KantoGrassWildMons - call LookUpWildmonsForMapDE - jr nc, .done - -.GetGrassmon - push hl - ld bc, 5 + 4 * 2 ; Location of the level of the 5th wild Pokemon in that map - add hl, bc - ld a, [TimeOfDay] - ld bc, 7 * 2 - call AddNTimes -.randloop1 - call Random - and $3 - jr z, .randloop1 - dec a - ld c, a - ld b, $0 -rept 2 - add hl, bc -endr -; We now have the pointer to one of the last (rarest) three wild Pokemon found in that area. - inc hl - ld c, [hl] ; Contains the species index of this rare Pokemon - pop hl - ld de, 5 + 0 * 2 - add hl, de - inc hl ; Species index of the most common Pokemon on that route - ld b, 4 -.loop2 - ld a, [hli] - cp c ; Compare this most common Pokemon with the rare one stored in c. - jr z, .done - inc hl - dec b - jr nz, .loop2 -; This Pokemon truly is rare. - push bc - dec c - ld a, c - call CheckSeenMon - pop bc - jr nz, .done -; Since we haven't seen it, have the caller tell us about it. - ld de, StringBuffer1 - call CopyName1 - ld a, c - ld [wd265], a - call GetPokemonName - ld hl, UnknownText_0x2a51a - call PrintText - xor a - ld [ScriptVar], a - ret - -.done - ld a, $1 - ld [ScriptVar], a - ret -; 2a51a - -UnknownText_0x2a51a: ; 0x2a51a - ; I just saw some rare @ in @ . I'll call you if I see another rare #MON, OK? - text_jump UnknownText_0x1bd34b - db "@" -; 0x2a51f - -RandomPhoneWildMon: ; 2a51f - callba GetCallerLocation - ld d, b - ld e, c - ld hl, JohtoGrassWildMons - ld bc, GRASS_WILDDATA_LENGTH - call LookUpWildmonsForMapDE - jr c, .ok - ld hl, KantoGrassWildMons - call LookUpWildmonsForMapDE - -.ok - ld bc, 5 + 0 * 2 - add hl, bc - ld a, [TimeOfDay] - inc a - ld bc, 7 * 2 -.loop - dec a - jr z, .done - add hl, bc - jr .loop - -.done - call Random - and $3 - ld c, a - ld b, $0 -rept 2 - add hl, bc -endr - inc hl - ld a, [hl] - ld [wd265], a - call GetPokemonName - ld hl, StringBuffer1 - ld de, StringBuffer4 - ld bc, PKMN_NAME_LENGTH - jp CopyBytes -; 2a567 - -RandomPhoneMon: ; 2a567 -; Get a random monster owned by the trainer who's calling. - callba GetCallerLocation - ld hl, TrainerGroups - ld a, d - dec a - ld c, a - ld b, 0 -rept 2 - add hl, bc -endr - ld a, BANK(TrainerGroups) - call GetFarHalfword - -.skip_trainer - dec e - jr z, .skipped -.skip - ld a, BANK(Trainers) - call GetFarByte - inc hl - cp -1 - jr nz, .skip - jr .skip_trainer -.skipped - -.skip_name - ld a, BANK(Trainers) - call GetFarByte - inc hl - cp "@" - jr nz, .skip_name - - ld a, BANK(Trainers) - call GetFarByte - inc hl - ld bc, 2 - cp 0 - jr z, .got_mon_length - ld bc, 2 + NUM_MOVES - cp 1 - jr z, .got_mon_length - ld bc, 2 + 1 - cp 2 - jr z, .got_mon_length - ld bc, 2 + 1 + NUM_MOVES -.got_mon_length - - ld e, 0 - push hl -.count_mon - inc e - add hl, bc - ld a, BANK(Trainers) - call GetFarByte - cp -1 - jr nz, .count_mon - pop hl - -.rand - call Random - and 7 - cp e - jr nc, .rand - - inc a -.get_mon - dec a - jr z, .got_mon - add hl, bc - jr .get_mon -.got_mon - - inc hl ; species - ld a, BANK(Trainers) - call GetFarByte - ld [wd265], a - call GetPokemonName - ld hl, StringBuffer1 - ld de, StringBuffer4 - ld bc, PKMN_NAME_LENGTH - jp CopyBytes -; 2a5e9 - - -JohtoGrassWildMons: ; 0x2a5e9 -INCLUDE "data/wild/johto_grass.asm" - -JohtoWaterWildMons: ; 0x2b11d -INCLUDE "data/wild/johto_water.asm" - -KantoGrassWildMons: ; 0x2b274 -INCLUDE "data/wild/kanto_grass.asm" - -KantoWaterWildMons: ; 0x2b7f7 -INCLUDE "data/wild/kanto_water.asm" - -SwarmGrassWildMons: ; 0x2b8d0 -INCLUDE "data/wild/swarm_grass.asm" - -SwarmWaterWildMons: ; 0x2b92f -INCLUDE "data/wild/swarm_water.asm" - +INCLUDE "engine/wildmons.asm" DetermineLinkBattleResult: ; 2b930 callba UpdateEnemyMonInParty @@ -19672,7 +18615,7 @@ _ShowLinkBattleParticipants: ; 2c1b2 ld [hli], a ld [hl], $6a callba Function2c10d ; no need to callba - ld b, $8 + ld b, SCGB_08 call GetSGBLayout call SetPalettes ld a, $e4 @@ -23856,7 +22799,7 @@ Function4820d: ; 4820d (12:420d) call Function48d30 pop bc call ClearTileMap - ld b, $8 + ld b, SCGB_08 call GetSGBLayout ld hl, wd479 set 1, [hl] @@ -25549,7 +24492,7 @@ Function4925b: ; 4925b call ClearBGPalettes call ClearScreen call DelayFrame - ld b, $14 + ld b, SCGB_14 call GetSGBLayout xor a ld [wItemAttributeParamBuffer], a @@ -26643,7 +25586,7 @@ MainMenu: ; 49cdc xor a ld [wc2d7], a call Function49ed0 - ld b, $8 + ld b, SCGB_08 call GetSGBLayout call SetPalettes ld hl, GameTimerPause @@ -27847,7 +26790,7 @@ Function4a6ab: ; 4a6ab (12:66ab) ld a, $2 call Function1ff8 call ClearBGPalettes - ld b, $8 + ld b, SCGB_08 call GetSGBLayout callba Function11c1ab pop bc @@ -28353,7 +27296,7 @@ Function4a94e: ; 4a94e xor a ld [wd018], a ld [wd019], a - ld b, $14 + ld b, SCGB_14 call GetSGBLayout call SetPalettes call Function4aa22 @@ -29659,7 +28602,7 @@ Function4d3ab: ; 4d3ab _ResetClock: ; 4d3b1 callba Function8000 - ld b, $8 + ld b, SCGB_08 call GetSGBLayout call LoadStandardFont call LoadFontsExtra @@ -29935,7 +28878,7 @@ ClockResetPassword: ; 4d41e Function4d54c: ; 4d54c callba Function8000 - ld b, $8 + ld b, SCGB_08 call GetSGBLayout call LoadStandardFont call LoadFontsExtra @@ -30078,7 +29021,7 @@ Function4d81e: ; 4d81e ld [TempMonDVs], a ld a, [wPlayerWrapCount] ld [TempMonDVs + 1], a - ld b, $1a + ld b, SCGB_1A call GetSGBLayout ld a, $e4 call DmgToCgbBGPals @@ -31168,7 +30111,7 @@ Function4df45: ; 4df45 (13:5f45) callba DrawPartyMenuHPBar ld hl, wcda1 call SetHPPal - ld b, $3 + ld b, SCGB_03 call GetSGBLayout call DelayFrame ret @@ -31714,7 +30657,7 @@ EggStatsScreen: ; 4e33a ld [hBGMapMode], a ld hl, wcda1 call SetHPPal - ld b, $3 + ld b, SCGB_03 call GetSGBLayout call Function4df8f ld de, EggString @@ -38423,7 +37366,7 @@ endr call WaitBGMap xor a ld [hBGMapMode], a - ld b, $1a + ld b, SCGB_1A call GetSGBLayout call SetPalettes call Function86635 @@ -38561,7 +37504,7 @@ Function86692: ; 86692 ld de, String_866fb call PlaceString call WaitBGMap - ld b, $1a + ld b, SCGB_1A call GetSGBLayout call SetPalettes decoord 6, 5 @@ -38722,7 +37665,7 @@ Function86810: ; 86810 xor a ld [hBGMapMode], a ld [CurPartySpecies], a - ld b, $1a + ld b, SCGB_1A call GetSGBLayout call SetPalettes call Function86635 @@ -39127,7 +38070,7 @@ BlindingFlash: ; 8c7e1 set 2, [hl] callba Function8c0e5 callba Function8c001 - ld b, $9 + ld b, SCGB_09 call GetSGBLayout callba Function49409 callba FadeInPalettes @@ -40018,7 +38961,7 @@ Function8ceae: ; 8ceae ld [TimeOfDayPal], a ld a, $1 ld [wPermission], a - ld b, $9 + ld b, SCGB_09 call GetSGBLayout call UpdateTimePals ld a, [rBGP] @@ -40628,7 +39571,7 @@ InitClock: ; 90672 (24:4672) call Function4dd call ClearTileMap call ClearSprites - ld b, $8 + ld b, SCGB_08 call GetSGBLayout xor a ld [hBGMapMode], a @@ -41458,7 +40401,7 @@ Function90bea: ; 90bea (24:4bea) ld [wc6db], a call Function90d9e call Function90da8 - ld b, $2 + ld b, SCGB_02 call GetSGBLayout call SetPalettes ld a, [hCGB] @@ -42803,419 +41746,7 @@ INCBIN "gfx/unknown/0915db.tilemap.rle" ; 9163e INCLUDE "engine/radio2.asm" - -Function9191c: ; 9191c - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - ld a, [VramState] - push af - xor a - ld [VramState], a - call ClearBGPalettes - call ClearTileMap - call ClearSprites - call DisableLCD - call Function90c4e - callba Function8cf53 - ld a, 8 - call SkipMusic - ld a, $e3 - ld [rLCDC], a - call Function90d56 - ld [wd002], a - ld [wd003], a - xor a - ld [hBGMapMode], a - call Function91a04 - call Function3200 - ld a, [wd002] - call Function9106a - ld a, [wd003] - call Function91098 - ld a, c - ld [wd004], a - ld a, b - ld [wd005], a - ld b, $2 - call GetSGBLayout - call SetPalettes - ld a, [hCGB] - and a - jr z, .asm_9198b - ld a, $e4 - call Functioncf8 - call DelayFrame - -.asm_9198b - ld a, [wd002] - cp KANTO_LANDMARK - jr nc, .asm_9199b - ld d, KANTO_LANDMARK - 1 - ld e, 1 - call Function919b0 - jr .asm_919a1 - -.asm_9199b - call Function910e8 - call Function919b0 - -.asm_919a1 - pop af - ld [VramState], a - pop af - ld [hInMenu], a - pop af - ld [Options], a - call ClearBGPalettes - ret -; 919b0 - -Function919b0: ; 919b0 -.asm_919b0 - call JoyTextDelay - ld hl, hJoyPressed - ld a, [hl] - and B_BUTTON - ret nz - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .asm_919d4 - ld a, [hl] - and D_DOWN - jr nz, .asm_919e1 -.asm_919c7 - push de - callba Function8cf69 - pop de - call DelayFrame - jr .asm_919b0 - -.asm_919d4 - ld hl, wd003 - ld a, [hl] - cp d - jr c, .asm_919de - ld a, e - dec a - ld [hl], a - -.asm_919de - inc [hl] - jr .asm_919ec - -.asm_919e1 - ld hl, wd003 - ld a, [hl] - cp e - jr nz, .asm_919eb - ld a, d - inc a - ld [hl], a - -.asm_919eb - dec [hl] - -.asm_919ec - push de - ld a, [wd003] - call Function910b4 - ld a, [wd004] - ld c, a - ld a, [wd005] - ld b, a - ld a, [wd003] - call Function910d4 - pop de - jr .asm_919c7 -; 91a04 - -Function91a04: ; 91a04 - ld a, [wd002] - cp KANTO_LANDMARK - jr nc, .asm_91a0f - ld e, $0 - jr .asm_91a11 - -.asm_91a0f - ld e, $1 - -.asm_91a11 - callba Function91ae1 - ld a, $7 - ld bc, 6 - hlcoord 1, 0 - call ByteFill - hlcoord 0, 0 - ld [hl], $6 - hlcoord 7, 0 - ld [hl], $17 - hlcoord 7, 1 - ld [hl], $16 - hlcoord 7, 2 - ld [hl], $26 - ld a, $7 - ld bc, NAME_LENGTH - hlcoord 8, 2 - call ByteFill - hlcoord 19, 2 - ld [hl], $17 - ld a, [wd003] - call Function910b4 - callba TownMapPals - ret -; 91a53 - -PlayRadio: ; 91a53 - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - call .PlayStation - ld c, 100 - call DelayFrames -.loop - call JoyTextDelay - ld a, [hJoyPressed] - and A_BUTTON | B_BUTTON - jr nz, .stop - ld a, [wc6da] - ld l, a - ld a, [wc6db] - ld h, a - ld a, [wc6d9] - and a - jr z, .zero - rst FarCall - -.zero - call DelayFrame - jr .loop - -.stop - pop af - ld [Options], a - call Function91492 - ret -; 91a87 - -.PlayStation: ; 91a87 - ld a, -1 - ld [EnemyTurnsTaken], a - ld hl, .StationPointers - ld d, $0 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - ld de, .jump_return - push de - jp [hl] - -.jump_return - push de - hlcoord 0, 12 - lb bc, 4, 18 - call TextBox - hlcoord 1, 14 - ld [hl], $72 - pop de - hlcoord 2, 14 - call PlaceString - ld h, b - ld l, c - ld [hl], $73 - call WaitBGMap - ret -; 91ab9 - -.StationPointers: ; 91ab9 - dw Function91acb - dw LoadStation_OaksPokemonTalk - dw LoadStation_PokedexShow - dw LoadStation_PokemonMusic - dw LoadStation_LuckyChannel - dw LoadStation_UnownRadio - dw LoadStation_PlacesAndPeople - dw LoadStation_LetsAllSing - dw LoadStation_RocketRadio -; 91acb - -Function91acb: ; 91acb - call IsInJohto - and a - jr nz, .kanto - call UpdateTime - ld a, [TimeOfDay] - and a - jp z, LoadStation_PokedexShow - jp LoadStation_OaksPokemonTalk - -.kanto - jp LoadStation_PlacesAndPeople -; 91ae1 - -Function91ae1: ; 91ae1 - ld a, e - and a - jr nz, .kanto - call Function91ff2 - call FillJohtoMap - ret - -.kanto - call Function91ff2 - call FillKantoMap - ret -; 91af3 - - -INCLUDE "engine/flypoints.asm" - -Function92311: ; unreferenced - xor a - ld [wd002], a - call ClearBGPalettes - call ClearTileMap - call ClearSprites - ld hl, hInMenu - ld a, [hl] - push af - ld [hl], $1 - xor a - ld [hBGMapMode], a - callba Function8cf53 - call Function91ff2 - ld de, GFX_922e1 - ld hl, VTiles2 tile $30 - lb bc, BANK(GFX_922e1), 6 - call Request1bpp - call FillKantoMap - call TownMapBubble - call TownMapPals - ld hl, VBGMap1 - call TownMapBGUpdate - call FillJohtoMap - call TownMapBubble - call TownMapPals - ld hl, VBGMap0 - call TownMapBGUpdate - call TownMapMon - ld a, c - ld [wd003], a - ld a, b - ld [wd004], a - ld b, $2 - call GetSGBLayout - call SetPalettes -.loop - call JoyTextDelay - ld hl, hJoyPressed - ld a, [hl] - and B_BUTTON - jr nz, .pressedB - ld a, [hl] - and A_BUTTON - jr nz, .pressedA - call Function923b8 - call GetMapCursorCoordinates - callba Function8cf69 - call DelayFrame - jr .loop - -.pressedB - ld a, -1 - jr .asm_9239f - -.pressedA - ld a, [wd002] - ld l, a - ld h, 0 - add hl, hl - ld de, Flypoints + 1 - add hl, de - ld a, [hl] - -.asm_9239f - ld [wd002], a - pop af - ld [hInMenu], a - call ClearBGPalettes - ld a, $90 - ld [hWY], a - xor a - ld [hBGMapAddress], a - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - ld a, [wd002] - ld e, a - ret -; 923b8 - -Function923b8: ; 923b8 - ld hl, hJoyLast - ld a, [hl] - and D_DOWN | D_RIGHT - jr nz, .asm_923c6 - ld a, [hl] - and D_UP | D_LEFT - jr nz, .asm_923d3 - ret - -.asm_923c6 - ld hl, wd002 - ld a, [hl] - cp FLY_INDIGO - jr c, .asm_923d0 - ld [hl], -1 -.asm_923d0 - inc [hl] - jr .asm_923dd - -.asm_923d3 - ld hl, wd002 - ld a, [hl] - and a - jr nz, .asm_923dc - ld [hl], FLY_INDIGO + 1 -.asm_923dc - dec [hl] - -.asm_923dd - ld a, [wd002] - cp KANTO_FLYPOINT - jr c, .johto - - call FillKantoMap - xor a - ld b, $9c - jr .asm_923f3 - -.johto - call FillJohtoMap - ld a, $90 - ld b, $98 - -.asm_923f3 - ld [hWY], a - ld a, b - ld [hBGMapAddress + 1], a - call TownMapBubble - call WaitBGMap - xor a - ld [hBGMapMode], a - ret -; 92402 - - +INCLUDE "engine/town_map.asm" INCLUDE "data/wild/fish.asm" INCLUDE "engine/slot_machine.asm" @@ -44541,7 +43072,7 @@ DisplayCaughtContestMonStats: ; cc000 ld [Options], a call WaitBGMap - ld b, $8 + ld b, SCGB_08 call GetSGBLayout call SetPalettes ret @@ -44778,571 +43309,7 @@ CopyrightGFX:: ; e4000 INCBIN "gfx/misc/copyright.2bpp" ; e41d0 -_OptionsMenu: ; e41d0 - ld hl, hInMenu - ld a, [hl] - push af - ld [hl], $1 - call ClearBGPalettes - hlcoord 0, 0 - ld b, $10 - ld c, $12 - call TextBox - hlcoord 2, 2 - ld de, StringOptions - call PlaceString - xor a - ld [wJumptableIndex], a - ld c, $6 ;number of items on the menu minus 1 (for cancel) -.asm_e41f3 ;this next will display the settings of each option when the menu is opened - push bc - xor a - ld [hJoyLast], a - call GetOptionPointer - pop bc - ld hl, wJumptableIndex - inc [hl] - dec c - jr nz, .asm_e41f3 - call Functione4512 - xor a - ld [wJumptableIndex], a - inc a - ld [hBGMapMode], a - call WaitBGMap - ld b, $8 - call GetSGBLayout - call SetPalettes -.asm_e4217 - call JoyTextDelay - ld a, [hJoyPressed] - and START | B_BUTTON - jr nz, .ExitOptions - call OptionsControl - jr c, .asm_e422a - call GetOptionPointer - jr c, .ExitOptions - -.asm_e422a - call Functione455c - ld c, 3 - call DelayFrames - jr .asm_e4217 - -.ExitOptions - ld de, SFX_TRANSACTION - call PlaySFX - call WaitSFX - pop af - ld [hInMenu], a - ret -; e4241 - -StringOptions: ; e4241 - db "TEXT SPEED", $22 - db " :", $22 - db "BATTLE SCENE", $22 - db " :", $22 - db "BATTLE STYLE", $22 - db " :", $22 - db "SOUND", $22 - db " :", $22 - db "PRINT", $22 - db " :", $22 - db "MENU ACCOUNT", $22 - db " :", $22 - db "FRAME", $22 - db " :TYPE", $22 - db "CANCEL@" -; e42d6 - - -GetOptionPointer: ; e42d6 - ld a, [wJumptableIndex] ;load the cursor position to a - ld e, a ;copy it to de - ld d, 0 - ld hl, .Pointers -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] ;jump to the code of the current highlighted item -; e42e5 - -.Pointers - dw Options_TextSpeed - dw Options_BattleScene - dw Options_BattleStyle - dw Options_Sound - dw Options_Print - dw Options_MenuAccount - dw Options_Frame - dw Options_Cancel -; e42f5 - - -Options_TextSpeed: ; e42f5 - call GetTextSpeed - ld a, [hJoyPressed] - bit 5, a - jr nz, .LeftPressed - bit 4, a - jr z, .NonePressed - ld a, c ;right pressed - cp $2 - jr c, .Increase - ld c, $ff - -.Increase - inc c - ld a, e - jr .Save - -.LeftPressed - ld a, c - and a - jr nz, .Decrease - ld c, $3 - -.Decrease - dec c - ld a, d - -.Save - ld b, a - ld a, [Options] - and $f0 - or b - ld [Options], a - -.NonePressed - ld b, 0 - ld hl, .Strings -rept 2 - add hl, bc -endr - ld e, [hl] - inc hl - ld d, [hl] - hlcoord 11, 3 - call PlaceString - and a - ret -; e4331 - -.Strings - dw .Fast - dw .Mid - dw .Slow - -.Fast - db "FAST@" -.Mid - db "MID @" -.Slow - db "SLOW@" -; e4346 - - -GetTextSpeed: ; e4346 - ld a, [Options] ;This converts the number of frames, to 0,1,2 representing speed - and 7 - cp 5 ;5 frames of delay is slow - jr z, .slow - cp 1 ;1 frame of delay is fast - jr z, .fast - ld c, 1 ;set it to mid if not one of the above - lb de, 1, 5 - ret - -.slow - ld c, 2 - lb de, 3, 1 - ret - -.fast - ld c, 0 - lb de, 5, 3 - ret -; e4365 - - -Options_BattleScene: ; e4365 - ld hl, Options - ld a, [hJoyPressed] - bit 5, a - jr nz, .LeftPressed - bit 4, a - jr z, .NonePressed - bit 7, [hl] - jr nz, .ToggleOn - jr .ToggleOff - -.LeftPressed - bit 7, [hl] - jr z, .ToggleOff - jr .ToggleOn - -.NonePressed - bit 7, [hl] - jr z, .ToggleOn - jr .ToggleOff - -.ToggleOn - res 7, [hl] - ld de, .On - jr .Display - -.ToggleOff - set 7, [hl] - ld de, .Off - -.Display - hlcoord 11, 5 - call PlaceString - and a - ret -; e4398 - -.On - db "ON @" -.Off - db "OFF@" -; e43a0 - - -Options_BattleStyle: ; e43a0 - ld hl, Options - ld a, [hJoyPressed] - bit 5, a - jr nz, .LeftPressed - bit 4, a - jr z, .NonePressed - bit 6, [hl] - jr nz, .ToggleShift - jr .ToggleSet - -.LeftPressed - bit 6, [hl] - jr z, .ToggleSet - jr .ToggleShift - -.NonePressed - bit 6, [hl] - jr nz, .ToggleSet - -.ToggleShift - res 6, [hl] - ld de, .Shift - jr .Display - -.ToggleSet - set 6, [hl] - ld de, .Set - -.Display - hlcoord 11, 7 - call PlaceString - and a - ret -; e43d1 - -.Shift - db "SHIFT@" -.Set - db "SET @" -; e43dd - - -Options_Sound: ; e43dd - ld hl, Options - ld a, [hJoyPressed] - bit 5, a - jr nz, .LeftPressed - bit 4, a - jr z, .NonePressed - bit 5, [hl] - jr nz, .SetMono - jr .SetStereo - -.LeftPressed - bit 5, [hl] - jr z, .SetStereo - jr .SetMono - -.NonePressed - bit 5, [hl] - jr nz, .ToggleStereo - jr .ToggleMono - -.SetMono - res 5, [hl] - call RestartMapMusic - -.ToggleMono - ld de, .Mono - jr .Display - -.SetStereo - set 5, [hl] - call RestartMapMusic - -.ToggleStereo - ld de, .Stereo - -.Display - hlcoord 11, 9 - call PlaceString - and a - ret -; e4416 - -.Mono - db "MONO @" -.Stereo - db "STEREO@" -; e4424 - - -Options_Print: ; e4424 - call GetPrinterSetting - ld a, [hJoyPressed] - bit 5, a - jr nz, .LeftPressed - bit 4, a - jr z, .NonePressed - ld a, c - cp $4 - jr c, .Increase - ld c, $ff - -.Increase - inc c - ld a, e - jr .Save - -.LeftPressed - ld a, c - and a - jr nz, .Decrease - ld c, $5 - -.Decrease - dec c - ld a, d - -.Save - ld b, a - ld [GBPrinter], a - -.NonePressed - ld b, $0 - ld hl, .Strings -rept 2 - add hl, bc -endr - ld e, [hl] - inc hl - ld d, [hl] - hlcoord 11, 11 - call PlaceString - and a - ret -; e445a - -.Strings - dw .Lightest - dw .Lighter - dw .Normal - dw .Darker - dw .Darkest - -.Lightest - db "LIGHTEST@" -.Lighter - db "LIGHTER @" -.Normal - db "NORMAL @" -.Darker - db "DARKER @" -.Darkest - db "DARKEST @" -; e4491 - - -GetPrinterSetting: ; e4491 - ld a, [GBPrinter] ;converts from the stored printer setting to 0,1,2,3,4 - and a - jr z, .IsLightest - cp $20 - jr z, .IsLight - cp $60 - jr z, .IsDark - cp $7f - jr z, .IsDarkest - ld c, $2 ;normal if none of the above - ld de, $2060 ;the 2 values next to this setting - ret - -.IsLightest - ld c, $0 - ld de, $7f20 ;the 2 values next to this setting - ret - -.IsLight - ld c, $1 - ld de, $40 ;the 2 values next to this setting - ret - -.IsDark - ld c, $3 - ld de, $407f ;the 2 values next to this setting - ret - -.IsDarkest - ld c, $4 - ld de, $6000 ;the 2 values next to this setting - ret -; e44c1 - -Options_MenuAccount: ; e44c1 - ld hl, Options2 - ld a, [hJoyPressed] - bit 5, a - jr nz, .LeftPressed - bit 4, a - jr z, .NonePressed - bit 0, [hl] - jr nz, .ToggleOff - jr .ToggleOn - -.LeftPressed - bit 0, [hl] - jr z, .ToggleOn - jr .ToggleOff - -.NonePressed - bit 0, [hl] - jr nz, .ToggleOn - -.ToggleOff - res 0, [hl] - ld de, .Off - jr .Display - -.ToggleOn - set 0, [hl] - ld de, .On - -.Display - hlcoord 11, 13 - call PlaceString - and a - ret -; e44f2 - -.Off - db "OFF@" -.On - db "ON @" -; e44fa - - -Options_Frame: ; e44fa - ld hl, TextBoxFrame - ld a, [hJoyPressed] - bit 5, a - jr nz, .LeftPressed - bit 4, a - jr nz, .RightPressed - and a - ret - -.RightPressed - ld a, [hl] - inc a - jr .Save - -.LeftPressed - ld a, [hl] - dec a - -.Save - and $7 - ld [hl], a - ; fallthrough -; e4512 - -Functione4512: ; e4512 - ld a, [TextBoxFrame] - hlcoord 16, 15 ;where on the screen the number is drawn - add "1" - ld [hl], a - call LoadFontsExtra - and a - ret -; e4520 - -Options_Cancel: ; e4520 - ld a, [hJoyPressed] - and A_BUTTON - jr nz, .Exit - and a - ret - -.Exit - scf - ret -; e452a - -OptionsControl: ; e452a - ld hl, wJumptableIndex - ld a, [hJoyLast] - cp D_DOWN - jr z, .DownPressed - cp D_UP - jr z, .UpPressed - and a - ret - -.DownPressed - ld a, [hl] ;load the cursor position to a - cp $7 ;maximum number of items in option menu - jr nz, .CheckFive - ld [hl], $0 - scf - ret - -.CheckFive ;I have no idea why this exists... - cp $5 - jr nz, .Increase - ld [hl], $5 - -.Increase - inc [hl] - scf - ret - -.UpPressed - ld a, [hl] - cp $6 - jr nz, .NotSix - ld [hl], $5 ;Another thing where I'm not sure why it exists - scf - ret - -.NotSix - and a - jr nz, .Decrease - ld [hl], $8 ;number of option items +1 - -.Decrease - dec [hl] - scf - ret -; e455c +INCLUDE "engine/options_menu.asm" Functione455c: ; e455c hlcoord 1, 1 @@ -45377,7 +43344,7 @@ Functione4579: ; e4579 ld a, $90 ld [hWY], a call WaitBGMap - ld b, $19 + ld b, SCGB_19 call GetSGBLayout call SetPalettes ld c, 10 @@ -45418,24 +43385,30 @@ Functione45e8: ; e45e8 ld hl, VTiles2 lb bc, BANK(GameFreakLogo), $1c call Get1bpp + ld a, [rSVBK] push af ld a, $6 ld [rSVBK], a + ld hl, IntroLogoGFX ld de, w6_d000 ld a, BANK(IntroLogoGFX) call FarDecompress + ld hl, VTiles0 ld de, w6_d000 - ld bc, $180 + lb bc, 1, 8 tiles call Request2bpp + ld hl, VTiles1 - ld de, w6_d000 + $800 - ld bc, $180 + ld de, w6_d000 + $80 tiles + lb bc, 1, 8 tiles call Request2bpp + pop af ld [rSVBK], a + callba Function8cf53 lb de, $54, $58 ld a, SPRITE_ANIM_INDEX_03 @@ -48496,7 +46469,7 @@ Functionfb8c8: ; fb8c8 ld [TempMonDVs], a ld a, [hl] ld [TempMonDVs + 1], a - ld b, $1c + ld b, SCGB_1C call GetSGBLayout call SetPalettes ret @@ -50911,7 +48884,7 @@ DoMysteryGift: ; 1048ba (41:48ba) call ClearTileMap call EnableLCD call WaitBGMap - ld b, $8 + ld b, SCGB_08 call GetSGBLayout call SetPalettes pop de @@ -52212,7 +50185,7 @@ Function105153: ; 105153 (41:5153) ld [hl], $41 call EnableLCD call WaitBGMap - ld b, $1d + ld b, SCGB_1D call GetSGBLayout call SetPalettes ret @@ -52390,7 +50363,7 @@ Function105777: ; 105777 (41:5777) call ClearTileMap call EnableLCD call WaitBGMap - ld b, $8 + ld b, SCGB_08 call GetSGBLayout call SetPalettes ret @@ -53285,7 +51258,7 @@ Function1dc381: ; 1dc381 hlcoord 0, 0 call _PrepMonFrontpic call WaitBGMap - ld b, $3 + ld b, SCGB_03 call GetSGBLayout call SetPalettes ret @@ -53323,27 +51296,27 @@ Function1dc47b: ; 1dc47b call PlaceString hlcoord 16, 7 ld de, TempMonAttack - call Function1dc507 + call .PrintTempMonStats hlcoord 16, 9 ld de, TempMonDefense - call Function1dc507 + call .PrintTempMonStats hlcoord 16, 11 ld de, TempMonSpclAtk - call Function1dc507 + call .PrintTempMonStats hlcoord 16, 13 ld de, TempMonSpclDef - call Function1dc507 + call .PrintTempMonStats hlcoord 16, 15 ld de, TempMonSpeed - call Function1dc507 + call .PrintTempMonStats call WaitBGMap - ld b, $3 + ld b, SCGB_03 call GetSGBLayout call SetPalettes ret ; 1dc507 -Function1dc507: ; 1dc507 +.PrintTempMonStats: ; 1dc507 lb bc, 2, 3 call PrintNum ret @@ -53360,16 +51333,16 @@ Function1dc50e: ; 1dc50e Function1dc51a: ; 1dc51a and a - jr z, .asm_1dc525 + jr z, .no_move ld [wd265], a call GetMoveName - jr .asm_1dc528 + jr .got_string -.asm_1dc525 +.no_move ld de, String1dc584 -.asm_1dc528 +.got_string call PlaceString ret ; 1dc52c diff --git a/maps/CeruleanPokeCenter1F.asm b/maps/CeruleanPokeCenter1F.asm index 15ab1911e..8a04b43cb 100644 --- a/maps/CeruleanPokeCenter1F.asm +++ b/maps/CeruleanPokeCenter1F.asm @@ -9,11 +9,11 @@ NurseScript_0x18820f: jumpstd pokecenternurse SuperNerdScript_0x188212: - special Function10630f - iftrue UnknownScript_0x18821b + special Mobile_DummyReturnFalse + iftrue .mobile jumptextfaceplayer UnknownText_0x188221 -UnknownScript_0x18821b: +.mobile: jumptextfaceplayer UnknownText_0x18828c GymGuyScript_0x18821e: diff --git a/maps/EcruteakPokeCenter1F.asm b/maps/EcruteakPokeCenter1F.asm index 12858558d..be51b7764 100644 --- a/maps/EcruteakPokeCenter1F.asm +++ b/maps/EcruteakPokeCenter1F.asm @@ -56,11 +56,11 @@ NurseScript_0x98eb0: jumpstd pokecenternurse PokefanMScript_0x98eb3: - special Function10630f - iftrue UnknownScript_0x98ebc + special Mobile_DummyReturnFalse + iftrue .mobile jumptextfaceplayer UnknownText_0x99155 -UnknownScript_0x98ebc: +.mobile: jumptextfaceplayer UnknownText_0x991aa CooltrainerFScript_0x98ebf: diff --git a/maps/FastShip1F.asm b/maps/FastShip1F.asm index 209813653..be1675a1b 100644 --- a/maps/FastShip1F.asm +++ b/maps/FastShip1F.asm @@ -30,11 +30,11 @@ FastShip1F_MapScriptHeader: blackoutmod FAST_SHIP_CABINS_SW_SSW_NW clearevent EVENT_FAST_SHIP_HAS_ARRIVED checkevent EVENT_FAST_SHIP_FIRST_TIME - iftrue .Vermilion + iftrue .SkipGrandpa dotrigger $2 end -.Vermilion: +.SkipGrandpa: dotrigger $0 end @@ -115,10 +115,10 @@ SailorScript_0x751d0: SailorScript_0x751e4: jumptextfaceplayer UnknownText_0x753c0 -UnknownScript_0x751e7: +WorriedGrandpaTriggerRight: moveperson $5, $14, $6 -UnknownScript_0x751eb: +WorriedGrandpaTriggerLeft: appear $5 applymovement $5, MovementData_0x7521b playsound SFX_TACKLE @@ -287,7 +287,7 @@ FastShip1F_MapEventHeader: .Warps: db 12 - warp_def $1, $19, 255, FAST_SHIP_1F + warp_def $1, $19, -1, FAST_SHIP_1F warp_def $8, $1b, 1, FAST_SHIP_CABINS_NNW_NNE_NE warp_def $8, $17, 2, FAST_SHIP_CABINS_NNW_NNE_NE warp_def $8, $13, 3, FAST_SHIP_CABINS_NNW_NNE_NE @@ -302,8 +302,8 @@ FastShip1F_MapEventHeader: .XYTriggers: db 2 - xy_trigger 2, $6, $18, $0, UnknownScript_0x751eb, $0, $0 - xy_trigger 2, $6, $19, $0, UnknownScript_0x751e7, $0, $0 + xy_trigger 2, $6, $18, $0, WorriedGrandpaTriggerLeft, $0, $0 + xy_trigger 2, $6, $19, $0, WorriedGrandpaTriggerRight, $0, $0 .Signposts: db 0 diff --git a/maps/FastShipCabins_SW_SSW_NW.asm b/maps/FastShipCabins_SW_SSW_NW.asm index 6161d4287..493ee070e 100644 --- a/maps/FastShipCabins_SW_SSW_NW.asm +++ b/maps/FastShipCabins_SW_SSW_NW.asm @@ -43,15 +43,15 @@ TrainerGuitaristClyde: GuitaristClydeScript: talkaftercancel - special Function10630f - iftrue UnknownScript_0x75aa5 + special Mobile_DummyReturnFalse + iftrue .mobile loadfont writetext UnknownText_0x75d65 closetext loadmovesprites end -UnknownScript_0x75aa5: +.mobile: loadfont writetext UnknownText_0x75cfe closetext diff --git a/maps/PokeCenter2F.asm b/maps/PokeCenter2F.asm index ede7b5305..40f9173c1 100644 --- a/maps/PokeCenter2F.asm +++ b/maps/PokeCenter2F.asm @@ -72,10 +72,10 @@ LinkReceptionistScript_Trade: writetext Text_TradeReceptionistIntro yesorno iffalse .Cancel - special Function10630f + special Mobile_DummyReturnFalse ; always returns false iffalse .NoMobile writetext Text_TradeReceptionistMobile - special Function103612 + special AskMobileOrCable iffalse .Cancel if_equal $1, .Mobile .NoMobile: @@ -174,10 +174,10 @@ LinkReceptionistScript_Battle: writetext Text_BattleReceptionistIntro yesorno iffalse .Cancel - special Function10630f + special Mobile_DummyReturnFalse ; always returns false iffalse .NoMobile writetext Text_BattleReceptionistMobile - special Function103612 + special AskMobileOrCable iffalse .Cancel if_equal $1, .Mobile .NoMobile: diff --git a/maps/Route40.asm b/maps/Route40.asm index a9947beb6..d753be910 100644 --- a/maps/Route40.asm +++ b/maps/Route40.asm @@ -68,11 +68,11 @@ LassScript_0x1a61c4: jumptextfaceplayer UnknownText_0x1a6429 PokefanMScript_0x1a61c7: - special Function10630f - iftrue UnknownScript_0x1a61d0 + special Mobile_DummyReturnFalse + iftrue .mobile jumptextfaceplayer UnknownText_0x1a646a -UnknownScript_0x1a61d0: +.mobile: jumptextfaceplayer UnknownText_0x1a649b LassScript_0x1a61d3: diff --git a/maps/SaffronPokeCenter1F.asm b/maps/SaffronPokeCenter1F.asm index 0a3202d0e..21d6aa136 100644 --- a/maps/SaffronPokeCenter1F.asm +++ b/maps/SaffronPokeCenter1F.asm @@ -9,24 +9,24 @@ NurseScript_0x18a47d: jumpstd pokecenternurse TeacherScript_0x18a480: - special Function10630f - iftrue UnknownScript_0x18a489 + special Mobile_DummyReturnFalse + iftrue .mobile jumptextfaceplayer UnknownText_0x18a4a3 -UnknownScript_0x18a489: +.mobile: jumptextfaceplayer UnknownText_0x18a532 FisherScript_0x18a48c: faceplayer loadfont checkevent EVENT_RETURNED_MACHINE_PART - iftrue UnknownScript_0x18a49a + iftrue .SolvedKantoPowerCrisis writetext UnknownText_0x18a5d3 closetext loadmovesprites end -UnknownScript_0x18a49a: +.SolvedKantoPowerCrisis: writetext UnknownText_0x18a62e closetext loadmovesprites diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index 4743f2c27..ce3035c35 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -7686,9 +7686,9 @@ Unknown_1035d7: ; 1035d7 dw Unknown_103608 dw Unknown_1035fe - dw Function103612 - dw Function103612 - dw Function103612 + dw AskMobileOrCable + dw AskMobileOrCable + dw AskMobileOrCable Unknown_1035e7: ; 1035e7 dwcoord 0, 6 @@ -7719,18 +7719,18 @@ Unknown_103608: ; 103608 db 2, 2, 3 ; 103612 -Function103612: ; 103612 +AskMobileOrCable: ; 103612 ld hl, MenuDataHeader_103640 call LoadMenuDataHeader ld a, [wdc40] and $f - jr z, .asm_103622 + jr z, .skip_load ld [wMenuCursorBuffer], a -.asm_103622 +.skip_load call InterpretMenu2 call WriteBackup - jr c, .asm_10363b + jr c, .pressed_b ld a, [MenuSelection2] ld [ScriptVar], a ld c, a @@ -7740,7 +7740,7 @@ Function103612: ; 103612 ld [wdc40], a ret -.asm_10363b +.pressed_b xor a ld [ScriptVar], a ret diff --git a/misc/mobile_41.asm b/misc/mobile_41.asm index 9b2664e6b..69abe1cd2 100755 --- a/misc/mobile_41.asm +++ b/misc/mobile_41.asm @@ -743,7 +743,9 @@ endr ret ; 10630f -Function10630f: ; 10630f +; functions related to the cable club and various NPC scripts referencing mobile communications + +Mobile_DummyReturnFalse: ; 10630f xor a ld [ScriptVar], a ret @@ -766,8 +768,10 @@ MobileFn_106314: mobile ; 106314 Function10632f: ; 10632f or a - mobile + ret +Function106331: ; 106331 - called by Mobile_DummyReturnFalse in Crystal-J + ; check ~[4:b000] == [7:a800] ld a, $4 call GetSRAMBank ld a, [$b000] @@ -781,17 +785,22 @@ Function10632f: ; 10632f call CloseSRAM ld a, c cp b - jr nz, .asm_106359 + jr nz, .nope + + ; check [7:a800] != 0 and a - jr z, .asm_106359 - and $8f + jr z, .nope + + ; check !([7:a800] & %01110000) + and %10001111 cp c - jr nz, .asm_106359 + jr nz, .nope + ld c, a scf ret -.asm_106359 +.nope xor a ld c, a ret diff --git a/predef/cgb.asm b/predef/cgb.asm index c267174d2..cab074d8d 100644 --- a/predef/cgb.asm +++ b/predef/cgb.asm @@ -146,7 +146,7 @@ Function8e23: ; 8e23 ld a, $4 call FillBoxCGB hlcoord 0, 12, AttrMap - ld bc, $0078 + ld bc, 6 * SCREEN_WIDTH ld a, $7 call ByteFill ld hl, Palettes_979c From ba871547eda6e17e988f4e1dfa7b899050205d5e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 16 Nov 2015 21:07:26 -0500 Subject: [PATCH 14/40] engine/pokegear.asm --- engine/pokegear.asm | 2989 ++++++++++++++++++++++++++++++++++++++++++ engine/radio2.asm | 664 ---------- engine/specials.asm | 2 +- engine/startmenu.asm | 2 +- engine/town_map.asm | 1143 ++-------------- home/palettes.asm | 7 +- main.asm | 1424 +------------------- vram.asm | 1 + 8 files changed, 3122 insertions(+), 3110 deletions(-) create mode 100755 engine/pokegear.asm delete mode 100644 engine/radio2.asm diff --git a/engine/pokegear.asm b/engine/pokegear.asm new file mode 100755 index 000000000..02684aaab --- /dev/null +++ b/engine/pokegear.asm @@ -0,0 +1,2989 @@ +PokeGear: ; 90b8d (24:4b8d) + ld hl, Options + ld a, [hl] + push af + set NO_TEXT_SCROLL, [hl] + + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + + ld a, [VramState] + push af + xor a + ld [VramState], a + + call Function90bea + call DelayFrame + +.loop + call UpdateTime + call JoyTextDelay + ld a, [wJumptableIndex] + bit 7, a + jr nz, .done + call Function90f04 + callba Function8cf69 + call DelayFrame + jr .loop + +.done + ld de, SFX_READ_TEXT_2 + call PlaySFX + call WaitSFX + pop af + ld [VramState], a + pop af + ld [hInMenu], a + pop af + ld [Options], a + call ClearBGPalettes + xor a + ld [hBGMapAddress], a + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a + ld a, $90 + ld [hWY], a + call Function91492 + ret + +Function90bea: ; 90bea (24:4bea) + call ClearBGPalettes + call ClearTileMap + call ClearSprites + call DisableLCD + xor a + ld [hSCY], a + ld [hSCX], a + ld a, $7 + ld [hWX], a + call Function90c4e + callba Function8cf53 + call Function90d32 + ld a, 8 + call SkipMusic + ld a, $e3 + ld [rLCDC], a + call Function90d70 + xor a + ld [wJumptableIndex], a + ld [wcf64], a + ld [wcf65], a + ld [wcf66], a + ld [wc6d2], a + ld [wc6d1], a + ld [wc6d3], a + ld [wc6d9], a + ld [wc6da], a + ld [wc6db], a + call Function90d9e + call Function90da8 + ld b, SCGB_02 + call GetSGBLayout + call SetPalettes + ld a, [hCGB] + and a + ret z + ld a, $e4 + call Functioncf8 + ret + +Function90c4e: ; 90c4e + call ClearVBank1 + ld hl, TownMapGFX + ld de, VTiles2 + ld a, BANK(TownMapGFX) + call FarDecompress + + ld hl, PokegearGFX + ld de, VTiles2 + $30 tiles + ld a, BANK(PokegearGFX) + call FarDecompress + + ld hl, PokegearSpritesGFX + ld de, VTiles0 + ld a, BANK(PokegearSpritesGFX) + call Decompress + + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetWorldMapLocation + cp FAST_SHIP + jr z, .ssaqua + + callba GetPlayerIcon + + push de + ld h, d + ld l, e + ld a, b + + push af + ld de, VTiles0 tile $10 + ld bc, 4 tiles + call FarCopyBytes + pop af + + pop hl + + ld de, $c0 + add hl, de + ld de, VTiles0 tile $14 + ld bc, 4 tiles + call FarCopyBytes + ret + +.ssaqua + ld hl, FastShipGFX + ld de, VTiles0 tile $10 + ld bc, 8 tiles + call CopyBytes + ret +; 90cb2 + +FastShipGFX: ; 90cb2 +INCBIN "gfx/misc/fast_ship.2bpp" +; 90d32 + +Function90d32: ; 90d32 (24:4d32) + lb de, $24, $10 + ld a, SPRITE_ANIM_INDEX_0D + call _InitSpriteAnimStruct + ld hl, $3 + add hl, bc + ld [hl], $0 + ret + +Function90d41: ; 90d41 (24:4d41) + ld hl, wcf64 + ld e, [hl] + ld d, 0 + ld hl, Unknown_90d52 + add hl, de + ld a, [hl] + ld hl, $6 + add hl, bc + ld [hl], a + ret +; 90d52 (24:4d52) + +Unknown_90d52: ; 90d52 + db $00, $10, $20, $30 +; 90d56 + +Function90d56: ; 90d56 + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetWorldMapLocation + cp SPECIAL_MAP + ret nz + ld a, [BackupMapGroup] + ld b, a + ld a, [BackupMapNumber] + ld c, a + call GetWorldMapLocation + ret +; 90d70 + + +Function90d70: ; 90d70 (24:4d70) + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetWorldMapLocation + + cp FAST_SHIP + jr z, .asm_90d95 + + cp SPECIAL_MAP + jr nz, .asm_90d8e + + ld a, [BackupMapGroup] + ld b, a + ld a, [BackupMapNumber] + ld c, a + call GetWorldMapLocation + +.asm_90d8e + ld [wc6d8], a + ld [wc6d7], a + ret + +.asm_90d95 + ld [wc6d8], a + ld a, NEW_BARK_TOWN + ld [wc6d7], a + ret + +Function90d9e: ; 90d9e (24:4d9e) + ld a, $0 + ld [wJumptableIndex], a + xor a + ld [wcf64], a + ret + +Function90da8: ; 90da8 (24:4da8) + xor a + ld [hBGMapMode], a + hlcoord 0, 0 + ld bc, TileMapEnd - TileMap + ld a, $4f + call ByteFill + ld a, [wcf64] + and $3 + add a + ld e, a + ld d, 0 + ld hl, Jumptable_90e12 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld de, .asm_90dcb + push de + jp [hl] + +.asm_90dcb + call Function90eb0 + callba TownMapPals + ld a, [wcf65] + and a + jr nz, .asm_90de8 + + xor a + ld [hBGMapAddress], a + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a + call Function90e00 + ld a, $90 + jr .asm_90df3 + +.asm_90de8 + xor a + ld [hBGMapAddress], a + ld a, VBGMap1 / $100 + ld [hBGMapAddress + 1], a + call Function90e00 + xor a + +.asm_90df3 + ld [hWY], a + ld a, [wcf65] + and 1 + xor 1 + ld [wcf65], a + ret + +Function90e00: ; 90e00 (24:4e00) + ld a, [hCGB] + and a + jr z, .asm_90e0e + ld a, $2 + ld [hBGMapMode], a + ld c, 3 + call DelayFrames +.asm_90e0e + call WaitBGMap + ret +; 90e12 (24:4e12) + +Jumptable_90e12: ; 90e12 + dw Function90e1a + dw Function90e3f + dw Function90e82 + dw Function90e72 +; 90e1a + +Function90e1a: ; 90e1a + ld de, ClockTilemapRLE + call Function914bb + hlcoord 12, 1 + ld de, .switch + call PlaceString + hlcoord 0, 12 + lb bc, 4, 18 + call TextBox + call Function90f86 + ret +; 90e36 (24:4e36) + +.switch + db " SWITCH▶@" +; 90e3f + +Function90e3f: ; 90e3f + + ld a, [wc6d8] + cp FAST_SHIP + jr z, .johto + cp KANTO_LANDMARK + jr nc, .kanto +.johto + ld e, 0 + jr .ok +.kanto + ld e, 1 +.ok + callba Function91ae1 + ld a, $7 + ld bc, $12 + hlcoord 1, 2 + call ByteFill + hlcoord 0, 2 + ld [hl], $6 + hlcoord 19, 2 + ld [hl], $17 + ld a, [wc6d7] + call Function910b4 + ret +; 90e72 + +Function90e72: ; 90e72 + ld de, RadioTilemapRLE + call Function914bb + hlcoord 0, 12 + lb bc, 4, 18 + call TextBox + ret +; 90e82 + +Function90e82: ; 90e82 + ld de, PhoneTilemapRLE + call Function914bb + hlcoord 0, 12 + lb bc, 4, 18 + call TextBox + call Function90e98 + call Function912d8 + ret +; 90e98 + +Function90e98: ; 90e98 (24:4e98) + hlcoord 17, 1 + ld a, $3c + ld [hli], a + inc a + ld [hl], a + hlcoord 17, 2 + inc a + ld [hli], a + call GetMapHeaderPhoneServiceNybble + and a + ret nz + hlcoord 18, 2 + ld [hl], $3f + ret + +Function90eb0: ; 90eb0 (24:4eb0) + hlcoord 0, 0 + ld bc, $8 + ld a, $4f + call ByteFill + hlcoord 0, 1 + ld bc, $8 + ld a, $4f + call ByteFill + ld de, wPokegearFlags + ld a, [de] + bit 0, a + call nz, Function90ee4 + ld a, [de] + bit 2, a + call nz, Function90eeb + ld a, [de] + bit 1, a + call nz, Function90ef2 + hlcoord 0, 0 + ld a, $46 + call Function90ef7 + ret + +Function90ee4: ; 90ee4 (24:4ee4) + hlcoord 2, 0 + ld a, $40 + jr Function90ef7 + +Function90eeb: ; 90eeb (24:4eeb) + hlcoord 4, 0 + ld a, $44 + jr Function90ef7 + +Function90ef2: ; 90ef2 (24:4ef2) + hlcoord 6, 0 + ld a, $42 + +Function90ef7: ; 90ef7 (24:4ef7) + ld [hli], a + inc a + ld [hld], a + ld bc, $14 + add hl, bc + add $f + ld [hli], a + inc a + ld [hld], a + ret + +Function90f04: ; 90f04 (24:4f04) + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, Jumptable_90f13 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Jumptable_90f13: ; 90f13 (24:4f13) + dw Function90f2d + dw Function90f3e + dw Function90fb4 + dw Function90fcd + dw Function90fee + dw Function90fcd + dw Function90fe9 + dw Function91156 + dw Function91171 + dw Function911eb + dw Function91256 + dw Function910f9 + dw Function91112 + + +Function90f2d: ; 90f2d (24:4f2d) + call Function90da8 + ld hl, UnknownText_0x914d3 + call PrintText + ld hl, wJumptableIndex + inc [hl] + call Function91492 + ret + +Function90f3e: ; 90f3e (24:4f3e) + call Function90f7b + ld hl, hJoyLast + + ld a, [hl] + and A_BUTTON + B_BUTTON + START + SELECT + jr nz, .asm_90f75 + + ld a, [hl] + and D_RIGHT + ret z + + ld a, [wPokegearFlags] + bit 0, a + jr z, .asm_90f5a + ld c, $2 + ld b, $1 + jr .asm_90f71 +.asm_90f5a + + ld a, [wPokegearFlags] + bit 2, a + jr z, .asm_90f67 + ld c, $7 + ld b, $2 + jr .asm_90f71 +.asm_90f67 + + ld a, [wPokegearFlags] + bit 1, a + ret z + + ld c, $b + ld b, $3 + +.asm_90f71 + call Function91480 + ret + +.asm_90f75 + ld hl, wJumptableIndex + set 7, [hl] + ret + +Function90f7b: ; 90f7b (24:4f7b) + xor a + ld [hBGMapMode], a + call Function90f86 + ld a, $1 + ld [hBGMapMode], a + ret + +Function90f86: ; 90f86 (24:4f86) + hlcoord 3, 5 + lb bc, 5, 14 + call ClearBox + ld a, [hHours] + ld b, a + ld a, [hMinutes] + ld c, a + decoord 6, 8 + callba PrintHoursMins + ld hl, UnknownText_0x90faf + bccoord 6, 6 + call PlaceWholeStringInBoxAtOnce + ret +; 90fa8 (24:4fa8) + +String_90fa8: db "ごぜん@" +String_90fac: db "ごご@" + +UnknownText_0x90faf: ; 0x90faf + text_jump UnknownText_0x1c5821 + db "@" +; 0x90fb4 + +Function90fb4: ; 90fb4 (24:4fb4) + ld a, [wc6d8] + cp FAST_SHIP + jr z, .johto + cp KANTO_LANDMARK + jr nc, .kanto +.johto + ld a, 3 + jr .done + + ret + +.kanto + ld a, 5 +.done + ld [wJumptableIndex], a + call Function91492 + ret + +Function90fcd: ; 90fcd (24:4fcd) + call Function90da8 + ld a, [wc6d8] + call Function9106a + ld a, [wc6d7] + call Function91098 + ld a, c + ld [wc6d5], a + ld a, b + ld [wc6d6], a + ld hl, wJumptableIndex + inc [hl] + ret + +Function90fe9: ; 90fe9 (24:4fe9) + call Function910e8 + jr Function90ff2 + +Function90fee: ; 90fee (24:4fee) + ld d, $2e + ld e, $1 +Function90ff2: ; 90ff2 (24:4ff2) + ld hl, hJoyLast + ld a, [hl] + and B_BUTTON + jr nz, .cancel + ld a, [hl] + and D_RIGHT + jr nz, .right + ld a, [hl] + and D_LEFT + jr nz, .left + call Function9102f + ret + +.right + ld a, [wPokegearFlags] + bit 2, a + jr z, .asm_91015 + ld c, $7 + ld b, $2 + jr .done + +.asm_91015 + ld a, [wPokegearFlags] + bit 1, a + ret z + ld c, $b + ld b, $3 + jr .done + +.left + ld c, $0 + ld b, $0 +.done + call Function91480 + ret +.cancel + ld hl, wJumptableIndex + set 7, [hl] + ret + +Function9102f: ; 9102f (24:502f) + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, .up + ld a, [hl] + and D_DOWN + jr nz, .down + ret +.up + ld hl, wc6d7 + ld a, [hl] + cp d + jr c, .asm_91047 + ld a, e + dec a + ld [hl], a +.asm_91047 + inc [hl] + jr .done + +.down + ld hl, wc6d7 + ld a, [hl] + cp e + jr nz, .asm_91054 + ld a, d + inc a + ld [hl], a +.asm_91054 + dec [hl] + +.done + ld a, [wc6d7] + call Function910b4 + ld a, [wc6d5] + ld c, a + ld a, [wc6d6] + ld b, a + ld a, [wc6d7] + call Function910d4 + ret + +Function9106a: ; 9106a + push af + ld de, 0 + ld b, SPRITE_ANIM_INDEX_0A + ld a, [PlayerGender] + bit 0, a + jr z, .asm_91079 + ld b, SPRITE_ANIM_INDEX_1E + +.asm_91079 + ld a, b + call _InitSpriteAnimStruct + ld hl, $3 + add hl, bc + ld [hl], $10 + pop af + ld e, a + push bc + callba GetLandmarkCoords + pop bc + ld hl, $4 + add hl, bc + ld [hl], e + ld hl, $5 + add hl, bc + ld [hl], d + ret +; 91098 + +Function91098: ; 91098 + push af + ld de, 0 + ld a, SPRITE_ANIM_INDEX_0D + call _InitSpriteAnimStruct + ld hl, $3 + add hl, bc + ld [hl], $4 + ld hl, $2 + add hl, bc + ld [hl], $0 + pop af + push bc + call Function910d4 + pop bc + ret +; 910b4 + +Function910b4: ; 910b4 + push af + hlcoord 8, 0 + lb bc, 2, 12 + call ClearBox + pop af + ld e, a + push de + callba GetLandmarkName + pop de + callba Function1de2c5 + hlcoord 8, 0 + ld [hl], $34 + ret +; 910d4 + +Function910d4: ; 910d4 + push bc + ld e, a + callba GetLandmarkCoords + pop bc + ld hl, $4 + add hl, bc + ld [hl], e + ld hl, $5 + add hl, bc + ld [hl], d + ret +; 910e8 + +Function910e8: ; 910e8 + ld a, [StatusFlags] + bit 6, a + jr z, .asm_910f4 + ld d, $5e + ld e, $2f + ret + +.asm_910f4 + ld d, $5e + ld e, $58 + ret +; 910f9 + + +Function910f9: ; 910f9 (24:50f9) + call Function90da8 + lb de, $24, $54 + ld a, SPRITE_ANIM_INDEX_14 + call _InitSpriteAnimStruct + ld hl, $3 + add hl, bc + ld [hl], $8 + call _UpdateRadioStation + ld hl, wJumptableIndex + inc [hl] + ret + +Function91112: ; 91112 (24:5112) + ld hl, hJoyLast + ld a, [hl] + and B_BUTTON + jr nz, .cancel + ld a, [hl] + and D_LEFT + jr nz, .left + ld a, [wc6da] + ld l, a + ld a, [wc6db] + ld h, a + ld a, [wc6d9] + and a + ret z + rst FarCall + ret + +.left + ld a, [wPokegearFlags] + bit 2, a + jr z, .asm_9113b + ld c, $7 + ld b, $2 + jr .asm_9114c + +.asm_9113b + ld a, [wPokegearFlags] + bit 0, a + jr z, .asm_91148 + ld c, $2 + ld b, $1 + jr .asm_9114c + +.asm_91148 + ld c, $0 + ld b, $0 +.asm_9114c + call Function91480 + ret + +.cancel + ld hl, wJumptableIndex + set 7, [hl] + ret + +Function91156: ; 91156 (24:5156) + ld hl, wJumptableIndex + inc [hl] + xor a + ld [wc6d2], a + ld [wc6d1], a + ld [wc6d3], a + call Function90da8 + call Function91492 + ld hl, UnknownText_0x914ce + call PrintText + ret + +Function91171: ; 91171 (24:5171) + ld hl, hJoyPressed + ld a, [hl] + and B_BUTTON + jr nz, .b + ld a, [hl] + and A_BUTTON + jr nz, .a + ld hl, hJoyLast + ld a, [hl] + and D_LEFT + jr nz, .left + ld a, [hl] + and D_RIGHT + jr nz, .right + call Function9126d + ret + +.left + ld a, [wPokegearFlags] + bit 0, a + jr z, .asm_9119c + ld c, $2 + ld b, $1 + jr .asm_911ac +.asm_9119c + ld c, $0 + ld b, $0 + jr .asm_911ac + +.right + ld a, [wPokegearFlags] + bit 1, a + ret z + ld c, $b + ld b, $3 +.asm_911ac + call Function91480 + ret + +.b + ld hl, wJumptableIndex + set 7, [hl] + ret + +.a + ld hl, wPhoneList + ld a, [wc6d2] + ld e, a + ld d, 0 + add hl, de + ld a, [wc6d1] + ld e, a + ld d, 0 + add hl, de + ld a, [hl] + and a + ret z + + ld [wc6d3], a + hlcoord 1, 4 + ld a, [wc6d1] + ld bc, 20 * 2 + call AddNTimes + ld [hl], "▷" + call Function91342 + jr c, .asm_911e5 + + ld hl, wJumptableIndex + inc [hl] + ret + +.asm_911e5 + ld a, $8 + ld [wJumptableIndex], a + ret + +Function911eb: ; 911eb (24:51eb) + call GetMapHeaderPhoneServiceNybble + and a + jr nz, .asm_91234 + ld hl, Options + res NO_TEXT_SCROLL, [hl] + xor a + ld [hInMenu], a + ld de, SFX_CALL + call PlaySFX + ld hl, UnknownText_0x9124c + call PrintText + call WaitSFX + ld de, SFX_CALL + call PlaySFX + ld hl, UnknownText_0x9124c + call PrintText + call WaitSFX + ld a, [wc6d3] + ld b, a + call Function90199 + ld c, 10 + call DelayFrames + ld hl, Options + set NO_TEXT_SCROLL, [hl] + ld a, $1 + ld [hInMenu], a + call Function912b7 + ld hl, wJumptableIndex + inc [hl] + ret +.asm_91234 + callba Phone_NoSignal + ld hl, OutOfServiceAreaText + call PrintText + ld a, $8 + ld [wJumptableIndex], a + ld hl, UnknownText_0x914ce + call PrintText + ret +; 9124c (24:524c) + +UnknownText_0x9124c: ; 0x9124c + ; + text_jump UnknownText_0x1c5824 + db "@" +; 0x91251 + +OutOfServiceAreaText: ; 0x91251 + ; You're out of the service area. + text_jump UnknownText_0x1c5827 + db "@" +; 0x91256 + +Function91256: ; 91256 (24:5256) + ld a, [hJoyPressed] + and A_BUTTON | B_BUTTON + ret z + callba HangUp + ld a, $8 + ld [wJumptableIndex], a + ld hl, UnknownText_0x914ce + call PrintText + ret + +Function9126d: ; 9126d (24:526d) + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, .up + ld a, [hl] + and D_DOWN + jr nz, .down + ret + +.up + ld hl, wc6d1 + ld a, [hl] + and a + jr z, .asm_91285 + dec [hl] + jr .asm_912a3 + +.asm_91285 + ld hl, wc6d2 + ld a, [hl] + and a + ret z + dec [hl] + jr .asm_912ad + +.down + ld hl, wc6d1 + ld a, [hl] + cp $3 + jr nc, .asm_91299 + inc [hl] + jr .asm_912a3 + +.asm_91299 + ld hl, wc6d2 + ld a, [hl] + cp $6 + ret nc + inc [hl] + jr .asm_912ad + +.asm_912a3 + xor a + ld [hBGMapMode], a + call Function912b7 + call WaitBGMap + ret + +.asm_912ad + xor a + ld [hBGMapMode], a + call Function912d8 + call WaitBGMap + ret + +Function912b7: ; 912b7 (24:52b7) + ld a, " " + hlcoord 1, 4 + ld [hl], a + hlcoord 1, 6 + ld [hl], a + hlcoord 1, 8 + ld [hl], a + hlcoord 1, 10 + ld [hl], a + hlcoord 1, 4 + ld a, [wc6d1] + ld bc, $28 + call AddNTimes + ld [hl], "▶" + ret + +Function912d8: ; 912d8 (24:52d8) + hlcoord 1, 3 + ld b, $9 + ld a, $7f +.asm_912df + ld c, $12 +.asm_912e1 + ld [hli], a + dec c + jr nz, .asm_912e1 +rept 2 + inc hl +endr + dec b + jr nz, .asm_912df + ld a, [wc6d2] + ld e, a + ld d, $0 + ld hl, wPhoneList + add hl, de + xor a + ld [wc6d0], a +.asm_912f8 + ld a, [hli] + push hl + push af + hlcoord 2, 4 + ld a, [wc6d0] + ld bc, $28 + call AddNTimes + ld d, h + ld e, l + pop af + ld b, a + call Function90380 + pop hl + ld a, [wc6d0] + inc a + ld [wc6d0], a + cp $4 + jr c, .asm_912f8 + call Function912b7 + ret +; 9131e (24:531e) + +Function9131e: ; 9131e + ld hl, wPhoneList + ld a, [wc6d2] + ld e, a + ld d, 0 + add hl, de + ld a, [wc6d1] + ld e, a + ld d, 0 + add hl, de + ld [hl], 0 + ld hl, wPhoneList + ld c, $a +.asm_91336 + ld a, [hli] + and a + jr nz, .asm_9133e + ld a, [hld] + ld [hli], a + ld [hl], 0 +.asm_9133e + dec c + jr nz, .asm_91336 + ret +; 91342 + +Function91342: ; 91342 (24:5342) + ld hl, wPhoneList + ld a, [wc6d2] + ld e, a + ld d, 0 + add hl, de + ld a, [wc6d1] + ld e, a + ld d, 0 + add hl, de + ld c, [hl] + callba Function9038a + ld a, c + and a + jr z, .asm_91366 + + ld hl, Jumptable_91455 + ld de, Unknown_9143f + jr .asm_9136c + +.asm_91366 + ld hl, Jumptable_9146a + ld de, Unknown_9145b + +.asm_9136c + xor a + ld [hBGMapMode], a + push hl + push de + ld a, [de] + ld l, a + inc de + ld a, [de] + ld h, a + inc de + push hl + ld bc, hBGMapAddress + 1 + add hl, bc + ld a, [de] + inc de + sla a + ld b, a + ld c, 8 + push de + call TextBox + pop de + pop hl + inc hl + call PlaceString + pop de + xor a + ld [wc6d4], a + call Function9141d + call WaitBGMap + +.asm_91398 + push de + call JoyTextDelay + pop de + ld hl, hJoyPressed + ld a, [hl] + and D_UP + jr nz, .asm_913b4 + ld a, [hl] + and D_DOWN + jr nz, .asm_913c1 + ld a, [hl] + and A_BUTTON | B_BUTTON + jr nz, .asm_913d4 + call DelayFrame + jr .asm_91398 + +.asm_913b4 + ld hl, wc6d4 + ld a, [hl] + and a + jr z, .asm_91398 + dec [hl] + call Function9141d + jr .asm_91398 + +.asm_913c1 + ld hl, 2 + add hl, de + ld a, [wc6d4] + inc a + cp [hl] + jr nc, .asm_91398 + ld [wc6d4], a + call Function9141d + jr .asm_91398 + +.asm_913d4 + xor a + ld [hBGMapMode], a + call Function912d8 + ld a, $1 + ld [hBGMapMode], a + pop hl + ld a, [hJoyPressed] + and B_BUTTON + jr nz, Function913f1 + + ld a, [wc6d4] + ld e, a + ld d, 0 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Function913f1: ; 913f1 + ld hl, UnknownText_0x914ce + call PrintText + scf + ret +; 913f9 (24:53f9) + +Function913f9: ; 913f9 + ld hl, UnknownText_0x914d8 + call MenuTextBox + call YesNoBox + call ExitMenu + jr c, .asm_91419 + call Function9131e + xor a + ld [hBGMapMode], a + call Function912d8 + ld hl, UnknownText_0x914ce + call PrintText + call WaitBGMap +.asm_91419 + scf + ret +; 9141b + +Function9141b: ; 9141b + and a + ret +; 9141d + +Function9141d: ; 9141d (24:541d) + push de + ld a, [de] + inc de + ld l, a + ld a, [de] + inc de + ld h, a + ld a, [de] + ld c, a + push hl + ld a, " " + ld de, 20 * 2 +.asm_9142c + ld [hl], a + add hl, de + dec c + jr nz, .asm_9142c + pop hl + ld a, [wc6d4] + ld bc, 20 * 2 + call AddNTimes + ld [hl], "▶" + pop de + ret +; 9143f (24:543f) + +Unknown_9143f: ; 9143f + dwcoord 10, 6 + db 3 + db "CALL" + next "DELETE" + next "CANCEL" + db "@" +; 91455 + +Jumptable_91455: ; 91455 + dw Function9141b + dw Function913f9 + dw Function913f1 +; 9145b + +Unknown_9145b: ; 9145b + dwcoord 10, 8 + db 2 + db "CALL" + next "CANCEL" + db "@" +; 9146a + +Jumptable_9146a: ; 9146a + dw Function9141b + dw Function913f1 +; 9146e + + +Function9146e: ; 9146e + ld a, [hHours] + cp 12 + jr c, .asm_9147b + sub 12 + ld [wd265], a + scf + ret + +.asm_9147b + ld [wd265], a + and a + ret +; 91480 + + +Function91480: ; 91480 (24:5480) + ld de, SFX_READ_TEXT_2 + call PlaySFX + ld a, c + ld [wJumptableIndex], a + ld a, b + ld [wcf64], a + call DeleteSpriteAnimStruct2ToEnd + ret + +Function91492: ; 91492 + ld a, [wc6dc] + cp $fe + jr z, .asm_914a3 + cp $ff + call z, EnterMapMusic + xor a + ld [wc6dc], a + ret + +.asm_914a3 + call RestartMapMusic + xor a + ld [wc6dc], a + ret +; 914ab + + +DeleteSpriteAnimStruct2ToEnd: ; 914ab (24:54ab) + ld hl, SpriteAnim2 + ld bc, wSpriteAnimationStructsEnd - SpriteAnim2 + xor a + call ByteFill + ld a, 2 + ld [wSpriteAnimCount], a + ret + +Function914bb: ; 914bb (24:54bb) + hlcoord 0, 0 +.asm_914be + ld a, [de] + cp $ff + ret z + ld b, a + inc de + ld a, [de] + ld c, a + inc de + ld a, b +.asm_914c8 + ld [hli], a + dec c + jr nz, .asm_914c8 + jr .asm_914be +; 914ce (24:54ce) + +UnknownText_0x914ce: ; 0x914ce + ; Whom do you want to call? + text_jump UnknownText_0x1c5847 + db "@" +; 0x914d3 + +UnknownText_0x914d3: ; 0x914d3 + ; Press any button to exit. + text_jump UnknownText_0x1c5862 + db "@" +; 0x914d8 + +UnknownText_0x914d8: ; 0x914d8 + ; Delete this stored phone number? + text_jump UnknownText_0x1c587d + db "@" +; 0x914dd + + +PokegearSpritesGFX: ; 914dd +INCBIN "gfx/misc/pokegear_sprites.2bpp.lz" +; 9150d + +RadioTilemapRLE: ; 9150d +INCBIN "gfx/unknown/09150d.tilemap.rle" + +PhoneTilemapRLE: ; 9158a +INCBIN "gfx/unknown/09158a.tilemap.rle" + +ClockTilemapRLE: ; 915db +INCBIN "gfx/unknown/0915db.tilemap.rle" +; 9163e +_UpdateRadioStation: ; 9163e (24:563e) + jr UpdateRadioStation + +Function91640: ; 91640 (24:5640) + push bc + call .TuningKnob + pop bc + ld a, [wRadioTuningKnob] + ld hl, $6 + add hl, bc + ld [hl], a + ret + +.TuningKnob: ; 9164e (24:564e) + ld hl, hJoyLast + ld a, [hl] + and D_DOWN + jr nz, .down + ld a, [hl] + and D_UP + jr nz, .up + ret + +.down + ld hl, wRadioTuningKnob + ld a, [hl] + and a + ret z +rept 2 + dec [hl] +endr + jr .update + +.up + ld hl, wRadioTuningKnob + ld a, [hl] + cp 80 + ret nc +rept 2 + inc [hl] +endr + +.update + +UpdateRadioStation: ; 9166f (24:566f) + ld hl, wRadioTuningKnob + ld d, [hl] + ld hl, RadioChannels +.loop + ld a, [hli] + cp -1 + jr z, .nostation + cp d + jr z, .foundstation +rept 2 + inc hl +endr + jr .loop + +.nostation + call NoRadioStation + ret + +.foundstation + ld a, [hli] + ld h, [hl] + ld l, a + ld de, .returnafterstation + push de + jp [hl] +.returnafterstation + ld a, [wc6d9] + and a + ret z + xor a + ld [hBGMapMode], a + hlcoord 2, 9 + call PlaceString + ld a, $1 + ld [hBGMapMode], a + ret +; 916a1 (24:56a1) + +Function916a1: ; 916a1 + ld [wc6d9], a + ld a, [hli] + ld [wc6da], a + ld a, [hli] + ld [wc6db], a + ret +; 916ad + + +RadioChannels: +; frequencies and the shows that play on them. +; frequency value given here = 4 × ingame_frequency − 2 + dbw 16, .PkmnTalkAndPokedexShow + dbw 28, .PokemonMusic + dbw 32, .LuckyChannel + dbw 40, .BuenasPassword + dbw 52, .RuinsOfAlphRadio + dbw 64, .PlacesAndPeople + dbw 72, .LetsAllSing + dbw 78, .PokeFluteRadio + dbw 80, .EvolutionRadio + db $ff + +.PkmnTalkAndPokedexShow +; Pokédex Show in the morning +; Oak's Pokémon Talk in the afternoon and evening + call .InJohto + jr nc, .NoSignal + ld a, [TimeOfDay] + and a + jp z, LoadStation_PokedexShow + jp LoadStation_OaksPokemonTalk + +.PokemonMusic + call .InJohto + jr nc, .NoSignal + jp LoadStation_PokemonMusic + +.LuckyChannel + call .InJohto + jr nc, .NoSignal + jp LoadStation_LuckyChannel + +.BuenasPassword + call .InJohto + jr nc, .NoSignal + jp LoadStation_BuenasPassword + +.RuinsOfAlphRadio + ld a, [wc6d8] + cp RUINS_OF_ALPH + jr nz, .NoSignal + jp LoadStation_UnownRadio + +.PlacesAndPeople + call .InJohto + jr c, .NoSignal + ld a, [wPokegearFlags] + bit 3, a + jr z, .NoSignal + jp LoadStation_PlacesAndPeople + +.LetsAllSing + call .InJohto + jr c, .NoSignal + ld a, [wPokegearFlags] + bit 3, a + jr z, .NoSignal + jp LoadStation_LetsAllSing + +.PokeFluteRadio + call .InJohto + jr c, .NoSignal + ld a, [wPokegearFlags] + bit 3, a + jr z, .NoSignal + jp LoadStation_PokeFluteRadio + +.EvolutionRadio +; This station airs in the Lake of Rage area when Rocket are still in Mahogany. + + ld a, [StatusFlags] + bit 4, a + jr z, .NoSignal + + ld a, [wc6d8] + cp MAHOGANY_TOWN + jr z, .ok + cp ROUTE_43 + jr z, .ok + cp LAKE_OF_RAGE + jr nz, .NoSignal +.ok + jp LoadStation_EvolutionRadio + +.NoSignal + call NoRadioStation + ret + +.InJohto +; if in Johto or on the S.S. Aqua, set carry +; otherwise clear carry + ld a, [wc6d8] + cp FAST_SHIP + jr z, .johto + cp KANTO_LANDMARK + jr c, .johto +.kanto + and a + ret +.johto + scf + ret + + + +LoadStation_OaksPokemonTalk: ; 91753 (24:5753) + xor a ; OAKS_POKEMON_TALK + ld [wd002], a + ld [wd005], a + ld a, BANK(PlayRadioShow) + ld hl, PlayRadioShow + call Radio_BackUpFarCallParams + ld de, OaksPkmnTalkName + ret + +LoadStation_PokedexShow: ; 91766 (24:5766) + ld a, POKEDEX_SHOW + ld [wd002], a + xor a + ld [wd005], a + ld a, BANK(PlayRadioShow) + ld hl, PlayRadioShow + call Radio_BackUpFarCallParams + ld de, PokedexShowName + ret + +LoadStation_PokemonMusic: ; 9177b (24:577b) + ld a, POKEMON_MUSIC + ld [wd002], a + xor a + ld [wd005], a + ld a, BANK(PlayRadioShow) + ld hl, PlayRadioShow + call Radio_BackUpFarCallParams + ld de, PokemonMusicName + ret + +LoadStation_LuckyChannel: ; 91790 (24:5790) + ld a, LUCKY_CHANNEL + ld [wd002], a + xor a + ld [wd005], a + ld a, BANK(PlayRadioShow) + ld hl, PlayRadioShow + call Radio_BackUpFarCallParams + ld de, LuckyChannelName + ret + +LoadStation_BuenasPassword: ; 917a5 (24:57a5) + ld a, BUENAS_PASSWORD + ld [wd002], a + xor a + ld [wd005], a + ld a, BANK(PlayRadioShow) + ld hl, PlayRadioShow + call Radio_BackUpFarCallParams + ld de, NotBuenasPasswordName + ld a, [StatusFlags2] + bit 0, a + ret z + ld de, BuenasPasswordName + ret +; 917c3 (24:57c3) + +BuenasPasswordName: db "BUENA'S PASSWORD@" +NotBuenasPasswordName: db "@" + +LoadStation_UnownRadio: ; 917d5 (24:57d5) + ld a, UNOWN_RADIO + ld [wd002], a + xor a + ld [wd005], a + ld a, BANK(PlayRadioShow) + ld hl, PlayRadioShow + call Radio_BackUpFarCallParams + ld de, UnknownStationName + ret + +LoadStation_PlacesAndPeople: ; 917ea (24:57ea) + ld a, PLACES_AND_PEOPLE + ld [wd002], a + xor a + ld [wd005], a + ld a, BANK(PlayRadioShow) + ld hl, PlayRadioShow + call Radio_BackUpFarCallParams + ld de, PlacesAndPeopleName + ret + +LoadStation_LetsAllSing: ; 917ff (24:57ff) + ld a, LETS_ALL_SING + ld [wd002], a + xor a + ld [wd005], a + ld a, BANK(PlayRadioShow) + ld hl, PlayRadioShow + call Radio_BackUpFarCallParams + ld de, LetsAllSingName + ret +; 91814 (24:5814) + +LoadStation_RocketRadio: ; 91814 + ld a, ROCKET_RADIO + ld [wd002], a + xor a + ld [wd005], a + ld a, BANK(PlayRadioShow) + ld hl, PlayRadioShow + call Radio_BackUpFarCallParams + ld de, LetsAllSingName + ret +; 91829 + +LoadStation_PokeFluteRadio: ; 91829 (24:5829) + ld a, POKE_FLUTE_RADIO + ld [wd002], a + xor a + ld [wd005], a + ld a, BANK(PlayRadioShow) + ld hl, PlayRadioShow + call Radio_BackUpFarCallParams + ld de, PokeFluteStationName + ret + +LoadStation_EvolutionRadio: ; 9183e (24:583e) + ld a, EVOLUTION_RADIO + ld [wd002], a + xor a + ld [wd005], a + ld a, BANK(PlayRadioShow) + ld hl, PlayRadioShow + call Radio_BackUpFarCallParams + ld de, UnknownStationName + ret +; 91853 (24:5853) + +LoadStation_Dummy: ; 91853 + ret + +RadioMusicRestartDE: ; 91854 (24:5854) + push de + ld a, e + ld [wc6dc], a + ld de, MUSIC_NONE + call PlayMusic + pop de + ld a, e + ld [wMapMusic], a + call PlayMusic + ret + +RadioMusicRestartPokemonChannel: ; 91868 (24:5868) + push de + ld a, $fe + ld [wc6dc], a + ld de, MUSIC_NONE + call PlayMusic + pop de + ld de, MUSIC_POKEMON_CHANNEL + call PlayMusic + ret + +Radio_BackUpFarCallParams: ; 9187c (24:587c) + ld [wc6d9], a + ld a, l + ld [wc6da], a + ld a, h + ld [wc6db], a + ret + +NoRadioStation: ; 91888 (24:5888) + call NoRadioMusic + call NoRadioName + xor a + ld [wc6d9], a + ld [wc6da], a + ld [wc6db], a + ld a, $1 + ld [hBGMapMode], a + ret + +NoRadioMusic: ; 9189d (24:589d) + ld de, MUSIC_NONE + call PlayMusic + ld a, $ff + ld [wc6dc], a + ret + +NoRadioName: ; 918a9 (24:58a9) + xor a + ld [hBGMapMode], a + hlcoord 1, 8 + lb bc, 3, 18 + call ClearBox + hlcoord 0, 12 + ld bc, $412 + call TextBox + ret +; 918bf + +OaksPkmnTalkName: db "OAK's Talk@" +PokedexShowName: db "#DEX Show@" +PokemonMusicName: db "#MON Music@" +LuckyChannelName: db "Lucky Channel@" +UnknownStationName: db "?????@" +PlacesAndPeopleName: db "Places & People@" +LetsAllSingName: db "Let's All Sing!@" +PokeFluteStationName: db "# FLUTE@" +; 9191c + +INCLUDE "engine/town_map.asm" + +PlayRadio: ; 91a53 + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + call .PlayStation + ld c, 100 + call DelayFrames +.loop + call JoyTextDelay + ld a, [hJoyPressed] + and A_BUTTON | B_BUTTON + jr nz, .stop + ld a, [wc6da] + ld l, a + ld a, [wc6db] + ld h, a + ld a, [wc6d9] + and a + jr z, .zero + rst FarCall + +.zero + call DelayFrame + jr .loop + +.stop + pop af + ld [Options], a + call Function91492 + ret +; 91a87 + +.PlayStation: ; 91a87 + ld a, -1 + ld [EnemyTurnsTaken], a + ld hl, .StationPointers + ld d, $0 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + ld de, .jump_return + push de + jp [hl] + +.jump_return + push de + hlcoord 0, 12 + lb bc, 4, 18 + call TextBox + hlcoord 1, 14 + ld [hl], $72 + pop de + hlcoord 2, 14 + call PlaceString + ld h, b + ld l, c + ld [hl], $73 + call WaitBGMap + ret +; 91ab9 + +.StationPointers: ; 91ab9 + dw .OakOrPnP + dw LoadStation_OaksPokemonTalk + dw LoadStation_PokedexShow + dw LoadStation_PokemonMusic + dw LoadStation_LuckyChannel + dw LoadStation_UnownRadio + dw LoadStation_PlacesAndPeople + dw LoadStation_LetsAllSing + dw LoadStation_RocketRadio +; 91acb + +.OakOrPnP: ; 91acb + call IsInJohto + and a + jr nz, .kanto + call UpdateTime + ld a, [TimeOfDay] + and a + jp z, LoadStation_PokedexShow + jp LoadStation_OaksPokemonTalk + +.kanto + jp LoadStation_PlacesAndPeople +; 91ae1 +Function91ae1: ; 91ae1 + ld a, e + and a + jr nz, .kanto + call Function91ff2 + call FillJohtoMap + ret + +.kanto + call Function91ff2 + call FillKantoMap + ret +; 91af3 + +_FlyMap: ; 91af3 + call ClearBGPalettes + call ClearTileMap + call ClearSprites + ld hl, hInMenu + ld a, [hl] + push af + ld [hl], $1 + xor a + ld [hBGMapMode], a + callba Function8cf53 + call Function91ff2 + ld de, GFX_922e1 + ld hl, VTiles2 tile $30 + lb bc, BANK(GFX_922e1), 6 + call Request1bpp + call FlyMap + call Function91c8f + ld b, $2 + call GetSGBLayout + call SetPalettes +.loop + call JoyTextDelay + ld hl, hJoyPressed + ld a, [hl] + and B_BUTTON + jr nz, .pressedB + ld a, [hl] + and A_BUTTON + jr nz, .pressedA + call FlyMapScroll + call GetMapCursorCoordinates + callba Function8cf69 + call DelayFrame + jr .loop + +.pressedB + ld a, -1 + jr .exit + +.pressedA + ld a, [wd002] + ld l, a + ld h, 0 + add hl, hl + ld de, Flypoints + 1 + add hl, de + ld a, [hl] + +.exit + ld [wd002], a + pop af + ld [hInMenu], a + call ClearBGPalettes + ld a, $90 + ld [hWY], a + xor a + ld [hBGMapAddress], a + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a + ld a, [wd002] + ld e, a + ret +; 91b73 + +FlyMapScroll: ; 91b73 + ld a, [StartFlypoint] + ld e, a + ld a, [EndFlypoint] + ld d, a + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, .ScrollNext + ld a, [hl] + and D_DOWN + jr nz, .ScrollPrev + ret + +.ScrollNext + ld hl, wd002 + ld a, [hl] + cp d + jr nz, .NotAtEndYet + ld a, e + dec a + ld [hl], a + +.NotAtEndYet + inc [hl] + call CheckIfVisitedFlypoint + jr z, .ScrollNext + jr .Finally + +.ScrollPrev + ld hl, wd002 + ld a, [hl] + cp e + jr nz, .NotAtStartYet + ld a, d + inc a + ld [hl], a + +.NotAtStartYet + dec [hl] + call CheckIfVisitedFlypoint + jr z, .ScrollPrev + +.Finally + call TownMapBubble + call WaitBGMap + xor a + ld [hBGMapMode], a + ret +; 91bb5 + +TownMapBubble: ; 91bb5 +; Draw the bubble containing the location text in the town map HUD + +; Top-left corner + hlcoord 1, 0 + ld a, $30 + ld [hli], a + +; Top row + ld bc, 16 + ld a, " " + call ByteFill + +; Top-right corner + ld a, $31 + ld [hl], a + hlcoord 1, 1 + + +; Middle row + ld bc, 18 + ld a, " " + call ByteFill + + +; Bottom-left corner + hlcoord 1, 2 + ld a, $32 + ld [hli], a + +; Bottom row + ld bc, 16 + ld a, " " + call ByteFill + +; Bottom-right corner + ld a, $33 + ld [hl], a + + +; Print "Where?" + hlcoord 2, 0 + ld de, .Where + call PlaceString + +; Print the name of the default flypoint + call .Name + +; Up/down arrows + hlcoord 18, 1 + ld [hl], $34 + ret + +.Where + db "Where?@" + +.Name +; We need the map location of the default flypoint + ld a, [wd002] + ld l, a + ld h, 0 + add hl, hl ; two bytes per flypoint + ld de, Flypoints + add hl, de + ld e, [hl] + + callba GetLandmarkName + + hlcoord 2, 1 + ld de, StringBuffer1 + call PlaceString + ret +; 91c17 + +GetMapCursorCoordinates: ; 91c17 + ld a, [wd002] + ld l, a + ld h, $0 + add hl, hl + ld de, Flypoints + add hl, de + ld e, [hl] + callba GetLandmarkCoords + ld a, [wd003] + ld c, a + ld a, [wd004] + ld b, a + ld hl, $4 + add hl, bc + ld [hl], e + ld hl, $5 + add hl, bc + ld [hl], d + ret +; 91c3c + +CheckIfVisitedFlypoint: ; 91c3c +; Check if the flypoint loaded in [hl] has been visited yet. + push bc + push de + push hl + ld l, [hl] + ld h, 0 + add hl, hl + ld de, Flypoints + 1 + add hl, de + ld c, [hl] + call HasVisitedSpawn + pop hl + pop de + pop bc + and a + ret +; 91c50 + +HasVisitedSpawn: ; 91c50 +; Check if spawn point c has been visited. + ld hl, VisitedSpawns + ld b, CHECK_FLAG + ld d, 0 + predef FlagPredef + ld a, c + ret +; 91c5e + +Flypoints: ; 91c5e +; landmark, spawn point + + const_def + +flypoint: MACRO +; \1\@FLY EQUS "FLY_\1" +; \1\@SPAWN EQUS "SPAWN_\1" + ; const \1\@FLY + ; db \2, \1\@SPAWN + const FLY_\1 + db \2, SPAWN_\1 +ENDM + +; Johto + flypoint NEW_BARK, NEW_BARK_TOWN + flypoint CHERRYGROVE, CHERRYGROVE_CITY + flypoint VIOLET, VIOLET_CITY + flypoint AZALEA, AZALEA_TOWN + flypoint GOLDENROD, GOLDENROD_CITY + flypoint ECRUTEAK, ECRUTEAK_CITY + flypoint OLIVINE, OLIVINE_CITY + flypoint CIANWOOD, CIANWOOD_CITY + flypoint MAHOGANY, MAHOGANY_TOWN + flypoint LAKE, LAKE_OF_RAGE + flypoint BLACKTHORN, BLACKTHORN_CITY + flypoint MT_SILVER, SILVER_CAVE + +; Kanto +KANTO_FLYPOINT EQU const_value + + flypoint PALLET, PALLET_TOWN + flypoint VIRIDIAN, VIRIDIAN_CITY + flypoint PEWTER, PEWTER_CITY + flypoint CERULEAN, CERULEAN_CITY + flypoint VERMILION, VERMILION_CITY + flypoint ROCK_TUNNEL, ROCK_TUNNEL + flypoint LAVENDER, LAVENDER_TOWN + flypoint CELADON, CELADON_CITY + flypoint SAFFRON, SAFFRON_CITY + flypoint FUCHSIA, FUCHSIA_CITY + flypoint CINNABAR, CINNABAR_ISLAND + flypoint INDIGO, INDIGO_PLATEAU + + db -1 +; 91c8f + +Function91c8f: ; 91c8f + ret +; 91c90 + +FlyMap: ; 91c90 + + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetWorldMapLocation + +; If we're not in a valid location, i.e. Pokecenter floor 2F, +; the backup map information is used + + cp SPECIAL_MAP + jr nz, .CheckRegion + + ld a, [BackupMapGroup] + ld b, a + ld a, [BackupMapNumber] + ld c, a + call GetWorldMapLocation + +.CheckRegion +; The first 46 locations are part of Johto. The rest are in Kanto + cp KANTO_LANDMARK + jr nc, .KantoFlyMap + +.JohtoFlyMap +; Note that .NoKanto should be modified in tandem with this branch + + push af + +; Start from New Bark Town + ld a, FLY_NEW_BARK + ld [wd002], a + +; Flypoints begin at New Bark Town... + ld [StartFlypoint], a +; ..and end at Silver Cave + ld a, FLY_MT_SILVER + ld [EndFlypoint], a + +; Fill out the map + call FillJohtoMap + call .MapHud + pop af + call TownMapPlayerIcon + ret + +.KantoFlyMap + +; The event that there are no flypoints enabled in a map is not +; accounted for. As a result, if you attempt to select a flypoint +; when there are none enabled, the game will crash. Additionally, +; the flypoint selection has a default starting point that +; can be flown to even if none are enabled + +; To prevent both of these things from happening when the player +; enters Kanto, fly access is restricted until Indigo Plateau is +; visited and its flypoint enabled + + push af + ld c, SPAWN_INDIGO + call HasVisitedSpawn + and a + jr z, .NoKanto + +; Kanto's map is only loaded if we've visited Indigo Plateau + +; Flypoints begin at Pallet Town... + ld a, FLY_PALLET + ld [StartFlypoint], a +; ...and end at Indigo Plateau + ld a, FLY_INDIGO + ld [EndFlypoint], a + +; Because Indigo Plateau is the first flypoint the player +; visits, it's made the default flypoint + ld [wd002], a + +; Fill out the map + call FillKantoMap + call .MapHud + pop af + call TownMapPlayerIcon + ret + +.NoKanto +; If Indigo Plateau hasn't been visited, we use Johto's map instead + +; Start from New Bark Town + ld a, FLY_NEW_BARK + ld [wd002], a + +; Flypoints begin at New Bark Town... + ld [StartFlypoint], a +; ..and end at Silver Cave + ld a, FLY_MT_SILVER + ld [EndFlypoint], a + + call FillJohtoMap + + pop af + +.MapHud + call TownMapBubble + call TownMapPals + + ld hl, VBGMap0 ; BG Map 0 + call TownMapBGUpdate + + call TownMapMon + ld a, c + ld [wd003], a + ld a, b + ld [wd004], a + ret +; 91d11 + +Function91d11: ; 91d11 + ld a, [wd002] + push af + ld a, [wd003] + push af + ld a, e + ld [wd002], a + call ClearSprites + xor a + ld [hBGMapMode], a + ld a, $1 + ld [hInMenu], a + + ld de, GFX_922d1 + ld hl, VTiles0 tile $7f + lb bc, BANK(GFX_922d1), 1 + call Request2bpp ; actually 1bpp + + call Function91ed0 + + ld hl, VTiles0 tile $78 + ld c, $4 + call Request2bpp + + call Function91ff2 + call FillKantoMap + call Function91de9 + call TownMapPals + ld hl, VBGMap1 + call TownMapBGUpdate + call FillJohtoMap + call Function91de9 + call TownMapPals + ld hl, VBGMap0 + call TownMapBGUpdate + ld b, $2 + call GetSGBLayout + call SetPalettes + xor a + ld [hBGMapMode], a + xor a + call Function91e1e +.loop + call JoyTextDelay + ld hl, hJoyPressed + ld a, [hl] + and A_BUTTON | B_BUTTON + jr nz, .a_b + ld a, [hJoypadDown] + and SELECT + jr nz, .select + call Function91d9b + call Function91dcd + jr .next + +.select + call Function91e5a + +.next + call DelayFrame + jr .loop + +.a_b + call ClearSprites + pop af + ld [wd003], a + pop af + ld [wd002], a + ret +; 91d9b + +Function91d9b: ; 91d9b + ld a, [hl] + and $20 + jr nz, .asm_91da6 + ld a, [hl] + and $10 + jr nz, .asm_91db7 + ret + +.asm_91da6 + ld a, [hWY] + cp $90 + ret z + call ClearSprites + ld a, $90 + ld [hWY], a + xor a + call Function91e1e + ret + +.asm_91db7 + ld a, [StatusFlags] + bit 6, a ; hall of fame + ret z + ld a, [hWY] + and a + ret z + call ClearSprites + xor a + ld [hWY], a + ld a, $1 + call Function91e1e + ret +; 91dcd + +Function91dcd: ; 91dcd + ld a, [hVBlankCounter] + ld e, a + and $f + ret nz + ld a, e + and $10 + jr nz, .asm_91ddc + call ClearSprites + ret + +.asm_91ddc + hlcoord 0, 0 + ld de, Sprites + ld bc, $a0 + call CopyBytes + ret +; 91de9 + +Function91de9: ; 91de9 + hlcoord 0, 0 + ld bc, SCREEN_WIDTH + ld a, $7f + call ByteFill + hlcoord 0, 1 + ld a, $6 + ld [hli], a + ld bc, SCREEN_HEIGHT + ld a, $7 + call ByteFill + ld [hl], $17 + call GetPokemonName + hlcoord 2, 0 + call PlaceString + ld h, b + ld l, c + ld de, String_91e16 + call PlaceString + ret +; 91e16 + +String_91e16: + db "'S NEST@" +; 91e1e + +Function91e1e: ; 91e1e + ld [wd003], a + ld e, a + callba Function2a01f + decoord 0, 0 + ld hl, Sprites +.asm_91e2e + ld a, [de] + and a + jr z, .asm_91e4d + push de + ld e, a + push hl + callba GetLandmarkCoords + pop hl + ld a, d + sub $4 + ld [hli], a + ld a, e + sub $4 + ld [hli], a + ld a, $7f + ld [hli], a + xor a + ld [hli], a + pop de + inc de + jr .asm_91e2e + +.asm_91e4d + ld hl, Sprites + decoord 0, 0 + ld bc, $a0 + call CopyBytes + ret +; 91e5a + +Function91e5a: ; 91e5a + call Function91ea9 + ret c + + ld a, [wd002] + ld e, a + callba GetLandmarkCoords + ld c, e + ld b, d + ld de, Unknown_91e9c + ld hl, Sprites +.asm_91e70 + ld a, [de] + cp $80 + jr z, .asm_91e91 + + add b + ld [hli], a + inc de + + ld a, [de] + add c + ld [hli], a + inc de + + ld a, [de] + add $78 + ld [hli], a + inc de + + push bc + ld c, 0 + ld a, [PlayerGender] + bit 0, a + jr z, .asm_91e8c + inc c +.asm_91e8c + ld a, c + ld [hli], a + pop bc + + jr .asm_91e70 + +.asm_91e91 + ld hl, Sprites + $10 + ld bc, SpritesEnd - (Sprites + $10) + xor a + call ByteFill + ret +; 91e9c + +Unknown_91e9c: ; 91e9c + db -8, -8, 0 + db -8, 0, 1 + db 0, -8, 2 + db 0, 0, 3 + db $80 ; terminator +; 91ea9 + +Function91ea9: ; 91ea9 + ld a, [wd002] + cp FAST_SHIP + jr z, .johto + cp KANTO_LANDMARK + jr c, .johto + +.kanto + ld a, [wd003] + and a + jr z, .clear + jr .ok + +.johto + ld a, [wd003] + and a + jr nz, .clear + +.ok + and a + ret + +.clear + ld hl, Sprites + ld bc, SpritesEnd - Sprites + xor a + call ByteFill + scf + ret +; 91ed0 + +Function91ed0: ; 91ed0 + ld a, [wd002] + cp FAST_SHIP + jr z, .asm_91ede + callba GetPlayerIcon + ret + +.asm_91ede + ld de, FastShipGFX + ld b, BANK(FastShipGFX) + ret +; 91ee4 + +TownMapBGUpdate: ; 91ee4 +; Update BG Map tiles and attributes + +; BG Map address + ld a, l + ld [hBGMapAddress], a + ld a, h + ld [hBGMapAddress + 1], a + +; Only update palettes on CGB + ld a, [hCGB] + and a + jr z, .tiles + +; BG Map mode 2 (palettes) + ld a, 2 + ld [hBGMapMode], a + +; The BG Map is updated in thirds, so we wait +; 3 frames to update the whole screen's palettes. + ld c, 3 + call DelayFrames + +.tiles +; Update BG Map tiles + call WaitBGMap + +; Turn off BG Map update + xor a + ld [hBGMapMode], a + ret +; 91eff + +FillJohtoMap: ; 91eff + ld de, JohtoMap + jr FillTownMap + +FillKantoMap: ; 91f04 + ld de, KantoMap + +FillTownMap: ; 91f07 + hlcoord 0, 0 +.loop + ld a, [de] + cp $ff + ret z + ld a, [de] + ld [hli], a + inc de + jr .loop +; 91f13 + +TownMapPals: ; 91f13 +; Assign palettes based on tile ids + + hlcoord 0, 0 + decoord 0, 0, AttrMap + ld bc, 360 +.loop +; Current tile + ld a, [hli] + push hl + +; HP/borders use palette 0 + cp $60 + jr nc, .pal0 + +; The palette data is condensed to nybbles, +; least-significant first. + ld hl, TownMapPalMap + srl a + jr c, .odd + +; Even-numbered tile ids take the bottom nybble... + add l + ld l, a + ld a, h + adc 0 + ld h, a + ld a, [hl] + and %111 + jr .update + +.odd +; ...and odd ids take the top. + add l + ld l, a + ld a, h + adc 0 + ld h, a + ld a, [hl] + swap a + and %111 + jr .update + +.pal0 + xor a + +.update + pop hl + ld [de], a + inc de + dec bc + ld a, b + or c + jr nz, .loop + ret + +TownMapPalMap: + db $11, $21, $22, $00, $11, $13, $54, $54, $11, $21, $22, $00 + db $11, $10, $01, $00, $11, $21, $22, $00, $00, $00, $00, $00 + db $00, $00, $44, $04, $00, $00, $00, $00, $33, $33, $33, $33 + db $33, $33, $33, $03, $33, $33, $33, $33, $00, $00, $00, $00 +; 91f7b + +TownMapMon: ; 91f7b +; Draw the FlyMon icon at town map location in + +; Get FlyMon species + ld a, [CurPartyMon] + ld hl, PartySpecies + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + ld [wd265], a + +; Get FlyMon icon + ld e, 8 ; starting tile in VRAM + callba GetSpeciesIcon + +; Animation/palette + ld de, 0 + ld a, $0 + call _InitSpriteAnimStruct + + ld hl, 3 + add hl, bc + ld [hl], 8 + ld hl, 2 + add hl, bc + ld [hl], 0 + ret +; 91fa6 + +TownMapPlayerIcon: ; 91fa6 +; Draw the player icon at town map location in a + push af + + callba GetPlayerIcon + +; Standing icon + ld hl, VTiles0 tile $10 + ld c, 4 ; # tiles + call Request2bpp + +; Walking icon + ld hl, $c0 + add hl, de + ld d, h + ld e, l + ld hl, VTiles0 tile $14 + ld c, 4 ; # tiles + ld a, BANK(ChrisSpriteGFX) ; does nothing + call Request2bpp + +; Animation/palette + ld de, 0 + ld b, $0a ; Male + ld a, [PlayerGender] + bit 0, a + jr z, .asm_91fd3 + ld b, $1e ; Female +.asm_91fd3 + ld a, b + call _InitSpriteAnimStruct + + ld hl, $3 + add hl, bc + ld [hl], $10 + + pop af + ld e, a + push bc + callba GetLandmarkCoords + pop bc + + ld hl, 4 + add hl, bc + ld [hl], e + ld hl, 5 + add hl, bc + ld [hl], d + ret +; 0x91ff2 + +Function91ff2: ; 91ff2 + ld hl, TownMapGFX + ld de, VTiles2 + lb bc, BANK(TownMapGFX), $30 + call DecompressRequest2bpp + ret +; 91fff + + +JohtoMap: ; 91fff +INCBIN "gfx/misc/johto.bin" +; 92168 + +KantoMap: ; 92168 +INCBIN "gfx/misc/kanto.bin" +; 922d1 + + +GFX_922d1: ; 922d1 +INCBIN "gfx/unknown/0922d1.2bpp" +GFX_922e1: ; 922e1 +INCBIN "gfx/unknown/0922e1.2bpp" +GFX_92301: ; 92301 +INCBIN "gfx/unknown/092301.2bpp" +Function92311: ; unreferenced + xor a + ld [wd002], a + call ClearBGPalettes + call ClearTileMap + call ClearSprites + ld hl, hInMenu + ld a, [hl] + push af + ld [hl], $1 + xor a + ld [hBGMapMode], a + callba Function8cf53 + call Function91ff2 + ld de, GFX_922e1 + ld hl, VTiles2 tile $30 + lb bc, BANK(GFX_922e1), 6 + call Request1bpp + call FillKantoMap + call TownMapBubble + call TownMapPals + ld hl, VBGMap1 + call TownMapBGUpdate + call FillJohtoMap + call TownMapBubble + call TownMapPals + ld hl, VBGMap0 + call TownMapBGUpdate + call TownMapMon + ld a, c + ld [wd003], a + ld a, b + ld [wd004], a + ld b, SCGB_02 + call GetSGBLayout + call SetPalettes +.loop + call JoyTextDelay + ld hl, hJoyPressed + ld a, [hl] + and B_BUTTON + jr nz, .pressedB + ld a, [hl] + and A_BUTTON + jr nz, .pressedA + call Function923b8 + call GetMapCursorCoordinates + callba Function8cf69 + call DelayFrame + jr .loop + +.pressedB + ld a, -1 + jr .asm_9239f + +.pressedA + ld a, [wd002] + ld l, a + ld h, 0 + add hl, hl + ld de, Flypoints + 1 + add hl, de + ld a, [hl] + +.asm_9239f + ld [wd002], a + pop af + ld [hInMenu], a + call ClearBGPalettes + ld a, $90 + ld [hWY], a + xor a + ld [hBGMapAddress], a + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a + ld a, [wd002] + ld e, a + ret +; 923b8 + +Function923b8: ; 923b8 + ld hl, hJoyLast + ld a, [hl] + and D_DOWN | D_RIGHT + jr nz, .asm_923c6 + ld a, [hl] + and D_UP | D_LEFT + jr nz, .asm_923d3 + ret + +.asm_923c6 + ld hl, wd002 + ld a, [hl] + cp FLY_INDIGO + jr c, .asm_923d0 + ld [hl], -1 +.asm_923d0 + inc [hl] + jr .asm_923dd + +.asm_923d3 + ld hl, wd002 + ld a, [hl] + and a + jr nz, .asm_923dc + ld [hl], FLY_INDIGO + 1 +.asm_923dc + dec [hl] + +.asm_923dd + ld a, [wd002] + cp KANTO_FLYPOINT + jr c, .johto + + call FillKantoMap + xor a + ld b, $9c + jr .asm_923f3 + +.johto + call FillJohtoMap + ld a, $90 + ld b, $98 + +.asm_923f3 + ld [hWY], a + ld a, b + ld [hBGMapAddress + 1], a + call TownMapBubble + call WaitBGMap + xor a + ld [hBGMapMode], a + ret +; 92402 diff --git a/engine/radio2.asm b/engine/radio2.asm deleted file mode 100644 index e9ffedd7c..000000000 --- a/engine/radio2.asm +++ /dev/null @@ -1,664 +0,0 @@ -_UpdateRadioStation: ; 9163e (24:563e) - jr UpdateRadioStation - -Function91640: ; 91640 (24:5640) - push bc - call .TuningKnob - pop bc - ld a, [wRadioTuningKnob] - ld hl, $6 - add hl, bc - ld [hl], a - ret - -.TuningKnob: ; 9164e (24:564e) - ld hl, hJoyLast - ld a, [hl] - and D_DOWN - jr nz, .down - ld a, [hl] - and D_UP - jr nz, .up - ret - -.down - ld hl, wRadioTuningKnob - ld a, [hl] - and a - ret z -rept 2 - dec [hl] -endr - jr .update - -.up - ld hl, wRadioTuningKnob - ld a, [hl] - cp 80 - ret nc -rept 2 - inc [hl] -endr - -.update - -UpdateRadioStation: ; 9166f (24:566f) - ld hl, wRadioTuningKnob - ld d, [hl] - ld hl, RadioChannels -.loop - ld a, [hli] - cp -1 - jr z, .nostation - cp d - jr z, .foundstation -rept 2 - inc hl -endr - jr .loop - -.nostation - call NoRadioStation - ret - -.foundstation - ld a, [hli] - ld h, [hl] - ld l, a - ld de, .returnafterstation - push de - jp [hl] -.returnafterstation - ld a, [wc6d9] - and a - ret z - xor a - ld [hBGMapMode], a - hlcoord 2, 9 - call PlaceString - ld a, $1 - ld [hBGMapMode], a - ret -; 916a1 (24:56a1) - -Function916a1: ; 916a1 - ld [wc6d9], a - ld a, [hli] - ld [wc6da], a - ld a, [hli] - ld [wc6db], a - ret -; 916ad - - -RadioChannels: -; frequencies and the shows that play on them. -; frequency value given here = 4 × ingame_frequency − 2 - dbw 16, .PkmnTalkAndPokedexShow - dbw 28, .PokemonMusic - dbw 32, .LuckyChannel - dbw 40, .BuenasPassword - dbw 52, .RuinsOfAlphRadio - dbw 64, .PlacesAndPeople - dbw 72, .LetsAllSing - dbw 78, .PokeFluteRadio - dbw 80, .EvolutionRadio - db $ff - -.PkmnTalkAndPokedexShow -; Pokédex Show in the morning -; Oak's Pokémon Talk in the afternoon and evening - call .InJohto - jr nc, .NoSignal - ld a, [TimeOfDay] - and a - jp z, LoadStation_PokedexShow - jp LoadStation_OaksPokemonTalk - -.PokemonMusic - call .InJohto - jr nc, .NoSignal - jp LoadStation_PokemonMusic - -.LuckyChannel - call .InJohto - jr nc, .NoSignal - jp LoadStation_LuckyChannel - -.BuenasPassword - call .InJohto - jr nc, .NoSignal - jp LoadStation_BuenasPassword - -.RuinsOfAlphRadio - ld a, [wc6d8] - cp RUINS_OF_ALPH - jr nz, .NoSignal - jp LoadStation_UnownRadio - -.PlacesAndPeople - call .InJohto - jr c, .NoSignal - ld a, [wPokegearFlags] - bit 3, a - jr z, .NoSignal - jp LoadStation_PlacesAndPeople - -.LetsAllSing - call .InJohto - jr c, .NoSignal - ld a, [wPokegearFlags] - bit 3, a - jr z, .NoSignal - jp LoadStation_LetsAllSing - -.PokeFluteRadio - call .InJohto - jr c, .NoSignal - ld a, [wPokegearFlags] - bit 3, a - jr z, .NoSignal - jp LoadStation_PokeFluteRadio - -.EvolutionRadio -; This station airs in the Lake of Rage area when Rocket are still in Mahogany. - - ld a, [StatusFlags] - bit 4, a - jr z, .NoSignal - - ld a, [wc6d8] - cp MAHOGANY_TOWN - jr z, .ok - cp ROUTE_43 - jr z, .ok - cp LAKE_OF_RAGE - jr nz, .NoSignal -.ok - jp LoadStation_EvolutionRadio - -.NoSignal - call NoRadioStation - ret - -.InJohto -; if in Johto or on the S.S. Aqua, set carry -; otherwise clear carry - ld a, [wc6d8] - cp FAST_SHIP - jr z, .johto - cp KANTO_LANDMARK - jr c, .johto -.kanto - and a - ret -.johto - scf - ret - - - -LoadStation_OaksPokemonTalk: ; 91753 (24:5753) - xor a ; OAKS_POKEMON_TALK - ld [wd002], a - ld [wd005], a - ld a, BANK(PlayRadioShow) - ld hl, PlayRadioShow - call Radio_BackUpFarCallParams - ld de, OaksPkmnTalkName - ret - -LoadStation_PokedexShow: ; 91766 (24:5766) - ld a, POKEDEX_SHOW - ld [wd002], a - xor a - ld [wd005], a - ld a, BANK(PlayRadioShow) - ld hl, PlayRadioShow - call Radio_BackUpFarCallParams - ld de, PokedexShowName - ret - -LoadStation_PokemonMusic: ; 9177b (24:577b) - ld a, POKEMON_MUSIC - ld [wd002], a - xor a - ld [wd005], a - ld a, BANK(PlayRadioShow) - ld hl, PlayRadioShow - call Radio_BackUpFarCallParams - ld de, PokemonMusicName - ret - -LoadStation_LuckyChannel: ; 91790 (24:5790) - ld a, LUCKY_CHANNEL - ld [wd002], a - xor a - ld [wd005], a - ld a, BANK(PlayRadioShow) - ld hl, PlayRadioShow - call Radio_BackUpFarCallParams - ld de, LuckyChannelName - ret - -LoadStation_BuenasPassword: ; 917a5 (24:57a5) - ld a, BUENAS_PASSWORD - ld [wd002], a - xor a - ld [wd005], a - ld a, BANK(PlayRadioShow) - ld hl, PlayRadioShow - call Radio_BackUpFarCallParams - ld de, NotBuenasPasswordName - ld a, [StatusFlags2] - bit 0, a - ret z - ld de, BuenasPasswordName - ret -; 917c3 (24:57c3) - -BuenasPasswordName: db "BUENA'S PASSWORD@" -NotBuenasPasswordName: db "@" - -LoadStation_UnownRadio: ; 917d5 (24:57d5) - ld a, UNOWN_RADIO - ld [wd002], a - xor a - ld [wd005], a - ld a, BANK(PlayRadioShow) - ld hl, PlayRadioShow - call Radio_BackUpFarCallParams - ld de, UnknownStationName - ret - -LoadStation_PlacesAndPeople: ; 917ea (24:57ea) - ld a, PLACES_AND_PEOPLE - ld [wd002], a - xor a - ld [wd005], a - ld a, BANK(PlayRadioShow) - ld hl, PlayRadioShow - call Radio_BackUpFarCallParams - ld de, PlacesAndPeopleName - ret - -LoadStation_LetsAllSing: ; 917ff (24:57ff) - ld a, LETS_ALL_SING - ld [wd002], a - xor a - ld [wd005], a - ld a, BANK(PlayRadioShow) - ld hl, PlayRadioShow - call Radio_BackUpFarCallParams - ld de, LetsAllSingName - ret -; 91814 (24:5814) - -LoadStation_RocketRadio: ; 91814 - ld a, ROCKET_RADIO - ld [wd002], a - xor a - ld [wd005], a - ld a, BANK(PlayRadioShow) - ld hl, PlayRadioShow - call Radio_BackUpFarCallParams - ld de, LetsAllSingName - ret -; 91829 - -LoadStation_PokeFluteRadio: ; 91829 (24:5829) - ld a, POKE_FLUTE_RADIO - ld [wd002], a - xor a - ld [wd005], a - ld a, BANK(PlayRadioShow) - ld hl, PlayRadioShow - call Radio_BackUpFarCallParams - ld de, PokeFluteStationName - ret - -LoadStation_EvolutionRadio: ; 9183e (24:583e) - ld a, EVOLUTION_RADIO - ld [wd002], a - xor a - ld [wd005], a - ld a, BANK(PlayRadioShow) - ld hl, PlayRadioShow - call Radio_BackUpFarCallParams - ld de, UnknownStationName - ret -; 91853 (24:5853) - -LoadStation_Dummy: ; 91853 - ret - -RadioMusicRestartDE: ; 91854 (24:5854) - push de - ld a, e - ld [wc6dc], a - ld de, MUSIC_NONE - call PlayMusic - pop de - ld a, e - ld [wMapMusic], a - call PlayMusic - ret - -RadioMusicRestartPokemonChannel: ; 91868 (24:5868) - push de - ld a, $fe - ld [wc6dc], a - ld de, MUSIC_NONE - call PlayMusic - pop de - ld de, MUSIC_POKEMON_CHANNEL - call PlayMusic - ret - -Radio_BackUpFarCallParams: ; 9187c (24:587c) - ld [wc6d9], a - ld a, l - ld [wc6da], a - ld a, h - ld [wc6db], a - ret - -NoRadioStation: ; 91888 (24:5888) - call NoRadioMusic - call NoRadioName - xor a - ld [wc6d9], a - ld [wc6da], a - ld [wc6db], a - ld a, $1 - ld [hBGMapMode], a - ret - -NoRadioMusic: ; 9189d (24:589d) - ld de, MUSIC_NONE - call PlayMusic - ld a, $ff - ld [wc6dc], a - ret - -NoRadioName: ; 918a9 (24:58a9) - xor a - ld [hBGMapMode], a - hlcoord 1, 8 - lb bc, 3, 18 - call ClearBox - hlcoord 0, 12 - ld bc, $412 - call TextBox - ret -; 918bf - -OaksPkmnTalkName: db "OAK's Talk@" -PokedexShowName: db "#DEX Show@" -PokemonMusicName: db "#MON Music@" -LuckyChannelName: db "Lucky Channel@" -UnknownStationName: db "?????@" -PlacesAndPeopleName: db "Places & People@" -LetsAllSingName: db "Let's All Sing!@" -PokeFluteStationName: db "# FLUTE@" -; 9191c - - -Function9191c: ; 9191c - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - ld a, [VramState] - push af - xor a - ld [VramState], a - call ClearBGPalettes - call ClearTileMap - call ClearSprites - call DisableLCD - call Function90c4e - callba Function8cf53 - ld a, 8 - call SkipMusic - ld a, $e3 - ld [rLCDC], a - call Function90d56 - ld [wd002], a - ld [wd003], a - xor a - ld [hBGMapMode], a - call Function91a04 - call Function3200 - ld a, [wd002] - call Function9106a - ld a, [wd003] - call Function91098 - ld a, c - ld [wd004], a - ld a, b - ld [wd005], a - ld b, SCGB_02 - call GetSGBLayout - call SetPalettes - ld a, [hCGB] - and a - jr z, .asm_9198b - ld a, $e4 - call Functioncf8 - call DelayFrame - -.asm_9198b - ld a, [wd002] - cp KANTO_LANDMARK - jr nc, .asm_9199b - ld d, KANTO_LANDMARK - 1 - ld e, 1 - call Function919b0 - jr .asm_919a1 - -.asm_9199b - call Function910e8 - call Function919b0 - -.asm_919a1 - pop af - ld [VramState], a - pop af - ld [hInMenu], a - pop af - ld [Options], a - call ClearBGPalettes - ret -; 919b0 - -Function919b0: ; 919b0 -.asm_919b0 - call JoyTextDelay - ld hl, hJoyPressed - ld a, [hl] - and B_BUTTON - ret nz - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .asm_919d4 - ld a, [hl] - and D_DOWN - jr nz, .asm_919e1 -.asm_919c7 - push de - callba Function8cf69 - pop de - call DelayFrame - jr .asm_919b0 - -.asm_919d4 - ld hl, wd003 - ld a, [hl] - cp d - jr c, .asm_919de - ld a, e - dec a - ld [hl], a - -.asm_919de - inc [hl] - jr .asm_919ec - -.asm_919e1 - ld hl, wd003 - ld a, [hl] - cp e - jr nz, .asm_919eb - ld a, d - inc a - ld [hl], a - -.asm_919eb - dec [hl] - -.asm_919ec - push de - ld a, [wd003] - call Function910b4 - ld a, [wd004] - ld c, a - ld a, [wd005] - ld b, a - ld a, [wd003] - call Function910d4 - pop de - jr .asm_919c7 -; 91a04 - -Function91a04: ; 91a04 - ld a, [wd002] - cp KANTO_LANDMARK - jr nc, .asm_91a0f - ld e, $0 - jr .asm_91a11 - -.asm_91a0f - ld e, $1 - -.asm_91a11 - callba Function91ae1 - ld a, $7 - ld bc, 6 - hlcoord 1, 0 - call ByteFill - hlcoord 0, 0 - ld [hl], $6 - hlcoord 7, 0 - ld [hl], $17 - hlcoord 7, 1 - ld [hl], $16 - hlcoord 7, 2 - ld [hl], $26 - ld a, $7 - ld bc, NAME_LENGTH - hlcoord 8, 2 - call ByteFill - hlcoord 19, 2 - ld [hl], $17 - ld a, [wd003] - call Function910b4 - callba TownMapPals - ret -; 91a53 - -PlayRadio: ; 91a53 - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - call .PlayStation - ld c, 100 - call DelayFrames -.loop - call JoyTextDelay - ld a, [hJoyPressed] - and A_BUTTON | B_BUTTON - jr nz, .stop - ld a, [wc6da] - ld l, a - ld a, [wc6db] - ld h, a - ld a, [wc6d9] - and a - jr z, .zero - rst FarCall - -.zero - call DelayFrame - jr .loop - -.stop - pop af - ld [Options], a - call Function91492 - ret -; 91a87 - -.PlayStation: ; 91a87 - ld a, -1 - ld [EnemyTurnsTaken], a - ld hl, .StationPointers - ld d, $0 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - ld de, .jump_return - push de - jp [hl] - -.jump_return - push de - hlcoord 0, 12 - lb bc, 4, 18 - call TextBox - hlcoord 1, 14 - ld [hl], $72 - pop de - hlcoord 2, 14 - call PlaceString - ld h, b - ld l, c - ld [hl], $73 - call WaitBGMap - ret -; 91ab9 - -.StationPointers: ; 91ab9 - dw .OakOrPnP - dw LoadStation_OaksPokemonTalk - dw LoadStation_PokedexShow - dw LoadStation_PokemonMusic - dw LoadStation_LuckyChannel - dw LoadStation_UnownRadio - dw LoadStation_PlacesAndPeople - dw LoadStation_LetsAllSing - dw LoadStation_RocketRadio -; 91acb - -.OakOrPnP: ; 91acb - call IsInJohto - and a - jr nz, .kanto - call UpdateTime - ld a, [TimeOfDay] - and a - jp z, LoadStation_PokedexShow - jp LoadStation_OaksPokemonTalk - -.kanto - jp LoadStation_PlacesAndPeople -; 91ae1 diff --git a/engine/specials.asm b/engine/specials.asm index 825cf3870..b9911dc47 100644 --- a/engine/specials.asm +++ b/engine/specials.asm @@ -285,7 +285,7 @@ SpecialNameRater: ; c2b9 Special_TownMap: ; c2c0 call FadeToMenu - callba Function9191c + callba _TownMap call Function2b4d ret ; c2cd diff --git a/engine/startmenu.asm b/engine/startmenu.asm index 1c7768850..efb6c817a 100755 --- a/engine/startmenu.asm +++ b/engine/startmenu.asm @@ -494,7 +494,7 @@ StartMenu_Pokedex: ; 12937 StartMenu_Pokegear: ; 1294c call FadeToMenu - callba Function90b8d + callba PokeGear call Function2b3c ld a, 0 ret diff --git a/engine/town_map.asm b/engine/town_map.asm index bc24af23b..a2f93119a 100755 --- a/engine/town_map.asm +++ b/engine/town_map.asm @@ -1,1068 +1,173 @@ -Function91ae1: ; 91ae1 - ld a, e - and a - jr nz, .kanto - call Function91ff2 - call FillJohtoMap - ret -.kanto - call Function91ff2 - call FillKantoMap - ret -; 91af3 +_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 -_FlyMap: ; 91af3 call ClearBGPalettes call ClearTileMap call ClearSprites - ld hl, hInMenu - ld a, [hl] - push af - ld [hl], $1 + call DisableLCD + call Function90c4e + callba Function8cf53 + ld a, 8 + call SkipMusic + ld a, $e3 + ld [rLCDC], a + call Function90d56 + ld [wd002], a + ld [wd003], a xor a ld [hBGMapMode], a - callba Function8cf53 - call Function91ff2 - ld de, GFX_922e1 - ld hl, VTiles2 tile $30 - lb bc, BANK(GFX_922e1), 6 - call Request1bpp - call FlyMap - call Function91c8f - ld b, $2 + call Function91a04 + call Function3200 + ld a, [wd002] + call Function9106a + ld a, [wd003] + call Function91098 + ld a, c + ld [wd004], a + ld a, b + ld [wd005], a + ld b, SCGB_02 call GetSGBLayout call SetPalettes + ld a, [hCGB] + and a + jr z, .sgb + ld a, $e4 + call Functioncf8 + call DelayFrame + +.sgb + ld a, [wd002] + cp KANTO_LANDMARK + jr nc, .kanto + ld d, KANTO_LANDMARK - 1 + ld e, 1 + call Function919b0 + jr .resume + +.kanto + call Function910e8 + call Function919b0 + +.resume + pop af + ld [VramState], a + pop af + ld [hInMenu], a + pop af + ld [Options], a + call ClearBGPalettes + ret +; 919b0 + +Function919b0: ; 919b0 .loop call JoyTextDelay ld hl, hJoyPressed ld a, [hl] and B_BUTTON - jr nz, .pressedB - ld a, [hl] - and A_BUTTON - jr nz, .pressedA - call FlyMapScroll - call GetMapCursorCoordinates - callba Function8cf69 - call DelayFrame - jr .loop + ret nz -.pressedB - ld a, -1 - jr .exit - -.pressedA - ld a, [wd002] - ld l, a - ld h, 0 - add hl, hl - ld de, Flypoints + 1 - add hl, de - ld a, [hl] - -.exit - ld [wd002], a - pop af - ld [hInMenu], a - call ClearBGPalettes - ld a, $90 - ld [hWY], a - xor a - ld [hBGMapAddress], a - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - ld a, [wd002] - ld e, a - ret -; 91b73 - -FlyMapScroll: ; 91b73 - ld a, [StartFlypoint] - ld e, a - ld a, [EndFlypoint] - ld d, a ld hl, hJoyLast ld a, [hl] and D_UP - jr nz, .ScrollNext + jr nz, .pressed_up + ld a, [hl] and D_DOWN - jr nz, .ScrollPrev - ret + jr nz, .pressed_down +.loop2 + push de + callba Function8cf69 + pop de + call DelayFrame + jr .loop -.ScrollNext - ld hl, wd002 +.pressed_up + ld hl, wd003 ld a, [hl] cp d - jr nz, .NotAtEndYet + jr c, .okay ld a, e dec a ld [hl], a -.NotAtEndYet +.okay inc [hl] - call CheckIfVisitedFlypoint - jr z, .ScrollNext - jr .Finally + jr .next -.ScrollPrev - ld hl, wd002 +.pressed_down + ld hl, wd003 ld a, [hl] cp e - jr nz, .NotAtStartYet + jr nz, .okay2 ld a, d inc a ld [hl], a -.NotAtStartYet +.okay2 dec [hl] - call CheckIfVisitedFlypoint - jr z, .ScrollPrev - -.Finally - call TownMapBubble - call WaitBGMap - xor a - ld [hBGMapMode], a - ret -; 91bb5 - -TownMapBubble: ; 91bb5 -; Draw the bubble containing the location text in the town map HUD - -; Top-left corner - hlcoord 1, 0 - ld a, $30 - ld [hli], a - -; Top row - ld bc, 16 - ld a, " " - call ByteFill - -; Top-right corner - ld a, $31 - ld [hl], a - hlcoord 1, 1 - - -; Middle row - ld bc, 18 - ld a, " " - call ByteFill - - -; Bottom-left corner - hlcoord 1, 2 - ld a, $32 - ld [hli], a - -; Bottom row - ld bc, 16 - ld a, " " - call ByteFill - -; Bottom-right corner - ld a, $33 - ld [hl], a - - -; Print "Where?" - hlcoord 2, 0 - ld de, .Where - call PlaceString - -; Print the name of the default flypoint - call .Name - -; Up/down arrows - hlcoord 18, 1 - ld [hl], $34 - ret - -.Where - db "Where?@" - -.Name -; We need the map location of the default flypoint - ld a, [wd002] - ld l, a - ld h, 0 - add hl, hl ; two bytes per flypoint - ld de, Flypoints - add hl, de - ld e, [hl] - - callba GetLandmarkName - - hlcoord 2, 1 - ld de, StringBuffer1 - call PlaceString - ret -; 91c17 - -GetMapCursorCoordinates: ; 91c17 - ld a, [wd002] - ld l, a - ld h, $0 - add hl, hl - ld de, Flypoints - add hl, de - ld e, [hl] - callba GetLandmarkCoords - ld a, [wd003] - ld c, a - ld a, [wd004] - ld b, a - ld hl, $4 - add hl, bc - ld [hl], e - ld hl, $5 - add hl, bc - ld [hl], d - ret -; 91c3c - -CheckIfVisitedFlypoint: ; 91c3c -; Check if the flypoint loaded in [hl] has been visited yet. - push bc - push de - push hl - ld l, [hl] - ld h, 0 - add hl, hl - ld de, Flypoints + 1 - add hl, de - ld c, [hl] - call HasVisitedSpawn - pop hl - pop de - pop bc - and a - ret -; 91c50 - -HasVisitedSpawn: ; 91c50 -; Check if spawn point c has been visited. - ld hl, VisitedSpawns - ld b, CHECK_FLAG - ld d, 0 - predef FlagPredef - ld a, c - ret -; 91c5e - -Flypoints: ; 91c5e -; landmark, spawn point - - const_def - -flypoint: MACRO -; \1\@FLY EQUS "FLY_\1" -; \1\@SPAWN EQUS "SPAWN_\1" - ; const \1\@FLY - ; db \2, \1\@SPAWN - const FLY_\1 - db \2, SPAWN_\1 -ENDM - -; Johto - flypoint NEW_BARK, NEW_BARK_TOWN - flypoint CHERRYGROVE, CHERRYGROVE_CITY - flypoint VIOLET, VIOLET_CITY - flypoint AZALEA, AZALEA_TOWN - flypoint GOLDENROD, GOLDENROD_CITY - flypoint ECRUTEAK, ECRUTEAK_CITY - flypoint OLIVINE, OLIVINE_CITY - flypoint CIANWOOD, CIANWOOD_CITY - flypoint MAHOGANY, MAHOGANY_TOWN - flypoint LAKE, LAKE_OF_RAGE - flypoint BLACKTHORN, BLACKTHORN_CITY - flypoint MT_SILVER, SILVER_CAVE - -; Kanto -KANTO_FLYPOINT EQU const_value - - flypoint PALLET, PALLET_TOWN - flypoint VIRIDIAN, VIRIDIAN_CITY - flypoint PEWTER, PEWTER_CITY - flypoint CERULEAN, CERULEAN_CITY - flypoint VERMILION, VERMILION_CITY - flypoint ROCK_TUNNEL, ROCK_TUNNEL - flypoint LAVENDER, LAVENDER_TOWN - flypoint CELADON, CELADON_CITY - flypoint SAFFRON, SAFFRON_CITY - flypoint FUCHSIA, FUCHSIA_CITY - flypoint CINNABAR, CINNABAR_ISLAND - flypoint INDIGO, INDIGO_PLATEAU - - db -1 -; 91c8f - -Function91c8f: ; 91c8f - ret -; 91c90 - -FlyMap: ; 91c90 - - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - call GetWorldMapLocation - -; If we're not in a valid location, i.e. Pokecenter floor 2F, -; the backup map information is used - - cp SPECIAL_MAP - jr nz, .CheckRegion - - ld a, [BackupMapGroup] - ld b, a - ld a, [BackupMapNumber] - ld c, a - call GetWorldMapLocation - -.CheckRegion -; The first 46 locations are part of Johto. The rest are in Kanto - cp KANTO_LANDMARK - jr nc, .KantoFlyMap - -.JohtoFlyMap -; Note that .NoKanto should be modified in tandem with this branch - - push af - -; Start from New Bark Town - ld a, FLY_NEW_BARK - ld [wd002], a - -; Flypoints begin at New Bark Town... - ld [StartFlypoint], a -; ..and end at Silver Cave - ld a, FLY_MT_SILVER - ld [EndFlypoint], a - -; Fill out the map - call FillJohtoMap - call .MapHud - pop af - call TownMapPlayerIcon - ret - -.KantoFlyMap - -; The event that there are no flypoints enabled in a map is not -; accounted for. As a result, if you attempt to select a flypoint -; when there are none enabled, the game will crash. Additionally, -; the flypoint selection has a default starting point that -; can be flown to even if none are enabled - -; To prevent both of these things from happening when the player -; enters Kanto, fly access is restricted until Indigo Plateau is -; visited and its flypoint enabled - - push af - ld c, SPAWN_INDIGO - call HasVisitedSpawn - and a - jr z, .NoKanto - -; Kanto's map is only loaded if we've visited Indigo Plateau - -; Flypoints begin at Pallet Town... - ld a, FLY_PALLET - ld [StartFlypoint], a -; ...and end at Indigo Plateau - ld a, FLY_INDIGO - ld [EndFlypoint], a - -; Because Indigo Plateau is the first flypoint the player -; visits, it's made the default flypoint - ld [wd002], a - -; Fill out the map - call FillKantoMap - call .MapHud - pop af - call TownMapPlayerIcon - ret - -.NoKanto -; If Indigo Plateau hasn't been visited, we use Johto's map instead - -; Start from New Bark Town - ld a, FLY_NEW_BARK - ld [wd002], a - -; Flypoints begin at New Bark Town... - ld [StartFlypoint], a -; ..and end at Silver Cave - ld a, FLY_MT_SILVER - ld [EndFlypoint], a - - call FillJohtoMap - - pop af - -.MapHud - call TownMapBubble - call TownMapPals - - ld hl, VBGMap0 ; BG Map 0 - call TownMapBGUpdate - - call TownMapMon - ld a, c - ld [wd003], a - ld a, b - ld [wd004], a - ret -; 91d11 - -Function91d11: ; 91d11 - ld a, [wd002] - push af - ld a, [wd003] - push af - ld a, e - ld [wd002], a - call ClearSprites - xor a - ld [hBGMapMode], a - ld a, $1 - ld [hInMenu], a - - ld de, GFX_922d1 - ld hl, VTiles0 tile $7f - lb bc, BANK(GFX_922d1), 1 - call Request2bpp ; actually 1bpp - - call Function91ed0 - - ld hl, VTiles0 tile $78 - ld c, $4 - call Request2bpp - - call Function91ff2 - call FillKantoMap - call Function91de9 - call TownMapPals - ld hl, VBGMap1 - call TownMapBGUpdate - call FillJohtoMap - call Function91de9 - call TownMapPals - ld hl, VBGMap0 - call TownMapBGUpdate - ld b, $2 - call GetSGBLayout - call SetPalettes - xor a - ld [hBGMapMode], a - xor a - call Function91e1e -.loop - call JoyTextDelay - ld hl, hJoyPressed - ld a, [hl] - and A_BUTTON | B_BUTTON - jr nz, .a_b - ld a, [hJoypadDown] - and SELECT - jr nz, .select - call Function91d9b - call Function91dcd - jr .next - -.select - call Function91e5a .next - call DelayFrame - jr .loop - -.a_b - call ClearSprites - pop af - ld [wd003], a - pop af - ld [wd002], a - ret -; 91d9b - -Function91d9b: ; 91d9b - ld a, [hl] - and $20 - jr nz, .asm_91da6 - ld a, [hl] - and $10 - jr nz, .asm_91db7 - ret - -.asm_91da6 - ld a, [hWY] - cp $90 - ret z - call ClearSprites - ld a, $90 - ld [hWY], a - xor a - call Function91e1e - ret - -.asm_91db7 - ld a, [StatusFlags] - bit 6, a ; hall of fame - ret z - ld a, [hWY] - and a - ret z - call ClearSprites - xor a - ld [hWY], a - ld a, $1 - call Function91e1e - ret -; 91dcd - -Function91dcd: ; 91dcd - ld a, [hVBlankCounter] - ld e, a - and $f - ret nz - ld a, e - and $10 - jr nz, .asm_91ddc - call ClearSprites - ret - -.asm_91ddc - hlcoord 0, 0 - ld de, Sprites - ld bc, $a0 - call CopyBytes - ret -; 91de9 - -Function91de9: ; 91de9 - hlcoord 0, 0 - ld bc, SCREEN_WIDTH - ld a, $7f - call ByteFill - hlcoord 0, 1 - ld a, $6 - ld [hli], a - ld bc, SCREEN_HEIGHT - ld a, $7 - call ByteFill - ld [hl], $17 - call GetPokemonName - hlcoord 2, 0 - call PlaceString - ld h, b - ld l, c - ld de, String_91e16 - call PlaceString - ret -; 91e16 - -String_91e16: - db "'S NEST@" -; 91e1e - -Function91e1e: ; 91e1e - ld [wd003], a - ld e, a - callba Function2a01f - decoord 0, 0 - ld hl, Sprites -.asm_91e2e - ld a, [de] - and a - jr z, .asm_91e4d push de - ld e, a - push hl - callba GetLandmarkCoords - pop hl - ld a, d - sub $4 - ld [hli], a - ld a, e - sub $4 - ld [hli], a - ld a, $7f - ld [hli], a - xor a - ld [hli], a + ld a, [wd003] + call Function910b4 + ld a, [wd004] + ld c, a + ld a, [wd005] + ld b, a + ld a, [wd003] + call Function910d4 pop de - inc de - jr .asm_91e2e - -.asm_91e4d - ld hl, Sprites - decoord 0, 0 - ld bc, $a0 - call CopyBytes - ret -; 91e5a - -Function91e5a: ; 91e5a - call Function91ea9 - ret c + jr .loop2 +; 91a04 +Function91a04: ; 91a04 ld a, [wd002] - ld e, a - callba GetLandmarkCoords - ld c, e - ld b, d - ld de, Unknown_91e9c - ld hl, Sprites -.asm_91e70 - ld a, [de] - cp $80 - jr z, .asm_91e91 - - add b - ld [hli], a - inc de - - ld a, [de] - add c - ld [hli], a - inc de - - ld a, [de] - add $78 - ld [hli], a - inc de - - push bc - ld c, 0 - ld a, [PlayerGender] - bit 0, a - jr z, .asm_91e8c - inc c -.asm_91e8c - ld a, c - ld [hli], a - pop bc - - jr .asm_91e70 - -.asm_91e91 - ld hl, Sprites + $10 - ld bc, SpritesEnd - (Sprites + $10) - xor a - call ByteFill - ret -; 91e9c - -Unknown_91e9c: ; 91e9c - db -8, -8, 0 - db -8, 0, 1 - db 0, -8, 2 - db 0, 0, 3 - db $80 ; terminator -; 91ea9 - -Function91ea9: ; 91ea9 - ld a, [wd002] - cp FAST_SHIP - jr z, .johto cp KANTO_LANDMARK - jr c, .johto + jr nc, .kanto + ld e, $0 + jr .okay .kanto - ld a, [wd003] - and a - jr z, .clear - jr .ok + ld e, $1 -.johto - ld a, [wd003] - and a - jr nz, .clear - -.ok - and a - ret - -.clear - ld hl, Sprites - ld bc, SpritesEnd - Sprites - xor a +.okay + callba Function91ae1 + ld a, $7 + ld bc, 6 + hlcoord 1, 0 call ByteFill - scf - ret -; 91ed0 - -Function91ed0: ; 91ed0 - ld a, [wd002] - cp FAST_SHIP - jr z, .asm_91ede - callba GetPlayerIcon - ret - -.asm_91ede - ld de, FastShipGFX - ld b, BANK(FastShipGFX) - ret -; 91ee4 - -TownMapBGUpdate: ; 91ee4 -; Update BG Map tiles and attributes - -; BG Map address - ld a, l - ld [hBGMapAddress], a - ld a, h - ld [hBGMapAddress + 1], a - -; Only update palettes on CGB - ld a, [hCGB] - and a - jr z, .tiles - -; BG Map mode 2 (palettes) - ld a, 2 - ld [hBGMapMode], a - -; The BG Map is updated in thirds, so we wait -; 3 frames to update the whole screen's palettes. - ld c, 3 - call DelayFrames - -.tiles -; Update BG Map tiles - call WaitBGMap - -; Turn off BG Map update - xor a - ld [hBGMapMode], a - ret -; 91eff - -FillJohtoMap: ; 91eff - ld de, JohtoMap - jr FillTownMap - -FillKantoMap: ; 91f04 - ld de, KantoMap - -FillTownMap: ; 91f07 hlcoord 0, 0 -.loop - ld a, [de] - cp $ff - ret z - ld a, [de] - ld [hli], a - inc de - jr .loop -; 91f13 - -TownMapPals: ; 91f13 -; Assign palettes based on tile ids - - hlcoord 0, 0 - decoord 0, 0, AttrMap - ld bc, 360 -.loop -; Current tile - ld a, [hli] - push hl - -; HP/borders use palette 0 - cp $60 - jr nc, .pal0 - -; The palette data is condensed to nybbles, -; least-significant first. - ld hl, TownMapPalMap - srl a - jr c, .odd - -; Even-numbered tile ids take the bottom nybble... - add l - ld l, a - ld a, h - adc 0 - ld h, a - ld a, [hl] - and %111 - jr .update - -.odd -; ...and odd ids take the top. - add l - ld l, a - ld a, h - adc 0 - ld h, a - ld a, [hl] - swap a - and %111 - jr .update - -.pal0 - xor a - -.update - pop hl - ld [de], a - inc de - dec bc - ld a, b - or c - jr nz, .loop + 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 - -TownMapPalMap: - db $11, $21, $22, $00, $11, $13, $54, $54, $11, $21, $22, $00 - db $11, $10, $01, $00, $11, $21, $22, $00, $00, $00, $00, $00 - db $00, $00, $44, $04, $00, $00, $00, $00, $33, $33, $33, $33 - db $33, $33, $33, $03, $33, $33, $33, $33, $00, $00, $00, $00 -; 91f7b - -TownMapMon: ; 91f7b -; Draw the FlyMon icon at town map location in - -; Get FlyMon species - ld a, [CurPartyMon] - ld hl, PartySpecies - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - ld [wd265], a - -; Get FlyMon icon - ld e, 8 ; starting tile in VRAM - callba GetSpeciesIcon - -; Animation/palette - ld de, 0 - ld a, $0 - call _InitSpriteAnimStruct - - ld hl, 3 - add hl, bc - ld [hl], 8 - ld hl, 2 - add hl, bc - ld [hl], 0 - ret -; 91fa6 - -TownMapPlayerIcon: ; 91fa6 -; Draw the player icon at town map location in a - push af - - callba GetPlayerIcon - -; Standing icon - ld hl, VTiles0 tile $10 - ld c, 4 ; # tiles - call Request2bpp - -; Walking icon - ld hl, $c0 - add hl, de - ld d, h - ld e, l - ld hl, VTiles0 tile $14 - ld c, 4 ; # tiles - ld a, BANK(ChrisSpriteGFX) ; does nothing - call Request2bpp - -; Animation/palette - ld de, 0 - ld b, $0a ; Male - ld a, [PlayerGender] - bit 0, a - jr z, .asm_91fd3 - ld b, $1e ; Female -.asm_91fd3 - ld a, b - call _InitSpriteAnimStruct - - ld hl, $3 - add hl, bc - ld [hl], $10 - - pop af - ld e, a - push bc - callba GetLandmarkCoords - pop bc - - ld hl, 4 - add hl, bc - ld [hl], e - ld hl, 5 - add hl, bc - ld [hl], d - ret -; 0x91ff2 - -Function91ff2: ; 91ff2 - ld hl, TownMapGFX - ld de, VTiles2 - lb bc, BANK(TownMapGFX), $30 - call DecompressRequest2bpp - ret -; 91fff - - -JohtoMap: ; 91fff -INCBIN "gfx/misc/johto.bin" -; 92168 - -KantoMap: ; 92168 -INCBIN "gfx/misc/kanto.bin" -; 922d1 - - -GFX_922d1: ; 922d1 -INCBIN "gfx/unknown/0922d1.2bpp" -GFX_922e1: ; 922e1 -INCBIN "gfx/unknown/0922e1.2bpp" -GFX_92301: ; 92301 -INCBIN "gfx/unknown/092301.2bpp" -Function92311: ; unreferenced - xor a - ld [wd002], a - call ClearBGPalettes - call ClearTileMap - call ClearSprites - ld hl, hInMenu - ld a, [hl] - push af - ld [hl], $1 - xor a - ld [hBGMapMode], a - callba Function8cf53 - call Function91ff2 - ld de, GFX_922e1 - ld hl, VTiles2 tile $30 - lb bc, BANK(GFX_922e1), 6 - call Request1bpp - call FillKantoMap - call TownMapBubble - call TownMapPals - ld hl, VBGMap1 - call TownMapBGUpdate - call FillJohtoMap - call TownMapBubble - call TownMapPals - ld hl, VBGMap0 - call TownMapBGUpdate - call TownMapMon - ld a, c - ld [wd003], a - ld a, b - ld [wd004], a - ld b, SCGB_02 - call GetSGBLayout - call SetPalettes -.loop - call JoyTextDelay - ld hl, hJoyPressed - ld a, [hl] - and B_BUTTON - jr nz, .pressedB - ld a, [hl] - and A_BUTTON - jr nz, .pressedA - call Function923b8 - call GetMapCursorCoordinates - callba Function8cf69 - call DelayFrame - jr .loop - -.pressedB - ld a, -1 - jr .asm_9239f - -.pressedA - ld a, [wd002] - ld l, a - ld h, 0 - add hl, hl - ld de, Flypoints + 1 - add hl, de - ld a, [hl] - -.asm_9239f - ld [wd002], a - pop af - ld [hInMenu], a - call ClearBGPalettes - ld a, $90 - ld [hWY], a - xor a - ld [hBGMapAddress], a - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - ld a, [wd002] - ld e, a - ret -; 923b8 - -Function923b8: ; 923b8 - ld hl, hJoyLast - ld a, [hl] - and D_DOWN | D_RIGHT - jr nz, .asm_923c6 - ld a, [hl] - and D_UP | D_LEFT - jr nz, .asm_923d3 - ret - -.asm_923c6 - ld hl, wd002 - ld a, [hl] - cp FLY_INDIGO - jr c, .asm_923d0 - ld [hl], -1 -.asm_923d0 - inc [hl] - jr .asm_923dd - -.asm_923d3 - ld hl, wd002 - ld a, [hl] - and a - jr nz, .asm_923dc - ld [hl], FLY_INDIGO + 1 -.asm_923dc - dec [hl] - -.asm_923dd - ld a, [wd002] - cp KANTO_FLYPOINT - jr c, .johto - - call FillKantoMap - xor a - ld b, $9c - jr .asm_923f3 - -.johto - call FillJohtoMap - ld a, $90 - ld b, $98 - -.asm_923f3 - ld [hWY], a - ld a, b - ld [hBGMapAddress + 1], a - call TownMapBubble - call WaitBGMap - xor a - ld [hBGMapMode], a - ret -; 92402 +; 91a53 diff --git a/home/palettes.asm b/home/palettes.asm index 99bf7c3c3..666aff6b7 100644 --- a/home/palettes.asm +++ b/home/palettes.asm @@ -289,16 +289,19 @@ CopyPals:: ; d50 ; d79 -Functiond79:: ; d79 +ClearVBank1:: ; d79 ld a, [hCGB] and a ret z + ld a, 1 ld [rVBK], a + ld hl, VTiles0 - ld bc, $2000 + ld bc, VRAM_End - VTiles0 xor a call ByteFill + ld a, 0 ld [rVBK], a ret diff --git a/main.asm b/main.asm index 769aa6f22..63480f92c 100644 --- a/main.asm +++ b/main.asm @@ -40323,1430 +40323,8 @@ AdjustHourForAMorPM: ld a, 12 ret -Function90b8d: ; 90b8d (24:4b8d) - ld hl, Options - ld a, [hl] - push af - set NO_TEXT_SCROLL, [hl] - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - ld a, [VramState] - push af - xor a - ld [VramState], a - call Function90bea - call DelayFrame +INCLUDE "engine/pokegear.asm" -.loop - call UpdateTime - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .done - call Function90f04 - callba Function8cf69 - call DelayFrame - jr .loop - -.done - ld de, SFX_READ_TEXT_2 - call PlaySFX - call WaitSFX - pop af - ld [VramState], a - pop af - ld [hInMenu], a - pop af - ld [Options], a - call ClearBGPalettes - xor a - ld [hBGMapAddress], a - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - ld a, $90 - ld [hWY], a - call Function91492 - ret - -Function90bea: ; 90bea (24:4bea) - call ClearBGPalettes - call ClearTileMap - call ClearSprites - call DisableLCD - xor a - ld [hSCY], a - ld [hSCX], a - ld a, $7 - ld [hWX], a - call Function90c4e - callba Function8cf53 - call Function90d32 - ld a, 8 - call SkipMusic - ld a, $e3 - ld [rLCDC], a - call Function90d70 - xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [wcf66], a - ld [wc6d2], a - ld [wc6d1], a - ld [wc6d3], a - ld [wc6d9], a - ld [wc6da], a - ld [wc6db], a - call Function90d9e - call Function90da8 - ld b, SCGB_02 - call GetSGBLayout - call SetPalettes - ld a, [hCGB] - and a - ret z - ld a, $e4 - call Functioncf8 - ret - -Function90c4e: ; 90c4e - call Functiond79 - ld hl, TownMapGFX - ld de, VTiles2 - ld a, BANK(TownMapGFX) - call FarDecompress - - ld hl, PokegearGFX - ld de, VTiles2 + $300 - ld a, BANK(PokegearGFX) - call FarDecompress - - ld hl, PokegearSpritesGFX - ld de, VTiles0 - ld a, BANK(PokegearSpritesGFX) - call Decompress - - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - call GetWorldMapLocation - cp FAST_SHIP - jr z, .ssaqua - - callba GetPlayerIcon - - push de - ld h, d - ld l, e - ld a, b - - push af - ld de, VTiles0 tile $10 - ld bc, $40 - call FarCopyBytes - pop af - - pop hl - - ld de, $c0 - add hl, de - ld de, VTiles0 tile $14 - ld bc, $40 - call FarCopyBytes - ret - -.ssaqua - ld hl, FastShipGFX - ld de, VTiles0 tile $10 - ld bc, $80 - call CopyBytes - ret -; 90cb2 - -FastShipGFX: ; 90cb2 -INCBIN "gfx/misc/fast_ship.2bpp" -; 90d32 - -Function90d32: ; 90d32 (24:4d32) - lb de, $24, $10 - ld a, SPRITE_ANIM_INDEX_0D - call _InitSpriteAnimStruct - ld hl, $3 - add hl, bc - ld [hl], $0 - ret - -Function90d41: ; 90d41 (24:4d41) - ld hl, wcf64 - ld e, [hl] - ld d, 0 - ld hl, Unknown_90d52 - add hl, de - ld a, [hl] - ld hl, $6 - add hl, bc - ld [hl], a - ret -; 90d52 (24:4d52) - -Unknown_90d52: ; 90d52 - db $00, $10, $20, $30 -; 90d56 - -Function90d56: ; 90d56 - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - call GetWorldMapLocation - cp SPECIAL_MAP - ret nz - ld a, [BackupMapGroup] - ld b, a - ld a, [BackupMapNumber] - ld c, a - call GetWorldMapLocation - ret -; 90d70 - - -Function90d70: ; 90d70 (24:4d70) - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - call GetWorldMapLocation - - cp FAST_SHIP - jr z, .asm_90d95 - - cp SPECIAL_MAP - jr nz, .asm_90d8e - - ld a, [BackupMapGroup] - ld b, a - ld a, [BackupMapNumber] - ld c, a - call GetWorldMapLocation - -.asm_90d8e - ld [wc6d8], a - ld [wc6d7], a - ret - -.asm_90d95 - ld [wc6d8], a - ld a, NEW_BARK_TOWN - ld [wc6d7], a - ret - -Function90d9e: ; 90d9e (24:4d9e) - ld a, $0 - ld [wJumptableIndex], a - xor a - ld [wcf64], a - ret - -Function90da8: ; 90da8 (24:4da8) - xor a - ld [hBGMapMode], a - hlcoord 0, 0 - ld bc, TileMapEnd - TileMap - ld a, $4f - call ByteFill - ld a, [wcf64] - and $3 - add a - ld e, a - ld d, 0 - ld hl, Jumptable_90e12 - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ld de, .asm_90dcb - push de - jp [hl] - -.asm_90dcb - call Function90eb0 - callba TownMapPals - ld a, [wcf65] - and a - jr nz, .asm_90de8 - - xor a - ld [hBGMapAddress], a - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - call Function90e00 - ld a, $90 - jr .asm_90df3 - -.asm_90de8 - xor a - ld [hBGMapAddress], a - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - call Function90e00 - xor a - -.asm_90df3 - ld [hWY], a - ld a, [wcf65] - and 1 - xor 1 - ld [wcf65], a - ret - -Function90e00: ; 90e00 (24:4e00) - ld a, [hCGB] - and a - jr z, .asm_90e0e - ld a, $2 - ld [hBGMapMode], a - ld c, 3 - call DelayFrames -.asm_90e0e - call WaitBGMap - ret -; 90e12 (24:4e12) - -Jumptable_90e12: ; 90e12 - dw Function90e1a - dw Function90e3f - dw Function90e82 - dw Function90e72 -; 90e1a - -Function90e1a: ; 90e1a - ld de, ClockTilemapRLE - call Function914bb - hlcoord 12, 1 - ld de, .switch - call PlaceString - hlcoord 0, 12 - lb bc, 4, 18 - call TextBox - call Function90f86 - ret -; 90e36 (24:4e36) - -.switch - db " SWITCH▶@" -; 90e3f - -Function90e3f: ; 90e3f - - ld a, [wc6d8] - cp FAST_SHIP - jr z, .johto - cp KANTO_LANDMARK - jr nc, .kanto -.johto - ld e, 0 - jr .ok -.kanto - ld e, 1 -.ok - callba Function91ae1 - ld a, $7 - ld bc, $12 - hlcoord 1, 2 - call ByteFill - hlcoord 0, 2 - ld [hl], $6 - hlcoord 19, 2 - ld [hl], $17 - ld a, [wc6d7] - call Function910b4 - ret -; 90e72 - -Function90e72: ; 90e72 - ld de, RadioTilemapRLE - call Function914bb - hlcoord 0, 12 - lb bc, 4, 18 - call TextBox - ret -; 90e82 - -Function90e82: ; 90e82 - ld de, PhoneTilemapRLE - call Function914bb - hlcoord 0, 12 - lb bc, 4, 18 - call TextBox - call Function90e98 - call Function912d8 - ret -; 90e98 - -Function90e98: ; 90e98 (24:4e98) - hlcoord 17, 1 - ld a, $3c - ld [hli], a - inc a - ld [hl], a - hlcoord 17, 2 - inc a - ld [hli], a - call GetMapHeaderPhoneServiceNybble - and a - ret nz - hlcoord 18, 2 - ld [hl], $3f - ret - -Function90eb0: ; 90eb0 (24:4eb0) - hlcoord 0, 0 - ld bc, $8 - ld a, $4f - call ByteFill - hlcoord 0, 1 - ld bc, $8 - ld a, $4f - call ByteFill - ld de, wPokegearFlags - ld a, [de] - bit 0, a - call nz, Function90ee4 - ld a, [de] - bit 2, a - call nz, Function90eeb - ld a, [de] - bit 1, a - call nz, Function90ef2 - hlcoord 0, 0 - ld a, $46 - call Function90ef7 - ret - -Function90ee4: ; 90ee4 (24:4ee4) - hlcoord 2, 0 - ld a, $40 - jr Function90ef7 - -Function90eeb: ; 90eeb (24:4eeb) - hlcoord 4, 0 - ld a, $44 - jr Function90ef7 - -Function90ef2: ; 90ef2 (24:4ef2) - hlcoord 6, 0 - ld a, $42 - -Function90ef7: ; 90ef7 (24:4ef7) - ld [hli], a - inc a - ld [hld], a - ld bc, $14 - add hl, bc - add $f - ld [hli], a - inc a - ld [hld], a - ret - -Function90f04: ; 90f04 (24:4f04) - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_90f13 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -Jumptable_90f13: ; 90f13 (24:4f13) - dw Function90f2d - dw Function90f3e - dw Function90fb4 - dw Function90fcd - dw Function90fee - dw Function90fcd - dw Function90fe9 - dw Function91156 - dw Function91171 - dw Function911eb - dw Function91256 - dw Function910f9 - dw Function91112 - - -Function90f2d: ; 90f2d (24:4f2d) - call Function90da8 - ld hl, UnknownText_0x914d3 - call PrintText - ld hl, wJumptableIndex - inc [hl] - call Function91492 - ret - -Function90f3e: ; 90f3e (24:4f3e) - call Function90f7b - ld hl, hJoyLast - - ld a, [hl] - and A_BUTTON + B_BUTTON + START + SELECT - jr nz, .asm_90f75 - - ld a, [hl] - and D_RIGHT - ret z - - ld a, [wPokegearFlags] - bit 0, a - jr z, .asm_90f5a - ld c, $2 - ld b, $1 - jr .asm_90f71 -.asm_90f5a - - ld a, [wPokegearFlags] - bit 2, a - jr z, .asm_90f67 - ld c, $7 - ld b, $2 - jr .asm_90f71 -.asm_90f67 - - ld a, [wPokegearFlags] - bit 1, a - ret z - - ld c, $b - ld b, $3 - -.asm_90f71 - call Function91480 - ret - -.asm_90f75 - ld hl, wJumptableIndex - set 7, [hl] - ret - -Function90f7b: ; 90f7b (24:4f7b) - xor a - ld [hBGMapMode], a - call Function90f86 - ld a, $1 - ld [hBGMapMode], a - ret - -Function90f86: ; 90f86 (24:4f86) - hlcoord 3, 5 - lb bc, 5, 14 - call ClearBox - ld a, [hHours] - ld b, a - ld a, [hMinutes] - ld c, a - decoord 6, 8 - callba PrintHoursMins - ld hl, UnknownText_0x90faf - bccoord 6, 6 - call PlaceWholeStringInBoxAtOnce - ret -; 90fa8 (24:4fa8) - -String_90fa8: db "ごぜん@" -String_90fac: db "ごご@" - -UnknownText_0x90faf: ; 0x90faf - text_jump UnknownText_0x1c5821 - db "@" -; 0x90fb4 - -Function90fb4: ; 90fb4 (24:4fb4) - ld a, [wc6d8] - cp FAST_SHIP - jr z, .johto - cp KANTO_LANDMARK - jr nc, .kanto -.johto - ld a, 3 - jr .done - - ret - -.kanto - ld a, 5 -.done - ld [wJumptableIndex], a - call Function91492 - ret - -Function90fcd: ; 90fcd (24:4fcd) - call Function90da8 - ld a, [wc6d8] - call Function9106a - ld a, [wc6d7] - call Function91098 - ld a, c - ld [wc6d5], a - ld a, b - ld [wc6d6], a - ld hl, wJumptableIndex - inc [hl] - ret - -Function90fe9: ; 90fe9 (24:4fe9) - call Function910e8 - jr Function90ff2 - -Function90fee: ; 90fee (24:4fee) - ld d, $2e - ld e, $1 -Function90ff2: ; 90ff2 (24:4ff2) - ld hl, hJoyLast - ld a, [hl] - and B_BUTTON - jr nz, .cancel - ld a, [hl] - and D_RIGHT - jr nz, .right - ld a, [hl] - and D_LEFT - jr nz, .left - call Function9102f - ret - -.right - ld a, [wPokegearFlags] - bit 2, a - jr z, .asm_91015 - ld c, $7 - ld b, $2 - jr .done - -.asm_91015 - ld a, [wPokegearFlags] - bit 1, a - ret z - ld c, $b - ld b, $3 - jr .done - -.left - ld c, $0 - ld b, $0 -.done - call Function91480 - ret -.cancel - ld hl, wJumptableIndex - set 7, [hl] - ret - -Function9102f: ; 9102f (24:502f) - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .up - ld a, [hl] - and D_DOWN - jr nz, .down - ret -.up - ld hl, wc6d7 - ld a, [hl] - cp d - jr c, .asm_91047 - ld a, e - dec a - ld [hl], a -.asm_91047 - inc [hl] - jr .done - -.down - ld hl, wc6d7 - ld a, [hl] - cp e - jr nz, .asm_91054 - ld a, d - inc a - ld [hl], a -.asm_91054 - dec [hl] - -.done - ld a, [wc6d7] - call Function910b4 - ld a, [wc6d5] - ld c, a - ld a, [wc6d6] - ld b, a - ld a, [wc6d7] - call Function910d4 - ret - -Function9106a: ; 9106a - push af - ld de, 0 - ld b, SPRITE_ANIM_INDEX_0A - ld a, [PlayerGender] - bit 0, a - jr z, .asm_91079 - ld b, SPRITE_ANIM_INDEX_1E - -.asm_91079 - ld a, b - call _InitSpriteAnimStruct - ld hl, $3 - add hl, bc - ld [hl], $10 - pop af - ld e, a - push bc - callba GetLandmarkCoords - pop bc - ld hl, $4 - add hl, bc - ld [hl], e - ld hl, $5 - add hl, bc - ld [hl], d - ret -; 91098 - -Function91098: ; 91098 - push af - ld de, 0 - ld a, SPRITE_ANIM_INDEX_0D - call _InitSpriteAnimStruct - ld hl, $3 - add hl, bc - ld [hl], $4 - ld hl, $2 - add hl, bc - ld [hl], $0 - pop af - push bc - call Function910d4 - pop bc - ret -; 910b4 - -Function910b4: ; 910b4 - push af - hlcoord 8, 0 - lb bc, 2, 12 - call ClearBox - pop af - ld e, a - push de - callba GetLandmarkName - pop de - callba Function1de2c5 - hlcoord 8, 0 - ld [hl], $34 - ret -; 910d4 - -Function910d4: ; 910d4 - push bc - ld e, a - callba GetLandmarkCoords - pop bc - ld hl, $4 - add hl, bc - ld [hl], e - ld hl, $5 - add hl, bc - ld [hl], d - ret -; 910e8 - -Function910e8: ; 910e8 - ld a, [StatusFlags] - bit 6, a - jr z, .asm_910f4 - ld d, $5e - ld e, $2f - ret - -.asm_910f4 - ld d, $5e - ld e, $58 - ret -; 910f9 - - -Function910f9: ; 910f9 (24:50f9) - call Function90da8 - lb de, $24, $54 - ld a, SPRITE_ANIM_INDEX_14 - call _InitSpriteAnimStruct - ld hl, $3 - add hl, bc - ld [hl], $8 - call _UpdateRadioStation - ld hl, wJumptableIndex - inc [hl] - ret - -Function91112: ; 91112 (24:5112) - ld hl, hJoyLast - ld a, [hl] - and B_BUTTON - jr nz, .cancel - ld a, [hl] - and D_LEFT - jr nz, .left - ld a, [wc6da] - ld l, a - ld a, [wc6db] - ld h, a - ld a, [wc6d9] - and a - ret z - rst FarCall - ret - -.left - ld a, [wPokegearFlags] - bit 2, a - jr z, .asm_9113b - ld c, $7 - ld b, $2 - jr .asm_9114c - -.asm_9113b - ld a, [wPokegearFlags] - bit 0, a - jr z, .asm_91148 - ld c, $2 - ld b, $1 - jr .asm_9114c - -.asm_91148 - ld c, $0 - ld b, $0 -.asm_9114c - call Function91480 - ret - -.cancel - ld hl, wJumptableIndex - set 7, [hl] - ret - -Function91156: ; 91156 (24:5156) - ld hl, wJumptableIndex - inc [hl] - xor a - ld [wc6d2], a - ld [wc6d1], a - ld [wc6d3], a - call Function90da8 - call Function91492 - ld hl, UnknownText_0x914ce - call PrintText - ret - -Function91171: ; 91171 (24:5171) - ld hl, hJoyPressed - ld a, [hl] - and B_BUTTON - jr nz, .b - ld a, [hl] - and A_BUTTON - jr nz, .a - ld hl, hJoyLast - ld a, [hl] - and D_LEFT - jr nz, .left - ld a, [hl] - and D_RIGHT - jr nz, .right - call Function9126d - ret - -.left - ld a, [wPokegearFlags] - bit 0, a - jr z, .asm_9119c - ld c, $2 - ld b, $1 - jr .asm_911ac -.asm_9119c - ld c, $0 - ld b, $0 - jr .asm_911ac - -.right - ld a, [wPokegearFlags] - bit 1, a - ret z - ld c, $b - ld b, $3 -.asm_911ac - call Function91480 - ret - -.b - ld hl, wJumptableIndex - set 7, [hl] - ret - -.a - ld hl, wPhoneList - ld a, [wc6d2] - ld e, a - ld d, 0 - add hl, de - ld a, [wc6d1] - ld e, a - ld d, 0 - add hl, de - ld a, [hl] - and a - ret z - - ld [wc6d3], a - hlcoord 1, 4 - ld a, [wc6d1] - ld bc, 20 * 2 - call AddNTimes - ld [hl], "▷" - call Function91342 - jr c, .asm_911e5 - - ld hl, wJumptableIndex - inc [hl] - ret - -.asm_911e5 - ld a, $8 - ld [wJumptableIndex], a - ret - -Function911eb: ; 911eb (24:51eb) - call GetMapHeaderPhoneServiceNybble - and a - jr nz, .asm_91234 - ld hl, Options - res NO_TEXT_SCROLL, [hl] - xor a - ld [hInMenu], a - ld de, SFX_CALL - call PlaySFX - ld hl, UnknownText_0x9124c - call PrintText - call WaitSFX - ld de, SFX_CALL - call PlaySFX - ld hl, UnknownText_0x9124c - call PrintText - call WaitSFX - ld a, [wc6d3] - ld b, a - call Function90199 - ld c, 10 - call DelayFrames - ld hl, Options - set NO_TEXT_SCROLL, [hl] - ld a, $1 - ld [hInMenu], a - call Function912b7 - ld hl, wJumptableIndex - inc [hl] - ret -.asm_91234 - callba Phone_NoSignal - ld hl, OutOfServiceAreaText - call PrintText - ld a, $8 - ld [wJumptableIndex], a - ld hl, UnknownText_0x914ce - call PrintText - ret -; 9124c (24:524c) - -UnknownText_0x9124c: ; 0x9124c - ; - text_jump UnknownText_0x1c5824 - db "@" -; 0x91251 - -OutOfServiceAreaText: ; 0x91251 - ; You're out of the service area. - text_jump UnknownText_0x1c5827 - db "@" -; 0x91256 - -Function91256: ; 91256 (24:5256) - ld a, [hJoyPressed] - and A_BUTTON | B_BUTTON - ret z - callba HangUp - ld a, $8 - ld [wJumptableIndex], a - ld hl, UnknownText_0x914ce - call PrintText - ret - -Function9126d: ; 9126d (24:526d) - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .up - ld a, [hl] - and D_DOWN - jr nz, .down - ret - -.up - ld hl, wc6d1 - ld a, [hl] - and a - jr z, .asm_91285 - dec [hl] - jr .asm_912a3 - -.asm_91285 - ld hl, wc6d2 - ld a, [hl] - and a - ret z - dec [hl] - jr .asm_912ad - -.down - ld hl, wc6d1 - ld a, [hl] - cp $3 - jr nc, .asm_91299 - inc [hl] - jr .asm_912a3 - -.asm_91299 - ld hl, wc6d2 - ld a, [hl] - cp $6 - ret nc - inc [hl] - jr .asm_912ad - -.asm_912a3 - xor a - ld [hBGMapMode], a - call Function912b7 - call WaitBGMap - ret - -.asm_912ad - xor a - ld [hBGMapMode], a - call Function912d8 - call WaitBGMap - ret - -Function912b7: ; 912b7 (24:52b7) - ld a, " " - hlcoord 1, 4 - ld [hl], a - hlcoord 1, 6 - ld [hl], a - hlcoord 1, 8 - ld [hl], a - hlcoord 1, 10 - ld [hl], a - hlcoord 1, 4 - ld a, [wc6d1] - ld bc, $28 - call AddNTimes - ld [hl], "▶" - ret - -Function912d8: ; 912d8 (24:52d8) - hlcoord 1, 3 - ld b, $9 - ld a, $7f -.asm_912df - ld c, $12 -.asm_912e1 - ld [hli], a - dec c - jr nz, .asm_912e1 -rept 2 - inc hl -endr - dec b - jr nz, .asm_912df - ld a, [wc6d2] - ld e, a - ld d, $0 - ld hl, wPhoneList - add hl, de - xor a - ld [wc6d0], a -.asm_912f8 - ld a, [hli] - push hl - push af - hlcoord 2, 4 - ld a, [wc6d0] - ld bc, $28 - call AddNTimes - ld d, h - ld e, l - pop af - ld b, a - call Function90380 - pop hl - ld a, [wc6d0] - inc a - ld [wc6d0], a - cp $4 - jr c, .asm_912f8 - call Function912b7 - ret -; 9131e (24:531e) - -Function9131e: ; 9131e - ld hl, wPhoneList - ld a, [wc6d2] - ld e, a - ld d, 0 - add hl, de - ld a, [wc6d1] - ld e, a - ld d, 0 - add hl, de - ld [hl], 0 - ld hl, wPhoneList - ld c, $a -.asm_91336 - ld a, [hli] - and a - jr nz, .asm_9133e - ld a, [hld] - ld [hli], a - ld [hl], 0 -.asm_9133e - dec c - jr nz, .asm_91336 - ret -; 91342 - -Function91342: ; 91342 (24:5342) - ld hl, wPhoneList - ld a, [wc6d2] - ld e, a - ld d, 0 - add hl, de - ld a, [wc6d1] - ld e, a - ld d, 0 - add hl, de - ld c, [hl] - callba Function9038a - ld a, c - and a - jr z, .asm_91366 - - ld hl, Jumptable_91455 - ld de, Unknown_9143f - jr .asm_9136c - -.asm_91366 - ld hl, Jumptable_9146a - ld de, Unknown_9145b - -.asm_9136c - xor a - ld [hBGMapMode], a - push hl - push de - ld a, [de] - ld l, a - inc de - ld a, [de] - ld h, a - inc de - push hl - ld bc, hBGMapAddress + 1 - add hl, bc - ld a, [de] - inc de - sla a - ld b, a - ld c, 8 - push de - call TextBox - pop de - pop hl - inc hl - call PlaceString - pop de - xor a - ld [wc6d4], a - call Function9141d - call WaitBGMap - -.asm_91398 - push de - call JoyTextDelay - pop de - ld hl, hJoyPressed - ld a, [hl] - and D_UP - jr nz, .asm_913b4 - ld a, [hl] - and D_DOWN - jr nz, .asm_913c1 - ld a, [hl] - and A_BUTTON | B_BUTTON - jr nz, .asm_913d4 - call DelayFrame - jr .asm_91398 - -.asm_913b4 - ld hl, wc6d4 - ld a, [hl] - and a - jr z, .asm_91398 - dec [hl] - call Function9141d - jr .asm_91398 - -.asm_913c1 - ld hl, 2 - add hl, de - ld a, [wc6d4] - inc a - cp [hl] - jr nc, .asm_91398 - ld [wc6d4], a - call Function9141d - jr .asm_91398 - -.asm_913d4 - xor a - ld [hBGMapMode], a - call Function912d8 - ld a, $1 - ld [hBGMapMode], a - pop hl - ld a, [hJoyPressed] - and B_BUTTON - jr nz, Function913f1 - - ld a, [wc6d4] - ld e, a - ld d, 0 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -Function913f1: ; 913f1 - ld hl, UnknownText_0x914ce - call PrintText - scf - ret -; 913f9 (24:53f9) - -Function913f9: ; 913f9 - ld hl, UnknownText_0x914d8 - call MenuTextBox - call YesNoBox - call ExitMenu - jr c, .asm_91419 - call Function9131e - xor a - ld [hBGMapMode], a - call Function912d8 - ld hl, UnknownText_0x914ce - call PrintText - call WaitBGMap -.asm_91419 - scf - ret -; 9141b - -Function9141b: ; 9141b - and a - ret -; 9141d - -Function9141d: ; 9141d (24:541d) - push de - ld a, [de] - inc de - ld l, a - ld a, [de] - inc de - ld h, a - ld a, [de] - ld c, a - push hl - ld a, " " - ld de, 20 * 2 -.asm_9142c - ld [hl], a - add hl, de - dec c - jr nz, .asm_9142c - pop hl - ld a, [wc6d4] - ld bc, 20 * 2 - call AddNTimes - ld [hl], "▶" - pop de - ret -; 9143f (24:543f) - -Unknown_9143f: ; 9143f - dwcoord 10, 6 - db 3 - db "CALL" - next "DELETE" - next "CANCEL" - db "@" -; 91455 - -Jumptable_91455: ; 91455 - dw Function9141b - dw Function913f9 - dw Function913f1 -; 9145b - -Unknown_9145b: ; 9145b - dwcoord 10, 8 - db 2 - db "CALL" - next "CANCEL" - db "@" -; 9146a - -Jumptable_9146a: ; 9146a - dw Function9141b - dw Function913f1 -; 9146e - - -Function9146e: ; 9146e - ld a, [hHours] - cp 12 - jr c, .asm_9147b - sub 12 - ld [wd265], a - scf - ret - -.asm_9147b - ld [wd265], a - and a - ret -; 91480 - - -Function91480: ; 91480 (24:5480) - ld de, SFX_READ_TEXT_2 - call PlaySFX - ld a, c - ld [wJumptableIndex], a - ld a, b - ld [wcf64], a - call DeleteSpriteAnimStruct2ToEnd - ret - -Function91492: ; 91492 - ld a, [wc6dc] - cp $fe - jr z, .asm_914a3 - cp $ff - call z, EnterMapMusic - xor a - ld [wc6dc], a - ret - -.asm_914a3 - call RestartMapMusic - xor a - ld [wc6dc], a - ret -; 914ab - - -DeleteSpriteAnimStruct2ToEnd: ; 914ab (24:54ab) - ld hl, SpriteAnim2 - ld bc, wSpriteAnimationStructsEnd - SpriteAnim2 - xor a - call ByteFill - ld a, 2 - ld [wSpriteAnimCount], a - ret - -Function914bb: ; 914bb (24:54bb) - hlcoord 0, 0 -.asm_914be - ld a, [de] - cp $ff - ret z - ld b, a - inc de - ld a, [de] - ld c, a - inc de - ld a, b -.asm_914c8 - ld [hli], a - dec c - jr nz, .asm_914c8 - jr .asm_914be -; 914ce (24:54ce) - -UnknownText_0x914ce: ; 0x914ce - ; Whom do you want to call? - text_jump UnknownText_0x1c5847 - db "@" -; 0x914d3 - -UnknownText_0x914d3: ; 0x914d3 - ; Press any button to exit. - text_jump UnknownText_0x1c5862 - db "@" -; 0x914d8 - -UnknownText_0x914d8: ; 0x914d8 - ; Delete this stored phone number? - text_jump UnknownText_0x1c587d - db "@" -; 0x914dd - - -PokegearSpritesGFX: ; 914dd -INCBIN "gfx/misc/pokegear_sprites.2bpp.lz" -; 9150d - -RadioTilemapRLE: ; 9150d -INCBIN "gfx/unknown/09150d.tilemap.rle" - -PhoneTilemapRLE: ; 9158a -INCBIN "gfx/unknown/09158a.tilemap.rle" - -ClockTilemapRLE: ; 915db -INCBIN "gfx/unknown/0915db.tilemap.rle" -; 9163e - -INCLUDE "engine/radio2.asm" -INCLUDE "engine/town_map.asm" INCLUDE "data/wild/fish.asm" INCLUDE "engine/slot_machine.asm" diff --git a/vram.asm b/vram.asm index d434fd097..85d8f4369 100644 --- a/vram.asm +++ b/vram.asm @@ -11,3 +11,4 @@ VTiles4:: ds $800 VTiles5:: ds $800 VBGMap2:: ds $400 VBGMap3:: ds $400 +VRAM_End:: From 042fc4bfe5f55df87712d33b6f832a591b136f1a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 16 Nov 2015 21:46:36 -0500 Subject: [PATCH 15/40] Split up some more banks in main.asm --- engine/money.asm | 209 +++ engine/pokecenter_pc.asm | 705 ++++++++ engine/timeset.asm | 771 +++++++++ event/buena.asm | 2 +- event/daycare.asm | 768 +++++++++ event/field_moves.asm | 312 ++++ event/magnet_train.asm | 485 ++++++ home/menu.asm | 6 +- main.asm | 3360 +------------------------------------- wram.asm | 2 +- 10 files changed, 3311 insertions(+), 3309 deletions(-) create mode 100755 engine/money.asm create mode 100755 engine/pokecenter_pc.asm create mode 100755 engine/timeset.asm create mode 100755 event/daycare.asm create mode 100755 event/field_moves.asm create mode 100755 event/magnet_train.asm diff --git a/engine/money.asm b/engine/money.asm new file mode 100755 index 000000000..5935a23e7 --- /dev/null +++ b/engine/money.asm @@ -0,0 +1,209 @@ +GiveMoney:: ; 15fd7 + ld a, $3 + call AddMoney + ld bc, MaxMoney + ld a, $3 + call CompareMoney + jr z, .asm_15ff5 + jr c, .asm_15ff5 + ld hl, MaxMoney + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + scf + ret + +.asm_15ff5 + and a + ret +; 15ff7 + +MaxMoney: ; 15ff7 + dt 999999 +; 15ffa + + +TakeMoney:: ; 15ffa + ld a, 3 + call SubtractMoney + jr nc, .asm_16009 + xor a + ld [de], a + inc de + ld [de], a + inc de + ld [de], a + scf + ret + +.asm_16009 + and a + ret +; 1600b + +CompareMoney:: ; 1600b + ld a, $3 +CompareFunds: ; 1600d + push hl + push de + push bc + ld h, b + ld l, c + ld c, $0 + ld b, a +.loop1 + dec a + jr z, .done + inc de + inc hl + jr .loop1 + +.done + and a +.loop2 + ld a, [de] + sbc [hl] + jr z, .okay + inc c + +.okay + dec de + dec hl + dec b + jr nz, .loop2 + jr c, .set_carry + ld a, c + and a + jr .skip_carry + +.set_carry + ld a, $1 + and a + scf + +.skip_carry + pop bc + pop de + pop hl + ret +; 16035 + +SubtractMoney: ; 16035 + ld a, 3 +SubtractFunds: ; 16037 + push hl + push de + push bc + ld h, b + ld l, c + ld b, a + ld c, 0 +.loop + dec a + jr z, .done + inc de + inc hl + jr .loop + +.done + and a +.loop2 + ld a, [de] + sbc [hl] + ld [de], a + dec de + dec hl + dec b + jr nz, .loop2 + pop bc + pop de + pop hl + ret +; 16053 + +AddMoney: ; 16053 + ld a, $3 +AddFunds: ; 16055 + push hl + push de + push bc + ld h, b + ld l, c + ld b, a +.loop1 + dec a + jr z, .done + inc de + inc hl + jr .loop1 + +.done + and a +.loop2 + ld a, [de] + adc [hl] + ld [de], a + dec de + dec hl + dec b + jr nz, .loop2 + pop bc + pop de + pop hl + ret +; 1606f + +GiveCoins:: ; 1606f + ld a, 2 + ld de, Coins + call AddFunds + ld a, 2 + ld bc, .maxcoins + call CompareFunds + jr c, .not_maxed + ld hl, .maxcoins + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + scf + ret + +.not_maxed + and a + ret +; 1608d + +.maxcoins: ; 1608d + bigdw 9999 +; 1608f + + +TakeCoins:: ; 1608f + ld a, 2 + ld de, Coins + call SubtractFunds + jr nc, .asm_1609f + xor a + ld [de], a + inc de + ld [de], a + scf + ret + +.asm_1609f + and a + ret +; 160a1 + +CheckCoins:: ; 160a1 + ld a, $2 + ld de, Coins + jp CompareFunds +; 160a9 diff --git a/engine/pokecenter_pc.asm b/engine/pokecenter_pc.asm new file mode 100755 index 000000000..ee37edca5 --- /dev/null +++ b/engine/pokecenter_pc.asm @@ -0,0 +1,705 @@ +PokemonCenterPC: ; 1559a + call PC_CheckPartyForPokemon + ret c + call PC_PlayBootSound + ld hl, UnknownText_0x15a27 + call PC_DisplayText + ld hl, UnknownText_0x15a2c + call PC_DisplayTextWaitMenu + ld hl, .TopMenu + call LoadMenuDataHeader +.loop + xor a + ld [hBGMapMode], a + call .ChooseWhichPCListToUse + ld [wcf76], a + call DoNthMenu + jr c, .shutdown + ld a, [MenuSelection] + ld hl, .JumpTable + call MenuJumptable + jr nc, .loop + +.shutdown + call PC_PlayShutdownSound + call ExitMenu + call WriteBackup + ret +; 155d6 + +.TopMenu: ; 0x155d6 + db $48 ; flags + db 00, 00 ; start coords + db 12, 15 ; end coords + dw .MenuData2 + db 1 ; default option +; 0x155de + +.MenuData2: ; 0x155de + db $a0 ; flags + db 0 ; items + dw .WhichPC + dw PlaceNthMenuStrings + dw .JumpTable +; 0x155e6 + +.JumpTable: ; 155e6 + dw PlayersPC, .String_PlayersPC + dw BillsPC, .String_BillsPC + dw OaksPC, .String_OaksPC + dw HallOfFamePC, .String_HallOfFame + dw TurnOffPC, .String_TurnOff +; 155fa + +.String_PlayersPC: db "'s PC@" +.String_BillsPC: db "BILL's PC@" +.String_OaksPC: db "PROF.OAK's PC@" +.String_HallOfFame: db "HALL OF FAME@" +.String_TurnOff: db "TURN OFF@" +; 1562c + +.WhichPC: ; 1562c + ; before pokedex + db 3 ; items + db 1, 0, 4 ; bill's, player's, turn off + db -1 + + ; before Hall Of Fame + db 4 ; items + db 1, 0, 2, 4 ; bill's, player's, oak's, turn off + db -1 + + ; postgame + db 5 ; items + db 1, 0, 2, 3, 4 ; bill's, player's, oak's, hall of fame, turn off + db -1 +; 1563e + +.ChooseWhichPCListToUse: ; 1563e + call CheckReceivedDex + jr nz, .got_dex + ld a, $0 + ret + +.got_dex + ld a, [wHallOfFameCount] + and a + ld a, $1 + ret z + ld a, $2 + ret +; 15650 + +PC_CheckPartyForPokemon: ; 15650 + ld a, [PartyCount] + and a + ret nz + ld de, SFX_CHOOSE_PC_OPTION + call PlaySFX + ld hl, UnknownText_0x15663 + call PC_DisplayText + scf + ret +; 15663 + +UnknownText_0x15663: ; 0x15663 + ; Bzzzzt! You must have a #MON to use this! + text_jump UnknownText_0x1c1328 + db "@" +; 0x15668 + +BillsPC: ; 15668 + call PC_PlayChoosePCSound + ld hl, UnknownText_0x15a31 + call PC_DisplayText + callba _BillsPC + and a + ret +; 15679 (5:5679) + +PlayersPC: ; 15679 + call PC_PlayChoosePCSound + ld hl, UnknownText_0x15a36 + call PC_DisplayText + ld b, $0 + call _PlayersPC + and a + ret +; 15689 + +OaksPC: ; 15689 + call PC_PlayChoosePCSound + ld hl, UnknownText_0x15a3b + call PC_DisplayText + callba ProfOaksPC + and a + ret +; 1569a + +HallOfFamePC: ; 1569a + call PC_PlayChoosePCSound + call FadeToMenu + callba _HallOfFamePC + call Function2b3c + and a + ret +; 156ab + +TurnOffPC: ; 156ab + ld hl, UnknownText_0x15a40 + call PrintText + scf + ret +; 156b3 + +PC_PlayBootSound: ; 156b3 + ld de, SFX_BOOT_PC + jr PC_WaitPlaySFX + +PC_PlayShutdownSound: ; 156b8 + ld de, SFX_SHUT_DOWN_PC + call PC_WaitPlaySFX + call WaitSFX + ret + +PC_PlayChoosePCSound: ; 156c2 + ld de, SFX_CHOOSE_PC_OPTION + jr PC_WaitPlaySFX + +Function156c7: ; 156c7 + ld de, SFX_SWITCH_POKEMON + call PC_WaitPlaySFX + ld de, SFX_SWITCH_POKEMON + +PC_WaitPlaySFX: ; 156d0 + push de + call WaitSFX + pop de + call PlaySFX + ret +; 156d9 + +Function156d9: ; 156d9 + call PC_PlayBootSound + ld hl, UnknownText_0x156ff + call PC_DisplayText + ld b, $1 + call _PlayersPC + and a + jr nz, .asm_156f9 + call OverworldTextModeSwitch + call Function321c + call UpdateSprites + call PC_PlayShutdownSound + ld c, $0 + ret + +.asm_156f9 + call ClearBGPalettes + ld c, $1 + ret +; 156ff + +UnknownText_0x156ff: ; 0x156ff + ; turned on the PC. + text_jump UnknownText_0x1c1353 + db "@" +; 0x15704 + +_PlayersPC: ; 15704 + ld a, b + ld [wcf76], a + ld hl, UnknownText_0x157cc + call PC_DisplayTextWaitMenu + call Function15715 + call ExitMenu + ret +; 15715 + +Function15715: ; 15715 + xor a + ld [wd0d7], a + ld [wd0dd], a + ld hl, KrissPCMenuData + call LoadMenuDataHeader +.asm_15722 + call UpdateTimePals + call DoNthMenu + jr c, .asm_15731 + call MenuJumptable + jr nc, .asm_15722 + jr .asm_15732 + +.asm_15731 + xor a + +.asm_15732 + call ExitMenu + ret +; 15736 + +KrissPCMenuData: ; 0x15736 + db %01000000 + db 0, 0 ; top left corner coords (y, x) + db 12, 15 ; bottom right corner coords (y, x) + dw .KrissPCMenuData2 + db 1 ; default selected option + +.KrissPCMenuData2 + db %10100000 ; bit7 + db 0 ; # items? + dw .KrissPCMenuList1 + dw PlaceNthMenuStrings + dw .KrissPCMenuPointers + +.KrissPCMenuPointers ; 0x15746 + dw KrisWithdrawItemMenu, .WithdrawItem + dw KrisDepositItemMenu, .DepositItem + dw KrisTossItemMenu, .TossItem + dw KrisMailBoxMenu, .MailBox + dw KrisDecorationMenu, .Decoration + dw KrisLogOffMenu, .LogOff + dw KrisLogOffMenu, .TurnOff + +.WithdrawItem db "WITHDRAW ITEM@" +.DepositItem db "DEPOSIT ITEM@" +.TossItem db "TOSS ITEM@" +.MailBox db "MAIL BOX@" +.Decoration db "DECORATION@" +.TurnOff db "TURN OFF@" +.LogOff db "LOG OFF@" + +WITHDRAW_ITEM EQU 0 +DEPOSIT_ITEM EQU 1 +TOSS_ITEM EQU 2 +MAIL_BOX EQU 3 +DECORATION EQU 4 +TURN_OFF EQU 5 +LOG_OFF EQU 6 + +.KrissPCMenuList1 + db 5 + db WITHDRAW_ITEM + db DEPOSIT_ITEM + db TOSS_ITEM + db MAIL_BOX + db TURN_OFF + db -1 + +.KrissPCMenuList2 + db 6 + db WITHDRAW_ITEM + db DEPOSIT_ITEM + db TOSS_ITEM + db MAIL_BOX + db DECORATION + db LOG_OFF + db -1 + +PC_DisplayTextWaitMenu: ; 157bb + ld a, [Options] + push af + set NO_TEXT_SCROLL, a + ld [Options], a + call MenuTextBox + pop af + ld [Options], a + ret +; 157cc + +UnknownText_0x157cc: ; 0x157cc + ; What do you want to do? + text_jump UnknownText_0x1c1368 + db "@" +; 0x157d1 + +KrisWithdrawItemMenu: ; 0x157d1 + call LoadStandardMenuDataHeader + callba ClearPCItemScreen +.asm_157da + call Function15985 + jr c, .asm_157e4 + call Function157e9 + jr .asm_157da + +.asm_157e4 + call Function2b3c + xor a + ret +; 0x157e9 + +Function157e9: ; 0x157e9 + ; check if the item has a quantity + callba _CheckTossableItem + ld a, [wItemAttributeParamBuffer] + and a + jr z, .askquantity + + ; items without quantity are always ×1 + ld a, 1 + ld [wItemQuantityChangeBuffer], a + jr .withdraw + +.askquantity + ld hl, .HowManyText + call MenuTextBox + callba Function24fbf + call ExitMenu + call ExitMenu + jr c, .done + +.withdraw + ld a, [wItemQuantityChangeBuffer] + ld [Buffer1], a ; quantity + ld a, [wd107] + ld [Buffer2], a + ld hl, NumItems + call ReceiveItem + jr nc, .PackFull + ld a, [Buffer1] + ld [wItemQuantityChangeBuffer], a + ld a, [Buffer2] + ld [wd107], a + ld hl, PCItems + call TossItem + predef PartyMonItemName + ld hl, .WithdrewText + call MenuTextBox + xor a + ld [hBGMapMode], a + call ExitMenu + ret + +.PackFull + ld hl, .NoRoomText + call MenuTextBoxBackup + ret + +.done + ret +; 0x15850 + +.HowManyText ; 0x15850 + text_jump _KrissPCHowManyWithdrawText + db "@" + +.WithdrewText ; 0x15855 + text_jump _KrissPCWithdrewItemsText + db "@" + +.NoRoomText ; 0x1585a + text_jump _KrissPCNoRoomWithdrawText + db "@" + + +KrisTossItemMenu: ; 0x1585f + call LoadStandardMenuDataHeader + callba ClearPCItemScreen +.asm_15868 + call Function15985 + jr c, .asm_15878 + ld de, PCItems + callba Function129f4 + jr .asm_15868 + +.asm_15878 + call Function2b3c + xor a + ret +; 0x1587d + + +KrisDecorationMenu: ; 0x1587d + callba _KrisDecorationMenu + ld a, c + and a + ret z + scf + ret +; 0x15888 + + +KrisLogOffMenu: ; 0x15888 + xor a + scf + ret +; 0x1588b + + +KrisDepositItemMenu: ; 0x1588b + call Function158b8 + jr c, .asm_158b6 + call DisableSpriteUpdates + call LoadStandardMenuDataHeader + callba Function106a5 +.asm_1589c + callba Function106be + ld a, [wcf66] + and a + jr z, .asm_158b3 + call Function158cc + callba CheckRegisteredItem + jr .asm_1589c + +.asm_158b3 + call Function2b3c + +.asm_158b6 + xor a + ret +; 0x158b8 + +Function158b8: ; 0x158b8 + callba Function129d5 + ret nc + ld hl, UnknownText_0x158c7 + call MenuTextBoxBackup + scf + ret +; 0x158c7 + +UnknownText_0x158c7: ; 0x158c7 + ; No items here! + text_jump UnknownText_0x1c13df + db "@" +; 0x158cc + + +Function158cc: ; 0x158cc + ld a, [wc2ce] + push af + ld a, $0 + ld [wc2ce], a + callba CheckItemMenu + ld a, [wItemAttributeParamBuffer] + ld hl, .jumptable + rst JumpTable + pop af + ld [wc2ce], a + ret +; 0x158e7 + +.jumptable: ; 0x158e7 + dw .tossable + dw .no_toss + dw .no_toss + dw .no_toss + dw .tossable + dw .tossable + dw .tossable + +.no_toss: + ret + +.tossable: + ld a, [Buffer1] + push af + ld a, [Buffer2] + push af + call Function1590a + pop af + ld [Buffer2], a + pop af + ld [Buffer1], a + ret +; 0x1590a + +Function1590a: ; 0x1590a + callba _CheckTossableItem + ld a, [wItemAttributeParamBuffer] + and a + jr z, .asm_1591d + ld a, $1 + ld [wItemQuantityChangeBuffer], a + jr .asm_15933 + +.asm_1591d + ld hl, .HowManyText + call MenuTextBox + callba Function24fbf + push af + call ExitMenu + call ExitMenu + pop af + jr c, .asm_1596c + +.asm_15933 + ld a, [wItemQuantityChangeBuffer] + ld [Buffer1], a + ld a, [wd107] + ld [Buffer2], a + ld hl, PCItems + call ReceiveItem + jr nc, .asm_15965 + ld a, [Buffer1] + ld [wItemQuantityChangeBuffer], a + ld a, [Buffer2] + ld [wd107], a + ld hl, NumItems + call TossItem + predef PartyMonItemName + ld hl, .DepositText + call PrintText + ret + +.asm_15965 + ld hl, .NoRoomText + call PrintText + ret + +.asm_1596c + and a + ret +; 0x1596e + + +.HowManyText ; 0x1596e + text_jump _KrissPCHowManyDepositText + db "@" + +.DepositText ; 0x15973 + text_jump _KrissPCDepositItemsText + db "@" + +.NoRoomText ; 0x15978 + text_jump _KrissPCNoRoomDepositText + db "@" + + +KrisMailBoxMenu: ; 0x1597d + callba _KrisMailBoxMenu + xor a + ret +; 0x15985 + + +Function15985: ; 0x15985 + xor a + ld [wd0e3], a +.asm_15989 + ld a, [wc2ce] + push af + ld a, $0 + ld [wc2ce], a + ld hl, MenuData15a08 + call CopyMenuDataHeader + hlcoord 0, 0 + ld b, $a + ld c, $12 + call TextBox + ld a, [wd0d7] + ld [wMenuCursorBuffer], a + ld a, [wd0dd] + ld [wd0e4], a + call HandleScrollingMenu + ld a, [wd0e4] + ld [wd0dd], a + ld a, [MenuSelection2] + ld [wd0d7], a + pop af + ld [wc2ce], a + ld a, [wd0e3] + and a + jr nz, .asm_159d8 + ld a, [wcf73] + cp $2 + jr z, .asm_15a06 + cp $1 + jr z, .asm_159fb + cp $4 + jr z, .asm_159f2 + jr .asm_159f8 + +.asm_159d8 + ld a, [wcf73] + cp $2 + jr z, .asm_159e9 + cp $1 + jr z, .asm_159ef + cp $4 + jr z, .asm_159ef + jr .asm_159f8 + +.asm_159e9 + xor a + ld [wd0e3], a + jr .asm_159f8 + +.asm_159ef + call Function156c7 + +.asm_159f2 + callba Function2490c + +.asm_159f8 + jp .asm_15989 + +.asm_159fb + callba Function24706 + call Function1bee + and a + ret + +.asm_15a06 + scf + ret +; 0x15a08 + +MenuData15a08: ; 0x15a08 + db %01000000 + db 1, 4 ; start coords + db 10, 18 ; end coords + dw .MenuData2 + db 1 ; default option + +.MenuData2 + db %10110000 + db 4, 8 ; rows/cols? + db 2 ; horizontal spacing? + dbw 0, PCItems + dba PlaceMenuItemName + dba PlaceMenuItemQuantity + dba Function244c3 + +PC_DisplayText: ; 15a20 + call MenuTextBox + call ExitMenu + ret +; 15a27 + + +UnknownText_0x15a27: ; 0x15a27 + ; turned on the PC. + text_jump UnknownText_0x1c144d + db "@" +; 0x15a2c + +UnknownText_0x15a2c: ; 0x15a2c + ; Access whose PC? + text_jump UnknownText_0x1c1462 + db "@" +; 0x15a31 + +UnknownText_0x15a31: ; 0x15a31 + ; BILL's PC accessed. #MON Storage System opened. + text_jump UnknownText_0x1c1474 + db "@" +; 0x15a36 + +UnknownText_0x15a36: ; 0x15a36 + ; Accessed own PC. Item Storage System opened. + text_jump UnknownText_0x1c14a4 + db "@" +; 0x15a3b + +UnknownText_0x15a3b: ; 0x15a3b + ; PROF.OAK's PC accessed. #DEX Rating System opened. + text_jump UnknownText_0x1c14d2 + db "@" +; 0x15a40 + +UnknownText_0x15a40: ; 0x15a40 + ; … Link closed… + text_jump UnknownText_0x1c1505 + db "@" +; 0x15a45 diff --git a/engine/timeset.asm b/engine/timeset.asm new file mode 100755 index 000000000..00cdf9cac --- /dev/null +++ b/engine/timeset.asm @@ -0,0 +1,771 @@ +InitClock: ; 90672 (24:4672) +; Ask the player to set the time. + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + + ld a, $0 + ld [wc2ce], a + ld a, $10 + ld [MusicFade], a + ld a, MUSIC_NONE % $100 + ld [MusicFadeIDLo], a + ld a, MUSIC_NONE / $100 + ld [MusicFadeIDHi], a + ld c, 8 + call DelayFrames + call Function4dd + call ClearTileMap + call ClearSprites + ld b, SCGB_08 + call GetSGBLayout + xor a + ld [hBGMapMode], a + call LoadStandardFont + ld de, GFX_908fb + ld hl, VTiles2 tile $00 + lb bc, BANK(GFX_908fb), 1 + call Request1bpp + ld de, GFX_90903 + ld hl, VTiles2 tile $01 + lb bc, BANK(GFX_90903), 1 + call Request1bpp + ld de, GFX_9090b + ld hl, VTiles2 tile $02 + lb bc, BANK(GFX_9090b), 1 + call Request1bpp + call .ClearScreen + call WaitBGMap + call Function4a3 + ld hl, UnknownText_0x90874 + call PrintText + ld hl, wc608 + ld bc, 50 + xor a + call ByteFill + ld a, $a + ld [wInitHourBuffer], a + +.loop + ld hl, UnknownText_0x90879 + call PrintText + hlcoord 3, 7 + ld b, 2 + ld c, 15 + call TextBox + hlcoord 11, 7 + ld [hl], $1 + hlcoord 11, 10 + ld [hl], $2 + hlcoord 4, 9 + call DisplayHourOClock + ld c, 10 + call DelayFrames + +.SetHourLoop + call JoyTextDelay + call SetHour + jr nc, .SetHourLoop + + ld a, [wInitHourBuffer] + ld [StringBuffer2 + 1], a + call .ClearScreen + ld hl, UnknownText_0x90886 + call PrintText + call YesNoBox + jr nc, .HourIsSet + call .ClearScreen + jr .loop + +.HourIsSet + ld hl, UnknownText_0x9089a + call PrintText + hlcoord 11, 7 + lb bc, 2, 7 + call TextBox + hlcoord 15, 7 + ld [hl], $1 + hlcoord 15, 10 + ld [hl], $2 + hlcoord 12, 9 + call DisplayMinutesWithMinString + ld c, 10 + call DelayFrames + +.SetMinutesLoop + call JoyTextDelay + call SetMinutes + jr nc, .SetMinutesLoop + + ld a, [BattleMonNick + 5] + ld [StringBuffer2 + 2], a + call .ClearScreen + ld hl, UnknownText_0x908a4 + call PrintText + call YesNoBox + jr nc, .MinutesAreSet + call .ClearScreen + jr .HourIsSet + +.MinutesAreSet + call Function658 + ld hl, OakText_ResponseToSetTime + call PrintText + call WaitPressAorB_BlinkCursor + pop af + ld [hInMenu], a + ret + +.ClearScreen: ; 90783 (24:4783) + xor a + ld [hBGMapMode], a + hlcoord 0, 0 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + xor a + call ByteFill + ld a, $1 + ld [hBGMapMode], a + ret + +SetHour: ; 90795 (24:4795) + ld a, [hJoyPressed] + and A_BUTTON + jr nz, .Confirm + + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, .up + ld a, [hl] + and D_DOWN + jr nz, .down + call DelayFrame + and a + ret + +.down + ld hl, wInitHourBuffer + ld a, [hl] + and a + jr nz, .DecreaseThroughMidnight + ld a, 23 + 1 +.DecreaseThroughMidnight + dec a + ld [hl], a + jr .okay + +.up + ld hl, wInitHourBuffer + ld a, [hl] + cp 23 + jr c, .AdvanceThroughMidnight + ld a, -1 +.AdvanceThroughMidnight + inc a + ld [hl], a + +.okay + hlcoord 4, 9 + ld a, " " + ld bc, 15 + call ByteFill + hlcoord 4, 9 + call DisplayHourOClock + call WaitBGMap + and a + ret + +.Confirm + scf + ret + +DisplayHourOClock: ; 907de (24:47de) + push hl + ld a, [wInitHourBuffer] + ld c, a + ld e, l + ld d, h + call PrintHour + inc hl + ld de, String_oclock + call PlaceString + pop hl + ret +; 907f1 (24:47f1) + +Function907f1: ; 907f1 + ld h, d + ld l, e + push hl + call DisplayHourOClock + pop de +rept 2 + inc de +endr + ld a, $9c + ld [de], a + inc de + push de + ld hl, $3 + add hl, de + ld a, [de] + inc de + ld [hli], a + ld a, [de] + ld [hl], a + pop hl + call DisplayMinutesWithMinString +rept 3 + inc hl +endr + ret +; 90810 + +SetMinutes: ; 90810 (24:4810) + ld a, [hJoyPressed] + and A_BUTTON + jr nz, .asm_90857 + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, .asm_90835 + ld a, [hl] + and D_DOWN + jr nz, .asm_90828 + call DelayFrame + and a + ret +.asm_90828 + ld hl, BattleMonNick + 5 + ld a, [hl] + and a + jr nz, .asm_90831 + ld a, 59 + 1 +.asm_90831 + dec a + ld [hl], a + jr .asm_90841 +.asm_90835 + ld hl, BattleMonNick + 5 + ld a, [hl] + cp 59 + jr c, .asm_9083f + ld a, -1 +.asm_9083f + inc a + ld [hl], a +.asm_90841 + hlcoord 12, 9 + ld a, " " + ld bc, 7 + call ByteFill + hlcoord 12, 9 + call DisplayMinutesWithMinString + call WaitBGMap + and a + ret +.asm_90857 + scf + ret + +DisplayMinutesWithMinString: ; 90859 (24:4859) + ld de, BattleMonNick + 5 + call PrintTwoDigitNumberRightAlign + inc hl + ld de, String_min + call PlaceString + ret + +PrintTwoDigitNumberRightAlign: ; 90867 (24:4867) + push hl + ld a, " " + ld [hli], a + ld [hl], a + pop hl + lb bc, PRINTNUM_RIGHTALIGN | 1, 2 + call PrintNum + ret +; 90874 (24:4874) + +UnknownText_0x90874: ; 0x90874 + ; Zzz… Hm? Wha…? You woke me up! Will you check the clock for me? + text_jump UnknownText_0x1bc29c + db "@" +; 0x90879 + +UnknownText_0x90879: ; 0x90879 + ; What time is it? + text_jump UnknownText_0x1bc2eb + db "@" +; 0x9087e + +String_oclock: + db "o'clock@" +; 90886 + +UnknownText_0x90886: ; 0x90886 + ; What?@ @ + text_jump UnknownText_0x1bc2fd + start_asm + hlcoord 1, 16 + call DisplayHourOClock + ld hl, UnknownText_0x90895 + ret +; 90895 (24:4895) + +UnknownText_0x90895: ; 0x90895 + ; ? + text_jump UnknownText_0x1bc305 + db "@" +; 0x9089a + +UnknownText_0x9089a: ; 0x9089a + ; How many minutes? + text_jump UnknownText_0x1bc308 + db "@" +; 0x9089f + +String_min: + db "min.@" +; 908a4 + +UnknownText_0x908a4: ; 0x908a4 + ; Whoa!@ @ + text_jump UnknownText_0x1bc31b + start_asm +; 0x908a9 + hlcoord 7, 14 + call DisplayMinutesWithMinString + ld hl, UnknownText_0x908b3 + ret +; 908b3 (24:48b3) + +UnknownText_0x908b3: ; 0x908b3 + ; ? + text_jump UnknownText_0x1bc323 + db "@" +; 0x908b8 + +OakText_ResponseToSetTime: ; 0x908b8 + start_asm + decoord 1, 14 + ld a, [wInitHourBuffer] + ld c, a + call PrintHour + ld [hl], ":" + inc hl + ld de, BattleMonNick + 5 + lb bc, PRINTNUM_LEADINGZEROS | 1, 2 + call PrintNum + ld b, h + ld c, l + ld a, [wInitHourBuffer] + cp 4 + jr c, .NITE + cp 11 + jr c, .MORN + cp 18 + jr c, .DAY +.NITE + ld hl, .sodark + ret +.MORN + ld hl, .overslept + ret +.DAY + ld hl, .yikes + ret +; 908ec (24:48ec) + +.overslept: ; 0x908ec + ; ! I overslept! + text_jump UnknownText_0x1bc326 + db "@" +; 0x908f1 + +.yikes: ; 0x908f1 + ; ! Yikes! I over- slept! + text_jump UnknownText_0x1bc336 + db "@" +; 0x908f6 + +.sodark: ; 0x908f6 + ; ! No wonder it's so dark! + text_jump UnknownText_0x1bc34f + db "@" +; 0x908fb + +GFX_908fb: ; 908fb +INCBIN "gfx/unknown/0908fb.2bpp" +GFX_90903: ; 90903 +INCBIN "gfx/unknown/090903.2bpp" +GFX_9090b: ; 9090b +INCBIN "gfx/unknown/09090b.2bpp" +; 90913 + +Special_SetDayOfWeek: ; 90913 + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + ld de, GFX_90903 + ld hl, VTiles1 tile $6f + lb bc, BANK(GFX_90903), 1 + call Request1bpp + ld de, GFX_9090b + ld hl, VTiles1 tile $75 + lb bc, BANK(GFX_9090b), 1 + call Request1bpp + xor a + ld [wd002], a +.asm_90936 + hlcoord 0, 12 + lb bc, 4, 18 + call TextBox + call LoadStandardMenuDataHeader + ld hl, UnknownText_0x90a3f + call PrintText + hlcoord 9, 3 + ld b, 2 + ld c, 9 + call TextBox + hlcoord 14, 3 + ld [hl], $ef + hlcoord 14, 6 + ld [hl], $f5 + hlcoord 10, 5 + call Function909de + call Function321c + ld c, 10 + call DelayFrames +.asm_9096a + call JoyTextDelay + call Function90993 + jr nc, .asm_9096a + call ExitMenu + call UpdateSprites + ld hl, UnknownText_0x90a44 + call PrintText + call YesNoBox + jr c, .asm_90936 + ld a, [wd002] + ld [StringBuffer2], a + call Function663 + call LoadStandardFont + pop af + ld [hInMenu], a + ret +; 90993 + +Function90993: ; 90993 + ld a, [hJoyPressed] + and A_BUTTON + jr z, .asm_9099b + scf + ret + +.asm_9099b + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, .asm_909ba + ld a, [hl] + and D_DOWN + jr nz, .asm_909ad + call DelayFrame + and a + ret + +.asm_909ad + ld hl, wd002 + ld a, [hl] + and a + jr nz, .asm_909b6 + ld a, 6 + 1 + +.asm_909b6 + dec a + ld [hl], a + jr .asm_909c6 + +.asm_909ba + ld hl, wd002 + ld a, [hl] + cp 6 + jr c, .asm_909c4 + ld a, -1 + +.asm_909c4 + inc a + ld [hl], a + +.asm_909c6 + xor a + ld [hBGMapMode], a + hlcoord 10, 4 + ld b, $2 + ld c, $9 + call ClearBox + hlcoord 10, 5 + call Function909de + call WaitBGMap + and a + ret +; 909de + +Function909de: ; 909de + push hl + ld a, [wd002] + ld e, a + ld d, 0 + ld hl, WeekdaysStrings +rept 2 + add hl, de +endr + ld a, [hli] + ld d, [hl] + ld e, a + pop hl + call PlaceString + ret +; 909f2 + +WeekdaysStrings: ; 909f2 + dw Sunday + dw Monday + dw Tuesday + dw Wednesday + dw Thursday + dw Friday + dw Saturday + dw Sunday + +Sunday: db " SUNDAY@" +Monday: db " MONDAY@" +Tuesday: db " TUESDAY@" +Wednesday: db "WEDNESDAY@" +Thursday: db "THURSDAY@" +Friday: db " FRIDAY@" +Saturday: db "SATURDAY@" + + +UnknownText_0x90a3f: ; 0x90a3f + ; What day is it? + text_jump UnknownText_0x1bc369 + db "@" +; 0x90a44 + +UnknownText_0x90a44: ; 0x90a44 + start_asm + hlcoord 1, 14 + call Function909de + ld hl, UnknownText_0x90a4f + ret +; 90a4f (24:4a4f) + +UnknownText_0x90a4f: ; 0x90a4f + ; , is it? + text_jump UnknownText_0x1bc37a + db "@" +; 0x90a54 + +Special_InitialSetDSTFlag: ; 90a54 + ld a, [wDST] + set 7, a + ld [wDST], a + hlcoord 1, 14 + lb bc, 3, 18 + call ClearBox + ld hl, UnknownText_0x90a6c + call PlaceWholeStringInBoxAtOnce + ret +; 90a6c + +UnknownText_0x90a6c: ; 90a6c + start_asm + call UpdateTime + ld a, [hHours] + ld b, a + ld a, [hMinutes] + ld c, a + decoord 1, 14 + callba PrintHoursMins + ld hl, TextJump_DSTIsThatOK + ret +; 90a83 (24:4a83) + +TextJump_DSTIsThatOK: ; 0x90a83 + ; DST, is that OK? + text_jump Text_DSTIsThatOK + db "@" +; 0x90a88 + +Special_InitialClearDSTFlag: ; 90a88 + ld a, [wDST] + res 7, a + ld [wDST], a + hlcoord 1, 14 + lb bc, 3, 18 + call ClearBox + ld hl, UnknownText_0x90aa0 + call PlaceWholeStringInBoxAtOnce + ret +; 90aa0 + +UnknownText_0x90aa0: ; 90aa0 + start_asm + call UpdateTime + ld a, [hHours] + ld b, a + ld a, [hMinutes] + ld c, a + decoord 1, 14 + callba PrintHoursMins + ld hl, UnknownText_0x90ab7 + ret +; 90ab7 + +UnknownText_0x90ab7: ; 0x90ab7 + ; , is that OK? + text_jump UnknownText_0x1c5ff1 + db "@" +; 0x90abc + +Function90abc: ; 90abc + hlcoord 1, 14 + lb bc, 3, SCREEN_WIDTH - 2 + call ClearBox + ld hl, UnknownText_0x90acc + call PlaceWholeStringInBoxAtOnce + ret +; 90acc + +UnknownText_0x90acc: ; 0x90acc + start_asm + + call UpdateTime + + hlcoord 1, 14 + ld [hl], "R" + inc hl + ld [hl], "T" + inc hl + ld [hl], " " + inc hl + + ld de, hRTCDayLo + call Function90b23 + + hlcoord 1, 16 + ld [hl], "D" + inc hl + ld [hl], "F" + inc hl + ld [hl], " " + inc hl + + ld de, StartDay + call Function90b23 + + ld [hl], " " + inc hl + + ld a, [wDST] + bit 7, a + jr z, .off + + ld [hl], "O" + inc hl + ld [hl], "N" + inc hl + jr .done + +.off + ld [hl], "O" + inc hl + ld [hl], "F" + inc hl + ld [hl], "F" + inc hl + +.done + ld hl, UnknownText_0x90b13 + ret +; 90b13 + +UnknownText_0x90b13: ; 0x90b13 + text "Now on DEBUG…" + prompt +; 0x90b23 + +Function90b23: ; 90b23 + lb bc, 1, 3 + call PrintNum + ld [hl], "." + inc hl + inc de + lb bc, PRINTNUM_LEADINGZEROS | 1, 2 + call PrintNum + ld [hl], ":" + inc hl + inc de + lb bc, PRINTNUM_LEADINGZEROS | 1, 2 + call PrintNum + ret +; 90b3e + +PrintHour: ; 90b3e (24:4b3e) + ld l, e + ld h, d + push bc + call GetTimeOfDayString + call PlaceString + ld l, c + ld h, b + inc hl + pop bc + call AdjustHourForAMorPM + ld [wd265], a + ld de, wd265 + call PrintTwoDigitNumberRightAlign + ret + +GetTimeOfDayString: ; 90b58 (24:4b58) + ld a, c + cp 4 + jr c, .nite + cp 10 + jr c, .morn + cp 18 + jr c, .day +.nite + ld de, .NITE + ret +.morn + ld de, .MORN + ret +.day + ld de, .DAY + ret +; 90b71 (24:4b71) + +.NITE: db "NITE@" +.MORN: db "MORN@" +.DAY: db "DAY@" +; 90b7f + +AdjustHourForAMorPM: +; Convert the hour stored in c (0-23) to a 1-12 value + ld a, c + or a + jr z, .midnight + cp 12 + ret c + ret z + sub 12 + ret + +.midnight + ld a, 12 + ret diff --git a/event/buena.asm b/event/buena.asm index 3662f110d..7079c0259 100644 --- a/event/buena.asm +++ b/event/buena.asm @@ -11,7 +11,7 @@ SpecialBuenasPassword: ; 8af6b add $2 ld [wMenuBorderRightCoord], a call BackUpTiles - call Function1e5d ; menu + call DoNthMenu ; menu callba Function4ae5e ld b, $0 ld a, [MenuSelection] diff --git a/event/daycare.asm b/event/daycare.asm new file mode 100755 index 000000000..3ea64d38c --- /dev/null +++ b/event/daycare.asm @@ -0,0 +1,768 @@ +Special_DayCareMan: ; 166d6 + ld hl, wDaycareMan + bit 0, [hl] + jr nz, .asm_166fe + ld hl, wDaycareMan + ld a, $0 + call Function1678f + jr c, .asm_16724 + call Function16798 + jr c, .asm_16721 + callba Functionde2a + ld hl, wDaycareMan + set 0, [hl] + call Function167f6 + call Function16a3b + ret + +.asm_166fe + callba Functione698 + ld hl, wBreedMon1Nick + call Function1686d + call Function16807 + jr c, .asm_16721 + callba Functiondd21 + call Function16850 + ld hl, wDaycareMan + res 0, [hl] + res 5, [hl] + jr .asm_16724 + +.asm_16721 + call Function1689b + +.asm_16724 + ld a, $13 + call Function1689b + ret +; 1672a + +Special_DayCareLady: ; 1672a + ld hl, wDaycareLady + bit 0, [hl] + jr nz, .asm_16752 + ld hl, wDaycareLady + ld a, $2 + call Function16781 + jr c, .asm_1677b + call Function16798 + jr c, .asm_16778 + callba Functionde37 + ld hl, wDaycareLady + set 0, [hl] + call Function167f6 + call Function16a3b + ret + +.asm_16752 + callba Functione6b3 + ld hl, wBreedMon2Nick + call Function1686d + call Function16807 + jr c, .asm_16778 + callba Functiondd42 + call Function16850 + ld hl, wDaycareLady + res 0, [hl] + ld hl, wDaycareMan + res 5, [hl] + jr .asm_1677b + +.asm_16778 + call Function1689b + +.asm_1677b + ld a, $13 + call Function1689b + ret +; 16781 + +Function16781: ; 16781 + bit 7, [hl] + jr nz, .asm_16788 + set 7, [hl] + inc a + +.asm_16788 + call Function1689b + call YesNoBox + ret +; 1678f + +Function1678f: ; 1678f + set 7, [hl] + call Function1689b + call YesNoBox + ret +; 16798 + +Function16798: ; 16798 + ld a, [PartyCount] + cp 2 + jr c, .asm_167e5 + ld a, 4 + call Function1689b + ld b, 6 + callba Function5001d + jr c, .asm_167dd + ld a, [CurPartySpecies] + cp EGG + jr z, .asm_167e1 + callba CheckCurPartyMonFainted + jr c, .asm_167e9 + ld hl, PartyMon1Item + ld bc, PARTYMON_STRUCT_LENGTH + ld a, [CurPartyMon] + call AddNTimes + ld d, [hl] + callba ItemIsMail + jr c, .asm_167ed + ld hl, PartyMonNicknames + ld a, [CurPartyMon] + call GetNick + and a + ret + +.asm_167dd + ld a, $12 + scf + ret + +.asm_167e1 + ld a, $6 + scf + ret + +.asm_167e5 + ld a, $7 + scf + ret + +.asm_167e9 + ld a, $8 + scf + ret + +.asm_167ed + ld a, $a + scf + ret +; 167f1 + +UnknownText_0x167f1: ; 0x167f1 + ; + text_jump UnknownText_0x1bdaa7 + db "@" +; 0x167f6 + +Function167f6: ; 167f6 + ld a, $5 + call Function1689b + ld a, [CurPartySpecies] + call PlayCry + ld a, $9 + call Function1689b + ret +; 16807 + +Function16807: ; 16807 + ld a, [StringBuffer2 + 1] + and a + jr nz, .asm_16819 + ld a, $f + call Function1689b + call YesNoBox + jr c, .asm_16844 + jr .asm_1682d + +.asm_16819 + ld a, $b + call Function1689b + call YesNoBox + jr c, .asm_16844 + ld a, $c + call Function1689b + call YesNoBox + jr c, .asm_16844 + +.asm_1682d + ld de, Money + ld bc, StringBuffer2 + 2 + callba CompareMoney + jr c, .asm_16848 + ld a, [PartyCount] + cp $6 + jr nc, .asm_1684c + and a + ret + +.asm_16844 + ld a, $12 + scf + ret + +.asm_16848 + ld a, $11 + scf + ret + +.asm_1684c + ld a, $10 + scf + ret +; 16850 + +Function16850: ; 16850 + ld bc, StringBuffer2 + 2 + ld de, Money + callba TakeMoney + ld a, $d + call Function1689b + ld a, [CurPartySpecies] + call PlayCry + ld a, $e + call Function1689b + ret +; 1686d + +Function1686d: ; 1686d + ld a, b + ld [StringBuffer2], a + ld a, d + ld [StringBuffer2 + 1], a + ld de, StringBuffer1 + ld bc, NAME_LENGTH + call CopyBytes + ld hl, 0 + ld bc, $64 + ld a, [StringBuffer2 + 1] + call AddNTimes + ld de, $64 + add hl, de + xor a + ld [StringBuffer2 + 2], a + ld a, h + ld [StringBuffer2 + 3], a + ld a, l + ld [StringBuffer2 + 4], a + ret +; 1689b + +Function1689b: ; 1689b + ld e, a + ld d, 0 + ld hl, TextTable_168aa +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + call PrintText + ret +; 168aa + +TextTable_168aa: ; 168aa + dw UnknownText_0x168d2 + dw UnknownText_0x168d7 + dw UnknownText_0x168dc + dw UnknownText_0x168e1 + dw UnknownText_0x168e6 + dw UnknownText_0x168ff + dw UnknownText_0x168f0 + dw UnknownText_0x168eb + dw UnknownText_0x168fa + dw UnknownText_0x16904 + dw UnknownText_0x168f5 + dw UnknownText_0x16909 + dw UnknownText_0x1690e + dw UnknownText_0x16913 + dw UnknownText_0x16918 + dw UnknownText_0x1691d + dw UnknownText_0x16922 + dw UnknownText_0x16927 + dw UnknownText_0x1692c + dw UnknownText_0x16931 +; 168d2 + +UnknownText_0x168d2: ; 0x168d2 + ; I'm the DAY-CARE MAN. Want me to raise a #MON? + text_jump UnknownText_0x1bdaa9 + db "@" +; 0x168d7 + +UnknownText_0x168d7: ; 0x168d7 + ; I'm the DAY-CARE MAN. Do you know about EGGS? I was raising #MON with my wife, you see. We were shocked to find an EGG! How incredible is that? So, want me to raise a #MON? + text_jump UnknownText_0x1bdad8 + db "@" +; 0x168dc + +UnknownText_0x168dc: ; 0x168dc + ; I'm the DAY-CARE LADY. Should I raise a #MON for you? + text_jump UnknownText_0x1bdb85 + db "@" +; 0x168e1 + +UnknownText_0x168e1: ; 0x168e1 + ; I'm the DAY-CARE LADY. Do you know about EGGS? My husband and I were raising some #MON, you see. We were shocked to find an EGG! How incredible could that be? Should I raise a #MON for you? + text_jump UnknownText_0x1bdbbb + db "@" +; 0x168e6 + +UnknownText_0x168e6: ; 0x168e6 + ; What should I raise for you? + text_jump UnknownText_0x1bdc79 + db "@" +; 0x168eb + +UnknownText_0x168eb: ; 0x168eb + ; Oh? But you have just one #MON. + text_jump UnknownText_0x1bdc97 + db "@" +; 0x168f0 + +UnknownText_0x168f0: ; 0x168f0 + ; Sorry, but I can't accept an EGG. + text_jump UnknownText_0x1bdcb8 + db "@" +; 0x168f5 + +UnknownText_0x168f5: ; 0x168f5 + ; Remove MAIL before you come see me. + text_jump UnknownText_0x1bdcda + db "@" +; 0x168fa + +UnknownText_0x168fa: ; 0x168fa + ; If you give me that, what will you battle with? + text_jump UnknownText_0x1bdcff + db "@" +; 0x168ff + +UnknownText_0x168ff: ; 0x168ff + ; OK. I'll raise your @ . + text_jump UnknownText_0x1bdd30 + db "@" +; 0x16904 + +UnknownText_0x16904: ; 0x16904 + ; Come back for it later. + text_jump UnknownText_0x1bdd4b + db "@" +; 0x16909 + +UnknownText_0x16909: ; 0x16909 + ; Are we geniuses or what? Want to see your @ ? + text_jump UnknownText_0x1bdd64 + db "@" +; 0x1690e + +UnknownText_0x1690e: ; 0x1690e + ; Your @ has grown a lot. By level, it's grown by @ . If you want your #MON back, it will cost ¥@ . + text_jump UnknownText_0x1bdd96 + db "@" +; 0x16913 + +UnknownText_0x16913: ; 0x16913 + ; Perfect! Here's your #MON. + text_jump UnknownText_0x1bde04 + db "@" +; 0x16918 + +UnknownText_0x16918: ; 0x16918 + ; got back @ . + text_jump UnknownText_0x1bde1f + db "@" +; 0x1691d + +UnknownText_0x1691d: ; 0x1691d + ; Huh? Back already? Your @ needs a little more time with us. If you want your #MON back, it will cost ¥100. + text_jump UnknownText_0x1bde32 + db "@" +; 0x16922 + +UnknownText_0x16922: ; 0x16922 + ; You have no room for it. + text_jump UnknownText_0x1bdea2 + db "@" +; 0x16927 + +UnknownText_0x16927: ; 0x16927 + ; You don't have enough money. + text_jump UnknownText_0x1bdebc + db "@" +; 0x1692c + +UnknownText_0x1692c: ; 0x1692c + ; Oh, fine then. + text_jump UnknownText_0x1bded9 + db "@" +; 0x16931 + +UnknownText_0x16931: ; 0x16931 + ; Come again. + text_jump UnknownText_0x1bdee9 + db "@" +; 0x16936 + +Special_DayCareManOutside: ; 16936 + ld hl, wDaycareMan + bit 6, [hl] + jr nz, Function16949 + ld hl, UnknownText_0x16944 + call PrintText + ret + +UnknownText_0x16944: ; 0x16944 + ; Not yet… + text_jump UnknownText_0x1bdef6 + db "@" +; 0x16949 + +Function16949: ; 16949 + ld hl, UnknownText_0x16993 + call PrintText + call YesNoBox + jr c, .asm_1697c + ld a, [PartyCount] + cp PARTY_LENGTH + jr nc, .asm_16987 + call Function169ac + ld hl, wDaycareMan + res 6, [hl] + call Function16a3b + ld hl, UnknownText_0x16998 + call PrintText + ld de, SFX_GET_EGG_FROM_DAYCARE_LADY + call PlaySFX + ld c, 120 + call DelayFrames + ld hl, UnknownText_0x1699d + jr .asm_1697f + +.asm_1697c + ld hl, UnknownText_0x169a2 + +.asm_1697f + call PrintText + xor a + ld [ScriptVar], a + ret + +.asm_16987 + ld hl, UnknownText_0x169a7 + call PrintText + ld a, $1 + ld [ScriptVar], a + ret +; 16993 + +UnknownText_0x16993: ; 0x16993 + ; Ah, it's you! We were raising your #MON, and my goodness, were we surprised! Your #MON had an EGG! We don't know how it got there, but your #MON had it. You want it? + text_jump UnknownText_0x1bdf00 + db "@" +; 0x16998 + +UnknownText_0x16998: ; 0x16998 + ; received the EGG! + text_jump UnknownText_0x1bdfa5 + db "@" +; 0x1699d + +UnknownText_0x1699d: ; 0x1699d + ; Take good care of it. + text_jump UnknownText_0x1bdfba + db "@" +; 0x169a2 + +UnknownText_0x169a2: ; 0x169a2 + ; Well then, I'll keep it. Thanks! + text_jump UnknownText_0x1bdfd1 + db "@" +; 0x169a7 + +UnknownText_0x169a7: ; 0x169a7 + ; You have no room in your party. Come back later. + text_jump UnknownText_0x1bdff2 + db "@" +; 0x169ac + +Function169ac: ; 169ac + ld a, [wEggMonLevel] + ld [CurPartyLevel], a + ld hl, PartyCount + ld a, [hl] + cp PARTY_LENGTH + jr nc, .asm_16a2f + inc a + ld [hl], a + ld c, a + ld b, 0 + add hl, bc + ld a, EGG + ld [hli], a + ld a, [wEggMonSpecies] + ld [CurSpecies], a + ld [CurPartySpecies], a + ld a, $ff + ld [hl], a + ld hl, PartyMonNicknames + ld bc, PKMN_NAME_LENGTH + call Function16a31 + ld hl, wEggNick + call CopyBytes + ld hl, PartyMonOT + ld bc, NAME_LENGTH + call Function16a31 + ld hl, wEggOT + call CopyBytes + ld hl, PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH + call Function16a31 + ld hl, wEggMon + ld bc, wEggMonEnd - wEggMon + call CopyBytes + call GetBaseData + ld a, [PartyCount] + dec a + ld hl, PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH + call AddNTimes + ld b, h + ld c, l + ld hl, MON_ID + 1 + add hl, bc + push hl + ld hl, MON_MAXHP + add hl, bc + ld d, h + ld e, l + pop hl + push bc + ld b, $0 + predef CalcPkmnStats + pop bc + ld hl, MON_HP + add hl, bc + xor a + ld [hli], a + ld [hl], a + and a + ret + +.asm_16a2f + scf + ret +; 16a31 + +Function16a31: ; 16a31 + ld a, [PartyCount] + dec a + call AddNTimes + ld d, h + ld e, l + ret +; 16a3b + +Function16a3b: ; 16a3b + ld a, [wDaycareLady] + bit 0, a + ret z + ld a, [wDaycareMan] + bit 0, a + ret z + callab Function16e1d + ld a, [wd265] + and a + ret z + inc a + ret z + ld hl, wDaycareMan + set 5, [hl] +.asm_16a59 + call Random + cp 150 + jr c, .asm_16a59 + ld [wStepsToEgg], a + jp Function16a66 +; 16a66 + +Function16a66: ; 16a66 + xor a + ld hl, wEggMon + ld bc, wEggMonEnd - wEggMon + call ByteFill + ld hl, wEggNick + ld bc, PKMN_NAME_LENGTH + call ByteFill + ld hl, wEggOT + ld bc, NAME_LENGTH + call ByteFill + ld a, [wBreedMon1DVs] + ld [TempMonDVs], a + ld a, [wBreedMon1DVs + 1] + ld [TempMonDVs + 1], a + ld a, [wBreedMon1Species] + ld [CurPartySpecies], a + ld a, $3 + ld [MonType], a + ld a, [wBreedMon1Species] + cp DITTO + ld a, $1 + jr z, .asm_16ab6 + ld a, [wBreedMon2Species] + cp DITTO + ld a, $0 + jr z, .asm_16ab6 + callba GetGender + ld a, $0 + jr z, .asm_16ab6 + inc a + +.asm_16ab6 + ld [wDittoInDaycare], a + and a + ld a, [wBreedMon1Species] + jr z, .asm_16ac2 + ld a, [wBreedMon2Species] + +.asm_16ac2 + ld [CurPartySpecies], a + callab GetPreEvolution + callab GetPreEvolution + ld a, EGG_LEVEL + ld [CurPartyLevel], a + + ld a, [CurPartySpecies] + cp NIDORAN_F + jr nz, .asm_16ae8 + call Random + cp $80 + ld a, NIDORAN_F + jr c, .asm_16ae8 + ld a, NIDORAN_M +.asm_16ae8 + ld [CurPartySpecies], a + ld [CurSpecies], a + ld [wEggMonSpecies], a + + call GetBaseData + ld hl, wEggNick + ld de, String_16be0 + call CopyName2 + ld hl, PlayerName + ld de, wEggOT + ld bc, NAME_LENGTH + call CopyBytes + xor a + ld [wEggMonItem], a + ld de, wEggMonMoves + xor a + ld [Buffer1], a + predef FillMoves + callba Function170bf + ld hl, wEggMonID + ld a, [PlayerID] + ld [hli], a + ld a, [PlayerID + 1] + ld [hl], a + ld a, [CurPartyLevel] + ld d, a + callab CalcExpAtLevel + ld hl, wEggMonExp + ld a, [hMultiplicand] + ld [hli], a + ld a, [$ffb5] + ld [hli], a + ld a, [$ffb6] + ld [hl], a + xor a + ld b, $a + ld hl, wEggMonStatExp +.asm_16b46 + ld [hli], a + dec b + jr nz, .asm_16b46 + ld hl, wEggMonDVs + call Random + ld [hli], a + ld [TempMonDVs], a + call Random + ld [hld], a + ld [TempMonDVs + 1], a + ld de, wBreedMon1DVs + ld a, [wBreedMon1Species] + cp DITTO + jr z, .asm_16b98 + ld de, wBreedMon2DVs + ld a, [wBreedMon2Species] + cp DITTO + jr z, .asm_16b98 + ld a, $3 + ld [MonType], a + push hl + callba GetGender + pop hl + ld de, wBreedMon1DVs + ld bc, wBreedMon2DVs + jr c, .asm_16bab + jr z, .asm_16b90 + ld a, [wDittoInDaycare] + and a + jr z, .asm_16b98 + ld d, b + ld e, c + jr .asm_16b98 + +.asm_16b90 + ld a, [wDittoInDaycare] + and a + jr nz, .asm_16b98 + ld d, b + ld e, c + +.asm_16b98 + ld a, [de] + inc de + and $f + ld b, a + ld a, [hl] + and $f0 + add b + ld [hli], a + ld a, [de] + and $7 + ld b, a + ld a, [hl] + and $f8 + add b + ld [hl], a + +.asm_16bab + ld hl, StringBuffer1 + ld de, wd050 + ld bc, NAME_LENGTH + call CopyBytes + ld hl, wEggMonMoves + ld de, wEggMonPP + predef FillPP + ld hl, wd050 + ld de, StringBuffer1 + ld bc, NAME_LENGTH + call CopyBytes + ld a, [BaseEggSteps] + ld hl, wEggMonHappiness + ld [hli], a + xor a +rept 2 + ld [hli], a +endr + ld [hl], a + ld a, [CurPartyLevel] + ld [wEggMonLevel], a + ret +; 16be0 + +String_16be0: ; 16be0 + db "EGG@" +; 16be4 diff --git a/event/field_moves.asm b/event/field_moves.asm new file mode 100755 index 000000000..d6fa4a0bb --- /dev/null +++ b/event/field_moves.asm @@ -0,0 +1,312 @@ +PlayWhirlpoolSound: ; 8c7d4 + call WaitSFX + ld de, SFX_SURF + call PlaySFX + call WaitSFX + ret +; 8c7e1 + +BlindingFlash: ; 8c7e1 + callba FadeOutPalettes + ld hl, StatusFlags + set 2, [hl] + callba Function8c0e5 + callba Function8c001 + ld b, SCGB_09 + call GetSGBLayout + callba Function49409 + callba FadeInPalettes + ret +; 8c80a + +ShakeHeadbuttTree: ; 8c80a + callba Function8cf53 + ld de, CutGrassGFX + ld hl, VTiles1 + lb bc, BANK(CutGrassGFX), 4 + call Request2bpp + ld de, HeadbuttTreeGFX + ld hl, VTiles1 tile $04 + lb bc, BANK(HeadbuttTreeGFX), 8 + call Request2bpp + call Function8cad3 + ld a, SPRITE_ANIM_INDEX_1B + call _InitSpriteAnimStruct + ld hl, $3 + add hl, bc + ld [hl], $84 + ld a, $90 + ld [wc3b5], a + callba Function8cf7a + call GetHeadbuttTreeRelativeLocation + ld a, $20 + ld [wcf64], a + call WaitSFX + ld de, SFX_SANDSTORM + call PlaySFX +.loop + ld hl, wcf64 + ld a, [hl] + and a + jr z, .done + dec [hl] + ld a, $90 + ld [wc3b5], a + callba Function8cf7a + call DelayFrame + jr .loop + +.done + call OverworldTextModeSwitch + call WaitBGMap + xor a + ld [hBGMapMode], a + callba Function8cf53 + ld hl, Sprites + $90 + ld bc, $10 + xor a + call ByteFill + ld de, Font + ld hl, VTiles1 + lb bc, BANK(Font), $c + call Get1bpp + call ReplaceKrisSprite + ret +; 8c893 + +HeadbuttTreeGFX: ; 8c893 +INCBIN "gfx/unknown/08c893.2bpp" +; 8c913 + +GetHeadbuttTreeRelativeLocation: ; 8c913 + xor a + ld [hBGMapMode], a + ld a, [PlayerDirection] + and %00001100 + srl a + ld e, a + ld d, 0 + ld hl, TreeRelativeLocationTable + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + + ld a, $5 + ld [hli], a + ld [hld], a + ld bc, SCREEN_WIDTH + add hl, bc + ld [hli], a + ld [hld], a + call WaitBGMap + xor a + ld [hBGMapMode], a + ret +; 8c938 + +TreeRelativeLocationTable: ; 8c938 + dwcoord 8, 8 + 2 ; RIGHT + dwcoord 8, 8 - 2 ; LEFT + dwcoord 8 - 2, 8 ; DOWN + dwcoord 8 + 2, 8 ; UP +; 8c940 + +OWCutAnimation: ; 8c940 + ld a, e + and $1 + ld [wJumptableIndex], a + call .LoadCutGFX + call WaitSFX + ld de, SFX_PLACE_PUZZLE_PIECE_DOWN + call PlaySFX +.loop + ld a, [wJumptableIndex] + bit 7, a + jr nz, .finish + ld a, $90 + ld [wc3b5], a + callab Function8cf7a + call OWCutJumptable + call DelayFrame + jr .loop + +.finish + ret +; 8c96d + +.LoadCutGFX: ; 8c96d + callab Function8cf53 ; pointless to farcall + ld de, CutGrassGFX + ld hl, VTiles1 + lb bc, BANK(CutGrassGFX), 4 + call Request2bpp + ld de, CutTreeGFX + ld hl, VTiles1 tile $4 + lb bc, BANK(CutTreeGFX), 4 + call Request2bpp + ret +; 8c98c + +CutTreeGFX: ; c898c +INCBIN "gfx/misc/cut_tree.2bpp" +; c89cc + +CutGrassGFX: ; 8c9cc +INCBIN "gfx/misc/cut_grass.2bpp" +; 8ca0c + +OWCutJumptable: ; 8ca0c + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, .jumptable +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 8ca1b + + +.jumptable: ; 8ca1b (23:4a1b) + dw Function8ca23 + dw Function8ca3c + dw Function8ca5c + dw Function8ca64 + + +Function8ca23: ; 8ca23 (23:4a23) + call Function8cad3 + ld a, SPRITE_ANIM_INDEX_17 ; leaf + call _InitSpriteAnimStruct + ld hl, $3 + add hl, bc + ld [hl], $84 + ld a, $20 + ld [wcf64], a + ld hl, wJumptableIndex +rept 2 + inc [hl] +endr + ret + +Function8ca3c: ; 8ca3c (23:4a3c) + call Function8ca8e + xor a + call Function8ca73 + ld a, $10 + call Function8ca73 + ld a, $20 + call Function8ca73 + ld a, $30 + call Function8ca73 + ld a, $20 + ld [wcf64], a + ld hl, wJumptableIndex + inc [hl] + ret + +Function8ca5c: ; 8ca5c (23:4a5c) + ld a, $1 + ld [hBGMapMode], a + ld hl, wJumptableIndex + inc [hl] + +Function8ca64: ; 8ca64 (23:4a64) + ld hl, wcf64 + ld a, [hl] + and a + jr z, .asm_8ca6d + dec [hl] + ret +.asm_8ca6d + ld hl, wJumptableIndex + set 7, [hl] + ret + +Function8ca73: ; 8ca73 (23:4a73) + push de + push af + ld a, SPRITE_ANIM_INDEX_16 ; fly takeoff + call _InitSpriteAnimStruct + ld hl, $3 + add hl, bc + ld [hl], $80 + ld hl, $e + add hl, bc + ld [hl], $4 + pop af + ld hl, $c + add hl, bc + ld [hl], a + pop de + ret + +Function8ca8e: ; 8ca8e (23:4a8e) + ld de, 0 + ld a, [wd197] + bit 0, a + jr z, .asm_8ca9a + set 0, e +.asm_8ca9a + ld a, [wd196] + bit 0, a + jr z, .asm_8caa3 + set 1, e +.asm_8caa3 + ld a, [PlayerDirection] + and $c + add e + ld e, a + ld hl, Unknown_8cab3 +rept 2 + add hl, de +endr + ld e, [hl] + inc hl + ld d, [hl] + ret +; 8cab3 (23:4ab3) + +Unknown_8cab3: ; 8cab3 + db $58, $60 + db $48, $60 + db $58, $70 + db $48, $70 + db $58, $40 + db $48, $40 + db $58, $50 + db $48, $50 + db $38, $60 + db $48, $60 + db $38, $50 + db $48, $50 + db $58, $60 + db $68, $60 + db $58, $50 + db $68, $50 +; 8cad3 + +Function8cad3: ; 8cad3 (23:4ad3) + ld a, [PlayerDirection] + and $c + srl a + ld e, a + ld d, 0 + ld hl, Unknown_8cae5 + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + ret +; 8cae5 (23:4ae5) + +Unknown_8cae5: ; 8cae5 + db $50, $68 + db $50, $48 + db $40, $58 + db $60, $58 +; 8caed diff --git a/event/magnet_train.asm b/event/magnet_train.asm new file mode 100755 index 000000000..2c215ee63 --- /dev/null +++ b/event/magnet_train.asm @@ -0,0 +1,485 @@ +Special_MagnetTrain: ; 8cc04 + ld a, [ScriptVar] + and a + jr nz, .ToGoldenrod + ld a, 1 ; forwards + lb bc, $40, $60 + ld de, $fca0 + jr .continue + +.ToGoldenrod + ld a, -1 ; backwards + lb bc, $c0, $a0 + ld de, $b460 + +.continue + ld h, a + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld a, h + ld [w5_d191], a + ld a, c + ld [w5_d192], a + ld a, b + ld [w5_d193], a + ld a, e + ld [w5_d194], a + ld a, d + ld [w5_d195], a + ld a, [hSCX] + push af + ld a, [hSCY] + push af + call Function8ccc9 + ld hl, hVBlank + ld a, [hl] + push af + ld [hl], $1 +.loop + ld a, [wJumptableIndex] + and a + jr z, .initialize + bit 7, a + jr nz, .done + callab Function8cf69 + call Function8cdf7 + call Function8cc99 + call Function3b0c + call DelayFrame + jr .loop + +.initialize + call Function8ceae + jr .loop + +.done + pop af + ld [hVBlank], a + call ClearBGPalettes + xor a + ld [hLCDStatCustom], a + ld [hLCDStatCustom + 1], a + ld [hLCDStatCustom + 2], a + ld [hSCX], a + ld [Requested2bppSource], a + ld [Requested2bppSource + 1], a + ld [Requested2bppDest], a + ld [Requested2bppDest + 1], a + ld [Requested2bpp], a + call ClearTileMap + pop af + ld [hSCY], a + pop af + ld [hSCX], a + xor a + ld [hBGMapMode], a + pop af + ld [rSVBK], a + ret +; 8cc99 + +Function8cc99: ; 8cc99 + ld hl, LYOverridesBackup + ld c, $2f + ld a, [wcf64] + add a + ld [hSCX], a + call Function8ccc4 + ld c, $30 + ld a, [wcf65] + call Function8ccc4 + ld c, $31 + ld a, [wcf64] + add a + call Function8ccc4 + ld a, [wd191] + ld d, a + ld hl, wcf64 + ld a, [hl] +rept 2 + add d +endr + ld [hl], a + ret +; 8ccc4 + +Function8ccc4: ; 8ccc4 +.asm_8ccc4 + ld [hli], a + dec c + jr nz, .asm_8ccc4 + ret +; 8ccc9 + +Function8ccc9: ; 8ccc9 + call ClearBGPalettes + call ClearSprites + call DisableLCD + callab Function8cf53 + call SetMagnetTrainPals + call DrawMagnetTrain + ld a, $90 + ld [hWY], a + call EnableLCD + xor a + ld [hBGMapMode], a + ld [hSCX], a + ld [hSCY], a + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + callba GetPlayerIcon + pop af + ld [rSVBK], a + ld hl, VTiles0 + ld c, $4 + call Request2bpp + ld hl, $c0 + add hl, de + ld d, h + ld e, l + ld hl, VTiles0 tile $04 + ld c, $4 + call Request2bpp + call Function8cda6 + ld hl, wJumptableIndex + xor a + ld [hli], a + ld a, [wd192] +rept 3 + ld [hli], a +endr + ld de, MUSIC_MAGNET_TRAIN + call PlayMusic2 + ret +; 8cd27 + +DrawMagnetTrain: ; 8cd27 + ld hl, VBGMap0 + xor a +.asm_8cd2b + call GetMagnetTrainBGTiles + ld b, 32 / 2 + call .FillAlt + inc a + cp $12 + jr c, .asm_8cd2b + ld hl, VBGMap0 tile $0c + ld de, MagnetTrainTilemap1 + ld c, 20 + call .FillLine + ld hl, VBGMap0 tile $0e + ld de, MagnetTrainTilemap2 + ld c, 20 + call .FillLine + ld hl, VBGMap0 tile $10 + ld de, MagnetTrainTilemap3 + ld c, 20 + call .FillLine + ld hl, VBGMap0 tile $12 + ld de, MagnetTrainTilemap4 + ld c, 20 + call .FillLine + ret +; 8cd65 + +.FillLine ; 8cd65 + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .FillLine + ret +; 8cd6c + +.FillAlt ; 8cd6c + ld [hl], e + inc hl + ld [hl], d + inc hl + dec b + jr nz, .FillAlt + ret +; 8cd74 + +GetMagnetTrainBGTiles: ; 8cd74 + push hl + ld e, a + ld d, 0 + ld hl, MagnetTrainBGTiles +rept 2 + add hl, de +endr + ld e, [hl] + inc hl + ld d, [hl] + pop hl + ret +; 8cd82 + +MagnetTrainBGTiles: ; 8cd82 +; Alternating tiles for each line +; of the Magnet Train tilemap. + db $4c, $4d ; bush + db $5c, $5d ; bush + db $4c, $4d ; bush + db $5c, $5d ; bush + db $08, $08 ; fence + db $18, $18 ; fence + db $1f, $1f ; track + db $31, $31 ; track + db $11, $11 ; track + db $11, $11 ; track + db $0d, $0d ; track + db $31, $31 ; track + db $04, $04 ; fence + db $18, $18 ; fence + db $4c, $4d ; bush + db $5c, $5d ; bush + db $4c, $4d ; bush + db $5c, $5d ; bush +; 8cda6 + +Function8cda6: ; 8cda6 + ld hl, LYOverrides + ld bc, $90 + ld a, [wd192] + call ByteFill + ld hl, LYOverridesBackup + ld bc, $90 + ld a, [wd192] + call ByteFill + ld a, $43 + ld [hLCDStatCustom], a + ret +; 8cdc3 + +SetMagnetTrainPals: ; 8cdc3 + ld a, $1 + ld [rVBK], a + + ; bushes + ld hl, VBGMap0 + ld bc, 8 tiles + ld a, $2 + call ByteFill + + ; train + ld hl, VBGMap0 tile $08 + ld bc, 20 tiles + xor a + call ByteFill + + ; more bushes + ld hl, VBGMap0 tile $1c + ld bc, 8 tiles + ld a, $2 + call ByteFill + + ; train window + ld hl, VBGMap0 tile $10 + 7 + ld bc, 6 + ld a, $4 + call ByteFill + + ld a, $0 + ld [rVBK], a + ret +; 8cdf7 + +Function8cdf7: ; 8cdf7 + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, Jumptable_8ce06 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 8ce06 + +Jumptable_8ce06: ; 8ce06 + dw Function8ce19 + dw Function8ce6d + dw Function8ce47 + dw Function8ce6d + dw Function8ce7a + dw Function8ce6d + dw Function8cea2 +; 8ce14 + +Function8ce14: ; 8ce14 + ld hl, wJumptableIndex + inc [hl] + ret +; 8ce19 + +Function8ce19: ; 8ce19 + ld d, $55 + ld a, [wd194 + 1] + ld e, a + ld b, SPRITE_ANIM_INDEX_15 + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, [PlayerGender] + bit 0, a + jr z, .asm_8ce31 + ld b, SPRITE_ANIM_INDEX_1F + +.asm_8ce31 + pop af + ld [rSVBK], a + ld a, b + call _InitSpriteAnimStruct + ld hl, $3 + add hl, bc + ld [hl], $0 + call Function8ce14 + ld a, $80 + ld [wcf66], a + ret +; 8ce47 + +Function8ce47: ; 8ce47 + ld hl, wd193 + ld a, [wcf65] + cp [hl] + jr z, .asm_8ce64 + ld e, a + ld a, [wd191] + xor $ff + inc a + add e + ld [wcf65], a + ld hl, wc3c0 + ld a, [wd191] + add [hl] + ld [hl], a + ret + +.asm_8ce64 + call Function8ce14 + ld a, $80 + ld [wcf66], a + ret +; 8ce6d + +Function8ce6d: ; 8ce6d + ld hl, wcf66 + ld a, [hl] + and a + jr z, .asm_8ce76 + dec [hl] + ret + +.asm_8ce76 + call Function8ce14 + ret +; 8ce7a + +Function8ce7a: ; 8ce7a + ld hl, wd194 + ld a, [wcf65] + cp [hl] + jr z, .asm_8ce9e + ld e, a + ld a, [wd191] + xor $ff + inc a + ld d, a + ld a, e +rept 2 + add d +endr + ld [wcf65], a + ld hl, wc3c0 + ld a, [wd191] + ld d, a + ld a, [hl] +rept 2 + add d +endr + ld [hl], a + ret + + ret + +.asm_8ce9e + call Function8ce14 + ret +; 8cea2 + +Function8cea2: ; 8cea2 + ld a, $80 + ld [wJumptableIndex], a + ld de, SFX_TRAIN_ARRIVED + call PlaySFX + ret +; 8ceae + +Function8ceae: ; 8ceae + callba Function8cf69 + call Function8cdf7 + call Function8cc99 + call Function3b0c + call DelayFrame + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, [TimeOfDayPal] + push af + ld a, [wPermission] + push af + ld a, [TimeOfDay] + and $3 + ld [TimeOfDayPal], a + ld a, $1 + ld [wPermission], a + ld b, SCGB_09 + call GetSGBLayout + call UpdateTimePals + ld a, [rBGP] + ld [wcfc7], a + ld a, [rOBP0] + ld [wcfc8], a + ld a, [rOBP1] + ld [wcfc9], a + pop af + ld [wPermission], a + pop af + ld [TimeOfDayPal], a + pop af + ld [rSVBK], a + ret +; 8ceff + +MagnetTrainTilemap1: + db $1f, $05, $06, $0a, $0a + db $0a, $09, $0a, $0a, $0a + db $0a, $0a, $0a, $09, $0a + db $0a, $0a, $0b, $0c, $1f +MagnetTrainTilemap2: + db $14, $15, $16, $1a, $1a + db $1a, $19, $1a, $1a, $1a + db $1a, $1a, $1a, $19, $1a + db $1a, $1a, $1b, $1c, $1d +MagnetTrainTilemap3: + db $24, $25, $26, $27, $07 + db $2f, $29, $28, $28, $28 + db $28, $28, $28, $29, $07 + db $2f, $2a, $2b, $2c, $2d +MagnetTrainTilemap4: + db $20, $1f, $2e, $1f, $17 + db $00, $2e, $1f, $1f, $1f + db $1f, $1f, $1f, $2e, $17 + db $00, $1f, $2e, $1f, $0f +; 8cf4f diff --git a/home/menu.asm b/home/menu.asm index 30497a44c..bf6427151 100644 --- a/home/menu.asm +++ b/home/menu.asm @@ -227,7 +227,7 @@ Function1e35:: ; 1e35 ret ; 1e5d -Function1e5d:: ; 1e5d +DoNthMenu:: ; 1e5d call MenuFunc_1e7f call MenuWriteText call Function1eff @@ -438,7 +438,7 @@ Function1f79:: ; 1f79 ret ; 1f8d -Function1f8d:: ; 1f8d +PlaceNthMenuStrings:: ; 1f8d push de ld a, [MenuSelection] call Function1fb1 @@ -464,7 +464,7 @@ endr ret ; 1fa7 -Function1fa7:: ; 1fa7 +MenuJumptable:: ; 1fa7 ld a, [MenuSelection] call Function1fb1 ld a, [hli] diff --git a/main.asm b/main.asm index 63480f92c..672d0d44c 100644 --- a/main.asm +++ b/main.asm @@ -9791,7 +9791,7 @@ InitNickname: ; e3de ret ; e3fd -Functione3fd: ; e3fd +_BillsPC: ; e3fd call Functione40a ret c call Functione41c @@ -9851,7 +9851,7 @@ Functione443: ; e443 (3:6443) xor a ld [wcf76], a ld [hBGMapMode], a - call Function1e5d + call DoNthMenu jr c, .cancel ld a, [wMenuCursorBuffer] push af @@ -11479,1698 +11479,17 @@ INCLUDE "engine/spawn_points.asm" INCLUDE "engine/map_setup.asm" -PokemonCenterPC: ; 1559a - call PC_CheckPartyForPokemon - ret c - call PC_PlayBootSound - ld hl, UnknownText_0x15a27 - call PC_DisplayText - ld hl, UnknownText_0x15a2c - call PC_DisplayTextWaitMenu - ld hl, .TopMenu - call LoadMenuDataHeader -.loop - xor a - ld [hBGMapMode], a - call Function1563e - ld [wcf76], a - call Function1e5d - jr c, .shutdown - ld a, [MenuSelection] - ld hl, .JumpTable - call Function1fa7 - jr nc, .loop - -.shutdown - call Function156b8 - call ExitMenu - call WriteBackup - ret -; 155d6 - -.TopMenu: ; 0x155d6 - db $48 ; flags - db 00, 00 ; start coords - db 12, 15 ; end coords - dw .MenuData2 - db 1 ; default option -; 0x155de - -.MenuData2: ; 0x155de - db $a0 ; flags - db 0 ; items - dw .WhichPC - dw Function1f8d - dw .JumpTable -; 0x155e6 - -.JumpTable: ; 155e6 - dw Function15679, .String_PlayersPC - dw Function15668, .String_BillsPC - dw Function15689, .String_OaksPC - dw Function1569a, .String_HallOfFame - dw Function156ab, .String_TurnOff -; 155fa - -.String_PlayersPC: db "'s PC@" -.String_BillsPC: db "BILL's PC@" -.String_OaksPC: db "PROF.OAK's PC@" -.String_HallOfFame: db "HALL OF FAME@" -.String_TurnOff: db "TURN OFF@" -; 1562c - -.WhichPC: ; 1562c - ; before pokedex - db 3 ; items - db 1, 0, 4 ; bill's, player's, turn off - db -1 - - ; before Hall Of Fame - db 4 ; items - db 1, 0, 2, 4 ; bill's, player's, oak's, turn off - db -1 - - ; postgame - db 5 ; items - db 1, 0, 2, 3, 4 ; bill's, player's, oak's, hall of fame, turn off - db -1 -; 1563e - -Function1563e: ; 1563e - call CheckReceivedDex - jr nz, .asm_15646 - ld a, $0 - ret - -.asm_15646 - ld a, [wd95e] - and a - ld a, $1 - ret z - ld a, $2 - ret -; 15650 - -PC_CheckPartyForPokemon: ; 15650 - ld a, [PartyCount] - and a - ret nz - ld de, SFX_CHOOSE_PC_OPTION - call PlaySFX - ld hl, UnknownText_0x15663 - call PC_DisplayText - scf - ret -; 15663 - -UnknownText_0x15663: ; 0x15663 - ; Bzzzzt! You must have a #MON to use this! - text_jump UnknownText_0x1c1328 - db "@" -; 0x15668 - -Function15668: ; 15668 - call Function156c2 - ld hl, UnknownText_0x15a31 - call PC_DisplayText - callba Functione3fd - and a - ret -; 15679 (5:5679) - -Function15679: ; 15679 - call Function156c2 - ld hl, UnknownText_0x15a36 - call PC_DisplayText - ld b, $0 - call Function15704 - and a - ret -; 15689 - -Function15689: ; 15689 - call Function156c2 - ld hl, UnknownText_0x15a3b - call PC_DisplayText - callba ProfOaksPC - and a - ret -; 1569a - -Function1569a: ; 1569a - call Function156c2 - call FadeToMenu - callba Function86650 - call Function2b3c - and a - ret -; 156ab - -Function156ab: ; 156ab - ld hl, UnknownText_0x15a40 - call PrintText - scf - ret -; 156b3 - -PC_PlayBootSound: ; 156b3 - ld de, SFX_BOOT_PC - jr Function156d0 - -Function156b8: ; 156b8 - ld de, SFX_SHUT_DOWN_PC - call Function156d0 - call WaitSFX - ret - -Function156c2: ; 156c2 - ld de, SFX_CHOOSE_PC_OPTION - jr Function156d0 - -Function156c7: ; 156c7 - ld de, SFX_SWITCH_POKEMON - call Function156d0 - ld de, SFX_SWITCH_POKEMON - -Function156d0: ; 156d0 - push de - call WaitSFX - pop de - call PlaySFX - ret -; 156d9 - -Function156d9: ; 156d9 - call PC_PlayBootSound - ld hl, UnknownText_0x156ff - call PC_DisplayText - ld b, $1 - call Function15704 - and a - jr nz, .asm_156f9 - call OverworldTextModeSwitch - call Function321c - call UpdateSprites - call Function156b8 - ld c, $0 - ret - -.asm_156f9 - call ClearBGPalettes - ld c, $1 - ret -; 156ff - -UnknownText_0x156ff: ; 0x156ff - ; turned on the PC. - text_jump UnknownText_0x1c1353 - db "@" -; 0x15704 - -Function15704: ; 15704 - ld a, b - ld [wcf76], a - ld hl, UnknownText_0x157cc - call PC_DisplayTextWaitMenu - call Function15715 - call ExitMenu - ret -; 15715 - -Function15715: ; 15715 - xor a - ld [wd0d7], a - ld [wd0dd], a - ld hl, KrissPCMenuData - call LoadMenuDataHeader -.asm_15722 - call UpdateTimePals - call Function1e5d - jr c, .asm_15731 - call Function1fa7 - jr nc, .asm_15722 - jr .asm_15732 - -.asm_15731 - xor a - -.asm_15732 - call ExitMenu - ret -; 15736 - -KrissPCMenuData: ; 0x15736 - db %01000000 - db 0, 0 ; top left corner coords (y, x) - db 12, 15 ; bottom right corner coords (y, x) - dw .KrissPCMenuData2 - db 1 ; default selected option - -.KrissPCMenuData2 - db %10100000 ; bit7 - db 0 ; # items? - dw .KrissPCMenuList1 - dw Function1f8d - dw .KrissPCMenuPointers - -.KrissPCMenuPointers ; 0x15746 - dw KrisWithdrawItemMenu, .WithdrawItem - dw KrisDepositItemMenu, .DepositItem - dw KrisTossItemMenu, .TossItem - dw KrisMailBoxMenu, .MailBox - dw KrisDecorationMenu, .Decoration - dw KrisLogOffMenu, .LogOff - dw KrisLogOffMenu, .TurnOff - -.WithdrawItem db "WITHDRAW ITEM@" -.DepositItem db "DEPOSIT ITEM@" -.TossItem db "TOSS ITEM@" -.MailBox db "MAIL BOX@" -.Decoration db "DECORATION@" -.TurnOff db "TURN OFF@" -.LogOff db "LOG OFF@" - -WITHDRAW_ITEM EQU 0 -DEPOSIT_ITEM EQU 1 -TOSS_ITEM EQU 2 -MAIL_BOX EQU 3 -DECORATION EQU 4 -TURN_OFF EQU 5 -LOG_OFF EQU 6 - -.KrissPCMenuList1 - db 5 - db WITHDRAW_ITEM - db DEPOSIT_ITEM - db TOSS_ITEM - db MAIL_BOX - db TURN_OFF - db -1 - -.KrissPCMenuList2 - db 6 - db WITHDRAW_ITEM - db DEPOSIT_ITEM - db TOSS_ITEM - db MAIL_BOX - db DECORATION - db LOG_OFF - db -1 - -PC_DisplayTextWaitMenu: ; 157bb - ld a, [Options] - push af - set NO_TEXT_SCROLL, a - ld [Options], a - call MenuTextBox - pop af - ld [Options], a - ret -; 157cc - -UnknownText_0x157cc: ; 0x157cc - ; What do you want to do? - text_jump UnknownText_0x1c1368 - db "@" -; 0x157d1 - -KrisWithdrawItemMenu: ; 0x157d1 - call LoadStandardMenuDataHeader - callba ClearPCItemScreen -.asm_157da - call Function15985 - jr c, .asm_157e4 - call Function157e9 - jr .asm_157da - -.asm_157e4 - call Function2b3c - xor a - ret -; 0x157e9 - -Function157e9: ; 0x157e9 - ; check if the item has a quantity - callba _CheckTossableItem - ld a, [wItemAttributeParamBuffer] - and a - jr z, .askquantity - - ; items without quantity are always ×1 - ld a, 1 - ld [wItemQuantityChangeBuffer], a - jr .withdraw - -.askquantity - ld hl, .HowManyText - call MenuTextBox - callba Function24fbf - call ExitMenu - call ExitMenu - jr c, .done - -.withdraw - ld a, [wItemQuantityChangeBuffer] - ld [Buffer1], a ; quantity - ld a, [wd107] - ld [Buffer2], a - ld hl, NumItems - call ReceiveItem - jr nc, .PackFull - ld a, [Buffer1] - ld [wItemQuantityChangeBuffer], a - ld a, [Buffer2] - ld [wd107], a - ld hl, PCItems - call TossItem - predef PartyMonItemName - ld hl, .WithdrewText - call MenuTextBox - xor a - ld [hBGMapMode], a - call ExitMenu - ret - -.PackFull - ld hl, .NoRoomText - call MenuTextBoxBackup - ret - -.done - ret -; 0x15850 - -.HowManyText ; 0x15850 - text_jump _KrissPCHowManyWithdrawText - db "@" - -.WithdrewText ; 0x15855 - text_jump _KrissPCWithdrewItemsText - db "@" - -.NoRoomText ; 0x1585a - text_jump _KrissPCNoRoomWithdrawText - db "@" - - -KrisTossItemMenu: ; 0x1585f - call LoadStandardMenuDataHeader - callba ClearPCItemScreen -.asm_15868 - call Function15985 - jr c, .asm_15878 - ld de, PCItems - callba Function129f4 - jr .asm_15868 - -.asm_15878 - call Function2b3c - xor a - ret -; 0x1587d - - -KrisDecorationMenu: ; 0x1587d - callba _KrisDecorationMenu - ld a, c - and a - ret z - scf - ret -; 0x15888 - - -KrisLogOffMenu: ; 0x15888 - xor a - scf - ret -; 0x1588b - - -KrisDepositItemMenu: ; 0x1588b - call Function158b8 - jr c, .asm_158b6 - call DisableSpriteUpdates - call LoadStandardMenuDataHeader - callba Function106a5 -.asm_1589c - callba Function106be - ld a, [wcf66] - and a - jr z, .asm_158b3 - call Function158cc - callba CheckRegisteredItem - jr .asm_1589c - -.asm_158b3 - call Function2b3c - -.asm_158b6 - xor a - ret -; 0x158b8 - -Function158b8: ; 0x158b8 - callba Function129d5 - ret nc - ld hl, UnknownText_0x158c7 - call MenuTextBoxBackup - scf - ret -; 0x158c7 - -UnknownText_0x158c7: ; 0x158c7 - ; No items here! - text_jump UnknownText_0x1c13df - db "@" -; 0x158cc - - -Function158cc: ; 0x158cc - ld a, [wc2ce] - push af - ld a, $0 - ld [wc2ce], a - callba CheckItemMenu - ld a, [wItemAttributeParamBuffer] - ld hl, .jumptable - rst JumpTable - pop af - ld [wc2ce], a - ret -; 0x158e7 - -.jumptable: ; 0x158e7 - dw .maybe_use - dw .no_use - dw .no_use - dw .no_use - dw .maybe_use - dw .maybe_use - dw .maybe_use - -.no_use: - ret - -.maybe_use: - ld a, [Buffer1] - push af - ld a, [Buffer2] - push af - call Function1590a - pop af - ld [Buffer2], a - pop af - ld [Buffer1], a - ret -; 0x1590a - -Function1590a: ; 0x1590a - callba _CheckTossableItem - ld a, [wItemAttributeParamBuffer] - and a - jr z, .asm_1591d - ld a, $1 - ld [wItemQuantityChangeBuffer], a - jr .asm_15933 - -.asm_1591d - ld hl, .HowManyText - call MenuTextBox - callba Function24fbf - push af - call ExitMenu - call ExitMenu - pop af - jr c, .asm_1596c - -.asm_15933 - ld a, [wItemQuantityChangeBuffer] - ld [Buffer1], a - ld a, [wd107] - ld [Buffer2], a - ld hl, PCItems - call ReceiveItem - jr nc, .asm_15965 - ld a, [Buffer1] - ld [wItemQuantityChangeBuffer], a - ld a, [Buffer2] - ld [wd107], a - ld hl, NumItems - call TossItem - predef PartyMonItemName - ld hl, .DepositText - call PrintText - ret - -.asm_15965 - ld hl, .NoRoomText - call PrintText - ret - -.asm_1596c - and a - ret -; 0x1596e - - -.HowManyText ; 0x1596e - text_jump _KrissPCHowManyDepositText - db "@" - -.DepositText ; 0x15973 - text_jump _KrissPCDepositItemsText - db "@" - -.NoRoomText ; 0x15978 - text_jump _KrissPCNoRoomDepositText - db "@" - - -KrisMailBoxMenu: ; 0x1597d - callba _KrisMailBoxMenu - xor a - ret -; 0x15985 - - -Function15985: ; 0x15985 - xor a - ld [wd0e3], a -.asm_15989 - ld a, [wc2ce] - push af - ld a, $0 - ld [wc2ce], a - ld hl, MenuData15a08 - call CopyMenuDataHeader - hlcoord 0, 0 - ld b, $a - ld c, $12 - call TextBox - ld a, [wd0d7] - ld [wMenuCursorBuffer], a - ld a, [wd0dd] - ld [wd0e4], a - call HandleScrollingMenu - ld a, [wd0e4] - ld [wd0dd], a - ld a, [MenuSelection2] - ld [wd0d7], a - pop af - ld [wc2ce], a - ld a, [wd0e3] - and a - jr nz, .asm_159d8 - ld a, [wcf73] - cp $2 - jr z, .asm_15a06 - cp $1 - jr z, .asm_159fb - cp $4 - jr z, .asm_159f2 - jr .asm_159f8 - -.asm_159d8 - ld a, [wcf73] - cp $2 - jr z, .asm_159e9 - cp $1 - jr z, .asm_159ef - cp $4 - jr z, .asm_159ef - jr .asm_159f8 - -.asm_159e9 - xor a - ld [wd0e3], a - jr .asm_159f8 - -.asm_159ef - call Function156c7 - -.asm_159f2 - callba Function2490c - -.asm_159f8 - jp .asm_15989 - -.asm_159fb - callba Function24706 - call Function1bee - and a - ret - -.asm_15a06 - scf - ret -; 0x15a08 - -MenuData15a08: ; 0x15a08 - db %01000000 - db 1, 4 ; start coords - db 10, 18 ; end coords - dw .MenuData2 - db 1 ; default option - -.MenuData2 - db %10110000 - db 4, 8 ; rows/cols? - db 2 ; horizontal spacing? - dbw 0, PCItems - dba PlaceMenuItemName - dba PlaceMenuItemQuantity - dba Function244c3 - -PC_DisplayText: ; 15a20 - call MenuTextBox - call ExitMenu - ret -; 15a27 - - -UnknownText_0x15a27: ; 0x15a27 - ; turned on the PC. - text_jump UnknownText_0x1c144d - db "@" -; 0x15a2c - -UnknownText_0x15a2c: ; 0x15a2c - ; Access whose PC? - text_jump UnknownText_0x1c1462 - db "@" -; 0x15a31 - -UnknownText_0x15a31: ; 0x15a31 - ; BILL's PC accessed. #MON Storage System opened. - text_jump UnknownText_0x1c1474 - db "@" -; 0x15a36 - -UnknownText_0x15a36: ; 0x15a36 - ; Accessed own PC. Item Storage System opened. - text_jump UnknownText_0x1c14a4 - db "@" -; 0x15a3b - -UnknownText_0x15a3b: ; 0x15a3b - ; PROF.OAK's PC accessed. #DEX Rating System opened. - text_jump UnknownText_0x1c14d2 - db "@" -; 0x15a40 - -UnknownText_0x15a40: ; 0x15a40 - ; … Link closed… - text_jump UnknownText_0x1c1505 - db "@" -; 0x15a45 - +INCLUDE "engine/pokecenter_pc.asm" INCLUDE "engine/mart.asm" -GiveMoney:: ; 15fd7 - ld a, $3 - call AddMoney - ld bc, MaxMoney - ld a, $3 - call CompareMoney - jr z, .asm_15ff5 - jr c, .asm_15ff5 - ld hl, MaxMoney - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - scf - ret - -.asm_15ff5 - and a - ret -; 15ff7 - -MaxMoney: ; 15ff7 - dt 999999 -; 15ffa - - -TakeMoney:: ; 15ffa - ld a, 3 - call SubtractMoney - jr nc, .asm_16009 - xor a - ld [de], a - inc de - ld [de], a - inc de - ld [de], a - scf - ret - -.asm_16009 - and a - ret -; 1600b - -CompareMoney:: ; 1600b - ld a, $3 -CompareFunds: ; 1600d - push hl - push de - push bc - ld h, b - ld l, c - ld c, $0 - ld b, a -.loop1 - dec a - jr z, .done - inc de - inc hl - jr .loop1 - -.done - and a -.loop2 - ld a, [de] - sbc [hl] - jr z, .okay - inc c - -.okay - dec de - dec hl - dec b - jr nz, .loop2 - jr c, .set_carry - ld a, c - and a - jr .skip_carry - -.set_carry - ld a, $1 - and a - scf - -.skip_carry - pop bc - pop de - pop hl - ret -; 16035 - -SubtractMoney: ; 16035 - ld a, 3 -SubtractFunds: ; 16037 - push hl - push de - push bc - ld h, b - ld l, c - ld b, a - ld c, 0 -.loop - dec a - jr z, .done - inc de - inc hl - jr .loop - -.done - and a -.loop2 - ld a, [de] - sbc [hl] - ld [de], a - dec de - dec hl - dec b - jr nz, .loop2 - pop bc - pop de - pop hl - ret -; 16053 - -AddMoney: ; 16053 - ld a, $3 -AddFunds: ; 16055 - push hl - push de - push bc - ld h, b - ld l, c - ld b, a -.loop1 - dec a - jr z, .done - inc de - inc hl - jr .loop1 - -.done - and a -.loop2 - ld a, [de] - adc [hl] - ld [de], a - dec de - dec hl - dec b - jr nz, .loop2 - pop bc - pop de - pop hl - ret -; 1606f - -GiveCoins:: ; 1606f - ld a, 2 - ld de, Coins - call AddFunds - ld a, 2 - ld bc, .maxcoins - call CompareFunds - jr c, .not_maxed - ld hl, .maxcoins - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - scf - ret - -.not_maxed - and a - ret -; 1608d - -.maxcoins: ; 1608d - bigdw 9999 -; 1608f - - -TakeCoins:: ; 1608f - ld a, 2 - ld de, Coins - call SubtractFunds - jr nc, .asm_1609f - xor a - ld [de], a - inc de - ld [de], a - scf - ret - -.asm_1609f - and a - ret -; 160a1 - -CheckCoins:: ; 160a1 - ld a, $2 - ld de, Coins - jp CompareFunds -; 160a9 - +INCLUDE "engine/money.asm" INCLUDE "items/marts.asm" INCLUDE "event/mom.asm" -Special_DayCareMan: ; 166d6 - ld hl, wDaycareMan - bit 0, [hl] - jr nz, .asm_166fe - ld hl, wDaycareMan - ld a, $0 - call Function1678f - jr c, .asm_16724 - call Function16798 - jr c, .asm_16721 - callba Functionde2a - ld hl, wDaycareMan - set 0, [hl] - call Function167f6 - call Function16a3b - ret - -.asm_166fe - callba Functione698 - ld hl, wBreedMon1Nick - call Function1686d - call Function16807 - jr c, .asm_16721 - callba Functiondd21 - call Function16850 - ld hl, wDaycareMan - res 0, [hl] - res 5, [hl] - jr .asm_16724 - -.asm_16721 - call Function1689b - -.asm_16724 - ld a, $13 - call Function1689b - ret -; 1672a - -Special_DayCareLady: ; 1672a - ld hl, wDaycareLady - bit 0, [hl] - jr nz, .asm_16752 - ld hl, wDaycareLady - ld a, $2 - call Function16781 - jr c, .asm_1677b - call Function16798 - jr c, .asm_16778 - callba Functionde37 - ld hl, wDaycareLady - set 0, [hl] - call Function167f6 - call Function16a3b - ret - -.asm_16752 - callba Functione6b3 - ld hl, wBreedMon2Nick - call Function1686d - call Function16807 - jr c, .asm_16778 - callba Functiondd42 - call Function16850 - ld hl, wDaycareLady - res 0, [hl] - ld hl, wDaycareMan - res 5, [hl] - jr .asm_1677b - -.asm_16778 - call Function1689b - -.asm_1677b - ld a, $13 - call Function1689b - ret -; 16781 - -Function16781: ; 16781 - bit 7, [hl] - jr nz, .asm_16788 - set 7, [hl] - inc a - -.asm_16788 - call Function1689b - call YesNoBox - ret -; 1678f - -Function1678f: ; 1678f - set 7, [hl] - call Function1689b - call YesNoBox - ret -; 16798 - -Function16798: ; 16798 - ld a, [PartyCount] - cp 2 - jr c, .asm_167e5 - ld a, 4 - call Function1689b - ld b, 6 - callba Function5001d - jr c, .asm_167dd - ld a, [CurPartySpecies] - cp EGG - jr z, .asm_167e1 - callba CheckCurPartyMonFainted - jr c, .asm_167e9 - ld hl, PartyMon1Item - ld bc, PARTYMON_STRUCT_LENGTH - ld a, [CurPartyMon] - call AddNTimes - ld d, [hl] - callba ItemIsMail - jr c, .asm_167ed - ld hl, PartyMonNicknames - ld a, [CurPartyMon] - call GetNick - and a - ret - -.asm_167dd - ld a, $12 - scf - ret - -.asm_167e1 - ld a, $6 - scf - ret - -.asm_167e5 - ld a, $7 - scf - ret - -.asm_167e9 - ld a, $8 - scf - ret - -.asm_167ed - ld a, $a - scf - ret -; 167f1 - -UnknownText_0x167f1: ; 0x167f1 - ; - text_jump UnknownText_0x1bdaa7 - db "@" -; 0x167f6 - -Function167f6: ; 167f6 - ld a, $5 - call Function1689b - ld a, [CurPartySpecies] - call PlayCry - ld a, $9 - call Function1689b - ret -; 16807 - -Function16807: ; 16807 - ld a, [StringBuffer2 + 1] - and a - jr nz, .asm_16819 - ld a, $f - call Function1689b - call YesNoBox - jr c, .asm_16844 - jr .asm_1682d - -.asm_16819 - ld a, $b - call Function1689b - call YesNoBox - jr c, .asm_16844 - ld a, $c - call Function1689b - call YesNoBox - jr c, .asm_16844 - -.asm_1682d - ld de, Money - ld bc, StringBuffer2 + 2 - callba CompareMoney - jr c, .asm_16848 - ld a, [PartyCount] - cp $6 - jr nc, .asm_1684c - and a - ret - -.asm_16844 - ld a, $12 - scf - ret - -.asm_16848 - ld a, $11 - scf - ret - -.asm_1684c - ld a, $10 - scf - ret -; 16850 - -Function16850: ; 16850 - ld bc, StringBuffer2 + 2 - ld de, Money - callba TakeMoney - ld a, $d - call Function1689b - ld a, [CurPartySpecies] - call PlayCry - ld a, $e - call Function1689b - ret -; 1686d - -Function1686d: ; 1686d - ld a, b - ld [StringBuffer2], a - ld a, d - ld [StringBuffer2 + 1], a - ld de, StringBuffer1 - ld bc, NAME_LENGTH - call CopyBytes - ld hl, 0 - ld bc, $64 - ld a, [StringBuffer2 + 1] - call AddNTimes - ld de, $64 - add hl, de - xor a - ld [StringBuffer2 + 2], a - ld a, h - ld [StringBuffer2 + 3], a - ld a, l - ld [StringBuffer2 + 4], a - ret -; 1689b - -Function1689b: ; 1689b - ld e, a - ld d, 0 - ld hl, TextTable_168aa -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - call PrintText - ret -; 168aa - -TextTable_168aa: ; 168aa - dw UnknownText_0x168d2 - dw UnknownText_0x168d7 - dw UnknownText_0x168dc - dw UnknownText_0x168e1 - dw UnknownText_0x168e6 - dw UnknownText_0x168ff - dw UnknownText_0x168f0 - dw UnknownText_0x168eb - dw UnknownText_0x168fa - dw UnknownText_0x16904 - dw UnknownText_0x168f5 - dw UnknownText_0x16909 - dw UnknownText_0x1690e - dw UnknownText_0x16913 - dw UnknownText_0x16918 - dw UnknownText_0x1691d - dw UnknownText_0x16922 - dw UnknownText_0x16927 - dw UnknownText_0x1692c - dw UnknownText_0x16931 -; 168d2 - -UnknownText_0x168d2: ; 0x168d2 - ; I'm the DAY-CARE MAN. Want me to raise a #MON? - text_jump UnknownText_0x1bdaa9 - db "@" -; 0x168d7 - -UnknownText_0x168d7: ; 0x168d7 - ; I'm the DAY-CARE MAN. Do you know about EGGS? I was raising #MON with my wife, you see. We were shocked to find an EGG! How incredible is that? So, want me to raise a #MON? - text_jump UnknownText_0x1bdad8 - db "@" -; 0x168dc - -UnknownText_0x168dc: ; 0x168dc - ; I'm the DAY-CARE LADY. Should I raise a #MON for you? - text_jump UnknownText_0x1bdb85 - db "@" -; 0x168e1 - -UnknownText_0x168e1: ; 0x168e1 - ; I'm the DAY-CARE LADY. Do you know about EGGS? My husband and I were raising some #MON, you see. We were shocked to find an EGG! How incredible could that be? Should I raise a #MON for you? - text_jump UnknownText_0x1bdbbb - db "@" -; 0x168e6 - -UnknownText_0x168e6: ; 0x168e6 - ; What should I raise for you? - text_jump UnknownText_0x1bdc79 - db "@" -; 0x168eb - -UnknownText_0x168eb: ; 0x168eb - ; Oh? But you have just one #MON. - text_jump UnknownText_0x1bdc97 - db "@" -; 0x168f0 - -UnknownText_0x168f0: ; 0x168f0 - ; Sorry, but I can't accept an EGG. - text_jump UnknownText_0x1bdcb8 - db "@" -; 0x168f5 - -UnknownText_0x168f5: ; 0x168f5 - ; Remove MAIL before you come see me. - text_jump UnknownText_0x1bdcda - db "@" -; 0x168fa - -UnknownText_0x168fa: ; 0x168fa - ; If you give me that, what will you battle with? - text_jump UnknownText_0x1bdcff - db "@" -; 0x168ff - -UnknownText_0x168ff: ; 0x168ff - ; OK. I'll raise your @ . - text_jump UnknownText_0x1bdd30 - db "@" -; 0x16904 - -UnknownText_0x16904: ; 0x16904 - ; Come back for it later. - text_jump UnknownText_0x1bdd4b - db "@" -; 0x16909 - -UnknownText_0x16909: ; 0x16909 - ; Are we geniuses or what? Want to see your @ ? - text_jump UnknownText_0x1bdd64 - db "@" -; 0x1690e - -UnknownText_0x1690e: ; 0x1690e - ; Your @ has grown a lot. By level, it's grown by @ . If you want your #MON back, it will cost ¥@ . - text_jump UnknownText_0x1bdd96 - db "@" -; 0x16913 - -UnknownText_0x16913: ; 0x16913 - ; Perfect! Here's your #MON. - text_jump UnknownText_0x1bde04 - db "@" -; 0x16918 - -UnknownText_0x16918: ; 0x16918 - ; got back @ . - text_jump UnknownText_0x1bde1f - db "@" -; 0x1691d - -UnknownText_0x1691d: ; 0x1691d - ; Huh? Back already? Your @ needs a little more time with us. If you want your #MON back, it will cost ¥100. - text_jump UnknownText_0x1bde32 - db "@" -; 0x16922 - -UnknownText_0x16922: ; 0x16922 - ; You have no room for it. - text_jump UnknownText_0x1bdea2 - db "@" -; 0x16927 - -UnknownText_0x16927: ; 0x16927 - ; You don't have enough money. - text_jump UnknownText_0x1bdebc - db "@" -; 0x1692c - -UnknownText_0x1692c: ; 0x1692c - ; Oh, fine then. - text_jump UnknownText_0x1bded9 - db "@" -; 0x16931 - -UnknownText_0x16931: ; 0x16931 - ; Come again. - text_jump UnknownText_0x1bdee9 - db "@" -; 0x16936 - -Special_DayCareManOutside: ; 16936 - ld hl, wDaycareMan - bit 6, [hl] - jr nz, Function16949 - ld hl, UnknownText_0x16944 - call PrintText - ret - -UnknownText_0x16944: ; 0x16944 - ; Not yet… - text_jump UnknownText_0x1bdef6 - db "@" -; 0x16949 - -Function16949: ; 16949 - ld hl, UnknownText_0x16993 - call PrintText - call YesNoBox - jr c, .asm_1697c - ld a, [PartyCount] - cp PARTY_LENGTH - jr nc, .asm_16987 - call Function169ac - ld hl, wDaycareMan - res 6, [hl] - call Function16a3b - ld hl, UnknownText_0x16998 - call PrintText - ld de, SFX_GET_EGG_FROM_DAYCARE_LADY - call PlaySFX - ld c, 120 - call DelayFrames - ld hl, UnknownText_0x1699d - jr .asm_1697f - -.asm_1697c - ld hl, UnknownText_0x169a2 - -.asm_1697f - call PrintText - xor a - ld [ScriptVar], a - ret - -.asm_16987 - ld hl, UnknownText_0x169a7 - call PrintText - ld a, $1 - ld [ScriptVar], a - ret -; 16993 - -UnknownText_0x16993: ; 0x16993 - ; Ah, it's you! We were raising your #MON, and my goodness, were we surprised! Your #MON had an EGG! We don't know how it got there, but your #MON had it. You want it? - text_jump UnknownText_0x1bdf00 - db "@" -; 0x16998 - -UnknownText_0x16998: ; 0x16998 - ; received the EGG! - text_jump UnknownText_0x1bdfa5 - db "@" -; 0x1699d - -UnknownText_0x1699d: ; 0x1699d - ; Take good care of it. - text_jump UnknownText_0x1bdfba - db "@" -; 0x169a2 - -UnknownText_0x169a2: ; 0x169a2 - ; Well then, I'll keep it. Thanks! - text_jump UnknownText_0x1bdfd1 - db "@" -; 0x169a7 - -UnknownText_0x169a7: ; 0x169a7 - ; You have no room in your party. Come back later. - text_jump UnknownText_0x1bdff2 - db "@" -; 0x169ac - -Function169ac: ; 169ac - ld a, [wEggMonLevel] - ld [CurPartyLevel], a - ld hl, PartyCount - ld a, [hl] - cp PARTY_LENGTH - jr nc, .asm_16a2f - inc a - ld [hl], a - ld c, a - ld b, 0 - add hl, bc - ld a, EGG - ld [hli], a - ld a, [wEggMonSpecies] - ld [CurSpecies], a - ld [CurPartySpecies], a - ld a, $ff - ld [hl], a - ld hl, PartyMonNicknames - ld bc, PKMN_NAME_LENGTH - call Function16a31 - ld hl, wEggNick - call CopyBytes - ld hl, PartyMonOT - ld bc, NAME_LENGTH - call Function16a31 - ld hl, wEggOT - call CopyBytes - ld hl, PartyMon1 - ld bc, PARTYMON_STRUCT_LENGTH - call Function16a31 - ld hl, wEggMon - ld bc, wEggMonEnd - wEggMon - call CopyBytes - call GetBaseData - ld a, [PartyCount] - dec a - ld hl, PartyMon1 - ld bc, PARTYMON_STRUCT_LENGTH - call AddNTimes - ld b, h - ld c, l - ld hl, MON_ID + 1 - add hl, bc - push hl - ld hl, MON_MAXHP - add hl, bc - ld d, h - ld e, l - pop hl - push bc - ld b, $0 - predef CalcPkmnStats - pop bc - ld hl, MON_HP - add hl, bc - xor a - ld [hli], a - ld [hl], a - and a - ret - -.asm_16a2f - scf - ret -; 16a31 - -Function16a31: ; 16a31 - ld a, [PartyCount] - dec a - call AddNTimes - ld d, h - ld e, l - ret -; 16a3b - -Function16a3b: ; 16a3b - ld a, [wDaycareLady] - bit 0, a - ret z - ld a, [wDaycareMan] - bit 0, a - ret z - callab Function16e1d - ld a, [wd265] - and a - ret z - inc a - ret z - ld hl, wDaycareMan - set 5, [hl] -.asm_16a59 - call Random - cp 150 - jr c, .asm_16a59 - ld [wStepsToEgg], a - jp Function16a66 -; 16a66 - -Function16a66: ; 16a66 - xor a - ld hl, wEggMon - ld bc, wEggMonEnd - wEggMon - call ByteFill - ld hl, wEggNick - ld bc, PKMN_NAME_LENGTH - call ByteFill - ld hl, wEggOT - ld bc, NAME_LENGTH - call ByteFill - ld a, [wBreedMon1DVs] - ld [TempMonDVs], a - ld a, [wBreedMon1DVs + 1] - ld [TempMonDVs + 1], a - ld a, [wBreedMon1Species] - ld [CurPartySpecies], a - ld a, $3 - ld [MonType], a - ld a, [wBreedMon1Species] - cp DITTO - ld a, $1 - jr z, .asm_16ab6 - ld a, [wBreedMon2Species] - cp DITTO - ld a, $0 - jr z, .asm_16ab6 - callba GetGender - ld a, $0 - jr z, .asm_16ab6 - inc a - -.asm_16ab6 - ld [wDittoInDaycare], a - and a - ld a, [wBreedMon1Species] - jr z, .asm_16ac2 - ld a, [wBreedMon2Species] - -.asm_16ac2 - ld [CurPartySpecies], a - callab GetPreEvolution - callab GetPreEvolution - ld a, EGG_LEVEL - ld [CurPartyLevel], a - - ld a, [CurPartySpecies] - cp NIDORAN_F - jr nz, .asm_16ae8 - call Random - cp $80 - ld a, NIDORAN_F - jr c, .asm_16ae8 - ld a, NIDORAN_M -.asm_16ae8 - ld [CurPartySpecies], a - ld [CurSpecies], a - ld [wEggMonSpecies], a - - call GetBaseData - ld hl, wEggNick - ld de, String_16be0 - call CopyName2 - ld hl, PlayerName - ld de, wEggOT - ld bc, NAME_LENGTH - call CopyBytes - xor a - ld [wEggMonItem], a - ld de, wEggMonMoves - xor a - ld [Buffer1], a - predef FillMoves - callba Function170bf - ld hl, wEggMonID - ld a, [PlayerID] - ld [hli], a - ld a, [PlayerID + 1] - ld [hl], a - ld a, [CurPartyLevel] - ld d, a - callab CalcExpAtLevel - ld hl, wEggMonExp - ld a, [hMultiplicand] - ld [hli], a - ld a, [$ffb5] - ld [hli], a - ld a, [$ffb6] - ld [hl], a - xor a - ld b, $a - ld hl, wEggMonStatExp -.asm_16b46 - ld [hli], a - dec b - jr nz, .asm_16b46 - ld hl, wEggMonDVs - call Random - ld [hli], a - ld [TempMonDVs], a - call Random - ld [hld], a - ld [TempMonDVs + 1], a - ld de, wBreedMon1DVs - ld a, [wBreedMon1Species] - cp DITTO - jr z, .asm_16b98 - ld de, wBreedMon2DVs - ld a, [wBreedMon2Species] - cp DITTO - jr z, .asm_16b98 - ld a, $3 - ld [MonType], a - push hl - callba GetGender - pop hl - ld de, wBreedMon1DVs - ld bc, wBreedMon2DVs - jr c, .asm_16bab - jr z, .asm_16b90 - ld a, [wDittoInDaycare] - and a - jr z, .asm_16b98 - ld d, b - ld e, c - jr .asm_16b98 - -.asm_16b90 - ld a, [wDittoInDaycare] - and a - jr nz, .asm_16b98 - ld d, b - ld e, c - -.asm_16b98 - ld a, [de] - inc de - and $f - ld b, a - ld a, [hl] - and $f0 - add b - ld [hli], a - ld a, [de] - and $7 - ld b, a - ld a, [hl] - and $f8 - add b - ld [hl], a - -.asm_16bab - ld hl, StringBuffer1 - ld de, wd050 - ld bc, NAME_LENGTH - call CopyBytes - ld hl, wEggMonMoves - ld de, wEggMonPP - predef FillPP - ld hl, wd050 - ld de, StringBuffer1 - ld bc, NAME_LENGTH - call CopyBytes - ld a, [BaseEggSteps] - ld hl, wEggMonHappiness - ld [hli], a - xor a -rept 2 - ld [hli], a -endr - ld [hl], a - ld a, [CurPartyLevel] - ld [wEggMonLevel], a - ret -; 16be0 - -String_16be0: ; 16be0 - db "EGG@" -; 16be4 +INCLUDE "event/daycare.asm" Function16be4: ; 16be4 ld a, [UnownDex] @@ -16627,13 +14946,13 @@ _KrisDecorationMenu: ; 0x2675c ld a, [wd1ef] ld [wMenuCursorBuffer], a call Function26806 - call Function1e5d + call DoNthMenu ld a, [MenuSelection2] ld [wd1ef], a jr c, .asm_2678e ld a, [MenuSelection] ld hl, Unknown_267aa - call Function1fa7 + call MenuJumptable jr nc, .asm_2676f .asm_2678e @@ -16657,7 +14976,7 @@ MenuData2_0x267a2: ; 0x267a2 db $a0 ; flags db 0 ; items dw wd002 - dw Function1f8d + dw PlaceNthMenuStrings dw Unknown_267aa ; 0x267aa @@ -16942,7 +15261,7 @@ Function2695b: ; 2695b ld [wcf76], a ld hl, MenuDataHeader_0x269b5 call LoadMenuDataHeader - call Function1e5d + call DoNthMenu jr c, .no_action_1 call DoDecorationAction2 @@ -37118,7 +35437,7 @@ HallOfFame:: ; 0x8640e callba Function14da0 - ld hl, wd95e + ld hl, wHallOfFameCount ld a, [hl] cp 200 jr nc, .ok @@ -37249,7 +35568,7 @@ GetHallOfFameParty: ; 8653f ld bc, HOF_LENGTH xor a call ByteFill - ld a, [wd95e] + ld a, [wHallOfFameCount] ld de, OverworldMap ld [de], a inc de @@ -37387,18 +35706,18 @@ endr ; 86635 Function86635: ; 86635 -.asm_86635 +.loop ld a, [hSCX] cp $70 ret z add $4 ld [hSCX], a call DelayFrame - jr .asm_86635 + jr .loop ; 86643 Function86643: ; 86643 -.asm_86643 +.loop ld a, [hSCX] and a ret z @@ -37407,54 +35726,54 @@ rept 2 endr ld [hSCX], a call DelayFrame - jr .asm_86643 + jr .loop ; 86650 -Function86650: ; 86650 +_HallOfFamePC: ; 86650 call LoadFontsBattleExtra xor a ld [wJumptableIndex], a -.asm_86657 +.loop call Function8671c ret c call Function86665 ret c ld hl, wJumptableIndex inc [hl] - jr .asm_86657 + jr .loop ; 86665 Function86665: ; 86665 xor a ld [wcf64], a -.asm_86669 +.next call Function86692 - jr c, .asm_86690 -.asm_8666e + jr c, .start_button +.loop call JoyTextDelay ld hl, hJoyLast ld a, [hl] and B_BUTTON - jr nz, .asm_8668e + jr nz, .b_button ld a, [hl] and A_BUTTON - jr nz, .asm_86688 + jr nz, .a_button ld a, [hl] and START - jr nz, .asm_86690 + jr nz, .start_button call DelayFrame - jr .asm_8666e + jr .loop -.asm_86688 +.a_button ld hl, wcf64 inc [hl] - jr .asm_86669 + jr .next -.asm_8668e +.b_button scf ret -.asm_86690 +.start_button and a ret ; 86692 @@ -37464,33 +35783,33 @@ Function86692: ; 86692 ; If that number is above 200, print "HOF Master!" instead. ld a, [wcf64] cp $6 - jr nc, .asm_866a7 + jr nc, .fail ld hl, wc608 + 1 ld bc, $10 call AddNTimes ld a, [hl] cp $ff - jr nz, .asm_866a9 + jr nz, .okay -.asm_866a7 +.fail scf ret -.asm_866a9 +.okay push hl call ClearBGPalettes pop hl call Function86748 ld a, [wc608] cp 200 + 1 - jr c, .asm_866c6 + jr c, .print_num_hof ld de, String_866fc hlcoord 1, 2 call PlaceString hlcoord 13, 2 - jr .asm_866de + jr .finish -.asm_866c6 +.print_num_hof ld de, String_8670c hlcoord 1, 2 call PlaceString @@ -37500,7 +35819,7 @@ Function86692: ; 86692 call PrintNum hlcoord 11, 2 -.asm_866de +.finish ld de, String_866fb call PlaceString call WaitBGMap @@ -37530,7 +35849,7 @@ String_8670c: Function8671c: ; 8671c ld a, [wJumptableIndex] cp NUM_HOF_TEAMS - jr nc, .asm_86746 + jr nc, .full ld hl, sHallOfFame ld bc, HOF_LENGTH call AddNTimes @@ -37538,7 +35857,7 @@ Function8671c: ; 8671c call GetSRAMBank ld a, [hl] and a - jr z, .asm_86743 + jr z, .fail ld de, wc608 ld bc, HOF_LENGTH call CopyBytes @@ -37546,10 +35865,10 @@ Function8671c: ; 8671c and a ret -.asm_86743 +.fail call CloseSRAM -.asm_86746 +.full scf ret ; 86748 @@ -37595,7 +35914,7 @@ Function86748: ; 86748 call _PrepMonFrontpic ld a, [CurPartySpecies] cp EGG - jr z, .asm_867f8 + jr z, .print_id_no hlcoord 1, 13 ld a, $74 ld [hli], a @@ -37610,30 +35929,30 @@ Function86748: ; 86748 ld a, $3 ld [MonType], a callba GetGender - ld a, $7f - jr c, .asm_867e2 - ld a, $ef - jr nz, .asm_867e2 - ld a, $f5 + ld a, " " + jr c, .got_gender + ld a, "♂" + jr nz, .got_gender + ld a, "♀" -.asm_867e2 +.got_gender hlcoord 18, 13 ld [hli], a hlcoord 8, 14 - ld a, $f3 + ld a, "/" ld [hli], a ld de, StringBuffer2 call PlaceString hlcoord 1, 16 call PrintLevel -.asm_867f8 +.print_id_no hlcoord 7, 16 - ld a, $73 + ld a, "" ld [hli], a - ld a, $74 + ld a, "№" ld [hli], a - ld [hl], $f3 + ld [hl], "/" hlcoord 10, 16 ld de, TempMonID lb bc, PRINTNUM_LEADINGZEROS | 2, 5 @@ -38056,318 +36375,7 @@ Function8c7c9: ; unreferenced ret ; 8c7d4 -PlayWhirlpoolSound: ; 8c7d4 - call WaitSFX - ld de, SFX_SURF - call PlaySFX - call WaitSFX - ret -; 8c7e1 - -BlindingFlash: ; 8c7e1 - callba FadeOutPalettes - ld hl, StatusFlags - set 2, [hl] - callba Function8c0e5 - callba Function8c001 - ld b, SCGB_09 - call GetSGBLayout - callba Function49409 - callba FadeInPalettes - ret -; 8c80a - -ShakeHeadbuttTree: ; 8c80a - callba Function8cf53 - ld de, CutGrassGFX - ld hl, VTiles1 - lb bc, BANK(CutGrassGFX), 4 - call Request2bpp - ld de, HeadbuttTreeGFX - ld hl, VTiles1 tile $04 - lb bc, BANK(HeadbuttTreeGFX), 8 - call Request2bpp - call Function8cad3 - ld a, SPRITE_ANIM_INDEX_1B - call _InitSpriteAnimStruct - ld hl, $3 - add hl, bc - ld [hl], $84 - ld a, $90 - ld [wc3b5], a - callba Function8cf7a - call GetHeadbuttTreeRelativeLocation - ld a, $20 - ld [wcf64], a - call WaitSFX - ld de, SFX_SANDSTORM - call PlaySFX -.loop - ld hl, wcf64 - ld a, [hl] - and a - jr z, .done - dec [hl] - ld a, $90 - ld [wc3b5], a - callba Function8cf7a - call DelayFrame - jr .loop - -.done - call OverworldTextModeSwitch - call WaitBGMap - xor a - ld [hBGMapMode], a - callba Function8cf53 - ld hl, Sprites + $90 - ld bc, $10 - xor a - call ByteFill - ld de, Font - ld hl, VTiles1 - lb bc, BANK(Font), $c - call Get1bpp - call ReplaceKrisSprite - ret -; 8c893 - -HeadbuttTreeGFX: ; 8c893 -INCBIN "gfx/unknown/08c893.2bpp" -; 8c913 - -GetHeadbuttTreeRelativeLocation: ; 8c913 - xor a - ld [hBGMapMode], a - ld a, [PlayerDirection] - and %00001100 - srl a - ld e, a - ld d, 0 - ld hl, TreeRelativeLocationTable - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - - ld a, $5 - ld [hli], a - ld [hld], a - ld bc, SCREEN_WIDTH - add hl, bc - ld [hli], a - ld [hld], a - call WaitBGMap - xor a - ld [hBGMapMode], a - ret -; 8c938 - -TreeRelativeLocationTable: ; 8c938 - dwcoord 8, 8 + 2 ; RIGHT - dwcoord 8, 8 - 2 ; LEFT - dwcoord 8 - 2, 8 ; DOWN - dwcoord 8 + 2, 8 ; UP -; 8c940 - -OWCutAnimation: ; 8c940 - ld a, e - and $1 - ld [wJumptableIndex], a - call .LoadCutGFX - call WaitSFX - ld de, SFX_PLACE_PUZZLE_PIECE_DOWN - call PlaySFX -.loop - ld a, [wJumptableIndex] - bit 7, a - jr nz, .finish - ld a, $90 - ld [wc3b5], a - callab Function8cf7a - call OWCutJumptable - call DelayFrame - jr .loop - -.finish - ret -; 8c96d - -.LoadCutGFX: ; 8c96d - callab Function8cf53 ; pointless to farcall - ld de, CutGrassGFX - ld hl, VTiles1 - lb bc, BANK(CutGrassGFX), 4 - call Request2bpp - ld de, CutTreeGFX - ld hl, VTiles1 tile $4 - lb bc, BANK(CutTreeGFX), 4 - call Request2bpp - ret -; 8c98c - -CutTreeGFX: ; c898c -INCBIN "gfx/misc/cut_tree.2bpp" -; c89cc - -CutGrassGFX: ; 8c9cc -INCBIN "gfx/misc/cut_grass.2bpp" -; 8ca0c - -OWCutJumptable: ; 8ca0c - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, .jumptable -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 8ca1b - - -.jumptable: ; 8ca1b (23:4a1b) - dw Function8ca23 - dw Function8ca3c - dw Function8ca5c - dw Function8ca64 - - -Function8ca23: ; 8ca23 (23:4a23) - call Function8cad3 - ld a, SPRITE_ANIM_INDEX_17 ; leaf - call _InitSpriteAnimStruct - ld hl, $3 - add hl, bc - ld [hl], $84 - ld a, $20 - ld [wcf64], a - ld hl, wJumptableIndex -rept 2 - inc [hl] -endr - ret - -Function8ca3c: ; 8ca3c (23:4a3c) - call Function8ca8e - xor a - call Function8ca73 - ld a, $10 - call Function8ca73 - ld a, $20 - call Function8ca73 - ld a, $30 - call Function8ca73 - ld a, $20 - ld [wcf64], a - ld hl, wJumptableIndex - inc [hl] - ret - -Function8ca5c: ; 8ca5c (23:4a5c) - ld a, $1 - ld [hBGMapMode], a - ld hl, wJumptableIndex - inc [hl] - -Function8ca64: ; 8ca64 (23:4a64) - ld hl, wcf64 - ld a, [hl] - and a - jr z, .asm_8ca6d - dec [hl] - ret -.asm_8ca6d - ld hl, wJumptableIndex - set 7, [hl] - ret - -Function8ca73: ; 8ca73 (23:4a73) - push de - push af - ld a, SPRITE_ANIM_INDEX_16 ; fly takeoff - call _InitSpriteAnimStruct - ld hl, $3 - add hl, bc - ld [hl], $80 - ld hl, $e - add hl, bc - ld [hl], $4 - pop af - ld hl, $c - add hl, bc - ld [hl], a - pop de - ret - -Function8ca8e: ; 8ca8e (23:4a8e) - ld de, 0 - ld a, [wd197] - bit 0, a - jr z, .asm_8ca9a - set 0, e -.asm_8ca9a - ld a, [wd196] - bit 0, a - jr z, .asm_8caa3 - set 1, e -.asm_8caa3 - ld a, [PlayerDirection] - and $c - add e - ld e, a - ld hl, Unknown_8cab3 -rept 2 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - ret -; 8cab3 (23:4ab3) - -Unknown_8cab3: ; 8cab3 - db $58, $60 - db $48, $60 - db $58, $70 - db $48, $70 - db $58, $40 - db $48, $40 - db $58, $50 - db $48, $50 - db $38, $60 - db $48, $60 - db $38, $50 - db $48, $50 - db $58, $60 - db $68, $60 - db $58, $50 - db $68, $50 -; 8cad3 - -Function8cad3: ; 8cad3 (23:4ad3) - ld a, [PlayerDirection] - and $c - srl a - ld e, a - ld d, 0 - ld hl, Unknown_8cae5 - add hl, de - ld e, [hl] - inc hl - ld d, [hl] - ret -; 8cae5 (23:4ae5) - -Unknown_8cae5: ; 8cae5 - db $50, $68 - db $50, $48 - db $40, $58 - db $60, $58 -; 8caed +INCLUDE "event/field_moves.asm" Function8caed: ; 8caed call DelayFrame @@ -38515,491 +36523,7 @@ Function8cbe6: ; 8cbe6 (23:4be6) ld [hl], $80 ret -Special_MagnetTrain: ; 8cc04 - ld a, [ScriptVar] - and a - jr nz, .ToGoldenrod - ld a, 1 ; forwards - lb bc, $40, $60 - ld de, $fca0 - jr .continue - -.ToGoldenrod - ld a, -1 ; backwards - lb bc, $c0, $a0 - ld de, $b460 - -.continue - ld h, a - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld a, h - ld [w5_d191], a - ld a, c - ld [w5_d192], a - ld a, b - ld [w5_d193], a - ld a, e - ld [w5_d194], a - ld a, d - ld [w5_d195], a - ld a, [hSCX] - push af - ld a, [hSCY] - push af - call Function8ccc9 - ld hl, hVBlank - ld a, [hl] - push af - ld [hl], $1 -.loop - ld a, [wJumptableIndex] - and a - jr z, .initialize - bit 7, a - jr nz, .done - callab Function8cf69 - call Function8cdf7 - call Function8cc99 - call Function3b0c - call DelayFrame - jr .loop - -.initialize - call Function8ceae - jr .loop - -.done - pop af - ld [hVBlank], a - call ClearBGPalettes - xor a - ld [hLCDStatCustom], a - ld [hLCDStatCustom + 1], a - ld [hLCDStatCustom + 2], a - ld [hSCX], a - ld [Requested2bppSource], a - ld [Requested2bppSource + 1], a - ld [Requested2bppDest], a - ld [Requested2bppDest + 1], a - ld [Requested2bpp], a - call ClearTileMap - pop af - ld [hSCY], a - pop af - ld [hSCX], a - xor a - ld [hBGMapMode], a - pop af - ld [rSVBK], a - ret -; 8cc99 - -Function8cc99: ; 8cc99 - ld hl, LYOverridesBackup - ld c, $2f - ld a, [wcf64] - add a - ld [hSCX], a - call Function8ccc4 - ld c, $30 - ld a, [wcf65] - call Function8ccc4 - ld c, $31 - ld a, [wcf64] - add a - call Function8ccc4 - ld a, [wd191] - ld d, a - ld hl, wcf64 - ld a, [hl] -rept 2 - add d -endr - ld [hl], a - ret -; 8ccc4 - -Function8ccc4: ; 8ccc4 -.asm_8ccc4 - ld [hli], a - dec c - jr nz, .asm_8ccc4 - ret -; 8ccc9 - -Function8ccc9: ; 8ccc9 - call ClearBGPalettes - call ClearSprites - call DisableLCD - callab Function8cf53 - call SetMagnetTrainPals - call DrawMagnetTrain - ld a, $90 - ld [hWY], a - call EnableLCD - xor a - ld [hBGMapMode], a - ld [hSCX], a - ld [hSCY], a - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - callba GetPlayerIcon - pop af - ld [rSVBK], a - ld hl, VTiles0 - ld c, $4 - call Request2bpp - ld hl, $c0 - add hl, de - ld d, h - ld e, l - ld hl, VTiles0 tile $04 - ld c, $4 - call Request2bpp - call Function8cda6 - ld hl, wJumptableIndex - xor a - ld [hli], a - ld a, [wd192] -rept 3 - ld [hli], a -endr - ld de, MUSIC_MAGNET_TRAIN - call PlayMusic2 - ret -; 8cd27 - -DrawMagnetTrain: ; 8cd27 - ld hl, VBGMap0 - xor a -.asm_8cd2b - call GetMagnetTrainBGTiles - ld b, 32 / 2 - call .FillAlt - inc a - cp $12 - jr c, .asm_8cd2b - ld hl, VBGMap0 tile $0c - ld de, MagnetTrainTilemap1 - ld c, 20 - call .FillLine - ld hl, VBGMap0 tile $0e - ld de, MagnetTrainTilemap2 - ld c, 20 - call .FillLine - ld hl, VBGMap0 tile $10 - ld de, MagnetTrainTilemap3 - ld c, 20 - call .FillLine - ld hl, VBGMap0 tile $12 - ld de, MagnetTrainTilemap4 - ld c, 20 - call .FillLine - ret -; 8cd65 - -.FillLine ; 8cd65 - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .FillLine - ret -; 8cd6c - -.FillAlt ; 8cd6c - ld [hl], e - inc hl - ld [hl], d - inc hl - dec b - jr nz, .FillAlt - ret -; 8cd74 - -GetMagnetTrainBGTiles: ; 8cd74 - push hl - ld e, a - ld d, 0 - ld hl, MagnetTrainBGTiles -rept 2 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - pop hl - ret -; 8cd82 - -MagnetTrainBGTiles: ; 8cd82 -; Alternating tiles for each line -; of the Magnet Train tilemap. - db $4c, $4d ; bush - db $5c, $5d ; bush - db $4c, $4d ; bush - db $5c, $5d ; bush - db $08, $08 ; fence - db $18, $18 ; fence - db $1f, $1f ; track - db $31, $31 ; track - db $11, $11 ; track - db $11, $11 ; track - db $0d, $0d ; track - db $31, $31 ; track - db $04, $04 ; fence - db $18, $18 ; fence - db $4c, $4d ; bush - db $5c, $5d ; bush - db $4c, $4d ; bush - db $5c, $5d ; bush -; 8cda6 - -Function8cda6: ; 8cda6 - ld hl, LYOverrides - ld bc, $90 - ld a, [wd192] - call ByteFill - ld hl, LYOverridesBackup - ld bc, $90 - ld a, [wd192] - call ByteFill - ld a, $43 - ld [hLCDStatCustom], a - ret -; 8cdc3 - -SetMagnetTrainPals: ; 8cdc3 - ld a, $1 - ld [rVBK], a - - ; bushes - ld hl, VBGMap0 - ld bc, 8 tiles - ld a, $2 - call ByteFill - - ; train - ld hl, VBGMap0 tile $08 - ld bc, 20 tiles - xor a - call ByteFill - - ; more bushes - ld hl, VBGMap0 tile $1c - ld bc, 8 tiles - ld a, $2 - call ByteFill - - ; train window - ld hl, VBGMap0 tile $10 + 7 - ld bc, 6 - ld a, $4 - call ByteFill - - ld a, $0 - ld [rVBK], a - ret -; 8cdf7 - -Function8cdf7: ; 8cdf7 - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_8ce06 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 8ce06 - -Jumptable_8ce06: ; 8ce06 - dw Function8ce19 - dw Function8ce6d - dw Function8ce47 - dw Function8ce6d - dw Function8ce7a - dw Function8ce6d - dw Function8cea2 -; 8ce14 - -Function8ce14: ; 8ce14 - ld hl, wJumptableIndex - inc [hl] - ret -; 8ce19 - -Function8ce19: ; 8ce19 - ld d, $55 - ld a, [wd194 + 1] - ld e, a - ld b, SPRITE_ANIM_INDEX_15 - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, [PlayerGender] - bit 0, a - jr z, .asm_8ce31 - ld b, SPRITE_ANIM_INDEX_1F - -.asm_8ce31 - pop af - ld [rSVBK], a - ld a, b - call _InitSpriteAnimStruct - ld hl, $3 - add hl, bc - ld [hl], $0 - call Function8ce14 - ld a, $80 - ld [wcf66], a - ret -; 8ce47 - -Function8ce47: ; 8ce47 - ld hl, wd193 - ld a, [wcf65] - cp [hl] - jr z, .asm_8ce64 - ld e, a - ld a, [wd191] - xor $ff - inc a - add e - ld [wcf65], a - ld hl, wc3c0 - ld a, [wd191] - add [hl] - ld [hl], a - ret - -.asm_8ce64 - call Function8ce14 - ld a, $80 - ld [wcf66], a - ret -; 8ce6d - -Function8ce6d: ; 8ce6d - ld hl, wcf66 - ld a, [hl] - and a - jr z, .asm_8ce76 - dec [hl] - ret - -.asm_8ce76 - call Function8ce14 - ret -; 8ce7a - -Function8ce7a: ; 8ce7a - ld hl, wd194 - ld a, [wcf65] - cp [hl] - jr z, .asm_8ce9e - ld e, a - ld a, [wd191] - xor $ff - inc a - ld d, a - ld a, e -rept 2 - add d -endr - ld [wcf65], a - ld hl, wc3c0 - ld a, [wd191] - ld d, a - ld a, [hl] -rept 2 - add d -endr - ld [hl], a - ret - - ret - -.asm_8ce9e - call Function8ce14 - ret -; 8cea2 - -Function8cea2: ; 8cea2 - ld a, $80 - ld [wJumptableIndex], a - ld de, SFX_TRAIN_ARRIVED - call PlaySFX - ret -; 8ceae - -Function8ceae: ; 8ceae - callba Function8cf69 - call Function8cdf7 - call Function8cc99 - call Function3b0c - call DelayFrame - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, [TimeOfDayPal] - push af - ld a, [wPermission] - push af - ld a, [TimeOfDay] - and $3 - ld [TimeOfDayPal], a - ld a, $1 - ld [wPermission], a - ld b, SCGB_09 - call GetSGBLayout - call UpdateTimePals - ld a, [rBGP] - ld [wcfc7], a - ld a, [rOBP0] - ld [wcfc8], a - ld a, [rOBP1] - ld [wcfc9], a - pop af - ld [wPermission], a - pop af - ld [TimeOfDayPal], a - pop af - ld [rSVBK], a - ret -; 8ceff - -MagnetTrainTilemap1: - db $1f, $05, $06, $0a, $0a - db $0a, $09, $0a, $0a, $0a - db $0a, $0a, $0a, $09, $0a - db $0a, $0a, $0b, $0c, $1f -MagnetTrainTilemap2: - db $14, $15, $16, $1a, $1a - db $1a, $19, $1a, $1a, $1a - db $1a, $1a, $1a, $19, $1a - db $1a, $1a, $1b, $1c, $1d -MagnetTrainTilemap3: - db $24, $25, $26, $27, $07 - db $2f, $29, $28, $28, $28 - db $28, $28, $28, $29, $07 - db $2f, $2a, $2b, $2c, $2d -MagnetTrainTilemap4: - db $20, $1f, $2e, $1f, $17 - db $00, $2e, $1f, $1f, $1f - db $1f, $1f, $1f, $2e, $17 - db $00, $1f, $2e, $1f, $0f -; 8cf4f +INCLUDE "event/magnet_train.asm" Function8cf4f: ; 8cf4f call Function3238 @@ -39550,779 +37074,7 @@ INCLUDE "menu/mon_icons.asm" SECTION "bank24", ROMX, BANK[$24] INCLUDE "engine/phone.asm" - -InitClock: ; 90672 (24:4672) -; Ask the player to set the time. - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - - ld a, $0 - ld [wc2ce], a - ld a, $10 - ld [MusicFade], a - ld a, MUSIC_NONE % $100 - ld [MusicFadeIDLo], a - ld a, MUSIC_NONE / $100 - ld [MusicFadeIDHi], a - ld c, 8 - call DelayFrames - call Function4dd - call ClearTileMap - call ClearSprites - ld b, SCGB_08 - call GetSGBLayout - xor a - ld [hBGMapMode], a - call LoadStandardFont - ld de, GFX_908fb - ld hl, VTiles2 tile $00 - lb bc, BANK(GFX_908fb), 1 - call Request1bpp - ld de, GFX_90903 - ld hl, VTiles2 tile $01 - lb bc, BANK(GFX_90903), 1 - call Request1bpp - ld de, GFX_9090b - ld hl, VTiles2 tile $02 - lb bc, BANK(GFX_9090b), 1 - call Request1bpp - call .ClearScreen - call WaitBGMap - call Function4a3 - ld hl, UnknownText_0x90874 - call PrintText - ld hl, wc608 - ld bc, 50 - xor a - call ByteFill - ld a, $a - ld [wInitHourBuffer], a - -.loop - ld hl, UnknownText_0x90879 - call PrintText - hlcoord 3, 7 - ld b, 2 - ld c, 15 - call TextBox - hlcoord 11, 7 - ld [hl], $1 - hlcoord 11, 10 - ld [hl], $2 - hlcoord 4, 9 - call DisplayHourOClock - ld c, 10 - call DelayFrames - -.SetHourLoop - call JoyTextDelay - call SetHour - jr nc, .SetHourLoop - - ld a, [wInitHourBuffer] - ld [StringBuffer2 + 1], a - call .ClearScreen - ld hl, UnknownText_0x90886 - call PrintText - call YesNoBox - jr nc, .HourIsSet - call .ClearScreen - jr .loop - -.HourIsSet - ld hl, UnknownText_0x9089a - call PrintText - hlcoord 11, 7 - lb bc, 2, 7 - call TextBox - hlcoord 15, 7 - ld [hl], $1 - hlcoord 15, 10 - ld [hl], $2 - hlcoord 12, 9 - call DisplayMinutesWithMinString - ld c, 10 - call DelayFrames - -.SetMinutesLoop - call JoyTextDelay - call SetMinutes - jr nc, .SetMinutesLoop - - ld a, [BattleMonNick + 5] - ld [StringBuffer2 + 2], a - call .ClearScreen - ld hl, UnknownText_0x908a4 - call PrintText - call YesNoBox - jr nc, .MinutesAreSet - call .ClearScreen - jr .HourIsSet - -.MinutesAreSet - call Function658 - ld hl, OakText_ResponseToSetTime - call PrintText - call WaitPressAorB_BlinkCursor - pop af - ld [hInMenu], a - ret - -.ClearScreen: ; 90783 (24:4783) - xor a - ld [hBGMapMode], a - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - xor a - call ByteFill - ld a, $1 - ld [hBGMapMode], a - ret - -SetHour: ; 90795 (24:4795) - ld a, [hJoyPressed] - and A_BUTTON - jr nz, .Confirm - - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .up - ld a, [hl] - and D_DOWN - jr nz, .down - call DelayFrame - and a - ret - -.down - ld hl, wInitHourBuffer - ld a, [hl] - and a - jr nz, .DecreaseThroughMidnight - ld a, 23 + 1 -.DecreaseThroughMidnight - dec a - ld [hl], a - jr .okay - -.up - ld hl, wInitHourBuffer - ld a, [hl] - cp 23 - jr c, .AdvanceThroughMidnight - ld a, -1 -.AdvanceThroughMidnight - inc a - ld [hl], a - -.okay - hlcoord 4, 9 - ld a, " " - ld bc, 15 - call ByteFill - hlcoord 4, 9 - call DisplayHourOClock - call WaitBGMap - and a - ret - -.Confirm - scf - ret - -DisplayHourOClock: ; 907de (24:47de) - push hl - ld a, [wInitHourBuffer] - ld c, a - ld e, l - ld d, h - call PrintHour - inc hl - ld de, String_oclock - call PlaceString - pop hl - ret -; 907f1 (24:47f1) - -Function907f1: ; 907f1 - ld h, d - ld l, e - push hl - call DisplayHourOClock - pop de -rept 2 - inc de -endr - ld a, $9c - ld [de], a - inc de - push de - ld hl, $3 - add hl, de - ld a, [de] - inc de - ld [hli], a - ld a, [de] - ld [hl], a - pop hl - call DisplayMinutesWithMinString -rept 3 - inc hl -endr - ret -; 90810 - -SetMinutes: ; 90810 (24:4810) - ld a, [hJoyPressed] - and A_BUTTON - jr nz, .asm_90857 - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .asm_90835 - ld a, [hl] - and D_DOWN - jr nz, .asm_90828 - call DelayFrame - and a - ret -.asm_90828 - ld hl, BattleMonNick + 5 - ld a, [hl] - and a - jr nz, .asm_90831 - ld a, 59 + 1 -.asm_90831 - dec a - ld [hl], a - jr .asm_90841 -.asm_90835 - ld hl, BattleMonNick + 5 - ld a, [hl] - cp 59 - jr c, .asm_9083f - ld a, -1 -.asm_9083f - inc a - ld [hl], a -.asm_90841 - hlcoord 12, 9 - ld a, " " - ld bc, 7 - call ByteFill - hlcoord 12, 9 - call DisplayMinutesWithMinString - call WaitBGMap - and a - ret -.asm_90857 - scf - ret - -DisplayMinutesWithMinString: ; 90859 (24:4859) - ld de, BattleMonNick + 5 - call PrintTwoDigitNumberRightAlign - inc hl - ld de, String_min - call PlaceString - ret - -PrintTwoDigitNumberRightAlign: ; 90867 (24:4867) - push hl - ld a, " " - ld [hli], a - ld [hl], a - pop hl - lb bc, PRINTNUM_RIGHTALIGN | 1, 2 - call PrintNum - ret -; 90874 (24:4874) - -UnknownText_0x90874: ; 0x90874 - ; Zzz… Hm? Wha…? You woke me up! Will you check the clock for me? - text_jump UnknownText_0x1bc29c - db "@" -; 0x90879 - -UnknownText_0x90879: ; 0x90879 - ; What time is it? - text_jump UnknownText_0x1bc2eb - db "@" -; 0x9087e - -String_oclock: - db "o'clock@" -; 90886 - -UnknownText_0x90886: ; 0x90886 - ; What?@ @ - text_jump UnknownText_0x1bc2fd - start_asm - hlcoord 1, 16 - call DisplayHourOClock - ld hl, UnknownText_0x90895 - ret -; 90895 (24:4895) - -UnknownText_0x90895: ; 0x90895 - ; ? - text_jump UnknownText_0x1bc305 - db "@" -; 0x9089a - -UnknownText_0x9089a: ; 0x9089a - ; How many minutes? - text_jump UnknownText_0x1bc308 - db "@" -; 0x9089f - -String_min: - db "min.@" -; 908a4 - -UnknownText_0x908a4: ; 0x908a4 - ; Whoa!@ @ - text_jump UnknownText_0x1bc31b - start_asm -; 0x908a9 - hlcoord 7, 14 - call DisplayMinutesWithMinString - ld hl, UnknownText_0x908b3 - ret -; 908b3 (24:48b3) - -UnknownText_0x908b3: ; 0x908b3 - ; ? - text_jump UnknownText_0x1bc323 - db "@" -; 0x908b8 - -OakText_ResponseToSetTime: ; 0x908b8 - start_asm - decoord 1, 14 - ld a, [wInitHourBuffer] - ld c, a - call PrintHour - ld [hl], ":" - inc hl - ld de, BattleMonNick + 5 - lb bc, PRINTNUM_LEADINGZEROS | 1, 2 - call PrintNum - ld b, h - ld c, l - ld a, [wInitHourBuffer] - cp 4 - jr c, .NITE - cp 11 - jr c, .MORN - cp 18 - jr c, .DAY -.NITE - ld hl, .sodark - ret -.MORN - ld hl, .overslept - ret -.DAY - ld hl, .yikes - ret -; 908ec (24:48ec) - -.overslept: ; 0x908ec - ; ! I overslept! - text_jump UnknownText_0x1bc326 - db "@" -; 0x908f1 - -.yikes: ; 0x908f1 - ; ! Yikes! I over- slept! - text_jump UnknownText_0x1bc336 - db "@" -; 0x908f6 - -.sodark: ; 0x908f6 - ; ! No wonder it's so dark! - text_jump UnknownText_0x1bc34f - db "@" -; 0x908fb - -GFX_908fb: ; 908fb -INCBIN "gfx/unknown/0908fb.2bpp" -GFX_90903: ; 90903 -INCBIN "gfx/unknown/090903.2bpp" -GFX_9090b: ; 9090b -INCBIN "gfx/unknown/09090b.2bpp" -; 90913 - -Special_SetDayOfWeek: ; 90913 - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - ld de, GFX_90903 - ld hl, VTiles1 tile $6f - lb bc, BANK(GFX_90903), 1 - call Request1bpp - ld de, GFX_9090b - ld hl, VTiles1 tile $75 - lb bc, BANK(GFX_9090b), 1 - call Request1bpp - xor a - ld [wd002], a -.asm_90936 - hlcoord 0, 12 - lb bc, 4, 18 - call TextBox - call LoadStandardMenuDataHeader - ld hl, UnknownText_0x90a3f - call PrintText - hlcoord 9, 3 - ld b, 2 - ld c, 9 - call TextBox - hlcoord 14, 3 - ld [hl], $ef - hlcoord 14, 6 - ld [hl], $f5 - hlcoord 10, 5 - call Function909de - call Function321c - ld c, 10 - call DelayFrames -.asm_9096a - call JoyTextDelay - call Function90993 - jr nc, .asm_9096a - call ExitMenu - call UpdateSprites - ld hl, UnknownText_0x90a44 - call PrintText - call YesNoBox - jr c, .asm_90936 - ld a, [wd002] - ld [StringBuffer2], a - call Function663 - call LoadStandardFont - pop af - ld [hInMenu], a - ret -; 90993 - -Function90993: ; 90993 - ld a, [hJoyPressed] - and A_BUTTON - jr z, .asm_9099b - scf - ret - -.asm_9099b - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .asm_909ba - ld a, [hl] - and D_DOWN - jr nz, .asm_909ad - call DelayFrame - and a - ret - -.asm_909ad - ld hl, wd002 - ld a, [hl] - and a - jr nz, .asm_909b6 - ld a, 6 + 1 - -.asm_909b6 - dec a - ld [hl], a - jr .asm_909c6 - -.asm_909ba - ld hl, wd002 - ld a, [hl] - cp 6 - jr c, .asm_909c4 - ld a, -1 - -.asm_909c4 - inc a - ld [hl], a - -.asm_909c6 - xor a - ld [hBGMapMode], a - hlcoord 10, 4 - ld b, $2 - ld c, $9 - call ClearBox - hlcoord 10, 5 - call Function909de - call WaitBGMap - and a - ret -; 909de - -Function909de: ; 909de - push hl - ld a, [wd002] - ld e, a - ld d, 0 - ld hl, WeekdaysStrings -rept 2 - add hl, de -endr - ld a, [hli] - ld d, [hl] - ld e, a - pop hl - call PlaceString - ret -; 909f2 - -WeekdaysStrings: ; 909f2 - dw Sunday - dw Monday - dw Tuesday - dw Wednesday - dw Thursday - dw Friday - dw Saturday - dw Sunday - -Sunday: db " SUNDAY@" -Monday: db " MONDAY@" -Tuesday: db " TUESDAY@" -Wednesday: db "WEDNESDAY@" -Thursday: db "THURSDAY@" -Friday: db " FRIDAY@" -Saturday: db "SATURDAY@" - - -UnknownText_0x90a3f: ; 0x90a3f - ; What day is it? - text_jump UnknownText_0x1bc369 - db "@" -; 0x90a44 - -UnknownText_0x90a44: ; 0x90a44 - start_asm - hlcoord 1, 14 - call Function909de - ld hl, UnknownText_0x90a4f - ret -; 90a4f (24:4a4f) - -UnknownText_0x90a4f: ; 0x90a4f - ; , is it? - text_jump UnknownText_0x1bc37a - db "@" -; 0x90a54 - -Special_InitialSetDSTFlag: ; 90a54 - ld a, [wDST] - set 7, a - ld [wDST], a - hlcoord 1, 14 - lb bc, 3, 18 - call ClearBox - ld hl, UnknownText_0x90a6c - call PlaceWholeStringInBoxAtOnce - ret -; 90a6c - -UnknownText_0x90a6c: ; 90a6c - start_asm - call UpdateTime - ld a, [hHours] - ld b, a - ld a, [hMinutes] - ld c, a - decoord 1, 14 - callba PrintHoursMins - ld hl, TextJump_DSTIsThatOK - ret -; 90a83 (24:4a83) - -TextJump_DSTIsThatOK: ; 0x90a83 - ; DST, is that OK? - text_jump Text_DSTIsThatOK - db "@" -; 0x90a88 - -Special_InitialClearDSTFlag: ; 90a88 - ld a, [wDST] - res 7, a - ld [wDST], a - hlcoord 1, 14 - lb bc, 3, 18 - call ClearBox - ld hl, UnknownText_0x90aa0 - call PlaceWholeStringInBoxAtOnce - ret -; 90aa0 - -UnknownText_0x90aa0: ; 90aa0 - start_asm - call UpdateTime - ld a, [hHours] - ld b, a - ld a, [hMinutes] - ld c, a - decoord 1, 14 - callba PrintHoursMins - ld hl, UnknownText_0x90ab7 - ret -; 90ab7 - -UnknownText_0x90ab7: ; 0x90ab7 - ; , is that OK? - text_jump UnknownText_0x1c5ff1 - db "@" -; 0x90abc - -Function90abc: ; 90abc - hlcoord 1, 14 - lb bc, 3, SCREEN_WIDTH - 2 - call ClearBox - ld hl, UnknownText_0x90acc - call PlaceWholeStringInBoxAtOnce - ret -; 90acc - -UnknownText_0x90acc: ; 0x90acc - start_asm - - call UpdateTime - - hlcoord 1, 14 - ld [hl], "R" - inc hl - ld [hl], "T" - inc hl - ld [hl], " " - inc hl - - ld de, hRTCDayLo - call Function90b23 - - hlcoord 1, 16 - ld [hl], "D" - inc hl - ld [hl], "F" - inc hl - ld [hl], " " - inc hl - - ld de, StartDay - call Function90b23 - - ld [hl], " " - inc hl - - ld a, [wDST] - bit 7, a - jr z, .off - - ld [hl], "O" - inc hl - ld [hl], "N" - inc hl - jr .done - -.off - ld [hl], "O" - inc hl - ld [hl], "F" - inc hl - ld [hl], "F" - inc hl - -.done - ld hl, UnknownText_0x90b13 - ret -; 90b13 - -UnknownText_0x90b13: ; 0x90b13 - text "Now on DEBUG…" - prompt -; 0x90b23 - -Function90b23: ; 90b23 - lb bc, 1, 3 - call PrintNum - ld [hl], "." - inc hl - inc de - lb bc, PRINTNUM_LEADINGZEROS | 1, 2 - call PrintNum - ld [hl], ":" - inc hl - inc de - lb bc, PRINTNUM_LEADINGZEROS | 1, 2 - call PrintNum - ret -; 90b3e - -PrintHour: ; 90b3e (24:4b3e) - ld l, e - ld h, d - push bc - call GetTimeOfDayString - call PlaceString - ld l, c - ld h, b - inc hl - pop bc - call AdjustHourForAMorPM - ld [wd265], a - ld de, wd265 - call PrintTwoDigitNumberRightAlign - ret - -GetTimeOfDayString: ; 90b58 (24:4b58) - ld a, c - cp 4 - jr c, .nite - cp 10 - jr c, .morn - cp 18 - jr c, .day -.nite - ld de, .NITE - ret -.morn - ld de, .MORN - ret -.day - ld de, .DAY - ret -; 90b71 (24:4b71) - -.NITE: db "NITE@" -.MORN: db "MORN@" -.DAY: db "DAY@" -; 90b7f - -AdjustHourForAMorPM: -; Convert the hour stored in c (0-23) to a 1-12 value - ld a, c - or a - jr z, .midnight - cp 12 - ret c - ret z - sub 12 - ret - -.midnight - ld a, 12 - ret - +INCLUDE "engine/timeset.asm" INCLUDE "engine/pokegear.asm" INCLUDE "data/wild/fish.asm" diff --git a/wram.asm b/wram.asm index 72536ab76..f8a9f1406 100644 --- a/wram.asm +++ b/wram.asm @@ -2402,7 +2402,7 @@ RegisteredItem:: ; d95c PlayerState:: ; d95d ds 1 -wd95e:: ds 2 +wHallOfFameCount:: ds 2 wd960:: ds 2 MooMooBerries:: ; d962 ds 1 ; how many berries fed to MooMoo From 0b8fe4bac31c83a8164567da6d7889a18ab3eb4b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 16 Nov 2015 22:29:54 -0500 Subject: [PATCH 16/40] More specials; bank 12 mobile --- battle/core.asm | 2 +- engine/diploma.asm | 2 +- engine/main_menu.asm | 1242 ++++++ engine/mart.asm | 6 +- engine/pokecenter_pc.asm | 2 +- engine/specials.asm | 36 +- event/celebi.asm | 354 ++ event/photo.asm | 299 ++ home/audio.asm | 2 +- main.asm | 3745 +------------------ maps/AzaleaTown.asm | 4 +- maps/BluesHouse.asm | 2 +- maps/BurnedTower1F.asm | 4 +- maps/CeladonDeptStore6F.asm | 2 +- maps/CeladonMansion3F.asm | 4 +- maps/CherrygroveCity.asm | 2 +- maps/CianwoodCity.asm | 2 +- maps/DragonShrine.asm | 2 +- maps/DragonsDenB1F.asm | 2 +- maps/GoldenrodCity.asm | 6 +- maps/GoldenrodDeptStore6F.asm | 2 +- maps/IlexForest.asm | 2 +- maps/IndigoPlateauPokeCenter1F.asm | 4 +- maps/KurtsHouse.asm | 4 +- maps/LancesRoom.asm | 4 +- maps/MahoganyTown.asm | 4 +- maps/MountMoon.asm | 2 +- maps/OlivineCity.asm | 4 +- maps/PokeCenter2F.asm | 2 +- maps/RadioTower2F.asm | 6 +- maps/Route24.asm | 2 +- maps/Route39Farmhouse.asm | 4 +- maps/SilverCaveRoom3.asm | 4 +- maps/SproutTower3F.asm | 2 +- maps/TeamRocketBaseB3F.asm | 2 +- maps/TinTower1F.asm | 2 +- maps/UndergroundPathSwitchRoomEntrances.asm | 4 +- maps/VictoryRoad.asm | 4 +- maps/WarehouseEntrance.asm | 14 +- misc/mobile_12.asm | 1829 +++++++++ 40 files changed, 3811 insertions(+), 3810 deletions(-) create mode 100755 engine/main_menu.asm create mode 100755 event/celebi.asm create mode 100755 event/photo.asm create mode 100755 misc/mobile_12.asm diff --git a/battle/core.asm b/battle/core.asm index 7b68e0729..d3393b4ff 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -8924,7 +8924,7 @@ IsMobileBattle2: ; 3f830 ; 3f836 -Function3f836: ; 3f836 +DisplayLinkRecord: ; 3f836 ld a, BANK(sLinkBattleStats) call GetSRAMBank diff --git a/engine/diploma.asm b/engine/diploma.asm index 7699cf930..d2ca46bb3 100644 --- a/engine/diploma.asm +++ b/engine/diploma.asm @@ -1,5 +1,5 @@ -Function1dd702: ; 1dd702 +_Diploma: ; 1dd702 call Function1dd709 call WaitPressAorB_BlinkCursor ret diff --git a/engine/main_menu.asm b/engine/main_menu.asm new file mode 100755 index 000000000..72c6955b1 --- /dev/null +++ b/engine/main_menu.asm @@ -0,0 +1,1242 @@ +GFX_49c0c: ; 49c0c +INCBIN "gfx/unknown/049c0c.2bpp" +; 49cdc + +MainMenu: ; 49cdc + xor a + ld [wc2d7], a + call Function49ed0 + ld b, SCGB_08 + call GetSGBLayout + call SetPalettes + ld hl, GameTimerPause + res 0, [hl] + call Function49da4 + ld [wcf76], a + call Function49e09 + ld hl, MenuDataHeader_0x49d14 + call LoadMenuDataHeader + call Function49de4 + call WriteBackup + jr c, .quit + call ClearTileMap + ld a, [MenuSelection] + ld hl, Jumptable_49d60 + rst JumpTable + jr MainMenu + +.quit + ret +; 49d14 + +MenuDataHeader_0x49d14: ; 49d14 + db $40 ; flags + db 00, 00 ; start coords + db 07, 16 ; end coords + dw MenuData2_0x49d1c + db 1 ; default option +; 49d1c + +MenuData2_0x49d1c: ; 49d1c + db $80 ; flags + db 0 ; items + dw MainMenuItems + dw Function1f79 + dw MainMenuText +; 49d20 + +MainMenuText: ; 49d24 + db "CONTINUE@" + db "NEW GAME@" + db "OPTION@" + db "MYSTERY GIFT@" + db "MOBILE@" + db "MOBILE STUDIUM@" + +Jumptable_49d60: ; 0x49d60 + dw MainMenu_Continue + dw MainMenu_NewGame + dw MainMenu_Options + dw MainMenu_MysteryGift + dw MainMenu_Mobile + dw MainMenu_MobileStudium +; 0x49d6c + +CONTINUE EQU 0 +NEW_GAME EQU 1 +OPTION EQU 2 +MYSTERY_GIFT EQU 3 +MOBILE EQU 4 +MOBILE_STUDIUM EQU 5 + +MainMenuItems: + +NewGameMenu: ; 0x49d6c + db 2 + db NEW_GAME + db OPTION + db $ff + +ContinueMenu: ; 0x49d70 + db 3 + db CONTINUE + db NEW_GAME + db OPTION + db $ff + +MobileMysteryMenu: ; 0x49d75 + db 5 + db CONTINUE + db NEW_GAME + db OPTION + db MYSTERY_GIFT + db MOBILE + db $ff + +MobileMenu: ; 0x49d7c + db 4 + db CONTINUE + db NEW_GAME + db OPTION + db MOBILE + db $ff + +MobileStudiumMenu: ; 0x49d82 + db 5 + db CONTINUE + db NEW_GAME + db OPTION + db MOBILE + db MOBILE_STUDIUM + db $ff + +MysteryMobileStudiumMenu: ; 0x49d89 + db 6 + db CONTINUE + db NEW_GAME + db OPTION + db MYSTERY_GIFT + db MOBILE + db MOBILE_STUDIUM + db $ff + +MysteryMenu: ; 0x49d91 + db 4 + db CONTINUE + db NEW_GAME + db OPTION + db MYSTERY_GIFT + db $ff + +MysteryStudiumMenu: ; 0x49d97 + db 5 + db CONTINUE + db NEW_GAME + db OPTION + db MYSTERY_GIFT + db MOBILE_STUDIUM + db $ff + +StudiumMenu: ; 0x49d9e + db 4 + db CONTINUE + db NEW_GAME + db OPTION + db MOBILE_STUDIUM + db $ff + + +Function49da4: ; 49da4 + nop + nop + nop + ld a, [wcfcd] + and a + jr nz, .next + ld a, $0 + ret + +.next + ld a, [hCGB] + cp $1 + ld a, $1 + ret nz + ld a, BANK(s0_abe5) + call GetSRAMBank + ld a, [s0_abe5] + cp $ff + call CloseSRAM + jr nz, .done + ld a, [StatusFlags] + bit 7, a + ld a, $1 + jr z, .ok + jr .ok + +.ok + jr .ok2 + +.ok2 + ld a, $1 + ret + +.done + ld a, [StatusFlags] + bit 7, a + jr z, .ok3 + jr .ok3 + +.ok3 + jr .ok4 + +.ok4 + ld a, $6 + ret +; 49de4 + +Function49de4: ; 49de4 + call SetUpMenu +.asm_49de7 + call Function49e09 + ld a, [wcfa5] + set 5, a + ld [wcfa5], a + call Function1f1a + ld a, [wcf73] + cp $2 + jr z, .asm_49e07 + cp $1 + jr z, .asm_49e02 + jr .asm_49de7 + +.asm_49e02 + call PlayClickSFX + and a + ret + +.asm_49e07 + scf + ret +; 49e09 + +Function49e09: ; 49e09 + ld a, [wcfcd] + and a + ret z + xor a + ld [hBGMapMode], a + call Function49e27 + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + call Function49e3d + pop af + ld [Options], a + ld a, $1 + ld [hBGMapMode], a + ret +; 49e27 + + +Function49e27: ; 49e27 + call Function6e3 + and $80 + jr nz, .asm_49e39 + hlcoord 0, 14 + ld b, $2 + ld c, $12 + call TextBox + ret + +.asm_49e39 + call SpeechTextBox + ret +; 49e3d + + +Function49e3d: ; 49e3d + ld a, [wcfcd] + and a + ret z + call Function6e3 + and $80 + jp nz, Function49e75 + call UpdateTime + call GetWeekday + ld b, a + decoord 1, 15 + call Function49e91 + decoord 4, 16 + ld a, [hHours] + ld c, a + callba PrintHour + ld [hl], ":" + inc hl + ld de, hMinutes + lb bc, PRINTNUM_LEADINGZEROS | 1, 2 + call PrintNum + ret +; 49e70 + +; 49e70 + db "min.@" +; 49e75 + +Function49e75: ; 49e75 + hlcoord 1, 14 + ld de, .TimeNotSet + call PlaceString + ret +; 49e7f + +.TimeNotSet ; 49e7f + db "TIME NOT SET@" +; 49e8c + +UnknownText_0x49e8c: ; 49e8c + text_jump UnknownText_0x1c5182 + db "@" +; 49e91 + +Function49e91: ; 49e91 + push de + ld hl, .Days + ld a, b + call GetNthString + ld d, h + ld e, l + pop hl + call PlaceString + ld h, b + ld l, c + ld de, .Day + call PlaceString + ret +; 49ea8 + +.Days + db "SUN@" + db "MON@" + db "TUES@" + db "WEDNES@" + db "THURS@" + db "FRI@" + db "SATUR@" +.Day + db "DAY@" +; 49ed0 + +Function49ed0: ; 49ed0 + xor a + ld [hMapAnims], a + call ClearTileMap + call LoadFontsExtra + call LoadStandardFont + call ResetTextRelatedRAM + ret +; 49ee0 + + +MainMenu_NewGame: ; 49ee0 + callba NewGame + ret +; 49ee7 + +MainMenu_Options: ; 49ee7 + callba OptionsMenu + ret +; 49eee + +MainMenu_Continue: ; 49eee + callba Continue + ret +; 49ef5 + +MainMenu_MysteryGift: ; 49ef5 + callba MysteryGift + ret +; 49efc + +MainMenu_Mobile: ; 49efc + call ClearBGPalettes + ld a, MUSIC_MOBILE_ADAPTER_MENU + ld [wMapMusic], a + ld de, MUSIC_MOBILE_ADAPTER_MENU + call Function4a6c5 +Function49f0a: ; 49f0a + call ClearBGPalettes + call Function4a3a7 + call Function4a492 + call ClearBGPalettes +Function49f16: ; 49f16 + call Function4a071 + ld c, 12 + call DelayFrames + hlcoord 4, 0 + ld b, $a + ld c, $a + call Function48cdc + hlcoord 6, 2 + ld de, MobileString1 + call PlaceString + hlcoord 0, 12 + ld b, $4 + ld c, $12 + call TextBox + xor a + ld de, String_0x49fe9 + hlcoord 1, 14 + call PlaceString + call Function3200 + call SetPalettes + call Function1bc9 + ld hl, MenuSelection2 + ld b, [hl] + push bc + jr .asm_49f5d + +.asm_49f55 + call Function1bd3 + ld hl, MenuSelection2 + ld b, [hl] + push bc + +.asm_49f5d + bit 0, a + jr nz, .asm_49f67 + bit 1, a + jr nz, .asm_49f84 + jr .asm_49f97 + +.asm_49f67 + ld hl, MenuSelection2 + ld a, [hl] + cp $1 + jp z, Function4a098 + cp $2 + jp z, Function4a0b9 + cp $3 + jp z, Function4a0c2 + cp $4 + jp z, Function4a100 + ld a, $1 + call Function1ff8 + +.asm_49f84 + pop bc + call ClearBGPalettes + call ClearTileMap + ld a, MUSIC_MAIN_MENU + ld [wMapMusic], a + ld de, MUSIC_MAIN_MENU + call Function4a6c5 + ret + +.asm_49f97 + ld hl, MenuSelection2 + ld a, [hl] + dec a + ld hl, MobileStrings2 + call GetNthString + ld d, h + ld e, l + hlcoord 1, 13 + ld b, $4 + ld c, $12 + call ClearBox + hlcoord 1, 14 + call PlaceString + jp .asm_49fb7 + +.asm_49fb7 + call Function4a071 + pop bc + ld hl, MenuSelection2 + ld [hl], b + ld b, $a + ld c, $1 + hlcoord 5, 1 + call ClearBox + jp .asm_49f55 +; 49fcc + + +MobileString1: ; 49fcc + db "めいしフ,ルダー" + next "あいさつ" + next "プロフィール" + next "せ", $1e, "い" + next "もどる" + db "@" +; 49fe9 + + +MobileStrings2: + +String_0x49fe9: ; 49fe9 + db "めいし¯つくったり" + next "ほぞんしておける フ,ルダーです@" +; 4a004 + +String_0x4a004: ; 4a004 + db "モバイルたいせんや じぶんのめいしで" + next "つかう あいさつ¯つくります@" +; 4a026 + +String_0x4a026: ; 4a026 + db "あなた%じゅうしょや ねんれいの" + next "せ", $1e, "い¯かえられます@" +; 4a042 + +String_0x4a042: ; 4a042 + db "モバイルセンター", $1d, "せつぞくするとき" + next "ひつような こと¯きめます@" +; 4a062 + +String_0x4a062: ; 4a062 + db "まえ%がめん ", $1d, "もどります" + next "@" +; 4a071 + +Function4a071: ; 4a071 (12:6071) + ld hl, wcfa1 + ld a, $2 + ld [hli], a + ld a, $5 + ld [hli], a + ld a, $5 + ld [hli], a + ld a, $1 + ld [hli], a + ld [hl], $0 + set 5, [hl] + inc hl + xor a + ld [hli], a + ld a, $20 + ld [hli], a + ld a, $1 + add $40 + add $80 + add $2 + ld [hli], a + ld a, $1 +rept 2 + ld [hli], a +endr + ret + +Function4a098: ; 4a098 (12:6098) + ld a, $2 + call Function1ff8 + call Function1bee + call WaitBGMap + call LoadStandardMenuDataHeader + callba Function89de0 + call Call_ExitMenu + call Function49351 + call Function4a485 + pop bc + jp Function49f16 + +Function4a0b9: ; 4a0b9 (12:60b9) + ld a, $2 + call Function1ff8 + pop bc + jp Function4a4c4 + +Function4a0c2: ; 4a0c2 (12:60c2) + ld a, $2 + call Function1ff8 + ld a, BANK(sPlayerData) + call GetSRAMBank + ld hl, sPlayerData + PlayerName - wPlayerData + ld de, PlayerName + ld bc, $6 + call CopyBytes + call CloseSRAM + callba Function150b9 + ld c, 2 + call DelayFrames + ld c, $1 + call Function4802f + push af + call ClearBGPalettes + pop af + and a + jr nz, .asm_4a0f9 + callba Function1509a +.asm_4a0f9 + ld c, 5 + call DelayFrames + jr asm_4a111 + +Function4a100: ; 4a100 (12:6100) + ld a, $2 + call Function1ff8 + call ClearBGPalettes + call Function4a13b + call ClearBGPalettes + call ClearTileMap + +asm_4a111: ; 4a111 (12:6111) + pop bc + call LoadFontsExtra + jp Function49f0a + +Function4a118: ; 4a118 (12:6118) + ld hl, wcfa1 + ld a, $1 + ld [hli], a + ld a, $d + ld [hli], a + ld a, $3 + ld [hli], a + ld a, $1 + ld [hli], a + ld [hl], $0 + set 5, [hl] + inc hl + xor a + ld [hli], a + ld a, $20 + ld [hli], a + ld a, $1 + add $2 + ld [hli], a + ld a, $1 +rept 2 + ld [hli], a +endr + ret + +Function4a13b: ; 4a13b (12:613b) + call Function4a3a7 + call Function4a492 + call Function4a373 + ld c, 10 + call DelayFrames + +Function4a149: ; 4a149 (12:6149) + hlcoord 1, 2 + ld b, $6 + ld c, $10 + call Function48cdc + hlcoord 3, 4 + ld de, String_4a1ef + call PlaceString + hlcoord 0, 12 + ld b, $4 + ld c, $12 + call TextBox + ld a, [MenuSelection2] + dec a + ld hl, Strings_4a23d + call GetNthString + ld d, h + ld e, l + hlcoord 1, 13 + ld b, $4 + ld c, $12 + call ClearBox + hlcoord 1, 14 + call PlaceString + callba Function104148 + call SetPalettes + call Function1bc9 + ld hl, MenuSelection2 + ld b, [hl] + push bc + jr asm_4a19d + +Function4a195: ; 4a195 (12:6195) + call Function1bd3 + ld hl, MenuSelection2 + ld b, [hl] + push bc + +asm_4a19d: ; 4a19d (12:619d) + bit 0, a + jr nz, .asm_4a1a7 + bit 1, a + jr nz, .asm_4a1ba + jr .asm_4a1bc +.asm_4a1a7 + ld hl, MenuSelection2 + ld a, [hl] + cp $1 + jp z, Function4a20e + cp $2 + jp z, Function4a221 + ld a, $1 + call Function1ff8 +.asm_4a1ba + pop bc + ret +.asm_4a1bc + ld hl, MenuSelection2 + ld a, [hl] + dec a + ld hl, Strings_4a23d + call GetNthString + ld d, h + ld e, l + hlcoord 1, 13 + ld b, $4 + ld c, $12 + call ClearBox + hlcoord 1, 14 + call PlaceString + jr .asm_4a1db +.asm_4a1db + call Function4a373 + pop bc + ld hl, MenuSelection2 + ld [hl], b + lb bc, 6, 1 + hlcoord 2, 3 + call ClearBox + jp Function4a195 +; 4a1ef (12:61ef) + +String_4a1ef: ; 4a1ef + db "モバイルセンター¯えらぶ" + next "ログインパスワード¯いれる" + next "もどる@" +; 4a20e + +Function4a20e: ; 4a20e (12:620e) + ld a, $1 + call Function1ff8 + callba Function1719c8 + call ClearBGPalettes + call DelayFrame + jr Function4a239 + +Function4a221: ; 4a221 (12:6221) + ld a, $1 + call Function1ff8 + call Function4a28a + jr c, Function4a239 + call Function4a373 + ld a, $2 + ld [MenuSelection2], a + jr .asm_4a235 +.asm_4a235 + pop bc + jp Function4a149 + +Function4a239: ; 4a239 (12:6239) + pop bc + jp Function4a13b +; 4a23d (12:623d) + +Strings_4a23d: ; 4a23d + db "いつも せつぞく¯する" + next "モバイルセンター¯えらびます@" + + db "モバイルセンター", $1d, "せつぞくするとき" + next "つかうパスワード¯ほぞんできます@" + + db "まえ%がめん ", $1d, "もどります@" + + db "@" +; 4a28a + +Function4a28a: ; 4a28a (12:628a) + hlcoord 2, 3 + lb bc, 6, 1 + ld a, " " + call Function4a6d8 + call Function1bee + call WaitBGMap + call LoadStandardMenuDataHeader + ld a, $5 + call GetSRAMBank + ld a, [$aa4b] + call CloseSRAM + and a + jr z, .asm_4a2df + hlcoord 12, 0 + ld b, $5 + ld c, $6 + call Function48cdc + hlcoord 14, 1 + ld de, String_4a34b + call PlaceString + callba Function104148 + call Function4a118 + call Function1bd3 + push af + call PlayClickSFX + pop af + bit 1, a + jr nz, .asm_4a33b + ld a, [MenuSelection2] + cp $2 + jr z, .asm_4a2f0 + cp $3 + jr z, .asm_4a33b +.asm_4a2df + callba Function11765d + call ClearBGPalettes + call Call_ExitMenu + call LoadFontsExtra + scf + ret +.asm_4a2f0 + call Function1bee + ld hl, UnknownText_0x4a358 + call PrintText + hlcoord 14, 7 + ld b, $3 + ld c, $4 + call TextBox + callba Function104148 + ld hl, MenuDataHeader_0x4a362 + call LoadMenuDataHeader + call InterpretMenu2 + bit 1, a + jr nz, .asm_4a338 + ld a, [MenuSelection2] + cp $2 + jr z, .asm_4a338 + ld a, $5 + call GetSRAMBank + ld hl, $aa4b + xor a + ld bc, $11 + call ByteFill + call CloseSRAM + ld hl, UnknownText_0x4a35d + call PrintText + call JoyWaitAorB +.asm_4a338 + call ExitMenu +.asm_4a33b + call Call_ExitMenu + callba Function104148 + xor a + ret +; 4a346 (12:6346) + +MenuDataHeader_0x4a346: ; 0x4a346 + db $40 ; flags + db 00, 12 ; start coords + db 06, 19 ; end coords + +String_4a34b: ; 4a34b + db "いれなおす" + next "けす" + next "もどる@" +; 4a358 + +UnknownText_0x4a358: ; 0x4a358 + ; Delete the saved LOG-IN PASSWORD? + text_jump UnknownText_0x1c5196 + db "@" +; 0x4a35d + +UnknownText_0x4a35d: ; 0x4a35d + ; Deleted the LOG-IN PASSWORD. + text_jump UnknownText_0x1c51b9 + db "@" +; 0x4a362 + +MenuDataHeader_0x4a362: ; 0x4a362 + db $40 ; flags + db 07, 14 ; start coords + db 11, 19 ; end coords + dw MenuData2_0x4a36a + db 2 ; default option +; 0x4a36a + +MenuData2_0x4a36a: ; 0x4a36a + db $e0 ; flags + db 2 ; items + db "はい@" + db "いいえ@" +; 0x4a373 + +Function4a373: ; 4a373 (12:6373) + ld hl, wcfa1 + ld a, $4 + ld [hli], a + ld a, $2 + ld [hli], a + ld a, $3 + ld [hli], a + ld a, $1 + ld [hli], a + ld [hl], $0 + set 5, [hl] + inc hl + xor a + ld [hli], a + ld a, $20 + ld [hli], a + ld a, $1 + add $40 + add $80 + add $2 + ld [hli], a + ld a, $1 +rept 2 + ld [hli], a +endr + ret +; 4a39a (12:639a) + +Function4a39a: ; 4a39a + call Function4a485 + call Function4a492 + call Function4a3aa + call SetPalettes + ret +; 4a3a7 + +Function4a3a7: ; 4a3a7 (12:63a7) + call Function4a485 +Function4a3aa: ; 4a3aa + hlcoord 0, 0 + lb bc, 3, 1 + xor a + call Function4a6d8 + lb bc, 1, 1 + ld a, $1 + call Function4a6d8 + lb bc, 1, 1 + xor a + call Function4a6d8 + lb bc, 1, 1 + ld a, $1 + call Function4a6d8 + lb bc, 4, 1 + ld a, $2 + call Function4a6d8 + lb bc, 1, 1 + ld a, $3 + call Function4a6d8 + lb bc, 1, 1 + ld a, " " + call Function4a6d8 + hlcoord 1, 0 + ld a, $1 + lb bc, 3, 18 + call Function4a6d8 + lb bc, 1, 18 + ld a, $0 + call Function4a6d8 + lb bc, 1, 18 + ld a, $1 + call Function4a6d8 + lb bc, 1, 18 + ld a, $2 + call Function4a6d8 + lb bc, 11, 18 + ld a, " " + call Function4a6d8 + hlcoord 19, 0 + lb bc, 3, 1 + ld a, $0 + call Function4a6d8 + lb bc, 1, 1 + ld a, $1 + call Function4a6d8 + lb bc, 1, 1 + xor a + call Function4a6d8 + lb bc, 1, 1 + ld a, $1 + call Function4a6d8 + lb bc, 4, 1 + ld a, $2 + call Function4a6d8 + lb bc, 1, 1 + ld a, $3 + call Function4a6d8 + lb bc, 1, 1 + ld a, " " + call Function4a6d8 + ret +; 4a449 (12:6449) + +Function4a449: ; 4a449 + ld bc, 3 * SCREEN_WIDTH + ld a, $0 + hlcoord 0, 0 + call ByteFill + ld bc, 2 * SCREEN_WIDTH + ld a, $1 + call ByteFill + ld bc, 2 * SCREEN_WIDTH + ld a, $0 + call ByteFill + ld bc, 2 * SCREEN_WIDTH + ld a, $1 + call ByteFill + ld bc, SCREEN_WIDTH + ld a, $2 + call ByteFill + ld bc, SCREEN_WIDTH + ld a, $3 + call ByteFill + ld bc, SCREEN_WIDTH + ld a, " " + call ByteFill + ret +; 4a485 + +Function4a485: ; 4a485 (12:6485) + ld de, GFX_49c0c + ld hl, VTiles2 tile $00 + lb bc, BANK(GFX_49c0c), $d + call Get2bpp + ret + +Function4a492: ; 4a492 (12:6492) + call Function4936e + ret + + +MainMenu_MobileStudium: ; 4a496 + ld a, [StartDay] + ld b, a + ld a, [StartHour] + ld c, a + ld a, [StartMinute] + ld d, a + ld a, [StartSecond] + ld e, a + push bc + push de + callba MobileStudium + call ClearBGPalettes + pop de + pop bc + ld a, b + ld [StartDay], a + ld a, c + ld [StartHour], a + ld a, d + ld [StartMinute], a + ld a, e + ld [StartSecond], a + ret +; 4a4c4 + + +Function4a4c4: ; 4a4c4 (12:64c4) + call ClearBGPalettes + call Function4a3a7 + call Function4a492 + call Function4a680 + call ClearBGPalettes + ld c, 20 + call DelayFrames + hlcoord 2, 0 + ld b, $a + ld c, $e + call Function48cdc + hlcoord 4, 2 + ld de, String_4a5c5 + call PlaceString + hlcoord 4, 4 + ld de, String_4a5cd + call PlaceString + hlcoord 4, 6 + ld de, String_4a5da + call PlaceString + hlcoord 4, 8 + ld de, String_4a5e6 + call PlaceString + hlcoord 4, 10 + ld de, String_4a5f2 + call PlaceString + hlcoord 0, 12 + ld b, $4 + ld c, $12 + call TextBox + xor a + ld hl, Strings_4a5f6 + ld d, h + ld e, l + hlcoord 1, 14 + call PlaceString + ld a, $1 + ld hl, Strings_4a5f6 + call GetNthString + ld d, h + ld e, l + hlcoord 1, 16 + call PlaceString + call Function3200 + call SetPalettes + call Function1bc9 + ld hl, MenuSelection2 + ld b, [hl] + push bc + jr asm_4a54d + +Function4a545: ; 4a545 (12:6545) + call Function1bd3 + ld hl, MenuSelection2 + ld b, [hl] + push bc + +asm_4a54d: ; 4a54d (12:654d) + bit 0, a + jr nz, .asm_4a557 + bit 1, a + jr nz, .asm_4a574 + jr .asm_4a57e +.asm_4a557 + ld hl, MenuSelection2 + ld a, [hl] + cp $1 + jp z, Function4a6ab + cp $2 + jp z, Function4a6ab + cp $3 + jp z, Function4a6ab + cp $4 + jp z, Function4a6ab + ld a, $1 + call Function1ff8 +.asm_4a574 + pop bc + call ClearBGPalettes + call ClearTileMap + jp Function49f0a +.asm_4a57e + ld hl, MenuSelection2 + ld a, [hl] + dec a + add a + push af + ld hl, Strings_4a5f6 + call GetNthString + ld d, h + ld e, l + hlcoord 1, 13 + ld b, $4 + ld c, $12 + call ClearBox + hlcoord 1, 14 + call PlaceString + pop af + inc a + ld hl, Strings_4a5f6 + call GetNthString + ld d, h + ld e, l + hlcoord 1, 16 + call PlaceString + jp Function4a5b0 + +Function4a5b0: ; 4a5b0 (12:65b0) + call Function4a680 + pop bc + ld hl, MenuSelection2 + ld [hl], b + ld b, $a + ld c, $1 + hlcoord 3, 1 + call ClearBox + jp Function4a545 +; 4a5c5 (12:65c5) + +String_4a5c5: ; 4a5c5 + db "じこしょうかい@" +String_4a5cd: ; 4a5cd + db "たいせん ", $4a, "はじまるとき@" +String_4a5da: ; 4a5da + db "たいせん ", $1d, "かったとき@" +String_4a5e6: ; 4a5e6 + db "たいせん ", $1d, "まけたとき@" +String_4a5f2: ; 4a5f2 + db "もどる@" +; 4a5f6 + +Strings_4a5f6: ; 4a5f6 + db "めいし や ニュース ", $1d, "のせる@" + db "あなた%あいさつです@" + db "モバイル たいせん", $4a, "はじまるとき@" + db "あいて", $1d, "みえる あいさつです@" + db "モバイル たいせんで かったとき@" + db "あいて", $1d, "みえる あいさつです@" + db "モバイル たいせんで まけたとき@" + db "あいて", $1d, "みえる あいさつです@" + db "まえ%がめん ", $1d, "もどります@" + db "@" +; 4a680 + +Function4a680: ; 4a680 (12:6680) + ld hl, wcfa1 + ld a, $2 + ld [hli], a + ld a, $3 + ld [hli], a + ld a, $5 + ld [hli], a + ld a, $1 + ld [hli], a + ld [hl], $0 + set 5, [hl] + inc hl + xor a + ld [hli], a + ld a, $20 + ld [hli], a + ld a, $1 + add $40 + add $80 + add $2 + ld [hli], a + ld a, $1 +rept 2 + ld [hli], a +endr + xor a +rept 3 + ld [hli], a +endr + ret + +Function4a6ab: ; 4a6ab (12:66ab) + ld a, $2 + call Function1ff8 + call ClearBGPalettes + ld b, SCGB_08 + call GetSGBLayout + callba Function11c1ab + pop bc + call LoadFontsExtra + jp Function4a4c4 + +Function4a6c5: ; 4a6c5 (12:66c5) + ld a, $5 + ld [MusicFade], a + ld a, e + ld [MusicFadeIDLo], a + ld a, d + ld [MusicFadeIDHi], a + ld c, 22 + call DelayFrames + ret + +Function4a6d8: ; 4a6d8 (12:66d8) + push bc + push hl +.asm_4a6da + ld [hli], a + dec c + jr nz, .asm_4a6da + pop hl + ld bc, $14 + add hl, bc + pop bc + dec b + jr nz, Function4a6d8 + ret diff --git a/engine/mart.asm b/engine/mart.asm index 81ab22d12..8fa7888c2 100755 --- a/engine/mart.asm +++ b/engine/mart.asm @@ -470,7 +470,7 @@ endr BuyMenuLoop: ; 15cef - callba Function24ae8 + callba PlaceMoneyTopRightOW call UpdateSprites ld hl, MenuDataHeader_Buy call CopyMenuDataHeader @@ -875,7 +875,7 @@ Function15ee0: ; 15ee0 .okay_to_sell ld hl, Text_Mart_SellHowMany call PrintText - callba Function24af8 + callba PlaceMoneyTopRightMenu callba Function24fe1 call ExitMenu jr c, .declined @@ -899,7 +899,7 @@ Function15ee0: ; 15ee0 ld hl, Text_Mart_SoldForAmount call PrintTextBoxText call PlayTransactionSound - callba Function24af0 + callba PlaceMoneyBottomLeftOW call JoyWaitAorB .declined diff --git a/engine/pokecenter_pc.asm b/engine/pokecenter_pc.asm index ee37edca5..7d76d07d3 100755 --- a/engine/pokecenter_pc.asm +++ b/engine/pokecenter_pc.asm @@ -179,7 +179,7 @@ PC_WaitPlaySFX: ; 156d0 ret ; 156d9 -Function156d9: ; 156d9 +_KrissHousePC: ; 156d9 call PC_PlayBootSound ld hl, UnknownText_0x156ff call PC_DisplayText diff --git a/engine/specials.asm b/engine/specials.asm index b9911dc47..bfc4be7c0 100644 --- a/engine/specials.asm +++ b/engine/specials.asm @@ -101,14 +101,14 @@ SpecialsPointers:: ; c029 add_special SpecialCheckPokerus add_special Special_DisplayCoinCaseBalance add_special Special_DisplayMoneyAndCoinBalance - add_special Function24ae8 + add_special PlaceMoneyTopRightOW add_special Special_CheckForLuckyNumberWinners add_special Special_CheckLuckyNumberShowFlag add_special Special_ResetLuckyNumberShowFlag add_special Special_PrintTodaysLuckyNumber add_special Special_SelectApricornForKurt add_special SpecialNameRater - add_special Functionc2da + add_special Special_DisplayLinkRecord add_special GetFirstPokemonHappiness add_special CheckFirstMonIsEgg add_special RandomPhoneRareWildMon @@ -120,15 +120,17 @@ SpecialsPointers:: ; c029 add_special Special_YoungerHaircutBrother add_special Special_OlderHaircutBrother add_special Special_DaisyMassage - add_special Functionc472 + add_special PlayCurMonCry add_special ProfOaksPCBoot add_special SpecialGameboyCheck add_special SpecialTrainerHouse add_special PhotoStudio add_special InitRoamMons - add_special Functionc48f - add_special Functionc49f - add_special Functionc4ac + add_special Special_FadeOutMusic + add_special Diploma + add_special PrintDiploma + + ; Crystal add_special Function11ac3e add_special Function11b444 add_special Function11b5e8 @@ -151,7 +153,7 @@ SpecialsPointers:: ; c029 add_special Function101220 add_special Function101225 add_special Function101231 - add_special Function4925b + add_special Special_MoveTutor add_special SpecialOmanyteChamber add_special Function11c1ab add_special BattleTowerAction @@ -292,14 +294,14 @@ Special_TownMap: ; c2c0 Special_UnownPrinter: ; c2cd call FadeToMenu - callba Function16be4 + callba UnownPrinter call Function2b4d ret ; c2da -Functionc2da: ; c2da +Special_DisplayLinkRecord: ; c2da call FadeToMenu - callba Function3f836 + callba DisplayLinkRecord call Function2b4d ret ; c2e7 @@ -307,7 +309,7 @@ Functionc2da: ; c2da Special_KrissHousePC: ; c2e7 xor a ld [ScriptVar], a - callba Function156d9 + callba _KrissHousePC ld a, c ld [ScriptVar], a ret @@ -586,7 +588,7 @@ SpecialSnorlaxAwake: ; 0xc43d db $ff -Functionc472: ; c472 +PlayCurMonCry: ; c472 ld a, [CurPartySpecies] jp PlayCry ; c478 @@ -614,7 +616,7 @@ SpecialGameboyCheck: ; c478 ret -Functionc48f: ; c48f +Special_FadeOutMusic: ; c48f ld a, MUSIC_NONE % $100 ld [MusicFadeIDLo], a ld a, MUSIC_NONE / $100 @@ -624,16 +626,16 @@ Functionc48f: ; c48f ret ; c49f -Functionc49f: ; c49f +Diploma: ; c49f call FadeToMenu - callba Function1dd702 + callba _Diploma call Function2b4d ret ; c4ac -Functionc4ac: ; c4ac +PrintDiploma: ; c4ac call FadeToMenu - callba Function84688 + callba _PrintDiploma call Function2b4d ret ; c4b9 diff --git a/event/celebi.asm b/event/celebi.asm new file mode 100755 index 000000000..a5c3c0735 --- /dev/null +++ b/event/celebi.asm @@ -0,0 +1,354 @@ +Special_CelebiShrineEvent: ; 4989a + call DelayFrame + ld a, [VramState] + push af + xor a + ld [VramState], a + call LoadCelebiGFX + lb de, $07, $50 + ld a, SPRITE_ANIM_INDEX_2C + call _InitSpriteAnimStruct + ld hl, $3 + add hl, bc + ld [hl], $84 + ld hl, $2 + add hl, bc + ld [hl], $1f + ld hl, $f + add hl, bc + ld a, $80 + ld [hl], a + ld a, $a0 + ld [wcf64], a + ld d, $0 +.loop + ld a, [wJumptableIndex] + bit 7, a + jr nz, .done + push bc + call Function49bae + inc d + push de + ld a, $90 + ld [wc3b5], a + callba Function8cf7a + call Function49935 + ld c, 2 + call DelayFrames + pop de + pop bc + jr .loop + +.done + pop af + ld [VramState], a + call Function498f9 + call Function49bf3 + ret +; 498f9 + +Function498f9: ; 498f9 + ld hl, Sprites + 2 + xor a + ld c, $4 +.loop + ld [hli], a +rept 3 + inc hl +endr + inc a + dec c + jr nz, .loop + ld hl, Sprites + $10 + ld bc, $90 + xor a + call ByteFill + ret +; 49912 + +LoadCelebiGFX: ; 49912 + callba Function8cf53 + ld de, SpecialCelebiLeafGFX + ld hl, VTiles1 + lb bc, BANK(SpecialCelebiLeafGFX), 4 + call Request2bpp + ld de, SpecialCelebiGFX + ld hl, VTiles1 tile $04 + lb bc, BANK(SpecialCelebiGFX), $10 + call Request2bpp + xor a + ld [wJumptableIndex], a + ret +; 49935 + +Function49935: ; 49935 + ld hl, wcf64 + ld a, [hl] + and a + jr z, .asm_4993e + dec [hl] + ret + +.asm_4993e + ld hl, wJumptableIndex + set 7, [hl] + ret +; 49944 + +Function49944: ; 49944 + ld hl, wcf65 + ld a, [hl] + inc [hl] + and $7 + ret nz + ld a, [hl] + and $18 + sla a + add $40 + ld d, a + ld e, $0 + ld a, SPRITE_ANIM_INDEX_18 ; fly land + call _InitSpriteAnimStruct + ld hl, $3 + add hl, bc + ld [hl], $80 + ret +; 49962 + +SpecialCelebiLeafGFX: ; 49962 +INCBIN "gfx/special/celebi/leaf.2bpp" +SpecialCelebiGFX: ; 499a2 +INCBIN "gfx/special/celebi/1.2bpp" +INCBIN "gfx/special/celebi/2.2bpp" +INCBIN "gfx/special/celebi/3.2bpp" +INCBIN "gfx/special/celebi/4.2bpp" + + +Function49aa2: ; 49aa2 (12:5aa2) + ld hl, $6 + add hl, bc + ld a, [hl] + push af + ld hl, $5 + add hl, bc + ld a, [hl] + cp $52 + jp nc, Function49b30 + ld hl, $5 + add hl, bc + inc [hl] + ld hl, $f + add hl, bc + ld a, [hl] + ld d, a + cp $3a + jr c, .asm_49ac6 + jr z, .asm_49ac6 + sub $3 + ld [hl], a +.asm_49ac6 + ld hl, $e + add hl, bc + ld a, [hl] + inc [hl] + call Function49b3b + ld hl, $6 + add hl, bc + ld [hl], a + ld d, a + ld hl, $4 + add hl, bc + add [hl] + cp $5c + jr nc, .asm_49ae2 + cp $44 + jr nc, .asm_49b0d +.asm_49ae2 + pop af + push af + cp d + jr nc, .asm_49af2 + ld hl, $4 + add hl, bc + add [hl] + cp $50 + jr c, .asm_49b05 + jr .asm_49afb +.asm_49af2 + ld hl, $4 + add hl, bc + add [hl] + cp $50 + jr nc, .asm_49b05 +.asm_49afb + ld hl, $5 + add hl, bc + ld a, [hl] + sub $2 + ld [hl], a + jr .asm_49b0d +.asm_49b05 + ld hl, $5 + add hl, bc + ld a, [hl] + add $1 + ld [hl], a +.asm_49b0d + pop af + ld hl, $4 + add hl, bc + add [hl] + cp $50 + jr c, .asm_49b26 + cp $e6 + jr nc, .asm_49b26 + ld hl, $1 + add hl, bc + ld a, $41 + call Function3b3c + jr .asm_49b2f +.asm_49b26 + ld hl, $1 + add hl, bc + ld a, $40 + call Function3b3c +.asm_49b2f + ret + +Function49b30: ; 49b30 (12:5b30) + pop af + ld hl, $1 + add hl, bc + ld a, $40 + call Function3b3c + ret + +Function49b3b: ; 49b3b (12:5b3b) + add $10 + and $3f + cp $20 + jr nc, .asm_49b48 + call Function49b52 + ld a, h + ret +.asm_49b48 + and $1f + call Function49b52 + ld a, h + xor $ff + inc a + ret + +Function49b52: ; 49b52 (12:5b52) + ld e, a + ld a, d + ld d, $0 + ld hl, Unknown_49b6e +rept 2 + add hl, de +endr + ld e, [hl] + inc hl + ld d, [hl] + ld hl, 0 +.asm_49b61 + srl a + jr nc, .asm_49b66 + add hl, de +.asm_49b66 + sla e + rl d + and a + jr nz, .asm_49b61 + ret +; 49b6e (12:5b6e) + +Unknown_49b6e: ; 49b6e + sine_wave $100 +; 49bae + +Function49bae: ; 49bae + push hl + push bc + push de + ld a, d + ld d, $3 + ld e, d + cp $0 + jr z, .asm_49bd0 + cp d + jr z, .asm_49bd4 + call Function49bed + cp d + jr z, .asm_49bd8 + call Function49bed + cp d + jr z, .asm_49bdc + call Function49bed + cp d + jr c, .asm_49be9 + jr .asm_49be5 + +.asm_49bd0 + ld a, $84 + jr .asm_49bde + +.asm_49bd4 + ld a, $88 + jr .asm_49bde + +.asm_49bd8 + ld a, $8c + jr .asm_49bde + +.asm_49bdc + ld a, $90 + +.asm_49bde + ld hl, $3 + add hl, bc + ld [hl], a + jr .asm_49be9 + +.asm_49be5 + pop de + ld d, $ff + push de + +.asm_49be9 + pop de + pop bc + pop hl + ret +; 49bed + +Function49bed: ; 49bed + push af + ld a, d + add e + ld d, a + pop af + ret +; 49bf3 + +Function49bf3: ; 49bf3 + ld a, BATTLETYPE_CELEBI + ld [BattleType], a + ret +; 49bf9 + +Function49bf9: ; 49bf9 + ld a, [wBattleResult] + bit 6, a + jr z, .asm_49c07 + ld a, $1 + ld [ScriptVar], a + jr .asm_49c0b + +.asm_49c07 + xor a + ld [ScriptVar], a + +.asm_49c0b + ret +; 49c0c diff --git a/event/photo.asm b/event/photo.asm new file mode 100755 index 000000000..fd603fef9 --- /dev/null +++ b/event/photo.asm @@ -0,0 +1,299 @@ +UnownPrinter: ; 16be4 + ld a, [UnownDex] + and a + ret z + + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + ld a, [Options] + push af + set NO_TEXT_SCROLL, a + ld [Options], a + call ClearBGPalettes + call ClearTileMap + + ld de, UnownDexATile + ld hl, VTiles1 tile $6f + lb bc, BANK(UnownDexBTile), 1 + call Request1bpp + + ld de, UnownDexBTile + ld hl, VTiles1 tile $75 + lb bc, BANK(UnownDexBTile), 1 + call Request1bpp + + hlcoord 0, 0 + lb bc, 3, 18 + call TextBox + + hlcoord 0, 5 + lb bc, 7, 7 + call TextBox + + hlcoord 0, 14 + lb bc, 2, 18 + call TextBox + + hlcoord 1, 2 + ld de, AlphRuinsStampString + call PlaceString + + hlcoord 1, 16 + ld de, UnownDexDoWhatString + call PlaceString + + hlcoord 10, 6 + ld de, UnownDexMenuString + call PlaceString + + xor a + ld [wJumptableIndex], a + call Function16cc8 + call WaitBGMap + + ld a, UNOWN + ld [CurPartySpecies], a + xor a + ld [TempMonDVs], a + ld [TempMonDVs + 1], a + + ld b, SCGB_1C + call GetSGBLayout + call SetPalettes + +.joy_loop + call JoyTextDelay + + ld a, [hJoyPressed] + and B_BUTTON + jr nz, .pressed_b + + ld a, [hJoyPressed] + and A_BUTTON + jr nz, .pressed_a + + call Function16ca0 + call DelayFrame + jr .joy_loop + +.pressed_a + ld a, [wJumptableIndex] + push af + callba Function84560 + call RestartMapMusic + pop af + ld [wJumptableIndex], a + jr .joy_loop + +.pressed_b + pop af + ld [Options], a + pop af + ld [hInMenu], a + call ReturnToMapFromSubmenu + ret +; 16ca0 + +Function16ca0: ; 16ca0 + ld a, [hJoyLast] + and D_RIGHT + jr nz, .press_right + ld a, [hJoyLast] + and D_LEFT + jr nz, .press_left + ret + +.press_left + ld hl, wJumptableIndex + ld a, [hl] + and a + jr nz, .wrap_around_left + ld [hl], $1b + +.wrap_around_left + dec [hl] + jr .return + +.press_right + ld hl, wJumptableIndex + ld a, [hl] + cp $1a + jr c, .wrap_around_right + ld [hl], $ff + +.wrap_around_right + inc [hl] + +.return + call Function16cc8 + ret +; 16cc8 + +Function16cc8: ; 16cc8 + ld a, [wJumptableIndex] + cp 26 + jr z, Function16d20 + inc a + ld [UnownLetter], a + ld a, UNOWN + ld [CurPartySpecies], a + xor a + ld [wc2c6], a + ld de, VTiles2 + predef GetFrontpic + call Function16cff + hlcoord 1, 6 + xor a + ld [hFillBox], a + lb bc, 7, 7 + predef FillBox + ld de, VTiles2 tile $31 + callba Functione0000 + ret +; 16cff + +Function16cff: ; 16cff + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + + ld a, BANK(sScratch) + call GetSRAMBank + ld de, w6_d000 + ld hl, sScratch + ld a, [hROMBank] + ld b, a + ld c, $31 + call Get2bpp + call CloseSRAM + + pop af + ld [rSVBK], a + ret +; 16d20 + +Function16d20: ; 16d20 + hlcoord 1, 6 + lb bc, 7, 7 + call ClearBox + hlcoord 1, 9 + ld de, UnownDexVacantString + call PlaceString + xor a + call GetSRAMBank + ld hl, sScratch + ld bc, $31 tiles + xor a + call ByteFill + ld hl, VTiles2 tile $31 + ld de, sScratch + ld c, $31 + ld a, [hROMBank] + ld b, a + call Get2bpp + call CloseSRAM + ld c, 20 + call DelayFrames + ret +; 16d57 + +AlphRuinsStampString: + db " ALPH RUINS STAMP@" + +UnownDexDoWhatString: + db "Do what?@" + +UnownDexMenuString: + db "♂ PRINT" + next "♀ CANCEL" + next "← PREVIOUS" + next "→ NEXT" + db "@" + +UnownDexVacantString: + db "VACANT@" +; 16d9c + +UnownDexATile: ; 16d9c +INCBIN "gfx/unknown/016d9c.1bpp" +UnownDexBTile: ; 16da4 +INCBIN "gfx/unknown/016da4.1bpp" +; 16dac + +Function16dac: ; 16dac + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, " " + call ByteFill + hlcoord 7, 11 + ld a, $31 + ld [hFillBox], a + lb bc, 7, 7 + predef FillBox + ret +; 16dc7 + +PhotoStudio: ; 16dc7 + ld hl, .Text_AskWhichMon + call PrintText + callba SelectMonFromParty + jr c, .cancel + ld a, [CurPartySpecies] + cp EGG + jr z, .egg + + ld hl, .Text_HoldStill + call PrintText + call DisableSpriteUpdates + callba Function8461a + call Function2b74 + ld a, [$ffac] + and a + jr nz, .cancel + ld hl, .Text_Presto + jr .print_text + +.cancel + ld hl, .Text_NoPicture + jr .print_text + +.egg + ld hl, .Text_Egg + +.print_text + call PrintText + ret +; 16e04 + +.Text_AskWhichMon: ; 0x16e04 + ; Which #MON should I photo- graph? + text_jump UnknownText_0x1be024 + db "@" +; 0x16e09 + +.Text_HoldStill: ; 0x16e09 + ; All righty. Hold still for a bit. + text_jump UnknownText_0x1be047 + db "@" +; 0x16e0e + +.Text_Presto: ; 0x16e0e + ; Presto! All done. Come again, OK? + text_jump UnknownText_0x1be06a + db "@" +; 0x16e13 + +.Text_NoPicture: ; 0x16e13 + ; Oh, no picture? Come again, OK? + text_jump UnknownText_0x1c0000 + db "@" +; 0x16e18 + +.Text_Egg: ; 0x16e18 + ; An EGG? My talent is worth more… + text_jump UnknownText_0x1c0021 + db "@" +; 0x16e1d diff --git a/home/audio.asm b/home/audio.asm index 9756d0460..191366d0d 100644 --- a/home/audio.asm +++ b/home/audio.asm @@ -312,7 +312,7 @@ VolumeOff:: ; 3ca3 ret ; 3ca8 -FadeOutMusic:: ; 3ca8 +Unused_FadeOutMusic:: ; 3ca8 ld a, 4 ld [MusicFade], a ret diff --git a/main.asm b/main.asm index 672d0d44c..29e2b09b6 100644 --- a/main.asm +++ b/main.asm @@ -11491,305 +11491,7 @@ INCLUDE "event/mom.asm" INCLUDE "event/daycare.asm" -Function16be4: ; 16be4 - ld a, [UnownDex] - and a - ret z - - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - ld a, [Options] - push af - set NO_TEXT_SCROLL, a - ld [Options], a - call ClearBGPalettes - call ClearTileMap - - ld de, UnownDexATile - ld hl, VTiles1 tile $6f - lb bc, BANK(UnownDexBTile), 1 - call Request1bpp - - ld de, UnownDexBTile - ld hl, VTiles1 tile $75 - lb bc, BANK(UnownDexBTile), 1 - call Request1bpp - - hlcoord 0, 0 - lb bc, 3, 18 - call TextBox - - hlcoord 0, 5 - lb bc, 7, 7 - call TextBox - - hlcoord 0, 14 - lb bc, 2, 18 - call TextBox - - hlcoord 1, 2 - ld de, AlphRuinsStampString - call PlaceString - - hlcoord 1, 16 - ld de, UnownDexDoWhatString - call PlaceString - - hlcoord 10, 6 - ld de, UnownDexMenuString - call PlaceString - - xor a - ld [wJumptableIndex], a - call Function16cc8 - call WaitBGMap - - ld a, UNOWN - ld [CurPartySpecies], a - xor a - ld [TempMonDVs], a - ld [TempMonDVs + 1], a - - ld b, SCGB_1C - call GetSGBLayout - call SetPalettes - -.joy_loop - call JoyTextDelay - - ld a, [hJoyPressed] - and B_BUTTON - jr nz, .pressed_b - - ld a, [hJoyPressed] - and A_BUTTON - jr nz, .pressed_a - - call Function16ca0 - call DelayFrame - jr .joy_loop - -.pressed_a - ld a, [wJumptableIndex] - push af - callba Function84560 - call RestartMapMusic - pop af - ld [wJumptableIndex], a - jr .joy_loop - -.pressed_b - pop af - ld [Options], a - pop af - ld [hInMenu], a - call ReturnToMapFromSubmenu - ret -; 16ca0 - -Function16ca0: ; 16ca0 - ld a, [hJoyLast] - and D_RIGHT - jr nz, .press_right - ld a, [hJoyLast] - and D_LEFT - jr nz, .press_left - ret - -.press_left - ld hl, wJumptableIndex - ld a, [hl] - and a - jr nz, .wrap_around_left - ld [hl], $1b - -.wrap_around_left - dec [hl] - jr .return - -.press_right - ld hl, wJumptableIndex - ld a, [hl] - cp $1a - jr c, .wrap_around_right - ld [hl], $ff - -.wrap_around_right - inc [hl] - -.return - call Function16cc8 - ret -; 16cc8 - -Function16cc8: ; 16cc8 - ld a, [wJumptableIndex] - cp 26 - jr z, Function16d20 - inc a - ld [UnownLetter], a - ld a, UNOWN - ld [CurPartySpecies], a - xor a - ld [wc2c6], a - ld de, VTiles2 - predef GetFrontpic - call Function16cff - hlcoord 1, 6 - xor a - ld [hFillBox], a - lb bc, 7, 7 - predef FillBox - ld de, VTiles2 tile $31 - callba Functione0000 - ret -; 16cff - -Function16cff: ; 16cff - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - - ld a, BANK(sScratch) - call GetSRAMBank - ld de, w6_d000 - ld hl, sScratch - ld a, [hROMBank] - ld b, a - ld c, $31 - call Get2bpp - call CloseSRAM - - pop af - ld [rSVBK], a - ret -; 16d20 - -Function16d20: ; 16d20 - hlcoord 1, 6 - lb bc, 7, 7 - call ClearBox - hlcoord 1, 9 - ld de, UnownDexVacantString - call PlaceString - xor a - call GetSRAMBank - ld hl, sScratch - ld bc, $31 tiles - xor a - call ByteFill - ld hl, VTiles2 tile $31 - ld de, sScratch - ld c, $31 - ld a, [hROMBank] - ld b, a - call Get2bpp - call CloseSRAM - ld c, 20 - call DelayFrames - ret -; 16d57 - -AlphRuinsStampString: - db " ALPH RUINS STAMP@" - -UnownDexDoWhatString: - db "Do what?@" - -UnownDexMenuString: - db "♂ PRINT" - next "♀ CANCEL" - next "← PREVIOUS" - next "→ NEXT" - db "@" - -UnownDexVacantString: - db "VACANT@" -; 16d9c - -UnownDexATile: ; 16d9c -INCBIN "gfx/unknown/016d9c.1bpp" -UnownDexBTile: ; 16da4 -INCBIN "gfx/unknown/016da4.1bpp" -; 16dac - -Function16dac: ; 16dac - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - call ByteFill - hlcoord 7, 11 - ld a, $31 - ld [hFillBox], a - lb bc, 7, 7 - predef FillBox - ret -; 16dc7 - -PhotoStudio: ; 16dc7 - ld hl, .Text_AskWhichMon - call PrintText - callba SelectMonFromParty - jr c, .cancel - ld a, [CurPartySpecies] - cp EGG - jr z, .egg - - ld hl, .Text_HoldStill - call PrintText - call DisableSpriteUpdates - callba Function8461a - call Function2b74 - ld a, [$ffac] - and a - jr nz, .cancel - ld hl, .Text_Presto - jr .print_text - -.cancel - ld hl, .Text_NoPicture - jr .print_text - -.egg - ld hl, .Text_Egg - -.print_text - call PrintText - ret -; 16e04 - -.Text_AskWhichMon: ; 0x16e04 - ; Which #MON should I photo- graph? - text_jump UnknownText_0x1be024 - db "@" -; 0x16e09 - -.Text_HoldStill: ; 0x16e09 - ; All righty. Hold still for a bit. - text_jump UnknownText_0x1be047 - db "@" -; 0x16e0e - -.Text_Presto: ; 0x16e0e - ; Presto! All done. Come again, OK? - text_jump UnknownText_0x1be06a - db "@" -; 0x16e13 - -.Text_NoPicture: ; 0x16e13 - ; Oh, no picture? Come again, OK? - text_jump UnknownText_0x1c0000 - db "@" -; 0x16e18 - -.Text_Egg: ; 0x16e18 - ; An EGG? My talent is worth more… - text_jump UnknownText_0x1c0021 - db "@" -; 0x16e1d +INCLUDE "event/photo.asm" INCLUDE "engine/breeding/egg.asm" @@ -13076,17 +12778,17 @@ PlaceMenuItemQuantity: ; 0x24ac3 ret ; 0x24ae8 -Function24ae8: ; 24ae8 +PlaceMoneyTopRightOW: ; 24ae8 ld hl, MenuDataHeader_0x24b15 call CopyMenuDataHeader jr Function24b01 -Function24af0: ; 24af0 +PlaceMoneyBottomLeftOW: ; 24af0 ld hl, MenuDataHeader_0x24b1d call CopyMenuDataHeader jr Function24b01 -Function24af8: ; 24af8 +PlaceMoneyTopRightMenu: ; 24af8 ld hl, MenuDataHeader_0x24b15 ld de, $b call Function1e2e @@ -20847,7 +20549,7 @@ Function48000: ; 48000 ld [wd478], a ld [wd002], a ld [wd003], a - ; could have done "ld a, [wd479] \ and -4", saved four operations + ; could have done "ld a, [wd479] \ and %11111100", saved four operations ld a, [wd479] res 0, a ld [wd479], a @@ -20857,1836 +20559,7 @@ Function48000: ; 48000 ret ; 4802f - -Function4802f: ; 4802f (12:402f) - xor a - set 6, a - ld [wd002], a - ld hl, wd003 - set 0, [hl] - ld a, c - and a - call z, Function48000 - call ClearBGPalettes - call Function48d3d - ld a, [wd479] - bit 1, a - jr z, .asm_4805a - ld a, [wd003] - set 0, a - set 1, a - set 2, a - set 3, a - ld [wd003], a -.asm_4805a - call Function486bf - call LoadFontsExtra - ld de, GFX_488c3 - ld hl, VTiles2 tile $10 - lb bc, BANK(GFX_488c3), 1 - call Request1bpp - ld de, GFX_488cb - ld hl, VTiles2 tile $11 - lb bc, BANK(GFX_488cb), 1 - call Request1bpp - call Function4a3a7 - call ClearBGPalettes - ld a, [wd002] - bit 6, a - jr z, .asm_4808a - call Function48689 - jr .asm_480d7 -.asm_4808a - ld a, $5 - ld [MusicFade], a - ld a, MUSIC_MOBILE_ADAPTER_MENU % $100 - ld [MusicFadeIDLo], a - ld a, MUSIC_MOBILE_ADAPTER_MENU / $100 - ld [MusicFadeIDHi], a - ld c, 20 - call DelayFrames - ld b, $1 - call Function4930f - call ClearBGPalettes - hlcoord 0, 0 - ld b, $2 - ld c, $14 - call ClearBox - hlcoord 0, 1 - ld a, $c - ld [hl], a - ld bc, $13 - add hl, bc - ld [hl], a - ld de, MobileProfileString - hlcoord 1, 1 - call PlaceString - hlcoord 0, 2 - ld b, $a - ld c, $12 - call Function48cdc - hlcoord 2, 4 - ld de, String_48482 - call PlaceString -.asm_480d7 - hlcoord 2, 6 - ld de, String_48489 - call PlaceString - hlcoord 2, 8 - ld de, String_4848d - call PlaceString - hlcoord 2, 10 - ld de, String_48495 - call PlaceString - hlcoord 2, 12 - ld de, String_4849e - call PlaceString - ld a, [wd002] - bit 6, a - jr nz, .asm_48113 - ld a, [PlayerGender] - ld hl, Strings_484fb - call GetNthString - ld d, h - ld e, l - hlcoord 11, 4 - call PlaceString -.asm_48113 - hlcoord 11, 6 - call Function487ec - ld a, [wd474] - dec a - ld hl, Prefectures - call GetNthString - ld d, h - ld e, l - hlcoord 11, 8 - call PlaceString - hlcoord 11, 10 - call Function489ea - hlcoord 0, 14 - ld b, $2 - ld c, $12 - call TextBox - hlcoord 1, 16 - ld de, String_48275 - call PlaceString - call Function48187 - call Function3200 - call SetPalettes - call Function1bc9 - ld hl, MenuSelection2 - ld b, [hl] - push bc - jr asm_4815f - -Function48157: ; 48157 (12:4157) - call Function1bd3 - ld hl, MenuSelection2 - ld b, [hl] - push bc - -asm_4815f: ; 4815f (12:415f) - bit 0, a - jp nz, Function4820d - ld b, a - ld a, [wd002] - bit 6, a - jr z, .asm_48177 - ld hl, wd479 - bit 1, [hl] - jr z, .asm_48177 - bit 1, b - jr nz, .asm_4817a -.asm_48177 - jp Function48272 -.asm_4817a - call ClearBGPalettes - call Function48d30 - pop bc - call ClearTileMap - ld a, $ff - ret - -Function48187: ; 48187 (12:4187) - ld a, [wd479] - bit 1, a - jr nz, .asm_481f1 - ld a, [wd003] - ld d, a - call Function48725 - jr c, .asm_481a2 - lb bc, 1, 4 - hlcoord 2, 12 - call ClearBox - jr .asm_481ad -.asm_481a2 - push de - hlcoord 2, 12 - ld de, String_4849e - call PlaceString - pop de -.asm_481ad - ld a, [wd002] - bit 6, a - jr nz, .asm_481c1 - bit 0, d - jr nz, .asm_481c1 - lb bc, 1, 8 - hlcoord 11, 4 - call ClearBox -.asm_481c1 - bit 1, d - jr nz, .asm_481ce - lb bc, 1, 8 - hlcoord 11, 6 - call ClearBox -.asm_481ce - bit 2, d - jr nz, .asm_481db - lb bc, 2, 8 - hlcoord 11, 7 - call ClearBox -.asm_481db - bit 3, d - jr nz, .asm_481f1 - ld a, [wd479] - bit 0, a - jr nz, .asm_481f8 - lb bc, 1, 8 - hlcoord 11, 10 - call ClearBox - jr .asm_48201 -.asm_481f1 - ld a, [wd479] - bit 0, a - jr nz, .asm_48201 -.asm_481f8 - hlcoord 11, 10 - ld de, String_48202 - call PlaceString -.asm_48201 - ret -; 48202 (12:4202) - -String_48202: ; 48202 - db "Tell Later@" -; 4820d - -Function4820d: ; 4820d (12:420d) - call Function1bee - ld hl, MenuSelection2 - ld a, [hl] - push af - ld a, [wd002] - bit 6, a - jr z, .asm_4821f - pop af - inc a - push af -.asm_4821f - pop af - cp $1 - jr z, asm_4828d - cp $2 - jp z, Function4876f - cp $3 - jp z, Function48304 - cp $4 - jp z, Function488d3 - ld a, $2 - call Function1ff8 - ld a, [wd002] - bit 6, a - jr z, .asm_4825c - jr .asm_4825c -; 48241 (12:4241) - - hlcoord 1, 15 - ld b, $2 - ld c, $12 - call ClearBox - ld de, String_484a1 - hlcoord 1, 16 - call PlaceString - call WaitBGMap - ld c, 48 - call DelayFrames - -.asm_4825c - call ClearBGPalettes - call Function48d30 - pop bc - call ClearTileMap - ld b, SCGB_08 - call GetSGBLayout - ld hl, wd479 - set 1, [hl] - xor a - ret - -Function48272: ; 48272 (12:4272) - jp Function4840c -; 48275 (12:4275) - -String_48275: ; 48275 - db "Personal Info@" -; 48283 - -Function48283: ; 48283 (12:4283) - lb bc, 2, 18 - hlcoord 1, 15 - call ClearBox - ret - -asm_4828d: ; 4828d (12:428d) - call Function48283 - hlcoord 1, 16 - ld de, String_484b1 - call PlaceString - ld hl, MenuDataHeader_0x484f1 - call LoadMenuDataHeader - call Function4873c - hlcoord 11, 2 - ld b, $4 - ld c, $7 - call Function48cdc - hlcoord 13, 4 - ld de, String_484fb - call PlaceString - hlcoord 13, 6 - ld de, String_484ff - call PlaceString - call WaitBGMap - ld a, [PlayerGender] - inc a - ld [wMenuCursorBuffer], a - call Function1bc9 - call PlayClickSFX - call ExitMenu - bit 0, a - jp z, Function4840c - ld hl, MenuSelection2 - ld a, [hl] - ld hl, Strings_484fb - cp $1 - jr z, .asm_482ed -.asm_482e1 - ld a, [hli] - cp $50 - jr nz, .asm_482e1 - ld a, $1 - ld [PlayerGender], a - jr .asm_482f1 -.asm_482ed - xor a - ld [PlayerGender], a -.asm_482f1 - ld d, h - ld e, l - hlcoord 11, 4 - call PlaceString - ld a, [wd003] - set 0, a - ld [wd003], a - jp Function4840c - -Function48304: ; 48304 (12:4304) - call Function48283 - hlcoord 1, 16 - ld de, String_484cf - call PlaceString - ld hl, MenuDataHeader_0x48504 - call LoadMenuDataHeader - ld hl, MenuDataHeader_0x48513 - call LoadMenuDataHeader - hlcoord 10, 0 - ld b, $c - ld c, $8 - call Function48cdc - ld a, [wMenuCursorBuffer] - ld b, a - ld a, [wd0e4] - ld c, a - push bc - ld a, [wd474] - dec a - cp $29 - jr c, .asm_4833f - sub $29 - inc a - ld [wMenuCursorBuffer], a - ld a, $29 -.asm_4833f - ld [wd0e4], a - callba Function104148 -.asm_48348 - call HandleScrollingMenu - ld de, $629 - call Function48383 - jr c, .asm_48348 - ld d, a - pop bc - ld a, b - ld [wMenuCursorBuffer], a - ld a, c - ld [wd0e4], a - ld a, d - push af - call ExitMenu - call ExitMenu - pop af - ld a, [hJoyPressed] - bit 0, a - jr z, .asm_48377 - call Function483bb - ld a, [wd003] - set 2, a - ld [wd003], a -.asm_48377 - call Function48187 - callba Function104148 - jp Function4840c - -Function48383: ; 48383 (12:4383) - push bc - push af - bit 5, a - jr nz, .asm_48390 - bit 4, a - jr nz, .asm_4839f - and a - jr .asm_483b7 -.asm_48390 - ld a, [wd0e4] - sub d - ld [wd0e4], a - jr nc, .asm_483af - xor a - ld [wd0e4], a - jr .asm_483af -.asm_4839f - ld a, [wd0e4] - add d - ld [wd0e4], a - cp e - jr c, .asm_483af - ld a, e - ld [wd0e4], a - jr .asm_483af -.asm_483af - ld hl, MenuSelection2 - ld a, [hl] - ld [wMenuCursorBuffer], a - scf -.asm_483b7 - pop bc - ld a, b - pop bc - ret - -Function483bb: ; 483bb (12:43bb) - ld hl, wcf77 - ld a, [hl] - inc a - ld [wd474], a - dec a - ld b, a - ld hl, Prefectures -.asm_483c8 - and a - jr z, .asm_483d5 -.asm_483cb - ld a, [hli] - cp "@" - jr nz, .asm_483cb - ld a, b - dec a - ld b, a - jr .asm_483c8 -.asm_483d5 - ld d, h - ld e, l - ld b, $2 - ld c, $8 - hlcoord 11, 7 - call ClearBox - hlcoord 11, 8 - call PlaceString - ret -; 483e8 (12:43e8) - -Function483e8: ; 483e8 - push de - ld hl, Prefectures - ld a, [MenuSelection] - cp $ff - jr nz, .asm_483f8 - ld hl, Wakayama ; last string - jr .asm_48405 - -.asm_483f8 - ld d, a - and a - jr z, .asm_48405 -.asm_483fc - ld a, [hli] - cp "@" - jr nz, .asm_483fc - ld a, d - dec a - jr .asm_483f8 - -.asm_48405 - ld d, h - ld e, l - pop hl - call PlaceString - ret -; 4840c - -Function4840c: ; 4840c (12:440c) - call Function48187 - call Function48283 - hlcoord 1, 16 - ld de, String_48275 - call PlaceString - call Function486bf - pop bc - ld hl, MenuSelection2 - ld [hl], b - ld a, [wd002] - bit 6, a - jr nz, .asm_48437 - ld b, $9 - ld c, $1 - hlcoord 1, 4 - call ClearBox - jp Function48157 -.asm_48437 - ld b, $7 - ld c, $1 - hlcoord 1, 6 - call ClearBox - jp Function48157 - -Function48444: ; 48444 (12:4444) - push bc - push af - push de - push hl - ld hl, Unknown_4845d -.asm_4844b - and a - jr z, .asm_48453 -rept 2 - inc hl -endr - dec a - jr .asm_4844b -.asm_48453 - ld d, h - ld e, l - pop hl - call PlaceString - pop de - pop af - pop bc - ret -; 4845d (12:445d) - -Unknown_4845d: ; 4845d -; 4845d - db "0@" - db "1@" - db "2@" - db "3@" - db "4@" - db "5@" - db "6@" - db "7@" - db "8@" - db "9@" -; 48471 - -MobileProfileString: db " Mobile Profile@" -String_48482: db "Gender@" -String_48489: db "Age@" -String_4848d: db "Address@" -String_48495: db "Zip Code@" -String_4849e: db "OK@" -String_484a1: db "Profile Changed@" -String_484b1: db "Boy or girl?@" -String_484be: db "How old are you?@" -String_484cf: db "Where do you live?@" -String_484e2: db "Your zip code?@" -; 484f1 - -MenuDataHeader_0x484f1: ; 0x484f1 - db $40 ; flags - db 02, 11 ; start coords - db 07, 19 ; end coords - dw MenuData2_0x484f9 - db 1 ; default option -; 0x484f9 - -MenuData2_0x484f9: ; 0x484f9 - db $a0 ; flags - db 2 ; items -Strings_484fb: -String_484fb: db "Boy@" -String_484ff: db "Girl@" -; 0x48504 - -MenuDataHeader_0x48504: ; 0x48504 - db $40 ; flags - db 00, 10 ; start coords - db 17, 19 ; end coords - -MenuDataHeader_0x48509: ; 0x48509 - db $40 ; flags - db 05, 10 ; start coords - db 07, 19 ; end coords - -MenuDataHeader_0x4850e: ; 0x4850e - db $40 ; flags - db 09, 10 ; start coords - db 11, 19 ; end coords - -MenuDataHeader_0x48513: ; 0x48513 - db $40 ; flags - db 01, 11 ; start coords - db 12, 18 ; end coords - dw MenuData2_0x4851b - db 1 ; default option -; 0x4851b - -MenuData2_0x4851b: ; 0x4851b - db $1d ; flags - db 6 ; items - -Unknown_4851d: ; 4851d - db $00, $01, $12, $2b, $45, $12, $e8, $43, $00, $00, $00, $00, $00, $00, $2e, $00, $01, $02, $03, $04 - db $05, $06, $07, $08, $09, $0a, $0b, $0c, $0d, $0e, $0f, $10, $11, $12, $13, $14, $15, $16, $17, $18 - db $19, $1a, $1b, $1c, $1d, $1e, $1f, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $2a, $2b, $2c - db $2d, $ff - -Prefectures: -Aichi: db "あいちけん@" ; Aichi -Aomori: db "あおもりけん@" ; Aomori -Akita: db "あきたけん@" ; Akita -Ishikawa: db "いしかわけん@" ; Ishikawa -Ibaraki: db "いばらきけん@" ; Ibaraki -Iwate: db "いわてけん@" ; Iwate -Ehime: db "えひめけん@" ; Ehime -Oita: db "おおいたけん@" ; Oita -Osakafu: db "おおさかふ@" ; Osakafu -Okayama: db "おかやまけん@" ; Okayama -Okinawa: db "おきなわけん@" ; Okinawa -Kagawa: db "かがわけん@" ; Kagawa -Kagoshima: db "かごしまけん@" ; Kagoshima -Kanagawa: db "かながわけん@" ; Kanagawa -Gifu: db "ぎふけん@" ; Gifu -Kyotofu: db "きょうとふ@" ; Kyotofu -Kumamoto: db "くまもとけん@" ; Kumamoto -Gunma: db "ぐんまけん@" ; Gunma -Kochi: db "こうちけん@" ; Kochi -Saitama: db "さいたまけん@" ; Saitama -Saga: db "さがけん@" ; Saga -Shiga: db "しがけん@" ; Shiga -Shizuoka: db "しずおかけん@" ; Shizuoka -Shimane: db "しまねけん@" ; Shimane -Chiba: db "ちばけん@" ; Chiba -Tokyo: db "とうきょうと@" ; Tokyo -Tokushima: db "とくしまけん@" ; Tokushima -Tochigi: db "とちぎけん@" ; Tochigi -Tottori: db "とっとりけん@" ; Tottori -Toyama: db "とやまけん@" ; Toyama -Nagasaki: db "ながさきけん@" ; Nagasaki -Nagano: db "ながのけん@" ; Nagano -Naraken: db "ならけん@" ; Naraken -Niigata: db "にいがたけん@" ; Niigata -Hyogo: db "ひょうごけん@" ; Hyogo -Hiroshima: db "ひろしまけん@" ; Hiroshima -Fukui: db "ふくいけん@" ; Fukui -Fukuoka: db "ふくおかけん@" ; Fukuoka -Fukushima: db "ふくしまけん@" ; Fukushima -Hokkaido: db "ほっかいどう@" ; Hokkaido -Mie: db "みえけん@" ; Mie -Miyagi: db "みやぎけん@" ; Miyagi -Miyazaki: db "みやざきけん@" ; Miyazaki -Yamagata: db "やまがたけん@" ; Yamagata -Yamaguchi: db "やまぐちけん@" ; Yamaguchi -Yamanashi: db "やまなしけん@" ; Yamanashi -Wakayama: db "わかやまけん@" ; Wakayama -; 48689 - -Function48689: ; 48689 (12:4689) - ld c, 7 - call DelayFrames - ld b, $1 - call Function4930f - call ClearBGPalettes - hlcoord 0, 0 - ld b, $4 - ld c, $14 - call ClearBox - hlcoord 0, 2 - ld a, $c - ld [hl], a - ld bc, $13 - add hl, bc - ld [hl], a - ld de, MobileProfileString - hlcoord 1, 2 - call PlaceString - hlcoord 0, 4 - ld b, $8 - ld c, $12 - call Function48cdc - ret - -Function486bf: ; 486bf (12:46bf) - ld hl, wcfa1 - ld a, [wd002] - bit 6, a - jr nz, .asm_486ce - ld a, $4 - ld [hli], a - jr .asm_486d1 -.asm_486ce - ld a, $6 - ld [hli], a -.asm_486d1 - ld a, $1 - ld [hli], a - ld a, [wd002] - bit 6, a - jr nz, .asm_486e7 - call Function48725 - ld a, $4 - jr nc, .asm_486e4 - ld a, $5 -.asm_486e4 - ld [hli], a - jr .asm_486fb -.asm_486e7 - ld a, [wd479] - bit 1, a - jr nz, .asm_486f8 - call Function48725 - jr c, .asm_486f8 - ld a, $3 - ld [hli], a - jr .asm_486fb -.asm_486f8 - ld a, $4 - ld [hli], a -.asm_486fb - ld a, $1 - ld [hli], a - ld [hl], $0 - set 5, [hl] - inc hl - xor a - ld [hli], a - ld a, $20 - ld [hli], a - ld a, $1 - add $40 - add $80 - push af - ld a, [wd002] - bit 6, a - jr z, .asm_4871a - pop af - add $2 - push af -.asm_4871a - pop af - ld [hli], a - ld a, $1 -rept 2 - ld [hli], a -endr - xor a -rept 3 - ld [hli], a -endr - ret - -Function48725: ; 48725 (12:4725) - ld a, [wd003] - bit 0, a - jr z, .asm_4873a - bit 1, a - jr z, .asm_4873a - bit 2, a - jr z, .asm_4873a - bit 3, a - jr z, .asm_4873a - scf - ret -.asm_4873a - and a - ret - -Function4873c: ; 4873c (12:473c) - ld hl, wcfa1 - ld a, $4 - ld [hli], a - ld a, $c - ld [hli], a - ld a, $2 - ld [hli], a - ld a, $1 - ld [hli], a - ld [hl], $0 - set 5, [hl] - inc hl - xor a - ld [hli], a - ld a, $20 - ld [hli], a - ld a, $1 - add $2 - ld [hli], a - ld a, [PlayerGender] - and a - jr z, .asm_48764 - ld a, $2 - jr .asm_48766 -.asm_48764 - ld a, $1 -.asm_48766 - ld [hli], a - ld a, $1 - ld [hli], a - xor a -rept 3 - ld [hli], a -endr - ret - -Function4876f: ; 4876f (12:476f) - call Function48283 - hlcoord 1, 16 - ld de, String_484be - call PlaceString - ld hl, MenuDataHeader_0x48509 - call LoadMenuDataHeader - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - hlcoord 10, 5 - ld b, $1 - ld c, $8 - call Function48cdc - call WaitBGMap - ld a, [wd473] - and a - jr z, .asm_487ab - cp $64 - jr z, .asm_487b2 - hlcoord 12, 5 - ld [hl], $10 - hlcoord 12, 7 - ld [hl], $11 - jr .asm_487b7 -.asm_487ab - hlcoord 12, 5 - ld [hl], $10 - jr .asm_487b7 -.asm_487b2 - hlcoord 12, 7 - ld [hl], $11 -.asm_487b7 - hlcoord 11, 6 - call Function487ec - ld c, 10 - call DelayFrames - ld a, [wd473] - push af -.asm_487c6 - call JoyTextDelay - call Function4880e - jr nc, .asm_487c6 - ld a, $1 - call Function1ff8 - pop bc - jr nz, .asm_487da - ld a, b - ld [wd473], a -.asm_487da - ld a, [wd473] - call ExitMenu - hlcoord 11, 6 - call Function487ec - pop af - ld [hInMenu], a - jp Function4840c - -Function487ec: ; 487ec (12:47ec) - push hl - ld de, wd473 - call Function487ff - pop hl -rept 4 - inc hl -endr - ld de, String_4880d - call PlaceString - ret - -Function487ff: ; 487ff (12:47ff) - push hl - ld a, " " - ld [hli], a - ld [hl], a - pop hl - ld b, PRINTNUM_LEADINGZEROS | 1 - ld c, 3 - call PrintNum - ret -; 4880d (12:480d) - -String_4880d: ; 4880d - db "@" -; 4880e - -Function4880e: ; 4880e (12:480e) - ld a, [hJoyPressed] - and A_BUTTON - jp nz, Function488b9 - ld a, [hJoyPressed] - and B_BUTTON - jp nz, Function488b4 - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .asm_48843 - ld a, [hl] - and D_DOWN - jr nz, .asm_48838 - ld a, [hl] - and D_LEFT - jr nz, .asm_4884f - ld a, [hl] - and D_RIGHT - jr nz, .asm_4885f - call DelayFrame - and a - ret -.asm_48838 - ld hl, wd473 - ld a, [hl] - and a - jr z, .asm_48840 - dec a -.asm_48840 - ld [hl], a - jr .asm_4886f -.asm_48843 - ld hl, wd473 - ld a, [hl] - cp $64 - jr nc, .asm_4884c - inc a -.asm_4884c - ld [hl], a - jr .asm_4886f -.asm_4884f - ld a, [wd473] - cp $5b - jr c, .asm_48858 - ld a, $5a -.asm_48858 - add $a - ld [wd473], a - jr .asm_4886f -.asm_4885f - ld a, [wd473] - cp $a - jr nc, .asm_48868 - ld a, $a -.asm_48868 - sub $a - ld [wd473], a - jr .asm_4886f -.asm_4886f - ld a, [wd473] - and a - jr z, .asm_48887 - cp $64 - jr z, .asm_48898 - jr z, .asm_488a7 - hlcoord 12, 5 - ld [hl], $10 - hlcoord 12, 7 - ld [hl], $11 - jr .asm_488a7 -.asm_48887 - hlcoord 10, 5 - ld b, $1 - ld c, $8 - call Function48cdc - hlcoord 12, 5 - ld [hl], $10 - jr .asm_488a7 -.asm_48898 - hlcoord 10, 5 - ld b, $1 - ld c, $8 - call Function48cdc - hlcoord 12, 7 - ld [hl], $11 -.asm_488a7 - hlcoord 11, 6 - call Function487ec - call WaitBGMap - ld a, $1 - and a - ret - -Function488b4: ; 488b4 (12:48b4) - ld a, $0 - and a - scf - ret - -Function488b9: ; 488b9 (12:48b9) - ld a, [wd003] - set 1, a - ld [wd003], a - scf - ret -; 488c3 (12:48c3) - -GFX_488c3: ; 488c3 -INCBIN "gfx/unknown/0488c3.2bpp" - -GFX_488cb: ; 488cb -INCBIN "gfx/unknown/0488cb.2bpp" - -Function488d3: ; 488d3 (12:48d3) - call Function48283 - hlcoord 1, 16 - ld de, String_484e2 - call PlaceString - call Function48a3a - jp c, Function4840c - ld hl, MenuDataHeader_0x4850e - call LoadMenuDataHeader - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - hlcoord 10, 9 - ld b, $1 - ld c, $8 - call Function48cdc - ld a, [wd475] - and $f - ld d, $0 - hlcoord 11, 10 - call Function489ea - call WaitBGMap - ld a, [wd475] - ld b, a - ld a, [wd476] - ld c, a - ld a, [wd477] - ld d, a - ld a, [wd478] - ld e, a - push de - push bc - ld d, $0 - ld b, $0 - -asm_48922: ; 48922 (12:4922) - push bc - call JoyTextDelay - ld a, [hJoyDown] - and a - jp z, Function4896e - bit 0, a - jp nz, Function4896e - bit 1, a - jp nz, Function4896e - ld a, [wd002] - and %11001111 - res 7, a - ld [wd002], a - pop bc - inc b - ld a, b - cp $5 - push bc - jr c, .asm_4894c - pop bc - ld b, $4 - push bc -.asm_4894c - pop bc - push bc - ld a, b - cp $4 - jr nz, asm_48972 - ld c, 10 - call DelayFrames - jr asm_48972 -; 4895a (12:495a) - -Function4895a: ; 4895a - ld a, [hJoyPressed] - and a - jr z, .asm_48965 - pop bc - ld b, $1 - push bc - jr asm_48972 - -.asm_48965 - ld a, [hJoyLast] - and a - jr z, asm_48972 - - pop bc - ld b, $1 - push bc - -Function4896e: ; 4896e (12:496e) - pop bc - ld b, $0 - push bc - -asm_48972: ; 48972 (12:4972) - call Function48ab5 - push af - cp $f0 - jr z, .asm_48994 - cp $f - jr nz, .asm_48988 - ld a, [wd002] - set 7, a - and $cf - ld [wd002], a -.asm_48988 - hlcoord 11, 10 - ld b, $0 - ld c, d - add hl, bc - ld b, $3 - call Function48c11 -.asm_48994 - call WaitBGMap - pop af - pop bc - jr nc, asm_48922 - jr nz, .asm_489b1 - pop bc - ld a, b - ld [wd475], a - ld a, c - ld [wd476], a - pop bc - ld a, b - ld [wd477], a - ld a, c - ld [wd478], a - jr .asm_489c5 -.asm_489b1 - push af - ld a, [wd479] - set 0, a - ld [wd479], a - ld a, [wd003] - set 3, a - ld [wd003], a - pop af - pop bc - pop bc -.asm_489c5 - push af - push bc - push de - push hl - ld a, $1 - call Function1ff8 - pop hl - pop de - pop bc - pop af - call ExitMenu - hlcoord 11, 10 - call Function489ea - hlcoord 11, 9 - lb bc, 1, 8 - call ClearBox - pop af - ld [hInMenu], a - jp Function4840c - -Function489ea: ; 489ea (12:49ea) - push de - ld a, [wd475] - and $f - call Function48444 - ld a, [wd476] - and $f0 - swap a - inc hl - call Function48444 - ld a, [wd476] - and $f - inc hl - call Function48444 - inc hl - ld de, String_48a38 - call PlaceString - ld a, [wd477] - and $f0 - swap a - inc hl - call Function48444 - ld a, [wd477] - and $f - inc hl - call Function48444 - ld a, [wd478] - and $f0 - swap a - inc hl - call Function48444 - ld a, [wd478] - and $f - inc hl - call Function48444 - pop de - ret -; 48a38 (12:4a38) - -String_48a38: ; 48a38 - db "-@" -; 48a3a - -Function48a3a: ; 48a3a (12:4a3a) - ld hl, MenuDataHeader_0x48a9c - call LoadMenuDataHeader - call Function4873c - ld a, $a - ld [wcfa1], a - ld a, $b - ld [wcfa2], a - ld a, $1 - ld [MenuSelection2], a - hlcoord 10, 8 - ld b, $4 - ld c, $8 - call Function48cdc - hlcoord 12, 10 - ld de, String_48aa1 - call PlaceString - call Function1bc9 - push af - call PlayClickSFX - call ExitMenu - pop af - bit 1, a - jp nz, Function48a9a - ld a, [MenuSelection2] - cp $1 - jr z, .asm_48a98 - ld a, [wd003] - set 3, a - ld [wd003], a - ld a, [wd479] - res 0, a - ld [wd479], a - xor a - ld bc, $4 - ld hl, wd475 - call ByteFill - jr Function48a9a -.asm_48a98 - and a - ret - -Function48a9a: ; 48a9a (12:4a9a) - scf - ret -; 48a9c (12:4a9c) - -MenuDataHeader_0x48a9c: ; 0x48a9c - db $40 ; flags - db 08, 10 ; start coords - db 13, 19 ; end coord - -String_48aa1: ; 48aa1 - db "Tell Now" - next "Tell Later@" -; 48ab5 - - -Function48ab5: ; 48ab5 (12:4ab5) - ld a, [hJoyPressed] - and A_BUTTON - jp nz, Function48c0f - ld a, [hJoyPressed] - and B_BUTTON - jp nz, Function48c0d - ld a, d - and a - jr z, .asm_48adf - cp $1 - jr z, .asm_48ae7 - cp $2 - jr z, .asm_48af1 - cp $3 - jr z, .asm_48af9 - cp $4 - jr z, .asm_48b03 - cp $5 - jr z, .asm_48b0b - cp $6 - jr .asm_48b15 -.asm_48adf - ld hl, wd475 - ld a, [hl] - and $f - jr .asm_48b1d -.asm_48ae7 - ld hl, wd476 - ld a, [hl] - swap a - or $f0 - jr .asm_48b1d -.asm_48af1 - ld hl, wd476 - ld a, [hl] - and $f - jr .asm_48b1d -.asm_48af9 - ld hl, wd477 - ld a, [hl] - swap a - or $f0 - jr .asm_48b1d -.asm_48b03 - ld hl, wd477 - ld a, [hl] - and $f - jr .asm_48b1d -.asm_48b0b - ld hl, wd478 - ld a, [hl] - swap a - or $f0 - jr .asm_48b1d -.asm_48b15 - ld hl, wd478 - ld a, [hl] - and $f - jr .asm_48b1d -.asm_48b1d - push hl - push af - ld e, $0 - hlcoord 11, 10 - ld a, d -.asm_48b25 - and a - jr z, .asm_48b2c - inc e - dec a - jr .asm_48b25 -.asm_48b2c - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .asm_48b8d - ld a, [hl] - and D_DOWN - jr nz, .asm_48b55 - ld a, [hl] - and D_LEFT - jp nz, Function48bd7 - ld a, [hl] - and D_RIGHT - jr nz, .asm_48b9d - hlcoord 11, 10 - call Function489ea - ld a, [wd002] - bit 7, a - jr nz, .asm_48b51 -.asm_48b51 - pop bc - pop bc - and a - ret -.asm_48b55 - pop af - ld b, a - and $f - and a - ld a, b - jr nz, .asm_48b61 - and $f0 - add $a -.asm_48b61 - dec a -.asm_48b62 - push de - push af - hlcoord 10, 9 - ld b, $1 - ld c, $8 - call Function48cdc - pop af - pop de - hlcoord 11, 10 - ld b, a - ld a, d - cp $3 - jr c, .asm_48b7a - inc hl -.asm_48b7a - ld a, b - pop hl - bit 7, a - jr z, .asm_48b85 - call Function48c4d - jr .asm_48b88 -.asm_48b85 - call Function48c5a -.asm_48b88 - ld a, $f0 - jp Function48c00 -.asm_48b8d - pop af - ld b, a - and $f - cp $9 - ld a, b - jr c, .asm_48b9a - and $f0 - add $ff -.asm_48b9a - inc a - jr .asm_48b62 -.asm_48b9d - push de - hlcoord 10, 9 - ld b, $1 - ld c, $8 - call Function48cdc - pop de - ld a, d - cp $6 - jr nc, .asm_48baf - inc d -.asm_48baf - pop af - pop hl - ld b, a - ld a, d - cp $6 - ld a, b - jr z, .asm_48bc4 - bit 7, a - jr nz, .asm_48bc4 - inc hl - ld a, [hl] - swap a - and $f - jr asm_48bc7 -.asm_48bc4 - ld a, [hl] - and $f - -asm_48bc7: ; 48bc7 (12:4bc7) - hlcoord 11, 10 - push af - ld a, d - cp $3 - pop bc - ld a, b - jr c, .asm_48bd3 - inc hl -.asm_48bd3 - ld a, $f - jr Function48c00 - -Function48bd7: ; 48bd7 (12:4bd7) - push de - hlcoord 10, 9 - ld b, $1 - ld c, $8 - call Function48cdc - pop de - ld a, d - and a - pop af - pop hl - ld b, a - ld a, d - and a - ld a, b - jr z, .asm_48bf3 - bit 7, a - jr z, .asm_48bf8 - dec d - dec hl -.asm_48bf3 - ld a, [hl] - and $f - jr asm_48bc7 -.asm_48bf8 - dec d - ld a, [hl] - swap a - and $f - jr asm_48bc7 - -Function48c00: ; 48c00 (12:4c00) - push af - hlcoord 11, 10 - call Function489ea - ld a, $1 - and a - pop bc - ld a, b - ret - -Function48c0d: ; 48c0d (12:4c0d) - xor a - and a - -Function48c0f: ; 48c0f (12:4c0f) - scf - ret - -Function48c11: ; 48c11 (12:4c11) - ld a, [wd002] - bit 7, a - jr z, .asm_48c20 - ld a, d - cp $3 - jr c, .asm_48c1e - inc hl -.asm_48c1e - ld [hl], $7f -.asm_48c20 - ld a, [wd002] - swap a - and $3 - inc a - cp b - jr nz, .asm_48c40 - ld a, [wd002] - bit 7, a - jr z, .asm_48c3a - res 7, a - ld [wd002], a - xor a - jr .asm_48c40 -.asm_48c3a - set 7, a - ld [wd002], a - xor a -.asm_48c40 - swap a - ld b, a - ld a, [wd002] - and $cf - or b - ld [wd002], a - ret - -Function48c4d: ; 48c4d (12:4c4d) - swap a - and $f0 - push af - ld a, [hl] - and $f - ld [hl], a - pop af - or [hl] - ld [hl], a - ret - -Function48c5a: ; 48c5a (12:4c5a) - push af - ld a, [hl] - and $f0 - ld [hl], a - pop af - or [hl] - ld [hl], a - ret - -Function48c63: ; 48c63 - ld a, "@" - ld [de], a - ld a, c - cp $30 - jr nc, .asm_48c8c - and a - jr z, .asm_48c8c - dec c - push de - ld h, d - ld l, e - ld a, "@" - ld b, 7 -.asm_48c76 - ld [hli], a - dec b - jr nz, .asm_48c76 - ld hl, Prefectures - ld a, c - call GetNthString -.asm_48c81 - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - cp "@" - jr nz, .asm_48c81 - and a - pop de - ret - -.asm_48c8c - scf - ret -; 48c8e - -Function48c8e: ; 48c8e - ld hl, wd02a - ld d, h - ld e, l - callba Function48c63 - hlcoord 10, 7 - call PlaceString - call WaitBGMap - ret -; 48ca3 - -Function48ca3: ; 48ca3 - push af - push bc - push de - push hl - ld b, 0 - ld c, 0 - ld d, 0 -.asm_48cad - cp 100 - jr c, .asm_48cb6 - sub 100 - inc b - jr .asm_48cad - -.asm_48cb6 - cp 10 - jr c, .asm_48cbf - sub 10 - inc c - jr .asm_48cb6 - -.asm_48cbf - cp 1 - jr c, .asm_48cc7 - dec a - inc d - jr .asm_48cbf - -.asm_48cc7 - ld a, b - call Function48444 - inc hl - ld a, c - call Function48444 - inc hl - ld a, d - call Function48444 - pop hl - pop de - pop bc - pop af - ret -; 48cda - -Function48cda: ; 48cda (12:4cda) - ld h, d - ld l, e - -Function48cdc: ; 48cdc (12:4cdc) - push bc - push hl - call Function48cfd - pop hl - pop bc - ld de, AttrMap - TileMap - add hl, de -rept 2 - inc b -endr -rept 2 - inc c -endr - ld a, $0 -.asm_48ced - push bc - push hl -.asm_48cef - ld [hli], a - dec c - jr nz, .asm_48cef - pop hl - ld de, $14 - add hl, de - pop bc - dec b - jr nz, .asm_48ced - ret - -Function48cfd: ; 48cfd (12:4cfd) - push hl - ld a, $4 - ld [hli], a - inc a - call Function48d2a - inc a - ld [hl], a - pop hl - ld de, $14 - add hl, de -.asm_48d0c - push hl - ld a, $7 - ld [hli], a - ld a, $7f - call Function48d2a - ld [hl], $8 - pop hl - ld de, $14 - add hl, de - dec b - jr nz, .asm_48d0c - ld a, $9 - ld [hli], a - ld a, $a - call Function48d2a - ld [hl], $b - ret - -Function48d2a: ; 48d2a (12:4d2a) - ld d, c -.asm_48d2b - ld [hli], a - dec d - jr nz, .asm_48d2b - ret - -Function48d30: ; 48d30 (12:4d30) - ld hl, wd475 - call Function48d4a - ld hl, wd477 - call Function48d4a - ret - -Function48d3d: ; 48d3d (12:4d3d) - ld hl, wd475 - call Function48d94 - ld hl, wd477 - call Function48d94 - ret - -Function48d4a: ; 48d4a (12:4d4a) - inc hl - ld a, [hl] - ld b, a - and $f - ld c, a - srl b - srl b - srl b - srl b - push bc - ld c, 10 - ld a, b - call SimpleMultiply - pop bc - add c - ld [hld], a - xor a - ld [hMultiplicand + 0], a - ld [hMultiplicand + 1], a - ld a, [hl] - srl a - srl a - srl a - srl a - ld c, 10 - call SimpleMultiply - ld b, a - ld a, [hli] - and $f - add b - ld [hMultiplicand + 2], a - ld a, 100 - ld [hMultiplier], a - call Multiply - ld a, [hProduct + 2] - ld b, a - ld a, [hProduct + 3] - ld c, a - ld e, [hl] - add e - ld c, a - ld a, b - adc $0 - ld b, a - ld a, c - ld [hld], a - ld [hl], b - ret - -Function48d94: ; 48d94 (12:4d94) - xor a - ld [hDividend + 0], a - ld [hDividend + 1], a - ld a, [hli] - ld [hDividend + 0], a - ld a, [hl] - ld [hDividend + 1], a - ld a, 100 - ld [hDivisor], a - ld b, 2 - call Divide - ld a, [hDivisor] - ld c, $a - call SimpleDivide - sla b - sla b - sla b - sla b - or b - ld [hld], a - ld a, [hQuotient + 2] - ld c, 10 - call SimpleDivide - sla b - sla b - sla b - sla b - or b - ld [hl], a - ret +INCLUDE "misc/mobile_12.asm" InitGender: ; 48dcb (12:4dcb) call Function48e14 @@ -22806,7 +20679,7 @@ PackFGFX: ; 48e9b INCBIN "gfx/misc/pack_f.2bpp" ; 4925b -Function4925b: ; 4925b +Special_MoveTutor: ; 4925b call FadeToMenu call ClearBGPalettes call ClearScreen @@ -23542,1606 +21415,8 @@ Unknown_4985a: ; unreferenced db $a8, $00, $b5, $b0, $de, $e8, $fc, $1c db $ba, $66, $f7, $0e, $ba, $5e, $43, $bd -Special_CelebiShrineEvent: ; 4989a - call DelayFrame - ld a, [VramState] - push af - xor a - ld [VramState], a - call LoadCelebiGFX - lb de, $07, $50 - ld a, SPRITE_ANIM_INDEX_2C - call _InitSpriteAnimStruct - ld hl, $3 - add hl, bc - ld [hl], $84 - ld hl, $2 - add hl, bc - ld [hl], $1f - ld hl, $f - add hl, bc - ld a, $80 - ld [hl], a - ld a, $a0 - ld [wcf64], a - ld d, $0 -.loop - ld a, [wJumptableIndex] - bit 7, a - jr nz, .done - push bc - call Function49bae - inc d - push de - ld a, $90 - ld [wc3b5], a - callba Function8cf7a - call Function49935 - ld c, 2 - call DelayFrames - pop de - pop bc - jr .loop - -.done - pop af - ld [VramState], a - call Function498f9 - call Function49bf3 - ret -; 498f9 - -Function498f9: ; 498f9 - ld hl, Sprites + 2 - xor a - ld c, $4 -.loop - ld [hli], a -rept 3 - inc hl -endr - inc a - dec c - jr nz, .loop - ld hl, Sprites + $10 - ld bc, $90 - xor a - call ByteFill - ret -; 49912 - -LoadCelebiGFX: ; 49912 - callba Function8cf53 - ld de, SpecialCelebiLeafGFX - ld hl, VTiles1 - lb bc, BANK(SpecialCelebiLeafGFX), 4 - call Request2bpp - ld de, SpecialCelebiGFX - ld hl, VTiles1 tile $04 - lb bc, BANK(SpecialCelebiGFX), $10 - call Request2bpp - xor a - ld [wJumptableIndex], a - ret -; 49935 - -Function49935: ; 49935 - ld hl, wcf64 - ld a, [hl] - and a - jr z, .asm_4993e - dec [hl] - ret - -.asm_4993e - ld hl, wJumptableIndex - set 7, [hl] - ret -; 49944 - -Function49944: ; 49944 - ld hl, wcf65 - ld a, [hl] - inc [hl] - and $7 - ret nz - ld a, [hl] - and $18 - sla a - add $40 - ld d, a - ld e, $0 - ld a, SPRITE_ANIM_INDEX_18 ; fly land - call _InitSpriteAnimStruct - ld hl, $3 - add hl, bc - ld [hl], $80 - ret -; 49962 - -SpecialCelebiLeafGFX: ; 49962 -INCBIN "gfx/special/celebi/leaf.2bpp" -SpecialCelebiGFX: ; 499a2 -INCBIN "gfx/special/celebi/1.2bpp" -INCBIN "gfx/special/celebi/2.2bpp" -INCBIN "gfx/special/celebi/3.2bpp" -INCBIN "gfx/special/celebi/4.2bpp" - - -Function49aa2: ; 49aa2 (12:5aa2) - ld hl, $6 - add hl, bc - ld a, [hl] - push af - ld hl, $5 - add hl, bc - ld a, [hl] - cp $52 - jp nc, Function49b30 - ld hl, $5 - add hl, bc - inc [hl] - ld hl, $f - add hl, bc - ld a, [hl] - ld d, a - cp $3a - jr c, .asm_49ac6 - jr z, .asm_49ac6 - sub $3 - ld [hl], a -.asm_49ac6 - ld hl, $e - add hl, bc - ld a, [hl] - inc [hl] - call Function49b3b - ld hl, $6 - add hl, bc - ld [hl], a - ld d, a - ld hl, $4 - add hl, bc - add [hl] - cp $5c - jr nc, .asm_49ae2 - cp $44 - jr nc, .asm_49b0d -.asm_49ae2 - pop af - push af - cp d - jr nc, .asm_49af2 - ld hl, $4 - add hl, bc - add [hl] - cp $50 - jr c, .asm_49b05 - jr .asm_49afb -.asm_49af2 - ld hl, $4 - add hl, bc - add [hl] - cp $50 - jr nc, .asm_49b05 -.asm_49afb - ld hl, $5 - add hl, bc - ld a, [hl] - sub $2 - ld [hl], a - jr .asm_49b0d -.asm_49b05 - ld hl, $5 - add hl, bc - ld a, [hl] - add $1 - ld [hl], a -.asm_49b0d - pop af - ld hl, $4 - add hl, bc - add [hl] - cp $50 - jr c, .asm_49b26 - cp $e6 - jr nc, .asm_49b26 - ld hl, $1 - add hl, bc - ld a, $41 - call Function3b3c - jr .asm_49b2f -.asm_49b26 - ld hl, $1 - add hl, bc - ld a, $40 - call Function3b3c -.asm_49b2f - ret - -Function49b30: ; 49b30 (12:5b30) - pop af - ld hl, $1 - add hl, bc - ld a, $40 - call Function3b3c - ret - -Function49b3b: ; 49b3b (12:5b3b) - add $10 - and $3f - cp $20 - jr nc, .asm_49b48 - call Function49b52 - ld a, h - ret -.asm_49b48 - and $1f - call Function49b52 - ld a, h - xor $ff - inc a - ret - -Function49b52: ; 49b52 (12:5b52) - ld e, a - ld a, d - ld d, $0 - ld hl, Unknown_49b6e -rept 2 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - ld hl, 0 -.asm_49b61 - srl a - jr nc, .asm_49b66 - add hl, de -.asm_49b66 - sla e - rl d - and a - jr nz, .asm_49b61 - ret -; 49b6e (12:5b6e) - -Unknown_49b6e: ; 49b6e - sine_wave $100 -; 49bae - -Function49bae: ; 49bae - push hl - push bc - push de - ld a, d - ld d, $3 - ld e, d - cp $0 - jr z, .asm_49bd0 - cp d - jr z, .asm_49bd4 - call Function49bed - cp d - jr z, .asm_49bd8 - call Function49bed - cp d - jr z, .asm_49bdc - call Function49bed - cp d - jr c, .asm_49be9 - jr .asm_49be5 - -.asm_49bd0 - ld a, $84 - jr .asm_49bde - -.asm_49bd4 - ld a, $88 - jr .asm_49bde - -.asm_49bd8 - ld a, $8c - jr .asm_49bde - -.asm_49bdc - ld a, $90 - -.asm_49bde - ld hl, $3 - add hl, bc - ld [hl], a - jr .asm_49be9 - -.asm_49be5 - pop de - ld d, $ff - push de - -.asm_49be9 - pop de - pop bc - pop hl - ret -; 49bed - -Function49bed: ; 49bed - push af - ld a, d - add e - ld d, a - pop af - ret -; 49bf3 - -Function49bf3: ; 49bf3 - ld a, BATTLETYPE_CELEBI - ld [BattleType], a - ret -; 49bf9 - -Function49bf9: ; 49bf9 - ld a, [wBattleResult] - bit 6, a - jr z, .asm_49c07 - ld a, $1 - ld [ScriptVar], a - jr .asm_49c0b - -.asm_49c07 - xor a - ld [ScriptVar], a - -.asm_49c0b - ret -; 49c0c - -GFX_49c0c: ; 49c0c -INCBIN "gfx/unknown/049c0c.2bpp" -; 49cdc - -MainMenu: ; 49cdc - xor a - ld [wc2d7], a - call Function49ed0 - ld b, SCGB_08 - call GetSGBLayout - call SetPalettes - ld hl, GameTimerPause - res 0, [hl] - call Function49da4 - ld [wcf76], a - call Function49e09 - ld hl, MenuDataHeader_0x49d14 - call LoadMenuDataHeader - call Function49de4 - call WriteBackup - jr c, .quit - call ClearTileMap - ld a, [MenuSelection] - ld hl, Jumptable_49d60 - rst JumpTable - jr MainMenu - -.quit - ret -; 49d14 - -MenuDataHeader_0x49d14: ; 49d14 - db $40 ; flags - db 00, 00 ; start coords - db 07, 16 ; end coords - dw MenuData2_0x49d1c - db 1 ; default option -; 49d1c - -MenuData2_0x49d1c: ; 49d1c - db $80 ; flags - db 0 ; items - dw MainMenuItems - dw Function1f79 - dw MainMenuText -; 49d20 - -MainMenuText: ; 49d24 - db "CONTINUE@" - db "NEW GAME@" - db "OPTION@" - db "MYSTERY GIFT@" - db "MOBILE@" - db "MOBILE STUDIUM@" - -Jumptable_49d60: ; 0x49d60 - dw MainMenu_Continue - dw MainMenu_NewGame - dw MainMenu_Options - dw MainMenu_MysteryGift - dw MainMenu_Mobile - dw MainMenu_MobileStudium -; 0x49d6c - -CONTINUE EQU 0 -NEW_GAME EQU 1 -OPTION EQU 2 -MYSTERY_GIFT EQU 3 -MOBILE EQU 4 -MOBILE_STUDIUM EQU 5 - -MainMenuItems: - -NewGameMenu: ; 0x49d6c - db 2 - db NEW_GAME - db OPTION - db $ff - -ContinueMenu: ; 0x49d70 - db 3 - db CONTINUE - db NEW_GAME - db OPTION - db $ff - -MobileMysteryMenu: ; 0x49d75 - db 5 - db CONTINUE - db NEW_GAME - db OPTION - db MYSTERY_GIFT - db MOBILE - db $ff - -MobileMenu: ; 0x49d7c - db 4 - db CONTINUE - db NEW_GAME - db OPTION - db MOBILE - db $ff - -MobileStudiumMenu: ; 0x49d82 - db 5 - db CONTINUE - db NEW_GAME - db OPTION - db MOBILE - db MOBILE_STUDIUM - db $ff - -MysteryMobileStudiumMenu: ; 0x49d89 - db 6 - db CONTINUE - db NEW_GAME - db OPTION - db MYSTERY_GIFT - db MOBILE - db MOBILE_STUDIUM - db $ff - -MysteryMenu: ; 0x49d91 - db 4 - db CONTINUE - db NEW_GAME - db OPTION - db MYSTERY_GIFT - db $ff - -MysteryStudiumMenu: ; 0x49d97 - db 5 - db CONTINUE - db NEW_GAME - db OPTION - db MYSTERY_GIFT - db MOBILE_STUDIUM - db $ff - -StudiumMenu: ; 0x49d9e - db 4 - db CONTINUE - db NEW_GAME - db OPTION - db MOBILE_STUDIUM - db $ff - - -Function49da4: ; 49da4 - nop - nop - nop - ld a, [wcfcd] - and a - jr nz, .next - ld a, $0 - ret - -.next - ld a, [hCGB] - cp $1 - ld a, $1 - ret nz - ld a, BANK(s0_abe5) - call GetSRAMBank - ld a, [s0_abe5] - cp $ff - call CloseSRAM - jr nz, .done - ld a, [StatusFlags] - bit 7, a - ld a, $1 - jr z, .ok - jr .ok - -.ok - jr .ok2 - -.ok2 - ld a, $1 - ret - -.done - ld a, [StatusFlags] - bit 7, a - jr z, .ok3 - jr .ok3 - -.ok3 - jr .ok4 - -.ok4 - ld a, $6 - ret -; 49de4 - -Function49de4: ; 49de4 - call SetUpMenu -.asm_49de7 - call Function49e09 - ld a, [wcfa5] - set 5, a - ld [wcfa5], a - call Function1f1a - ld a, [wcf73] - cp $2 - jr z, .asm_49e07 - cp $1 - jr z, .asm_49e02 - jr .asm_49de7 - -.asm_49e02 - call PlayClickSFX - and a - ret - -.asm_49e07 - scf - ret -; 49e09 - -Function49e09: ; 49e09 - ld a, [wcfcd] - and a - ret z - xor a - ld [hBGMapMode], a - call Function49e27 - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - call Function49e3d - pop af - ld [Options], a - ld a, $1 - ld [hBGMapMode], a - ret -; 49e27 - - -Function49e27: ; 49e27 - call Function6e3 - and $80 - jr nz, .asm_49e39 - hlcoord 0, 14 - ld b, $2 - ld c, $12 - call TextBox - ret - -.asm_49e39 - call SpeechTextBox - ret -; 49e3d - - -Function49e3d: ; 49e3d - ld a, [wcfcd] - and a - ret z - call Function6e3 - and $80 - jp nz, Function49e75 - call UpdateTime - call GetWeekday - ld b, a - decoord 1, 15 - call Function49e91 - decoord 4, 16 - ld a, [hHours] - ld c, a - callba PrintHour - ld [hl], ":" - inc hl - ld de, hMinutes - lb bc, PRINTNUM_LEADINGZEROS | 1, 2 - call PrintNum - ret -; 49e70 - -; 49e70 - db "min.@" -; 49e75 - -Function49e75: ; 49e75 - hlcoord 1, 14 - ld de, .TimeNotSet - call PlaceString - ret -; 49e7f - -.TimeNotSet ; 49e7f - db "TIME NOT SET@" -; 49e8c - -UnknownText_0x49e8c: ; 49e8c - text_jump UnknownText_0x1c5182 - db "@" -; 49e91 - -Function49e91: ; 49e91 - push de - ld hl, .Days - ld a, b - call GetNthString - ld d, h - ld e, l - pop hl - call PlaceString - ld h, b - ld l, c - ld de, .Day - call PlaceString - ret -; 49ea8 - -.Days - db "SUN@" - db "MON@" - db "TUES@" - db "WEDNES@" - db "THURS@" - db "FRI@" - db "SATUR@" -.Day - db "DAY@" -; 49ed0 - -Function49ed0: ; 49ed0 - xor a - ld [hMapAnims], a - call ClearTileMap - call LoadFontsExtra - call LoadStandardFont - call ResetTextRelatedRAM - ret -; 49ee0 - - -MainMenu_NewGame: ; 49ee0 - callba NewGame - ret -; 49ee7 - -MainMenu_Options: ; 49ee7 - callba OptionsMenu - ret -; 49eee - -MainMenu_Continue: ; 49eee - callba Continue - ret -; 49ef5 - -MainMenu_MysteryGift: ; 49ef5 - callba MysteryGift - ret -; 49efc - -MainMenu_Mobile: ; 49efc - call ClearBGPalettes - ld a, MUSIC_MOBILE_ADAPTER_MENU - ld [wMapMusic], a - ld de, MUSIC_MOBILE_ADAPTER_MENU - call Function4a6c5 -Function49f0a: ; 49f0a - call ClearBGPalettes - call Function4a3a7 - call Function4a492 - call ClearBGPalettes -Function49f16: ; 49f16 - call Function4a071 - ld c, 12 - call DelayFrames - hlcoord 4, 0 - ld b, $a - ld c, $a - call Function48cdc - hlcoord 6, 2 - ld de, MobileString1 - call PlaceString - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call TextBox - xor a - ld de, String_0x49fe9 - hlcoord 1, 14 - call PlaceString - call Function3200 - call SetPalettes - call Function1bc9 - ld hl, MenuSelection2 - ld b, [hl] - push bc - jr .asm_49f5d - -.asm_49f55 - call Function1bd3 - ld hl, MenuSelection2 - ld b, [hl] - push bc - -.asm_49f5d - bit 0, a - jr nz, .asm_49f67 - bit 1, a - jr nz, .asm_49f84 - jr .asm_49f97 - -.asm_49f67 - ld hl, MenuSelection2 - ld a, [hl] - cp $1 - jp z, Function4a098 - cp $2 - jp z, Function4a0b9 - cp $3 - jp z, Function4a0c2 - cp $4 - jp z, Function4a100 - ld a, $1 - call Function1ff8 - -.asm_49f84 - pop bc - call ClearBGPalettes - call ClearTileMap - ld a, MUSIC_MAIN_MENU - ld [wMapMusic], a - ld de, MUSIC_MAIN_MENU - call Function4a6c5 - ret - -.asm_49f97 - ld hl, MenuSelection2 - ld a, [hl] - dec a - ld hl, MobileStrings2 - call GetNthString - ld d, h - ld e, l - hlcoord 1, 13 - ld b, $4 - ld c, $12 - call ClearBox - hlcoord 1, 14 - call PlaceString - jp .asm_49fb7 - -.asm_49fb7 - call Function4a071 - pop bc - ld hl, MenuSelection2 - ld [hl], b - ld b, $a - ld c, $1 - hlcoord 5, 1 - call ClearBox - jp .asm_49f55 -; 49fcc - - -MobileString1: ; 49fcc - db "めいしフ,ルダー" - next "あいさつ" - next "プロフィール" - next "せ", $1e, "い" - next "もどる" - db "@" -; 49fe9 - - -MobileStrings2: - -String_0x49fe9: ; 49fe9 - db "めいし¯つくったり" - next "ほぞんしておける フ,ルダーです@" -; 4a004 - -String_0x4a004: ; 4a004 - db "モバイルたいせんや じぶんのめいしで" - next "つかう あいさつ¯つくります@" -; 4a026 - -String_0x4a026: ; 4a026 - db "あなた%じゅうしょや ねんれいの" - next "せ", $1e, "い¯かえられます@" -; 4a042 - -String_0x4a042: ; 4a042 - db "モバイルセンター", $1d, "せつぞくするとき" - next "ひつような こと¯きめます@" -; 4a062 - -String_0x4a062: ; 4a062 - db "まえ%がめん ", $1d, "もどります" - next "@" -; 4a071 - - - -Function4a071: ; 4a071 (12:6071) - ld hl, wcfa1 - ld a, $2 - ld [hli], a - ld a, $5 - ld [hli], a - ld a, $5 - ld [hli], a - ld a, $1 - ld [hli], a - ld [hl], $0 - set 5, [hl] - inc hl - xor a - ld [hli], a - ld a, $20 - ld [hli], a - ld a, $1 - add $40 - add $80 - add $2 - ld [hli], a - ld a, $1 -rept 2 - ld [hli], a -endr - ret - -Function4a098: ; 4a098 (12:6098) - ld a, $2 - call Function1ff8 - call Function1bee - call WaitBGMap - call LoadStandardMenuDataHeader - callba Function89de0 - call Call_ExitMenu - call Function49351 - call Function4a485 - pop bc - jp Function49f16 - -Function4a0b9: ; 4a0b9 (12:60b9) - ld a, $2 - call Function1ff8 - pop bc - jp Function4a4c4 - -Function4a0c2: ; 4a0c2 (12:60c2) - ld a, $2 - call Function1ff8 - ld a, BANK(sPlayerData) - call GetSRAMBank - ld hl, sPlayerData + PlayerName - wPlayerData - ld de, PlayerName - ld bc, $6 - call CopyBytes - call CloseSRAM - callba Function150b9 - ld c, 2 - call DelayFrames - ld c, $1 - call Function4802f - push af - call ClearBGPalettes - pop af - and a - jr nz, .asm_4a0f9 - callba Function1509a -.asm_4a0f9 - ld c, 5 - call DelayFrames - jr asm_4a111 - -Function4a100: ; 4a100 (12:6100) - ld a, $2 - call Function1ff8 - call ClearBGPalettes - call Function4a13b - call ClearBGPalettes - call ClearTileMap - -asm_4a111: ; 4a111 (12:6111) - pop bc - call LoadFontsExtra - jp Function49f0a - -Function4a118: ; 4a118 (12:6118) - ld hl, wcfa1 - ld a, $1 - ld [hli], a - ld a, $d - ld [hli], a - ld a, $3 - ld [hli], a - ld a, $1 - ld [hli], a - ld [hl], $0 - set 5, [hl] - inc hl - xor a - ld [hli], a - ld a, $20 - ld [hli], a - ld a, $1 - add $2 - ld [hli], a - ld a, $1 -rept 2 - ld [hli], a -endr - ret - -Function4a13b: ; 4a13b (12:613b) - call Function4a3a7 - call Function4a492 - call Function4a373 - ld c, 10 - call DelayFrames - -Function4a149: ; 4a149 (12:6149) - hlcoord 1, 2 - ld b, $6 - ld c, $10 - call Function48cdc - hlcoord 3, 4 - ld de, String_4a1ef - call PlaceString - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call TextBox - ld a, [MenuSelection2] - dec a - ld hl, Strings_4a23d - call GetNthString - ld d, h - ld e, l - hlcoord 1, 13 - ld b, $4 - ld c, $12 - call ClearBox - hlcoord 1, 14 - call PlaceString - callba Function104148 - call SetPalettes - call Function1bc9 - ld hl, MenuSelection2 - ld b, [hl] - push bc - jr asm_4a19d - -Function4a195: ; 4a195 (12:6195) - call Function1bd3 - ld hl, MenuSelection2 - ld b, [hl] - push bc - -asm_4a19d: ; 4a19d (12:619d) - bit 0, a - jr nz, .asm_4a1a7 - bit 1, a - jr nz, .asm_4a1ba - jr .asm_4a1bc -.asm_4a1a7 - ld hl, MenuSelection2 - ld a, [hl] - cp $1 - jp z, Function4a20e - cp $2 - jp z, Function4a221 - ld a, $1 - call Function1ff8 -.asm_4a1ba - pop bc - ret -.asm_4a1bc - ld hl, MenuSelection2 - ld a, [hl] - dec a - ld hl, Strings_4a23d - call GetNthString - ld d, h - ld e, l - hlcoord 1, 13 - ld b, $4 - ld c, $12 - call ClearBox - hlcoord 1, 14 - call PlaceString - jr .asm_4a1db -.asm_4a1db - call Function4a373 - pop bc - ld hl, MenuSelection2 - ld [hl], b - lb bc, 6, 1 - hlcoord 2, 3 - call ClearBox - jp Function4a195 -; 4a1ef (12:61ef) - -String_4a1ef: ; 4a1ef - db "モバイルセンター¯えらぶ" - next "ログインパスワード¯いれる" - next "もどる@" -; 4a20e - -Function4a20e: ; 4a20e (12:620e) - ld a, $1 - call Function1ff8 - callba Function1719c8 - call ClearBGPalettes - call DelayFrame - jr Function4a239 - -Function4a221: ; 4a221 (12:6221) - ld a, $1 - call Function1ff8 - call Function4a28a - jr c, Function4a239 - call Function4a373 - ld a, $2 - ld [MenuSelection2], a - jr .asm_4a235 -.asm_4a235 - pop bc - jp Function4a149 - -Function4a239: ; 4a239 (12:6239) - pop bc - jp Function4a13b -; 4a23d (12:623d) - -Strings_4a23d: ; 4a23d - db "いつも せつぞく¯する" - next "モバイルセンター¯えらびます@" - - db "モバイルセンター", $1d, "せつぞくするとき" - next "つかうパスワード¯ほぞんできます@" - - db "まえ%がめん ", $1d, "もどります@" - - db "@" -; 4a28a - -Function4a28a: ; 4a28a (12:628a) - hlcoord 2, 3 - lb bc, 6, 1 - ld a, " " - call Function4a6d8 - call Function1bee - call WaitBGMap - call LoadStandardMenuDataHeader - ld a, $5 - call GetSRAMBank - ld a, [$aa4b] - call CloseSRAM - and a - jr z, .asm_4a2df - hlcoord 12, 0 - ld b, $5 - ld c, $6 - call Function48cdc - hlcoord 14, 1 - ld de, String_4a34b - call PlaceString - callba Function104148 - call Function4a118 - call Function1bd3 - push af - call PlayClickSFX - pop af - bit 1, a - jr nz, .asm_4a33b - ld a, [MenuSelection2] - cp $2 - jr z, .asm_4a2f0 - cp $3 - jr z, .asm_4a33b -.asm_4a2df - callba Function11765d - call ClearBGPalettes - call Call_ExitMenu - call LoadFontsExtra - scf - ret -.asm_4a2f0 - call Function1bee - ld hl, UnknownText_0x4a358 - call PrintText - hlcoord 14, 7 - ld b, $3 - ld c, $4 - call TextBox - callba Function104148 - ld hl, MenuDataHeader_0x4a362 - call LoadMenuDataHeader - call InterpretMenu2 - bit 1, a - jr nz, .asm_4a338 - ld a, [MenuSelection2] - cp $2 - jr z, .asm_4a338 - ld a, $5 - call GetSRAMBank - ld hl, $aa4b - xor a - ld bc, $11 - call ByteFill - call CloseSRAM - ld hl, UnknownText_0x4a35d - call PrintText - call JoyWaitAorB -.asm_4a338 - call ExitMenu -.asm_4a33b - call Call_ExitMenu - callba Function104148 - xor a - ret -; 4a346 (12:6346) - -MenuDataHeader_0x4a346: ; 0x4a346 - db $40 ; flags - db 00, 12 ; start coords - db 06, 19 ; end coords - -String_4a34b: ; 4a34b - db "いれなおす" - next "けす" - next "もどる@" -; 4a358 - -UnknownText_0x4a358: ; 0x4a358 - ; Delete the saved LOG-IN PASSWORD? - text_jump UnknownText_0x1c5196 - db "@" -; 0x4a35d - -UnknownText_0x4a35d: ; 0x4a35d - ; Deleted the LOG-IN PASSWORD. - text_jump UnknownText_0x1c51b9 - db "@" -; 0x4a362 - -MenuDataHeader_0x4a362: ; 0x4a362 - db $40 ; flags - db 07, 14 ; start coords - db 11, 19 ; end coords - dw MenuData2_0x4a36a - db 2 ; default option -; 0x4a36a - -MenuData2_0x4a36a: ; 0x4a36a - db $e0 ; flags - db 2 ; items - db "はい@" - db "いいえ@" -; 0x4a373 - -Function4a373: ; 4a373 (12:6373) - ld hl, wcfa1 - ld a, $4 - ld [hli], a - ld a, $2 - ld [hli], a - ld a, $3 - ld [hli], a - ld a, $1 - ld [hli], a - ld [hl], $0 - set 5, [hl] - inc hl - xor a - ld [hli], a - ld a, $20 - ld [hli], a - ld a, $1 - add $40 - add $80 - add $2 - ld [hli], a - ld a, $1 -rept 2 - ld [hli], a -endr - ret -; 4a39a (12:639a) - -Function4a39a: ; 4a39a - call Function4a485 - call Function4a492 - call Function4a3aa - call SetPalettes - ret -; 4a3a7 - -Function4a3a7: ; 4a3a7 (12:63a7) - call Function4a485 -Function4a3aa: ; 4a3aa - hlcoord 0, 0 - lb bc, 3, 1 - xor a - call Function4a6d8 - lb bc, 1, 1 - ld a, $1 - call Function4a6d8 - lb bc, 1, 1 - xor a - call Function4a6d8 - lb bc, 1, 1 - ld a, $1 - call Function4a6d8 - lb bc, 4, 1 - ld a, $2 - call Function4a6d8 - lb bc, 1, 1 - ld a, $3 - call Function4a6d8 - lb bc, 1, 1 - ld a, " " - call Function4a6d8 - hlcoord 1, 0 - ld a, $1 - lb bc, 3, 18 - call Function4a6d8 - lb bc, 1, 18 - ld a, $0 - call Function4a6d8 - lb bc, 1, 18 - ld a, $1 - call Function4a6d8 - lb bc, 1, 18 - ld a, $2 - call Function4a6d8 - lb bc, 11, 18 - ld a, " " - call Function4a6d8 - hlcoord 19, 0 - lb bc, 3, 1 - ld a, $0 - call Function4a6d8 - lb bc, 1, 1 - ld a, $1 - call Function4a6d8 - lb bc, 1, 1 - xor a - call Function4a6d8 - lb bc, 1, 1 - ld a, $1 - call Function4a6d8 - lb bc, 4, 1 - ld a, $2 - call Function4a6d8 - lb bc, 1, 1 - ld a, $3 - call Function4a6d8 - lb bc, 1, 1 - ld a, " " - call Function4a6d8 - ret -; 4a449 (12:6449) - -Function4a449: ; 4a449 - ld bc, 3 * SCREEN_WIDTH - ld a, $0 - hlcoord 0, 0 - call ByteFill - ld bc, 2 * SCREEN_WIDTH - ld a, $1 - call ByteFill - ld bc, 2 * SCREEN_WIDTH - ld a, $0 - call ByteFill - ld bc, 2 * SCREEN_WIDTH - ld a, $1 - call ByteFill - ld bc, SCREEN_WIDTH - ld a, $2 - call ByteFill - ld bc, SCREEN_WIDTH - ld a, $3 - call ByteFill - ld bc, SCREEN_WIDTH - ld a, " " - call ByteFill - ret -; 4a485 - -Function4a485: ; 4a485 (12:6485) - ld de, GFX_49c0c - ld hl, VTiles2 tile $00 - lb bc, BANK(GFX_49c0c), $d - call Get2bpp - ret - -Function4a492: ; 4a492 (12:6492) - call Function4936e - ret - - -MainMenu_MobileStudium: ; 4a496 - ld a, [StartDay] - ld b, a - ld a, [StartHour] - ld c, a - ld a, [StartMinute] - ld d, a - ld a, [StartSecond] - ld e, a - push bc - push de - callba MobileStudium - call ClearBGPalettes - pop de - pop bc - ld a, b - ld [StartDay], a - ld a, c - ld [StartHour], a - ld a, d - ld [StartMinute], a - ld a, e - ld [StartSecond], a - ret -; 4a4c4 - - -Function4a4c4: ; 4a4c4 (12:64c4) - call ClearBGPalettes - call Function4a3a7 - call Function4a492 - call Function4a680 - call ClearBGPalettes - ld c, 20 - call DelayFrames - hlcoord 2, 0 - ld b, $a - ld c, $e - call Function48cdc - hlcoord 4, 2 - ld de, String_4a5c5 - call PlaceString - hlcoord 4, 4 - ld de, String_4a5cd - call PlaceString - hlcoord 4, 6 - ld de, String_4a5da - call PlaceString - hlcoord 4, 8 - ld de, String_4a5e6 - call PlaceString - hlcoord 4, 10 - ld de, String_4a5f2 - call PlaceString - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call TextBox - xor a - ld hl, Strings_4a5f6 - ld d, h - ld e, l - hlcoord 1, 14 - call PlaceString - ld a, $1 - ld hl, Strings_4a5f6 - call GetNthString - ld d, h - ld e, l - hlcoord 1, 16 - call PlaceString - call Function3200 - call SetPalettes - call Function1bc9 - ld hl, MenuSelection2 - ld b, [hl] - push bc - jr asm_4a54d - -Function4a545: ; 4a545 (12:6545) - call Function1bd3 - ld hl, MenuSelection2 - ld b, [hl] - push bc - -asm_4a54d: ; 4a54d (12:654d) - bit 0, a - jr nz, .asm_4a557 - bit 1, a - jr nz, .asm_4a574 - jr .asm_4a57e -.asm_4a557 - ld hl, MenuSelection2 - ld a, [hl] - cp $1 - jp z, Function4a6ab - cp $2 - jp z, Function4a6ab - cp $3 - jp z, Function4a6ab - cp $4 - jp z, Function4a6ab - ld a, $1 - call Function1ff8 -.asm_4a574 - pop bc - call ClearBGPalettes - call ClearTileMap - jp Function49f0a -.asm_4a57e - ld hl, MenuSelection2 - ld a, [hl] - dec a - add a - push af - ld hl, Strings_4a5f6 - call GetNthString - ld d, h - ld e, l - hlcoord 1, 13 - ld b, $4 - ld c, $12 - call ClearBox - hlcoord 1, 14 - call PlaceString - pop af - inc a - ld hl, Strings_4a5f6 - call GetNthString - ld d, h - ld e, l - hlcoord 1, 16 - call PlaceString - jp Function4a5b0 - -Function4a5b0: ; 4a5b0 (12:65b0) - call Function4a680 - pop bc - ld hl, MenuSelection2 - ld [hl], b - ld b, $a - ld c, $1 - hlcoord 3, 1 - call ClearBox - jp Function4a545 -; 4a5c5 (12:65c5) - -String_4a5c5: ; 4a5c5 - db "じこしょうかい@" -String_4a5cd: ; 4a5cd - db "たいせん ", $4a, "はじまるとき@" -String_4a5da: ; 4a5da - db "たいせん ", $1d, "かったとき@" -String_4a5e6: ; 4a5e6 - db "たいせん ", $1d, "まけたとき@" -String_4a5f2: ; 4a5f2 - db "もどる@" -; 4a5f6 - -Strings_4a5f6: ; 4a5f6 - db "めいし や ニュース ", $1d, "のせる@" - db "あなた%あいさつです@" - db "モバイル たいせん", $4a, "はじまるとき@" - db "あいて", $1d, "みえる あいさつです@" - db "モバイル たいせんで かったとき@" - db "あいて", $1d, "みえる あいさつです@" - db "モバイル たいせんで まけたとき@" - db "あいて", $1d, "みえる あいさつです@" - db "まえ%がめん ", $1d, "もどります@" - db "@" -; 4a680 - -Function4a680: ; 4a680 (12:6680) - ld hl, wcfa1 - ld a, $2 - ld [hli], a - ld a, $3 - ld [hli], a - ld a, $5 - ld [hli], a - ld a, $1 - ld [hli], a - ld [hl], $0 - set 5, [hl] - inc hl - xor a - ld [hli], a - ld a, $20 - ld [hli], a - ld a, $1 - add $40 - add $80 - add $2 - ld [hli], a - ld a, $1 -rept 2 - ld [hli], a -endr - xor a -rept 3 - ld [hli], a -endr - ret - -Function4a6ab: ; 4a6ab (12:66ab) - ld a, $2 - call Function1ff8 - call ClearBGPalettes - ld b, SCGB_08 - call GetSGBLayout - callba Function11c1ab - pop bc - call LoadFontsExtra - jp Function4a4c4 - -Function4a6c5: ; 4a6c5 (12:66c5) - ld a, $5 - ld [MusicFade], a - ld a, e - ld [MusicFadeIDLo], a - ld a, d - ld [MusicFadeIDHi], a - ld c, 22 - call DelayFrames - ret - -Function4a6d8: ; 4a6d8 (12:66d8) - push bc - push hl -.asm_4a6da - ld [hli], a - dec c - jr nz, .asm_4a6da - pop hl - ld bc, $14 - add hl, bc - pop bc - dec b - jr nz, Function4a6d8 - ret - +INCLUDE "event/celebi.asm" +INCLUDE "engine/main_menu.asm" SpecialBeastsCheck: ; 0x4a6e8 ; Check if the player owns all three legendary beasts. @@ -34882,7 +31157,7 @@ Function8461a: ; 8461a ret ; 84688 -Function84688: ; 84688 +_PrintDiploma: ; 84688 ld a, [wcf65] push af callba Function1dd709 diff --git a/maps/AzaleaTown.asm b/maps/AzaleaTown.asm index 9e9129cad..a40bd316d 100644 --- a/maps/AzaleaTown.asm +++ b/maps/AzaleaTown.asm @@ -30,7 +30,7 @@ UnknownScript_0x198018: moveperson $b, $b, $b spriteface PLAYER, RIGHT showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 appear $b applymovement $b, MovementData_0x198134 @@ -40,7 +40,7 @@ UnknownScript_0x198018: UnknownScript_0x198034: spriteface PLAYER, RIGHT showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 appear $b applymovement $b, MovementData_0x19813c diff --git a/maps/BluesHouse.asm b/maps/BluesHouse.asm index 6cdf97d4f..36d06b943 100644 --- a/maps/BluesHouse.asm +++ b/maps/BluesHouse.asm @@ -37,7 +37,7 @@ UnknownScript_0x19b0de: special RestartMapMusic loadfont writetext UnknownText_0x19b296 - special Functionc472 + special PlayCurMonCry keeptextopen writetext UnknownText_0x19b2aa closetext diff --git a/maps/BurnedTower1F.asm b/maps/BurnedTower1F.asm index 20c30336d..2b78c59c9 100644 --- a/maps/BurnedTower1F.asm +++ b/maps/BurnedTower1F.asm @@ -49,7 +49,7 @@ UnknownScript_0x185c0d: UnknownScript_0x185c25: showemote EMOTE_SHOCK, $4, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 spriteface $4, RIGHT pause 15 @@ -98,7 +98,7 @@ UnknownScript_0x185c80: loadmovesprites dotrigger $2 setevent EVENT_RIVAL_BURNED_TOWER - special Functionc48f + special Special_FadeOutMusic pause 15 earthquake 50 showemote EMOTE_SHOCK, PLAYER, 15 diff --git a/maps/CeladonDeptStore6F.asm b/maps/CeladonDeptStore6F.asm index 7591cb907..e876c09d8 100644 --- a/maps/CeladonDeptStore6F.asm +++ b/maps/CeladonDeptStore6F.asm @@ -23,7 +23,7 @@ CeladonVendingMachine: loadfont writetext CeladonVendingText .Start - special Function24ae8 + special PlaceMoneyTopRightOW loadmenudata .MenuData interpretmenu2 writebackup diff --git a/maps/CeladonMansion3F.asm b/maps/CeladonMansion3F.asm index 9a7858d40..575137bc6 100644 --- a/maps/CeladonMansion3F.asm +++ b/maps/CeladonMansion3F.asm @@ -22,7 +22,7 @@ UnknownScript_0x7167e: waitbutton writetext UnknownText_0x71760 keeptextopen - special Functionc49f + special Diploma writetext UnknownText_0x71763 closetext loadmovesprites @@ -43,7 +43,7 @@ UnknownScript_0x716a4: writetext UnknownText_0x717d8 yesorno iffalse UnknownScript_0x716b0 - special Functionc4ac + special PrintDiploma loadmovesprites end diff --git a/maps/CherrygroveCity.asm b/maps/CherrygroveCity.asm index 026aea8fa..2731b774b 100644 --- a/maps/CherrygroveCity.asm +++ b/maps/CherrygroveCity.asm @@ -103,7 +103,7 @@ UnknownScript_0x19c0aa: UnknownScript_0x19c0ae: spriteface PLAYER, RIGHT showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 appear $3 applymovement $3, MovementData_0x19c1ce diff --git a/maps/CianwoodCity.asm b/maps/CianwoodCity.asm index a4986e0fa..878369731 100644 --- a/maps/CianwoodCity.asm +++ b/maps/CianwoodCity.asm @@ -66,7 +66,7 @@ UnknownScript_0x1a001e: applymovement $c, MovementData_0x1a00ec disappear $c pause 20 - special Functionc48f + special Special_FadeOutMusic playmapmusic pause 10 .Done diff --git a/maps/DragonShrine.asm b/maps/DragonShrine.asm index 67d365378..cc89ac754 100644 --- a/maps/DragonShrine.asm +++ b/maps/DragonShrine.asm @@ -130,7 +130,7 @@ DragonShrineTestScript: writetext UnknownText_0x18d916 closetext loadmovesprites - special Functionc48f + special Special_FadeOutMusic applymovement $5, MovementData_0x18d2da loadfont writetext UnknownText_0x18d974 diff --git a/maps/DragonsDenB1F.asm b/maps/DragonsDenB1F.asm index 96b735cd2..e47ea7516 100644 --- a/maps/DragonsDenB1F.asm +++ b/maps/DragonsDenB1F.asm @@ -70,7 +70,7 @@ UnknownScript_0x18c8f4: loadmovesprites UnknownScript_0x18c8f9: applymovement $3, MovementData_0x18c9b3 - special Functionc48f + special Special_FadeOutMusic pause 30 special RestartMapMusic disappear $3 diff --git a/maps/GoldenrodCity.asm b/maps/GoldenrodCity.asm index 260d7011a..fc711f366 100644 --- a/maps/GoldenrodCity.asm +++ b/maps/GoldenrodCity.asm @@ -61,21 +61,21 @@ MoveTutor: .Flamethrower: writebyte $1 writetext UnknownText_0x1991cf - special Function4925b + special Special_MoveTutor if_equal $0, .TeachMove jump .Incompatible .Thunderbolt: writebyte $2 writetext UnknownText_0x1991cf - special Function4925b + special Special_MoveTutor if_equal $0, .TeachMove jump .Incompatible .IceBeam: writebyte $3 writetext UnknownText_0x1991cf - special Function4925b + special Special_MoveTutor if_equal $0, .TeachMove jump .Incompatible diff --git a/maps/GoldenrodDeptStore6F.asm b/maps/GoldenrodDeptStore6F.asm index d81df73a1..a0853ac17 100644 --- a/maps/GoldenrodDeptStore6F.asm +++ b/maps/GoldenrodDeptStore6F.asm @@ -9,7 +9,7 @@ GoldenrodVendingMachine: loadfont writetext GoldenrodVendingText .Start - special Function24ae8 + special PlaceMoneyTopRightOW loadmenudata .MenuData interpretmenu2 writebackup diff --git a/maps/IlexForest.asm b/maps/IlexForest.asm index 68db34544..cc5b19bf0 100644 --- a/maps/IlexForest.asm +++ b/maps/IlexForest.asm @@ -449,7 +449,7 @@ UnknownScript_0x6ee42: loadmovesprites pause 20 showemote EMOTE_SHOCK, PLAYER, 20 - special Functionc48f + special Special_FadeOutMusic applymovement PLAYER, MovementData_0x6ef58 pause 30 spriteface PLAYER, DOWN diff --git a/maps/IndigoPlateauPokeCenter1F.asm b/maps/IndigoPlateauPokeCenter1F.asm index 51b502452..cefc1c2bb 100644 --- a/maps/IndigoPlateauPokeCenter1F.asm +++ b/maps/IndigoPlateauPokeCenter1F.asm @@ -55,7 +55,7 @@ UnknownScript_0x180053: appear $5 spriteface PLAYER, DOWN showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 applymovement $5, MovementData_0x180164 playmusic MUSIC_RIVAL_ENCOUNTER @@ -76,7 +76,7 @@ UnknownScript_0x180094: appear $5 spriteface PLAYER, DOWN showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 applymovement $5, MovementData_0x18016b playmusic MUSIC_RIVAL_ENCOUNTER diff --git a/maps/KurtsHouse.asm b/maps/KurtsHouse.asm index 07d36b64e..f8fa0721a 100644 --- a/maps/KurtsHouse.asm +++ b/maps/KurtsHouse.asm @@ -40,7 +40,7 @@ KurtScript_0x18e178: writetext UnknownText_0x18e473 closetext loadmovesprites - special Functionc48f + special Special_FadeOutMusic setevent EVENT_AZALEA_TOWN_SLOWPOKETAIL_ROCKET checkcode VAR_FACING if_equal UP, .RunAround @@ -287,7 +287,7 @@ KurtScript_0x18e178: setevent EVENT_FOREST_IS_RESTLESS clearevent EVENT_CAN_GIVE_GS_BALL_TO_KURT clearevent EVENT_GAVE_GS_BALL_TO_KURT - special Functionc48f + special Special_FadeOutMusic pause 20 showemote EMOTE_SHOCK, $2, 30 checkcode VAR_FACING diff --git a/maps/LancesRoom.asm b/maps/LancesRoom.asm index 56fba7897..f9f03054f 100644 --- a/maps/LancesRoom.asm +++ b/maps/LancesRoom.asm @@ -44,12 +44,12 @@ UnknownScript_0x180e53: end UnknownScript_0x180e6a: - special Functionc48f + special Special_FadeOutMusic applymovement PLAYER, MovementData_0x180f38 jump LanceScript_0x180e7b UnknownScript_0x180e74: - special Functionc48f + special Special_FadeOutMusic applymovement PLAYER, MovementData_0x180f3c LanceScript_0x180e7b: spriteface $2, LEFT diff --git a/maps/MahoganyTown.asm b/maps/MahoganyTown.asm index 60ee8cef9..7700fa518 100644 --- a/maps/MahoganyTown.asm +++ b/maps/MahoganyTown.asm @@ -51,7 +51,7 @@ UnknownScript_0x190039: UnknownScript_0x190040: loadfont writetext UnknownText_0x1900b0 - special Function24ae8 + special PlaceMoneyTopRightOW yesorno iffalse UnknownScript_0x190072 checkmoney $0, 300 @@ -61,7 +61,7 @@ UnknownScript_0x190040: waitbutton playsound SFX_TRANSACTION takemoney $0, 300 - special Function24ae8 + special PlaceMoneyTopRightOW writetext UnknownText_0x19014a closetext loadmovesprites diff --git a/maps/MountMoon.asm b/maps/MountMoon.asm index a23ab085d..09173be29 100644 --- a/maps/MountMoon.asm +++ b/maps/MountMoon.asm @@ -19,7 +19,7 @@ UnknownScript_0x7408d: UnknownScript_0x7408e: spriteface PLAYER, RIGHT showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 applymovement $2, MovementData_0x740f9 playmusic MUSIC_RIVAL_ENCOUNTER diff --git a/maps/OlivineCity.asm b/maps/OlivineCity.asm index f299560bb..4c42e9dd5 100644 --- a/maps/OlivineCity.asm +++ b/maps/OlivineCity.asm @@ -25,7 +25,7 @@ OlivineCity_MapScriptHeader: UnknownScript_0x1a8833: spriteface PLAYER, LEFT showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 playsound SFX_ENTER_DOOR appear $5 @@ -49,7 +49,7 @@ UnknownScript_0x1a8833: UnknownScript_0x1a886b: spriteface PLAYER, LEFT showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 playsound SFX_ENTER_DOOR appear $5 diff --git a/maps/PokeCenter2F.asm b/maps/PokeCenter2F.asm index 40f9173c1..3177d3963 100644 --- a/maps/PokeCenter2F.asm +++ b/maps/PokeCenter2F.asm @@ -581,7 +581,7 @@ Script_LeftTimeCapsule: MapPokeCenter2FSignpost0Script: refreshscreen $0 - special Functionc2da + special Special_DisplayLinkRecord loadmovesprites end diff --git a/maps/RadioTower2F.asm b/maps/RadioTower2F.asm index edca82682..eb81f7579 100644 --- a/maps/RadioTower2F.asm +++ b/maps/RadioTower2F.asm @@ -140,7 +140,7 @@ UnknownScript_0x5d7be: writetext UnknownText_0x5e054 closetext loadmovesprites - special Functionc48f + special Special_FadeOutMusic pause 20 special RestartMapMusic checkcode VAR_BLUECARDBALANCE @@ -169,7 +169,7 @@ UnknownScript_0x5d81e: closetext loadmovesprites spriteface $b, RIGHT - special Functionc48f + special Special_FadeOutMusic pause 20 special RestartMapMusic end @@ -200,7 +200,7 @@ UnknownScript_0x5d845: closetext loadmovesprites spriteface $b, RIGHT - special Functionc48f + special Special_FadeOutMusic pause 20 special RestartMapMusic end diff --git a/maps/Route24.asm b/maps/Route24.asm index 081bde6a7..f8f24209f 100644 --- a/maps/Route24.asm +++ b/maps/Route24.asm @@ -21,7 +21,7 @@ RocketScript_0x1adbfa: loadfont writetext UnknownText_0x1addc0 keeptextopen - special Functionc48f + special Special_FadeOutMusic writetext UnknownText_0x1adee1 closetext loadmovesprites diff --git a/maps/Route39Farmhouse.asm b/maps/Route39Farmhouse.asm index 7e9b06226..6ca69ab49 100644 --- a/maps/Route39Farmhouse.asm +++ b/maps/Route39Farmhouse.asm @@ -20,7 +20,7 @@ UnknownScript_0x9cec5: checkitem MOOMOO_MILK iftrue UnknownScript_0x9cf08 writetext UnknownText_0x9cfe1 - special Function24ae8 + special PlaceMoneyTopRightOW yesorno iffalse UnknownScript_0x9cf02 checkmoney $0, 500 @@ -28,7 +28,7 @@ UnknownScript_0x9cec5: giveitem MOOMOO_MILK iffalse UnknownScript_0x9cefc takemoney $0, 500 - special Function24ae8 + special PlaceMoneyTopRightOW waitbutton playsound SFX_TRANSACTION writetext UnknownText_0x9d05d diff --git a/maps/SilverCaveRoom3.asm b/maps/SilverCaveRoom3.asm index 194aa1717..6c637f77c 100644 --- a/maps/SilverCaveRoom3.asm +++ b/maps/SilverCaveRoom3.asm @@ -6,7 +6,7 @@ SilverCaveRoom3_MapScriptHeader: db 0 RedScript_0x18c603: - special Functionc48f + special Special_FadeOutMusic faceplayer loadfont writetext UnknownText_0x18c637 @@ -17,7 +17,7 @@ RedScript_0x18c603: startbattle reloadmapmusic returnafterbattle - special Functionc48f + special Special_FadeOutMusic loadfont writetext UnknownText_0x18c63f closetext diff --git a/maps/SproutTower3F.asm b/maps/SproutTower3F.asm index ae55d237f..6b82aa611 100644 --- a/maps/SproutTower3F.asm +++ b/maps/SproutTower3F.asm @@ -18,7 +18,7 @@ UnknownScript_0x184946: UnknownScript_0x184947: spriteface PLAYER, UP showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic playsound SFX_TACKLE playsound SFX_ELEVATOR earthquake 79 diff --git a/maps/TeamRocketBaseB3F.asm b/maps/TeamRocketBaseB3F.asm index 001ca4893..39e2b2f67 100644 --- a/maps/TeamRocketBaseB3F.asm +++ b/maps/TeamRocketBaseB3F.asm @@ -55,7 +55,7 @@ LanceScript_0x6dffc: UnknownScript_0x6e019: spriteface PLAYER, LEFT showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic appear $a applymovement $a, MovementData_0x6e164 spriteface PLAYER, LEFT diff --git a/maps/TinTower1F.asm b/maps/TinTower1F.asm index 765764fd7..ca4d0c1ff 100644 --- a/maps/TinTower1F.asm +++ b/maps/TinTower1F.asm @@ -158,7 +158,7 @@ UnknownScript_0x1850d7: playsound SFX_EXIT_BUILDING disappear $5 waitbutton - special Functionc48f + special Special_FadeOutMusic pause 20 playmapmusic end diff --git a/maps/UndergroundPathSwitchRoomEntrances.asm b/maps/UndergroundPathSwitchRoomEntrances.asm index 43c021b76..82abe2e4a 100644 --- a/maps/UndergroundPathSwitchRoomEntrances.asm +++ b/maps/UndergroundPathSwitchRoomEntrances.asm @@ -80,7 +80,7 @@ TeacherScript_0x7ca7d: UnknownScript_0x7ca80: spriteface PLAYER, RIGHT showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 playsound SFX_EXIT_BUILDING appear $c @@ -99,7 +99,7 @@ UnknownScript_0x7ca80: UnknownScript_0x7caaa: spriteface PLAYER, RIGHT showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 playsound SFX_EXIT_BUILDING appear $c diff --git a/maps/VictoryRoad.asm b/maps/VictoryRoad.asm index a5f751194..056b30854 100644 --- a/maps/VictoryRoad.asm +++ b/maps/VictoryRoad.asm @@ -19,7 +19,7 @@ UnknownScript_0x74492: moveperson $2, $12, $b spriteface PLAYER, DOWN showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 appear $2 applymovement $2, MovementData_0x74539 @@ -33,7 +33,7 @@ UnknownScript_0x74492: UnknownScript_0x744b5: spriteface PLAYER, DOWN showemote EMOTE_SHOCK, PLAYER, 15 - special Functionc48f + special Special_FadeOutMusic pause 15 appear $2 applymovement $2, MovementData_0x74542 diff --git a/maps/WarehouseEntrance.asm b/maps/WarehouseEntrance.asm index af5cf93b8..2ef14fcc0 100644 --- a/maps/WarehouseEntrance.asm +++ b/maps/WarehouseEntrance.asm @@ -186,7 +186,7 @@ OlderHaircutBrotherScript: .DoHaircut: checkflag ENGINE_GOLDENROD_UNDERGROUND_GOT_HAIRCUT iftrue .AlreadyGotHaircut - special Function24ae8 + special PlaceMoneyTopRightOW writetext UnknownText_0x7c5f9 yesorno iffalse .Refused @@ -222,7 +222,7 @@ OlderHaircutBrotherScript: .then: takemoney $0, 500 - special Function24ae8 + special PlaceMoneyTopRightOW writetext UnknownText_0x7c6b8 closetext loadmovesprites @@ -269,7 +269,7 @@ YoungerHaircutBrotherScript: .DoHaircut: checkflag ENGINE_GOLDENROD_UNDERGROUND_GOT_HAIRCUT iftrue .AlreadyGotHaircut - special Function24ae8 + special PlaceMoneyTopRightOW writetext UnknownText_0x7c75c yesorno iffalse .Refused @@ -305,7 +305,7 @@ YoungerHaircutBrotherScript: .then: takemoney $0, 300 - special Function24ae8 + special PlaceMoneyTopRightOW writetext UnknownText_0x7c80e closetext loadmovesprites @@ -343,21 +343,21 @@ YoungerHaircutBrotherScript: UnknownScript_0x7c2bb: writetext HaircutBrosText_SlightlyHappier - special Functionc472 + special PlayCurMonCry closetext loadmovesprites end UnknownScript_0x7c2c4: writetext HaircutBrosText_Happier - special Functionc472 + special PlayCurMonCry closetext loadmovesprites end UnknownScript_0x7c2cd: writetext HaircutBrosText_MuchHappier - special Functionc472 + special PlayCurMonCry closetext loadmovesprites end diff --git a/misc/mobile_12.asm b/misc/mobile_12.asm new file mode 100755 index 000000000..4e4eeec80 --- /dev/null +++ b/misc/mobile_12.asm @@ -0,0 +1,1829 @@ +Function4802f: ; 4802f (12:402f) + xor a + set 6, a + ld [wd002], a + ld hl, wd003 + set 0, [hl] + ld a, c + and a + call z, Function48000 + call ClearBGPalettes + call Function48d3d + ld a, [wd479] + bit 1, a + jr z, .asm_4805a + ld a, [wd003] + set 0, a + set 1, a + set 2, a + set 3, a + ld [wd003], a +.asm_4805a + call Function486bf + call LoadFontsExtra + ld de, GFX_488c3 + ld hl, VTiles2 tile $10 + lb bc, BANK(GFX_488c3), 1 + call Request1bpp + ld de, GFX_488cb + ld hl, VTiles2 tile $11 + lb bc, BANK(GFX_488cb), 1 + call Request1bpp + call Function4a3a7 + call ClearBGPalettes + ld a, [wd002] + bit 6, a + jr z, .asm_4808a + call Function48689 + jr .asm_480d7 +.asm_4808a + ld a, $5 + ld [MusicFade], a + ld a, MUSIC_MOBILE_ADAPTER_MENU % $100 + ld [MusicFadeIDLo], a + ld a, MUSIC_MOBILE_ADAPTER_MENU / $100 + ld [MusicFadeIDHi], a + ld c, 20 + call DelayFrames + ld b, $1 + call Function4930f + call ClearBGPalettes + hlcoord 0, 0 + ld b, $2 + ld c, $14 + call ClearBox + hlcoord 0, 1 + ld a, $c + ld [hl], a + ld bc, $13 + add hl, bc + ld [hl], a + ld de, MobileProfileString + hlcoord 1, 1 + call PlaceString + hlcoord 0, 2 + ld b, $a + ld c, $12 + call Function48cdc + hlcoord 2, 4 + ld de, String_48482 + call PlaceString +.asm_480d7 + hlcoord 2, 6 + ld de, String_48489 + call PlaceString + hlcoord 2, 8 + ld de, String_4848d + call PlaceString + hlcoord 2, 10 + ld de, String_48495 + call PlaceString + hlcoord 2, 12 + ld de, String_4849e + call PlaceString + ld a, [wd002] + bit 6, a + jr nz, .asm_48113 + ld a, [PlayerGender] + ld hl, Strings_484fb + call GetNthString + ld d, h + ld e, l + hlcoord 11, 4 + call PlaceString +.asm_48113 + hlcoord 11, 6 + call Function487ec + ld a, [wd474] + dec a + ld hl, Prefectures + call GetNthString + ld d, h + ld e, l + hlcoord 11, 8 + call PlaceString + hlcoord 11, 10 + call Function489ea + hlcoord 0, 14 + ld b, $2 + ld c, $12 + call TextBox + hlcoord 1, 16 + ld de, String_48275 + call PlaceString + call Function48187 + call Function3200 + call SetPalettes + call Function1bc9 + ld hl, MenuSelection2 + ld b, [hl] + push bc + jr asm_4815f + +Function48157: ; 48157 (12:4157) + call Function1bd3 + ld hl, MenuSelection2 + ld b, [hl] + push bc + +asm_4815f: ; 4815f (12:415f) + bit 0, a + jp nz, Function4820d + ld b, a + ld a, [wd002] + bit 6, a + jr z, .asm_48177 + ld hl, wd479 + bit 1, [hl] + jr z, .asm_48177 + bit 1, b + jr nz, .asm_4817a +.asm_48177 + jp Function48272 +.asm_4817a + call ClearBGPalettes + call Function48d30 + pop bc + call ClearTileMap + ld a, $ff + ret + +Function48187: ; 48187 (12:4187) + ld a, [wd479] + bit 1, a + jr nz, .asm_481f1 + ld a, [wd003] + ld d, a + call Function48725 + jr c, .asm_481a2 + lb bc, 1, 4 + hlcoord 2, 12 + call ClearBox + jr .asm_481ad +.asm_481a2 + push de + hlcoord 2, 12 + ld de, String_4849e + call PlaceString + pop de +.asm_481ad + ld a, [wd002] + bit 6, a + jr nz, .asm_481c1 + bit 0, d + jr nz, .asm_481c1 + lb bc, 1, 8 + hlcoord 11, 4 + call ClearBox +.asm_481c1 + bit 1, d + jr nz, .asm_481ce + lb bc, 1, 8 + hlcoord 11, 6 + call ClearBox +.asm_481ce + bit 2, d + jr nz, .asm_481db + lb bc, 2, 8 + hlcoord 11, 7 + call ClearBox +.asm_481db + bit 3, d + jr nz, .asm_481f1 + ld a, [wd479] + bit 0, a + jr nz, .asm_481f8 + lb bc, 1, 8 + hlcoord 11, 10 + call ClearBox + jr .asm_48201 +.asm_481f1 + ld a, [wd479] + bit 0, a + jr nz, .asm_48201 +.asm_481f8 + hlcoord 11, 10 + ld de, String_48202 + call PlaceString +.asm_48201 + ret +; 48202 (12:4202) + +String_48202: ; 48202 + db "Tell Later@" +; 4820d + +Function4820d: ; 4820d (12:420d) + call Function1bee + ld hl, MenuSelection2 + ld a, [hl] + push af + ld a, [wd002] + bit 6, a + jr z, .asm_4821f + pop af + inc a + push af +.asm_4821f + pop af + cp $1 + jr z, asm_4828d + cp $2 + jp z, Function4876f + cp $3 + jp z, Function48304 + cp $4 + jp z, Function488d3 + ld a, $2 + call Function1ff8 + ld a, [wd002] + bit 6, a + jr z, .asm_4825c + jr .asm_4825c +; 48241 (12:4241) + + hlcoord 1, 15 + ld b, $2 + ld c, $12 + call ClearBox + ld de, String_484a1 + hlcoord 1, 16 + call PlaceString + call WaitBGMap + ld c, 48 + call DelayFrames + +.asm_4825c + call ClearBGPalettes + call Function48d30 + pop bc + call ClearTileMap + ld b, SCGB_08 + call GetSGBLayout + ld hl, wd479 + set 1, [hl] + xor a + ret + +Function48272: ; 48272 (12:4272) + jp Function4840c +; 48275 (12:4275) + +String_48275: ; 48275 + db "Personal Info@" +; 48283 + +Function48283: ; 48283 (12:4283) + lb bc, 2, 18 + hlcoord 1, 15 + call ClearBox + ret + +asm_4828d: ; 4828d (12:428d) + call Function48283 + hlcoord 1, 16 + ld de, String_484b1 + call PlaceString + ld hl, MenuDataHeader_0x484f1 + call LoadMenuDataHeader + call Function4873c + hlcoord 11, 2 + ld b, $4 + ld c, $7 + call Function48cdc + hlcoord 13, 4 + ld de, String_484fb + call PlaceString + hlcoord 13, 6 + ld de, String_484ff + call PlaceString + call WaitBGMap + ld a, [PlayerGender] + inc a + ld [wMenuCursorBuffer], a + call Function1bc9 + call PlayClickSFX + call ExitMenu + bit 0, a + jp z, Function4840c + ld hl, MenuSelection2 + ld a, [hl] + ld hl, Strings_484fb + cp $1 + jr z, .asm_482ed +.asm_482e1 + ld a, [hli] + cp $50 + jr nz, .asm_482e1 + ld a, $1 + ld [PlayerGender], a + jr .asm_482f1 +.asm_482ed + xor a + ld [PlayerGender], a +.asm_482f1 + ld d, h + ld e, l + hlcoord 11, 4 + call PlaceString + ld a, [wd003] + set 0, a + ld [wd003], a + jp Function4840c + +Function48304: ; 48304 (12:4304) + call Function48283 + hlcoord 1, 16 + ld de, String_484cf + call PlaceString + ld hl, MenuDataHeader_0x48504 + call LoadMenuDataHeader + ld hl, MenuDataHeader_0x48513 + call LoadMenuDataHeader + hlcoord 10, 0 + ld b, $c + ld c, $8 + call Function48cdc + ld a, [wMenuCursorBuffer] + ld b, a + ld a, [wd0e4] + ld c, a + push bc + ld a, [wd474] + dec a + cp $29 + jr c, .asm_4833f + sub $29 + inc a + ld [wMenuCursorBuffer], a + ld a, $29 +.asm_4833f + ld [wd0e4], a + callba Function104148 +.asm_48348 + call HandleScrollingMenu + ld de, $629 + call Function48383 + jr c, .asm_48348 + ld d, a + pop bc + ld a, b + ld [wMenuCursorBuffer], a + ld a, c + ld [wd0e4], a + ld a, d + push af + call ExitMenu + call ExitMenu + pop af + ld a, [hJoyPressed] + bit 0, a + jr z, .asm_48377 + call Function483bb + ld a, [wd003] + set 2, a + ld [wd003], a +.asm_48377 + call Function48187 + callba Function104148 + jp Function4840c + +Function48383: ; 48383 (12:4383) + push bc + push af + bit 5, a + jr nz, .asm_48390 + bit 4, a + jr nz, .asm_4839f + and a + jr .asm_483b7 +.asm_48390 + ld a, [wd0e4] + sub d + ld [wd0e4], a + jr nc, .asm_483af + xor a + ld [wd0e4], a + jr .asm_483af +.asm_4839f + ld a, [wd0e4] + add d + ld [wd0e4], a + cp e + jr c, .asm_483af + ld a, e + ld [wd0e4], a + jr .asm_483af +.asm_483af + ld hl, MenuSelection2 + ld a, [hl] + ld [wMenuCursorBuffer], a + scf +.asm_483b7 + pop bc + ld a, b + pop bc + ret + +Function483bb: ; 483bb (12:43bb) + ld hl, wcf77 + ld a, [hl] + inc a + ld [wd474], a + dec a + ld b, a + ld hl, Prefectures +.asm_483c8 + and a + jr z, .asm_483d5 +.asm_483cb + ld a, [hli] + cp "@" + jr nz, .asm_483cb + ld a, b + dec a + ld b, a + jr .asm_483c8 +.asm_483d5 + ld d, h + ld e, l + ld b, $2 + ld c, $8 + hlcoord 11, 7 + call ClearBox + hlcoord 11, 8 + call PlaceString + ret +; 483e8 (12:43e8) + +Function483e8: ; 483e8 + push de + ld hl, Prefectures + ld a, [MenuSelection] + cp $ff + jr nz, .asm_483f8 + ld hl, Wakayama ; last string + jr .asm_48405 + +.asm_483f8 + ld d, a + and a + jr z, .asm_48405 +.asm_483fc + ld a, [hli] + cp "@" + jr nz, .asm_483fc + ld a, d + dec a + jr .asm_483f8 + +.asm_48405 + ld d, h + ld e, l + pop hl + call PlaceString + ret +; 4840c + +Function4840c: ; 4840c (12:440c) + call Function48187 + call Function48283 + hlcoord 1, 16 + ld de, String_48275 + call PlaceString + call Function486bf + pop bc + ld hl, MenuSelection2 + ld [hl], b + ld a, [wd002] + bit 6, a + jr nz, .asm_48437 + ld b, $9 + ld c, $1 + hlcoord 1, 4 + call ClearBox + jp Function48157 +.asm_48437 + ld b, $7 + ld c, $1 + hlcoord 1, 6 + call ClearBox + jp Function48157 + +Function48444: ; 48444 (12:4444) + push bc + push af + push de + push hl + ld hl, Unknown_4845d +.asm_4844b + and a + jr z, .asm_48453 +rept 2 + inc hl +endr + dec a + jr .asm_4844b +.asm_48453 + ld d, h + ld e, l + pop hl + call PlaceString + pop de + pop af + pop bc + ret +; 4845d (12:445d) + +Unknown_4845d: ; 4845d +; 4845d + db "0@" + db "1@" + db "2@" + db "3@" + db "4@" + db "5@" + db "6@" + db "7@" + db "8@" + db "9@" +; 48471 + +MobileProfileString: db " Mobile Profile@" +String_48482: db "Gender@" +String_48489: db "Age@" +String_4848d: db "Address@" +String_48495: db "Zip Code@" +String_4849e: db "OK@" +String_484a1: db "Profile Changed@" +String_484b1: db "Boy or girl?@" +String_484be: db "How old are you?@" +String_484cf: db "Where do you live?@" +String_484e2: db "Your zip code?@" +; 484f1 + +MenuDataHeader_0x484f1: ; 0x484f1 + db $40 ; flags + db 02, 11 ; start coords + db 07, 19 ; end coords + dw MenuData2_0x484f9 + db 1 ; default option +; 0x484f9 + +MenuData2_0x484f9: ; 0x484f9 + db $a0 ; flags + db 2 ; items +Strings_484fb: +String_484fb: db "Boy@" +String_484ff: db "Girl@" +; 0x48504 + +MenuDataHeader_0x48504: ; 0x48504 + db $40 ; flags + db 00, 10 ; start coords + db 17, 19 ; end coords + +MenuDataHeader_0x48509: ; 0x48509 + db $40 ; flags + db 05, 10 ; start coords + db 07, 19 ; end coords + +MenuDataHeader_0x4850e: ; 0x4850e + db $40 ; flags + db 09, 10 ; start coords + db 11, 19 ; end coords + +MenuDataHeader_0x48513: ; 0x48513 + db $40 ; flags + db 01, 11 ; start coords + db 12, 18 ; end coords + dw MenuData2_0x4851b + db 1 ; default option +; 0x4851b + +MenuData2_0x4851b: ; 0x4851b + db $1d ; flags + db 6 ; items + +Unknown_4851d: ; 4851d + db $00, $01, $12, $2b, $45, $12, $e8, $43, $00, $00, $00, $00, $00, $00, $2e, $00, $01, $02, $03, $04 + db $05, $06, $07, $08, $09, $0a, $0b, $0c, $0d, $0e, $0f, $10, $11, $12, $13, $14, $15, $16, $17, $18 + db $19, $1a, $1b, $1c, $1d, $1e, $1f, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $2a, $2b, $2c + db $2d, $ff + +Prefectures: +Aichi: db "あいちけん@" ; Aichi +Aomori: db "あおもりけん@" ; Aomori +Akita: db "あきたけん@" ; Akita +Ishikawa: db "いしかわけん@" ; Ishikawa +Ibaraki: db "いばらきけん@" ; Ibaraki +Iwate: db "いわてけん@" ; Iwate +Ehime: db "えひめけん@" ; Ehime +Oita: db "おおいたけん@" ; Oita +Osakafu: db "おおさかふ@" ; Osakafu +Okayama: db "おかやまけん@" ; Okayama +Okinawa: db "おきなわけん@" ; Okinawa +Kagawa: db "かがわけん@" ; Kagawa +Kagoshima: db "かごしまけん@" ; Kagoshima +Kanagawa: db "かながわけん@" ; Kanagawa +Gifu: db "ぎふけん@" ; Gifu +Kyotofu: db "きょうとふ@" ; Kyotofu +Kumamoto: db "くまもとけん@" ; Kumamoto +Gunma: db "ぐんまけん@" ; Gunma +Kochi: db "こうちけん@" ; Kochi +Saitama: db "さいたまけん@" ; Saitama +Saga: db "さがけん@" ; Saga +Shiga: db "しがけん@" ; Shiga +Shizuoka: db "しずおかけん@" ; Shizuoka +Shimane: db "しまねけん@" ; Shimane +Chiba: db "ちばけん@" ; Chiba +Tokyo: db "とうきょうと@" ; Tokyo +Tokushima: db "とくしまけん@" ; Tokushima +Tochigi: db "とちぎけん@" ; Tochigi +Tottori: db "とっとりけん@" ; Tottori +Toyama: db "とやまけん@" ; Toyama +Nagasaki: db "ながさきけん@" ; Nagasaki +Nagano: db "ながのけん@" ; Nagano +Naraken: db "ならけん@" ; Naraken +Niigata: db "にいがたけん@" ; Niigata +Hyogo: db "ひょうごけん@" ; Hyogo +Hiroshima: db "ひろしまけん@" ; Hiroshima +Fukui: db "ふくいけん@" ; Fukui +Fukuoka: db "ふくおかけん@" ; Fukuoka +Fukushima: db "ふくしまけん@" ; Fukushima +Hokkaido: db "ほっかいどう@" ; Hokkaido +Mie: db "みえけん@" ; Mie +Miyagi: db "みやぎけん@" ; Miyagi +Miyazaki: db "みやざきけん@" ; Miyazaki +Yamagata: db "やまがたけん@" ; Yamagata +Yamaguchi: db "やまぐちけん@" ; Yamaguchi +Yamanashi: db "やまなしけん@" ; Yamanashi +Wakayama: db "わかやまけん@" ; Wakayama +; 48689 + +Function48689: ; 48689 (12:4689) + ld c, 7 + call DelayFrames + ld b, $1 + call Function4930f + call ClearBGPalettes + hlcoord 0, 0 + ld b, $4 + ld c, $14 + call ClearBox + hlcoord 0, 2 + ld a, $c + ld [hl], a + ld bc, $13 + add hl, bc + ld [hl], a + ld de, MobileProfileString + hlcoord 1, 2 + call PlaceString + hlcoord 0, 4 + ld b, $8 + ld c, $12 + call Function48cdc + ret + +Function486bf: ; 486bf (12:46bf) + ld hl, wcfa1 + ld a, [wd002] + bit 6, a + jr nz, .asm_486ce + ld a, $4 + ld [hli], a + jr .asm_486d1 +.asm_486ce + ld a, $6 + ld [hli], a +.asm_486d1 + ld a, $1 + ld [hli], a + ld a, [wd002] + bit 6, a + jr nz, .asm_486e7 + call Function48725 + ld a, $4 + jr nc, .asm_486e4 + ld a, $5 +.asm_486e4 + ld [hli], a + jr .asm_486fb +.asm_486e7 + ld a, [wd479] + bit 1, a + jr nz, .asm_486f8 + call Function48725 + jr c, .asm_486f8 + ld a, $3 + ld [hli], a + jr .asm_486fb +.asm_486f8 + ld a, $4 + ld [hli], a +.asm_486fb + ld a, $1 + ld [hli], a + ld [hl], $0 + set 5, [hl] + inc hl + xor a + ld [hli], a + ld a, $20 + ld [hli], a + ld a, $1 + add $40 + add $80 + push af + ld a, [wd002] + bit 6, a + jr z, .asm_4871a + pop af + add $2 + push af +.asm_4871a + pop af + ld [hli], a + ld a, $1 +rept 2 + ld [hli], a +endr + xor a +rept 3 + ld [hli], a +endr + ret + +Function48725: ; 48725 (12:4725) + ld a, [wd003] + bit 0, a + jr z, .asm_4873a + bit 1, a + jr z, .asm_4873a + bit 2, a + jr z, .asm_4873a + bit 3, a + jr z, .asm_4873a + scf + ret +.asm_4873a + and a + ret + +Function4873c: ; 4873c (12:473c) + ld hl, wcfa1 + ld a, $4 + ld [hli], a + ld a, $c + ld [hli], a + ld a, $2 + ld [hli], a + ld a, $1 + ld [hli], a + ld [hl], $0 + set 5, [hl] + inc hl + xor a + ld [hli], a + ld a, $20 + ld [hli], a + ld a, $1 + add $2 + ld [hli], a + ld a, [PlayerGender] + and a + jr z, .asm_48764 + ld a, $2 + jr .asm_48766 +.asm_48764 + ld a, $1 +.asm_48766 + ld [hli], a + ld a, $1 + ld [hli], a + xor a +rept 3 + ld [hli], a +endr + ret + +Function4876f: ; 4876f (12:476f) + call Function48283 + hlcoord 1, 16 + ld de, String_484be + call PlaceString + ld hl, MenuDataHeader_0x48509 + call LoadMenuDataHeader + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + hlcoord 10, 5 + ld b, $1 + ld c, $8 + call Function48cdc + call WaitBGMap + ld a, [wd473] + and a + jr z, .asm_487ab + cp $64 + jr z, .asm_487b2 + hlcoord 12, 5 + ld [hl], $10 + hlcoord 12, 7 + ld [hl], $11 + jr .asm_487b7 +.asm_487ab + hlcoord 12, 5 + ld [hl], $10 + jr .asm_487b7 +.asm_487b2 + hlcoord 12, 7 + ld [hl], $11 +.asm_487b7 + hlcoord 11, 6 + call Function487ec + ld c, 10 + call DelayFrames + ld a, [wd473] + push af +.asm_487c6 + call JoyTextDelay + call Function4880e + jr nc, .asm_487c6 + ld a, $1 + call Function1ff8 + pop bc + jr nz, .asm_487da + ld a, b + ld [wd473], a +.asm_487da + ld a, [wd473] + call ExitMenu + hlcoord 11, 6 + call Function487ec + pop af + ld [hInMenu], a + jp Function4840c + +Function487ec: ; 487ec (12:47ec) + push hl + ld de, wd473 + call Function487ff + pop hl +rept 4 + inc hl +endr + ld de, String_4880d + call PlaceString + ret + +Function487ff: ; 487ff (12:47ff) + push hl + ld a, " " + ld [hli], a + ld [hl], a + pop hl + ld b, PRINTNUM_LEADINGZEROS | 1 + ld c, 3 + call PrintNum + ret +; 4880d (12:480d) + +String_4880d: ; 4880d + db "@" +; 4880e + +Function4880e: ; 4880e (12:480e) + ld a, [hJoyPressed] + and A_BUTTON + jp nz, Function488b9 + ld a, [hJoyPressed] + and B_BUTTON + jp nz, Function488b4 + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, .asm_48843 + ld a, [hl] + and D_DOWN + jr nz, .asm_48838 + ld a, [hl] + and D_LEFT + jr nz, .asm_4884f + ld a, [hl] + and D_RIGHT + jr nz, .asm_4885f + call DelayFrame + and a + ret +.asm_48838 + ld hl, wd473 + ld a, [hl] + and a + jr z, .asm_48840 + dec a +.asm_48840 + ld [hl], a + jr .asm_4886f +.asm_48843 + ld hl, wd473 + ld a, [hl] + cp $64 + jr nc, .asm_4884c + inc a +.asm_4884c + ld [hl], a + jr .asm_4886f +.asm_4884f + ld a, [wd473] + cp $5b + jr c, .asm_48858 + ld a, $5a +.asm_48858 + add $a + ld [wd473], a + jr .asm_4886f +.asm_4885f + ld a, [wd473] + cp $a + jr nc, .asm_48868 + ld a, $a +.asm_48868 + sub $a + ld [wd473], a + jr .asm_4886f +.asm_4886f + ld a, [wd473] + and a + jr z, .asm_48887 + cp $64 + jr z, .asm_48898 + jr z, .asm_488a7 + hlcoord 12, 5 + ld [hl], $10 + hlcoord 12, 7 + ld [hl], $11 + jr .asm_488a7 +.asm_48887 + hlcoord 10, 5 + ld b, $1 + ld c, $8 + call Function48cdc + hlcoord 12, 5 + ld [hl], $10 + jr .asm_488a7 +.asm_48898 + hlcoord 10, 5 + ld b, $1 + ld c, $8 + call Function48cdc + hlcoord 12, 7 + ld [hl], $11 +.asm_488a7 + hlcoord 11, 6 + call Function487ec + call WaitBGMap + ld a, $1 + and a + ret + +Function488b4: ; 488b4 (12:48b4) + ld a, $0 + and a + scf + ret + +Function488b9: ; 488b9 (12:48b9) + ld a, [wd003] + set 1, a + ld [wd003], a + scf + ret +; 488c3 (12:48c3) + +GFX_488c3: ; 488c3 +INCBIN "gfx/unknown/0488c3.2bpp" + +GFX_488cb: ; 488cb +INCBIN "gfx/unknown/0488cb.2bpp" + +Function488d3: ; 488d3 (12:48d3) + call Function48283 + hlcoord 1, 16 + ld de, String_484e2 + call PlaceString + call Function48a3a + jp c, Function4840c + ld hl, MenuDataHeader_0x4850e + call LoadMenuDataHeader + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + hlcoord 10, 9 + ld b, $1 + ld c, $8 + call Function48cdc + ld a, [wd475] + and $f + ld d, $0 + hlcoord 11, 10 + call Function489ea + call WaitBGMap + ld a, [wd475] + ld b, a + ld a, [wd476] + ld c, a + ld a, [wd477] + ld d, a + ld a, [wd478] + ld e, a + push de + push bc + ld d, $0 + ld b, $0 + +asm_48922: ; 48922 (12:4922) + push bc + call JoyTextDelay + ld a, [hJoyDown] + and a + jp z, Function4896e + bit 0, a + jp nz, Function4896e + bit 1, a + jp nz, Function4896e + ld a, [wd002] + and %11001111 + res 7, a + ld [wd002], a + pop bc + inc b + ld a, b + cp $5 + push bc + jr c, .asm_4894c + pop bc + ld b, $4 + push bc +.asm_4894c + pop bc + push bc + ld a, b + cp $4 + jr nz, asm_48972 + ld c, 10 + call DelayFrames + jr asm_48972 +; 4895a (12:495a) + +Function4895a: ; 4895a + ld a, [hJoyPressed] + and a + jr z, .asm_48965 + pop bc + ld b, $1 + push bc + jr asm_48972 + +.asm_48965 + ld a, [hJoyLast] + and a + jr z, asm_48972 + + pop bc + ld b, $1 + push bc + +Function4896e: ; 4896e (12:496e) + pop bc + ld b, $0 + push bc + +asm_48972: ; 48972 (12:4972) + call Function48ab5 + push af + cp $f0 + jr z, .asm_48994 + cp $f + jr nz, .asm_48988 + ld a, [wd002] + set 7, a + and $cf + ld [wd002], a +.asm_48988 + hlcoord 11, 10 + ld b, $0 + ld c, d + add hl, bc + ld b, $3 + call Function48c11 +.asm_48994 + call WaitBGMap + pop af + pop bc + jr nc, asm_48922 + jr nz, .asm_489b1 + pop bc + ld a, b + ld [wd475], a + ld a, c + ld [wd476], a + pop bc + ld a, b + ld [wd477], a + ld a, c + ld [wd478], a + jr .asm_489c5 +.asm_489b1 + push af + ld a, [wd479] + set 0, a + ld [wd479], a + ld a, [wd003] + set 3, a + ld [wd003], a + pop af + pop bc + pop bc +.asm_489c5 + push af + push bc + push de + push hl + ld a, $1 + call Function1ff8 + pop hl + pop de + pop bc + pop af + call ExitMenu + hlcoord 11, 10 + call Function489ea + hlcoord 11, 9 + lb bc, 1, 8 + call ClearBox + pop af + ld [hInMenu], a + jp Function4840c + +Function489ea: ; 489ea (12:49ea) + push de + ld a, [wd475] + and $f + call Function48444 + ld a, [wd476] + and $f0 + swap a + inc hl + call Function48444 + ld a, [wd476] + and $f + inc hl + call Function48444 + inc hl + ld de, String_48a38 + call PlaceString + ld a, [wd477] + and $f0 + swap a + inc hl + call Function48444 + ld a, [wd477] + and $f + inc hl + call Function48444 + ld a, [wd478] + and $f0 + swap a + inc hl + call Function48444 + ld a, [wd478] + and $f + inc hl + call Function48444 + pop de + ret +; 48a38 (12:4a38) + +String_48a38: ; 48a38 + db "-@" +; 48a3a + +Function48a3a: ; 48a3a (12:4a3a) + ld hl, MenuDataHeader_0x48a9c + call LoadMenuDataHeader + call Function4873c + ld a, $a + ld [wcfa1], a + ld a, $b + ld [wcfa2], a + ld a, $1 + ld [MenuSelection2], a + hlcoord 10, 8 + ld b, $4 + ld c, $8 + call Function48cdc + hlcoord 12, 10 + ld de, String_48aa1 + call PlaceString + call Function1bc9 + push af + call PlayClickSFX + call ExitMenu + pop af + bit 1, a + jp nz, Function48a9a + ld a, [MenuSelection2] + cp $1 + jr z, .asm_48a98 + ld a, [wd003] + set 3, a + ld [wd003], a + ld a, [wd479] + res 0, a + ld [wd479], a + xor a + ld bc, $4 + ld hl, wd475 + call ByteFill + jr Function48a9a +.asm_48a98 + and a + ret + +Function48a9a: ; 48a9a (12:4a9a) + scf + ret +; 48a9c (12:4a9c) + +MenuDataHeader_0x48a9c: ; 0x48a9c + db $40 ; flags + db 08, 10 ; start coords + db 13, 19 ; end coord + +String_48aa1: ; 48aa1 + db "Tell Now" + next "Tell Later@" +; 48ab5 + + +Function48ab5: ; 48ab5 (12:4ab5) + ld a, [hJoyPressed] + and A_BUTTON + jp nz, Function48c0f + ld a, [hJoyPressed] + and B_BUTTON + jp nz, Function48c0d + ld a, d + and a + jr z, .asm_48adf + cp $1 + jr z, .asm_48ae7 + cp $2 + jr z, .asm_48af1 + cp $3 + jr z, .asm_48af9 + cp $4 + jr z, .asm_48b03 + cp $5 + jr z, .asm_48b0b + cp $6 + jr .asm_48b15 +.asm_48adf + ld hl, wd475 + ld a, [hl] + and $f + jr .asm_48b1d +.asm_48ae7 + ld hl, wd476 + ld a, [hl] + swap a + or $f0 + jr .asm_48b1d +.asm_48af1 + ld hl, wd476 + ld a, [hl] + and $f + jr .asm_48b1d +.asm_48af9 + ld hl, wd477 + ld a, [hl] + swap a + or $f0 + jr .asm_48b1d +.asm_48b03 + ld hl, wd477 + ld a, [hl] + and $f + jr .asm_48b1d +.asm_48b0b + ld hl, wd478 + ld a, [hl] + swap a + or $f0 + jr .asm_48b1d +.asm_48b15 + ld hl, wd478 + ld a, [hl] + and $f + jr .asm_48b1d +.asm_48b1d + push hl + push af + ld e, $0 + hlcoord 11, 10 + ld a, d +.asm_48b25 + and a + jr z, .asm_48b2c + inc e + dec a + jr .asm_48b25 +.asm_48b2c + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, .asm_48b8d + ld a, [hl] + and D_DOWN + jr nz, .asm_48b55 + ld a, [hl] + and D_LEFT + jp nz, Function48bd7 + ld a, [hl] + and D_RIGHT + jr nz, .asm_48b9d + hlcoord 11, 10 + call Function489ea + ld a, [wd002] + bit 7, a + jr nz, .asm_48b51 +.asm_48b51 + pop bc + pop bc + and a + ret +.asm_48b55 + pop af + ld b, a + and $f + and a + ld a, b + jr nz, .asm_48b61 + and $f0 + add $a +.asm_48b61 + dec a +.asm_48b62 + push de + push af + hlcoord 10, 9 + ld b, $1 + ld c, $8 + call Function48cdc + pop af + pop de + hlcoord 11, 10 + ld b, a + ld a, d + cp $3 + jr c, .asm_48b7a + inc hl +.asm_48b7a + ld a, b + pop hl + bit 7, a + jr z, .asm_48b85 + call Function48c4d + jr .asm_48b88 +.asm_48b85 + call Function48c5a +.asm_48b88 + ld a, $f0 + jp Function48c00 +.asm_48b8d + pop af + ld b, a + and $f + cp $9 + ld a, b + jr c, .asm_48b9a + and $f0 + add $ff +.asm_48b9a + inc a + jr .asm_48b62 +.asm_48b9d + push de + hlcoord 10, 9 + ld b, $1 + ld c, $8 + call Function48cdc + pop de + ld a, d + cp $6 + jr nc, .asm_48baf + inc d +.asm_48baf + pop af + pop hl + ld b, a + ld a, d + cp $6 + ld a, b + jr z, .asm_48bc4 + bit 7, a + jr nz, .asm_48bc4 + inc hl + ld a, [hl] + swap a + and $f + jr asm_48bc7 +.asm_48bc4 + ld a, [hl] + and $f + +asm_48bc7: ; 48bc7 (12:4bc7) + hlcoord 11, 10 + push af + ld a, d + cp $3 + pop bc + ld a, b + jr c, .asm_48bd3 + inc hl +.asm_48bd3 + ld a, $f + jr Function48c00 + +Function48bd7: ; 48bd7 (12:4bd7) + push de + hlcoord 10, 9 + ld b, $1 + ld c, $8 + call Function48cdc + pop de + ld a, d + and a + pop af + pop hl + ld b, a + ld a, d + and a + ld a, b + jr z, .asm_48bf3 + bit 7, a + jr z, .asm_48bf8 + dec d + dec hl +.asm_48bf3 + ld a, [hl] + and $f + jr asm_48bc7 +.asm_48bf8 + dec d + ld a, [hl] + swap a + and $f + jr asm_48bc7 + +Function48c00: ; 48c00 (12:4c00) + push af + hlcoord 11, 10 + call Function489ea + ld a, $1 + and a + pop bc + ld a, b + ret + +Function48c0d: ; 48c0d (12:4c0d) + xor a + and a + +Function48c0f: ; 48c0f (12:4c0f) + scf + ret + +Function48c11: ; 48c11 (12:4c11) + ld a, [wd002] + bit 7, a + jr z, .asm_48c20 + ld a, d + cp $3 + jr c, .asm_48c1e + inc hl +.asm_48c1e + ld [hl], $7f +.asm_48c20 + ld a, [wd002] + swap a + and $3 + inc a + cp b + jr nz, .asm_48c40 + ld a, [wd002] + bit 7, a + jr z, .asm_48c3a + res 7, a + ld [wd002], a + xor a + jr .asm_48c40 +.asm_48c3a + set 7, a + ld [wd002], a + xor a +.asm_48c40 + swap a + ld b, a + ld a, [wd002] + and $cf + or b + ld [wd002], a + ret + +Function48c4d: ; 48c4d (12:4c4d) + swap a + and $f0 + push af + ld a, [hl] + and $f + ld [hl], a + pop af + or [hl] + ld [hl], a + ret + +Function48c5a: ; 48c5a (12:4c5a) + push af + ld a, [hl] + and $f0 + ld [hl], a + pop af + or [hl] + ld [hl], a + ret + +Function48c63: ; 48c63 + ld a, "@" + ld [de], a + ld a, c + cp $30 + jr nc, .asm_48c8c + and a + jr z, .asm_48c8c + dec c + push de + ld h, d + ld l, e + ld a, "@" + ld b, 7 +.asm_48c76 + ld [hli], a + dec b + jr nz, .asm_48c76 + ld hl, Prefectures + ld a, c + call GetNthString +.asm_48c81 + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + cp "@" + jr nz, .asm_48c81 + and a + pop de + ret + +.asm_48c8c + scf + ret +; 48c8e + +Function48c8e: ; 48c8e + ld hl, wd02a + ld d, h + ld e, l + callba Function48c63 + hlcoord 10, 7 + call PlaceString + call WaitBGMap + ret +; 48ca3 + +Function48ca3: ; 48ca3 + push af + push bc + push de + push hl + ld b, 0 + ld c, 0 + ld d, 0 +.asm_48cad + cp 100 + jr c, .asm_48cb6 + sub 100 + inc b + jr .asm_48cad + +.asm_48cb6 + cp 10 + jr c, .asm_48cbf + sub 10 + inc c + jr .asm_48cb6 + +.asm_48cbf + cp 1 + jr c, .asm_48cc7 + dec a + inc d + jr .asm_48cbf + +.asm_48cc7 + ld a, b + call Function48444 + inc hl + ld a, c + call Function48444 + inc hl + ld a, d + call Function48444 + pop hl + pop de + pop bc + pop af + ret +; 48cda + +Function48cda: ; 48cda (12:4cda) + ld h, d + ld l, e + +Function48cdc: ; 48cdc (12:4cdc) + push bc + push hl + call Function48cfd + pop hl + pop bc + ld de, AttrMap - TileMap + add hl, de +rept 2 + inc b +endr +rept 2 + inc c +endr + ld a, $0 +.asm_48ced + push bc + push hl +.asm_48cef + ld [hli], a + dec c + jr nz, .asm_48cef + pop hl + ld de, $14 + add hl, de + pop bc + dec b + jr nz, .asm_48ced + ret + +Function48cfd: ; 48cfd (12:4cfd) + push hl + ld a, $4 + ld [hli], a + inc a + call Function48d2a + inc a + ld [hl], a + pop hl + ld de, $14 + add hl, de +.asm_48d0c + push hl + ld a, $7 + ld [hli], a + ld a, $7f + call Function48d2a + ld [hl], $8 + pop hl + ld de, $14 + add hl, de + dec b + jr nz, .asm_48d0c + ld a, $9 + ld [hli], a + ld a, $a + call Function48d2a + ld [hl], $b + ret + +Function48d2a: ; 48d2a (12:4d2a) + ld d, c +.asm_48d2b + ld [hli], a + dec d + jr nz, .asm_48d2b + ret + +Function48d30: ; 48d30 (12:4d30) + ld hl, wd475 + call Function48d4a + ld hl, wd477 + call Function48d4a + ret + +Function48d3d: ; 48d3d (12:4d3d) + ld hl, wd475 + call Function48d94 + ld hl, wd477 + call Function48d94 + ret + +Function48d4a: ; 48d4a (12:4d4a) + inc hl + ld a, [hl] + ld b, a + and $f + ld c, a + srl b + srl b + srl b + srl b + push bc + ld c, 10 + ld a, b + call SimpleMultiply + pop bc + add c + ld [hld], a + xor a + ld [hMultiplicand + 0], a + ld [hMultiplicand + 1], a + ld a, [hl] + srl a + srl a + srl a + srl a + ld c, 10 + call SimpleMultiply + ld b, a + ld a, [hli] + and $f + add b + ld [hMultiplicand + 2], a + ld a, 100 + ld [hMultiplier], a + call Multiply + ld a, [hProduct + 2] + ld b, a + ld a, [hProduct + 3] + ld c, a + ld e, [hl] + add e + ld c, a + ld a, b + adc $0 + ld b, a + ld a, c + ld [hld], a + ld [hl], b + ret + +Function48d94: ; 48d94 (12:4d94) + xor a + ld [hDividend + 0], a + ld [hDividend + 1], a + ld a, [hli] + ld [hDividend + 0], a + ld a, [hl] + ld [hDividend + 1], a + ld a, 100 + ld [hDivisor], a + ld b, 2 + call Divide + ld a, [hDivisor] + ld c, $a + call SimpleDivide + sla b + sla b + sla b + sla b + or b + ld [hld], a + ld a, [hQuotient + 2] + ld c, 10 + call SimpleDivide + sla b + sla b + sla b + sla b + or b + ld [hl], a + ret From 4bfe086ef6412e5fdba99e6143db6de75c7c9458 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 17 Nov 2015 12:29:37 -0500 Subject: [PATCH 17/40] Phone scripts and specials --- engine/buena_phone_scripts.asm | 152 +++---- engine/link.asm | 2 +- engine/map_objects.asm | 4 +- engine/more_phone_scripts.asm | 556 +++++++++++------------ engine/phone_scripts.asm | 774 ++++++++++++++++----------------- engine/predef.asm | 2 +- engine/specials.asm | 12 +- event/buena.asm | 2 +- event/celebi.asm | 10 +- main.asm | 48 +- maps/CeladonDeptStore6F.asm | 4 +- maps/IlexForest.asm | 2 +- maps/PokeCenter2F.asm | 20 +- maps/RadioTower2F.asm | 2 +- 14 files changed, 798 insertions(+), 792 deletions(-) diff --git a/engine/buena_phone_scripts.asm b/engine/buena_phone_scripts.asm index 3c0717503..98a7b72a3 100644 --- a/engine/buena_phone_scripts.asm +++ b/engine/buena_phone_scripts.asm @@ -1,168 +1,170 @@ BuenaPhoneScript1: checkflag ENGINE_ROCKETS_IN_RADIO_TOWER - iftrue UnknownScript_0xa0b73 + iftrue BuenaPhoneScript_Rocket checkcode VAR_HOUR - if_greater_than 17, UnknownScript_0xa0b4b - scall UnknownScript_0xa0b32 - jump UnknownScript_0xa0c0e + if_greater_than 17, BuenaPhoneScript_AfterMidnight1 + scall BuenaPhoneScript_CheckTimeOfDay1 + jump BuenaPhoneScript_Random1 BuenaPhoneScript2: checkflag ENGINE_ROCKETS_IN_RADIO_TOWER - iftrue UnknownScript_0xa0b73 - scall UnknownScript_0xa0b4f - jump UnknownScript_0xa0b77 + iftrue BuenaPhoneScript_Rocket + scall BuenaPhoneScript_CheckTimeOfDay2 + jump BuenaPhoneScript_Random2 -UnknownScript_0xa0b32: +BuenaPhoneScript_CheckTimeOfDay1: checkmorn - iftrue UnknownScript_0xa0b41 + iftrue .morn checkday - iftrue UnknownScript_0xa0b46 + iftrue .day writetext UnknownText_0xa0d42 keeptextopen end -UnknownScript_0xa0b41: +.morn: writetext UnknownText_0xa0c28 keeptextopen end -UnknownScript_0xa0b46: +.day: writetext UnknownText_0xa0c72 keeptextopen end -UnknownScript_0xa0b4b: +BuenaPhoneScript_AfterMidnight1: writetext UnknownText_0xa0caf end -UnknownScript_0xa0b4f: +BuenaPhoneScript_CheckTimeOfDay2: checkcode VAR_HOUR - if_greater_than 17, UnknownScript_0xa0b6e + if_greater_than 17, BuenaPhoneScript_AfterMidnight2 checkmorn - iftrue UnknownScript_0xa0b64 + iftrue .morn checkday - iftrue UnknownScript_0xa0b69 + iftrue .day writetext UnknownText_0xa0e29 keeptextopen end -UnknownScript_0xa0b64: +.morn: writetext UnknownText_0xa0d96 keeptextopen end -UnknownScript_0xa0b69: +.day: writetext UnknownText_0xa0dcf keeptextopen end -UnknownScript_0xa0b6e: +BuenaPhoneScript_AfterMidnight2: writetext UnknownText_0xa0e01 keeptextopen end -UnknownScript_0xa0b73: +BuenaPhoneScript_Rocket: writetext UnknownText_0xa0e5e end -UnknownScript_0xa0b77: +BuenaPhoneScript_Random2: checkevent EVENT_BEAT_ELITE_FOUR - iftrue UnknownScript_0xa0b82 + iftrue .PostE4 random 11 - jump UnknownScript_0xa0b84 + jump .Jumptable -UnknownScript_0xa0b82: +.PostE4: random 14 -UnknownScript_0xa0b84: - if_equal 0, UnknownScript_0xa0bbc - if_equal 1, UnknownScript_0xa0bc2 - if_equal 2, UnknownScript_0xa0bc8 - if_equal 3, UnknownScript_0xa0bce - if_equal 4, UnknownScript_0xa0bd4 - if_equal 5, UnknownScript_0xa0bda - if_equal 6, UnknownScript_0xa0be0 - if_equal 7, UnknownScript_0xa0be6 - if_equal 8, UnknownScript_0xa0bec - if_equal 9, UnknownScript_0xa0bf2 - if_equal 10, UnknownScript_0xa0bf8 - if_equal 11, UnknownScript_0xa0bfe - if_equal 12, UnknownScript_0xa0c04 - if_equal 13, UnknownScript_0xa0c0a +.Jumptable: + if_equal 0, .zero + if_equal 1, .one + if_equal 2, .two + if_equal 3, .three + if_equal 4, .four + if_equal 5, .five + if_equal 6, .six + if_equal 7, .seven + if_equal 8, .eight + if_equal 9, .nine + if_equal 10, .ten + if_equal 11, .eleven + if_equal 12, .twelve + if_equal 13, .thirteen -UnknownScript_0xa0bbc: +.zero: writetext UnknownText_0xa0efb - jump UnknownScript_0xa0c0d + jump .finish -UnknownScript_0xa0bc2: +.one: writetext UnknownText_0xa0fcf - jump UnknownScript_0xa0c0d + jump .finish -UnknownScript_0xa0bc8: +.two: writetext UnknownText_0xa109d - jump UnknownScript_0xa0c0d + jump .finish -UnknownScript_0xa0bce: +.three: writetext UnknownText_0xa1143 - jump UnknownScript_0xa0c0d + jump .finish -UnknownScript_0xa0bd4: +.four: writetext UnknownText_0xa1244 - jump UnknownScript_0xa0c0d + jump .finish -UnknownScript_0xa0bda: +.five: writetext UnknownText_0xa1318 - jump UnknownScript_0xa0c0d + jump .finish -UnknownScript_0xa0be0: +.six: writetext UnknownText_0xa13d8 - jump UnknownScript_0xa0c0d + jump .finish -UnknownScript_0xa0be6: +.seven: writetext UnknownText_0xa1488 - jump UnknownScript_0xa0c0d + jump .finish -UnknownScript_0xa0bec: +.eight: writetext UnknownText_0xa15de - jump UnknownScript_0xa0c0d + jump .finish -UnknownScript_0xa0bf2: +.nine: writetext UnknownText_0xa1717 - jump UnknownScript_0xa0c0d + jump .finish -UnknownScript_0xa0bf8: +.ten: writetext UnknownText_0xa183d - jump UnknownScript_0xa0c0d + jump .finish -UnknownScript_0xa0bfe: +.eleven: writetext UnknownText_0xa19b1 - jump UnknownScript_0xa0c0d + jump .finish -UnknownScript_0xa0c04: +.twelve: writetext UnknownText_0xa1ac0 - jump UnknownScript_0xa0c0d + jump .finish -UnknownScript_0xa0c0a: +.thirteen: writetext UnknownText_0xa1bed -UnknownScript_0xa0c0d: +.finish: end -UnknownScript_0xa0c0e: +BuenaPhoneScript_Random1: random 3 - if_equal 0, UnknownScript_0xa0c1c - if_equal 1, UnknownScript_0xa0c20 - if_equal 2, UnknownScript_0xa0c24 + if_equal 0, .zero + if_equal 1, .one + if_equal 2, .two -UnknownScript_0xa0c1c: +.zero: writetext UnknownText_0xa1c88 end -UnknownScript_0xa0c20: +.one: writetext UnknownText_0xa1d5f end -UnknownScript_0xa0c24: +.two: writetext UnknownText_0xa1e2f end ; a0c28 + +INCLUDE "text/phone/buena.asm" diff --git a/engine/link.asm b/engine/link.asm index c50a6ff42..27a9ebcc4 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -1916,7 +1916,7 @@ Function28b87: ; 28b87 ld de, TempMonSpecies ld bc, PARTYMON_STRUCT_LENGTH call CopyBytes - predef Functionda96 + predef AddTempmonToParty ld a, [PartyCount] dec a ld [CurPartyMon], a diff --git a/engine/map_objects.asm b/engine/map_objects.asm index ef8878565..168c5389c 100644 --- a/engine/map_objects.asm +++ b/engine/map_objects.asm @@ -3078,16 +3078,18 @@ ContinueSpawnFacing: ; 57db ret ; 57e2 -Function57e2: ; 57e2 +SetPlayerPalette: ; 57e2 ld a, d and %10000000 ret z + ld bc, 0 ; debug? ld hl, OBJECT_FACING add hl, bc ld a, [hl] or d ld [hl], a + ld a, d swap a and %00000111 diff --git a/engine/more_phone_scripts.asm b/engine/more_phone_scripts.asm index 5bc1f1560..f0c835e92 100644 --- a/engine/more_phone_scripts.asm +++ b/engine/more_phone_scripts.asm @@ -56,468 +56,468 @@ UnknownScript_0xa0074: UnknownScript_0xa007c: checkcode VAR_CALLERID - if_equal $5, UnknownScript_0xa00c2 - if_equal $b, UnknownScript_0xa00c8 - if_equal $d, UnknownScript_0xa00ce - if_equal $f, UnknownScript_0xa00d4 - if_equal $10, UnknownScript_0xa00da - if_equal $11, UnknownScript_0xa00e0 - if_equal $13, UnknownScript_0xa00e6 - if_equal $14, UnknownScript_0xa00ec - if_equal $17, UnknownScript_0xa00f2 - if_equal $18, UnknownScript_0xa00f8 - if_equal $1b, UnknownScript_0xa00fe - if_equal $1c, UnknownScript_0xa0104 - if_equal $1d, UnknownScript_0xa010a - if_equal $1e, UnknownScript_0xa0110 - if_equal $20, UnknownScript_0xa0116 - if_equal $21, UnknownScript_0xa011c - if_equal $23, UnknownScript_0xa0122 + if_equal PHONE_SCHOOLBOY_JACK, .Jack + if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven + if_equal PHONE_BIRDKEEPER_JOSE, .Jose + if_equal PHONE_YOUNGSTER_JOEY, .Joey + if_equal PHONE_BUG_CATCHER_WADE, .Wade + if_equal PHONE_FISHER_RALPH, .Ralph + if_equal PHONE_HIKER_ANTHONY, .Anthony + if_equal PHONE_CAMPER_TODD, .Todd + if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie + if_equal PHONE_SCHOOLBOY_ALAN, .Alan + if_equal PHONE_SCHOOLBOY_CHAD, .Chad + if_equal PHONE_POKEFANM_DEREK, .Derek + if_equal PHONE_FISHER_TULLY, .Tully + if_equal PHONE_POKEMANIAC_BRENT, .Brent + if_equal PHONE_BIRDKEEPER_VANCE, .Vance + if_equal PHONE_FISHER_WILTON, .Wilton + if_equal PHONE_HIKER_PARRY, .Parry -UnknownScript_0xa00c2: +.Jack: farwritetext UnknownText_0x1740c0 keeptextopen end -UnknownScript_0xa00c8: +.Gaven: farwritetext UnknownText_0x174a24 keeptextopen end -UnknownScript_0xa00ce: +.Jose: farwritetext UnknownText_0x174f2f keeptextopen end -UnknownScript_0xa00d4: +.Joey: farwritetext UnknownText_0x175530 keeptextopen end -UnknownScript_0xa00da: +.Wade: farwritetext UnknownText_0x1757d4 keeptextopen end -UnknownScript_0xa00e0: +.Ralph: farwritetext UnknownText_0x175bc4 keeptextopen end -UnknownScript_0xa00e6: +.Anthony: farwritetext UnknownText_0x176a2f keeptextopen end -UnknownScript_0xa00ec: +.Todd: farwritetext UnknownText_0x176e5d keeptextopen end -UnknownScript_0xa00f2: +.Arnie: farwritetext UnknownText_0x649dc keeptextopen end -UnknownScript_0xa00f8: +.Alan: farwritetext UnknownText_0x64cbd keeptextopen end -UnknownScript_0xa00fe: +.Chad: farwritetext UnknownText_0x65271 keeptextopen end -UnknownScript_0xa0104: +.Derek: farwritetext UnknownText_0x65ab2 keeptextopen end -UnknownScript_0xa010a: +.Tully: farwritetext UnknownText_0x65de4 keeptextopen end -UnknownScript_0xa0110: +.Brent: farwritetext UnknownText_0x660be keeptextopen end -UnknownScript_0xa0116: +.Vance: farwritetext UnknownText_0x66980 keeptextopen end -UnknownScript_0xa011c: +.Wilton: farwritetext UnknownText_0x66afc keeptextopen end -UnknownScript_0xa0122: +.Parry: farwritetext UnknownText_0x66f9f keeptextopen end UnknownScript_0xa0128: checkcode VAR_CALLERID - if_equal $6, UnknownScript_0xa014a - if_equal $c, UnknownScript_0xa0150 - if_equal $e, UnknownScript_0xa0156 - if_equal $12, UnknownScript_0xa015c - if_equal $15, UnknownScript_0xa0162 - if_equal $1a, UnknownScript_0xa0168 - if_equal $1f, UnknownScript_0xa016e - if_equal $24, UnknownScript_0xa0174 + if_equal PHONE_POKEFAN_BEVERLY, .Beverly + if_equal PHONE_COOLTRAINERF_BETH, .Beth + if_equal PHONE_COOLTRAINERF_REENA, .Reena + if_equal PHONE_PICNICKER_LIZ, .Liz + if_equal PHONE_PICNICKER_GINA, .Gina + if_equal PHONE_LASS_DANA, .Dana + if_equal PHONE_PICNICKER_TIFFANY, .Tiffany + if_equal PHONE_PICNICKER_ERIN, .Erin -UnknownScript_0xa014a: +.Beverly: farwritetext UnknownText_0x174688 keeptextopen end -UnknownScript_0xa0150: +.Beth: farwritetext UnknownText_0x174c7f keeptextopen end -UnknownScript_0xa0156: +.Reena: farwritetext UnknownText_0x1752f5 keeptextopen end -UnknownScript_0xa015c: +.Liz: farwritetext UnknownText_0x175fda keeptextopen end -UnknownScript_0xa0162: +.Gina: farwritetext UnknownText_0x1771fd keeptextopen end -UnknownScript_0xa0168: +.Dana: farwritetext UnknownText_0x64f74 keeptextopen end -UnknownScript_0xa016e: +.Tiffany: farwritetext UnknownText_0x665ad keeptextopen end -UnknownScript_0xa0174: +.Erin: farwritetext UnknownText_0x6717a keeptextopen end UnknownScript_0xa017a: checkcode VAR_CALLERID - if_equal $5, UnknownScript_0xa01c0 - if_equal $b, UnknownScript_0xa01c6 - if_equal $d, UnknownScript_0xa01cc - if_equal $f, UnknownScript_0xa01d2 - if_equal $10, UnknownScript_0xa01d8 - if_equal $11, UnknownScript_0xa01de - if_equal $13, UnknownScript_0xa01e4 - if_equal $14, UnknownScript_0xa01ea - if_equal $17, UnknownScript_0xa01f0 - if_equal $18, UnknownScript_0xa01f6 - if_equal $1b, UnknownScript_0xa01fc - if_equal $1c, UnknownScript_0xa0202 - if_equal $1d, UnknownScript_0xa0208 - if_equal $1e, UnknownScript_0xa020e - if_equal $20, UnknownScript_0xa0214 - if_equal $21, UnknownScript_0xa021a - if_equal $23, UnknownScript_0xa0220 + if_equal PHONE_SCHOOLBOY_JACK, .Jack + if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven + if_equal PHONE_BIRDKEEPER_JOSE, .Jose + if_equal PHONE_YOUNGSTER_JOEY, .Joey + if_equal PHONE_BUG_CATCHER_WADE, .Wade + if_equal PHONE_FISHER_RALPH, .Ralph + if_equal PHONE_HIKER_ANTHONY, .Anthony + if_equal PHONE_CAMPER_TODD, .Todd + if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie + if_equal PHONE_SCHOOLBOY_ALAN, .Alan + if_equal PHONE_SCHOOLBOY_CHAD, .Chad + if_equal PHONE_POKEFANM_DEREK, .Derek + if_equal PHONE_FISHER_TULLY, .Tully + if_equal PHONE_POKEMANIAC_BRENT, .Brent + if_equal PHONE_BIRDKEEPER_VANCE, .Vance + if_equal PHONE_FISHER_WILTON, .Wilton + if_equal PHONE_HIKER_PARRY, .Parry -UnknownScript_0xa01c0: +.Jack: farwritetext UnknownText_0x174106 keeptextopen end -UnknownScript_0xa01c6: +.Gaven: farwritetext UnknownText_0x174a80 keeptextopen end -UnknownScript_0xa01cc: +.Jose: farwritetext UnknownText_0x174f90 keeptextopen end -UnknownScript_0xa01d2: +.Joey: farwritetext UnknownText_0x175591 keeptextopen end -UnknownScript_0xa01d8: +.Wade: farwritetext UnknownText_0x175869 keeptextopen end -UnknownScript_0xa01de: +.Ralph: farwritetext UnknownText_0x175c24 keeptextopen end -UnknownScript_0xa01e4: +.Anthony: farwritetext UnknownText_0x176aef keeptextopen end -UnknownScript_0xa01ea: +.Todd: farwritetext UnknownText_0x176e9c keeptextopen end -UnknownScript_0xa01f0: +.Arnie: farwritetext UnknownText_0x64a13 keeptextopen end -UnknownScript_0xa01f6: +.Alan: farwritetext UnknownText_0x64cf3 keeptextopen end -UnknownScript_0xa01fc: +.Chad: farwritetext UnknownText_0x65318 keeptextopen end -UnknownScript_0xa0202: +.Derek: farwritetext UnknownText_0x65b29 keeptextopen end -UnknownScript_0xa0208: +.Tully: farwritetext UnknownText_0x65e42 keeptextopen end -UnknownScript_0xa020e: +.Brent: farwritetext UnknownText_0x6613c keeptextopen end -UnknownScript_0xa0214: +.Vance: farwritetext UnknownText_0x669b2 keeptextopen end -UnknownScript_0xa021a: +.Wilton: farwritetext UnknownText_0x66b3e keeptextopen end -UnknownScript_0xa0220: +.Parry: farwritetext UnknownText_0x66fc0 keeptextopen end UnknownScript_0xa0226: checkcode VAR_CALLERID - if_equal $6, UnknownScript_0xa0248 - if_equal $c, UnknownScript_0xa024e - if_equal $e, UnknownScript_0xa0254 - if_equal $12, UnknownScript_0xa025a - if_equal $15, UnknownScript_0xa0260 - if_equal $1a, UnknownScript_0xa0266 - if_equal $1f, UnknownScript_0xa026c - if_equal $24, UnknownScript_0xa0272 + if_equal PHONE_POKEFAN_BEVERLY, .Beverly + if_equal PHONE_COOLTRAINERF_BETH, .Beth + if_equal PHONE_COOLTRAINERF_REENA, .Reena + if_equal PHONE_PICNICKER_LIZ, .Liz + if_equal PHONE_PICNICKER_GINA, .Gina + if_equal PHONE_LASS_DANA, .Dana + if_equal PHONE_PICNICKER_TIFFANY, .Tiffany + if_equal PHONE_PICNICKER_ERIN, .Erin -UnknownScript_0xa0248: +.Beverly: farwritetext UnknownText_0x1746c3 keeptextopen end -UnknownScript_0xa024e: +.Beth: farwritetext UnknownText_0x174cf6 keeptextopen end -UnknownScript_0xa0254: +.Reena: farwritetext UnknownText_0x17536b keeptextopen end -UnknownScript_0xa025a: +.Liz: farwritetext UnknownText_0x17602d keeptextopen end -UnknownScript_0xa0260: +.Gina: farwritetext UnknownText_0x177237 keeptextopen end -UnknownScript_0xa0266: +.Dana: farwritetext UnknownText_0x64fb2 keeptextopen end -UnknownScript_0xa026c: +.Tiffany: farwritetext UnknownText_0x66605 keeptextopen end -UnknownScript_0xa0272: +.Erin: farwritetext UnknownText_0x671a4 keeptextopen end UnknownScript_0xa0278: checkcode VAR_CALLERID - if_equal $5, UnknownScript_0xa02be - if_equal $b, UnknownScript_0xa02c4 - if_equal $d, UnknownScript_0xa02ca - if_equal $f, UnknownScript_0xa02d0 - if_equal $10, UnknownScript_0xa02d6 - if_equal $11, UnknownScript_0xa02dc - if_equal $13, UnknownScript_0xa02e2 - if_equal $14, UnknownScript_0xa02e8 - if_equal $17, UnknownScript_0xa02ee - if_equal $18, UnknownScript_0xa02f4 - if_equal $1b, UnknownScript_0xa02fa - if_equal $1c, UnknownScript_0xa0300 - if_equal $1d, UnknownScript_0xa0306 - if_equal $1e, UnknownScript_0xa030c - if_equal $20, UnknownScript_0xa0312 - if_equal $21, UnknownScript_0xa0318 - if_equal $23, UnknownScript_0xa031e + if_equal PHONE_SCHOOLBOY_JACK, .Jack + if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven + if_equal PHONE_BIRDKEEPER_JOSE, .Jose + if_equal PHONE_YOUNGSTER_JOEY, .Joey + if_equal PHONE_BUG_CATCHER_WADE, .Wade + if_equal PHONE_FISHER_RALPH, .Ralph + if_equal PHONE_HIKER_ANTHONY, .Anthony + if_equal PHONE_CAMPER_TODD, .Todd + if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie + if_equal PHONE_SCHOOLBOY_ALAN, .Alan + if_equal PHONE_SCHOOLBOY_CHAD, .Chad + if_equal PHONE_POKEFANM_DEREK, .Derek + if_equal PHONE_FISHER_TULLY, .Tully + if_equal PHONE_POKEMANIAC_BRENT, .Brent + if_equal PHONE_BIRDKEEPER_VANCE, .Vance + if_equal PHONE_FISHER_WILTON, .Wilton + if_equal PHONE_HIKER_PARRY, .Parry -UnknownScript_0xa02be: +.Jack: farwritetext UnknownText_0x174165 keeptextopen end -UnknownScript_0xa02c4: +.Gaven: farwritetext UnknownText_0x174b2d keeptextopen end -UnknownScript_0xa02ca: +.Jose: farwritetext UnknownText_0x174ffd keeptextopen end -UnknownScript_0xa02d0: +.Joey: farwritetext UnknownText_0x175611 keeptextopen end -UnknownScript_0xa02d6: +.Wade: farwritetext UnknownText_0x1758e4 keeptextopen end -UnknownScript_0xa02dc: +.Ralph: farwritetext UnknownText_0x175c9f keeptextopen end -UnknownScript_0xa02e2: +.Anthony: farwritetext UnknownText_0x176b45 keeptextopen end -UnknownScript_0xa02e8: +.Todd: farwritetext UnknownText_0x176eee keeptextopen end -UnknownScript_0xa02ee: +.Arnie: farwritetext UnknownText_0x64a71 keeptextopen end -UnknownScript_0xa02f4: +.Alan: farwritetext UnknownText_0x64d4f keeptextopen end -UnknownScript_0xa02fa: +.Chad: farwritetext UnknownText_0x65399 keeptextopen end -UnknownScript_0xa0300: +.Derek: farwritetext UnknownText_0x65bc8 keeptextopen end -UnknownScript_0xa0306: +.Tully: farwritetext UnknownText_0x65eac keeptextopen end -UnknownScript_0xa030c: +.Brent: farwritetext UnknownText_0x6618c keeptextopen end -UnknownScript_0xa0312: +.Vance: farwritetext UnknownText_0x669ed keeptextopen end -UnknownScript_0xa0318: +.Wilton: farwritetext UnknownText_0x66b8f keeptextopen end -UnknownScript_0xa031e: +.Parry: farwritetext UnknownText_0x67001 keeptextopen end UnknownScript_0xa0324: checkcode VAR_CALLERID - if_equal $6, UnknownScript_0xa0346 - if_equal $c, UnknownScript_0xa034c - if_equal $e, UnknownScript_0xa0352 - if_equal $12, UnknownScript_0xa0358 - if_equal $15, UnknownScript_0xa035e - if_equal $1a, UnknownScript_0xa0364 - if_equal $1f, UnknownScript_0xa036a - if_equal $24, UnknownScript_0xa0370 + if_equal PHONE_POKEFAN_BEVERLY, .Beverly + if_equal PHONE_COOLTRAINERF_BETH, .Beth + if_equal PHONE_COOLTRAINERF_REENA, .Reena + if_equal PHONE_PICNICKER_LIZ, .Liz + if_equal PHONE_PICNICKER_GINA, .Gina + if_equal PHONE_LASS_DANA, .Dana + if_equal PHONE_PICNICKER_TIFFANY, .Tiffany + if_equal PHONE_PICNICKER_ERIN, .Erin -UnknownScript_0xa0346: +.Beverly: farwritetext UnknownText_0x174734 keeptextopen end -UnknownScript_0xa034c: +.Beth: farwritetext UnknownText_0x174d86 keeptextopen end -UnknownScript_0xa0352: +.Reena: farwritetext UnknownText_0x1753c5 keeptextopen end -UnknownScript_0xa0358: +.Liz: farwritetext UnknownText_0x176095 keeptextopen end -UnknownScript_0xa035e: +.Gina: farwritetext UnknownText_0x177297 keeptextopen end -UnknownScript_0xa0364: +.Dana: farwritetext UnknownText_0x6501c keeptextopen end -UnknownScript_0xa036a: +.Tiffany: farwritetext UnknownText_0x66688 keeptextopen end -UnknownScript_0xa0370: +.Erin: farwritetext UnknownText_0x671eb keeptextopen end @@ -532,150 +532,150 @@ UnknownScript_0xa037e: UnknownScript_0xa0386: checkcode VAR_CALLERID - if_equal $5, UnknownScript_0xa03cc - if_equal $7, UnknownScript_0xa03d2 - if_equal $b, UnknownScript_0xa03d8 - if_equal $d, UnknownScript_0xa03de - if_equal $f, UnknownScript_0xa03e4 - if_equal $10, UnknownScript_0xa03ea - if_equal $11, UnknownScript_0xa03f0 - if_equal $13, UnknownScript_0xa03f6 - if_equal $14, UnknownScript_0xa03fc - if_equal $17, UnknownScript_0xa0402 - if_equal $18, UnknownScript_0xa0408 - if_equal $1b, UnknownScript_0xa040e - if_equal $1d, UnknownScript_0xa0414 - if_equal $1e, UnknownScript_0xa041a - if_equal $20, UnknownScript_0xa0420 - if_equal $21, UnknownScript_0xa0426 - if_equal $23, UnknownScript_0xa042c + if_equal PHONE_SCHOOLBOY_JACK, .Jack + if_equal PHONE_SAILOR_HUEY, .Huey + if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven + if_equal PHONE_BIRDKEEPER_JOSE, .Jose + if_equal PHONE_YOUNGSTER_JOEY, .Joey + if_equal PHONE_BUG_CATCHER_WADE, .Wade + if_equal PHONE_FISHER_RALPH, .Ralph + if_equal PHONE_HIKER_ANTHONY, .Anthony + if_equal PHONE_CAMPER_TODD, .Todd + if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie + if_equal PHONE_SCHOOLBOY_ALAN, .Alan + if_equal PHONE_SCHOOLBOY_CHAD, .Chad + if_equal PHONE_FISHER_TULLY, .Tully + if_equal PHONE_POKEMANIAC_BRENT, .Brent + if_equal PHONE_BIRDKEEPER_VANCE, .Vance + if_equal PHONE_FISHER_WILTON, .Wilton + if_equal PHONE_HIKER_PARRY, .Parry -UnknownScript_0xa03cc: +.Jack: farwritetext UnknownText_0x1741e1 keeptextopen end -UnknownScript_0xa03d2: +.Huey: farwritetext UnknownText_0x1748ea keeptextopen end -UnknownScript_0xa03d8: +.Gaven: farwritetext UnknownText_0x174bc5 keeptextopen end -UnknownScript_0xa03de: +.Jose: farwritetext UnknownText_0x17507d keeptextopen end -UnknownScript_0xa03e4: +.Joey: farwritetext UnknownText_0x175693 keeptextopen end -UnknownScript_0xa03ea: +.Wade: farwritetext UnknownText_0x175976 keeptextopen end -UnknownScript_0xa03f0: +.Ralph: farwritetext UnknownText_0x175d40 keeptextopen end -UnknownScript_0xa03f6: +.Anthony: farwritetext UnknownText_0x176bee keeptextopen end -UnknownScript_0xa03fc: +.Todd: farwritetext UnknownText_0x176f60 keeptextopen end -UnknownScript_0xa0402: +.Arnie: farwritetext UnknownText_0x64ada keeptextopen end -UnknownScript_0xa0408: +.Alan: farwritetext UnknownText_0x64da4 keeptextopen end -UnknownScript_0xa040e: +.Chad: farwritetext UnknownText_0x65419 keeptextopen end -UnknownScript_0xa0414: +.Tully: farwritetext UnknownText_0x65f17 keeptextopen end -UnknownScript_0xa041a: +.Brent: farwritetext UnknownText_0x66214 keeptextopen end -UnknownScript_0xa0420: +.Vance: farwritetext UnknownText_0x66a3a keeptextopen end -UnknownScript_0xa0426: +.Wilton: farwritetext UnknownText_0x66bf3 keeptextopen end -UnknownScript_0xa042c: +.Parry: farwritetext UnknownText_0x67096 keeptextopen end UnknownScript_0xa0432: checkcode VAR_CALLERID - if_equal $c, UnknownScript_0xa0450 - if_equal $e, UnknownScript_0xa0456 - if_equal $12, UnknownScript_0xa045c - if_equal $15, UnknownScript_0xa0462 - if_equal $1a, UnknownScript_0xa0468 - if_equal $1f, UnknownScript_0xa046e - if_equal $24, UnknownScript_0xa0474 + if_equal PHONE_COOLTRAINERF_BETH, .Beth + if_equal PHONE_COOLTRAINERF_REENA, .Reena + if_equal PHONE_PICNICKER_LIZ, .Liz + if_equal PHONE_PICNICKER_GINA, .Gina + if_equal PHONE_LASS_DANA, .Dana + if_equal PHONE_PICNICKER_TIFFANY, .Tiffany + if_equal PHONE_PICNICKER_ERIN, .Erin -UnknownScript_0xa0450: +.Beth: farwritetext UnknownText_0x174e4e keeptextopen end -UnknownScript_0xa0456: +.Reena: farwritetext UnknownText_0x17543a keeptextopen end -UnknownScript_0xa045c: +.Liz: farwritetext UnknownText_0x17610a keeptextopen end -UnknownScript_0xa0462: +.Gina: farwritetext UnknownText_0x1772e2 keeptextopen end -UnknownScript_0xa0468: +.Dana: farwritetext UnknownText_0x65091 keeptextopen end -UnknownScript_0xa046e: +.Tiffany: farwritetext UnknownText_0x66730 keeptextopen end -UnknownScript_0xa0474: +.Erin: farwritetext UnknownText_0x6722e keeptextopen end @@ -690,147 +690,147 @@ UnknownScript_0xa047f: UnknownScript_0xa0484: checkcode VAR_CALLERID - if_equal $5, UnknownScript_0xa04d6 - if_equal $7, UnknownScript_0xa04db - if_equal $b, UnknownScript_0xa04e0 - if_equal $d, UnknownScript_0xa04e5 - if_equal $f, UnknownScript_0xa04ea - if_equal $10, UnknownScript_0xa04ef - if_equal $11, UnknownScript_0xa04f4 - if_equal $13, UnknownScript_0xa04f9 - if_equal $14, UnknownScript_0xa04fe - if_equal $16, UnknownScript_0xa0503 - if_equal $17, UnknownScript_0xa0508 - if_equal $18, UnknownScript_0xa050d - if_equal $1b, UnknownScript_0xa0512 - if_equal $1c, UnknownScript_0xa0517 - if_equal $1d, UnknownScript_0xa051c - if_equal $1e, UnknownScript_0xa0521 - if_equal $20, UnknownScript_0xa0526 - if_equal $21, UnknownScript_0xa052b - if_equal $22, UnknownScript_0xa0530 - if_equal $23, UnknownScript_0xa0535 + if_equal PHONE_SCHOOLBOY_JACK, .Jack + if_equal PHONE_SAILOR_HUEY, .Huey + if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven + if_equal PHONE_BIRDKEEPER_JOSE, .Jose + if_equal PHONE_YOUNGSTER_JOEY, .Joey + if_equal PHONE_BUG_CATCHER_WADE, .Wade + if_equal PHONE_FISHER_RALPH, .Ralph + if_equal PHONE_HIKER_ANTHONY, .Anthony + if_equal PHONE_CAMPER_TODD, .Todd + if_equal PHONE_JUGGLER_IRWIN, .Irwin + if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie + if_equal PHONE_SCHOOLBOY_ALAN, .Alan + if_equal PHONE_SCHOOLBOY_CHAD, .Chad + if_equal PHONE_POKEFANM_DEREK, .Derek + if_equal PHONE_FISHER_TULLY, .Tully + if_equal PHONE_POKEMANIAC_BRENT, .Brent + if_equal PHONE_BIRDKEEPER_VANCE, .Vance + if_equal PHONE_FISHER_WILTON, .Wilton + if_equal PHONE_BLACKBELT_KENJI, .Kenji + if_equal PHONE_HIKER_PARRY, .Parry -UnknownScript_0xa04d6: +.Jack: farwritetext UnknownText_0x174251 end -UnknownScript_0xa04db: +.Huey: farwritetext UnknownText_0x174962 end -UnknownScript_0xa04e0: +.Gaven: farwritetext UnknownText_0x174c0e end -UnknownScript_0xa04e5: +.Jose: farwritetext UnknownText_0x175106 end -UnknownScript_0xa04ea: +.Joey: farwritetext UnknownText_0x17570a end -UnknownScript_0xa04ef: +.Wade: farwritetext UnknownText_0x1759e7 end -UnknownScript_0xa04f4: +.Ralph: farwritetext UnknownText_0x175db7 end -UnknownScript_0xa04f9: +.Anthony: farwritetext UnknownText_0x176c47 end -UnknownScript_0xa04fe: +.Todd: farwritetext UnknownText_0x176fdb end -UnknownScript_0xa0503: +.Irwin: farwritetext UnknownText_0x64000 end -UnknownScript_0xa0508: +.Arnie: farwritetext UnknownText_0x64b48 end -UnknownScript_0xa050d: +.Alan: farwritetext UnknownText_0x64e1f end -UnknownScript_0xa0512: +.Chad: farwritetext UnknownText_0x65471 end -UnknownScript_0xa0517: +.Derek: farwritetext UnknownText_0x65c4e end -UnknownScript_0xa051c: +.Tully: farwritetext UnknownText_0x65f6e end -UnknownScript_0xa0521: +.Brent: farwritetext UnknownText_0x662a9 end -UnknownScript_0xa0526: +.Vance: farwritetext UnknownText_0x66a93 end -UnknownScript_0xa052b: +.Wilton: farwritetext UnknownText_0x66c58 end -UnknownScript_0xa0530: +.Kenji: farwritetext UnknownText_0x66dab end -UnknownScript_0xa0535: +.Parry: farwritetext UnknownText_0x670eb end UnknownScript_0xa053a: checkcode VAR_CALLERID - if_equal $6, UnknownScript_0xa055c - if_equal $c, UnknownScript_0xa0561 - if_equal $e, UnknownScript_0xa0566 - if_equal $12, UnknownScript_0xa056b - if_equal $15, UnknownScript_0xa0570 - if_equal $1a, UnknownScript_0xa0575 - if_equal $1f, UnknownScript_0xa057a - if_equal $24, UnknownScript_0xa057f + if_equal PHONE_POKEFAN_BEVERLY, .Beverly + if_equal PHONE_COOLTRAINERF_BETH, .Beth + if_equal PHONE_COOLTRAINERF_REENA, .Reena + if_equal PHONE_PICNICKER_LIZ, .Liz + if_equal PHONE_PICNICKER_GINA, .Gina + if_equal PHONE_LASS_DANA, .Dana + if_equal PHONE_PICNICKER_TIFFANY, .Tiffany + if_equal PHONE_PICNICKER_ERIN, .Erin -UnknownScript_0xa055c: +.Beverly: farwritetext UnknownText_0x1747ac end -UnknownScript_0xa0561: +.Beth: farwritetext UnknownText_0x174eb7 end -UnknownScript_0xa0566: +.Reena: farwritetext UnknownText_0x175488 end -UnknownScript_0xa056b: +.Liz: farwritetext UnknownText_0x17620a end -UnknownScript_0xa0570: +.Gina: farwritetext UnknownText_0x177361 end -UnknownScript_0xa0575: +.Dana: farwritetext UnknownText_0x650e2 end -UnknownScript_0xa057a: +.Tiffany: farwritetext UnknownText_0x667f7 end -UnknownScript_0xa057f: +.Erin: farwritetext UnknownText_0x67281 end @@ -856,15 +856,15 @@ UnknownScript_0xa05a0: UnknownScript_0xa05a4: checkcode VAR_CALLERID - if_equal $10, UnknownScript_0xa05ae - if_equal $1c, UnknownScript_0xa05b6 + if_equal PHONE_BUG_CATCHER_WADE, .Wade + if_equal PHONE_POKEFANM_DEREK, .Derek -UnknownScript_0xa05ae: +.Wade: farwritetext UnknownText_0x1759f7 keeptextopen jump UnknownScript_0xa0484 -UnknownScript_0xa05b6: +.Derek: farwritetext UnknownText_0x65c66 keeptextopen jump UnknownScript_0xa0484 @@ -896,57 +896,57 @@ UnknownScript_0xa05de: UnknownScript_0xa05e6: checkcode VAR_CALLERID - if_equal $d, UnknownScript_0xa0600 - if_equal $10, UnknownScript_0xa0605 - if_equal $18, UnknownScript_0xa060a - if_equal $1c, UnknownScript_0xa060f - if_equal $1d, UnknownScript_0xa0614 - if_equal $21, UnknownScript_0xa0619 + if_equal PHONE_BIRDKEEPER_JOSE, .Jose + if_equal PHONE_BUG_CATCHER_WADE, .Wade + if_equal PHONE_SCHOOLBOY_ALAN, .Alan + if_equal PHONE_POKEFANM_DEREK, .Derek + if_equal PHONE_FISHER_TULLY, .Tully + if_equal PHONE_FISHER_WILTON, .Wilton -UnknownScript_0xa0600: +.Jose: farwritetext UnknownText_0x175116 end -UnknownScript_0xa0605: +.Wade: farwritetext UnknownText_0x175a60 end -UnknownScript_0xa060a: +.Alan: farwritetext UnknownText_0x64e2f end -UnknownScript_0xa060f: +.Derek: farwritetext UnknownText_0x65cf9 end -UnknownScript_0xa0614: +.Tully: farwritetext UnknownText_0x65f88 end -UnknownScript_0xa0619: +.Wilton: farwritetext UnknownText_0x66c6b end UnknownScript_0xa061e: checkcode VAR_CALLERID - if_equal $6, UnknownScript_0xa0630 - if_equal $15, UnknownScript_0xa0635 - if_equal $1a, UnknownScript_0xa063a - if_equal $1f, UnknownScript_0xa063f + if_equal PHONE_POKEFAN_BEVERLY, .Beverly + if_equal PHONE_PICNICKER_GINA, .Gina + if_equal PHONE_LASS_DANA, .Dana + if_equal PHONE_PICNICKER_TIFFANY, .Tiffany -UnknownScript_0xa0630: +.Beverly: farwritetext UnknownText_0x1747cc end -UnknownScript_0xa0635: +.Gina: farwritetext UnknownText_0x1773e7 end -UnknownScript_0xa063a: +.Dana: farwritetext UnknownText_0x650ec end -UnknownScript_0xa063f: +.Tiffany: farwritetext UnknownText_0x66801 end diff --git a/engine/phone_scripts.asm b/engine/phone_scripts.asm index 33541e224..5d0795766 100644 --- a/engine/phone_scripts.asm +++ b/engine/phone_scripts.asm @@ -1914,369 +1914,369 @@ UnknownScript_0xbde4e: checknite iftrue UnknownScript_0xbdfec checkcode VAR_CALLERID - if_equal PHONE_SCHOOLBOY_JACK, UnknownScript_0xbdeaa - if_equal PHONE_SAILOR_HUEY, UnknownScript_0xbdeb0 - if_equal PHONE_COOLTRAINERM_GAVEN, UnknownScript_0xbdeb6 - if_equal PHONE_BIRDKEEPER_JOSE, UnknownScript_0xbdebc - if_equal PHONE_YOUNGSTER_JOEY, UnknownScript_0xbdec2 - if_equal PHONE_BUG_CATCHER_WADE, UnknownScript_0xbdec8 - if_equal PHONE_FISHER_RALPH, UnknownScript_0xbdece - if_equal PHONE_HIKER_ANTHONY, UnknownScript_0xbded4 - if_equal PHONE_CAMPER_TODD, UnknownScript_0xbdeda - if_equal PHONE_JUGGLER_IRWIN, UnknownScript_0xbdee0 - if_equal PHONE_BUG_CATCHER_ARNIE, UnknownScript_0xbdee6 - if_equal PHONE_SCHOOLBOY_ALAN, UnknownScript_0xbdeec - if_equal PHONE_SCHOOLBOY_CHAD, UnknownScript_0xbdef2 - if_equal PHONE_POKEFANM_DEREK, UnknownScript_0xbdef8 - if_equal PHONE_FISHER_TULLY, UnknownScript_0xbdefe - if_equal PHONE_POKEMANIAC_BRENT, UnknownScript_0xbdf04 - if_equal PHONE_BIRDKEEPER_VANCE, UnknownScript_0xbdf0a - if_equal PHONE_FISHER_WILTON, UnknownScript_0xbdf10 - if_equal PHONE_BLACKBELT_KENJI, UnknownScript_0xbdf16 - if_equal PHONE_HIKER_PARRY, UnknownScript_0xbdf1c + if_equal PHONE_SCHOOLBOY_JACK, .Jack + if_equal PHONE_SAILOR_HUEY, .Huey + if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven + if_equal PHONE_BIRDKEEPER_JOSE, .Jose + if_equal PHONE_YOUNGSTER_JOEY, .Joey + if_equal PHONE_BUG_CATCHER_WADE, .Wade + if_equal PHONE_FISHER_RALPH, .Ralph + if_equal PHONE_HIKER_ANTHONY, .Anthony + if_equal PHONE_CAMPER_TODD, .Todd + if_equal PHONE_JUGGLER_IRWIN, .Irwin + if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie + if_equal PHONE_SCHOOLBOY_ALAN, .Alan + if_equal PHONE_SCHOOLBOY_CHAD, .Chad + if_equal PHONE_POKEFANM_DEREK, .Derek + if_equal PHONE_FISHER_TULLY, .Tully + if_equal PHONE_POKEMANIAC_BRENT, .Brent + if_equal PHONE_BIRDKEEPER_VANCE, .Vance + if_equal PHONE_FISHER_WILTON, .Wilton + if_equal PHONE_BLACKBELT_KENJI, .Kenji + if_equal PHONE_HIKER_PARRY, .Parry -UnknownScript_0xbdeaa: +.Jack: farwritetext UnknownText_0x1b4dc5 keeptextopen end -UnknownScript_0xbdeb0: +.Huey: farwritetext UnknownText_0x1b5073 keeptextopen end -UnknownScript_0xbdeb6: +.Gaven: farwritetext UnknownText_0x1b5270 keeptextopen end -UnknownScript_0xbdebc: +.Jose: farwritetext UnknownText_0x1b55ae keeptextopen end -UnknownScript_0xbdec2: +.Joey: farwritetext UnknownText_0x1b589a keeptextopen end -UnknownScript_0xbdec8: +.Wade: farwritetext UnknownText_0x1b5a3b keeptextopen end -UnknownScript_0xbdece: +.Ralph: farwritetext UnknownText_0x1b5c10 keeptextopen end -UnknownScript_0xbded4: +.Anthony: farwritetext UnknownText_0x1b5f7a keeptextopen end -UnknownScript_0xbdeda: +.Todd: farwritetext UnknownText_0x1b60f5 keeptextopen end -UnknownScript_0xbdee0: +.Irwin: farwritetext UnknownText_0x1b638c keeptextopen end -UnknownScript_0xbdee6: +.Arnie: farwritetext UnknownText_0x1b6454 keeptextopen end -UnknownScript_0xbdeec: +.Alan: farwritetext UnknownText_0x1b659d keeptextopen end -UnknownScript_0xbdef2: +.Chad: farwritetext UnknownText_0x1b67e2 keeptextopen end -UnknownScript_0xbdef8: +.Derek: farwritetext UnknownText_0x1b69a8 keeptextopen end -UnknownScript_0xbdefe: +.Tully: farwritetext UnknownText_0x1b6b39 keeptextopen end -UnknownScript_0xbdf04: +.Brent: farwritetext UnknownText_0x1b6c96 keeptextopen end -UnknownScript_0xbdf0a: +.Vance: farwritetext UnknownText_0x1b7019 keeptextopen end -UnknownScript_0xbdf10: +.Wilton: farwritetext UnknownText_0x1b71d5 keeptextopen end -UnknownScript_0xbdf16: +.Kenji: farwritetext UnknownText_0x1b730b keeptextopen end -UnknownScript_0xbdf1c: +.Parry: farwritetext UnknownText_0x1b73c7 keeptextopen end UnknownScript_0xbdf22: checkcode VAR_CALLERID - if_equal PHONE_SCHOOLBOY_JACK, UnknownScript_0xbdf74 - if_equal PHONE_SAILOR_HUEY, UnknownScript_0xbdf7a - if_equal PHONE_COOLTRAINERM_GAVEN, UnknownScript_0xbdf80 - if_equal PHONE_BIRDKEEPER_JOSE, UnknownScript_0xbdf86 - if_equal PHONE_YOUNGSTER_JOEY, UnknownScript_0xbdf8c - if_equal PHONE_BUG_CATCHER_WADE, UnknownScript_0xbdf92 - if_equal PHONE_FISHER_RALPH, UnknownScript_0xbdf98 - if_equal PHONE_HIKER_ANTHONY, UnknownScript_0xbdf9e - if_equal PHONE_CAMPER_TODD, UnknownScript_0xbdfa4 - if_equal PHONE_JUGGLER_IRWIN, UnknownScript_0xbdfaa - if_equal PHONE_BUG_CATCHER_ARNIE, UnknownScript_0xbdfb0 - if_equal PHONE_SCHOOLBOY_ALAN, UnknownScript_0xbdfb6 - if_equal PHONE_SCHOOLBOY_CHAD, UnknownScript_0xbdfbc - if_equal PHONE_POKEFANM_DEREK, UnknownScript_0xbdfc2 - if_equal PHONE_FISHER_TULLY, UnknownScript_0xbdfc8 - if_equal PHONE_POKEMANIAC_BRENT, UnknownScript_0xbdfce - if_equal PHONE_BIRDKEEPER_VANCE, UnknownScript_0xbdfd4 - if_equal PHONE_FISHER_WILTON, UnknownScript_0xbdfda - if_equal PHONE_BLACKBELT_KENJI, UnknownScript_0xbdfe0 - if_equal PHONE_HIKER_PARRY, UnknownScript_0xbdfe6 + if_equal PHONE_SCHOOLBOY_JACK, .Jack + if_equal PHONE_SAILOR_HUEY, .Huey + if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven + if_equal PHONE_BIRDKEEPER_JOSE, .Jose + if_equal PHONE_YOUNGSTER_JOEY, .Joey + if_equal PHONE_BUG_CATCHER_WADE, .Wade + if_equal PHONE_FISHER_RALPH, .Ralph + if_equal PHONE_HIKER_ANTHONY, .Anthony + if_equal PHONE_CAMPER_TODD, .Todd + if_equal PHONE_JUGGLER_IRWIN, .Irwin + if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie + if_equal PHONE_SCHOOLBOY_ALAN, .Alan + if_equal PHONE_SCHOOLBOY_CHAD, .Chad + if_equal PHONE_POKEFANM_DEREK, .Derek + if_equal PHONE_FISHER_TULLY, .Tully + if_equal PHONE_POKEMANIAC_BRENT, .Brent + if_equal PHONE_BIRDKEEPER_VANCE, .Vance + if_equal PHONE_FISHER_WILTON, .Wilton + if_equal PHONE_BLACKBELT_KENJI, .Kenji + if_equal PHONE_HIKER_PARRY, .Parry -UnknownScript_0xbdf74: +.Jack: farwritetext UnknownText_0x1b4ded keeptextopen end -UnknownScript_0xbdf7a: +.Huey: farwritetext UnknownText_0x1b509b keeptextopen end -UnknownScript_0xbdf80: +.Gaven: farwritetext UnknownText_0x1b52a5 keeptextopen end -UnknownScript_0xbdf86: +.Jose: farwritetext UnknownText_0x1b55da keeptextopen end -UnknownScript_0xbdf8c: +.Joey: farwritetext UnknownText_0x1b58c2 keeptextopen end -UnknownScript_0xbdf92: +.Wade: farwritetext UnknownText_0x1b5a74 keeptextopen end -UnknownScript_0xbdf98: +.Ralph: farwritetext UnknownText_0x1b5c63 keeptextopen end -UnknownScript_0xbdf9e: +.Anthony: farwritetext UnknownText_0x1b5f9e keeptextopen end -UnknownScript_0xbdfa4: +.Todd: farwritetext UnknownText_0x1b611b keeptextopen end -UnknownScript_0xbdfaa: +.Irwin: farwritetext UnknownText_0x1b63a8 keeptextopen end -UnknownScript_0xbdfb0: +.Arnie: farwritetext UnknownText_0x1b647e keeptextopen end -UnknownScript_0xbdfb6: +.Alan: farwritetext UnknownText_0x1b65c7 keeptextopen end -UnknownScript_0xbdfbc: +.Chad: farwritetext UnknownText_0x1b680e keeptextopen end -UnknownScript_0xbdfc2: +.Derek: farwritetext UnknownText_0x1b69d2 keeptextopen end -UnknownScript_0xbdfc8: +.Tully: farwritetext UnknownText_0x1b6b65 keeptextopen end -UnknownScript_0xbdfce: +.Brent: farwritetext UnknownText_0x1b6cc6 keeptextopen end -UnknownScript_0xbdfd4: +.Vance: farwritetext UnknownText_0x1b7057 keeptextopen end -UnknownScript_0xbdfda: +.Wilton: farwritetext UnknownText_0x1b71fc keeptextopen end -UnknownScript_0xbdfe0: +.Kenji: farwritetext UnknownText_0x1b7331 keeptextopen end -UnknownScript_0xbdfe6: +.Parry: farwritetext UnknownText_0x1b73ef keeptextopen end UnknownScript_0xbdfec: checkcode VAR_CALLERID - if_equal PHONE_SCHOOLBOY_JACK, UnknownScript_0xbe03e - if_equal PHONE_SAILOR_HUEY, UnknownScript_0xbe044 - if_equal PHONE_COOLTRAINERM_GAVEN, UnknownScript_0xbe04a - if_equal PHONE_BIRDKEEPER_JOSE, UnknownScript_0xbe050 - if_equal PHONE_YOUNGSTER_JOEY, UnknownScript_0xbe056 - if_equal PHONE_BUG_CATCHER_WADE, UnknownScript_0xbe05c - if_equal PHONE_FISHER_RALPH, UnknownScript_0xbe062 - if_equal PHONE_HIKER_ANTHONY, UnknownScript_0xbe068 - if_equal PHONE_CAMPER_TODD, UnknownScript_0xbe06e - if_equal PHONE_JUGGLER_IRWIN, UnknownScript_0xbe074 - if_equal PHONE_BUG_CATCHER_ARNIE, UnknownScript_0xbe07a - if_equal PHONE_SCHOOLBOY_ALAN, UnknownScript_0xbe080 - if_equal PHONE_SCHOOLBOY_CHAD, UnknownScript_0xbe086 - if_equal PHONE_POKEFANM_DEREK, UnknownScript_0xbe08c - if_equal PHONE_FISHER_TULLY, UnknownScript_0xbe092 - if_equal PHONE_POKEMANIAC_BRENT, UnknownScript_0xbe098 - if_equal PHONE_BIRDKEEPER_VANCE, UnknownScript_0xbe09e - if_equal PHONE_FISHER_WILTON, UnknownScript_0xbe0a4 - if_equal PHONE_BLACKBELT_KENJI, UnknownScript_0xbe0aa - if_equal PHONE_HIKER_PARRY, UnknownScript_0xbe0b0 + if_equal PHONE_SCHOOLBOY_JACK, .Jack + if_equal PHONE_SAILOR_HUEY, .Huey + if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven + if_equal PHONE_BIRDKEEPER_JOSE, .Jose + if_equal PHONE_YOUNGSTER_JOEY, .Joey + if_equal PHONE_BUG_CATCHER_WADE, .Wade + if_equal PHONE_FISHER_RALPH, .Ralph + if_equal PHONE_HIKER_ANTHONY, .Anthony + if_equal PHONE_CAMPER_TODD, .Todd + if_equal PHONE_JUGGLER_IRWIN, .Irwin + if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie + if_equal PHONE_SCHOOLBOY_ALAN, .Alan + if_equal PHONE_SCHOOLBOY_CHAD, .Chad + if_equal PHONE_POKEFANM_DEREK, .Derek + if_equal PHONE_FISHER_TULLY, .Tully + if_equal PHONE_POKEMANIAC_BRENT, .Brent + if_equal PHONE_BIRDKEEPER_VANCE, .Vance + if_equal PHONE_FISHER_WILTON, .Wilton + if_equal PHONE_BLACKBELT_KENJI, .Kenji + if_equal PHONE_HIKER_PARRY, .Parry -UnknownScript_0xbe03e: +.Jack: farwritetext UnknownText_0x1b4e16 keeptextopen end -UnknownScript_0xbe044: +.Huey: farwritetext UnknownText_0x1b50c2 keeptextopen end -UnknownScript_0xbe04a: +.Gaven: farwritetext UnknownText_0x1b52cc keeptextopen end -UnknownScript_0xbe050: +.Jose: farwritetext UnknownText_0x1b55fc keeptextopen end -UnknownScript_0xbe056: +.Joey: farwritetext UnknownText_0x1b58ea keeptextopen end -UnknownScript_0xbe05c: +.Wade: farwritetext UnknownText_0x1b5a9f keeptextopen end -UnknownScript_0xbe062: +.Ralph: farwritetext UnknownText_0x1b5cb6 keeptextopen end -UnknownScript_0xbe068: +.Anthony: farwritetext UnknownText_0x1b5fc9 keeptextopen end -UnknownScript_0xbe06e: +.Todd: farwritetext UnknownText_0x1b6149 keeptextopen end -UnknownScript_0xbe074: +.Irwin: farwritetext UnknownText_0x1b63c4 keeptextopen end -UnknownScript_0xbe07a: +.Arnie: farwritetext UnknownText_0x1b64a8 keeptextopen end -UnknownScript_0xbe080: +.Alan: farwritetext UnknownText_0x1b65e3 keeptextopen end -UnknownScript_0xbe086: +.Chad: farwritetext UnknownText_0x1b6836 keeptextopen end -UnknownScript_0xbe08c: +.Derek: farwritetext UnknownText_0x1b69f8 keeptextopen end -UnknownScript_0xbe092: +.Tully: farwritetext UnknownText_0x1b6b92 keeptextopen end -UnknownScript_0xbe098: +.Brent: farwritetext UnknownText_0x1b6cf6 keeptextopen end -UnknownScript_0xbe09e: +.Vance: farwritetext UnknownText_0x1b7092 keeptextopen end -UnknownScript_0xbe0a4: +.Wilton: farwritetext UnknownText_0x1b722a keeptextopen end -UnknownScript_0xbe0aa: +.Kenji: farwritetext UnknownText_0x1b7357 keeptextopen end -UnknownScript_0xbe0b0: +.Parry: farwritetext UnknownText_0x1b7417 keeptextopen end @@ -2287,153 +2287,153 @@ UnknownScript_0xbe0b6: checknite iftrue UnknownScript_0xbe164 checkcode VAR_CALLERID - if_equal PHONE_POKEFAN_BEVERLY, UnknownScript_0xbe0e2 - if_equal PHONE_COOLTRAINERF_BETH, UnknownScript_0xbe0e8 - if_equal PHONE_COOLTRAINERF_REENA, UnknownScript_0xbe0ee - if_equal PHONE_PICNICKER_LIZ, UnknownScript_0xbe0f4 - if_equal PHONE_PICNICKER_GINA, UnknownScript_0xbe0fa - if_equal PHONE_LASS_DANA, UnknownScript_0xbe100 - if_equal PHONE_PICNICKER_TIFFANY, UnknownScript_0xbe106 - if_equal PHONE_PICNICKER_ERIN, UnknownScript_0xbe10c + if_equal PHONE_POKEFAN_BEVERLY, .Beverly + if_equal PHONE_COOLTRAINERF_BETH, .Beth + if_equal PHONE_COOLTRAINERF_REENA, .Reena + if_equal PHONE_PICNICKER_LIZ, .Liz + if_equal PHONE_PICNICKER_GINA, .Gina + if_equal PHONE_LASS_DANA, .Dana + if_equal PHONE_PICNICKER_TIFFANY, .Tiffany + if_equal PHONE_PICNICKER_ERIN, .Erin -UnknownScript_0xbe0e2: +.Beverly: farwritetext UnknownText_0x1b4f21 keeptextopen end -UnknownScript_0xbe0e8: +.Beth: farwritetext UnknownText_0x1b53f7 keeptextopen end -UnknownScript_0xbe0ee: +.Reena: farwritetext UnknownText_0x1b5702 keeptextopen end -UnknownScript_0xbe0f4: +.Liz: farwritetext UnknownText_0x1b5d9f keeptextopen end -UnknownScript_0xbe0fa: +.Gina: farwritetext UnknownText_0x1b626a keeptextopen end -UnknownScript_0xbe100: +.Dana: farwritetext UnknownText_0x1b66c8 keeptextopen end -UnknownScript_0xbe106: +.Tiffany: farwritetext UnknownText_0x1b6e7c keeptextopen end -UnknownScript_0xbe10c: +.Erin: farwritetext UnknownText_0x1b751a keeptextopen end UnknownScript_0xbe112: checkcode VAR_CALLERID - if_equal PHONE_POKEFAN_BEVERLY, UnknownScript_0xbe134 - if_equal PHONE_COOLTRAINERF_BETH, UnknownScript_0xbe13a - if_equal PHONE_COOLTRAINERF_REENA, UnknownScript_0xbe140 - if_equal PHONE_PICNICKER_LIZ, UnknownScript_0xbe146 - if_equal PHONE_PICNICKER_GINA, UnknownScript_0xbe14c - if_equal PHONE_LASS_DANA, UnknownScript_0xbe152 - if_equal PHONE_PICNICKER_TIFFANY, UnknownScript_0xbe158 - if_equal PHONE_PICNICKER_ERIN, UnknownScript_0xbe15e + if_equal PHONE_POKEFAN_BEVERLY, .Beverly + if_equal PHONE_COOLTRAINERF_BETH, .Beth + if_equal PHONE_COOLTRAINERF_REENA, .Reena + if_equal PHONE_PICNICKER_LIZ, .Liz + if_equal PHONE_PICNICKER_GINA, .Gina + if_equal PHONE_LASS_DANA, .Dana + if_equal PHONE_PICNICKER_TIFFANY, .Tiffany + if_equal PHONE_PICNICKER_ERIN, .Erin -UnknownScript_0xbe134: +.Beverly: farwritetext UnknownText_0x1b4f4d keeptextopen end -UnknownScript_0xbe13a: +.Beth: farwritetext UnknownText_0x1b5424 keeptextopen end -UnknownScript_0xbe140: +.Reena: farwritetext UnknownText_0x1b572e keeptextopen end -UnknownScript_0xbe146: +.Liz: farwritetext UnknownText_0x1b5dcc keeptextopen end -UnknownScript_0xbe14c: +.Gina: farwritetext UnknownText_0x1b6296 keeptextopen end -UnknownScript_0xbe152: +.Dana: farwritetext UnknownText_0x1b66ec keeptextopen end -UnknownScript_0xbe158: +.Tiffany: farwritetext UnknownText_0x1b6ea6 keeptextopen end -UnknownScript_0xbe15e: +.Erin: farwritetext UnknownText_0x1b7548 keeptextopen end UnknownScript_0xbe164: checkcode VAR_CALLERID - if_equal PHONE_POKEFAN_BEVERLY, UnknownScript_0xbe186 - if_equal PHONE_COOLTRAINERF_BETH, UnknownScript_0xbe18c - if_equal PHONE_COOLTRAINERF_REENA, UnknownScript_0xbe192 - if_equal PHONE_PICNICKER_LIZ, UnknownScript_0xbe198 - if_equal PHONE_PICNICKER_GINA, UnknownScript_0xbe19e - if_equal PHONE_LASS_DANA, UnknownScript_0xbe1a4 - if_equal PHONE_PICNICKER_TIFFANY, UnknownScript_0xbe1aa - if_equal PHONE_PICNICKER_ERIN, UnknownScript_0xbe1b0 + if_equal PHONE_POKEFAN_BEVERLY, .Beverly + if_equal PHONE_COOLTRAINERF_BETH, .Beth + if_equal PHONE_COOLTRAINERF_REENA, .Reena + if_equal PHONE_PICNICKER_LIZ, .Liz + if_equal PHONE_PICNICKER_GINA, .Gina + if_equal PHONE_LASS_DANA, .Dana + if_equal PHONE_PICNICKER_TIFFANY, .Tiffany + if_equal PHONE_PICNICKER_ERIN, .Erin -UnknownScript_0xbe186: +.Beverly: farwritetext UnknownText_0x1b4f75 keeptextopen end -UnknownScript_0xbe18c: +.Beth: farwritetext UnknownText_0x1b5446 keeptextopen end -UnknownScript_0xbe192: +.Reena: farwritetext UnknownText_0x1b575a keeptextopen end -UnknownScript_0xbe198: +.Liz: farwritetext UnknownText_0x1b5df8 keeptextopen end -UnknownScript_0xbe19e: +.Gina: farwritetext UnknownText_0x1b62c5 keeptextopen end -UnknownScript_0xbe1a4: +.Dana: farwritetext UnknownText_0x1b6713 keeptextopen end -UnknownScript_0xbe1aa: +.Tiffany: farwritetext UnknownText_0x1b6ec9 keeptextopen end -UnknownScript_0xbe1b0: +.Erin: farwritetext UnknownText_0x1b756f keeptextopen end @@ -2444,369 +2444,369 @@ UnknownScript_0xbe1b6: checknite iftrue UnknownScript_0xbe354 checkcode VAR_CALLERID - if_equal PHONE_SCHOOLBOY_JACK, UnknownScript_0xbe212 - if_equal PHONE_SAILOR_HUEY, UnknownScript_0xbe218 - if_equal PHONE_COOLTRAINERM_GAVEN, UnknownScript_0xbe21e - if_equal PHONE_BIRDKEEPER_JOSE, UnknownScript_0xbe224 - if_equal PHONE_YOUNGSTER_JOEY, UnknownScript_0xbe22a - if_equal PHONE_BUG_CATCHER_WADE, UnknownScript_0xbe230 - if_equal PHONE_FISHER_RALPH, UnknownScript_0xbe236 - if_equal PHONE_HIKER_ANTHONY, UnknownScript_0xbe23c - if_equal PHONE_CAMPER_TODD, UnknownScript_0xbe242 - if_equal PHONE_JUGGLER_IRWIN, UnknownScript_0xbe248 - if_equal PHONE_BUG_CATCHER_ARNIE, UnknownScript_0xbe24e - if_equal PHONE_SCHOOLBOY_ALAN, UnknownScript_0xbe254 - if_equal PHONE_SCHOOLBOY_CHAD, UnknownScript_0xbe25a - if_equal PHONE_POKEFANM_DEREK, UnknownScript_0xbe260 - if_equal PHONE_FISHER_TULLY, UnknownScript_0xbe266 - if_equal PHONE_POKEMANIAC_BRENT, UnknownScript_0xbe26c - if_equal PHONE_BIRDKEEPER_VANCE, UnknownScript_0xbe272 - if_equal PHONE_FISHER_WILTON, UnknownScript_0xbe278 - if_equal PHONE_BLACKBELT_KENJI, UnknownScript_0xbe27e - if_equal PHONE_HIKER_PARRY, UnknownScript_0xbe284 + if_equal PHONE_SCHOOLBOY_JACK, .Jack + if_equal PHONE_SAILOR_HUEY, .Huey + if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven + if_equal PHONE_BIRDKEEPER_JOSE, .Jose + if_equal PHONE_YOUNGSTER_JOEY, .Joey + if_equal PHONE_BUG_CATCHER_WADE, .Wade + if_equal PHONE_FISHER_RALPH, .Ralph + if_equal PHONE_HIKER_ANTHONY, .Anthony + if_equal PHONE_CAMPER_TODD, .Todd + if_equal PHONE_JUGGLER_IRWIN, .Irwin + if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie + if_equal PHONE_SCHOOLBOY_ALAN, .Alan + if_equal PHONE_SCHOOLBOY_CHAD, .Chad + if_equal PHONE_POKEFANM_DEREK, .Derek + if_equal PHONE_FISHER_TULLY, .Tully + if_equal PHONE_POKEMANIAC_BRENT, .Brent + if_equal PHONE_BIRDKEEPER_VANCE, .Vance + if_equal PHONE_FISHER_WILTON, .Wilton + if_equal PHONE_BLACKBELT_KENJI, .Kenji + if_equal PHONE_HIKER_PARRY, .Parry -UnknownScript_0xbe212: +.Jack: farwritetext UnknownText_0x1b4e3e keeptextopen end -UnknownScript_0xbe218: +.Huey: farwritetext UnknownText_0x1b50e9 keeptextopen end -UnknownScript_0xbe21e: +.Gaven: farwritetext UnknownText_0x1b5301 keeptextopen end -UnknownScript_0xbe224: +.Jose: farwritetext UnknownText_0x1b5628 keeptextopen end -UnknownScript_0xbe22a: +.Joey: farwritetext UnknownText_0x1b5912 keeptextopen end -UnknownScript_0xbe230: +.Wade: farwritetext UnknownText_0x1b5ad8 keeptextopen end -UnknownScript_0xbe236: +.Ralph: farwritetext UnknownText_0x1b5d09 keeptextopen end -UnknownScript_0xbe23c: +.Anthony: farwritetext UnknownText_0x1b5ff6 keeptextopen end -UnknownScript_0xbe242: +.Todd: farwritetext UnknownText_0x1b616e keeptextopen end -UnknownScript_0xbe248: +.Irwin: farwritetext UnknownText_0x1b63e3 keeptextopen end -UnknownScript_0xbe24e: +.Arnie: farwritetext UnknownText_0x1b64d2 keeptextopen end -UnknownScript_0xbe254: +.Alan: farwritetext UnknownText_0x1b660d keeptextopen end -UnknownScript_0xbe25a: +.Chad: farwritetext UnknownText_0x1b6862 keeptextopen end -UnknownScript_0xbe260: +.Derek: farwritetext UnknownText_0x1b6a22 keeptextopen end -UnknownScript_0xbe266: +.Tully: farwritetext UnknownText_0x1b6bb9 keeptextopen end -UnknownScript_0xbe26c: +.Brent: farwritetext UnknownText_0x1b6d26 keeptextopen end -UnknownScript_0xbe272: +.Vance: farwritetext UnknownText_0x1b70e7 keeptextopen end -UnknownScript_0xbe278: +.Wilton: farwritetext UnknownText_0x1b725c keeptextopen end -UnknownScript_0xbe27e: +.Kenji: farwritetext UnknownText_0x1b737f keeptextopen end -UnknownScript_0xbe284: +.Parry: farwritetext UnknownText_0x1b743f keeptextopen end UnknownScript_0xbe28a: checkcode VAR_CALLERID - if_equal PHONE_SCHOOLBOY_JACK, UnknownScript_0xbe2dc - if_equal PHONE_SAILOR_HUEY, UnknownScript_0xbe2e2 - if_equal PHONE_COOLTRAINERM_GAVEN, UnknownScript_0xbe2e8 - if_equal PHONE_BIRDKEEPER_JOSE, UnknownScript_0xbe2ee - if_equal PHONE_YOUNGSTER_JOEY, UnknownScript_0xbe2f4 - if_equal PHONE_BUG_CATCHER_WADE, UnknownScript_0xbe2fa - if_equal PHONE_FISHER_RALPH, UnknownScript_0xbe300 - if_equal PHONE_HIKER_ANTHONY, UnknownScript_0xbe306 - if_equal PHONE_CAMPER_TODD, UnknownScript_0xbe30c - if_equal PHONE_JUGGLER_IRWIN, UnknownScript_0xbe312 - if_equal PHONE_BUG_CATCHER_ARNIE, UnknownScript_0xbe318 - if_equal PHONE_SCHOOLBOY_ALAN, UnknownScript_0xbe31e - if_equal PHONE_SCHOOLBOY_CHAD, UnknownScript_0xbe324 - if_equal PHONE_POKEFANM_DEREK, UnknownScript_0xbe32a - if_equal PHONE_FISHER_TULLY, UnknownScript_0xbe330 - if_equal PHONE_POKEMANIAC_BRENT, UnknownScript_0xbe336 - if_equal PHONE_BIRDKEEPER_VANCE, UnknownScript_0xbe33c - if_equal PHONE_FISHER_WILTON, UnknownScript_0xbe342 - if_equal PHONE_BLACKBELT_KENJI, UnknownScript_0xbe348 - if_equal PHONE_HIKER_PARRY, UnknownScript_0xbe34e + if_equal PHONE_SCHOOLBOY_JACK, .Jack + if_equal PHONE_SAILOR_HUEY, .Huey + if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven + if_equal PHONE_BIRDKEEPER_JOSE, .Jose + if_equal PHONE_YOUNGSTER_JOEY, .Joey + if_equal PHONE_BUG_CATCHER_WADE, .Wade + if_equal PHONE_FISHER_RALPH, .Ralph + if_equal PHONE_HIKER_ANTHONY, .Anthony + if_equal PHONE_CAMPER_TODD, .Todd + if_equal PHONE_JUGGLER_IRWIN, .Irwin + if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie + if_equal PHONE_SCHOOLBOY_ALAN, .Alan + if_equal PHONE_SCHOOLBOY_CHAD, .Chad + if_equal PHONE_POKEFANM_DEREK, .Derek + if_equal PHONE_FISHER_TULLY, .Tully + if_equal PHONE_POKEMANIAC_BRENT, .Brent + if_equal PHONE_BIRDKEEPER_VANCE, .Vance + if_equal PHONE_FISHER_WILTON, .Wilton + if_equal PHONE_BLACKBELT_KENJI, .Kenji + if_equal PHONE_HIKER_PARRY, .Parry -UnknownScript_0xbe2dc: +.Jack: farwritetext UnknownText_0x1b4e72 keeptextopen end -UnknownScript_0xbe2e2: +.Huey: farwritetext UnknownText_0x1b511a keeptextopen end -UnknownScript_0xbe2e8: +.Gaven: farwritetext UnknownText_0x1b5335 keeptextopen end -UnknownScript_0xbe2ee: +.Jose: farwritetext UnknownText_0x1b564c keeptextopen end -UnknownScript_0xbe2f4: +.Joey: farwritetext UnknownText_0x1b5948 keeptextopen end -UnknownScript_0xbe2fa: +.Wade: farwritetext UnknownText_0x1b5b0b keeptextopen end -UnknownScript_0xbe300: +.Ralph: farwritetext UnknownText_0x1b5d21 keeptextopen end -UnknownScript_0xbe306: +.Anthony: farwritetext UnknownText_0x1b6017 keeptextopen end -UnknownScript_0xbe30c: +.Todd: farwritetext UnknownText_0x1b618f keeptextopen end -UnknownScript_0xbe312: +.Irwin: farwritetext UnknownText_0x1b6407 keeptextopen end -UnknownScript_0xbe318: +.Arnie: farwritetext UnknownText_0x1b6506 keeptextopen end -UnknownScript_0xbe31e: +.Alan: farwritetext UnknownText_0x1b6624 keeptextopen end -UnknownScript_0xbe324: +.Chad: farwritetext UnknownText_0x1b6890 keeptextopen end -UnknownScript_0xbe32a: +.Derek: farwritetext UnknownText_0x1b6a56 keeptextopen end -UnknownScript_0xbe330: +.Tully: farwritetext UnknownText_0x1b6bef keeptextopen end -UnknownScript_0xbe336: +.Brent: farwritetext UnknownText_0x1b6d57 keeptextopen end -UnknownScript_0xbe33c: +.Vance: farwritetext UnknownText_0x1b7112 keeptextopen end -UnknownScript_0xbe342: +.Wilton: farwritetext UnknownText_0x1b7283 keeptextopen end -UnknownScript_0xbe348: +.Kenji: farwritetext UnknownText_0x1b7397 keeptextopen end -UnknownScript_0xbe34e: +.Parry: farwritetext UnknownText_0x1b746f keeptextopen end UnknownScript_0xbe354: checkcode VAR_CALLERID - if_equal PHONE_SCHOOLBOY_JACK, UnknownScript_0xbe3a6 - if_equal PHONE_SAILOR_HUEY, UnknownScript_0xbe3ac - if_equal PHONE_COOLTRAINERM_GAVEN, UnknownScript_0xbe3b2 - if_equal PHONE_BIRDKEEPER_JOSE, UnknownScript_0xbe3b8 - if_equal PHONE_YOUNGSTER_JOEY, UnknownScript_0xbe3be - if_equal PHONE_BUG_CATCHER_WADE, UnknownScript_0xbe3c4 - if_equal PHONE_FISHER_RALPH, UnknownScript_0xbe3ca - if_equal PHONE_HIKER_ANTHONY, UnknownScript_0xbe3d0 - if_equal PHONE_CAMPER_TODD, UnknownScript_0xbe3d6 - if_equal PHONE_JUGGLER_IRWIN, UnknownScript_0xbe3dc - if_equal PHONE_BUG_CATCHER_ARNIE, UnknownScript_0xbe3e2 - if_equal PHONE_SCHOOLBOY_ALAN, UnknownScript_0xbe3e8 - if_equal PHONE_SCHOOLBOY_CHAD, UnknownScript_0xbe3ee - if_equal PHONE_POKEFANM_DEREK, UnknownScript_0xbe3f4 - if_equal PHONE_FISHER_TULLY, UnknownScript_0xbe3fa - if_equal PHONE_POKEMANIAC_BRENT, UnknownScript_0xbe400 - if_equal PHONE_BIRDKEEPER_VANCE, UnknownScript_0xbe406 - if_equal PHONE_FISHER_WILTON, UnknownScript_0xbe40c - if_equal PHONE_BLACKBELT_KENJI, UnknownScript_0xbe412 - if_equal PHONE_HIKER_PARRY, UnknownScript_0xbe418 + if_equal PHONE_SCHOOLBOY_JACK, .Jack + if_equal PHONE_SAILOR_HUEY, .Huey + if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven + if_equal PHONE_BIRDKEEPER_JOSE, .Jose + if_equal PHONE_YOUNGSTER_JOEY, .Joey + if_equal PHONE_BUG_CATCHER_WADE, .Wade + if_equal PHONE_FISHER_RALPH, .Ralph + if_equal PHONE_HIKER_ANTHONY, .Anthony + if_equal PHONE_CAMPER_TODD, .Todd + if_equal PHONE_JUGGLER_IRWIN, .Irwin + if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie + if_equal PHONE_SCHOOLBOY_ALAN, .Alan + if_equal PHONE_SCHOOLBOY_CHAD, .Chad + if_equal PHONE_POKEFANM_DEREK, .Derek + if_equal PHONE_FISHER_TULLY, .Tully + if_equal PHONE_POKEMANIAC_BRENT, .Brent + if_equal PHONE_BIRDKEEPER_VANCE, .Vance + if_equal PHONE_FISHER_WILTON, .Wilton + if_equal PHONE_BLACKBELT_KENJI, .Kenji + if_equal PHONE_HIKER_PARRY, .Parry -UnknownScript_0xbe3a6: +.Jack: farwritetext UnknownText_0x1b4e9e keeptextopen end -UnknownScript_0xbe3ac: +.Huey: farwritetext UnknownText_0x1b5154 keeptextopen end -UnknownScript_0xbe3b2: +.Gaven: farwritetext UnknownText_0x1b535f keeptextopen end -UnknownScript_0xbe3b8: +.Jose: farwritetext UnknownText_0x1b5670 keeptextopen end -UnknownScript_0xbe3be: +.Joey: farwritetext UnknownText_0x1b597c keeptextopen end -UnknownScript_0xbe3c4: +.Wade: farwritetext UnknownText_0x1b5b37 keeptextopen end -UnknownScript_0xbe3ca: +.Ralph: farwritetext UnknownText_0x1b5d39 keeptextopen end -UnknownScript_0xbe3d0: +.Anthony: farwritetext UnknownText_0x1b6041 keeptextopen end -UnknownScript_0xbe3d6: +.Todd: farwritetext UnknownText_0x1b61bd keeptextopen end -UnknownScript_0xbe3dc: +.Irwin: farwritetext UnknownText_0x1b642c keeptextopen end -UnknownScript_0xbe3e2: +.Arnie: farwritetext UnknownText_0x1b6539 keeptextopen end -UnknownScript_0xbe3e8: +.Alan: farwritetext UnknownText_0x1b663b keeptextopen end -UnknownScript_0xbe3ee: +.Chad: farwritetext UnknownText_0x1b68ba keeptextopen end -UnknownScript_0xbe3f4: +.Derek: farwritetext UnknownText_0x1b6a8b keeptextopen end -UnknownScript_0xbe3fa: +.Tully: farwritetext UnknownText_0x1b6c23 keeptextopen end -UnknownScript_0xbe400: +.Brent: farwritetext UnknownText_0x1b6d88 keeptextopen end -UnknownScript_0xbe406: +.Vance: farwritetext UnknownText_0x1b7132 keeptextopen end -UnknownScript_0xbe40c: +.Wilton: farwritetext UnknownText_0x1b72a5 keeptextopen end -UnknownScript_0xbe412: +.Kenji: farwritetext UnknownText_0x1b73af keeptextopen end -UnknownScript_0xbe418: +.Parry: farwritetext UnknownText_0x1b749b keeptextopen end @@ -2817,314 +2817,314 @@ UnknownScript_0xbe41e: checknite iftrue UnknownScript_0xbe4cc checkcode VAR_CALLERID - if_equal PHONE_POKEFAN_BEVERLY, UnknownScript_0xbe44a - if_equal PHONE_COOLTRAINERF_BETH, UnknownScript_0xbe450 - if_equal PHONE_COOLTRAINERF_REENA, UnknownScript_0xbe456 - if_equal PHONE_PICNICKER_LIZ, UnknownScript_0xbe45c - if_equal PHONE_PICNICKER_GINA, UnknownScript_0xbe462 - if_equal PHONE_LASS_DANA, UnknownScript_0xbe468 - if_equal PHONE_PICNICKER_TIFFANY, UnknownScript_0xbe46e - if_equal PHONE_PICNICKER_ERIN, UnknownScript_0xbe474 + if_equal PHONE_POKEFAN_BEVERLY, .Beverly + if_equal PHONE_COOLTRAINERF_BETH, .Beth + if_equal PHONE_COOLTRAINERF_REENA, .Reena + if_equal PHONE_PICNICKER_LIZ, .Liz + if_equal PHONE_PICNICKER_GINA, .Gina + if_equal PHONE_LASS_DANA, .Dana + if_equal PHONE_PICNICKER_TIFFANY, .Tiffany + if_equal PHONE_PICNICKER_ERIN, .Erin -UnknownScript_0xbe44a: +.Beverly: farwritetext UnknownText_0x1b4fa1 keeptextopen end -UnknownScript_0xbe450: +.Beth: farwritetext UnknownText_0x1b5472 keeptextopen end -UnknownScript_0xbe456: +.Reena: farwritetext UnknownText_0x1b5786 keeptextopen end -UnknownScript_0xbe45c: +.Liz: farwritetext UnknownText_0x1b5e25 keeptextopen end -UnknownScript_0xbe462: +.Gina: farwritetext UnknownText_0x1b62f1 keeptextopen end -UnknownScript_0xbe468: +.Dana: farwritetext UnknownText_0x1b6738 keeptextopen end -UnknownScript_0xbe46e: +.Tiffany: farwritetext UnknownText_0x1b6ef3 keeptextopen end -UnknownScript_0xbe474: +.Erin: farwritetext UnknownText_0x1b758f keeptextopen end UnknownScript_0xbe47a: checkcode VAR_CALLERID - if_equal PHONE_POKEFAN_BEVERLY, UnknownScript_0xbe49c - if_equal PHONE_COOLTRAINERF_BETH, UnknownScript_0xbe4a2 - if_equal PHONE_COOLTRAINERF_REENA, UnknownScript_0xbe4a8 - if_equal PHONE_PICNICKER_LIZ, UnknownScript_0xbe4ae - if_equal PHONE_PICNICKER_GINA, UnknownScript_0xbe4b4 - if_equal PHONE_LASS_DANA, UnknownScript_0xbe4ba - if_equal PHONE_PICNICKER_TIFFANY, UnknownScript_0xbe4c0 - if_equal PHONE_PICNICKER_ERIN, UnknownScript_0xbe4c6 + if_equal PHONE_POKEFAN_BEVERLY, .Beverly + if_equal PHONE_COOLTRAINERF_BETH, .Beth + if_equal PHONE_COOLTRAINERF_REENA, .Reena + if_equal PHONE_PICNICKER_LIZ, .Liz + if_equal PHONE_PICNICKER_GINA, .Gina + if_equal PHONE_LASS_DANA, .Dana + if_equal PHONE_PICNICKER_TIFFANY, .Tiffany + if_equal PHONE_PICNICKER_ERIN, .Erin -UnknownScript_0xbe49c: +.Beverly: farwritetext UnknownText_0x1b4fda keeptextopen end -UnknownScript_0xbe4a2: +.Beth: farwritetext UnknownText_0x1b54a6 keeptextopen end -UnknownScript_0xbe4a8: +.Reena: farwritetext UnknownText_0x1b57b7 keeptextopen end -UnknownScript_0xbe4ae: +.Liz: farwritetext UnknownText_0x1b5e59 keeptextopen end -UnknownScript_0xbe4b4: +.Gina: farwritetext UnknownText_0x1b630e keeptextopen end -UnknownScript_0xbe4ba: +.Dana: farwritetext UnknownText_0x1b6757 keeptextopen end -UnknownScript_0xbe4c0: +.Tiffany: farwritetext UnknownText_0x1b6f1c keeptextopen end -UnknownScript_0xbe4c6: +.Erin: farwritetext UnknownText_0x1b75ac keeptextopen end UnknownScript_0xbe4cc: checkcode VAR_CALLERID - if_equal PHONE_POKEFAN_BEVERLY, UnknownScript_0xbe4ee - if_equal PHONE_COOLTRAINERF_BETH, UnknownScript_0xbe4f4 - if_equal PHONE_COOLTRAINERF_REENA, UnknownScript_0xbe4fa - if_equal PHONE_PICNICKER_LIZ, UnknownScript_0xbe500 - if_equal PHONE_PICNICKER_GINA, UnknownScript_0xbe506 - if_equal PHONE_LASS_DANA, UnknownScript_0xbe50c - if_equal PHONE_PICNICKER_TIFFANY, UnknownScript_0xbe512 - if_equal PHONE_PICNICKER_ERIN, UnknownScript_0xbe518 + if_equal PHONE_POKEFAN_BEVERLY, .Beverly + if_equal PHONE_COOLTRAINERF_BETH, .Beth + if_equal PHONE_COOLTRAINERF_REENA, .Reena + if_equal PHONE_PICNICKER_LIZ, .Liz + if_equal PHONE_PICNICKER_GINA, .Gina + if_equal PHONE_LASS_DANA, .Dana + if_equal PHONE_PICNICKER_TIFFANY, .Tiffany + if_equal PHONE_PICNICKER_ERIN, .Erin -UnknownScript_0xbe4ee: +.Beverly: farwritetext UnknownText_0x1b5004 keeptextopen end -UnknownScript_0xbe4f4: +.Beth: farwritetext UnknownText_0x1b54d4 keeptextopen end -UnknownScript_0xbe4fa: +.Reena: farwritetext UnknownText_0x1b57e8 keeptextopen end -UnknownScript_0xbe500: +.Liz: farwritetext UnknownText_0x1b5e8e keeptextopen end -UnknownScript_0xbe506: +.Gina: farwritetext UnknownText_0x1b6331 keeptextopen end -UnknownScript_0xbe50c: +.Dana: farwritetext UnknownText_0x1b6776 keeptextopen end -UnknownScript_0xbe512: +.Tiffany: farwritetext UnknownText_0x1b6f37 keeptextopen end -UnknownScript_0xbe518: +.Erin: farwritetext UnknownText_0x1b75c9 keeptextopen end UnknownScript_0xbe51e: checkcode VAR_CALLERID - if_equal PHONE_SCHOOLBOY_JACK, UnknownScript_0xbe564 - if_equal PHONE_COOLTRAINERM_GAVEN, UnknownScript_0xbe570 - if_equal PHONE_BIRDKEEPER_JOSE, UnknownScript_0xbe576 - if_equal PHONE_YOUNGSTER_JOEY, UnknownScript_0xbe57c - if_equal PHONE_BUG_CATCHER_WADE, UnknownScript_0xbe582 - if_equal PHONE_FISHER_RALPH, UnknownScript_0xbe588 - if_equal PHONE_HIKER_ANTHONY, UnknownScript_0xbe58e - if_equal PHONE_CAMPER_TODD, UnknownScript_0xbe594 - if_equal PHONE_BUG_CATCHER_ARNIE, UnknownScript_0xbe59a - if_equal PHONE_SCHOOLBOY_ALAN, UnknownScript_0xbe5a0 - if_equal PHONE_SCHOOLBOY_CHAD, UnknownScript_0xbe5a6 - if_equal PHONE_POKEFANM_DEREK, UnknownScript_0xbe5ac - if_equal PHONE_FISHER_TULLY, UnknownScript_0xbe5b2 - if_equal PHONE_POKEMANIAC_BRENT, UnknownScript_0xbe5b8 - if_equal PHONE_BIRDKEEPER_VANCE, UnknownScript_0xbe5be - if_equal PHONE_FISHER_WILTON, UnknownScript_0xbe5c4 - if_equal PHONE_HIKER_PARRY, UnknownScript_0xbe5ca + if_equal PHONE_SCHOOLBOY_JACK, .Jack + if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven + if_equal PHONE_BIRDKEEPER_JOSE, .Jose + if_equal PHONE_YOUNGSTER_JOEY, .Joey + if_equal PHONE_BUG_CATCHER_WADE, .Wade + if_equal PHONE_FISHER_RALPH, .Ralph + if_equal PHONE_HIKER_ANTHONY, .Anthony + if_equal PHONE_CAMPER_TODD, .Todd + if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie + if_equal PHONE_SCHOOLBOY_ALAN, .Alan + if_equal PHONE_SCHOOLBOY_CHAD, .Chad + if_equal PHONE_POKEFANM_DEREK, .Derek + if_equal PHONE_FISHER_TULLY, .Tully + if_equal PHONE_POKEMANIAC_BRENT, .Brent + if_equal PHONE_BIRDKEEPER_VANCE, .Vance + if_equal PHONE_FISHER_WILTON, .Wilton + if_equal PHONE_HIKER_PARRY, .Parry -UnknownScript_0xbe564: +.Jack: farwritetext UnknownText_0x1b4ecd keeptextopen end -UnknownScript_0xbe56a: +.Unknown: farwritetext UnknownText_0x1b518b keeptextopen end -UnknownScript_0xbe570: +.Gaven: farwritetext UnknownText_0x1b5393 keeptextopen end -UnknownScript_0xbe576: +.Jose: farwritetext UnknownText_0x1b5694 keeptextopen end -UnknownScript_0xbe57c: +.Joey: farwritetext UnknownText_0x1b59b2 keeptextopen end -UnknownScript_0xbe582: +.Wade: farwritetext UnknownText_0x1b5b68 keeptextopen end -UnknownScript_0xbe588: +.Ralph: farwritetext UnknownText_0x1b5d51 keeptextopen end -UnknownScript_0xbe58e: +.Anthony: farwritetext UnknownText_0x1b606f keeptextopen end -UnknownScript_0xbe594: +.Todd: farwritetext UnknownText_0x1b61f2 keeptextopen end -UnknownScript_0xbe59a: +.Arnie: farwritetext UnknownText_0x1b656c keeptextopen end -UnknownScript_0xbe5a0: +.Alan: farwritetext UnknownText_0x1b6652 keeptextopen end -UnknownScript_0xbe5a6: +.Chad: farwritetext UnknownText_0x1b68e8 keeptextopen end -UnknownScript_0xbe5ac: +.Derek: farwritetext UnknownText_0x1b6ac2 keeptextopen end -UnknownScript_0xbe5b2: +.Tully: farwritetext UnknownText_0x1b6c56 keeptextopen end -UnknownScript_0xbe5b8: +.Brent: farwritetext UnknownText_0x1b6db9 keeptextopen end -UnknownScript_0xbe5be: +.Vance: farwritetext UnknownText_0x1b7161 keeptextopen end -UnknownScript_0xbe5c4: +.Wilton: farwritetext UnknownText_0x1b72d0 keeptextopen end -UnknownScript_0xbe5ca: +.Parry: farwritetext UnknownText_0x1b74c8 keeptextopen end UnknownScript_0xbe5d0: checkcode VAR_CALLERID - if_equal PHONE_POKEFAN_BEVERLY, UnknownScript_0xbe5f2 - if_equal PHONE_COOLTRAINERF_BETH, UnknownScript_0xbe5f8 - if_equal PHONE_COOLTRAINERF_REENA, UnknownScript_0xbe5fe - if_equal PHONE_PICNICKER_LIZ, UnknownScript_0xbe604 - if_equal PHONE_PICNICKER_GINA, UnknownScript_0xbe60a - if_equal PHONE_LASS_DANA, UnknownScript_0xbe610 - if_equal PHONE_PICNICKER_TIFFANY, UnknownScript_0xbe616 - if_equal PHONE_PICNICKER_ERIN, UnknownScript_0xbe61c + if_equal PHONE_POKEFAN_BEVERLY, .Beverly + if_equal PHONE_COOLTRAINERF_BETH, .Beth + if_equal PHONE_COOLTRAINERF_REENA, .Reena + if_equal PHONE_PICNICKER_LIZ, .Liz + if_equal PHONE_PICNICKER_GINA, .Gina + if_equal PHONE_LASS_DANA, .Dana + if_equal PHONE_PICNICKER_TIFFANY, .Tiffany + if_equal PHONE_PICNICKER_ERIN, .Erin -UnknownScript_0xbe5f2: +.Beverly: farwritetext UnknownText_0x1b502b keeptextopen end -UnknownScript_0xbe5f8: +.Beth: farwritetext UnknownText_0x1b5510 keeptextopen end -UnknownScript_0xbe5fe: +.Reena: farwritetext UnknownText_0x1b5819 keeptextopen end -UnknownScript_0xbe604: +.Liz: farwritetext UnknownText_0x1b5ebe keeptextopen end -UnknownScript_0xbe60a: +.Gina: farwritetext UnknownText_0x1b6352 keeptextopen end -UnknownScript_0xbe610: +.Dana: farwritetext UnknownText_0x1b6795 keeptextopen end -UnknownScript_0xbe616: +.Tiffany: farwritetext UnknownText_0x1b6f60 keeptextopen end -UnknownScript_0xbe61c: +.Erin: farwritetext UnknownText_0x1b75e5 keeptextopen end diff --git a/engine/predef.asm b/engine/predef.asm index 6079b48a4..cb72f9202 100644 --- a/engine/predef.asm +++ b/engine/predef.asm @@ -37,7 +37,7 @@ PredefPointers:: ; 856b add_predef DrawPartyMenuHPBar add_predef FillPP add_predef TryAddMonToParty - add_predef Functionda96 + add_predef AddTempmonToParty add_predef SentGetPkmnIntoFromBox add_predef SentPkmnIntoBox add_predef GiveEgg diff --git a/engine/specials.asm b/engine/specials.asm index bfc4be7c0..82281d600 100644 --- a/engine/specials.asm +++ b/engine/specials.asm @@ -166,7 +166,7 @@ SpecialsPointers:: ; c029 add_special SpecialHoOhChamber add_special Function102142 add_special Special_CelebiShrineEvent - add_special Function49bf9 + add_special CheckCaughtCelebi add_special SpecialPokeSeer add_special SpecialBuenasPassword add_special SpecialBuenaPrize @@ -174,7 +174,7 @@ SpecialsPointers:: ; c029 add_special Special_SampleKenjiBreakCountdown add_special SpecialBeastsCheck add_special SpecialMonCheck - add_special Functionc225 + add_special Special_SetPlayerPalette add_special Function170bd2 add_special Mobile_SelectThreeMons add_special Function1037eb @@ -185,9 +185,9 @@ SpecialsPointers:: ; c029 add_special Mobile_DummyReturnFalse add_special Function103780 add_special Function10387b - add_special Function4ae12 + add_special AskRememberPassword add_special LoadMapPalettes - add_special Function4a927 + add_special FindItemInPCOrBag add_special Special_InitialSetDSTFlag add_special Special_InitialClearDSTFlag add_special SpecialNone @@ -197,10 +197,10 @@ SpecialNone: ; c224 ret ; c225 -Functionc225: ; c225 +Special_SetPlayerPalette: ; c225 ld a, [ScriptVar] ld d, a - callba Function57e2 + callba SetPlayerPalette ret ; c230 diff --git a/event/buena.asm b/event/buena.asm index 7079c0259..0443d962d 100644 --- a/event/buena.asm +++ b/event/buena.asm @@ -12,7 +12,7 @@ SpecialBuenasPassword: ; 8af6b ld [wMenuBorderRightCoord], a call BackUpTiles call DoNthMenu ; menu - callba Function4ae5e + callba Buena_ExitMenu ld b, $0 ld a, [MenuSelection] ld c, a diff --git a/event/celebi.asm b/event/celebi.asm index a5c3c0735..cf930c2f8 100755 --- a/event/celebi.asm +++ b/event/celebi.asm @@ -337,18 +337,18 @@ Function49bf3: ; 49bf3 ret ; 49bf9 -Function49bf9: ; 49bf9 +CheckCaughtCelebi: ; 49bf9 ld a, [wBattleResult] bit 6, a - jr z, .asm_49c07 + jr z, .false ld a, $1 ld [ScriptVar], a - jr .asm_49c0b + jr .done -.asm_49c07 +.false xor a ld [ScriptVar], a -.asm_49c0b +.done ret ; 49c0c diff --git a/main.asm b/main.asm index 29e2b09b6..15b4aa3d0 100644 --- a/main.asm +++ b/main.asm @@ -8347,7 +8347,7 @@ FillPP: ; da6d ret ; da96 -Functionda96: ; da96 +AddTempmonToParty: ; da96 ld hl, PartyCount ld a, [hl] cp PARTY_LENGTH @@ -8362,6 +8362,7 @@ Functionda96: ; da96 ld a, [CurPartySpecies] ld [hli], a ld [hl], $ff + ld hl, PartyMon1Species ld a, [PartyCount] dec a @@ -8371,6 +8372,7 @@ Functionda96: ; da96 ld d, h ld hl, TempMonSpecies call CopyBytes + ld hl, PartyMonOT ld a, [PartyCount] dec a @@ -8382,6 +8384,7 @@ Functionda96: ; da96 call SkipNames ld bc, NAME_LENGTH call CopyBytes + ld hl, PartyMonNicknames ld a, [PartyCount] dec a @@ -8397,7 +8400,7 @@ Functionda96: ; da96 ld a, [CurPartySpecies] ld [wNamedObjectIndexBuffer], a cp EGG - jr z, .owned + jr z, .egg dec a call SetSeenAndCaughtMon ld hl, PartyMon1Happiness @@ -8406,7 +8409,7 @@ Functionda96: ; da96 ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld [hl], BASE_HAPPINESS -.owned +.egg ld a, [CurPartySpecies] cp UNOWN @@ -21858,24 +21861,24 @@ Function4a91e: ; 4a91e ; 4a927 -Function4a927: ; 4a927 +FindItemInPCOrBag: ; 4a927 ld a, [ScriptVar] ld [CurItem], a ld hl, PCItems call CheckItem - jr c, .asm_4a948 + jr c, .found ld a, [ScriptVar] ld [CurItem], a ld hl, NumItems call CheckItem - jr c, .asm_4a948 + jr c, .found xor a ld [ScriptVar], a ret -.asm_4a948 +.found ld a, 1 ld [ScriptVar], a ret @@ -22593,22 +22596,22 @@ Function4adb2: ; 4adb2 Function4adc2: ; 4adc2 ld a, [wd002] cp $ff - jr nz, .asm_4ade5 + jr nz, .skip ld a, [wd003] cp $ff - jr nz, .asm_4addd + jr nz, .skip2 ld a, [wd004] ld [wd002], a ld a, $ff ld [wd004], a - jr .asm_4ade5 + jr .skip -.asm_4addd +.skip2 ld [wd002], a ld a, $ff ld [wd003], a -.asm_4ade5 +.skip ld a, [wd003] cp $ff ret nz @@ -22635,18 +22638,18 @@ Function4adf7: ; 4adf7 ret ; 4ae12 -Function4ae12: ; 4ae12 - call Function4ae1f +AskRememberPassword: ; 4ae12 + call .DoMenu ld a, $0 - jr c, .asm_4ae1b + jr c, .okay ld a, $1 -.asm_4ae1b +.okay ld [ScriptVar], a ret ; 4ae1f -Function4ae1f: ; 4ae1f +.DoMenu: ; 4ae1f lb bc, 14, 7 push bc ld hl, YesNoMenuDataHeader @@ -22665,23 +22668,23 @@ Function4ae1f: ; 4ae1f push af ld c, 15 call DelayFrames - call Function4ae5e + call Buena_ExitMenu pop af - jr c, .asm_4ae57 + jr c, .refused ld a, [MenuSelection2] cp $2 - jr z, .asm_4ae57 + jr z, .refused and a ret -.asm_4ae57 +.refused ld a, $2 ld [MenuSelection2], a scf ret ; 4ae5e -Function4ae5e: ; 4ae5e +Buena_ExitMenu: ; 4ae5e ld a, [hOAMUpdate] push af call ExitMenu @@ -33360,7 +33363,6 @@ SECTION "Phone Engine", ROMX, BANK[$28] INCLUDE "engine/more_phone_scripts.asm" INCLUDE "engine/buena_phone_scripts.asm" -INCLUDE "text/phone/buena.asm" SECTION "Phone Text", ROMX, BANK[$29] diff --git a/maps/CeladonDeptStore6F.asm b/maps/CeladonDeptStore6F.asm index e876c09d8..25f92be00 100644 --- a/maps/CeladonDeptStore6F.asm +++ b/maps/CeladonDeptStore6F.asm @@ -7,9 +7,9 @@ CeladonDeptStore6F_MapScriptHeader: ; callbacks - dbw 1, UnknownScript_0x71175 + dbw 1, .Callback -UnknownScript_0x71175: +.Callback: changeblock $c, $0, $3 return diff --git a/maps/IlexForest.asm b/maps/IlexForest.asm index cc5b19bf0..b87a3a179 100644 --- a/maps/IlexForest.asm +++ b/maps/IlexForest.asm @@ -460,7 +460,7 @@ UnknownScript_0x6ee42: startbattle returnafterbattle pause 20 - special Function49bf9 + special CheckCaughtCelebi iffalse UnknownScript_0x6ee8e appear $7 applymovement $7, MovementData_0x6ef4e diff --git a/maps/PokeCenter2F.asm b/maps/PokeCenter2F.asm index 3177d3963..1684dce98 100644 --- a/maps/PokeCenter2F.asm +++ b/maps/PokeCenter2F.asm @@ -431,8 +431,8 @@ PokeCenter2F_CheckGender: loadmovesprites playsound SFX_TINGLE applymovement PLAYER, MovementData_0x192d17 - writebyte $80 - special Functionc225 + writebyte (1 << 7) | (PAL_OW_RED << 4) + special Special_SetPlayerPalette applymovement PLAYER, MovementData_0x192d1c setflag ENGINE_KRIS_IN_CABLE_CLUB special ReplaceKrisSprite @@ -458,8 +458,8 @@ Script_CleanUpFemaleFlagAfterTrade: clearflag ENGINE_KRIS_IN_CABLE_CLUB playsound SFX_TINGLE applymovement PLAYER, MovementData_0x192d17 - writebyte $90 - special Functionc225 + writebyte (1 << 7) | (PAL_OW_BLUE << 4) + special Special_SetPlayerPalette applymovement PLAYER, MovementData_0x192d1c special ReplaceKrisSprite applymovement PLAYER, MovementData_0x192d2a @@ -480,8 +480,8 @@ Script_CleanUpFemaleFlagAfterBattle: clearflag ENGINE_KRIS_IN_CABLE_CLUB playsound SFX_TINGLE applymovement PLAYER, MovementData_0x192d17 - writebyte $90 - special Functionc225 + writebyte (1 << 7) | (PAL_OW_BLUE << 4) + special Special_SetPlayerPalette applymovement PLAYER, MovementData_0x192d1c special ReplaceKrisSprite applymovement PLAYER, MovementData_0x192d2a @@ -539,8 +539,8 @@ TimeCapsuleScript_CheckPlayerGender: loadmovesprites playsound SFX_TINGLE applymovement PLAYER, MovementData_0x192d17 - writebyte $80 - special Functionc225 + writebyte (1 << 7) | (PAL_OW_RED << 4) + special Special_SetPlayerPalette applymovement PLAYER, MovementData_0x192d22 faceperson PLAYER, $4 setflag ENGINE_KRIS_IN_CABLE_CLUB @@ -568,8 +568,8 @@ Script_LeftTimeCapsule: clearflag ENGINE_KRIS_IN_CABLE_CLUB playsound SFX_TINGLE applymovement PLAYER, MovementData_0x192d17 - writebyte $90 - special Functionc225 + writebyte (1 << 7) | (PAL_OW_BLUE << 4) + special Special_SetPlayerPalette applymovement PLAYER, MovementData_0x192d1c special ReplaceKrisSprite applymovement PLAYER, MovementData_0x192cfc diff --git a/maps/RadioTower2F.asm b/maps/RadioTower2F.asm index eb81f7579..22619d10c 100644 --- a/maps/RadioTower2F.asm +++ b/maps/RadioTower2F.asm @@ -104,7 +104,7 @@ Buena: if_equal 30, UnknownScript_0x5d87f playmusic MUSIC_BUENAS_PASSWORD writetext UnknownText_0x5de35 - special Function4ae12 + special AskRememberPassword iffalse UnknownScript_0x5d81e writetext UnknownText_0x5de84 closetext From e88c88ff2015a55ff0d04f9ac1dc55d7f0567f7c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 17 Nov 2015 15:54:03 -0500 Subject: [PATCH 18/40] engine/decorations.asm --- constants/deco_constants.asm | 12 +- engine/decorations.asm | 1437 +++++++++++++++++++++++ engine/trainer_card.asm | 611 ++++++++++ event/buena.asm | 2 +- event/elevator.asm | 2 +- event/kurt.asm | 2 +- home.asm | 4 +- main.asm | 2116 +--------------------------------- 8 files changed, 2119 insertions(+), 2067 deletions(-) create mode 100755 engine/decorations.asm create mode 100755 engine/trainer_card.asm diff --git a/constants/deco_constants.asm b/constants/deco_constants.asm index 6f15b5f35..d48f0b997 100644 --- a/constants/deco_constants.asm +++ b/constants/deco_constants.asm @@ -52,12 +52,12 @@ const_value = 1 const PUT_AWAY_ORNAMENT const_value = 1 - const DECO_01 + const DECO_BEDS const DECO_FEATHERY_BED ; 2 const DECO_PINK_BED ; 3 const DECO_POLKADOT_BED ; 4 const DECO_PIKACHU_BED ; 5 - const DECO_06 + const DECO_CARPETS const DECO_RED_CARPET ; 7 const DECO_BLUE_CARPET ; 8 const DECO_YELLOW_CARPET ; 9 @@ -66,21 +66,21 @@ const_value = 1 const DECO_MAGNAPLANT ; c const DECO_TROPICPLANT ; d const DECO_JUMBOPLANT ; e - const DECO_0F + const DECO_POSTERS const DECO_TOWN_MAP ; 10 const DECO_PIKACHU_POSTER ; 11 const DECO_CLEFAIRY_POSTER ; 12 const DECO_JIGGLYPUFF_POSTER ; 13 - const DECO_14 + const DECO_CONSOLES const DECO_FAMICOM ; 15 const DECO_SNES ; 16 const DECO_N64 ; 17 const DECO_VIRTUAL_BOY ; 18 - const DECO_19 + const DECO_BIG_DOLLS const DECO_BIG_SNORLAX_DOLL ; 1a const DECO_BIG_ONIX_DOLL ; 1b const DECO_BIG_LAPRAS_DOLL ; 1c - const DECO_1D + const DECO_DOLLS const DECO_PIKACHU_DOLL ; 1e const DECO_SURF_PIKACHU_DOLL ; 1f const DECO_CLEFAIRY_DOLL ; 20 diff --git a/engine/decorations.asm b/engine/decorations.asm new file mode 100755 index 000000000..a46d359a5 --- /dev/null +++ b/engine/decorations.asm @@ -0,0 +1,1437 @@ +InitDecorations: ; 26751 (9:6751) + ld a, DECO_FEATHERY_BED + ld [Bed], a + ld a, DECO_TOWN_MAP + ld [Poster], a + ret + +_KrisDecorationMenu: ; 0x2675c + ld a, [wcf76] + push af + ld hl, .MenuDataHeader + call LoadMenuDataHeader + xor a + ld [wd1ee], a + ld a, $1 + ld [wd1ef], a +.top_loop + ld a, [wd1ef] + ld [wMenuCursorBuffer], a + call .FindCategoriesWithOwnedDecos + call DoNthMenu + ld a, [MenuSelection2] + ld [wd1ef], a + jr c, .exit_menu + ld a, [MenuSelection] + ld hl, .pointers + call MenuJumptable + jr nc, .top_loop + +.exit_menu + call ExitMenu + pop af + ld [wcf76], a + ld a, [wd1ee] + ld c, a + ret +; 0x2679a + +.MenuDataHeader: ; 0x2679a + db $40 ; flags + db 00, 05 ; start coords + db 17, 19 ; end coords + dw .MenuData2 + db 1 ; default option +; 0x267a2 + +.MenuData2: ; 0x267a2 + db $a0 ; flags + db 0 ; items + dw wd002 + dw PlaceNthMenuStrings + dw .pointers +; 0x267aa + +.pointers: ; 267aa + dw DecoBedMenu, .bed + dw DecoCarpetMenu, .carpet + dw DecoPlantMenu, .plant + dw DecoPosterMenu, .poster + dw DecoConsoleMenu, .game + dw DecoOrnamentMenu, .ornament + dw DecoBigDollMenu, .big_doll + dw DecoExitMenu, .exit + +.bed db "BED@" +.carpet db "CARPET@" +.plant db "PLANT@" +.poster db "POSTER@" +.game db "GAME CONSOLE@" +.ornament db "ORNAMENT@" +.big_doll db "BIG DOLL@" +.exit db "EXIT@" +; 26806 + +.FindCategoriesWithOwnedDecos: ; 26806 + xor a + ld [wcf76], a + call .ClearStringBuffer2 + call .FindOwndDecos + ld a, 7 + call .AppendToStringBuffer2 + ld hl, StringBuffer2 + ld de, wd002 + ld bc, ITEM_NAME_LENGTH + call CopyBytes + ret + +.ClearStringBuffer2: ; 26822 (9:6822) + ld hl, StringBuffer2 + xor a + ld [hli], a + ld bc, ITEM_NAME_LENGTH - 1 + ld a, -1 + call ByteFill + ret + +.AppendToStringBuffer2: ; 26830 (9:6830) + ld hl, StringBuffer2 + inc [hl] + ld e, [hl] + ld d, 0 + add hl, de + ld [hl], a + ret + +.FindOwndDecos: ; 2683a (9:683a) + ld hl, .jumptable +.loop + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + or e + jr z, .done + push hl + call _de_ + pop hl + jr nc, .next + ld a, [hl] + push hl + call .AppendToStringBuffer2 + pop hl +.next + inc hl + jr .loop +.done + ret +; 26855 (9:6855) + +.jumptable: ; 26855 + dwb FindOwnedBeds, 0 ; bed + dwb FindOwnedCarpets, 1 ; carpet + dwb FindOwnedPlants, 2 ; plant + dwb FindOwnedPosters, 3 ; poster + dwb FindOwnedConsoles, 4 ; game console + dwb FindOwnedOrnaments, 5 ; ornament + dwb FindOwnedBigDolls, 6 ; big doll + dw 0 ; end +; 2686c + +Deco_FillTempWithMinusOne: ; 2686c + xor a + ld hl, wd002 + ld [hli], a + ld a, -1 + ld bc, $10 + call ByteFill + ret +; 2687a + +CheckAllDecorationFlags: ; 2687a +.loop + ld a, [hli] + cp -1 + jr z, .done + push hl + push af + ld b, CHECK_FLAG + call DecorationFlagAction + ld a, c + and a + pop bc + ld a, b + call nz, AppendDecoIndex + pop hl + jr .loop + +.done + ret +; 26891 + +AppendDecoIndex: ; 26891 + ld hl, wd002 + inc [hl] + ld e, [hl] + ld d, $0 + add hl, de + ld [hl], a + ret +; 2689b + +FindOwnedDecosInCategory: ; 2689b + push bc + push hl + call Deco_FillTempWithMinusOne + pop hl + call CheckAllDecorationFlags + pop bc + ld a, [wd002] + and a + ret z + + ld a, c + call AppendDecoIndex + ld a, 0 + call AppendDecoIndex + scf + ret +; 268b5 + +DecoBedMenu: ; 268b5 + call FindOwnedBeds + call PopulateDecoCategoryMenu + xor a + ret +; 268bd + +FindOwnedBeds: ; 268bd + ld hl, .beds + ld c, DECO_BEDS + jp FindOwnedDecosInCategory +; 268c5 + +.beds: ; 268c5 + db DECO_FEATHERY_BED ; 2 + db DECO_PINK_BED ; 3 + db DECO_POLKADOT_BED ; 4 + db DECO_PIKACHU_BED ; 5 + db -1 +; 268ca + +DecoCarpetMenu: ; 268ca + call FindOwnedCarpets + call PopulateDecoCategoryMenu + xor a + ret +; 268d2 + +FindOwnedCarpets: ; 268d2 + ld hl, .carpets + ld c, DECO_CARPETS + jp FindOwnedDecosInCategory +; 268da + +.carpets: ; 268da + db DECO_RED_CARPET ; 7 + db DECO_BLUE_CARPET ; 8 + db DECO_YELLOW_CARPET ; 9 + db DECO_GREEN_CARPET ; a + db -1 +; 268df + +DecoPlantMenu: ; 268df + call FindOwnedPlants + call PopulateDecoCategoryMenu + xor a + ret +; 268e7 + +FindOwnedPlants: ; 268e7 + ld hl, .plants + ld c, DECO_0B + jp FindOwnedDecosInCategory +; 268ef + +.plants: ; 268ef + db DECO_MAGNAPLANT ; c + db DECO_TROPICPLANT ; d + db DECO_JUMBOPLANT ; e + db -1 +; 268f3 + +DecoPosterMenu: ; 268f3 + call FindOwnedPosters + call PopulateDecoCategoryMenu + xor a + ret +; 268fb + +FindOwnedPosters: ; 268fb + ld hl, .posters + ld c, DECO_POSTERS + jp FindOwnedDecosInCategory +; 26903 + +.posters: ; 26903 + db DECO_TOWN_MAP ; 10 + db DECO_PIKACHU_POSTER ; 11 + db DECO_CLEFAIRY_POSTER ; 12 + db DECO_JIGGLYPUFF_POSTER ; 13 + db -1 +; 26908 + +DecoConsoleMenu: ; 26908 + call FindOwnedConsoles + call PopulateDecoCategoryMenu + xor a + ret +; 26910 + +FindOwnedConsoles: ; 26910 + ld hl, .consoles + ld c, DECO_CONSOLES + jp FindOwnedDecosInCategory +; 26918 + +.consoles: ; 26918 + db DECO_FAMICOM ; 15 + db DECO_SNES ; 16 + db DECO_N64 ; 17 + db DECO_VIRTUAL_BOY ; 18 + db -1 +; 2691d + +DecoOrnamentMenu: ; 2691d + call FindOwnedOrnaments + call PopulateDecoCategoryMenu + xor a + ret +; 26925 + +FindOwnedOrnaments: ; 26925 + ld hl, .ornaments + ld c, DECO_DOLLS + jp FindOwnedDecosInCategory +; 2692d + +.ornaments: ; 2692d + db DECO_PIKACHU_DOLL ; 1e + db DECO_SURF_PIKACHU_DOLL ; 1f + db DECO_CLEFAIRY_DOLL ; 20 + db DECO_JIGGLYPUFF_DOLL ; 21 + db DECO_BULBASAUR_DOLL ; 22 + db DECO_CHARMANDER_DOLL ; 23 + db DECO_SQUIRTLE_DOLL ; 24 + db DECO_POLIWAG_DOLL ; 25 + db DECO_DIGLETT_DOLL ; 26 + db DECO_STARMIE_DOLL ; 27 + db DECO_MAGIKARP_DOLL ; 28 + db DECO_ODDISH_DOLL ; 29 + db DECO_GENGAR_DOLL ; 2a + db DECO_SHELLDER_DOLL ; 2b + db DECO_GRIMER_DOLL ; 2c + db DECO_VOLTORB_DOLL ; 2d + db DECO_WEEDLE_DOLL ; 2e + db DECO_UNOWN_DOLL ; 2f + db DECO_GEODUDE_DOLL ; 30 + db DECO_MACHOP_DOLL ; 31 + db DECO_TENTACOOL_DOLL ; 32 + db DECO_GOLD_TROPHY_DOLL ; 33 + db DECO_SILVER_TROPHY_DOLL ; 34 + db -1 +; 26945 + +DecoBigDollMenu: ; 26945 + call FindOwnedBigDolls + call PopulateDecoCategoryMenu + xor a + ret +; 2694d + +FindOwnedBigDolls: ; 2694d + ld hl, .big_dolls + ld c, DECO_BIG_DOLLS + jp FindOwnedDecosInCategory +; 26955 + +.big_dolls: ; 26955 + db DECO_BIG_SNORLAX_DOLL ; 1a + db DECO_BIG_ONIX_DOLL ; 1b + db DECO_BIG_LAPRAS_DOLL ; 1c + db -1 +; 26959 + +DecoExitMenu: ; 26959 + scf + ret +; 2695b + +PopulateDecoCategoryMenu: ; 2695b + ld a, [wd002] + and a + jr z, .empty + cp 8 + jr nc, .beyond_eight + xor a + ld [wcf76], a + ld hl, .NonscrollingMenuDataHeader + call LoadMenuDataHeader + call DoNthMenu + jr c, .no_action_1 + call DoDecorationAction2 + +.no_action_1 + call ExitMenu + ret + +.beyond_eight + ld hl, wd002 + ld e, [hl] + dec [hl] + ld d, 0 + add hl, de + ld [hl], -1 + call LoadStandardMenuDataHeader + ld hl, .ScrollingMenuDataHeader + call CopyMenuDataHeader + xor a + ld [hBGMapMode], a + call InitScrollingMenu + xor a + ld [wd0e4], a + call HandleScrollingMenu + ld a, [wcf73] + cp 2 + jr z, .no_action_2 + call DoDecorationAction2 + +.no_action_2 + call ExitMenu + ret + +.empty + ld hl, .Text_nothing_to_choose + call MenuTextBoxBackup + ret +; 269b0 + +.Text_nothing_to_choose: ; 0x269b0 + ; There's nothing to choose. + text_jump UnknownText_0x1bc471 + db "@" +; 0x269b5 + +.NonscrollingMenuDataHeader: ; 0x269b5 + db $40 ; flags + db 00, 00 ; start coords + db 17, 19 ; end coords + dw .NonscrollingMenuData2 + db 1 ; default option +; 0x269bd + +.NonscrollingMenuData2: ; 0x269bd + db $a0 ; flags + db 0 ; items + dw wd002 + dw DecorationMenuFunction + dw DecorationAttributes +; 0x269c5 + +.ScrollingMenuDataHeader: ; 0x269c5 + db $40 ; flags + db 01, 01 ; start coords + db 16, 18 ; end coords + dw .ScrollingMenuData2 + db 1 ; default option +; 0x269cd + +.ScrollingMenuData2: ; 0x269cd + db $10 ; flags + db 8, 0 ; rows, columns + db 1 ; horizontal spacing + dbw 0, wd002 ; text pointer + dba DecorationMenuFunction + dbw 0, 0 + dbw 0, 0 +; 269dd + + +GetDecorationData: ; 269dd + ld hl, DecorationAttributes + ld bc, 6 + call AddNTimes + ret +; 269e7 + +GetDecorationName: ; 269e7 + push hl + call GetDecorationData + call GetDecoName + pop hl + call CopyName2 + ret +; 269f3 + +DecorationMenuFunction: ; 269f3 + ld a, [MenuSelection] + push de + call GetDecorationData + call GetDecoName + pop hl + call PlaceString + ret +; 26a02 + +DoDecorationAction2: ; 26a02 + ld a, [MenuSelection] + call GetDecorationData + ld de, 2 ; function 2 + add hl, de + ld a, [hl] + ld hl, .DecoActions + rst JumpTable + ret +; 26a12 + +.DecoActions: ; 26a12 + dw DecoAction_nothing + dw DecoAction_setupbed + dw DecoAction_putawaybed + dw DecoAction_setupcarpet + dw DecoAction_putawaycarpet + dw DecoAction_setupplant + dw DecoAction_putawayplant + dw DecoAction_setupposter + dw DecoAction_putawayposter + dw DecoAction_setupconsole + dw DecoAction_putawayconsole + dw DecoAction_setupbigdoll + dw DecoAction_putawaybigdoll + dw DecoAction_setupornament + dw DecoAction_putawayornament +; 26a30 + + +GetDecorationFlag: ; 26a30 + call GetDecorationData + ld de, 3 ; event flag + add hl, de + ld a, [hli] + ld d, [hl] + ld e, a + ret +; 26a3b + +DecorationFlagAction: ; 26a3b + push bc + call GetDecorationFlag + pop bc + call EventFlagAction + ret +; 26a44 + +GetDecorationSprite: ; 26a44 + ld a, c + call GetDecorationData + ld de, 5 ; sprite + add hl, de + ld a, [hl] + ld c, a + ret +; 26a4f + +decoration: MACRO + ; type, name, command, event flag, tile/sprite + db \1, \2, \3 + dw \4 + db \5 +ENDM + +DecorationAttributes: ; 26a4f + decoration DECO_PLANT, $00, $0, EVENT_GAVE_KURT_APRICORNS, $00 + decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_BED, EVENT_GAVE_KURT_APRICORNS, $00 + decoration DECO_BED, FEATHERY_BED, SET_UP_BED, EVENT_DECO_BED_1, $1b + decoration DECO_BED, PINK_BED, SET_UP_BED, EVENT_DECO_BED_2, $1c + decoration DECO_BED, POLKADOT_BED, SET_UP_BED, EVENT_DECO_BED_3, $1d + decoration DECO_BED, PIKACHU_BED, SET_UP_BED, EVENT_DECO_BED_4, $1e + decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_CARPET, EVENT_GAVE_KURT_APRICORNS, $00 + decoration DECO_CARPET, RED_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_1, $08 + decoration DECO_CARPET, BLUE_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_2, $0b + decoration DECO_CARPET, YELLOW_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_3, $0e + decoration DECO_CARPET, GREEN_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_4, $11 + decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_PLANT, EVENT_GAVE_KURT_APRICORNS, $00 + decoration DECO_PLANT, MAGNAPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_1, $20 + decoration DECO_PLANT, TROPICPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_2, $21 + decoration DECO_PLANT, JUMBOPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_3, $22 + decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_POSTER, EVENT_GAVE_KURT_APRICORNS, $00 + decoration DECO_PLANT, TOWN_MAP_D, SET_UP_POSTER, EVENT_DECO_PLANT_4, $1f + decoration DECO_POSTER, PIKACHU, SET_UP_POSTER, EVENT_DECO_POSTER_1, $23 + decoration DECO_POSTER, CLEFAIRY, SET_UP_POSTER, EVENT_DECO_POSTER_2, $24 + decoration DECO_POSTER, JIGGLYPUFF, SET_UP_POSTER, EVENT_DECO_POSTER_3, $25 + decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_CONSOLE, EVENT_GAVE_KURT_APRICORNS, $00 + decoration DECO_PLANT, FAMICOM, SET_UP_CONSOLE, EVENT_DECO_FAMICOM, SPRITE_FAMICOM + decoration DECO_PLANT, SUPER_NES, SET_UP_CONSOLE, EVENT_DECO_SNES, SPRITE_SNES + decoration DECO_PLANT, NINTENDO_64, SET_UP_CONSOLE, EVENT_DECO_N64, SPRITE_N64 + decoration DECO_PLANT, VIRTUAL_BOY, SET_UP_CONSOLE, EVENT_DECO_VIRTUAL_BOY, SPRITE_VIRTUAL_BOY + decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_BIG_DOLL, EVENT_GAVE_KURT_APRICORNS, $00 + decoration DECO_BIGDOLL, SNORLAX, SET_UP_BIG_DOLL, EVENT_DECO_BIG_SNORLAX_DOLL, SPRITE_BIG_SNORLAX + decoration DECO_BIGDOLL, ONIX, SET_UP_BIG_DOLL, EVENT_DECO_BIG_ONIX_DOLL, SPRITE_BIG_ONIX + decoration DECO_BIGDOLL, LAPRAS, SET_UP_BIG_DOLL, EVENT_DECO_BIG_LAPRAS_DOLL, SPRITE_BIG_LAPRAS + decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_DOLL, EVENT_GAVE_KURT_APRICORNS, $00 + decoration DECO_DOLL, PIKACHU, SET_UP_DOLL, EVENT_DECO_PIKACHU_DOLL, SPRITE_PIKACHU + decoration DECO_PLANT, SURF_PIKA_DOLL, SET_UP_DOLL, EVENT_DECO_SURFING_PIKACHU_DOLL, SPRITE_SURFING_PIKACHU + decoration DECO_DOLL, CLEFAIRY, SET_UP_DOLL, EVENT_DECO_CLEFAIRY_DOLL, SPRITE_CLEFAIRY + decoration DECO_DOLL, JIGGLYPUFF, SET_UP_DOLL, EVENT_DECO_JIGGLYPUFF_DOLL, SPRITE_JIGGLYPUFF + decoration DECO_DOLL, BULBASAUR, SET_UP_DOLL, EVENT_DECO_BULBASAUR_DOLL, SPRITE_BULBASAUR + decoration DECO_DOLL, CHARMANDER, SET_UP_DOLL, EVENT_DECO_CHARMANDER_DOLL, SPRITE_CHARMANDER + decoration DECO_DOLL, SQUIRTLE, SET_UP_DOLL, EVENT_DECO_SQUIRTLE_DOLL, SPRITE_SQUIRTLE + decoration DECO_DOLL, POLIWAG, SET_UP_DOLL, EVENT_DECO_POLIWAG_DOLL, SPRITE_POLIWAG + decoration DECO_DOLL, DIGLETT, SET_UP_DOLL, EVENT_DECO_DIGLETT_DOLL, SPRITE_DIGLETT + decoration DECO_DOLL, STARYU, SET_UP_DOLL, EVENT_DECO_STARMIE_DOLL, SPRITE_STARMIE + decoration DECO_DOLL, MAGIKARP, SET_UP_DOLL, EVENT_DECO_MAGIKARP_DOLL, SPRITE_MAGIKARP + decoration DECO_DOLL, ODDISH, SET_UP_DOLL, EVENT_DECO_ODDISH_DOLL, SPRITE_ODDISH + decoration DECO_DOLL, GENGAR, SET_UP_DOLL, EVENT_DECO_GENGAR_DOLL, SPRITE_GENGAR + decoration DECO_DOLL, SHELLDER, SET_UP_DOLL, EVENT_DECO_SHELLDER_DOLL, SPRITE_SHELLDER + decoration DECO_DOLL, GRIMER, SET_UP_DOLL, EVENT_DECO_GRIMER_DOLL, SPRITE_GRIMER + decoration DECO_DOLL, VOLTORB, SET_UP_DOLL, EVENT_DECO_VOLTORB_DOLL, SPRITE_VOLTORB + decoration DECO_DOLL, WEEDLE, SET_UP_DOLL, EVENT_DECO_WEEDLE_DOLL, SPRITE_WEEDLE + decoration DECO_DOLL, UNOWN, SET_UP_DOLL, EVENT_DECO_UNOWN_DOLL, SPRITE_UNOWN + decoration DECO_DOLL, GEODUDE, SET_UP_DOLL, EVENT_DECO_GEODUDE_DOLL, SPRITE_GEODUDE + decoration DECO_DOLL, MACHOP, SET_UP_DOLL, EVENT_DECO_MACHOP_DOLL, SPRITE_MACHOP + decoration DECO_DOLL, TENTACOOL, SET_UP_DOLL, EVENT_DECO_TENTACOOL_DOLL, SPRITE_TENTACOOL + decoration DECO_PLANT, GOLD_TROPHY, SET_UP_DOLL, EVENT_DECO_GOLD_TROPHY, SPRITE_GOLD_TROPHY + decoration DECO_PLANT, SILVER_TROPHY, SET_UP_DOLL, EVENT_DECO_SILVER_TROPHY, SPRITE_SILVER_TROPHY +; 26b8d + + +DecorationNames: ; 26b8d + db "CANCEL@" + db "PUT IT AWAY@" + db "MAGNAPLANT@" + db "TROPICPLANT@" + db "JUMBOPLANT@" + db "TOWN MAP@" + db "NES@" + db "SUPER NES@" + db "NINTENDO 64@" + db "VIRTUAL BOY@" + db "GOLD TROPHY@" + db "SILVER TROPHY@" + db "SURF PIKACHU DOLL@" + db " BED@" + db " CARPET@" + db " POSTER@" + db " DOLL@" + db "BIG @" + db "FEATHERY@" + db "PIKACHU@" + db "PINK@" + db "POLKADOT@" + db "RED@" + db "BLUE@" + db "YELLOW@" + db "GREEN@" +; 26c72 + +GetDecoName: ; 26c72 + ld a, [hli] + ld e, [hl] + ld bc, StringBuffer2 + push bc + ld hl, .NameFunctions + rst JumpTable + pop de + ret +; 26c7e + +.NameFunctions: ; 26c7e + dw .invalid + dw .plant + dw .bed + dw .carpet + dw .poster + dw .doll + dw .bigdoll +; 26c8c + + +.invalid: ; 26c8c + ret +; 26c8d + +.plant: ; 26c8d + ld a, e + jr .getdeconame + +.bed: ; 26c90 + call .plant + ld a, _BED + jr .getdeconame + +.carpet: ; 26c97 + call .plant + ld a, _CARPET + jr .getdeconame + +.poster: ; 26c9e + ld a, e + call .getpokename + ld a, _POSTER + jr .getdeconame + +.doll: ; 26ca6 + ld a, e + call .getpokename + ld a, _DOLL + jr .getdeconame + +.bigdoll: ; 26cae + push de + ld a, BIG_ + call .getdeconame + pop de + ld a, e + jr .getpokename + +.unused: ; 26cb8 + push de + call .getdeconame + pop de + ld a, e + jr .getdeconame + +.getpokename: ; 26cc0 + push bc + ld [wd265], a + call GetPokemonName + pop bc + jr .copy + +.getdeconame: ; 26cca + call ._getdeconame + jr .copy + +._getdeconame: ; 26ccf + push bc + ld hl, DecorationNames + call GetNthString + ld d, h + ld e, l + pop bc + ret + +.copy: ; 26cda + ld h, b + ld l, c + call CopyName2 + dec hl + ld b, h + ld c, l + ret +; 26ce3 + +DecoAction_nothing: ; 26ce3 + scf + ret +; 26ce5 + +DecoAction_setupbed: ; 26ce5 + ld hl, Bed + jp DecoAction_TrySetItUp +; 26ceb + +DecoAction_putawaybed: ; 26ceb + ld hl, Bed + jp DecoAction_TryPutItAway +; 26cf1 + +DecoAction_setupcarpet: ; 26cf1 + ld hl, Carpet + jp DecoAction_TrySetItUp +; 26cf7 + +DecoAction_putawaycarpet: ; 26cf7 + ld hl, Carpet + jp DecoAction_TryPutItAway +; 26cfd + +DecoAction_setupplant: ; 26cfd + ld hl, Plant + jp DecoAction_TrySetItUp +; 26d03 + +DecoAction_putawayplant: ; 26d03 + ld hl, Plant + jp DecoAction_TryPutItAway +; 26d09 + +DecoAction_setupposter: ; 26d09 + ld hl, Poster + jp DecoAction_TrySetItUp +; 26d0f + +DecoAction_putawayposter: ; 26d0f + ld hl, Poster + jp DecoAction_TryPutItAway +; 26d15 + +DecoAction_setupconsole: ; 26d15 + ld hl, Console + jp DecoAction_TrySetItUp +; 26d1b + +DecoAction_putawayconsole: ; 26d1b + ld hl, Console + jp DecoAction_TryPutItAway +; 26d21 + +DecoAction_setupbigdoll: ; 26d21 + ld hl, BigDoll + jp DecoAction_TrySetItUp +; 26d27 + +DecoAction_putawaybigdoll: ; 26d27 + ld hl, BigDoll + jp DecoAction_TryPutItAway +; 26d2d + +DecoAction_TrySetItUp: ; 26d2d + ld a, [hl] + ld [Buffer1], a + push hl + call DecoAction_SetItUp + jr c, .failed + ld a, 1 + ld [wd1ee], a + pop hl + ld a, [MenuSelection] + ld [hl], a + xor a + ret + +.failed + pop hl + xor a + ret +; 26d46 + +DecoAction_SetItUp: ; 26d46 +; See if there's anything of the same type already out + ld a, [Buffer1] + and a + jr z, .nothingthere +; See if that item is already out + ld b, a + ld a, [MenuSelection] + cp b + jr z, .alreadythere +; Put away the item that's already out, and set up the new one + ld a, [MenuSelection] + ld hl, StringBuffer4 + call GetDecorationName + ld a, [Buffer1] + ld hl, StringBuffer3 + call GetDecorationName + ld hl, DecoText_PutAwayAndSetUp + call MenuTextBoxBackup + xor a + ret + +.nothingthere + ld a, [MenuSelection] + ld hl, StringBuffer3 + call GetDecorationName + ld hl, DecoText_SetUpTheDeco + call MenuTextBoxBackup + xor a + ret + +.alreadythere + ld hl, DecoText_AlreadySetUp + call MenuTextBoxBackup + scf + ret +; 26d86 + +DecoAction_TryPutItAway: ; 26d86 +; If there is no item of that type already set, there is nothing to put away. + ld a, [hl] + ld [Buffer1], a + xor a + ld [hl], a + ld a, [Buffer1] + and a + jr z, .nothingthere +; Put it away. + ld a, $1 + ld [wd1ee], a + ld a, [Buffer1] + ld [MenuSelection], a + ld hl, StringBuffer3 + call GetDecorationName + ld hl, DecoText_PutAwayTheDeco + call MenuTextBoxBackup + xor a + ret + +.nothingthere + ld hl, DecoText_NothingToPutAway + call MenuTextBoxBackup + xor a + ret +; 26db3 + +DecoAction_setupornament: ; 26db3 + ld hl, UnknownText_0x26e41 + call DecoAction_AskWhichSide + jr c, .cancel + call DecoAction_SetItUp_Ornament + jr c, .cancel + ld a, $1 + ld [wd1ee], a + jr DecoAction_FinishUp_Ornament + +.cancel + xor a + ret + +DecoAction_putawayornament: ; 26dc9 + ld hl, DecoText_WhichSide + call DecoAction_AskWhichSide + jr nc, .incave + xor a + ret + +.incave + call DecoAction_PutItAway_Ornament + +DecoAction_FinishUp_Ornament: ; 26dd6 + call QueryWhichSide + ld a, [wd1ec] + ld [hl], a + ld a, [wd1ed] + ld [de], a + xor a + ret +; 26de3 + +DecoAction_SetItUp_Ornament: ; 26de3 + ld a, [wd1ec] + and a + jr z, .nothingthere + ld b, a + ld a, [MenuSelection] + cp b + jr z, .failed + ld a, b + ld hl, StringBuffer3 + call GetDecorationName + ld a, [MenuSelection] + ld hl, StringBuffer4 + call GetDecorationName + ld a, [MenuSelection] + ld [wd1ec], a + call .getwhichside + ld hl, DecoText_PutAwayAndSetUp + call MenuTextBoxBackup + xor a + ret + +.nothingthere + ld a, [MenuSelection] + ld [wd1ec], a + call .getwhichside + ld a, [MenuSelection] + ld hl, StringBuffer3 + call GetDecorationName + ld hl, DecoText_SetUpTheDeco + call MenuTextBoxBackup + xor a + ret + +.failed + ld hl, DecoText_AlreadySetUp + call MenuTextBoxBackup + scf + ret +; 26e33 + +.getwhichside: ; 26e33 + ld a, [MenuSelection] + ld b, a + ld a, [wd1ed] + cp b + ret nz + xor a + ld [wd1ed], a + ret +; 26e41 + +UnknownText_0x26e41: ; 0x26e41 + ; Which side do you want to put it on? + text_jump UnknownText_0x1bc48c + db "@" +; 0x26e46 + +DecoAction_PutItAway_Ornament: ; 26e46 + ld a, [wd1ec] + and a + jr z, .nothingthere + ld hl, StringBuffer3 + call GetDecorationName + ld a, $1 + ld [wd1ee], a + xor a + ld [wd1ec], a + ld hl, DecoText_PutAwayTheDeco + call MenuTextBoxBackup + xor a + ret + +.nothingthere + ld hl, DecoText_NothingToPutAway + call MenuTextBoxBackup + xor a + ret +; 26e6b + +DecoText_WhichSide: ; 0x26e6b + ; Which side do you want to put away? + text_jump UnknownText_0x1bc4b2 + db "@" +; 0x26e70 + +DecoAction_AskWhichSide: ; 26e70 + call MenuTextBox + ld hl, MenuDataHeader_0x26eab + call GetMenu2 + call ExitMenu + call CopyMenuData2 + jr c, .nope + ld a, [MenuSelection2] + cp 3 + jr z, .nope + ld [Buffer2], a + call QueryWhichSide + ld a, [hl] + ld [wd1ec], a + ld a, [de] + ld [wd1ed], a + xor a + ret + +.nope + scf + ret +; 26e9a + +QueryWhichSide: ; 26e9a + ld hl, RightOrnament + ld de, LeftOrnament + ld a, [Buffer2] + cp 1 + ret z + push hl + ld h, d + ld l, e + pop de + ret +; 26eab + +MenuDataHeader_0x26eab: ; 0x26eab + db $40 ; flags + db 00, 00 ; start coords + db 07, 13 ; end coords + dw MenuData2_0x26eb3 + db 1 ; default option +; 0x26eb3 + +MenuData2_0x26eb3: ; 0x26eb3 + db $80 ; flags + db 3 ; items + db "RIGHT SIDE@" + db "LEFT SIDE@" + db "CANCEL@" +; 0x26ed1 + +DecoText_PutAwayTheDeco: ; 0x26ed1 + ; Put away the @ . + text_jump UnknownText_0x1bc4d7 + db "@" +; 0x26ed6 + +DecoText_NothingToPutAway: ; 0x26ed6 + ; There's nothing to put away. + text_jump UnknownText_0x1bc4ec + db "@" +; 0x26edb + +DecoText_SetUpTheDeco: ; 0x26edb + ; Set up the @ . + text_jump UnknownText_0x1bc509 + db "@" +; 0x26ee0 + +DecoText_PutAwayAndSetUp: ; 0x26ee0 + ; Put away the @ and set up the @ . + text_jump UnknownText_0x1bc51c + db "@" +; 0x26ee5 + +DecoText_AlreadySetUp: ; 0x26ee5 + ; That's already set up. + text_jump UnknownText_0x1bc546 + db "@" +; 0x26eea + +GetDecorationName_c_de: ; 26eea + ld a, c + ld h, d + ld l, e + call GetDecorationName + ret +; 26ef1 + +DecorationFlagAction_c: ; 26ef1 + ld a, c + jp DecorationFlagAction +; 26ef5 + + +GetDecorationName_c: ; 26ef5 (9:6ef5) + ld a, c + call GetDecorationID + ld hl, StringBuffer1 + push hl + call GetDecorationName + pop de + ret + + +SetSpecificDecorationFlag: ; 26f02 + ld a, c + call GetDecorationID + ld b, SET_FLAG + call DecorationFlagAction + ret +; 26f0c + +GetDecorationID: ; 26f0c + push hl + push de + ld e, a + ld d, 0 + ld hl, DecorationIDs + add hl, de + ld a, [hl] + pop de + pop hl + ret +; 26f19 + +SetAllDecorationFlags: ; 26f19 + ld hl, DecorationIDs +.loop + ld a, [hli] + cp -1 + jr z, .done + push hl + ld b, SET_FLAG + call DecorationFlagAction + pop hl + jr .loop + +.done + ret +; 26f2b + +DecorationIDs: ; 26f2b + db DECO_FEATHERY_BED ; 2 + db DECO_PINK_BED ; 3 + db DECO_POLKADOT_BED ; 4 + db DECO_PIKACHU_BED ; 5 + + db DECO_RED_CARPET ; 7 + db DECO_BLUE_CARPET ; 8 + db DECO_YELLOW_CARPET ; 9 + db DECO_GREEN_CARPET ; a + + db DECO_MAGNAPLANT ; c + db DECO_TROPICPLANT ; d + db DECO_JUMBOPLANT ; e + + db DECO_TOWN_MAP ; 10 + db DECO_PIKACHU_POSTER ; 11 + db DECO_CLEFAIRY_POSTER ; 12 + db DECO_JIGGLYPUFF_POSTER ; 13 + + db DECO_FAMICOM ; 15 + db DECO_SNES ; 16 + db DECO_N64 ; 17 + db DECO_VIRTUAL_BOY ; 18 + + db DECO_PIKACHU_DOLL ; 1e + db DECO_SURF_PIKACHU_DOLL ; 1f + db DECO_CLEFAIRY_DOLL ; 20 + db DECO_JIGGLYPUFF_DOLL ; 21 + db DECO_BULBASAUR_DOLL ; 22 + db DECO_CHARMANDER_DOLL ; 23 + db DECO_SQUIRTLE_DOLL ; 24 + db DECO_POLIWAG_DOLL ; 25 + db DECO_DIGLETT_DOLL ; 26 + db DECO_STARMIE_DOLL ; 27 + db DECO_MAGIKARP_DOLL ; 28 + db DECO_ODDISH_DOLL ; 29 + db DECO_GENGAR_DOLL ; 2a + db DECO_SHELLDER_DOLL ; 2b + db DECO_GRIMER_DOLL ; 2c + db DECO_VOLTORB_DOLL ; 2d + db DECO_WEEDLE_DOLL ; 2e + db DECO_UNOWN_DOLL ; 2f + db DECO_GEODUDE_DOLL ; 30 + db DECO_MACHOP_DOLL ; 31 + db DECO_TENTACOOL_DOLL ; 32 + db DECO_BIG_SNORLAX_DOLL ; 1a + db DECO_BIG_ONIX_DOLL ; 1b + db DECO_BIG_LAPRAS_DOLL ; 1c + db DECO_GOLD_TROPHY_DOLL ; 33 + db DECO_SILVER_TROPHY_DOLL ; 34 + db -1 +; 26f59 + +DescribeDecoration:: ; 26f59 + ld a, b + ld hl, JumpTable_DecorationDesc + rst JumpTable + ret +; 26f5f + +JumpTable_DecorationDesc: ; 26f5f + dw DecorationDesc_Poster + dw DecorationDesc_LeftOrnament + dw DecorationDesc_RightOrnament + dw DecorationDesc_GiantOrnament + dw DecorationDesc_Console +; 26f69 + +DecorationDesc_Poster: ; 26f69 + ld a, [Poster] + ld hl, DecorationDesc_PosterPointers + ld de, 3 + call IsInArray + jr c, .nope + ld de, DecorationDesc_NullPoster + ld b, BANK(DecorationDesc_NullPoster) + ret + +.nope + ld b, BANK(DecorationDesc_TownMapPoster) + inc hl + ld a, [hli] + ld d, [hl] + ld e, a + ret +; 26f84 + +DecorationDesc_PosterPointers: ; 26f84 + dbw DECO_TOWN_MAP, DecorationDesc_TownMapPoster + dbw DECO_PIKACHU_POSTER, DecorationDesc_PikachuPoster + dbw DECO_CLEFAIRY_POSTER, DecorationDesc_ClefairyPoster + dbw DECO_JIGGLYPUFF_POSTER, DecorationDesc_JigglypuffPoster + db -1 +; 26f91 + +DecorationDesc_TownMapPoster: ; 0x26f91 + loadfont + writetext .TownMapText + closetext + special Special_TownMap + loadmovesprites + end +; 0x26f9b + +.TownMapText: ; 0x26f9b + ; It's the TOWN MAP. + text_jump UnknownText_0x1bc55d + db "@" +; 0x26fa0 + +DecorationDesc_PikachuPoster: ; 0x26fa0 + jumptext .PikaPosterText +; 0x26fa3 + +.PikaPosterText: ; 0x26fa3 + ; It's a poster of a cute PIKACHU. + text_jump UnknownText_0x1bc570 + db "@" +; 0x26fa8 + +DecorationDesc_ClefairyPoster: ; 0x26fa8 + jumptext .ClefairyPosterText +; 0x26fab + +.ClefairyPosterText: ; 0x26fab + ; It's a poster of a cute CLEFAIRY. + text_jump UnknownText_0x1bc591 + db "@" +; 0x26fb0 + +DecorationDesc_JigglypuffPoster: ; 0x26fb0 + jumptext .JigglypuffPosterText +; 0x26fb3 + +.JigglypuffPosterText: ; 0x26fb3 + ; It's a poster of a cute JIGGLYPUFF. + text_jump UnknownText_0x1bc5b3 + db "@" +; 0x26fb8 + +DecorationDesc_NullPoster: ; 26fb8 + end +; 26fb9 + +DecorationDesc_LeftOrnament: ; 26fb9 + ld a, [LeftOrnament] + jr DecorationDesc_OrnamentOrConsole + +DecorationDesc_RightOrnament: ; 26fbe + ld a, [RightOrnament] + jr DecorationDesc_OrnamentOrConsole + +DecorationDesc_Console: ; 26fc3 + ld a, [Console] + jr DecorationDesc_OrnamentOrConsole + +DecorationDesc_OrnamentOrConsole: ; 26fc8 + ld c, a + ld de, StringBuffer3 + call GetDecorationName_c_de + ld b, BANK(.OrnamentConsoleScript) + ld de, .OrnamentConsoleScript + ret +; 26fd5 + +.OrnamentConsoleScript: ; 26fd5 + jumptext .OrnamentConsoleText +; 26fd8 + +.OrnamentConsoleText: ; 0x26fd8 + ; It's an adorable @ . + text_jump UnknownText_0x1bc5d7 + db "@" +; 0x26fdd + +DecorationDesc_GiantOrnament: ; 26fdd + ld b, BANK(.BigDollScript) + ld de, .BigDollScript + ret +; 26fe3 + +.BigDollScript: ; 26fe3 + jumptext .BigDollText +; 26fe6 + +.BigDollText: ; 0x26fe6 + ; A giant doll! It's fluffy and cuddly. + text_jump UnknownText_0x1bc5ef + db "@" +; 0x26feb + +ToggleMaptileDecorations: ; 26feb + lb de, 0, 4 + ld a, [Bed] + call SetDecorationTile + lb de, 7, 4 + ld a, [Plant] + call SetDecorationTile + lb de, 6, 0 + ld a, [Poster] + call SetDecorationTile + call SetPosterVisibility + lb de, 0, 0 + call PadCoords_de + ld a, [Carpet] + and a + ret z + call _GetDecorationSprite + ld [hl], a + push af + lb de, 0, 2 + call PadCoords_de + pop af + inc a + ld [hli], a + inc a + ld [hli], a + dec a + ld [hl], a + ret +; 27027 + +SetPosterVisibility: ; 27027 + ld b, SET_FLAG + ld a, [Poster] + and a + jr nz, .ok + ld b, RESET_FLAG + +.ok + ld de, EVENT_KRISS_ROOM_POSTER + jp EventFlagAction +; 27037 + +SetDecorationTile: ; 27037 + push af + call PadCoords_de + pop af + and a + ret z + call _GetDecorationSprite + ld [hl], a + ret +; 27043 + +ToggleDecorationsVisibility: ; 27043 + ld de, EVENT_KRISS_HOUSE_2F_CONSOLE + ld hl, VariableSprites + SPRITE_CONSOLE - SPRITE_VARS + ld a, [Console] + call ToggleDecorationVisibility + ld de, EVENT_KRISS_HOUSE_2F_DOLL_1 + ld hl, VariableSprites + SPRITE_DOLL_1 - SPRITE_VARS + ld a, [LeftOrnament] + call ToggleDecorationVisibility + ld de, EVENT_KRISS_HOUSE_2F_DOLL_2 + ld hl, VariableSprites + SPRITE_DOLL_2 - SPRITE_VARS + ld a, [RightOrnament] + call ToggleDecorationVisibility + ld de, EVENT_KRISS_HOUSE_2F_BIG_DOLL + ld hl, VariableSprites + SPRITE_BIG_DOLL - SPRITE_VARS + ld a, [BigDoll] + call ToggleDecorationVisibility + ret +; 27074 + +ToggleDecorationVisibility: ; 27074 + and a + jr z, .hide + call _GetDecorationSprite + ld [hl], a + ld b, RESET_FLAG + jp EventFlagAction + +.hide + ld b, SET_FLAG + jp EventFlagAction +; 27085 + +_GetDecorationSprite: ; 27085 + ld c, a + push de + push hl + callba GetDecorationSprite + pop hl + pop de + ld a, c + ret +; 27092 diff --git a/engine/trainer_card.asm b/engine/trainer_card.asm new file mode 100755 index 000000000..53acdbf53 --- /dev/null +++ b/engine/trainer_card.asm @@ -0,0 +1,611 @@ +Function25105: ; 25105 + ld a, [VramState] + push af + xor a + ld [VramState], a + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + call Function2513b +.asm_25117 + call UpdateTime + call JoyTextDelay + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_25132 + ld a, [hJoyLast] + and B_BUTTON + jr nz, .asm_25132 + call Function2518e + call DelayFrame + jr .asm_25117 +.asm_25132 + pop af + ld [Options], a + pop af + ld [VramState], a + ret + +Function2513b: ; 2513b (9:513b) + call ClearBGPalettes + call ClearSprites + call ClearTileMap + call DisableLCD + + callba Function8833e + + ld hl, CardRightCornerGFX + ld de, VTiles2 tile $1c + ld bc, 1 tiles + ld a, BANK(CardRightCornerGFX) + call FarCopyBytes + + ld hl, CardStatusGFX + ld de, VTiles2 tile $29 + ld bc, $56 tiles + ld a, BANK(CardStatusGFX) + call FarCopyBytes + + call Function25299 + + hlcoord 0, 8 + ld d, $6 + call Function253b0 + + call EnableLCD + call WaitBGMap + ld b, SCGB_15 + call GetSGBLayout + call SetPalettes + call WaitBGMap + ld hl, wJumptableIndex + xor a +rept 3 + ld [hli], a +endr + ld [hl], a + ret + +Function2518e: ; 2518e (9:518e) + ld a, [wJumptableIndex] + ld e, a + ld d, $0 + ld hl, Jumptable_2519d +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Jumptable_2519d: ; 2519d (9:519d) + dw Function251b6 + dw Function251d7 + dw Function251f4 + dw Function25221 + dw Function2524c + dw Function25279 + dw Function251b0 + + +Function251ab: ; 251ab (9:51ab) + ld hl, wJumptableIndex + inc [hl] + ret + +Function251b0: ; 251b0 (9:51b0) + ld hl, wJumptableIndex + set 7, [hl] + ret + +Function251b6: ; 251b6 (9:51b6) + call ClearSprites + hlcoord 0, 8 + ld d, $6 + call Function253b0 + call WaitBGMap + ld de, CardStatusGFX + ld hl, VTiles2 tile $29 + lb bc, BANK(CardStatusGFX), $56 + call Request2bpp + call Function2530a + call Function251ab + ret + +Function251d7: ; 251d7 (9:51d7) + call Function25415 + ld hl, hJoyLast + ld a, [hl] + and D_RIGHT | A_BUTTON + jr nz, .pressed_right_a + ret + +.pressed_right_a + ld a, $2 + ld [wJumptableIndex], a + ret +; 251e9 (9:51e9) + +Function251e9: ; 251e9 + ld a, [KantoBadges] + and a + ret z + + ld a, $4 + ld [wJumptableIndex], a + ret +; 251f4 + +Function251f4: ; 251f4 (9:51f4) + call ClearSprites + hlcoord 0, 8 + ld d, $6 + call Function253b0 + call WaitBGMap + ld de, LeaderGFX + ld hl, VTiles2 tile $29 + lb bc, BANK(LeaderGFX), $56 + call Request2bpp + ld de, BadgeGFX + ld hl, VTiles0 tile $00 + lb bc, BANK(BadgeGFX), $2c + call Request2bpp + call Function2536c + call Function251ab + ret + +Function25221: ; 25221 (9:5221) + ld hl, Unknown_254c9 + call Function25438 + ld hl, hJoyLast + ld a, [hl] + and A_BUTTON + jr nz, Function25246 + ld a, [hl] + and D_LEFT + jr nz, .asm_25235 + ret +.asm_25235 + ld a, $0 + ld [wJumptableIndex], a + ret +; 2523b (9:523b) + +Function2523b: ; 2523b + ld a, [KantoBadges] + and a + ret z + ld a, $4 + ld [wJumptableIndex], a + ret +; 25246 + +Function25246: ; 25246 + ld a, $6 + ld [wJumptableIndex], a + ret + +Function2524c: ; 2524c (9:524c) + call ClearSprites + hlcoord 0, 8 + ld d, $6 + call Function253b0 + call WaitBGMap + ld de, LeaderGFX2 + ld hl, VTiles2 tile $29 + lb bc, BANK(LeaderGFX2), $56 + call Request2bpp + ld de, BadgeGFX2 + ld hl, VTiles0 tile $00 + lb bc, BANK(BadgeGFX2), $2c + call Request2bpp + call Function2536c + call Function251ab + ret + +Function25279: ; 25279 (9:5279) + ld hl, Unknown_254c9 + call Function25438 + ld hl, hJoyLast + ld a, [hl] + and D_LEFT + jr nz, .asm_2528d + ld a, [hl] + and D_RIGHT + jr nz, .asm_25293 + ret +.asm_2528d + ld a, $2 + ld [wJumptableIndex], a + ret +.asm_25293 + ld a, $0 + ld [wJumptableIndex], a + ret + +Function25299: ; 25299 (9:5299) + hlcoord 0, 0 + ld d, $5 + call Function253b0 + hlcoord 2, 2 + ld de, String_252ec + call PlaceString + hlcoord 2, 4 + ld de, Tilemap_252f9 + call Function253a8 + hlcoord 7, 2 + ld de, PlayerName + call PlaceString + hlcoord 5, 4 + ld de, PlayerID + lb bc, PRINTNUM_LEADINGZEROS | 2, 5 + call PrintNum + hlcoord 7, 6 + ld de, Money + lb bc, PRINTNUM_MONEY | 3, 6 + call PrintNum + hlcoord 1, 3 + ld de, Tilemap_252fc + call Function253a8 + hlcoord 14, 1 + lb bc, 5, 7 + xor a + ld [hFillBox], a + predef FillBox + ret +; 252ec (9:52ec) + +String_252ec: ; 252ec + db "NAME/" + next "" + next "MONEY@" + +Tilemap_252f9: ; 252f9 + db $27, $28, $ff ; ID NO + +Tilemap_252fc: ; 252fc + db $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $26, $ff ; ____________> +; 2530a + +Function2530a: ; 2530a (9:530a) + hlcoord 2, 10 + ld de, String_2534c + call PlaceString + hlcoord 10, 15 + ld de, String_2535c + call PlaceString + ld hl, PokedexCaught + ld b, $20 + call CountSetBits + ld de, wd265 + hlcoord 15, 10 + lb bc, 1, 3 + call PrintNum + call Function25415 + hlcoord 2, 8 + ld de, Tilemap_25366 + call Function253a8 + ld a, [StatusFlags] ; pokedex + bit 0, a + ret nz + hlcoord 1, 9 + lb bc, 2, 17 + call ClearBox + ret +; 2534c (9:534c) + +String_2534c: ; 2534c + db "#DEX" + next "PLAY TIME" + db "@" + +String_2535b: ; 2535b + db "@" + +String_2535c: ; 2535c + db " BADGES▶@" + +Tilemap_25366: ; 25366 + db $29, $2a, $2b, $2c, $2d, $ff +; 2536c + +Function2536c: ; 2536c (9:536c) + hlcoord 2, 8 + ld de, Tilemap_253a2 + call Function253a8 + hlcoord 2, 10 + ld a, $29 + ld c, $4 +.asm_2537c + call Function253f4 +rept 4 + inc hl +endr + dec c + jr nz, .asm_2537c + hlcoord 2, 13 + ld a, $51 + ld c, $4 +.asm_2538d + call Function253f4 +rept 4 + inc hl +endr + dec c + jr nz, .asm_2538d + xor a + ld [wcf64], a + ld hl, Unknown_254c9 + call Function25448 + ret +; 253a2 (9:53a2) + +Tilemap_253a2: ; 253a2 + db $79, $7a, $7b, $7c, $7d, $ff ; "BADGES" +; 253a8 + +Function253a8: ; 253a8 (9:53a8) + ld a, [de] + cp $ff + ret z + ld [hli], a + inc de + jr Function253a8 + +Function253b0: ; 253b0 (9:53b0) + ld e, $14 +.asm_253b2 + ld a, $23 + ld [hli], a + dec e + jr nz, .asm_253b2 + ld a, $23 + ld [hli], a + ld e, $11 + ld a, $7f +.asm_253bf + ld [hli], a + dec e + jr nz, .asm_253bf + ld a, $1c + ld [hli], a + ld a, $23 + ld [hli], a +.asm_253c9 + ld a, $23 + ld [hli], a + ld e, $12 + ld a, $7f +.asm_253d0 + ld [hli], a + dec e + jr nz, .asm_253d0 + ld a, $23 + ld [hli], a + dec d + jr nz, .asm_253c9 + ld a, $23 + ld [hli], a + ld a, $24 + ld [hli], a + ld e, $11 + ld a, $7f +.asm_253e4 + ld [hli], a + dec e + jr nz, .asm_253e4 + ld a, $23 + ld [hli], a + ld e, $14 +.asm_253ed + ld a, $23 + ld [hli], a + dec e + jr nz, .asm_253ed + ret + +Function253f4: ; 253f4 (9:53f4) + push de + push hl + ld [hli], a + inc a + ld [hli], a + inc a + ld [hli], a + inc a + ld [hli], a + inc a + ld de, $11 + add hl, de + ld [hli], a + inc a + ld [hli], a + inc a + ld [hli], a + inc a + ld de, $11 + add hl, de + ld [hli], a + inc a + ld [hli], a + inc a + ld [hli], a + inc a + pop hl + pop de + ret + +Function25415: ; 25415 (9:5415) + hlcoord 11, 12 + ld de, GameTimeHours + lb bc, 2, 4 + call PrintNum + inc hl + ld de, GameTimeMinutes + lb bc, PRINTNUM_LEADINGZEROS | 1, 2 + call PrintNum + ld a, [hVBlankCounter] + and $1f + ret nz + hlcoord 15, 12 + ld a, [hl] + xor $51 + ld [hl], a + ret + +Function25438: ; 25438 (9:5438) + ld a, [hVBlankCounter] + and $7 + ret nz + ld a, [wcf64] + inc a + and $7 + ld [wcf64], a + jr Function25448 + +Function25448: ; 25448 (9:5448) + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [de] + ld c, a + ld de, Sprites + ld b, 8 +.asm_25453 + srl c + push bc + jr nc, .asm_25472 + push hl + ld a, [hli] + ld b, a + ld a, [hli] + ld c, a + ld a, [hli] + ld [wcf66], a + ld a, [wcf64] + add l + ld l, a + ld a, 0 + adc h + ld h, a + ld a, [hl] + ld [wcf65], a + call Function2547b + pop hl +.asm_25472 + ld bc, $b + add hl, bc + pop bc + dec b + jr nz, .asm_25453 + ret + +Function2547b: ; 2547b (9:547b) + ld a, [wcf65] + and $80 + jr nz, .asm_25487 + ld hl, Unknown_254a7 + jr .asm_2548a +.asm_25487 + ld hl, Unknown_254b8 +.asm_2548a + ld a, [hli] + cp $ff + ret z + add b + ld [de], a + inc de + ld a, [hli] + add c + ld [de], a + inc de + ld a, [wcf65] + and $7f + add [hl] + ld [de], a + inc hl + inc de + ld a, [wcf66] + add [hl] + ld [de], a + inc hl + inc de + jr .asm_2548a +; 254a7 (9:54a7) + +Unknown_254a7: ; 254a7 + db $00, $00, $00, $00 + db $00, $08, $01, $00 + db $08, $00, $02, $00 + db $08, $08, $03, $00 + db $ff + +Unknown_254b8: ; 254b8 + db $00, $00, $01, $20 + db $00, $08, $00, $20 + db $08, $00, $03, $20 + db $08, $08, $02, $20 + db $ff + +Unknown_254c9: ; 254c9 +; Template OAM data for each badge on the trainer card. +; Format: + ; y, x, palette + ; cycle 1: face tile, in1 tile, in2 tile, in3 tile + ; cycle 2: face tile, in1 tile, in2 tile, in3 tile + + dw JohtoBadges + + ; Zephyrbadge + db $68, $18, $00 + db $00, $20, $24, $20 | $80 + db $00, $20, $24, $20 | $80 + + ; Hivebadge + db $68, $38, $00 + db $04, $20, $24, $20 | $80 + db $04, $20, $24, $20 | $80 + + ; Plainbadge + db $68, $58, $00 + db $08, $20, $24, $20 | $80 + db $08, $20, $24, $20 | $80 + + ; Fogbadge + db $68, $78, $00 + db $0c, $20, $24, $20 | $80 + db $0c, $20, $24, $20 | $80 + + ; Mineralbadge + db $80, $38, $00 + db $10, $20, $24, $20 | $80 + db $10, $20, $24, $20 | $80 + + ; Stormbadge + db $80, $18, $00 + db $14, $20, $24, $20 | $80 + db $14, $20, $24, $20 | $80 + + ; Glacierbadge + db $80, $58, $00 + db $18, $20, $24, $20 | $80 + db $18, $20, $24, $20 | $80 + + ; Risingbadge + ; X-flips on alternate cycles. + db $80, $78, $00 + db $1c, $20, $24, $20 | $80 + db $1c | $80, $20, $24, $20 | $80 +; 25523 + +CardStatusGFX: INCBIN "gfx/misc/card_status.2bpp" + +LeaderGFX: INCBIN "gfx/misc/leaders.w24.2bpp" +LeaderGFX2: INCBIN "gfx/misc/leaders.w24.2bpp" +BadgeGFX: INCBIN "gfx/misc/badges.2bpp" +BadgeGFX2: INCBIN "gfx/misc/badges.2bpp" + +CardRightCornerGFX: INCBIN "gfx/misc/card_right_corner.2bpp" diff --git a/event/buena.asm b/event/buena.asm index 0443d962d..ca3fad630 100644 --- a/event/buena.asm +++ b/event/buena.asm @@ -250,7 +250,7 @@ Function8b0e2: ; 8b0e2 xor a ld [wcf76], a ld [hBGMapMode], a - call Function352f + call InitScrollingMenu call UpdateSprites call HandleScrollingMenu ld a, [MenuSelection] diff --git a/event/elevator.asm b/event/elevator.asm index d43bc9d54..4e522c276 100755 --- a/event/elevator.asm +++ b/event/elevator.asm @@ -127,7 +127,7 @@ Function134dd: ; 134dd call Elevator_GetCurrentFloorText ld hl, Elevator_MenuDataHeader call CopyMenuDataHeader - call Function352f + call InitScrollingMenu call UpdateSprites xor a ld [wd0e4], a diff --git a/event/kurt.asm b/event/kurt.asm index 8f9dd4fd6..dcbff8bd4 100644 --- a/event/kurt.asm +++ b/event/kurt.asm @@ -65,7 +65,7 @@ Kurt_SelectApricorn: ; 88055 ld [wMenuCursorBuffer], a xor a ld [hBGMapMode], a - call Function352f + call InitScrollingMenu call UpdateSprites call HandleScrollingMenu ld a, [wcf73] diff --git a/home.asm b/home.asm index 37a451aa0..a30fd8fbc 100644 --- a/home.asm +++ b/home.asm @@ -1173,7 +1173,7 @@ Function3524:: ; 3524 jp SetPalettes ; 352f -Function352f:: ; 352f +InitScrollingMenu:: ; 352f ld a, [wMenuBorderTopCoord] dec a ld b, a @@ -1192,7 +1192,7 @@ Function352f:: ; 352f jp TextBox ; 354b -Function354b:: ; 354b +Function354b:: ; 354b joypad call DelayFrame ld a, [hInMenu] diff --git a/main.asm b/main.asm index 15b4aa3d0..d373463e2 100644 --- a/main.asm +++ b/main.asm @@ -13429,12 +13429,12 @@ MenuData_0x24f34: ; 0x24f34 dn 2, 2 ; rows, columns db 6 ; spacing dba Strings24f3d - dbw $09, 0 + dbw BANK(MenuData_0x24f34), 0 ; 0x24f3d Strings24f3d: ; 0x24f3d db "FIGHT@" - db $4a, "@" + db "@" db "PACK@" db "RUN@" ; 24f4e @@ -13540,95 +13540,95 @@ Function24fe1: ; 24fe1 Function24ff9: ; 24ff9 ld a, $1 ld [wItemQuantityChangeBuffer], a -.asm_24ffe - call Function25072 - call Function2500e - jr nc, .asm_24ffe - cp $ff - jr nz, .asm_2500c +.loop + call Function25072 ; update display + call Function2500e ; joy action + jr nc, .loop + cp -1 + jr nz, .nope scf ret -.asm_2500c +.nope and a ret ; 2500e Function2500e: ; 2500e - call Function354b - bit 1, c - jr nz, .asm_2502b - bit 0, c - jr nz, .asm_2502f - bit 7, c - jr nz, .asm_25033 - bit 6, c - jr nz, .asm_2503f - bit 5, c - jr nz, .asm_2504d - bit 4, c - jr nz, .asm_2505f + call Function354b ; get joypad + bit B_BUTTON_F, c + jr nz, .b + bit A_BUTTON_F, c + jr nz, .a + bit D_DOWN_F, c + jr nz, .down + bit D_UP_F, c + jr nz, .up + bit D_LEFT_F, c + jr nz, .left + bit D_RIGHT_F, c + jr nz, .right and a ret -.asm_2502b - ld a, $ff +.b + ld a, -1 scf ret -.asm_2502f - ld a, $0 +.a + ld a, 0 scf ret -.asm_25033 +.down ld hl, wItemQuantityChangeBuffer dec [hl] - jr nz, .asm_2503d + jr nz, .finish_down ld a, [wItemQuantityBuffer] ld [hl], a -.asm_2503d +.finish_down and a ret -.asm_2503f +.up ld hl, wItemQuantityChangeBuffer inc [hl] ld a, [wItemQuantityBuffer] cp [hl] - jr nc, .asm_2504b + jr nc, .finish_up ld [hl], $1 -.asm_2504b +.finish_up and a ret -.asm_2504d +.left ld a, [wItemQuantityChangeBuffer] sub $a - jr c, .asm_25058 - jr z, .asm_25058 - jr .asm_2505a + jr c, .load_1 + jr z, .load_1 + jr .finish_left -.asm_25058 +.load_1 ld a, $1 -.asm_2505a +.finish_left ld [wItemQuantityChangeBuffer], a and a ret -.asm_2505f +.right ld a, [wItemQuantityChangeBuffer] add $a ld b, a ld a, [wItemQuantityBuffer] cp b - jr nc, .asm_2506c + jr nc, .finish_right ld b, a -.asm_2506c +.finish_right ld a, b ld [wItemQuantityChangeBuffer], a and a @@ -13745,610 +13745,7 @@ MenuDataHeader_0x250fd: ; 0x250fd db 0 ; default option ; 0x25105 -Function25105: ; 25105 - ld a, [VramState] - push af - xor a - ld [VramState], a - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - call Function2513b -.asm_25117 - call UpdateTime - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_25132 - ld a, [hJoyLast] - and B_BUTTON - jr nz, .asm_25132 - call Function2518e - call DelayFrame - jr .asm_25117 -.asm_25132 - pop af - ld [Options], a - pop af - ld [VramState], a - ret - -Function2513b: ; 2513b (9:513b) - call ClearBGPalettes - call ClearSprites - call ClearTileMap - call DisableLCD - callba Function8833e - ld hl, CardRightCornerGFX - ld de, VTiles2 tile $1c - ld bc, $10 - ld a, BANK(CardRightCornerGFX) - call FarCopyBytes - ld hl, CardStatusGFX - ld de, VTiles2 tile $29 - ld bc, $60 + $500 - ld a, BANK(CardStatusGFX) - call FarCopyBytes - call Function25299 - hlcoord 0, 8 - ld d, $6 - call Function253b0 - call EnableLCD - call WaitBGMap - ld b, SCGB_15 - call GetSGBLayout - call SetPalettes - call WaitBGMap - ld hl, wJumptableIndex - xor a -rept 3 - ld [hli], a -endr - ld [hl], a - ret - -Function2518e: ; 2518e (9:518e) - ld a, [wJumptableIndex] - ld e, a - ld d, $0 - ld hl, Jumptable_2519d -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -Jumptable_2519d: ; 2519d (9:519d) - dw Function251b6 - dw Function251d7 - dw Function251f4 - dw Function25221 - dw Function2524c - dw Function25279 - dw Function251b0 - - -Function251ab: ; 251ab (9:51ab) - ld hl, wJumptableIndex - inc [hl] - ret - -Function251b0: ; 251b0 (9:51b0) - ld hl, wJumptableIndex - set 7, [hl] - ret - -Function251b6: ; 251b6 (9:51b6) - call ClearSprites - hlcoord 0, 8 - ld d, $6 - call Function253b0 - call WaitBGMap - ld de, CardStatusGFX - ld hl, VTiles2 tile $29 - lb bc, BANK(CardStatusGFX), $6 + $50 - call Request2bpp - call Function2530a - call Function251ab - ret - -Function251d7: ; 251d7 (9:51d7) - call Function25415 - ld hl, hJoyLast - ld a, [hl] - and D_RIGHT | A_BUTTON - jr nz, .asm_251e3 - ret -.asm_251e3 - ld a, $2 - ld [wJumptableIndex], a - ret -; 251e9 (9:51e9) - -Function251e9: ; 251e9 - ld a, [KantoBadges] - and a - ret z - ld a, $4 - ld [wJumptableIndex], a - ret -; 251f4 - -Function251f4: ; 251f4 (9:51f4) - call ClearSprites - hlcoord 0, 8 - ld d, $6 - call Function253b0 - call WaitBGMap - ld de, LeaderGFX - ld hl, VTiles2 tile $29 - lb bc, BANK(LeaderGFX), $56 - call Request2bpp - ld de, BadgeGFX - ld hl, VTiles0 tile $00 - lb bc, BANK(BadgeGFX), $2c - call Request2bpp - call Function2536c - call Function251ab - ret - -Function25221: ; 25221 (9:5221) - ld hl, Unknown_254c9 - call Function25438 - ld hl, hJoyLast - ld a, [hl] - and A_BUTTON - jr nz, Function25246 - ld a, [hl] - and D_LEFT - jr nz, .asm_25235 - ret -.asm_25235 - ld a, $0 - ld [wJumptableIndex], a - ret -; 2523b (9:523b) - -Function2523b: ; 2523b - ld a, [KantoBadges] - and a - ret z - ld a, $4 - ld [wJumptableIndex], a - ret -; 25246 - -Function25246: ; 25246 - ld a, $6 - ld [wJumptableIndex], a - ret - -Function2524c: ; 2524c (9:524c) - call ClearSprites - hlcoord 0, 8 - ld d, $6 - call Function253b0 - call WaitBGMap - ld de, LeaderGFX2 - ld hl, VTiles2 tile $29 - lb bc, BANK(LeaderGFX2), $56 - call Request2bpp - ld de, BadgeGFX2 - ld hl, VTiles0 tile $00 - lb bc, BANK(BadgeGFX2), $2c - call Request2bpp - call Function2536c - call Function251ab - ret - -Function25279: ; 25279 (9:5279) - ld hl, Unknown_254c9 - call Function25438 - ld hl, hJoyLast - ld a, [hl] - and D_LEFT - jr nz, .asm_2528d - ld a, [hl] - and D_RIGHT - jr nz, .asm_25293 - ret -.asm_2528d - ld a, $2 - ld [wJumptableIndex], a - ret -.asm_25293 - ld a, $0 - ld [wJumptableIndex], a - ret - -Function25299: ; 25299 (9:5299) - hlcoord 0, 0 - ld d, $5 - call Function253b0 - hlcoord 2, 2 - ld de, String_252ec - call PlaceString - hlcoord 2, 4 - ld de, Tilemap_252f9 - call Function253a8 - hlcoord 7, 2 - ld de, PlayerName - call PlaceString - hlcoord 5, 4 - ld de, PlayerID - lb bc, PRINTNUM_LEADINGZEROS | 2, 5 - call PrintNum - hlcoord 7, 6 - ld de, Money - lb bc, PRINTNUM_MONEY | 3, 6 - call PrintNum - hlcoord 1, 3 - ld de, Tilemap_252fc - call Function253a8 - hlcoord 14, 1 - lb bc, 5, 7 - xor a - ld [hFillBox], a - predef FillBox - ret -; 252ec (9:52ec) - -String_252ec: ; 252ec - db "NAME/" - next "" - next "MONEY@" - -Tilemap_252f9: ; 252f9 - db $27, $28, $ff ; ID NO - -Tilemap_252fc: ; 252fc - db $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $25, $26, $ff ; ____________> -; 2530a - -Function2530a: ; 2530a (9:530a) - hlcoord 2, 10 - ld de, String_2534c - call PlaceString - hlcoord 10, 15 - ld de, String_2535c - call PlaceString - ld hl, PokedexCaught - ld b, $20 - call CountSetBits - ld de, wd265 - hlcoord 15, 10 - lb bc, 1, 3 - call PrintNum - call Function25415 - hlcoord 2, 8 - ld de, Tilemap_25366 - call Function253a8 - ld a, [StatusFlags] ; pokedex - bit 0, a - ret nz - hlcoord 1, 9 - lb bc, 2, 17 - call ClearBox - ret -; 2534c (9:534c) - -String_2534c: ; 2534c - db "#DEX" - next "PLAY TIME" - db "@" - -String_2535b: ; 2535b - db "@" - -String_2535c: ; 2535c - db " BADGES▶@" - -Tilemap_25366: ; 25366 - db $29, $2a, $2b, $2c, $2d, $ff -; 2536c - -Function2536c: ; 2536c (9:536c) - hlcoord 2, 8 - ld de, Tilemap_253a2 - call Function253a8 - hlcoord 2, 10 - ld a, $29 - ld c, $4 -.asm_2537c - call Function253f4 -rept 4 - inc hl -endr - dec c - jr nz, .asm_2537c - hlcoord 2, 13 - ld a, $51 - ld c, $4 -.asm_2538d - call Function253f4 -rept 4 - inc hl -endr - dec c - jr nz, .asm_2538d - xor a - ld [wcf64], a - ld hl, Unknown_254c9 - call Function25448 - ret -; 253a2 (9:53a2) - -Tilemap_253a2: ; 253a2 - db $79, $7a, $7b, $7c, $7d, $ff ; "BADGES" -; 253a8 - -Function253a8: ; 253a8 (9:53a8) - ld a, [de] - cp $ff - ret z - ld [hli], a - inc de - jr Function253a8 - -Function253b0: ; 253b0 (9:53b0) - ld e, $14 -.asm_253b2 - ld a, $23 - ld [hli], a - dec e - jr nz, .asm_253b2 - ld a, $23 - ld [hli], a - ld e, $11 - ld a, $7f -.asm_253bf - ld [hli], a - dec e - jr nz, .asm_253bf - ld a, $1c - ld [hli], a - ld a, $23 - ld [hli], a -.asm_253c9 - ld a, $23 - ld [hli], a - ld e, $12 - ld a, $7f -.asm_253d0 - ld [hli], a - dec e - jr nz, .asm_253d0 - ld a, $23 - ld [hli], a - dec d - jr nz, .asm_253c9 - ld a, $23 - ld [hli], a - ld a, $24 - ld [hli], a - ld e, $11 - ld a, $7f -.asm_253e4 - ld [hli], a - dec e - jr nz, .asm_253e4 - ld a, $23 - ld [hli], a - ld e, $14 -.asm_253ed - ld a, $23 - ld [hli], a - dec e - jr nz, .asm_253ed - ret - -Function253f4: ; 253f4 (9:53f4) - push de - push hl - ld [hli], a - inc a - ld [hli], a - inc a - ld [hli], a - inc a - ld [hli], a - inc a - ld de, $11 - add hl, de - ld [hli], a - inc a - ld [hli], a - inc a - ld [hli], a - inc a - ld de, $11 - add hl, de - ld [hli], a - inc a - ld [hli], a - inc a - ld [hli], a - inc a - pop hl - pop de - ret - -Function25415: ; 25415 (9:5415) - hlcoord 11, 12 - ld de, GameTimeHours - lb bc, 2, 4 - call PrintNum - inc hl - ld de, GameTimeMinutes - lb bc, PRINTNUM_LEADINGZEROS | 1, 2 - call PrintNum - ld a, [hVBlankCounter] - and $1f - ret nz - hlcoord 15, 12 - ld a, [hl] - xor $51 - ld [hl], a - ret - -Function25438: ; 25438 (9:5438) - ld a, [hVBlankCounter] - and $7 - ret nz - ld a, [wcf64] - inc a - and $7 - ld [wcf64], a - jr Function25448 - -Function25448: ; 25448 (9:5448) - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [de] - ld c, a - ld de, Sprites - ld b, 8 -.asm_25453 - srl c - push bc - jr nc, .asm_25472 - push hl - ld a, [hli] - ld b, a - ld a, [hli] - ld c, a - ld a, [hli] - ld [wcf66], a - ld a, [wcf64] - add l - ld l, a - ld a, 0 - adc h - ld h, a - ld a, [hl] - ld [wcf65], a - call Function2547b - pop hl -.asm_25472 - ld bc, $b - add hl, bc - pop bc - dec b - jr nz, .asm_25453 - ret - -Function2547b: ; 2547b (9:547b) - ld a, [wcf65] - and $80 - jr nz, .asm_25487 - ld hl, Unknown_254a7 - jr .asm_2548a -.asm_25487 - ld hl, Unknown_254b8 -.asm_2548a - ld a, [hli] - cp $ff - ret z - add b - ld [de], a - inc de - ld a, [hli] - add c - ld [de], a - inc de - ld a, [wcf65] - and $7f - add [hl] - ld [de], a - inc hl - inc de - ld a, [wcf66] - add [hl] - ld [de], a - inc hl - inc de - jr .asm_2548a -; 254a7 (9:54a7) - -Unknown_254a7: ; 254a7 - db $00, $00, $00, $00 - db $00, $08, $01, $00 - db $08, $00, $02, $00 - db $08, $08, $03, $00 - db $ff - -Unknown_254b8: ; 254b8 - db $00, $00, $01, $20 - db $00, $08, $00, $20 - db $08, $00, $03, $20 - db $08, $08, $02, $20 - db $ff - -Unknown_254c9: ; 254c9 -; Template OAM data for each badge on the trainer card. -; Format: - ; y, x, palette - ; cycle 1: face tile, in1 tile, in2 tile, in3 tile - ; cycle 2: face tile, in1 tile, in2 tile, in3 tile - - dw JohtoBadges - - ; Zephyrbadge - db $68, $18, $00 - db $00, $20, $24, $20 | $80 - db $00, $20, $24, $20 | $80 - - ; Hivebadge - db $68, $38, $00 - db $04, $20, $24, $20 | $80 - db $04, $20, $24, $20 | $80 - - ; Plainbadge - db $68, $58, $00 - db $08, $20, $24, $20 | $80 - db $08, $20, $24, $20 | $80 - - ; Fogbadge - db $68, $78, $00 - db $0c, $20, $24, $20 | $80 - db $0c, $20, $24, $20 | $80 - - ; Mineralbadge - db $80, $38, $00 - db $10, $20, $24, $20 | $80 - db $10, $20, $24, $20 | $80 - - ; Stormbadge - db $80, $18, $00 - db $14, $20, $24, $20 | $80 - db $14, $20, $24, $20 | $80 - - ; Glacierbadge - db $80, $58, $00 - db $18, $20, $24, $20 | $80 - db $18, $20, $24, $20 | $80 - - ; Risingbadge - ; X-flips on alternate cycles. - db $80, $78, $00 - db $1c, $20, $24, $20 | $80 - db $1c | $80, $20, $24, $20 | $80 -; 25523 - -CardStatusGFX: INCBIN "gfx/misc/card_status.2bpp" - -LeaderGFX: INCBIN "gfx/misc/leaders.w24.2bpp" -LeaderGFX2: INCBIN "gfx/misc/leaders.w24.2bpp" -BadgeGFX: INCBIN "gfx/misc/badges.2bpp" -BadgeGFX2: INCBIN "gfx/misc/badges.2bpp" - -CardRightCornerGFX: INCBIN "gfx/misc/card_right_corner.2bpp" - +INCLUDE "engine/trainer_card.asm" ProfOaksPC: ; 0x265d3 ld hl, OakPCText1 @@ -14630,1400 +14027,7 @@ OakPCText4: ; 0x2674c text_jump _OakPCText4 db "@" - -InitDecorations: ; 26751 (9:6751) - ld a, DECO_FEATHERY_BED - ld [Bed], a - ld a, DECO_TOWN_MAP - ld [Poster], a - ret - -_KrisDecorationMenu: ; 0x2675c - ld a, [wcf76] - push af - ld hl, MenuDataHeader_0x2679a - call LoadMenuDataHeader - xor a - ld [wd1ee], a - ld a, $1 - ld [wd1ef], a -.asm_2676f - ld a, [wd1ef] - ld [wMenuCursorBuffer], a - call Function26806 - call DoNthMenu - ld a, [MenuSelection2] - ld [wd1ef], a - jr c, .asm_2678e - ld a, [MenuSelection] - ld hl, Unknown_267aa - call MenuJumptable - jr nc, .asm_2676f - -.asm_2678e - call ExitMenu - pop af - ld [wcf76], a - ld a, [wd1ee] - ld c, a - ret -; 0x2679a - -MenuDataHeader_0x2679a: ; 0x2679a - db $40 ; flags - db 00, 05 ; start coords - db 17, 19 ; end coords - dw MenuData2_0x267a2 - db 1 ; default option -; 0x267a2 - -MenuData2_0x267a2: ; 0x267a2 - db $a0 ; flags - db 0 ; items - dw wd002 - dw PlaceNthMenuStrings - dw Unknown_267aa -; 0x267aa - -Unknown_267aa: ; 267aa - dw Function268b5, .bed - dw Function268ca, .carpet - dw Function268df, .plant - dw Function268f3, .poster - dw Function26908, .game - dw Function2691d, .ornament - dw Function26945, .big_doll - dw Function26959, .exit - -.bed db "BED@" -.carpet db "CARPET@" -.plant db "PLANT@" -.poster db "POSTER@" -.game db "GAME CONSOLE@" -.ornament db "ORNAMENT@" -.big_doll db "BIG DOLL@" -.exit db "EXIT@" -; 26806 - -Function26806: ; 26806 - xor a - ld [wcf76], a - call Function26822 - call Function2683a - ld a, $7 - call Function26830 - ld hl, StringBuffer2 - ld de, wd002 - ld bc, $d - call CopyBytes - ret - -Function26822: ; 26822 (9:6822) - ld hl, StringBuffer2 - xor a - ld [hli], a - ld bc, ITEM_NAME_LENGTH - 1 - ld a, -1 - call ByteFill - ret - -Function26830: ; 26830 (9:6830) - ld hl, StringBuffer2 - inc [hl] - ld e, [hl] - ld d, 0 - add hl, de - ld [hl], a - ret - -Function2683a: ; 2683a (9:683a) - ld hl, Jumptable_26855 -.loop - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - or e - jr z, .done - push hl - call _de_ - pop hl - jr nc, .next - ld a, [hl] - push hl - call Function26830 - pop hl -.next - inc hl - jr .loop -.done - ret -; 26855 (9:6855) - -Jumptable_26855: ; 26855 - dwb Function268bd, 0 ; bed - dwb Function268d2, 1 ; carpet - dwb Function268e7, 2 ; plant - dwb Function268fb, 3 ; poster - dwb Function26910, 4 ; game console - dwb Function26925, 5 ; ornament - dwb Function2694d, 6 ; big doll - dw 0 ; end -; 2686c - -Function2686c: ; 2686c - xor a - ld hl, wd002 - ld [hli], a - ld a, -1 - ld bc, $10 - call ByteFill - ret -; 2687a - -CheckAllDecorationFlags: ; 2687a -.loop - ld a, [hli] - cp -1 - jr z, .done - push hl - push af - ld b, CHECK_FLAG - call DecorationFlagAction - ld a, c - and a - pop bc - ld a, b - call nz, Function26891 - pop hl - jr .loop - -.done - ret -; 26891 - -Function26891: ; 26891 - ld hl, wd002 - inc [hl] - ld e, [hl] - ld d, $0 - add hl, de - ld [hl], a - ret -; 2689b - -Function2689b: ; 2689b - push bc - push hl - call Function2686c - pop hl - call CheckAllDecorationFlags - pop bc - ld a, [wd002] - and a - ret z - ld a, c - call Function26891 - ld a, $0 - call Function26891 - scf - ret -; 268b5 - -Function268b5: ; 268b5 - call Function268bd - call Function2695b - xor a - ret -; 268bd - -Function268bd: ; 268bd - ld hl, Unknown_268c5 - ld c, 1 - jp Function2689b -; 268c5 - -Unknown_268c5: ; 268c5 - db 2, 3, 4, 5, $ff -; 268ca - -Function268ca: ; 268ca - call Function268d2 - call Function2695b - xor a - ret -; 268d2 - -Function268d2: ; 268d2 - ld hl, Unknown_268da - ld c, 6 - jp Function2689b -; 268da - -Unknown_268da: ; 268da - db 7, 8, 9, 10, $ff -; 268df - -Function268df: ; 268df - call Function268e7 - call Function2695b - xor a - ret -; 268e7 - -Function268e7: ; 268e7 - ld hl, Unknown_268ef - ld c, 11 - jp Function2689b -; 268ef - -Unknown_268ef: ; 268ef - db 12, 13, 14, $ff -; 268f3 - -Function268f3: ; 268f3 - call Function268fb - call Function2695b - xor a - ret -; 268fb - -Function268fb: ; 268fb - ld hl, Unknown_26903 - ld c, 15 - jp Function2689b -; 26903 - -Unknown_26903: ; 26903 - db 16, 17, 18, 19, $ff -; 26908 - -Function26908: ; 26908 - call Function26910 - call Function2695b - xor a - ret -; 26910 - -Function26910: ; 26910 - ld hl, Unknown_26918 - ld c, 20 - jp Function2689b -; 26918 - -Unknown_26918: ; 26918 - db 21, 22, 23, 24, $ff -; 2691d - -Function2691d: ; 2691d - call Function26925 - call Function2695b - xor a - ret -; 26925 - -Function26925: ; 26925 - ld hl, Unknown_2692d - ld c, 29 - jp Function2689b -; 2692d - -Unknown_2692d: ; 2692d - db 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 - db 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 - db 50, 51, 52, -1 -; 26945 - -Function26945: ; 26945 - call Function2694d - call Function2695b - xor a - ret -; 2694d - -Function2694d: ; 2694d - ld hl, Unknown_26955 - ld c, 25 - jp Function2689b -; 26955 - -Unknown_26955: ; 26955 - db 26, 27, 28, -1 -; 26959 - -Function26959: ; 26959 - scf - ret -; 2695b - -Function2695b: ; 2695b - ld a, [wd002] - and a - jr z, .empty - cp 8 - jr nc, .beyond_eight - xor a - ld [wcf76], a - ld hl, MenuDataHeader_0x269b5 - call LoadMenuDataHeader - call DoNthMenu - jr c, .no_action_1 - call DoDecorationAction2 - -.no_action_1 - call ExitMenu - ret - -.beyond_eight - ld hl, wd002 - ld e, [hl] - dec [hl] - ld d, 0 - add hl, de - ld [hl], -1 - call LoadStandardMenuDataHeader - ld hl, MenuDataHeader_0x269c5 - call CopyMenuDataHeader - xor a - ld [hBGMapMode], a - call Function352f - xor a - ld [wd0e4], a - call HandleScrollingMenu - ld a, [wcf73] - cp 2 - jr z, .no_action_2 - call DoDecorationAction2 - -.no_action_2 - call ExitMenu - ret - -.empty - ld hl, UnknownText_0x269b0 - call MenuTextBoxBackup - ret -; 269b0 - -UnknownText_0x269b0: ; 0x269b0 - ; There's nothing to choose. - text_jump UnknownText_0x1bc471 - db "@" -; 0x269b5 - -MenuDataHeader_0x269b5: ; 0x269b5 - db $40 ; flags - db 00, 00 ; start coords - db 17, 19 ; end coords - dw MenuData2_0x269bd - db 1 ; default option -; 0x269bd - -MenuData2_0x269bd: ; 0x269bd - db $a0 ; flags - db 0 ; items - dw wd002 - dw DecorationMenuFunction - dw DecorationAttributes -; 0x269c5 - -MenuDataHeader_0x269c5: ; 0x269c5 - db $40 ; flags - db 01, 01 ; start coords - db 16, 18 ; end coords - dw MenuData2_0x269cd - db 1 ; default option -; 0x269cd - -MenuData2_0x269cd: ; 0x269cd - db $10 ; flags - db 8, 0 ; rows, columns - db 1 ; horizontal spacing - dbw 0, wd002 ; text pointer - dba DecorationMenuFunction - dbw 0, 0 - dbw 0, 0 -; 269dd - - -GetDecorationData: ; 269dd - ld hl, DecorationAttributes - ld bc, 6 - call AddNTimes - ret -; 269e7 - -GetDecorationName: ; 269e7 - push hl - call GetDecorationData - call GetDecoName - pop hl - call CopyName2 - ret -; 269f3 - -DecorationMenuFunction: ; 269f3 - ld a, [MenuSelection] - push de - call GetDecorationData - call GetDecoName - pop hl - call PlaceString - ret -; 26a02 - -DoDecorationAction2: ; 26a02 - ld a, [MenuSelection] - call GetDecorationData - ld de, 2 ; function 2 - add hl, de - ld a, [hl] - ld hl, .DecoActions - rst JumpTable - ret -; 26a12 - -.DecoActions: ; 26a12 - dw DecoAction_nothing - dw DecoAction_setupbed - dw DecoAction_putawaybed - dw DecoAction_setupcarpet - dw DecoAction_putawaycarpet - dw DecoAction_setupplant - dw DecoAction_putawayplant - dw DecoAction_setupposter - dw DecoAction_putawayposter - dw DecoAction_setupconsole - dw DecoAction_putawayconsole - dw DecoAction_setupbigdoll - dw DecoAction_putawaybigdoll - dw DecoAction_setupornament - dw DecoAction_putawayornament -; 26a30 - - -GetDecorationFlag: ; 26a30 - call GetDecorationData - ld de, 3 ; event flag - add hl, de - ld a, [hli] - ld d, [hl] - ld e, a - ret -; 26a3b - -DecorationFlagAction: ; 26a3b - push bc - call GetDecorationFlag - pop bc - call EventFlagAction - ret -; 26a44 - -GetDecorationSprite: ; 26a44 - ld a, c - call GetDecorationData - ld de, 5 ; sprite - add hl, de - ld a, [hl] - ld c, a - ret -; 26a4f - -decoration: MACRO - ; type, name, command, event flag, tile/sprite - db \1, \2, \3 - dw \4 - db \5 -ENDM - -DecorationAttributes: ; 26a4f - decoration DECO_PLANT, $00, $0, EVENT_GAVE_KURT_APRICORNS, $00 - decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_BED, EVENT_GAVE_KURT_APRICORNS, $00 - decoration DECO_BED, FEATHERY_BED, SET_UP_BED, EVENT_DECO_BED_1, $1b - decoration DECO_BED, PINK_BED, SET_UP_BED, EVENT_DECO_BED_2, $1c - decoration DECO_BED, POLKADOT_BED, SET_UP_BED, EVENT_DECO_BED_3, $1d - decoration DECO_BED, PIKACHU_BED, SET_UP_BED, EVENT_DECO_BED_4, $1e - decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_CARPET, EVENT_GAVE_KURT_APRICORNS, $00 - decoration DECO_CARPET, RED_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_1, $08 - decoration DECO_CARPET, BLUE_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_2, $0b - decoration DECO_CARPET, YELLOW_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_3, $0e - decoration DECO_CARPET, GREEN_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_4, $11 - decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_PLANT, EVENT_GAVE_KURT_APRICORNS, $00 - decoration DECO_PLANT, MAGNAPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_1, $20 - decoration DECO_PLANT, TROPICPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_2, $21 - decoration DECO_PLANT, JUMBOPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_3, $22 - decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_POSTER, EVENT_GAVE_KURT_APRICORNS, $00 - decoration DECO_PLANT, TOWN_MAP_D, SET_UP_POSTER, EVENT_DECO_PLANT_4, $1f - decoration DECO_POSTER, PIKACHU, SET_UP_POSTER, EVENT_DECO_POSTER_1, $23 - decoration DECO_POSTER, CLEFAIRY, SET_UP_POSTER, EVENT_DECO_POSTER_2, $24 - decoration DECO_POSTER, JIGGLYPUFF, SET_UP_POSTER, EVENT_DECO_POSTER_3, $25 - decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_CONSOLE, EVENT_GAVE_KURT_APRICORNS, $00 - decoration DECO_PLANT, FAMICOM, SET_UP_CONSOLE, EVENT_DECO_FAMICOM, SPRITE_FAMICOM - decoration DECO_PLANT, SUPER_NES, SET_UP_CONSOLE, EVENT_DECO_SNES, SPRITE_SNES - decoration DECO_PLANT, NINTENDO_64, SET_UP_CONSOLE, EVENT_DECO_N64, SPRITE_N64 - decoration DECO_PLANT, VIRTUAL_BOY, SET_UP_CONSOLE, EVENT_DECO_VIRTUAL_BOY, SPRITE_VIRTUAL_BOY - decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_BIG_DOLL, EVENT_GAVE_KURT_APRICORNS, $00 - decoration DECO_BIGDOLL, SNORLAX, SET_UP_BIG_DOLL, EVENT_DECO_BIG_SNORLAX_DOLL, SPRITE_BIG_SNORLAX - decoration DECO_BIGDOLL, ONIX, SET_UP_BIG_DOLL, EVENT_DECO_BIG_ONIX_DOLL, SPRITE_BIG_ONIX - decoration DECO_BIGDOLL, LAPRAS, SET_UP_BIG_DOLL, EVENT_DECO_BIG_LAPRAS_DOLL, SPRITE_BIG_LAPRAS - decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_DOLL, EVENT_GAVE_KURT_APRICORNS, $00 - decoration DECO_DOLL, PIKACHU, SET_UP_DOLL, EVENT_DECO_PIKACHU_DOLL, SPRITE_PIKACHU - decoration DECO_PLANT, SURF_PIKA_DOLL, SET_UP_DOLL, EVENT_DECO_SURFING_PIKACHU_DOLL, SPRITE_SURFING_PIKACHU - decoration DECO_DOLL, CLEFAIRY, SET_UP_DOLL, EVENT_DECO_CLEFAIRY_DOLL, SPRITE_CLEFAIRY - decoration DECO_DOLL, JIGGLYPUFF, SET_UP_DOLL, EVENT_DECO_JIGGLYPUFF_DOLL, SPRITE_JIGGLYPUFF - decoration DECO_DOLL, BULBASAUR, SET_UP_DOLL, EVENT_DECO_BULBASAUR_DOLL, SPRITE_BULBASAUR - decoration DECO_DOLL, CHARMANDER, SET_UP_DOLL, EVENT_DECO_CHARMANDER_DOLL, SPRITE_CHARMANDER - decoration DECO_DOLL, SQUIRTLE, SET_UP_DOLL, EVENT_DECO_SQUIRTLE_DOLL, SPRITE_SQUIRTLE - decoration DECO_DOLL, POLIWAG, SET_UP_DOLL, EVENT_DECO_POLIWAG_DOLL, SPRITE_POLIWAG - decoration DECO_DOLL, DIGLETT, SET_UP_DOLL, EVENT_DECO_DIGLETT_DOLL, SPRITE_DIGLETT - decoration DECO_DOLL, STARYU, SET_UP_DOLL, EVENT_DECO_STARMIE_DOLL, SPRITE_STARMIE - decoration DECO_DOLL, MAGIKARP, SET_UP_DOLL, EVENT_DECO_MAGIKARP_DOLL, SPRITE_MAGIKARP - decoration DECO_DOLL, ODDISH, SET_UP_DOLL, EVENT_DECO_ODDISH_DOLL, SPRITE_ODDISH - decoration DECO_DOLL, GENGAR, SET_UP_DOLL, EVENT_DECO_GENGAR_DOLL, SPRITE_GENGAR - decoration DECO_DOLL, SHELLDER, SET_UP_DOLL, EVENT_DECO_SHELLDER_DOLL, SPRITE_SHELLDER - decoration DECO_DOLL, GRIMER, SET_UP_DOLL, EVENT_DECO_GRIMER_DOLL, SPRITE_GRIMER - decoration DECO_DOLL, VOLTORB, SET_UP_DOLL, EVENT_DECO_VOLTORB_DOLL, SPRITE_VOLTORB - decoration DECO_DOLL, WEEDLE, SET_UP_DOLL, EVENT_DECO_WEEDLE_DOLL, SPRITE_WEEDLE - decoration DECO_DOLL, UNOWN, SET_UP_DOLL, EVENT_DECO_UNOWN_DOLL, SPRITE_UNOWN - decoration DECO_DOLL, GEODUDE, SET_UP_DOLL, EVENT_DECO_GEODUDE_DOLL, SPRITE_GEODUDE - decoration DECO_DOLL, MACHOP, SET_UP_DOLL, EVENT_DECO_MACHOP_DOLL, SPRITE_MACHOP - decoration DECO_DOLL, TENTACOOL, SET_UP_DOLL, EVENT_DECO_TENTACOOL_DOLL, SPRITE_TENTACOOL - decoration DECO_PLANT, GOLD_TROPHY, SET_UP_DOLL, EVENT_DECO_GOLD_TROPHY, SPRITE_GOLD_TROPHY - decoration DECO_PLANT, SILVER_TROPHY, SET_UP_DOLL, EVENT_DECO_SILVER_TROPHY, SPRITE_SILVER_TROPHY -; 26b8d - - -DecorationNames: ; 26b8d - db "CANCEL@" - db "PUT IT AWAY@" - db "MAGNAPLANT@" - db "TROPICPLANT@" - db "JUMBOPLANT@" - db "TOWN MAP@" - db "NES@" - db "SUPER NES@" - db "NINTENDO 64@" - db "VIRTUAL BOY@" - db "GOLD TROPHY@" - db "SILVER TROPHY@" - db "SURF PIKACHU DOLL@" - db " BED@" - db " CARPET@" - db " POSTER@" - db " DOLL@" - db "BIG @" - db "FEATHERY@" - db "PIKACHU@" - db "PINK@" - db "POLKADOT@" - db "RED@" - db "BLUE@" - db "YELLOW@" - db "GREEN@" -; 26c72 - -GetDecoName: ; 26c72 - ld a, [hli] - ld e, [hl] - ld bc, StringBuffer2 - push bc - ld hl, .NameFunctions - rst JumpTable - pop de - ret -; 26c7e - -.NameFunctions: ; 26c7e - dw .invalid - dw .plant - dw .bed - dw .carpet - dw .poster - dw .doll - dw .bigdoll -; 26c8c - - -.invalid: ; 26c8c - ret -; 26c8d - -.plant: ; 26c8d - ld a, e - jr .getdeconame - -.bed: ; 26c90 - call .plant - ld a, _BED - jr .getdeconame - -.carpet: ; 26c97 - call .plant - ld a, _CARPET - jr .getdeconame - -.poster: ; 26c9e - ld a, e - call .getpokename - ld a, _POSTER - jr .getdeconame - -.doll: ; 26ca6 - ld a, e - call .getpokename - ld a, _DOLL - jr .getdeconame - -.bigdoll: ; 26cae - push de - ld a, BIG_ - call .getdeconame - pop de - ld a, e - jr .getpokename - -.unused: ; 26cb8 - push de - call .getdeconame - pop de - ld a, e - jr .getdeconame - -.getpokename: ; 26cc0 - push bc - ld [wd265], a - call GetPokemonName - pop bc - jr .copy - -.getdeconame: ; 26cca - call ._getdeconame - jr .copy - -._getdeconame: ; 26ccf - push bc - ld hl, DecorationNames - call GetNthString - ld d, h - ld e, l - pop bc - ret - -.copy: ; 26cda - ld h, b - ld l, c - call CopyName2 - dec hl - ld b, h - ld c, l - ret -; 26ce3 - -DecoAction_nothing: ; 26ce3 - scf - ret -; 26ce5 - -DecoAction_setupbed: ; 26ce5 - ld hl, Bed - jp DecoAction_TrySetItUp -; 26ceb - -DecoAction_putawaybed: ; 26ceb - ld hl, Bed - jp DecoAction_TryPutItAway -; 26cf1 - -DecoAction_setupcarpet: ; 26cf1 - ld hl, Carpet - jp DecoAction_TrySetItUp -; 26cf7 - -DecoAction_putawaycarpet: ; 26cf7 - ld hl, Carpet - jp DecoAction_TryPutItAway -; 26cfd - -DecoAction_setupplant: ; 26cfd - ld hl, Plant - jp DecoAction_TrySetItUp -; 26d03 - -DecoAction_putawayplant: ; 26d03 - ld hl, Plant - jp DecoAction_TryPutItAway -; 26d09 - -DecoAction_setupposter: ; 26d09 - ld hl, Poster - jp DecoAction_TrySetItUp -; 26d0f - -DecoAction_putawayposter: ; 26d0f - ld hl, Poster - jp DecoAction_TryPutItAway -; 26d15 - -DecoAction_setupconsole: ; 26d15 - ld hl, Console - jp DecoAction_TrySetItUp -; 26d1b - -DecoAction_putawayconsole: ; 26d1b - ld hl, Console - jp DecoAction_TryPutItAway -; 26d21 - -DecoAction_setupbigdoll: ; 26d21 - ld hl, BigDoll - jp DecoAction_TrySetItUp -; 26d27 - -DecoAction_putawaybigdoll: ; 26d27 - ld hl, BigDoll - jp DecoAction_TryPutItAway -; 26d2d - -DecoAction_TrySetItUp: ; 26d2d - ld a, [hl] - ld [Buffer1], a - push hl - call DecoAction_SetItUp - jr c, .failed - ld a, 1 - ld [wd1ee], a - pop hl - ld a, [MenuSelection] - ld [hl], a - xor a - ret - -.failed - pop hl - xor a - ret -; 26d46 - -DecoAction_SetItUp: ; 26d46 -; See if there's anything of the same type already out - ld a, [Buffer1] - and a - jr z, .nothingthere -; See if that item is already out - ld b, a - ld a, [MenuSelection] - cp b - jr z, .alreadythere -; Put away the item that's already out, and set up the new one - ld a, [MenuSelection] - ld hl, StringBuffer4 - call GetDecorationName - ld a, [Buffer1] - ld hl, StringBuffer3 - call GetDecorationName - ld hl, UnknownText_0x26ee0 - call MenuTextBoxBackup - xor a - ret - -.nothingthere - ld a, [MenuSelection] - ld hl, StringBuffer3 - call GetDecorationName - ld hl, UnknownText_0x26edb - call MenuTextBoxBackup - xor a - ret - -.alreadythere - ld hl, UnknownText_0x26ee5 - call MenuTextBoxBackup - scf - ret -; 26d86 - -DecoAction_TryPutItAway: ; 26d86 -; If there is no item of that type already set, there is nothing to put away. - ld a, [hl] - ld [Buffer1], a - xor a - ld [hl], a - ld a, [Buffer1] - and a - jr z, .nothingthere -; Put it away. - ld a, $1 - ld [wd1ee], a - ld a, [Buffer1] - ld [MenuSelection], a - ld hl, StringBuffer3 - call GetDecorationName - ld hl, UnknownText_0x26ed1 - call MenuTextBoxBackup - xor a - ret - -.nothingthere - ld hl, UnknownText_0x26ed6 - call MenuTextBoxBackup - xor a - ret -; 26db3 - -DecoAction_setupornament: ; 26db3 - ld hl, UnknownText_0x26e41 - call DecoAction_AskWhichSide - jr c, .cancel - call DecoAction_SetItUp_Ornament - jr c, .cancel - ld a, $1 - ld [wd1ee], a - jr DecoAction_FinishUp_Ornament - -.cancel - xor a - ret - -DecoAction_putawayornament: ; 26dc9 - ld hl, UnknownText_0x26e6b - call DecoAction_AskWhichSide - jr nc, .incave - xor a - ret - -.incave - call DecoAction_PutItAway_Ornament - -DecoAction_FinishUp_Ornament: ; 26dd6 - call QueryWhichSide - ld a, [wd1ec] - ld [hl], a - ld a, [wd1ed] - ld [de], a - xor a - ret -; 26de3 - -DecoAction_SetItUp_Ornament: ; 26de3 - ld a, [wd1ec] - and a - jr z, .nothingthere - ld b, a - ld a, [MenuSelection] - cp b - jr z, .failed - ld a, b - ld hl, StringBuffer3 - call GetDecorationName - ld a, [MenuSelection] - ld hl, StringBuffer4 - call GetDecorationName - ld a, [MenuSelection] - ld [wd1ec], a - call .getwhichside - ld hl, UnknownText_0x26ee0 - call MenuTextBoxBackup - xor a - ret - -.nothingthere - ld a, [MenuSelection] - ld [wd1ec], a - call .getwhichside - ld a, [MenuSelection] - ld hl, StringBuffer3 - call GetDecorationName - ld hl, UnknownText_0x26edb - call MenuTextBoxBackup - xor a - ret - -.failed - ld hl, UnknownText_0x26ee5 - call MenuTextBoxBackup - scf - ret -; 26e33 - -.getwhichside: ; 26e33 - ld a, [MenuSelection] - ld b, a - ld a, [wd1ed] - cp b - ret nz - xor a - ld [wd1ed], a - ret -; 26e41 - -UnknownText_0x26e41: ; 0x26e41 - ; Which side do you want to put it on? - text_jump UnknownText_0x1bc48c - db "@" -; 0x26e46 - -DecoAction_PutItAway_Ornament: ; 26e46 - ld a, [wd1ec] - and a - jr z, .nothingthere - ld hl, StringBuffer3 - call GetDecorationName - ld a, $1 - ld [wd1ee], a - xor a - ld [wd1ec], a - ld hl, UnknownText_0x26ed1 - call MenuTextBoxBackup - xor a - ret - -.nothingthere - ld hl, UnknownText_0x26ed6 - call MenuTextBoxBackup - xor a - ret -; 26e6b - -UnknownText_0x26e6b: ; 0x26e6b - ; Which side do you want to put away? - text_jump UnknownText_0x1bc4b2 - db "@" -; 0x26e70 - -DecoAction_AskWhichSide: ; 26e70 - call MenuTextBox - ld hl, MenuDataHeader_0x26eab - call GetMenu2 - call ExitMenu - call CopyMenuData2 - jr c, .nope - ld a, [MenuSelection2] - cp 3 - jr z, .nope - ld [Buffer2], a - call QueryWhichSide - ld a, [hl] - ld [wd1ec], a - ld a, [de] - ld [wd1ed], a - xor a - ret - -.nope - scf - ret -; 26e9a - -QueryWhichSide: ; 26e9a - ld hl, RightOrnament - ld de, LeftOrnament - ld a, [Buffer2] - cp 1 - ret z - push hl - ld h, d - ld l, e - pop de - ret -; 26eab - -MenuDataHeader_0x26eab: ; 0x26eab - db $40 ; flags - db 00, 00 ; start coords - db 07, 13 ; end coords - dw MenuData2_0x26eb3 - db 1 ; default option -; 0x26eb3 - -MenuData2_0x26eb3: ; 0x26eb3 - db $80 ; flags - db 3 ; items - db "RIGHT SIDE@" - db "LEFT SIDE@" - db "CANCEL@" -; 0x26ed1 - -UnknownText_0x26ed1: ; 0x26ed1 - ; Put away the @ . - text_jump UnknownText_0x1bc4d7 - db "@" -; 0x26ed6 - -UnknownText_0x26ed6: ; 0x26ed6 - ; There's nothing to put away. - text_jump UnknownText_0x1bc4ec - db "@" -; 0x26edb - -UnknownText_0x26edb: ; 0x26edb - ; Set up the @ . - text_jump UnknownText_0x1bc509 - db "@" -; 0x26ee0 - -UnknownText_0x26ee0: ; 0x26ee0 - ; Put away the @ and set up the @ . - text_jump UnknownText_0x1bc51c - db "@" -; 0x26ee5 - -UnknownText_0x26ee5: ; 0x26ee5 - ; That's already set up. - text_jump UnknownText_0x1bc546 - db "@" -; 0x26eea - -GetDecorationName_c_de: ; 26eea - ld a, c - ld h, d - ld l, e - call GetDecorationName - ret -; 26ef1 - -DecorationFlagAction_c: ; 26ef1 - ld a, c - jp DecorationFlagAction -; 26ef5 - - -GetDecorationName_c: ; 26ef5 (9:6ef5) - ld a, c - call GetDecorationID - ld hl, StringBuffer1 - push hl - call GetDecorationName - pop de - ret - - -SetSpecificDecorationFlag: ; 26f02 - ld a, c - call GetDecorationID - ld b, SET_FLAG - call DecorationFlagAction - ret -; 26f0c - -GetDecorationID: ; 26f0c - push hl - push de - ld e, a - ld d, 0 - ld hl, DecorationIDs - add hl, de - ld a, [hl] - pop de - pop hl - ret -; 26f19 - -SetAllDecorationFlags: ; 26f19 - ld hl, DecorationIDs -.loop - ld a, [hli] - cp -1 - jr z, .done - push hl - ld b, SET_FLAG - call DecorationFlagAction - pop hl - jr .loop - -.done - ret -; 26f2b - -DecorationIDs: ; 26f2b - db DECO_FEATHERY_BED ; 2 - db DECO_PINK_BED ; 3 - db DECO_POLKADOT_BED ; 4 - db DECO_PIKACHU_BED ; 5 - - db DECO_RED_CARPET ; 7 - db DECO_BLUE_CARPET ; 8 - db DECO_YELLOW_CARPET ; 9 - db DECO_GREEN_CARPET ; a - - db DECO_MAGNAPLANT ; c - db DECO_TROPICPLANT ; d - db DECO_JUMBOPLANT ; e - - db DECO_TOWN_MAP ; 10 - db DECO_PIKACHU_POSTER ; 11 - db DECO_CLEFAIRY_POSTER ; 12 - db DECO_JIGGLYPUFF_POSTER ; 13 - - db DECO_FAMICOM ; 15 - db DECO_SNES ; 16 - db DECO_N64 ; 17 - db DECO_VIRTUAL_BOY ; 18 - - db DECO_PIKACHU_DOLL ; 1e - db DECO_SURF_PIKACHU_DOLL ; 1f - db DECO_CLEFAIRY_DOLL ; 20 - db DECO_JIGGLYPUFF_DOLL ; 21 - db DECO_BULBASAUR_DOLL ; 22 - db DECO_CHARMANDER_DOLL ; 23 - db DECO_SQUIRTLE_DOLL ; 24 - db DECO_POLIWAG_DOLL ; 25 - db DECO_DIGLETT_DOLL ; 26 - db DECO_STARMIE_DOLL ; 27 - db DECO_MAGIKARP_DOLL ; 28 - db DECO_ODDISH_DOLL ; 29 - db DECO_GENGAR_DOLL ; 2a - db DECO_SHELLDER_DOLL ; 2b - db DECO_GRIMER_DOLL ; 2c - db DECO_VOLTORB_DOLL ; 2d - db DECO_WEEDLE_DOLL ; 2e - db DECO_UNOWN_DOLL ; 2f - db DECO_GEODUDE_DOLL ; 30 - db DECO_MACHOP_DOLL ; 31 - db DECO_TENTACOOL_DOLL ; 32 - db DECO_BIG_SNORLAX_DOLL ; 1a - db DECO_BIG_ONIX_DOLL ; 1b - db DECO_BIG_LAPRAS_DOLL ; 1c - db DECO_GOLD_TROPHY_DOLL ; 33 - db DECO_SILVER_TROPHY_DOLL ; 34 - db -1 -; 26f59 - -DescribeDecoration:: ; 26f59 - ld a, b - ld hl, JumpTable_DecorationDesc - rst JumpTable - ret -; 26f5f - -JumpTable_DecorationDesc: ; 26f5f - dw DecorationDesc_Poster - dw DecorationDesc_LeftOrnament - dw DecorationDesc_RightOrnament - dw DecorationDesc_GiantDoll - dw DecorationDesc_Console -; 26f69 - -DecorationDesc_Poster: ; 26f69 - ld a, [Poster] - ld hl, DecorationDesc_PosterPointers - ld de, 3 - call IsInArray - jr c, .nope - ld de, DecorationDesc_NullPoster - ld b, BANK(DecorationDesc_NullPoster) - ret - -.nope - ld b, BANK(DecorationDesc_TownMapPoster) - inc hl - ld a, [hli] - ld d, [hl] - ld e, a - ret -; 26f84 - -DecorationDesc_PosterPointers: ; 26f84 - dbw DECO_TOWN_MAP, DecorationDesc_TownMapPoster - dbw DECO_PIKACHU_POSTER, DecorationDesc_PikachuPoster - dbw DECO_CLEFAIRY_POSTER, DecorationDesc_ClefairyPoster - dbw DECO_JIGGLYPUFF_POSTER, DecorationDesc_JigglypuffPoster - db -1 -; 26f91 - -DecorationDesc_TownMapPoster: ; 0x26f91 - loadfont - writetext UnknownText_0x26f9b - closetext - special Special_TownMap - loadmovesprites - end -; 0x26f9b - -UnknownText_0x26f9b: ; 0x26f9b - ; It's the TOWN MAP. - text_jump UnknownText_0x1bc55d - db "@" -; 0x26fa0 - -DecorationDesc_PikachuPoster: ; 0x26fa0 - jumptext UnknownText_0x26fa3 -; 0x26fa3 - -UnknownText_0x26fa3: ; 0x26fa3 - ; It's a poster of a cute PIKACHU. - text_jump UnknownText_0x1bc570 - db "@" -; 0x26fa8 - -DecorationDesc_ClefairyPoster: ; 0x26fa8 - jumptext UnknownText_0x26fab -; 0x26fab - -UnknownText_0x26fab: ; 0x26fab - ; It's a poster of a cute CLEFAIRY. - text_jump UnknownText_0x1bc591 - db "@" -; 0x26fb0 - -DecorationDesc_JigglypuffPoster: ; 0x26fb0 - jumptext UnknownText_0x26fb3 -; 0x26fb3 - -UnknownText_0x26fb3: ; 0x26fb3 - ; It's a poster of a cute JIGGLYPUFF. - text_jump UnknownText_0x1bc5b3 - db "@" -; 0x26fb8 - -DecorationDesc_NullPoster: ; 26fb8 - end -; 26fb9 - -DecorationDesc_LeftOrnament: ; 26fb9 - ld a, [LeftOrnament] - jr DecorationDesc_OrnamentOrConsole - -DecorationDesc_RightOrnament: ; 26fbe - ld a, [RightOrnament] - jr DecorationDesc_OrnamentOrConsole - -DecorationDesc_Console: ; 26fc3 - ld a, [Console] - jr DecorationDesc_OrnamentOrConsole - -DecorationDesc_OrnamentOrConsole: ; 26fc8 - ld c, a - ld de, StringBuffer3 - call GetDecorationName_c_de - ld b, BANK(Unknown_26fd5) - ld de, Unknown_26fd5 - ret -; 26fd5 - -Unknown_26fd5: ; 26fd5 - dbw $53, UnknownText_0x26fd8 -; 26fd8 - -UnknownText_0x26fd8: ; 0x26fd8 - ; It's an adorable @ . - text_jump UnknownText_0x1bc5d7 - db "@" -; 0x26fdd - -DecorationDesc_GiantDoll: ; 26fdd - ld b, BANK(Unknown_26fe3) - ld de, Unknown_26fe3 - ret -; 26fe3 - -Unknown_26fe3: ; 26fe3 - dbw $53, UnknownText_0x26fe6 -; 26fe6 - -UnknownText_0x26fe6: ; 0x26fe6 - ; A giant doll! It's fluffy and cuddly. - text_jump UnknownText_0x1bc5ef - db "@" -; 0x26feb - -ToggleMaptileDecorations: ; 26feb - lb de, 0, 4 - ld a, [Bed] - call SetDecorationTile - lb de, 7, 4 - ld a, [Plant] - call SetDecorationTile - lb de, 6, 0 - ld a, [Poster] - call SetDecorationTile - call SetPosterVisibility - lb de, 0, 0 - call PadCoords_de - ld a, [Carpet] - and a - ret z - call _GetDecorationSprite - ld [hl], a - push af - lb de, 0, 2 - call PadCoords_de - pop af - inc a - ld [hli], a - inc a - ld [hli], a - dec a - ld [hl], a - ret -; 27027 - -SetPosterVisibility: ; 27027 - ld b, SET_FLAG - ld a, [Poster] - and a - jr nz, .ok - ld b, RESET_FLAG - -.ok - ld de, EVENT_KRISS_ROOM_POSTER - jp EventFlagAction -; 27037 - -SetDecorationTile: ; 27037 - push af - call PadCoords_de - pop af - and a - ret z - call _GetDecorationSprite - ld [hl], a - ret -; 27043 - -ToggleDecorationsVisibility: ; 27043 - ld de, EVENT_KRISS_HOUSE_2F_CONSOLE - ld hl, VariableSprites + SPRITE_CONSOLE - SPRITE_VARS - ld a, [Console] - call ToggleDecorationVisibility - ld de, EVENT_KRISS_HOUSE_2F_DOLL_1 - ld hl, VariableSprites + SPRITE_DOLL_1 - SPRITE_VARS - ld a, [LeftOrnament] - call ToggleDecorationVisibility - ld de, EVENT_KRISS_HOUSE_2F_DOLL_2 - ld hl, VariableSprites + SPRITE_DOLL_2 - SPRITE_VARS - ld a, [RightOrnament] - call ToggleDecorationVisibility - ld de, EVENT_KRISS_HOUSE_2F_BIG_DOLL - ld hl, VariableSprites + SPRITE_BIG_DOLL - SPRITE_VARS - ld a, [BigDoll] - call ToggleDecorationVisibility - ret -; 27074 - -ToggleDecorationVisibility: ; 27074 - and a - jr z, .hide - call _GetDecorationSprite - ld [hl], a - ld b, RESET_FLAG - jp EventFlagAction - -.hide - ld b, SET_FLAG - jp EventFlagAction -; 27085 - -_GetDecorationSprite: ; 27085 - ld c, a - push de - push hl - callba GetDecorationSprite - pop hl - pop de - ld a, c - ret -; 27092 +INCLUDE "engine/decorations.asm" PadCoords_de: ; 27092 ld a, d @@ -17117,7 +15121,7 @@ Unknown_2c74a: ; 2c74a db DECO_BIG_SNORLAX_DOLL db DECO_BIG_ONIX_DOLL db DECO_BIG_LAPRAS_DOLL - db DECO_1D + db DECO_DOLLS db DECO_PIKACHU_DOLL db DECO_SURF_PIKACHU_DOLL db DECO_CLEFAIRY_DOLL @@ -17131,22 +15135,22 @@ Unknown_2c74a: ; 2c74a db DECO_DIGLETT_DOLL db DECO_BLUE_CARPET db DECO_YELLOW_CARPET - db DECO_0F + db DECO_POSTERS db DECO_PIKACHU_POSTER db DECO_N64 - db DECO_19 - db DECO_01 + db DECO_BIG_DOLLS + db DECO_BEDS db DECO_FEATHERY_BED db DECO_POLKADOT_BED db DECO_PIKACHU_BED - db DECO_06 + db DECO_CARPETS db DECO_RED_CARPET db DECO_GREEN_CARPET db DECO_CLEFAIRY_POSTER db DECO_ODDISH_DOLL db DECO_MAGNAPLANT db DECO_GENGAR_DOLL - db DECO_14 + db DECO_CONSOLES db DECO_PINK_BED db DECO_SQUIRTLE_DOLL db DECO_STARMIE_DOLL @@ -20343,7 +18347,7 @@ Function44806: ; 0x44806 call CopyMenuDataHeader xor a ld [hBGMapMode], a - call Function352f + call InitScrollingMenu call UpdateSprites ld a, [wd0f1] ld [wMenuCursorBuffer], a @@ -32411,16 +30415,16 @@ ChrisNameMenuHeader: ; 882b5 db $40 ; flags db 00, 00 ; start coords db 11, 10 ; end coords - dw MenuData2_0x882be + dw .MaleNames db 1 ; ???? db 0 ; default option ; 882be -MenuData2_0x882be: ; 882be +.MaleNames: ; 882be db $91 ; flags db 5 ; items db "NEW NAME@" -Unknown_882c9: ; 882c9 +MalePlayerNameArray: ; 882c9 db "CHRIS@" db "MAT@" db "ALLAN@" @@ -32433,16 +30437,16 @@ KrisNameMenuHeader: ; 882e5 db $40 ; flags db 00, 00 ; start coords db 11, 10 ; end coords - dw MenuData2_0x882ee + dw .FemaleNames db 1 ; ???? db 0 ; default option ; 882ee -MenuData2_0x882ee: ; 882ee +.FemaleNames: ; 882ee db $91 ; flags db 5 ; items db "NEW NAME@" -Unknown_882f9: ; 882f9 +FemalePlayerNameArray: ; 882f9 db "KRIS@" db "AMANDA@" db "JUANA@" @@ -32453,11 +30457,11 @@ Unknown_882f9: ; 882f9 GetPlayerNameArray: ; 88318 This Function is never called ld hl, PlayerName - ld de, Unknown_882c9 + ld de, MalePlayerNameArray ld a, [PlayerGender] bit 0, a jr z, .done - ld de, Unknown_882f9 + ld de, FemalePlayerNameArray .done call InitName @@ -32491,12 +30495,12 @@ Function8833e: ; 8833e ld hl, KrisCardPic .GotClass ld de, VTiles2 tile $00 - ld bc, $230 + ld bc, $23 tiles ld a, BANK(ChrisCardPic) ; BANK(KrisCardPic) call FarCopyBytes ld hl, CardGFX ld de, VTiles2 tile $23 - ld bc, $60 + ld bc, 6 tiles ld a, BANK(CardGFX) call FarCopyBytes ret From 27ef600ace40671a78f5bb3a71f507e42c175f50 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 17 Nov 2015 17:56:49 -0500 Subject: [PATCH 19/40] Here's the mail it never fails --- constants/misc_constants.asm | 4 + constants/pokemon_constants.asm | 1 - engine/breeding/egg.asm | 2 +- engine/link.asm | 28 +-- engine/mail.asm | 190 ++++++++++++++++++ engine/mart.asm | 2 +- engine/pokecenter_pc.asm | 10 +- engine/save.asm | 12 +- engine/selectmenu.asm | 2 +- engine/specials.asm | 16 +- engine/startmenu.asm | 71 +++---- engine/trainer_card.asm | 88 +++++---- home/map.asm | 4 +- main.asm | 333 +++++++------------------------- misc/mobile_40.asm | 2 +- misc/mobile_46.asm | 6 +- misc/mobile_5c.asm | 2 +- misc/mobile_5f.asm | 6 +- sram.asm | 54 +++++- 19 files changed, 444 insertions(+), 389 deletions(-) create mode 100755 engine/mail.asm diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index cc0257cfb..964783a5e 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -32,6 +32,10 @@ HP_RED EQU 2 MONS_PER_BOX EQU 20 NUM_BOXES EQU 14 +; mail +MAIL_STRUCT_LENGTH EQU $2f +MAILBOX_CAPACITY EQU 10 + ; hall of fame HOF_MON_LENGTH = 1 + 2 + 2 + 1 + (PKMN_NAME_LENGTH +- 1) ; species, id, dvs, level, nick HOF_LENGTH = 1 + HOF_MON_LENGTH * PARTY_LENGTH + 1 ; win count, party, terminator diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm index 3407281c4..654459c44 100644 --- a/constants/pokemon_constants.asm +++ b/constants/pokemon_constants.asm @@ -291,7 +291,6 @@ MON_SAT EQUS "(PartyMon1SpclAtk - PartyMon1)" MON_SDF EQUS "(PartyMon1SpclDef - PartyMon1)" BOXMON_STRUCT_LENGTH EQUS "(PartyMon1End - PartyMon1)" PARTYMON_STRUCT_LENGTH EQUS "(PartyMon1StatsEnd - PartyMon1)" -SCRATCHMON_STRUCT_LENGTH EQUS "(PartyMon1StatsEnd - PartyMon1Item)" const_value SET 1 const MONMENU_CUT ; 1 diff --git a/engine/breeding/egg.asm b/engine/breeding/egg.asm index 8798233a1..f007fde6a 100755 --- a/engine/breeding/egg.asm +++ b/engine/breeding/egg.asm @@ -192,7 +192,7 @@ OverworldHatchEgg:: ; 16f5e call ResetWindow call LoadStandardMenuDataHeader call Function16f70 - call Function2b4d + call ExitAllMenus call RestartMapMusic jp LoadMoveSprites ; 16f70 diff --git a/engine/link.asm b/engine/link.asm index 27a9ebcc4..6d6e0f403 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -834,9 +834,9 @@ Function28595: ; 28595 ld de, wc9f4 ld a, $20 call Function28682 - ld a, BANK(sPartyScratch1) + ld a, BANK(sPartyMail) call GetSRAMBank - ld hl, sPartyScratch1 + ld hl, sPartyMail ld b, PARTY_LENGTH .loop2 push bc @@ -847,7 +847,7 @@ Function28595: ; 28595 pop bc dec b jr nz, .loop2 - ld hl, sPartyScratch1 + ld hl, sPartyMail ld b, PARTY_LENGTH .loop3 push bc @@ -859,7 +859,7 @@ Function28595: ; 28595 dec b jr nz, .loop3 ld b, PARTY_LENGTH - ld de, sPartyScratch1 + ld de, sPartyMail ld hl, wc9f9 .loop4 push bc @@ -883,7 +883,7 @@ Function28595: ; 28595 .next pop de - ld hl, SCRATCHMON_STRUCT_LENGTH + ld hl, MAIL_STRUCT_LENGTH add hl, de ld d, h ld e, l @@ -1744,15 +1744,15 @@ Function28b87: ; 28b87 jp Function28ea3 .asm_28c7b - ld hl, sPartyScratch1 + ld hl, sPartyMail ld a, [wd002] - ld bc, SCRATCHMON_STRUCT_LENGTH + ld bc, MAIL_STRUCT_LENGTH call AddNTimes - ld a, BANK(sPartyScratch1) + ld a, BANK(sPartyMail) call GetSRAMBank ld d, h ld e, l - ld bc, SCRATCHMON_STRUCT_LENGTH + ld bc, MAIL_STRUCT_LENGTH add hl, bc ld a, [wd002] ld c, a @@ -1762,24 +1762,24 @@ Function28b87: ; 28b87 cp $6 jr z, .asm_28ca6 push bc - ld bc, SCRATCHMON_STRUCT_LENGTH + ld bc, MAIL_STRUCT_LENGTH call CopyBytes pop bc jr .asm_28c96 .asm_28ca6 - ld hl, sPartyScratch1 + ld hl, sPartyMail ld a, [PartyCount] dec a - ld bc, SCRATCHMON_STRUCT_LENGTH + ld bc, MAIL_STRUCT_LENGTH call AddNTimes push hl ld hl, wc9f4 ld a, [wd003] - ld bc, SCRATCHMON_STRUCT_LENGTH + ld bc, MAIL_STRUCT_LENGTH call AddNTimes pop de - ld bc, SCRATCHMON_STRUCT_LENGTH + ld bc, MAIL_STRUCT_LENGTH call CopyBytes call CloseSRAM ld hl, PlayerName diff --git a/engine/mail.asm b/engine/mail.asm new file mode 100755 index 000000000..e3b7a5fab --- /dev/null +++ b/engine/mail.asm @@ -0,0 +1,190 @@ +SendMailToPC: ; 4456e + ld a, MON_ITEM + call GetPartyParamLocation + ld d, [hl] + callba ItemIsMail + jr nc, .full + call GetMailboxCount + cp MAILBOX_CAPACITY + jr nc, .full + ld bc, MAIL_STRUCT_LENGTH + ld hl, sMailbox + call AddNTimes + ld d, h + ld e, l + ld a, [CurPartyMon] + ld bc, MAIL_STRUCT_LENGTH + ld hl, sPartyMail + call AddNTimes + push hl + ld a, BANK(sMailboxCount) + call GetSRAMBank + ld bc, MAIL_STRUCT_LENGTH + call CopyBytes + pop hl + xor a + ld bc, MAIL_STRUCT_LENGTH + call ByteFill + ld a, MON_ITEM + call GetPartyParamLocation + ld [hl], $0 + ld hl, sMailboxCount + inc [hl] + call CloseSRAM + xor a + ret + +.full + scf + ret +; 445c0 + +Function445c0: ; 445c0 (11:45c0) + ld a, BANK(sMailboxCount) + call GetSRAMBank + ld a, b + push bc + ld hl, sMailbox + ld bc, MAIL_STRUCT_LENGTH + call AddNTimes + push hl + add hl, bc + pop de + pop bc +.loop + ld a, b + cp $9 + jr z, .done + push bc + ld bc, MAIL_STRUCT_LENGTH + call CopyBytes + pop bc + inc b + jr .loop +.done + ld h, d + ld l, e + xor a + ld bc, MAIL_STRUCT_LENGTH + call ByteFill + ld hl, sMailboxCount + dec [hl] + jp CloseSRAM +; 445f4 (11:45f4) + +ReadMailMessage: ; 445f4 + ld a, b + ld hl, sMailbox + ld bc, MAIL_STRUCT_LENGTH + call AddNTimes + ld d, h + ld e, l + callba ReadAnyMail + ret + +Function44607: ; 44607 + ld a, BANK(sMailboxCount) + call GetSRAMBank + push bc + ld a, b + ld bc, MAIL_STRUCT_LENGTH + ld hl, sMailbox + call AddNTimes + push hl + ld a, [CurPartyMon] + ld bc, MAIL_STRUCT_LENGTH + ld hl, sPartyMail + call AddNTimes + ld d, h + ld e, l + pop hl + push hl + ld bc, MAIL_STRUCT_LENGTH + call CopyBytes + pop hl + ld de, PARTYMON_STRUCT_LENGTH - MON_MOVES + add hl, de + ld d, [hl] + ld a, [CurPartyMon] + ld hl, PartyMon1Item + ld bc, PARTYMON_STRUCT_LENGTH + call AddNTimes + ld [hl], d + call CloseSRAM + pop bc + jp Function445c0 +; 44648 (11:4648) + +GetMailboxCount: ; 44648 + ld a, BANK(sMailboxCount) + call GetSRAMBank + ld a, [sMailboxCount] + ld c, a + jp CloseSRAM +; 44654 + +Function44654:: ; 44654 + push bc + push de + callba SelectMonFromParty + ld a, $2 + jr c, .asm_446c6 + ld a, [CurPartyMon] + ld hl, PartyMon1Item + ld bc, PARTYMON_STRUCT_LENGTH + call AddNTimes + ld d, [hl] + callba ItemIsMail + ld a, $3 + jr nc, .asm_446c6 + ld a, BANK(sPartyMail) + call GetSRAMBank + ld a, [CurPartyMon] + ld hl, sPartyMail + ld bc, MAIL_STRUCT_LENGTH + call AddNTimes + ld d, h + ld e, l + pop hl + pop bc + + ld a, $20 + ld [wd265], a +.asm_44691 + ld a, [de] + ld c, a + ld a, b + call GetFarByte + cp "@" + jr z, .asm_446ab + cp c + ld a, $0 + jr nz, .asm_446c1 + inc hl + inc de + ld a, [wd265] + dec a + ld [wd265], a + jr nz, .asm_44691 + +.asm_446ab + callba CheckCurPartyMonFainted + ld a, $4 + jr c, .asm_446c1 + xor a + ld [wPokemonWithdrawDepositParameter], a + callba Functione039 + ld a, $1 + +.asm_446c1 + call CloseSRAM + jr .asm_446c8 + +.asm_446c6 + pop de + pop bc + +.asm_446c8 + ld [ScriptVar], a + ret +; 446cc diff --git a/engine/mart.asm b/engine/mart.asm index 8fa7888c2..2aa410760 100755 --- a/engine/mart.asm +++ b/engine/mart.asm @@ -377,7 +377,7 @@ BuyMenu: ; 15c62 .loop call BuyMenuLoop ; menu loop jr nc, .loop - call Function2b3c + call ReturnToCallingMenu ret ; 15c7d diff --git a/engine/pokecenter_pc.asm b/engine/pokecenter_pc.asm index 7d76d07d3..4d31109ac 100755 --- a/engine/pokecenter_pc.asm +++ b/engine/pokecenter_pc.asm @@ -140,7 +140,7 @@ HallOfFamePC: ; 1569a call PC_PlayChoosePCSound call FadeToMenu callba _HallOfFamePC - call Function2b3c + call ReturnToCallingMenu and a ret ; 156ab @@ -323,7 +323,7 @@ KrisWithdrawItemMenu: ; 0x157d1 jr .asm_157da .asm_157e4 - call Function2b3c + call ReturnToCallingMenu xor a ret ; 0x157e9 @@ -403,7 +403,7 @@ KrisTossItemMenu: ; 0x1585f jr .asm_15868 .asm_15878 - call Function2b3c + call ReturnToCallingMenu xor a ret ; 0x1587d @@ -442,7 +442,7 @@ KrisDepositItemMenu: ; 0x1588b jr .asm_1589c .asm_158b3 - call Function2b3c + call ReturnToCallingMenu .asm_158b6 xor a @@ -450,7 +450,7 @@ KrisDepositItemMenu: ; 0x1588b ; 0x158b8 Function158b8: ; 0x158b8 - callba Function129d5 + callba HasNoItems ret nc ld hl, UnknownText_0x158c7 call MenuTextBoxBackup diff --git a/engine/save.asm b/engine/save.asm index 8bccd932c..4c20c83a4 100644 --- a/engine/save.asm +++ b/engine/save.asm @@ -1,4 +1,4 @@ -Function14a1a: ; 14a1a +SaveMenu: ; 14a1a call LoadStandardMenuDataHeader callba Function5e9a call SpeechTextBox @@ -30,7 +30,7 @@ Function14a58: ; 14a58 call Function14e13 call SaveBackupPokemonData call SaveBackupChecksum - callba BackupScratchmons + callba BackupPartyMonMail callba Function1406a call ClearWRAMStateAfterSave ret @@ -106,7 +106,7 @@ Function14ad5: ; 14ad5 call SaveBackupPlayerData call SaveBackupPokemonData call SaveBackupChecksum - callba BackupScratchmons + callba BackupPartyMonMail callba BackupMobileEventIndex callba Function1406a call LoadBox @@ -284,7 +284,7 @@ SaveGameData_: ; 14c10 call SaveBackupPokemonData call SaveBackupChecksum call UpdateStackTop - callba BackupScratchmons + callba BackupPartyMonMail callba BackupMobileEventIndex callba Function1406a ld a, BANK(s1_be45) @@ -630,7 +630,7 @@ TryLoadSaveFile: ; 14ea5 (5:4ea5) call LoadPlayerData call LoadPokemonData call LoadBox - callba RestoreScratchmons + callba RestorePartyMonMail callba RestoreMobileEventIndex callba Function1050ea call ValidateBackupSave @@ -647,7 +647,7 @@ TryLoadSaveFile: ; 14ea5 (5:4ea5) call LoadBackupPlayerData call LoadBackupPokemonData call LoadBox - callba RestoreScratchmons + callba RestorePartyMonMail callba RestoreMobileEventIndex callba Function1050ea call ValidateSave diff --git a/engine/selectmenu.asm b/engine/selectmenu.asm index e73f397a5..916e48b3c 100755 --- a/engine/selectmenu.asm +++ b/engine/selectmenu.asm @@ -158,7 +158,7 @@ UseRegisteredItem: ; 133c3 call ResetWindow call FadeToMenu call DoItemEffect - call Function2b3c + call ReturnToCallingMenu call LoadMoveSprites and a ret diff --git a/engine/specials.asm b/engine/specials.asm index 82281d600..68ad47aa4 100644 --- a/engine/specials.asm +++ b/engine/specials.asm @@ -216,7 +216,7 @@ Special_GameCornerPrizeMonCheckDex: ; c230 ld a, [ScriptVar] ld [wd265], a callba Functionfb877 - call Function2b4d + call ExitAllMenus ret ; c252 @@ -288,21 +288,21 @@ SpecialNameRater: ; c2b9 Special_TownMap: ; c2c0 call FadeToMenu callba _TownMap - call Function2b4d + call ExitAllMenus ret ; c2cd Special_UnownPrinter: ; c2cd call FadeToMenu callba UnownPrinter - call Function2b4d + call ExitAllMenus ret ; c2da Special_DisplayLinkRecord: ; c2da call FadeToMenu callba DisplayLinkRecord - call Function2b4d + call ExitAllMenus ret ; c2e7 @@ -383,7 +383,7 @@ Special_UnownPuzzle: ; c360 callba Functione1190 ld a, [wd0ec] ld [ScriptVar], a - call Function2b4d + call ExitAllMenus ret ; c373 @@ -425,7 +425,7 @@ Special_StartGameCornerGame: ; c39a ld l, a pop af rst FarCall - call Function2b4d + call ExitAllMenus ret ; c3ae @@ -629,14 +629,14 @@ Special_FadeOutMusic: ; c48f Diploma: ; c49f call FadeToMenu callba _Diploma - call Function2b4d + call ExitAllMenus ret ; c4ac PrintDiploma: ; c4ac call FadeToMenu callba _PrintDiploma - call Function2b4d + call ExitAllMenus ret ; c4b9 diff --git a/engine/startmenu.asm b/engine/startmenu.asm index efb6c817a..ae6358014 100755 --- a/engine/startmenu.asm +++ b/engine/startmenu.asm @@ -422,7 +422,7 @@ StartMenu_Quit: ; 128f0 ; Retire from the bug catching contest. ld hl, .EndTheContestText - call Function12cf5 + call StartMenuYesNo jr c, .DontEndContest ld a, BANK(BugCatchingContestReturnToGateScript) ld hl, BugCatchingContestReturnToGateScript @@ -444,7 +444,7 @@ StartMenu_Save: ; 1290b ; Save the game. call BufferScreen - callba Function14a1a + callba SaveMenu jr nc, .asm_12919 ld a, 0 ret @@ -468,8 +468,8 @@ StartMenu_Status: ; 12928 ; Player status. call FadeToMenu - callba Function25105 - call Function2b3c + callba TrainerCard + call ReturnToCallingMenu ld a, 0 ret ; 12937 @@ -483,7 +483,7 @@ StartMenu_Pokedex: ; 12937 call FadeToMenu callba Pokedex - call Function2b3c + call ReturnToCallingMenu .asm_12949 ld a, 0 @@ -495,7 +495,7 @@ StartMenu_Pokegear: ; 1294c call FadeToMenu callba PokeGear - call Function2b3c + call ReturnToCallingMenu ld a, 0 ret ; 1295b @@ -507,12 +507,13 @@ StartMenu_Pack: ; 1295b callba Pack ld a, [wcf66] and a - jr nz, .asm_12970 - call Function2b3c + jr nz, .used_item + call ReturnToCallingMenu ld a, 0 ret -.asm_12970 - call Function2b4d + +.used_item + call ExitAllMenus ld a, 4 ret ; 12976 @@ -556,19 +557,19 @@ StartMenu_Pokemon: ; 12976 jr z, .quit .return - call Function2b3c + call ReturnToCallingMenu ld a, 0 ret .quit ld a, b push af - call Function2b4d + call ExitAllMenus pop af ret ; 129d5 -Function129d5: ; 129d5 +HasNoItems: ; 129d5 ld a, [NumItems] and a ret nz @@ -580,15 +581,15 @@ Function129d5: ; 129d5 ret nz ld hl, TMsHMs ld b, NUM_TMS + NUM_HMS -.asm_129e9 +.loop ld a, [hli] and a - jr nz, .asm_129f2 + jr nz, .done dec b - jr nz, .asm_129e9 + jr nz, .loop scf ret -.asm_129f2 +.done and a ret @@ -882,7 +883,7 @@ Function12bd9: ; 12bd9 jr .asm_12c08 .asm_12bf4 - call Function12cea + call GiveItemToPokemon ld hl, MadeHoldText call MenuTextBoxBackup call GivePartyItem @@ -897,17 +898,17 @@ Function12bd9: ; 12bd9 ld [wd265], a call GetItemName ld hl, SwitchAlreadyHoldingText - call Function12cf5 + call StartMenuYesNo jr c, .asm_12c4b - call Function12cea + call GiveItemToPokemon ld a, [wd265] push af ld a, [CurItem] ld [wd265], a pop af ld [CurItem], a - call Function12cdf + call ReceiveItemFromPokemon jr nc, .asm_12c3c ld hl, TookAndMadeHoldText @@ -920,7 +921,7 @@ Function12bd9: ; 12bd9 .asm_12c3c ld a, [wd265] ld [CurItem], a - call Function12cdf + call ReceiveItemFromPokemon ld hl, ItemStorageIsFullText call MenuTextBoxBackup @@ -953,7 +954,7 @@ TakePartyItem: ; 12c60 jr z, .asm_12c8c ld [CurItem], a - call Function12cdf + call ReceiveItemFromPokemon jr nc, .asm_12c94 callba ItemIsMail @@ -1045,7 +1046,7 @@ GetPartyItemLocation: ; 12cd7 ; 12cdf -Function12cdf: ; 12cdf +ReceiveItemFromPokemon: ; 12cdf ld a, $1 ld [wItemQuantityChangeBuffer], a ld hl, NumItems @@ -1053,13 +1054,13 @@ Function12cdf: ; 12cdf ; 12cea -Function12cea: ; 12cea (4:6cea) +GiveItemToPokemon: ; 12cea (4:6cea) ld a, $1 ld [wItemQuantityChangeBuffer], a ld hl, NumItems jp TossItem -Function12cf5: ; 12cf5 +StartMenuYesNo: ; 12cf5 call MenuTextBox call YesNoBox jp ExitMenu @@ -1071,7 +1072,7 @@ Function12cfe: ; 12cfe (4:6cfe) callba Function11e75 ld hl, PlayerName ld de, wd023 - ld bc, $a + ld bc, NAME_LENGTH - 1 call CopyBytes ld hl, PlayerID ld bc, $2 @@ -1082,14 +1083,14 @@ Function12cfe: ; 12cfe (4:6cfe) ld a, [CurItem] ld [de], a ld a, [CurPartyMon] - ld hl, sPartyScratch1 - ld bc, SCRATCHMON_STRUCT_LENGTH + ld hl, sPartyMail + ld bc, MAIL_STRUCT_LENGTH call AddNTimes ld d, h ld e, l ld hl, wd002 - ld bc, SCRATCHMON_STRUCT_LENGTH - ld a, BANK(sPartyScratch1) + ld bc, MAIL_STRUCT_LENGTH + ld a, BANK(sPartyMail) call GetSRAMBank call CopyBytes call CloseSRAM @@ -1127,11 +1128,11 @@ MonMailAction: ; 12d45 .take ld hl, .sendmailtopctext - call Function12cf5 + call StartMenuYesNo jr c, .RemoveMailToBag ld a, [CurPartyMon] ld b, a - callba Function4456e + callba SendMailToPC jr c, .MailboxFull ld hl, .sentmailtopctext call MenuTextBoxBackup @@ -1144,12 +1145,12 @@ MonMailAction: ; 12d45 .RemoveMailToBag ld hl, .mailwilllosemessagetext - call Function12cf5 + call StartMenuYesNo jr c, .done call GetPartyItemLocation ld a, [hl] ld [CurItem], a - call Function12cdf + call ReceiveItemFromPokemon jr nc, .BagIsFull call GetPartyItemLocation ld [hl], $0 diff --git a/engine/trainer_card.asm b/engine/trainer_card.asm index 53acdbf53..076e13fec 100755 --- a/engine/trainer_card.asm +++ b/engine/trainer_card.asm @@ -1,4 +1,4 @@ -Function25105: ; 25105 +TrainerCard: ; 25105 ld a, [VramState] push af xor a @@ -211,16 +211,18 @@ Function25279: ; 25279 (9:5279) ld hl, hJoyLast ld a, [hl] and D_LEFT - jr nz, .asm_2528d + jr nz, .left ld a, [hl] and D_RIGHT - jr nz, .asm_25293 + jr nz, .right ret -.asm_2528d + +.left ld a, $2 ld [wJumptableIndex], a ret -.asm_25293 + +.right ld a, $0 ld [wJumptableIndex], a ret @@ -466,24 +468,26 @@ Function25438: ; 25438 (9:5438) jr Function25448 Function25448: ; 25448 (9:5448) +; copy flag array pointer ld a, [hli] ld e, a ld a, [hli] +; get flag array ld d, a ld a, [de] ld c, a ld de, Sprites ld b, 8 -.asm_25453 +.loop srl c push bc - jr nc, .asm_25472 + jr nc, .skip_badge push hl - ld a, [hli] + ld a, [hli] ; y ld b, a - ld a, [hli] + ld a, [hli] ; x ld c, a - ld a, [hli] + ld a, [hli] ; pal ld [wcf66], a ld a, [wcf64] add l @@ -495,60 +499,64 @@ Function25448: ; 25448 (9:5448) ld [wcf65], a call Function2547b pop hl -.asm_25472 - ld bc, $b +.skip_badge + ld bc, $b ; 3 + 2 * 4 add hl, bc pop bc dec b - jr nz, .asm_25453 + jr nz, .loop ret Function2547b: ; 2547b (9:547b) ld a, [wcf65] and $80 - jr nz, .asm_25487 - ld hl, Unknown_254a7 - jr .asm_2548a -.asm_25487 - ld hl, Unknown_254b8 -.asm_2548a + jr nz, .xflip + ld hl, .facing1 + jr .loop +.xflip + ld hl, .facing2 +.loop ld a, [hli] cp $ff ret z add b ld [de], a inc de + ld a, [hli] add c ld [de], a inc de + ld a, [wcf65] and $7f add [hl] ld [de], a inc hl inc de + ld a, [wcf66] add [hl] ld [de], a inc hl inc de - jr .asm_2548a + jr .loop ; 254a7 (9:54a7) -Unknown_254a7: ; 254a7 - db $00, $00, $00, $00 - db $00, $08, $01, $00 - db $08, $00, $02, $00 - db $08, $08, $03, $00 - db $ff +.facing1: ; 254a7 + ; y, x, tile, OAM attributes + db 0, 0, 0, 0 + db 0, 8, 1, 0 + db 8, 0, 2, 0 + db 8, 8, 3, 0 + db -1 -Unknown_254b8: ; 254b8 - db $00, $00, $01, $20 - db $00, $08, $00, $20 - db $08, $00, $03, $20 - db $08, $08, $02, $20 - db $ff +.facing2: ; 254b8 + db 0, 0, 1, X_FLIP + db 0, 8, 0, X_FLIP + db 8, 0, 3, X_FLIP + db 8, 8, 2, X_FLIP + db -1 Unknown_254c9: ; 254c9 ; Template OAM data for each badge on the trainer card. @@ -560,43 +568,43 @@ Unknown_254c9: ; 254c9 dw JohtoBadges ; Zephyrbadge - db $68, $18, $00 + db $68, $18, 0 db $00, $20, $24, $20 | $80 db $00, $20, $24, $20 | $80 ; Hivebadge - db $68, $38, $00 + db $68, $38, 0 db $04, $20, $24, $20 | $80 db $04, $20, $24, $20 | $80 ; Plainbadge - db $68, $58, $00 + db $68, $58, 0 db $08, $20, $24, $20 | $80 db $08, $20, $24, $20 | $80 ; Fogbadge - db $68, $78, $00 + db $68, $78, 0 db $0c, $20, $24, $20 | $80 db $0c, $20, $24, $20 | $80 ; Mineralbadge - db $80, $38, $00 + db $80, $38, 0 db $10, $20, $24, $20 | $80 db $10, $20, $24, $20 | $80 ; Stormbadge - db $80, $18, $00 + db $80, $18, 0 db $14, $20, $24, $20 | $80 db $14, $20, $24, $20 | $80 ; Glacierbadge - db $80, $58, $00 + db $80, $58, 0 db $18, $20, $24, $20 | $80 db $18, $20, $24, $20 | $80 ; Risingbadge ; X-flips on alternate cycles. - db $80, $78, $00 + db $80, $78, 0 db $1c, $20, $24, $20 | $80 db $1c | $80, $20, $24, $20 | $80 ; 25523 diff --git a/home/map.asm b/home/map.asm index 4400e411b..b9b27168e 100644 --- a/home/map.asm +++ b/home/map.asm @@ -2014,7 +2014,7 @@ FadeToMenu:: ; 2b29 ; 2b3c -Function2b3c:: ; 2b3c +ReturnToCallingMenu:: ; 2b3c call ClearBGPalettes call Function2bae call UpdateSprites @@ -2023,7 +2023,7 @@ Function2b3c:: ; 2b3c jr Function2b5c ; 2b4d -Function2b4d:: ; 2b4d +ExitAllMenus:: ; 2b4d call ClearBGPalettes call Call_ExitMenu call Function2bae diff --git a/main.asm b/main.asm index d373463e2..82e6ea00e 100644 --- a/main.asm +++ b/main.asm @@ -285,7 +285,7 @@ ENDC callba InitDecorations - callba DeleteScratchmons + callba DeletePartyMonMail callba DeleteMobileEventIndex @@ -9297,14 +9297,14 @@ Functione039: ; e039 ld a, [wLinkMode] and a ret nz - ld a, BANK(sPartyScratch1) + ld a, BANK(sPartyMail) call GetSRAMBank ld hl, PartyCount ld a, [CurPartyMon] cp [hl] jr z, .asm_e131 - ld hl, sPartyScratch1 - ld bc, SCRATCHMON_STRUCT_LENGTH + ld hl, sPartyMail + ld bc, MAIL_STRUCT_LENGTH call AddNTimes push hl add hl, bc @@ -9314,11 +9314,11 @@ Functione039: ; e039 .asm_e11a push bc push hl - ld bc, SCRATCHMON_STRUCT_LENGTH + ld bc, MAIL_STRUCT_LENGTH call CopyBytes pop hl push hl - ld bc, SCRATCHMON_STRUCT_LENGTH + ld bc, MAIL_STRUCT_LENGTH add hl, bc pop de pop bc @@ -9789,7 +9789,7 @@ InitNickname: ; e3de ld de, StringBuffer1 call InitName ld a, $4 ; XXX could this be in bank 4 in pokered? - ld hl, Function2b4d + ld hl, ExitAllMenus rst FarCall ret ; e3fd @@ -9841,7 +9841,7 @@ UnknownText_0xe43a: ; 0xe43a ; 0xe43f Functione43f: ; e43f (3:643f) - call Function2b3c + call ReturnToCallingMenu ret Functione443: ; e443 (3:6443) @@ -10414,7 +10414,7 @@ INCLUDE "engine/tmhm.asm" INCLUDE "engine/namingscreen.asm" -Function11e75: ; 11e75 (4:5e75) +Function11e75: ; 11e75 (mail?) ld hl, wc6d0 ld [hl], e inc hl @@ -17957,197 +17957,7 @@ endr PokedexDataPointerTable: ; 0x44378 INCLUDE "data/pokedex/entry_pointers.asm" - -Function4456e: ; 4456e - ld a, MON_ITEM - call GetPartyParamLocation - ld d, [hl] - callba ItemIsMail - jr nc, .asm_445be - call Function44648 - cp $a - jr nc, .asm_445be - ld bc, SCRATCHMON_STRUCT_LENGTH - ld hl, s0_a835 - call AddNTimes - ld d, h - ld e, l - ld a, [CurPartyMon] - ld bc, SCRATCHMON_STRUCT_LENGTH - ld hl, sPartyScratch1 - call AddNTimes - push hl - ld a, BANK(s0_a834) - call GetSRAMBank - ld bc, SCRATCHMON_STRUCT_LENGTH - call CopyBytes - pop hl - xor a - ld bc, SCRATCHMON_STRUCT_LENGTH - call ByteFill - ld a, MON_ITEM - call GetPartyParamLocation - ld [hl], $0 - ld hl, s0_a834 - inc [hl] - call CloseSRAM - xor a - ret - -.asm_445be - scf - ret -; 445c0 - -Function445c0: ; 445c0 (11:45c0) - ld a, BANK(s0_a834) - call GetSRAMBank - ld a, b - push bc - ld hl, s0_a835 - ld bc, SCRATCHMON_STRUCT_LENGTH - call AddNTimes - push hl - add hl, bc - pop de - pop bc -.loop - ld a, b - cp $9 - jr z, .done - push bc - ld bc, SCRATCHMON_STRUCT_LENGTH - call CopyBytes - pop bc - inc b - jr .loop -.done - ld h, d - ld l, e - xor a - ld bc, SCRATCHMON_STRUCT_LENGTH - call ByteFill - ld hl, s0_a834 - dec [hl] - jp CloseSRAM -; 445f4 (11:45f4) - -ReadMailMessage: ; 445f4 - ld a, b - ld hl, s0_a835 - ld bc, SCRATCHMON_STRUCT_LENGTH - call AddNTimes - ld d, h - ld e, l - callba ReadAnyMail - ret - -Function44607: ; 44607 - ld a, BANK(s0_a834) - call GetSRAMBank - push bc - ld a, b - ld bc, SCRATCHMON_STRUCT_LENGTH - ld hl, s0_a835 - call AddNTimes - push hl - ld a, [CurPartyMon] - ld bc, SCRATCHMON_STRUCT_LENGTH - ld hl, sPartyScratch1 - call AddNTimes - ld d, h - ld e, l - pop hl - push hl - ld bc, SCRATCHMON_STRUCT_LENGTH - call CopyBytes - pop hl - ld de, PARTYMON_STRUCT_LENGTH - MON_MOVES - add hl, de - ld d, [hl] - ld a, [CurPartyMon] - ld hl, PartyMon1Item - ld bc, PARTYMON_STRUCT_LENGTH - call AddNTimes - ld [hl], d - call CloseSRAM - pop bc - jp Function445c0 -; 44648 (11:4648) - -Function44648: ; 44648 - ld a, BANK(s0_a834) - call GetSRAMBank - ld a, [s0_a834] - ld c, a - jp CloseSRAM -; 44654 - -Function44654:: ; 44654 - push bc - push de - callba SelectMonFromParty - ld a, $2 - jr c, .asm_446c6 - ld a, [CurPartyMon] - ld hl, PartyMon1Item - ld bc, PARTYMON_STRUCT_LENGTH - call AddNTimes - ld d, [hl] - callba ItemIsMail - ld a, $3 - jr nc, .asm_446c6 - ld a, BANK(sPartyScratch1) - call GetSRAMBank - ld a, [CurPartyMon] - ld hl, sPartyScratch1 - ld bc, SCRATCHMON_STRUCT_LENGTH - call AddNTimes - ld d, h - ld e, l - pop hl - pop bc - - ld a, $20 - ld [wd265], a -.asm_44691 - ld a, [de] - ld c, a - ld a, b - call GetFarByte - cp "@" - jr z, .asm_446ab - cp c - ld a, $0 - jr nz, .asm_446c1 - inc hl - inc de - ld a, [wd265] - dec a - ld [wd265], a - jr nz, .asm_44691 - -.asm_446ab - callba CheckCurPartyMonFainted - ld a, $4 - jr c, .asm_446c1 - xor a - ld [wPokemonWithdrawDepositParameter], a - callba Functione039 - ld a, $1 - -.asm_446c1 - call CloseSRAM - jr .asm_446c8 - -.asm_446c6 - pop de - pop bc - -.asm_446c8 - ld [ScriptVar], a - ret -; 446cc +INCLUDE "engine/mail.asm" GivePokeItem:: ; 446cc ld a, [PartyCount] @@ -18162,14 +17972,14 @@ GivePokeItem:: ; 446cc pop af push bc push af - ld hl, sPartyScratch1 + ld hl, sPartyMail ld bc, $2f call AddNTimes ld d, h ld e, l ld hl, wd002 ld bc, $21 - ld a, BANK(sPartyScratch1) + ld a, BANK(sPartyMail) call GetSRAMBank call CopyBytes pop af @@ -18199,43 +18009,43 @@ GivePokeItem:: ; 446cc ; 44725 -BackupScratchmons: ; 44725 - ld a, BANK(sPartyScratch1) +BackupPartyMonMail: ; 44725 + ld a, BANK(sPartyMail) call GetSRAMBank - ld hl, sPartyScratch1 - ld de, sPartyScratch2 - ld bc, 6 * SCRATCHMON_STRUCT_LENGTH + ld hl, sPartyMail + ld de, sPartyMailBackup + ld bc, 6 * MAIL_STRUCT_LENGTH call CopyBytes - ld hl, s0_a834 - ld de, s0_aa0b - ld bc, 1 + 10 * SCRATCHMON_STRUCT_LENGTH + ld hl, sMailboxCount + ld de, sMailboxCountBackup + ld bc, 1 + 10 * MAIL_STRUCT_LENGTH call CopyBytes jp CloseSRAM ; 44745 -RestoreScratchmons: ; 44745 (11:4745) - ld a, BANK(sPartyScratch1) +RestorePartyMonMail: ; 44745 (11:4745) + ld a, BANK(sPartyMail) call GetSRAMBank - ld hl, sPartyScratch2 - ld de, sPartyScratch1 - ld bc, 6 * SCRATCHMON_STRUCT_LENGTH + ld hl, sPartyMailBackup + ld de, sPartyMail + ld bc, 6 * MAIL_STRUCT_LENGTH call CopyBytes - ld hl, s0_aa0b - ld de, s0_a834 - ld bc, 1 + 10 * SCRATCHMON_STRUCT_LENGTH + ld hl, sMailboxCountBackup + ld de, sMailboxCount + ld bc, 1 + 10 * MAIL_STRUCT_LENGTH call CopyBytes jp CloseSRAM -DeleteScratchmons: ; 44765 (11:4765) - ld a, BANK(sPartyScratch1) +DeletePartyMonMail: ; 44765 (11:4765) + ld a, BANK(sPartyMail) call GetSRAMBank xor a - ld hl, sPartyScratch1 - ld bc, 6 * SCRATCHMON_STRUCT_LENGTH + ld hl, sPartyMail + ld bc, 6 * MAIL_STRUCT_LENGTH call ByteFill xor a - ld hl, s0_a834 - ld bc, 1 + 10 * SCRATCHMON_STRUCT_LENGTH + ld hl, sMailboxCount + ld bc, 1 + 10 * MAIL_STRUCT_LENGTH call ByteFill jp CloseSRAM ; 44781 (11:4781) @@ -18284,9 +18094,9 @@ _KrisMailBoxMenu: ; 0x447a0 InitMail: ; 0x447b9 ; initialize wd0f2 and beyond with incrementing values, one per mail ; set z if no mail - ld a, BANK(s0_a834) + ld a, BANK(sMailboxCount) call GetSRAMBank - ld a, [s0_a834] + ld a, [sMailboxCount] call CloseSRAM ld hl, wd0f2 ld [hli], a @@ -18312,10 +18122,10 @@ InitMail: ; 0x447b9 Function447da: ; 0x447da dec a - ld hl, s0_a835 + MON_HP - 1 - ld bc, SCRATCHMON_STRUCT_LENGTH + ld hl, sMailbox + MON_HP - 1 + ld bc, MAIL_STRUCT_LENGTH call AddNTimes - ld a, BANK(s0_a834) + ld a, BANK(sMailboxCount) call GetSRAMBank ld de, StringBuffer2 push de @@ -18396,7 +18206,7 @@ Function4484a: ; 0x4484a dec a ld b, a call ReadMailMessage - jp Function2b3c + jp ReturnToCallingMenu ; 0x44877 .PutInPack ; 0x44877 @@ -18439,10 +18249,10 @@ Function4484a: ; 0x4484a .Function448bb: ; 0x448bb push af - ld a, BANK(s0_a834) + ld a, BANK(sMailboxCount) call GetSRAMBank pop af - ld hl, s0_a835 + $2e + ld hl, sMailbox + $2e ld bc, $2f call AddNTimes ld a, [hl] @@ -18455,7 +18265,7 @@ Function4484a: ; 0x4484a xor a ld [PartyMenuActionText], a call ClearBGPalettes -.asm_448dc +.try_again callba Function5004f callba Function50405 callba Function503e0 @@ -18465,25 +18275,25 @@ Function4484a: ; 0x4484a call SetPalettes call DelayFrame callba PartyMenuSelect - jr c, .asm_44939 + jr c, .exit ld a, [CurPartySpecies] cp EGG - jr z, .asm_44923 + jr z, .egg ld a, MON_ITEM call GetPartyParamLocation ld a, [hl] and a - jr z, .asm_4492b + jr z, .attach_mail ld hl, .HoldingMailText call PrintText - jr .asm_448dc + jr .try_again -.asm_44923 +.egg ld hl, .EggText call PrintText - jr .asm_448dc + jr .try_again -.asm_4492b +.attach_mail ld a, [MenuSelection] dec a ld b, a @@ -18491,8 +18301,8 @@ Function4484a: ; 0x4484a ld hl, .MailMovedText call PrintText -.asm_44939 - jp Function2b3c +.exit + jp ReturnToCallingMenu ; 0x4493c .HoldingMailText ; 0x4493c @@ -18720,7 +18530,7 @@ Special_MoveTutor: ; 4925b ld [ScriptVar], a .asm_492a1 - call Function2b3c + call ReturnToCallingMenu ret ; 492a5 @@ -19924,7 +19734,7 @@ Function4a94e: ; 4a94e jr c, .asm_4a974 .asm_4a990 - call Function2b3c + call ReturnToCallingMenu ld hl, wd002 ld a, -1 ld bc, 3 @@ -19937,7 +19747,7 @@ Function4a94e: ; 4a94e jr c, .asm_4a9b0 call Function4a9d7 jr c, .asm_4a974 - call Function2b3c + call ReturnToCallingMenu and a .asm_4a9af @@ -24838,27 +24648,27 @@ _SwitchPartyMons: pop de ld hl, wd002 call .CopyName - ld hl, sPartyScratch1 + ld hl, sPartyMail ld a, [Buffer2] ; wd1eb (aliases: MovementType) - ld bc, SCRATCHMON_STRUCT_LENGTH + ld bc, MAIL_STRUCT_LENGTH call AddNTimes push hl ld de, wd002 - ld bc, SCRATCHMON_STRUCT_LENGTH - ld a, BANK(sPartyScratch1) + ld bc, MAIL_STRUCT_LENGTH + ld a, BANK(sPartyMail) call GetSRAMBank call CopyBytes - ld hl, sPartyScratch1 + ld hl, sPartyMail ld a, [Buffer3] - ld bc, SCRATCHMON_STRUCT_LENGTH + ld bc, MAIL_STRUCT_LENGTH call AddNTimes pop de push hl - ld bc, SCRATCHMON_STRUCT_LENGTH + ld bc, MAIL_STRUCT_LENGTH call CopyBytes pop de ld hl, wd002 - ld bc, SCRATCHMON_STRUCT_LENGTH + ld bc, MAIL_STRUCT_LENGTH call CopyBytes call CloseSRAM pop bc @@ -31402,8 +31212,8 @@ INCLUDE "engine/radio.asm" ReadPartyMonMail: ; b9229 ld a, [CurPartyMon] - ld hl, sPartyScratch1 - ld bc, SCRATCHMON_STRUCT_LENGTH + ld hl, sPartyMail + ld bc, MAIL_STRUCT_LENGTH call AddNTimes ld d, h ld e, l @@ -31416,7 +31226,7 @@ ReadAnyMail: ; b9237 call LoadFontsExtra pop de push de - ld a, BANK(sPartyScratch1) + ld a, BANK(sPartyMail) call GetSRAMBank callba Function1de5c8 call CloseSRAM @@ -41337,24 +41147,25 @@ INCBIN "gfx/misc/pokegear.2bpp.lz" ; 1de5c8 Function1de5c8: ; 1de5c8 +; reads mail message at de ld c, $0 ld hl, $29 add hl, de ld a, [hli] - cp $84 + cp "E" ret nz ld a, [hli] inc c - cp $85 + cp "F" ret z inc c - cp $86 + cp "G" ret z inc c - cp $88 + cp "I" ret z inc c - cp $92 + cp "S" ret z ld c, $0 ret diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index ce3035c35..f37cce5f2 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -2523,7 +2523,7 @@ Unknown_100fc0: ; 100fc0 db -1 Unknown_100feb: ; 100feb - dbwww $00, sPartyScratch1, SCRATCHMON_STRUCT_LENGTH * PARTY_LENGTH, NULL + dbwww $00, sPartyMail, MAIL_STRUCT_LENGTH * PARTY_LENGTH, NULL db -1 Unknown_100ff3: ; 100ff3 diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm index 54e5a81ba..931cda0ac 100755 --- a/misc/mobile_46.asm +++ b/misc/mobile_46.asm @@ -5842,7 +5842,7 @@ Function11ac3e: ; 11ac3e call FadeToMenu callab InefficientlyClear121BytesAtwc300 call Function11ac51 - call Function2b3c + call ReturnToCallingMenu ret ; 11ac51 @@ -7697,7 +7697,7 @@ Function11b7e5: ; 11b7e5 ld [de], a .asm_11b872 - call Function2b3c + call ReturnToCallingMenu call RestartMapMusic ret ; 11b879 @@ -7919,7 +7919,7 @@ Function11b98f: ; 11b98f call CopyBytes ld a, "@" ld [de], a - ld hl, sPartyScratch1 + ld hl, sPartyMail ld bc, PARTYMON_STRUCT_LENGTH - 1 ld a, [wcd2a] .loop5 diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm index 7c36b993d..7b768e10b 100755 --- a/misc/mobile_5c.asm +++ b/misc/mobile_5c.asm @@ -278,7 +278,7 @@ Function1704e1: ; 1704e1 call FadeToMenu call Function17021e call Function1704f1 - call Function2b3c + call ReturnToCallingMenu ret ; 1704f1 diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm index 01a4db77f..11906805d 100644 --- a/misc/mobile_5f.asm +++ b/misc/mobile_5f.asm @@ -324,7 +324,7 @@ Function17d0f3: ; 17d0f3 ld [de], a .asm_17d180 - call Function2b3c + call ReturnToCallingMenu call RestartMapMusic ret ; 17d187 @@ -562,7 +562,7 @@ Function17d2ce: ; 17d2ce ld [MusicFadeIDHi], a call PlayMusic call ReturnToMapFromSubmenu - call Function2b3c + call ReturnToCallingMenu ret ; 17d314 @@ -4674,7 +4674,7 @@ Function17f53d: ; 17f53d call Function17f555 pop af ld [rSVBK], a - call Function2b4d + call ExitAllMenus ret ; 17f555 diff --git a/sram.asm b/sram.asm index 1e1d85860..6e16718e1 100644 --- a/sram.asm +++ b/sram.asm @@ -9,12 +9,54 @@ sScratch:: SECTION "SRAM Bank 0", SRAM [$a600], BANK [0] -sPartyScratch1:: ds 6 * SCRATCHMON_STRUCT_LENGTH -sPartyScratch2:: ds 6 * SCRATCHMON_STRUCT_LENGTH -s0_a834:: ds 1 -s0_a835:: ds 10 * SCRATCHMON_STRUCT_LENGTH -s0_aa0b:: ds 1 -s0_aa0c:: ds 10 * SCRATCHMON_STRUCT_LENGTH +mailmsg: MACRO +\1Message:: ds $20 +\1Author:: ds NAME_LENGTH + ds 3 +\1MailType:: ds 1 +endm + +sPartyMail:: +sPartyMon1Mail:: mailmsg sPartyMon1Mail +sPartyMon2Mail:: mailmsg sPartyMon2Mail +sPartyMon3Mail:: mailmsg sPartyMon3Mail +sPartyMon4Mail:: mailmsg sPartyMon4Mail +sPartyMon5Mail:: mailmsg sPartyMon5Mail +sPartyMon6Mail:: mailmsg sPartyMon6Mail + +sPartyMailBackup:: +sPartyMon1MailBackup:: mailmsg sPartyMon1MailBackup +sPartyMon2MailBackup:: mailmsg sPartyMon2MailBackup +sPartyMon3MailBackup:: mailmsg sPartyMon3MailBackup +sPartyMon4MailBackup:: mailmsg sPartyMon4MailBackup +sPartyMon5MailBackup:: mailmsg sPartyMon5MailBackup +sPartyMon6MailBackup:: mailmsg sPartyMon6MailBackup + +sMailboxCount:: ds 1 +sMailbox:: +sMailbox1:: mailmsg sMailbox1 +sMailbox2:: mailmsg sMailbox2 +sMailbox3:: mailmsg sMailbox3 +sMailbox4:: mailmsg sMailbox4 +sMailbox5:: mailmsg sMailbox5 +sMailbox6:: mailmsg sMailbox6 +sMailbox7:: mailmsg sMailbox7 +sMailbox8:: mailmsg sMailbox8 +sMailbox9:: mailmsg sMailbox9 +sMailbox10:: mailmsg sMailbox10 + +sMailboxCountBackup:: ds 1 +sMailboxBackup:: +sMailbox1Backup:: mailmsg sMailbox1Backup +sMailbox2Backup:: mailmsg sMailbox2Backup +sMailbox3Backup:: mailmsg sMailbox3Backup +sMailbox4Backup:: mailmsg sMailbox4Backup +sMailbox5Backup:: mailmsg sMailbox5Backup +sMailbox6Backup:: mailmsg sMailbox6Backup +sMailbox7Backup:: mailmsg sMailbox7Backup +sMailbox8Backup:: mailmsg sMailbox8Backup +sMailbox9Backup:: mailmsg sMailbox9Backup +sMailbox10Backup:: mailmsg sMailbox10Backup sMysteryGiftItem:: ds 1 s0_abe3:: ds 1 From bc1870e3f499973fd656d37d134e3f9e4757c980 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 17 Nov 2015 23:29:14 -0500 Subject: [PATCH 20/40] Save, Bill's PC --- engine/billspc.asm | 136 +++++++++++++++++++++------------------ engine/link.asm | 2 +- engine/main_menu.asm | 8 +-- engine/save.asm | 133 +++++++++++++++++++------------------- home/time.asm | 14 ++-- main.asm | 30 ++++----- misc/battle_tower_5c.asm | 4 +- misc/mobile_40.asm | 2 +- misc/mobile_5c.asm | 18 +++--- misc/mobile_5f.asm | 2 +- sram.asm | 66 ++++++++++--------- wram.asm | 2 +- 12 files changed, 218 insertions(+), 199 deletions(-) diff --git a/engine/billspc.asm b/engine/billspc.asm index 03a7592ca..1f46ee587 100755 --- a/engine/billspc.asm +++ b/engine/billspc.asm @@ -1165,30 +1165,30 @@ endr cp $f jr z, .asm_e2bf5 ld b, a - call Functione3396 + call GetBoxPointer ld a, b call GetSRAMBank push hl - ld bc, $35 + ld bc, sBoxMon1Level - sBox add hl, bc - ld bc, $20 + ld bc, BOXMON_STRUCT_LENGTH ld a, e call AddNTimes ld a, [hl] ld [TempMonLevel], a pop hl push hl - ld bc, $17 + ld bc, sBoxMon1Item - sBox add hl, bc - ld bc, $20 + ld bc, BOXMON_STRUCT_LENGTH ld a, e call AddNTimes ld a, [hl] ld [TempMonItem], a pop hl - ld bc, $2b + ld bc, sBoxMon1DVs - sBox add hl, bc - ld bc, $20 + ld bc, BOXMON_STRUCT_LENGTH ld a, e call AddNTimes ld de, TempMonDVs @@ -1201,19 +1201,19 @@ endr ret .asm_e2bc6 ld hl, PartyMon1Level - ld bc, $30 + ld bc, PARTYMON_STRUCT_LENGTH ld a, e call AddNTimes ld a, [hl] ld [TempMonLevel], a ld hl, PartyMon1Item - ld bc, $30 + ld bc, PARTYMON_STRUCT_LENGTH ld a, e call AddNTimes ld a, [hl] ld [TempMonItem], a ld hl, PartyMon1DVs - ld bc, $30 + ld bc, PARTYMON_STRUCT_LENGTH ld a, e call AddNTimes ld de, TempMonDVs @@ -1228,21 +1228,21 @@ endr ld a, BANK(sBox) call GetSRAMBank ld hl, sBoxMon1Level - ld bc, $20 + ld bc, BOXMON_STRUCT_LENGTH ld a, e call AddNTimes ld a, [hl] ld [TempMonLevel], a ld hl, sBoxMon1Item - ld bc, $20 + ld bc, BOXMON_STRUCT_LENGTH ld a, e call AddNTimes ld a, [hl] ld [TempMonItem], a ld hl, sBoxMon1DVs - ld bc, $20 + ld bc, BOXMON_STRUCT_LENGTH ld a, e call AddNTimes ld de, TempMonDVs @@ -1307,6 +1307,7 @@ Functione2c6e: ; e2c6e (38:6c6e) ld de, String_e2c67 call PlaceString ret + .asm_e2c7c inc de ld a, [de] @@ -1320,36 +1321,38 @@ Functione2c6e: ; e2c6e (38:6c6e) cp $f jr z, .asm_e2cf1 push hl - call Functione3396 + call GetBoxPointer ld a, b call GetSRAMBank push hl - ld bc, $16 + ld bc, sBoxMons - sBox add hl, bc - ld bc, $20 + ld bc, BOXMON_STRUCT_LENGTH ld a, e call AddNTimes ld a, [hl] pop hl and a jr z, .asm_e2cc2 - ld bc, $372 + ld bc, sBoxMonNicknames - sBox add hl, bc - ld bc, $b + ld bc, PKMN_NAME_LENGTH ld a, e call AddNTimes ld de, StringBuffer1 - ld bc, $b + ld bc, PKMN_NAME_LENGTH call CopyBytes call CloseSRAM pop hl ld de, StringBuffer1 call PlaceString ret + .asm_e2cc2 call CloseSRAM pop hl jr .asm_e2d23 + .asm_e2cc8 push hl ld hl, PartySpecies @@ -1359,19 +1362,21 @@ Functione2c6e: ; e2c6e (38:6c6e) and a jr z, .asm_e2cee ld hl, PartyMonNicknames - ld bc, $b + ld bc, PKMN_NAME_LENGTH ld a, e call AddNTimes ld de, StringBuffer1 - ld bc, $b + ld bc, PKMN_NAME_LENGTH call CopyBytes pop hl ld de, StringBuffer1 call PlaceString ret + .asm_e2cee pop hl jr .asm_e2d23 + .asm_e2cf1 push hl ld a, BANK(sBox) @@ -1394,6 +1399,7 @@ Functione2c6e: ; e2c6e (38:6c6e) ld de, StringBuffer1 call PlaceString ret + .asm_e2d1f call CloseSRAM pop hl @@ -1422,7 +1428,7 @@ Functione2d30: ; e2d30 (38:6d30) cp $f jr z, .asm_e2db7 ld b, a - call Functione3396 + call GetBoxPointer ld a, b call GetSRAMBank inc hl @@ -1447,6 +1453,7 @@ Functione2d30: ; e2d30 (38:6d30) inc a ld [wd004], a jr .asm_e2d57 + .asm_e2d79 call CloseSRAM ld a, $ff @@ -1455,6 +1462,7 @@ Functione2d30: ; e2d30 (38:6d30) inc a ld [wcb2c], a ret + .asm_e2d87 ld hl, PartySpecies .asm_e2d8a @@ -1478,6 +1486,7 @@ Functione2d30: ; e2d30 (38:6d30) inc a ld [wd004], a jr .asm_e2d8a + .asm_e2dac ld a, $ff ld [de], a @@ -1485,6 +1494,7 @@ Functione2d30: ; e2d30 (38:6d30) inc a ld [wcb2c], a ret + .asm_e2db7 ld a, BANK(sBox) call GetSRAMBank @@ -1510,6 +1520,7 @@ Functione2d30: ; e2d30 (38:6d30) inc a ld [wd004], a jr .asm_e2dbf + .asm_e2de1 call CloseSRAM ld a, $ff @@ -1538,10 +1549,11 @@ Functione2e01: ; e2e01 (38:6e01) jr nz, .asm_e2e0b call ClearSprites ret + .asm_e2e0b ld hl, Unknown_e2e2b ld de, Sprites -.done1 +.loop ld a, [hl] cp $ff ret z @@ -1561,7 +1573,7 @@ Functione2e01: ; e2e01 (38:6e01) ld a, [hli] ld [de], a inc de - jr .done1 + jr .loop ; e2e2b (38:6e2b) Unknown_e2e2b: ; e2e2b @@ -1795,11 +1807,11 @@ Functione2fd6: ; e2fd6 (38:6fd6) ld a, BANK(sBox) call GetSRAMBank ld hl, sBoxSpecies - call Functione3357 + call CopySpeciesToTemp ld hl, sBoxMonNicknames - call Functione3363 + call CopyNicknameToTemp ld hl, sBoxMonOT - call Functione3376 + call CopyOTNameToTemp ld hl, sBoxMons ld bc, BOXMON_STRUCT_LENGTH ld a, [CurPartyMon] @@ -1813,11 +1825,11 @@ Functione2fd6: ; e2fd6 (38:6fd6) .asm_e3020 ld hl, PartySpecies - call Functione3357 + call CopySpeciesToTemp ld hl, PartyMonNicknames - call Functione3363 + call CopyNicknameToTemp ld hl, PartyMonOT - call Functione3376 + call CopyOTNameToTemp ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) ld bc, PARTYMON_STRUCT_LENGTH ld a, [CurPartyMon] @@ -1829,27 +1841,27 @@ Functione2fd6: ; e2fd6 (38:6fd6) .asm_e3048 ld b, a - call Functione3396 + call GetBoxPointer ld a, b call GetSRAMBank push hl inc hl - call Functione3357 + call CopySpeciesToTemp pop hl push hl - ld bc, $372 + ld bc, sBoxMonNicknames - sBox add hl, bc - call Functione3363 + call CopyNicknameToTemp pop hl push hl - ld bc, $296 + ld bc, sBoxMonOT - sBox add hl, bc - call Functione3376 + call CopyOTNameToTemp pop hl - ld bc, $16 + ld bc, sBoxMons - sBox add hl, bc - ld bc, $20 - call Functione3389 + ld bc, BOXMON_STRUCT_LENGTH + call CopyMonToTemp call CloseSRAM callba Function5088b ret @@ -2141,7 +2153,7 @@ Functione32b0: ; e32b0 ld a, [wcb31] dec a ld e, a - callba Function14ac2 + callba MovePkmnWOMail_SaveGame ld a, [wcb30] ld hl, wcb2f add [hl] @@ -2149,14 +2161,14 @@ Functione32b0: ; e32b0 ld a, $1 call GetSRAMBank ld hl, sBoxSpecies - call Functione3357 + call CopySpeciesToTemp ld hl, sBoxMonNicknames - call Functione3363 + call CopyNicknameToTemp ld hl, sBoxMonOT - call Functione3376 + call CopyOTNameToTemp ld hl, sBoxMons ld bc, BOXMON_STRUCT_LENGTH - call Functione3389 + call CopyMonToTemp call CloseSRAM callba Function5088b ld a, PC_DEPOSIT @@ -2169,7 +2181,7 @@ Functione32fa: ; e32fa ld a, [wcb2e] dec a ld e, a - callba Function14ac2 + callba MovePkmnWOMail_SaveGame ld a, [wcb2b] ld hl, wcb2a add [hl] @@ -2184,14 +2196,14 @@ Functione3316: ; e3316 add [hl] ld [CurPartyMon], a ld hl, PartySpecies - call Functione3357 + call CopySpeciesToTemp ld hl, PartyMonNicknames - call Functione3363 + call CopyNicknameToTemp ld hl, PartyMonOT - call Functione3376 + call CopyOTNameToTemp ld hl, PartyMon1Species ld bc, PARTYMON_STRUCT_LENGTH - call Functione3389 + call CopyMonToTemp xor a ld [wPokemonWithdrawDepositParameter], a callba Functione039 @@ -2207,7 +2219,7 @@ Functione3346: ; e3346 ret ; e3357 -Functione3357: ; e3357 (38:7357) +CopySpeciesToTemp: ; e3357 (38:7357) ld a, [CurPartyMon] ld c, a ld b, $0 @@ -2216,36 +2228,36 @@ Functione3357: ; e3357 (38:7357) ld [CurPartySpecies], a ret -Functione3363: ; e3363 (38:7363) - ld bc, $b +CopyNicknameToTemp: ; e3363 (38:7363) + ld bc, PKMN_NAME_LENGTH ld a, [CurPartyMon] call AddNTimes ld de, wd002 - ld bc, $b + ld bc, PKMN_NAME_LENGTH call CopyBytes ret -Functione3376: ; e3376 (38:7376) - ld bc, $b +CopyOTNameToTemp: ; e3376 (38:7376) + ld bc, NAME_LENGTH ld a, [CurPartyMon] call AddNTimes ld de, wd00d - ld bc, $b + ld bc, NAME_LENGTH call CopyBytes ret -Functione3389: ; e3389 (38:7389) +CopyMonToTemp: ; e3389 (38:7389) ld a, [CurPartyMon] call AddNTimes - ld de, wd018 + ld de, wd018_Mon call CopyBytes ret -Functione3396: ; e3396 (38:7396) +GetBoxPointer: ; e3396 (38:7396) dec b ld c, b ld b, 0 - ld hl, Unknown_e33a6 + ld hl, .boxes rept 3 add hl, bc endr @@ -2257,7 +2269,7 @@ endr ret ; e33a6 (38:73a6) -Unknown_e33a6: ; e33a6 +.boxes: ; e33a6 ; bank, address dba sBox1 dba sBox2 @@ -2576,7 +2588,7 @@ Functione36f9: ; e36f9 (38:76f9) ld a, [wCurBox] cp e ret z - callba Function14a83 + callba ChangeBoxSaveGame ret .asm_e3745 diff --git a/engine/link.asm b/engine/link.asm index 6d6e0f403..28b420543 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -3969,7 +3969,7 @@ Function29e53: ; 29e53 Special_TryQuickSave: ; 29e66 ld a, [wd265] push af - callba Function14ab2 + callba Link_SaveGame ld a, $1 jr nc, .asm_29e75 xor a diff --git a/engine/main_menu.asm b/engine/main_menu.asm index 72c6955b1..6e0ab56e5 100755 --- a/engine/main_menu.asm +++ b/engine/main_menu.asm @@ -150,7 +150,7 @@ Function49da4: ; 49da4 nop nop nop - ld a, [wcfcd] + ld a, [wSaveFileExists] and a jr nz, .next ld a, $0 @@ -220,7 +220,7 @@ Function49de4: ; 49de4 ; 49e09 Function49e09: ; 49e09 - ld a, [wcfcd] + ld a, [wSaveFileExists] and a ret z xor a @@ -256,7 +256,7 @@ Function49e27: ; 49e27 Function49e3d: ; 49e3d - ld a, [wcfcd] + ld a, [wSaveFileExists] and a ret z call Function6e3 @@ -566,7 +566,7 @@ Function4a0c2: ; 4a0c2 (12:60c2) pop af and a jr nz, .asm_4a0f9 - callba Function1509a + callba _SaveData .asm_4a0f9 ld c, 5 call DelayFrames diff --git a/engine/save.asm b/engine/save.asm index 4c20c83a4..f314cd4b5 100644 --- a/engine/save.asm +++ b/engine/save.asm @@ -3,11 +3,11 @@ SaveMenu: ; 14a1a callba Function5e9a call SpeechTextBox call UpdateSprites - callba Function4cf45 + callba SaveMenu_LoadDETile ld hl, UnknownText_0x15283 call SaveTheGame_yesorno jr nz, .refused - call CheckForExistingSaveFile + call AskOverwriteSaveFile jr c, .refused call SetWRAMStateForSave call _SavingDontTurnOffThePower @@ -15,36 +15,37 @@ SaveMenu: ; 14a1a call ExitMenu and a ret + .refused call ExitMenu call Functiond90 - callba Function4cf45 + callba SaveMenu_LoadDETile scf ret Function14a58: ; 14a58 call SetWRAMStateForSave - callba Function14056 - callba Function1050d9 + callba StageRTCTimeForSave + callba BackupMysteryGift call SavePokemonData - call Function14e13 + call SaveChecksum call SaveBackupPokemonData call SaveBackupChecksum callba BackupPartyMonMail - callba Function1406a + callba SaveRTC call ClearWRAMStateAfterSave ret ; 14a83 -Function14a83: ; 14a83 (5:4a83) +ChangeBoxSaveGame: ; 14a83 (5:4a83) push de ld hl, UnknownText_0x152a1 call MenuTextBox call YesNoBox call ExitMenu jr c, .refused - call CheckForExistingSaveFile + call AskOverwriteSaveFile jr c, .refused call SetWRAMStateForSave call SavingDontTurnOffThePower @@ -61,8 +62,8 @@ Function14a83: ; 14a83 (5:4a83) pop de ret -Function14ab2: ; 14ab2 - call CheckForExistingSaveFile +Link_SaveGame: ; 14ab2 + call AskOverwriteSaveFile jr c, .refused call SetWRAMStateForSave call _SavingDontTurnOffThePower @@ -73,7 +74,7 @@ Function14ab2: ; 14ab2 ret ; 14ac2 -Function14ac2: ; 14ac2 +MovePkmnWOMail_SaveGame: ; 14ac2 call SetWRAMStateForSave push de call SaveBox @@ -93,14 +94,14 @@ Function14ad5: ; 14ad5 ld a, e ld [wCurBox], a ld a, $1 - ld [wcfcd], a - callba Function14056 - callba Function1050d9 + ld [wSaveFileExists], a + callba StageRTCTimeForSave + callba BackupMysteryGift call ValidateSave call SaveOptions call SavePlayerData call SavePokemonData - call Function14e13 + call SaveChecksum call ValidateBackupSave call SaveBackupOptions call SaveBackupPlayerData @@ -108,31 +109,31 @@ Function14ad5: ; 14ad5 call SaveBackupChecksum callba BackupPartyMonMail callba BackupMobileEventIndex - callba Function1406a + callba SaveRTC call LoadBox call ClearWRAMStateAfterSave ld de, SFX_SAVE call PlaySFX - ld c, $18 + ld c, 24 call DelayFrames ret ; 14b34 -Function14b34: ; 14b34 +StartMovePkmnWOMail_SaveGame: ; 14b34 ld hl, UnknownText_0x152a6 call MenuTextBox call YesNoBox call ExitMenu - jr c, .asm_14b52 - call CheckForExistingSaveFile - jr c, .asm_14b52 + jr c, .refused + call AskOverwriteSaveFile + jr c, .refused call SetWRAMStateForSave call _SavingDontTurnOffThePower call ClearWRAMStateAfterSave and a ret -.asm_14b52 +.refused scf ret ; 14b54 @@ -177,8 +178,8 @@ SaveGameData: ; 14b85 ret ; 14b89 -CheckForExistingSaveFile: ; 14b89 - ld a, [wcfcd] +AskOverwriteSaveFile: ; 14b89 + ld a, [wSaveFileExists] and a jr z, .erase call Function14bcb @@ -269,15 +270,15 @@ SavedTheGame: ; 14be6 SaveGameData_: ; 14c10 ld a, 1 - ld [wcfcd], a - callba Function14056 - callba Function1050d9 + ld [wSaveFileExists], a + callba StageRTCTimeForSave + callba BackupMysteryGift call ValidateSave call SaveOptions call SavePlayerData call SavePokemonData call SaveBox - call Function14e13 + call SaveChecksum call ValidateBackupSave call SaveBackupOptions call SaveBackupPlayerData @@ -286,14 +287,14 @@ SaveGameData_: ; 14c10 call UpdateStackTop callba BackupPartyMonMail callba BackupMobileEventIndex - callba Function1406a - ld a, BANK(s1_be45) + callba SaveRTC + ld a, BANK(sSaveType) call GetSRAMBank - ld a, [s1_be45] + ld a, [sSaveType] cp $4 jr nz, .ok xor a - ld [s1_be45], a + ld [sSaveType], a .ok call CloseSRAM ret @@ -371,7 +372,7 @@ ErasePreviousSave: ; 14cbb call EraseHallOfFame call EraseLinkBattleStats call EraseMysteryGift - call Function14d68 + call SaveData call Function14d5c ld a, BANK(sStackTop) call GetSRAMBank @@ -395,10 +396,10 @@ EraseLinkBattleStats: ; 14ce2 ; 14cf4 EraseMysteryGift: ; 14cf4 - ld a, BANK(s0_abe4) + ld a, BANK(sBackupMysteryGiftItem) call GetSRAMBank - ld hl, s0_abe4 - ld bc, s0_abe4End - s0_abe4 + ld hl, sBackupMysteryGiftItem + ld bc, sBackupMysteryGiftItemEnd - sBackupMysteryGiftItem xor a call ByteFill jp CloseSRAM @@ -437,15 +438,15 @@ Unknown_14d2c: ; 14d2c ; 14d5c Function14d5c: ; 14d5c - ld a, BANK(s1_be45) + ld a, BANK(sSaveType) call GetSRAMBank xor a - ld [s1_be45], a + ld [sSaveType], a jp CloseSRAM ; 14d68 -Function14d68: ; 14d68 - call Function1509a +SaveData: ; 14d68 + call _SaveData ret ; 14d6c @@ -547,7 +548,7 @@ SaveBox: ; 14e0c ret ; 14e13 -Function14e13: ; 14e13 +SaveChecksum: ; 14e13 ld hl, sGameData ld bc, sGameDataEnd - sGameData ld a, BANK(sGameData) @@ -632,7 +633,7 @@ TryLoadSaveFile: ; 14ea5 (5:4ea5) call LoadBox callba RestorePartyMonMail callba RestoreMobileEventIndex - callba Function1050ea + callba RestoreMysteryGift call ValidateBackupSave call SaveBackupOptions call SaveBackupPlayerData @@ -649,12 +650,12 @@ TryLoadSaveFile: ; 14ea5 (5:4ea5) call LoadBox callba RestorePartyMonMail callba RestoreMobileEventIndex - callba Function1050ea + callba RestoreMysteryGift call ValidateSave call SaveOptions call SavePlayerData call SavePokemonData - call Function14e13 + call SaveChecksum and a ret @@ -671,11 +672,11 @@ TryLoadSaveFile: ; 14ea5 (5:4ea5) ret -Function14f1c: ; 14f1c +TryLoadSaveData: ; 14f1c xor a - ld [wcfcd], a - call Function14f84 - ld a, [wcfcd] + ld [wSaveFileExists], a + call CheckPrimarySaveFile + ld a, [wSaveFileExists] and a jr z, .backup @@ -693,8 +694,8 @@ Function14f1c: ; 14f1c ret .backup - call Function14faf - ld a, [wcfcd] + call CheckBackupSaveFile + ld a, [wSaveFileExists] and a jr z, .corrupt @@ -716,7 +717,7 @@ Function14f1c: ; 14f1c ld de, Options ld bc, OptionsEnd - Options call CopyBytes - call Function67e + call PanicResetClock ret ; 14f7c @@ -731,7 +732,7 @@ DefaultOptions: ; 14f7c db $00 ; 14f84 -Function14f84: ; 14f84 +CheckPrimarySaveFile: ; 14f84 ld a, BANK(s1_a008) call GetSRAMBank ld a, [s1_a008] @@ -746,14 +747,14 @@ Function14f84: ; 14f84 call CopyBytes call CloseSRAM ld a, $1 - ld [wcfcd], a + ld [wSaveFileExists], a .nope call CloseSRAM ret ; 14faf -Function14faf: ; 14faf +CheckBackupSaveFile: ; 14faf ld a, BANK(s0_b208) call GetSRAMBank ld a, [s0_b208] @@ -767,7 +768,7 @@ Function14faf: ; 14faf ld bc, OptionsEnd - Options call CopyBytes ld a, $2 - ld [wcfcd], a + ld [wSaveFileExists], a .nope call CloseSRAM @@ -787,14 +788,14 @@ LoadPlayerData: ; 14fd7 (5:4fd7) ld bc, wMapDataEnd - wMapData call CopyBytes call CloseSRAM - ld a, BANK(s1_be45) + ld a, BANK(sSaveType) call GetSRAMBank - ld a, [s1_be45] + ld a, [sSaveType] cp $4 - jr nz, .asm_15008 + jr nz, .not_4 ld a, $3 - ld [s1_be45], a -.asm_15008 + ld [sSaveType], a +.not_4 call CloseSRAM ret @@ -822,10 +823,10 @@ VerifyChecksum: ; 15028 (5:5028) call Checksum ld a, [sChecksum + 0] cp e - jr nz, .asm_15040 + jr nz, .fail ld a, [sChecksum + 1] cp d -.asm_15040 +.fail push af call CloseSRAM pop af @@ -863,17 +864,17 @@ VerifyBackupChecksum: ; 1507c (5:507c) call Checksum ld a, [sBackupChecksum + 0] cp e - jr nz, .asm_15094 + jr nz, .fail ld a, [sBackupChecksum + 1] cp d -.asm_15094 +.fail push af call CloseSRAM pop af ret -Function1509a: ; 1509a +_SaveData: ; 1509a ld a, BANK(sCrystalData) call GetSRAMBank ld hl, wCrystalData diff --git a/home/time.asm b/home/time.asm index be7020bda..d7010278e 100644 --- a/home/time.asm +++ b/home/time.asm @@ -5,10 +5,10 @@ AskTimer:: ; 591 push af ld a, [hMobile] and a - jr z, .asm_59a + jr z, .not_mobile call Timer -.asm_59a +.not_mobile pop af reti ; 59c @@ -190,7 +190,7 @@ FixTime:: ; 61d Function658:: ; 658 xor a ld [StringBuffer2], a - ld a, $0 + ld a, $0 ; useless ld [StringBuffer2 + 3], a jr Function677 @@ -202,7 +202,7 @@ Function663:: ; 663 ld [StringBuffer2 + 2], a ld a, [hSeconds] ld [StringBuffer2 + 3], a - jr Function677 + jr Function677 ; useless Function677:: ; 677 callba Function140ed @@ -211,13 +211,13 @@ Function677:: ; 677 -Function67e:: ; 67e - call Function685 +PanicResetClock:: ; 67e + call .ClearhRTC call SetClock ret ; 685 -Function685:: ; 685 +.ClearhRTC ; 685 xor a ld [hRTCSeconds], a ld [hRTCMinutes], a diff --git a/main.asm b/main.asm index 82e6ea00e..d61a855db 100644 --- a/main.asm +++ b/main.asm @@ -494,7 +494,7 @@ Function5df0: ; 5df0 call DelayFrames ld c, $1 callba Function4802f - callba Function1509a + callba _SaveData ld a, $8 ld [MusicFade], a ld a, MUSIC_NONE % $100 @@ -1466,7 +1466,7 @@ CopyrightString: ; 63fd ; 642e GameInit:: ; 642e - callba Function14f1c + callba TryLoadSaveData call ResetTextRelatedRAM call ClearBGPalettes call ClearTileMap @@ -9924,7 +9924,7 @@ BillsPC_MovePKMNMenu: ; e4cd jr .quit .no_mail - callba Function14b34 + callba StartMovePkmnWOMail_SaveGame jr c, .quit callba _MovePKMNWithoutMail call ReturnToMapFromSubmenu @@ -11219,7 +11219,7 @@ Unknown_1404e: ; Unreferenced ; 14056 -Function14056: ; 14056 +StageRTCTimeForSave: ; 14056 call UpdateTime ld hl, wRTC ld a, [CurDay] @@ -11233,7 +11233,7 @@ Function14056: ; 14056 ret ; 1406a -Function1406a: ; 1406a +SaveRTC: ; 1406a ld a, $a ld [MBC3SRamEnable], a call LatchClock @@ -14969,12 +14969,12 @@ Function2c642: ; 2c642 (b:4642) call Function2c6ac ld [de], a inc de - ld a, BANK(s0_abe4) + ld a, BANK(sBackupMysteryGiftItem) call GetSRAMBank - ld a, [s0_abe4] + ld a, [sBackupMysteryGiftItem] ld [de], a inc de - ld a, [s0_abe4 + 1] + ld a, [sBackupMysteryGiftItem + 1] ld [de], a ld a, $14 ld [wca00], a @@ -20677,7 +20677,7 @@ EmptyAllSRAMBanks: ; 4cf1f ; 4cf45 -Function4cf45: ; 4cf45 (13:4f45) +SaveMenu_LoadDETile: ; 4cf45 (13:4f45) ld a, [hCGB] and a jp z, WaitBGMap @@ -38369,7 +38369,7 @@ DoMysteryGift: ; 1048ba (41:48ba) ld c, a callba MysteryGiftGetItemHeldEffect ld a, c - ld [s0_abe4], a + ld [sBackupMysteryGiftItem], a ld [wNamedObjectIndexBuffer], a call CloseSRAM call GetItemName @@ -39434,10 +39434,10 @@ Function1050c8: ; 1050c8 ; 1050d9 -Function1050d9: ; 1050d9 +BackupMysteryGift: ; 1050d9 call GetMysteryGiftBank ld hl, sMysteryGiftItem - ld de, s0_abe4 + ld de, sBackupMysteryGiftItem ld a, [hli] ld [de], a inc de @@ -39447,9 +39447,9 @@ Function1050d9: ; 1050d9 ; 1050ea -Function1050ea: ; 1050ea (41:50ea) +RestoreMysteryGift: ; 1050ea (41:50ea) call GetMysteryGiftBank - ld hl, s0_abe4 + ld hl, sBackupMysteryGiftItem ld de, sMysteryGiftItem ld a, [hli] ld [de], a @@ -39470,7 +39470,7 @@ Function1050fb: ; 1050fb (41:50fb) GetMysteryGiftBank: ; 105106 - ld a, BANK(s0_abe4) + ld a, BANK(sBackupMysteryGiftItem) jp GetSRAMBank ; 10510b diff --git a/misc/battle_tower_5c.asm b/misc/battle_tower_5c.asm index bfbffc828..0cd84c0d9 100755 --- a/misc/battle_tower_5c.asm +++ b/misc/battle_tower_5c.asm @@ -409,10 +409,10 @@ CopyBTTrainer_FromBT_OT_TowBT_OTTemp: ; 1704a2 pop af ld [rSVBK], a - ld a, BANK(s1_be45) + ld a, BANK(sSaveType) call GetSRAMBank ld a, $2 - ld [s1_be45], a + ld [sSaveType], a ld hl, sNrOfBeatenBattleTowerTrainers inc [hl] call CloseSRAM diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index f37cce5f2..ba26f1b2d 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -7965,7 +7965,7 @@ Function10378c: ; 10378c .asm_10379c push bc - callba Function14ab2 + callba Link_SaveGame pop bc jr c, .asm_1037b5 ld a, $1 diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm index 7b768e10b..0f2fb7158 100755 --- a/misc/mobile_5c.asm +++ b/misc/mobile_5c.asm @@ -652,18 +652,18 @@ Function1706ee: ; 1706ee (5c:46ee) ret Function17071b: ; 17071b (5c:471b) - ld a, BANK(s1_be45) + ld a, BANK(sSaveType) call GetSRAMBank ld a, $3 - ld [s1_be45], a + ld [sSaveType], a call CloseSRAM ret Function170729: ; 170729 (5c:4729) - ld a, BANK(s1_be45) + ld a, BANK(sSaveType) call GetSRAMBank ld a, $4 - ld [s1_be45], a + ld [sSaveType], a call CloseSRAM ret @@ -704,8 +704,8 @@ Function17075f: ; 17075f (5c:475f) ret Function170778: ; 170778 (5c:4778) - ld hl, s1_be45 - ld a, BANK(s1_be45) + ld hl, sSaveType + ld a, BANK(sSaveType) call GetSRAMBank ld a, [hl] ld [ScriptVar], a @@ -728,10 +728,10 @@ Function170799: ; 170799 (5c:4799) Function17079d: ; 17079d (5c:479d) ld c, $0 asm_17079f: ; 17079f (5c:479f) - ld a, BANK(s1_be45) + ld a, BANK(sSaveType) call GetSRAMBank ld a, c - ld [s1_be45], a + ld [sSaveType], a call CloseSRAM ret @@ -868,7 +868,7 @@ Function170881: ; 170881 (5c:4881) ret Function17089a: ; 17089a - ld a, [wcfcd] + ld a, [wSaveFileExists] and a jr z, .asm_1708ad callba Function14bcb diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm index 11906805d..e9dbc799d 100644 --- a/misc/mobile_5f.asm +++ b/misc/mobile_5f.asm @@ -3111,7 +3111,7 @@ Function17e3ac: ; 17e3ac push af ld a, $1 ld [rSVBK], a - callba Function14e13 + callba SaveChecksum pop af ld [rSVBK], a ret diff --git a/sram.asm b/sram.asm index 6e16718e1..85af5e7aa 100644 --- a/sram.asm +++ b/sram.asm @@ -15,15 +15,16 @@ mailmsg: MACRO ds 3 \1MailType:: ds 1 endm - +; a600 sPartyMail:: -sPartyMon1Mail:: mailmsg sPartyMon1Mail -sPartyMon2Mail:: mailmsg sPartyMon2Mail -sPartyMon3Mail:: mailmsg sPartyMon3Mail -sPartyMon4Mail:: mailmsg sPartyMon4Mail -sPartyMon5Mail:: mailmsg sPartyMon5Mail -sPartyMon6Mail:: mailmsg sPartyMon6Mail +sPartyMon1Mail:: mailmsg sPartyMon1Mail +sPartyMon2Mail:: mailmsg sPartyMon2Mail +sPartyMon3Mail:: mailmsg sPartyMon3Mail +sPartyMon4Mail:: mailmsg sPartyMon4Mail +sPartyMon5Mail:: mailmsg sPartyMon5Mail +sPartyMon6Mail:: mailmsg sPartyMon6Mail +; a71a sPartyMailBackup:: sPartyMon1MailBackup:: mailmsg sPartyMon1MailBackup sPartyMon2MailBackup:: mailmsg sPartyMon2MailBackup @@ -32,35 +33,38 @@ sPartyMon4MailBackup:: mailmsg sPartyMon4MailBackup sPartyMon5MailBackup:: mailmsg sPartyMon5MailBackup sPartyMon6MailBackup:: mailmsg sPartyMon6MailBackup +; a834 sMailboxCount:: ds 1 sMailbox:: -sMailbox1:: mailmsg sMailbox1 -sMailbox2:: mailmsg sMailbox2 -sMailbox3:: mailmsg sMailbox3 -sMailbox4:: mailmsg sMailbox4 -sMailbox5:: mailmsg sMailbox5 -sMailbox6:: mailmsg sMailbox6 -sMailbox7:: mailmsg sMailbox7 -sMailbox8:: mailmsg sMailbox8 -sMailbox9:: mailmsg sMailbox9 -sMailbox10:: mailmsg sMailbox10 +sMailbox1:: mailmsg sMailbox1 +sMailbox2:: mailmsg sMailbox2 +sMailbox3:: mailmsg sMailbox3 +sMailbox4:: mailmsg sMailbox4 +sMailbox5:: mailmsg sMailbox5 +sMailbox6:: mailmsg sMailbox6 +sMailbox7:: mailmsg sMailbox7 +sMailbox8:: mailmsg sMailbox8 +sMailbox9:: mailmsg sMailbox9 +sMailbox10:: mailmsg sMailbox10 +; aa0b sMailboxCountBackup:: ds 1 sMailboxBackup:: -sMailbox1Backup:: mailmsg sMailbox1Backup -sMailbox2Backup:: mailmsg sMailbox2Backup -sMailbox3Backup:: mailmsg sMailbox3Backup -sMailbox4Backup:: mailmsg sMailbox4Backup -sMailbox5Backup:: mailmsg sMailbox5Backup -sMailbox6Backup:: mailmsg sMailbox6Backup -sMailbox7Backup:: mailmsg sMailbox7Backup -sMailbox8Backup:: mailmsg sMailbox8Backup -sMailbox9Backup:: mailmsg sMailbox9Backup -sMailbox10Backup:: mailmsg sMailbox10Backup +sMailbox1Backup:: mailmsg sMailbox1Backup +sMailbox2Backup:: mailmsg sMailbox2Backup +sMailbox3Backup:: mailmsg sMailbox3Backup +sMailbox4Backup:: mailmsg sMailbox4Backup +sMailbox5Backup:: mailmsg sMailbox5Backup +sMailbox6Backup:: mailmsg sMailbox6Backup +sMailbox7Backup:: mailmsg sMailbox7Backup +sMailbox8Backup:: mailmsg sMailbox8Backup +sMailbox9Backup:: mailmsg sMailbox9Backup +sMailbox10Backup:: mailmsg sMailbox10Backup +; abe2 sMysteryGiftItem:: ds 1 s0_abe3:: ds 1 -s0_abe4:: ds 1 +sBackupMysteryGiftItem:: ds 1 s0_abe5:: ds 1 s0_abe6:: ds 10 s0_abf0:: ds 10 @@ -71,7 +75,7 @@ sMysteryGiftTrainerHouseFlag:: ds 1 s0_abfe:: ds 12 sMysteryGiftTrainer:: ds (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 1 ds 1 -s0_abe4End:: +sBackupMysteryGiftItemEnd:: ds $30 @@ -145,7 +149,9 @@ sMobileEventIndex:: ds 1 sCrystalData:: ds wCrystalDataEnd - wCrystalData sMobileEventIndexBackup:: ds 1 -s1_be45:: ds 1 +sSaveType:: ds 1 +; 0: normal +; 2: battle tower ; data of the BattleTower must be in SRAM because you can save and leave between battles sBattleTower:: ; be46 diff --git a/wram.asm b/wram.asm index f8a9f1406..aa95c87b2 100644 --- a/wram.asm +++ b/wram.asm @@ -1418,7 +1418,7 @@ Options:: ; cfcc ; bit 7: battle scene off/on ds 1 -wcfcd:: ds 1 +wSaveFileExists:: ds 1 TextBoxFrame:: ; cfce ; bits 0-2: textbox frame 0-7 From 6d47be8d8c02317a963c6ff5266a50a8674d285d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 18 Nov 2015 10:42:42 -0500 Subject: [PATCH 21/40] Fruit tree constants, more mail engine --- constants/map_constants.asm | 33 +++ constants/misc_constants.asm | 1 + engine/mail.asm | 433 +++++++++++++++++++++++++++++++++-- engine/scripting.asm | 2 +- main.asm | 427 ++-------------------------------- maps/AzaleaTown.asm | 2 +- maps/FuchsiaCity.asm | 2 +- maps/PewterCity.asm | 4 +- maps/Route1.asm | 2 +- maps/Route11.asm | 2 +- maps/Route2.asm | 2 +- maps/Route26.asm | 2 +- maps/Route29.asm | 2 +- maps/Route30.asm | 4 +- maps/Route31.asm | 98 ++++---- maps/Route33.asm | 2 +- maps/Route35.asm | 2 +- maps/Route36.asm | 2 +- maps/Route37.asm | 6 +- maps/Route38.asm | 2 +- maps/Route39.asm | 2 +- maps/Route42.asm | 6 +- maps/Route43.asm | 2 +- maps/Route44.asm | 2 +- maps/Route45.asm | 2 +- maps/Route46.asm | 4 +- maps/Route8.asm | 2 +- maps/VioletCity.asm | 2 +- misc/battle_tower_5c.asm | 96 -------- misc/mobile_5c.asm | 103 ++++++++- sram.asm | 5 +- wram.asm | 5 +- 32 files changed, 653 insertions(+), 608 deletions(-) diff --git a/constants/map_constants.asm b/constants/map_constants.asm index bdc1319ae..6ff5bc55b 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -665,3 +665,36 @@ EMOTE_OBJECT EQU 7 const PERSONTYPE_4 const PERSONTYPE_5 const PERSONTYPE_6 + +; fruit trees +const_value SET 1 + const FRUITTREE_ROUTE_29 + const FRUITTREE_ROUTE_30_1 + const FRUITTREE_ROUTE_38 + const FRUITTREE_ROUTE_46_1 + const FRUITTREE_ROUTE_30_2 + const FRUITTREE_ROUTE_33 + const FRUITTREE_ROUTE_31 + const FRUITTREE_ROUTE_43 + const FRUITTREE_VIOLET_CITY + const FRUITTREE_ROUTE_46_2 + const FRUITTREE_ROUTE_35 + const FRUITTREE_ROUTE_45 + const FRUITTREE_ROUTE_36 + const FRUITTREE_ROUTE_26 + const FRUITTREE_ROUTE_39 + const FRUITTREE_ROUTE_44 + const FRUITTREE_ROUTE_37_1 + const FRUITTREE_ROUTE_37_2 + const FRUITTREE_ROUTE_37_3 + const FRUITTREE_AZALEA_TOWN + const FRUITTREE_ROUTE_42_1 + const FRUITTREE_ROUTE_42_2 + const FRUITTREE_ROUTE_42_3 + const FRUITTREE_ROUTE_11 + const FRUITTREE_ROUTE_2 + const FRUITTREE_ROUTE_1 + const FRUITTREE_ROUTE_8 + const FRUITTREE_PEWTER_CITY_1 + const FRUITTREE_PEWTER_CITY_2 + const FRUITTREE_FUCHSIA_CITY diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 964783a5e..741750e34 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -35,6 +35,7 @@ NUM_BOXES EQU 14 ; mail MAIL_STRUCT_LENGTH EQU $2f MAILBOX_CAPACITY EQU 10 +MAIL_MSG_LENGTH EQU $20 ; hall of fame HOF_MON_LENGTH = 1 + 2 + 2 + 1 + (PKMN_NAME_LENGTH +- 1) ; species, id, dvs, level, nick diff --git a/engine/mail.asm b/engine/mail.asm index e3b7a5fab..5748536dc 100755 --- a/engine/mail.asm +++ b/engine/mail.asm @@ -39,7 +39,8 @@ SendMailToPC: ; 4456e ret ; 445c0 -Function445c0: ; 445c0 (11:45c0) +DeleteMailFromPC: ; 445c0 (11:45c0) +; Shift all mail messages in the mailbox ld a, BANK(sMailboxCount) call GetSRAMBank ld a, b @@ -53,7 +54,7 @@ Function445c0: ; 445c0 (11:45c0) pop bc .loop ld a, b - cp $9 + cp MAILBOX_CAPACITY - 1 jr z, .done push bc ld bc, MAIL_STRUCT_LENGTH @@ -82,7 +83,7 @@ ReadMailMessage: ; 445f4 callba ReadAnyMail ret -Function44607: ; 44607 +MoveMailFromPCToParty: ; 44607 ld a, BANK(sMailboxCount) call GetSRAMBank push bc @@ -112,7 +113,7 @@ Function44607: ; 44607 ld [hl], d call CloseSRAM pop bc - jp Function445c0 + jp DeleteMailFromPC ; 44648 (11:4648) GetMailboxCount: ; 44648 @@ -123,12 +124,13 @@ GetMailboxCount: ; 44648 jp CloseSRAM ; 44654 -Function44654:: ; 44654 +CheckPokeItem:: ; 44654 push bc push de callba SelectMonFromParty ld a, $2 - jr c, .asm_446c6 + jr c, .pop_return + ld a, [CurPartyMon] ld hl, PartyMon1Item ld bc, PARTYMON_STRUCT_LENGTH @@ -136,7 +138,8 @@ Function44654:: ; 44654 ld d, [hl] callba ItemIsMail ld a, $3 - jr nc, .asm_446c6 + jr nc, .pop_return + ld a, BANK(sPartyMail) call GetSRAMBank ld a, [CurPartyMon] @@ -148,43 +151,437 @@ Function44654:: ; 44654 pop hl pop bc - ld a, $20 +; Compare the mail message, byte for byte, with the expected message. + ld a, MAIL_MSG_LENGTH ld [wd265], a -.asm_44691 +.loop ld a, [de] ld c, a ld a, b call GetFarByte cp "@" - jr z, .asm_446ab + jr z, .done cp c ld a, $0 - jr nz, .asm_446c1 + jr nz, .close_sram_return inc hl inc de ld a, [wd265] dec a ld [wd265], a - jr nz, .asm_44691 + jr nz, .loop -.asm_446ab +.done callba CheckCurPartyMonFainted ld a, $4 - jr c, .asm_446c1 + jr c, .close_sram_return xor a ld [wPokemonWithdrawDepositParameter], a callba Functione039 ld a, $1 -.asm_446c1 +.close_sram_return call CloseSRAM - jr .asm_446c8 + jr .return -.asm_446c6 +.pop_return pop de pop bc -.asm_446c8 +.return ld [ScriptVar], a ret ; 446cc + + +GivePokeItem:: ; 446cc + ld a, [PartyCount] + dec a + push af + push bc + ld hl, PartyMon1Item + ld bc, PARTYMON_STRUCT_LENGTH + call AddNTimes + pop bc + ld [hl], b + pop af + push bc + push af + ld hl, sPartyMail + ld bc, $2f + call AddNTimes + ld d, h + ld e, l + ld hl, wd002 + ld bc, $21 + ld a, BANK(sPartyMail) + call GetSRAMBank + call CopyBytes + pop af + push af + ld hl, PartyMonOT + ld bc, NAME_LENGTH + call AddNTimes + ld bc, $a + call CopyBytes + pop af + ld hl, PartyMon1ID + ld bc, PARTYMON_STRUCT_LENGTH + call AddNTimes + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + inc de + ld a, [CurPartySpecies] + ld [de], a + inc de + pop bc + ld a, b + ld [de], a + jp CloseSRAM +; 44725 + + +BackupPartyMonMail: ; 44725 + ld a, BANK(sPartyMail) + call GetSRAMBank + ld hl, sPartyMail + ld de, sPartyMailBackup + ld bc, 6 * MAIL_STRUCT_LENGTH + call CopyBytes + ld hl, sMailboxCount + ld de, sMailboxCountBackup + ld bc, 1 + 10 * MAIL_STRUCT_LENGTH + call CopyBytes + jp CloseSRAM +; 44745 + +RestorePartyMonMail: ; 44745 (11:4745) + ld a, BANK(sPartyMail) + call GetSRAMBank + ld hl, sPartyMailBackup + ld de, sPartyMail + ld bc, 6 * MAIL_STRUCT_LENGTH + call CopyBytes + ld hl, sMailboxCountBackup + ld de, sMailboxCount + ld bc, 1 + 10 * MAIL_STRUCT_LENGTH + call CopyBytes + jp CloseSRAM + +DeletePartyMonMail: ; 44765 (11:4765) + ld a, BANK(sPartyMail) + call GetSRAMBank + xor a + ld hl, sPartyMail + ld bc, 6 * MAIL_STRUCT_LENGTH + call ByteFill + xor a + ld hl, sMailboxCount + ld bc, 1 + 10 * MAIL_STRUCT_LENGTH + call ByteFill + jp CloseSRAM +; 44781 (11:4781) + + +Function44781: ; 44781 + ld a, [PartyCount] + and a + jr z, .asm_4479e + ld e, a + ld hl, PartyMon1Item +.asm_4478b + ld d, [hl] + push hl + push de + callba ItemIsMail + pop de + pop hl + ret c + ld bc, PARTYMON_STRUCT_LENGTH + add hl, bc + dec e + jr nz, .asm_4478b + +.asm_4479e + and a + ret +; 447a0 + +_KrisMailBoxMenu: ; 0x447a0 + call InitMail + jr z, .nomail + call LoadStandardMenuDataHeader + call MailboxPC + jp WriteBackup + +.nomail + ld hl, .EmptyMailboxText + jp MenuTextBoxBackup +; 0x447b4 + +.EmptyMailboxText ; 0x447b4 + text_jump _EmptyMailboxText + db "@" + +InitMail: ; 0x447b9 +; initialize wd0f2 and beyond with incrementing values, one per mail +; set z if no mail + ld a, BANK(sMailboxCount) + call GetSRAMBank + ld a, [sMailboxCount] + call CloseSRAM + ld hl, wd0f2 + ld [hli], a + and a + + jr z, .done ; if no mail, we're done + + ; load values in memory with incrementing values starting at wd0f2 + ld b, a + ld a, $1 +.loop + ld [hli], a + inc a + dec b + jr nz, .loop +.done + ld [hl], $ff ; terminate + + ld a, [wd0f2] + and a + ret +; 0x447da + +Function447da: ; 0x447da + dec a + ld hl, sMailbox1Author + ld bc, MAIL_STRUCT_LENGTH + call AddNTimes + ld a, BANK(sMailboxCount) + call GetSRAMBank + ld de, StringBuffer2 + push de + ld bc, NAME_LENGTH - 1 + call CopyBytes + ld a, "@" + ld [de], a + call CloseSRAM + pop de + ret +; 0x447fb + +Function447fb: ; 0x447fb + push de + ld a, [MenuSelection] + call Function447da + pop hl + jp PlaceString +; 0x44806 + +MailboxPC: ; 0x44806 + xor a + ld [OBPals + 8 * 6], a + ld a, $1 + ld [wd0f1], a +.loop + call InitMail + ld hl, MenuData4494c + call CopyMenuDataHeader + xor a + ld [hBGMapMode], a + call InitScrollingMenu + call UpdateSprites + ld a, [wd0f1] + ld [wMenuCursorBuffer], a + ld a, [OBPals + 8 * 6] + ld [wd0e4], a + call HandleScrollingMenu + ld a, [wd0e4] + ld [OBPals + 8 * 6], a + ld a, [MenuSelection2] + ld [wd0f1], a + ld a, [wcf73] + cp $2 + jr z, .exit + call Function4484a + jr .loop + +.exit + xor a + ret +; 0x4484a + +Function4484a: ; 0x4484a + ld hl, MenuData44964 + call LoadMenuDataHeader + call InterpretMenu2 + call ExitMenu + jr c, .exit + ld a, [MenuSelection2] + dec a + ld hl, .JumpTable + rst JumpTable + +.exit + ret +; 0x44861 + +.JumpTable + dw .ReadMail + dw .PutInPack + dw .AttachMail + dw .Cancel + +.ReadMail ; 0x44869 + call FadeToMenu + ld a, [MenuSelection] + dec a + ld b, a + call ReadMailMessage + jp ReturnToCallingMenu +; 0x44877 + +.PutInPack ; 0x44877 + ld hl, .MessageLostText + call MenuTextBox + call YesNoBox + call ExitMenu + ret c + ld a, [MenuSelection] + dec a + call .GetMailType + ld a, $1 + ld [wItemQuantityChangeBuffer], a + ld hl, NumItems + call ReceiveItem + jr c, .put_in_bag + ld hl, .PackFullText + jp MenuTextBoxBackup + +.put_in_bag + ld a, [MenuSelection] + dec a + ld b, a + call DeleteMailFromPC + ld hl, .PutAwayText + jp MenuTextBoxBackup +; 0x448ac + +.PutAwayText ; 0x448ac + text_jump ClearedMailPutAwayText + db "@" + +.PackFullText ; 0x448b1 + text_jump MailPackFullText + db "@" + +.MessageLostText ; 0x448b6 + text_jump MailMessageLostText + db "@" + +.GetMailType: ; 0x448bb + push af + ld a, BANK(sMailboxCount) + call GetSRAMBank + pop af + ld hl, sMailbox1MailType + ld bc, MAIL_STRUCT_LENGTH + call AddNTimes + ld a, [hl] + ld [CurItem], a + jp CloseSRAM +; 0x448d2 + +.AttachMail ; 0x448d2 + call FadeToMenu + xor a + ld [PartyMenuActionText], a + call ClearBGPalettes +.try_again + callba Function5004f + callba Function50405 + callba Function503e0 + callba WritePartyMenuTilemap + callba PrintPartyMenuText + call WaitBGMap + call SetPalettes + call DelayFrame + callba PartyMenuSelect + jr c, .exit2 + ld a, [CurPartySpecies] + cp EGG + jr z, .egg + ld a, MON_ITEM + call GetPartyParamLocation + ld a, [hl] + and a + jr z, .attach_mail + ld hl, .HoldingMailText + call PrintText + jr .try_again + +.egg + ld hl, .EggText + call PrintText + jr .try_again + +.attach_mail + ld a, [MenuSelection] + dec a + ld b, a + call MoveMailFromPCToParty + ld hl, .MailMovedText + call PrintText + +.exit2 + jp ReturnToCallingMenu +; 0x4493c + +.HoldingMailText ; 0x4493c + text_jump MailAlreadyHoldingItemText + db "@" + +.EggText ; 0x44941 + text_jump MailEggText + db "@" + +.MailMovedText ; 0x44946 + text_jump MailMovedFromBoxText + db "@" + +.Cancel + ret + +MenuData4494c: ; 0x4494c + db %01000000 ; flags + db 1, 8 ; start coords + db $a, $12 ; end coords + dw .MenuData2 + db 1 ; default option + +.MenuData2 + db %00010000 ; flags + db 4, 0 ; rows/columns? + db 1 ; horizontal spacing? + dbw 0,wd0f2 ; text pointer + dba Function447fb + dbw 0,0 + dbw 0,0 + +MenuData44964: ; 0x44964 + db %01000000 ; flags + db 0, 0 ; start coords + db 9, $d ; end coords + dw .MenuData2 + db 1 ; default option + +.MenuData2 + db %10000000 ; flags + db 4 ; items + db "READ MAIL@" + db "PUT IN PACK@" + db "ATTACH MAIL@" + db "CANCEL@" diff --git a/engine/scripting.asm b/engine/scripting.asm index 4aa1de224..f576fa3d4 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -2341,7 +2341,7 @@ Script_checkpokeitem: ; 977b7 ld d, a ld a, [ScriptBank] ld b, a - callba Function44654 + callba CheckPokeItem ret ; 977ca diff --git a/main.asm b/main.asm index d61a855db..eccf5b010 100644 --- a/main.asm +++ b/main.asm @@ -11329,39 +11329,39 @@ Function140ed:: ; 140ed ld a, [StringBuffer2 + 3] sub [hl] dec hl - jr nc, .asm_14102 + jr nc, .okay_secs add 60 -.asm_14102 +.okay_secs ld [de], a dec de ld a, [StringBuffer2 + 2] sbc [hl] dec hl - jr nc, .asm_1410d + jr nc, .okay_mins add 60 -.asm_1410d +.okay_mins ld [de], a dec de ld a, [StringBuffer2 + 1] sbc [hl] dec hl - jr nc, .asm_14118 + jr nc, .okay_hrs add 24 -.asm_14118 +.okay_hrs ld [de], a dec de ld a, [StringBuffer2] sbc [hl] dec hl - jr nc, .asm_14128 + jr nc, .okay_days add 140 ld c, 7 call SimpleDivide -.asm_14128 +.okay_days ld [de], a ret ; 1412a @@ -11371,16 +11371,16 @@ INCLUDE "engine/overworld.asm" Function1499a:: ; 1499a ld a, [PlayerNextTile] cp $60 - jr z, .asm_149ad + jr z, .warp cp $68 - jr z, .asm_149ad + jr z, .warp and $f0 cp $70 - jr z, .asm_149ad + jr z, .warp and a ret -.asm_149ad +.warp scf ret ; 149af @@ -11388,17 +11388,17 @@ Function1499a:: ; 1499a Function149af:: ; 149af ld a, [PlayerNextTile] cp $70 - jr z, .asm_149c4 + jr z, .not_warp cp $76 - jr z, .asm_149c4 + jr z, .not_warp cp $78 - jr z, .asm_149c4 + jr z, .not_warp cp $7e - jr z, .asm_149c4 + jr z, .not_warp scf ret -.asm_149c4 +.not_warp xor a ret ; 149c6 @@ -17959,399 +17959,6 @@ INCLUDE "data/pokedex/entry_pointers.asm" INCLUDE "engine/mail.asm" -GivePokeItem:: ; 446cc - ld a, [PartyCount] - dec a - push af - push bc - ld hl, PartyMon1Item - ld bc, PARTYMON_STRUCT_LENGTH - call AddNTimes - pop bc - ld [hl], b - pop af - push bc - push af - ld hl, sPartyMail - ld bc, $2f - call AddNTimes - ld d, h - ld e, l - ld hl, wd002 - ld bc, $21 - ld a, BANK(sPartyMail) - call GetSRAMBank - call CopyBytes - pop af - push af - ld hl, PartyMonOT - ld bc, NAME_LENGTH - call AddNTimes - ld bc, $a - call CopyBytes - pop af - ld hl, PartyMon1ID - ld bc, PARTYMON_STRUCT_LENGTH - call AddNTimes - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - inc de - ld a, [CurPartySpecies] - ld [de], a - inc de - pop bc - ld a, b - ld [de], a - jp CloseSRAM -; 44725 - - -BackupPartyMonMail: ; 44725 - ld a, BANK(sPartyMail) - call GetSRAMBank - ld hl, sPartyMail - ld de, sPartyMailBackup - ld bc, 6 * MAIL_STRUCT_LENGTH - call CopyBytes - ld hl, sMailboxCount - ld de, sMailboxCountBackup - ld bc, 1 + 10 * MAIL_STRUCT_LENGTH - call CopyBytes - jp CloseSRAM -; 44745 - -RestorePartyMonMail: ; 44745 (11:4745) - ld a, BANK(sPartyMail) - call GetSRAMBank - ld hl, sPartyMailBackup - ld de, sPartyMail - ld bc, 6 * MAIL_STRUCT_LENGTH - call CopyBytes - ld hl, sMailboxCountBackup - ld de, sMailboxCount - ld bc, 1 + 10 * MAIL_STRUCT_LENGTH - call CopyBytes - jp CloseSRAM - -DeletePartyMonMail: ; 44765 (11:4765) - ld a, BANK(sPartyMail) - call GetSRAMBank - xor a - ld hl, sPartyMail - ld bc, 6 * MAIL_STRUCT_LENGTH - call ByteFill - xor a - ld hl, sMailboxCount - ld bc, 1 + 10 * MAIL_STRUCT_LENGTH - call ByteFill - jp CloseSRAM -; 44781 (11:4781) - - -Function44781: ; 44781 - ld a, [PartyCount] - and a - jr z, .asm_4479e - ld e, a - ld hl, PartyMon1Item -.asm_4478b - ld d, [hl] - push hl - push de - callba ItemIsMail - pop de - pop hl - ret c - ld bc, PARTYMON_STRUCT_LENGTH - add hl, bc - dec e - jr nz, .asm_4478b - -.asm_4479e - and a - ret -; 447a0 - -_KrisMailBoxMenu: ; 0x447a0 - call InitMail - jr z, .nomail - call LoadStandardMenuDataHeader - call Function44806 - jp WriteBackup - -.nomail - ld hl, .EmptyMailboxText - jp MenuTextBoxBackup -; 0x447b4 - -.EmptyMailboxText ; 0x447b4 - text_jump _EmptyMailboxText - db "@" - -InitMail: ; 0x447b9 -; initialize wd0f2 and beyond with incrementing values, one per mail -; set z if no mail - ld a, BANK(sMailboxCount) - call GetSRAMBank - ld a, [sMailboxCount] - call CloseSRAM - ld hl, wd0f2 - ld [hli], a - and a - - jr z, .done ; if no mail, we're done - - ; load values in memory with incrementing values starting at wd0f2 - ld b, a - ld a, $1 -.loop - ld [hli], a - inc a - dec b - jr nz, .loop -.done - ld [hl], $ff ; terminate - - ld a, [wd0f2] - and a - ret -; 0x447da - -Function447da: ; 0x447da - dec a - ld hl, sMailbox + MON_HP - 1 - ld bc, MAIL_STRUCT_LENGTH - call AddNTimes - ld a, BANK(sMailboxCount) - call GetSRAMBank - ld de, StringBuffer2 - push de - ld bc, NAME_LENGTH - 1 - call CopyBytes - ld a, "@" - ld [de], a - call CloseSRAM - pop de - ret -; 0x447fb - -Function447fb: ; 0x447fb - push de - ld a, [MenuSelection] - call Function447da - pop hl - jp PlaceString -; 0x44806 - -Function44806: ; 0x44806 - xor a - ld [OBPals + 8 * 6], a - ld a, $1 - ld [wd0f1], a -.asm_4480f - call InitMail - ld hl, MenuData4494c - call CopyMenuDataHeader - xor a - ld [hBGMapMode], a - call InitScrollingMenu - call UpdateSprites - ld a, [wd0f1] - ld [wMenuCursorBuffer], a - ld a, [OBPals + 8 * 6] - ld [wd0e4], a - call HandleScrollingMenu - ld a, [wd0e4] - ld [OBPals + 8 * 6], a - ld a, [MenuSelection2] - ld [wd0f1], a - ld a, [wcf73] - cp $2 - jr z, .asm_44848 - call Function4484a - jr .asm_4480f - -.asm_44848 - xor a - ret -; 0x4484a - -Function4484a: ; 0x4484a - ld hl, MenuData44964 - call LoadMenuDataHeader - call InterpretMenu2 - call ExitMenu - jr c, .asm_44860 - ld a, [MenuSelection2] - dec a - ld hl, .JumpTable - rst JumpTable - -.asm_44860 - ret -; 0x44861 - -.JumpTable - dw .ReadMail - dw .PutInPack - dw .AttachMail - dw .Cancel - -.ReadMail ; 0x44869 - call FadeToMenu - ld a, [MenuSelection] - dec a - ld b, a - call ReadMailMessage - jp ReturnToCallingMenu -; 0x44877 - -.PutInPack ; 0x44877 - ld hl, .MessageLostText - call MenuTextBox - call YesNoBox - call ExitMenu - ret c - ld a, [MenuSelection] - dec a - call .Function448bb - ld a, $1 - ld [wItemQuantityChangeBuffer], a - ld hl, NumItems - call ReceiveItem - jr c, .asm_4489e - ld hl, .PackFullText - jp MenuTextBoxBackup - -.asm_4489e - ld a, [MenuSelection] - dec a - ld b, a - call Function445c0 - ld hl, .PutAwayText - jp MenuTextBoxBackup -; 0x448ac - -.PutAwayText ; 0x448ac - text_jump ClearedMailPutAwayText - db "@" - -.PackFullText ; 0x448b1 - text_jump MailPackFullText - db "@" - -.MessageLostText ; 0x448b6 - text_jump MailMessageLostText - db "@" - -.Function448bb: ; 0x448bb - push af - ld a, BANK(sMailboxCount) - call GetSRAMBank - pop af - ld hl, sMailbox + $2e - ld bc, $2f - call AddNTimes - ld a, [hl] - ld [CurItem], a - jp CloseSRAM -; 0x448d2 - -.AttachMail ; 0x448d2 - call FadeToMenu - xor a - ld [PartyMenuActionText], a - call ClearBGPalettes -.try_again - callba Function5004f - callba Function50405 - callba Function503e0 - callba WritePartyMenuTilemap - callba PrintPartyMenuText - call WaitBGMap - call SetPalettes - call DelayFrame - callba PartyMenuSelect - jr c, .exit - ld a, [CurPartySpecies] - cp EGG - jr z, .egg - ld a, MON_ITEM - call GetPartyParamLocation - ld a, [hl] - and a - jr z, .attach_mail - ld hl, .HoldingMailText - call PrintText - jr .try_again - -.egg - ld hl, .EggText - call PrintText - jr .try_again - -.attach_mail - ld a, [MenuSelection] - dec a - ld b, a - call Function44607 - ld hl, .MailMovedText - call PrintText - -.exit - jp ReturnToCallingMenu -; 0x4493c - -.HoldingMailText ; 0x4493c - text_jump MailAlreadyHoldingItemText - db "@" - -.EggText ; 0x44941 - text_jump MailEggText - db "@" - -.MailMovedText ; 0x44946 - text_jump MailMovedFromBoxText - db "@" - -.Cancel - ret - -MenuData4494c: ; 0x4494c - db %01000000 ; flags - db 1, 8 ; start coords - db $a, $12 ; end coords - dw .MenuData2 - db 1 ; default option - -.MenuData2 - db %00010000 ; flags - db 4, 0 ; rows/columns? - db 1 ; horizontal spacing? - dbw 0,wd0f2 ; text pointer - dba Function447fb - dbw 0,0 - dbw 0,0 - -MenuData44964: ; 0x44964 - db %01000000 ; flags - db 0, 0 ; start coords - db 9, $d ; end coords - dw .MenuData2 - db 1 ; default option - -.MenuData2 - db %10000000 ; flags - db 4 ; items - db "READ MAIL@" - db "PUT IN PACK@" - db "ATTACH MAIL@" - db "CANCEL@" - - SECTION "bank12", ROMX, BANK[$12] Function48000: ; 48000 diff --git a/maps/AzaleaTown.asm b/maps/AzaleaTown.asm index a40bd316d..95bd0b522 100644 --- a/maps/AzaleaTown.asm +++ b/maps/AzaleaTown.asm @@ -198,7 +198,7 @@ AzaleaTownMartSign: jumpstd martsign WhiteApricornTree: - fruittree $14 + fruittree FRUITTREE_AZALEA_TOWN MapAzaleaTownSignpostItem8: dwb EVENT_AZALEA_TOWN_HIDDEN_FULL_HEAL, FULL_HEAL diff --git a/maps/FuchsiaCity.asm b/maps/FuchsiaCity.asm index bd42f0fc3..1d60f9f6f 100644 --- a/maps/FuchsiaCity.asm +++ b/maps/FuchsiaCity.asm @@ -46,7 +46,7 @@ FuchsiaCityMartSign: jumpstd martsign FruitTreeScript_0x194b43: - fruittree $1e + fruittree FRUITTREE_FUCHSIA_CITY UnknownText_0x194b45: text "One of the ELITE" diff --git a/maps/PewterCity.asm b/maps/PewterCity.asm index 9d5c755b2..ef3dfe610 100644 --- a/maps/PewterCity.asm +++ b/maps/PewterCity.asm @@ -58,10 +58,10 @@ PewterCityMartSign: jumpstd martsign FruitTreeScript_0x18c03e: - fruittree $1c + fruittree FRUITTREE_PEWTER_CITY_1 FruitTreeScript_0x18c040: - fruittree $1d + fruittree FRUITTREE_PEWTER_CITY_2 UnknownText_0x18c042: text "Have you visited" diff --git a/maps/Route1.asm b/maps/Route1.asm index 14d65bf9c..cb29e65ed 100644 --- a/maps/Route1.asm +++ b/maps/Route1.asm @@ -31,7 +31,7 @@ MapRoute1Signpost0Script: jumptext UnknownText_0x1ac675 FruitTreeScript_0x1ac581: - fruittree $1a + fruittree FRUITTREE_ROUTE_1 SchoolboyDannySeenText: text "If trainers meet," diff --git a/maps/Route11.asm b/maps/Route11.asm index ccbfe1499..fde0d1544 100644 --- a/maps/Route11.asm +++ b/maps/Route11.asm @@ -53,7 +53,7 @@ MapRoute11Signpost0Script: jumptext UnknownText_0x68238 FruitTreeScript_0x68055: - fruittree $18 + fruittree FRUITTREE_ROUTE_11 MapRoute11SignpostItem1: dwb EVENT_ROUTE_11_HIDDEN_REVIVE, REVIVE diff --git a/maps/Route2.asm b/maps/Route2.asm index d9748f40b..b97a27845 100644 --- a/maps/Route2.asm +++ b/maps/Route2.asm @@ -57,7 +57,7 @@ ItemFragment_0x1ac304: db ELIXER, 1 FruitTreeScript_0x1ac306: - fruittree $19 + fruittree FRUITTREE_ROUTE_2 MapRoute2SignpostItem2: dwb EVENT_ROUTE_2_HIDDEN_MAX_ETHER, MAX_ETHER diff --git a/maps/Route26.asm b/maps/Route26.asm index f24ab10ac..c1e4d38c9 100644 --- a/maps/Route26.asm +++ b/maps/Route26.asm @@ -239,7 +239,7 @@ MapRoute26Signpost0Script: jumptext UnknownText_0x1a5364 FruitTreeScript_0x1a4ec2: - fruittree $e + fruittree FRUITTREE_ROUTE_26 ItemFragment_0x1a4ec4: db MAX_ELIXER, 1 diff --git a/maps/Route29.asm b/maps/Route29.asm index a0d50b8f2..d33e4050b 100644 --- a/maps/Route29.asm +++ b/maps/Route29.asm @@ -204,7 +204,7 @@ MapRoute29Signpost1Script: jumptext UnknownText_0x1a15b9 FruitTreeScript_0x1a1089: - fruittree $1 + fruittree FRUITTREE_ROUTE_29 ItemFragment_0x1a108b: db POTION, 1 diff --git a/maps/Route30.asm b/maps/Route30.asm index ebc3e9c54..0eab41100 100644 --- a/maps/Route30.asm +++ b/maps/Route30.asm @@ -229,10 +229,10 @@ ItemFragment_0x1a17f5: db ANTIDOTE, 1 FruitTreeScript_0x1a17f7: - fruittree $2 + fruittree FRUITTREE_ROUTE_30_1 FruitTreeScript_0x1a17f9: - fruittree $5 + fruittree FRUITTREE_ROUTE_30_2 MapRoute30SignpostItem4: dwb EVENT_ROUTE_30_HIDDEN_POTION, POTION diff --git a/maps/Route31.asm b/maps/Route31.asm index fc0bc87a4..aa32861ae 100644 --- a/maps/Route31.asm +++ b/maps/Route31.asm @@ -7,14 +7,14 @@ Route31_MapScriptHeader: ; callbacks - dbw 5, UnknownScript_0x1a543c + dbw 5, .CheckMomCall -UnknownScript_0x1a543c: +.CheckMomCall: checkevent EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST - iffalse UnknownScript_0x1a5443 + iffalse .DoMomCall return -UnknownScript_0x1a5443: +.DoMomCall: specialphonecall SPECIALCALL_WORRIED return @@ -26,31 +26,31 @@ Bug_catcherWade1Script: talkaftercancel loadfont checkflag ENGINE_WADE - iftrue UnknownScript_0x1a5493 + iftrue .WadeRematch checkflag ENGINE_WADE_HAS_ITEM - iftrue UnknownScript_0x1a5507 + iftrue .WadeItem checkcellnum PHONE_BUG_CATCHER_WADE - iftrue UnknownScript_0x1a5558 + iftrue .AcceptedNumberSTD checkevent EVENT_WADE_ASKED_FOR_PHONE_NUMBER - iftrue UnknownScript_0x1a547c + iftrue .AskAgain writetext UnknownText_0x1a5671 closetext setevent EVENT_WADE_ASKED_FOR_PHONE_NUMBER - scall UnknownScript_0x1a554c - jump UnknownScript_0x1a547f + scall .AskPhoneNumberSTD + jump .Continue -UnknownScript_0x1a547c: - scall UnknownScript_0x1a5550 -UnknownScript_0x1a547f: +.AskAgain: + scall .AskAgainSTD +.Continue: askforphonenumber PHONE_BUG_CATCHER_WADE - if_equal $1, UnknownScript_0x1a5560 - if_equal $2, UnknownScript_0x1a555c + if_equal $1, .PhoneFullSTD + if_equal $2, .DeclinedNumberSTD trainertotext BUG_CATCHER, WADE1, $0 - scall UnknownScript_0x1a5554 - jump UnknownScript_0x1a5558 + scall .RegisterNumberSTD + jump .AcceptedNumberSTD -UnknownScript_0x1a5493: - scall UnknownScript_0x1a5564 +.WadeRematch: + scall .RematchSTD winlosstext Bug_catcherWade1BeatenText, 0 copybytetovar wWadeFightCount if_equal 4, .Fight4 @@ -109,8 +109,8 @@ UnknownScript_0x1a5493: clearflag ENGINE_WADE end -UnknownScript_0x1a5507: - scall UnknownScript_0x1a5568 +.WadeItem: + scall .ItemSTD checkevent EVENT_WADE_HAS_BERRY iftrue .Berry checkevent EVENT_WADE_HAS_PSNCUREBERRY @@ -136,43 +136,43 @@ UnknownScript_0x1a5507: iffalse .PackFull .Done clearflag ENGINE_WADE_HAS_ITEM - jump UnknownScript_0x1a5558 + jump .AcceptedNumberSTD .PackFull - jump UnknownScript_0x1a556c + jump .PackFullSTD -UnknownScript_0x1a554c: +.AskPhoneNumberSTD: jumpstd asknumber1m end -UnknownScript_0x1a5550: +.AskAgainSTD: jumpstd asknumber2m end -UnknownScript_0x1a5554: +.RegisterNumberSTD: jumpstd registerednumberm end -UnknownScript_0x1a5558: +.AcceptedNumberSTD: jumpstd numberacceptedm end -UnknownScript_0x1a555c: +.DeclinedNumberSTD: jumpstd numberdeclinedm end -UnknownScript_0x1a5560: +.PhoneFullSTD: jumpstd phonefullm end -UnknownScript_0x1a5564: +.RematchSTD: jumpstd rematchm end -UnknownScript_0x1a5568: +.ItemSTD: jumpstd giftm end -UnknownScript_0x1a556c: +.PackFullSTD: jumpstd packfullm end @@ -180,64 +180,64 @@ FisherScript_0x1a5570: faceplayer loadfont checkevent EVENT_GOT_TM50_NIGHTMARE - iftrue UnknownScript_0x1a55af + iftrue .DescribeNightmare checkevent EVENT_GOT_KENYA - iftrue UnknownScript_0x1a5584 + iftrue .TryGiveKenya writetext UnknownText_0x1a56d9 closetext loadmovesprites end -UnknownScript_0x1a5584: +.TryGiveKenya: writetext UnknownText_0x1a5761 keeptextopen checkpokeitem ReceivedSpearowMailText - if_equal $0, UnknownScript_0x1a55b5 - if_equal $2, UnknownScript_0x1a55c1 - if_equal $3, UnknownScript_0x1a55bb - if_equal $4, UnknownScript_0x1a55c7 + if_equal $0, .WrongMail + if_equal $2, .Refused + if_equal $3, .NoMail + if_equal $4, .LastMon writetext UnknownText_0x1a5790 keeptextopen writetext UnknownText_0x1a57ba keeptextopen setevent EVENT_GAVE_KENYA verbosegiveitem TM_NIGHTMARE - iffalse UnknownScript_0x1a55b3 + iffalse .NoRoomForItems setevent EVENT_GOT_TM50_NIGHTMARE -UnknownScript_0x1a55af: +.DescribeNightmare: writetext UnknownText_0x1a5896 closetext -UnknownScript_0x1a55b3: +.NoRoomForItems: loadmovesprites end -UnknownScript_0x1a55b5: +.WrongMail: writetext UnknownText_0x1a5921 closetext loadmovesprites end -UnknownScript_0x1a55bb: +.NoMail: writetext UnknownText_0x1a5939 closetext loadmovesprites end -UnknownScript_0x1a55c1: +.Refused: writetext UnknownText_0x1a5972 closetext loadmovesprites end -UnknownScript_0x1a55c7: +.LastMon: writetext UnknownText_0x1a5991 closetext loadmovesprites end ReceivedSpearowMailText: - db "DARK CAVE leads", $4E - db "to another road@" + db "DARK CAVE leads" + next "to another road@" YoungsterScript_0x1a55ed: jumptextfaceplayer UnknownText_0x1a59d5 @@ -252,7 +252,7 @@ CooltrainerMScript_0x1a55f6: jumptextfaceplayer UnknownText_0x1a55ff FruitTreeScript_0x1a55f9: - fruittree $7 + fruittree FRUITTREE_ROUTE_31 ItemFragment_0x1a55fb: db POTION, 1 diff --git a/maps/Route33.asm b/maps/Route33.asm index aec3c72df..c56188c71 100644 --- a/maps/Route33.asm +++ b/maps/Route33.asm @@ -137,7 +137,7 @@ MapRoute33Signpost0Script: jumptext UnknownText_0x1ac279 FruitTreeScript_0x1ac0ea: - fruittree $6 + fruittree FRUITTREE_ROUTE_33 HikerAnthony2SeenText: text "I came through the" diff --git a/maps/Route35.asm b/maps/Route35.asm index 05ba5f863..c4175e7b6 100644 --- a/maps/Route35.asm +++ b/maps/Route35.asm @@ -261,7 +261,7 @@ ItemFragment_0x19ca7c: db TM_ROLLOUT, 1 FruitTreeScript_0x19ca7e: - fruittree $b + fruittree FRUITTREE_ROUTE_35 CamperIvanSeenText: text "I've been getting" diff --git a/maps/Route36.asm b/maps/Route36.asm index 50ceeba5f..2fe3e7b28 100644 --- a/maps/Route36.asm +++ b/maps/Route36.asm @@ -359,7 +359,7 @@ MapRoute36Signpost0Script: jumptext UnknownText_0x1949ee FruitTreeScript_0x194247: - fruittree $d + fruittree FRUITTREE_ROUTE_36 MovementData_0x194249: db $56 ; movement diff --git a/maps/Route37.asm b/maps/Route37.asm index 868aa5966..47a5d5bda 100644 --- a/maps/Route37.asm +++ b/maps/Route37.asm @@ -99,13 +99,13 @@ MapRoute37Signpost0Script: jumptext UnknownText_0x1a9197 FruitTreeScript_0x1a8e09: - fruittree $11 + fruittree FRUITTREE_ROUTE_37_1 FruitTreeScript_0x1a8e0b: - fruittree $12 + fruittree FRUITTREE_ROUTE_37_2 FruitTreeScript_0x1a8e0d: - fruittree $13 + fruittree FRUITTREE_ROUTE_37_3 MapRoute37SignpostItem1: dwb EVENT_ROUTE_37_HIDDEN_ETHER, ETHER diff --git a/maps/Route38.asm b/maps/Route38.asm index b7dda1d81..bf5bacf48 100644 --- a/maps/Route38.asm +++ b/maps/Route38.asm @@ -311,7 +311,7 @@ MapRoute38Signpost1Script: jumptext UnknownText_0x1a2324 FruitTreeScript_0x1a1f33: - fruittree $3 + fruittree FRUITTREE_ROUTE_38 Bird_keeperTobySeenText: text "Fly high into the" diff --git a/maps/Route39.asm b/maps/Route39.asm index 9da2e6587..515314981 100644 --- a/maps/Route39.asm +++ b/maps/Route39.asm @@ -165,7 +165,7 @@ MapRoute39Signpost0Script: jumptext UnknownText_0x1a6036 FruitTreeScript_0x1a5bf4: - fruittree $f + fruittree FRUITTREE_ROUTE_39 MapRoute39SignpostItem3: dwb EVENT_ROUTE_39_HIDDEN_NUGGET, NUGGET diff --git a/maps/Route42.asm b/maps/Route42.asm index 6f01af5c1..327c7b88d 100644 --- a/maps/Route42.asm +++ b/maps/Route42.asm @@ -194,13 +194,13 @@ ItemFragment_0x1a934b: db SUPER_POTION, 1 FruitTreeScript_0x1a934d: - fruittree $15 + fruittree FRUITTREE_ROUTE_42_1 FruitTreeScript_0x1a934f: - fruittree $16 + fruittree FRUITTREE_ROUTE_42_2 FruitTreeScript_0x1a9351: - fruittree $17 + fruittree FRUITTREE_ROUTE_42_3 MapRoute42SignpostItem4: dwb EVENT_ROUTE_42_HIDDEN_MAX_POTION, MAX_POTION diff --git a/maps/Route43.asm b/maps/Route43.asm index 2eee50867..24e3a90ea 100644 --- a/maps/Route43.asm +++ b/maps/Route43.asm @@ -312,7 +312,7 @@ MapRoute43Signpost2Script: jumptext UnknownText_0x19d6c9 FruitTreeScript_0x19d266: - fruittree $8 + fruittree FRUITTREE_ROUTE_43 ItemFragment_0x19d268: db MAX_ETHER, 1 diff --git a/maps/Route44.asm b/maps/Route44.asm index d6b661d81..0692d8c71 100644 --- a/maps/Route44.asm +++ b/maps/Route44.asm @@ -293,7 +293,7 @@ MapRoute44Signpost1Script: jumptext UnknownText_0x19dfcc FruitTreeScript_0x19da40: - fruittree $10 + fruittree FRUITTREE_ROUTE_44 ItemFragment_0x19da42: db MAX_REVIVE, 1 diff --git a/maps/Route45.asm b/maps/Route45.asm index 6f5131973..bab4302a5 100644 --- a/maps/Route45.asm +++ b/maps/Route45.asm @@ -282,7 +282,7 @@ MapRoute45Signpost0Script: jumptext UnknownText_0x19e8fe FruitTreeScript_0x19e294: - fruittree $c + fruittree FRUITTREE_ROUTE_45 ItemFragment_0x19e296: db NUGGET, 1 diff --git a/maps/Route46.asm b/maps/Route46.asm index 88d046d44..493bd5303 100644 --- a/maps/Route46.asm +++ b/maps/Route46.asm @@ -157,10 +157,10 @@ ItemFragment_0x1a978d: db X_SPEED, 1 FruitTreeScript_0x1a978f: - fruittree $4 + fruittree FRUITTREE_ROUTE_46_1 FruitTreeScript_0x1a9791: - fruittree $a + fruittree FRUITTREE_ROUTE_46_2 HikerBaileySeenText: text "Awright! I'll show" diff --git a/maps/Route8.asm b/maps/Route8.asm index 8dc7e76b0..e9d87f31b 100644 --- a/maps/Route8.asm +++ b/maps/Route8.asm @@ -67,7 +67,7 @@ MapRoute8Signpost0Script: jumptext UnknownText_0x6c2b7 FruitTreeScript_0x6c06c: - fruittree $1b + fruittree FRUITTREE_ROUTE_8 BikerDwayneSeenText: text "We're the KANTO" diff --git a/maps/VioletCity.asm b/maps/VioletCity.asm index a16813e7c..248e3e564 100644 --- a/maps/VioletCity.asm +++ b/maps/VioletCity.asm @@ -87,7 +87,7 @@ ItemFragment_0x1a8423: db RARE_CANDY, 1 FruitTreeScript_0x1a8425: - fruittree $9 + fruittree FRUITTREE_VIOLET_CITY MapVioletCitySignpostItem6: dwb EVENT_VIOLET_CITY_HIDDEN_HYPER_POTION, HYPER_POTION diff --git a/misc/battle_tower_5c.asm b/misc/battle_tower_5c.asm index 0cd84c0d9..f4f0e2a2b 100755 --- a/misc/battle_tower_5c.asm +++ b/misc/battle_tower_5c.asm @@ -323,99 +323,3 @@ endr BT_ChrisName: ; 170426 db "CHRIS@" ; 17042c - -Function17042c: ; 17042c - ld hl, BT_TrainerTextIndex + $be - ld a, 7 -.loop - push af - push hl - ld c, 18 -.loop2 - ld a, [hli] - ld b, a - ld a, [hli] - and a - jr z, .skip - cp $f - jr nc, .exit_inner_loop - push hl - ld hl, Unknown_170470 - dec a - ld e, a - ld d, 0 - add hl, de - ld a, [hl] - pop hl - cp b - jr c, .exit_inner_loop - jr z, .exit_inner_loop - jr .asm_170456 - -.skip - ld a, b - cp $fc - jr nc, .exit_inner_loop - -.asm_170456 - dec c - jr nz, .loop2 - jr .dont_copy - -.exit_inner_loop - pop de - push de - ld hl, Unknown_17047e - ld bc, BATTLETOWER_TRAINERDATALENGTH - call CopyBytes - -.dont_copy - pop hl - ld de, $00e0 - add hl, de - pop af - dec a - jr nz, .loop - ret -; 170470 - -Unknown_170470: - db $12, $24, $45, $45, $42, $42, $45, $42, $27, $27, $45, $27, $42, $24 - -Unknown_17047e: - db $03, $04, $05, $08 - db $03, $05, $0e, $06 - db $03, $02, $00, $00 - db $39, $07, $07, $04 - db $00, $05, $04, $07 - db $01, $05, $00, $00 - db $0f, $05, $14, $07 - db $05, $05, $11, $0c - db $0c, $06, $06, $04 - - -CopyBTTrainer_FromBT_OT_TowBT_OTTemp: ; 1704a2 -; copy the BattleTower-Trainer data that lies at 'BT_OTTrainer' to 'wBT_OTTemp' - ld a, [rSVBK] - push af - ld a, $3 ; BANK(BT_OTTrainer) - ld [rSVBK], a - - ld hl, BT_OTTrainer ; $d100 - ld de, wBT_OTTemp ; $c608 - ld bc, BATTLE_TOWER_STRUCT_LENGTH - call CopyBytes - - pop af - ld [rSVBK], a - - ld a, BANK(sSaveType) - call GetSRAMBank - ld a, $2 - ld [sSaveType], a - ld hl, sNrOfBeatenBattleTowerTrainers - inc [hl] - call CloseSRAM -SkipBattleTowerTrainer: ; 1704c9 - ret -; 1704ca diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm index 0f2fb7158..df4827808 100755 --- a/misc/mobile_5c.asm +++ b/misc/mobile_5c.asm @@ -90,6 +90,7 @@ Function1700c4: ; 1700c4 push af ld a, $3 ld [rSVBK], a + call Function17042c ld a, $5 call GetSRAMBank @@ -244,15 +245,113 @@ Function17020c: ; 17020c inc de and a ret z -.asm_170210 + +.loop add hl, bc dec a - jr nz, .asm_170210 + jr nz, .loop ret ; 170215 INCLUDE "misc/battle_tower_5c.asm" + +Function17042c: ; 17042c + ld hl, w3_d2be + ld a, 7 +.loop + push af + push hl + ld c, 18 +.loop2 + ld a, [hli] + ld b, a + ld a, [hli] + and a + jr z, .empty + cp $f + jr nc, .exit_inner_loop + push hl + ld hl, Unknown_170470 + dec a + ld e, a + ld d, 0 + add hl, de + ld a, [hl] + pop hl + cp b + jr c, .exit_inner_loop + jr z, .exit_inner_loop + jr .next_iteration + +.empty + ld a, b + cp $fc + jr nc, .exit_inner_loop + +.next_iteration + dec c + jr nz, .loop2 + jr .dont_copy + +.exit_inner_loop + pop de + push de + ld hl, Unknown_17047e + ld bc, BATTLETOWER_TRAINERDATALENGTH + call CopyBytes + +.dont_copy + pop hl + ld de, $00e0 + add hl, de + pop af + dec a + jr nz, .loop + ret +; 170470 + +Unknown_170470: + db $12, $24, $45, $45, $42, $42, $45, $42, $27, $27, $45, $27, $42, $24 + +Unknown_17047e: + db $03, $04, $05, $08 + db $03, $05, $0e, $06 + db $03, $02, $00, $00 + db $39, $07, $07, $04 + db $00, $05, $04, $07 + db $01, $05, $00, $00 + db $0f, $05, $14, $07 + db $05, $05, $11, $0c + db $0c, $06, $06, $04 + + +CopyBTTrainer_FromBT_OT_TowBT_OTTemp: ; 1704a2 +; copy the BattleTower-Trainer data that lies at 'BT_OTTrainer' to 'wBT_OTTemp' + ld a, [rSVBK] + push af + ld a, $3 ; BANK(BT_OTTrainer) + ld [rSVBK], a + + ld hl, BT_OTTrainer ; $d100 + ld de, wBT_OTTemp ; $c608 + ld bc, BATTLE_TOWER_STRUCT_LENGTH + call CopyBytes + + pop af + ld [rSVBK], a + + ld a, BANK(sSaveType) + call GetSRAMBank + ld a, $2 + ld [sSaveType], a + ld hl, sNrOfBeatenBattleTowerTrainers + inc [hl] + call CloseSRAM +SkipBattleTowerTrainer: ; 1704c9 + ret +; 1704ca + Function1704ca: ; 1704ca ld a, [$be46] cp $7 diff --git a/sram.asm b/sram.asm index 85af5e7aa..80be0cfe3 100644 --- a/sram.asm +++ b/sram.asm @@ -10,9 +10,10 @@ sScratch:: SECTION "SRAM Bank 0", SRAM [$a600], BANK [0] mailmsg: MACRO -\1Message:: ds $20 +\1Message:: ds MAIL_MSG_LENGTH +\1MessageEnd:: ds 1 \1Author:: ds NAME_LENGTH - ds 3 +\1AuthorID:: ds 2 \1MailType:: ds 1 endm ; a600 diff --git a/wram.asm b/wram.asm index aa95c87b2..076e5c458 100644 --- a/wram.asm +++ b/wram.asm @@ -2881,8 +2881,11 @@ w3_d100:: ; BattleTower OpponentTrainer-Data (length = 0xe0 = $a + $1 + 3*$3b + BT_OTTrainer:: battle_tower_struct BT_OT ; d1e0 ds $20 +; d200 BT_TrainerTextIndex:: - ds $600 + ds $be +w3_d2be:: + ds $542 wBTChoiceOfLvlGroup:: w3_d800:: ds $400 From 3f4044cd4628c156e975971ce0655d3d51917b87 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 18 Nov 2015 13:01:55 -0500 Subject: [PATCH 22/40] engine/compose_mail.asm; ldpixel --- constants/misc_constants.asm | 4 +- engine/compose_mail.asm | 498 ++++++++++++++++ engine/link.asm | 8 +- engine/mail.asm | 34 +- engine/namingscreen.asm | 8 +- engine/pokegear.asm | 4 +- engine/slot_machine.asm | 6 +- engine/sprites.asm | 2 +- engine/startmenu.asm | 2 +- event/celebi.asm | 2 +- gfx/{unknown/011ef4.2bpp => icon/mail2.2bpp} | Bin macros.asm | 10 + main.asm | 564 ++----------------- misc/battle_tower_47.asm | 12 +- misc/mobile_42.asm | 28 +- misc/mobile_45.asm | 4 +- misc/mobile_5c.asm | 6 +- wram.asm | 46 +- 18 files changed, 630 insertions(+), 608 deletions(-) create mode 100755 engine/compose_mail.asm rename gfx/{unknown/011ef4.2bpp => icon/mail2.2bpp} (100%) diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 741750e34..63d46c646 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -85,8 +85,8 @@ EXP_BAR_LENGTH_PX EQU EXP_BAR_LENGTH * 8 SCREEN_WIDTH EQU 20 SCREEN_HEIGHT EQU 18 -SCREEN_WIDTH_PX EQU 160 -SCREEN_HEIGHT_PX EQU 144 +SCREEN_WIDTH_PX EQU SCREEN_WIDTH * 8 +SCREEN_HEIGHT_PX EQU SCREEN_HEIGHT * 8 BG_MAP_WIDTH EQU 32 BG_MAP_HEIGHT EQU 32 diff --git a/engine/compose_mail.asm b/engine/compose_mail.asm new file mode 100755 index 000000000..35990431e --- /dev/null +++ b/engine/compose_mail.asm @@ -0,0 +1,498 @@ +ComposeMailMessage: ; 11e75 (mail?) + ld hl, wc6d0 + ld [hl], e + inc hl + ld [hl], d + ld a, [hMapAnims] + push af + xor a + ld [hMapAnims], a + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + call .InitBlankMail + call DelayFrame + +.loop + call .DoMailEntry + jr nc, .loop + + pop af + ld [hInMenu], a + pop af + ld [hMapAnims], a + ret + +.InitBlankMail: ; 11e9a (4:5e9a) + call ClearBGPalettes + call DisableLCD + call Function11c51 + ld de, VTiles0 tile $00 + ld hl, .MailIcon + ld bc, 8 tiles + ld a, BANK(.MailIcon) + call FarCopyBytes + xor a + ld hl, wc300 + ld [hli], a + ld [hl], a + + ; init mail icon + depixel 3, 2 + ld a, SPRITE_ANIM_INDEX_00 + call _InitSpriteAnimStruct + + ld hl, $2 + add hl, bc + ld [hl], $0 + call .InitCharset + ld a, $e3 + ld [rLCDC], a + call .initwc6d3 + ld b, SCGB_08 + call GetSGBLayout + call WaitBGMap + call WaitTop + ld a, %11100100 + call DmgToCgbBGPals + ld a, %11100100 + call Functioncf8 + call Function11be0 + ld hl, wc6d0 + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $10 + add hl, de + ld [hl], $4e + ret +; 11ef4 (4:5ef4) + +.MailIcon: ; 11ef4 +INCBIN "gfx/icon/mail2.2bpp" +; 11f74 + +.initwc6d3: ; 11f74 (4:5f74) + ld a, $21 + ld [wc6d3], a + ret +; 11f7a (4:5f7a) + +.Dummy: ; dummied out + db "メールを かいてね@" +; 11f84 + +.InitCharset: ; 11f84 (4:5f84) + call WaitTop + hlcoord 0, 0 + ld bc, 6 * SCREEN_WIDTH + ld a, $60 ; border + call ByteFill + hlcoord 0, 6 + ld bc, 12 * SCREEN_WIDTH + ld a, " " + call ByteFill + hlcoord 1, 1 + lb bc, 4, SCREEN_WIDTH - 2 + call ClearBox + ld de, MailEntry_Uppercase + +.PlaceMailCharset: ; 11fa9 (4:5fa9) + hlcoord 1, 7 + ld b, 6 +.next + ld c, SCREEN_WIDTH - 1 +.loop_ + ld a, [de] + ld [hli], a + inc de + dec c + jr nz, .loop_ + push de + ld de, SCREEN_WIDTH + 1 + add hl, de + pop de + dec b + jr nz, .next + ret + +.DoMailEntry: ; 11fc0 (4:5fc0) + call JoyTextDelay + ld a, [wJumptableIndex] + bit 7, a + jr nz, .exit_mail + call .DoJumptable + callba Function8cf62 + call .Update + call DelayFrame + and a + ret +.exit_mail + callab Function8cf53 + call ClearSprites + xor a + ld [hSCX], a + ld [hSCY], a + scf + ret + +.Update: ; 11feb (4:5feb) + xor a + ld [hBGMapMode], a + hlcoord 1, 1 + lb bc, 4, 18 + call ClearBox + ld hl, wc6d0 + ld e, [hl] + inc hl + ld d, [hl] + hlcoord 2, 2 + call PlaceString + ld a, $1 + ld [hBGMapMode], a + ret + +.DoJumptable: ; 12008 (4:6008) + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, .Jumptable +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +.Jumptable: ; 12017 (4:6017) + dw .init_blinking_cursor + dw .process_joypad + + +.init_blinking_cursor: ; 1201b (4:601b) + depixel 9, 2 + ld a, SPRITE_ANIM_INDEX_09 + call _InitSpriteAnimStruct + ld a, c + ld [wc6d5], a + ld a, b + ld [wc6d6], a + ld hl, $1 + add hl, bc + ld a, [hl] + ld hl, $e + add hl, bc + ld [hl], a + ld hl, wJumptableIndex + inc [hl] + ret + +.process_joypad: ; 1203a (4:603a) + ld hl, hJoyPressed ; $ffa7 + ld a, [hl] + and A_BUTTON + jr nz, .a + ld a, [hl] + and B_BUTTON + jr nz, .b + ld a, [hl] + and START + jr nz, .start + ld a, [hl] + and SELECT + jr nz, .select + ret + +.a + call Function12185 + cp $1 + jr z, .select + cp $2 + jr z, .b + cp $3 + jr z, .finished + call Function11c11 + call Function121ac + jr c, .start + ld hl, wc6d2 + ld a, [hl] + cp $10 + ret nz + inc [hl] + call Function11bd0 + ld [hl], $f2 + dec hl + ld [hl], $4e + ret + +.start + ld hl, wc6d5 + ld c, [hl] + inc hl + ld b, [hl] + ld hl, $c + add hl, bc + ld [hl], $9 + ld hl, $d + add hl, bc + ld [hl], $5 + ret + +.b + call Function11bbc + ld hl, wc6d2 + ld a, [hl] + cp $10 + ret nz + dec [hl] + call Function11bd0 + ld [hl], $f2 + inc hl + ld [hl], $4e + ret + +.finished + call Function11bf7 + ld hl, wJumptableIndex + set 7, [hl] + ret + +.select + ld hl, wcf64 + ld a, [hl] + xor $1 + ld [hl], a + jr nz, .switch_to_lowercase + ld de, MailEntry_Uppercase + call .PlaceMailCharset + ret +.switch_to_lowercase + ld de, MailEntry_Lowercase + call .PlaceMailCharset + ret + +Function120c1: ; 120c1 (4:60c1) + call Function1210c + ld hl, SpriteAnim1Sprite0d - SpriteAnim1 + add hl, bc + ld a, [hl] + ld e, a + swap e + ld hl, SpriteAnim1YOffset - SpriteAnim1 + add hl, bc + ld [hl], e + cp $5 + ld de, Unknown_120f8 + ld a, $0 + jr nz, .asm_120df + ld de, Unknown_12102 + ld a, $1 +.asm_120df + ld hl, SpriteAnim1Sprite0e - SpriteAnim1 + add hl, bc + add [hl] + ld hl, SpriteAnim1Sprite01 - SpriteAnim1 + add hl, bc + ld [hl], a + ld hl, SpriteAnim1Sprite0c - SpriteAnim1 + add hl, bc + ld l, [hl] + ld h, SpriteAnim1Index - SpriteAnim1 + add hl, de + ld a, [hl] + ld hl, SpriteAnim1XOffset - SpriteAnim1 + add hl, bc + ld [hl], a + ret +; 120f8 (4:60f8) + +Unknown_120f8: ; 120f8 + db $00, $10, $20, $30, $40, $50, $60, $70, $80, $90 +Unknown_12102: ; 12102 + db $00, $00, $00, $30, $30, $30, $60, $60, $60, $60 +; 1210c + +Function1210c: ; 1210c (4:610c) + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, .up + ld a, [hl] + and D_DOWN + jr nz, .down + ld a, [hl] + and D_LEFT + jr nz, .left + ld a, [hl] + and D_RIGHT + jr nz, .right + ret +.right + call Function1218b + and a + jr nz, .asm_12138 + ld hl, $c + add hl, bc + ld a, [hl] + cp $9 + jr nc, .asm_12135 + inc [hl] + ret +.asm_12135 + ld [hl], $0 + ret +.asm_12138 + cp $3 + jr nz, .asm_1213d + xor a +.asm_1213d + ld e, a + add a + add e + ld hl, $c + add hl, bc + ld [hl], a + ret +.left + call Function1218b + and a + jr nz, .asm_12159 + ld hl, $c + add hl, bc + ld a, [hl] + and a + jr z, .asm_12156 + dec [hl] + ret +.asm_12156 + ld [hl], $9 + ret +.asm_12159 + cp $1 + jr nz, .asm_1215f + ld a, $4 +.asm_1215f +rept 2 + dec a +endr + ld e, a + add a + add e + ld hl, $c + add hl, bc + ld [hl], a + ret +.down + ld hl, $d + add hl, bc + ld a, [hl] + cp $5 + jr nc, .asm_12175 + inc [hl] + ret +.asm_12175 + ld [hl], $0 + ret +.up + ld hl, $d + add hl, bc + ld a, [hl] + and a + jr z, .asm_12182 + dec [hl] + ret +.asm_12182 + ld [hl], $5 + ret + +Function12185: ; 12185 (4:6185) + ld hl, wc6d5 + ld c, [hl] + inc hl + ld b, [hl] + +Function1218b: ; 1218b (4:618b) + ld hl, $d + add hl, bc + ld a, [hl] + cp $5 + jr nz, .asm_121aa + ld hl, $c + add hl, bc + ld a, [hl] + cp $3 + jr c, .asm_121a4 + cp $6 + jr c, .asm_121a7 + ld a, $3 + ret +.asm_121a4 + ld a, $1 + ret +.asm_121a7 + ld a, $2 + ret +.asm_121aa + xor a + ret + +Function121ac: ; 121ac (4:61ac) + ld a, [wc6d7] + jp Function11b17 +; 121b2 (4:61b2) + +Function121b2: ; unreferenced + ld a, [wc6d2] + and a + ret z + cp $11 + jr nz, .asm_121c3 + push hl + ld hl, wc6d2 +rept 2 + dec [hl] +endr + jr .asm_121c8 + +.asm_121c3 + push hl + ld hl, wc6d2 + dec [hl] + +.asm_121c8 + call Function11bd0 + ld c, [hl] + pop hl +.asm_121cd + ld a, [hli] + cp $ff + jp z, Function11b27 + cp c + jr z, .asm_121d9 + inc hl + jr .asm_121cd + +.asm_121d9 + ld a, [hl] + jp Function11b23 +; 121dd + +MailEntry_Uppercase: ; 122dd + db "A B C D E F G H I J" + db "K L M N O P Q R S T" + db "U V W X Y Z , ? !" + db "1 2 3 4 5 6 7 8 9 0" + db " é ♂ ♀ ¥ … ×" + 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/link.asm b/engine/link.asm index 28b420543..afc4f2d2e 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -3080,7 +3080,7 @@ Function29611: ; 29611 ; 2961b Function2961b: ; 2961b - lb de, $54, $58 + depixel 10, 11, 4, 0 ld a, $e call _InitSpriteAnimStruct call Function29114 @@ -3090,7 +3090,7 @@ Function2961b: ; 2961b ; 2962c Function2962c: ; 2962c - lb de, $54, $58 + depixel 10, 11, 4, 0 ld a, $e call _InitSpriteAnimStruct ld hl, $b @@ -3106,7 +3106,7 @@ Function2962c: ; 2962c ; 29649 Function29649: ; 29649 - lb de, $54, $58 + depixel 10, 11, 4, 0 ld a, $f call _InitSpriteAnimStruct call Function29114 @@ -3120,7 +3120,7 @@ Function29649: ; 29649 Function29660: ; 29660 ld a, $e4 call Functioncf8 - lb de, $28, $58 + depixel 5, 11 ld a, $10 call _InitSpriteAnimStruct call Function29114 diff --git a/engine/mail.asm b/engine/mail.asm index 5748536dc..c0bc591b0 100755 --- a/engine/mail.asm +++ b/engine/mail.asm @@ -286,13 +286,13 @@ DeletePartyMonMail: ; 44765 (11:4765) ; 44781 (11:4781) -Function44781: ; 44781 +IsAnyMonHoldingMail: ; 44781 ld a, [PartyCount] and a - jr z, .asm_4479e + jr z, .no_mons ld e, a ld hl, PartyMon1Item -.asm_4478b +.loop ld d, [hl] push hl push de @@ -303,9 +303,9 @@ Function44781: ; 44781 ld bc, PARTYMON_STRUCT_LENGTH add hl, bc dec e - jr nz, .asm_4478b + jr nz, .loop -.asm_4479e +.no_mons and a ret ; 447a0 @@ -327,30 +327,30 @@ _KrisMailBoxMenu: ; 0x447a0 db "@" InitMail: ; 0x447b9 -; initialize wd0f2 and beyond with incrementing values, one per mail +; initialize wMailboxCount and beyond with incrementing values, one per mail ; set z if no mail ld a, BANK(sMailboxCount) call GetSRAMBank ld a, [sMailboxCount] call CloseSRAM - ld hl, wd0f2 + ld hl, wMailboxCount ld [hli], a and a jr z, .done ; if no mail, we're done - ; load values in memory with incrementing values starting at wd0f2 + ; load values in memory with incrementing values starting at wMailboxCount ld b, a - ld a, $1 + ld a, 1 .loop ld [hli], a inc a dec b jr nz, .loop .done - ld [hl], $ff ; terminate + ld [hl], -1 ; terminate - ld a, [wd0f2] + ld a, [wMailboxCount] and a ret ; 0x447da @@ -385,7 +385,7 @@ MailboxPC: ; 0x44806 xor a ld [OBPals + 8 * 6], a ld a, $1 - ld [wd0f1], a + ld [wCurMessageIndex], a .loop call InitMail ld hl, MenuData4494c @@ -394,7 +394,8 @@ MailboxPC: ; 0x44806 ld [hBGMapMode], a call InitScrollingMenu call UpdateSprites - ld a, [wd0f1] + + ld a, [wCurMessageIndex] ld [wMenuCursorBuffer], a ld a, [OBPals + 8 * 6] ld [wd0e4], a @@ -402,7 +403,8 @@ MailboxPC: ; 0x44806 ld a, [wd0e4] ld [OBPals + 8 * 6], a ld a, [MenuSelection2] - ld [wd0f1], a + ld [wCurMessageIndex], a + ld a, [wcf73] cp $2 jr z, .exit @@ -558,7 +560,7 @@ Function4484a: ; 0x4484a MenuData4494c: ; 0x4494c db %01000000 ; flags db 1, 8 ; start coords - db $a, $12 ; end coords + db 10, 18 ; end coords dw .MenuData2 db 1 ; default option @@ -566,7 +568,7 @@ MenuData4494c: ; 0x4494c db %00010000 ; flags db 4, 0 ; rows/columns? db 1 ; horizontal spacing? - dbw 0,wd0f2 ; text pointer + dbw 0, wMailboxCount ; text pointer dba Function447fb dbw 0,0 dbw 0,0 diff --git a/engine/namingscreen.asm b/engine/namingscreen.asm index 3b381a016..c62dc1a0f 100755 --- a/engine/namingscreen.asm +++ b/engine/namingscreen.asm @@ -173,7 +173,7 @@ Function117f5: ; 117f5 (4:57f5) ld hl, wc300 ld [hli], a ld [hl], a - lb de, $24, $20 + depixel 4, 4, 4, 0 ld a, SPRITE_ANIM_INDEX_0A call _InitSpriteAnimStruct ld hl, $1 @@ -230,7 +230,7 @@ Function11847: ; 11847 (4:5847) ld b, SPRITE_ANIM_INDEX_1E .asm_11873 ld a, b - lb de, $24, $20 + depixel 4, 4, 4, 0 call _InitSpriteAnimStruct ret @@ -400,10 +400,10 @@ Jumptable_11977: ; 11977 (4:5977) Function1197b: ; 1197b (4:597b) - lb de, $50, $18 + depixel 10, 3 call Function1189c jr nz, .asm_11985 - ld d, $40 + ld d, 8 * 8 .asm_11985 ld a, SPRITE_ANIM_INDEX_02 call _InitSpriteAnimStruct diff --git a/engine/pokegear.asm b/engine/pokegear.asm index 02684aaab..424669b20 100755 --- a/engine/pokegear.asm +++ b/engine/pokegear.asm @@ -149,7 +149,7 @@ INCBIN "gfx/misc/fast_ship.2bpp" ; 90d32 Function90d32: ; 90d32 (24:4d32) - lb de, $24, $10 + depixel 4, 2, 4, 0 ld a, SPRITE_ANIM_INDEX_0D call _InitSpriteAnimStruct ld hl, $3 @@ -762,7 +762,7 @@ Function910e8: ; 910e8 Function910f9: ; 910f9 (24:50f9) call Function90da8 - lb de, $24, $54 + depixel 4, 10, 4, 4 ld a, SPRITE_ANIM_INDEX_14 call _InitSpriteAnimStruct ld hl, $3 diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm index 8318942fe..6f53bb6b3 100755 --- a/engine/slot_machine.asm +++ b/engine/slot_machine.asm @@ -1037,7 +1037,7 @@ Function92d20: ; 92d20 call Function92fc0 push bc push af - lb de, $60, $68 + depixel 12, 13 ld a, SPRITE_ANIM_INDEX_06 call _InitSpriteAnimStruct ld hl, $e @@ -1096,7 +1096,7 @@ Function92d7e: ; 92d7e add hl, bc ld [hl], $0 push bc - lb de, $60, $00 + depixel 12, 0 ld a, SPRITE_ANIM_INDEX_07 call _InitSpriteAnimStruct pop bc @@ -2063,7 +2063,7 @@ Function932fc: ; 932fc (24:72fc) add hl, bc dec [hl] push bc - lb de, $60, $6c + depixel 12, 13, 0, 4 ld a, SPRITE_ANIM_INDEX_08 call _InitSpriteAnimStruct pop bc diff --git a/engine/sprites.asm b/engine/sprites.asm index e95894292..b8b4b2a47 100755 --- a/engine/sprites.asm +++ b/engine/sprites.asm @@ -615,7 +615,7 @@ endr dw .nine dw .ten dw .eleven - dw .twelve + dw .twelve ; blinking cursor dw .thirteen dw .fourteen dw .fifteen diff --git a/engine/startmenu.asm b/engine/startmenu.asm index ae6358014..94082ccad 100755 --- a/engine/startmenu.asm +++ b/engine/startmenu.asm @@ -1069,7 +1069,7 @@ StartMenuYesNo: ; 12cf5 Function12cfe: ; 12cfe (4:6cfe) ld de, wd002 - callba Function11e75 + callba ComposeMailMessage ld hl, PlayerName ld de, wd023 ld bc, NAME_LENGTH - 1 diff --git a/event/celebi.asm b/event/celebi.asm index cf930c2f8..46c78ed91 100755 --- a/event/celebi.asm +++ b/event/celebi.asm @@ -5,7 +5,7 @@ Special_CelebiShrineEvent: ; 4989a xor a ld [VramState], a call LoadCelebiGFX - lb de, $07, $50 + depixel 0, 10, 7, 0 ld a, SPRITE_ANIM_INDEX_2C call _InitSpriteAnimStruct ld hl, $3 diff --git a/gfx/unknown/011ef4.2bpp b/gfx/icon/mail2.2bpp similarity index 100% rename from gfx/unknown/011ef4.2bpp rename to gfx/icon/mail2.2bpp diff --git a/macros.asm b/macros.asm index 1d23392fa..5129e2960 100644 --- a/macros.asm +++ b/macros.asm @@ -211,3 +211,13 @@ endr ENDM palettes EQUS "* 8" + +ldpixel: MACRO +if _NARG == 5 + lb \1, \2 * 8 + \4, \3 * 8 + \5 +else + lb \1, \2 * 8, \3 * 8 +endc + endm + +depixel EQUS "ldpixel de," diff --git a/main.asm b/main.asm index eccf5b010..940c7e03d 100644 --- a/main.asm +++ b/main.asm @@ -9795,29 +9795,29 @@ InitNickname: ; e3de ; e3fd _BillsPC: ; e3fd - call Functione40a + call .CheckCanUsePC ret c - call Functione41c - call Functione443 - jp Functione43f + call .LogIn + call .UseBillsPC + jp .LogOut -Functione40a: ; e40a (3:640a) +.CheckCanUsePC: ; e40a (3:640a) ld a, [PartyCount] and a ret nz - ld hl, UnknownText_0xe417 + ld hl, .Text_GottaHavePokemon call MenuTextBoxBackup scf ret ; e417 (3:6417) -UnknownText_0xe417: ; 0xe417 +.Text_GottaHavePokemon: ; 0xe417 ; You gotta have #MON to call! text_jump UnknownText_0x1c1006 db "@" ; 0xe41c -Functione41c: ; e41c (3:641c) +.LogIn: ; e41c (3:641c) xor a ld [hBGMapMode], a call LoadStandardMenuDataHeader @@ -9826,7 +9826,7 @@ Functione41c: ; e41c (3:641c) ld a, [hl] push af set NO_TEXT_SCROLL, [hl] - ld hl, UnknownText_0xe43a + ld hl, .Text_What call PrintText pop af ld [Options], a @@ -9834,17 +9834,17 @@ Functione41c: ; e41c (3:641c) ret ; e43a (3:643a) -UnknownText_0xe43a: ; 0xe43a +.Text_What: ; 0xe43a ; What? text_jump UnknownText_0x1c1024 db "@" ; 0xe43f -Functione43f: ; e43f (3:643f) +.LogOut: ; e43f (3:643f) call ReturnToCallingMenu ret -Functione443: ; e443 (3:6443) +.UseBillsPC: ; e443 (3:6443) ld hl, .MenuDataHeader call LoadMenuDataHeader ld a, $1 @@ -9917,9 +9917,9 @@ BillsPC_SeeYa: ; e4cb BillsPC_MovePKMNMenu: ; e4cd call LoadStandardMenuDataHeader - callba Function44781 + callba IsAnyMonHoldingMail jr nc, .no_mail - ld hl, UnknownText_0xe4f9 + ld hl, .Text_MonHoldingMail call PrintText jr .quit @@ -9936,7 +9936,7 @@ BillsPC_MovePKMNMenu: ; e4cd ret ; e4f9 -UnknownText_0xe4f9: ; 0xe4f9 +.Text_MonHoldingMail: ; 0xe4f9 ; There is a #MON holding MAIL. Please remove the MAIL. text_jump UnknownText_0x1c102b db "@" @@ -9955,32 +9955,32 @@ BillsPC_DepositMenu: ; e4fe (3:64fe) Functione512: ; unused ld a, [PartyCount] and a - jr z, .asm_e51e + jr z, .no_pkmn cp 2 - jr c, .asm_e526 + jr c, .only_one_pkmn and a ret -.asm_e51e - ld hl, UnknownText_0xe52e +.no_pkmn + ld hl, .Text_NoPKMN call MenuTextBoxBackup scf ret -.asm_e526 - ld hl, UnknownText_0xe533 +.only_one_pkmn + ld hl, .Text_ItsYourLastPKMN call MenuTextBoxBackup scf ret ; e52e -UnknownText_0xe52e: ; 0xe52e +.Text_NoPKMN: ; 0xe52e ; You don't have a single #MON! text_jump UnknownText_0x1c1062 db "@" ; 0xe533 -UnknownText_0xe533: ; 0xe533 +.Text_ItsYourLastPKMN: ; 0xe533 ; You can't deposit your last #MON! text_jump UnknownText_0x1c1080 db "@" @@ -10407,506 +10407,10 @@ UnknownText_0xfa06: ; 0xfa06 SECTION "bank4", ROMX, BANK[$4] INCLUDE "engine/pack.asm" - INCLUDE "engine/time.asm" - INCLUDE "engine/tmhm.asm" - INCLUDE "engine/namingscreen.asm" - -Function11e75: ; 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 Function11e9a - call DelayFrame -.asm_11e8e - call Function11fc0 - jr nc, .asm_11e8e - pop af - ld [hInMenu], a - pop af - ld [hMapAnims], a - ret - -Function11e9a: ; 11e9a (4:5e9a) - call ClearBGPalettes - call DisableLCD - call Function11c51 - ld de, VTiles0 tile $00 - ld hl, GFX_11ef4 - ld bc, $80 - ld a, BANK(GFX_11ef4) - call FarCopyBytes - xor a - ld hl, wc300 - ld [hli], a - ld [hl], a - lb de, $18, $10 - ld a, SPRITE_ANIM_INDEX_00 - call _InitSpriteAnimStruct - ld hl, $2 - add hl, bc - ld [hl], $0 - call Function11f84 - ld a, $e3 - ld [rLCDC], a - call Function11f74 - ld b, SCGB_08 - call GetSGBLayout - call WaitBGMap - call WaitTop - ld a, %11100100 - call DmgToCgbBGPals - ld a, %11100100 - call Functioncf8 - call Function11be0 - ld hl, wc6d0 - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $10 - add hl, de - ld [hl], $4e - ret -; 11ef4 (4:5ef4) - -GFX_11ef4: ; 11ef4 -INCBIN "gfx/unknown/011ef4.2bpp" -; 11f74 - -Function11f74: ; 11f74 (4:5f74) - ld a, $21 - ld [wc6d3], a - ret -; 11f7a (4:5f7a) - -String_11f7a: ; dummied out - db "メールを かいてね@" -; 11f84 - -Function11f84: ; 11f84 (4:5f84) - call WaitTop - hlcoord 0, 0 - ld bc, 6 * SCREEN_WIDTH - ld a, $60 - call ByteFill - hlcoord 0, 6 - ld bc, 12 * SCREEN_WIDTH - ld a, " " - call ByteFill - hlcoord 1, 1 - lb bc, 4, SCREEN_WIDTH - 2 - call ClearBox - ld de, String_121dd - -Function11fa9: ; 11fa9 (4:5fa9) - hlcoord 1, 7 - ld b, 6 -.next - ld c, SCREEN_WIDTH - 1 -.loop - ld a, [de] - ld [hli], a - inc de - dec c - jr nz, .loop - push de - ld de, 21 - add hl, de - pop de - dec b - jr nz, .next - ret - -Function11fc0: ; 11fc0 (4:5fc0) - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_11fdb - call Function12008 - callba Function8cf62 - call Function11feb - call DelayFrame - and a - ret -.asm_11fdb - callab Function8cf53 - call ClearSprites - xor a - ld [hSCX], a - ld [hSCY], a - scf - ret - -Function11feb: ; 11feb (4:5feb) - xor a - ld [hBGMapMode], a - hlcoord 1, 1 - lb bc, 4, 18 - call ClearBox - ld hl, wc6d0 - ld e, [hl] - inc hl - ld d, [hl] - hlcoord 2, 2 - call PlaceString - ld a, $1 - ld [hBGMapMode], a - ret - -Function12008: ; 12008 (4:6008) - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_12017 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -Jumptable_12017: ; 12017 (4:6017) - dw Function1201b - dw Function1203a - - -Function1201b: ; 1201b (4:601b) - lb de, $48, $10 - ld a, SPRITE_ANIM_INDEX_09 - call _InitSpriteAnimStruct - ld a, c - ld [wc6d5], a - ld a, b - ld [wc6d6], a - ld hl, $1 - add hl, bc - ld a, [hl] - ld hl, $e - add hl, bc - ld [hl], a - ld hl, wJumptableIndex - inc [hl] - ret - -Function1203a: ; 1203a (4:603a) - ld hl, hJoyPressed ; $ffa7 - ld a, [hl] - and A_BUTTON - jr nz, .a - ld a, [hl] - and B_BUTTON - jr nz, .b - ld a, [hl] - and START - jr nz, .start - ld a, [hl] - and SELECT - jr nz, .select - ret - -.a - call Function12185 - cp $1 - jr z, .select - cp $2 - jr z, .b - cp $3 - jr z, .asm_120a1 - call Function11c11 - call Function121ac - jr c, .start - ld hl, wc6d2 - ld a, [hl] - cp $10 - ret nz - inc [hl] - call Function11bd0 - ld [hl], $f2 - dec hl - ld [hl], $4e - ret - -.start - ld hl, wc6d5 - ld c, [hl] - inc hl - ld b, [hl] - ld hl, $c - add hl, bc - ld [hl], $9 - ld hl, $d - add hl, bc - ld [hl], $5 - ret - -.b - call Function11bbc - ld hl, wc6d2 - ld a, [hl] - cp $10 - ret nz - dec [hl] - call Function11bd0 - ld [hl], $f2 - inc hl - ld [hl], $4e - ret - -.asm_120a1 - call Function11bf7 - ld hl, wJumptableIndex - set 7, [hl] - ret - -.select - ld hl, wcf64 - ld a, [hl] - xor $1 - ld [hl], a - jr nz, .asm_120ba - ld de, String_121dd - call Function11fa9 - ret -.asm_120ba - ld de, String_1224f - call Function11fa9 - ret - -Function120c1: ; 120c1 (4:60c1) - call Function1210c - ld hl, $d - add hl, bc - ld a, [hl] - ld e, a - swap e - ld hl, $7 - add hl, bc - ld [hl], e - cp $5 - ld de, Unknown_120f8 - ld a, $0 - jr nz, .asm_120df - ld de, Unknown_12102 - ld a, $1 -.asm_120df - ld hl, $e - add hl, bc - add [hl] - ld hl, $1 - add hl, bc - ld [hl], a - ld hl, $c - add hl, bc - ld l, [hl] - ld h, $0 - add hl, de - ld a, [hl] - ld hl, $6 - add hl, bc - ld [hl], a - ret -; 120f8 (4:60f8) - -Unknown_120f8: ; 120f8 - db $00, $10, $20, $30, $40, $50, $60, $70, $80, $90 -Unknown_12102: ; 12102 - db $00, $00, $00, $30, $30, $30, $60, $60, $60, $60 -; 1210c - -Function1210c: ; 1210c (4:610c) - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .up - ld a, [hl] - and D_DOWN - jr nz, .down - ld a, [hl] - and D_LEFT - jr nz, .left - ld a, [hl] - and D_RIGHT - jr nz, .right - ret -.right - call Function1218b - and a - jr nz, .asm_12138 - ld hl, $c - add hl, bc - ld a, [hl] - cp $9 - jr nc, .asm_12135 - inc [hl] - ret -.asm_12135 - ld [hl], $0 - ret -.asm_12138 - cp $3 - jr nz, .asm_1213d - xor a -.asm_1213d - ld e, a - add a - add e - ld hl, $c - add hl, bc - ld [hl], a - ret -.left - call Function1218b - and a - jr nz, .asm_12159 - ld hl, $c - add hl, bc - ld a, [hl] - and a - jr z, .asm_12156 - dec [hl] - ret -.asm_12156 - ld [hl], $9 - ret -.asm_12159 - cp $1 - jr nz, .asm_1215f - ld a, $4 -.asm_1215f -rept 2 - dec a -endr - ld e, a - add a - add e - ld hl, $c - add hl, bc - ld [hl], a - ret -.down - ld hl, $d - add hl, bc - ld a, [hl] - cp $5 - jr nc, .asm_12175 - inc [hl] - ret -.asm_12175 - ld [hl], $0 - ret -.up - ld hl, $d - add hl, bc - ld a, [hl] - and a - jr z, .asm_12182 - dec [hl] - ret -.asm_12182 - ld [hl], $5 - ret - -Function12185: ; 12185 (4:6185) - ld hl, wc6d5 - ld c, [hl] - inc hl - ld b, [hl] - -Function1218b: ; 1218b (4:618b) - ld hl, $d - add hl, bc - ld a, [hl] - cp $5 - jr nz, .asm_121aa - ld hl, $c - add hl, bc - ld a, [hl] - cp $3 - jr c, .asm_121a4 - cp $6 - jr c, .asm_121a7 - ld a, $3 - ret -.asm_121a4 - ld a, $1 - ret -.asm_121a7 - ld a, $2 - ret -.asm_121aa - xor a - ret - -Function121ac: ; 121ac (4:61ac) - ld a, [wc6d7] - jp Function11b17 -; 121b2 (4:61b2) - -Function121b2: ; unreferenced - ld a, [wc6d2] - and a - ret z - cp $11 - jr nz, .asm_121c3 - push hl - ld hl, wc6d2 -rept 2 - dec [hl] -endr - jr .asm_121c8 - -.asm_121c3 - push hl - ld hl, wc6d2 - dec [hl] - -.asm_121c8 - call Function11bd0 - ld c, [hl] - pop hl -.asm_121cd - ld a, [hli] - cp $ff - jp z, Function11b27 - cp c - jr z, .asm_121d9 - inc hl - jr .asm_121cd - -.asm_121d9 - ld a, [hl] - jp Function11b23 -; 121dd - -String_121dd: ; 122dd - db "A B C D E F G H I J" - db "K L M N O P Q R S T" - db "U V W X Y Z , ? !" - db "1 2 3 4 5 6 7 8 9 0" - db " é ♂ ♀ ¥ … ×" - db "lower DEL END " -; 1224f - -String_1224f: ; 1224f - db "a b c d e f g h i j" - db "k l m n o p q r s t" - db "u v w x y z . - /" - db "'d 'l 'm 'r 's 't 'v & ( )" - db "<``> <''> [ ] ' : ; " - db "UPPER DEL END " -; 122c1 +INCLUDE "engine/compose_mail.asm" Script_AbortBugContest: ; 0x122c1 checkflag ENGINE_BUG_CONTEST_TIMER @@ -30083,7 +29587,7 @@ Function8caed: ; 8caed xor a ld [VramState], a call Function8cb9b - lb de, $54, $50 + depixel 10, 10, 4, 0 ld a, SPRITE_ANIM_INDEX_0A call _InitSpriteAnimStruct ld hl, $3 @@ -30117,7 +29621,7 @@ Function8cb33: ; 8cb33 xor a ld [VramState], a call Function8cb9b - lb de, $fc, $50 + depixel 31, 10, 4, 0 ld a, SPRITE_ANIM_INDEX_0A call _InitSpriteAnimStruct ld hl, $3 @@ -32438,7 +31942,7 @@ Functione45e8: ; e45e8 ld [rSVBK], a callba Function8cf53 - lb de, $54, $58 + depixel 10, 11, 4, 0 ld a, SPRITE_ANIM_INDEX_03 call _InitSpriteAnimStruct ld hl, $7 @@ -33118,7 +32622,7 @@ IntroScene7: ; e4b3f (39:4b3f) ld [hWY], a call Functione5516 callba Function8cf53 - lb de, $6c, $d8 + depixel 13, 27, 4, 0 ld a, SPRITE_ANIM_INDEX_26 call _InitSpriteAnimStruct ld a, $f0 @@ -33206,7 +32710,7 @@ IntroScene10: ; e4c4f (39:4c4f) ret .pichu - lb de, $a9, $80 + depixel 21, 16, 1, 0 ld a, SPRITE_ANIM_INDEX_27 call _InitSpriteAnimStruct ld de, SFX_INTRO_PICHU @@ -33214,7 +32718,7 @@ IntroScene10: ; e4c4f (39:4c4f) ret .wooper - lb de, $b0, $30 + depixel 22, 6 ld a, SPRITE_ANIM_INDEX_28 call _InitSpriteAnimStruct ld de, SFX_INTRO_PICHU @@ -33392,7 +32896,7 @@ IntroScene13: ; e4d6d (39:4d6d) ld a, $90 ld [hWY], a callba Function8cf53 - lb de, $6c, $58 + depixel 13, 11, 4, 0 ld a, SPRITE_ANIM_INDEX_26 call _InitSpriteAnimStruct ld de, MUSIC_CRYSTAL_OPENING @@ -33503,10 +33007,10 @@ IntroScene15: ; e4e40 (39:4e40) ld [hWY], a callba Function8cf53 call Functione549e - lb de, $40, $28 + depixel 8, 5 ld a, SPRITE_ANIM_INDEX_2A call _InitSpriteAnimStruct - lb de, $60, $00 + depixel 12, 0 ld a, SPRITE_ANIM_INDEX_2B call _InitSpriteAnimStruct xor a @@ -33655,7 +33159,7 @@ IntroScene19: ; e4f7e (39:4f7e) ld [hli], a ld [hl], $7f call Functione549e - lb de, $60, $00 + depixel 12, 0 ld a, SPRITE_ANIM_INDEX_2B call _InitSpriteAnimStruct xor a diff --git a/misc/battle_tower_47.asm b/misc/battle_tower_47.asm index 014e79586..37620212a 100755 --- a/misc/battle_tower_47.asm +++ b/misc/battle_tower_47.asm @@ -494,38 +494,38 @@ Jumptable_11c2bb: ; 11c2bb (47:42bb) Function11c2e9: ; 11c2e9 (47:42e9) - lb de, $1a, $0d + depixel 3, 1, 2, 5 ld a, SPRITE_ANIM_INDEX_1D call _InitSpriteAnimStruct - lb de, $42, $0d + depixel 8, 1, 2, 5 ld a, SPRITE_ANIM_INDEX_1D call _InitSpriteAnimStruct ld hl, $c add hl, bc ld a, $1 ld [hl], a - lb de, $4a, $10 + depixel 9, 2, 2, 0 ld a, SPRITE_ANIM_INDEX_1D call _InitSpriteAnimStruct ld hl, $c add hl, bc ld a, $3 ld [hl], a - lb de, $50, $80 + depixel 10, 16 ld a, SPRITE_ANIM_INDEX_1D call _InitSpriteAnimStruct ld hl, $c add hl, bc ld a, $4 ld [hl], a - lb de, $50, $20 + depixel 10, 4 ld a, SPRITE_ANIM_INDEX_1D call _InitSpriteAnimStruct ld hl, $c add hl, bc ld a, $5 ld [hl], a - lb de, $50, $10 + depixel 10, 2 ld a, SPRITE_ANIM_INDEX_1D call _InitSpriteAnimStruct ld hl, $c diff --git a/misc/mobile_42.asm b/misc/mobile_42.asm index f4bed3f26..0253d4c1c 100644 --- a/misc/mobile_42.asm +++ b/misc/mobile_42.asm @@ -492,7 +492,7 @@ Function10830e: ; 10830e ld c, $50 call DelayFrames call Function108bec - lb de, $54, $58 + depixel 10, 11, 4, 0 ld a, SPRITE_ANIM_INDEX_20 call _InitSpriteAnimStruct ld de, SFX_BALL_POOF @@ -527,7 +527,7 @@ Function10839b: ; 10839b ld [hWX], a ld a, $90 ld [hWY], a - lb de, $54, $58 + depixel 10, 11, 4, 0 ld a, SPRITE_ANIM_INDEX_21 call _InitSpriteAnimStruct call Function108b45 @@ -627,7 +627,7 @@ Function10842c: ; 10842c ld c, $50 call DelayFrames call Function108c2b - lb de, $54, $58 + depixel 10, 11, 4, 0 ld a, SPRITE_ANIM_INDEX_20 call _InitSpriteAnimStruct ld de, SFX_BALL_POOF @@ -671,7 +671,7 @@ Function1084d7: ; 1084d7 ld [hWX], a ld a, $90 ld [hWY], a - lb de, $54, $58 + depixel 10, 11, 4, 0 ld a, SPRITE_ANIM_INDEX_21 call _InitSpriteAnimStruct call Function108b45 @@ -740,7 +740,7 @@ Function108589: ; 108589 ld [hWX], a ld a, $90 ld [hWY], a - lb de, $54, $58 + depixel 10, 11, 4, 0 ld a, SPRITE_ANIM_INDEX_21 call _InitSpriteAnimStruct call Function108b45 @@ -927,7 +927,7 @@ endr ld [hSCX], a cp $f8 jr nz, .asm_10878a - lb de, $54, $58 + depixel 10, 11, 4, 0 ld a, SPRITE_ANIM_INDEX_22 call _InitSpriteAnimStruct @@ -953,7 +953,7 @@ endr jr .asm_1087c4 .asm_1087a9 - lb de, $54, $58 + depixel 10, 11, 4, 0 ld a, SPRITE_ANIM_INDEX_22 call _InitSpriteAnimStruct xor a @@ -985,7 +985,7 @@ Function1087cf: ; 1087cf call Function1082f0 call Function108af4 call Function108b5a - lb de, $4a, $50 + depixel 9, 10, 2, 0 ld a, SPRITE_ANIM_INDEX_25 call _InitSpriteAnimStruct ld de, SFX_FORESIGHT @@ -994,7 +994,7 @@ Function1087cf: ; 1087cf call Function1082cc xor a ld [wcf64], a - lb de, $4a, $50 + depixel 9, 10, 2, 0 ld a, SPRITE_ANIM_INDEX_23 call _InitSpriteAnimStruct .asm_1087fc @@ -1021,7 +1021,7 @@ Function108811: ; 108811 call PlaySFX ld c, $3c call Function1082cc - lb de, $f2, $50 + depixel 30, 10, 2, 0 ld a, SPRITE_ANIM_INDEX_24 call _InitSpriteAnimStruct call Function1082b7 @@ -1044,7 +1044,7 @@ Function108838: ; 108838 Function10884c: ; 10884c ld c, 80 call DelayFrames - lb de, $f2, $50 + depixel 30, 10, 2, 0 ld a, SPRITE_ANIM_INDEX_24 call _InitSpriteAnimStruct call Function1082b7 @@ -1068,7 +1068,7 @@ Function108863: ; 108863 .asm_108879 callba Function8d03d - lb de, $4a, $50 + depixel 9, 10, 2, 0 ld a, SPRITE_ANIM_INDEX_25 call _InitSpriteAnimStruct ld de, SFX_GLASS_TING_2 @@ -1105,13 +1105,13 @@ endr jr .asm_1088e7 .asm_1088c5 - lb de, $54, $58 + depixel 10, 11, 4, 0 ld a, SPRITE_ANIM_INDEX_22 call _InitSpriteAnimStruct jr .asm_1088e7 .asm_1088cf - lb de, $54, $58 + depixel 10, 11, 4, 0 ld a, SPRITE_ANIM_INDEX_22 call _InitSpriteAnimStruct xor a diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm index 8855bdcfc..da4cadc6d 100644 --- a/misc/mobile_45.asm +++ b/misc/mobile_45.asm @@ -7757,14 +7757,14 @@ Jumptable_117728: ; 117728 (45:7728) Function117738: ; 117738 (45:7738) callba Function171ccd - lb de, $30, $18 + depixel 6, 3 ld a, $1d call _InitSpriteAnimStruct ld hl, $c add hl, bc ld a, $6 ld [hl], a - lb de, $48, $20 + depixel 9, 4 ld a, $1d call _InitSpriteAnimStruct ld hl, $c diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm index df4827808..8501aab7e 100755 --- a/misc/mobile_5c.asm +++ b/misc/mobile_5c.asm @@ -1859,21 +1859,21 @@ Function171b42: ; 171b42 (5c:5b42) jr Function171b42 Function171b4b: ; 171b4b (5c:5b4b) - lb de, $40, $10 + depixel 8, 2 ld a, SPRITE_ANIM_INDEX_1D call _InitSpriteAnimStruct ld hl, $c add hl, bc ld a, $8 ld [hl], a - lb de, $40, $98 + depixel 8, 19 ld a, SPRITE_ANIM_INDEX_1D call _InitSpriteAnimStruct ld hl, $c add hl, bc ld a, $9 ld [hl], a - lb de, $8a, $70 + depixel 17, 14, 2, 0 ld a, SPRITE_ANIM_INDEX_1D call _InitSpriteAnimStruct ld hl, $c diff --git a/wram.asm b/wram.asm index 076e5c458..e90af9843 100644 --- a/wram.asm +++ b/wram.asm @@ -387,18 +387,22 @@ wc313:: ds 1 wSpriteAnimationStructs:: sprite_anim_struct: MACRO -\1Index:: ds 1 - ds 1 -\1AnimSeqID:: ds 1 -\1TileID:: ds 1 -\1XCoord:: ds 1 -\1YCoord:: ds 1 -\1XOffset:: ds 1 -\1YOffset:: ds 1 -\1FrameTimer:: ds 1 - ds 1 -\1FrameIndex:: ds 1 - ds 5 +\1Index:: ds 1 ; 0 +\1Sprite01:: ds 1 ; 1 +\1AnimSeqID:: ds 1 ; 2 +\1TileID:: ds 1 ; 3 +\1XCoord:: ds 1 ; 4 +\1YCoord:: ds 1 ; 5 +\1XOffset:: ds 1 ; 6 +\1YOffset:: ds 1 ; 7 +\1FrameTimer:: ds 1 ; 8 +\1Sprite09:: ds 1 ; 9 +\1FrameIndex:: ds 1 ; a +\1Sprite0b:: ds 1 +\1Sprite0c:: ds 1 +\1Sprite0d:: ds 1 +\1Sprite0e:: ds 1 +\1Sprite0f:: ds 1 ENDM ; Field 0: Index @@ -1658,15 +1662,19 @@ VramState:: ; d0ed wBattleResult:: ds 1 wd0ef:: ds 1 -wd0f0:: -CurMart:: ; d0f0 - ; ds 16 - ds 1 -wd0f1:: ds 1 -wd0f2:: ds 14 +CurMart:: ds 16 + ds CurMart - @ +wd0f0:: ds 1 +wd0f1:: +wCurMessageIndex:: ds 1 +wd0f2:: +wMailboxCount:: ds 1 +wMailboxItems:: ds MAILBOX_CAPACITY +wMailboxEnd:: ds 1 ; d1fe + ds 2 CurMartEnd:: -wd100:: ds 1 +wd100:: ds 1 wd101:: ds 1 wd102:: ds 1 wd103:: ds 1 From 1ff37608b6b71f831608c1319d71eec3ac0583a9 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 18 Nov 2015 13:29:30 -0500 Subject: [PATCH 23/40] Update mail struct labels --- engine/compose_mail.asm | 2 +- engine/startmenu.asm | 18 +++++++++--------- sram.asm | 7 ------- wram.asm | 13 +++++++++++++ 4 files changed, 23 insertions(+), 17 deletions(-) diff --git a/engine/compose_mail.asm b/engine/compose_mail.asm index 35990431e..f02f99326 100755 --- a/engine/compose_mail.asm +++ b/engine/compose_mail.asm @@ -1,4 +1,4 @@ -ComposeMailMessage: ; 11e75 (mail?) +_ComposeMailMessage: ; 11e75 (mail?) ld hl, wc6d0 ld [hl], e inc hl diff --git a/engine/startmenu.asm b/engine/startmenu.asm index 94082ccad..41c79478f 100755 --- a/engine/startmenu.asm +++ b/engine/startmenu.asm @@ -937,10 +937,10 @@ GivePartyItem: ; 12c4c ld [hl], a ld d, a callba ItemIsMail - jr nc, .asm_12c5f - call Function12cfe + jr nc, .done + call ComposeMailMessage -.asm_12c5f +.done ret ; 12c60 @@ -1067,15 +1067,15 @@ StartMenuYesNo: ; 12cf5 ; 12cfe -Function12cfe: ; 12cfe (4:6cfe) - ld de, wd002 - callba ComposeMailMessage +ComposeMailMessage: ; 12cfe (4:6cfe) + ld de, wTempMailMessage + callba _ComposeMailMessage ld hl, PlayerName - ld de, wd023 + ld de, wTempMailAuthor ld bc, NAME_LENGTH - 1 call CopyBytes ld hl, PlayerID - ld bc, $2 + ld bc, 2 call CopyBytes ld a, [CurPartySpecies] ld [de], a @@ -1088,7 +1088,7 @@ Function12cfe: ; 12cfe (4:6cfe) call AddNTimes ld d, h ld e, l - ld hl, wd002 + ld hl, wTempMail ld bc, MAIL_STRUCT_LENGTH ld a, BANK(sPartyMail) call GetSRAMBank diff --git a/sram.asm b/sram.asm index 80be0cfe3..5437f63de 100644 --- a/sram.asm +++ b/sram.asm @@ -9,13 +9,6 @@ sScratch:: SECTION "SRAM Bank 0", SRAM [$a600], BANK [0] -mailmsg: MACRO -\1Message:: ds MAIL_MSG_LENGTH -\1MessageEnd:: ds 1 -\1Author:: ds NAME_LENGTH -\1AuthorID:: ds 2 -\1MailType:: ds 1 -endm ; a600 sPartyMail:: sPartyMon1Mail:: mailmsg sPartyMon1Mail diff --git a/wram.asm b/wram.asm index e90af9843..cc16e9527 100644 --- a/wram.asm +++ b/wram.asm @@ -145,6 +145,15 @@ battle_tower_struct: MACRO \1TrainerEnd:: endm +mailmsg: MACRO +\1Message:: ds MAIL_MSG_LENGTH +\1MessageEnd:: ds 1 +\1Author:: ds NAME_LENGTH +- 1 +\1AuthorID:: ds 2 +\1Species:: ds 1 +\1MailType:: ds 1 +endm + INCLUDE "vram.asm" SECTION "Stack", WRAM0 @@ -1462,6 +1471,10 @@ SECTION "WRAM 1", WRAMX, BANK [1] wd000:: ds 1 DefaultSpawnpoint:: wd001:: ds 1 + +wTempMail:: mailmsg wTempMail + ds wTempMail - @ + wd002:: PhoneScriptBank:: LuckyNumberDigit1Buffer:: From 91f749101724a17398363745d8ac95cd4feeb1c1 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 18 Nov 2015 18:35:44 -0500 Subject: [PATCH 24/40] items/item_effects.asm; engine/evolution.asm --- battle/core.asm | 2 +- engine/breeding/egg.asm | 2 +- engine/evolve.asm | 682 ++++++++++++++++++++++++++++++++++++ engine/link.asm | 2 +- engine/party_menu.asm | 52 +-- engine/pokegear.asm | 5 +- engine/predef.asm | 4 +- engine/specials.asm | 2 +- engine/startmenu.asm | 97 +++--- engine/town_map.asm | 2 +- home/menu.asm | 2 +- home/text.asm | 2 +- items/item_effects.asm | 576 +++++++++++++++---------------- main.asm | 747 ++-------------------------------------- misc/mobile_40.asm | 4 +- misc/mobile_46.asm | 2 +- misc/mobile_5f.asm | 12 +- wram.asm | 1 + 18 files changed, 1096 insertions(+), 1100 deletions(-) create mode 100755 engine/evolve.asm diff --git a/battle/core.asm b/battle/core.asm index d3393b4ff..e800c3fa1 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -8745,7 +8745,7 @@ Function3f6a5: ; 3f6a5 call CheckPayDay xor a ld [wd1e9], a - predef Function421e6 + predef EvolveAfterBattle callba Function2ed44 ret ; 3f6d0 diff --git a/engine/breeding/egg.asm b/engine/breeding/egg.asm index f007fde6a..ea365d8b5 100755 --- a/engine/breeding/egg.asm +++ b/engine/breeding/egg.asm @@ -219,7 +219,7 @@ Function16f7a: ; 16f7a (5:6f7a) push de - callba Function4dbb8 + callba SetEggMonCaughtData callba MobileFn_10608d ld a, [CurPartyMon] ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) diff --git a/engine/evolve.asm b/engine/evolve.asm new file mode 100755 index 000000000..940b033b1 --- /dev/null +++ b/engine/evolve.asm @@ -0,0 +1,682 @@ +EvolvePokemon: ; 421d8 + ld hl, EvolvableFlags + xor a + ld [hl], a + ld a, [CurPartyMon] + ld c, a + ld b, SET_FLAG + call EvoFlagAction + +EvolveAfterBattle: ; 421e6 + xor a + ld [wd268], a + dec a + ld [CurPartyMon], a + push hl + push bc + push de + ld hl, PartyCount + + push hl + +CheckForEvolvablePokemon: ; 421f5 + ld hl, CurPartyMon + inc [hl] + + pop hl + + inc hl + ld a, [hl] + cp $ff + jp z, Evolution_ReturnToMap + + ld [Buffer1], a + + push hl + ld a, [CurPartyMon] + ld c, a + ld hl, EvolvableFlags + ld b, CHECK_FLAG + call EvoFlagAction + ld a, c + and a + jp z, CheckForEvolvablePokemon + + ld a, [Buffer1] + dec a + ld b, 0 + ld c, a + ld hl, EvosAttacksPointers +rept 2 + add hl, bc +endr + ld a, [hli] + ld h, [hl] + ld l, a + + push hl + xor a + ld [MonType], a + predef CopyPkmnToTempMon + pop hl + +.loop + ld a, [hli] + and a + jr z, CheckForEvolvablePokemon + + ld b, a + + cp EVOLVE_TRADE + jr z, .trade + + ld a, [wLinkMode] + and a + jp nz, .dont_evolve_2 + + ld a, b + cp EVOLVE_ITEM + jp z, .item + + ld a, [wd1e9] + and a + jp nz, .dont_evolve_2 + + ld a, b + cp EVOLVE_LEVEL + jp z, .level + + cp EVOLVE_HAPPINESS + jr z, .happiness + + +; EVOLVE_STAT + ld a, [TempMonLevel] + cp [hl] + jp c, .dont_evolve_1 + + call IsMonHoldingEverstone + jp z, .dont_evolve_1 + + push hl + ld de, TempMonAttack + ld hl, TempMonDefense + ld c, 2 + call StringCmp + ld a, ATK_EQ_DEF + jr z, .got_tyrogue_evo + ld a, ATK_LT_DEF + jr c, .got_tyrogue_evo + ld a, ATK_GT_DEF +.got_tyrogue_evo + pop hl + + inc hl + cp [hl] + jp nz, .dont_evolve_2 + + inc hl + jr .proceed + + +.happiness + ld a, [TempMonHappiness] + cp 220 + jp c, .dont_evolve_2 + + call IsMonHoldingEverstone + jp z, .dont_evolve_2 + + ld a, [hli] + cp TR_ANYTIME + jr z, .proceed + cp TR_MORNDAY + jr z, .happiness_daylight + +; TR_NITE + ld a, [TimeOfDay] + cp NITE + jp nz, .dont_evolve_3 + jr .proceed + +.happiness_daylight + ld a, [TimeOfDay] + cp NITE + jp z, .dont_evolve_3 + jr .proceed + + +.trade + ld a, [wLinkMode] + and a + jp z, .dont_evolve_2 + + call IsMonHoldingEverstone + jp z, .dont_evolve_2 + + ld a, [hli] + ld b, a + inc a + jr z, .proceed + + ld a, [wLinkMode] + cp LINK_TIMECAPSULE + jp z, .dont_evolve_3 + + ld a, [TempMonItem] + cp b + jp nz, .dont_evolve_3 + + xor a + ld [TempMonItem], a + jr .proceed + + +.item + ld a, [hli] + ld b, a + ld a, [CurItem] + cp b + jp nz, .dont_evolve_3 + + ld a, [wd1e9] + and a + jp z, .dont_evolve_3 + ld a, [wLinkMode] + and a + jp nz, .dont_evolve_3 + jr .proceed + + +.level + ld a, [hli] + ld b, a + ld a, [TempMonLevel] + cp b + jp c, .dont_evolve_3 + call IsMonHoldingEverstone + jp z, .dont_evolve_3 + +.proceed + ld a, [TempMonLevel] + ld [CurPartyLevel], a + ld a, $1 + ld [wd268], a + + push hl + + ld a, [hl] + ld [Buffer2], a + ld a, [CurPartyMon] + ld hl, PartyMonNicknames + call GetNick + call CopyName1 + ld hl, Text_WhatEvolving + call PrintText + + ld c, 50 + call DelayFrames + + xor a + ld [hBGMapMode], a + hlcoord 0, 0 + lb bc, 12, 20 + call ClearBox + + ld a, $1 + ld [hBGMapMode], a + call ClearSprites + + callba EvolutionAnimation + + push af + call ClearSprites + pop af + jp c, CancelEvolution + + ld hl, Text_CongratulationsYourPokemon + call PrintText + + pop hl + + ld a, [hl] + ld [CurSpecies], a + ld [TempMonSpecies], a + ld [Buffer2], a + ld [wd265], a + call GetPokemonName + + push hl + ld hl, Text_EvolvedIntoPKMN + call PrintTextBoxText + callba MobileFn_106094 + + ld de, MUSIC_NONE + call PlayMusic + ld de, SFX_CAUGHT_MON + call PlaySFX + call WaitSFX + + ld c, 40 + call DelayFrames + + call ClearTileMap + call UpdateSpeciesNameIfNotNicknamed + call GetBaseData + + ld hl, TempMonExp + 2 + ld de, TempMonMaxHP + ld b, $1 + predef CalcPkmnStats + + ld a, [CurPartyMon] + ld hl, PartyMons + ld bc, PARTYMON_STRUCT_LENGTH + call AddNTimes + ld e, l + ld d, h + ld bc, MON_MAXHP + add hl, bc + ld a, [hli] + ld b, a + ld c, [hl] + ld hl, TempMonMaxHP + 1 + ld a, [hld] + sub c + ld c, a + ld a, [hl] + sbc b + ld b, a + ld hl, TempMonHP + 1 + ld a, [hl] + add c + ld [hld], a + ld a, [hl] + adc b + ld [hl], a + + ld hl, TempMonSpecies + ld bc, PARTYMON_STRUCT_LENGTH + call CopyBytes + + ld a, [CurSpecies] + ld [wd265], a + xor a + ld [MonType], a + call LearnLevelMoves + ld a, [wd265] + dec a + call SetSeenAndCaughtMon + + ld a, [wd265] + cp UNOWN + jr nz, .skip_unown + + ld hl, TempMonDVs + predef GetUnownLetter + callab UpdateUnownDex + +.skip_unown + pop de + pop hl + ld a, [TempMonSpecies] + ld [hl], a + push hl + ld l, e + ld h, d + jp CheckForEvolvablePokemon +; 423f8 + +.dont_evolve_1 + inc hl +.dont_evolve_2 + inc hl +.dont_evolve_3 + inc hl + jp .loop +; 423fe + +; dummy pop + pop hl + +Evolution_ReturnToMap: ; 423ff + pop de + pop bc + pop hl + ld a, [wLinkMode] + and a + ret nz + ld a, [wBattleMode] + and a + ret nz + ld a, [wd268] + and a + call nz, RestartMapMusic + ret +; 42414 + +UpdateSpeciesNameIfNotNicknamed: ; 42414 + ld a, [CurSpecies] + push af + ld a, [BaseDexNo] + ld [wd265], a + call GetPokemonName + pop af + ld [CurSpecies], a + ld hl, StringBuffer1 + ld de, StringBuffer2 +.loop + ld a, [de] + inc de + cp [hl] + inc hl + ret nz + cp "@" + jr nz, .loop + + ld a, [CurPartyMon] + ld bc, PKMN_NAME_LENGTH + ld hl, PartyMonNicknames + call AddNTimes + push hl + ld a, [CurSpecies] + ld [wd265], a + call GetPokemonName + ld hl, StringBuffer1 + pop de + ld bc, PKMN_NAME_LENGTH + jp CopyBytes +; 42454 + +CancelEvolution: ; 42454 + ld hl, Text_StoppedEvolving + call PrintText + call ClearTileMap + pop hl + jp CheckForEvolvablePokemon +; 42461 + +IsMonHoldingEverstone: ; 42461 + push hl + ld a, [CurPartyMon] + ld hl, PartyMon1Item + ld bc, PARTYMON_STRUCT_LENGTH + call AddNTimes + ld a, [hl] + cp EVERSTONE + pop hl + ret +; 42473 + +Text_CongratulationsYourPokemon: ; 0x42473 + ; Congratulations! Your @ @ + text_jump UnknownText_0x1c4b92 + db "@" +; 0x42478 + +Text_EvolvedIntoPKMN: ; 0x42478 + ; evolved into @ ! + text_jump UnknownText_0x1c4baf + db "@" +; 0x4247d + +Text_StoppedEvolving: ; 0x4247d + ; Huh? @ stopped evolving! + text_jump UnknownText_0x1c4bc5 + db "@" +; 0x42482 + +Text_WhatEvolving: ; 0x42482 + ; What? @ is evolving! + text_jump UnknownText_0x1c4be3 + db "@" +; 0x42487 + + +LearnLevelMoves: ; 42487 + ld a, [wd265] + ld [CurPartySpecies], a + dec a + ld b, 0 + ld c, a + ld hl, EvosAttacksPointers +rept 2 + add hl, bc +endr + ld a, [hli] + ld h, [hl] + ld l, a + +.skip_evos + ld a, [hli] + and a + jr nz, .skip_evos + +.find_move + ld a, [hli] + and a + jr z, .done + + ld b, a + ld a, [CurPartyLevel] + cp b + ld a, [hli] + jr nz, .find_move + + push hl + ld d, a + ld hl, PartyMon1Moves + ld a, [CurPartyMon] + ld bc, PARTYMON_STRUCT_LENGTH + call AddNTimes + + ld b, NUM_MOVES +.check_move + ld a, [hli] + cp d + jr z, .has_move + dec b + jr nz, .check_move + jr .learn +.has_move + + pop hl + jr .find_move + +.learn + ld a, d + ld [wd262], a + ld [wd265], a + call GetMoveName + call CopyName1 + predef LearnMove + pop hl + jr .find_move + +.done + ld a, [CurPartySpecies] + ld [wd265], a + ret +; 424e1 + + +FillMoves: ; 424e1 +; Fill in moves at de for CurPartySpecies at CurPartyLevel + + push hl + push de + push bc + ld hl, EvosAttacksPointers + ld b, 0 + ld a, [CurPartySpecies] + dec a + add a + rl b + ld c, a + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a +.GoToAttacks + ld a, [hli] + and a + jr nz, .GoToAttacks + jr .GetLevel + +.NextMove + pop de +.GetMove + inc hl +.GetLevel + ld a, [hli] + and a + jp z, .done + ld b, a + ld a, [CurPartyLevel] + cp b + jp c, .done + ld a, [Buffer1] + and a + jr z, .CheckMove + ld a, [wd002] + cp b + jr nc, .GetMove + +.CheckMove + push de + ld c, NUM_MOVES +.CheckRepeat + ld a, [de] + inc de + cp [hl] + jr z, .NextMove + dec c + jr nz, .CheckRepeat + pop de + push de + ld c, NUM_MOVES +.CheckSlot + ld a, [de] + and a + jr z, .LearnMove + inc de + dec c + jr nz, .CheckSlot + pop de + push de + push hl + ld h, d + ld l, e + call ShiftMoves + ld a, [Buffer1] + and a + jr z, .ShiftedMove + push de + ld bc, PartyMon1PP - (PartyMon1Moves + NUM_MOVES - 1) + add hl, bc + ld d, h + ld e, l + call ShiftMoves + pop de + +.ShiftedMove + pop hl + +.LearnMove + ld a, [hl] + ld [de], a + ld a, [Buffer1] + and a + jr z, .NextMove + push hl + ld a, [hl] + ld hl, MON_PP - MON_MOVES + add hl, de + push hl + dec a + ld hl, Moves + MOVE_PP + ld bc, MOVE_LENGTH + call AddNTimes + ld a, BANK(Moves) + call GetFarByte + pop hl + ld [hl], a + pop hl + jr .NextMove + +.done + pop bc + pop de + pop hl + ret +; 4256e + +ShiftMoves: ; 4256e + ld c, NUM_MOVES - 1 +.loop + inc de + ld a, [de] + ld [hli], a + dec c + jr nz, .loop + ret +; 42577 + + +EvoFlagAction: ; 42577 + push de + ld d, $0 + predef FlagPredef + pop de + ret +; 42581 + +GetPreEvolution: ; 42581 +; Find the first mon to evolve into CurPartySpecies. + +; Return carry and the new species in CurPartySpecies +; if a pre-evolution is found. + + ld c, 0 +.loop ; For each Pokemon... + ld hl, EvosAttacksPointers + ld b, 0 +rept 2 + add hl, bc +endr + ld a, [hli] + ld h, [hl] + ld l, a +.loop2 ; For each evolution... + ld a, [hli] + and a + jr z, .no_evolve ; If we jump, this Pokemon does not evolve into CurPartySpecies. + cp EVOLVE_STAT ; This evolution type has the extra parameter of stat comparison. + jr nz, .not_tyrogue + inc hl + +.not_tyrogue + inc hl + ld a, [CurPartySpecies] + cp [hl] + jr z, .found_preevo + inc hl + ld a, [hl] + and a + jr nz, .loop2 + +.no_evolve + inc c + ld a, c + cp NUM_POKEMON + jr c, .loop + and a + ret + +.found_preevo + inc c + ld a, c + ld [CurPartySpecies], a + scf + ret +; 425b1 diff --git a/engine/link.asm b/engine/link.asm index afc4f2d2e..afdbd218a 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -1920,7 +1920,7 @@ Function28b87: ; 28b87 ld a, [PartyCount] dec a ld [CurPartyMon], a - callab Function421d8 + callab EvolvePokemon call ClearScreen call Function28ef8 call Function28eff diff --git a/engine/party_menu.asm b/engine/party_menu.asm index 4d50ee8e4..6b50ca620 100644 --- a/engine/party_menu.asm +++ b/engine/party_menu.asm @@ -839,92 +839,92 @@ YouHaveNoPKMNString: ; 0x50556 db "You have no !@" -Function50566: ; 50566 +PrintPartyMenuActionText: ; 50566 ld a, [CurPartyMon] ld hl, PartyMonNicknames call GetNick ld a, [PartyMenuActionText] and $f - ld hl, Unknown_5057b - call Function505c1 + ld hl, .MenuActionTexts + call .PrintText ret ; 5057b -Unknown_5057b: ; 5057b - dw UnknownText_0x50594 - dw UnknownText_0x5059e - dw UnknownText_0x505a3 - dw UnknownText_0x505a8 - dw UnknownText_0x50599 - dw UnknownText_0x5058f - dw UnknownText_0x505ad - dw UnknownText_0x505b2 - dw UnknownText_0x505b7 - dw UnknownText_0x505bc +.MenuActionTexts: ; 5057b + dw .Text_CuredOfPoison + dw .Text_BurnWasHealed + dw .Text_Defrosted + dw .Text_WokeUp + dw .Text_RidOfParalysis + dw .Text_RecoveredSomeHP + dw .Text_HealthReturned + dw .Text_Revitalized + dw .Text_GrewToLevel + dw .Text_CameToItsSenses ; 5058f -UnknownText_0x5058f: ; 0x5058f +.Text_RecoveredSomeHP: ; 0x5058f ; recovered @ HP! text_jump UnknownText_0x1bc0a2 db "@" ; 0x50594 -UnknownText_0x50594: ; 0x50594 +.Text_CuredOfPoison: ; 0x50594 ; 's cured of poison. text_jump UnknownText_0x1bc0bb db "@" ; 0x50599 -UnknownText_0x50599: ; 0x50599 +.Text_RidOfParalysis: ; 0x50599 ; 's rid of paralysis. text_jump UnknownText_0x1bc0d2 db "@" ; 0x5059e -UnknownText_0x5059e: ; 0x5059e +.Text_BurnWasHealed: ; 0x5059e ; 's burn was healed. text_jump UnknownText_0x1bc0ea db "@" ; 0x505a3 -UnknownText_0x505a3: ; 0x505a3 +.Text_Defrosted: ; 0x505a3 ; was defrosted. text_jump UnknownText_0x1bc101 db "@" ; 0x505a8 -UnknownText_0x505a8: ; 0x505a8 +.Text_WokeUp: ; 0x505a8 ; woke up. text_jump UnknownText_0x1bc115 db "@" ; 0x505ad -UnknownText_0x505ad: ; 0x505ad +.Text_HealthReturned: ; 0x505ad ; 's health returned. text_jump UnknownText_0x1bc123 db "@" ; 0x505b2 -UnknownText_0x505b2: ; 0x505b2 +.Text_Revitalized: ; 0x505b2 ; is revitalized. text_jump UnknownText_0x1bc13a db "@" ; 0x505b7 -UnknownText_0x505b7: ; 0x505b7 +.Text_GrewToLevel: ; 0x505b7 ; grew to level @ !@ @ text_jump UnknownText_0x1bc14f db "@" ; 0x505bc -UnknownText_0x505bc: ; 0x505bc +.Text_CameToItsSenses: ; 0x505bc ; came to its senses. text_jump UnknownText_0x1bc16e db "@" ; 0x505c1 -Function505c1: ; 505c1 +.PrintText: ; 505c1 ld e, a ld d, 0 rept 2 @@ -935,7 +935,7 @@ endr ld l, a ld a, [Options] push af - set 4, a + set NO_TEXT_SCROLL, a ld [Options], a call PrintText pop af diff --git a/engine/pokegear.asm b/engine/pokegear.asm index 424669b20..3954f5384 100755 --- a/engine/pokegear.asm +++ b/engine/pokegear.asm @@ -330,7 +330,7 @@ Function90e3f: ; 90e3f .kanto ld e, 1 .ok - callba Function91ae1 + callba PokegearMap ld a, $7 ld bc, $12 hlcoord 1, 2 @@ -1919,7 +1919,8 @@ endr .kanto jp LoadStation_PlacesAndPeople ; 91ae1 -Function91ae1: ; 91ae1 + +PokegearMap: ; 91ae1 ld a, e and a jr nz, .kanto diff --git a/engine/predef.asm b/engine/predef.asm index cb72f9202..213cfc352 100644 --- a/engine/predef.asm +++ b/engine/predef.asm @@ -58,7 +58,7 @@ PredefPointers:: ; 856b add_predef GetMonFrontpic add_predef LearnLevelMoves add_predef FillMoves - add_predef Function421e6 + add_predef EvolveAfterBattle add_predef Function28f63 add_predef Function28f24 add_predef CopyPkmnToTempMon @@ -97,7 +97,7 @@ PredefPointers:: ; 856b add_predef DecompressPredef ; $40 add_predef CheckTypeMatchup add_predef ConvertMon_1to2 - add_predef Functionfb877 + add_predef NewPokedexEntry add_predef AnimateMon_Slow_Normal add_predef PlaceStatusString add_predef LoadMonAnimation diff --git a/engine/specials.asm b/engine/specials.asm index 68ad47aa4..29c4da492 100644 --- a/engine/specials.asm +++ b/engine/specials.asm @@ -215,7 +215,7 @@ Special_GameCornerPrizeMonCheckDex: ; c230 call FadeToMenu ld a, [ScriptVar] ld [wd265], a - callba Functionfb877 + callba NewPokedexEntry call ExitAllMenus ret ; c252 diff --git a/engine/startmenu.asm b/engine/startmenu.asm index 41c79478f..290e6d6ea 100755 --- a/engine/startmenu.asm +++ b/engine/startmenu.asm @@ -664,7 +664,7 @@ UnknownText_0x12a5b: ; 0x12a5b CantUseItem: ; 12a60 ld hl, CantUseItemText - call Function2012 + call MenuTextBoxWaitButton ret ; 12a67 @@ -1241,14 +1241,14 @@ OpenPartyStats: ; 12e00 MonMenu_Cut: ; 12e1b callba CutFunction - ld a, [wd0ec] + ld a, [wFieldMoveSucceeded] cp $1 - jr nz, .asm_12e2d + jr nz, .Fail ld b, $4 ld a, $2 ret -.asm_12e2d +.Fail ld a, $3 ret ; 12e30 @@ -1256,160 +1256,161 @@ MonMenu_Cut: ; 12e1b MonMenu_Fly: ; 12e30 callba FlyFunction - ld a, [wd0ec] + ld a, [wFieldMoveSucceeded] cp $2 - jr z, .asm_12e4c + jr z, .Fail cp $0 - jr z, .asm_12e4f + jr z, .Error callba MobileFn_1060b5 ld b, $4 ld a, $2 ret -.asm_12e4c +.Fail ld a, $3 ret -.asm_12e4f +.Error ld a, $0 ret -.asm_12e52 +.Unused ld a, $1 ret ; 12e55 MonMenu_Flash: ; 12e55 callba Functionc8ac - ld a, [wd0ec] + ld a, [wFieldMoveSucceeded] cp $1 - jr nz, .asm_12e67 + jr nz, .Fail ld b, $4 ld a, $2 ret -.asm_12e67 +.Fail ld a, $3 ret ; 12e6a MonMenu_Strength: ; 12e6a callba StrengthFunction - ld a, [wd0ec] + ld a, [wFieldMoveSucceeded] cp $1 - jr nz, .asm_12e7c + jr nz, .Fail ld b, $4 ld a, $2 ret -.asm_12e7c +.Fail ld a, $3 ret ; 12e7f MonMenu_Whirlpool: ; 12e7f callba WhirlpoolFunction - ld a, [wd0ec] + ld a, [wFieldMoveSucceeded] cp $1 - jr nz, .asm_12e91 + jr nz, .Fail ld b, $4 ld a, $2 ret -.asm_12e91 +.Fail ld a, $3 ret ; 12e94 MonMenu_Waterfall: ; 12e94 callba Functioncade - ld a, [wd0ec] + ld a, [wFieldMoveSucceeded] cp $1 - jr nz, .asm_12ea6 + jr nz, .Fail ld b, $4 ld a, $2 ret -.asm_12ea6 +.Fail ld a, $3 ret ; 12ea9 MonMenu_Teleport: ; 12ea9 callba TeleportFunction - ld a, [wd0ec] + ld a, [wFieldMoveSucceeded] and a - jr z, .asm_12eba + jr z, .Fail ld b, $4 ld a, $2 ret -.asm_12eba +.Fail ld a, $3 ret ; 12ebd MonMenu_Surf: ; 12ebd callba SurfFunction - ld a, [wd0ec] + ld a, [wFieldMoveSucceeded] and a - jr z, .asm_12ece + jr z, .Fail ld b, $4 ld a, $2 ret -.asm_12ece +.Fail ld a, $3 ret ; 12ed1 MonMenu_Dig: ; 12ed1 callba DigFunction - ld a, [wd0ec] + ld a, [wFieldMoveSucceeded] cp $1 - jr nz, .asm_12ee3 + jr nz, .Fail ld b, $4 ld a, $2 ret -.asm_12ee3 +.Fail ld a, $3 ret ; 12ee6 MonMenu_Softboiled_MilkDrink: ; 12ee6 - call Function12f05 - jr nc, .asm_12ef3 - callba Functionf3df - jr .asm_12ef9 + call .CheckMonHasEnoughHP + jr nc, .NotEnoughHP + callba Softboiled_MilkDrinkFunction + jr .finish -.asm_12ef3 - ld hl, UnknownText_0x12f00 +.NotEnoughHP + ld hl, .Text_NotEnoughHP call PrintText -.asm_12ef9 +.finish xor a ld [PartyMenuActionText], a ld a, $3 ret ; 12f00 -UnknownText_0x12f00: ; 0x12f00 +.Text_NotEnoughHP: ; 0x12f00 ; Not enough HP! text_jump UnknownText_0x1c1ce3 db "@" ; 0x12f05 -Function12f05: ; 12f05 +.CheckMonHasEnoughHP: ; 12f05 +; Need to have at least (MaxHP / 5) HP left. ld a, MON_MAXHP call GetPartyParamLocation ld a, [hli] ld [hDividend + 0], a ld a, [hl] ld [hDividend + 1], a - ld a, $5 + ld a, 5 ld [hDivisor], a - ld b, $2 + ld b, 2 call Divide ld a, MON_HP + 1 call GetPartyParamLocation @@ -1423,28 +1424,28 @@ Function12f05: ; 12f05 MonMenu_Headbutt: ; 12f26 callba HeadbuttFunction - ld a, [wd0ec] + ld a, [wFieldMoveSucceeded] cp $1 - jr nz, .asm_12f38 + jr nz, .Fail ld b, $4 ld a, $2 ret -.asm_12f38 +.Fail ld a, $3 ret ; 12f3b MonMenu_RockSmash: ; 12f3b callba RockSmashFunction - ld a, [wd0ec] + ld a, [wFieldMoveSucceeded] cp $1 - jr nz, .asm_12f4d + jr nz, .Fail ld b, $4 ld a, $2 ret -.asm_12f4d +.Fail ld a, $3 ret ; 12f50 diff --git a/engine/town_map.asm b/engine/town_map.asm index a2f93119a..c821e793a 100755 --- a/engine/town_map.asm +++ b/engine/town_map.asm @@ -147,7 +147,7 @@ Function91a04: ; 91a04 ld e, $1 .okay - callba Function91ae1 + callba PokegearMap ld a, $7 ld bc, 6 hlcoord 1, 0 diff --git a/home/menu.asm b/home/menu.asm index bf6427151..64f7e4d8c 100644 --- a/home/menu.asm +++ b/home/menu.asm @@ -546,7 +546,7 @@ PlayClickSFX:: ; 2009 ret ; 0x2012 -Function2012:: ; 2012 +MenuTextBoxWaitButton:: ; 2012 call MenuTextBox call CloseText call ExitMenu diff --git a/home/text.asm b/home/text.asm index d400ddd66..dffe686c4 100644 --- a/home/text.asm +++ b/home/text.asm @@ -714,7 +714,7 @@ FarString:: ; 13d4 ret ; 13e0 -Function13e0:: ; 13e0 +PokeFluteTerminatorCharacter:: ; 13e0 ld hl, .stop ret diff --git a/items/item_effects.asm b/items/item_effects.asm index 2b12b587e..9fc3c844f 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -228,7 +228,7 @@ ParkBall: ; e8a2 ld [wWildMon], a ld a, [CurItem] cp PARK_BALL - call nz, Functionedfa + call nz, ReturnToBattle_UseBall ld hl, Options res NO_TEXT_SCROLL, [hl] @@ -421,16 +421,16 @@ endr jr nz, .caught ld a, [Buffer2] cp $1 - ld hl, UnknownText_0xedb5 + ld hl, Text_NoShake jp z, .shake_and_break_free cp $2 - ld hl, UnknownText_0xedba + ld hl, Text_OneShake jp z, .shake_and_break_free cp $3 - ld hl, UnknownText_0xedbf + ld hl, Text_TwoShakes jp z, .shake_and_break_free cp $4 - ld hl, UnknownText_0xedc4 + ld hl, Text_ThreeShakes jp z, .shake_and_break_free .caught @@ -535,14 +535,14 @@ endr call CheckReceivedDex jr z, .skip_pokedex - ld hl, UnknownText_0xedf0 + ld hl, Text_AddedToPokedex call PrintText call ClearSprites ld a, [EnemyMonSpecies] ld [wd265], a - predef Functionfb877 + predef NewPokedexEntry .skip_pokedex ld a, [BattleType] @@ -564,7 +564,7 @@ endr predef TryAddMonToParty - callba Function4db49 + callba SetCaughtData ld a, [CurItem] cp FRIEND_BALL @@ -580,7 +580,7 @@ endr ld [hl], a .SkipPartyMonFriendBall - ld hl, UnknownText_0xedf5 + ld hl, Text_AskNicknameNewlyCaughtMon call PrintText ld a, [CurPartySpecies] @@ -620,7 +620,7 @@ endr predef SentPkmnIntoBox - callba Function4db83 + callba SetBoxMonCaughtData ld a, BANK(sBoxCount) call GetSRAMBank @@ -640,7 +640,7 @@ endr .SkipBoxMonFriendBall call CloseSRAM - ld hl, UnknownText_0xedf5 + ld hl, Text_AskNicknameNewlyCaughtMon call PrintText ld a, [CurPartySpecies] @@ -683,7 +683,7 @@ endr call CloseSRAM - ld hl, UnknownText_0xedeb + ld hl, Text_SentToBillsPC call PrintText call FadeToWhite @@ -1092,37 +1092,40 @@ LevelBallMultiplier: ld b, $ff ret -UnknownText_0xedab: ; 0xedab +; These two texts were carried over from gen 1. +; They are not used in gen 2, and are dummied out. + +Text_RBY_CatchMarowak: ; 0xedab ; It dodged the thrown BALL! This #MON can't be caught! text_jump UnknownText_0x1c5a5a db "@" ; 0xedb0 -UnknownText_0xedb0: ; 0xedb0 +Text_RBY_NoShake: ; 0xedb0 ; You missed the #MON! text_jump UnknownText_0x1c5a90 db "@" ; 0xedb5 -UnknownText_0xedb5: ; 0xedb5 +Text_NoShake: ; 0xedb5 ; Oh no! The #MON broke free! text_jump UnknownText_0x1c5aa6 db "@" ; 0xedba -UnknownText_0xedba: ; 0xedba +Text_OneShake: ; 0xedba ; Aww! It appeared to be caught! text_jump UnknownText_0x1c5ac3 db "@" ; 0xedbf -UnknownText_0xedbf: ; 0xedbf +Text_TwoShakes: ; 0xedbf ; Aargh! Almost had it! text_jump UnknownText_0x1c5ae3 db "@" ; 0xedc4 -UnknownText_0xedc4: ; 0xedc4 +Text_ThreeShakes: ; 0xedc4 ; Shoot! It was so close too! text_jump UnknownText_0x1c5afa db "@" @@ -1132,9 +1135,6 @@ Text_GotchaMonWasCaught: ; 0xedc9 ; Gotcha! @ was caught!@ @ text_jump UnknownText_0x1c5b17 start_asm -; 0xedce - -Functionedce: ; edce call WaitSFX push bc ld de, MUSIC_NONE @@ -1153,30 +1153,30 @@ TextJump_Waitbutton: ; 0xede6 db "@" ; 0xedeb -UnknownText_0xedeb: ; 0xedeb +Text_SentToBillsPC: ; 0xedeb ; was sent to BILL's PC. text_jump UnknownText_0x1c5b38 db "@" ; 0xedf0 -UnknownText_0xedf0: ; 0xedf0 +Text_AddedToPokedex: ; 0xedf0 ; 's data was newly added to the #DEX.@ @ text_jump UnknownText_0x1c5b53 db "@" ; 0xedf5 -UnknownText_0xedf5: ; 0xedf5 +Text_AskNicknameNewlyCaughtMon: ; 0xedf5 ; Give a nickname to @ ? text_jump UnknownText_0x1c5b7f db "@" ; 0xedfa -Functionedfa: ; edfa (3:6dfa) - callba Function2715c +ReturnToBattle_UseBall: ; edfa (3:6dfa) + callba _ReturnToBattle_UseBall ret TownMap: ; ee01 - callba Function91ae1 + callba PokegearMap ret ; ee08 @@ -1196,29 +1196,29 @@ SunStone: ; ee0f ld b, PARTYMENUACTION_EVO_STONE call UseItem_SelectMon - jp c, .asm_ee38 + jp c, .DecidedNotToUse ld a, MON_ITEM call GetPartyParamLocation ld a, [hl] cp EVERSTONE - jr z, .asm_ee35 + jr z, .NoEffect ld a, $1 ld [wd1e9], a - callba Function421d8 + callba EvolvePokemon ld a, [wd268] and a - jr z, .asm_ee35 + jr z, .NoEffect jp UseDisposableItem -.asm_ee35 +.NoEffect call WontHaveAnyEffectMessage -.asm_ee38 +.DecidedNotToUse xor a ld [wd0ec], a ret @@ -1233,11 +1233,11 @@ Calcium: ; ee3d ld b, PARTYMENUACTION_HEALING_ITEM call UseItem_SelectMon - jp c, Functionee9f + jp c, RareCandy_StatBooster_ExitMenu - call Functioneef5 + call RareCandy_StatBooster_GetParameters - call Functioneed9 + call GetStatExpRelativePointer ld a, MON_STAT_EXP call GetPartyParamLocation @@ -1245,15 +1245,15 @@ Calcium: ; ee3d add hl, bc ld a, [hl] cp 100 - jr nc, Functionee83 + jr nc, NoEffectMessage add 10 ld [hl], a - call Functionee8c + call UpdateStatsAfterItem - call Functioneed9 + call GetStatExpRelativePointer - ld hl, Strings_eeab + ld hl, StatStrings add hl, bc ld a, [hli] ld h, [hl] @@ -1264,7 +1264,7 @@ Calcium: ; ee3d call Play_SFX_FULL_HEAL - ld hl, UnknownText_0xeea6 + ld hl, Text_StatRose call PrintText ld c, HAPPINESS_USEDITEM @@ -1273,14 +1273,14 @@ Calcium: ; ee3d jp UseDisposableItem -Functionee83: ; ee83 +NoEffectMessage: ; ee83 ld hl, WontHaveAnyEffectText call PrintText jp ClearPalettes ; ee8c -Functionee8c: ; ee8c +UpdateStatsAfterItem: ; ee8c ld a, MON_MAXHP call GetPartyParamLocation ld d, h @@ -1291,21 +1291,21 @@ Functionee8c: ; ee8c predef_jump CalcPkmnStats ; ee9f -Functionee9f: ; ee9f +RareCandy_StatBooster_ExitMenu: ; ee9f xor a ld [wd0ec], a jp ClearPalettes ; eea6 -UnknownText_0xeea6: ; 0xeea6 +Text_StatRose: ; 0xeea6 ; 's @ rose. text_jump UnknownText_0x1c5b9a db "@" ; 0xeeab -Strings_eeab: ; eeab +StatStrings: ; eeab dw .health dw .attack dw .defense @@ -1320,17 +1320,17 @@ Strings_eeab: ; eeab ; eed9 -Functioneed9: ; eed9 +GetStatExpRelativePointer: ; eed9 ld a, [CurItem] ld hl, Table_eeeb .next cp [hl] inc hl - jr z, .asm_eee6 + jr z, .got_it inc hl jr .next -.asm_eee6 +.got_it ld a, [hl] ld c, a ld b, 0 @@ -1346,7 +1346,7 @@ Table_eeeb: ; eeeb ; eef5 -Functioneef5: ; eef5 +RareCandy_StatBooster_GetParameters: ; eef5 ld a, [CurPartySpecies] ld [CurSpecies], a ld [wd265], a @@ -1366,16 +1366,16 @@ RareCandy: ; ef14 ld b, PARTYMENUACTION_HEALING_ITEM call UseItem_SelectMon - jp c, Functionee9f + jp c, RareCandy_StatBooster_ExitMenu - call Functioneef5 + call RareCandy_StatBooster_GetParameters ld a, MON_LEVEL call GetPartyParamLocation ld a, [hl] cp MAX_LEVEL - jp nc, Functionee83 + jp nc, NoEffectMessage inc a ld [hl], a @@ -1390,9 +1390,9 @@ RareCandy: ; ef14 ld a, [hMultiplicand] ld [hli], a - ld a, [$ffb5] + ld a, [hMultiplicand + 1] ld [hli], a - ld a, [$ffb6] + ld a, [hMultiplicand + 2] ld [hl], a ld a, MON_MAXHP @@ -1401,7 +1401,7 @@ RareCandy: ; ef14 ld b, a ld c, [hl] push bc - call Functionee8c + call UpdateStatsAfterItem ld a, MON_MAXHP + 1 call GetPartyParamLocation @@ -1423,7 +1423,7 @@ RareCandy: ; ef14 callba LevelUpHappinessMod ld a, PARTYMENUTEXT_LEVEL_UP - call Functionf24a + call ItemActionText xor a ; PARTYMON ld [MonType], a @@ -1448,7 +1448,7 @@ RareCandy: ; ef14 xor a ld [wd1e9], a - callba Function421d8 + callba EvolvePokemon jp UseDisposableItem ; efad @@ -1458,9 +1458,9 @@ HealPowder: ; efad ld b, PARTYMENUACTION_HEALING_ITEM call UseItem_SelectMon - jp c, Functionf29e + jp c, StatusHealer_ExitMenu - call Functionefda + call UseStatusHealer cp $0 jr nz, .asm_efc9 @@ -1472,7 +1472,7 @@ HealPowder: ; efad ld a, $0 .asm_efc9 - jp Functionf09e + jp StatusHealer_Jumptable ; efcc @@ -1490,16 +1490,16 @@ MintBerry: Miracleberry: ; efcc ld b, PARTYMENUACTION_HEALING_ITEM call UseItem_SelectMon - jp c, Functionf29e + jp c, StatusHealer_ExitMenu -Functionefd4: ; efd4 - call Functionefda - jp Functionf09e +FullyHealStatus: ; efd4 + call UseStatusHealer + jp StatusHealer_Jumptable ; efda -Functionefda: ; efda (3:6fda) - call Functionf30d +UseStatusHealer: ; efda (3:6fda) + call IsMonFainted ld a, $1 ret z call GetItemHealingAction @@ -1508,7 +1508,7 @@ Functionefda: ; efda (3:6fda) ld a, [hl] and c jr nz, .good - call Functionf009 + call IsItemUsedOnConfusedMon ld a, $1 ret nc ld b, PARTYMENUTEXT_HEAL_CONFUSION @@ -1519,13 +1519,13 @@ Functionefda: ; efda (3:6fda) ld [PartyMenuActionText], a call HealStatus call Play_SFX_FULL_HEAL - call Functionf279 + call ItemActionTextWaitButton call UseDisposableItem ld a, $0 ret -Functionf009: ; f009 (3:7009) - call Functionf2a6 +IsItemUsedOnConfusedMon: ; f009 (3:7009) + call IsItemUsedOnBattleMon jr nc, .nope ld a, [PlayerSubStatus3] bit SUBSTATUS_CONFUSED, a @@ -1535,12 +1535,13 @@ Functionf009: ; f009 (3:7009) jr nz, .nope scf ret + .nope and a ret -Functionf01e: ; f01e (3:701e) - call Functionf2a6 +BattlemonRestoreHealth: ; f01e (3:701e) + call IsItemUsedOnBattleMon ret nc ld a, MON_HP call GetPartyParamLocation @@ -1551,7 +1552,7 @@ Functionf01e: ; f01e (3:701e) ret HealStatus: ; f030 (3:7030) - call Functionf2a6 + call IsItemUsedOnBattleMon ret nc xor a ld [BattleMonStatus], a @@ -1612,23 +1613,23 @@ GetItemHealingAction: ; f058 (3:7058) db -1, 0, 0 ; f09e -Functionf09e: ; f09e (3:709e) +StatusHealer_Jumptable: ; f09e (3:709e) ld hl, .jumptable rst JumpTable ret .jumptable: ; f0a3 (3:70a3) - dw Functionf2a2 - dw Functionf299 - dw Functionf29e + dw StatusHealer_ClearPalettes + dw StatusHealer_NoEffect + dw StatusHealer_ExitMenu RevivalHerb: ; f0a9 ld b, PARTYMENUACTION_HEALING_ITEM call UseItem_SelectMon - jp c, Functionf29e + jp c, StatusHealer_ExitMenu - call Functionf0d6 + call RevivePokemon cp 0 jr nz, .asm_f0c5 @@ -1638,7 +1639,7 @@ RevivalHerb: ; f0a9 ld a, 0 .asm_f0c5 - jp Functionf09e + jp StatusHealer_Jumptable ; f0c8 @@ -1646,20 +1647,20 @@ Revive: MaxRevive: ; f0c8 ld b, PARTYMENUACTION_HEALING_ITEM call UseItem_SelectMon - jp c, Functionf29e + jp c, StatusHealer_ExitMenu - call Functionf0d6 - jp Functionf09e + call RevivePokemon + jp StatusHealer_Jumptable ; f0d6 -Functionf0d6: ; f0d6 - call Functionf30d +RevivePokemon: ; f0d6 + call IsMonFainted ld a, 1 ret nz ld a, [wBattleMode] and a - jr z, .asm_f104 + jr z, .skip_to_revive ld a, [CurPartyMon] ld c, a @@ -1669,7 +1670,7 @@ Functionf0d6: ; f0d6 predef FlagPredef ld a, c and a - jr z, .asm_f104 + jr z, .skip_to_revive ld a, [CurPartyMon] ld c, a @@ -1677,24 +1678,24 @@ Functionf0d6: ; f0d6 ld b, SET_FLAG predef FlagPredef -.asm_f104 +.skip_to_revive xor a ld [Danger], a ld a, [CurItem] cp REVIVE - jr z, .asm_f114 + jr z, .revive_half_hp - call Functionf2c3 - jr .asm_f117 + call ReviveFullHP + jr .finish_revive -.asm_f114 - call Functionf2ba +.revive_half_hp + call ReviveHalfHP -.asm_f117 - call Functionf1db +.finish_revive + call HealHP_SFX_GFX ld a, PARTYMENUTEXT_REVIVE ld [PartyMenuActionText], a - call Functionf279 + call ItemActionTextWaitButton call UseDisposableItem ld a, 0 ret @@ -1704,37 +1705,37 @@ Functionf0d6: ; f0d6 FullRestore: ; f128 ld b, PARTYMENUACTION_HEALING_ITEM call UseItem_SelectMon - jp c, Functionf29e + jp c, StatusHealer_ExitMenu - call Functionf30d - jp z, Functionf299 + call IsMonFainted + jp z, StatusHealer_NoEffect - call Functionf31b - jr c, .asm_f13e + call IsMonAtFullHealth + jr c, .NotAtFullHealth - jp Functionefd4 + jp FullyHealStatus -.asm_f13e - call Functionf144 - jp Functionf09e +.NotAtFullHealth + call .FullRestore + jp StatusHealer_Jumptable ; f144 -Functionf144: ; f144 +.FullRestore: ; f144 xor a ld [Danger], a - call Functionf2c3 + call ReviveFullHP ld a, MON_STATUS call GetPartyParamLocation xor a ld [hli], a ld [hl], a call HealStatus - call Functionf01e - call Functionf1db + call BattlemonRestoreHealth + call HealHP_SFX_GFX ld a, PARTYMENUTEXT_HEAL_HP ld [PartyMenuActionText], a - call Functionf279 + call ItemActionTextWaitButton call UseDisposableItem ld a, 0 ret @@ -1750,7 +1751,7 @@ BitterBerry: ; f16a res SUBSTATUS_CONFUSED, [hl] xor a ld [hBattleTurn], a - call Functionf789 + call UseItemText ld hl, ConfusedNoMoreText call StdBattleTextBox @@ -1758,7 +1759,7 @@ BitterBerry: ; f16a ld a, 0 .done - jp Functionf09e + jp StatusHealer_Jumptable ; f186 @@ -1774,64 +1775,64 @@ Ragecandybar: BerryJuice: Berry: GoldBerry: ; f186 - call Functionf1a9 - jp Functionf09e + call ItemRestoreHP + jp StatusHealer_Jumptable ; f18c Energypowder: ; f18c ld c, HAPPINESS_BITTERPOWDER - jr Functionf192 + jr EnergypowderEnergyRootCommon ; f190 EnergyRoot: ; f190 ld c, HAPPINESS_ENERGYROOT ; f192 -Functionf192: ; f192 +EnergypowderEnergyRootCommon: ; f192 push bc - call Functionf1a9 + call ItemRestoreHP pop bc cp 0 - jr nz, .asm_f1a6 + jr nz, .skip_happiness callba ChangeHappiness call LooksBitterMessage ld a, 0 -.asm_f1a6 - jp Functionf09e +.skip_happiness + jp StatusHealer_Jumptable ; f1a9 -Functionf1a9: ; f1a9 (3:71a9) +ItemRestoreHP: ; f1a9 (3:71a9) ld b, PARTYMENUACTION_HEALING_ITEM call UseItem_SelectMon ld a, 2 ret c - call Functionf30d + call IsMonFainted ld a, 1 ret z - call Functionf31b + call IsMonAtFullHealth ld a, 1 ret nc xor a ld [Danger], a - call Functionf395 - call Functionf2d1 - call Functionf01e - call Functionf1db + call GetHealingItemAmount + call RestoreHealth + call BattlemonRestoreHealth + call HealHP_SFX_GFX ld a, PARTYMENUTEXT_HEAL_HP ld [PartyMenuActionText], a - call Functionf279 + call ItemActionTextWaitButton call UseDisposableItem ld a, 0 ret -Functionf1db: ; f1db (3:71db) +HealHP_SFX_GFX: ; f1db (3:71db) push de ld de, SFX_POTION call WaitPlaySFX @@ -1867,13 +1868,13 @@ UseItem_SelectMon: ; f1f9 (3:71f9) push de push bc call ClearBGPalettes - call Functionf21c + call ChoosePkmnToUseItemOn pop bc pop de pop hl ret -Functionf21c: ; f21c (3:721c) +ChoosePkmnToUseItemOn: ; f21c (3:721c) callba Function5004f callba Function50405 callba Function503e0 @@ -1885,7 +1886,7 @@ Functionf21c: ; f21c (3:721c) callba PartyMenuSelect ret -Functionf24a: ; f24a (3:724a) +ItemActionText: ; f24a (3:724a) ld [PartyMenuActionText], a ld a, [CurPartySpecies] push af @@ -1895,7 +1896,7 @@ Functionf24a: ; f24a (3:724a) push de push bc callba WritePartyMenuTilemap - callba Function50566 + callba PrintPartyMenuActionText call WaitBGMap call SetPalettes call DelayFrame @@ -1908,7 +1909,7 @@ Functionf24a: ; f24a (3:724a) ld [CurPartySpecies], a ret -Functionf279: ; f279 (3:7279) +ItemActionTextWaitButton: ; f279 (3:7279) xor a ld [hBGMapMode], a hlcoord 0, 0 @@ -1916,26 +1917,25 @@ Functionf279: ; f279 (3:7279) ld a, " " call ByteFill ld a, [PartyMenuActionText] - call Functionf24a + call ItemActionText ld a, $1 ld [hBGMapMode], a - ld c, $32 + ld c, 50 call DelayFrames jp WaitPressAorB_BlinkCursor -Functionf299: ; f299 (3:7299) +StatusHealer_NoEffect: ; f299 (3:7299) call WontHaveAnyEffectMessage - jr Functionf2a2 + jr StatusHealer_ClearPalettes -Functionf29e: ; f29e (3:729e) +StatusHealer_ExitMenu: ; f29e (3:729e) xor a ld [wd0ec], a - -Functionf2a2: ; f2a2 (3:72a2) +StatusHealer_ClearPalettes: ; f2a2 (3:72a2) call ClearPalettes ret -Functionf2a6: ; f2a6 (3:72a6) +IsItemUsedOnBattleMon: ; f2a6 (3:72a6) ld a, [wBattleMode] and a ret z @@ -1944,30 +1944,31 @@ Functionf2a6: ; f2a6 (3:72a6) ld hl, CurBattleMon cp [hl] pop hl - jr nz, .asm_f2b8 + jr nz, .nope scf ret -.asm_f2b8 + +.nope xor a ret -Functionf2ba: ; f2ba (3:72ba) - call Functionf36f +ReviveHalfHP: ; f2ba (3:72ba) + call LoadHPFromBuffer1 srl d rr e - jr asm_f2c6 + jr ContinueRevive -Functionf2c3: ; f2c3 (3:72c3) - call Functionf36f -asm_f2c6: ; f2c6 (3:72c6) +ReviveFullHP: ; f2c3 (3:72c3) + call LoadHPFromBuffer1 +ContinueRevive: ; f2c6 (3:72c6) ld a, MON_HP call GetPartyParamLocation ld [hl], d inc hl ld [hl], e - jp Functionf328 + jp LoadCurHPIntoBuffer5 -Functionf2d1: ; f2d1 (3:72d1) +RestoreHealth: ; f2d1 (3:72d1) ld a, MON_HP + 1 call GetPartyParamLocation ld a, [hl] @@ -1976,8 +1977,8 @@ Functionf2d1: ; f2d1 (3:72d1) ld a, [hl] adc d ld [hl], a - jr c, .asm_f2f5 - call Functionf328 + jr c, .full_hp + call LoadCurHPIntoBuffer5 ld a, MON_HP + 1 call GetPartyParamLocation ld d, h @@ -1990,13 +1991,13 @@ Functionf2d1: ; f2d1 (3:72d1) dec hl ld a, [de] sbc [hl] - jr c, .asm_f2f8 -.asm_f2f5 - call Functionf2c3 -.asm_f2f8 + jr c, .finish +.full_hp + call ReviveFullHP +.finish ret -Functionf2f9: ; f2f9 (3:72f9) +RemoveHP: ; f2f9 (3:72f9) ld a, MON_HP + 1 call GetPartyParamLocation ld a, [hl] @@ -2005,78 +2006,78 @@ Functionf2f9: ; f2f9 (3:72f9) ld a, [hl] sbc d ld [hl], a - jr nc, .asm_f309 + jr nc, .okay xor a ld [hld], a ld [hl], a -.asm_f309 - call Functionf328 +.okay + call LoadCurHPIntoBuffer5 ret -Functionf30d: ; f30d (3:730d) +IsMonFainted: ; f30d (3:730d) push de - call Functionf35f - call Functionf348 - call Functionf356 + call LoadMaxHPToBuffer1 + call LoadCurHPToBuffer3 + call LoadHPFromBuffer3 ld a, d or e pop de ret -Functionf31b: ; f31b (3:731b) - call Functionf356 +IsMonAtFullHealth: ; f31b (3:731b) + call LoadHPFromBuffer3 ld h, d ld l, e - call Functionf36f + call LoadHPFromBuffer1 ld a, l sub e ld a, h sbc d ret -Functionf328: ; f328 (3:7328) +LoadCurHPIntoBuffer5: ; f328 (3:7328) ld a, MON_HP call GetPartyParamLocation ld a, [hli] - ld [wd1ef], a + ld [Buffer6], a ld a, [hl] - ld [wd1ee], a + ld [Buffer5], a ret ; f336 (3:7336) -Functionf336: ; f336 +LoadHPIntoBuffer5: ; f336 ld a, d - ld [wd1ef], a + ld [Buffer6], a ld a, e - ld [wd1ee], a + ld [Buffer5], a ret ; f33f -Functionf33f: ; f33f - ld a, [wd1ef] +LoadHPFromBuffer5: ; f33f + ld a, [Buffer6] ld d, a - ld a, [wd1ee] + ld a, [Buffer5] ld e, a ret ; f348 -Functionf348: ; f348 (3:7348) +LoadCurHPToBuffer3: ; f348 (3:7348) ld a, MON_HP call GetPartyParamLocation ld a, [hli] - ld [wd1ed], a + ld [Buffer4], a ld a, [hl] - ld [wd1ec], a + ld [Buffer3], a ret -Functionf356: ; f356 (3:7356) - ld a, [wd1ed] +LoadHPFromBuffer3: ; f356 (3:7356) + ld a, [Buffer4] ld d, a - ld a, [wd1ec] + ld a, [Buffer3] ld e, a ret -Functionf35f: ; f35f (3:735f) +LoadMaxHPToBuffer1: ; f35f (3:735f) push hl ld a, MON_MAXHP call GetPartyParamLocation @@ -2087,14 +2088,14 @@ Functionf35f: ; f35f (3:735f) pop hl ret -Functionf36f: ; f36f (3:736f) +LoadHPFromBuffer1: ; f36f (3:736f) ld a, [Buffer2] ld d, a ld a, [Buffer1] ld e, a ret -Functionf378: ; f378 (3:7378) +GetOneFifthMaxHP: ; f378 (3:7378) push bc ld a, MON_MAXHP call GetPartyParamLocation @@ -2113,15 +2114,15 @@ Functionf378: ; f378 (3:7378) pop bc ret -Functionf395: ; f395 (3:7395) +GetHealingItemAmount: ; f395 (3:7395) push hl ld a, [CurItem] - ld hl, Tablef3af + ld hl, .Healing ld d, a .next ld a, [hli] cp -1 - jr z, .asm_f3a9 + jr z, .NotFound cp d jr z, .done rept 2 @@ -2129,7 +2130,7 @@ rept 2 endr jr .next -.asm_f3a9 +.NotFound scf .done ld e, [hl] @@ -2139,7 +2140,7 @@ endr ret ; f3af (3:73af) -Tablef3af: ; f3af +.Healing: ; f3af dbw FRESH_WATER, 50 dbw SODA_POP, 60 dbw LEMONADE, 80 @@ -2158,42 +2159,42 @@ Tablef3af: ; f3af dbw -1, 0 ; f3df -Functionf3df: ; f3df (3:73df) +Softboiled_MilkDrinkFunction: ; f3df (3:73df) ; Softboiled/Milk Drink in the field ld a, [wd0d8] dec a ld b, a - call Functionf419 - jr c, .asm_f413 + call .SelectMilkDrinkRecipient ; select pokemon + jr c, .skip ld a, b ld [CurPartyMon], a - call Functionf30d - call Functionf378 - call Functionf2f9 + call IsMonFainted + call GetOneFifthMaxHP + call RemoveHP push bc - call Functionf1db + call HealHP_SFX_GFX pop bc - call Functionf378 + call GetOneFifthMaxHP ld a, c ld [CurPartyMon], a - call Functionf30d - call Functionf2d1 - call Functionf1db + call IsMonFainted + call RestoreHealth + call HealHP_SFX_GFX ld a, PARTYMENUTEXT_HEAL_HP - call Functionf24a + call ItemActionText call JoyWaitAorB -.asm_f413 +.skip ld a, b inc a ld [wd0d8], a ret -Functionf419: ; f419 (3:7419) +.SelectMilkDrinkRecipient: ; f419 (3:7419) .loop push bc ld a, PARTYMENUACTION_HEALING_ITEM ld [PartyMenuActionText], a - call Functionf21c + call ChoosePkmnToUseItemOn pop bc jr c, .set_carry ld a, [wd0d8] @@ -2201,13 +2202,13 @@ Functionf419: ; f419 (3:7419) ld c, a ld a, b cp c - jr z, .loopback + jr z, .cant_use ; chose the same mon as user ld a, c ld [CurPartyMon], a - call Functionf30d - jr z, .loopback - call Functionf31b - jr nc, .loopback + call IsMonFainted + jr z, .cant_use + call IsMonAtFullHealth + jr nc, .cant_use xor a ret @@ -2215,15 +2216,15 @@ Functionf419: ; f419 (3:7419) scf ret -.loopback +.cant_use push bc - ld hl, UnknownText_0xf44a + ld hl, .Text_CantBeUsed call MenuTextBoxBackup pop bc jr .loop ; f44a (3:744a) -UnknownText_0xf44a: ; 0xf44a +.Text_CantBeUsed: ; 0xf44a ; That can't be used on this #MON. text_jump UnknownText_0x1c5bac db "@" @@ -2244,19 +2245,19 @@ EscapeRope: ; f44f SuperRepel: ; f462 ld b, 200 - jr Function_0xf46c + jr UseRepel ; f466 MaxRepel: ; f466 ld b, 250 - jr Function_0xf46c + jr UseRepel ; f466 Repel: ; f46a ld b, 100 ; f46c -Function_0xf46c: ; f46c +UseRepel: ; f46c ld a, [wRepelEffect] and a ld hl, TextJump_RepelUsedEarlierIsStillInEffect @@ -2264,7 +2265,7 @@ Function_0xf46c: ; f46c ld a, b ld [wRepelEffect], a - jp Functionf789 + jp UseItemText TextJump_RepelUsedEarlierIsStillInEffect: ; 0xf47d @@ -2279,7 +2280,7 @@ XAccuracy: ; f482 bit SUBSTATUS_X_ACCURACY, [hl] jp nz, WontHaveAnyEffect_NotUsedMessage set SUBSTATUS_X_ACCURACY, [hl] - jp Functionf789 + jp UseItemText ; f48f @@ -2293,7 +2294,7 @@ PokeDoll: ; f48f and 3 << 6 or $2 ld [wBattleResult], a - jp Functionf789 + jp UseItemText .asm_f4a6 xor a @@ -2307,7 +2308,7 @@ GuardSpec: ; f4ab bit SUBSTATUS_MIST, [hl] jp nz, WontHaveAnyEffect_NotUsedMessage set SUBSTATUS_MIST, [hl] - jp Functionf789 + jp UseItemText ; f4b8 @@ -2316,7 +2317,7 @@ DireHit: ; f4b8 bit SUBSTATUS_FOCUS_ENERGY, [hl] jp nz, WontHaveAnyEffect_NotUsedMessage set SUBSTATUS_FOCUS_ENERGY, [hl] - jp Functionf789 + jp UseItemText ; f4c5 @@ -2324,7 +2325,7 @@ XAttack: XDefend: XSpeed: XSpecial: ; f4c5 - call Functionf789 + call UseItemText ld a, [CurItem] ld hl, .x_item_table @@ -2368,8 +2369,8 @@ endr PokeFlute: ; f50c ld a, [wBattleMode] and a - jr nz, .asm_f512 -.asm_f512 + jr nz, .dummy +.dummy xor a ld [wd002], a @@ -2377,14 +2378,14 @@ PokeFlute: ; f50c ld b, $ff ^ SLP ld hl, PartyMon1Status - call .Functionf554 + call .CureSleep ld a, [wBattleMode] cp WILD_BATTLE - jr z, .asm_f52b + jr z, .skip_otrainer ld hl, OTPartyMon1Status - call .Functionf554 -.asm_f52b + call .CureSleep +.skip_otrainer ld hl, BattleMonStatus ld a, [hl] @@ -2397,20 +2398,20 @@ PokeFlute: ; f50c ld a, [wd002] and a - ld hl, UnknownText_0xf56c + ld hl, .CatchyTune jp z, PrintText - ld hl, UnknownText_0xf576 + ld hl, .PlayedTheFlute call PrintText ld a, [Danger] and $80 - jr nz, .asm_f54e -.asm_f54e - ld hl, UnknownText_0xf571 + jr nz, .dummy2 +.dummy2 + ld hl, .AllSleepingMonWokeUp jp PrintText -.Functionf554 +.CureSleep ld de, PARTYMON_STRUCT_LENGTH ld c, PARTY_LENGTH @@ -2418,10 +2419,10 @@ PokeFlute: ; f50c ld a, [hl] push af and SLP - jr z, .asm_f564 + jr z, .not_asleep ld a, 1 ld [wd002], a -.asm_f564 +.not_asleep pop af and b ld [hl], a @@ -2432,29 +2433,25 @@ PokeFlute: ; f50c ; f56c -UnknownText_0xf56c: ; 0xf56c +.CatchyTune: ; 0xf56c ; Played the # FLUTE. Now, that's a catchy tune! text_jump UnknownText_0x1c5bf9 db "@" ; 0xf571 -UnknownText_0xf571: ; 0xf571 +.AllSleepingMonWokeUp: ; 0xf571 ; All sleeping #MON woke up. text_jump UnknownText_0x1c5c28 db "@" ; 0xf576 -UnknownText_0xf576: ; 0xf576 +.PlayedTheFlute: ; 0xf576 ; played the # FLUTE.@ @ text_jump UnknownText_0x1c5c44 start_asm -; 0xf57b - - -Function_0xf57b: ; f57b ld a, [wBattleMode] and a - jr nz, .asm_f58c + jr nz, .battle push de ld de, SFX_POKEFLUTE @@ -2462,14 +2459,14 @@ Function_0xf57b: ; f57b call WaitSFX pop de -.asm_f58c - jp Function13e0 +.battle + jp PokeFluteTerminatorCharacter ; f58f BlueCard: ; f58f ld hl, .bluecardtext - jp Function2012 + jp MenuTextBoxWaitButton .bluecardtext text_jump UnknownText_0x1c5c5e @@ -2479,7 +2476,7 @@ BlueCard: ; f58f CoinCase: ; f59a ld hl, .coincasetext - jp Function2012 + jp MenuTextBoxWaitButton .coincasetext text_jump UnknownText_0x1c5c7b @@ -2527,7 +2524,7 @@ Mysteryberry: ; f5bf ; Party Screen opens to choose on which Pkmn to use the Item ld b, PARTYMENUACTION_HEALING_ITEM call UseItem_SelectMon - jp c, Functionf6e0 + jp c, PPRestoreItem_Cancel .loop2 ld a, [wd002] @@ -2570,7 +2567,7 @@ Mysteryberry: ; f5bf ld a, [wd002] cp PP_UP - jp nz, Functionf6a7 + jp nz, Not_PP_Up ld a, [hl] cp SKETCH @@ -2594,50 +2591,50 @@ Mysteryberry: ; f5bf ld [hl], a ld a, $1 ld [wd265], a - call Functionf84c + call ApplyPPUp call Play_SFX_FULL_HEAL ld hl, TextJump_PPsIncreased call PrintText -Functionf64c: ; f64c +FinishPPRestore: ; f64c call ClearPalettes jp UseDisposableItem ; f652 -Functionf652: ; f652 +BattleRestorePP: ; f652 ld a, [wBattleMode] and a - jr z, .asm_f66c + jr z, .not_in_battle ld a, [CurPartyMon] ld b, a ld a, [CurBattleMon] cp b - jr nz, .asm_f66c + jr nz, .not_in_battle ld a, [PlayerSubStatus5] bit SUBSTATUS_TRANSFORMED, a - jr nz, .asm_f66c - call .asm_f677 + jr nz, .not_in_battle + call .UpdateBattleMonPP -.asm_f66c +.not_in_battle call Play_SFX_FULL_HEAL ld hl, UnknownText_0xf739 call PrintText - jr Functionf64c + jr FinishPPRestore -.asm_f677 +.UpdateBattleMonPP ld a, [CurPartyMon] ld hl, PartyMon1Moves ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld de, BattleMonMoves ld b, NUM_MOVES -.asm_f688 +.loop ld a, [de] and a - jr z, .asm_f6a6 + jr z, .done cp [hl] - jr nz, .asm_f6a1 + jr nz, .next push hl push de push bc @@ -2652,20 +2649,20 @@ Functionf652: ; f652 pop de pop hl -.asm_f6a1 +.next inc hl inc de dec b - jr nz, .asm_f688 + jr nz, .loop -.asm_f6a6 +.done ret ; f6a7 -Functionf6a7: ; f6a7 +Not_PP_Up: ; f6a7 call RestorePP - jr nz, Functionf652 - jp Functionf6dd + jr nz, BattleRestorePP + jp PPRestoreItem_NoEffect ; f6af Elixer_RestorePPofAllMoves: ; f6af @@ -2681,14 +2678,14 @@ Elixer_RestorePPofAllMoves: ; f6af call GetMthMoveOfNthPartymon ld a, [hl] and a - jr z, .cant_restore_pp + jr z, .next call RestorePP - jr z, .cant_restore_pp + jr z, .next ld hl, wcfaa inc [hl] -.cant_restore_pp +.next ld hl, MenuSelection2 inc [hl] pop bc @@ -2696,12 +2693,12 @@ Elixer_RestorePPofAllMoves: ; f6af jr nz, .moveLoop ld a, [wcfaa] and a - jp nz, Functionf652 + jp nz, BattleRestorePP -Functionf6dd: ; f6dd +PPRestoreItem_NoEffect: ; f6dd call WontHaveAnyEffectMessage -Functionf6e0: ; f6e0 +PPRestoreItem_Cancel: ; f6e0 call ClearPalettes xor a ld [wd0ec], a @@ -2939,14 +2936,11 @@ Play_SFX_FULL_HEAL: ; f780 ret ; f789 -Functionf789: ; f789 +UseItemText ; f789 ld hl, UsedItemText call PrintText call Play_SFX_FULL_HEAL call WaitPressAorB_BlinkCursor - ; fallthrough -; f795 - UseDisposableItem: ; f795 ld hl, NumItems ld a, 1 @@ -2955,7 +2949,7 @@ UseDisposableItem: ; f795 ; f7a0 UseBallInTrainerBattle: ; f7a0 - call Functionedfa + call ReturnToBattle_UseBall ld de, ANIM_THROW_POKE_BALL ld a, e ld [FXAnimIDLo], a @@ -3107,7 +3101,7 @@ GotOffTheItemText: ; 0xf847 ; 0xf84c -Functionf84c: ; f84c +ApplyPPUp: ; f84c ld a, MON_MOVES call GetPartyParamLocation push hl @@ -3118,29 +3112,29 @@ Functionf84c: ; f84c add hl, bc ld de, Buffer1 ld b, 0 -.asm_f864 +.loop inc b ld a, b cp NUM_MOVES + 1 ret z ld a, [wd265] dec a - jr nz, .asm_f876 + jr nz, .use ld a, [MenuSelection2] inc a cp b - jr nz, .asm_f87d + jr nz, .skip -.asm_f876 +.use ld a, [hl] and 3 << 6 ld a, [de] ; wasted cycle call nz, ComputeMaxPP -.asm_f87d +.skip inc hl inc de - jr .asm_f864 + jr .loop ; f881 @@ -3195,7 +3189,7 @@ ComputeMaxPP: ; f881 ret ; f8b9 -Functionf8b9: ; f8b9 +RestoreAllPP: ; f8b9 ld a, MON_PP call GetPartyParamLocation push hl diff --git a/main.asm b/main.asm index 940c7e03d..e759b4931 100644 --- a/main.asm +++ b/main.asm @@ -2957,7 +2957,7 @@ SpecialGiveShuckle: ; 7305 ; Caught data. ld b, 0 - callba SetPartymonCaughtData + callba SetGiftPartyMonCaughtData ; Holding a Berry. ld bc, PARTYMON_STRUCT_LENGTH @@ -4530,7 +4530,7 @@ endr ld a, [hl] ld [bc], a - callba Functionf8b9 + callba RestoreAllPP ret ; c699 @@ -8308,7 +8308,7 @@ endr ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes predef GetUnownLetter - callab Functionfba18 + callab UpdateUnownDex .done scf ; When this function returns, the carry flag indicates success vs failure. @@ -8420,7 +8420,7 @@ AddTempmonToParty: ; da96 ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes predef GetUnownLetter - callab Functionfba18 + callab UpdateUnownDex ld a, [wdef4] and a jr nz, .done @@ -9014,7 +9014,7 @@ SentPkmnIntoBox: ; de6e jr nz, .asm_df20 ld hl, sBoxMon1DVs predef GetUnownLetter - callab Functionfba18 + callab UpdateUnownDex .asm_df20 ld hl, sBoxMon1Moves @@ -9697,7 +9697,7 @@ endr ld [hli], a ld [hl], 01001 % $100 pop bc - callba SetPartymonCaughtData + callba SetGiftPartyMonCaughtData jr .skip_nickname .asm_e35e @@ -9721,7 +9721,7 @@ endr call Random ld [hl], a call CloseSRAM - callba SetBoxMonCaughtData + callba SetGiftBoxMonCaughtData jr .skip_nickname .asm_e390 @@ -9732,11 +9732,11 @@ endr ld a, b and a jr z, .asm_e3a0 - callba Function4db83 + callba SetBoxMonCaughtData jr .asm_e3a6 .asm_e3a0 - callba Function4db49 + callba SetCaughtData .asm_e3a6 callba GiveANickname_YesNo @@ -13569,7 +13569,7 @@ LevelUpHappinessMod: ; 2709e INCLUDE "trainers/dvs.asm" -Function2715c: ; 2715c +_ReturnToBattle_UseBall: ; 2715c call ClearBGPalettes call ClearTileMap ld a, [BattleType] @@ -16258,690 +16258,7 @@ Function41af7: ; 41af7 INCLUDE "battle/moves/moves.asm" - -Function421d8: ; 421d8 - ld hl, EvolvableFlags - xor a - ld [hl], a - ld a, [CurPartyMon] - ld c, a - ld b, $1 - call Function42577 - -Function421e6: ; 421e6 - xor a - ld [wd268], a - dec a - ld [CurPartyMon], a - push hl - push bc - push de - ld hl, PartyCount - - push hl - -Function421f5: ; 421f5 - ld hl, CurPartyMon - inc [hl] - - pop hl - - inc hl - ld a, [hl] - cp $ff - jp z, Function423ff - - ld [Buffer1], a - - push hl - ld a, [CurPartyMon] - ld c, a - ld hl, EvolvableFlags - ld b, 2 - call Function42577 - ld a, c - and a - jp z, Function421f5 - - ld a, [Buffer1] - dec a - ld b, 0 - ld c, a - ld hl, EvosAttacksPointers -rept 2 - add hl, bc -endr - ld a, [hli] - ld h, [hl] - ld l, a - - push hl - xor a - ld [MonType], a - predef CopyPkmnToTempMon - pop hl - -.asm_42230 - ld a, [hli] - and a - jr z, Function421f5 - - ld b, a - - cp EVOLVE_TRADE - jr z, .trade - - ld a, [wLinkMode] - and a - jp nz, .asm_423f9 - - ld a, b - cp EVOLVE_ITEM - jp z, .item - - ld a, [wd1e9] - and a - jp nz, .asm_423f9 - - ld a, b - cp EVOLVE_LEVEL - jp z, .level - - cp EVOLVE_HAPPINESS - jr z, .happiness - - -; EVOLVE_STAT - ld a, [TempMonLevel] - cp [hl] - jp c, .asm_423f8 - - call Function42461 - jp z, .asm_423f8 - - push hl - ld de, TempMonAttack - ld hl, TempMonDefense - ld c, 2 - call StringCmp - ld a, ATK_EQ_DEF - jr z, .asm_4227a - ld a, ATK_LT_DEF - jr c, .asm_4227a - ld a, ATK_GT_DEF -.asm_4227a - pop hl - - inc hl - cp [hl] - jp nz, .asm_423f9 - - inc hl - jr .asm_422fd - - -.happiness - ld a, [TempMonHappiness] - cp 220 - jp c, .asm_423f9 - - call Function42461 - jp z, .asm_423f9 - - ld a, [hli] - cp TR_ANYTIME - jr z, .asm_422fd - cp TR_MORNDAY - jr z, .asm_422a4 - -; TR_NITE - ld a, [TimeOfDay] - cp NITE - jp nz, .asm_423fa - jr .asm_422fd - -.asm_422a4 - ld a, [TimeOfDay] - cp NITE - jp z, .asm_423fa - jr .asm_422fd - - -.trade - ld a, [wLinkMode] - and a - jp z, .asm_423f9 - - call Function42461 - jp z, .asm_423f9 - - ld a, [hli] - ld b, a - inc a - jr z, .asm_422fd - - ld a, [wLinkMode] - cp LINK_TIMECAPSULE - jp z, .asm_423fa - - ld a, [TempMonItem] - cp b - jp nz, .asm_423fa - - xor a - ld [TempMonItem], a - jr .asm_422fd - - -.item - ld a, [hli] - ld b, a - ld a, [CurItem] - cp b - jp nz, .asm_423fa - - ld a, [wd1e9] - and a - jp z, .asm_423fa - ld a, [wLinkMode] - and a - jp nz, .asm_423fa - jr .asm_422fd - - -.level - ld a, [hli] - ld b, a - ld a, [TempMonLevel] - cp b - jp c, .asm_423fa - call Function42461 - jp z, .asm_423fa - -.asm_422fd - ld a, [TempMonLevel] - ld [CurPartyLevel], a - ld a, $1 - ld [wd268], a - - push hl - - ld a, [hl] - ld [Buffer2], a - ld a, [CurPartyMon] - ld hl, PartyMonNicknames - call GetNick - call CopyName1 - ld hl, UnknownText_0x42482 - call PrintText - - ld c, 50 - call DelayFrames - - xor a - ld [hBGMapMode], a - hlcoord 0, 0 - lb bc, 12, 20 - call ClearBox - - ld a, $1 - ld [hBGMapMode], a - call ClearSprites - - callba EvolutionAnimation - - push af - call ClearSprites - pop af - jp c, Function42454 - - ld hl, UnknownText_0x42473 - call PrintText - - pop hl - - ld a, [hl] - ld [CurSpecies], a - ld [TempMonSpecies], a - ld [Buffer2], a - ld [wd265], a - call GetPokemonName - - push hl - ld hl, UnknownText_0x42478 - call PrintTextBoxText - callba MobileFn_106094 - - ld de, MUSIC_NONE - call PlayMusic - ld de, SFX_CAUGHT_MON - call PlaySFX - call WaitSFX - - ld c, 40 - call DelayFrames - - call ClearTileMap - call Function42414 - call GetBaseData - - ld hl, TempMonExp + 2 - ld de, TempMonMaxHP - ld b, $1 - predef CalcPkmnStats - - ld a, [CurPartyMon] - ld hl, PartyMons - ld bc, PARTYMON_STRUCT_LENGTH - call AddNTimes - ld e, l - ld d, h - ld bc, MON_MAXHP - add hl, bc - ld a, [hli] - ld b, a - ld c, [hl] - ld hl, TempMonMaxHP + 1 - ld a, [hld] - sub c - ld c, a - ld a, [hl] - sbc b - ld b, a - ld hl, TempMonHP + 1 - ld a, [hl] - add c - ld [hld], a - ld a, [hl] - adc b - ld [hl], a - - ld hl, TempMonSpecies - ld bc, PARTYMON_STRUCT_LENGTH - call CopyBytes - - ld a, [CurSpecies] - ld [wd265], a - xor a - ld [MonType], a - call LearnLevelMoves - ld a, [wd265] - dec a - call SetSeenAndCaughtMon - - ld a, [wd265] - cp UNOWN - jr nz, .asm_423ec - - ld hl, TempMonDVs - predef GetUnownLetter - callab Functionfba18 - -.asm_423ec - pop de - pop hl - ld a, [TempMonSpecies] - ld [hl], a - push hl - ld l, e - ld h, d - jp Function421f5 -; 423f8 - -.asm_423f8 - inc hl -.asm_423f9 - inc hl -.asm_423fa - inc hl - jp .asm_42230 -; 423fe - -Function423fe: ; 423fe - pop hl - -Function423ff: ; 423ff - pop de - pop bc - pop hl - ld a, [wLinkMode] - and a - ret nz - ld a, [wBattleMode] - and a - ret nz - ld a, [wd268] - and a - call nz, RestartMapMusic - ret -; 42414 - -Function42414: ; 42414 - ld a, [CurSpecies] - push af - ld a, [BaseDexNo] - ld [wd265], a - call GetPokemonName - pop af - ld [CurSpecies], a - ld hl, StringBuffer1 - ld de, StringBuffer2 -.asm_4242b - ld a, [de] - inc de - cp [hl] - inc hl - ret nz - cp "@" - jr nz, .asm_4242b - ld a, [CurPartyMon] - ld bc, PKMN_NAME_LENGTH - ld hl, PartyMonNicknames - call AddNTimes - push hl - ld a, [CurSpecies] - ld [wd265], a - call GetPokemonName - ld hl, StringBuffer1 - pop de - ld bc, PKMN_NAME_LENGTH - jp CopyBytes -; 42454 - -Function42454: ; 42454 - ld hl, UnknownText_0x4247d - call PrintText - call ClearTileMap - pop hl - jp Function421f5 -; 42461 - -Function42461: ; 42461 - push hl - ld a, [CurPartyMon] - ld hl, PartyMon1Item - ld bc, PARTYMON_STRUCT_LENGTH - call AddNTimes - ld a, [hl] - cp EVERSTONE - pop hl - ret -; 42473 - -UnknownText_0x42473: ; 0x42473 - ; Congratulations! Your @ @ - text_jump UnknownText_0x1c4b92 - db "@" -; 0x42478 - -UnknownText_0x42478: ; 0x42478 - ; evolved into @ ! - text_jump UnknownText_0x1c4baf - db "@" -; 0x4247d - -UnknownText_0x4247d: ; 0x4247d - ; Huh? @ stopped evolving! - text_jump UnknownText_0x1c4bc5 - db "@" -; 0x42482 - -UnknownText_0x42482: ; 0x42482 - ; What? @ is evolving! - text_jump UnknownText_0x1c4be3 - db "@" -; 0x42487 - - -LearnLevelMoves: ; 42487 - ld a, [wd265] - ld [CurPartySpecies], a - dec a - ld b, 0 - ld c, a - ld hl, EvosAttacksPointers -rept 2 - add hl, bc -endr - ld a, [hli] - ld h, [hl] - ld l, a - -.skip_evos - ld a, [hli] - and a - jr nz, .skip_evos - -.find_move - ld a, [hli] - and a - jr z, .done - - ld b, a - ld a, [CurPartyLevel] - cp b - ld a, [hli] - jr nz, .find_move - - push hl - ld d, a - ld hl, PartyMon1Moves - ld a, [CurPartyMon] - ld bc, PARTYMON_STRUCT_LENGTH - call AddNTimes - - ld b, NUM_MOVES -.check_move - ld a, [hli] - cp d - jr z, .has_move - dec b - jr nz, .check_move - jr .learn -.has_move - - pop hl - jr .find_move - -.learn - ld a, d - ld [wd262], a - ld [wd265], a - call GetMoveName - call CopyName1 - predef LearnMove - pop hl - jr .find_move - -.done - ld a, [CurPartySpecies] - ld [wd265], a - ret -; 424e1 - - -FillMoves: ; 424e1 -; Fill in moves at de for CurPartySpecies at CurPartyLevel - - push hl - push de - push bc - ld hl, EvosAttacksPointers - ld b, 0 - ld a, [CurPartySpecies] - dec a - add a - rl b - ld c, a - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a -.GoToAttacks - ld a, [hli] - and a - jr nz, .GoToAttacks - jr .GetLevel - -.NextMove - pop de -.GetMove - inc hl -.GetLevel - ld a, [hli] - and a - jp z, .done - ld b, a - ld a, [CurPartyLevel] - cp b - jp c, .done - ld a, [Buffer1] - and a - jr z, .CheckMove - ld a, [wd002] - cp b - jr nc, .GetMove - -.CheckMove - push de - ld c, NUM_MOVES -.CheckRepeat - ld a, [de] - inc de - cp [hl] - jr z, .NextMove - dec c - jr nz, .CheckRepeat - pop de - push de - ld c, NUM_MOVES -.CheckSlot - ld a, [de] - and a - jr z, .LearnMove - inc de - dec c - jr nz, .CheckSlot - pop de - push de - push hl - ld h, d - ld l, e - call ShiftMoves - ld a, [Buffer1] - and a - jr z, .ShiftedMove - push de - ld bc, PartyMon1PP - (PartyMon1Moves + NUM_MOVES - 1) - add hl, bc - ld d, h - ld e, l - call ShiftMoves - pop de - -.ShiftedMove - pop hl - -.LearnMove - ld a, [hl] - ld [de], a - ld a, [Buffer1] - and a - jr z, .NextMove - push hl - ld a, [hl] - ld hl, MON_PP - MON_MOVES - add hl, de - push hl - dec a - ld hl, Moves + MOVE_PP - ld bc, MOVE_LENGTH - call AddNTimes - ld a, BANK(Moves) - call GetFarByte - pop hl - ld [hl], a - pop hl - jr .NextMove - -.done - pop bc - pop de - pop hl - ret -; 4256e - -ShiftMoves: ; 4256e - ld c, NUM_MOVES - 1 -.loop - inc de - ld a, [de] - ld [hli], a - dec c - jr nz, .loop - ret -; 42577 - - -Function42577: ; 42577 - push de - ld d, $0 - predef FlagPredef - pop de - ret -; 42581 - -GetPreEvolution: ; 42581 -; Find the first mon to evolve into CurPartySpecies. - -; Return carry and the new species in CurPartySpecies -; if a pre-evolution is found. - - ld c, 0 -.loop ; For each Pokemon... - ld hl, EvosAttacksPointers - ld b, 0 -rept 2 - add hl, bc -endr - ld a, [hli] - ld h, [hl] - ld l, a -.loop2 ; For each evolution... - ld a, [hli] - and a - jr z, .no_evolve ; If we jump, this Pokemon does not evolve into CurPartySpecies. - cp EVOLVE_STAT ; This evolution type has the extra parameter of stat comparison. - jr nz, .not_tyrogue - inc hl - -.not_tyrogue - inc hl - ld a, [CurPartySpecies] - cp [hl] - jr z, .found_preevo - inc hl - ld a, [hl] - and a - jr nz, .loop2 - -.no_evolve - inc c - ld a, c - cp NUM_POKEMON - jr c, .loop - and a - ret - -.found_preevo - inc c - ld a, c - ld [CurPartySpecies], a - scf - ret -; 425b1 - - +INCLUDE "engine/evolve.asm" SECTION "bank11", ROMX, BANK[$11] @@ -20888,7 +20205,7 @@ CheckPartyFullAfterContest: ; 4d9e5 call GetPartyLocation ld a, [hl] ld [CurPartyLevel], a - call Function4db49 + call SetCaughtData ld a, [PartyCount] dec a ld hl, PartyMon1CaughtLocation @@ -20950,7 +20267,7 @@ CheckPartyFullAfterContest: ; 4d9e5 ld a, [sBoxMon1Level] ld [CurPartyLevel], a call CloseSRAM - call Function4db83 + call SetBoxMonCaughtData ld a, BANK(sBoxMon1CaughtLocation) call GetSRAMBank ld hl, sBoxMon1CaughtLocation @@ -20987,12 +20304,12 @@ TextJump_GiveANickname: ; 0x4db44 ; 0x4db49 -Function4db49: ; 4db49 +SetCaughtData: ; 4db49 ld a, [PartyCount] dec a ld hl, PartyMon1CaughtLevel call GetPartyLocation -Function4db53: ; 4db53 +SetBoxmonOrEggmonCaughtData: ; 4db53 ld a, [TimeOfDay] inc a rrca @@ -21026,34 +20343,34 @@ Function4db53: ; 4db53 ret ; 4db83 -Function4db83: ; 4db83 +SetBoxMonCaughtData: ; 4db83 ld a, BANK(sBoxMon1CaughtLevel) call GetSRAMBank ld hl, sBoxMon1CaughtLevel - call Function4db53 + call SetBoxmonOrEggmonCaughtData call CloseSRAM ret ; 4db92 -SetBoxMonCaughtData: ; 4db92 +SetGiftBoxMonCaughtData: ; 4db92 push bc ld a, BANK(sBoxMon1CaughtLevel) call GetSRAMBank ld hl, sBoxMon1CaughtLevel pop bc - call SetPkmnCaughtData + call SetGiftMonCaughtData call CloseSRAM ret ; 4dba3 -SetPartymonCaughtData: ; 4dba3 +SetGiftPartyMonCaughtData: ; 4dba3 ld a, [PartyCount] dec a ld hl, PartyMon1CaughtLevel push bc call GetPartyLocation pop bc -SetPkmnCaughtData: ; 4dbaf +SetGiftMonCaughtData: ; 4dbaf xor a ld [hli], a ld a, $7e @@ -21064,7 +20381,7 @@ SetPkmnCaughtData: ; 4dbaf ; 4dbb8 -Function4dbb8: ; 4dbb8 (13:5bb8) +SetEggMonCaughtData: ; 4dbb8 (13:5bb8) ld a, [CurPartyMon] ld hl, PartyMon1CaughtLevel call GetPartyLocation @@ -21072,7 +20389,7 @@ Function4dbb8: ; 4dbb8 (13:5bb8) push af ld a, $1 ld [CurPartyLevel], a - call Function4db53 + call SetBoxmonOrEggmonCaughtData pop af ld [CurPartyLevel], a ret @@ -34954,7 +34271,7 @@ PlaySlowCry: ; fb841 ret ; fb877 -Functionfb877: ; fb877 +NewPokedexEntry: ; fb877 ld a, [hMapAnims] push af xor a @@ -35300,22 +34617,22 @@ Pokered_MonIndices: ; fb91c ; fba18 -Functionfba18: ; fba18 +UpdateUnownDex: ; fba18 ld a, [UnownLetter] ld c, a ld b, 26 ld hl, UnownDex -.asm_fba21 +.loop ld a, [hli] and a - jr z, .asm_fba2b + jr z, .done cp c ret z dec b - jr nz, .asm_fba21 + jr nz, .loop ret -.asm_fba2b +.done dec hl ld [hl], c ret @@ -35324,8 +34641,8 @@ Functionfba18: ; fba18 Functionfba2e: ; fba2e (3e:7a2e) hlcoord 4, 15 - ld bc, $c - ld a, $7f + ld bc, 12 + ld a, " " call ByteFill ld a, [wc7dd] ld e, a @@ -35650,7 +34967,7 @@ Functionfcc63: ; fcc63 jr c, .asm_fcd1c ld b, 1 .asm_fcd1c - callba SetPartymonCaughtData + callba SetGiftPartyMonCaughtData ld e, TRADE_NICK call GetTradeAttribute diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index ba26f1b2d..d0a0c72e3 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -6465,7 +6465,7 @@ Function102b32: ; 102b32 ld [CurPartyMon], a ld a, $1 ld [wd1e9], a - callba Function421d8 + callba EvolvePokemon call Function102d9a call Function102dd3 call Function102dec @@ -6769,7 +6769,7 @@ Function102d48: ; 102d48 ld hl, PartyMon1DVs call AddNTimes predef GetUnownLetter - callba Functionfba18 + callba UpdateUnownDex ld a, [wdef4] and a jr nz, .asm_102d98 diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm index 931cda0ac..b07164f6f 100755 --- a/misc/mobile_46.asm +++ b/misc/mobile_46.asm @@ -7676,7 +7676,7 @@ Function11b7e5: ; 11b7e5 ld [wd1e9], a ld a, $2 ld [wLinkMode], a - callba Function421d8 + callba EvolvePokemon xor a ld [wLinkMode], a callba Function14a58 diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm index e9dbc799d..b1f609298 100644 --- a/misc/mobile_5f.asm +++ b/misc/mobile_5f.asm @@ -303,7 +303,7 @@ Function17d0f3: ; 17d0f3 ld [wd1e9], a ld a, $2 ld [wLinkMode], a - callba Function421d8 + callba EvolvePokemon xor a ld [wLinkMode], a callba Function14a58 @@ -415,7 +415,7 @@ Function17d1f1: ; 17d1f1 ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes predef GetUnownLetter - callab Functionfba18 + callab UpdateUnownDex ld a, [wdef4] and a jr nz, .asm_17d223 @@ -2362,7 +2362,7 @@ Function17ded9: ; 17ded9 push hl push bc predef TryAddMonToParty - callba Function4db49 + callba SetCaughtData pop bc pop hl bit 1, b @@ -2400,7 +2400,7 @@ Function17ded9: ; 17ded9 ld a, [hli] ld b, a push hl - callba SetPartymonCaughtData + callba SetGiftPartyMonCaughtData pop hl pop bc jr .asm_17df5e @@ -2558,7 +2558,7 @@ Function17e026: ; 17e026 push hl callba LoadEnemyMon callba SentPkmnIntoBox - callba Function4db83 + callba SetBoxMonCaughtData pop hl pop bc ld a, BANK(sBoxMonNicknames) @@ -2587,7 +2587,7 @@ Function17e026: ; 17e026 ld b, a push hl call CloseSRAM - callba SetBoxMonCaughtData + callba SetGiftBoxMonCaughtData ld a, $1 call GetSRAMBank pop hl diff --git a/wram.asm b/wram.asm index cc16e9527..a9d1f0b2d 100644 --- a/wram.asm +++ b/wram.asm @@ -1664,6 +1664,7 @@ wd0e4:: ds 4 wQueuedScriptBank:: ds 1 wQueuedScriptAddr:: ds 2 wd0eb:: ds 1 +wFieldMoveSucceeded:: wd0ec:: ds 1 VramState:: ; d0ed From 8a6a1a7d77fdcd1f8468f0c411795a8f039d4bd8 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 18 Nov 2015 23:16:25 -0500 Subject: [PATCH 25/40] CmdQueues --- battle/core.asm | 22 ++-- constants/map_constants.asm | 8 ++ engine/events.asm | 2 +- engine/events_2.asm | 216 ++++++++++++++++++------------------ engine/mail.asm | 6 +- engine/pack.asm | 6 +- engine/party_menu.asm | 62 ++++++----- engine/scripting.asm | 6 +- engine/startmenu.asm | 26 ++--- home.asm | 80 ++++++------- home/movement.asm | 6 +- items/item_effects.asm | 6 +- main.asm | 12 +- maps/IcePathB1F.asm | 44 ++++---- misc/mobile_40.asm | 8 +- wram.asm | 11 +- 16 files changed, 266 insertions(+), 255 deletions(-) diff --git a/battle/core.asm b/battle/core.asm index e800c3fa1..5ebd8517c 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -2997,10 +2997,10 @@ IsMobileBattle: ; 3d2f1 Function3d2f7: ; 3d2f7 call ClearBGPalettes Function3d2fa: ; switch to fullscreen menu? - callba Function5004f - callba Function50405 + callba LoadPartyMenuGFX + callba InitPartyMenuWithCancel callba Function8e85 - callba Function503e0 + callba InitPartyMenuGFX ret ; 3d313 @@ -5719,7 +5719,7 @@ MoveSelectionScreen: ; 3e4bc .asm_3e58e call MoveInfoBox - ld a, [wd0e3] + ld a, [wSwitchMon] and a jr z, .asm_3e5a3 hlcoord 5, 13 @@ -5742,7 +5742,7 @@ MoveSelectionScreen: ; 3e4bc push af xor a - ld [wd0e3], a + ld [wSwitchMon], a ld a, [MenuSelection2] dec a ld [MenuSelection2], a @@ -5838,7 +5838,7 @@ endr ; 3e643 .asm_3e643 ; 3e643 - ld a, [wd0e3] + ld a, [wSwitchMon] and a jr z, .asm_3e6bf ld hl, BattleMonMoves @@ -5856,14 +5856,14 @@ endr ld a, [hl] and $f ld b, a - ld a, [wd0e3] + ld a, [wSwitchMon] swap a add b ld [hl], a jr .asm_3e682 .asm_3e671 - ld a, [wd0e3] + ld a, [wSwitchMon] cp b jr nz, .asm_3e682 ld a, [hl] @@ -5890,12 +5890,12 @@ endr .asm_3e69e xor a - ld [wd0e3], a + ld [wSwitchMon], a jp MoveSelectionScreen .asm_3e6a5 push hl - ld a, [wd0e3] + ld a, [wSwitchMon] dec a ld c, a ld b, 0 @@ -5917,7 +5917,7 @@ endr .asm_3e6bf ld a, [MenuSelection2] - ld [wd0e3], a + ld [wSwitchMon], a jp MoveSelectionScreen ; 3e6c8 diff --git a/constants/map_constants.asm b/constants/map_constants.asm index 6ff5bc55b..b0b1ad588 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -698,3 +698,11 @@ const_value SET 1 const FRUITTREE_PEWTER_CITY_1 const FRUITTREE_PEWTER_CITY_2 const FRUITTREE_FUCHSIA_CITY + +CMDQUEUE_TYPE EQU 0 +CMDQUEUE_ADDR EQU 1 +CMDQUEUE_03 EQU 3 +CMDQUEUE_04 EQU 4 +CMDQUEUE_05 EQU 5 +CMDQUEUE_ENTRY_SIZE EQU 6 +CMDQUEUE_CAPACITY EQU 4 diff --git a/engine/events.asm b/engine/events.asm index 95c002042..40e863cdc 100644 --- a/engine/events.asm +++ b/engine/events.asm @@ -168,7 +168,7 @@ Function9676d: ; 9676d HandleMap: ; 96773 call ResetOverworldDelay call Function967c1 - callba Function97e08 + callba HandleCmdQueue ; no need to farcall call MapEvents ; Not immediately entering a connected map will cause problems. diff --git a/engine/events_2.asm b/engine/events_2.asm index 4597e92e5..972379e6d 100644 --- a/engine/events_2.asm +++ b/engine/events_2.asm @@ -335,8 +335,8 @@ DoBikeStep:: ; 97db3 ret ; 97df9 -Function97df9:: ; 97df9 - ld hl, wd6de +ClearCmdQueue:: ; 97df9 + ld hl, wCmdQueue ld de, 6 ld c, 4 xor a @@ -348,8 +348,8 @@ Function97df9:: ; 97df9 ret ; 97e08 -Function97e08:: ; 97e08 - ld hl, wd6de +HandleCmdQueue:: ; 97e08 + ld hl, wCmdQueue xor a .loop ld [hMapObjectIndexBuffer], a @@ -359,106 +359,106 @@ Function97e08:: ; 97e08 push hl ld b, h ld c, l - call Function97e79 + call HandleQueuedCommand pop hl .skip - ld de, $0006 + ld de, CMDQUEUE_ENTRY_SIZE add hl, de ld a, [hMapObjectIndexBuffer] inc a - cp $4 + cp CMDQUEUE_CAPACITY jr nz, .loop ret ; 97e25 -Function97e25: ; 97e25 - ld hl, wd6de - ld bc, 6 +GetNthCmdQueueEntry: ; 97e25 unreferenced + ld hl, wCmdQueue + ld bc, CMDQUEUE_ENTRY_SIZE call AddNTimes ld b, h ld c, l ret ; 97e31 -Function97e31:: ; 97e31 +WriteCmdQueue:: ; 97e31 push bc push de - call Function97e45 + call .GetNextEmptyEntry ld d, h ld e, l pop hl pop bc ret c ld a, b - ld bc, $0005 + ld bc, CMDQUEUE_ENTRY_SIZE - 1 call FarCopyBytes xor a ld [hl], a ret ; 97e45 -Function97e45: ; 97e45 - ld hl, wd6de - ld de, $0006 - ld c, $4 -.asm_97e4d +.GetNextEmptyEntry: ; 97e45 + ld hl, wCmdQueue + ld de, CMDQUEUE_ENTRY_SIZE + ld c, CMDQUEUE_CAPACITY +.loop ld a, [hl] and a - jr z, .asm_97e57 + jr z, .done add hl, de dec c - jr nz, .asm_97e4d + jr nz, .loop scf ret -.asm_97e57 - ld a, $4 +.done + ld a, CMDQUEUE_CAPACITY sub c and a ret ; 97e5c -Function97e5c:: ; 97e5c - ld hl, wd6de - ld de, $0006 - ld c, $4 -.asm_97e64 +DelCmdQueue:: ; 97e5c + ld hl, wCmdQueue + ld de, CMDQUEUE_ENTRY_SIZE + ld c, CMDQUEUE_CAPACITY +.loop ld a, [hl] cp b - jr z, .asm_97e6e + jr z, .done add hl, de dec c - jr nz, .asm_97e64 + jr nz, .loop and a ret -.asm_97e6e +.done xor a ld [hl], a scf ret ; 97e72 -Function97e72: ; 97e72 - ld hl, 0 +_DelCmdQueue: ; 97e72 + ld hl, CMDQUEUE_TYPE add hl, bc ld [hl], 0 ret ; 97e79 -Function97e79: ; 97e79 - ld hl, 0 +HandleQueuedCommand: ; 97e79 + ld hl, CMDQUEUE_TYPE add hl, bc ld a, [hl] cp 5 - jr c, .asm_97e83 + jr c, .okay xor a -.asm_97e83 +.okay ld e, a ld d, 0 - ld hl, Table97e94 + ld hl, .Jumptable_ba rept 3 add hl, de endr @@ -472,16 +472,16 @@ endr ret ; 97e94 -Table97e94: ; 97e94 - dba Function97eb7 - dba Function97eb8 - dba Function97f42 - dba Function97ef9 - dba Function97ebc +.Jumptable_ba: ; 97e94 + dba CmdQueue_Null + dba CmdQueue_Null2 + dba CmdQueue_StoneTable + dba CmdQueue_Type3 + dba CmdQueue_Type4 ; 97ea3 -Function97ea3: ; 97ea3 - ld hl, $0005 +CmdQueueAnonymousJumptable: ; 97ea3 + ld hl, CMDQUEUE_05 add hl, bc ld a, [hl] pop hl @@ -489,45 +489,44 @@ Function97ea3: ; 97ea3 ret ; 97eab -Function97eab: ; 97eab - ld hl, $0005 +CmdQueueAnonJT_Increment: ; 97eab + ld hl, CMDQUEUE_05 add hl, bc inc [hl] ret ; 97eb1 -Function97eb1: ; 97eb1 - ld hl, $0005 +CmdQueueAnonJT_Decrement: ; 97eb1 + ld hl, CMDQUEUE_05 add hl, bc dec [hl] ret ; 97eb7 -Function97eb7: ; 97eb7 +CmdQueue_Null: ; 97eb7 ret ; 97eb8 -Function97eb8: ; 97eb8 +CmdQueue_Null2: ; 97eb8 call ret_2f3e ret ; 97ebc -Function97ebc: ; 97ebc - call Function97ea3 - dw Function97ec3 - dw Function97ecd +CmdQueue_Type4: ; 97ebc + call CmdQueueAnonymousJumptable + ; anonymous jumptable + dw .zero + dw .one ; 97ec3 -Function97ec3: ; 97ec3 +.zero: ; 97ec3 ld a, [hSCY] - ld hl, $0004 + ld hl, 4 add hl, bc ld [hl], a - call Function97eab -; 97ecd - -Function97ecd: ; 97ecd - ld hl, $0001 + call CmdQueueAnonJT_Increment +.one: ; 97ecd + ld hl, 1 add hl, bc ld a, [hl] dec a @@ -535,7 +534,7 @@ Function97ecd: ; 97ecd jr z, .asm_97eee and $1 jr z, .asm_97ee4 - ld hl, $0002 + ld hl, 2 add hl, bc ld a, [hSCY] sub [hl] @@ -543,7 +542,7 @@ Function97ecd: ; 97ecd ret .asm_97ee4 - ld hl, $0002 + ld hl, 2 add hl, bc ld a, [hSCY] add [hl] @@ -551,61 +550,60 @@ Function97ecd: ; 97ecd ret .asm_97eee - ld hl, $0004 + ld hl, 4 add hl, bc ld a, [hl] ld [hSCY], a - call Function97e72 + call _DelCmdQueue ret ; 97ef9 -Function97ef9: ; 97ef9 - call Function97ea3 - dw Function97f02 - dw Function97f0a - dw Function97f1b +CmdQueue_Type3: ; 97ef9 + call CmdQueueAnonymousJumptable + ; anonymous jumptable + dw .zero + dw .one + dw .two ; 97f02 -Function97f02: ; 97f02 - call Function97f38 - jr z, Function97f2c - call Function97eab -; 97f0a +.zero: ; 97f02 + call .IsPlayerFacingDown + jr z, .PlayerNotFacingDown + call CmdQueueAnonJT_Increment +.one: ; 97f0a + call .IsPlayerFacingDown + jr z, .PlayerNotFacingDown + call CmdQueueAnonJT_Increment -Function97f0a: ; 97f0a - call Function97f38 - jr z, Function97f2c - call Function97eab - - ld hl, $0002 + ld hl, 2 add hl, bc ld a, [hl] ld [wd173], a ret ; 97f1b -Function97f1b: ; 97f1b - call Function97f38 - jr z, Function97f2c - call Function97eb1 +.two: ; 97f1b + call .IsPlayerFacingDown + jr z, .PlayerNotFacingDown + call CmdQueueAnonJT_Decrement - ld hl, $0003 + ld hl, 3 add hl, bc ld a, [hl] ld [wd173], a ret ; 97f2c -Function97f2c: ; 97f2c +.PlayerNotFacingDown: ; 97f2c ld a, $7f ld [wd173], a - ld hl, $0005 + ld hl, 5 add hl, bc ld [hl], 0 ret ; 97f38 -Function97f38: ; 97f38 +.IsPlayerFacingDown: ; 97f38 push bc ld bc, PlayerStruct call GetSpriteDirection @@ -614,50 +612,50 @@ Function97f38: ; 97f38 ret ; 97f42 -Function97f42: ; 97f42 +CmdQueue_StoneTable: ; 97f42 ld de, PlayerStruct - ld a, $d -.asm_97f47 + ld a, NUM_OBJECT_STRUCTS +.loop push af - ld hl, 0 + ld hl, OBJECT_SPRITE add hl, de ld a, [hl] and a - jr z, .asm_97f71 + jr z, .next - ld hl, $0003 + ld hl, OBJECT_MOVEMENTTYPE add hl, de ld a, [hl] - cp $19 - jr nz, .asm_97f71 + cp STEP_TYPE_19 + jr nz, .next - ld hl, $000e + ld hl, OBJECT_NEXT_TILE add hl, de ld a, [hl] call CheckPitTile - jr nz, .asm_97f71 + jr nz, .next - ld hl, $0007 + ld hl, OBJECT_DIRECTION_WALKING add hl, de ld a, [hl] - cp $ff - jr nz, .asm_97f71 - call Function3567 - jr c, .asm_97f7c + cp STANDING + jr nz, .next + call HandleStoneQueue + jr c, .fall_down_hole -.asm_97f71 - ld hl, $0028 +.next + ld hl, OBJECT_STRUCT_LENGTH add hl, de ld d, h ld e, l pop af dec a - jr nz, .asm_97f47 + jr nz, .loop ret -.asm_97f7c +.fall_down_hole pop af ret ; 97f7e diff --git a/engine/mail.asm b/engine/mail.asm index c0bc591b0..1cf1a13a7 100755 --- a/engine/mail.asm +++ b/engine/mail.asm @@ -503,9 +503,9 @@ Function4484a: ; 0x4484a ld [PartyMenuActionText], a call ClearBGPalettes .try_again - callba Function5004f - callba Function50405 - callba Function503e0 + callba LoadPartyMenuGFX + callba InitPartyMenuWithCancel + callba InitPartyMenuGFX callba WritePartyMenuTilemap callba PrintPartyMenuText call WaitBGMap diff --git a/engine/pack.asm b/engine/pack.asm index 2ba9c9d3a..e9b52606c 100644 --- a/engine/pack.asm +++ b/engine/pack.asm @@ -595,9 +595,9 @@ Function103fd: ; 103fd ld a, $8 ld [PartyMenuActionText], a call ClearBGPalettes - callba Function5004f - callba Function50405 - callba Function503e0 + callba LoadPartyMenuGFX + callba InitPartyMenuWithCancel + callba InitPartyMenuGFX .asm_10427 callba WritePartyMenuTilemap callba PrintPartyMenuText diff --git a/engine/party_menu.asm b/engine/party_menu.asm index 6b50ca620..e81355c7a 100644 --- a/engine/party_menu.asm +++ b/engine/party_menu.asm @@ -30,15 +30,15 @@ Function5001d: ; 5001d ; 5003f Function5003f: ; 5003f - call Function5004f - call Function50405 - call Function503e0 + call LoadPartyMenuGFX + call InitPartyMenuWithCancel + call InitPartyMenuGFX call WritePartyMenuTilemap call PrintPartyMenuText ret ; 5004f -Function5004f: ; 5004f +LoadPartyMenuGFX: ; 5004f call LoadFontsBattleExtra callab Function8ad1 ; engine/color.asm callab InefficientlyClear121BytesAtwc300 @@ -648,7 +648,7 @@ endr ; 503e0 -Function503e0: ; 503e0 +InitPartyMenuGFX: ; 503e0 ld hl, PartyCount ld a, [hli] and a @@ -656,7 +656,7 @@ Function503e0: ; 503e0 ld c, a xor a ld [hObjectStructIndexBuffer], a -.asm_503ea +.loop push bc push hl ld hl, Function8e83f @@ -669,60 +669,62 @@ Function503e0: ; 503e0 pop hl pop bc dec c - jr nz, .asm_503ea + jr nz, .loop callab Function8cf69 ret ; 50405 -Function50405: ; 50405 +InitPartyMenuWithCancel: ; 50405 +; with cancel xor a - ld [wd0e3], a - ld de, Unknown_5044f - call Function1bb1 + ld [wSwitchMon], a + ld de, PartyMenuAttributes + call InitMenu3 ld a, [PartyCount] inc a - ld [wcfa3], a + ld [wcfa3], a ; list length dec a ld b, a - ld a, [wd0d8] + ld a, [wPartyMenuCursor] and a - jr z, .asm_50422 + jr z, .skip inc b cp b - jr c, .asm_50424 + jr c, .done -.asm_50422 +.skip ld a, $1 -.asm_50424 +.done ld [MenuSelection2], a - ld a, $3 + ld a, A_BUTTON | B_BUTTON ld [wcfa8], a ret ; 5042d -Function5042d: ; 0x5042d - ld de, Unknown_5044f - call Function1bb1 +InitPartyMenuNoCancel: ; 0x5042d +; no cancel + ld de, PartyMenuAttributes + call InitMenu3 ld a, [PartyCount] - ld [wcfa3], a + ld [wcfa3], a ; list length ld b, a - ld a, [wd0d8] + ld a, [wPartyMenuCursor] and a - jr z, .asm_50444 + jr z, .skip inc b cp b - jr c, .asm_50446 -.asm_50444 + jr c, .done +.skip ld a, $1 -.asm_50446 +.done ld [MenuSelection2], a - ld a, $3 + ld a, A_BUTTON | B_BUTTON ld [wcfa8], a ret ; 5044f (14:444f) -Unknown_5044f: ; 5044f +PartyMenuAttributes: ; 5044f ; cursor y ; cursor x ; list length @@ -744,7 +746,7 @@ PartyMenuSelect: ; 0x50457 ld a, [MenuSelection2] ; menu selection? cp b jr z, .exitmenu ; CANCEL - ld [wd0d8], a + ld [wPartyMenuCursor], a ld a, [hJoyLast] ld b, a bit 1, b diff --git a/engine/scripting.asm b/engine/scripting.asm index f576fa3d4..6d87c2f1b 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -2153,7 +2153,7 @@ CopyConvertedText: ; 976c8 Script_itemtotext: ; 976d5 ; script command 0x41 ; parameters: -; item (ItemLabelByte) +; item (ItemLabelByte); use 0 to draw from ScriptVar ; memory (SingleByteParam) call GetScriptByte @@ -2923,7 +2923,7 @@ Script_writecmdqueue: ; 97a8b ld d, a ld a, [ScriptBank] ld b, a - callba Function97e31 + callba WriteCmdQueue ; no need to farcall ret ; 97a9e @@ -2936,7 +2936,7 @@ Script_delcmdqueue: ; 97a9e ld [ScriptVar], a call GetScriptByte ld b, a - callba Function97e5c + callba DelCmdQueue ; no need to farcall ret c ld a, 1 ld [ScriptVar], a diff --git a/engine/startmenu.asm b/engine/startmenu.asm index 290e6d6ea..bcf2247af 100755 --- a/engine/startmenu.asm +++ b/engine/startmenu.asm @@ -533,9 +533,9 @@ StartMenu_Pokemon: ; 12976 call ClearBGPalettes .menu - callba Function5004f - callba Function50405 - callba Function503e0 + callba LoadPartyMenuGFX + callba InitPartyMenuWithCancel + callba InitPartyMenuGFX .menunoreload callba WritePartyMenuTilemap @@ -684,7 +684,7 @@ PartyMonItemName: ; 12a6c CancelPokemonAction: ; 12a79 - callba Function50405 + callba InitPartyMenuWithCancel callba Function8ea71 ld a, 1 ret @@ -746,10 +746,10 @@ SwitchPartyMons: ; 12aec ld a, [CurPartyMon] inc a - ld [wd0e3], a + ld [wSwitchMon], a callba Function8ea8c - callba Function5042d + callba InitPartyMenuNoCancel ld a, 4 ld [PartyMenuActionText], a @@ -758,7 +758,7 @@ SwitchPartyMons: ; 12aec hlcoord 0, 1 ld bc, 20 * 2 - ld a, [wd0e3] + ld a, [wSwitchMon] dec a call AddNTimes ld [hl], "▷" @@ -775,9 +775,9 @@ SwitchPartyMons: ; 12aec xor a ld [PartyMenuActionText], a - callba Function5004f - callba Function50405 - callba Function503e0 + callba LoadPartyMenuGFX + callba InitPartyMenuWithCancel + callba InitPartyMenuGFX ld a, 1 ret @@ -1476,7 +1476,7 @@ Function12f5b: ; 12f5b Function12f73: ; 12f73 call SetUpMoveScreenBG ld de, Unknown_12fb2 - call Function1bb1 + call InitMenu3 call Function131ef ld hl, wcfa5 set 6, [hl] @@ -1505,7 +1505,7 @@ Function12f9f: ; 12f9f Function12fa0: ; 12fa0 push af xor a - ld [wd0e3], a + ld [wSwitchMon], a ld hl, wcfa5 res 6, [hl] call ClearSprites @@ -1543,7 +1543,7 @@ MoveScreenLoop: ; 12fd5 call SetUpMoveScreenBG call Function132d3 ld de, Unknown_13163 - call Function1bb1 + call InitMenu3 .loop call Function131ef ld hl, wcfa5 diff --git a/home.asm b/home.asm index a30fd8fbc..95ca0549d 100644 --- a/home.asm +++ b/home.asm @@ -1214,12 +1214,12 @@ Function354b:: ; 354b joypad ; 3567 -Function3567:: ; 3567 +HandleStoneQueue:: ; 3567 ld a, [hROMBank] push af call SwitchToMapScriptHeaderBank - call Function3574 + call .WarpAction pop bc ld a, b @@ -1227,39 +1227,39 @@ Function3567:: ; 3567 ret ; 3574 -Function3574:: ; 3574 - ld hl, $0001 +.WarpAction ; 3574 + ld hl, OBJECT_MAP_OBJECT_INDEX add hl, de ld a, [hl] cp $ff - jr z, .asm_3597 + jr z, .nope ld l, a push hl - call Function3599 + call .IsPersonOnWarp pop hl - jr nc, .asm_3597 + jr nc, .nope ld d, a ld e, l - call Function35de - jr nc, .asm_3597 + call .IsObjectInStoneTable + jr nc, .nope call CallMapScript callba EnableScriptMode scf ret -.asm_3597 +.nope and a ret ; 3599 -Function3599:: ; 3599 +.IsPersonOnWarp ; 3599 push de - ld hl, $0010 + ld hl, OBJECT_NEXT_MAP_X add hl, de ld a, [hl] - ld hl, $0011 + ld hl, OBJECT_NEXT_MAP_Y add hl, de ld e, [hl] @@ -1268,93 +1268,93 @@ Function3599:: ; 3599 ld a, e sub 4 ld e, a - call Function35b0 + call .check_on_warp pop de ret ; 35b0 -Function35b0:: ; 35b0 - ld hl, wCurrentCaller + 3 +.check_on_warp ; 35b0 + ld hl, wCurrMapWarpHeaderPointer ld a, [hli] ld h, [hl] ld l, a - ld a, [wCurrentCaller + 2] + ld a, [wCurrMapWarpCount] and a - jr z, .asm_35d3 + jr z, .nope2 .loop push af ld a, [hl] cp e - jr nz, .asm_35c8 + jr nz, .not_on_warp inc hl ld a, [hld] cp d - jr nz, .asm_35c8 - jr .asm_35d5 + jr nz, .not_on_warp + jr .found_warp -.asm_35c8 - ld a, $5 +.not_on_warp + ld a, 5 add l ld l, a - jr nc, .asm_35cf + jr nc, .no_carry inc h -.asm_35cf +.no_carry pop af dec a jr nz, .loop -.asm_35d3 +.nope2 and a ret -.asm_35d5 +.found_warp pop af ld d, a - ld a, [wCurrentCaller + 2] + ld a, [wCurrMapWarpCount] sub d inc a scf ret ; 35de -Function35de:: ; 35de +.IsObjectInStoneTable ; 35de inc e - ld hl, $0001 + ld hl, CMDQUEUE_ADDR add hl, bc ld a, [hli] ld h, [hl] ld l, a -.asm_35e6 +.loop2 ld a, [hli] cp $ff - jr z, .asm_35fc + jr z, .nope3 cp d - jr nz, .asm_35f7 + jr nz, .next_inc3 ld a, [hli] cp e - jr nz, .asm_35f8 + jr nz, .next_inc2 ld a, [hli] ld h, [hl] ld l, a - jr .asm_35fe + jr .yes -.asm_35f7 +.next_inc3 inc hl -.asm_35f8 +.next_inc2 rept 2 inc hl endr - jr .asm_35e6 + jr .loop2 -.asm_35fc +.nope3 and a ret -.asm_35fe +.yes scf ret ; 3600 diff --git a/home/movement.asm b/home/movement.asm index fdb606bd5..7de5e0432 100644 --- a/home/movement.asm +++ b/home/movement.asm @@ -136,17 +136,17 @@ endr big_step_right ; 1bb1 -Function1bb1:: ; 1bb1 +InitMenu3:: ; 1bb1 push hl push bc ld hl, wcfa1 ld b, $8 -.asm_1bb8 +.loop ld a, [de] inc de ld [hli], a dec b - jr nz, .asm_1bb8 + jr nz, .loop ld a, $1 rept 2 ld [hli], a diff --git a/items/item_effects.asm b/items/item_effects.asm index 9fc3c844f..e97423fbd 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -1875,9 +1875,9 @@ UseItem_SelectMon: ; f1f9 (3:71f9) ret ChoosePkmnToUseItemOn: ; f21c (3:721c) - callba Function5004f - callba Function50405 - callba Function503e0 + callba LoadPartyMenuGFX + callba InitPartyMenuWithCancel + callba InitPartyMenuGFX callba WritePartyMenuTilemap callba PrintPartyMenuText call WaitBGMap diff --git a/main.asm b/main.asm index e759b4931..7414d769a 100644 --- a/main.asm +++ b/main.asm @@ -14741,9 +14741,9 @@ Function2c7fb: ; 2c7fb call ClearBGPalettes Function2c80a: ; 2c80a - callba Function5004f - callba Function50405 - callba Function503e0 + callba LoadPartyMenuGFX + callba InitPartyMenuWithCancel + callba InitPartyMenuGFX ld a, $3 ld [PartyMenuActionText], a .loopback @@ -18255,8 +18255,8 @@ Function4aa22: ; 4aa22 call ClearBGPalettes Function4aa25: ; 4aa25 - callba Function5004f - callba Function50405 + callba LoadPartyMenuGFX + callba InitPartyMenuWithCancel call Function4aad3 Function4aa34: ; 4aa34 @@ -36275,7 +36275,7 @@ RunCallback_05_03: ; 1045b0 call RunMapCallback RunCallback_03: ; 1045c4 - callba Function97df9 + callba ClearCmdQueue ld a, $3 call RunMapCallback call GetMapHeaderTimeOfDayNybble diff --git a/maps/IcePathB1F.asm b/maps/IcePathB1F.asm index c7ce6cc0b..80d341b03 100644 --- a/maps/IcePathB1F.asm +++ b/maps/IcePathB1F.asm @@ -7,61 +7,61 @@ IcePathB1F_MapScriptHeader: ; callbacks - dbw 3, UnknownScript_0x7e4be + dbw 3, .SetUpStoneTable -UnknownScript_0x7e4be: - writecmdqueue CmdQueue_0x7e4c2 +.SetUpStoneTable: + writecmdqueue .CommandQueue return -CmdQueue_0x7e4c2: - dbw 2, StoneTable_0x7e4c7 ; check if any stones are sitting on a warp +.CommandQueue: + dbw 2, .StoneTable ; check if any stones are sitting on a warp db 0, 0 ; filler -StoneTable_0x7e4c7: +.StoneTable: db 3, 2 ; warp, person - dw UnknownScript_0x7e4d8 + dw .Boulder1 db 4, 3 ; warp, person - dw UnknownScript_0x7e4e0 + dw .Boulder2 db 5, 4 ; warp, person - dw UnknownScript_0x7e4e8 + dw .Boulder3 db 6, 5 ; warp, person - dw UnknownScript_0x7e4f0 + dw .Boulder4 - db $ff ; end + db -1 ; end -UnknownScript_0x7e4d8: +.Boulder1: disappear 2 clearevent EVENT_BOULDER_IN_ICE_PATH_1A - jump UnknownScript_0x7e4f8 + jump .FinishBoulder -UnknownScript_0x7e4e0: +.Boulder2: disappear 3 clearevent EVENT_BOULDER_IN_ICE_PATH_2A - jump UnknownScript_0x7e4f8 + jump .FinishBoulder -UnknownScript_0x7e4e8: +.Boulder3: disappear 4 clearevent EVENT_BOULDER_IN_ICE_PATH_3A - jump UnknownScript_0x7e4f8 + jump .FinishBoulder -UnknownScript_0x7e4f0: +.Boulder4: disappear 5 clearevent EVENT_BOULDER_IN_ICE_PATH_4A - jump UnknownScript_0x7e4f8 + jump .FinishBoulder -UnknownScript_0x7e4f8: +.FinishBoulder: pause 30 - scall UnknownScript_0x7e504 + scall .BoulderFallsThrough loadfont writetext UnknownText_0x7e512 closetext loadmovesprites end -UnknownScript_0x7e504: +.BoulderFallsThrough: playsound SFX_STRENGTH earthquake 80 end diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index d0a0c72e3..f3d023e08 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -1984,7 +1984,7 @@ Function100c74: ; 100c74 Function100c98: ; 100c98 ld de, Unknown_100cad - call Function1bb1 + call InitMenu3 ld a, [wd0eb] inc a ld [wcfa3], a @@ -6305,7 +6305,7 @@ Function1029cf: ; 1029cf ld hl, wcd4b set 1, [hl] ld de, Unknown_102a33 - call Function1bb1 + call InitMenu3 ld a, [wcd4a] inc a ld [wcd4a], a @@ -6478,7 +6478,7 @@ Function102b4e: ; 102b4e ld a, [MenuSelection2] push af ld de, Unknown_102b73 - call Function1bb1 + call InitMenu3 pop af ld [MenuSelection2], a ld a, [OTPartyCount] @@ -6503,7 +6503,7 @@ Function102b7b: ; 102b7b ld a, [MenuSelection2] push af ld de, Unknown_102b94 - call Function1bb1 + call InitMenu3 pop af ld [MenuSelection2], a ld a, [PartyCount] diff --git a/wram.asm b/wram.asm index a9d1f0b2d..967515147 100644 --- a/wram.asm +++ b/wram.asm @@ -1357,8 +1357,8 @@ wcf98:: ds 3 wcf9b:: ds 3 wcf9e:: ds 3 wMenuData2End:: +wMenuData3:: wcfa1:: ds 1 - wcfa2:: ds 1 wcfa3:: ds 1 wcfa4:: ds 1 @@ -1366,6 +1366,7 @@ wcfa5:: ds 1 ; dynamic menu flags? wcfa6:: ds 1 ; dynamic menu flags? wcfa7:: ds 1 wcfa8:: ds 1 +wMenuData3End:: MenuSelection2:: ds 1 wcfaa:: ds 1 wcfab:: ds 1 @@ -1648,6 +1649,7 @@ CurMoveNum:: ; d0d5 wd0d6:: ds 1 wd0d7:: ds 1 +wPartyMenuCursor:: wd0d8:: ds 1 wItemsPocketCursor:: ds 1 wKeyItemsPocketCursor:: ds 1 @@ -1659,6 +1661,7 @@ wd0e0:: ds 1 wd0e1:: ds 1 wd0e2:: ds 1 wMoveSwapBuffer:: +wSwitchMon:: wd0e3:: ds 1 wd0e4:: ds 4 wQueuedScriptBank:: ds 1 @@ -2284,10 +2287,10 @@ ENDM object_struct Object10 object_struct Object11 object_struct Object12 -ObjectStructsEnd:: +ObjectStructsEnd:: ; d6de -wd6de:: - ds $40 +wCmdQueue:: ds CMDQUEUE_CAPACITY * CMDQUEUE_ENTRY_SIZE + ds $28 MapObjects:: ; d71e map_object: MACRO From 93a129eb6dc261faccaf2b2d58daf3db204ab3ba Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 19 Nov 2015 18:07:20 -0500 Subject: [PATCH 26/40] main.asm is now under 30k lines --- engine/crystal_intro.asm | 2531 +++++++ engine/debug.asm | 1517 +++++ engine/engine_flags.asm | 87 + engine/npctrade.asm | 620 ++ engine/party_menu.asm | 2 +- engine/printer.asm | 1493 +++++ engine/scripting.asm | 4 +- engine/sprites.asm | 545 +- engine/startmenu.asm | 2 +- engine/time_capsule/conversion.asm | 684 ++ engine/variables.asm | 150 + event/halloffame.asm | 628 ++ event/mom_phone.asm | 285 + gfx/font.asm | 236 + gfx/mail.asm | 1088 +++ home/map.asm | 2 +- main.asm | 9893 +--------------------------- misc/battle_tower_47.asm | 14 +- misc/crystal_misc.asm | 2 +- misc/mobile_22.asm | 2 +- misc/mobile_40.asm | 6 +- misc/mobile_45.asm | 24 +- misc/mobile_46.asm | 58 +- misc/mobile_5c.asm | 8 +- misc/mobile_5f.asm | 10 +- wram.asm | 6 +- 26 files changed, 9947 insertions(+), 9950 deletions(-) create mode 100755 engine/crystal_intro.asm create mode 100755 engine/debug.asm create mode 100755 engine/npctrade.asm create mode 100755 engine/printer.asm create mode 100755 engine/time_capsule/conversion.asm create mode 100755 engine/variables.asm create mode 100755 event/halloffame.asm create mode 100755 event/mom_phone.asm create mode 100755 gfx/font.asm create mode 100755 gfx/mail.asm diff --git a/engine/crystal_intro.asm b/engine/crystal_intro.asm new file mode 100755 index 000000000..7849a9f48 --- /dev/null +++ b/engine/crystal_intro.asm @@ -0,0 +1,2531 @@ +Functione455c: ; e455c + hlcoord 1, 1 + ld de, SCREEN_WIDTH + ld c, $10 +.asm_e4564 + ld [hl], $7f + add hl, de + dec c + jr nz, .asm_e4564 + hlcoord 1, 2 + ld bc, $28 + ld a, [wJumptableIndex] + call AddNTimes + ld [hl], $ed + ret +; e4579 + + +Functione4579: ; e4579 + ld de, MUSIC_NONE + call PlayMusic + call ClearBGPalettes + call ClearTileMap + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a + xor a + ld [hBGMapAddress], a + ld [hJoyDown], a + ld [hSCX], a + ld [hSCY], a + ld a, $90 + ld [hWY], a + call WaitBGMap + ld b, SCGB_19 + call GetSGBLayout + call SetPalettes + ld c, 10 + call DelayFrames + callab Copyright + call WaitBGMap + ld c, 100 + call DelayFrames + call ClearTileMap + callba GBCOnlyScreen + call Functione45e8 +.joy_loop + call JoyTextDelay + ld a, [hJoyLast] + and BUTTONS + jr nz, .pressed_button + ld a, [wJumptableIndex] + bit 7, a + jr nz, .finish + call PlaceGameFreakPresents + callba Function8cf69 + call DelayFrame + jr .joy_loop + +.pressed_button + call Functione465e + scf + ret + +.finish + call Functione465e + and a + ret +; e45e8 + +Functione45e8: ; e45e8 + ld de, GameFreakLogo + ld hl, VTiles2 + lb bc, BANK(GameFreakLogo), $1c + call Get1bpp + + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + + ld hl, IntroLogoGFX + ld de, w6_d000 + ld a, BANK(IntroLogoGFX) + call FarDecompress + + ld hl, VTiles0 + ld de, w6_d000 + lb bc, 1, 8 tiles + call Request2bpp + + ld hl, VTiles1 + ld de, w6_d000 + $80 tiles + lb bc, 1, 8 tiles + call Request2bpp + + pop af + ld [rSVBK], a + + callba Function8cf53 + depixel 10, 11, 4, 0 + ld a, SPRITE_ANIM_INDEX_03 + call _InitSpriteAnimStruct + ld hl, $7 + add hl, bc + ld [hl], $a0 + ld hl, $c + add hl, bc + ld [hl], $60 + ld hl, $d + add hl, bc + ld [hl], $30 + xor a + ld [wJumptableIndex], a + ld [wcf64], a + ld [wcf65], a + ld [hSCX], a + ld [hSCY], a + ld a, $1 + ld [hBGMapMode], a + ld a, $90 + ld [hWY], a + ld de, $e4e4 + call DmgToCgbObjPals + ret +; e465e + +Functione465e: ; e465e + callba Function8cf53 + call ClearTileMap + call ClearSprites + ld c, 16 + call DelayFrames + ret +; e4670 + +PlaceGameFreakPresents: ; e4670 + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, .jumptable +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; e467f + +.jumptable: ; e467f + dw PlaceGameFreakPresents_0 + dw PlaceGameFreakPresents_1 + dw PlaceGameFreakPresents_2 + dw PlaceGameFreakPresents_3 +; e4687 + +PlaceGameFreakPresents_AdvanceIndex: ; e4687 + ld hl, wJumptableIndex + inc [hl] + ret +; e468c + +PlaceGameFreakPresents_0: ; e468c + ret +; e468d + +PlaceGameFreakPresents_1: ; e468d + ld hl, wcf65 + ld a, [hl] + cp $20 + jr nc, .PlaceGameFreak + inc [hl] + ret + +.PlaceGameFreak + ld [hl], 0 + ld hl, .GAME_FREAK + decoord 5, 10 + ld bc, .end - .GAME_FREAK + call CopyBytes + call PlaceGameFreakPresents_AdvanceIndex + ld de, SFX_GAME_FREAK_PRESENTS + call PlaySFX + ret +; e46af + +.GAME_FREAK + ; G A M E _ F R E A K + db 0, 1, 2, 3, 13, 4, 5, 3, 1, 6 +.end + db "@" +; e46ba + +PlaceGameFreakPresents_2: ; e46ba + ld hl, wcf65 + ld a, [hl] + cp $40 + jr nc, .place_presents + inc [hl] + ret + +.place_presents + ld [hl], 0 + ld hl, .presents + decoord 7,11 + ld bc, .end - .presents + call CopyBytes + call PlaceGameFreakPresents_AdvanceIndex + ret +; e46d6 + +.presents + db 7, 8, 9, 10, 11, 12 +.end + db "@" +; e46dd + +PlaceGameFreakPresents_3: ; e46dd + ld hl, wcf65 + ld a, [hl] + cp $80 + jr nc, .finish + inc [hl] + ret + +.finish + ld hl, wJumptableIndex + set 7, [hl] + ret +; e46ed + + + +GameFreakLogoJumper: ; e46ed (39:46ed) + ld hl, $b + add hl, bc + ld e, [hl] + ld d, 0 + ld hl, GameFreakLogoScenes +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +GameFreakLogoScenes: ; e46fd (39:46fd) + dw GameFreakLogoScene1 + dw GameFreakLogoScene2 + dw GameFreakLogoScene3 + dw GameFreakLogoScene4 + dw GameFreakLogoScene5 + + +GameFreakLogoScene1: ; e4707 (39:4707) + ld hl, $b + add hl, bc + inc [hl] + ret + +GameFreakLogoScene2: ; e470d (39:470d) + ld hl, $c + add hl, bc + ld a, [hl] + and a + jr z, .asm_e4747 + ld d, a + ld hl, $d + add hl, bc + ld a, [hl] + and $3f + cp $20 + jr nc, .asm_e4723 + add $20 +.asm_e4723 + ld e, a + callba Functionce765 + ld hl, $7 + add hl, bc + ld [hl], e + ld hl, $d + add hl, bc + ld a, [hl] + dec [hl] + and $1f + ret nz + ld hl, $c + add hl, bc + ld a, [hl] + sub $30 + ld [hl], a + ld de, SFX_DITTO_BOUNCE + call PlaySFX + ret +.asm_e4747 + ld hl, $b + add hl, bc + inc [hl] + ld hl, $d + add hl, bc + ld [hl], $0 + ld de, SFX_DITTO_POP_UP + call PlaySFX + ret + +GameFreakLogoScene3: ; e4759 (39:4759) + ld hl, $d + add hl, bc + ld a, [hl] + cp $20 + jr nc, .asm_e4764 + inc [hl] + ret +.asm_e4764 + ld hl, $b + add hl, bc + inc [hl] + ld hl, $d + add hl, bc + ld [hl], $0 + ld de, SFX_DITTO_TRANSFORM + call PlaySFX + ret + +GameFreakLogoScene4: ; e4776 (39:4776) + ld hl, $d + add hl, bc + ld a, [hl] + cp $40 + jr z, .asm_e47a3 + inc [hl] + srl a + srl a + ld e, a + ld d, $0 + ld hl, GameFreakLogoPalettes +rept 2 + add hl, de +endr + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld a, [hli] + ld [OBPals + 12], a + ld a, [hli] + ld [OBPals + 13], a + pop af + ld [rSVBK], a + ld a, $1 + ld [hCGBPalUpdate], a + ret +.asm_e47a3 + ld hl, $b + add hl, bc + inc [hl] + call PlaceGameFreakPresents_AdvanceIndex + +GameFreakLogoScene5: ; e47ab (39:47ab) + ret +; e47ac (39:47ac) + +GameFreakLogoPalettes: ; e47ac +; Ditto's color as it turns into the Game Freak logo. +; Fade from pink to orange. +; One color per step. + RGB 23, 12, 28 + RGB 23, 12, 27 + RGB 23, 13, 26 + RGB 23, 13, 24 + RGB 24, 14, 22 + RGB 24, 14, 20 + RGB 24, 15, 18 + RGB 24, 15, 16 + RGB 25, 16, 14 + RGB 25, 16, 12 + RGB 25, 17, 10 + RGB 25, 17, 08 + RGB 26, 18, 06 + RGB 26, 18, 04 + RGB 26, 19, 02 + RGB 26, 19, 00 +;' e47cc + +GameFreakLogo: ; e47cc +INCBIN "gfx/splash/logo.1bpp" +; e48ac + +CrystalIntro: ; e48ac + ld a, [rSVBK] + push af + ld a, 5 + ld [rSVBK], a + ld a, [hInMenu] + push af + ld a, [hVBlank] + push af + call Functione4901 +.loop: ; e48bc + call JoyTextDelay + ld a, [hJoyLast] + and BUTTONS + jr nz, .ShutOffMusic + ld a, [wJumptableIndex] + bit 7, a + jr nz, .done + call IntroSceneJumper + callba Function8cf69 + call DelayFrame + jp .loop + +.ShutOffMusic + ld de, MUSIC_NONE + call PlayMusic + +.done + call ClearBGPalettes + call ClearSprites + call ClearTileMap + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + pop af + ld [hVBlank], a + pop af + ld [hInMenu], a + pop af + ld [rSVBK], a + ret +; e4901 + +Functione4901: ; e4901 + xor a + ld [hVBlank], a + ld a, $1 + ld [hInMenu], a + xor a + ld [hMapAnims], a + ld [wJumptableIndex], a + ret +; e490f + +IntroSceneJumper: ; e490f + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, IntroScenes +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; e491e + + +IntroScenes: ; e491e (39:491e) + dw IntroScene1 + dw IntroScene2 + dw IntroScene3 + dw IntroScene4 + dw IntroScene5 + dw IntroScene6 + dw IntroScene7 + dw IntroScene8 + dw IntroScene9 + dw IntroScene10 + dw IntroScene11 + dw IntroScene12 + dw IntroScene13 + dw IntroScene14 + dw IntroScene15 + dw IntroScene16 + dw IntroScene17 + dw IntroScene18 + dw IntroScene19 + dw IntroScene20 + dw IntroScene21 + dw IntroScene22 + dw IntroScene23 + dw IntroScene24 + dw IntroScene25 + dw IntroScene26 + dw IntroScene27 + dw IntroScene28 + + +NextIntroScene: ; e4956 (39:4956) + ld hl, wJumptableIndex + inc [hl] + ret + +IntroScene1: ; e495b (39:495b) +; Setup the next scene. + call Functione54a3 + call ClearSprites + call ClearTileMap + xor a + ld [hBGMapMode], a + ld a, $1 + ld [rVBK], a + ld hl, IntroTilemap001 + ld de, VBGMap0 tile $00 + call Functione54fa + ld a, $0 + ld [rVBK], a + ld hl, IntroUnownsGFX + ld de, VTiles2 tile $00 + call Functione54c2 + ld hl, IntroPulseGFX + ld de, VTiles0 tile $00 + call Functione54c2 + ld hl, IntroTilemap002 + ld de, VBGMap0 tile $00 + call Functione54fa + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_365ad + ld de, wMapPals + ld bc, $80 + call CopyBytes + ld hl, Palette_365ad + ld de, BGPals + ld bc, $80 + call CopyBytes + pop af + ld [rSVBK], a + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + callba Function8cf53 + call Functione549e + xor a + ld [wIntroSceneFrameCounter], a + ld [wcf65], a + call NextIntroScene + ret + +IntroScene2: ; e49d6 (39:49d6) +; First Unown (A) fades in, pulses, then fades out. + ld hl, wIntroSceneFrameCounter + ld a, [hl] + inc [hl] + cp $80 + jr nc, .endscene + cp $60 + jr nz, .DontPlaySound + push af + ld de, $5858 + call Functione51dc + ld de, SFX_INTRO_UNOWN_1 + call PlaySFX + pop af +.DontPlaySound + ld [wcf65], a + xor a + call Functione5223 + ret +.endscene + call NextIntroScene + ret + +IntroScene3: ; e49fd (39:49fd) +; More setup. Transition to the outdoor scene. + call Functione54a3 + call ClearSprites + call ClearTileMap + xor a + ld [hBGMapMode], a + ld a, $1 + ld [rVBK], a + ld hl, IntroTilemap003 + ld de, VBGMap0 tile $00 + call Functione54fa + ld a, $0 + ld [rVBK], a + ld hl, IntroBackgroundGFX + ld de, VTiles2 tile $00 + call Functione54c2 + ld hl, IntroTilemap004 + ld de, VBGMap0 tile $00 + call Functione54fa + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_e5edd + ld de, wMapPals + ld bc, $80 + call CopyBytes + ld hl, Palette_e5edd + ld de, BGPals + ld bc, $80 + call CopyBytes + pop af + ld [rSVBK], a + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + call Functione5516 + call Functione549e + xor a + ld [wIntroSceneFrameCounter], a + call NextIntroScene + ret + +IntroScene4: ; e4a69 (39:4a69) +; Scroll the outdoor panorama for a bit. + call Functione552f + ld hl, wIntroSceneFrameCounter + ld a, [hl] + cp $80 + jr z, .endscene + inc [hl] + ret +.endscene + call NextIntroScene + ret + +IntroScene5: ; e4a7a (39:4a7a) +; Go back to the Unown. + call Functione54a3 + call ClearSprites + call ClearTileMap + xor a + ld [hBGMapMode], a + ld [hLCDStatCustom], a + ld a, $1 + ld [rVBK], a + ld hl, IntroTilemap005 + ld de, VBGMap0 tile $00 + call Functione54fa + ld a, $0 + ld [rVBK], a + ld hl, IntroUnownsGFX + ld de, VTiles2 tile $00 + call Functione54c2 + ld hl, IntroPulseGFX + ld de, VTiles0 tile $00 + call Functione54c2 + ld hl, IntroTilemap006 + ld de, VBGMap0 tile $00 + call Functione54fa + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_365ad + ld de, wMapPals + ld bc, $80 + call CopyBytes + ld hl, Palette_365ad + ld de, BGPals + ld bc, $80 + call CopyBytes + pop af + ld [rSVBK], a + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + callba Function8cf53 + call Functione549e + xor a + ld [wcf64], a + ld [wcf65], a + call NextIntroScene + ret + +IntroScene6: ; e4af7 (39:4af7) +; Two more Unown (I, H) fade in. + ld hl, wcf64 + ld a, [hl] + inc [hl] + cp $80 + jr nc, .endscene + cp $60 + jr z, .SecondUnown + cp $40 + jr nc, .StopUnown + cp $20 + jr z, .FirstUnown + jr .NoUnown +.FirstUnown + push af + ld de, $3878 + call Functione51dc + ld de, SFX_INTRO_UNOWN_2 + call PlaySFX + pop af +.NoUnown + ld [wcf65], a + xor a + call Functione5223 + ret +.SecondUnown + push af + ld de, $7030 + call Functione51dc + ld de, SFX_INTRO_UNOWN_1 + call PlaySFX + pop af +.StopUnown + ld [wcf65], a + ld a, $1 + call Functione5223 + ret +.endscene + call NextIntroScene + ret + +IntroScene7: ; e4b3f (39:4b3f) +; Back to the outdoor scene. + call Functione54a3 + call ClearSprites + call ClearTileMap + xor a + ld [hBGMapMode], a + ld a, $1 + ld [rVBK], a + ld hl, IntroTilemap003 + ld de, VBGMap0 tile $00 + call Functione54fa + ld hl, IntroPichuWooperGFX + ld de, VTiles0 tile $00 + call Functione54c2 + ld a, $0 + ld [rVBK], a + ld hl, IntroSuicuneRunGFX + ld de, VTiles0 tile $00 + call Functione54de + ld hl, IntroBackgroundGFX + ld de, VTiles2 tile $00 + call Functione54c2 + ld hl, IntroTilemap004 + ld de, VBGMap0 tile $00 + call Functione54fa + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_e5edd + ld de, wMapPals + ld bc, $80 + call CopyBytes + ld hl, Palette_e5edd + ld de, BGPals + ld bc, $80 + call CopyBytes + pop af + ld [rSVBK], a + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + call Functione5516 + callba Function8cf53 + depixel 13, 27, 4, 0 + ld a, SPRITE_ANIM_INDEX_26 + call _InitSpriteAnimStruct + ld a, $f0 + ld [wc3c0], a + call Functione549e + xor a + ld [wIntroSceneFrameCounter], a + ld [wcf65], a + call NextIntroScene + ret + +IntroScene8: ; e4bd3 (39:4bd3) +; Scroll the scene, then show Suicune running across the screen. + ld hl, wIntroSceneFrameCounter + ld a, [hl] + inc [hl] + cp $40 + jr z, .asm_e4be2 + jr nc, .asm_e4be8 + call Functione552f + ret +.asm_e4be2 + ld de, SFX_INTRO_SUICUNE_3 + call PlaySFX +.asm_e4be8 + ld a, [wc3c0] + and a + jr z, .asm_e4bf4 + sub $8 + ld [wc3c0], a + ret +.asm_e4bf4 + ld de, SFX_INTRO_SUICUNE_2 + call PlaySFX + callba Function8d03d + call NextIntroScene + ret + +IntroScene9: ; e4c04 (39:4c04) +; Set up the next scene (same bg). + xor a + ld [hLCDStatCustom], a + call ClearSprites + hlcoord 0, 0, AttrMap + ld bc, $f0 + ld a, $1 + call ByteFill + ld bc, $3c + ld a, $2 + call ByteFill + ld bc, $3c + ld a, $3 + call ByteFill + ld a, $2 + ld [hBGMapMode], a + call DelayFrame + call DelayFrame + call DelayFrame + ld a, $c + ld [hBGMapAddress], a + call DelayFrame + call DelayFrame + call DelayFrame + xor a + ld [hBGMapMode], a + ld [hBGMapAddress], a + ld [wc3c0], a + xor a + ld [wcf64], a + call NextIntroScene + ret + +IntroScene10: ; e4c4f (39:4c4f) +; Wooper and Pichu enter. + call Functione546d + ld hl, wcf64 + ld a, [hl] + inc [hl] + cp $c0 + jr z, .done + cp $20 + jr z, .wooper + cp $40 + jr z, .pichu + ret + +.pichu + depixel 21, 16, 1, 0 + ld a, SPRITE_ANIM_INDEX_27 + call _InitSpriteAnimStruct + ld de, SFX_INTRO_PICHU + call PlaySFX + ret + +.wooper + depixel 22, 6 + ld a, SPRITE_ANIM_INDEX_28 + call _InitSpriteAnimStruct + ld de, SFX_INTRO_PICHU + call PlaySFX + ret +.done + call NextIntroScene + ret + +IntroScene11: ; e4c86 (39:4c86) +; Back to Unown again. + call Functione54a3 + call ClearSprites + call ClearTileMap + xor a + ld [hBGMapMode], a + ld [hLCDStatCustom], a + ld a, $1 + ld [rVBK], a + ld hl, IntroTilemap007 + ld de, VBGMap0 tile $00 + call Functione54fa + ld a, $0 + ld [rVBK], a + ld hl, IntroUnownsGFX + ld de, VTiles2 tile $00 + call Functione54c2 + ld hl, IntroTilemap008 + ld de, VBGMap0 tile $00 + call Functione54fa + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_365ad + ld de, wMapPals + ld bc, $80 + call CopyBytes + ld hl, Palette_365ad + ld de, BGPals + ld bc, $80 + call CopyBytes + pop af + ld [rSVBK], a + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + callba Function8cf53 + call Functione549e + xor a + ld [wIntroSceneFrameCounter], a + ld [wcf65], a + call NextIntroScene + ret + +IntroScene12: ; e4cfa (39:4cfa) +; Even more Unown. + call Functione4d36 + ld hl, wIntroSceneFrameCounter + ld a, [hl] + inc [hl] + cp $c0 + jr nc, .asm_e4d32 + cp $80 + jr nc, .asm_e4d1d + ld c, a + and $1f + sla a + ld [wcf65], a + ld a, c + and $e0 + srl a + swap a + call Functione5223 + ret +.asm_e4d1d + ld c, a + and $f + sla a + sla a + ld [wcf65], a + ld a, c + and $70 + or $40 + swap a + call Functione5223 + ret +.asm_e4d32 + call NextIntroScene + ret + +Functione4d36: ; e4d36 (39:4d36) + ld a, [wIntroSceneFrameCounter] + ld c, a + ld hl, .UnownSounds +.loop + ld a, [hli] + cp -1 + ret z + cp c + jr z, .playsound +rept 2 + inc hl +endr + jr .loop +.playsound + ld a, [hli] + ld d, [hl] + ld e, a + push de + call SFXChannelsOff + pop de + call PlaySFX + ret +; e4d54 (39:4d54) + +.UnownSounds: ; e4d54 + dbw $00, SFX_INTRO_UNOWN_3 + dbw $20, SFX_INTRO_UNOWN_2 + dbw $40, SFX_INTRO_UNOWN_1 + dbw $60, SFX_INTRO_UNOWN_2 + dbw $80, SFX_INTRO_UNOWN_3 + dbw $90, SFX_INTRO_UNOWN_2 + dbw $a0, SFX_INTRO_UNOWN_1 + dbw $b0, SFX_INTRO_UNOWN_2 + db $ff +; e4d6d + +IntroScene13: ; e4d6d (39:4d6d) +; Switch scenes again. + call Functione54a3 + call ClearSprites + call ClearTileMap + xor a + ld [hBGMapMode], a + ld a, $1 + ld [rVBK], a + ld hl, IntroTilemap003 + ld de, VBGMap0 tile $00 + call Functione54fa + ld a, $0 + ld [rVBK], a + ld hl, IntroSuicuneRunGFX + ld de, VTiles0 tile $00 + call Functione54de + ld hl, IntroBackgroundGFX + ld de, VTiles2 tile $00 + call Functione54c2 + ld hl, IntroTilemap004 + ld de, VBGMap0 tile $00 + call Functione54fa + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_e5edd + ld de, wMapPals + ld bc, $80 + call CopyBytes + ld hl, Palette_e5edd + ld de, BGPals + ld bc, $80 + call CopyBytes + pop af + ld [rSVBK], a + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + callba Function8cf53 + depixel 13, 11, 4, 0 + ld a, SPRITE_ANIM_INDEX_26 + call _InitSpriteAnimStruct + ld de, MUSIC_CRYSTAL_OPENING + call PlayMusic + xor a + ld [wc3c0], a + call Functione549e + xor a + ld [wcf64], a + ld [wcf65], a + call NextIntroScene + ret + +IntroScene14: ; e4dfa (39:4dfa) +; Suicune runs then jumps. + ld a, [hSCX] + sub 10 + ld [hSCX], a + ld hl, wcf64 + ld a, [hl] + inc [hl] + cp $80 + jr z, .done + cp $60 + jr z, .jump + jr nc, .asm_e4e1a + cp $40 + jr nc, .asm_e4e33 + ret + +.jump + ld de, SFX_INTRO_SUICUNE_4 + call PlaySFX + +.asm_e4e1a + ld a, $1 + ld [wcf65], a + ld a, [wc3c0] + cp $88 + jr c, .asm_e4e2c + sub $8 + ld [wc3c0], a + ret + +.asm_e4e2c + callba Function8d03d + ret + +.asm_e4e33 + ld a, [wc3c0] + sub $2 + ld [wc3c0], a + ret + +.done + call NextIntroScene + ret + +IntroScene15: ; e4e40 (39:4e40) +; Transition to a new scene. + call Functione54a3 + call ClearSprites + call ClearTileMap + xor a + ld [hBGMapMode], a + ld a, $1 + ld [rVBK], a + ld hl, IntroTilemap009 + ld de, VBGMap0 tile $00 + call Functione54fa + ld a, $0 + ld [rVBK], a + ld hl, IntroSuicuneJumpGFX + ld de, VTiles2 tile $00 + call Functione54c2 + ld hl, IntroUnownBackGFX + ld de, VTiles0 tile $00 + call Functione54c2 + ld de, GFX_e7a5d + ld hl, VTiles1 tile $00 + lb bc, BANK(GFX_e7a5d), 1 + call Request2bpp + ld hl, IntroTilemap010 + ld de, VBGMap0 tile $00 + call Functione54fa + call Functione541b + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_e77dd + ld de, wMapPals + ld bc, $80 + call CopyBytes + ld hl, Palette_e77dd + ld de, BGPals + ld bc, $80 + call CopyBytes + pop af + ld [rSVBK], a + xor a + ld [hSCX], a + ld a, $90 + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + callba Function8cf53 + call Functione549e + depixel 8, 5 + ld a, SPRITE_ANIM_INDEX_2A + call _InitSpriteAnimStruct + depixel 12, 0 + ld a, SPRITE_ANIM_INDEX_2B + call _InitSpriteAnimStruct + xor a + ld [wcf64], a + ld [wcf65], a + call NextIntroScene + ret + +IntroScene16: ; e4edc (39:4edc) +; Suicune shows its face. An Unown appears in front. + ld hl, wcf64 + ld a, [hl] + inc [hl] + cp $80 + jr nc, .done + call Functione5441 + ld a, [hSCY] + and a + ret z + add 8 + ld [hSCY], a + ret +.done + call NextIntroScene + ret + +IntroScene17: ; e4ef5 (39:4ef5) +; ... + call Functione54a3 + call ClearSprites + call ClearTileMap + xor a + ld [hBGMapMode], a + ld a, $1 + ld [rVBK], a + ld hl, IntroTilemap011 + ld de, VBGMap0 tile $00 + call Functione54fa + ld a, $0 + ld [rVBK], a + ld hl, IntroSuicuneCloseGFX + ld de, VTiles1 tile $00 + call Functione54de + ld hl, IntroTilemap012 + ld de, VBGMap0 tile $00 + call Functione54fa + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_e6d6d + ld de, wMapPals + ld bc, $80 + call CopyBytes + ld hl, Palette_e6d6d + ld de, BGPals + ld bc, $80 + call CopyBytes + pop af + ld [rSVBK], a + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + callba Function8cf53 + call Functione549e + xor a + ld [wcf64], a + ld [wcf65], a + call NextIntroScene + ret + +IntroScene18: ; e4f67 (39:4f67) +; Suicune close up. + ld hl, wcf64 + ld a, [hl] + inc [hl] + cp $60 + jr nc, .done + ld a, [hSCX] + cp $60 + ret z + add 8 + ld [hSCX], a + ret +.done + call NextIntroScene + ret + +IntroScene19: ; e4f7e (39:4f7e) +; More setup. + call Functione54a3 + call ClearSprites + call ClearTileMap + xor a + ld [hBGMapMode], a + ld a, $1 + ld [rVBK], a + ld hl, IntroTilemap013 + ld de, VBGMap0 tile $00 + call Functione54fa + ld a, $0 + ld [rVBK], a + ld hl, IntroSuicuneBackGFX + ld de, VTiles2 tile $00 + call Functione54c2 + ld hl, IntroUnownsGFX + ld de, VTiles1 tile $00 + call Functione54c2 + ld de, GFX_e7a5d + ld hl, VTiles1 tile $7f + lb bc, BANK(GFX_e7a5d), 1 + call Request2bpp + ld hl, IntroTilemap014 + ld de, VBGMap0 tile $00 + call Functione54fa + call Functione541b + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_e77dd + ld de, wMapPals + ld bc, $80 + call CopyBytes + ld hl, Palette_e77dd + ld de, BGPals + ld bc, $80 + call CopyBytes + pop af + ld [rSVBK], a + xor a + ld [hSCX], a + ld a, $d8 + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + callba Function8cf53 + ld hl, wc300 + xor a + ld [hli], a + ld [hl], $7f + call Functione549e + depixel 12, 0 + ld a, SPRITE_ANIM_INDEX_2B + call _InitSpriteAnimStruct + xor a + ld [wcf64], a + ld [wcf65], a + call NextIntroScene + ret + +IntroScene20: ; e5019 (39:5019) +; Suicune running away. A bunch of Unown appear. + ld hl, wcf64 + ld a, [hl] + inc [hl] + cp $98 + jr nc, .asm_e5059 + cp $58 + ret nc + cp $40 + jr nc, .asm_e5032 + cp $28 + ret nc + ld a, [hSCY] + inc a + ld [hSCY], a + ret + +.asm_e5032 + sub $18 + ld c, a + and $3 + cp $3 + ret nz + ld a, c + and $1c + srl a + srl a + ld [wcf65], a + xor a + call Functione5348 + ret +; e5049 (39:5049) + + ld a, c + and $1c + srl a + srl a + ld [wcf65], a + ld a, 1 + call Functione5348 + ret + +.asm_e5059 + call NextIntroScene + ret + +IntroScene21: ; e505d (39:505d) +; Suicune gets more distant and turns black. + call Functione5451 + ld c, 3 + call DelayFrames + xor a + ld [hBGMapMode], a + ld [wcf64], a + ld [wcf65], a + call NextIntroScene + ret + +IntroScene22: ; e5072 (39:5072) + ld hl, wcf64 + ld a, [hl] + inc [hl] + cp $8 + jr nc, .done + ret +.done + callba Function8d03d + call NextIntroScene + ret + +IntroScene23: ; e5086 (39:5086) + xor a + ld [wcf64], a + call NextIntroScene + ret + +IntroScene24: ; e508e (39:508e) +; Fade to white. + ld hl, wcf64 + ld a, [hl] + inc [hl] + cp $20 + jr nc, .done + + ld c, a + and $3 + ret nz + ld a, c + and $1c + sla a + call Functione5172 + ret + +.done + ld a, $40 + ld [wcf64], a + call NextIntroScene + ret + +IntroScene25: ; e50ad (39:50ad) +; Wait around a bit. + ld a, [wcf64] + dec a + jr z, .done + ld [wcf64], a + ret +.done + call NextIntroScene + ret + +IntroScene26: ; e50bb (39:50bb) +; Load the final scene. + call ClearBGPalettes + call ClearSprites + call ClearTileMap + xor a + ld [hBGMapMode], a + ld a, $1 + ld [rVBK], a + ld hl, IntroTilemap015 + ld de, VBGMap0 tile $00 + call Functione54fa + ld a, $0 + ld [rVBK], a + ld hl, IntroCrystalUnownsGFX + ld de, VTiles2 tile $00 + call Functione54c2 + ld hl, IntroTilemap017 + ld de, VBGMap0 tile $00 + call Functione54fa + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_e679d + ld de, wMapPals + ld bc, $80 + call CopyBytes + ld hl, Palette_e679d + ld de, BGPals + ld bc, $80 + call CopyBytes + pop af + ld [rSVBK], a + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + callba Function8cf53 + call Functione549e + xor a + ld [wcf64], a + ld [wcf65], a + call NextIntroScene + ret + +IntroScene27: ; e512d (39:512d) +; Spell out C R Y S T A L with Unown. + ld hl, wcf65 + inc [hl] + ld hl, wcf64 + ld a, [hl] + inc [hl] + cp $80 + jr nc, .done + + ld c, a + and $f + ld [wcf65], a + ld a, c + and $70 + swap a + call Functione539d + ret + +.done + call NextIntroScene + ld a, $80 + ld [wcf64], a + ret + +IntroScene28: ; e5152 (39:5152) +; Cut out when the music ends, and lead into the title screen. + ld hl, wcf64 + ld a, [hl] + and a + jr z, .done + dec [hl] + cp $18 + jr z, .clear + cp $8 + ret nz + + ld de, SFX_UNKNOWN_CB + call PlaySFX + ret + +.clear + call ClearBGPalettes + ret + +.done + ld hl, wJumptableIndex + set 7, [hl] + ret + + +Functione5172: ; e5172 (39:5172) + ld hl, Unknown_e519c + add l + ld l, a + ld a, $0 + adc h + ld h, a + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld de, BGPals + ld b, $8 +.asm_e5187 + push hl + ld c, $8 +.asm_e518a + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_e518a + pop hl + dec b + jr nz, .asm_e5187 + pop af + ld [rSVBK], a + ld a, $1 + ld [hCGBPalUpdate], a + ret +; e519c (39:519c) + +Unknown_e519c: ; e519c +; Fade to white. + RGB 24, 12, 09 + RGB 31, 31, 31 + RGB 12, 00, 31 + RGB 00, 00, 00 + + RGB 31, 19, 05 + RGB 31, 31, 31 + RGB 15, 05, 31 + RGB 07, 07, 07 + + RGB 31, 21, 09 + RGB 31, 31, 31 + RGB 18, 09, 31 + RGB 11, 11, 11 + + RGB 31, 23, 13 + RGB 31, 31, 31 + RGB 21, 13, 31 + RGB 15, 15, 15 + + RGB 31, 25, 17 + RGB 31, 31, 31 + RGB 25, 17, 31 + RGB 19, 19, 19 + + RGB 31, 27, 21 + RGB 31, 31, 31 + RGB 27, 21, 31 + RGB 23, 23, 23 + + RGB 31, 29, 25 + RGB 31, 31, 31 + RGB 29, 26, 31 + RGB 27, 27, 27 + + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 +; e51dc + +Functione51dc: ; e51dc (39:51dc) + push de + ld a, SPRITE_ANIM_INDEX_29 + call _InitSpriteAnimStruct + ld hl, $c + add hl, bc + ld [hl], $8 + ld a, $3c + call Function3b3c + pop de + + push de + ld a, SPRITE_ANIM_INDEX_29 + call _InitSpriteAnimStruct + ld hl, $c + add hl, bc + ld [hl], $18 + ld a, $3b + call Function3b3c + pop de + + push de + ld a, SPRITE_ANIM_INDEX_29 + call _InitSpriteAnimStruct + ld hl, $c + add hl, bc + ld [hl], $28 + ld a, $39 + call Function3b3c + pop de + + ld a, SPRITE_ANIM_INDEX_29 + call _InitSpriteAnimStruct + ld hl, $c + add hl, bc + ld [hl], $38 + ld a, $3a + call Function3b3c + ret + +Functione5223: ; e5223 (39:5223) +rept 3 + add a +endr + ld e, a + ld d, $0 + ld hl, BGPals + add hl, de +rept 2 + inc hl +endr + ld a, [wcf65] + and $3f + cp $1f + jr z, .asm_e523e + jr c, .asm_e523e + ld c, a + ld a, $3f + sub c +.asm_e523e + ld c, a + ld b, $0 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + push hl + push bc + ld hl, BGPals + ld bc, $40 + xor a + call ByteFill + pop bc + pop hl + push hl + ld hl, Unknown_e5288 +rept 2 + add hl, bc +endr + ld a, [hli] + ld d, [hl] + ld e, a + pop hl + ld a, e + ld [hli], a + ld a, d + ld [hli], a + push hl + ld hl, Unknown_e52c8 +rept 2 + add hl, bc +endr + ld a, [hli] + ld d, [hl] + ld e, a + pop hl + ld a, e + ld [hli], a + ld a, d + ld [hli], a + push hl + ld hl, Unknown_e5308 +rept 2 + add hl, bc +endr + ld a, [hli] + ld d, [hl] + ld e, a + pop hl + ld a, e + ld [hli], a + ld a, d + ld [hli], a + pop af + ld [rSVBK], a + ld a, $1 + ld [hCGBPalUpdate], a + ret +; e5288 (39:5288) + +Unknown_e5288: ; e5288 +; Fade between black and white. +hue = 0 +rept 32 + RGB hue, hue, hue +hue = hue + 1 +endr +; e52c8 + +Unknown_e52c8: ; e52c8 +; Fade between black and light blue. +hue = 0 +rept 32 + RGB 0, hue / 2, hue +hue = hue + 1 +endr +; e5308 + +Unknown_e5308: ; e5308 +; Fade between black and blue. +hue = 0 +rept 32 + RGB 0, 0, hue +hue = hue + 1 +endr +; e5348 + +Functione5348: ; e5348 (39:5348) + and a + jr nz, .asm_e5350 + ld hl, Palette_e538d + jr .asm_e5353 +.asm_e5350 + ld hl, Palette_e5395 +.asm_e5353 + ld a, [wcf65] + and $7 +rept 3 + add a +endr + ld c, a + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + push bc + ld de, BGPals + ld a, c + add e + ld e, a + ld a, $0 + adc d + ld d, a + ld bc, $8 + call CopyBytes + pop bc + ld de, wMapPals + ld a, c + add e + ld e, a + ld a, $0 + adc d + ld d, a + ld bc, $8 + call CopyBytes + pop af + ld [rSVBK], a + ld a, $1 + ld [hCGBPalUpdate], a + ret +; e538d (39:538d) + +Palette_e538d: ; e538d + RGB 24, 12, 09 + RGB 31, 31, 31 + RGB 12, 00, 31 + RGB 00, 00, 00 +; e5395 + +Palette_e5395: ; e5395 + RGB 24, 12, 09 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 +; e539d + +Functione539d: ; e539d (39:539d) +rept 3 + add a +endr + ld e, a + ld d, $0 + ld hl, BGPals + add hl, de +rept 4 + inc hl +endr + ld a, [wcf65] + add a + ld c, a + ld b, $0 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + push hl + ld hl, Palette_e53db + add hl, bc + ld a, [hli] + ld d, [hl] + ld e, a + pop hl + ld a, e + ld [hli], a + ld a, d + ld [hli], a + push hl + ld hl, Palette_e53fb + add hl, bc + ld a, [hli] + ld d, [hl] + ld e, a + pop hl + ld a, e + ld [hli], a + ld a, d + ld [hli], a + pop af + ld [rSVBK], a + ld a, $1 + ld [hCGBPalUpdate], a + ret +; e53db (39:53db) + +Palette_e53db: ; e53db +hue = 31 +rept 8 + RGB hue, hue, hue +hue = hue + -1 + RGB hue, hue, hue +hue = hue + -2 +endr +; e53fb + +Palette_e53fb: ; e53fb +hue = 31 +rept 16 + RGB hue, hue, hue +hue = hue + -1 +endr +; e541b + +Functione541b: ; e541b (39:541b) + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + ld hl, w6_d000 + decoord 0, 0 + ld b, SCREEN_HEIGHT +.asm_e542a + ld c, SCREEN_WIDTH +.asm_e542c + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_e542c + ld a, $c + add l + ld l, a + ld a, $0 + adc h + ld h, a + dec b + jr nz, .asm_e542a + pop af + ld [rSVBK], a + ret + +Functione5441: ; e5441 (39:5441) + ld a, [wcf64] + and $3 + jr z, Functione5451 + cp $3 + jr z, .asm_e544d + ret +.asm_e544d + xor a + ld [hBGMapMode], a + ret + +Functione5451: ; e5451 (39:5451) + hlcoord 0, 0 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH +.asm_e5457 + ld a, [hl] + and a + jr z, .asm_e5462 + cp $80 + jr nc, .asm_e5462 + xor $8 + ld [hl], a +.asm_e5462 + inc hl + dec bc + ld a, c + or b + jr nz, .asm_e5457 + ld a, $1 + ld [hBGMapMode], a + ret + +Functione546d: ; e546d (39:546d) + ld a, [wcf64] + cp $24 + ret nc + and $c + srl a + ld e, a + ld d, $0 + ld hl, Unknown_e5496 + add hl, de + ld a, [hli] + ld [Requested2bppSource], a + ld a, [hli] + ld [Requested2bppSource + 1], a + ld a, (VTiles2 tile $09) % $100 + ld [Requested2bppDest], a + ld a, (VTiles2 tile $09) / $100 + ld [Requested2bppDest + 1], a + ld a, $4 + ld [Requested2bpp], a + ret +; e5496 (39:5496) + +Unknown_e5496: ; e5496 + dw GFX_e799d + dw GFX_e79dd + dw GFX_e7a1d + dw GFX_e79dd +; e549e + +Functione549e: ; e549e (39:549e) + ld a, $1 + ld [hCGBPalUpdate], a + ret + +Functione54a3: ; e54a3 (39:54a3) + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, BGPals + ld bc, $80 + xor a + call ByteFill + pop af + ld [rSVBK], a + ld a, $1 + ld [hCGBPalUpdate], a + call DelayFrame + call DelayFrame + ret + +Functione54c2: ; e54c2 (39:54c2) + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + push de + ld de, w6_d000 + call Decompress + pop hl + ld de, w6_d000 + ld bc, $180 + call Request2bpp + pop af + ld [rSVBK], a + ret + +Functione54de: ; e54de (39:54de) + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + push de + ld de, w6_d000 + call Decompress + pop hl + ld de, w6_d000 + ld bc, $1ff + call Request2bpp + pop af + ld [rSVBK], a + ret + +Functione54fa: ; e54fa (39:54fa) + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + push de + ld de, w6_d000 + call Decompress + pop hl + ld de, w6_d000 + ld bc, $140 + call Request2bpp + pop af + ld [rSVBK], a + ret + +Functione5516: ; e5516 (39:5516) + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, LYOverrides + ld bc, $90 + xor a + call ByteFill + pop af + ld [rSVBK], a + ld a, $43 + ld [hLCDStatCustom], a + ret + +Functione552f: ; e552f (39:552f) + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld a, [wcf64] + and $1 + jr z, .asm_e5548 + ld hl, LYOverrides + ld a, [hl] + inc a + ld bc, $5f + call ByteFill +.asm_e5548 + ld hl, LYOverrides + $5f + ld a, [hl] +rept 2 + inc a +endr + ld bc, $31 + call ByteFill + ld a, [LYOverrides + 0] + ld [hSCX], a + pop af + ld [rSVBK], a + ret + +IntroSuicuneRunGFX: ; e555d +INCBIN "gfx/intro/suicune_run.2bpp.lz" +; e592d + +IntroPichuWooperGFX: ; e592d +INCBIN "gfx/intro/pichu_wooper.2bpp.lz" +; e5c7d + +IntroBackgroundGFX: ; e5c7d +INCBIN "gfx/intro/background.2bpp.lz" +; e5e6d + +IntroTilemap004: ; e5e6d +INCBIN "gfx/intro/004.tilemap.lz" +; e5ecd + +IntroTilemap003: ; e5ecd +INCBIN "gfx/intro/003.tilemap.lz" +; e5edd + +Palette_e5edd: ; e5edd + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 0, 4, 5 + RGB 1, 8, 5 + RGB 4, 12, 9 + RGB 24, 12, 9 + RGB 0, 4, 5 + RGB 9, 6, 8 + RGB 8, 16, 5 + RGB 5, 10, 4 + RGB 31, 31, 31 + RGB 9, 6, 8 + RGB 18, 9, 9 + RGB 13, 8, 9 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 2, 5, 22 + RGB 1, 5, 12 + RGB 31, 31, 31 + RGB 31, 10, 25 + RGB 31, 21, 0 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 21, 31 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + +IntroUnownsGFX: ; e5f5d +INCBIN "gfx/intro/unowns.2bpp.lz" +; e634d + +IntroPulseGFX: ; e634d +INCBIN "gfx/intro/pulse.2bpp.lz" +; e63dd + +IntroTilemap002: ; e63dd +INCBIN "gfx/intro/002.tilemap.lz" +; e641d + +IntroTilemap001: ; e641d +INCBIN "gfx/intro/001.tilemap.lz" +; e642d + +IntroTilemap006: ; e642d +INCBIN "gfx/intro/006.tilemap.lz" +; e647d + +IntroTilemap005: ; e647d +INCBIN "gfx/intro/005.tilemap.lz" +; e649d + +IntroTilemap008: ; e649d +INCBIN "gfx/intro/008.tilemap.lz" +; e655d + +IntroTilemap007: ; e655d +INCBIN "gfx/intro/007.tilemap.lz" +; e65ad + +Palette_365ad: ; e65ad + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 10, 0, 10 + RGB 19, 0, 19 + RGB 31, 0, 31 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + +IntroCrystalUnownsGFX: ; e662d +INCBIN "gfx/intro/crystal_unowns.2bpp.lz" +; e672d + +IntroTilemap017: ; e672d +INCBIN "gfx/intro/017.tilemap.lz" +; e676d + +IntroTilemap015: ; e676d +INCBIN "gfx/intro/015.tilemap.lz" +; e679d + +Palette_e679d: ; e679d + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + +IntroSuicuneCloseGFX: ; e681d +INCBIN "gfx/intro/suicune_close.2bpp.lz" +; e6c3d + +IntroTilemap012: ; e6c3d +INCBIN "gfx/intro/012.tilemap.lz" +; e6d0d + +IntroTilemap011: ; e6d0d +INCBIN "gfx/intro/011.tilemap.lz" +; e6d6d + +Palette_e6d6d: ; e6d6d + RGB 24, 12, 9 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 24, 12, 9 + RGB 31, 31, 31 + RGB 8, 9, 31 + RGB 0, 0, 0 + RGB 24, 12, 9 + RGB 12, 20, 31 + RGB 19, 8, 31 + RGB 0, 0, 0 + RGB 12, 20, 31 + RGB 8, 9, 31 + RGB 19, 8, 31 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 12, 20, 31 + RGB 8, 9, 31 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + +IntroSuicuneJumpGFX: ; e6ded +INCBIN "gfx/intro/suicune_jump.2bpp.lz" +; e72ad + +IntroSuicuneBackGFX: ; e72ad +INCBIN "gfx/intro/suicune_back.2bpp.lz" +; e764d + +IntroTilemap010: ; e764d +INCBIN "gfx/intro/010.tilemap.lz" +; e76ad + +IntroTilemap009: ; e76ad +INCBIN "gfx/intro/009.tilemap.lz" +; e76bd + +IntroTilemap014: ; e76bd +INCBIN "gfx/intro/014.tilemap.lz" +; e778d + +IntroTilemap013: ; e778d +INCBIN "gfx/intro/013.tilemap.lz" +; e77dd + +Palette_e77dd: ; e77dd + RGB 24, 12, 9 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 24, 12, 9 + RGB 31, 31, 31 + RGB 8, 9, 31 + RGB 0, 0, 0 + RGB 24, 12, 9 + RGB 24, 12, 9 + RGB 24, 12, 9 + RGB 24, 12, 9 + RGB 24, 12, 9 + RGB 24, 12, 9 + RGB 24, 12, 9 + RGB 24, 12, 9 + RGB 24, 12, 9 + RGB 24, 12, 9 + RGB 24, 12, 9 + RGB 24, 12, 9 + RGB 24, 12, 9 + RGB 24, 12, 9 + RGB 24, 12, 9 + RGB 24, 12, 9 + RGB 24, 12, 9 + RGB 24, 12, 9 + RGB 24, 12, 9 + RGB 24, 12, 9 + RGB 24, 12, 9 + RGB 24, 12, 9 + RGB 24, 12, 9 + RGB 24, 12, 9 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 12, 0, 31 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 21, 9, 0 + RGB 21, 9, 0 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + +IntroUnownBackGFX: ; e785d +INCBIN "gfx/intro/unown_back.2bpp.lz" +; e799d + +GFX_e799d: ; e799d +INCBIN "gfx/unknown/0e799d.2bpp" +GFX_e79dd: ; e79dd +INCBIN "gfx/unknown/0e79dd.2bpp" +GFX_e7a1d: ; e7a1d +INCBIN "gfx/unknown/0e7a1d.2bpp" + +GFX_e7a5d: ; e7a5d +INCBIN "gfx/unknown/0e7a5d.2bpp" + + diff --git a/engine/debug.asm b/engine/debug.asm new file mode 100755 index 000000000..913ea0a8d --- /dev/null +++ b/engine/debug.asm @@ -0,0 +1,1517 @@ +ColorTest: ; 818ac +; A debug menu to test monster and trainer palettes at runtime. + + ld a, [hCGB] + and a + jr nz, .asm_818b5 + ld a, [hSGB] + and a + ret z + +.asm_818b5 + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + call DisableLCD + call Function81948 + call Function8197c + call Function819a7 + call Function818f4 + call EnableLCD + ld de, MUSIC_NONE + call PlayMusic + xor a + ld [wJumptableIndex], a + ld [wcf66], a + ld [wd003], a +.asm_818de + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_818f0 + call Function81a74 + call Function81f5e + call DelayFrame + jr .asm_818de + +.asm_818f0 + pop af + ld [hInMenu], a + ret +; 818f4 + +Function818f4: ; 818f4 + ld a, [wd002] + and a + jr nz, Function81911 + ld hl, PokemonPalettes + +Function818fd: ; 818fd + ld de, OverworldMap + ld c, NUM_POKEMON + 1 +.asm_81902 + push bc + push hl + call Function81928 + pop hl + ld bc, 8 + add hl, bc + pop bc + dec c + jr nz, .asm_81902 + ret + +Function81911: ; 81911 + ld hl, TrainerPalettes + ld de, OverworldMap + ld c, NUM_TRAINER_CLASSES +.asm_81919 + push bc + push hl + call Function81928 + pop hl + ld bc, 4 + add hl, bc + pop bc + dec c + jr nz, .asm_81919 + ret +; 81928 + +Function81928: ; 81928 + ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes) + call GetFarByte + ld [de], a + inc de + inc hl + ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes) + call GetFarByte + ld [de], a + inc de + inc hl + ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes) + call GetFarByte + ld [de], a + inc de + inc hl + ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes) + call GetFarByte + ld [de], a + inc de + ret +; 81948 + +Function81948: ; 81948 + ld a, $1 + ld [rVBK], a + ld hl, VTiles0 + ld bc, sScratch - VTiles0 + xor a + call ByteFill + ld a, $0 + ld [rVBK], a + ld hl, VTiles0 + ld bc, sScratch - VTiles0 + xor a + call ByteFill + hlcoord 0, 0, AttrMap + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + xor a + call ByteFill + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + xor a + call ByteFill + call ClearSprites + ret +; 8197c + +Function8197c: ; 8197c + ld hl, DebugColorTestGFX + $10 + ld de, VTiles2 tile $6a + ld bc, $160 + call CopyBytes + ld hl, DebugColorTestGFX + ld de, VTiles0 + ld bc, $10 + call CopyBytes + call LoadStandardFont + ld hl, VTiles1 + lb bc, 8, 0 +.asm_8199d + ld a, [hl] + xor $ff + ld [hli], a + dec bc + ld a, c + or b + jr nz, .asm_8199d + ret +; 819a7 + +Function819a7: ; 819a7 + ld a, [hCGB] + and a + ret z + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_819f4 + ld de, BGPals + ld bc, $80 + call CopyBytes + ld a, $80 + ld [rBGPI], a + ld hl, Palette_819f4 + ld c, $40 + xor a +.asm_819c8 + ld [rBGPD], a + dec c + jr nz, .asm_819c8 + ld a, $80 + ld [rOBPI], a + ld hl, Palette_81a34 + ld c, $40 +.asm_819d6 + ld a, [hli] + ld [rOBPD], a + dec c + jr nz, .asm_819d6 + ld a, $94 + ld [wc608], a + ld a, $52 + ld [wc608 + 1], a + ld a, $4a + ld [wc608 + 2], a + ld a, $29 + ld [wc608 + 3], a + pop af + ld [rSVBK], a + ret +; 819f4 + +Palette_819f4: ; 819f4 + ; white + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 00, 00, 00 + + ; red + RGB 31, 00, 00 + RGB 31, 00, 00 + RGB 31, 00, 00 + RGB 00, 00, 00 + + ; green + RGB 00, 31, 00 + RGB 00, 31, 00 + RGB 00, 31, 00 + RGB 00, 00, 00 + + ; blue + RGB 00, 00, 31 + RGB 00, 00, 31 + RGB 00, 00, 31 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 00, 00, 00 + +Palette_81a34: ; 81a34 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 00, 00, 00 + + ; red + RGB 31, 31, 31 + RGB 31, 00, 00 + RGB 31, 00, 00 + RGB 00, 00, 00 + + ; green + RGB 31, 31, 31 + RGB 00, 31, 00 + RGB 00, 31, 00 + RGB 00, 00, 00 + + ; blue + RGB 31, 31, 31 + RGB 00, 00, 31 + RGB 00, 00, 31 + RGB 00, 00, 00 +; 81a74 + +Function81a74: ; 81a74 + call JoyTextDelay + ld a, [wJumptableIndex] + cp $4 + jr nc, .asm_81a8b + ld hl, hJoyLast + ld a, [hl] + and SELECT + jr nz, .asm_81a9a + ld a, [hl] + and START + jr nz, .asm_81aab + +.asm_81a8b + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, Jumptable_81acf +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +.asm_81a9a + call Function81eca + call Function81ac3 + ld e, a + ld a, [wcf66] + inc a + cp e + jr c, .asm_81aba + xor a + jr .asm_81aba + +.asm_81aab + call Function81eca + ld a, [wcf66] + dec a + cp $ff + jr nz, .asm_81aba + call Function81ac3 + dec a + +.asm_81aba + ld [wcf66], a + ld a, $0 + ld [wJumptableIndex], a + ret +; 81ac3 + +Function81ac3: ; 81ac3 +; Looping back around the pic set. + ld a, [wd002] + and a + jr nz, .asm_81acc + ld a, NUM_POKEMON ; CELEBI + ret + +.asm_81acc + ld a, NUM_TRAINER_CLASSES - 1 ; MYSTICALMAN + ret +; 81acf + +Jumptable_81acf: ; 81acf + dw Function81adb + dw Function81c18 + dw Function81c33 + dw Function81cc2 + dw Function81d8e + dw Function81daf +; 81adb + +Function81adb: ; 81adb + xor a + ld [hBGMapMode], a + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, $6f + call ByteFill + hlcoord 1, 3 + lb bc, 7, 18 + ld a, $6c + call Bank20_FillBoxWithByte + hlcoord 11, 0 + lb bc, 2, 3 + ld a, $6d + call Bank20_FillBoxWithByte + hlcoord 16, 0 + lb bc, 2, 3 + ld a, $6e + call Bank20_FillBoxWithByte + call Function81bc0 + call Function81bf4 + ld a, [wcf66] + inc a + ld [CurPartySpecies], a + ld [wd265], a + hlcoord 0, 1 + ld de, wd265 + lb bc, PRINTNUM_LEADINGZEROS | 1, 3 + call PrintNum + ld a, [wd002] + and a + jr nz, .asm_81b7a + ld a, $1 + ld [UnownLetter], a + call GetPokemonName + hlcoord 4, 1 + call PlaceString + xor a + ld [wc2c6], a + hlcoord 12, 3 + call _PrepMonFrontpic + ld de, VTiles2 tile $31 + predef GetBackpic + ld a, $31 + ld [hFillBox], a + hlcoord 2, 4 + lb bc, 6, 6 + predef FillBox + ld a, [wd003] + and a + jr z, .asm_81b66 + ld de, String_81baf + jr .asm_81b69 + +.asm_81b66 + ld de, String_81bb4 + +.asm_81b69 + hlcoord 7, 17 + call PlaceString + hlcoord 0, 17 + ld de, String_81bb9 + call PlaceString + jr .asm_81ba9 + +.asm_81b7a + ld a, [wd265] + ld [TrainerClass], a + callab Function3957b + ld de, StringBuffer1 + hlcoord 4, 1 + call PlaceString + ld de, VTiles2 + callab GetTrainerPic + xor a + ld [TempEnemyMonSpecies], a + ld [hFillBox], a + hlcoord 2, 3 + lb bc, 7, 7 + predef FillBox + +.asm_81ba9 + ld a, $1 + ld [wJumptableIndex], a + ret +; 81baf + +String_81baf: db "レア", $6f, $6f, "@" ; rare (shiny) +String_81bb4: db "ノーマル@" ; normal +String_81bb9: db $7a, "きりかえ▶@" ; (A) switches +; 81bc0 + +Function81bc0: ; 81bc0 + decoord 0, 11, AttrMap + hlcoord 2, 11 + ld a, $1 + call Function81bde + decoord 0, 13, AttrMap + hlcoord 2, 13 + ld a, $2 + call Function81bde + decoord 0, 15, AttrMap + hlcoord 2, 15 + ld a, $3 + +Function81bde: ; 81bde + push af + ld a, $6a + ld [hli], a + ld bc, $f + ld a, $6b + call ByteFill + ld l, e + ld h, d + pop af + ld bc, $28 + call ByteFill + ret +; 81bf4 + +Function81bf4: ; 81bf4 + ld a, [wcf66] + inc a + ld l, a + ld h, $0 +rept 2 + add hl, hl +endr + ld de, OverworldMap + add hl, de + ld de, wc608 + ld bc, 4 + call CopyBytes + xor a + ld [wcf64], a + ld [wcf65], a + ld de, wc608 + call Function81ea5 + ret +; 81c18 + +Function81c18: ; 81c18 + ld a, [hCGB] + and a + jr z, .asm_81c2a + ld a, $2 + ld [hBGMapMode], a + call DelayFrame + call DelayFrame + call DelayFrame + +.asm_81c2a + call WaitBGMap + ld a, $2 + ld [wJumptableIndex], a + ret +; 81c33 + +Function81c33: ; 81c33 + ld a, [hCGB] + and a + jr z, .asm_81c69 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, BGPals + ld de, wc608 + ld c, $1 + call Function81ee3 + hlcoord 10, 2 + ld de, wc608 + call Function81ca7 + hlcoord 15, 2 + ld de, wc608 + 2 + call Function81ca7 + ld a, $1 + ld [hCGBPalUpdate], a + ld a, $3 + ld [wJumptableIndex], a + pop af + ld [rSVBK], a + ret + +.asm_81c69 + ld hl, wcda9 + ld a, $1 + ld [hli], a + ld a, $ff + ld [hli], a + ld a, $7f + ld [hli], a + ld a, [wc608] + ld [hli], a + ld a, [wc608 + 1] + ld [hli], a + ld a, [wc608 + 2] + ld [hli], a + ld a, [wc608 + 3] + ld [hli], a + xor a +rept 2 + ld [hli], a +endr + ld [hl], a + ld hl, wcda9 + call Function81f0c + hlcoord 10, 2 + ld de, wc608 + call Function81ca7 + hlcoord 15, 2 + ld de, wc608 + 2 + call Function81ca7 + ld a, $3 + ld [wJumptableIndex], a + ret +; 81ca7 + +Function81ca7: ; 81ca7 +rept 3 + inc hl +endr + ld a, [de] + call Function81cbc + ld a, [de] + swap a + call Function81cbc + inc de + ld a, [de] + call Function81cbc + ld a, [de] + swap a + +Function81cbc: ; 81cbc + and $f + add $70 + ld [hld], a + ret +; 81cc2 + +Function81cc2: ; 81cc2 + ld a, [hJoyLast] + and B_BUTTON + jr nz, .asm_81cdf + ld a, [hJoyLast] + and A_BUTTON + jr nz, .asm_81ce5 + ld a, [wcf64] + and $3 + ld e, a + ld d, 0 + ld hl, Jumptable_81d02 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +.asm_81cdf + ld a, $4 + ld [wJumptableIndex], a + ret + +.asm_81ce5 + ld a, [wd002] + and a + ret nz + ld a, [wd003] + xor $4 + ld [wd003], a + ld c, a + ld b, 0 + ld hl, PokemonPalettes + add hl, bc + call Function818fd + ld a, $0 + ld [wJumptableIndex], a + ret +; 81d02 + +Jumptable_81d02: ; 81d02 + dw Function81d0a + dw Function81d34 + dw Function81d46 + dw Function81d58 +; 81d0a + +Function81d0a: ; 81d0a + ld hl, hJoyLast + ld a, [hl] + and D_DOWN + jr nz, Function81d89 + ld a, [hl] + and D_LEFT + jr nz, .asm_81d1d + ld a, [hl] + and D_RIGHT + jr nz, .asm_81d28 + ret + +.asm_81d1d + xor a + ld [wcf65], a + ld de, wc608 + call Function81ea5 + ret + +.asm_81d28 + ld a, $1 + ld [wcf65], a + ld de, wc608 + 2 + call Function81ea5 + ret + +Function81d34: ; 81d34 + ld hl, hJoyLast + ld a, [hl] + and D_DOWN + jr nz, Function81d89 + ld a, [hl] + and D_UP + jr nz, Function81d84 + ld hl, wc608 + 10 + jr Function81d63 + +Function81d46: ; 81d46 + ld hl, hJoyLast + ld a, [hl] + and D_DOWN + jr nz, Function81d89 + ld a, [hl] + and D_UP + jr nz, Function81d84 + ld hl, wc608 + 11 + jr Function81d63 + +Function81d58: ; 81d58 + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, Function81d84 + ld hl, wc608 + 12 + +Function81d63: ; 81d63 + ld a, [hJoyLast] + and D_RIGHT + jr nz, Function81d70 + ld a, [hJoyLast] + and D_LEFT + jr nz, Function81d77 + ret + +Function81d70: ; 81d70 + ld a, [hl] + cp $1f + ret nc + inc [hl] + jr Function81d7b + +Function81d77: ; 81d77 + ld a, [hl] + and a + ret z + dec [hl] + +Function81d7b: ; 81d7b + call Function81e67 + ld a, $2 + ld [wJumptableIndex], a + ret + +Function81d84: ; 81d84 + ld hl, wcf64 + dec [hl] + ret + +Function81d89: ; 81d89 + ld hl, wcf64 + inc [hl] + ret +; 81d8e + +Function81d8e: ; 81d8e + hlcoord 0, 10 + ld bc, $a0 + ld a, $6f + call ByteFill + hlcoord 2, 12 + ld de, String_81fcd + call PlaceString + xor a + ld [wd004], a + call Function81df4 + ld a, $5 + ld [wJumptableIndex], a + ret +; 81daf + +Function81daf: ; 81daf + ld hl, hJoyPressed + ld a, [hl] + and B_BUTTON + jr nz, .asm_81dbb + call Function81dc7 + ret + +.asm_81dbb + ld a, $0 + ld [wJumptableIndex], a + ret +; 81dc1 + +Function81dc1: ; 81dc1 + ld hl, wJumptableIndex + set 7, [hl] + ret +; 81dc7 + +Function81dc7: ; 81dc7 + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, .asm_81dd5 + ld a, [hl] + and D_DOWN + jr nz, .asm_81de2 + ret + +.asm_81dd5 + ld a, [wd004] + cp $3b + jr z, .asm_81ddf + inc a + jr .asm_81ded + +.asm_81ddf + xor a + jr .asm_81ded + +.asm_81de2 + ld a, [wd004] + and a + jr z, .asm_81deb + dec a + jr .asm_81ded + +.asm_81deb + ld a, $3b + +.asm_81ded + ld [wd004], a + call Function81df4 + ret +; 81df4 + +Function81df4: ; 81df4 + hlcoord 10, 11 + call Function81e5e + hlcoord 10, 12 + call Function81e5e + hlcoord 10, 13 + call Function81e5e + hlcoord 10, 14 + call Function81e5e + ld a, [wd004] + inc a + ld [wd265], a + predef GetTMHMMove + ld a, [wd265] + ld [wd262], a + call GetMoveName + hlcoord 10, 12 + call PlaceString + ld a, [wd004] + call Function81e55 + ld [CurItem], a + predef CanLearnTMHMMove + ld a, c + and a + ld de, String_81e46 + jr nz, .asm_81e3f + ld de, String_81e4d + +.asm_81e3f + hlcoord 10, 14 + call PlaceString + ret +; 81e46 + +String_81e46: db "おぼえられる@" ; can be taught +String_81e4d: db "おぼえられない@" ; cannot be taught +; 81e55 + +Function81e55: ; 81e55 + cp $32 + jr c, .asm_81e5b +rept 2 + inc a +endr + +.asm_81e5b + add $bf + ret +; 81e5e + +Function81e5e: ; 81e5e + ld bc, $a + ld a, $6f + call ByteFill + ret +; 81e67 + +Function81e67: ; 81e67 + ld a, [wc608 + 10] + and $1f + ld e, a + ld a, [wc608 + 11] + and $7 + sla a + swap a + or e + ld e, a + ld a, [wc608 + 11] + and $18 + sla a + swap a + ld d, a + ld a, [wc608 + 12] + and $1f + sla a + sla a + or d + ld d, a + ld a, [wcf65] + and a + jr z, .asm_81e9c + ld a, e + ld [wc608 + 2], a + ld a, d + ld [wc608 + 3], a + ret + +.asm_81e9c + ld a, e + ld [wc608], a + ld a, d + ld [wc608 + 1], a + ret +; 81ea5 + +Function81ea5: ; 81ea5 + ld a, [de] + and $1f + ld [wc608 + 10], a + ld a, [de] + and $e0 + swap a + srl a + ld b, a + inc de + ld a, [de] + and $3 + swap a + srl a + or b + ld [wc608 + 11], a + ld a, [de] + and $7c + srl a + srl a + ld [wc608 + 12], a + ret +; 81eca + +Function81eca: ; 81eca + ld a, [wcf66] + inc a + ld l, a + ld h, $0 +rept 2 + add hl, hl +endr + ld de, OverworldMap + add hl, de + ld e, l + ld d, h + ld hl, wc608 + ld bc, 4 + call CopyBytes + ret +; 81ee3 + +Function81ee3: ; 81ee3 +.asm_81ee3 + ld a, $ff + ld [hli], a + ld a, $7f + ld [hli], a + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + xor a +rept 2 + ld [hli], a +endr + dec c + jr nz, .asm_81ee3 + ret +; 81efc + +Bank20_FillBoxWithByte: ; 81efc +; For some reason, we have another copy of FillBoxWithByte here +.row + push bc + push hl +.col + ld [hli], a + dec c + jr nz, .col + pop hl + ld bc, SCREEN_WIDTH + add hl, bc + pop bc + dec b + jr nz, .row + ret +; 81f0c + +Function81f0c: ; 81f0c + ld a, [wcfbe] + push af + set 7, a + ld [wcfbe], a + call Function81f1d + pop af + ld [wcfbe], a + ret +; 81f1d + +Function81f1d: ; 81f1d + ld a, [hl] + and $7 + ret z + ld b, a +.asm_81f22 + push bc + xor a + ld [rJOYP], a + ld a, $30 + ld [rJOYP], a + ld b, $10 +.asm_81f2c + ld e, $8 + ld a, [hli] + ld d, a +.asm_81f30 + bit 0, d + ld a, $10 + jr nz, .asm_81f38 + ld a, $20 + +.asm_81f38 + ld [rJOYP], a + ld a, $30 + ld [rJOYP], a + rr d + dec e + jr nz, .asm_81f30 + dec b + jr nz, .asm_81f2c + ld a, $20 + ld [rJOYP], a + ld a, $30 + ld [rJOYP], a + ld de, 7000 +.asm_81f51 + nop + nop + nop + dec de + ld a, d + or e + jr nz, .asm_81f51 + pop bc + dec b + jr nz, .asm_81f22 + ret +; 81f5e + +Function81f5e: ; 81f5e + ld a, $6f + hlcoord 10, 0 + ld [hl], a + hlcoord 15, 0 + ld [hl], a + hlcoord 1, 11 + ld [hl], a + hlcoord 1, 13 + ld [hl], a + hlcoord 1, 15 + ld [hl], a + ld a, [wJumptableIndex] + cp $3 + jr nz, .asm_81fc9 + ld a, [wcf64] + and a + jr z, .asm_81f8d + dec a + hlcoord 1, 11 + ld bc, 2 * SCREEN_WIDTH + call AddNTimes + ld [hl], $ed + +.asm_81f8d + ld a, [wcf65] + and a + jr z, .asm_81f98 + hlcoord 15, 0 + jr .asm_81f9b + +.asm_81f98 + hlcoord 10, 0 + +.asm_81f9b + ld [hl], $ed + ld b, $70 + ld c, $5 + ld hl, Sprites + ld de, wc608 + 10 + call .asm_81fb7 + ld de, wc608 + 11 + call .asm_81fb7 + ld de, wc608 + 12 + call .asm_81fb7 + ret + +.asm_81fb7 + ld a, b + ld [hli], a + ld a, [de] +rept 2 + add a +endr + add $18 + ld [hli], a + xor a + ld [hli], a + ld a, c + ld [hli], a + ld a, $10 + add b + ld b, a + inc c + ret + +.asm_81fc9 + call ClearSprites + ret +; 81fcd + +String_81fcd: ; 81fcd + db "おわりますか?" ; Are you finished? + next "はい", $f2, $f2, $f2, $7a ; YES (A) + next "いいえ", $f2, $f2, $7b ; NO (B) + db "@" +; 81fe3 + +DebugColorTestGFX: +INCBIN "gfx/debug/color_test.2bpp" + + +TilesetColorTest: + ret + xor a + ld [wJumptableIndex], a + ld [wcf64], a + ld [wcf65], a + ld [wcf66], a + ld [hMapAnims], a + call ClearSprites + call OverworldTextModeSwitch + call Function3200 + xor a + ld [hBGMapMode], a + ld de, DebugColorTestGFX + $10 + ld hl, VTiles2 tile $6a + lb bc, BANK(DebugColorTestGFX), $16 + call Request2bpp + ld de, DebugColorTestGFX + ld hl, VTiles1 + lb bc, BANK(DebugColorTestGFX), 1 + call Request2bpp + ld a, VBGMap1 / $100 + ld [hBGMapAddress + 1], a + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, $6f + call ByteFill + hlcoord 0, 0, AttrMap + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, $7 + call ByteFill + ld de, $15 + ld a, $6c + call Function821d2 + ld de, $1a + ld a, $6d + call Function821d2 + ld de, $1f + ld a, $6e + call Function821d2 + ld de, $24 + ld a, $6f + call Function821d2 + call Function821f4 + call Function8220f + call Function3200 + ld [wJumptableIndex], a + ld a, $40 + ld [hWY], a + ret +; 821d2 + +Function821d2: ; 821d2 + hlcoord 0, 0 + call Function821de + +Function821d8: ; 821d8 + ld a, [wcf64] + hlcoord 0, 0, AttrMap + +Function821de: ; 821de + add hl, de +rept 4 + ld [hli], a +endr + ld bc, $10 + add hl, bc +rept 4 + ld [hli], a +endr + ld bc, $10 + add hl, bc +rept 4 + ld [hli], a +endr + ret +; 821f4 + +Function821f4: ; 821f4 + hlcoord 2, 4 + call Function82203 + hlcoord 2, 6 + call Function82203 + hlcoord 2, 8 + +Function82203: ; 82203 + ld a, $6a + ld [hli], a + ld bc, $10 - 1 + ld a, $6b + call ByteFill + ret +; 8220f + +Function8220f: ; 8220f + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld a, [wcf64] + ld l, a + ld h, $0 +rept 3 + add hl, hl +endr + ld de, wMapPals + add hl, de + ld de, wc608 + ld bc, 8 + call CopyBytes + ld de, wc608 + call Function81ea5 + pop af + ld [rSVBK], a + ret +; 82236 + + +Function82236: ; 82236 + ld hl, hJoyLast + ld a, [hl] + and SELECT + jr nz, .loop7 + ld a, [hl] + and B_BUTTON + jr nz, .asm_82299 + call Function822f0 + ret + +.loop7 + ld hl, wcf64 + ld a, [hl] + inc a + and $7 + cp $7 + jr nz, .asm_82253 + xor a + +.asm_82253 + ld [hl], a + ld de, $15 + call Function821d8 + ld de, $1a + call Function821d8 + ld de, $1f + call Function821d8 + ld de, $24 + call Function821d8 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, BGPals + ld a, [wcf64] + ld bc, 8 + call AddNTimes + ld de, wc608 + ld bc, 8 + call CopyBytes + pop af + ld [rSVBK], a + ld a, $2 + ld [hBGMapMode], a + ld c, 3 + call DelayFrames + ld a, $1 + ld [hBGMapMode], a + ret + +.asm_82299 + call ClearSprites + ld a, [hWY] + xor $d0 + ld [hWY], a + ret +; 822a3 + +Function822a3: ; 822a3 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, BGPals + ld a, [wcf64] + ld bc, 8 + call AddNTimes + ld e, l + ld d, h + ld hl, wc608 + ld bc, 8 + call CopyBytes + hlcoord 1, 0 + ld de, wc608 + call Function81ca7 + hlcoord 6, 0 + ld de, wc608 + 2 + call Function81ca7 + hlcoord 11, 0 + ld de, wc608 + 4 + call Function81ca7 + hlcoord 16, 0 + ld de, wc608 + 6 + call Function81ca7 + pop af + ld [rSVBK], a + ld a, $1 + ld [hCGBPalUpdate], a + call DelayFrame + ret +; 822f0 + +Function822f0: ; 822f0 + ld a, [wcf65] + and 3 + ld e, a + ld d, 0 + ld hl, .jumptable +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 82301 + +.jumptable: ; 82301 + dw Function82309 + dw Function82339 + dw Function8234b + dw Function8235d +; 82309 + +Function82309: ; 82309 + ld hl, hJoyLast + ld a, [hl] + and D_DOWN + jr nz, Function8238c + ld a, [hl] + and D_LEFT + jr nz, .asm_8231c + ld a, [hl] + and D_RIGHT + jr nz, .asm_82322 + ret + +.asm_8231c + ld a, [wcf66] + dec a + jr .asm_82326 + +.asm_82322 + ld a, [wcf66] + inc a + +.asm_82326 + and $3 + ld [wcf66], a + ld e, a + ld d, $0 + ld hl, wc608 +rept 2 + add hl, de +endr + ld e, l + ld d, h + call Function81ea5 + ret + +Function82339: ; 82338 + ld hl, hJoyLast + ld a, [hl] + and D_DOWN + jr nz, Function8238c + ld a, [hl] + and D_UP + jr nz, Function82387 + ld hl, wc608 + 10 + jr Function82368 + +Function8234b: ; 8234b + ld hl, hJoyLast + ld a, [hl] + and D_DOWN + jr nz, Function8238c + ld a, [hl] + and D_UP + jr nz, Function82387 + ld hl, wc608 + 11 + jr Function82368 + +Function8235d: ; 8235d + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, Function82387 + ld hl, wc608 + 12 + +Function82368: ; 82368 + ld a, [hJoyLast] + and D_RIGHT + jr nz, .asm_82375 + ld a, [hJoyLast] + and D_LEFT + jr nz, .asm_8237c + ret + +.asm_82375 + ld a, [hl] + cp $1f + ret nc + inc [hl] + jr .asm_82380 + +.asm_8237c + ld a, [hl] + and a + ret z + dec [hl] + +.asm_82380 + call Function82391 + call Function822a3 + ret + +Function82387: ; 82387 + ld hl, wcf65 + dec [hl] + ret + +Function8238c: ; 8238c + ld hl, wcf65 + inc [hl] + ret +; 82391 + +Function82391: ; 82391 + ld a, [wc608 + 10] + and $1f + ld e, a + ld a, [wc608 + 11] + and $7 + sla a + swap a + or e + ld e, a + ld a, [wc608 + 11] + and $18 + sla a + swap a + ld d, a + ld a, [wc608 + 12] + and $1f + sla a + sla a + or d + ld d, a + ld a, [wcf66] + ld c, a + ld b, $0 + ld hl, wc608 +rept 2 + add hl, bc +endr + ld a, e + ld [hli], a + ld [hl], d + ret +; 823c6 + +Function823c6: ; 823c6 + ret + +Function823c7: ; 823c7 + ret +; 823c8 diff --git a/engine/engine_flags.asm b/engine/engine_flags.asm index 49a7d82e1..74113b4a5 100644 --- a/engine/engine_flags.asm +++ b/engine/engine_flags.asm @@ -1,3 +1,90 @@ +EngineFlagAction:: ; 80430 +; Do action b on engine flag de +; +; b = 0: reset flag +; = 1: set flag +; > 1: check flag, result in c +; +; Setting/resetting does not return a result. + + +; 16-bit flag ids are considered invalid, but it's nice +; to know that the infrastructure is there. + + ld a, d + cp 0 + jr z, .ceiling + jr c, .read ; cp 0 can't set carry! + jr .invalid + +; There are only $a2 engine flags, so +; anything beyond that is invalid too. + +.ceiling + ld a, e + cp NUM_ENGINE_FLAGS + jr c, .read + +; Invalid flags are treated as flag 00. + +.invalid + xor a + ld e, a + ld d, a + +; Get this flag's location. + +.read + ld hl, EngineFlags +; location +rept 2 + add hl, de +endr +; bit + add hl, de + +; location + ld e, [hl] + inc hl + ld d, [hl] + inc hl +; bit + ld c, [hl] + +; What are we doing with this flag? + + ld a, b + cp 1 + jr c, .reset ; b = 0 + jr z, .set ; b = 1 + +; Return the given flag in c. +.check + ld a, [de] + and c + ld c, a + ret + +; Set the given flag. +.set + ld a, [de] + or c + ld [de], a + ret + +; Reset the given flag. +.reset + ld a, c + cpl ; AND all bits except the one in question + ld c, a + ld a, [de] + and c + ld [de], a + ret +; 80462 + + +EngineFlags: ; 80462 ; All locations are in WRAM bank 1. engine_flag: MACRO dwb \1, 1 << \2 diff --git a/engine/npctrade.asm b/engine/npctrade.asm new file mode 100755 index 000000000..97109cdd4 --- /dev/null +++ b/engine/npctrade.asm @@ -0,0 +1,620 @@ + +; Trade struct +TRADE_DIALOG EQU 0 +TRADE_GIVEMON EQU 1 +TRADE_GETMON EQU 2 +TRADE_NICK EQU 3 +TRADE_DVS EQU 14 +TRADE_ITEM EQU 16 +TRADE_OT_ID EQU 17 +TRADE_OT_NAME EQU 19 +TRADE_GENDER EQU 30 +TRADE_PADDING EQU 31 + +; Trade dialogs +TRADE_INTRO EQU 0 +TRADE_CANCEL EQU 1 +TRADE_WRONG EQU 2 +TRADE_COMPLETE EQU 3 +TRADE_AFTER EQU 4 + +NPCTrade:: ; fcba8 + ld a, e + ld [wJumptableIndex], a + call Functionfcc59 + ld b, CHECK_FLAG + call TradeFlagAction + ld a, TRADE_AFTER + jr nz, .done + + ld a, TRADE_INTRO + call PrintTradeText + + call YesNoBox + ld a, TRADE_CANCEL + jr c, .done + +; Select givemon from party + ld b, 6 + callba Function5001d + ld a, TRADE_CANCEL + jr c, .done + + ld e, TRADE_GIVEMON + call GetTradeAttribute + ld a, [CurPartySpecies] + cp [hl] + ld a, TRADE_WRONG + jr nz, .done + + call CheckTradeGender + ld a, TRADE_WRONG + jr c, .done + + ld b, SET_FLAG + call TradeFlagAction + + ld hl, ConnectLinkCableText + call PrintText + + call Functionfcc63 + call Functionfcc07 + call GetTradeMonNames + + ld hl, TradedForText + call PrintText + + call RestartMapMusic + + ld a, TRADE_COMPLETE + +.done + call PrintTradeText + ret +; fcc07 + +Functionfcc07: ; fcc07 + call DisableSpriteUpdates + ld a, [wJumptableIndex] + push af + ld a, [wcf64] + push af + predef Function28f24 + pop af + ld [wcf64], a + pop af + ld [wJumptableIndex], a + call Function2b74 + ret +; fcc23 + +CheckTradeGender: ; fcc23 + xor a + ld [MonType], a + + ld e, TRADE_GENDER + call GetTradeAttribute + ld a, [hl] + and a + jr z, .asm_fcc46 + cp 1 + jr z, .asm_fcc3e + + callba GetGender + jr nz, .asm_fcc48 + jr .asm_fcc46 + +.asm_fcc3e + callba GetGender + jr z, .asm_fcc48 + +.asm_fcc46 + and a + ret + +.asm_fcc48 + scf + ret +; fcc4a + +TradeFlagAction: ; fcc4a + ld hl, wd960 + ld a, [wJumptableIndex] + ld c, a + predef FlagPredef + ld a, c + and a + ret +; fcc59 + +Functionfcc59: ; fcc59 + ld e, TRADE_DIALOG + call GetTradeAttribute + ld a, [hl] + ld [wcf64], a + ret +; fcc63 + +Functionfcc63: ; fcc63 + ld e, TRADE_GIVEMON + call GetTradeAttribute + ld a, [hl] + ld [wc6d0], a + + ld e, TRADE_GETMON + call GetTradeAttribute + ld a, [hl] + ld [wc702], a + + ld a, [wc6d0] + ld de, wc6d1 + call Functionfcde8 + call Functionfcdf4 + + ld a, [wc702] + ld de, wc703 + call Functionfcde8 + call Functionfcdf4 + + ld hl, PartyMonOT + ld bc, NAME_LENGTH + call Functionfcdd7 + ld de, wc6f2 + call Functionfcdf4 + + ld hl, PlayerName + ld de, wc6e7 + call Functionfcdf4 + + ld hl, PartyMon1ID + ld bc, PARTYMON_STRUCT_LENGTH + call Functionfcdd7 + ld de, wc6ff + call Functionfce0f + + ld hl, PartyMon1DVs + ld bc, PARTYMON_STRUCT_LENGTH + call Functionfcdd7 + ld de, wc6fd + call Functionfce0f + + ld hl, PartyMon1Species + ld bc, PARTYMON_STRUCT_LENGTH + call Functionfcdd7 + ld b, h + ld c, l + callba GetCaughtGender + ld a, c + ld [wc701], a + + ld e, TRADE_DIALOG + call GetTradeAttribute + ld a, [hl] + cp TRADE_COMPLETE + ld a, 1 + jr c, .asm_fcce6 + ld a, 2 +.asm_fcce6 + ld [wEnemyCharging], a + + ld hl, PartyMon1Level + ld bc, PARTYMON_STRUCT_LENGTH + call Functionfcdd7 + ld a, [hl] + ld [CurPartyLevel], a + ld a, [wc702] + ld [CurPartySpecies], a + xor a + ld [MonType], a + ld [wPokemonWithdrawDepositParameter], a + callab Functione039 + predef TryAddMonToParty + + ld e, TRADE_DIALOG + call GetTradeAttribute + ld a, [hl] + cp TRADE_COMPLETE + ld b, 0 + jr c, .asm_fcd1c + ld b, 1 +.asm_fcd1c + callba SetGiftPartyMonCaughtData + + ld e, TRADE_NICK + call GetTradeAttribute + ld de, wc70e + call Functionfcdf4 + + ld hl, PartyMonNicknames + ld bc, PKMN_NAME_LENGTH + call Functionfcdde + ld hl, wc70e + call Functionfcdf4 + + ld e, TRADE_OT_NAME + call GetTradeAttribute + push hl + ld de, wc724 + call Functionfcdf4 + pop hl + ld de, wc719 + call Functionfcdf4 + + ld hl, PartyMonOT + ld bc, NAME_LENGTH + call Functionfcdde + ld hl, wc724 + call Functionfcdf4 + + ld e, TRADE_DVS + call GetTradeAttribute + ld de, wEnemyTrappingMove + call Functionfce0f + + ld hl, PartyMon1DVs + ld bc, PARTYMON_STRUCT_LENGTH + call Functionfcdde + ld hl, wEnemyTrappingMove + call Functionfce0f + + ld e, TRADE_OT_ID + call GetTradeAttribute + ld de, wPlayerCharging + call Functionfce15 + + ld hl, PartyMon1ID + ld bc, PARTYMON_STRUCT_LENGTH + call Functionfcdde + ld hl, wEnemyWrapCount + call Functionfce0f + + ld e, TRADE_ITEM + call GetTradeAttribute + push hl + ld hl, PartyMon1Item + ld bc, PARTYMON_STRUCT_LENGTH + call Functionfcdde + pop hl + ld a, [hl] + ld [de], a + + push af + push bc + push de + push hl + ld a, [CurPartyMon] + push af + ld a, [PartyCount] + dec a + ld [CurPartyMon], a + callba Functione134 + pop af + ld [CurPartyMon], a + pop hl + pop de + pop bc + pop af + ret +; fcdc2 + + +GetTradeAttribute: ; 0xfcdc2 + ld d, 0 + push de + ld a, [wJumptableIndex] + and $f + swap a + ld e, a + ld d, 0 + ld hl, NPCTrades +rept 2 + add hl, de +endr + pop de + add hl, de + ret +; 0xfcdd7 + +Functionfcdd7: ; fcdd7 + ld a, [CurPartyMon] + call AddNTimes + ret +; fcdde + +Functionfcdde: ; fcdde + ld a, [PartyCount] + dec a + call AddNTimes + ld e, l + ld d, h + ret +; fcde8 + +Functionfcde8: ; fcde8 + push de + ld [wd265], a + call GetBasePokemonName + ld hl, StringBuffer1 + pop de + ret +; fcdf4 + +Functionfcdf4: ; fcdf4 + ld bc, NAME_LENGTH + call CopyBytes + ret +; fcdfb + +Functionfcdfb: ; fcdfb + ld bc, 4 + call CopyBytes + ld a, $50 + ld [de], a + ret +; fce05 + +Functionfce05: ; fce05 + ld bc, 3 + call CopyBytes + ld a, $50 + ld [de], a + ret +; fce0f + +Functionfce0f: ; fce0f + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + ret +; fce15 + +Functionfce15: ; fce15 + ld a, [hli] + ld [de], a + dec de + ld a, [hl] + ld [de], a + ret +; fce1b + +GetTradeMonNames: ; fce1b + ld e, TRADE_GETMON + call GetTradeAttribute + ld a, [hl] + call Functionfcde8 + + ld de, StringBuffer2 + call Functionfcdf4 + + ld e, TRADE_GIVEMON + call GetTradeAttribute + ld a, [hl] + call Functionfcde8 + + ld de, wd050 + call Functionfcdf4 + + ld hl, StringBuffer1 +.loop + ld a, [hli] + cp "@" + jr nz, .loop + + dec hl + push hl + ld e, TRADE_GENDER + call GetTradeAttribute + ld a, [hl] + pop hl + and a + ret z + + cp 1 + ld a, "♂" + jr z, .done + ld a, "♀" +.done + ld [hli], a + ld [hl], "@" + ret +; fce58 + + +NPCTrades: ; fce58 + db 0, ABRA, MACHOP, "MUSCLE@@@@@", $37, $66, GOLD_BERRY, $54, $92, "MIKE@@@@@@@", 0, 0 + db 0, BELLSPROUT, ONIX, "ROCKY@@@@@@", $96, $66, BITTER_BERRY, $1e, $bf, "KYLE@@@@@@@", 0, 0 + db 1, KRABBY, VOLTORB, "VOLTY@@@@@@", $98, $88, PRZCUREBERRY, $05, $72, "TIM@@@@@@@@", 0, 0 + db 3, DRAGONAIR, DODRIO, "DORIS@@@@@@", $77, $66, SMOKE_BALL, $1b, $01, "EMY@@@@@@@@", 2, 0 + db 2, HAUNTER, XATU, "PAUL@@@@@@@", $96, $86, MYSTERYBERRY, $00, $3d, "CHRIS@@@@@@", 0, 0 + db 3, CHANSEY, AERODACTYL, "AEROY@@@@@@", $96, $66, GOLD_BERRY, $7b, $67, "KIM@@@@@@@@", 0, 0 + db 0, DUGTRIO, MAGNETON, "MAGGIE@@@@@", $96, $66, METAL_COAT, $a2, $c3, "FOREST@@@@@", 0, 0 +; fcf38 + + +PrintTradeText: ; fcf38 + push af + call GetTradeMonNames + pop af + ld bc, 2 * 4 + ld hl, TradeTexts + call AddNTimes + ld a, [wcf64] + ld c, a +rept 2 + add hl, bc +endr + ld a, [hli] + ld h, [hl] + ld l, a + call PrintText + ret +; fcf53 + +TradeTexts: ; fcf53 +; intro + dw TradeIntroText1 + dw TradeIntroText2 + dw TradeIntroText3 + dw TradeIntroText4 + +; cancel + dw TradeCancelText1 + dw TradeCancelText2 + dw TradeCancelText3 + dw TradeCancelText4 + +; wrong mon + dw TradeWrongText1 + dw TradeWrongText2 + dw TradeWrongText3 + dw TradeWrongText4 + +; completed + dw TradeCompleteText1 + dw TradeCompleteText2 + dw TradeCompleteText3 + dw TradeCompleteText4 + +; after + dw TradeAfterText1 + dw TradeAfterText2 + dw TradeAfterText3 + dw TradeAfterText4 +; fcf7b + + +ConnectLinkCableText: ; 0xfcf7b + ; OK, connect the Game Link Cable. + text_jump UnknownText_0x1bd407 + db "@" +; 0xfcf80 + + +TradedForText: ; 0xfcf80 + ; traded givemon for getmon + text_jump UnknownText_0x1bd429 + start_asm + + ld de, MUSIC_NONE + call PlayMusic + call DelayFrame + ld hl, .done + ret + +.done + ; sound0x0A + ; interpret_data + text_jump UnknownText_0x1bd445 + db "@" +; 0xfcf97 + + +TradeIntroText1: ; 0xfcf97 + ; I collect #MON. Do you have @ ? Want to trade it for my @ ? + text_jump UnknownText_0x1bd449 + db "@" +; 0xfcf9c + +TradeCancelText1: ; 0xfcf9c + ; You don't want to trade? Aww… + text_jump UnknownText_0x1bd48c + db "@" +; 0xfcfa1 + +TradeWrongText1: ; 0xfcfa1 + ; Huh? That's not @ . What a letdown… + text_jump UnknownText_0x1bd4aa + db "@" +; 0xfcfa6 + +TradeCompleteText1: ; 0xfcfa6 + ; Yay! I got myself @ ! Thanks! + text_jump UnknownText_0x1bd4d2 + db "@" +; 0xfcfab + +TradeAfterText1: ; 0xfcfab + ; Hi, how's my old @ doing? + text_jump UnknownText_0x1bd4f4 + db "@" +; 0xfcfb0 + + +TradeIntroText2: +TradeIntroText3: ; 0xfcfb0 + ; Hi, I'm looking for this #MON. If you have @ , would you trade it for my @ ? + text_jump UnknownText_0x1bd512 + db "@" +; 0xfcfb5 + +TradeCancelText2: +TradeCancelText3: ; 0xfcfb5 + ; You don't have one either? Gee, that's really disappointing… + text_jump UnknownText_0x1bd565 + db "@" +; 0xfcfba + +TradeWrongText2: +TradeWrongText3: ; 0xfcfba + ; You don't have @ ? That's too bad, then. + text_jump UnknownText_0x1bd5a1 + db "@" +; 0xfcfbf + +TradeCompleteText2: ; 0xfcfbf + ; Great! Thank you! I finally got @ . + text_jump UnknownText_0x1bd5cc + db "@" +; 0xfcfc4 + +TradeAfterText2: ; 0xfcfc4 + ; Hi! The @ you traded me is doing great! + text_jump UnknownText_0x1bd5f4 + db "@" +; 0xfcfc9 + + +TradeIntroText4: ; 0xfcfc9 + ; 's cute, but I don't have it. Do you have @ ? Want to trade it for my @ ? + text_jump UnknownText_0x1bd621 + db "@" +; 0xfcfce + +TradeCancelText4: ; 0xfcfce + ; You don't want to trade? Oh, darn… + text_jump UnknownText_0x1bd673 + db "@" +; 0xfcfd3 + +TradeWrongText4: ; 0xfcfd3 + ; That's not @ . Please trade with me if you get one. + text_jump UnknownText_0x1bd696 + db "@" +; 0xfcfd8 + +TradeCompleteText4: ; 0xfcfd8 + ; Wow! Thank you! I always wanted @ ! + text_jump UnknownText_0x1bd6cd + db "@" +; 0xfcfdd + +TradeAfterText4: ; 0xfcfdd + ; How is that @ I traded you doing? Your @ 's so cute! + text_jump UnknownText_0x1bd6f5 + db "@" +; 0xfcfe2 + + +TradeCompleteText3: ; 0xfcfe2 + ; Uh? What happened? + text_jump UnknownText_0x1bd731 + db "@" +; 0xfcfe7 + +TradeAfterText3: ; 0xfcfe7 + ; Trading is so odd… I still have a lot to learn about it. + text_jump UnknownText_0x1bd745 + db "@" +; 0xfcfec diff --git a/engine/party_menu.asm b/engine/party_menu.asm index e81355c7a..356b07f8e 100644 --- a/engine/party_menu.asm +++ b/engine/party_menu.asm @@ -41,7 +41,7 @@ Function5003f: ; 5003f LoadPartyMenuGFX: ; 5004f call LoadFontsBattleExtra callab Function8ad1 ; engine/color.asm - callab InefficientlyClear121BytesAtwc300 + callab ClearSpriteAnims ret ; 5005f diff --git a/engine/printer.asm b/engine/printer.asm new file mode 100755 index 000000000..9c18d42fe --- /dev/null +++ b/engine/printer.asm @@ -0,0 +1,1493 @@ +Function84000: ; 84000 + ld hl, OverworldMap + lb bc, 4, 12 + xor a + call Function842ab + xor a + ld [rSB], a + ld [rSC], a + ld [wc2d5], a + ld hl, wc2d4 + set 0, [hl] + ld a, [GBPrinter] + ld [wcbfb], a + xor a + ld [wJumptableIndex], a + ret +; 84022 + +Function84022: ; 84022 + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, Jumptable_84031 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 84031 + + +Jumptable_84031: ; 84031 (21:4031) + dw Function84077 + dw Function84143 + dw Function84120 + dw Function84099 + dw Function84180 + dw Function8412e + dw Function840c5 + dw Function84180 + dw Function84120 + dw Function840de + dw Function84180 + dw Function84120 + dw Function841a1 + dw Function84063 + dw Function8406d + dw Function84120 + dw Function84103 + dw Function84071 + dw Function841b0 + dw Function841b3 + + +Function84059: ; 84059 (21:4059) + ld hl, wJumptableIndex + inc [hl] + ret + +Function8405e: ; 8405e (21:405e) + ld hl, wJumptableIndex + dec [hl] + ret + +Function84063: ; 84063 (21:4063) + xor a + ld [wca89], a + ld hl, wJumptableIndex + set 7, [hl] + ret + +Function8406d: ; 8406d (21:406d) + call Function84059 + ret + +Function84071: ; 84071 (21:4071) + ld a, $1 + ld [wJumptableIndex], a + ret + +Function84077: ; 84077 (21:4077) + call Function841fb + ld hl, Unknown_842b7 + call Function841e2 + xor a + ld [wca8e], a + ld [wca8f], a + ld a, [wcf65] + ld [wca81], a + call Function84059 + call Function841c3 + ld a, $1 + ld [wcbf8], a + ret + +Function84099: ; 84099 (21:4099) + call Function841fb + ld hl, wca81 + ld a, [hl] + and a + jr z, Function840c5 + ld hl, Unknown_842c3 + call Function841e2 + call Function84260 + ld a, $80 + ld [wca8e], a + ld a, $2 + ld [wca8f], a + call Function84219 + call Function84059 + call Function841c3 + ld a, $2 + ld [wcbf8], a + ret + +Function840c5: ; 840c5 (21:40c5) + ld a, $6 + ld [wJumptableIndex], a + ld hl, Unknown_842c9 + call Function841e2 + xor a + ld [wca8e], a + ld [wca8f], a + call Function84059 + call Function841c3 + ret + +Function840de: ; 840de (21:40de) + call Function841fb + ld hl, Unknown_842bd + call Function841e2 + call Function84249 + ld a, $4 + ld [wca8e], a + ld a, $0 + ld [wca8f], a + call Function84219 + call Function84059 + call Function841c3 + ld a, $3 + ld [wcbf8], a + ret + +Function84103: ; 84103 (21:4103) + call Function841fb + ld hl, Unknown_842b7 + call Function841e2 + xor a + ld [wca8e], a + ld [wca8f], a + ld a, [wcf65] + ld [wca81], a + call Function84059 + call Function841c3 + ret + +Function84120: ; 84120 (21:4120) + ld hl, wca8b + inc [hl] + ld a, [hl] + cp $6 + ret c + xor a + ld [hl], a + call Function84059 + ret + +Function8412e: ; 8412e (21:412e) + ld hl, wca8b + inc [hl] + ld a, [hl] + cp $6 + ret c + xor a + ld [hl], a + ld hl, wca81 + dec [hl] + call Function8405e + call Function8405e + ret + +Function84143: ; 84143 (21:4143) + ld a, [wc2d5] + and a + ret nz + ld a, [wca88] + cp $ff + jr nz, .printer_connected + ld a, [wca89] + cp $ff + jr z, .printer_error + +.printer_connected + ld a, [wca88] + cp $81 + jr nz, .printer_error + ld a, [wca89] + cp $0 + jr nz, .printer_error + ld hl, wc2d4 + set 1, [hl] + ld a, $5 + ld [wca8a], a + call Function84059 + ret + +.printer_error + ld a, $ff + ld [wca88], a + ld [wca89], a + ld a, $e + ld [wJumptableIndex], a + ret + +Function84180: ; 84180 (21:4180) + ld a, [wc2d5] + and a + ret nz + ld a, [wca89] + and $f0 + jr nz, .asm_8419b + ld a, [wca89] + and $1 + jr nz, .asm_84197 + call Function84059 + ret +.asm_84197 + call Function8405e + ret +.asm_8419b + ld a, $12 + ld [wJumptableIndex], a + ret + +Function841a1: ; 841a1 (21:41a1) + ld a, [wc2d5] + and a + ret nz + ld a, [wca89] + and $f3 + ret nz + call Function84059 + ret + +Function841b0: ; 841b0 (21:41b0) + call Function84059 + +Function841b3: ; 841b3 (21:41b3) + ld a, [wc2d5] + and a + ret nz + ld a, [wca89] + and $f0 + ret nz + xor a + ld [wJumptableIndex], a + ret + +Function841c3: ; 841c3 (21:41c3) + ld a, [wc2d5] + and a + jr nz, Function841c3 + xor a + ld [wca8c], a + ld [wca8d], a + ld a, $1 + ld [wc2d5], a + ld a, $88 + ld [rSB], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + ret + +Function841e2: ; 841e2 (21:41e2) + ld a, [hli] + ld [wca82], a + ld a, [hli] + ld [wca83], a + ld a, [hli] + ld [wca84], a + ld a, [hli] + ld [wca85], a + ld a, [hli] + ld [wca86], a + ld a, [hl] + ld [wca87], a + ret + +Function841fb: ; 841fb (21:41fb) + xor a + ld hl, wca82 +rept 3 + ld [hli], a +endr + ld [hl], a + ld hl, wca86 + ld [hli], a + ld [hl], a + xor a + ld [wca8e], a + ld [wca8f], a + ld hl, OverworldMap + ld bc, $280 + call Function842ab + ret + +Function84219: ; 84219 (21:4219) + ld hl, 0 + ld bc, $4 + ld de, wca82 + call Function8423c + ld a, [wca8e] + ld c, a + ld a, [wca8f] + ld b, a + ld de, OverworldMap + call Function8423c + ld a, l + ld [wca86], a + ld a, h + ld [wca87], a + ret + +Function8423c: ; 8423c (21:423c) + ld a, [de] + inc de + add l + jr nc, .asm_84242 + inc h +.asm_84242 + ld l, a + dec bc + ld a, c + or b + jr nz, Function8423c + ret + +Function84249: ; 84249 (21:4249) + ld a, $1 + ld [OverworldMap], a + ld a, [wcbfa] + ld [wc801], a + ld a, $e4 + ld [wc802], a + ld a, [wcbfb] + ld [wc803], a + ret + +Function84260: ; 84260 (21:4260) + ld a, [wca81] + xor $ff + ld d, a + ld a, [wcf65] + inc a + add d + ld hl, wca90 + ld de, $28 +.asm_84271 + and a + jr z, .asm_84278 + add hl, de + dec a + jr .asm_84271 +.asm_84278 + ld e, l + ld d, h + ld hl, OverworldMap + ld c, $28 +.asm_8427f + ld a, [de] + inc de + push bc + push de + push hl + swap a + ld d, a + and $f0 + ld e, a + ld a, d + and $f + ld d, a + and $8 + ld a, d + jr nz, .asm_84297 + or $90 + jr .asm_84299 +.asm_84297 + or $80 +.asm_84299 + ld d, a + lb bc, $21, 1 + call Request2bpp + pop hl + ld de, $10 + add hl, de + pop de + pop bc + dec c + jr nz, .asm_8427f + ret + +Function842ab: ; 842ab + push de + ld e, a +.asm_842ad + ld [hl], e + inc hl + dec bc + ld a, c + or b + jr nz, .asm_842ad + ld a, e + pop de + ret +; 842b7 + +Unknown_842b7: db 1, 0, $00, 0, 1, 0 +Unknown_842bd: db 2, 0, $04, 0, 0, 0 +Unknown_842c3: db 4, 0, $80, 2, 0, 0 +Unknown_842c9: db 4, 0, $00, 0, 4, 0 +Unknown_842cf: db 8, 0, $00, 0, 8, 0 ; unused +Unknown_842d5: db 15, 0, $00, 0, 15, 0 ; unused +; 842db + + +Function842db:: ; 842db + ld a, [wc2d5] + add a + ld e, a + ld d, 0 + ld hl, Jumptable_842ea + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 842ea + + +Jumptable_842ea: ; 842ea (21:42ea) + dw Function8432f + dw Function84330 + dw Function84339 + dw Function84343 + dw Function8434d + dw Function84357 + dw Function84361 + dw Function8438b + dw Function84395 + dw Function8439f + dw Function843a8 + dw Function843b6 + dw Function84330 + dw Function843c0 + dw Function843c9 + dw Function843c9 + dw Function843c9 + dw Function843c0 + dw Function843c9 + dw Function8439f + dw Function843a8 + dw Function843e6 + dw Function84330 + dw Function843d2 + dw Function843c9 + dw Function843c9 + dw Function843c9 + dw Function843d2 + dw Function843c9 + dw Function8439f + dw Function843a8 + dw Function843b6 + + +Function8432a: ; 8432a (21:432a) + ld hl, wc2d5 + inc [hl] + ret + +Function8432f: ; 8432f (21:432f) + ret + +Function84330: ; 84330 (21:4330) + ld a, $33 + call Function843db + call Function8432a + ret + +Function84339: ; 84339 (21:4339) + ld a, [wca82] + call Function843db + call Function8432a + ret + +Function84343: ; 84343 (21:4343) + ld a, [wca83] + call Function843db + call Function8432a + ret + +Function8434d: ; 8434d (21:434d) + ld a, [wca84] + call Function843db + call Function8432a + ret + +Function84357: ; 84357 (21:4357) + ld a, [wca85] + call Function843db + call Function8432a + ret + +Function84361: ; 84361 (21:4361) + ld hl, wca8e + ld a, [hli] + ld d, [hl] + ld e, a + or d + jr z, .asm_84388 + dec de + ld [hl], d + dec hl + ld [hl], e + ld a, [wca8c] + ld e, a + ld a, [wca8d] + ld d, a + ld hl, OverworldMap + add hl, de + inc de + ld a, e + ld [wca8c], a + ld a, d + ld [wca8d], a + ld a, [hl] + call Function843db + ret +.asm_84388 + call Function8432a + +Function8438b: ; 8438b (21:438b) + ld a, [wca86] + call Function843db + call Function8432a + ret + +Function84395: ; 84395 (21:4395) + ld a, [wca87] + call Function843db + call Function8432a + ret + +Function8439f: ; 8439f (21:439f) + ld a, $0 + call Function843db + call Function8432a + ret + +Function843a8: ; 843a8 (21:43a8) + ld a, [rSB] + ld [wca88], a + ld a, $0 + call Function843db + call Function8432a + ret + +Function843b6: ; 843b6 (21:43b6) + ld a, [rSB] + ld [wca89], a + xor a + ld [wc2d5], a + ret + +Function843c0: ; 843c0 (21:43c0) + ld a, $f + call Function843db + call Function8432a + ret + +Function843c9: ; 843c9 (21:43c9) + ld a, $0 + call Function843db + call Function8432a + ret + +Function843d2: ; 843d2 (21:43d2) + ld a, $8 + call Function843db + call Function8432a + ret + +Function843db: ; 843db (21:43db) + ld [rSB], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + ret + +Function843e6: ; 843e6 (21:43e6) + ld a, [rSB] + ld [wca89], a + xor a + ld [wc2d5], a + ret + +Function843f0: ; 843f0 +.asm_843f0 + call JoyTextDelay + call Function846f6 + jr c, .asm_8440f + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_8440d + call Function84022 + call Function84757 + call Function84785 + call DelayFrame + jr .asm_843f0 + +.asm_8440d + and a + ret + +.asm_8440f + scf + ret +; 84411 + +Function84411: ; 84411 + xor a + ld [wc2d4], a + ld [wc2d5], a + ret +; 84419 + +Function84419: ; 84419 + push af + call Function84000 + pop af + ld [wcbfa], a + call Function84728 + ret +; 84425 + +Function84425: ; 84425 + call ReturnToMapFromSubmenu + call Function84753 + ret +; 8442c + +Function8442c: ; 8442c + ld a, [wcf65] + push af + ld hl, VTiles1 + ld de, FontInversed + lb bc, BANK(FontInversed), $80 + call Request1bpp + xor a + ld [$ffac], a + call Function8474c + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $9 + ld [rIE], a + call Function84000 + ld a, $10 + ld [wcbfa], a + callba Function1dc1b0 + call ClearTileMap + ld a, $e4 + call DmgToCgbBGPals + call DelayFrame + ld hl, hVBlank + ld a, [hl] + push af + ld [hl], $4 + ld a, $8 + ld [wcf65], a + call Function84742 + call Function843f0 + jr c, .asm_8449d + call Function84411 + ld c, 12 + call DelayFrames + xor a + ld [hBGMapMode], a + call Function84000 + ld a, $3 + ld [wcbfa], a + callba Function1dc213 + call Function84742 + ld a, $4 + ld [wcf65], a + call Function843f0 + +.asm_8449d + pop af + ld [hVBlank], a + call Function84411 + xor a + ld [rIF], a + pop af + ld [rIE], a + call Function84425 + ld c, $8 +.asm_844ae + call LowVolume + call DelayFrame + dec c + jr nz, .asm_844ae + pop af + ld [wcf65], a + ret +; 844bc + +Function844bc: ; 844bc (21:44bc) + ld a, [wcf65] + push af + ld a, $9 + ld [wcf65], a + ld a, e + ld [wd004], a + ld a, d + ld [StartFlypoint], a + ld a, b + ld [EndFlypoint], a + ld a, c + ld [MovementBuffer], a + xor a + ld [$ffac], a + ld [wd003], a + call Function8474c + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $9 + ld [rIE], a + ld hl, hVBlank + ld a, [hl] + push af + ld [hl], $4 + xor a + ld [hBGMapMode], a + call Function84817 + ld a, $10 + call Function84419 + call Function84559 + jr c, .asm_84545 + call Function84411 + ld c, 12 + call DelayFrames + xor a + ld [hBGMapMode], a + call Function8486f + ld a, $0 + call Function84419 + call Function84559 + jr c, .asm_84545 + call Function84411 + ld c, 12 + call DelayFrames + xor a + ld [hBGMapMode], a + call Function84893 + ld a, $0 + call Function84419 + call Function84559 + jr c, .asm_84545 + call Function84411 + ld c, 12 + call DelayFrames + xor a + ld [hBGMapMode], a + call Function848b7 + ld a, $3 + call Function84419 + call Function84559 +.asm_84545 + pop af + ld [hVBlank], a + call Function84411 + xor a + ld [rIF], a + pop af + ld [rIE], a + call Function84425 + pop af + ld [wcf65], a + ret + +Function84559: ; 84559 (21:4559) + call Function84742 + call Function843f0 + ret + +Function84560: ; 84560 + ld a, [wcf65] + push af + xor a + ld [$ffac], a + call Function8474c + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $9 + ld [rIE], a + ld hl, hVBlank + ld a, [hl] + push af + ld [hl], $4 + xor a + ld [hBGMapMode], a + call LoadTileMapToTempTileMap + callba Function16dac + ld a, $0 + call Function84419 + call Call_LoadTempTileMapToTileMap + call Function84742 + ld a, $9 + ld [wcf65], a +.asm_84597 + call JoyTextDelay + call Function846f6 + jr c, .asm_845c0 + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_845c0 + call Function84022 + ld a, [wJumptableIndex] + cp $2 + jr nc, .asm_845b5 + ld a, $3 + ld [wca81], a + +.asm_845b5 + call Function84757 + call Function84785 + call DelayFrame + jr .asm_84597 + +.asm_845c0 + pop af + ld [hVBlank], a + call Function84411 + call Call_LoadTempTileMapToTileMap + xor a + ld [rIF], a + pop af + ld [rIE], a + pop af + ld [wcf65], a + ret +; 845d4 + +Function845d4: ; 845d4 + call Function845db + call Function84425 + ret +; 845db + +Function845db: ; 845db + ld a, [wcf65] + push af + xor a + ld [$ffac], a + call Function8474c + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $9 + ld [rIE], a + xor a + ld [hBGMapMode], a + ld a, $13 + call Function84419 + ld hl, hVBlank + ld a, [hl] + push af + ld [hl], $4 + ld a, $9 + ld [wcf65], a + call Function843f0 + pop af + ld [hVBlank], a + call Function84411 + call Function84735 + xor a + ld [rIF], a + pop af + ld [rIE], a + pop af + ld [wcf65], a + ret +; 8461a + +Function8461a: ; 8461a + ld a, [wcf65] + push af + xor a + ld [$ffac], a + call Function8474c + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $9 + ld [rIE], a + xor a + ld [hBGMapMode], a + callba Function1dc381 + ld a, $10 + call Function84419 + ld hl, hVBlank + ld a, [hl] + push af + ld [hl], $4 + ld a, $8 + ld [wcf65], a + call Function84742 + call Function843f0 + jr c, .asm_84671 + call Function84411 + ld c, 12 + call DelayFrames + xor a + ld [hBGMapMode], a + callba Function1dc47b + ld a, $3 + call Function84419 + ld a, $9 + ld [wcf65], a + call Function84742 + call Function843f0 + +.asm_84671 + pop af + ld [hVBlank], a + call Function84411 + call Function84735 + xor a + ld [rIF], a + pop af + ld [rIE], a + call Function84425 + pop af + ld [wcf65], a + ret +; 84688 + +_PrintDiploma: ; 84688 + ld a, [wcf65] + push af + callba Function1dd709 + xor a + ld [$ffac], a + call Function8474c + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $9 + ld [rIE], a + ld hl, hVBlank + ld a, [hl] + push af + ld [hl], $4 + ld a, $10 + call Function84419 + call Function84742 + ld a, $9 + ld [wcf65], a + call Function843f0 + jr c, .asm_846e2 + call Function84411 + ld c, 12 + call DelayFrames + call LoadTileMapToTempTileMap + xor a + ld [hBGMapMode], a + callba Function1dd7ae + ld a, $3 + call Function84419 + call Call_LoadTempTileMapToTileMap + call Function84742 + ld a, $9 + ld [wcf65], a + call Function843f0 + +.asm_846e2 + pop af + ld [hVBlank], a + call Function84411 + xor a + ld [rIF], a + pop af + ld [rIE], a + call Function84425 + pop af + ld [wcf65], a + ret +; 846f6 + +Function846f6: ; 846f6 + ld a, [hJoyDown] + and B_BUTTON + jr nz, .asm_846fe + and a + ret + +.asm_846fe + ld a, [wca80] + cp $c + jr nz, .asm_84722 +.asm_84705 + ld a, [wc2d5] + and a + jr nz, .asm_84705 + ld a, $16 + ld [wc2d5], a + ld a, $88 + ld [rSB], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a +.asm_8471c + ld a, [wc2d5] + and a + jr nz, .asm_8471c + +.asm_84722 + ld a, $1 + ld [$ffac], a + scf + ret +; 84728 + +Function84728: ; 84728 + hlcoord 0, 0 + ld de, wca90 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + call CopyBytes + ret +; 84735 + +Function84735: ; 84735 + ld hl, wca90 + decoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + call CopyBytes + ret +; 84742 + +Function84742: ; 84742 + xor a + ld [hJoyReleased], a + ld [hJoyPressed], a + ld [hJoyDown], a + ld [hJoyLast], a + ret +; 8474c + +Function8474c: ; 8474c + ld de, MUSIC_PRINTER + call PlayMusic2 + ret +; 84753 + +Function84753: ; 84753 + call RestartMapMusic + ret +; 84757 + +Function84757: ; 84757 + ld a, [wca88] + cp -1 + jr nz, .printer_connected + ld a, [wca89] + cp -1 + jr z, .error_2 + +.printer_connected + ld a, [wca89] + and %11100000 + ret z ; no error + + bit 7, a + jr nz, .error_1 + bit 6, a + jr nz, .error_4 + ld a, 6 ; error 3 + jr .load_text_index + +.error_4 + ld a, 7 ; error 4 + jr .load_text_index + +.error_1 + ld a, 4 ; error 1 + jr .load_text_index + +.error_2 + ld a, 5 ; error 2 + +.load_text_index + ld [wcbf8], a + ret +; 84785 + +Function84785: ; 84785 + ld a, [wcbf8] + and a + ret z + push af + xor a + ld [hBGMapMode], a + hlcoord 0, 5 + lb bc, 10, 18 + call TextBox + pop af + ld e, a + ld d, 0 + ld hl, PrinterStatusStringPointers +rept 2 + add hl, de +endr + ld e, [hl] + inc hl + ld d, [hl] + hlcoord 1, 7 + ld a, BANK(GBPrinterStrings) + call FarString + hlcoord 2, 15 + ld de, String_PressBToCancel + call PlaceString + ld a, $1 + ld [hBGMapMode], a + xor a + ld [wcbf8], a + ret +; 847bd + +Function847bd: ; 847bd + ld a, [wcbf8] + and a + ret z + push af + xor a + ld [hBGMapMode], a + hlcoord 2, 4 + lb bc, 13, 16 + call ClearBox + pop af + ld e, a + ld d, 0 + ld hl, PrinterStatusStringPointers +rept 2 + add hl, de +endr + ld e, [hl] + inc hl + ld d, [hl] + hlcoord 4, 7 + ld a, BANK(GBPrinterStrings) + call FarString + hlcoord 4, 15 + ld de, String_PressBToCancel + call PlaceString + ld a, $1 + ld [hBGMapMode], a + xor a + ld [wcbf8], a + ret +; 847f5 + +String_PressBToCancel: + db "Press B to Cancel@" +; 84807 + +PrinterStatusStringPointers: ; 84807 + dw String_1dc275 ; @ + dw String_1dc276 ; CHECKING LINK + dw String_1dc289 ; TRANSMITTING + dw String_1dc29c ; PRINTING + dw String_1dc2ad ; error 1 + dw String_1dc2e2 ; error 2 + dw String_1dc317 ; error 3 + dw String_1dc34c ; error 4 +; 84817 + +Function84817: ; 84817 (21:4817) + xor a + ld [wd002], a + hlcoord 0, 0 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld a, " " + call ByteFill + call Function84a0e + hlcoord 0, 0 + ld bc, 9 * SCREEN_WIDTH + ld a, " " + call ByteFill + call Function849e9 + call Function849d7 + hlcoord 4, 3 + ld de, String_84865 + call PlaceString + ld a, [wd007] + ld bc, BOX_NAME_LENGTH + ld hl, wBoxNames + call AddNTimes + ld d, h + ld e, l + hlcoord 6, 5 + call PlaceString + ld a, $1 + call Function849c6 + hlcoord 2, 9 + ld c, $3 + call Function848e7 + ret +; 84865 (21:4865) + +String_84865: + db "#MON LIST@" +; 8486f + +Function8486f: ; 8486f (21:486f) + hlcoord 0, 0 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld a, " " + call ByteFill + call Function84a0e + call Function849e9 + ld a, [wd003] + and a + ret nz + ld a, $4 + call Function849c6 + hlcoord 2, 0 + ld c, $6 + call Function848e7 + ret + +Function84893: ; 84893 (21:4893) + hlcoord 0, 0 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld a, " " + call ByteFill + call Function84a0e + call Function849e9 + ld a, [wd003] + and a + ret nz + ld a, $a + call Function849c6 + hlcoord 2, 0 + ld c, $6 + call Function848e7 + ret + +Function848b7: ; 848b7 (21:48b7) + hlcoord 0, 0 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld a, " " + call ByteFill + call Function84a0e + hlcoord 1, 15 + lb bc, 2, 18 + call ClearBox + call Function849e9 + call Function849fc + ld a, [wd003] + and a + ret nz + ld a, $10 + call Function849c6 + hlcoord 2, 0 + ld c, $5 + call Function848e7 + ret + +Function848e7: ; 848e7 (21:48e7) + ld a, [EndFlypoint] + call GetSRAMBank + +Function848ed: ; 848ed (21:48ed) + ld a, c + and a + jp z, Function84986 + dec c + ld a, [de] + cp $ff + jp z, Function84981 + ld [wd265], a + ld [CurPartySpecies], a + push bc + push hl + push de + push hl + ld bc, $10 + ld a, " " + call ByteFill + pop hl + push hl + call GetBasePokemonName + pop hl + push hl + call PlaceString + ld a, [CurPartySpecies] + cp $fd + pop hl + jr z, .ok2 + ld bc, $b + add hl, bc + call Function8498a + ld bc, $9 + add hl, bc + ld a, $f3 + ld [hli], a + push hl + ld bc, $e + ld a, " " + call ByteFill + pop hl + push hl + ld a, [wd004] + ld l, a + ld a, [StartFlypoint] + ld h, a + ld bc, $372 + add hl, bc + ld bc, $b + ld a, [wd002] + call AddNTimes + ld e, l + ld d, h + pop hl + push hl + call PlaceString + pop hl + ld bc, $b + add hl, bc + push hl + ld a, [wd004] + ld l, a + ld a, [StartFlypoint] + ld h, a + ld bc, $35 + add hl, bc + ld bc, $20 + ld a, [wd002] + call AddNTimes + ld a, [hl] + pop hl + call Function383d +.ok2 + ld hl, wd002 + inc [hl] + pop de + pop hl + ld bc, $3c + add hl, bc + pop bc + inc de + jp Function848ed + +Function84981: ; 84981 (21:4981) + ld a, $1 + ld [wd003], a + +Function84986: ; 84986 (21:4986) + call CloseSRAM + ret + +Function8498a: ; 8498a (21:498a) + push hl + ld a, [wd004] + ld l, a + ld a, [StartFlypoint] + ld h, a + ld bc, $2b + add hl, bc + ld bc, $20 + ld a, [wd002] + call AddNTimes + ld de, TempMonDVs + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + ld a, [wd002] + ld [CurPartyMon], a + ld a, $3 + ld [MonType], a + callba GetGender + ld a, $7f + jr c, .asm_849c3 + ld a, $ef + jr nz, .asm_849c3 + ld a, $f5 +.asm_849c3 + pop hl + ld [hli], a + ret + +Function849c6: ; 849c6 (21:49c6) + push hl + ld e, a + ld d, $0 + ld a, [wd004] + ld l, a + ld a, [StartFlypoint] + ld h, a + add hl, de + ld e, l + ld d, h + pop hl + ret + +Function849d7: ; 849d7 (21:49d7) + hlcoord 0, 0 + ld a, "┌" + ld [hli], a + ld a, "─" + ld c, SCREEN_WIDTH - 2 +.asm_849e1 + ld [hli], a + dec c + jr nz, .asm_849e1 + ld a, "┐" + ld [hl], a + ret + +Function849e9: ; 849e9 (21:49e9) + hlcoord 0, 0 + ld de, SCREEN_WIDTH - 1 + ld c, SCREEN_HEIGHT +.asm_849f1 + ld a, "│" + ld [hl], a + add hl, de + ld a, "│" + ld [hli], a + dec c + jr nz, .asm_849f1 + ret + +Function849fc: ; 849fc (21:49fc) + hlcoord 0, 17 + ld a, "└" + ld [hli], a + ld a, "─" + ld c, SCREEN_WIDTH - 2 +.asm_84a06 + ld [hli], a + dec c + jr nz, .asm_84a06 + ld a, "┘" + ld [hl], a + ret + +Function84a0e: ; 84a0e (21:4a0e) + hlcoord 2, 0 + ld c, $6 +.asm_84a13 + push bc + push hl + ld de, String84a25 + call PlaceString + pop hl + ld bc, $3c + add hl, bc + pop bc + dec c + jr nz, .asm_84a13 + ret +; 84a25 (21:4a25) + +String84a25: ; 84a25 + db " ------@" +; 84a2e diff --git a/engine/scripting.asm b/engine/scripting.asm index 6d87c2f1b..945368e2b 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -2985,8 +2985,8 @@ Script_reloadmappart:: ; 97ae3 xor a ld [hBGMapMode], a call OverworldTextModeSwitch - call Function2914 - callba Function104061 + call GetMovementPermissions + callba ReloadMapPart call UpdateSprites ret ; 97af6 diff --git a/engine/sprites.asm b/engine/sprites.asm index b8b4b2a47..bf82659e8 100755 --- a/engine/sprites.asm +++ b/engine/sprites.asm @@ -174,7 +174,7 @@ endr ; Look up the third field from the table in the wc300 array (10x2). ; Take the value and load it in ld a, [de] - call LookUpInwDict_c300 + call LookUpInwSpriteAnimDict ld [hli], a pop de ; Set hl to field 4. Kinda pointless, because we're presumably already here. @@ -374,11 +374,11 @@ Function8d0ec: ; 8d0ec ret ; 8d109 -LookUpInwDict_c300: ; 8d109 -; a = wDict_c300[a] if a in wDict_c300 else 0 +LookUpInwSpriteAnimDict: ; 8d109 +; a = wSpriteAnimDict[a] if a in wSpriteAnimDict else 0 push hl push bc - ld hl, wDict_c300 + ld hl, wSpriteAnimDict ld b, a ld c, 10 .loop @@ -2885,3 +2885,540 @@ endr Unknown_8e75d: ; 8e75d sine_wave $100 + + +Function8e79d: ; 8e79d + ld a, [hSGB] + ld de, GFX_8e7f4 + and a + jr z, .asm_8e7a8 + ld de, GFX_8e804 + +.asm_8e7a8 + ld hl, VTiles0 + lb bc, BANK(GFX_8e7f4), 1 + call Request2bpp + ld c, $8 + ld d, $0 +.asm_8e7b5 + push bc + call Function8e7c6 + call DelayFrame + pop bc +rept 2 + inc d +endr + dec c + jr nz, .asm_8e7b5 + call ClearSprites + ret +; 8e7c6 + +Function8e7c6: ; 8e7c6 + ld hl, Sprites + ld c, $8 +.asm_8e7cb + ld a, c + and a + ret z + dec c + ld a, c + sla a + sla a + sla a + push af + push de + push hl + call Function8e72c + pop hl + pop de + add $68 + ld [hli], a + pop af + push de + push hl + call Function8e72a + pop hl + pop de + add $54 + ld [hli], a + ld a, $0 + ld [hli], a + ld a, $6 + ld [hli], a + jr .asm_8e7cb +; 8e7f4 + +GFX_8e7f4: ; 8e7f4 +INCBIN "gfx/unknown/08e7f4.2bpp" +GFX_8e804: ; 8e804 +INCBIN "gfx/unknown/08e804.2bpp" + +ClearSpriteAnims: ; 8e814 + push hl + push de + push bc + push af + ld hl, wSpriteAnimDict + ld bc, wSpriteAnimsEnd - wSpriteAnimDict +.loop + ld [hl], $0 + inc hl + dec bc + ld a, c + or b + jr nz, .loop + pop af + pop bc + pop de + pop hl + ret +; 8e82b + +Function8e82b: ; 8e82b + ld a, e + call ReadMonMenuIcon + ld l, a + ld h, 0 + add hl, hl + ld de, IconPointers + add hl, de + ld a, [hli] + ld e, a + ld d, [hl] + ld b, BANK(Icons) + ld c, 8 + ret +; 8e83f + +Function8e83f: ; 8e83f + push hl + push de + push bc + call Function8e849 + pop bc + pop de + pop hl + ret +; 8e849 + +Function8e849: ; 8e849 + ld d, 0 + ld hl, Jumptable_8e854 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 8e854 + + +Jumptable_8e854: ; 8e854 (23:6854) + dw Function8e8d5 + dw Function8e961 + dw Function8e97d + dw Function8e99a + dw Function8e898 + dw Function8e8b1 + dw Function8e862 + + +Function8e862: ; 8e862 (23:6862) + call Function8e908 + call Function8e86c + call Function8e936 + ret + +Function8e86c: ; 8e86c (23:686c) + push bc + ld a, [hObjectStructIndexBuffer] + ld hl, PartyMon1Item + ld bc, PARTYMON_STRUCT_LENGTH + call AddNTimes + pop bc + ld a, [hl] + and a + jr z, .asm_8e890 + push hl + push bc + ld d, a + callab ItemIsMail + pop bc + pop hl + jr c, .asm_8e88e + ld a, $6 + jr .asm_8e892 +.asm_8e88e + ld a, $5 +.asm_8e890 + ld a, $4 +.asm_8e892 + ld hl, $1 + add hl, bc + ld [hl], a + ret + +Function8e898: ; 8e898 (23:6898) + call Function8e8d5 + ld hl, $2 + add hl, bc + ld a, $0 + ld [hl], a + ld hl, $4 + add hl, bc + ld a, $48 + ld [hl], a + ld hl, $5 + add hl, bc + ld a, $48 + ld [hl], a + ret + +Function8e8b1: ; 8e8b1 (23:68b1) + call Function8e908 + call Function8e936 + ld hl, $2 + add hl, bc + ld a, $0 + ld [hl], a + ld hl, $4 + add hl, bc + ld a, $18 + ld [hl], a + ld hl, $5 + add hl, bc + ld a, $60 + ld [hl], a + ld a, c + ld [wc608], a + ld a, b + ld [wc608 + 1], a + ret + +Function8e8d5: ; 8e8d5 (23:68d5) + call Function8e908 + call Function8e8df + call Function8e936 + ret + +Function8e8df: ; 8e8df (23:68df) + push bc + ld a, [hObjectStructIndexBuffer] + ld hl, PartyMon1Item + ld bc, $30 + call AddNTimes + pop bc + ld a, [hl] + and a + ret z + push hl + push bc + ld d, a + callab ItemIsMail + pop bc + pop hl + jr c, .asm_8e900 + ld a, $3 + jr .asm_8e902 +.asm_8e900 + ld a, $2 +.asm_8e902 + ld hl, $1 + add hl, bc + ld [hl], a + ret + +Function8e908: ; 8e908 (23:6908) + ld a, [wc3b7] + push af + ld a, [hObjectStructIndexBuffer] + ld hl, PartySpecies + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + call ReadMonMenuIcon + ld [CurIcon], a + call Function8e9db + ld a, [hObjectStructIndexBuffer] +; y coord +rept 4 + add a +endr + add $1c + ld d, a +; x coord + ld e, $10 +; type is partymon icon + ld a, SPRITE_ANIM_INDEX_00 + call InitSpriteAnimStruct + pop af + ld hl, $3 + add hl, bc + ld [hl], a + ret + +Function8e936: ; 8e936 (23:6936) + push bc + ld a, [hObjectStructIndexBuffer] + ld b, a + call Function8e94c + ld a, b + pop bc + ld hl, $9 + add hl, bc + ld [hl], a + rlca + rlca + ld hl, $d + add hl, bc + ld [hl], a + ret + +Function8e94c: ; 8e94c (23:694c) + callba PlacePartymonHPBar + call GetHPPal + ld e, d + ld d, 0 + ld hl, Unknown_8e95e + add hl, de + ld b, [hl] + ret +; 8e95e (23:695e) + +Unknown_8e95e: ; 8e95e + db $00, $40, $80 +; 8e961 + +Function8e961: ; 8e961 (23:6961) + ld a, [wd265] + call ReadMonMenuIcon + ld [CurIcon], a + xor a + call GetIconGFX + lb de, $24, $20 + ld a, SPRITE_ANIM_INDEX_00 + call InitSpriteAnimStruct + ld hl, $2 + add hl, bc + ld [hl], $0 + ret + +Function8e97d: ; 8e97d (23:697d) + ld a, [wd265] + call ReadMonMenuIcon + ld [CurIcon], a + xor a + call GetIconGFX + ld d, $1a + ld e, $24 + ld a, SPRITE_ANIM_INDEX_00 + call InitSpriteAnimStruct + ld hl, $2 + add hl, bc + ld [hl], $0 + ret + +Function8e99a: ; 8e99a (23:699a) + ld a, [wd265] + call ReadMonMenuIcon + ld [CurIcon], a + ld a, $62 + ld [wc3b7], a + call Function8e9db + ret + +GetSpeciesIcon: ; 8e9ac +; Load species icon into VRAM at tile a + push de + ld a, [wd265] + call ReadMonMenuIcon + ld [CurIcon], a + pop de + ld a, e + call GetIconGFX + ret +; 8e9bc + + +Function8e9bc: ; 8e9bc (23:69bc) + push de + ld a, [wd265] + call ReadMonMenuIcon + ld [CurIcon], a + pop de + ld a, e + call GetIcon_a + ret +; 8e9cc (23:69cc) + +Function8e9cc: ; 8e9cc + push de + ld a, [wd265] + call ReadMonMenuIcon + ld [CurIcon], a + pop de + call GetIcon_de + ret +; 8e9db + +Function8e9db: ; 8e9db (23:69db) + ld a, [wc3b7] + +GetIconGFX: ; 8e9de + call GetIcon_a + ld de, $80 ; 8 tiles + add hl, de + ld de, HeldItemIcons + lb bc, BANK(HeldItemIcons), 2 + call GetGFXUnlessMobile + ld a, [wc3b7] + add 10 + ld [wc3b7], a + ret + +HeldItemIcons: +INCBIN "gfx/icon/mail.2bpp" +INCBIN "gfx/icon/item.2bpp" +; 8ea17 + +GetIcon_de: ; 8ea17 +; Load icon graphics into VRAM starting from tile de. + ld l, e + ld h, d + jr GetIcon + +GetIcon_a: ; 8ea1b +; Load icon graphics into VRAM starting from tile a. + ld l, a + ld h, 0 + +GetIcon: ; 8ea1e +; Load icon graphics into VRAM starting from tile hl. + +; One tile is 16 bytes long. +rept 4 + add hl, hl +endr + + ld de, VTiles0 + add hl, de + push hl + +; The icons are contiguous, in order and of the same +; size, so the pointer table is somewhat redundant. + ld a, [CurIcon] + push hl + ld l, a + ld h, 0 + add hl, hl + ld de, IconPointers + add hl, de + ld a, [hli] + ld e, a + ld d, [hl] + pop hl + + lb bc, BANK(Icons), 8 + call GetGFXUnlessMobile + + pop hl + ret +; 8ea3f + +GetGFXUnlessMobile: ; 8ea3f + ld a, [wLinkMode] + cp LINK_MOBILE + jp nz, Request2bpp + jp Get2bpp_2 +; 8ea4a + +Function8ea4a: ; 8ea4a + ld hl, wSpriteAnimationStructs + ld e, $6 + ld a, [MenuSelection2] + ld d, a +.loop + ld a, [hl] + and a + jr z, .next + cp d + jr z, .loadwithtwo + ld a, $0 + jr .ok + +.loadwithtwo + ld a, $2 + +.ok + push hl + ld c, l + ld b, h + ld hl, $2 + add hl, bc + ld [hl], a + pop hl + +.next + ld bc, $10 + add hl, bc + dec e + jr nz, .loop + ret +; 8ea71 + +Function8ea71: ; 8ea71 + ld hl, wSpriteAnimationStructs + ld e, $6 +.loop + ld a, [hl] + and a + jr z, .zero + push hl + ld c, l + ld b, h + ld hl, $2 + add hl, bc + ld [hl], $1 + pop hl +.zero + ld bc, $10 + add hl, bc + dec e + jr nz, .loop + ret +; 8ea8c (23:6a8c) + +Function8ea8c: ; 8ea8c + ld hl, wSpriteAnimationStructs + ld e, $6 + ld a, [wd0e3] + ld d, a +.asm_8ea95 + ld a, [hl] + and a + jr z, .asm_8eaab + cp d + jr z, .asm_8eaa0 + ld a, $3 + jr .asm_8eaa2 +.asm_8eaa0 + ld a, $2 +.asm_8eaa2 + push hl + ld c, l + ld b, h + ld hl, $2 + add hl, bc + ld [hl], a + pop hl +.asm_8eaab + ld bc, $10 + add hl, bc + dec e + jr nz, .asm_8ea95 + ret + +INCLUDE "menu/mon_icons.asm" diff --git a/engine/startmenu.asm b/engine/startmenu.asm index bcf2247af..ba5e2330c 100755 --- a/engine/startmenu.asm +++ b/engine/startmenu.asm @@ -1761,7 +1761,7 @@ SetUpMoveScreenBG: ; 13172 xor a ld [hBGMapMode], a callba Functionfb571 - callba InefficientlyClear121BytesAtwc300 + callba ClearSpriteAnims ld a, [CurPartyMon] ld e, a ld d, $0 diff --git a/engine/time_capsule/conversion.asm b/engine/time_capsule/conversion.asm new file mode 100755 index 000000000..4b5b1ef83 --- /dev/null +++ b/engine/time_capsule/conversion.asm @@ -0,0 +1,684 @@ +; These functions seem to be related to backwards compatibility + +Functionfb57e: ; fb57e + ld a, [wd003] + ld hl, OTPartyMon1Species + call GetPartyLocation + push hl + ld a, [wd003] + inc a + ld c, a + ld b, 0 + ld hl, OTPartyCount + add hl, bc + ld a, [hl] + pop hl + cp EGG + jr z, .asm_fb59c + cp [hl] + jr nz, .asm_fb5db + +.asm_fb59c + ld b, h + ld c, l + ld hl, MON_LEVEL + add hl, bc + ld a, [hl] + cp 101 + jr nc, .asm_fb5db + ld a, [wLinkMode] + cp LINK_TIMECAPSULE + jr nz, .asm_fb5d9 + ld hl, OTPartySpecies + ld a, [wd003] + ld c, a + ld b, 0 + add hl, bc + ld a, [hl] + + ; Magnemite and Magneton's types changed + ; from Electric to Electric/Steel. + cp MAGNEMITE + jr z, .asm_fb5d9 + cp MAGNETON + jr z, .asm_fb5d9 + + ld [CurSpecies], a + call GetBaseData + ld hl, wcbea +rept 2 + add hl, bc +endr + ld a, [BaseType1] + cp [hl] + jr nz, .asm_fb5db + inc hl + ld a, [BaseType2] + cp [hl] + jr nz, .asm_fb5db + +.asm_fb5d9 + and a + ret + +.asm_fb5db + scf + ret +; fb5dd + +Functionfb5dd: ; fb5dd + ld a, [wd002] + ld d, a + ld a, [PartyCount] + ld b, a + ld c, $0 +.asm_fb5e7 + ld a, c + cp d + jr z, .asm_fb5f8 + push bc + ld a, c + ld hl, PartyMon1HP + call GetPartyLocation + pop bc + ld a, [hli] + or [hl] + jr nz, .asm_fb60b + +.asm_fb5f8 + inc c + dec b + jr nz, .asm_fb5e7 + ld a, [wd003] + ld hl, OTPartyMon1HP + call GetPartyLocation + ld a, [hli] + or [hl] + jr nz, .asm_fb60b + scf + ret + +.asm_fb60b + and a + ret +; fb60d + +Functionfb60d: ; fb60d + hlcoord 4, 0 + ld de, PlayerName + call PlaceString + ld a, $14 + ld [bc], a + hlcoord 4, 8 + ld de, wd26b + call PlaceString + ld a, $14 + ld [bc], a + hlcoord 7, 1 + ld de, PartySpecies + call Functionfb634 + hlcoord 7, 9 + ld de, OTPartySpecies + +Functionfb634: ; fb634 + ld c, $0 +.asm_fb636 + ld a, [de] + cp $ff + ret z + ld [wd265], a + push bc + push hl + push de + push hl + ld a, c + ld [hProduct], a + call GetPokemonName + pop hl + call PlaceString + pop de + inc de + pop hl + ld bc, SCREEN_WIDTH + add hl, bc + pop bc + inc c + jr .asm_fb636 +; fb656 + +KantoMonSpecials: ; fb656 +; The original special base stat for +; each Kanto monster from Red/Blue. + db 65 ; BULBASAUR + db 80 ; IVYSAUR + db 100 ; VENUSAUR + db 50 ; CHARMANDER + db 65 ; CHARMELEON + db 85 ; CHARIZARD + db 50 ; SQUIRTLE + db 65 ; WARTORTLE + db 85 ; BLASTOISE + db 20 ; CATERPIE + db 25 ; METAPOD + db 80 ; BUTTERFREE + db 20 ; WEEDLE + db 25 ; KAKUNA + db 45 ; BEEDRILL + db 35 ; PIDGEY + db 50 ; PIDGEOTTO + db 70 ; PIDGEOT + db 25 ; RATTATA + db 50 ; RATICATE + db 31 ; SPEAROW + db 61 ; FEAROW + db 40 ; EKANS + db 65 ; ARBOK + db 50 ; PIKACHU + db 90 ; RAICHU + db 30 ; SANDSHREW + db 55 ; SANDSLASH + db 40 ; NIDORAN_F + db 55 ; NIDORINA + db 75 ; NIDOQUEEN + db 40 ; NIDORAN_M + db 55 ; NIDORINO + db 75 ; NIDOKING + db 60 ; CLEFAIRY + db 85 ; CLEFABLE + db 65 ; VULPIX + db 100 ; NINETALES + db 25 ; JIGGLYPUFF + db 50 ; WIGGLYTUFF + db 40 ; ZUBAT + db 75 ; GOLBAT + db 75 ; ODDISH + db 85 ; GLOOM + db 100 ; VILEPLUME + db 55 ; PARAS + db 80 ; PARASECT + db 40 ; VENONAT + db 90 ; VENOMOTH + db 45 ; DIGLETT + db 70 ; DUGTRIO + db 40 ; MEOWTH + db 65 ; PERSIAN + db 50 ; PSYDUCK + db 80 ; GOLDUCK + db 35 ; MANKEY + db 60 ; PRIMEAPE + db 50 ; GROWLITHE + db 80 ; ARCANINE + db 40 ; POLIWAG + db 50 ; POLIWHIRL + db 70 ; POLIWRATH + db 105 ; ABRA + db 120 ; KADABRA + db 135 ; ALAKAZAM + db 35 ; MACHOP + db 50 ; MACHOKE + db 65 ; MACHAMP + db 70 ; BELLSPROUT + db 85 ; WEEPINBELL + db 100 ; VICTREEBEL + db 100 ; TENTACOOL + db 120 ; TENTACRUEL + db 30 ; GEODUDE + db 45 ; GRAVELER + db 55 ; GOLEM + db 65 ; PONYTA + db 80 ; RAPIDASH + db 40 ; SLOWPOKE + db 80 ; SLOWBRO + db 95 ; MAGNEMITE + db 120 ; MAGNETON + db 58 ; FARFETCH_D + db 35 ; DODUO + db 60 ; DODRIO + db 70 ; SEEL + db 95 ; DEWGONG + db 40 ; GRIMER + db 65 ; MUK + db 45 ; SHELLDER + db 85 ; CLOYSTER + db 100 ; GASTLY + db 115 ; HAUNTER + db 130 ; GENGAR + db 30 ; ONIX + db 90 ; DROWZEE + db 115 ; HYPNO + db 25 ; KRABBY + db 50 ; KINGLER + db 55 ; VOLTORB + db 80 ; ELECTRODE + db 60 ; EXEGGCUTE + db 125 ; EXEGGUTOR + db 40 ; CUBONE + db 50 ; MAROWAK + db 35 ; HITMONLEE + db 35 ; HITMONCHAN + db 60 ; LICKITUNG + db 60 ; KOFFING + db 85 ; WEEZING + db 30 ; RHYHORN + db 45 ; RHYDON + db 105 ; CHANSEY + db 100 ; TANGELA + db 40 ; KANGASKHAN + db 70 ; HORSEA + db 95 ; SEADRA + db 50 ; GOLDEEN + db 80 ; SEAKING + db 70 ; STARYU + db 100 ; STARMIE + db 100 ; MR__MIME + db 55 ; SCYTHER + db 95 ; JYNX + db 85 ; ELECTABUZZ + db 85 ; MAGMAR + db 55 ; PINSIR + db 70 ; TAUROS + db 20 ; MAGIKARP + db 100 ; GYARADOS + db 95 ; LAPRAS + db 48 ; DITTO + db 65 ; EEVEE + db 110 ; VAPOREON + db 110 ; JOLTEON + db 110 ; FLAREON + db 75 ; PORYGON + db 90 ; OMANYTE + db 115 ; OMASTAR + db 45 ; KABUTO + db 70 ; KABUTOPS + db 60 ; AERODACTYL + db 65 ; SNORLAX + db 125 ; ARTICUNO + db 125 ; ZAPDOS + db 125 ; MOLTRES + db 50 ; DRATINI + db 70 ; DRAGONAIR + db 100 ; DRAGONITE + db 154 ; MEWTWO + db 100 ; MEW +; fb6ed + + +INCLUDE "event/name_rater.asm" + + +PlaySlowCry: ; fb841 + ld a, [ScriptVar] + call LoadCryHeader + jr c, .done + + ld hl, CryPitch + ld a, [hli] + ld h, [hl] + ld l, a + ld bc, -$140 + add hl, bc + ld a, l + ld [CryPitch], a + ld a, h + ld [CryPitch + 1], a + ld hl, CryLength + ld a, [hli] + ld h, [hl] + ld l, a + ld bc, $60 + add hl, bc + ld a, l + ld [CryLength], a + ld a, h + ld [CryLength + 1], a + callba _PlayCryHeader + call WaitSFX + +.done + ret +; fb877 + +NewPokedexEntry: ; fb877 + ld a, [hMapAnims] + push af + xor a + ld [hMapAnims], a + call LowVolume + call ClearBGPalettes + call ClearTileMap + call UpdateSprites + call ClearSprites + ld a, [wPokedexStatus] + push af + ld a, [hSCX] + add $5 + ld [hSCX], a + xor a + ld [wPokedexStatus], a + callba Function41a7f + call WaitPressAorB_BlinkCursor + ld a, $1 + ld [wPokedexStatus], a + callba Function4424d + call WaitPressAorB_BlinkCursor + pop af + ld [wPokedexStatus], a + call MaxVolume + call FadeToWhite + ld a, [hSCX] + add $fb + ld [hSCX], a + call Functionfb8c8 + pop af + ld [hMapAnims], a + ret +; fb8c8 + +Functionfb8c8: ; fb8c8 + call ClearTileMap + call LoadFontsExtra + call LoadStandardFont + callba Function40ab2 + call Function3200 + callba GetEnemyMonDVs + ld a, [hli] + ld [TempMonDVs], a + ld a, [hl] + ld [TempMonDVs + 1], a + ld b, SCGB_1C + call GetSGBLayout + call SetPalettes + ret +; fb8f1 + +ConvertMon_2to1: ; fb8f1 +; Takes the Gen-2 Pokemon number stored in wd265, finds it in the Pokered_MonIndices table, and returns its index in wd265. + push bc + push hl + ld a, [wd265] + ld b, a + ld c, 0 + ld hl, Pokered_MonIndices +.loop + inc c + ld a, [hli] + cp b + jr nz, .loop + ld a, c + ld [wd265], a + pop hl + pop bc + ret +; fb908 + +ConvertMon_1to2: ; fb908 +; Takes the Gen-1 Pokemon number stored in wd265 and returns the corresponding value from Pokered_MonIndices in wd265. + push bc + push hl + ld a, [wd265] + dec a + ld hl, Pokered_MonIndices + ld b, 0 + ld c, a + add hl, bc + ld a, [hl] + ld [wd265], a + pop hl + pop bc + ret +; fb91c + +Pokered_MonIndices: ; fb91c + db RHYDON + db KANGASKHAN + db NIDORAN_M + db CLEFAIRY + db SPEAROW + db VOLTORB + db NIDOKING + db SLOWBRO + db IVYSAUR + db EXEGGUTOR + db LICKITUNG + db EXEGGCUTE + db GRIMER + db GENGAR + db NIDORAN_F + db NIDOQUEEN + db CUBONE + db RHYHORN + db LAPRAS + db ARCANINE + db MEW + db GYARADOS + db SHELLDER + db TENTACOOL + db GASTLY + db SCYTHER + db STARYU + db BLASTOISE + db PINSIR + db TANGELA + db SCIZOR + db SHUCKLE + db GROWLITHE + db ONIX + db FEAROW + db PIDGEY + db SLOWPOKE + db KADABRA + db GRAVELER + db CHANSEY + db MACHOKE + db MR__MIME + db HITMONLEE + db HITMONCHAN + db ARBOK + db PARASECT + db PSYDUCK + db DROWZEE + db GOLEM + db HERACROSS + db MAGMAR + db HO_OH + db ELECTABUZZ + db MAGNETON + db KOFFING + db SNEASEL + db MANKEY + db SEEL + db DIGLETT + db TAUROS + db TEDDIURSA + db URSARING + db SLUGMA + db FARFETCH_D + db VENONAT + db DRAGONITE + db MAGCARGO + db SWINUB + db PILOSWINE + db DODUO + db POLIWAG + db JYNX + db MOLTRES + db ARTICUNO + db ZAPDOS + db DITTO + db MEOWTH + db KRABBY + db CORSOLA + db REMORAID + db OCTILLERY + db VULPIX + db NINETALES + db PIKACHU + db RAICHU + db DELIBIRD + db MANTINE + db DRATINI + db DRAGONAIR + db KABUTO + db KABUTOPS + db HORSEA + db SEADRA + db SKARMORY + db HOUNDOUR + db SANDSHREW + db SANDSLASH + db OMANYTE + db OMASTAR + db JIGGLYPUFF + db WIGGLYTUFF + db EEVEE + db FLAREON + db JOLTEON + db VAPOREON + db MACHOP + db ZUBAT + db EKANS + db PARAS + db POLIWHIRL + db POLIWRATH + db WEEDLE + db KAKUNA + db BEEDRILL + db HOUNDOOM + db DODRIO + db PRIMEAPE + db DUGTRIO + db VENOMOTH + db DEWGONG + db KINGDRA + db PHANPY + db CATERPIE + db METAPOD + db BUTTERFREE + db MACHAMP + db DONPHAN + db GOLDUCK + db HYPNO + db GOLBAT + db MEWTWO + db SNORLAX + db MAGIKARP + db PORYGON2 + db STANTLER + db MUK + db SMEARGLE + db KINGLER + db CLOYSTER + db TYROGUE + db ELECTRODE + db CLEFABLE + db WEEZING + db PERSIAN + db MAROWAK + db HITMONTOP + db HAUNTER + db ABRA + db ALAKAZAM + db PIDGEOTTO + db PIDGEOT + db STARMIE + db BULBASAUR + db VENUSAUR + db TENTACRUEL + db SMOOCHUM + db GOLDEEN + db SEAKING + db ELEKID + db MAGBY + db MILTANK + db BLISSEY + db PONYTA + db RAPIDASH + db RATTATA + db RATICATE + db NIDORINO + db NIDORINA + db GEODUDE + db PORYGON + db AERODACTYL + db RAIKOU + db MAGNEMITE + db ENTEI + db SUICUNE + db CHARMANDER + db SQUIRTLE + db CHARMELEON + db WARTORTLE + db CHARIZARD + db LARVITAR + db PUPITAR + db TYRANITAR + db LUGIA + db ODDISH + db GLOOM + db VILEPLUME + db BELLSPROUT + db WEEPINBELL + db VICTREEBEL + db CHIKORITA + db BAYLEEF + db MEGANIUM + db CYNDAQUIL + db QUILAVA + db TYPHLOSION + db TOTODILE + db CROCONAW + db FERALIGATR + db SENTRET + db FURRET + db HOOTHOOT + db NOCTOWL + db LEDYBA + db LEDIAN + db SPINARAK + db ARIADOS + db CROBAT + db CHINCHOU + db LANTURN + db PICHU + db CLEFFA + db IGGLYBUFF + db TOGEPI + db TOGETIC + db NATU + db XATU + db MAREEP + db FLAAFFY + db AMPHAROS + db BELLOSSOM + db MARILL + db AZUMARILL + db SUDOWOODO + db POLITOED + db HOPPIP + db SKIPLOOM + db JUMPLUFF + db AIPOM + db SUNKERN + db SUNFLORA + db YANMA + db WOOPER + db QUAGSIRE + db ESPEON + db UMBREON + db MURKROW + db SLOWKING + db MISDREAVUS + db UNOWN + db WOBBUFFET + db GIRAFARIG + db PINECO + db FORRETRESS + db DUNSPARCE + db GLIGAR + db STEELIX + db SNUBBULL + db GRANBULL + db QWILFISH + db WOBBUFFET + db WOBBUFFET +; fba18 diff --git a/engine/variables.asm b/engine/variables.asm new file mode 100755 index 000000000..a115e2c37 --- /dev/null +++ b/engine/variables.asm @@ -0,0 +1,150 @@ +_GetVarAction:: ; 80648 (20:4648) + ld a, c + cp NUM_VARS + jr c, .valid + xor a +.valid + ld c, a + ld b, 0 + ld hl, .VarActionTable +rept 3 + add hl, bc +endr + ld e, [hl] + inc hl + ld d, [hl] + inc hl + ld b, [hl] + ld a, b + and RETVAR_EXECUTE + jr nz, .call + ld a, b + and RETVAR_ADDR_DE + ret nz + ld a, [de] + jr .loadstringbuffer2 + +.call + call _de_ + ret + +.loadstringbuffer2: ; 8066c (20:466c) + ld de, StringBuffer2 + ld [de], a + ret +; 80671 (20:4671) + +.VarActionTable: ; 80671 +; $00: copy [de] to StringBuffer2 +; $40: return address in de +; $80: call function + dwb StringBuffer2, RETVAR_STRBUF2 + dwb PartyCount, RETVAR_STRBUF2 + dwb .BattleResult, RETVAR_EXECUTE + dwb BattleType, RETVAR_ADDR_DE + dwb TimeOfDay, RETVAR_STRBUF2 + dwb .CountCaughtMons, RETVAR_EXECUTE + dwb .CountSeenMons, RETVAR_EXECUTE + dwb .CountBadges, RETVAR_EXECUTE + dwb PlayerState, RETVAR_ADDR_DE + dwb .PlayerFacing, RETVAR_EXECUTE + dwb hHours, RETVAR_STRBUF2 + dwb .DayOfWeek, RETVAR_EXECUTE + dwb MapGroup, RETVAR_STRBUF2 + dwb MapNumber, RETVAR_STRBUF2 + dwb .UnownCaught, RETVAR_EXECUTE + dwb wPermission, RETVAR_STRBUF2 + dwb .BoxFreeSpace, RETVAR_EXECUTE + dwb wBugContestMinsRemaining, RETVAR_STRBUF2 + dwb XCoord, RETVAR_STRBUF2 + dwb YCoord, RETVAR_STRBUF2 + dwb wSpecialPhoneCallID, RETVAR_STRBUF2 + dwb wcf64, RETVAR_STRBUF2 + dwb wKurtApricornQuantity, RETVAR_STRBUF2 + dwb wCurrentCaller, RETVAR_ADDR_DE + dwb wBlueCardBalance, RETVAR_ADDR_DE + dwb wBuenasPassword, RETVAR_ADDR_DE + dwb wdc58, RETVAR_STRBUF2 + dwb NULL, RETVAR_STRBUF2 +; 806c5 + +.CountCaughtMons: ; 806c5 +; Caught mons. + ld hl, PokedexCaught + ld b, EndPokedexCaught - PokedexCaught + call CountSetBits + ld a, [wd265] + jp .loadstringbuffer2 +; 806d3 + +.CountSeenMons: ; 806d3 +; Seen mons. + ld hl, PokedexSeen + ld b, EndPokedexSeen - PokedexSeen + call CountSetBits + ld a, [wd265] + jp .loadstringbuffer2 +; 806e1 + +.CountBadges: ; 806e1 +; Number of owned badges. + ld hl, Badges + ld b, 2 + call CountSetBits + ld a, [wd265] + jp .loadstringbuffer2 +; 806ef + +.PlayerFacing: ; 806ef +; The direction the player is facing. + ld a, [PlayerDirection] + and $c + rrca + rrca + jp .loadstringbuffer2 +; 806f9 + +.DayOfWeek: ; 806f9 +; The day of the week. + call GetWeekday + jp .loadstringbuffer2 +; 806ff + +.UnownCaught: ; 806ff +; Number of unique Unown caught. + call .count + ld a, b + jp .loadstringbuffer2 + +.count + ld hl, UnownDex + ld b, 0 +.loop + ld a, [hli] + and a + ret z + inc b + ld a, b + cp 26 + jr c, .loop + ret +; 80715 + +.BoxFreeSpace: ; 80715 +; Remaining slots in the current box. + ld a, BANK(sBoxCount) + call GetSRAMBank + ld hl, sBoxCount + ld a, MONS_PER_BOX + sub [hl] + ld b, a + call CloseSRAM + ld a, b + jp .loadstringbuffer2 +; 80728 + +.BattleResult: ; 80728 + ld a, [wBattleResult] + and $3f + jp .loadstringbuffer2 +; 80730 diff --git a/event/halloffame.asm b/event/halloffame.asm new file mode 100755 index 000000000..c4c901229 --- /dev/null +++ b/event/halloffame.asm @@ -0,0 +1,628 @@ +HallOfFame:: ; 0x8640e + call Function8648e + ld a, [StatusFlags] + push af + ld a, 1 + ld [wc2cd], a + call DisableSpriteUpdates + ld a, SPAWN_LANCE + ld [wSpawnAfterChampion], a + + ; Enable the Pokégear map to cycle through all of Kanto + ld hl, StatusFlags + set 6, [hl] ; hall of fame + + callba Function14da0 + + ld hl, wHallOfFameCount + ld a, [hl] + cp 200 + jr nc, .ok + inc [hl] +.ok + callba SaveGameData + call GetHallOfFameParty + callba AddHallOfFameEntry + + xor a + ld [wc2cd], a + call Function864c3 + pop af + ld b, a + callba Function109847 + ret +; 0x86455 + +RedCredits:: ; 86455 + ld a, MUSIC_NONE % $100 + ld [MusicFadeIDLo], a + ld a, MUSIC_NONE / $100 + ld [MusicFadeIDHi], a + ld a, $a + ld [MusicFade], a + callba FadeOutPalettes + xor a + ld [VramState], a + ld [hMapAnims], a + callba Function4e8c2 + ld c, 8 + call DelayFrames + call DisableSpriteUpdates + ld a, SPAWN_RED + ld [wSpawnAfterChampion], a + ld a, [StatusFlags] + ld b, a + callba Function109847 + ret +; 8648e + +Function8648e: ; 8648e + ld a, MUSIC_NONE % $100 + ld [MusicFadeIDLo], a + ld a, MUSIC_NONE / $100 + ld [MusicFadeIDHi], a + ld a, 10 + ld [MusicFade], a + callba FadeOutPalettes + xor a + ld [VramState], a + ld [hMapAnims], a + callba Function4e881 + ld c, 100 + jp DelayFrames +; 864b4 + +Function864b4: ; 864b4 + push de + ld de, MUSIC_NONE + call PlayMusic + call DelayFrame + pop de + call PlayMusic + ret +; 864c3 + +Function864c3: ; 864c3 + xor a + ld [wJumptableIndex], a + call Function8671c + jr c, .done + ld de, SCREEN_WIDTH + call Function864b4 + xor a + ld [wcf64], a +.loop + ld a, [wcf64] + cp 6 + jr nc, .done + ld hl, wc608 + 1 + ld bc, $10 + call AddNTimes + ld a, [hl] + cp -1 + jr z, .done + push hl + call Function865b5 + pop hl + call Function8650c + jr c, .done + ld hl, wcf64 + inc [hl] + jr .loop + +.done + call Function86810 + ld a, $4 + ld [MusicFade], a + call FadeToWhite + ld c, 8 + call DelayFrames + ret +; 8650c + +Function8650c: ; 8650c + call Function86748 + ld de, String_8652c + hlcoord 1, 2 + call PlaceString + call WaitBGMap + decoord 6, 5 + ld c, $6 + predef Functiond066e + ld c, 60 + call DelayFrames + and a + ret +; 8652c + +String_8652c: + db "New Hall of Famer!@" +; 8653f + + +GetHallOfFameParty: ; 8653f + ld hl, OverworldMap + ld bc, HOF_LENGTH + xor a + call ByteFill + ld a, [wHallOfFameCount] + ld de, OverworldMap + ld [de], a + inc de + ld hl, PartySpecies + ld c, 0 +.next + ld a, [hli] + cp -1 + jr z, .done + cp EGG + jr nz, .mon + inc c + jr .next + +.mon + push hl + push de + push bc + + ld a, c + ld hl, PartyMons + ld bc, PARTYMON_STRUCT_LENGTH + call AddNTimes + ld c, l + ld b, h + + ld hl, MON_SPECIES + add hl, bc + ld a, [hl] + ld [de], a + inc de + + ld hl, MON_ID + add hl, bc + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + inc de + + ld hl, MON_DVS + add hl, bc + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + inc de + + ld hl, MON_LEVEL + add hl, bc + ld a, [hl] + ld [de], a + inc de + + pop bc + push bc + ld a, c + ld hl, PartyMonNicknames + ld bc, PKMN_NAME_LENGTH + call AddNTimes + ld bc, PKMN_NAME_LENGTH - 1 + call CopyBytes + + pop bc + inc c + pop de + ld hl, HOF_MON_LENGTH + add hl, de + ld e, l + ld d, h + pop hl + jr .next + +.done + ld a, $ff + ld [de], a + ret +; 865b5 + +Function865b5: ; 865b5 + push hl + call ClearBGPalettes + callba Function4e906 + pop hl + ld a, [hli] + ld [TempMonSpecies], a + ld [CurPartySpecies], a +rept 2 + inc hl +endr + ld a, [hli] + ld [TempMonDVs], a + ld a, [hli] + ld [TempMonDVs + 1], a + ld hl, TempMonDVs + predef GetUnownLetter + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, " " + call ByteFill + ld de, VTiles2 tile $31 + predef GetBackpic + ld a, $31 + ld [hFillBox], a + hlcoord 6, 6 + lb bc, 6, 6 + predef FillBox + ld a, $d0 + ld [hSCY], a + ld a, $90 + ld [hSCX], a + call WaitBGMap + xor a + ld [hBGMapMode], a + ld b, SCGB_1A + call GetSGBLayout + call SetPalettes + call Function86635 + xor a + ld [wc2c6], a + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, " " + call ByteFill + hlcoord 6, 5 + call _PrepMonFrontpic + call WaitBGMap + xor a + ld [hBGMapMode], a + ld [hSCY], a + call Function86643 + ret +; 86635 + +Function86635: ; 86635 +.loop + ld a, [hSCX] + cp $70 + ret z + add $4 + ld [hSCX], a + call DelayFrame + jr .loop +; 86643 + +Function86643: ; 86643 +.loop + ld a, [hSCX] + and a + ret z +rept 2 + dec a +endr + ld [hSCX], a + call DelayFrame + jr .loop +; 86650 + +_HallOfFamePC: ; 86650 + call LoadFontsBattleExtra + xor a + ld [wJumptableIndex], a +.loop + call Function8671c + ret c + call Function86665 + ret c + ld hl, wJumptableIndex + inc [hl] + jr .loop +; 86665 + +Function86665: ; 86665 + xor a + ld [wcf64], a +.next + call Function86692 + jr c, .start_button +.loop + call JoyTextDelay + ld hl, hJoyLast + ld a, [hl] + and B_BUTTON + jr nz, .b_button + ld a, [hl] + and A_BUTTON + jr nz, .a_button + ld a, [hl] + and START + jr nz, .start_button + call DelayFrame + jr .loop + +.a_button + ld hl, wcf64 + inc [hl] + jr .next + +.b_button + scf + ret + +.start_button + and a + ret +; 86692 + +Function86692: ; 86692 +; Print the number of times the player has entered the Hall of Fame. +; If that number is above 200, print "HOF Master!" instead. + ld a, [wcf64] + cp $6 + jr nc, .fail + ld hl, wc608 + 1 + ld bc, $10 + call AddNTimes + ld a, [hl] + cp $ff + jr nz, .okay + +.fail + scf + ret + +.okay + push hl + call ClearBGPalettes + pop hl + call Function86748 + ld a, [wc608] + cp 200 + 1 + jr c, .print_num_hof + ld de, String_866fc + hlcoord 1, 2 + call PlaceString + hlcoord 13, 2 + jr .finish + +.print_num_hof + ld de, String_8670c + hlcoord 1, 2 + call PlaceString + hlcoord 2, 2 + ld de, wc608 + lb bc, 1, 3 + call PrintNum + hlcoord 11, 2 + +.finish + ld de, String_866fb + call PlaceString + call WaitBGMap + ld b, SCGB_1A + call GetSGBLayout + call SetPalettes + decoord 6, 5 + ld c, $6 + predef Functiond066e + and a + ret +; 866fb + +String_866fb: + db "@" +; 866fc + +String_866fc: + db " HOF Master!@" +; 8670c + +String_8670c: + db " -Time Famer@" +; 8671c + + +Function8671c: ; 8671c + ld a, [wJumptableIndex] + cp NUM_HOF_TEAMS + jr nc, .full + ld hl, sHallOfFame + ld bc, HOF_LENGTH + call AddNTimes + ld a, BANK(sHallOfFame) + call GetSRAMBank + ld a, [hl] + and a + jr z, .fail + ld de, wc608 + ld bc, HOF_LENGTH + call CopyBytes + call CloseSRAM + and a + ret + +.fail + call CloseSRAM + +.full + scf + ret +; 86748 + +Function86748: ; 86748 + xor a + ld [hBGMapMode], a + ld a, [hli] + ld [TempMonSpecies], a + ld a, [hli] + ld [TempMonID], a + ld a, [hli] + ld [TempMonID + 1], a + ld a, [hli] + ld [TempMonDVs], a + ld a, [hli] + ld [TempMonDVs + 1], a + ld a, [hli] + ld [TempMonLevel], a + ld de, StringBuffer2 + ld bc, 10 + call CopyBytes + ld a, "@" + ld [StringBuffer2 + 10], a + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, " " + call ByteFill + hlcoord 0, 0 + lb bc, 3, SCREEN_WIDTH - 2 + call TextBox + hlcoord 0, 12 + lb bc, 4, SCREEN_WIDTH - 2 + call TextBox + ld a, [TempMonSpecies] + ld [CurPartySpecies], a + ld [wd265], a + ld hl, TempMonDVs + predef GetUnownLetter + xor a + ld [wc2c6], a + hlcoord 6, 5 + call _PrepMonFrontpic + ld a, [CurPartySpecies] + cp EGG + jr z, .print_id_no + hlcoord 1, 13 + ld a, "№" + ld [hli], a + ld [hl], "·" + hlcoord 3, 13 + ld de, wd265 + lb bc, PRINTNUM_LEADINGZEROS | 1, 3 + call PrintNum + call GetBasePokemonName + hlcoord 7, 13 + call PlaceString + ld a, BREEDMON + ld [MonType], a + callba GetGender + ld a, " " + jr c, .got_gender + ld a, "♂" + jr nz, .got_gender + ld a, "♀" + +.got_gender + hlcoord 18, 13 + ld [hli], a + hlcoord 8, 14 + ld a, "/" + ld [hli], a + ld de, StringBuffer2 + call PlaceString + hlcoord 1, 16 + call PrintLevel + +.print_id_no + hlcoord 7, 16 + ld a, "" + ld [hli], a + ld a, "№" + ld [hli], a + ld [hl], "/" + hlcoord 10, 16 + ld de, TempMonID + lb bc, PRINTNUM_LEADINGZEROS | 2, 5 + call PrintNum + ret +; 86810 + +Function86810: ; 86810 + call ClearBGPalettes + ld hl, VTiles2 tile $63 + ld de, FontExtra + $d0 + lb bc, BANK(FontExtra), 1 + call Request2bpp + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, " " + call ByteFill + callba GetPlayerBackpic + ld a, $31 + ld [hFillBox], a + hlcoord 6, 6 + lb bc, 6, 6 + predef FillBox + ld a, $d0 + ld [hSCY], a + ld a, $90 + ld [hSCX], a + call WaitBGMap + xor a + ld [hBGMapMode], a + ld [CurPartySpecies], a + ld b, SCGB_1A + call GetSGBLayout + call SetPalettes + call Function86635 + xor a + ld [wc2c6], a + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, " " + call ByteFill + callba Function88840 + xor a + ld [hFillBox], a + hlcoord 12, 5 + lb bc, 7, 7 + predef FillBox + ld a, $c0 + ld [hSCX], a + call WaitBGMap + xor a + ld [hBGMapMode], a + ld [hSCY], a + call Function86643 + xor a + ld [hBGMapMode], a + hlcoord 0, 2 + lb bc, 8, 9 + call TextBox + hlcoord 0, 12 + lb bc, 4, 18 + call TextBox + hlcoord 2, 4 + ld de, PlayerName + call PlaceString + hlcoord 1, 6 + ld a, "" + ld [hli], a + ld a, "№" + ld [hli], a + ld [hl], "/" + hlcoord 4, 6 + ld de, PlayerID + lb bc, PRINTNUM_LEADINGZEROS | 2, 5 + call PrintNum + hlcoord 1, 8 + ld de, .PlayTime + call PlaceString + hlcoord 3, 9 + ld de, GameTimeHours + lb bc, 2, 3 + call PrintNum + ld [hl], 99 + inc hl + ld de, GameTimeMinutes + lb bc, PRINTNUM_LEADINGZEROS | 1, 2 + call PrintNum + call WaitBGMap + callba Function26601 + ret +; 868ed + +.PlayTime + db "PLAY TIME@" +; 868f7 + diff --git a/event/mom_phone.asm b/event/mom_phone.asm new file mode 100755 index 000000000..b2bf0d2fd --- /dev/null +++ b/event/mom_phone.asm @@ -0,0 +1,285 @@ +MomTriesToBuySomething:: ; fcfec + ld a, [wMapReentryScriptQueueFlag] + and a + ret nz + call GetMapHeaderPhoneServiceNybble + and a + ret nz + xor a + ld [wdc18], a + call CheckBalance_MomItem2 + ret nc + call Functionfd0c3 + ret nc + ld b, BANK(UnknownScript_0xfd00f) + ld de, UnknownScript_0xfd00f + callba LoadScriptBDE + scf + ret +; fd00f + +UnknownScript_0xfd00f: ; 0xfd00f + callasm Functionfd017 + farjump Script_ReceivePhoneCall +; 0xfd017 + +Functionfd017: ; fd017 + call MomBuysItem_DeductFunds + call Functionfd0eb + ld a, [wdc18] + and a + jr nz, .ok + ld hl, wdc17 + inc [hl] +.ok + ld a, 1 + ld [wCurrentCaller], a + ld bc, wd03f + ld hl, 0 + add hl, bc + ld [hl], 0 + inc hl + ld [hl], 1 + ld hl, 9 + add hl, bc + ld a, $3f + ld [hli], a + ld a, e + ld [hli], a + ld a, d + ld [hl], a + ret +; fd044 + +CheckBalance_MomItem2: ; fd044 + ld a, [wdc17] + cp 10 + jr nc, .nope + call GetItemFromMom + ld a, [hli] + ld [hMoneyTemp], a + ld a, [hli] + ld [hMoneyTemp + 1], a + ld a, [hli] + ld [hMoneyTemp + 2], a + ld de, wMomsMoney + ld bc, hMoneyTemp + callba CompareMoney + jr nc, .have_enough_money + +.nope + jr .check_have_2300 + +.have_enough_money + scf + ret + +.check_have_2300 + ld hl, hMoneyTemp + ld [hl], (2300 / $10000) ; $00 + inc hl + ld [hl], ((2300 % $10000) / $100) ; $08 + inc hl + ld [hl], (2300 % $100) ; $fc +.loop + ld de, wdc19 + ld bc, wMomsMoney + callba CompareMoney + jr z, .exact + jr nc, .less_than + call Functionfd099 + jr .loop + +.less_than + xor a + ret + +.exact + call Functionfd099 + ld a, 5 + call RandomRange + inc a + ld [wdc18], a + scf + ret +; fd099 + +Functionfd099: ; fd099 + ld de, wdc19 + ld bc, hMoneyTemp + callba AddMoney + ret +; fd0a6 + + +MomBuysItem_DeductFunds: ; fd0a6 (3f:50a6) + call GetItemFromMom + ld de, 3 + add hl, de + ld a, [hli] + ld [hMoneyTemp], a + ld a, [hli] + ld [hMoneyTemp + 1], a + ld a, [hli] + ld [hMoneyTemp + 2], a + ld de, wMomsMoney + ld bc, hMoneyTemp + callba TakeMoney + ret + + +Functionfd0c3: ; fd0c3 + call GetItemFromMom + ld de, 6 + add hl, de + ld a, [hli] + cp 1 + jr z, .not_doll + ld a, [hl] + ld c, a + ld b, 1 + callba DecorationFlagAction_c + scf + ret + +.not_doll + ld a, [hl] + ld [CurItem], a + ld a, $1 + ld [wItemQuantityChangeBuffer], a + ld hl, PCItems + call ReceiveItem + ret +; fd0eb + + +Functionfd0eb: ; fd0eb (3f:50eb) + call GetItemFromMom + ld de, 6 ; field + add hl, de + ld a, [hli] + ld de, Script_MomBoughtItem + cp 1 + ret z + ld de, Script_MomBoughtDoll + ret +; fd0fd (3f:50fd) + +Script_MomBoughtItem: ; 0xfd0fd + writetext _MomText_HiHowAreYou + writetext _MomText_FoundAnItem + writetext _MomText_BoughtWithYourMoney + writetext _MomText_ItsInPC + end +; 0xfd10a + +Script_MomBoughtDoll: ; 0xfd10a + writetext _MomText_HiHowAreYou + writetext _MomText_FoundADoll + writetext _MomText_BoughtWithYourMoney + writetext _MomText_ItsInRoom + end +; 0xfd117 + + +GetItemFromMom: ; fd117 + ld a, [wdc18] + and a + jr z, .zero + dec a + ld de, MomItems_1 + jr .incave + +.zero + ld a, [wdc17] + cp 10 ; length of MomItems_2 + jr c, .ok + xor a + +.ok + ld de, MomItems_2 + +.incave + ld l, a + ld h, 0 +rept 3 ; multiply hl by 8 + add hl, hl +endr + add hl, de + ret +; fd136 + +momitem: macro +; money to trigger, cost, kind, item + dt \1 + dt \2 + db \3, \4 +ENDM + + +MomItems_1: ; fd136 + momitem 0, 600, MOM_ITEM, SUPER_POTION + momitem 0, 90, MOM_ITEM, ANTIDOTE + momitem 0, 180, MOM_ITEM, POKE_BALL + momitem 0, 450, MOM_ITEM, ESCAPE_ROPE + momitem 0, 500, MOM_ITEM, GREAT_BALL +; fd15e + +MomItems_2: ; fd15e + momitem 900, 600, MOM_ITEM, SUPER_POTION + momitem 4000, 270, MOM_ITEM, REPEL + momitem 7000, 600, MOM_ITEM, SUPER_POTION + momitem 10000, 1800, MOM_DOLL, DECO_CHARMANDER_DOLL + momitem 15000, 3000, MOM_ITEM, MOON_STONE + momitem 19000, 600, MOM_ITEM, SUPER_POTION + momitem 30000, 4800, MOM_DOLL, DECO_CLEFAIRY_DOLL + momitem 40000, 900, MOM_ITEM, HYPER_POTION + momitem 50000, 8000, MOM_DOLL, DECO_PIKACHU_DOLL + momitem 100000, 22800, MOM_DOLL, DECO_BIG_SNORLAX_DOLL +; fd1ae + + db 0, 0, 0 ; XXX + +_MomText_HiHowAreYou: ; 0xfd1b1 + ; Hi, ! How are you? + text_jump UnknownText_0x1bc615 + db "@" +; 0xfd1b6 + +_MomText_FoundAnItem: ; 0xfd1b6 + ; I found a useful item shopping, so + text_jump UnknownText_0x1bc62a + db "@" +; 0xfd1bb + +_MomText_BoughtWithYourMoney: ; 0xfd1bb + ; I bought it with your money. Sorry! + text_jump UnknownText_0x1bc64e + db "@" +; 0xfd1c0 + +_MomText_ItsInPC: ; 0xfd1c0 + ; It's in your PC. You'll like it! + text_jump UnknownText_0x1bc673 + db "@" +; 0xfd1c5 + +_MomText_FoundADoll: ; 0xfd1c5 + ; While shopping today, I saw this adorable doll, so + text_jump UnknownText_0x1bc693 + db "@" +; 0xfd1ca + +_MomText_ItsInRoom: ; 0xfd1ca + ; It's in your room. You'll love it! + text_jump UnknownText_0x1bc6c7 + db "@" +; 0xfd1cf + + db 0 ; XXX + +Functionfd1d0: ; fd1d0 + ret +; fd1d1 + + ret ; XXX diff --git a/gfx/font.asm b/gfx/font.asm new file mode 100755 index 000000000..12e20e7f0 --- /dev/null +++ b/gfx/font.asm @@ -0,0 +1,236 @@ +FontExtra: +INCBIN "gfx/misc/font_extra.2bpp" + +Font: +INCBIN "gfx/misc/font.1bpp" + +FontBattleExtra: +INCBIN "gfx/misc/font_battle_extra.2bpp" + +Frames: ; f8800 +INCBIN "gfx/frames/1.1bpp" +INCBIN "gfx/frames/2.1bpp" +INCBIN "gfx/frames/3.1bpp" +INCBIN "gfx/frames/4.1bpp" +INCBIN "gfx/frames/5.1bpp" +INCBIN "gfx/frames/6.1bpp" +INCBIN "gfx/frames/7.1bpp" +INCBIN "gfx/frames/8.1bpp" +INCBIN "gfx/frames/9.1bpp" +; f89b0 + +; TODO: Various misc graphics here. + +GFX_f89b0: ; f89b0 +INCBIN "gfx/unknown/0f89b0.2bpp" +; f8a90 + +ShinyIcon: ; f8a90 +INCBIN "gfx/stats/shiny.2bpp" + +GFX_f8aa0: ; f8aa0 +INCBIN "gfx/unknown/0f8aa0.2bpp" +; f8ac0 + +EnemyHPBarBorderGFX: ; f8ac0 +INCBIN "gfx/battle/enemy_hp_bar_border.1bpp" +; f8ae0 + +HPExpBarBorderGFX: ; f8ae0 +INCBIN "gfx/battle/hp_exp_bar_border.1bpp" +; f8b10 + +ExpBarGFX: ; f8b10 +INCBIN "gfx/battle/expbar.2bpp" +; f8ba0 + +TownMapGFX: ; f8ba0 +INCBIN "gfx/misc/town_map.2bpp.lz" +; f8ea4 + +GFX_f8ea4: ; unused +INCBIN "gfx/unknown/0f8ea4.2bpp" +; f8f24 + +OverworldPhoneIconGFX: ; f8f24 +INCBIN "gfx/mobile/overworld_phone_icon.2bpp" +; f8f34 + +GFX_f8f34: ; unused +INCBIN "gfx/unknown/0f8f34.2bpp" +; f9204 + +TextBoxSpaceGFX: ; f9204 +INCBIN "gfx/frames/space.2bpp" +; f9214 + +MobilePhoneTilesGFX: ; f9214 +INCBIN "gfx/mobile/phone_tiles.2bpp" +; f9344 + +MapEntryFrameGFX: ; f9344 +INCBIN "gfx/frames/map_entry_sign.2bpp" +; f9424 + +GFX_f9424: ; f9424 +INCBIN "gfx/unknown/0f9424.2bpp" +; f9434 + +Footprints: ; f9434 +INCBIN "gfx/misc/footprints.1bpp" +; fb434 + +; This and the following two functions are unreferenced. +Unknown_fb434: + db 0 + +Functionfb435: ; 4b435 + ld a, [Unknown_fb434] + and a + jp nz, Get1bpp_2 + jp Get1bpp +; fb43f + +Functionfb43f: ; fb43f + ld a, [Unknown_fb434] + and a + jp nz, Get2bpp_2 + jp Get2bpp +; End unreferenced block +; fb449 + +_LoadStandardFont:: ; fb449 + ld de, Font + ld hl, VTiles1 + lb bc, BANK(Font), $80 + ld a, [rLCDC] + bit 7, a + jp z, Copy1bpp + + ld de, Font + ld hl, VTiles1 + lb bc, BANK(Font), $20 + call Get1bpp_2 + ld de, Font + $20 * LEN_1BPP_TILE + ld hl, VTiles1 tile $20 + lb bc, BANK(Font), $20 + call Get1bpp_2 + ld de, Font + $40 * LEN_1BPP_TILE + ld hl, VTiles1 tile $40 + lb bc, BANK(Font), $20 + call Get1bpp_2 + ld de, Font + $60 * LEN_1BPP_TILE + ld hl, VTiles1 tile $60 + lb bc, BANK(Font), $20 + call Get1bpp_2 + ret +; fb48a + +_LoadFontsExtra1:: ; fb48a + ld de, MobilePhoneTilesGFX + ld hl, VTiles2 tile $60 + lb bc, BANK(MobilePhoneTilesGFX), 1 + call Get1bpp_2 + ld de, OverworldPhoneIconGFX + ld hl, VTiles2 tile $62 + lb bc, BANK(OverworldPhoneIconGFX), 1 + call Get2bpp_2 + ld de, FontExtra + 3 * LEN_2BPP_TILE + ld hl, VTiles2 tile $63 + lb bc, BANK(FontExtra), $16 + call Get2bpp_2 + jr LoadFrame +; fb4b0 + +_LoadFontsExtra2:: ; fb4b0 + ld de, GFX_f9424 + ld hl, VTiles2 tile $61 + ld b, BANK(GFX_f9424) + ld c, 1 + call Get2bpp_2 + ret +; fb4be + +_LoadFontsBattleExtra:: ; fb4be + ld de, FontBattleExtra + ld hl, VTiles2 tile $60 + lb bc, BANK(FontBattleExtra), $19 + call Get2bpp_2 + jr LoadFrame +; fb4cc + +LoadFrame: ; fb4cc + ld a, [TextBoxFrame] + and 7 + ld bc, TILES_PER_FRAME * LEN_1BPP_TILE + ld hl, Frames + call AddNTimes + ld d, h + ld e, l + ld hl, VTiles2 tile $79 + lb bc, BANK(Frames), TILES_PER_FRAME + call Get1bpp_2 + ld hl, VTiles2 tile $7f + ld de, TextBoxSpaceGFX + lb bc, BANK(TextBoxSpaceGFX), 1 + call Get1bpp_2 + ret +; fb4f2 + +LoadBattleFontsHPBar: ; fb4f2 + ld de, FontBattleExtra + ld hl, VTiles2 tile $60 + lb bc, BANK(FontBattleExtra), $c + call Get2bpp_2 + ld hl, VTiles2 tile $70 + ld de, FontBattleExtra + $10 * LEN_2BPP_TILE + lb bc, BANK(FontBattleExtra), 3 + call Get2bpp_2 + call LoadFrame + +LoadHPBar: ; fb50d + ld de, EnemyHPBarBorderGFX + ld hl, VTiles2 tile $6c + lb bc, BANK(EnemyHPBarBorderGFX), 4 + call Get1bpp_2 + ld de, HPExpBarBorderGFX + ld hl, VTiles2 tile $73 + lb bc, BANK(HPExpBarBorderGFX), 6 + call Get1bpp_2 + ld de, ExpBarGFX + ld hl, VTiles2 tile $55 + lb bc, BANK(ExpBarGFX), 9 + call Get2bpp_2 + ld de, MobilePhoneTilesGFX + 9 * LEN_2BPP_TILE + ld hl, VTiles2 tile $5e + lb bc, BANK(MobilePhoneTilesGFX), 2 + call Get2bpp_2 + ret +; fb53e + +Functionfb53e: ; fb53e + call _LoadFontsBattleExtra + ld de, EnemyHPBarBorderGFX + ld hl, VTiles2 tile $6c + lb bc, BANK(EnemyHPBarBorderGFX), 4 + call Get1bpp_2 + ld de, HPExpBarBorderGFX + ld hl, VTiles2 tile $78 + lb bc, BANK(HPExpBarBorderGFX), 1 + call Get1bpp_2 + ld de, HPExpBarBorderGFX + 3 * LEN_1BPP_TILE + ld hl, VTiles2 tile $76 + lb bc, BANK(HPExpBarBorderGFX), 2 + call Get1bpp_2 + ld de, ExpBarGFX + ld hl, VTiles2 tile $55 + lb bc, BANK(ExpBarGFX), 8 + call Get2bpp_2 + +Functionfb571: ; fb571 + ld de, GFX_f89b0 + ld hl, VTiles2 tile $31 + lb bc, BANK(GFX_f89b0), $11 + call Get2bpp_2 + ret +; fb57e diff --git a/gfx/mail.asm b/gfx/mail.asm new file mode 100755 index 000000000..1276f3fa1 --- /dev/null +++ b/gfx/mail.asm @@ -0,0 +1,1088 @@ +ReadPartyMonMail: ; b9229 + ld a, [CurPartyMon] + ld hl, sPartyMail + ld bc, MAIL_STRUCT_LENGTH + call AddNTimes + ld d, h + ld e, l +ReadAnyMail: ; b9237 + push de + call ClearBGPalettes + call ClearSprites + call ClearTileMap + call DisableLCD + call LoadFontsExtra + pop de + push de + ld a, BANK(sPartyMail) + call GetSRAMBank + callba Function1de5c8 + call CloseSRAM + ld a, c + ld de, GFX_1de5e6 + or a + jr z, .asm_b9268 + ld de, GFX_1de9e6 + sub $3 + jr c, .asm_b9268 + ld de, GFX_1dede6 + +.asm_b9268 + ld hl, VTiles1 + lb bc, BANK(GFX_1de5e6), $80 + call Get1bpp + pop de + call Functionb92b8 + call EnableLCD + call WaitBGMap + ld a, [wd1ec] + ld e, a + callba Function8cb4 + call SetPalettes + xor a + ld [hJoyPressed], a + call Functionb929a + call ClearBGPalettes + call DisableLCD + call LoadStandardFont + jp EnableLCD +; b929a + +Functionb929a: ; b929a +.asm_b929a + call GetJoypad + ld a, [hJoyPressed] + and A_BUTTON | B_BUTTON | START + jr z, .asm_b929a + and START + jr nz, .asm_b92a8 + ret + +.asm_b92a8 + ld a, [wJumptableIndex] + push af + callab Function845d4 + pop af + ld [wJumptableIndex], a + jr .asm_b929a +; b92b8 + +Functionb92b8: ; b92b8 + ld h, d + ld l, e + push hl + ld a, $0 + call GetSRAMBank + ld de, $2b + add hl, de + ld a, [hli] + ld [Buffer1], a + ld a, [hli] + ld [Buffer2], a + ld a, [hli] + ld [CurPartySpecies], a + ld b, [hl] + call CloseSRAM + ld hl, MailGFXPointers + ld c, 0 +.asm_b92d9 + ld a, [hli] + cp b + jr z, .asm_b92ea + cp $ff + jr z, .asm_b92e6 + inc c +rept 2 + inc hl +endr + jr .asm_b92d9 + +.asm_b92e6 + ld hl, MailGFXPointers + inc hl + +.asm_b92ea + ld a, c + ld [wd1ec], a + ld a, [hli] + ld h, [hl] + ld l, a + ld de, .done + pop bc + push de + jp [hl] +.done + ret +; b92f8 + +MailGFXPointers: ; b92f8 + dbw FLOWER_MAIL, LoadFlowerMailGFX + dbw SURF_MAIL, LoadSurfMailGFX + dbw LITEBLUEMAIL, LoadLiteBlueMailGFX + dbw PORTRAITMAIL, LoadPortraitMailGFX + dbw LOVELY_MAIL, LoadLovelyMailGFX + dbw EON_MAIL, LoadEonMailGFX + dbw MORPH_MAIL, LoadMorphMailGFX + dbw BLUESKY_MAIL, LoadBlueSkyMailGFX + dbw MUSIC_MAIL, LoadMusicMailGFX + dbw MIRAGE_MAIL, LoadMirageMailGFX + db $ff +; b9317 + +LoadSurfMailGFX: ; b9317 + push bc + ld hl, VTiles2 tile $31 + ld de, Unknown_b9d46 + ld c, $40 + call Functionb9915 + ld de, MailLaprasGFX + ld c, $30 + call Functionb991e + ld de, Unknown_b994e + ld c, $8 + call Functionb9915 + jr Functionb9351 + +LoadLiteBlueMailGFX: ; b9335 + push bc + ld hl, VTiles2 tile $31 + ld de, Unknown_b9dc6 + ld c, $40 + call Functionb9915 + ld de, MailDratiniGFX + ld c, $30 + call Functionb991e + ld de, Unknown_b995e + ld c, $8 + call Functionb9915 + +Functionb9351: ; b9351 + ld de, Unknown_b9976 + ld c, $10 + call Functionb9915 + ld c, $10 + call Functionb990c + ld de, Unknown_b9c3e + ld c, $40 + call Functionb990c + ld c, $40 + call Functionb9915 + call Functionb9858 + hlcoord 2, 15 + ld a, $3f + call Functionb98d4 + ld a, $39 + hlcoord 15, 14 + call Functionb98fc + ld a, $44 + hlcoord 2, 2 + call Functionb98ee + hlcoord 15, 11 + call Functionb98ee + ld a, $4c + hlcoord 3, 12 + call Functionb98ee + hlcoord 15, 2 + call Functionb98ee + ld a, $50 + hlcoord 6, 3 + call Functionb98ee + ld a, $40 + hlcoord 13, 2 + ld [hli], a + hlcoord 6, 14 + ld [hl], a + ld a, $41 + hlcoord 4, 5 + ld [hli], a + hlcoord 17, 5 + ld [hli], a + hlcoord 13, 12 + ld [hl], a + ld a, $42 + hlcoord 9, 2 + ld [hli], a + hlcoord 14, 5 + ld [hli], a + hlcoord 3, 10 + ld [hl], a + ld a, $43 + hlcoord 6, 11 + ld [hli], a + pop hl + jp Functionb9803 +; b93d2 + +LoadEonMailGFX: ; b93d2 + push bc + ld hl, VTiles2 tile $31 + ld de, Unknown_b997e + ld c, $8 + call Functionb9915 + ld de, Unknown_b998e + ld c, $8 + call Functionb990c + ld de, Unknown_b998e + ld c, $8 + call Functionb990c + ld de, Unknown_b997e + ld c, $8 + call Functionb9915 + ld de, Unknown_b9d76 + ld c, $8 + call Functionb9915 + ld de, MailPikaGFX + ld c, $30 + call Functionb991e + ld hl, VTiles2 tile $3d + ld de, Unknown_b9c9e + ld c, $20 + call Functionb990c + ld de, Unknown_b998e + ld c, $8 + call Functionb9915 + ld a, $31 + hlcoord 0, 0 + call Functionb98a8 + hlcoord 1, 17 + call Functionb98a8 + ld a, $33 + hlcoord 0, 1 + call Functionb98ba + hlcoord 19, 0 + call Functionb98ba + hlcoord 2, 15 + ld a, $35 + call Functionb98d4 + inc a + hlcoord 15, 14 + call Functionb98fc + call Functionb9491 + pop hl + jp Functionb9803 +; b944b + +LoadLovelyMailGFX: ; b944b + push bc + ld hl, VTiles2 tile $31 + ld de, Unknown_b9e26 + ld c, $28 + call Functionb9915 + ld de, MailPoliwagGFX + ld c, $30 + call Functionb991e + ld de, Unknown_b9966 + ld c, $8 + call Functionb9915 + ld de, Unknown_b9c5e + ld c, $20 + call Functionb9915 + ld de, Unknown_b996e + ld c, $8 + call Functionb990c + call Functionb987b + hlcoord 2, 15 + ld a, $3c + call Functionb98d4 + ld a, $36 + hlcoord 15, 14 + call Functionb98fc + call Functionb9491 + pop hl + jp Functionb9803 +; b9491 + +Functionb9491: ; b9491 + ld a, $3d + hlcoord 2, 2 + call Functionb98ee + hlcoord 16, 2 + call Functionb98ee + hlcoord 9, 4 + call Functionb98ee + hlcoord 2, 11 + call Functionb98ee + hlcoord 6, 12 + call Functionb98ee + hlcoord 12, 11 + call Functionb98ee + ld a, $41 + hlcoord 5, 4 + ld [hl], a + hlcoord 6, 2 + ld [hl], a + hlcoord 12, 4 + ld [hl], a + hlcoord 14, 2 + ld [hl], a + hlcoord 3, 13 + ld [hl], a + hlcoord 9, 11 + ld [hl], a + hlcoord 16, 12 + ld [hl], a + ret +; b94d6 + +LoadMorphMailGFX: ; b94d6 + push bc + ld hl, VTiles2 tile $31 + ld bc, $28 + call Functionb97f8 + ld de, Unknown_b9c96 + ld c, 8 + call Functionb9915 + ld de, Unknown_b9c7e + ld c, 8 + call Functionb9915 + ld de, Unknown_b993e + ld c, 8 + call Functionb9915 + ld de, Unknown_b997e + ld c, 8 + call Functionb990c + ld de, Unknown_b9926 + ld c, 8 + call Functionb9915 + ld de, MailDittoGFX + ld c, $30 + call Functionb991e + call Functionb987b + ld a, $31 + hlcoord 1, 1 + call Functionb98ee + hlcoord 17, 15 + call Functionb98ee + hlcoord 1, 3 + ld [hl], a + hlcoord 3, 1 + ld [hl], a + hlcoord 16, 16 + ld [hl], a + hlcoord 18, 14 + ld [hl], a + ld a, $36 + hlcoord 1, 4 + ld [hl], a + hlcoord 2, 3 + ld [hl], a + hlcoord 3, 2 + ld [hl], a + hlcoord 4, 1 + ld [hl], a + inc a + hlcoord 15, 16 + ld [hl], a + hlcoord 16, 15 + ld [hl], a + hlcoord 17, 14 + ld [hl], a + hlcoord 18, 13 + ld [hl], a + inc a + hlcoord 2, 15 + ld b, $e + call Functionb98de + inc a + hlcoord 2, 11 + call Functionb98d4 + hlcoord 2, 5 + call Functionb98d4 + inc a + hlcoord 6, 1 + call Functionb98d0 + hlcoord 1, 16 + call Functionb98d0 + inc a + hlcoord 3, 13 + call Functionb98fc + pop hl + jp Functionb9803 +; b9582 + +LoadBlueSkyMailGFX: ; b9582 + push bc + ld hl, VTiles2 tile $31 + ld de, Unknown_b997e + ld c, $8 + call Functionb9915 + ld a, $ff + ld bc, $10 + call ByteFill + ld de, Unknown_b992e + ld c, $8 + call Functionb991e + ld de, MailDragoniteGFX + ld c, $b8 + call Functionb991e + ld de, MailCloudGFX + ld c, $30 + call Functionb990c + ld de, Unknown_b9db6 + ld c, $8 + call Functionb990c + ld de, MailCloudGFX + ld c, $8 + call Functionb990c + ld de, Unknown_b9d26 + ld c, $10 + call Functionb990c + ld de, Unknown_b9d3e + ld c, $8 + call Functionb990c + ld a, $31 + hlcoord 0, 0 + call Functionb98dc + hlcoord 0, 1 + call Functionb98e3 + hlcoord 19, 1 + call Functionb98e3 + inc a + hlcoord 0, 17 + call Functionb98dc + inc a + hlcoord 0, 16 + call Functionb98dc + inc a + hlcoord 2, 2 + call Functionb9636 + hlcoord 3, 3 + call Functionb9636 + hlcoord 4, 4 + call Functionb9636 + dec hl + ld [hl], $7f + dec a + hlcoord 15, 14 + call Functionb98ee + add $4 + hlcoord 15, 16 + ld [hli], a + inc a + ld [hl], a + inc a + push af + hlcoord 12, 1 + call Functionb98fc + pop af + hlcoord 15, 4 + call Functionb98fc + inc a + hlcoord 2, 11 + call Functionb98d4 + inc a + hlcoord 10, 3 + call Functionb98ee + pop hl + jp Functionb9803 +; b9636 + +Functionb9636: ; b9636 + ld b, $6 +.asm_b9638 + ld [hli], a + inc a + dec b + jr nz, .asm_b9638 + ret +; b963e + +LoadFlowerMailGFX: ; b963e + push bc + ld hl, VTiles2 tile $31 + ld de, Unknown_b9d86 + ld c, $40 + call Functionb990c + ld de, MailOddishGFX + ld c, $20 + call Functionb991e + ld de, Unknown_b9db6 + ld c, $8 + call Functionb9915 + ld de, Unknown_b9cbe + ld c, $20 + call Functionb990c + ld c, $20 + call Functionb9915 + call Functionb9858 + hlcoord 2, 15 + ld a, $3d + call Functionb98d4 + ld a, $39 + hlcoord 16, 13 + call Functionb98ee + hlcoord 2, 13 + call Functionb98ee + ld a, $3e + hlcoord 2, 2 + call Functionb98ee + hlcoord 5, 3 + call Functionb98ee + hlcoord 10, 2 + call Functionb98ee + hlcoord 16, 3 + call Functionb98ee + hlcoord 5, 11 + call Functionb98ee + hlcoord 16, 10 + call Functionb98ee + ld a, $42 + hlcoord 3, 4 + call Functionb98ee + hlcoord 12, 3 + call Functionb98ee + hlcoord 14, 2 + call Functionb98ee + hlcoord 2, 10 + call Functionb98ee + hlcoord 14, 11 + call Functionb98ee + pop hl + jp Functionb9803 +; b96ca + +LoadPortraitMailGFX: ; b96ca + push bc + ld hl, VTiles2 tile $31 + ld de, Unknown_b9e4e + ld c, $28 + call Functionb9915 + ld de, Unknown_b995e + ld c, $8 + call Functionb9915 + ld hl, VTiles2 tile $3d + ld de, Unknown_b9bfe + ld c, $20 + call Functionb990c + ld de, Unknown_b9936 + ld c, $8 + call Functionb9915 + call Functionb987b + hlcoord 8, 15 + ld a, $36 + ld b, $a + call Functionb98de + call Functionb9491 + ld a, $1 + ld [UnownLetter], a + hlcoord 1, 10 + call PrepMonFrontpic + pop hl + jp Functionb9803 +; b9710 + +LoadMusicMailGFX: ; b9710 + push bc + ld hl, VTiles2 tile $31 + ld de, Unknown_b9e06 + ld c, $20 + call Functionb9915 + ld de, Unknown_b993e + ld c, $10 + call Functionb9915 + ld de, Unknown_b9996 + ld c, $30 + call Functionb991e + xor a + ld bc, $10 + call ByteFill + ld de, Unknown_b9cfe + ld c, $18 + call Functionb990c + ld de, Unknown_b9946 + ld c, $8 + call Functionb990c + ld a, $31 + hlcoord 0, 0 + call Functionb98a8 + hlcoord 1, 17 + call Functionb98a8 + ld a, $33 + hlcoord 0, 1 + call Functionb98ba + hlcoord 19, 0 + call Functionb98ba + ld a, $35 + hlcoord 2, 15 + call Functionb989e + ld a, $37 + hlcoord 15, 14 + call Functionb98fc + call Functionb9491 + pop hl + jp Functionb9803 +; b9776 + +LoadMirageMailGFX: ; b9776 + push bc + ld hl, VTiles2 tile $31 + ld bc, $28 + call Functionb97f8 + ld de, Unknown_b992e + ld c, $8 + call Functionb9915 + ld de, MailMewGFX + ld c, $90 + call Functionb9915 + ld de, Unknown_b9dce + ld c, $8 + call Functionb990c + ld de, Unknown_b9df6 + ld c, $8 + call Functionb990c + call Functionb987b + ld a, $36 + hlcoord 1, 16 + call Functionb98d8 + inc a + hlcoord 15, 14 + call Functionb98fc + inc a + hlcoord 15, 16 + ld [hli], a + inc a + ld [hl], a + ld a, $3f + hlcoord 1, 1 + call Functionb98a8 + ld a, $41 + hlcoord 0, 2 + call Functionb98b5 + ld a, $43 + hlcoord 19, 2 + call Functionb98b5 + ld a, $45 + hlcoord 0, 1 + ld [hl], a + inc a + hlcoord 19, 1 + ld [hl], a + inc a + hlcoord 0, 16 + ld [hl], a + inc a + hlcoord 19, 16 + ld [hl], a + inc a + hlcoord 2, 5 + call Functionb98d4 + inc a + hlcoord 2, 11 + call Functionb98d4 + pop hl + jp Functionb9803 +; b97f8 + +Functionb97f8: ; b97f8 +.asm_b97f8 + xor a + ld [hli], a + ld a, $ff + ld [hli], a + dec bc + ld a, b + or c + jr nz, .asm_b97f8 + ret +; b9803 + +Functionb9803: ; b9803 + ld bc, $2f + ld de, wd002 + ld a, $0 + call GetSRAMBank + call CopyBytes + call CloseSRAM + ld hl, wd023 + ld de, wd050 + ld bc, $a + call CopyBytes + ld a, $50 + ld [wd023], a + ld [wd05a], a + ld de, wd002 + hlcoord 2, 7 + call PlaceString + ld de, wd050 + ld a, [de] + and a + ret z + ld a, [wd1ec] + hlcoord 8, 14 + cp $3 + jr z, .asm_b984b + hlcoord 6, 14 + cp $6 + jr z, .asm_b984b + hlcoord 5, 14 + +.asm_b984b + jp PlaceString +; b984e + +Functionb984e: ; b984e +.asm_b984e + ld a, [hl] + xor $ff + ld [hli], a + dec bc + ld a, b + or c + jr nz, .asm_b984e + ret +; b9858 + +Functionb9858: ; b9858 + hlcoord 0, 0 + ld a, $31 + ld [hli], a + inc a + call Functionb98d8 + inc a + ld [hli], a + inc a + call Functionb98e3 + ld a, $36 + ld [hli], a + inc a + call Functionb98d8 + hlcoord 19, 1 + ld a, $35 + call Functionb98e3 + ld a, $38 + ld [hl], a + ret +; b987b + +Functionb987b: ; b987b + hlcoord 0, 0 + ld a, $31 + ld [hli], a + inc a + call Functionb98d8 + ld [hl], $31 + inc hl + inc a + call Functionb98e3 + ld [hl], $31 + inc hl + inc a + call Functionb98d8 + hlcoord 19, 1 + ld a, $35 + call Functionb98e3 + ld [hl], $31 + ret +; b989e + +Functionb989e: ; b989e + push af + ld b, $7 + jr Functionb98ab + +Functionb98a3: ; b98a3 + push af + ld b, $8 + jr Functionb98ab + +Functionb98a8: ; b98a8 + push af + ld b, $9 + +Functionb98ab: ; b98ab + ld [hli], a + inc a + ld [hli], a + dec a + dec b + jr nz, Functionb98ab + ld [hl], a + pop af + ret +; b98b5 + +Functionb98b5: ; b98b5 + push af + ld b, $7 + jr Functionb98bd + +Functionb98ba: ; b98ba + push af + ld b, $8 + +Functionb98bd: ; b98bd + ld [hl], a + ld de, SCREEN_WIDTH + add hl, de + inc a + ld [hl], a + add hl, de + dec a + dec b + jr nz, Functionb98bd + ld [hl], a + pop af + ret +; b98cc + +Functionb98cc: ; b98cc + ld b, $7 + jr Functionb98de + +Functionb98d0: ; b98d0 + ld b, $d + jr Functionb98de + +Functionb98d4: ; b98d4 + ld b, $10 + jr Functionb98de + +Functionb98d8: ; b98d8 + ld b, $12 + jr Functionb98de + +Functionb98dc: ; b98dc + ld b, $14 + +Functionb98de: ; b98de + ld [hli], a + dec b + jr nz, Functionb98de + ret +; b98e3 + +Functionb98e3: ; b98e3 + ld b, $10 + ld de, SCREEN_WIDTH +.asm_b98e8 + ld [hl], a + add hl, de + dec b + jr nz, .asm_b98e8 + ret +; b98ee + +Functionb98ee: ; b98ee + push af + ld [hli], a + inc a + ld [hl], a + ld bc, $13 + add hl, bc + inc a + ld [hli], a + inc a + ld [hl], a + pop af + ret +; b98fc + +Functionb98fc: ; b98fc + ld [hli], a + inc a + ld [hli], a + inc a + ld [hl], a + ld bc, SCREEN_HEIGHT + add hl, bc + inc a + ld [hli], a + inc a + ld [hli], a + inc a + ld [hl], a + ret +; b990c + +Functionb990c: ; b990c +.asm_b990c + ld a, [de] + inc de + ld [hli], a + xor a + ld [hli], a + dec c + jr nz, .asm_b990c + ret +; b9915 + +Functionb9915: ; b9915 +.asm_b9915 + xor a + ld [hli], a + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .asm_b9915 + ret +; b991e + +Functionb991e: ; b991e +.asm_b991e + ld a, [de] + inc de +rept 2 + ld [hli], a +endr + dec c + jr nz, .asm_b991e + ret +; b9926 + +Unknown_b9926: ; b9926 +INCBIN "gfx/unknown/0b9926.1bpp" + +Unknown_b992e: ; b992e +INCBIN "gfx/unknown/0b992e.1bpp" + +Unknown_b9936: ; b9936 +INCBIN "gfx/unknown/0b9936.1bpp" + +Unknown_b993e: ; b993e +INCBIN "gfx/unknown/0b993e.1bpp" + +Unknown_b9946: ; b9946 +INCBIN "gfx/unknown/0b9946.1bpp" + +Unknown_b994e: ; b994e +INCBIN "gfx/unknown/0b994e.1bpp" + +Unknown_b995e: ; b995e +INCBIN "gfx/unknown/0b995e.1bpp" + +Unknown_b9966: ; b9966 +INCBIN "gfx/unknown/0b9966.1bpp" + +Unknown_b996e: ; b996e +INCBIN "gfx/unknown/0b996e.1bpp" + +Unknown_b9976: ; b9976 +INCBIN "gfx/unknown/0b9976.1bpp" + +Unknown_b997e: ; b997e +INCBIN "gfx/unknown/0b997e.1bpp" + +Unknown_b998e: ; b998e +INCBIN "gfx/unknown/0b998e.1bpp" + +Unknown_b9996: ; b9996 +INCBIN "gfx/unknown/0b9996.1bpp" + +MailDratiniGFX: ; b99c6 +INCBIN "gfx/unknown/0b99c6.1bpp" + +MailPoliwagGFX: ; b99f6 +INCBIN "gfx/unknown/0b99f6.1bpp" + +MailLaprasGFX: ; b9a26 +INCBIN "gfx/unknown/0b9a26.1bpp" + +MailPikaGFX: ; b9a56 +INCBIN "gfx/unknown/0b9a56.1bpp" + +MailDittoGFX: ; b9a86 +INCBIN "gfx/unknown/0b9a86.1bpp" + +MailMewGFX: ; b9ab6 +INCBIN "gfx/unknown/0b9ab6.1bpp" + +MailDragoniteGFX: ; b9b46 +INCBIN "gfx/unknown/0b9b46.1bpp" + +MailSentretGFX: ; b9bce +INCBIN "gfx/unknown/0b9bce.1bpp" + +Unknown_b9bee: ; b9bee +INCBIN "gfx/unknown/0b9bee.1bpp" + +Unknown_b9bfe: ; b9bfe +INCBIN "gfx/unknown/0b9bfe.1bpp" + +MailOddishGFX: ; b9c1e +INCBIN "gfx/unknown/0b9c1e.1bpp" + +Unknown_b9c3e: ; b9c3e +INCBIN "gfx/unknown/0b9c3e.1bpp" + +Unknown_b9c5e: ; b9c5e +INCBIN "gfx/unknown/0b9c5e.1bpp" + +Unknown_b9c7e: ; b9c7e +INCBIN "gfx/unknown/0b9c7e.1bpp" + +Unknown_b9c96: ; b9c96 +INCBIN "gfx/unknown/0b9c96.1bpp" + +Unknown_b9c9e: ; b9c9e +INCBIN "gfx/unknown/0b9c9e.1bpp" + +Unknown_b9cbe: ; b9cbe +INCBIN "gfx/unknown/0b9cbe.1bpp" + +Unknown_b9cde: ; b9cde +INCBIN "gfx/unknown/0b9cde.1bpp" + +Unknown_b9cfe: ; b9cfe +INCBIN "gfx/unknown/0b9cfe.1bpp" + +MailCloudGFX: ; b9d16 +INCBIN "gfx/unknown/0b9d16.1bpp" + +Unknown_b9d26: ; b9d26 +INCBIN "gfx/unknown/0b9d26.1bpp" + +Unknown_b9d3e: ; b9d3e +INCBIN "gfx/unknown/0b9d3e.1bpp" + +Unknown_b9d46: ; b9d46 +INCBIN "gfx/unknown/0b9d46.1bpp" + +Unknown_b9d76: ; b9d76 +INCBIN "gfx/unknown/0b9d76.1bpp" + +Unknown_b9d86: ; b9d86 +INCBIN "gfx/unknown/0b9d86.1bpp" + +Unknown_b9db6: ; b9db6 +INCBIN "gfx/unknown/0b9db6.1bpp" + +Unknown_b9dc6: ; b9dc6 +INCBIN "gfx/unknown/0b9dc6.1bpp" + +Unknown_b9dce: ; b9dce +INCBIN "gfx/unknown/0b9dce.1bpp" + +Unknown_b9df6: ; b9df6 +INCBIN "gfx/unknown/0b9df6.1bpp" + +Unknown_b9e06: ; b9e06 +INCBIN "gfx/unknown/0b9e06.1bpp" + +Unknown_b9e26: ; b9e26 +INCBIN "gfx/unknown/0b9e26.1bpp" + +Unknown_b9e4e: ; b9e4e +INCBIN "gfx/unknown/0b9e4e.1bpp" + + +ItemIsMail: ; b9e76 + ld a, d + ld hl, .items + ld de, 1 + jp IsInArray +; b9e80 + +.items + db FLOWER_MAIL + db SURF_MAIL + db LITEBLUEMAIL + db PORTRAITMAIL + db LOVELY_MAIL + db EON_MAIL + db MORPH_MAIL + db BLUESKY_MAIL + db MUSIC_MAIL + db MIRAGE_MAIL + db $ff +; b9e8b diff --git a/home/map.asm b/home/map.asm index b9b27168e..193f58bc6 100644 --- a/home/map.asm +++ b/home/map.asm @@ -1588,7 +1588,7 @@ Function28f7:: ; 28f7 ret ; 2914 -Function2914:: ; 2914 +GetMovementPermissions:: ; 2914 xor a ld [TilePermissions], a call GetLeftRightCollision diff --git a/main.asm b/main.asm index 7414d769a..0c2625399 100644 --- a/main.asm +++ b/main.asm @@ -4839,7 +4839,7 @@ CutDownTreeOrGrass: ; c810 ld e, a callba OWCutAnimation call BufferScreen - call Function2914 + call GetMovementPermissions call UpdateSprites call DelayFrame call LoadStandardFont @@ -5952,7 +5952,7 @@ DisappearWhirlpool: ; ce1d ld e, a callba PlayWhirlpoolSound call BufferScreen - call Function2914 + call GetMovementPermissions ret ; ce3e @@ -7350,7 +7350,7 @@ Functiond4e5: ; d4e5 (3:54e5) ret Jumptable_d4f2: ; d4f2 (3:54f2) - dw Function2914 + dw GetMovementPermissions dw BufferScreen dw .mobile dw .fail2 @@ -18307,7 +18307,7 @@ Function4aa7a: ; 4aa7a push hl cp -1 jr z, .done - ld hl, wc314 + ld hl, wSpriteAnimationStructs inc a ld d, a .inner_loop @@ -24674,3901 +24674,23 @@ Function80422:: ; 80422 -EngineFlagAction:: ; 80430 -; Do action b on engine flag de -; -; b = 0: reset flag -; = 1: set flag -; > 1: check flag, result in c -; -; Setting/resetting does not return a result. - - -; 16-bit flag ids are considered invalid, but it's nice -; to know that the infrastructure is there. - - ld a, d - cp 0 - jr z, .ceiling - jr c, .read ; cp 0 can't set carry! - jr .invalid - -; There are only $a2 engine flags, so -; anything beyond that is invalid too. - -.ceiling - ld a, e - cp NUM_ENGINE_FLAGS - jr c, .read - -; Invalid flags are treated as flag 00. - -.invalid - xor a - ld e, a - ld d, a - -; Get this flag's location. - -.read - ld hl, EngineFlags -; location -rept 2 - add hl, de -endr -; bit - add hl, de - -; location - ld e, [hl] - inc hl - ld d, [hl] - inc hl -; bit - ld c, [hl] - -; What are we doing with this flag? - - ld a, b - cp 1 - jr c, .reset ; b = 0 - jr z, .set ; b = 1 - -; Return the given flag in c. -.check - ld a, [de] - and c - ld c, a - ret - -; Set the given flag. -.set - ld a, [de] - or c - ld [de], a - ret - -; Reset the given flag. -.reset - ld a, c - cpl ; AND all bits except the one in question - ld c, a - ld a, [de] - and c - ld [de], a - ret -; 80462 - - -EngineFlags: ; 80462 INCLUDE "engine/engine_flags.asm" ; 80648 - - -_GetVarAction:: ; 80648 (20:4648) - ld a, c - cp NUM_VARS - jr c, .valid - xor a -.valid - ld c, a - ld b, 0 - ld hl, .VarActionTable -rept 3 - add hl, bc -endr - ld e, [hl] - inc hl - ld d, [hl] - inc hl - ld b, [hl] - ld a, b - and RETVAR_EXECUTE - jr nz, .call - ld a, b - and RETVAR_ADDR_DE - ret nz - ld a, [de] - jr .loadstringbuffer2 - -.call - call _de_ - ret - -.loadstringbuffer2: ; 8066c (20:466c) - ld de, StringBuffer2 - ld [de], a - ret -; 80671 (20:4671) - -.VarActionTable: ; 80671 -; $00: copy [de] to StringBuffer2 -; $40: return address in de -; $80: call function - dwb StringBuffer2, RETVAR_STRBUF2 - dwb PartyCount, RETVAR_STRBUF2 - dwb .BattleResult, RETVAR_EXECUTE - dwb BattleType, RETVAR_ADDR_DE - dwb TimeOfDay, RETVAR_STRBUF2 - dwb .CountCaughtMons, RETVAR_EXECUTE - dwb .CountSeenMons, RETVAR_EXECUTE - dwb .CountBadges, RETVAR_EXECUTE - dwb PlayerState, RETVAR_ADDR_DE - dwb .PlayerFacing, RETVAR_EXECUTE - dwb hHours, RETVAR_STRBUF2 - dwb .DayOfWeek, RETVAR_EXECUTE - dwb MapGroup, RETVAR_STRBUF2 - dwb MapNumber, RETVAR_STRBUF2 - dwb .UnownCaught, RETVAR_EXECUTE - dwb wPermission, RETVAR_STRBUF2 - dwb .BoxFreeSpace, RETVAR_EXECUTE - dwb wBugContestMinsRemaining, RETVAR_STRBUF2 - dwb XCoord, RETVAR_STRBUF2 - dwb YCoord, RETVAR_STRBUF2 - dwb wSpecialPhoneCallID, RETVAR_STRBUF2 - dwb wcf64, RETVAR_STRBUF2 - dwb wKurtApricornQuantity, RETVAR_STRBUF2 - dwb wCurrentCaller, RETVAR_ADDR_DE - dwb wBlueCardBalance, RETVAR_ADDR_DE - dwb wBuenasPassword, RETVAR_ADDR_DE - dwb wdc58, RETVAR_STRBUF2 - dwb NULL, RETVAR_STRBUF2 -; 806c5 - -.CountCaughtMons: ; 806c5 -; Caught mons. - ld hl, PokedexCaught - ld b, EndPokedexCaught - PokedexCaught - call CountSetBits - ld a, [wd265] - jp .loadstringbuffer2 -; 806d3 - -.CountSeenMons: ; 806d3 -; Seen mons. - ld hl, PokedexSeen - ld b, EndPokedexSeen - PokedexSeen - call CountSetBits - ld a, [wd265] - jp .loadstringbuffer2 -; 806e1 - -.CountBadges: ; 806e1 -; Number of owned badges. - ld hl, Badges - ld b, 2 - call CountSetBits - ld a, [wd265] - jp .loadstringbuffer2 -; 806ef - -.PlayerFacing: ; 806ef -; The direction the player is facing. - ld a, [PlayerDirection] - and $c - rrca - rrca - jp .loadstringbuffer2 -; 806f9 - -.DayOfWeek: ; 806f9 -; The day of the week. - call GetWeekday - jp .loadstringbuffer2 -; 806ff - -.UnownCaught: ; 806ff -; Number of unique Unown caught. - call .count - ld a, b - jp .loadstringbuffer2 - -.count - ld hl, UnownDex - ld b, 0 -.loop - ld a, [hli] - and a - ret z - inc b - ld a, b - cp 26 - jr c, .loop - ret -; 80715 - -.BoxFreeSpace: ; 80715 -; Remaining slots in the current box. - ld a, BANK(sBoxCount) - call GetSRAMBank - ld hl, sBoxCount - ld a, MONS_PER_BOX - sub [hl] - ld b, a - call CloseSRAM - ld a, b - jp .loadstringbuffer2 -; 80728 - -.BattleResult: ; 80728 - ld a, [wBattleResult] - and $3f - jp .loadstringbuffer2 -; 80730 - +INCLUDE "engine/variables.asm" BattleText:: INCLUDE "text/battle.asm" - -ColorTest: ; 818ac -; A debug menu to test monster and trainer palettes at runtime. - - ld a, [hCGB] - and a - jr nz, .asm_818b5 - ld a, [hSGB] - and a - ret z - -.asm_818b5 - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - call DisableLCD - call Function81948 - call Function8197c - call Function819a7 - call Function818f4 - call EnableLCD - ld de, MUSIC_NONE - call PlayMusic - xor a - ld [wJumptableIndex], a - ld [wcf66], a - ld [wd003], a -.asm_818de - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_818f0 - call Function81a74 - call Function81f5e - call DelayFrame - jr .asm_818de - -.asm_818f0 - pop af - ld [hInMenu], a - ret -; 818f4 - -Function818f4: ; 818f4 - ld a, [wd002] - and a - jr nz, Function81911 - ld hl, PokemonPalettes - -Function818fd: ; 818fd - ld de, OverworldMap - ld c, NUM_POKEMON + 1 -.asm_81902 - push bc - push hl - call Function81928 - pop hl - ld bc, 8 - add hl, bc - pop bc - dec c - jr nz, .asm_81902 - ret - -Function81911: ; 81911 - ld hl, TrainerPalettes - ld de, OverworldMap - ld c, NUM_TRAINER_CLASSES -.asm_81919 - push bc - push hl - call Function81928 - pop hl - ld bc, 4 - add hl, bc - pop bc - dec c - jr nz, .asm_81919 - ret -; 81928 - -Function81928: ; 81928 - ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes) - call GetFarByte - ld [de], a - inc de - inc hl - ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes) - call GetFarByte - ld [de], a - inc de - inc hl - ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes) - call GetFarByte - ld [de], a - inc de - inc hl - ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes) - call GetFarByte - ld [de], a - inc de - ret -; 81948 - -Function81948: ; 81948 - ld a, $1 - ld [rVBK], a - ld hl, VTiles0 - ld bc, sScratch - VTiles0 - xor a - call ByteFill - ld a, $0 - ld [rVBK], a - ld hl, VTiles0 - ld bc, sScratch - VTiles0 - xor a - call ByteFill - hlcoord 0, 0, AttrMap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - xor a - call ByteFill - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - xor a - call ByteFill - call ClearSprites - ret -; 8197c - -Function8197c: ; 8197c - ld hl, DebugColorTestGFX + $10 - ld de, VTiles2 tile $6a - ld bc, $160 - call CopyBytes - ld hl, DebugColorTestGFX - ld de, VTiles0 - ld bc, $10 - call CopyBytes - call LoadStandardFont - ld hl, VTiles1 - lb bc, 8, 0 -.asm_8199d - ld a, [hl] - xor $ff - ld [hli], a - dec bc - ld a, c - or b - jr nz, .asm_8199d - ret -; 819a7 - -Function819a7: ; 819a7 - ld a, [hCGB] - and a - ret z - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_819f4 - ld de, BGPals - ld bc, $80 - call CopyBytes - ld a, $80 - ld [rBGPI], a - ld hl, Palette_819f4 - ld c, $40 - xor a -.asm_819c8 - ld [rBGPD], a - dec c - jr nz, .asm_819c8 - ld a, $80 - ld [rOBPI], a - ld hl, Palette_81a34 - ld c, $40 -.asm_819d6 - ld a, [hli] - ld [rOBPD], a - dec c - jr nz, .asm_819d6 - ld a, $94 - ld [wc608], a - ld a, $52 - ld [wc608 + 1], a - ld a, $4a - ld [wc608 + 2], a - ld a, $29 - ld [wc608 + 3], a - pop af - ld [rSVBK], a - ret -; 819f4 - -Palette_819f4: ; 819f4 - ; white - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 - - ; red - RGB 31, 00, 00 - RGB 31, 00, 00 - RGB 31, 00, 00 - RGB 00, 00, 00 - - ; green - RGB 00, 31, 00 - RGB 00, 31, 00 - RGB 00, 31, 00 - RGB 00, 00, 00 - - ; blue - RGB 00, 00, 31 - RGB 00, 00, 31 - RGB 00, 00, 31 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 - -Palette_81a34: ; 81a34 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 - - ; red - RGB 31, 31, 31 - RGB 31, 00, 00 - RGB 31, 00, 00 - RGB 00, 00, 00 - - ; green - RGB 31, 31, 31 - RGB 00, 31, 00 - RGB 00, 31, 00 - RGB 00, 00, 00 - - ; blue - RGB 31, 31, 31 - RGB 00, 00, 31 - RGB 00, 00, 31 - RGB 00, 00, 00 -; 81a74 - -Function81a74: ; 81a74 - call JoyTextDelay - ld a, [wJumptableIndex] - cp $4 - jr nc, .asm_81a8b - ld hl, hJoyLast - ld a, [hl] - and SELECT - jr nz, .asm_81a9a - ld a, [hl] - and START - jr nz, .asm_81aab - -.asm_81a8b - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_81acf -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -.asm_81a9a - call Function81eca - call Function81ac3 - ld e, a - ld a, [wcf66] - inc a - cp e - jr c, .asm_81aba - xor a - jr .asm_81aba - -.asm_81aab - call Function81eca - ld a, [wcf66] - dec a - cp $ff - jr nz, .asm_81aba - call Function81ac3 - dec a - -.asm_81aba - ld [wcf66], a - ld a, $0 - ld [wJumptableIndex], a - ret -; 81ac3 - -Function81ac3: ; 81ac3 -; Looping back around the pic set. - ld a, [wd002] - and a - jr nz, .asm_81acc - ld a, NUM_POKEMON ; CELEBI - ret - -.asm_81acc - ld a, NUM_TRAINER_CLASSES - 1 ; MYSTICALMAN - ret -; 81acf - -Jumptable_81acf: ; 81acf - dw Function81adb - dw Function81c18 - dw Function81c33 - dw Function81cc2 - dw Function81d8e - dw Function81daf -; 81adb - -Function81adb: ; 81adb - xor a - ld [hBGMapMode], a - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, $6f - call ByteFill - hlcoord 1, 3 - lb bc, 7, 18 - ld a, $6c - call Bank20_FillBoxWithByte - hlcoord 11, 0 - lb bc, 2, 3 - ld a, $6d - call Bank20_FillBoxWithByte - hlcoord 16, 0 - lb bc, 2, 3 - ld a, $6e - call Bank20_FillBoxWithByte - call Function81bc0 - call Function81bf4 - ld a, [wcf66] - inc a - ld [CurPartySpecies], a - ld [wd265], a - hlcoord 0, 1 - ld de, wd265 - lb bc, PRINTNUM_LEADINGZEROS | 1, 3 - call PrintNum - ld a, [wd002] - and a - jr nz, .asm_81b7a - ld a, $1 - ld [UnownLetter], a - call GetPokemonName - hlcoord 4, 1 - call PlaceString - xor a - ld [wc2c6], a - hlcoord 12, 3 - call _PrepMonFrontpic - ld de, VTiles2 tile $31 - predef GetBackpic - ld a, $31 - ld [hFillBox], a - hlcoord 2, 4 - lb bc, 6, 6 - predef FillBox - ld a, [wd003] - and a - jr z, .asm_81b66 - ld de, String_81baf - jr .asm_81b69 - -.asm_81b66 - ld de, String_81bb4 - -.asm_81b69 - hlcoord 7, 17 - call PlaceString - hlcoord 0, 17 - ld de, String_81bb9 - call PlaceString - jr .asm_81ba9 - -.asm_81b7a - ld a, [wd265] - ld [TrainerClass], a - callab Function3957b - ld de, StringBuffer1 - hlcoord 4, 1 - call PlaceString - ld de, VTiles2 - callab GetTrainerPic - xor a - ld [TempEnemyMonSpecies], a - ld [hFillBox], a - hlcoord 2, 3 - lb bc, 7, 7 - predef FillBox - -.asm_81ba9 - ld a, $1 - ld [wJumptableIndex], a - ret -; 81baf - -String_81baf: db "レア", $6f, $6f, "@" ; rare (shiny) -String_81bb4: db "ノーマル@" ; normal -String_81bb9: db $7a, "きりかえ▶@" ; (A) switches -; 81bc0 - -Function81bc0: ; 81bc0 - decoord 0, 11, AttrMap - hlcoord 2, 11 - ld a, $1 - call Function81bde - decoord 0, 13, AttrMap - hlcoord 2, 13 - ld a, $2 - call Function81bde - decoord 0, 15, AttrMap - hlcoord 2, 15 - ld a, $3 - -Function81bde: ; 81bde - push af - ld a, $6a - ld [hli], a - ld bc, $f - ld a, $6b - call ByteFill - ld l, e - ld h, d - pop af - ld bc, $28 - call ByteFill - ret -; 81bf4 - -Function81bf4: ; 81bf4 - ld a, [wcf66] - inc a - ld l, a - ld h, $0 -rept 2 - add hl, hl -endr - ld de, OverworldMap - add hl, de - ld de, wc608 - ld bc, 4 - call CopyBytes - xor a - ld [wcf64], a - ld [wcf65], a - ld de, wc608 - call Function81ea5 - ret -; 81c18 - -Function81c18: ; 81c18 - ld a, [hCGB] - and a - jr z, .asm_81c2a - ld a, $2 - ld [hBGMapMode], a - call DelayFrame - call DelayFrame - call DelayFrame - -.asm_81c2a - call WaitBGMap - ld a, $2 - ld [wJumptableIndex], a - ret -; 81c33 - -Function81c33: ; 81c33 - ld a, [hCGB] - and a - jr z, .asm_81c69 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, BGPals - ld de, wc608 - ld c, $1 - call Function81ee3 - hlcoord 10, 2 - ld de, wc608 - call Function81ca7 - hlcoord 15, 2 - ld de, wc608 + 2 - call Function81ca7 - ld a, $1 - ld [hCGBPalUpdate], a - ld a, $3 - ld [wJumptableIndex], a - pop af - ld [rSVBK], a - ret - -.asm_81c69 - ld hl, wcda9 - ld a, $1 - ld [hli], a - ld a, $ff - ld [hli], a - ld a, $7f - ld [hli], a - ld a, [wc608] - ld [hli], a - ld a, [wc608 + 1] - ld [hli], a - ld a, [wc608 + 2] - ld [hli], a - ld a, [wc608 + 3] - ld [hli], a - xor a -rept 2 - ld [hli], a -endr - ld [hl], a - ld hl, wcda9 - call Function81f0c - hlcoord 10, 2 - ld de, wc608 - call Function81ca7 - hlcoord 15, 2 - ld de, wc608 + 2 - call Function81ca7 - ld a, $3 - ld [wJumptableIndex], a - ret -; 81ca7 - -Function81ca7: ; 81ca7 -rept 3 - inc hl -endr - ld a, [de] - call Function81cbc - ld a, [de] - swap a - call Function81cbc - inc de - ld a, [de] - call Function81cbc - ld a, [de] - swap a - -Function81cbc: ; 81cbc - and $f - add $70 - ld [hld], a - ret -; 81cc2 - -Function81cc2: ; 81cc2 - ld a, [hJoyLast] - and B_BUTTON - jr nz, .asm_81cdf - ld a, [hJoyLast] - and A_BUTTON - jr nz, .asm_81ce5 - ld a, [wcf64] - and $3 - ld e, a - ld d, 0 - ld hl, Jumptable_81d02 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -.asm_81cdf - ld a, $4 - ld [wJumptableIndex], a - ret - -.asm_81ce5 - ld a, [wd002] - and a - ret nz - ld a, [wd003] - xor $4 - ld [wd003], a - ld c, a - ld b, 0 - ld hl, PokemonPalettes - add hl, bc - call Function818fd - ld a, $0 - ld [wJumptableIndex], a - ret -; 81d02 - -Jumptable_81d02: ; 81d02 - dw Function81d0a - dw Function81d34 - dw Function81d46 - dw Function81d58 -; 81d0a - -Function81d0a: ; 81d0a - ld hl, hJoyLast - ld a, [hl] - and D_DOWN - jr nz, Function81d89 - ld a, [hl] - and D_LEFT - jr nz, .asm_81d1d - ld a, [hl] - and D_RIGHT - jr nz, .asm_81d28 - ret - -.asm_81d1d - xor a - ld [wcf65], a - ld de, wc608 - call Function81ea5 - ret - -.asm_81d28 - ld a, $1 - ld [wcf65], a - ld de, wc608 + 2 - call Function81ea5 - ret - -Function81d34: ; 81d34 - ld hl, hJoyLast - ld a, [hl] - and D_DOWN - jr nz, Function81d89 - ld a, [hl] - and D_UP - jr nz, Function81d84 - ld hl, wc608 + 10 - jr Function81d63 - -Function81d46: ; 81d46 - ld hl, hJoyLast - ld a, [hl] - and D_DOWN - jr nz, Function81d89 - ld a, [hl] - and D_UP - jr nz, Function81d84 - ld hl, wc608 + 11 - jr Function81d63 - -Function81d58: ; 81d58 - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, Function81d84 - ld hl, wc608 + 12 - -Function81d63: ; 81d63 - ld a, [hJoyLast] - and D_RIGHT - jr nz, Function81d70 - ld a, [hJoyLast] - and D_LEFT - jr nz, Function81d77 - ret - -Function81d70: ; 81d70 - ld a, [hl] - cp $1f - ret nc - inc [hl] - jr Function81d7b - -Function81d77: ; 81d77 - ld a, [hl] - and a - ret z - dec [hl] - -Function81d7b: ; 81d7b - call Function81e67 - ld a, $2 - ld [wJumptableIndex], a - ret - -Function81d84: ; 81d84 - ld hl, wcf64 - dec [hl] - ret - -Function81d89: ; 81d89 - ld hl, wcf64 - inc [hl] - ret -; 81d8e - -Function81d8e: ; 81d8e - hlcoord 0, 10 - ld bc, $a0 - ld a, $6f - call ByteFill - hlcoord 2, 12 - ld de, String_81fcd - call PlaceString - xor a - ld [wd004], a - call Function81df4 - ld a, $5 - ld [wJumptableIndex], a - ret -; 81daf - -Function81daf: ; 81daf - ld hl, hJoyPressed - ld a, [hl] - and B_BUTTON - jr nz, .asm_81dbb - call Function81dc7 - ret - -.asm_81dbb - ld a, $0 - ld [wJumptableIndex], a - ret -; 81dc1 - -Function81dc1: ; 81dc1 - ld hl, wJumptableIndex - set 7, [hl] - ret -; 81dc7 - -Function81dc7: ; 81dc7 - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .asm_81dd5 - ld a, [hl] - and D_DOWN - jr nz, .asm_81de2 - ret - -.asm_81dd5 - ld a, [wd004] - cp $3b - jr z, .asm_81ddf - inc a - jr .asm_81ded - -.asm_81ddf - xor a - jr .asm_81ded - -.asm_81de2 - ld a, [wd004] - and a - jr z, .asm_81deb - dec a - jr .asm_81ded - -.asm_81deb - ld a, $3b - -.asm_81ded - ld [wd004], a - call Function81df4 - ret -; 81df4 - -Function81df4: ; 81df4 - hlcoord 10, 11 - call Function81e5e - hlcoord 10, 12 - call Function81e5e - hlcoord 10, 13 - call Function81e5e - hlcoord 10, 14 - call Function81e5e - ld a, [wd004] - inc a - ld [wd265], a - predef GetTMHMMove - ld a, [wd265] - ld [wd262], a - call GetMoveName - hlcoord 10, 12 - call PlaceString - ld a, [wd004] - call Function81e55 - ld [CurItem], a - predef CanLearnTMHMMove - ld a, c - and a - ld de, String_81e46 - jr nz, .asm_81e3f - ld de, String_81e4d - -.asm_81e3f - hlcoord 10, 14 - call PlaceString - ret -; 81e46 - -String_81e46: db "おぼえられる@" ; can be taught -String_81e4d: db "おぼえられない@" ; cannot be taught -; 81e55 - -Function81e55: ; 81e55 - cp $32 - jr c, .asm_81e5b -rept 2 - inc a -endr - -.asm_81e5b - add $bf - ret -; 81e5e - -Function81e5e: ; 81e5e - ld bc, $a - ld a, $6f - call ByteFill - ret -; 81e67 - -Function81e67: ; 81e67 - ld a, [wc608 + 10] - and $1f - ld e, a - ld a, [wc608 + 11] - and $7 - sla a - swap a - or e - ld e, a - ld a, [wc608 + 11] - and $18 - sla a - swap a - ld d, a - ld a, [wc608 + 12] - and $1f - sla a - sla a - or d - ld d, a - ld a, [wcf65] - and a - jr z, .asm_81e9c - ld a, e - ld [wc608 + 2], a - ld a, d - ld [wc608 + 3], a - ret - -.asm_81e9c - ld a, e - ld [wc608], a - ld a, d - ld [wc608 + 1], a - ret -; 81ea5 - -Function81ea5: ; 81ea5 - ld a, [de] - and $1f - ld [wc608 + 10], a - ld a, [de] - and $e0 - swap a - srl a - ld b, a - inc de - ld a, [de] - and $3 - swap a - srl a - or b - ld [wc608 + 11], a - ld a, [de] - and $7c - srl a - srl a - ld [wc608 + 12], a - ret -; 81eca - -Function81eca: ; 81eca - ld a, [wcf66] - inc a - ld l, a - ld h, $0 -rept 2 - add hl, hl -endr - ld de, OverworldMap - add hl, de - ld e, l - ld d, h - ld hl, wc608 - ld bc, 4 - call CopyBytes - ret -; 81ee3 - -Function81ee3: ; 81ee3 -.asm_81ee3 - ld a, $ff - ld [hli], a - ld a, $7f - ld [hli], a - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a - xor a -rept 2 - ld [hli], a -endr - dec c - jr nz, .asm_81ee3 - ret -; 81efc - -Bank20_FillBoxWithByte: ; 81efc -; For some reason, we have another copy of FillBoxWithByte here -.row - push bc - push hl -.col - ld [hli], a - dec c - jr nz, .col - pop hl - ld bc, SCREEN_WIDTH - add hl, bc - pop bc - dec b - jr nz, .row - ret -; 81f0c - -Function81f0c: ; 81f0c - ld a, [wcfbe] - push af - set 7, a - ld [wcfbe], a - call Function81f1d - pop af - ld [wcfbe], a - ret -; 81f1d - -Function81f1d: ; 81f1d - ld a, [hl] - and $7 - ret z - ld b, a -.asm_81f22 - push bc - xor a - ld [rJOYP], a - ld a, $30 - ld [rJOYP], a - ld b, $10 -.asm_81f2c - ld e, $8 - ld a, [hli] - ld d, a -.asm_81f30 - bit 0, d - ld a, $10 - jr nz, .asm_81f38 - ld a, $20 - -.asm_81f38 - ld [rJOYP], a - ld a, $30 - ld [rJOYP], a - rr d - dec e - jr nz, .asm_81f30 - dec b - jr nz, .asm_81f2c - ld a, $20 - ld [rJOYP], a - ld a, $30 - ld [rJOYP], a - ld de, 7000 -.asm_81f51 - nop - nop - nop - dec de - ld a, d - or e - jr nz, .asm_81f51 - pop bc - dec b - jr nz, .asm_81f22 - ret -; 81f5e - -Function81f5e: ; 81f5e - ld a, $6f - hlcoord 10, 0 - ld [hl], a - hlcoord 15, 0 - ld [hl], a - hlcoord 1, 11 - ld [hl], a - hlcoord 1, 13 - ld [hl], a - hlcoord 1, 15 - ld [hl], a - ld a, [wJumptableIndex] - cp $3 - jr nz, .asm_81fc9 - ld a, [wcf64] - and a - jr z, .asm_81f8d - dec a - hlcoord 1, 11 - ld bc, 2 * SCREEN_WIDTH - call AddNTimes - ld [hl], $ed - -.asm_81f8d - ld a, [wcf65] - and a - jr z, .asm_81f98 - hlcoord 15, 0 - jr .asm_81f9b - -.asm_81f98 - hlcoord 10, 0 - -.asm_81f9b - ld [hl], $ed - ld b, $70 - ld c, $5 - ld hl, Sprites - ld de, wc608 + 10 - call .asm_81fb7 - ld de, wc608 + 11 - call .asm_81fb7 - ld de, wc608 + 12 - call .asm_81fb7 - ret - -.asm_81fb7 - ld a, b - ld [hli], a - ld a, [de] -rept 2 - add a -endr - add $18 - ld [hli], a - xor a - ld [hli], a - ld a, c - ld [hli], a - ld a, $10 - add b - ld b, a - inc c - ret - -.asm_81fc9 - call ClearSprites - ret -; 81fcd - -String_81fcd: ; 81fcd - db "おわりますか?" ; Are you finished? - next "はい", $f2, $f2, $f2, $7a ; YES (A) - next "いいえ", $f2, $f2, $7b ; NO (B) - db "@" -; 81fe3 - -DebugColorTestGFX: -INCBIN "gfx/debug/color_test.2bpp" - - -TilesetColorTest: - ret - xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [wcf66], a - ld [hMapAnims], a - call ClearSprites - call OverworldTextModeSwitch - call Function3200 - xor a - ld [hBGMapMode], a - ld de, DebugColorTestGFX + $10 - ld hl, VTiles2 tile $6a - lb bc, BANK(DebugColorTestGFX), $16 - call Request2bpp - ld de, DebugColorTestGFX - ld hl, VTiles1 - lb bc, BANK(DebugColorTestGFX), 1 - call Request2bpp - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, $6f - call ByteFill - hlcoord 0, 0, AttrMap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, $7 - call ByteFill - ld de, $15 - ld a, $6c - call Function821d2 - ld de, $1a - ld a, $6d - call Function821d2 - ld de, $1f - ld a, $6e - call Function821d2 - ld de, $24 - ld a, $6f - call Function821d2 - call Function821f4 - call Function8220f - call Function3200 - ld [wJumptableIndex], a - ld a, $40 - ld [hWY], a - ret -; 821d2 - -Function821d2: ; 821d2 - hlcoord 0, 0 - call Function821de - -Function821d8: ; 821d8 - ld a, [wcf64] - hlcoord 0, 0, AttrMap - -Function821de: ; 821de - add hl, de -rept 4 - ld [hli], a -endr - ld bc, $10 - add hl, bc -rept 4 - ld [hli], a -endr - ld bc, $10 - add hl, bc -rept 4 - ld [hli], a -endr - ret -; 821f4 - -Function821f4: ; 821f4 - hlcoord 2, 4 - call Function82203 - hlcoord 2, 6 - call Function82203 - hlcoord 2, 8 - -Function82203: ; 82203 - ld a, $6a - ld [hli], a - ld bc, $10 - 1 - ld a, $6b - call ByteFill - ret -; 8220f - -Function8220f: ; 8220f - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld a, [wcf64] - ld l, a - ld h, $0 -rept 3 - add hl, hl -endr - ld de, wMapPals - add hl, de - ld de, wc608 - ld bc, 8 - call CopyBytes - ld de, wc608 - call Function81ea5 - pop af - ld [rSVBK], a - ret -; 82236 - - -Function82236: ; 82236 - ld hl, hJoyLast - ld a, [hl] - and SELECT - jr nz, .loop7 - ld a, [hl] - and B_BUTTON - jr nz, .asm_82299 - call Function822f0 - ret - -.loop7 - ld hl, wcf64 - ld a, [hl] - inc a - and $7 - cp $7 - jr nz, .asm_82253 - xor a - -.asm_82253 - ld [hl], a - ld de, $15 - call Function821d8 - ld de, $1a - call Function821d8 - ld de, $1f - call Function821d8 - ld de, $24 - call Function821d8 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, BGPals - ld a, [wcf64] - ld bc, 8 - call AddNTimes - ld de, wc608 - ld bc, 8 - call CopyBytes - pop af - ld [rSVBK], a - ld a, $2 - ld [hBGMapMode], a - ld c, 3 - call DelayFrames - ld a, $1 - ld [hBGMapMode], a - ret - -.asm_82299 - call ClearSprites - ld a, [hWY] - xor $d0 - ld [hWY], a - ret -; 822a3 - -Function822a3: ; 822a3 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, BGPals - ld a, [wcf64] - ld bc, 8 - call AddNTimes - ld e, l - ld d, h - ld hl, wc608 - ld bc, 8 - call CopyBytes - hlcoord 1, 0 - ld de, wc608 - call Function81ca7 - hlcoord 6, 0 - ld de, wc608 + 2 - call Function81ca7 - hlcoord 11, 0 - ld de, wc608 + 4 - call Function81ca7 - hlcoord 16, 0 - ld de, wc608 + 6 - call Function81ca7 - pop af - ld [rSVBK], a - ld a, $1 - ld [hCGBPalUpdate], a - call DelayFrame - ret -; 822f0 - -Function822f0: ; 822f0 - ld a, [wcf65] - and 3 - ld e, a - ld d, 0 - ld hl, .jumptable -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 82301 - -.jumptable: ; 82301 - dw Function82309 - dw Function82339 - dw Function8234b - dw Function8235d -; 82309 - -Function82309: ; 82309 - ld hl, hJoyLast - ld a, [hl] - and D_DOWN - jr nz, Function8238c - ld a, [hl] - and D_LEFT - jr nz, .asm_8231c - ld a, [hl] - and D_RIGHT - jr nz, .asm_82322 - ret - -.asm_8231c - ld a, [wcf66] - dec a - jr .asm_82326 - -.asm_82322 - ld a, [wcf66] - inc a - -.asm_82326 - and $3 - ld [wcf66], a - ld e, a - ld d, $0 - ld hl, wc608 -rept 2 - add hl, de -endr - ld e, l - ld d, h - call Function81ea5 - ret - -Function82339: ; 82338 - ld hl, hJoyLast - ld a, [hl] - and D_DOWN - jr nz, Function8238c - ld a, [hl] - and D_UP - jr nz, Function82387 - ld hl, wc608 + 10 - jr Function82368 - -Function8234b: ; 8234b - ld hl, hJoyLast - ld a, [hl] - and D_DOWN - jr nz, Function8238c - ld a, [hl] - and D_UP - jr nz, Function82387 - ld hl, wc608 + 11 - jr Function82368 - -Function8235d: ; 8235d - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, Function82387 - ld hl, wc608 + 12 - -Function82368: ; 82368 - ld a, [hJoyLast] - and D_RIGHT - jr nz, .asm_82375 - ld a, [hJoyLast] - and D_LEFT - jr nz, .asm_8237c - ret - -.asm_82375 - ld a, [hl] - cp $1f - ret nc - inc [hl] - jr .asm_82380 - -.asm_8237c - ld a, [hl] - and a - ret z - dec [hl] - -.asm_82380 - call Function82391 - call Function822a3 - ret - -Function82387: ; 82387 - ld hl, wcf65 - dec [hl] - ret - -Function8238c: ; 8238c - ld hl, wcf65 - inc [hl] - ret -; 82391 - -Function82391: ; 82391 - ld a, [wc608 + 10] - and $1f - ld e, a - ld a, [wc608 + 11] - and $7 - sla a - swap a - or e - ld e, a - ld a, [wc608 + 11] - and $18 - sla a - swap a - ld d, a - ld a, [wc608 + 12] - and $1f - sla a - sla a - or d - ld d, a - ld a, [wcf66] - ld c, a - ld b, $0 - ld hl, wc608 -rept 2 - add hl, bc -endr - ld a, e - ld [hli], a - ld [hl], d - ret -; 823c6 - -Function823c6: ; 823c6 - ret - -Function823c7: ; 823c7 - ret -; 823c8 - +INCLUDE "engine/debug.asm" SECTION "bank21", ROMX, BANK[$21] -Function84000: ; 84000 - ld hl, OverworldMap - lb bc, 4, 12 - xor a - call Function842ab - xor a - ld [rSB], a - ld [rSC], a - ld [wc2d5], a - ld hl, wc2d4 - set 0, [hl] - ld a, [GBPrinter] - ld [wcbfb], a - xor a - ld [wJumptableIndex], a - ret -; 84022 - -Function84022: ; 84022 - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_84031 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 84031 - - -Jumptable_84031: ; 84031 (21:4031) - dw Function84077 - dw Function84143 - dw Function84120 - dw Function84099 - dw Function84180 - dw Function8412e - dw Function840c5 - dw Function84180 - dw Function84120 - dw Function840de - dw Function84180 - dw Function84120 - dw Function841a1 - dw Function84063 - dw Function8406d - dw Function84120 - dw Function84103 - dw Function84071 - dw Function841b0 - dw Function841b3 - - -Function84059: ; 84059 (21:4059) - ld hl, wJumptableIndex - inc [hl] - ret - -Function8405e: ; 8405e (21:405e) - ld hl, wJumptableIndex - dec [hl] - ret - -Function84063: ; 84063 (21:4063) - xor a - ld [wca89], a - ld hl, wJumptableIndex - set 7, [hl] - ret - -Function8406d: ; 8406d (21:406d) - call Function84059 - ret - -Function84071: ; 84071 (21:4071) - ld a, $1 - ld [wJumptableIndex], a - ret - -Function84077: ; 84077 (21:4077) - call Function841fb - ld hl, Unknown_842b7 - call Function841e2 - xor a - ld [wca8e], a - ld [wca8f], a - ld a, [wcf65] - ld [wca81], a - call Function84059 - call Function841c3 - ld a, $1 - ld [wcbf8], a - ret - -Function84099: ; 84099 (21:4099) - call Function841fb - ld hl, wca81 - ld a, [hl] - and a - jr z, Function840c5 - ld hl, Unknown_842c3 - call Function841e2 - call Function84260 - ld a, $80 - ld [wca8e], a - ld a, $2 - ld [wca8f], a - call Function84219 - call Function84059 - call Function841c3 - ld a, $2 - ld [wcbf8], a - ret - -Function840c5: ; 840c5 (21:40c5) - ld a, $6 - ld [wJumptableIndex], a - ld hl, Unknown_842c9 - call Function841e2 - xor a - ld [wca8e], a - ld [wca8f], a - call Function84059 - call Function841c3 - ret - -Function840de: ; 840de (21:40de) - call Function841fb - ld hl, Unknown_842bd - call Function841e2 - call Function84249 - ld a, $4 - ld [wca8e], a - ld a, $0 - ld [wca8f], a - call Function84219 - call Function84059 - call Function841c3 - ld a, $3 - ld [wcbf8], a - ret - -Function84103: ; 84103 (21:4103) - call Function841fb - ld hl, Unknown_842b7 - call Function841e2 - xor a - ld [wca8e], a - ld [wca8f], a - ld a, [wcf65] - ld [wca81], a - call Function84059 - call Function841c3 - ret - -Function84120: ; 84120 (21:4120) - ld hl, wca8b - inc [hl] - ld a, [hl] - cp $6 - ret c - xor a - ld [hl], a - call Function84059 - ret - -Function8412e: ; 8412e (21:412e) - ld hl, wca8b - inc [hl] - ld a, [hl] - cp $6 - ret c - xor a - ld [hl], a - ld hl, wca81 - dec [hl] - call Function8405e - call Function8405e - ret - -Function84143: ; 84143 (21:4143) - ld a, [wc2d5] - and a - ret nz - ld a, [wca88] - cp $ff - jr nz, .printer_connected - ld a, [wca89] - cp $ff - jr z, .printer_error - -.printer_connected - ld a, [wca88] - cp $81 - jr nz, .printer_error - ld a, [wca89] - cp $0 - jr nz, .printer_error - ld hl, wc2d4 - set 1, [hl] - ld a, $5 - ld [wca8a], a - call Function84059 - ret - -.printer_error - ld a, $ff - ld [wca88], a - ld [wca89], a - ld a, $e - ld [wJumptableIndex], a - ret - -Function84180: ; 84180 (21:4180) - ld a, [wc2d5] - and a - ret nz - ld a, [wca89] - and $f0 - jr nz, .asm_8419b - ld a, [wca89] - and $1 - jr nz, .asm_84197 - call Function84059 - ret -.asm_84197 - call Function8405e - ret -.asm_8419b - ld a, $12 - ld [wJumptableIndex], a - ret - -Function841a1: ; 841a1 (21:41a1) - ld a, [wc2d5] - and a - ret nz - ld a, [wca89] - and $f3 - ret nz - call Function84059 - ret - -Function841b0: ; 841b0 (21:41b0) - call Function84059 - -Function841b3: ; 841b3 (21:41b3) - ld a, [wc2d5] - and a - ret nz - ld a, [wca89] - and $f0 - ret nz - xor a - ld [wJumptableIndex], a - ret - -Function841c3: ; 841c3 (21:41c3) - ld a, [wc2d5] - and a - jr nz, Function841c3 - xor a - ld [wca8c], a - ld [wca8d], a - ld a, $1 - ld [wc2d5], a - ld a, $88 - ld [rSB], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - ret - -Function841e2: ; 841e2 (21:41e2) - ld a, [hli] - ld [wca82], a - ld a, [hli] - ld [wca83], a - ld a, [hli] - ld [wca84], a - ld a, [hli] - ld [wca85], a - ld a, [hli] - ld [wca86], a - ld a, [hl] - ld [wca87], a - ret - -Function841fb: ; 841fb (21:41fb) - xor a - ld hl, wca82 -rept 3 - ld [hli], a -endr - ld [hl], a - ld hl, wca86 - ld [hli], a - ld [hl], a - xor a - ld [wca8e], a - ld [wca8f], a - ld hl, OverworldMap - ld bc, $280 - call Function842ab - ret - -Function84219: ; 84219 (21:4219) - ld hl, 0 - ld bc, $4 - ld de, wca82 - call Function8423c - ld a, [wca8e] - ld c, a - ld a, [wca8f] - ld b, a - ld de, OverworldMap - call Function8423c - ld a, l - ld [wca86], a - ld a, h - ld [wca87], a - ret - -Function8423c: ; 8423c (21:423c) - ld a, [de] - inc de - add l - jr nc, .asm_84242 - inc h -.asm_84242 - ld l, a - dec bc - ld a, c - or b - jr nz, Function8423c - ret - -Function84249: ; 84249 (21:4249) - ld a, $1 - ld [OverworldMap], a - ld a, [wcbfa] - ld [wc801], a - ld a, $e4 - ld [wc802], a - ld a, [wcbfb] - ld [wc803], a - ret - -Function84260: ; 84260 (21:4260) - ld a, [wca81] - xor $ff - ld d, a - ld a, [wcf65] - inc a - add d - ld hl, wca90 - ld de, $28 -.asm_84271 - and a - jr z, .asm_84278 - add hl, de - dec a - jr .asm_84271 -.asm_84278 - ld e, l - ld d, h - ld hl, OverworldMap - ld c, $28 -.asm_8427f - ld a, [de] - inc de - push bc - push de - push hl - swap a - ld d, a - and $f0 - ld e, a - ld a, d - and $f - ld d, a - and $8 - ld a, d - jr nz, .asm_84297 - or $90 - jr .asm_84299 -.asm_84297 - or $80 -.asm_84299 - ld d, a - lb bc, $21, 1 - call Request2bpp - pop hl - ld de, $10 - add hl, de - pop de - pop bc - dec c - jr nz, .asm_8427f - ret - -Function842ab: ; 842ab - push de - ld e, a -.asm_842ad - ld [hl], e - inc hl - dec bc - ld a, c - or b - jr nz, .asm_842ad - ld a, e - pop de - ret -; 842b7 - -Unknown_842b7: db 1, 0, $00, 0, 1, 0 -Unknown_842bd: db 2, 0, $04, 0, 0, 0 -Unknown_842c3: db 4, 0, $80, 2, 0, 0 -Unknown_842c9: db 4, 0, $00, 0, 4, 0 -Unknown_842cf: db 8, 0, $00, 0, 8, 0 ; unused -Unknown_842d5: db 15, 0, $00, 0, 15, 0 ; unused -; 842db - - -Function842db:: ; 842db - ld a, [wc2d5] - add a - ld e, a - ld d, 0 - ld hl, Jumptable_842ea - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 842ea - - -Jumptable_842ea: ; 842ea (21:42ea) - dw Function8432f - dw Function84330 - dw Function84339 - dw Function84343 - dw Function8434d - dw Function84357 - dw Function84361 - dw Function8438b - dw Function84395 - dw Function8439f - dw Function843a8 - dw Function843b6 - dw Function84330 - dw Function843c0 - dw Function843c9 - dw Function843c9 - dw Function843c9 - dw Function843c0 - dw Function843c9 - dw Function8439f - dw Function843a8 - dw Function843e6 - dw Function84330 - dw Function843d2 - dw Function843c9 - dw Function843c9 - dw Function843c9 - dw Function843d2 - dw Function843c9 - dw Function8439f - dw Function843a8 - dw Function843b6 - - -Function8432a: ; 8432a (21:432a) - ld hl, wc2d5 - inc [hl] - ret - -Function8432f: ; 8432f (21:432f) - ret - -Function84330: ; 84330 (21:4330) - ld a, $33 - call Function843db - call Function8432a - ret - -Function84339: ; 84339 (21:4339) - ld a, [wca82] - call Function843db - call Function8432a - ret - -Function84343: ; 84343 (21:4343) - ld a, [wca83] - call Function843db - call Function8432a - ret - -Function8434d: ; 8434d (21:434d) - ld a, [wca84] - call Function843db - call Function8432a - ret - -Function84357: ; 84357 (21:4357) - ld a, [wca85] - call Function843db - call Function8432a - ret - -Function84361: ; 84361 (21:4361) - ld hl, wca8e - ld a, [hli] - ld d, [hl] - ld e, a - or d - jr z, .asm_84388 - dec de - ld [hl], d - dec hl - ld [hl], e - ld a, [wca8c] - ld e, a - ld a, [wca8d] - ld d, a - ld hl, OverworldMap - add hl, de - inc de - ld a, e - ld [wca8c], a - ld a, d - ld [wca8d], a - ld a, [hl] - call Function843db - ret -.asm_84388 - call Function8432a - -Function8438b: ; 8438b (21:438b) - ld a, [wca86] - call Function843db - call Function8432a - ret - -Function84395: ; 84395 (21:4395) - ld a, [wca87] - call Function843db - call Function8432a - ret - -Function8439f: ; 8439f (21:439f) - ld a, $0 - call Function843db - call Function8432a - ret - -Function843a8: ; 843a8 (21:43a8) - ld a, [rSB] - ld [wca88], a - ld a, $0 - call Function843db - call Function8432a - ret - -Function843b6: ; 843b6 (21:43b6) - ld a, [rSB] - ld [wca89], a - xor a - ld [wc2d5], a - ret - -Function843c0: ; 843c0 (21:43c0) - ld a, $f - call Function843db - call Function8432a - ret - -Function843c9: ; 843c9 (21:43c9) - ld a, $0 - call Function843db - call Function8432a - ret - -Function843d2: ; 843d2 (21:43d2) - ld a, $8 - call Function843db - call Function8432a - ret - -Function843db: ; 843db (21:43db) - ld [rSB], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - ret - -Function843e6: ; 843e6 (21:43e6) - ld a, [rSB] - ld [wca89], a - xor a - ld [wc2d5], a - ret - -Function843f0: ; 843f0 -.asm_843f0 - call JoyTextDelay - call Function846f6 - jr c, .asm_8440f - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_8440d - call Function84022 - call Function84757 - call Function84785 - call DelayFrame - jr .asm_843f0 - -.asm_8440d - and a - ret - -.asm_8440f - scf - ret -; 84411 - -Function84411: ; 84411 - xor a - ld [wc2d4], a - ld [wc2d5], a - ret -; 84419 - -Function84419: ; 84419 - push af - call Function84000 - pop af - ld [wcbfa], a - call Function84728 - ret -; 84425 - -Function84425: ; 84425 - call ReturnToMapFromSubmenu - call Function84753 - ret -; 8442c - -Function8442c: ; 8442c - ld a, [wcf65] - push af - ld hl, VTiles1 - ld de, FontInversed - lb bc, BANK(FontInversed), $80 - call Request1bpp - xor a - ld [$ffac], a - call Function8474c - ld a, [rIE] - push af - xor a - ld [rIF], a - ld a, $9 - ld [rIE], a - call Function84000 - ld a, $10 - ld [wcbfa], a - callba Function1dc1b0 - call ClearTileMap - ld a, $e4 - call DmgToCgbBGPals - call DelayFrame - ld hl, hVBlank - ld a, [hl] - push af - ld [hl], $4 - ld a, $8 - ld [wcf65], a - call Function84742 - call Function843f0 - jr c, .asm_8449d - call Function84411 - ld c, 12 - call DelayFrames - xor a - ld [hBGMapMode], a - call Function84000 - ld a, $3 - ld [wcbfa], a - callba Function1dc213 - call Function84742 - ld a, $4 - ld [wcf65], a - call Function843f0 - -.asm_8449d - pop af - ld [hVBlank], a - call Function84411 - xor a - ld [rIF], a - pop af - ld [rIE], a - call Function84425 - ld c, $8 -.asm_844ae - call LowVolume - call DelayFrame - dec c - jr nz, .asm_844ae - pop af - ld [wcf65], a - ret -; 844bc - -Function844bc: ; 844bc (21:44bc) - ld a, [wcf65] - push af - ld a, $9 - ld [wcf65], a - ld a, e - ld [wd004], a - ld a, d - ld [StartFlypoint], a - ld a, b - ld [EndFlypoint], a - ld a, c - ld [MovementBuffer], a - xor a - ld [$ffac], a - ld [wd003], a - call Function8474c - ld a, [rIE] - push af - xor a - ld [rIF], a - ld a, $9 - ld [rIE], a - ld hl, hVBlank - ld a, [hl] - push af - ld [hl], $4 - xor a - ld [hBGMapMode], a - call Function84817 - ld a, $10 - call Function84419 - call Function84559 - jr c, .asm_84545 - call Function84411 - ld c, 12 - call DelayFrames - xor a - ld [hBGMapMode], a - call Function8486f - ld a, $0 - call Function84419 - call Function84559 - jr c, .asm_84545 - call Function84411 - ld c, 12 - call DelayFrames - xor a - ld [hBGMapMode], a - call Function84893 - ld a, $0 - call Function84419 - call Function84559 - jr c, .asm_84545 - call Function84411 - ld c, 12 - call DelayFrames - xor a - ld [hBGMapMode], a - call Function848b7 - ld a, $3 - call Function84419 - call Function84559 -.asm_84545 - pop af - ld [hVBlank], a - call Function84411 - xor a - ld [rIF], a - pop af - ld [rIE], a - call Function84425 - pop af - ld [wcf65], a - ret - -Function84559: ; 84559 (21:4559) - call Function84742 - call Function843f0 - ret - -Function84560: ; 84560 - ld a, [wcf65] - push af - xor a - ld [$ffac], a - call Function8474c - ld a, [rIE] - push af - xor a - ld [rIF], a - ld a, $9 - ld [rIE], a - ld hl, hVBlank - ld a, [hl] - push af - ld [hl], $4 - xor a - ld [hBGMapMode], a - call LoadTileMapToTempTileMap - callba Function16dac - ld a, $0 - call Function84419 - call Call_LoadTempTileMapToTileMap - call Function84742 - ld a, $9 - ld [wcf65], a -.asm_84597 - call JoyTextDelay - call Function846f6 - jr c, .asm_845c0 - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_845c0 - call Function84022 - ld a, [wJumptableIndex] - cp $2 - jr nc, .asm_845b5 - ld a, $3 - ld [wca81], a - -.asm_845b5 - call Function84757 - call Function84785 - call DelayFrame - jr .asm_84597 - -.asm_845c0 - pop af - ld [hVBlank], a - call Function84411 - call Call_LoadTempTileMapToTileMap - xor a - ld [rIF], a - pop af - ld [rIE], a - pop af - ld [wcf65], a - ret -; 845d4 - -Function845d4: ; 845d4 - call Function845db - call Function84425 - ret -; 845db - -Function845db: ; 845db - ld a, [wcf65] - push af - xor a - ld [$ffac], a - call Function8474c - ld a, [rIE] - push af - xor a - ld [rIF], a - ld a, $9 - ld [rIE], a - xor a - ld [hBGMapMode], a - ld a, $13 - call Function84419 - ld hl, hVBlank - ld a, [hl] - push af - ld [hl], $4 - ld a, $9 - ld [wcf65], a - call Function843f0 - pop af - ld [hVBlank], a - call Function84411 - call Function84735 - xor a - ld [rIF], a - pop af - ld [rIE], a - pop af - ld [wcf65], a - ret -; 8461a - -Function8461a: ; 8461a - ld a, [wcf65] - push af - xor a - ld [$ffac], a - call Function8474c - ld a, [rIE] - push af - xor a - ld [rIF], a - ld a, $9 - ld [rIE], a - xor a - ld [hBGMapMode], a - callba Function1dc381 - ld a, $10 - call Function84419 - ld hl, hVBlank - ld a, [hl] - push af - ld [hl], $4 - ld a, $8 - ld [wcf65], a - call Function84742 - call Function843f0 - jr c, .asm_84671 - call Function84411 - ld c, 12 - call DelayFrames - xor a - ld [hBGMapMode], a - callba Function1dc47b - ld a, $3 - call Function84419 - ld a, $9 - ld [wcf65], a - call Function84742 - call Function843f0 - -.asm_84671 - pop af - ld [hVBlank], a - call Function84411 - call Function84735 - xor a - ld [rIF], a - pop af - ld [rIE], a - call Function84425 - pop af - ld [wcf65], a - ret -; 84688 - -_PrintDiploma: ; 84688 - ld a, [wcf65] - push af - callba Function1dd709 - xor a - ld [$ffac], a - call Function8474c - ld a, [rIE] - push af - xor a - ld [rIF], a - ld a, $9 - ld [rIE], a - ld hl, hVBlank - ld a, [hl] - push af - ld [hl], $4 - ld a, $10 - call Function84419 - call Function84742 - ld a, $9 - ld [wcf65], a - call Function843f0 - jr c, .asm_846e2 - call Function84411 - ld c, 12 - call DelayFrames - call LoadTileMapToTempTileMap - xor a - ld [hBGMapMode], a - callba Function1dd7ae - ld a, $3 - call Function84419 - call Call_LoadTempTileMapToTileMap - call Function84742 - ld a, $9 - ld [wcf65], a - call Function843f0 - -.asm_846e2 - pop af - ld [hVBlank], a - call Function84411 - xor a - ld [rIF], a - pop af - ld [rIE], a - call Function84425 - pop af - ld [wcf65], a - ret -; 846f6 - -Function846f6: ; 846f6 - ld a, [hJoyDown] - and B_BUTTON - jr nz, .asm_846fe - and a - ret - -.asm_846fe - ld a, [wca80] - cp $c - jr nz, .asm_84722 -.asm_84705 - ld a, [wc2d5] - and a - jr nz, .asm_84705 - ld a, $16 - ld [wc2d5], a - ld a, $88 - ld [rSB], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a -.asm_8471c - ld a, [wc2d5] - and a - jr nz, .asm_8471c - -.asm_84722 - ld a, $1 - ld [$ffac], a - scf - ret -; 84728 - -Function84728: ; 84728 - hlcoord 0, 0 - ld de, wca90 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call CopyBytes - ret -; 84735 - -Function84735: ; 84735 - ld hl, wca90 - decoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call CopyBytes - ret -; 84742 - -Function84742: ; 84742 - xor a - ld [hJoyReleased], a - ld [hJoyPressed], a - ld [hJoyDown], a - ld [hJoyLast], a - ret -; 8474c - -Function8474c: ; 8474c - ld de, MUSIC_PRINTER - call PlayMusic2 - ret -; 84753 - -Function84753: ; 84753 - call RestartMapMusic - ret -; 84757 - -Function84757: ; 84757 - ld a, [wca88] - cp -1 - jr nz, .printer_connected - ld a, [wca89] - cp -1 - jr z, .error_2 - -.printer_connected - ld a, [wca89] - and %11100000 - ret z ; no error - - bit 7, a - jr nz, .error_1 - bit 6, a - jr nz, .error_4 - ld a, 6 ; error 3 - jr .load_text_index - -.error_4 - ld a, 7 ; error 4 - jr .load_text_index - -.error_1 - ld a, 4 ; error 1 - jr .load_text_index - -.error_2 - ld a, 5 ; error 2 - -.load_text_index - ld [wcbf8], a - ret -; 84785 - -Function84785: ; 84785 - ld a, [wcbf8] - and a - ret z - push af - xor a - ld [hBGMapMode], a - hlcoord 0, 5 - lb bc, 10, 18 - call TextBox - pop af - ld e, a - ld d, 0 - ld hl, PrinterStatusStringPointers -rept 2 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - hlcoord 1, 7 - ld a, BANK(GBPrinterStrings) - call FarString - hlcoord 2, 15 - ld de, String_PressBToCancel - call PlaceString - ld a, $1 - ld [hBGMapMode], a - xor a - ld [wcbf8], a - ret -; 847bd - -Function847bd: ; 847bd - ld a, [wcbf8] - and a - ret z - push af - xor a - ld [hBGMapMode], a - hlcoord 2, 4 - lb bc, 13, 16 - call ClearBox - pop af - ld e, a - ld d, 0 - ld hl, PrinterStatusStringPointers -rept 2 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - hlcoord 4, 7 - ld a, BANK(GBPrinterStrings) - call FarString - hlcoord 4, 15 - ld de, String_PressBToCancel - call PlaceString - ld a, $1 - ld [hBGMapMode], a - xor a - ld [wcbf8], a - ret -; 847f5 - -String_PressBToCancel: - db "Press B to Cancel@" -; 84807 - -PrinterStatusStringPointers: ; 84807 - dw String_1dc275 ; @ - dw String_1dc276 ; CHECKING LINK - dw String_1dc289 ; TRANSMITTING - dw String_1dc29c ; PRINTING - dw String_1dc2ad ; error 1 - dw String_1dc2e2 ; error 2 - dw String_1dc317 ; error 3 - dw String_1dc34c ; error 4 -; 84817 - -Function84817: ; 84817 (21:4817) - xor a - ld [wd002], a - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - ld a, " " - call ByteFill - call Function84a0e - hlcoord 0, 0 - ld bc, 9 * SCREEN_WIDTH - ld a, " " - call ByteFill - call Function849e9 - call Function849d7 - hlcoord 4, 3 - ld de, String_84865 - call PlaceString - ld a, [wd007] - ld bc, BOX_NAME_LENGTH - ld hl, wBoxNames - call AddNTimes - ld d, h - ld e, l - hlcoord 6, 5 - call PlaceString - ld a, $1 - call Function849c6 - hlcoord 2, 9 - ld c, $3 - call Function848e7 - ret -; 84865 (21:4865) - -String_84865: - db "#MON LIST@" -; 8486f - -Function8486f: ; 8486f (21:486f) - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - ld a, " " - call ByteFill - call Function84a0e - call Function849e9 - ld a, [wd003] - and a - ret nz - ld a, $4 - call Function849c6 - hlcoord 2, 0 - ld c, $6 - call Function848e7 - ret - -Function84893: ; 84893 (21:4893) - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - ld a, " " - call ByteFill - call Function84a0e - call Function849e9 - ld a, [wd003] - and a - ret nz - ld a, $a - call Function849c6 - hlcoord 2, 0 - ld c, $6 - call Function848e7 - ret - -Function848b7: ; 848b7 (21:48b7) - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - ld a, " " - call ByteFill - call Function84a0e - hlcoord 1, 15 - lb bc, 2, 18 - call ClearBox - call Function849e9 - call Function849fc - ld a, [wd003] - and a - ret nz - ld a, $10 - call Function849c6 - hlcoord 2, 0 - ld c, $5 - call Function848e7 - ret - -Function848e7: ; 848e7 (21:48e7) - ld a, [EndFlypoint] - call GetSRAMBank - -Function848ed: ; 848ed (21:48ed) - ld a, c - and a - jp z, Function84986 - dec c - ld a, [de] - cp $ff - jp z, Function84981 - ld [wd265], a - ld [CurPartySpecies], a - push bc - push hl - push de - push hl - ld bc, $10 - ld a, " " - call ByteFill - pop hl - push hl - call GetBasePokemonName - pop hl - push hl - call PlaceString - ld a, [CurPartySpecies] - cp $fd - pop hl - jr z, .ok2 - ld bc, $b - add hl, bc - call Function8498a - ld bc, $9 - add hl, bc - ld a, $f3 - ld [hli], a - push hl - ld bc, $e - ld a, " " - call ByteFill - pop hl - push hl - ld a, [wd004] - ld l, a - ld a, [StartFlypoint] - ld h, a - ld bc, $372 - add hl, bc - ld bc, $b - ld a, [wd002] - call AddNTimes - ld e, l - ld d, h - pop hl - push hl - call PlaceString - pop hl - ld bc, $b - add hl, bc - push hl - ld a, [wd004] - ld l, a - ld a, [StartFlypoint] - ld h, a - ld bc, $35 - add hl, bc - ld bc, $20 - ld a, [wd002] - call AddNTimes - ld a, [hl] - pop hl - call Function383d -.ok2 - ld hl, wd002 - inc [hl] - pop de - pop hl - ld bc, $3c - add hl, bc - pop bc - inc de - jp Function848ed - -Function84981: ; 84981 (21:4981) - ld a, $1 - ld [wd003], a - -Function84986: ; 84986 (21:4986) - call CloseSRAM - ret - -Function8498a: ; 8498a (21:498a) - push hl - ld a, [wd004] - ld l, a - ld a, [StartFlypoint] - ld h, a - ld bc, $2b - add hl, bc - ld bc, $20 - ld a, [wd002] - call AddNTimes - ld de, TempMonDVs - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - ld a, [wd002] - ld [CurPartyMon], a - ld a, $3 - ld [MonType], a - callba GetGender - ld a, $7f - jr c, .asm_849c3 - ld a, $ef - jr nz, .asm_849c3 - ld a, $f5 -.asm_849c3 - pop hl - ld [hli], a - ret - -Function849c6: ; 849c6 (21:49c6) - push hl - ld e, a - ld d, $0 - ld a, [wd004] - ld l, a - ld a, [StartFlypoint] - ld h, a - add hl, de - ld e, l - ld d, h - pop hl - ret - -Function849d7: ; 849d7 (21:49d7) - hlcoord 0, 0 - ld a, $79 - ld [hli], a - ld a, $7a - ld c, $12 -.asm_849e1 - ld [hli], a - dec c - jr nz, .asm_849e1 - ld a, $7b - ld [hl], a - ret - -Function849e9: ; 849e9 (21:49e9) - hlcoord 0, 0 - ld de, $13 - ld c, $12 -.asm_849f1 - ld a, $7c - ld [hl], a - add hl, de - ld a, $7c - ld [hli], a - dec c - jr nz, .asm_849f1 - ret - -Function849fc: ; 849fc (21:49fc) - hlcoord 0, 17 - ld a, $7d - ld [hli], a - ld a, $7a - ld c, $12 -.asm_84a06 - ld [hli], a - dec c - jr nz, .asm_84a06 - ld a, $7e - ld [hl], a - ret - -Function84a0e: ; 84a0e (21:4a0e) - hlcoord 2, 0 - ld c, $6 -.asm_84a13 - push bc - push hl - ld de, String84a25 - call PlaceString - pop hl - ld bc, $3c - add hl, bc - pop bc - dec c - jr nz, .asm_84a13 - ret -; 84a25 (21:4a25) - -String84a25: ; 84a25 - db " ------@" -; 84a2e - +INCLUDE "engine/printer.asm" INCLUDE "battle/anim_gfx.asm" - -HallOfFame:: ; 0x8640e - call Function8648e - ld a, [StatusFlags] - push af - ld a, 1 - ld [wc2cd], a - call DisableSpriteUpdates - ld a, SPAWN_LANCE - ld [wSpawnAfterChampion], a - - ; Enable the Pokégear map to cycle through all of Kanto - ld hl, StatusFlags - set 6, [hl] ; hall of fame - - callba Function14da0 - - ld hl, wHallOfFameCount - ld a, [hl] - cp 200 - jr nc, .ok - inc [hl] -.ok - callba SaveGameData - call GetHallOfFameParty - callba AddHallOfFameEntry - - xor a - ld [wc2cd], a - call Function864c3 - pop af - ld b, a - callba Function109847 - ret -; 0x86455 - -RedCredits:: ; 86455 - ld a, MUSIC_NONE % $100 - ld [MusicFadeIDLo], a - ld a, MUSIC_NONE / $100 - ld [MusicFadeIDHi], a - ld a, $a - ld [MusicFade], a - callba FadeOutPalettes - xor a - ld [VramState], a - ld [hMapAnims], a - callba Function4e8c2 - ld c, 8 - call DelayFrames - call DisableSpriteUpdates - ld a, SPAWN_RED - ld [wSpawnAfterChampion], a - ld a, [StatusFlags] - ld b, a - callba Function109847 - ret -; 8648e - -Function8648e: ; 8648e - ld a, MUSIC_NONE % $100 - ld [MusicFadeIDLo], a - ld a, MUSIC_NONE / $100 - ld [MusicFadeIDHi], a - ld a, 10 - ld [MusicFade], a - callba FadeOutPalettes - xor a - ld [VramState], a - ld [hMapAnims], a - callba Function4e881 - ld c, 100 - jp DelayFrames -; 864b4 - -Function864b4: ; 864b4 - push de - ld de, MUSIC_NONE - call PlayMusic - call DelayFrame - pop de - call PlayMusic - ret -; 864c3 - -Function864c3: ; 864c3 - xor a - ld [wJumptableIndex], a - call Function8671c - jr c, .done - ld de, SCREEN_WIDTH - call Function864b4 - xor a - ld [wcf64], a -.loop - ld a, [wcf64] - cp 6 - jr nc, .done - ld hl, wc608 + 1 - ld bc, $10 - call AddNTimes - ld a, [hl] - cp -1 - jr z, .done - push hl - call Function865b5 - pop hl - call Function8650c - jr c, .done - ld hl, wcf64 - inc [hl] - jr .loop - -.done - call Function86810 - ld a, $4 - ld [MusicFade], a - call FadeToWhite - ld c, 8 - call DelayFrames - ret -; 8650c - -Function8650c: ; 8650c - call Function86748 - ld de, String_8652c - hlcoord 1, 2 - call PlaceString - call WaitBGMap - decoord 6, 5 - ld c, $6 - predef Functiond066e - ld c, 60 - call DelayFrames - and a - ret -; 8652c - -String_8652c: - db "New Hall of Famer!@" -; 8653f - - -GetHallOfFameParty: ; 8653f - ld hl, OverworldMap - ld bc, HOF_LENGTH - xor a - call ByteFill - ld a, [wHallOfFameCount] - ld de, OverworldMap - ld [de], a - inc de - ld hl, PartySpecies - ld c, 0 -.next - ld a, [hli] - cp -1 - jr z, .done - cp EGG - jr nz, .mon - inc c - jr .next - -.mon - push hl - push de - push bc - - ld a, c - ld hl, PartyMons - ld bc, PARTYMON_STRUCT_LENGTH - call AddNTimes - ld c, l - ld b, h - - ld hl, MON_SPECIES - add hl, bc - ld a, [hl] - ld [de], a - inc de - - ld hl, MON_ID - add hl, bc - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - inc de - - ld hl, MON_DVS - add hl, bc - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - inc de - - ld hl, MON_LEVEL - add hl, bc - ld a, [hl] - ld [de], a - inc de - - pop bc - push bc - ld a, c - ld hl, PartyMonNicknames - ld bc, PKMN_NAME_LENGTH - call AddNTimes - ld bc, PKMN_NAME_LENGTH - 1 - call CopyBytes - - pop bc - inc c - pop de - ld hl, HOF_MON_LENGTH - add hl, de - ld e, l - ld d, h - pop hl - jr .next - -.done - ld a, $ff - ld [de], a - ret -; 865b5 - -Function865b5: ; 865b5 - push hl - call ClearBGPalettes - callba Function4e906 - pop hl - ld a, [hli] - ld [TempMonSpecies], a - ld [CurPartySpecies], a -rept 2 - inc hl -endr - ld a, [hli] - ld [TempMonDVs], a - ld a, [hli] - ld [TempMonDVs + 1], a - ld hl, TempMonDVs - predef GetUnownLetter - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - call ByteFill - ld de, VTiles2 tile $31 - predef GetBackpic - ld a, $31 - ld [hFillBox], a - hlcoord 6, 6 - lb bc, 6, 6 - predef FillBox - ld a, $d0 - ld [hSCY], a - ld a, $90 - ld [hSCX], a - call WaitBGMap - xor a - ld [hBGMapMode], a - ld b, SCGB_1A - call GetSGBLayout - call SetPalettes - call Function86635 - xor a - ld [wc2c6], a - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - call ByteFill - hlcoord 6, 5 - call _PrepMonFrontpic - call WaitBGMap - xor a - ld [hBGMapMode], a - ld [hSCY], a - call Function86643 - ret -; 86635 - -Function86635: ; 86635 -.loop - ld a, [hSCX] - cp $70 - ret z - add $4 - ld [hSCX], a - call DelayFrame - jr .loop -; 86643 - -Function86643: ; 86643 -.loop - ld a, [hSCX] - and a - ret z -rept 2 - dec a -endr - ld [hSCX], a - call DelayFrame - jr .loop -; 86650 - -_HallOfFamePC: ; 86650 - call LoadFontsBattleExtra - xor a - ld [wJumptableIndex], a -.loop - call Function8671c - ret c - call Function86665 - ret c - ld hl, wJumptableIndex - inc [hl] - jr .loop -; 86665 - -Function86665: ; 86665 - xor a - ld [wcf64], a -.next - call Function86692 - jr c, .start_button -.loop - call JoyTextDelay - ld hl, hJoyLast - ld a, [hl] - and B_BUTTON - jr nz, .b_button - ld a, [hl] - and A_BUTTON - jr nz, .a_button - ld a, [hl] - and START - jr nz, .start_button - call DelayFrame - jr .loop - -.a_button - ld hl, wcf64 - inc [hl] - jr .next - -.b_button - scf - ret - -.start_button - and a - ret -; 86692 - -Function86692: ; 86692 -; Print the number of times the player has entered the Hall of Fame. -; If that number is above 200, print "HOF Master!" instead. - ld a, [wcf64] - cp $6 - jr nc, .fail - ld hl, wc608 + 1 - ld bc, $10 - call AddNTimes - ld a, [hl] - cp $ff - jr nz, .okay - -.fail - scf - ret - -.okay - push hl - call ClearBGPalettes - pop hl - call Function86748 - ld a, [wc608] - cp 200 + 1 - jr c, .print_num_hof - ld de, String_866fc - hlcoord 1, 2 - call PlaceString - hlcoord 13, 2 - jr .finish - -.print_num_hof - ld de, String_8670c - hlcoord 1, 2 - call PlaceString - hlcoord 2, 2 - ld de, wc608 - lb bc, 1, 3 - call PrintNum - hlcoord 11, 2 - -.finish - ld de, String_866fb - call PlaceString - call WaitBGMap - ld b, SCGB_1A - call GetSGBLayout - call SetPalettes - decoord 6, 5 - ld c, $6 - predef Functiond066e - and a - ret -; 866fb - -String_866fb: - db "@" -; 866fc - -String_866fc: - db " HOF Master!@" -; 8670c - -String_8670c: - db " -Time Famer@" -; 8671c - - -Function8671c: ; 8671c - ld a, [wJumptableIndex] - cp NUM_HOF_TEAMS - jr nc, .full - ld hl, sHallOfFame - ld bc, HOF_LENGTH - call AddNTimes - ld a, BANK(sHallOfFame) - call GetSRAMBank - ld a, [hl] - and a - jr z, .fail - ld de, wc608 - ld bc, HOF_LENGTH - call CopyBytes - call CloseSRAM - and a - ret - -.fail - call CloseSRAM - -.full - scf - ret -; 86748 - -Function86748: ; 86748 - xor a - ld [hBGMapMode], a - ld a, [hli] - ld [TempMonSpecies], a - ld a, [hli] - ld [TempMonID], a - ld a, [hli] - ld [TempMonID + 1], a - ld a, [hli] - ld [TempMonDVs], a - ld a, [hli] - ld [TempMonDVs + 1], a - ld a, [hli] - ld [TempMonLevel], a - ld de, StringBuffer2 - ld bc, 10 - call CopyBytes - ld a, "@" - ld [StringBuffer2 + 10], a - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - call ByteFill - hlcoord 0, 0 - lb bc, 3, SCREEN_WIDTH - 2 - call TextBox - hlcoord 0, 12 - lb bc, 4, SCREEN_WIDTH - 2 - call TextBox - ld a, [TempMonSpecies] - ld [CurPartySpecies], a - ld [wd265], a - ld hl, TempMonDVs - predef GetUnownLetter - xor a - ld [wc2c6], a - hlcoord 6, 5 - call _PrepMonFrontpic - ld a, [CurPartySpecies] - cp EGG - jr z, .print_id_no - hlcoord 1, 13 - ld a, $74 - ld [hli], a - ld [hl], $f2 - hlcoord 3, 13 - ld de, wd265 - lb bc, PRINTNUM_LEADINGZEROS | 1, 3 - call PrintNum - call GetBasePokemonName - hlcoord 7, 13 - call PlaceString - ld a, $3 - ld [MonType], a - callba GetGender - ld a, " " - jr c, .got_gender - ld a, "♂" - jr nz, .got_gender - ld a, "♀" - -.got_gender - hlcoord 18, 13 - ld [hli], a - hlcoord 8, 14 - ld a, "/" - ld [hli], a - ld de, StringBuffer2 - call PlaceString - hlcoord 1, 16 - call PrintLevel - -.print_id_no - hlcoord 7, 16 - ld a, "" - ld [hli], a - ld a, "№" - ld [hli], a - ld [hl], "/" - hlcoord 10, 16 - ld de, TempMonID - lb bc, PRINTNUM_LEADINGZEROS | 2, 5 - call PrintNum - ret -; 86810 - -Function86810: ; 86810 - call ClearBGPalettes - ld hl, VTiles2 tile $63 - ld de, FontExtra + $d0 - lb bc, BANK(FontExtra), 1 - call Request2bpp - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - call ByteFill - callba GetPlayerBackpic - ld a, $31 - ld [hFillBox], a - hlcoord 6, 6 - lb bc, 6, 6 - predef FillBox - ld a, $d0 - ld [hSCY], a - ld a, $90 - ld [hSCX], a - call WaitBGMap - xor a - ld [hBGMapMode], a - ld [CurPartySpecies], a - ld b, SCGB_1A - call GetSGBLayout - call SetPalettes - call Function86635 - xor a - ld [wc2c6], a - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - call ByteFill - callba Function88840 - xor a - ld [hFillBox], a - hlcoord 12, 5 - lb bc, 7, 7 - predef FillBox - ld a, $c0 - ld [hSCX], a - call WaitBGMap - xor a - ld [hBGMapMode], a - ld [hSCY], a - call Function86643 - xor a - ld [hBGMapMode], a - hlcoord 0, 2 - lb bc, 8, 9 - call TextBox - hlcoord 0, 12 - lb bc, 4, 18 - call TextBox - hlcoord 2, 4 - ld de, PlayerName - call PlaceString - hlcoord 1, 6 - ld a, $73 - ld [hli], a - ld a, $74 - ld [hli], a - ld [hl], $f3 - hlcoord 4, 6 - ld de, PlayerID - lb bc, PRINTNUM_LEADINGZEROS | 2, 5 - call PrintNum - hlcoord 1, 8 - ld de, .PlayTime - call PlaceString - hlcoord 3, 9 - ld de, GameTimeHours - lb bc, 2, 3 - call PrintNum - ld [hl], $63 - inc hl - ld de, GameTimeMinutes - lb bc, PRINTNUM_LEADINGZEROS | 1, 2 - call PrintNum - call WaitBGMap - callba Function26601 - ret -; 868ed - -.PlayTime - db "PLAY TIME@" -; 868f7 - +INCLUDE "event/halloffame.asm" SECTION "bank22", ROMX, BANK[$22] @@ -29053,543 +25175,6 @@ Function8cf4f: ; 8cf4f INCLUDE "engine/sprites.asm" -Function8e79d: ; 8e79d - ld a, [hSGB] - ld de, GFX_8e7f4 - and a - jr z, .asm_8e7a8 - ld de, GFX_8e804 - -.asm_8e7a8 - ld hl, VTiles0 - lb bc, BANK(GFX_8e7f4), 1 - call Request2bpp - ld c, $8 - ld d, $0 -.asm_8e7b5 - push bc - call Function8e7c6 - call DelayFrame - pop bc -rept 2 - inc d -endr - dec c - jr nz, .asm_8e7b5 - call ClearSprites - ret -; 8e7c6 - -Function8e7c6: ; 8e7c6 - ld hl, Sprites - ld c, $8 -.asm_8e7cb - ld a, c - and a - ret z - dec c - ld a, c - sla a - sla a - sla a - push af - push de - push hl - call Function8e72c - pop hl - pop de - add $68 - ld [hli], a - pop af - push de - push hl - call Function8e72a - pop hl - pop de - add $54 - ld [hli], a - ld a, $0 - ld [hli], a - ld a, $6 - ld [hli], a - jr .asm_8e7cb -; 8e7f4 - -GFX_8e7f4: ; 8e7f4 -INCBIN "gfx/unknown/08e7f4.2bpp" -GFX_8e804: ; 8e804 -INCBIN "gfx/unknown/08e804.2bpp" - -InefficientlyClear121BytesAtwc300: ; 8e814 - push hl - push de - push bc - push af - ld hl, wc300 - ld bc, wc3c1 - wc300 -.loop - ld [hl], $0 - inc hl - dec bc - ld a, c - or b - jr nz, .loop - pop af - pop bc - pop de - pop hl - ret -; 8e82b - -Function8e82b: ; 8e82b - ld a, e - call ReadMonMenuIcon - ld l, a - ld h, 0 - add hl, hl - ld de, IconPointers - add hl, de - ld a, [hli] - ld e, a - ld d, [hl] - ld b, BANK(Icons) - ld c, 8 - ret -; 8e83f - -Function8e83f: ; 8e83f - push hl - push de - push bc - call Function8e849 - pop bc - pop de - pop hl - ret -; 8e849 - -Function8e849: ; 8e849 - ld d, 0 - ld hl, Jumptable_8e854 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 8e854 - - -Jumptable_8e854: ; 8e854 (23:6854) - dw Function8e8d5 - dw Function8e961 - dw Function8e97d - dw Function8e99a - dw Function8e898 - dw Function8e8b1 - dw Function8e862 - - -Function8e862: ; 8e862 (23:6862) - call Function8e908 - call Function8e86c - call Function8e936 - ret - -Function8e86c: ; 8e86c (23:686c) - push bc - ld a, [hObjectStructIndexBuffer] - ld hl, PartyMon1Item - ld bc, PARTYMON_STRUCT_LENGTH - call AddNTimes - pop bc - ld a, [hl] - and a - jr z, .asm_8e890 - push hl - push bc - ld d, a - callab ItemIsMail - pop bc - pop hl - jr c, .asm_8e88e - ld a, $6 - jr .asm_8e892 -.asm_8e88e - ld a, $5 -.asm_8e890 - ld a, $4 -.asm_8e892 - ld hl, $1 - add hl, bc - ld [hl], a - ret - -Function8e898: ; 8e898 (23:6898) - call Function8e8d5 - ld hl, $2 - add hl, bc - ld a, $0 - ld [hl], a - ld hl, $4 - add hl, bc - ld a, $48 - ld [hl], a - ld hl, $5 - add hl, bc - ld a, $48 - ld [hl], a - ret - -Function8e8b1: ; 8e8b1 (23:68b1) - call Function8e908 - call Function8e936 - ld hl, $2 - add hl, bc - ld a, $0 - ld [hl], a - ld hl, $4 - add hl, bc - ld a, $18 - ld [hl], a - ld hl, $5 - add hl, bc - ld a, $60 - ld [hl], a - ld a, c - ld [wc608], a - ld a, b - ld [wc608 + 1], a - ret - -Function8e8d5: ; 8e8d5 (23:68d5) - call Function8e908 - call Function8e8df - call Function8e936 - ret - -Function8e8df: ; 8e8df (23:68df) - push bc - ld a, [hObjectStructIndexBuffer] - ld hl, PartyMon1Item - ld bc, $30 - call AddNTimes - pop bc - ld a, [hl] - and a - ret z - push hl - push bc - ld d, a - callab ItemIsMail - pop bc - pop hl - jr c, .asm_8e900 - ld a, $3 - jr .asm_8e902 -.asm_8e900 - ld a, $2 -.asm_8e902 - ld hl, $1 - add hl, bc - ld [hl], a - ret - -Function8e908: ; 8e908 (23:6908) - ld a, [wc3b7] - push af - ld a, [hObjectStructIndexBuffer] - ld hl, PartySpecies - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - call ReadMonMenuIcon - ld [CurIcon], a - call Function8e9db - ld a, [hObjectStructIndexBuffer] -; y coord -rept 4 - add a -endr - add $1c - ld d, a -; x coord - ld e, $10 -; type is partymon icon - ld a, SPRITE_ANIM_INDEX_00 - call InitSpriteAnimStruct - pop af - ld hl, $3 - add hl, bc - ld [hl], a - ret - -Function8e936: ; 8e936 (23:6936) - push bc - ld a, [hObjectStructIndexBuffer] - ld b, a - call Function8e94c - ld a, b - pop bc - ld hl, $9 - add hl, bc - ld [hl], a - rlca - rlca - ld hl, $d - add hl, bc - ld [hl], a - ret - -Function8e94c: ; 8e94c (23:694c) - callba PlacePartymonHPBar - call GetHPPal - ld e, d - ld d, 0 - ld hl, Unknown_8e95e - add hl, de - ld b, [hl] - ret -; 8e95e (23:695e) - -Unknown_8e95e: ; 8e95e - db $00, $40, $80 -; 8e961 - -Function8e961: ; 8e961 (23:6961) - ld a, [wd265] - call ReadMonMenuIcon - ld [CurIcon], a - xor a - call GetIconGFX - lb de, $24, $20 - ld a, SPRITE_ANIM_INDEX_00 - call InitSpriteAnimStruct - ld hl, $2 - add hl, bc - ld [hl], $0 - ret - -Function8e97d: ; 8e97d (23:697d) - ld a, [wd265] - call ReadMonMenuIcon - ld [CurIcon], a - xor a - call GetIconGFX - ld d, $1a - ld e, $24 - ld a, SPRITE_ANIM_INDEX_00 - call InitSpriteAnimStruct - ld hl, $2 - add hl, bc - ld [hl], $0 - ret - -Function8e99a: ; 8e99a (23:699a) - ld a, [wd265] - call ReadMonMenuIcon - ld [CurIcon], a - ld a, $62 - ld [wc3b7], a - call Function8e9db - ret - -GetSpeciesIcon: ; 8e9ac -; Load species icon into VRAM at tile a - push de - ld a, [wd265] - call ReadMonMenuIcon - ld [CurIcon], a - pop de - ld a, e - call GetIconGFX - ret -; 8e9bc - - -Function8e9bc: ; 8e9bc (23:69bc) - push de - ld a, [wd265] - call ReadMonMenuIcon - ld [CurIcon], a - pop de - ld a, e - call GetIcon_a - ret -; 8e9cc (23:69cc) - -Function8e9cc: ; 8e9cc - push de - ld a, [wd265] - call ReadMonMenuIcon - ld [CurIcon], a - pop de - call GetIcon_de - ret -; 8e9db - -Function8e9db: ; 8e9db (23:69db) - ld a, [wc3b7] - -GetIconGFX: ; 8e9de - call GetIcon_a - ld de, $80 ; 8 tiles - add hl, de - ld de, HeldItemIcons - lb bc, BANK(HeldItemIcons), 2 - call GetGFXUnlessMobile - ld a, [wc3b7] - add 10 - ld [wc3b7], a - ret - -HeldItemIcons: -INCBIN "gfx/icon/mail.2bpp" -INCBIN "gfx/icon/item.2bpp" -; 8ea17 - -GetIcon_de: ; 8ea17 -; Load icon graphics into VRAM starting from tile de. - ld l, e - ld h, d - jr GetIcon - -GetIcon_a: ; 8ea1b -; Load icon graphics into VRAM starting from tile a. - ld l, a - ld h, 0 - -GetIcon: ; 8ea1e -; Load icon graphics into VRAM starting from tile hl. - -; One tile is 16 bytes long. -rept 4 - add hl, hl -endr - - ld de, VTiles0 - add hl, de - push hl - -; The icons are contiguous, in order and of the same -; size, so the pointer table is somewhat redundant. - ld a, [CurIcon] - push hl - ld l, a - ld h, 0 - add hl, hl - ld de, IconPointers - add hl, de - ld a, [hli] - ld e, a - ld d, [hl] - pop hl - - lb bc, BANK(Icons), 8 - call GetGFXUnlessMobile - - pop hl - ret -; 8ea3f - -GetGFXUnlessMobile: ; 8ea3f - ld a, [wLinkMode] - cp LINK_MOBILE - jp nz, Request2bpp - jp Get2bpp_2 -; 8ea4a - -Function8ea4a: ; 8ea4a - ld hl, wc314 - ld e, $6 - ld a, [MenuSelection2] - ld d, a -.loop - ld a, [hl] - and a - jr z, .next - cp d - jr z, .loadwithtwo - ld a, $0 - jr .ok - -.loadwithtwo - ld a, $2 - -.ok - push hl - ld c, l - ld b, h - ld hl, $2 - add hl, bc - ld [hl], a - pop hl - -.next - ld bc, $10 - add hl, bc - dec e - jr nz, .loop - ret -; 8ea71 - -Function8ea71: ; 8ea71 - ld hl, wc314 - ld e, $6 -.loop - ld a, [hl] - and a - jr z, .zero - push hl - ld c, l - ld b, h - ld hl, $2 - add hl, bc - ld [hl], $1 - pop hl -.zero - ld bc, $10 - add hl, bc - dec e - jr nz, .loop - ret -; 8ea8c (23:6a8c) - -Function8ea8c: ; 8ea8c - ld hl, wc314 - ld e, $6 - ld a, [wd0e3] - ld d, a -.asm_8ea95 - ld a, [hl] - and a - jr z, .asm_8eaab - cp d - jr z, .asm_8eaa0 - ld a, $3 - jr .asm_8eaa2 -.asm_8eaa0 - ld a, $2 -.asm_8eaa2 - push hl - ld c, l - ld b, h - ld hl, $2 - add hl, bc - ld [hl], a - pop hl -.asm_8eaab - ld bc, $10 - add hl, bc - dec e - jr nz, .asm_8ea95 - ret - - -INCLUDE "menu/mon_icons.asm" - SECTION "bank24", ROMX, BANK[$24] @@ -29638,1095 +25223,7 @@ INCLUDE "engine/events_3.asm" INCLUDE "engine/radio.asm" -ReadPartyMonMail: ; b9229 - ld a, [CurPartyMon] - ld hl, sPartyMail - ld bc, MAIL_STRUCT_LENGTH - call AddNTimes - ld d, h - ld e, l -ReadAnyMail: ; b9237 - push de - call ClearBGPalettes - call ClearSprites - call ClearTileMap - call DisableLCD - call LoadFontsExtra - pop de - push de - ld a, BANK(sPartyMail) - call GetSRAMBank - callba Function1de5c8 - call CloseSRAM - ld a, c - ld de, GFX_1de5e6 - or a - jr z, .asm_b9268 - ld de, GFX_1de9e6 - sub $3 - jr c, .asm_b9268 - ld de, GFX_1dede6 - -.asm_b9268 - ld hl, VTiles1 - lb bc, BANK(GFX_1de5e6), $80 - call Get1bpp - pop de - call Functionb92b8 - call EnableLCD - call WaitBGMap - ld a, [wd1ec] - ld e, a - callba Function8cb4 - call SetPalettes - xor a - ld [hJoyPressed], a - call Functionb929a - call ClearBGPalettes - call DisableLCD - call LoadStandardFont - jp EnableLCD -; b929a - -Functionb929a: ; b929a -.asm_b929a - call GetJoypad - ld a, [hJoyPressed] - and A_BUTTON | B_BUTTON | START - jr z, .asm_b929a - and START - jr nz, .asm_b92a8 - ret - -.asm_b92a8 - ld a, [wJumptableIndex] - push af - callab Function845d4 - pop af - ld [wJumptableIndex], a - jr .asm_b929a -; b92b8 - -Functionb92b8: ; b92b8 - ld h, d - ld l, e - push hl - ld a, $0 - call GetSRAMBank - ld de, $2b - add hl, de - ld a, [hli] - ld [Buffer1], a - ld a, [hli] - ld [Buffer2], a - ld a, [hli] - ld [CurPartySpecies], a - ld b, [hl] - call CloseSRAM - ld hl, Unknown_b92f8 - ld c, 0 -.asm_b92d9 - ld a, [hli] - cp b - jr z, .asm_b92ea - cp $ff - jr z, .asm_b92e6 - inc c -rept 2 - inc hl -endr - jr .asm_b92d9 - -.asm_b92e6 - ld hl, Unknown_b92f8 - inc hl - -.asm_b92ea - ld a, c - ld [wd1ec], a - ld a, [hli] - ld h, [hl] - ld l, a - ld de, .done - pop bc - push de - jp [hl] -.done - ret -; b92f8 - -Unknown_b92f8: ; b92f8 - dbw FLOWER_MAIL, Functionb963e - dbw SURF_MAIL, Functionb9317 - dbw LITEBLUEMAIL, Functionb9335 - dbw PORTRAITMAIL, Functionb96ca - dbw LOVELY_MAIL, Functionb944b - dbw EON_MAIL, Functionb93d2 - dbw MORPH_MAIL, Functionb94d6 - dbw BLUESKY_MAIL, Functionb9582 - dbw MUSIC_MAIL, Functionb9710 - dbw MIRAGE_MAIL, Functionb9776 - db $ff -; b9317 - -Functionb9317: ; b9317 - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b9d46 - ld c, $40 - call Functionb9915 - ld de, MailLaprasGFX - ld c, $30 - call Functionb991e - ld de, Unknown_b994e - ld c, $8 - call Functionb9915 - jr Functionb9351 - -Functionb9335: ; b9335 - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b9dc6 - ld c, $40 - call Functionb9915 - ld de, MailDratiniGFX - ld c, $30 - call Functionb991e - ld de, Unknown_b995e - ld c, $8 - call Functionb9915 - -Functionb9351: ; b9351 - ld de, Unknown_b9976 - ld c, $10 - call Functionb9915 - ld c, $10 - call Functionb990c - ld de, Unknown_b9c3e - ld c, $40 - call Functionb990c - ld c, $40 - call Functionb9915 - call Functionb9858 - hlcoord 2, 15 - ld a, $3f - call Functionb98d4 - ld a, $39 - hlcoord 15, 14 - call Functionb98fc - ld a, $44 - hlcoord 2, 2 - call Functionb98ee - hlcoord 15, 11 - call Functionb98ee - ld a, $4c - hlcoord 3, 12 - call Functionb98ee - hlcoord 15, 2 - call Functionb98ee - ld a, $50 - hlcoord 6, 3 - call Functionb98ee - ld a, $40 - hlcoord 13, 2 - ld [hli], a - hlcoord 6, 14 - ld [hl], a - ld a, $41 - hlcoord 4, 5 - ld [hli], a - hlcoord 17, 5 - ld [hli], a - hlcoord 13, 12 - ld [hl], a - ld a, $42 - hlcoord 9, 2 - ld [hli], a - hlcoord 14, 5 - ld [hli], a - hlcoord 3, 10 - ld [hl], a - ld a, $43 - hlcoord 6, 11 - ld [hli], a - pop hl - jp Functionb9803 -; b93d2 - -Functionb93d2: ; b93d2 - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b997e - ld c, $8 - call Functionb9915 - ld de, Unknown_b998e - ld c, $8 - call Functionb990c - ld de, Unknown_b998e - ld c, $8 - call Functionb990c - ld de, Unknown_b997e - ld c, $8 - call Functionb9915 - ld de, Unknown_b9d76 - ld c, $8 - call Functionb9915 - ld de, MailPikaGFX - ld c, $30 - call Functionb991e - ld hl, VTiles2 tile $3d - ld de, Unknown_b9c9e - ld c, $20 - call Functionb990c - ld de, Unknown_b998e - ld c, $8 - call Functionb9915 - ld a, $31 - hlcoord 0, 0 - call Functionb98a8 - hlcoord 1, 17 - call Functionb98a8 - ld a, $33 - hlcoord 0, 1 - call Functionb98ba - hlcoord 19, 0 - call Functionb98ba - hlcoord 2, 15 - ld a, $35 - call Functionb98d4 - inc a - hlcoord 15, 14 - call Functionb98fc - call Functionb9491 - pop hl - jp Functionb9803 -; b944b - -Functionb944b: ; b944b - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b9e26 - ld c, $28 - call Functionb9915 - ld de, MailPoliwagGFX - ld c, $30 - call Functionb991e - ld de, Unknown_b9966 - ld c, $8 - call Functionb9915 - ld de, Unknown_b9c5e - ld c, $20 - call Functionb9915 - ld de, Unknown_b996e - ld c, $8 - call Functionb990c - call Functionb987b - hlcoord 2, 15 - ld a, $3c - call Functionb98d4 - ld a, $36 - hlcoord 15, 14 - call Functionb98fc - call Functionb9491 - pop hl - jp Functionb9803 -; b9491 - -Functionb9491: ; b9491 - ld a, $3d - hlcoord 2, 2 - call Functionb98ee - hlcoord 16, 2 - call Functionb98ee - hlcoord 9, 4 - call Functionb98ee - hlcoord 2, 11 - call Functionb98ee - hlcoord 6, 12 - call Functionb98ee - hlcoord 12, 11 - call Functionb98ee - ld a, $41 - hlcoord 5, 4 - ld [hl], a - hlcoord 6, 2 - ld [hl], a - hlcoord 12, 4 - ld [hl], a - hlcoord 14, 2 - ld [hl], a - hlcoord 3, 13 - ld [hl], a - hlcoord 9, 11 - ld [hl], a - hlcoord 16, 12 - ld [hl], a - ret -; b94d6 - -Functionb94d6: ; b94d6 - push bc - ld hl, VTiles2 tile $31 - ld bc, $28 - call Functionb97f8 - ld de, Unknown_b9c96 - ld c, 8 - call Functionb9915 - ld de, Unknown_b9c7e - ld c, 8 - call Functionb9915 - ld de, Unknown_b993e - ld c, 8 - call Functionb9915 - ld de, Unknown_b997e - ld c, 8 - call Functionb990c - ld de, Unknown_b9926 - ld c, 8 - call Functionb9915 - ld de, MailDittoGFX - ld c, $30 - call Functionb991e - call Functionb987b - ld a, $31 - hlcoord 1, 1 - call Functionb98ee - hlcoord 17, 15 - call Functionb98ee - hlcoord 1, 3 - ld [hl], a - hlcoord 3, 1 - ld [hl], a - hlcoord 16, 16 - ld [hl], a - hlcoord 18, 14 - ld [hl], a - ld a, $36 - hlcoord 1, 4 - ld [hl], a - hlcoord 2, 3 - ld [hl], a - hlcoord 3, 2 - ld [hl], a - hlcoord 4, 1 - ld [hl], a - inc a - hlcoord 15, 16 - ld [hl], a - hlcoord 16, 15 - ld [hl], a - hlcoord 17, 14 - ld [hl], a - hlcoord 18, 13 - ld [hl], a - inc a - hlcoord 2, 15 - ld b, $e - call Functionb98de - inc a - hlcoord 2, 11 - call Functionb98d4 - hlcoord 2, 5 - call Functionb98d4 - inc a - hlcoord 6, 1 - call Functionb98d0 - hlcoord 1, 16 - call Functionb98d0 - inc a - hlcoord 3, 13 - call Functionb98fc - pop hl - jp Functionb9803 -; b9582 - -Functionb9582: ; b9582 - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b997e - ld c, $8 - call Functionb9915 - ld a, $ff - ld bc, $10 - call ByteFill - ld de, Unknown_b992e - ld c, $8 - call Functionb991e - ld de, MailDragoniteGFX - ld c, $b8 - call Functionb991e - ld de, MailCloudGFX - ld c, $30 - call Functionb990c - ld de, Unknown_b9db6 - ld c, $8 - call Functionb990c - ld de, MailCloudGFX - ld c, $8 - call Functionb990c - ld de, Unknown_b9d26 - ld c, $10 - call Functionb990c - ld de, Unknown_b9d3e - ld c, $8 - call Functionb990c - ld a, $31 - hlcoord 0, 0 - call Functionb98dc - hlcoord 0, 1 - call Functionb98e3 - hlcoord 19, 1 - call Functionb98e3 - inc a - hlcoord 0, 17 - call Functionb98dc - inc a - hlcoord 0, 16 - call Functionb98dc - inc a - hlcoord 2, 2 - call Functionb9636 - hlcoord 3, 3 - call Functionb9636 - hlcoord 4, 4 - call Functionb9636 - dec hl - ld [hl], $7f - dec a - hlcoord 15, 14 - call Functionb98ee - add $4 - hlcoord 15, 16 - ld [hli], a - inc a - ld [hl], a - inc a - push af - hlcoord 12, 1 - call Functionb98fc - pop af - hlcoord 15, 4 - call Functionb98fc - inc a - hlcoord 2, 11 - call Functionb98d4 - inc a - hlcoord 10, 3 - call Functionb98ee - pop hl - jp Functionb9803 -; b9636 - -Functionb9636: ; b9636 - ld b, $6 -.asm_b9638 - ld [hli], a - inc a - dec b - jr nz, .asm_b9638 - ret -; b963e - -Functionb963e: ; b963e - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b9d86 - ld c, $40 - call Functionb990c - ld de, MailOddishGFX - ld c, $20 - call Functionb991e - ld de, Unknown_b9db6 - ld c, $8 - call Functionb9915 - ld de, Unknown_b9cbe - ld c, $20 - call Functionb990c - ld c, $20 - call Functionb9915 - call Functionb9858 - hlcoord 2, 15 - ld a, $3d - call Functionb98d4 - ld a, $39 - hlcoord 16, 13 - call Functionb98ee - hlcoord 2, 13 - call Functionb98ee - ld a, $3e - hlcoord 2, 2 - call Functionb98ee - hlcoord 5, 3 - call Functionb98ee - hlcoord 10, 2 - call Functionb98ee - hlcoord 16, 3 - call Functionb98ee - hlcoord 5, 11 - call Functionb98ee - hlcoord 16, 10 - call Functionb98ee - ld a, $42 - hlcoord 3, 4 - call Functionb98ee - hlcoord 12, 3 - call Functionb98ee - hlcoord 14, 2 - call Functionb98ee - hlcoord 2, 10 - call Functionb98ee - hlcoord 14, 11 - call Functionb98ee - pop hl - jp Functionb9803 -; b96ca - -Functionb96ca: ; b96ca - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b9e4e - ld c, $28 - call Functionb9915 - ld de, Unknown_b995e - ld c, $8 - call Functionb9915 - ld hl, VTiles2 tile $3d - ld de, Unknown_b9bfe - ld c, $20 - call Functionb990c - ld de, Unknown_b9936 - ld c, $8 - call Functionb9915 - call Functionb987b - hlcoord 8, 15 - ld a, $36 - ld b, $a - call Functionb98de - call Functionb9491 - ld a, $1 - ld [UnownLetter], a - hlcoord 1, 10 - call PrepMonFrontpic - pop hl - jp Functionb9803 -; b9710 - -Functionb9710: ; b9710 - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b9e06 - ld c, $20 - call Functionb9915 - ld de, Unknown_b993e - ld c, $10 - call Functionb9915 - ld de, Unknown_b9996 - ld c, $30 - call Functionb991e - xor a - ld bc, $10 - call ByteFill - ld de, Unknown_b9cfe - ld c, $18 - call Functionb990c - ld de, Unknown_b9946 - ld c, $8 - call Functionb990c - ld a, $31 - hlcoord 0, 0 - call Functionb98a8 - hlcoord 1, 17 - call Functionb98a8 - ld a, $33 - hlcoord 0, 1 - call Functionb98ba - hlcoord 19, 0 - call Functionb98ba - ld a, $35 - hlcoord 2, 15 - call Functionb989e - ld a, $37 - hlcoord 15, 14 - call Functionb98fc - call Functionb9491 - pop hl - jp Functionb9803 -; b9776 - -Functionb9776: ; b9776 - push bc - ld hl, VTiles2 tile $31 - ld bc, $28 - call Functionb97f8 - ld de, Unknown_b992e - ld c, $8 - call Functionb9915 - ld de, MailMewGFX - ld c, $90 - call Functionb9915 - ld de, Unknown_b9dce - ld c, $8 - call Functionb990c - ld de, Unknown_b9df6 - ld c, $8 - call Functionb990c - call Functionb987b - ld a, $36 - hlcoord 1, 16 - call Functionb98d8 - inc a - hlcoord 15, 14 - call Functionb98fc - inc a - hlcoord 15, 16 - ld [hli], a - inc a - ld [hl], a - ld a, $3f - hlcoord 1, 1 - call Functionb98a8 - ld a, $41 - hlcoord 0, 2 - call Functionb98b5 - ld a, $43 - hlcoord 19, 2 - call Functionb98b5 - ld a, $45 - hlcoord 0, 1 - ld [hl], a - inc a - hlcoord 19, 1 - ld [hl], a - inc a - hlcoord 0, 16 - ld [hl], a - inc a - hlcoord 19, 16 - ld [hl], a - inc a - hlcoord 2, 5 - call Functionb98d4 - inc a - hlcoord 2, 11 - call Functionb98d4 - pop hl - jp Functionb9803 -; b97f8 - -Functionb97f8: ; b97f8 -.asm_b97f8 - xor a - ld [hli], a - ld a, $ff - ld [hli], a - dec bc - ld a, b - or c - jr nz, .asm_b97f8 - ret -; b9803 - -Functionb9803: ; b9803 - ld bc, $2f - ld de, wd002 - ld a, $0 - call GetSRAMBank - call CopyBytes - call CloseSRAM - ld hl, wd023 - ld de, wd050 - ld bc, $a - call CopyBytes - ld a, $50 - ld [wd023], a - ld [wd05a], a - ld de, wd002 - hlcoord 2, 7 - call PlaceString - ld de, wd050 - ld a, [de] - and a - ret z - ld a, [wd1ec] - hlcoord 8, 14 - cp $3 - jr z, .asm_b984b - hlcoord 6, 14 - cp $6 - jr z, .asm_b984b - hlcoord 5, 14 - -.asm_b984b - jp PlaceString -; b984e - -Functionb984e: ; b984e -.asm_b984e - ld a, [hl] - xor $ff - ld [hli], a - dec bc - ld a, b - or c - jr nz, .asm_b984e - ret -; b9858 - -Functionb9858: ; b9858 - hlcoord 0, 0 - ld a, $31 - ld [hli], a - inc a - call Functionb98d8 - inc a - ld [hli], a - inc a - call Functionb98e3 - ld a, $36 - ld [hli], a - inc a - call Functionb98d8 - hlcoord 19, 1 - ld a, $35 - call Functionb98e3 - ld a, $38 - ld [hl], a - ret -; b987b - -Functionb987b: ; b987b - hlcoord 0, 0 - ld a, $31 - ld [hli], a - inc a - call Functionb98d8 - ld [hl], $31 - inc hl - inc a - call Functionb98e3 - ld [hl], $31 - inc hl - inc a - call Functionb98d8 - hlcoord 19, 1 - ld a, $35 - call Functionb98e3 - ld [hl], $31 - ret -; b989e - -Functionb989e: ; b989e - push af - ld b, $7 - jr Functionb98ab - -Functionb98a3: ; b98a3 - push af - ld b, $8 - jr Functionb98ab - -Functionb98a8: ; b98a8 - push af - ld b, $9 - -Functionb98ab: ; b98ab - ld [hli], a - inc a - ld [hli], a - dec a - dec b - jr nz, Functionb98ab - ld [hl], a - pop af - ret -; b98b5 - -Functionb98b5: ; b98b5 - push af - ld b, $7 - jr Functionb98bd - -Functionb98ba: ; b98ba - push af - ld b, $8 - -Functionb98bd: ; b98bd - ld [hl], a - ld de, SCREEN_WIDTH - add hl, de - inc a - ld [hl], a - add hl, de - dec a - dec b - jr nz, Functionb98bd - ld [hl], a - pop af - ret -; b98cc - -Functionb98cc: ; b98cc - ld b, $7 - jr Functionb98de - -Functionb98d0: ; b98d0 - ld b, $d - jr Functionb98de - -Functionb98d4: ; b98d4 - ld b, $10 - jr Functionb98de - -Functionb98d8: ; b98d8 - ld b, $12 - jr Functionb98de - -Functionb98dc: ; b98dc - ld b, $14 - -Functionb98de: ; b98de - ld [hli], a - dec b - jr nz, Functionb98de - ret -; b98e3 - -Functionb98e3: ; b98e3 - ld b, $10 - ld de, SCREEN_WIDTH -.asm_b98e8 - ld [hl], a - add hl, de - dec b - jr nz, .asm_b98e8 - ret -; b98ee - -Functionb98ee: ; b98ee - push af - ld [hli], a - inc a - ld [hl], a - ld bc, $13 - add hl, bc - inc a - ld [hli], a - inc a - ld [hl], a - pop af - ret -; b98fc - -Functionb98fc: ; b98fc - ld [hli], a - inc a - ld [hli], a - inc a - ld [hl], a - ld bc, SCREEN_HEIGHT - add hl, bc - inc a - ld [hli], a - inc a - ld [hli], a - inc a - ld [hl], a - ret -; b990c - -Functionb990c: ; b990c -.asm_b990c - ld a, [de] - inc de - ld [hli], a - xor a - ld [hli], a - dec c - jr nz, .asm_b990c - ret -; b9915 - -Functionb9915: ; b9915 -.asm_b9915 - xor a - ld [hli], a - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .asm_b9915 - ret -; b991e - -Functionb991e: ; b991e -.asm_b991e - ld a, [de] - inc de -rept 2 - ld [hli], a -endr - dec c - jr nz, .asm_b991e - ret -; b9926 - -Unknown_b9926: ; b9926 -INCBIN "gfx/unknown/0b9926.1bpp" - -Unknown_b992e: ; b992e -INCBIN "gfx/unknown/0b992e.1bpp" - -Unknown_b9936: ; b9936 -INCBIN "gfx/unknown/0b9936.1bpp" - -Unknown_b993e: ; b993e -INCBIN "gfx/unknown/0b993e.1bpp" - -Unknown_b9946: ; b9946 -INCBIN "gfx/unknown/0b9946.1bpp" - -Unknown_b994e: ; b994e -INCBIN "gfx/unknown/0b994e.1bpp" - -Unknown_b995e: ; b995e -INCBIN "gfx/unknown/0b995e.1bpp" - -Unknown_b9966: ; b9966 -INCBIN "gfx/unknown/0b9966.1bpp" - -Unknown_b996e: ; b996e -INCBIN "gfx/unknown/0b996e.1bpp" - -Unknown_b9976: ; b9976 -INCBIN "gfx/unknown/0b9976.1bpp" - -Unknown_b997e: ; b997e -INCBIN "gfx/unknown/0b997e.1bpp" - -Unknown_b998e: ; b998e -INCBIN "gfx/unknown/0b998e.1bpp" - -Unknown_b9996: ; b9996 -INCBIN "gfx/unknown/0b9996.1bpp" - -MailDratiniGFX: ; b99c6 -INCBIN "gfx/unknown/0b99c6.1bpp" - -MailPoliwagGFX: ; b99f6 -INCBIN "gfx/unknown/0b99f6.1bpp" - -MailLaprasGFX: ; b9a26 -INCBIN "gfx/unknown/0b9a26.1bpp" - -MailPikaGFX: ; b9a56 -INCBIN "gfx/unknown/0b9a56.1bpp" - -MailDittoGFX: ; b9a86 -INCBIN "gfx/unknown/0b9a86.1bpp" - -MailMewGFX: ; b9ab6 -INCBIN "gfx/unknown/0b9ab6.1bpp" - -MailDragoniteGFX: ; b9b46 -INCBIN "gfx/unknown/0b9b46.1bpp" - -MailSentretGFX: ; b9bce -INCBIN "gfx/unknown/0b9bce.1bpp" - -Unknown_b9bee: ; b9bee -INCBIN "gfx/unknown/0b9bee.1bpp" - -Unknown_b9bfe: ; b9bfe -INCBIN "gfx/unknown/0b9bfe.1bpp" - -MailOddishGFX: ; b9c1e -INCBIN "gfx/unknown/0b9c1e.1bpp" - -Unknown_b9c3e: ; b9c3e -INCBIN "gfx/unknown/0b9c3e.1bpp" - -Unknown_b9c5e: ; b9c5e -INCBIN "gfx/unknown/0b9c5e.1bpp" - -Unknown_b9c7e: ; b9c7e -INCBIN "gfx/unknown/0b9c7e.1bpp" - -Unknown_b9c96: ; b9c96 -INCBIN "gfx/unknown/0b9c96.1bpp" - -Unknown_b9c9e: ; b9c9e -INCBIN "gfx/unknown/0b9c9e.1bpp" - -Unknown_b9cbe: ; b9cbe -INCBIN "gfx/unknown/0b9cbe.1bpp" - -Unknown_b9cde: ; b9cde -INCBIN "gfx/unknown/0b9cde.1bpp" - -Unknown_b9cfe: ; b9cfe -INCBIN "gfx/unknown/0b9cfe.1bpp" - -MailCloudGFX: ; b9d16 -INCBIN "gfx/unknown/0b9d16.1bpp" - -Unknown_b9d26: ; b9d26 -INCBIN "gfx/unknown/0b9d26.1bpp" - -Unknown_b9d3e: ; b9d3e -INCBIN "gfx/unknown/0b9d3e.1bpp" - -Unknown_b9d46: ; b9d46 -INCBIN "gfx/unknown/0b9d46.1bpp" - -Unknown_b9d76: ; b9d76 -INCBIN "gfx/unknown/0b9d76.1bpp" - -Unknown_b9d86: ; b9d86 -INCBIN "gfx/unknown/0b9d86.1bpp" - -Unknown_b9db6: ; b9db6 -INCBIN "gfx/unknown/0b9db6.1bpp" - -Unknown_b9dc6: ; b9dc6 -INCBIN "gfx/unknown/0b9dc6.1bpp" - -Unknown_b9dce: ; b9dce -INCBIN "gfx/unknown/0b9dce.1bpp" - -Unknown_b9df6: ; b9df6 -INCBIN "gfx/unknown/0b9df6.1bpp" - -Unknown_b9e06: ; b9e06 -INCBIN "gfx/unknown/0b9e06.1bpp" - -Unknown_b9e26: ; b9e26 -INCBIN "gfx/unknown/0b9e26.1bpp" - -Unknown_b9e4e: ; b9e4e -INCBIN "gfx/unknown/0b9e4e.1bpp" - - -ItemIsMail: ; b9e76 - ld a, d - ld hl, .items - ld de, 1 - jp IsInArray -; b9e80 - -.items - db FLOWER_MAIL - db SURF_MAIL - db LITEBLUEMAIL - db PORTRAITMAIL - db LOVELY_MAIL - db EON_MAIL - db MORPH_MAIL - db BLUESKY_MAIL - db MUSIC_MAIL - db MIRAGE_MAIL - db $ff -; b9e8b - +INCLUDE "gfx/mail.asm" SECTION "bank2F", ROMX, BANK[$2F] @@ -31159,3463 +25656,12 @@ INCBIN "gfx/misc/copyright.2bpp" ; e41d0 INCLUDE "engine/options_menu.asm" - -Functione455c: ; e455c - hlcoord 1, 1 - ld de, SCREEN_WIDTH - ld c, $10 -.asm_e4564 - ld [hl], $7f - add hl, de - dec c - jr nz, .asm_e4564 - hlcoord 1, 2 - ld bc, $28 - ld a, [wJumptableIndex] - call AddNTimes - ld [hl], $ed - ret -; e4579 - - -Functione4579: ; e4579 - ld de, MUSIC_NONE - call PlayMusic - call ClearBGPalettes - call ClearTileMap - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - xor a - ld [hBGMapAddress], a - ld [hJoyDown], a - ld [hSCX], a - ld [hSCY], a - ld a, $90 - ld [hWY], a - call WaitBGMap - ld b, SCGB_19 - call GetSGBLayout - call SetPalettes - ld c, 10 - call DelayFrames - callab Copyright - call WaitBGMap - ld c, 100 - call DelayFrames - call ClearTileMap - callba GBCOnlyScreen - call Functione45e8 -.joy_loop - call JoyTextDelay - ld a, [hJoyLast] - and BUTTONS - jr nz, .pressed_button - ld a, [wJumptableIndex] - bit 7, a - jr nz, .finish - call PlaceGameFreakPresents - callba Function8cf69 - call DelayFrame - jr .joy_loop - -.pressed_button - call Functione465e - scf - ret - -.finish - call Functione465e - and a - ret -; e45e8 - -Functione45e8: ; e45e8 - ld de, GameFreakLogo - ld hl, VTiles2 - lb bc, BANK(GameFreakLogo), $1c - call Get1bpp - - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - - ld hl, IntroLogoGFX - ld de, w6_d000 - ld a, BANK(IntroLogoGFX) - call FarDecompress - - ld hl, VTiles0 - ld de, w6_d000 - lb bc, 1, 8 tiles - call Request2bpp - - ld hl, VTiles1 - ld de, w6_d000 + $80 tiles - lb bc, 1, 8 tiles - call Request2bpp - - pop af - ld [rSVBK], a - - callba Function8cf53 - depixel 10, 11, 4, 0 - ld a, SPRITE_ANIM_INDEX_03 - call _InitSpriteAnimStruct - ld hl, $7 - add hl, bc - ld [hl], $a0 - ld hl, $c - add hl, bc - ld [hl], $60 - ld hl, $d - add hl, bc - ld [hl], $30 - xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [hSCX], a - ld [hSCY], a - ld a, $1 - ld [hBGMapMode], a - ld a, $90 - ld [hWY], a - ld de, $e4e4 - call DmgToCgbObjPals - ret -; e465e - -Functione465e: ; e465e - callba Function8cf53 - call ClearTileMap - call ClearSprites - ld c, 16 - call DelayFrames - ret -; e4670 - -PlaceGameFreakPresents: ; e4670 - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, .jumptable -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; e467f - -.jumptable: ; e467f - dw PlaceGameFreakPresents_0 - dw PlaceGameFreakPresents_1 - dw PlaceGameFreakPresents_2 - dw PlaceGameFreakPresents_3 -; e4687 - -PlaceGameFreakPresents_AdvanceIndex: ; e4687 - ld hl, wJumptableIndex - inc [hl] - ret -; e468c - -PlaceGameFreakPresents_0: ; e468c - ret -; e468d - -PlaceGameFreakPresents_1: ; e468d - ld hl, wcf65 - ld a, [hl] - cp $20 - jr nc, .PlaceGameFreak - inc [hl] - ret - -.PlaceGameFreak - ld [hl], 0 - ld hl, .GAME_FREAK - decoord 5, 10 - ld bc, .end - .GAME_FREAK - call CopyBytes - call PlaceGameFreakPresents_AdvanceIndex - ld de, SFX_GAME_FREAK_PRESENTS - call PlaySFX - ret -; e46af - -.GAME_FREAK - ; G A M E _ F R E A K - db 0, 1, 2, 3, 13, 4, 5, 3, 1, 6 -.end - db "@" -; e46ba - -PlaceGameFreakPresents_2: ; e46ba - ld hl, wcf65 - ld a, [hl] - cp $40 - jr nc, .place_presents - inc [hl] - ret - -.place_presents - ld [hl], 0 - ld hl, .presents - decoord 7,11 - ld bc, .end - .presents - call CopyBytes - call PlaceGameFreakPresents_AdvanceIndex - ret -; e46d6 - -.presents - db 7, 8, 9, 10, 11, 12 -.end - db "@" -; e46dd - -PlaceGameFreakPresents_3: ; e46dd - ld hl, wcf65 - ld a, [hl] - cp $80 - jr nc, .finish - inc [hl] - ret - -.finish - ld hl, wJumptableIndex - set 7, [hl] - ret -; e46ed - - - -GameFreakLogoJumper: ; e46ed (39:46ed) - ld hl, $b - add hl, bc - ld e, [hl] - ld d, 0 - ld hl, GameFreakLogoScenes -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -GameFreakLogoScenes: ; e46fd (39:46fd) - dw GameFreakLogoScene1 - dw GameFreakLogoScene2 - dw GameFreakLogoScene3 - dw GameFreakLogoScene4 - dw GameFreakLogoScene5 - - -GameFreakLogoScene1: ; e4707 (39:4707) - ld hl, $b - add hl, bc - inc [hl] - ret - -GameFreakLogoScene2: ; e470d (39:470d) - ld hl, $c - add hl, bc - ld a, [hl] - and a - jr z, .asm_e4747 - ld d, a - ld hl, $d - add hl, bc - ld a, [hl] - and $3f - cp $20 - jr nc, .asm_e4723 - add $20 -.asm_e4723 - ld e, a - callba Functionce765 - ld hl, $7 - add hl, bc - ld [hl], e - ld hl, $d - add hl, bc - ld a, [hl] - dec [hl] - and $1f - ret nz - ld hl, $c - add hl, bc - ld a, [hl] - sub $30 - ld [hl], a - ld de, SFX_DITTO_BOUNCE - call PlaySFX - ret -.asm_e4747 - ld hl, $b - add hl, bc - inc [hl] - ld hl, $d - add hl, bc - ld [hl], $0 - ld de, SFX_DITTO_POP_UP - call PlaySFX - ret - -GameFreakLogoScene3: ; e4759 (39:4759) - ld hl, $d - add hl, bc - ld a, [hl] - cp $20 - jr nc, .asm_e4764 - inc [hl] - ret -.asm_e4764 - ld hl, $b - add hl, bc - inc [hl] - ld hl, $d - add hl, bc - ld [hl], $0 - ld de, SFX_DITTO_TRANSFORM - call PlaySFX - ret - -GameFreakLogoScene4: ; e4776 (39:4776) - ld hl, $d - add hl, bc - ld a, [hl] - cp $40 - jr z, .asm_e47a3 - inc [hl] - srl a - srl a - ld e, a - ld d, $0 - ld hl, GameFreakLogoPalettes -rept 2 - add hl, de -endr - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld a, [hli] - ld [OBPals + 12], a - ld a, [hli] - ld [OBPals + 13], a - pop af - ld [rSVBK], a - ld a, $1 - ld [hCGBPalUpdate], a - ret -.asm_e47a3 - ld hl, $b - add hl, bc - inc [hl] - call PlaceGameFreakPresents_AdvanceIndex - -GameFreakLogoScene5: ; e47ab (39:47ab) - ret -; e47ac (39:47ac) - -GameFreakLogoPalettes: ; e47ac -; Ditto's color as it turns into the Game Freak logo. -; Fade from pink to orange. -; One color per step. - RGB 23, 12, 28 - RGB 23, 12, 27 - RGB 23, 13, 26 - RGB 23, 13, 24 - RGB 24, 14, 22 - RGB 24, 14, 20 - RGB 24, 15, 18 - RGB 24, 15, 16 - RGB 25, 16, 14 - RGB 25, 16, 12 - RGB 25, 17, 10 - RGB 25, 17, 08 - RGB 26, 18, 06 - RGB 26, 18, 04 - RGB 26, 19, 02 - RGB 26, 19, 00 -;' e47cc - -GameFreakLogo: ; e47cc -INCBIN "gfx/splash/logo.1bpp" -; e48ac - -CrystalIntro: ; e48ac - ld a, [rSVBK] - push af - ld a, 5 - ld [rSVBK], a - ld a, [hInMenu] - push af - ld a, [hVBlank] - push af - call Functione4901 -.loop: ; e48bc - call JoyTextDelay - ld a, [hJoyLast] - and BUTTONS - jr nz, .ShutOffMusic - ld a, [wJumptableIndex] - bit 7, a - jr nz, .done - call IntroSceneJumper - callba Function8cf69 - call DelayFrame - jp .loop - -.ShutOffMusic - ld de, MUSIC_NONE - call PlayMusic - -.done - call ClearBGPalettes - call ClearSprites - call ClearTileMap - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - pop af - ld [hVBlank], a - pop af - ld [hInMenu], a - pop af - ld [rSVBK], a - ret -; e4901 - -Functione4901: ; e4901 - xor a - ld [hVBlank], a - ld a, $1 - ld [hInMenu], a - xor a - ld [hMapAnims], a - ld [wJumptableIndex], a - ret -; e490f - -IntroSceneJumper: ; e490f - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, IntroScenes -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; e491e - - -IntroScenes: ; e491e (39:491e) - dw IntroScene1 - dw IntroScene2 - dw IntroScene3 - dw IntroScene4 - dw IntroScene5 - dw IntroScene6 - dw IntroScene7 - dw IntroScene8 - dw IntroScene9 - dw IntroScene10 - dw IntroScene11 - dw IntroScene12 - dw IntroScene13 - dw IntroScene14 - dw IntroScene15 - dw IntroScene16 - dw IntroScene17 - dw IntroScene18 - dw IntroScene19 - dw IntroScene20 - dw IntroScene21 - dw IntroScene22 - dw IntroScene23 - dw IntroScene24 - dw IntroScene25 - dw IntroScene26 - dw IntroScene27 - dw IntroScene28 - - -NextIntroScene: ; e4956 (39:4956) - ld hl, wJumptableIndex - inc [hl] - ret - -IntroScene1: ; e495b (39:495b) -; Setup the next scene. - call Functione54a3 - call ClearSprites - call ClearTileMap - xor a - ld [hBGMapMode], a - ld a, $1 - ld [rVBK], a - ld hl, IntroTilemap001 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, $0 - ld [rVBK], a - ld hl, IntroUnownsGFX - ld de, VTiles2 tile $00 - call Functione54c2 - ld hl, IntroPulseGFX - ld de, VTiles0 tile $00 - call Functione54c2 - ld hl, IntroTilemap002 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_365ad - ld de, wMapPals - ld bc, $80 - call CopyBytes - ld hl, Palette_365ad - ld de, BGPals - ld bc, $80 - call CopyBytes - pop af - ld [rSVBK], a - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - callba Function8cf53 - call Functione549e - xor a - ld [wIntroSceneFrameCounter], a - ld [wcf65], a - call NextIntroScene - ret - -IntroScene2: ; e49d6 (39:49d6) -; First Unown (A) fades in, pulses, then fades out. - ld hl, wIntroSceneFrameCounter - ld a, [hl] - inc [hl] - cp $80 - jr nc, .endscene - cp $60 - jr nz, .DontPlaySound - push af - ld de, $5858 - call Functione51dc - ld de, SFX_INTRO_UNOWN_1 - call PlaySFX - pop af -.DontPlaySound - ld [wcf65], a - xor a - call Functione5223 - ret -.endscene - call NextIntroScene - ret - -IntroScene3: ; e49fd (39:49fd) -; More setup. Transition to the outdoor scene. - call Functione54a3 - call ClearSprites - call ClearTileMap - xor a - ld [hBGMapMode], a - ld a, $1 - ld [rVBK], a - ld hl, IntroTilemap003 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, $0 - ld [rVBK], a - ld hl, IntroBackgroundGFX - ld de, VTiles2 tile $00 - call Functione54c2 - ld hl, IntroTilemap004 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_e5edd - ld de, wMapPals - ld bc, $80 - call CopyBytes - ld hl, Palette_e5edd - ld de, BGPals - ld bc, $80 - call CopyBytes - pop af - ld [rSVBK], a - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - call Functione5516 - call Functione549e - xor a - ld [wIntroSceneFrameCounter], a - call NextIntroScene - ret - -IntroScene4: ; e4a69 (39:4a69) -; Scroll the outdoor panorama for a bit. - call Functione552f - ld hl, wIntroSceneFrameCounter - ld a, [hl] - cp $80 - jr z, .endscene - inc [hl] - ret -.endscene - call NextIntroScene - ret - -IntroScene5: ; e4a7a (39:4a7a) -; Go back to the Unown. - call Functione54a3 - call ClearSprites - call ClearTileMap - xor a - ld [hBGMapMode], a - ld [hLCDStatCustom], a - ld a, $1 - ld [rVBK], a - ld hl, IntroTilemap005 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, $0 - ld [rVBK], a - ld hl, IntroUnownsGFX - ld de, VTiles2 tile $00 - call Functione54c2 - ld hl, IntroPulseGFX - ld de, VTiles0 tile $00 - call Functione54c2 - ld hl, IntroTilemap006 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_365ad - ld de, wMapPals - ld bc, $80 - call CopyBytes - ld hl, Palette_365ad - ld de, BGPals - ld bc, $80 - call CopyBytes - pop af - ld [rSVBK], a - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - callba Function8cf53 - call Functione549e - xor a - ld [wcf64], a - ld [wcf65], a - call NextIntroScene - ret - -IntroScene6: ; e4af7 (39:4af7) -; Two more Unown (I, H) fade in. - ld hl, wcf64 - ld a, [hl] - inc [hl] - cp $80 - jr nc, .endscene - cp $60 - jr z, .SecondUnown - cp $40 - jr nc, .StopUnown - cp $20 - jr z, .FirstUnown - jr .NoUnown -.FirstUnown - push af - ld de, $3878 - call Functione51dc - ld de, SFX_INTRO_UNOWN_2 - call PlaySFX - pop af -.NoUnown - ld [wcf65], a - xor a - call Functione5223 - ret -.SecondUnown - push af - ld de, $7030 - call Functione51dc - ld de, SFX_INTRO_UNOWN_1 - call PlaySFX - pop af -.StopUnown - ld [wcf65], a - ld a, $1 - call Functione5223 - ret -.endscene - call NextIntroScene - ret - -IntroScene7: ; e4b3f (39:4b3f) -; Back to the outdoor scene. - call Functione54a3 - call ClearSprites - call ClearTileMap - xor a - ld [hBGMapMode], a - ld a, $1 - ld [rVBK], a - ld hl, IntroTilemap003 - ld de, VBGMap0 tile $00 - call Functione54fa - ld hl, IntroPichuWooperGFX - ld de, VTiles0 tile $00 - call Functione54c2 - ld a, $0 - ld [rVBK], a - ld hl, IntroSuicuneRunGFX - ld de, VTiles0 tile $00 - call Functione54de - ld hl, IntroBackgroundGFX - ld de, VTiles2 tile $00 - call Functione54c2 - ld hl, IntroTilemap004 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_e5edd - ld de, wMapPals - ld bc, $80 - call CopyBytes - ld hl, Palette_e5edd - ld de, BGPals - ld bc, $80 - call CopyBytes - pop af - ld [rSVBK], a - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - call Functione5516 - callba Function8cf53 - depixel 13, 27, 4, 0 - ld a, SPRITE_ANIM_INDEX_26 - call _InitSpriteAnimStruct - ld a, $f0 - ld [wc3c0], a - call Functione549e - xor a - ld [wIntroSceneFrameCounter], a - ld [wcf65], a - call NextIntroScene - ret - -IntroScene8: ; e4bd3 (39:4bd3) -; Scroll the scene, then show Suicune running across the screen. - ld hl, wIntroSceneFrameCounter - ld a, [hl] - inc [hl] - cp $40 - jr z, .asm_e4be2 - jr nc, .asm_e4be8 - call Functione552f - ret -.asm_e4be2 - ld de, SFX_INTRO_SUICUNE_3 - call PlaySFX -.asm_e4be8 - ld a, [wc3c0] - and a - jr z, .asm_e4bf4 - sub $8 - ld [wc3c0], a - ret -.asm_e4bf4 - ld de, SFX_INTRO_SUICUNE_2 - call PlaySFX - callba Function8d03d - call NextIntroScene - ret - -IntroScene9: ; e4c04 (39:4c04) -; Set up the next scene (same bg). - xor a - ld [hLCDStatCustom], a - call ClearSprites - hlcoord 0, 0, AttrMap - ld bc, $f0 - ld a, $1 - call ByteFill - ld bc, $3c - ld a, $2 - call ByteFill - ld bc, $3c - ld a, $3 - call ByteFill - ld a, $2 - ld [hBGMapMode], a - call DelayFrame - call DelayFrame - call DelayFrame - ld a, $c - ld [hBGMapAddress], a - call DelayFrame - call DelayFrame - call DelayFrame - xor a - ld [hBGMapMode], a - ld [hBGMapAddress], a - ld [wc3c0], a - xor a - ld [wcf64], a - call NextIntroScene - ret - -IntroScene10: ; e4c4f (39:4c4f) -; Wooper and Pichu enter. - call Functione546d - ld hl, wcf64 - ld a, [hl] - inc [hl] - cp $c0 - jr z, .done - cp $20 - jr z, .wooper - cp $40 - jr z, .pichu - ret - -.pichu - depixel 21, 16, 1, 0 - ld a, SPRITE_ANIM_INDEX_27 - call _InitSpriteAnimStruct - ld de, SFX_INTRO_PICHU - call PlaySFX - ret - -.wooper - depixel 22, 6 - ld a, SPRITE_ANIM_INDEX_28 - call _InitSpriteAnimStruct - ld de, SFX_INTRO_PICHU - call PlaySFX - ret -.done - call NextIntroScene - ret - -IntroScene11: ; e4c86 (39:4c86) -; Back to Unown again. - call Functione54a3 - call ClearSprites - call ClearTileMap - xor a - ld [hBGMapMode], a - ld [hLCDStatCustom], a - ld a, $1 - ld [rVBK], a - ld hl, IntroTilemap007 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, $0 - ld [rVBK], a - ld hl, IntroUnownsGFX - ld de, VTiles2 tile $00 - call Functione54c2 - ld hl, IntroTilemap008 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_365ad - ld de, wMapPals - ld bc, $80 - call CopyBytes - ld hl, Palette_365ad - ld de, BGPals - ld bc, $80 - call CopyBytes - pop af - ld [rSVBK], a - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - callba Function8cf53 - call Functione549e - xor a - ld [wIntroSceneFrameCounter], a - ld [wcf65], a - call NextIntroScene - ret - -IntroScene12: ; e4cfa (39:4cfa) -; Even more Unown. - call Functione4d36 - ld hl, wIntroSceneFrameCounter - ld a, [hl] - inc [hl] - cp $c0 - jr nc, .asm_e4d32 - cp $80 - jr nc, .asm_e4d1d - ld c, a - and $1f - sla a - ld [wcf65], a - ld a, c - and $e0 - srl a - swap a - call Functione5223 - ret -.asm_e4d1d - ld c, a - and $f - sla a - sla a - ld [wcf65], a - ld a, c - and $70 - or $40 - swap a - call Functione5223 - ret -.asm_e4d32 - call NextIntroScene - ret - -Functione4d36: ; e4d36 (39:4d36) - ld a, [wIntroSceneFrameCounter] - ld c, a - ld hl, .UnownSounds -.loop - ld a, [hli] - cp -1 - ret z - cp c - jr z, .playsound -rept 2 - inc hl -endr - jr .loop -.playsound - ld a, [hli] - ld d, [hl] - ld e, a - push de - call SFXChannelsOff - pop de - call PlaySFX - ret -; e4d54 (39:4d54) - -.UnownSounds: ; e4d54 - dbw $00, SFX_INTRO_UNOWN_3 - dbw $20, SFX_INTRO_UNOWN_2 - dbw $40, SFX_INTRO_UNOWN_1 - dbw $60, SFX_INTRO_UNOWN_2 - dbw $80, SFX_INTRO_UNOWN_3 - dbw $90, SFX_INTRO_UNOWN_2 - dbw $a0, SFX_INTRO_UNOWN_1 - dbw $b0, SFX_INTRO_UNOWN_2 - db $ff -; e4d6d - -IntroScene13: ; e4d6d (39:4d6d) -; Switch scenes again. - call Functione54a3 - call ClearSprites - call ClearTileMap - xor a - ld [hBGMapMode], a - ld a, $1 - ld [rVBK], a - ld hl, IntroTilemap003 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, $0 - ld [rVBK], a - ld hl, IntroSuicuneRunGFX - ld de, VTiles0 tile $00 - call Functione54de - ld hl, IntroBackgroundGFX - ld de, VTiles2 tile $00 - call Functione54c2 - ld hl, IntroTilemap004 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_e5edd - ld de, wMapPals - ld bc, $80 - call CopyBytes - ld hl, Palette_e5edd - ld de, BGPals - ld bc, $80 - call CopyBytes - pop af - ld [rSVBK], a - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - callba Function8cf53 - depixel 13, 11, 4, 0 - ld a, SPRITE_ANIM_INDEX_26 - call _InitSpriteAnimStruct - ld de, MUSIC_CRYSTAL_OPENING - call PlayMusic - xor a - ld [wc3c0], a - call Functione549e - xor a - ld [wcf64], a - ld [wcf65], a - call NextIntroScene - ret - -IntroScene14: ; e4dfa (39:4dfa) -; Suicune runs then jumps. - ld a, [hSCX] - sub 10 - ld [hSCX], a - ld hl, wcf64 - ld a, [hl] - inc [hl] - cp $80 - jr z, .done - cp $60 - jr z, .jump - jr nc, .asm_e4e1a - cp $40 - jr nc, .asm_e4e33 - ret - -.jump - ld de, SFX_INTRO_SUICUNE_4 - call PlaySFX - -.asm_e4e1a - ld a, $1 - ld [wcf65], a - ld a, [wc3c0] - cp $88 - jr c, .asm_e4e2c - sub $8 - ld [wc3c0], a - ret - -.asm_e4e2c - callba Function8d03d - ret - -.asm_e4e33 - ld a, [wc3c0] - sub $2 - ld [wc3c0], a - ret - -.done - call NextIntroScene - ret - -IntroScene15: ; e4e40 (39:4e40) -; Transition to a new scene. - call Functione54a3 - call ClearSprites - call ClearTileMap - xor a - ld [hBGMapMode], a - ld a, $1 - ld [rVBK], a - ld hl, IntroTilemap009 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, $0 - ld [rVBK], a - ld hl, IntroSuicuneJumpGFX - ld de, VTiles2 tile $00 - call Functione54c2 - ld hl, IntroUnownBackGFX - ld de, VTiles0 tile $00 - call Functione54c2 - ld de, GFX_e7a5d - ld hl, VTiles1 tile $00 - lb bc, BANK(GFX_e7a5d), 1 - call Request2bpp - ld hl, IntroTilemap010 - ld de, VBGMap0 tile $00 - call Functione54fa - call Functione541b - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_e77dd - ld de, wMapPals - ld bc, $80 - call CopyBytes - ld hl, Palette_e77dd - ld de, BGPals - ld bc, $80 - call CopyBytes - pop af - ld [rSVBK], a - xor a - ld [hSCX], a - ld a, $90 - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - callba Function8cf53 - call Functione549e - depixel 8, 5 - ld a, SPRITE_ANIM_INDEX_2A - call _InitSpriteAnimStruct - depixel 12, 0 - ld a, SPRITE_ANIM_INDEX_2B - call _InitSpriteAnimStruct - xor a - ld [wcf64], a - ld [wcf65], a - call NextIntroScene - ret - -IntroScene16: ; e4edc (39:4edc) -; Suicune shows its face. An Unown appears in front. - ld hl, wcf64 - ld a, [hl] - inc [hl] - cp $80 - jr nc, .done - call Functione5441 - ld a, [hSCY] - and a - ret z - add 8 - ld [hSCY], a - ret -.done - call NextIntroScene - ret - -IntroScene17: ; e4ef5 (39:4ef5) -; ... - call Functione54a3 - call ClearSprites - call ClearTileMap - xor a - ld [hBGMapMode], a - ld a, $1 - ld [rVBK], a - ld hl, IntroTilemap011 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, $0 - ld [rVBK], a - ld hl, IntroSuicuneCloseGFX - ld de, VTiles1 tile $00 - call Functione54de - ld hl, IntroTilemap012 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_e6d6d - ld de, wMapPals - ld bc, $80 - call CopyBytes - ld hl, Palette_e6d6d - ld de, BGPals - ld bc, $80 - call CopyBytes - pop af - ld [rSVBK], a - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - callba Function8cf53 - call Functione549e - xor a - ld [wcf64], a - ld [wcf65], a - call NextIntroScene - ret - -IntroScene18: ; e4f67 (39:4f67) -; Suicune close up. - ld hl, wcf64 - ld a, [hl] - inc [hl] - cp $60 - jr nc, .done - ld a, [hSCX] - cp $60 - ret z - add 8 - ld [hSCX], a - ret -.done - call NextIntroScene - ret - -IntroScene19: ; e4f7e (39:4f7e) -; More setup. - call Functione54a3 - call ClearSprites - call ClearTileMap - xor a - ld [hBGMapMode], a - ld a, $1 - ld [rVBK], a - ld hl, IntroTilemap013 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, $0 - ld [rVBK], a - ld hl, IntroSuicuneBackGFX - ld de, VTiles2 tile $00 - call Functione54c2 - ld hl, IntroUnownsGFX - ld de, VTiles1 tile $00 - call Functione54c2 - ld de, GFX_e7a5d - ld hl, VTiles1 tile $7f - lb bc, BANK(GFX_e7a5d), 1 - call Request2bpp - ld hl, IntroTilemap014 - ld de, VBGMap0 tile $00 - call Functione54fa - call Functione541b - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_e77dd - ld de, wMapPals - ld bc, $80 - call CopyBytes - ld hl, Palette_e77dd - ld de, BGPals - ld bc, $80 - call CopyBytes - pop af - ld [rSVBK], a - xor a - ld [hSCX], a - ld a, $d8 - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - callba Function8cf53 - ld hl, wc300 - xor a - ld [hli], a - ld [hl], $7f - call Functione549e - depixel 12, 0 - ld a, SPRITE_ANIM_INDEX_2B - call _InitSpriteAnimStruct - xor a - ld [wcf64], a - ld [wcf65], a - call NextIntroScene - ret - -IntroScene20: ; e5019 (39:5019) -; Suicune running away. A bunch of Unown appear. - ld hl, wcf64 - ld a, [hl] - inc [hl] - cp $98 - jr nc, .asm_e5059 - cp $58 - ret nc - cp $40 - jr nc, .asm_e5032 - cp $28 - ret nc - ld a, [hSCY] - inc a - ld [hSCY], a - ret - -.asm_e5032 - sub $18 - ld c, a - and $3 - cp $3 - ret nz - ld a, c - and $1c - srl a - srl a - ld [wcf65], a - xor a - call Functione5348 - ret -; e5049 (39:5049) - - ld a, c - and $1c - srl a - srl a - ld [wcf65], a - ld a, 1 - call Functione5348 - ret - -.asm_e5059 - call NextIntroScene - ret - -IntroScene21: ; e505d (39:505d) -; Suicune gets more distant and turns black. - call Functione5451 - ld c, 3 - call DelayFrames - xor a - ld [hBGMapMode], a - ld [wcf64], a - ld [wcf65], a - call NextIntroScene - ret - -IntroScene22: ; e5072 (39:5072) - ld hl, wcf64 - ld a, [hl] - inc [hl] - cp $8 - jr nc, .done - ret -.done - callba Function8d03d - call NextIntroScene - ret - -IntroScene23: ; e5086 (39:5086) - xor a - ld [wcf64], a - call NextIntroScene - ret - -IntroScene24: ; e508e (39:508e) -; Fade to white. - ld hl, wcf64 - ld a, [hl] - inc [hl] - cp $20 - jr nc, .done - - ld c, a - and $3 - ret nz - ld a, c - and $1c - sla a - call Functione5172 - ret - -.done - ld a, $40 - ld [wcf64], a - call NextIntroScene - ret - -IntroScene25: ; e50ad (39:50ad) -; Wait around a bit. - ld a, [wcf64] - dec a - jr z, .done - ld [wcf64], a - ret -.done - call NextIntroScene - ret - -IntroScene26: ; e50bb (39:50bb) -; Load the final scene. - call ClearBGPalettes - call ClearSprites - call ClearTileMap - xor a - ld [hBGMapMode], a - ld a, $1 - ld [rVBK], a - ld hl, IntroTilemap015 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, $0 - ld [rVBK], a - ld hl, IntroCrystalUnownsGFX - ld de, VTiles2 tile $00 - call Functione54c2 - ld hl, IntroTilemap017 - ld de, VBGMap0 tile $00 - call Functione54fa - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_e679d - ld de, wMapPals - ld bc, $80 - call CopyBytes - ld hl, Palette_e679d - ld de, BGPals - ld bc, $80 - call CopyBytes - pop af - ld [rSVBK], a - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - callba Function8cf53 - call Functione549e - xor a - ld [wcf64], a - ld [wcf65], a - call NextIntroScene - ret - -IntroScene27: ; e512d (39:512d) -; Spell out C R Y S T A L with Unown. - ld hl, wcf65 - inc [hl] - ld hl, wcf64 - ld a, [hl] - inc [hl] - cp $80 - jr nc, .done - - ld c, a - and $f - ld [wcf65], a - ld a, c - and $70 - swap a - call Functione539d - ret - -.done - call NextIntroScene - ld a, $80 - ld [wcf64], a - ret - -IntroScene28: ; e5152 (39:5152) -; Cut out when the music ends, and lead into the title screen. - ld hl, wcf64 - ld a, [hl] - and a - jr z, .done - dec [hl] - cp $18 - jr z, .clear - cp $8 - ret nz - - ld de, SFX_UNKNOWN_CB - call PlaySFX - ret - -.clear - call ClearBGPalettes - ret - -.done - ld hl, wJumptableIndex - set 7, [hl] - ret - - -Functione5172: ; e5172 (39:5172) - ld hl, Unknown_e519c - add l - ld l, a - ld a, $0 - adc h - ld h, a - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld de, BGPals - ld b, $8 -.asm_e5187 - push hl - ld c, $8 -.asm_e518a - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .asm_e518a - pop hl - dec b - jr nz, .asm_e5187 - pop af - ld [rSVBK], a - ld a, $1 - ld [hCGBPalUpdate], a - ret -; e519c (39:519c) - -Unknown_e519c: ; e519c -; Fade to white. - RGB 24, 12, 09 - RGB 31, 31, 31 - RGB 12, 00, 31 - RGB 00, 00, 00 - - RGB 31, 19, 05 - RGB 31, 31, 31 - RGB 15, 05, 31 - RGB 07, 07, 07 - - RGB 31, 21, 09 - RGB 31, 31, 31 - RGB 18, 09, 31 - RGB 11, 11, 11 - - RGB 31, 23, 13 - RGB 31, 31, 31 - RGB 21, 13, 31 - RGB 15, 15, 15 - - RGB 31, 25, 17 - RGB 31, 31, 31 - RGB 25, 17, 31 - RGB 19, 19, 19 - - RGB 31, 27, 21 - RGB 31, 31, 31 - RGB 27, 21, 31 - RGB 23, 23, 23 - - RGB 31, 29, 25 - RGB 31, 31, 31 - RGB 29, 26, 31 - RGB 27, 27, 27 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 -; e51dc - -Functione51dc: ; e51dc (39:51dc) - push de - ld a, SPRITE_ANIM_INDEX_29 - call _InitSpriteAnimStruct - ld hl, $c - add hl, bc - ld [hl], $8 - ld a, $3c - call Function3b3c - pop de - - push de - ld a, SPRITE_ANIM_INDEX_29 - call _InitSpriteAnimStruct - ld hl, $c - add hl, bc - ld [hl], $18 - ld a, $3b - call Function3b3c - pop de - - push de - ld a, SPRITE_ANIM_INDEX_29 - call _InitSpriteAnimStruct - ld hl, $c - add hl, bc - ld [hl], $28 - ld a, $39 - call Function3b3c - pop de - - ld a, SPRITE_ANIM_INDEX_29 - call _InitSpriteAnimStruct - ld hl, $c - add hl, bc - ld [hl], $38 - ld a, $3a - call Function3b3c - ret - -Functione5223: ; e5223 (39:5223) -rept 3 - add a -endr - ld e, a - ld d, $0 - ld hl, BGPals - add hl, de -rept 2 - inc hl -endr - ld a, [wcf65] - and $3f - cp $1f - jr z, .asm_e523e - jr c, .asm_e523e - ld c, a - ld a, $3f - sub c -.asm_e523e - ld c, a - ld b, $0 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - push hl - push bc - ld hl, BGPals - ld bc, $40 - xor a - call ByteFill - pop bc - pop hl - push hl - ld hl, Unknown_e5288 -rept 2 - add hl, bc -endr - ld a, [hli] - ld d, [hl] - ld e, a - pop hl - ld a, e - ld [hli], a - ld a, d - ld [hli], a - push hl - ld hl, Unknown_e52c8 -rept 2 - add hl, bc -endr - ld a, [hli] - ld d, [hl] - ld e, a - pop hl - ld a, e - ld [hli], a - ld a, d - ld [hli], a - push hl - ld hl, Unknown_e5308 -rept 2 - add hl, bc -endr - ld a, [hli] - ld d, [hl] - ld e, a - pop hl - ld a, e - ld [hli], a - ld a, d - ld [hli], a - pop af - ld [rSVBK], a - ld a, $1 - ld [hCGBPalUpdate], a - ret -; e5288 (39:5288) - -Unknown_e5288: ; e5288 -; Fade between black and white. -hue = 0 -rept 32 - RGB hue, hue, hue -hue = hue + 1 -endr -; e52c8 - -Unknown_e52c8: ; e52c8 -; Fade between black and light blue. -hue = 0 -rept 32 - RGB 0, hue / 2, hue -hue = hue + 1 -endr -; e5308 - -Unknown_e5308: ; e5308 -; Fade between black and blue. -hue = 0 -rept 32 - RGB 0, 0, hue -hue = hue + 1 -endr -; e5348 - -Functione5348: ; e5348 (39:5348) - and a - jr nz, .asm_e5350 - ld hl, Palette_e538d - jr .asm_e5353 -.asm_e5350 - ld hl, Palette_e5395 -.asm_e5353 - ld a, [wcf65] - and $7 -rept 3 - add a -endr - ld c, a - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - push bc - ld de, BGPals - ld a, c - add e - ld e, a - ld a, $0 - adc d - ld d, a - ld bc, $8 - call CopyBytes - pop bc - ld de, wMapPals - ld a, c - add e - ld e, a - ld a, $0 - adc d - ld d, a - ld bc, $8 - call CopyBytes - pop af - ld [rSVBK], a - ld a, $1 - ld [hCGBPalUpdate], a - ret -; e538d (39:538d) - -Palette_e538d: ; e538d - RGB 24, 12, 09 - RGB 31, 31, 31 - RGB 12, 00, 31 - RGB 00, 00, 00 -; e5395 - -Palette_e5395: ; e5395 - RGB 24, 12, 09 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 -; e539d - -Functione539d: ; e539d (39:539d) -rept 3 - add a -endr - ld e, a - ld d, $0 - ld hl, BGPals - add hl, de -rept 4 - inc hl -endr - ld a, [wcf65] - add a - ld c, a - ld b, $0 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - push hl - ld hl, Palette_e53db - add hl, bc - ld a, [hli] - ld d, [hl] - ld e, a - pop hl - ld a, e - ld [hli], a - ld a, d - ld [hli], a - push hl - ld hl, Palette_e53fb - add hl, bc - ld a, [hli] - ld d, [hl] - ld e, a - pop hl - ld a, e - ld [hli], a - ld a, d - ld [hli], a - pop af - ld [rSVBK], a - ld a, $1 - ld [hCGBPalUpdate], a - ret -; e53db (39:53db) - -Palette_e53db: ; e53db -hue = 31 -rept 8 - RGB hue, hue, hue -hue = hue + -1 - RGB hue, hue, hue -hue = hue + -2 -endr -; e53fb - -Palette_e53fb: ; e53fb -hue = 31 -rept 16 - RGB hue, hue, hue -hue = hue + -1 -endr -; e541b - -Functione541b: ; e541b (39:541b) - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - ld hl, w6_d000 - decoord 0, 0 - ld b, SCREEN_HEIGHT -.asm_e542a - ld c, SCREEN_WIDTH -.asm_e542c - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .asm_e542c - ld a, $c - add l - ld l, a - ld a, $0 - adc h - ld h, a - dec b - jr nz, .asm_e542a - pop af - ld [rSVBK], a - ret - -Functione5441: ; e5441 (39:5441) - ld a, [wcf64] - and $3 - jr z, Functione5451 - cp $3 - jr z, .asm_e544d - ret -.asm_e544d - xor a - ld [hBGMapMode], a - ret - -Functione5451: ; e5451 (39:5451) - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH -.asm_e5457 - ld a, [hl] - and a - jr z, .asm_e5462 - cp $80 - jr nc, .asm_e5462 - xor $8 - ld [hl], a -.asm_e5462 - inc hl - dec bc - ld a, c - or b - jr nz, .asm_e5457 - ld a, $1 - ld [hBGMapMode], a - ret - -Functione546d: ; e546d (39:546d) - ld a, [wcf64] - cp $24 - ret nc - and $c - srl a - ld e, a - ld d, $0 - ld hl, Unknown_e5496 - add hl, de - ld a, [hli] - ld [Requested2bppSource], a - ld a, [hli] - ld [Requested2bppSource + 1], a - ld a, (VTiles2 tile $09) % $100 - ld [Requested2bppDest], a - ld a, (VTiles2 tile $09) / $100 - ld [Requested2bppDest + 1], a - ld a, $4 - ld [Requested2bpp], a - ret -; e5496 (39:5496) - -Unknown_e5496: ; e5496 - dw GFX_e799d - dw GFX_e79dd - dw GFX_e7a1d - dw GFX_e79dd -; e549e - -Functione549e: ; e549e (39:549e) - ld a, $1 - ld [hCGBPalUpdate], a - ret - -Functione54a3: ; e54a3 (39:54a3) - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, BGPals - ld bc, $80 - xor a - call ByteFill - pop af - ld [rSVBK], a - ld a, $1 - ld [hCGBPalUpdate], a - call DelayFrame - call DelayFrame - ret - -Functione54c2: ; e54c2 (39:54c2) - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - push de - ld de, w6_d000 - call Decompress - pop hl - ld de, w6_d000 - ld bc, $180 - call Request2bpp - pop af - ld [rSVBK], a - ret - -Functione54de: ; e54de (39:54de) - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - push de - ld de, w6_d000 - call Decompress - pop hl - ld de, w6_d000 - ld bc, $1ff - call Request2bpp - pop af - ld [rSVBK], a - ret - -Functione54fa: ; e54fa (39:54fa) - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - push de - ld de, w6_d000 - call Decompress - pop hl - ld de, w6_d000 - ld bc, $140 - call Request2bpp - pop af - ld [rSVBK], a - ret - -Functione5516: ; e5516 (39:5516) - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, LYOverrides - ld bc, $90 - xor a - call ByteFill - pop af - ld [rSVBK], a - ld a, $43 - ld [hLCDStatCustom], a - ret - -Functione552f: ; e552f (39:552f) - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld a, [wcf64] - and $1 - jr z, .asm_e5548 - ld hl, LYOverrides - ld a, [hl] - inc a - ld bc, $5f - call ByteFill -.asm_e5548 - ld hl, LYOverrides + $5f - ld a, [hl] -rept 2 - inc a -endr - ld bc, $31 - call ByteFill - ld a, [LYOverrides + 0] - ld [hSCX], a - pop af - ld [rSVBK], a - ret - -IntroSuicuneRunGFX: ; e555d -INCBIN "gfx/intro/suicune_run.2bpp.lz" -; e592d - -IntroPichuWooperGFX: ; e592d -INCBIN "gfx/intro/pichu_wooper.2bpp.lz" -; e5c7d - -IntroBackgroundGFX: ; e5c7d -INCBIN "gfx/intro/background.2bpp.lz" -; e5e6d - -IntroTilemap004: ; e5e6d -INCBIN "gfx/intro/004.tilemap.lz" -; e5ecd - -IntroTilemap003: ; e5ecd -INCBIN "gfx/intro/003.tilemap.lz" -; e5edd - -Palette_e5edd: ; e5edd - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 0, 4, 5 - RGB 1, 8, 5 - RGB 4, 12, 9 - RGB 24, 12, 9 - RGB 0, 4, 5 - RGB 9, 6, 8 - RGB 8, 16, 5 - RGB 5, 10, 4 - RGB 31, 31, 31 - RGB 9, 6, 8 - RGB 18, 9, 9 - RGB 13, 8, 9 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 2, 5, 22 - RGB 1, 5, 12 - RGB 31, 31, 31 - RGB 31, 10, 25 - RGB 31, 21, 0 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 21, 31 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - -IntroUnownsGFX: ; e5f5d -INCBIN "gfx/intro/unowns.2bpp.lz" -; e634d - -IntroPulseGFX: ; e634d -INCBIN "gfx/intro/pulse.2bpp.lz" -; e63dd - -IntroTilemap002: ; e63dd -INCBIN "gfx/intro/002.tilemap.lz" -; e641d - -IntroTilemap001: ; e641d -INCBIN "gfx/intro/001.tilemap.lz" -; e642d - -IntroTilemap006: ; e642d -INCBIN "gfx/intro/006.tilemap.lz" -; e647d - -IntroTilemap005: ; e647d -INCBIN "gfx/intro/005.tilemap.lz" -; e649d - -IntroTilemap008: ; e649d -INCBIN "gfx/intro/008.tilemap.lz" -; e655d - -IntroTilemap007: ; e655d -INCBIN "gfx/intro/007.tilemap.lz" -; e65ad - -Palette_365ad: ; e65ad - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 10, 0, 10 - RGB 19, 0, 19 - RGB 31, 0, 31 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - -IntroCrystalUnownsGFX: ; e662d -INCBIN "gfx/intro/crystal_unowns.2bpp.lz" -; e672d - -IntroTilemap017: ; e672d -INCBIN "gfx/intro/017.tilemap.lz" -; e676d - -IntroTilemap015: ; e676d -INCBIN "gfx/intro/015.tilemap.lz" -; e679d - -Palette_e679d: ; e679d - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - -IntroSuicuneCloseGFX: ; e681d -INCBIN "gfx/intro/suicune_close.2bpp.lz" -; e6c3d - -IntroTilemap012: ; e6c3d -INCBIN "gfx/intro/012.tilemap.lz" -; e6d0d - -IntroTilemap011: ; e6d0d -INCBIN "gfx/intro/011.tilemap.lz" -; e6d6d - -Palette_e6d6d: ; e6d6d - RGB 24, 12, 9 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 24, 12, 9 - RGB 31, 31, 31 - RGB 8, 9, 31 - RGB 0, 0, 0 - RGB 24, 12, 9 - RGB 12, 20, 31 - RGB 19, 8, 31 - RGB 0, 0, 0 - RGB 12, 20, 31 - RGB 8, 9, 31 - RGB 19, 8, 31 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 12, 20, 31 - RGB 8, 9, 31 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - -IntroSuicuneJumpGFX: ; e6ded -INCBIN "gfx/intro/suicune_jump.2bpp.lz" -; e72ad - -IntroSuicuneBackGFX: ; e72ad -INCBIN "gfx/intro/suicune_back.2bpp.lz" -; e764d - -IntroTilemap010: ; e764d -INCBIN "gfx/intro/010.tilemap.lz" -; e76ad - -IntroTilemap009: ; e76ad -INCBIN "gfx/intro/009.tilemap.lz" -; e76bd - -IntroTilemap014: ; e76bd -INCBIN "gfx/intro/014.tilemap.lz" -; e778d - -IntroTilemap013: ; e778d -INCBIN "gfx/intro/013.tilemap.lz" -; e77dd - -Palette_e77dd: ; e77dd - RGB 24, 12, 9 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 24, 12, 9 - RGB 31, 31, 31 - RGB 8, 9, 31 - RGB 0, 0, 0 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 24, 12, 9 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 12, 0, 31 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 21, 9, 0 - RGB 21, 9, 0 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - -IntroUnownBackGFX: ; e785d -INCBIN "gfx/intro/unown_back.2bpp.lz" -; e799d - -GFX_e799d: ; e799d -INCBIN "gfx/unknown/0e799d.2bpp" -GFX_e79dd: ; e79dd -INCBIN "gfx/unknown/0e79dd.2bpp" -GFX_e7a1d: ; e7a1d -INCBIN "gfx/unknown/0e7a1d.2bpp" - -GFX_e7a5d: ; e7a5d -INCBIN "gfx/unknown/0e7a5d.2bpp" - - +INCLUDE "engine/crystal_intro.asm" SECTION "bank3E", ROMX, BANK[$3E] -FontExtra: -INCBIN "gfx/misc/font_extra.2bpp" - -Font: -INCBIN "gfx/misc/font.1bpp" - -FontBattleExtra: -INCBIN "gfx/misc/font_battle_extra.2bpp" - -Frames: ; f8800 -INCBIN "gfx/frames/1.1bpp" -INCBIN "gfx/frames/2.1bpp" -INCBIN "gfx/frames/3.1bpp" -INCBIN "gfx/frames/4.1bpp" -INCBIN "gfx/frames/5.1bpp" -INCBIN "gfx/frames/6.1bpp" -INCBIN "gfx/frames/7.1bpp" -INCBIN "gfx/frames/8.1bpp" -INCBIN "gfx/frames/9.1bpp" -; f89b0 - -; TODO: Various misc graphics here. - -GFX_f89b0: ; f89b0 -INCBIN "gfx/unknown/0f89b0.2bpp" -; f8a90 - -ShinyIcon: ; f8a90 -INCBIN "gfx/stats/shiny.2bpp" - -GFX_f8aa0: ; f8aa0 -INCBIN "gfx/unknown/0f8aa0.2bpp" -; f8ac0 - -EnemyHPBarBorderGFX: ; f8ac0 -INCBIN "gfx/battle/enemy_hp_bar_border.1bpp" -; f8ae0 - -HPExpBarBorderGFX: ; f8ae0 -INCBIN "gfx/battle/hp_exp_bar_border.1bpp" -; f8b10 - -ExpBarGFX: ; f8b10 -INCBIN "gfx/battle/expbar.2bpp" -; f8ba0 - -TownMapGFX: ; f8ba0 -INCBIN "gfx/misc/town_map.2bpp.lz" -; f8ea4 - -GFX_f8ea4: ; unused -INCBIN "gfx/unknown/0f8ea4.2bpp" -; f8f24 - -OverworldPhoneIconGFX: ; f8f24 -INCBIN "gfx/mobile/overworld_phone_icon.2bpp" -; f8f34 - -GFX_f8f34: ; unused -INCBIN "gfx/unknown/0f8f34.2bpp" -; f9204 - -TextBoxSpaceGFX: ; f9204 -INCBIN "gfx/frames/space.2bpp" -; f9214 - -MobilePhoneTilesGFX: ; f9214 -INCBIN "gfx/mobile/phone_tiles.2bpp" -; f9344 - -MapEntryFrameGFX: ; f9344 -INCBIN "gfx/frames/map_entry_sign.2bpp" -; f9424 - -GFX_f9424: ; f9424 -INCBIN "gfx/unknown/0f9424.2bpp" -; f9434 - -Footprints: ; f9434 -INCBIN "gfx/misc/footprints.1bpp" -; fb434 - -; This and the following two functions are unreferenced. -Unknown_fb434: - db 0 - -Functionfb435: ; 4b435 - ld a, [Unknown_fb434] - and a - jp nz, Get1bpp_2 - jp Get1bpp -; fb43f - -Functionfb43f: ; fb43f - ld a, [Unknown_fb434] - and a - jp nz, Get2bpp_2 - jp Get2bpp -; End unreferenced block -; fb449 - -_LoadStandardFont:: ; fb449 - ld de, Font - ld hl, VTiles1 - lb bc, BANK(Font), $80 - ld a, [rLCDC] - bit 7, a - jp z, Copy1bpp - - ld de, Font - ld hl, VTiles1 - lb bc, BANK(Font), $20 - call Get1bpp_2 - ld de, Font + $20 * LEN_1BPP_TILE - ld hl, VTiles1 tile $20 - lb bc, BANK(Font), $20 - call Get1bpp_2 - ld de, Font + $40 * LEN_1BPP_TILE - ld hl, VTiles1 tile $40 - lb bc, BANK(Font), $20 - call Get1bpp_2 - ld de, Font + $60 * LEN_1BPP_TILE - ld hl, VTiles1 tile $60 - lb bc, BANK(Font), $20 - call Get1bpp_2 - ret -; fb48a - -_LoadFontsExtra1:: ; fb48a - ld de, MobilePhoneTilesGFX - ld hl, VTiles2 tile $60 - lb bc, BANK(MobilePhoneTilesGFX), 1 - call Get1bpp_2 - ld de, OverworldPhoneIconGFX - ld hl, VTiles2 tile $62 - lb bc, BANK(OverworldPhoneIconGFX), 1 - call Get2bpp_2 - ld de, FontExtra + 3 * LEN_2BPP_TILE - ld hl, VTiles2 tile $63 - lb bc, BANK(FontExtra), $16 - call Get2bpp_2 - jr LoadFrame -; fb4b0 - -_LoadFontsExtra2:: ; fb4b0 - ld de, GFX_f9424 - ld hl, VTiles2 tile $61 - ld b, BANK(GFX_f9424) - ld c, 1 - call Get2bpp_2 - ret -; fb4be - -_LoadFontsBattleExtra:: ; fb4be - ld de, FontBattleExtra - ld hl, VTiles2 tile $60 - lb bc, BANK(FontBattleExtra), $19 - call Get2bpp_2 - jr LoadFrame -; fb4cc - -LoadFrame: ; fb4cc - ld a, [TextBoxFrame] - and 7 - ld bc, TILES_PER_FRAME * LEN_1BPP_TILE - ld hl, Frames - call AddNTimes - ld d, h - ld e, l - ld hl, VTiles2 tile $79 - lb bc, BANK(Frames), TILES_PER_FRAME - call Get1bpp_2 - ld hl, VTiles2 tile $7f - ld de, TextBoxSpaceGFX - lb bc, BANK(TextBoxSpaceGFX), 1 - call Get1bpp_2 - ret -; fb4f2 - -LoadBattleFontsHPBar: ; fb4f2 - ld de, FontBattleExtra - ld hl, VTiles2 tile $60 - lb bc, BANK(FontBattleExtra), $c - call Get2bpp_2 - ld hl, VTiles2 tile $70 - ld de, FontBattleExtra + $10 * LEN_2BPP_TILE - lb bc, BANK(FontBattleExtra), 3 - call Get2bpp_2 - call LoadFrame - -LoadHPBar: ; fb50d - ld de, EnemyHPBarBorderGFX - ld hl, VTiles2 tile $6c - lb bc, BANK(EnemyHPBarBorderGFX), 4 - call Get1bpp_2 - ld de, HPExpBarBorderGFX - ld hl, VTiles2 tile $73 - lb bc, BANK(HPExpBarBorderGFX), 6 - call Get1bpp_2 - ld de, ExpBarGFX - ld hl, VTiles2 tile $55 - lb bc, BANK(ExpBarGFX), 9 - call Get2bpp_2 - ld de, MobilePhoneTilesGFX + 9 * LEN_2BPP_TILE - ld hl, VTiles2 tile $5e - lb bc, BANK(MobilePhoneTilesGFX), 2 - call Get2bpp_2 - ret -; fb53e - -Functionfb53e: ; fb53e - call _LoadFontsBattleExtra - ld de, EnemyHPBarBorderGFX - ld hl, VTiles2 tile $6c - lb bc, BANK(EnemyHPBarBorderGFX), 4 - call Get1bpp_2 - ld de, HPExpBarBorderGFX - ld hl, VTiles2 tile $78 - lb bc, BANK(HPExpBarBorderGFX), 1 - call Get1bpp_2 - ld de, HPExpBarBorderGFX + 3 * LEN_1BPP_TILE - ld hl, VTiles2 tile $76 - lb bc, BANK(HPExpBarBorderGFX), 2 - call Get1bpp_2 - ld de, ExpBarGFX - ld hl, VTiles2 tile $55 - lb bc, BANK(ExpBarGFX), 8 - call Get2bpp_2 - -Functionfb571: ; fb571 - ld de, GFX_f89b0 - ld hl, VTiles2 tile $31 - lb bc, BANK(GFX_f89b0), $11 - call Get2bpp_2 - ret -; fb57e - -; These functions seem to be related to backwards compatibility - -Functionfb57e: ; fb57e - ld a, [wd003] - ld hl, OTPartyMon1Species - call GetPartyLocation - push hl - ld a, [wd003] - inc a - ld c, a - ld b, 0 - ld hl, OTPartyCount - add hl, bc - ld a, [hl] - pop hl - cp EGG - jr z, .asm_fb59c - cp [hl] - jr nz, .asm_fb5db - -.asm_fb59c - ld b, h - ld c, l - ld hl, MON_LEVEL - add hl, bc - ld a, [hl] - cp 101 - jr nc, .asm_fb5db - ld a, [wLinkMode] - cp LINK_TIMECAPSULE - jr nz, .asm_fb5d9 - ld hl, OTPartySpecies - ld a, [wd003] - ld c, a - ld b, 0 - add hl, bc - ld a, [hl] - - ; Magnemite and Magneton's types changed - ; from Electric to Electric/Steel. - cp MAGNEMITE - jr z, .asm_fb5d9 - cp MAGNETON - jr z, .asm_fb5d9 - - ld [CurSpecies], a - call GetBaseData - ld hl, wcbea -rept 2 - add hl, bc -endr - ld a, [BaseType1] - cp [hl] - jr nz, .asm_fb5db - inc hl - ld a, [BaseType2] - cp [hl] - jr nz, .asm_fb5db - -.asm_fb5d9 - and a - ret - -.asm_fb5db - scf - ret -; fb5dd - -Functionfb5dd: ; fb5dd - ld a, [wd002] - ld d, a - ld a, [PartyCount] - ld b, a - ld c, $0 -.asm_fb5e7 - ld a, c - cp d - jr z, .asm_fb5f8 - push bc - ld a, c - ld hl, PartyMon1HP - call GetPartyLocation - pop bc - ld a, [hli] - or [hl] - jr nz, .asm_fb60b - -.asm_fb5f8 - inc c - dec b - jr nz, .asm_fb5e7 - ld a, [wd003] - ld hl, OTPartyMon1HP - call GetPartyLocation - ld a, [hli] - or [hl] - jr nz, .asm_fb60b - scf - ret - -.asm_fb60b - and a - ret -; fb60d - -Functionfb60d: ; fb60d - hlcoord 4, 0 - ld de, PlayerName - call PlaceString - ld a, $14 - ld [bc], a - hlcoord 4, 8 - ld de, wd26b - call PlaceString - ld a, $14 - ld [bc], a - hlcoord 7, 1 - ld de, PartySpecies - call Functionfb634 - hlcoord 7, 9 - ld de, OTPartySpecies - -Functionfb634: ; fb634 - ld c, $0 -.asm_fb636 - ld a, [de] - cp $ff - ret z - ld [wd265], a - push bc - push hl - push de - push hl - ld a, c - ld [hProduct], a - call GetPokemonName - pop hl - call PlaceString - pop de - inc de - pop hl - ld bc, SCREEN_WIDTH - add hl, bc - pop bc - inc c - jr .asm_fb636 -; fb656 - -KantoMonSpecials: ; fb656 -; The original special base stat for -; each Kanto monster from Red/Blue. - db 65 ; BULBASAUR - db 80 ; IVYSAUR - db 100 ; VENUSAUR - db 50 ; CHARMANDER - db 65 ; CHARMELEON - db 85 ; CHARIZARD - db 50 ; SQUIRTLE - db 65 ; WARTORTLE - db 85 ; BLASTOISE - db 20 ; CATERPIE - db 25 ; METAPOD - db 80 ; BUTTERFREE - db 20 ; WEEDLE - db 25 ; KAKUNA - db 45 ; BEEDRILL - db 35 ; PIDGEY - db 50 ; PIDGEOTTO - db 70 ; PIDGEOT - db 25 ; RATTATA - db 50 ; RATICATE - db 31 ; SPEAROW - db 61 ; FEAROW - db 40 ; EKANS - db 65 ; ARBOK - db 50 ; PIKACHU - db 90 ; RAICHU - db 30 ; SANDSHREW - db 55 ; SANDSLASH - db 40 ; NIDORAN_F - db 55 ; NIDORINA - db 75 ; NIDOQUEEN - db 40 ; NIDORAN_M - db 55 ; NIDORINO - db 75 ; NIDOKING - db 60 ; CLEFAIRY - db 85 ; CLEFABLE - db 65 ; VULPIX - db 100 ; NINETALES - db 25 ; JIGGLYPUFF - db 50 ; WIGGLYTUFF - db 40 ; ZUBAT - db 75 ; GOLBAT - db 75 ; ODDISH - db 85 ; GLOOM - db 100 ; VILEPLUME - db 55 ; PARAS - db 80 ; PARASECT - db 40 ; VENONAT - db 90 ; VENOMOTH - db 45 ; DIGLETT - db 70 ; DUGTRIO - db 40 ; MEOWTH - db 65 ; PERSIAN - db 50 ; PSYDUCK - db 80 ; GOLDUCK - db 35 ; MANKEY - db 60 ; PRIMEAPE - db 50 ; GROWLITHE - db 80 ; ARCANINE - db 40 ; POLIWAG - db 50 ; POLIWHIRL - db 70 ; POLIWRATH - db 105 ; ABRA - db 120 ; KADABRA - db 135 ; ALAKAZAM - db 35 ; MACHOP - db 50 ; MACHOKE - db 65 ; MACHAMP - db 70 ; BELLSPROUT - db 85 ; WEEPINBELL - db 100 ; VICTREEBEL - db 100 ; TENTACOOL - db 120 ; TENTACRUEL - db 30 ; GEODUDE - db 45 ; GRAVELER - db 55 ; GOLEM - db 65 ; PONYTA - db 80 ; RAPIDASH - db 40 ; SLOWPOKE - db 80 ; SLOWBRO - db 95 ; MAGNEMITE - db 120 ; MAGNETON - db 58 ; FARFETCH_D - db 35 ; DODUO - db 60 ; DODRIO - db 70 ; SEEL - db 95 ; DEWGONG - db 40 ; GRIMER - db 65 ; MUK - db 45 ; SHELLDER - db 85 ; CLOYSTER - db 100 ; GASTLY - db 115 ; HAUNTER - db 130 ; GENGAR - db 30 ; ONIX - db 90 ; DROWZEE - db 115 ; HYPNO - db 25 ; KRABBY - db 50 ; KINGLER - db 55 ; VOLTORB - db 80 ; ELECTRODE - db 60 ; EXEGGCUTE - db 125 ; EXEGGUTOR - db 40 ; CUBONE - db 50 ; MAROWAK - db 35 ; HITMONLEE - db 35 ; HITMONCHAN - db 60 ; LICKITUNG - db 60 ; KOFFING - db 85 ; WEEZING - db 30 ; RHYHORN - db 45 ; RHYDON - db 105 ; CHANSEY - db 100 ; TANGELA - db 40 ; KANGASKHAN - db 70 ; HORSEA - db 95 ; SEADRA - db 50 ; GOLDEEN - db 80 ; SEAKING - db 70 ; STARYU - db 100 ; STARMIE - db 100 ; MR__MIME - db 55 ; SCYTHER - db 95 ; JYNX - db 85 ; ELECTABUZZ - db 85 ; MAGMAR - db 55 ; PINSIR - db 70 ; TAUROS - db 20 ; MAGIKARP - db 100 ; GYARADOS - db 95 ; LAPRAS - db 48 ; DITTO - db 65 ; EEVEE - db 110 ; VAPOREON - db 110 ; JOLTEON - db 110 ; FLAREON - db 75 ; PORYGON - db 90 ; OMANYTE - db 115 ; OMASTAR - db 45 ; KABUTO - db 70 ; KABUTOPS - db 60 ; AERODACTYL - db 65 ; SNORLAX - db 125 ; ARTICUNO - db 125 ; ZAPDOS - db 125 ; MOLTRES - db 50 ; DRATINI - db 70 ; DRAGONAIR - db 100 ; DRAGONITE - db 154 ; MEWTWO - db 100 ; MEW -; fb6ed - - -INCLUDE "event/name_rater.asm" - - -PlaySlowCry: ; fb841 - ld a, [ScriptVar] - call LoadCryHeader - jr c, .done - - ld hl, CryPitch - ld a, [hli] - ld h, [hl] - ld l, a - ld bc, -$140 - add hl, bc - ld a, l - ld [CryPitch], a - ld a, h - ld [CryPitch + 1], a - ld hl, CryLength - ld a, [hli] - ld h, [hl] - ld l, a - ld bc, $60 - add hl, bc - ld a, l - ld [CryLength], a - ld a, h - ld [CryLength + 1], a - callba _PlayCryHeader - call WaitSFX - -.done - ret -; fb877 - -NewPokedexEntry: ; fb877 - ld a, [hMapAnims] - push af - xor a - ld [hMapAnims], a - call LowVolume - call ClearBGPalettes - call ClearTileMap - call UpdateSprites - call ClearSprites - ld a, [wPokedexStatus] - push af - ld a, [hSCX] - add $5 - ld [hSCX], a - xor a - ld [wPokedexStatus], a - callba Function41a7f - call WaitPressAorB_BlinkCursor - ld a, $1 - ld [wPokedexStatus], a - callba Function4424d - call WaitPressAorB_BlinkCursor - pop af - ld [wPokedexStatus], a - call MaxVolume - call FadeToWhite - ld a, [hSCX] - add $fb - ld [hSCX], a - call Functionfb8c8 - pop af - ld [hMapAnims], a - ret -; fb8c8 - -Functionfb8c8: ; fb8c8 - call ClearTileMap - call LoadFontsExtra - call LoadStandardFont - callba Function40ab2 - call Function3200 - callba GetEnemyMonDVs - ld a, [hli] - ld [TempMonDVs], a - ld a, [hl] - ld [TempMonDVs + 1], a - ld b, SCGB_1C - call GetSGBLayout - call SetPalettes - ret -; fb8f1 - -ConvertMon_2to1: ; fb8f1 -; Takes the Gen-2 Pokemon number stored in wd265, finds it in the Pokered_MonIndices table, and returns its index in wd265. - push bc - push hl - ld a, [wd265] - ld b, a - ld c, 0 - ld hl, Pokered_MonIndices -.loop - inc c - ld a, [hli] - cp b - jr nz, .loop - ld a, c - ld [wd265], a - pop hl - pop bc - ret -; fb908 - -ConvertMon_1to2: ; fb908 -; Takes the Gen-1 Pokemon number stored in wd265 and returns the corresponding value from Pokered_MonIndices in wd265. - push bc - push hl - ld a, [wd265] - dec a - ld hl, Pokered_MonIndices - ld b, 0 - ld c, a - add hl, bc - ld a, [hl] - ld [wd265], a - pop hl - pop bc - ret -; fb91c - -Pokered_MonIndices: ; fb91c - db RHYDON - db KANGASKHAN - db NIDORAN_M - db CLEFAIRY - db SPEAROW - db VOLTORB - db NIDOKING - db SLOWBRO - db IVYSAUR - db EXEGGUTOR - db LICKITUNG - db EXEGGCUTE - db GRIMER - db GENGAR - db NIDORAN_F - db NIDOQUEEN - db CUBONE - db RHYHORN - db LAPRAS - db ARCANINE - db MEW - db GYARADOS - db SHELLDER - db TENTACOOL - db GASTLY - db SCYTHER - db STARYU - db BLASTOISE - db PINSIR - db TANGELA - db SCIZOR - db SHUCKLE - db GROWLITHE - db ONIX - db FEAROW - db PIDGEY - db SLOWPOKE - db KADABRA - db GRAVELER - db CHANSEY - db MACHOKE - db MR__MIME - db HITMONLEE - db HITMONCHAN - db ARBOK - db PARASECT - db PSYDUCK - db DROWZEE - db GOLEM - db HERACROSS - db MAGMAR - db HO_OH - db ELECTABUZZ - db MAGNETON - db KOFFING - db SNEASEL - db MANKEY - db SEEL - db DIGLETT - db TAUROS - db TEDDIURSA - db URSARING - db SLUGMA - db FARFETCH_D - db VENONAT - db DRAGONITE - db MAGCARGO - db SWINUB - db PILOSWINE - db DODUO - db POLIWAG - db JYNX - db MOLTRES - db ARTICUNO - db ZAPDOS - db DITTO - db MEOWTH - db KRABBY - db CORSOLA - db REMORAID - db OCTILLERY - db VULPIX - db NINETALES - db PIKACHU - db RAICHU - db DELIBIRD - db MANTINE - db DRATINI - db DRAGONAIR - db KABUTO - db KABUTOPS - db HORSEA - db SEADRA - db SKARMORY - db HOUNDOUR - db SANDSHREW - db SANDSLASH - db OMANYTE - db OMASTAR - db JIGGLYPUFF - db WIGGLYTUFF - db EEVEE - db FLAREON - db JOLTEON - db VAPOREON - db MACHOP - db ZUBAT - db EKANS - db PARAS - db POLIWHIRL - db POLIWRATH - db WEEDLE - db KAKUNA - db BEEDRILL - db HOUNDOOM - db DODRIO - db PRIMEAPE - db DUGTRIO - db VENOMOTH - db DEWGONG - db KINGDRA - db PHANPY - db CATERPIE - db METAPOD - db BUTTERFREE - db MACHAMP - db DONPHAN - db GOLDUCK - db HYPNO - db GOLBAT - db MEWTWO - db SNORLAX - db MAGIKARP - db PORYGON2 - db STANTLER - db MUK - db SMEARGLE - db KINGLER - db CLOYSTER - db TYROGUE - db ELECTRODE - db CLEFABLE - db WEEZING - db PERSIAN - db MAROWAK - db HITMONTOP - db HAUNTER - db ABRA - db ALAKAZAM - db PIDGEOTTO - db PIDGEOT - db STARMIE - db BULBASAUR - db VENUSAUR - db TENTACRUEL - db SMOOCHUM - db GOLDEEN - db SEAKING - db ELEKID - db MAGBY - db MILTANK - db BLISSEY - db PONYTA - db RAPIDASH - db RATTATA - db RATICATE - db NIDORINO - db NIDORINA - db GEODUDE - db PORYGON - db AERODACTYL - db RAIKOU - db MAGNEMITE - db ENTEI - db SUICUNE - db CHARMANDER - db SQUIRTLE - db CHARMELEON - db WARTORTLE - db CHARIZARD - db LARVITAR - db PUPITAR - db TYRANITAR - db LUGIA - db ODDISH - db GLOOM - db VILEPLUME - db BELLSPROUT - db WEEPINBELL - db VICTREEBEL - db CHIKORITA - db BAYLEEF - db MEGANIUM - db CYNDAQUIL - db QUILAVA - db TYPHLOSION - db TOTODILE - db CROCONAW - db FERALIGATR - db SENTRET - db FURRET - db HOOTHOOT - db NOCTOWL - db LEDYBA - db LEDIAN - db SPINARAK - db ARIADOS - db CROBAT - db CHINCHOU - db LANTURN - db PICHU - db CLEFFA - db IGGLYBUFF - db TOGEPI - db TOGETIC - db NATU - db XATU - db MAREEP - db FLAAFFY - db AMPHAROS - db BELLOSSOM - db MARILL - db AZUMARILL - db SUDOWOODO - db POLITOED - db HOPPIP - db SKIPLOOM - db JUMPLUFF - db AIPOM - db SUNKERN - db SUNFLORA - db YANMA - db WOOPER - db QUAGSIRE - db ESPEON - db UMBREON - db MURKROW - db SLOWKING - db MISDREAVUS - db UNOWN - db WOBBUFFET - db GIRAFARIG - db PINECO - db FORRETRESS - db DUNSPARCE - db GLIGAR - db STEELIX - db SNUBBULL - db GRANBULL - db QWILFISH - db WOBBUFFET - db WOBBUFFET -; fba18 - +INCLUDE "gfx/font.asm" +INCLUDE "engine/time_capsule/conversion.asm" UpdateUnownDex: ; fba18 ld a, [UnownLetter] @@ -34747,914 +25793,9 @@ SECTION "bank3F", ROMX, BANK[$3F] INCLUDE "tilesets/animations.asm" +INCLUDE "engine/npctrade.asm" -; Trade struct -TRADE_DIALOG EQU 0 -TRADE_GIVEMON EQU 1 -TRADE_GETMON EQU 2 -TRADE_NICK EQU 3 -TRADE_DVS EQU 14 -TRADE_ITEM EQU 16 -TRADE_OT_ID EQU 17 -TRADE_OT_NAME EQU 19 -TRADE_GENDER EQU 30 -TRADE_PADDING EQU 31 - -; Trade dialogs -TRADE_INTRO EQU 0 -TRADE_CANCEL EQU 1 -TRADE_WRONG EQU 2 -TRADE_COMPLETE EQU 3 -TRADE_AFTER EQU 4 - -NPCTrade:: ; fcba8 - ld a, e - ld [wJumptableIndex], a - call Functionfcc59 - ld b, CHECK_FLAG - call TradeFlagAction - ld a, TRADE_AFTER - jr nz, .done - - ld a, TRADE_INTRO - call PrintTradeText - - call YesNoBox - ld a, TRADE_CANCEL - jr c, .done - -; Select givemon from party - ld b, 6 - callba Function5001d - ld a, TRADE_CANCEL - jr c, .done - - ld e, TRADE_GIVEMON - call GetTradeAttribute - ld a, [CurPartySpecies] - cp [hl] - ld a, TRADE_WRONG - jr nz, .done - - call CheckTradeGender - ld a, TRADE_WRONG - jr c, .done - - ld b, SET_FLAG - call TradeFlagAction - - ld hl, ConnectLinkCableText - call PrintText - - call Functionfcc63 - call Functionfcc07 - call GetTradeMonNames - - ld hl, TradedForText - call PrintText - - call RestartMapMusic - - ld a, TRADE_COMPLETE - -.done - call PrintTradeText - ret -; fcc07 - -Functionfcc07: ; fcc07 - call DisableSpriteUpdates - ld a, [wJumptableIndex] - push af - ld a, [wcf64] - push af - predef Function28f24 - pop af - ld [wcf64], a - pop af - ld [wJumptableIndex], a - call Function2b74 - ret -; fcc23 - -CheckTradeGender: ; fcc23 - xor a - ld [MonType], a - - ld e, TRADE_GENDER - call GetTradeAttribute - ld a, [hl] - and a - jr z, .asm_fcc46 - cp 1 - jr z, .asm_fcc3e - - callba GetGender - jr nz, .asm_fcc48 - jr .asm_fcc46 - -.asm_fcc3e - callba GetGender - jr z, .asm_fcc48 - -.asm_fcc46 - and a - ret - -.asm_fcc48 - scf - ret -; fcc4a - -TradeFlagAction: ; fcc4a - ld hl, wd960 - ld a, [wJumptableIndex] - ld c, a - predef FlagPredef - ld a, c - and a - ret -; fcc59 - -Functionfcc59: ; fcc59 - ld e, TRADE_DIALOG - call GetTradeAttribute - ld a, [hl] - ld [wcf64], a - ret -; fcc63 - -Functionfcc63: ; fcc63 - ld e, TRADE_GIVEMON - call GetTradeAttribute - ld a, [hl] - ld [wc6d0], a - - ld e, TRADE_GETMON - call GetTradeAttribute - ld a, [hl] - ld [wc702], a - - ld a, [wc6d0] - ld de, wc6d1 - call Functionfcde8 - call Functionfcdf4 - - ld a, [wc702] - ld de, wc703 - call Functionfcde8 - call Functionfcdf4 - - ld hl, PartyMonOT - ld bc, NAME_LENGTH - call Functionfcdd7 - ld de, wc6f2 - call Functionfcdf4 - - ld hl, PlayerName - ld de, wc6e7 - call Functionfcdf4 - - ld hl, PartyMon1ID - ld bc, PARTYMON_STRUCT_LENGTH - call Functionfcdd7 - ld de, wc6ff - call Functionfce0f - - ld hl, PartyMon1DVs - ld bc, PARTYMON_STRUCT_LENGTH - call Functionfcdd7 - ld de, wc6fd - call Functionfce0f - - ld hl, PartyMon1Species - ld bc, PARTYMON_STRUCT_LENGTH - call Functionfcdd7 - ld b, h - ld c, l - callba GetCaughtGender - ld a, c - ld [wc701], a - - ld e, TRADE_DIALOG - call GetTradeAttribute - ld a, [hl] - cp TRADE_COMPLETE - ld a, 1 - jr c, .asm_fcce6 - ld a, 2 -.asm_fcce6 - ld [wEnemyCharging], a - - ld hl, PartyMon1Level - ld bc, PARTYMON_STRUCT_LENGTH - call Functionfcdd7 - ld a, [hl] - ld [CurPartyLevel], a - ld a, [wc702] - ld [CurPartySpecies], a - xor a - ld [MonType], a - ld [wPokemonWithdrawDepositParameter], a - callab Functione039 - predef TryAddMonToParty - - ld e, TRADE_DIALOG - call GetTradeAttribute - ld a, [hl] - cp TRADE_COMPLETE - ld b, 0 - jr c, .asm_fcd1c - ld b, 1 -.asm_fcd1c - callba SetGiftPartyMonCaughtData - - ld e, TRADE_NICK - call GetTradeAttribute - ld de, wc70e - call Functionfcdf4 - - ld hl, PartyMonNicknames - ld bc, PKMN_NAME_LENGTH - call Functionfcdde - ld hl, wc70e - call Functionfcdf4 - - ld e, TRADE_OT_NAME - call GetTradeAttribute - push hl - ld de, wc724 - call Functionfcdf4 - pop hl - ld de, wc719 - call Functionfcdf4 - - ld hl, PartyMonOT - ld bc, NAME_LENGTH - call Functionfcdde - ld hl, wc724 - call Functionfcdf4 - - ld e, TRADE_DVS - call GetTradeAttribute - ld de, wEnemyTrappingMove - call Functionfce0f - - ld hl, PartyMon1DVs - ld bc, PARTYMON_STRUCT_LENGTH - call Functionfcdde - ld hl, wEnemyTrappingMove - call Functionfce0f - - ld e, TRADE_OT_ID - call GetTradeAttribute - ld de, wPlayerCharging - call Functionfce15 - - ld hl, PartyMon1ID - ld bc, PARTYMON_STRUCT_LENGTH - call Functionfcdde - ld hl, wEnemyWrapCount - call Functionfce0f - - ld e, TRADE_ITEM - call GetTradeAttribute - push hl - ld hl, PartyMon1Item - ld bc, PARTYMON_STRUCT_LENGTH - call Functionfcdde - pop hl - ld a, [hl] - ld [de], a - - push af - push bc - push de - push hl - ld a, [CurPartyMon] - push af - ld a, [PartyCount] - dec a - ld [CurPartyMon], a - callba Functione134 - pop af - ld [CurPartyMon], a - pop hl - pop de - pop bc - pop af - ret -; fcdc2 - - -GetTradeAttribute: ; 0xfcdc2 - ld d, 0 - push de - ld a, [wJumptableIndex] - and $f - swap a - ld e, a - ld d, 0 - ld hl, NPCTrades -rept 2 - add hl, de -endr - pop de - add hl, de - ret -; 0xfcdd7 - -Functionfcdd7: ; fcdd7 - ld a, [CurPartyMon] - call AddNTimes - ret -; fcdde - -Functionfcdde: ; fcdde - ld a, [PartyCount] - dec a - call AddNTimes - ld e, l - ld d, h - ret -; fcde8 - -Functionfcde8: ; fcde8 - push de - ld [wd265], a - call GetBasePokemonName - ld hl, StringBuffer1 - pop de - ret -; fcdf4 - -Functionfcdf4: ; fcdf4 - ld bc, NAME_LENGTH - call CopyBytes - ret -; fcdfb - -Functionfcdfb: ; fcdfb - ld bc, 4 - call CopyBytes - ld a, $50 - ld [de], a - ret -; fce05 - -Functionfce05: ; fce05 - ld bc, 3 - call CopyBytes - ld a, $50 - ld [de], a - ret -; fce0f - -Functionfce0f: ; fce0f - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - ret -; fce15 - -Functionfce15: ; fce15 - ld a, [hli] - ld [de], a - dec de - ld a, [hl] - ld [de], a - ret -; fce1b - -GetTradeMonNames: ; fce1b - ld e, TRADE_GETMON - call GetTradeAttribute - ld a, [hl] - call Functionfcde8 - - ld de, StringBuffer2 - call Functionfcdf4 - - ld e, TRADE_GIVEMON - call GetTradeAttribute - ld a, [hl] - call Functionfcde8 - - ld de, wd050 - call Functionfcdf4 - - ld hl, StringBuffer1 -.loop - ld a, [hli] - cp "@" - jr nz, .loop - - dec hl - push hl - ld e, TRADE_GENDER - call GetTradeAttribute - ld a, [hl] - pop hl - and a - ret z - - cp 1 - ld a, "♂" - jr z, .done - ld a, "♀" -.done - ld [hli], a - ld [hl], "@" - ret -; fce58 - - -NPCTrades: ; fce58 - db 0, ABRA, MACHOP, "MUSCLE@@@@@", $37, $66, GOLD_BERRY, $54, $92, "MIKE@@@@@@@", 0, 0 - db 0, BELLSPROUT, ONIX, "ROCKY@@@@@@", $96, $66, BITTER_BERRY, $1e, $bf, "KYLE@@@@@@@", 0, 0 - db 1, KRABBY, VOLTORB, "VOLTY@@@@@@", $98, $88, PRZCUREBERRY, $05, $72, "TIM@@@@@@@@", 0, 0 - db 3, DRAGONAIR, DODRIO, "DORIS@@@@@@", $77, $66, SMOKE_BALL, $1b, $01, "EMY@@@@@@@@", 2, 0 - db 2, HAUNTER, XATU, "PAUL@@@@@@@", $96, $86, MYSTERYBERRY, $00, $3d, "CHRIS@@@@@@", 0, 0 - db 3, CHANSEY, AERODACTYL, "AEROY@@@@@@", $96, $66, GOLD_BERRY, $7b, $67, "KIM@@@@@@@@", 0, 0 - db 0, DUGTRIO, MAGNETON, "MAGGIE@@@@@", $96, $66, METAL_COAT, $a2, $c3, "FOREST@@@@@", 0, 0 -; fcf38 - - -PrintTradeText: ; fcf38 - push af - call GetTradeMonNames - pop af - ld bc, 2 * 4 - ld hl, TradeTexts - call AddNTimes - ld a, [wcf64] - ld c, a -rept 2 - add hl, bc -endr - ld a, [hli] - ld h, [hl] - ld l, a - call PrintText - ret -; fcf53 - -TradeTexts: ; fcf53 -; intro - dw TradeIntroText1 - dw TradeIntroText2 - dw TradeIntroText3 - dw TradeIntroText4 - -; cancel - dw TradeCancelText1 - dw TradeCancelText2 - dw TradeCancelText3 - dw TradeCancelText4 - -; wrong mon - dw TradeWrongText1 - dw TradeWrongText2 - dw TradeWrongText3 - dw TradeWrongText4 - -; completed - dw TradeCompleteText1 - dw TradeCompleteText2 - dw TradeCompleteText3 - dw TradeCompleteText4 - -; after - dw TradeAfterText1 - dw TradeAfterText2 - dw TradeAfterText3 - dw TradeAfterText4 -; fcf7b - - -ConnectLinkCableText: ; 0xfcf7b - ; OK, connect the Game Link Cable. - text_jump UnknownText_0x1bd407 - db "@" -; 0xfcf80 - - -TradedForText: ; 0xfcf80 - ; traded givemon for getmon - text_jump UnknownText_0x1bd429 - start_asm - - ld de, MUSIC_NONE - call PlayMusic - call DelayFrame - ld hl, .done - ret - -.done - ; sound0x0A - ; interpret_data - text_jump UnknownText_0x1bd445 - db "@" -; 0xfcf97 - - -TradeIntroText1: ; 0xfcf97 - ; I collect #MON. Do you have @ ? Want to trade it for my @ ? - text_jump UnknownText_0x1bd449 - db "@" -; 0xfcf9c - -TradeCancelText1: ; 0xfcf9c - ; You don't want to trade? Aww… - text_jump UnknownText_0x1bd48c - db "@" -; 0xfcfa1 - -TradeWrongText1: ; 0xfcfa1 - ; Huh? That's not @ . What a letdown… - text_jump UnknownText_0x1bd4aa - db "@" -; 0xfcfa6 - -TradeCompleteText1: ; 0xfcfa6 - ; Yay! I got myself @ ! Thanks! - text_jump UnknownText_0x1bd4d2 - db "@" -; 0xfcfab - -TradeAfterText1: ; 0xfcfab - ; Hi, how's my old @ doing? - text_jump UnknownText_0x1bd4f4 - db "@" -; 0xfcfb0 - - -TradeIntroText2: -TradeIntroText3: ; 0xfcfb0 - ; Hi, I'm looking for this #MON. If you have @ , would you trade it for my @ ? - text_jump UnknownText_0x1bd512 - db "@" -; 0xfcfb5 - -TradeCancelText2: -TradeCancelText3: ; 0xfcfb5 - ; You don't have one either? Gee, that's really disappointing… - text_jump UnknownText_0x1bd565 - db "@" -; 0xfcfba - -TradeWrongText2: -TradeWrongText3: ; 0xfcfba - ; You don't have @ ? That's too bad, then. - text_jump UnknownText_0x1bd5a1 - db "@" -; 0xfcfbf - -TradeCompleteText2: ; 0xfcfbf - ; Great! Thank you! I finally got @ . - text_jump UnknownText_0x1bd5cc - db "@" -; 0xfcfc4 - -TradeAfterText2: ; 0xfcfc4 - ; Hi! The @ you traded me is doing great! - text_jump UnknownText_0x1bd5f4 - db "@" -; 0xfcfc9 - - -TradeIntroText4: ; 0xfcfc9 - ; 's cute, but I don't have it. Do you have @ ? Want to trade it for my @ ? - text_jump UnknownText_0x1bd621 - db "@" -; 0xfcfce - -TradeCancelText4: ; 0xfcfce - ; You don't want to trade? Oh, darn… - text_jump UnknownText_0x1bd673 - db "@" -; 0xfcfd3 - -TradeWrongText4: ; 0xfcfd3 - ; That's not @ . Please trade with me if you get one. - text_jump UnknownText_0x1bd696 - db "@" -; 0xfcfd8 - -TradeCompleteText4: ; 0xfcfd8 - ; Wow! Thank you! I always wanted @ ! - text_jump UnknownText_0x1bd6cd - db "@" -; 0xfcfdd - -TradeAfterText4: ; 0xfcfdd - ; How is that @ I traded you doing? Your @ 's so cute! - text_jump UnknownText_0x1bd6f5 - db "@" -; 0xfcfe2 - - -TradeCompleteText3: ; 0xfcfe2 - ; Uh? What happened? - text_jump UnknownText_0x1bd731 - db "@" -; 0xfcfe7 - -TradeAfterText3: ; 0xfcfe7 - ; Trading is so odd… I still have a lot to learn about it. - text_jump UnknownText_0x1bd745 - db "@" -; 0xfcfec - - -MomTriesToBuySomething:: ; fcfec - ld a, [wMapReentryScriptQueueFlag] - and a - ret nz - call GetMapHeaderPhoneServiceNybble - and a - ret nz - xor a - ld [wdc18], a - call CheckBalance_MomItem2 - ret nc - call Functionfd0c3 - ret nc - ld b, BANK(UnknownScript_0xfd00f) - ld de, UnknownScript_0xfd00f - callba LoadScriptBDE - scf - ret -; fd00f - -UnknownScript_0xfd00f: ; 0xfd00f - callasm Functionfd017 - farjump Script_ReceivePhoneCall -; 0xfd017 - -Functionfd017: ; fd017 - call MomBuysItem_DeductFunds - call Functionfd0eb - ld a, [wdc18] - and a - jr nz, .ok - ld hl, wdc17 - inc [hl] -.ok - ld a, 1 - ld [wCurrentCaller], a - ld bc, wd03f - ld hl, 0 - add hl, bc - ld [hl], 0 - inc hl - ld [hl], 1 - ld hl, 9 - add hl, bc - ld a, $3f - ld [hli], a - ld a, e - ld [hli], a - ld a, d - ld [hl], a - ret -; fd044 - -CheckBalance_MomItem2: ; fd044 - ld a, [wdc17] - cp 10 - jr nc, .nope - call GetItemFromMom - ld a, [hli] - ld [hMoneyTemp], a - ld a, [hli] - ld [hMoneyTemp + 1], a - ld a, [hli] - ld [hMoneyTemp + 2], a - ld de, wMomsMoney - ld bc, hMoneyTemp - callba CompareMoney - jr nc, .have_enough_money - -.nope - jr .check_have_2300 - -.have_enough_money - scf - ret - -.check_have_2300 - ld hl, hMoneyTemp - ld [hl], (2300 / $10000) ; $00 - inc hl - ld [hl], ((2300 % $10000) / $100) ; $08 - inc hl - ld [hl], (2300 % $100) ; $fc -.loop - ld de, wdc19 - ld bc, wMomsMoney - callba CompareMoney - jr z, .exact - jr nc, .less_than - call Functionfd099 - jr .loop - -.less_than - xor a - ret - -.exact - call Functionfd099 - ld a, 5 - call RandomRange - inc a - ld [wdc18], a - scf - ret -; fd099 - -Functionfd099: ; fd099 - ld de, wdc19 - ld bc, hMoneyTemp - callba AddMoney - ret -; fd0a6 - - -MomBuysItem_DeductFunds: ; fd0a6 (3f:50a6) - call GetItemFromMom - ld de, 3 - add hl, de - ld a, [hli] - ld [hMoneyTemp], a - ld a, [hli] - ld [hMoneyTemp + 1], a - ld a, [hli] - ld [hMoneyTemp + 2], a - ld de, wMomsMoney - ld bc, hMoneyTemp - callba TakeMoney - ret - - -Functionfd0c3: ; fd0c3 - call GetItemFromMom - ld de, 6 - add hl, de - ld a, [hli] - cp 1 - jr z, .not_doll - ld a, [hl] - ld c, a - ld b, 1 - callba DecorationFlagAction_c - scf - ret - -.not_doll - ld a, [hl] - ld [CurItem], a - ld a, $1 - ld [wItemQuantityChangeBuffer], a - ld hl, PCItems - call ReceiveItem - ret -; fd0eb - - -Functionfd0eb: ; fd0eb (3f:50eb) - call GetItemFromMom - ld de, 6 ; field - add hl, de - ld a, [hli] - ld de, Script_MomBoughtItem - cp 1 - ret z - ld de, Script_MomBoughtDoll - ret -; fd0fd (3f:50fd) - -Script_MomBoughtItem: ; 0xfd0fd - writetext _MomText_HiHowAreYou - writetext _MomText_FoundAnItem - writetext _MomText_BoughtWithYourMoney - writetext _MomText_ItsInPC - end -; 0xfd10a - -Script_MomBoughtDoll: ; 0xfd10a - writetext _MomText_HiHowAreYou - writetext _MomText_FoundADoll - writetext _MomText_BoughtWithYourMoney - writetext _MomText_ItsInRoom - end -; 0xfd117 - - -GetItemFromMom: ; fd117 - ld a, [wdc18] - and a - jr z, .zero - dec a - ld de, MomItems_1 - jr .incave - -.zero - ld a, [wdc17] - cp 10 ; length of MomItems_2 - jr c, .ok - xor a - -.ok - ld de, MomItems_2 - -.incave - ld l, a - ld h, 0 -rept 3 ; multiply hl by 8 - add hl, hl -endr - add hl, de - ret -; fd136 - -momitem: macro -; money to trigger, cost, kind, item - dt \1 - dt \2 - db \3, \4 -ENDM - - -MomItems_1: ; fd136 - momitem 0, 600, MOM_ITEM, SUPER_POTION - momitem 0, 90, MOM_ITEM, ANTIDOTE - momitem 0, 180, MOM_ITEM, POKE_BALL - momitem 0, 450, MOM_ITEM, ESCAPE_ROPE - momitem 0, 500, MOM_ITEM, GREAT_BALL -; fd15e - -MomItems_2: ; fd15e - momitem 900, 600, MOM_ITEM, SUPER_POTION - momitem 4000, 270, MOM_ITEM, REPEL - momitem 7000, 600, MOM_ITEM, SUPER_POTION - momitem 10000, 1800, MOM_DOLL, DECO_CHARMANDER_DOLL - momitem 15000, 3000, MOM_ITEM, MOON_STONE - momitem 19000, 600, MOM_ITEM, SUPER_POTION - momitem 30000, 4800, MOM_DOLL, DECO_CLEFAIRY_DOLL - momitem 40000, 900, MOM_ITEM, HYPER_POTION - momitem 50000, 8000, MOM_DOLL, DECO_PIKACHU_DOLL - momitem 100000, 22800, MOM_DOLL, DECO_BIG_SNORLAX_DOLL -; fd1ae - - db 0, 0, 0 ; XXX - -_MomText_HiHowAreYou: ; 0xfd1b1 - ; Hi, ! How are you? - text_jump UnknownText_0x1bc615 - db "@" -; 0xfd1b6 - -_MomText_FoundAnItem: ; 0xfd1b6 - ; I found a useful item shopping, so - text_jump UnknownText_0x1bc62a - db "@" -; 0xfd1bb - -_MomText_BoughtWithYourMoney: ; 0xfd1bb - ; I bought it with your money. Sorry! - text_jump UnknownText_0x1bc64e - db "@" -; 0xfd1c0 - -_MomText_ItsInPC: ; 0xfd1c0 - ; It's in your PC. You'll like it! - text_jump UnknownText_0x1bc673 - db "@" -; 0xfd1c5 - -_MomText_FoundADoll: ; 0xfd1c5 - ; While shopping today, I saw this adorable doll, so - text_jump UnknownText_0x1bc693 - db "@" -; 0xfd1ca - -_MomText_ItsInRoom: ; 0xfd1ca - ; It's in your room. You'll love it! - text_jump UnknownText_0x1bc6c7 - db "@" -; 0xfd1cf - - db 0 ; XXX - -Functionfd1d0: ; fd1d0 - ret -; fd1d1 - - ret ; XXX - +INCLUDE "event/mom_phone.asm" INCLUDE "misc/mobile_40.asm" @@ -35716,7 +25857,7 @@ Function10404d: ; 10404d ret ; 104061 -Function104061:: ; 104061 +ReloadMapPart:: ; 104061 ld hl, Function104067 jp Function104177 ; 104067 @@ -35746,7 +25887,7 @@ Function104067: ; 104067 ret Function104099: ; 104099 - ld hl, Function104061 + ld hl, ReloadMapPart ; useless ld hl, Function1040a2 jp Function104177 ; 1040a2 @@ -36585,7 +26726,7 @@ LoadMapPalettes: ; 1047eb RefreshMapSprites: ; 1047f0 call ClearSprites callba ReturnFromMapSetupScript - call Function2914 + call GetMovementPermissions callba Function579d callba CheckReplaceKrisSprite ld hl, wPlayerSpriteSetupFlags diff --git a/misc/battle_tower_47.asm b/misc/battle_tower_47.asm index 37620212a..91efccc1b 100755 --- a/misc/battle_tower_47.asm +++ b/misc/battle_tower_47.asm @@ -385,7 +385,7 @@ Function11c1ca: ; 11c1ca ld de, VTiles0 call Decompress call EnableLCD - callba Function104061 + callba ReloadMapPart callba Function8cf53 callba LoadPokemonData callba Function40c30 @@ -443,7 +443,7 @@ Function11c283: ; 11c283 jr nz, .asm_11c2a2 call Function11c2ac callba Function8cf69 - callba Function104061 + callba ReloadMapPart jr .asm_11c283 .asm_11c2a2 @@ -782,7 +782,7 @@ Function11c4be: ; 11c4be (47:44be) hlcoord 0, 14, AttrMap ld bc, $28 call ByteFill - callba Function104061 + callba ReloadMapPart ret ; 11c4db (47:44db) @@ -978,7 +978,7 @@ Function11c618: ; 11c618 (47:4618) hlcoord 0, 6, AttrMap ld bc, $c8 call ByteFill - callba Function104061 + callba ReloadMapPart ret ; 11c62a (47:462a) @@ -1585,7 +1585,7 @@ Function11c9ab: ; 11c9ab (47:49ab) hlcoord 0, 6, AttrMap ld bc, $c8 call ByteFill - callba Function104061 + callba ReloadMapPart ret Function11c9bd: ; 11c9bd (47:49bd) @@ -1672,7 +1672,7 @@ Function11ca19: ; 11ca19 (47:4a19) add hl, de dec c jr nz, .asm_11ca22 - callba Function104061 + callba ReloadMapPart ret ; 11ca38 (47:4a38) @@ -2089,7 +2089,7 @@ Function11cdaa: ; 11cdaa (47:4daa) hlcoord 0, 12, AttrMap ld bc, $50 call ByteFill - callba Function104061 + callba ReloadMapPart ret ; 11cdc7 (47:4dc7) diff --git a/misc/crystal_misc.asm b/misc/crystal_misc.asm index 489ec77ee..6e9844866 100644 --- a/misc/crystal_misc.asm +++ b/misc/crystal_misc.asm @@ -173,7 +173,7 @@ Function17a78f: ; 17a78f (5e:678f) ret .asm_17a79f - callba Function104061 + callba ReloadMapPart ret ; 17a7a6 (5e:67a6) diff --git a/misc/mobile_22.asm b/misc/mobile_22.asm index 291006118..3fc378924 100644 --- a/misc/mobile_22.asm +++ b/misc/mobile_22.asm @@ -93,7 +93,7 @@ Function8919e: ; 8919e (22:519e) Function891ab: ; 891ab call Function89240 - callba Function104061 + callba ReloadMapPart call Function8923c ret ; 891b8 diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index f3d023e08..128fdf2b1 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -1495,7 +1495,7 @@ Function100902: ; 100902 call PrintNum ld de, SFX_TWO_PC_BEEPS call PlaySFX - callba Function104061 + callba ReloadMapPart ld c, $3c call DelayFrames ret @@ -1506,7 +1506,7 @@ Function100902: ; 100902 call PlaceString ld de, SFX_4_NOTE_DITTY call PlaySFX - callba Function104061 + callba ReloadMapPart ld c, 120 call DelayFrames ret @@ -1536,7 +1536,7 @@ Function100989: ; 100989 decoord 0, 0 call Function1009a5 call Function1009ae - callba Function104061 + callba ReloadMapPart ld hl, w3_dd68 decoord 0, 0, AttrMap call Function1009a5 diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm index da4cadc6d..f4df98c06 100644 --- a/misc/mobile_45.asm +++ b/misc/mobile_45.asm @@ -5750,7 +5750,7 @@ Function1161d5: ; 1161d5 pop af ld [rSVBK], a - callba Function104061 + callba ReloadMapPart ld a, $8 ld [MusicFade], a ld de, MUSIC_MOBILE_ADAPTER @@ -5931,7 +5931,7 @@ Function11636e: ; 11636e call UpdateSprites pop af ld [rSVBK], a - callba Function104061 + callba ReloadMapPart ld a, $8 ld [MusicFade], a ld a, [wc2c0] @@ -5975,7 +5975,7 @@ Function1163c0: ; 1163c0 callba Function14157 pop af ld [rSVBK], a - callba Function104061 + callba ReloadMapPart ld a, [wLinkMode] cp $4 jr z, .asm_11642a @@ -6006,7 +6006,7 @@ Function116441: ; 116441 callba Function17d405 ld a, $90 ld [hWY], a - callba Function104061 + callba ReloadMapPart ld a, $8 ld [MusicFade], a ld a, [wc2c0] @@ -7711,7 +7711,7 @@ Function117699: ; 117699 (45:7699) call ClearBGPalettes call ClearSprites callba Function171c87 - callba Function104061 + callba ReloadMapPart callba Function8cf53 ret @@ -7722,7 +7722,7 @@ Function1176ee: ; 1176ee (45:76ee) jr nz, .asm_117709 call Function117719 callba Function8cf69 - callba Function104061 + callba ReloadMapPart jr Function1176ee .asm_117709 callba Function8cf53 @@ -7978,7 +7978,7 @@ Function1178aa: ; 1178aa (45:78aa) call LoadMenuDataHeader call MenuBox call MenuBoxCoord2Tile - callba Function104061 + callba ReloadMapPart hlcoord 16, 8 ld de, String_1179c5 call PlaceString @@ -8077,7 +8077,7 @@ Function117984: ; 117984 (45:7984) call LoadMenuDataHeader call MenuBox call MenuBoxCoord2Tile - callba Function104061 + callba ReloadMapPart hlcoord 1, 14 ld de, String_1179e1 call PlaceString @@ -8184,7 +8184,7 @@ Function117ab4: ; 0x117ab4 call ClearSprites callba Function172e78 callba Function172eb9 - callba Function104061 + callba ReloadMapPart ret ; 0x117acd @@ -8299,12 +8299,12 @@ Function117b4f: jr nz, .asm_117ba4 ; 0x117b93 $f call ExitMenu call ExitMenu - callba Function104061 + callba ReloadMapPart jp Function117cdd .asm_117ba4 call ExitMenu call ExitMenu - callba Function104061 + callba ReloadMapPart ld a, $80 ld [wJumptableIndex], a ret @@ -8387,7 +8387,7 @@ Function117c4a: call LoadMenuDataHeader call MenuBox call MenuBoxCoord2Tile - callba Function104061 + callba ReloadMapPart ld hl, MobileStadiumSuccessText call PrintText ld a, [rSVBK] diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm index b07164f6f..48281ac13 100755 --- a/misc/mobile_46.asm +++ b/misc/mobile_46.asm @@ -4463,7 +4463,7 @@ Function119f98: ; 119f98 and a jr z, .asm_119fd4 call ExitMenu - callba Function104061 + callba ReloadMapPart callba Function115dc3 ld a, [wcd33] ld [wcf66], a @@ -4480,14 +4480,14 @@ Function119f98: ; 119f98 ld [wc30d], a ld a, $1 ld [wc314], a - callba Function104061 + callba ReloadMapPart and a ret .asm_119fef call ExitMenu call ExitMenu - callba Function104061 + callba ReloadMapPart ld a, [wcd45] ld [wcf66], a callba Function115dc3 @@ -4562,7 +4562,7 @@ Function11a00e: ; 11a00e callba Function106462 callba Function106464 call ExitMenu - callba Function104061 + callba ReloadMapPart callba Function115d99 ld c, $0 callba Function115e18 @@ -4585,7 +4585,7 @@ Function11a0ca: ; 11a0ca callba Function106462 callba Function106464 call ExitMenu - callba Function104061 + callba ReloadMapPart callba Function115d99 ld c, $0 callba Function115e18 @@ -4677,7 +4677,7 @@ Function11a192: ; 11a192 and a jr nz, .asm_11a1b6 call ExitMenu - callba Function104061 + callba ReloadMapPart call Function11a63c hlcoord 4, 2 ld de, String_11a6d2 @@ -4687,7 +4687,7 @@ Function11a192: ; 11a192 .asm_11a1b6 call ExitMenu - callba Function104061 + callba ReloadMapPart ld a, [wcd45] ld [wcf66], a ld [wcd80], a @@ -4818,7 +4818,7 @@ Function11a235: ; 11a235 and a jr nz, .asm_11a2c4 call ExitMenu - callba Function104061 + callba ReloadMapPart ld a, [wcd46] cp $0 jr z, .asm_11a2b4 @@ -4840,7 +4840,7 @@ Function11a235: ; 11a235 .asm_11a2c4 call ExitMenu - callba Function104061 + callba ReloadMapPart and a ret ; 11a2cf @@ -4919,7 +4919,7 @@ Function11a33a: ; 11a33a .asm_11a346 call ExitMenu - callba Function104061 + callba ReloadMapPart callba Function115dc3 and a ret @@ -4963,7 +4963,7 @@ Function11a38d: ; 11a38d and a jr nz, .asm_11a3b1 call ExitMenu - callba Function104061 + callba ReloadMapPart call Function11a63c hlcoord 4, 2 ld de, String_11a6d2 @@ -4973,7 +4973,7 @@ Function11a38d: ; 11a38d .asm_11a3b1 call ExitMenu - callba Function104061 + callba ReloadMapPart ld a, [wcd45] ld [wcf66], a ld [wcd80], a @@ -5038,7 +5038,7 @@ Function11a41b: ; 11a41b and a jr nz, .asm_11a43f call ExitMenu - callba Function104061 + callba ReloadMapPart call Function11a63c hlcoord 4, 2 ld de, String_11a6d2 @@ -5048,7 +5048,7 @@ Function11a41b: ; 11a41b .asm_11a43f call ExitMenu - callba Function104061 + callba ReloadMapPart ld a, $1c ld [wcf66], a ld [wcd80], a @@ -5109,7 +5109,7 @@ Function11a49e: ; 11a49e and a jr nz, .asm_11a4c7 call ExitMenu - callba Function104061 + callba ReloadMapPart call Function11a63c hlcoord 4, 2 ld de, String_11a6d2 @@ -5121,7 +5121,7 @@ Function11a49e: ; 11a49e .asm_11a4c7 call ExitMenu - callba Function104061 + callba ReloadMapPart ld a, [wcd46] ld [wcf66], a ld [wcd80], a @@ -5156,7 +5156,7 @@ Function11a4fe: ; 11a4fe and a jr nz, .asm_11a522 call ExitMenu - callba Function104061 + callba ReloadMapPart call Function11a63c hlcoord 4, 2 ld de, String_11a6d2 @@ -5166,7 +5166,7 @@ Function11a4fe: ; 11a4fe .asm_11a522 call ExitMenu - callba Function104061 + callba ReloadMapPart ld a, [wcd45] ld [wcf66], a ld [wcd80], a @@ -5195,7 +5195,7 @@ Function11a536: ; 11a536 call Function11a9f0 jr nz, .asm_11a562 call ExitMenu - callba Function104061 + callba ReloadMapPart .asm_11a562 scf @@ -5271,7 +5271,7 @@ Function11a5b9: ; 11a5b9 ld b, $4 ld c, $12 call Function3eea - callba Function104061 + callba ReloadMapPart call UpdateSprites ld c, $0 callba Function115e18 @@ -5306,7 +5306,7 @@ Function11a5f5: ; 11a5f5 hlcoord 15, 7 ld a, $ed ld [hl], a - callba Function104061 + callba ReloadMapPart ret ; 11a63c @@ -5840,7 +5840,7 @@ UnknownText_0x11ac1f: ; 0x11ac1f Function11ac3e: ; 11ac3e call SpeechTextBox call FadeToMenu - callab InefficientlyClear121BytesAtwc300 + callab ClearSpriteAnims call Function11ac51 call ReturnToCallingMenu ret @@ -5881,7 +5881,7 @@ Function11ac51: ; 11ac51 ld a, $78 ld [wc3b5], a callba Function8cf7a - callba Function104061 + callba ReloadMapPart jr .asm_11ac82 .asm_11aca8 @@ -6025,7 +6025,7 @@ Function11ad95: ; 11ad95 hlcoord 10, 10, AttrMap ld bc, $0808 call Function11afd6 - callba Function104061 + callba ReloadMapPart call Function11ad8a ld a, $1 ld [MenuSelection2], a @@ -6104,7 +6104,7 @@ Function11adc4: .asm_11ae2e call ExitMenu - callba Function104061 + callba ReloadMapPart ret ; 11ae38 @@ -6142,7 +6142,7 @@ Function11ae4e: ; 11ae4e hlcoord 9, 12, AttrMap lb bc, 6, 11 call Function11afd6 - callba Function104061 + callba ReloadMapPart call Function11ad8a ld a, $1 ld [MenuSelection2], a @@ -6210,7 +6210,7 @@ Function11ae98: .asm_11aef7 call ExitMenu call ExitMenu - callba Function104061 + callba ReloadMapPart ret ; 11af04 @@ -6233,7 +6233,7 @@ Function11af04: ; 11af04 hlcoord 9, 12, AttrMap lb bc, 6, 11 call Function11afd6 - callba Function104061 + callba ReloadMapPart call Function11ad8a ld a, $2 ld [MenuSelection2], a @@ -6301,7 +6301,7 @@ Function11af4e: .asm_11afaa call ExitMenu call ExitMenu - callba Function104061 + callba ReloadMapPart ret ; 11afb7 diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm index 8501aab7e..61a3b1962 100755 --- a/misc/mobile_5c.asm +++ b/misc/mobile_5c.asm @@ -391,7 +391,7 @@ Function1704f1: ; 1704f1 bit 7, a jr nz, .asm_17050f call Function170510 - callba Function104061 + callba ReloadMapPart jr .asm_1704fa .asm_17050f @@ -1692,7 +1692,7 @@ Function1719ed: ; 1719ed (5c:59ed) call ClearBGPalettes call ClearSprites callba Function171d2b - callba Function104061 + callba ReloadMapPart callba Function8cf53 ret @@ -1703,7 +1703,7 @@ Function171a11: ; 171a11 (5c:5a11) jr nz, .asm_171a2c call Function171a36 callba Function8cf69 - callba Function104061 + callba ReloadMapPart jr Function171a11 .asm_171a2c callba Function8cf53 @@ -1960,7 +1960,7 @@ Function171beb: ; 171beb (5c:5beb) call LoadMenuDataHeader call MenuBox call MenuBoxCoord2Tile - callba Function104061 + callba ReloadMapPart hlcoord 1, 14 ld de, String_171c73 call PlaceString diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm index b1f609298..3f35d8346 100644 --- a/misc/mobile_5f.asm +++ b/misc/mobile_5f.asm @@ -81,7 +81,7 @@ Function17c000: ; 17c000 ld [rVBK], a call EnableLCD - callba Function104061 + callba ReloadMapPart ret ; 17c083 @@ -629,7 +629,7 @@ Function17d370: ; 17d370 call ClearBGPalettes call ClearSprites call ClearScreen - callba Function104061 + callba ReloadMapPart call DisableLCD ld hl, VTiles1 tile $6e ld de, $c608 @@ -675,7 +675,7 @@ Function17d3f6: ; 17d3f6 call ClearBGPalettes call ClearSprites call ClearScreen - callba Function104061 + callba ReloadMapPart Function17d405: call DisableLCD @@ -721,7 +721,7 @@ Function17d45a: ; 17d45a bit 7, a jr nz, .asm_17d46f call Function17d474 - callba Function104061 + callba ReloadMapPart jr .asm_17d45a .asm_17d46f @@ -935,7 +935,7 @@ endr call Function17e451 call Function17e55b call Function17e5af - callba Function104061 + callba ReloadMapPart jp Function17e438 ; 17d5be diff --git a/wram.asm b/wram.asm index 967515147..a026c84af 100644 --- a/wram.asm +++ b/wram.asm @@ -372,8 +372,8 @@ TilePermissions:: ; c2fe SECTION "c300", WRAM0 [$c300] ; wc300 - wc313 is a 10x2 dictionary. -wDict_c300:: ds 10 * 2 - ds wDict_c300 - @ +wSpriteAnimDict:: ds 10 * 2 + ds wSpriteAnimDict - @ wc300:: ds 1 wc301:: ds 1 wc302:: ds 1 @@ -456,7 +456,7 @@ wc3bd:: ds 1 wc3be:: ds 1 wc3bf:: ds 1 wc3c0:: ds 1 -; wc300_data_end +wSpriteAnimsEnd:: wc3c1:: ds 11 wc3cc:: ds 1 From b02305625920d42649587d6ba6504777dcac25a0 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 19 Nov 2015 23:38:16 -0500 Subject: [PATCH 27/40] engine/stats_screen.asm --- contents.asm | 2 + engine/stats_screen.asm | 1150 +++++++++++++++++++++++++++++++++++++ main.asm | 1212 +-------------------------------------- misc/mobile_22.asm | 28 +- wram.asm | 6 +- 5 files changed, 1203 insertions(+), 1195 deletions(-) create mode 100755 engine/stats_screen.asm diff --git a/contents.asm b/contents.asm index 0d55c2dcd..c13fffc7b 100644 --- a/contents.asm +++ b/contents.asm @@ -48,6 +48,8 @@ PIC_POINTERS EQU $48 UNOWN_PIC_POINTERS EQU $49 TRAINER_PIC_POINTERS EQU $4A +PICS_FIX EQU $36 + PICS_1 EQU $48 PICS_2 EQU $49 PICS_3 EQU $4A diff --git a/engine/stats_screen.asm b/engine/stats_screen.asm new file mode 100755 index 000000000..11c6f61ce --- /dev/null +++ b/engine/stats_screen.asm @@ -0,0 +1,1150 @@ +Function4dc7b: ; 4dc7b (13:5c7b) + ld a, [wLinkMode] + cp LINK_MOBILE + jr nz, StatsScreenInit + + ld a, [wBattleMode] ; wd22d (aliases: EnemyMonEnd) + and a + jr z, StatsScreenInit + jr Function4dc8f + +StatsScreenInit: ; 4dc8a + ld hl, StatsScreenMain + jr StatsScreenInit_gotaddress + +Function4dc8f: ; 4dc8f + ld hl, StatsScreenBattle + jr StatsScreenInit_gotaddress + +StatsScreenInit_gotaddress: ; 4dc94 + ld a, [hMapAnims] + push af + xor a + ld [hMapAnims], a ; disable overworld tile animations + ld a, [wc2c6] ; whether sprite is to be mirrorred + push af + ld a, [wJumptableIndex] + ld b, a + ld a, [wcf64] + ld c, a + + push bc + push hl + call ClearBGPalettes + call ClearTileMap + call UpdateSprites + callba Functionfb53e + pop hl + call _hl_ + call ClearBGPalettes + call ClearTileMap + pop bc + + ; restore old values + ld a, b + ld [wJumptableIndex], a + ld a, c + ld [wcf64], a + pop af + ld [wc2c6], a + pop af + ld [hMapAnims], a + ret +; 0x4dcd2 + +StatsScreenMain: ; 0x4dcd2 + xor a + ld [wJumptableIndex], a + ; stupid interns + ld [wcf64], a + ld a, [wcf64] + and $fc + or $1 + ld [wcf64], a +.loop ; 4dce3 + ld a, [wJumptableIndex] + and $7f + ld hl, StatsScreenPointerTable + rst JumpTable + call Function4dd3a ; check for keys? + ld a, [wJumptableIndex] + bit 7, a + jr z, .loop + ret +; 0x4dcf7 + +StatsScreenBattle: ; 4dcf7 + xor a + ld [wJumptableIndex], a + ; stupid interns + ld [wcf64], a + ld a, [wcf64] + and $fc + or $1 + ld [wcf64], a +.loop + callba Function100dd2 + ld a, [wJumptableIndex] + and $7f + ld hl, StatsScreenPointerTable + rst JumpTable + call Function4dd3a + callba Function100dfd + jr c, .exit + ld a, [wJumptableIndex] + bit 7, a + jr z, .loop + +.exit + ret +; 4dd2a + +StatsScreenPointerTable: ; 4dd2a + dw MonStatsInit ; regular pokémon + dw EggStatsInit ; egg + dw StatsScreenWaitCry + dw Function4ddac + dw Function4ddc6 + dw StatsScreenWaitCry + dw Function4ddd6 + dw Function4dd6c +; 4dd3a + + +Function4dd3a: ; 4dd3a (13:5d3a) + ld hl, wcf64 + bit 6, [hl] + jr nz, .asm_4dd49 + bit 5, [hl] + jr nz, .asm_4dd56 + call DelayFrame + ret +.asm_4dd49 + callba Functiond00b4 + jr nc, .asm_4dd56 + ld hl, wcf64 + res 6, [hl] +.asm_4dd56 + ld hl, wcf64 + res 5, [hl] + callba Function10402d + ret + +Function4dd62: ; 4dd62 (13:5d62) + ld a, [wJumptableIndex] + and $80 + or h + ld [wJumptableIndex], a + ret + +Function4dd6c: ; 4dd6c (13:5d6c) + ld hl, wJumptableIndex + set 7, [hl] + ret + +MonStatsInit: ; 4dd72 (13:5d72) + ld hl, wcf64 + res 6, [hl] + call ClearBGPalettes + call ClearTileMap + callba Function10402d + call Function4ddf2 + ld a, [CurPartySpecies] + cp EGG + jr z, .asm_4dd9b + call Function4deea + ld hl, wcf64 + set 4, [hl] + ld h, $4 + call Function4dd62 + ret +.asm_4dd9b + ld h, $1 + call Function4dd62 + ret + +EggStatsInit: ; 4dda1 + call EggStatsScreen + ld a, [wJumptableIndex] + inc a + ld [wJumptableIndex], a + ret +; 0x4ddac + + +Function4ddac: ; 4ddac (13:5dac) + call Function4de2c + jr nc, .asm_4ddb7 + ld h, $0 + call Function4dd62 + ret +.asm_4ddb7 + bit 0, a + jr nz, .asm_4ddc0 + and $c3 + jp Function4de54 +.asm_4ddc0 + ld h, $7 + call Function4dd62 + ret + +Function4ddc6: ; 4ddc6 (13:5dc6) + call Function4dfb6 + ld hl, wcf64 + res 4, [hl] + ld a, [wJumptableIndex] + inc a + ld [wJumptableIndex], a + ret + +Function4ddd6: ; 4ddd6 (13:5dd6) + call Function4de2c + jr nc, .asm_4dde1 + ld h, $0 + call Function4dd62 + ret + +.asm_4dde1 + and $f3 + jp Function4de54 + +StatsScreenWaitCry: ; 4dde6 (13:5de6) + call IsSFXPlaying + ret nc + ld a, [wJumptableIndex] + inc a + ld [wJumptableIndex], a + ret + +Function4ddf2: ; 4ddf2 (13:5df2) + ld a, [MonType] + cp BREEDMON + jr nz, .asm_4de10 + ld a, [wd018_Mon] + ld [CurSpecies], a + call GetBaseData + ld hl, wd018_Mon + ld de, TempMon + ld bc, PARTYMON_STRUCT_LENGTH + call CopyBytes + jr .asm_4de2a +.asm_4de10 + callba CopyPkmnToTempMon + ld a, [CurPartySpecies] + cp EGG + jr z, .asm_4de2a + ld a, [MonType] + cp BOXMON + jr c, .asm_4de2a + callba Function50890 +.asm_4de2a + and a + ret + +Function4de2c: ; 4de2c (13:5e2c) + call GetJoypad + ld a, [MonType] + cp BREEDMON + jr nz, .notbreedmon + push hl + push de + push bc + callba Functione2f95 + pop bc + pop de + pop hl + ld a, [wcf73] + and $c0 + jr nz, .set_carry + ld a, [wcf73] + jr .clear_flags + +.notbreedmon + ld a, [hJoyPressed] +.clear_flags + and a + ret + +.set_carry + scf + ret + +Function4de54: ; 4de54 (13:5e54) + push af + ld a, [wcf64] + and $3 + ld c, a + pop af + bit 1, a + jp nz, Function4dee4 + bit 5, a + jr nz, .asm_4dec7 + bit 4, a + jr nz, .asm_4debd + bit 0, a + jr nz, .asm_4deb8 + bit 6, a + jr nz, .asm_4dea0 + bit 7, a + jr nz, .asm_4de77 + jr .asm_4dece +.asm_4de77 + ld a, [MonType] + cp BOXMON + jr nc, .asm_4dece + and a + ld a, [PartyCount] + jr z, .asm_4de87 + ld a, [OTPartyCount] +.asm_4de87 + ld b, a + ld a, [CurPartyMon] + inc a + cp b + jr z, .asm_4dece + ld [CurPartyMon], a + ld b, a + ld a, [MonType] + and a + jr nz, .asm_4dede + ld a, b + inc a + ld [wd0d8], a + jr .asm_4dede +.asm_4dea0 + ld a, [CurPartyMon] + and a + jr z, .asm_4dece + dec a + ld [CurPartyMon], a + ld b, a + ld a, [MonType] + and a + jr nz, .asm_4dede + ld a, b + inc a + ld [wd0d8], a + jr .asm_4dede +.asm_4deb8 + ld a, c + cp $3 + jr z, Function4dee4 +.asm_4debd + inc c + ld a, $3 + cp c + jr nc, .asm_4decf + ld c, $1 + jr .asm_4decf +.asm_4dec7 + dec c + jr nz, .asm_4decf + ld c, $3 + jr .asm_4decf +.asm_4dece + ret +.asm_4decf + ld a, [wcf64] + and $fc + or c + ld [wcf64], a + ld h, $4 + call Function4dd62 + ret +.asm_4dede + ld h, $0 + call Function4dd62 + ret + +Function4dee4: ; 4dee4 (13:5ee4) + ld h, $7 + call Function4dd62 + ret + +Function4deea: ; 4deea (13:5eea) + call Function4df45 + xor a + ld [hBGMapMode], a + ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo) + ld [wd265], a + ld [CurSpecies], a + hlcoord 8, 0 + ld [hl], "№" + inc hl + ld [hl], "." + inc hl + hlcoord 10, 0 + lb bc, PRINTNUM_LEADINGZEROS | 1, 3 + ld de, wd265 + call PrintNum + hlcoord 14, 0 + call PrintLevel + ld hl, Unknown_4df77 + call Function4e528 + call Function4e505 + hlcoord 8, 2 + call PlaceString + hlcoord 18, 0 + call Function4df66 + hlcoord 9, 4 + ld a, "/" + ld [hli], a + ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo) + ld [wd265], a + call GetPokemonName + call PlaceString + call Function4df8f + call Function4df9b + call Function4dfa6 + ret + +Function4df45: ; 4df45 (13:5f45) + ld hl, TempMonHP + ld a, [hli] + ld b, a + ld c, [hl] + ld hl, TempMonMaxHP + ld a, [hli] + ld d, a + ld e, [hl] + callba DrawPartyMenuHPBar + ld hl, wcda1 + call SetHPPal + ld b, SCGB_03 + call GetSGBLayout + call DelayFrame + ret + +Function4df66: ; 4df66 (13:5f66) + push hl + callba GetGender + pop hl + ret c + ld a, "♂" + jr nz, .got_gender + ld a, "♀" +.got_gender + ld [hl], a + ret +; 4df77 (13:5f77) + +Unknown_4df77: ; 4df77 + dw PartyMonNicknames + dw OTPartyMonNicknames + dw sBoxMonNicknames + dw wd002 +; 4df7f + +Function4df7f: ; 4df7f + hlcoord 7, 0 + ld bc, SCREEN_WIDTH + ld d, SCREEN_HEIGHT +.loop + ld a, $31 + ld [hl], a + add hl, bc + dec d + jr nz, .loop + ret +; 4df8f + +Function4df8f: ; 4df8f (13:5f8f) + hlcoord 0, 7 + ld b, SCREEN_WIDTH + ld a, "_" +.loop + ld [hli], a + dec b + jr nz, .loop + ret + +Function4df9b: ; 4df9b (13:5f9b) + hlcoord 12, 6 + ld [hl], "◀" + hlcoord 19, 6 + ld [hl], "▶" + ret + +Function4dfa6: ; 4dfa6 (13:5fa6) + ld bc, TempMonDVs + callba CheckShininess + ret nc + hlcoord 19, 0 + ld [hl], "" + ret + +Function4dfb6: ; 4dfb6 (13:5fb6) + ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo) + ld [wd265], a + ld [CurSpecies], a + xor a + ld [hBGMapMode], a + call Function4dfda + call Function4e002 + call Function4dfed + ld hl, wcf64 + bit 4, [hl] + jr nz, .asm_4dfd6 + call SetPalettes + ret + +.asm_4dfd6 + call Function4e226 + ret + +Function4dfda: ; 4dfda (13:5fda) + ld a, [wcf64] + and $3 + ld c, a + call Function4e4cd + hlcoord 0, 8 + lb bc, 10, 20 + call ClearBox + ret + +Function4dfed: ; 4dfed (13:5fed) + ld a, [wcf64] + and $3 + ld c, a + callba Function8c8a + call DelayFrame + ld hl, wcf64 + set 5, [hl] + ret + +Function4e002: ; 4e002 (13:6002) + ld a, [wcf64] + and $3 + dec a + ld hl, Jumptable_4e00d + rst JumpTable + ret + +Jumptable_4e00d: ; 4e00d (13:600d) + dw Function4e013 + dw Function4e147 + dw Function4e1ae + + +Function4e013: ; 4e013 (13:6013) + hlcoord 0, 9 + ld b, $0 + predef DrawPlayerHP + hlcoord 8, 9 + ld [hl], $41 + ld de, String_4e119 + hlcoord 0, 12 + call PlaceString + ld a, [TempMonPokerusStatus] + ld b, a + and $f + jr nz, .asm_4e055 + ld a, b + and $f0 + jr z, .asm_4e03d + hlcoord 8, 8 + ld [hl], $e8 +.asm_4e03d + ld a, [MonType] + cp $2 + jr z, .asm_4e060 + hlcoord 6, 13 + push hl + ld de, TempMonStatus + predef PlaceStatusString + pop hl + jr nz, .asm_4e066 + jr .asm_4e060 +.asm_4e055 + ld de, String_4e142 + hlcoord 1, 13 + call PlaceString + jr .asm_4e066 +.asm_4e060 + ld de, String_4e127 + call PlaceString +.asm_4e066 + hlcoord 1, 15 + predef PrintMonTypes + hlcoord 9, 8 + ld de, $14 + ld b, $a + ld a, $31 +.asm_4e078 + ld [hl], a + add hl, de + dec b + jr nz, .asm_4e078 + ld de, String_4e12b + hlcoord 10, 9 + call PlaceString + hlcoord 17, 14 + call Function4e0d3 + hlcoord 13, 10 + lb bc, 3, 7 + ld de, TempMonExp + call PrintNum + call Function4e0e7 + hlcoord 13, 13 + lb bc, 3, 7 + ld de, Buffer1 ; wd1ea (aliases: MagikarpLength) + call PrintNum + ld de, String_4e136 + hlcoord 10, 12 + call PlaceString + ld de, String_4e13f + hlcoord 14, 14 + call PlaceString + hlcoord 11, 16 + ld a, [TempMonLevel] + ld b, a + ld de, TempMonExp + 2 + predef FillInExpBar + hlcoord 10, 16 + ld [hl], $40 + hlcoord 19, 16 + ld [hl], $41 + ret + +Function4e0d3: ; 4e0d3 (13:60d3) + ld a, [TempMonLevel] + push af + cp MAX_LEVEL + jr z, .asm_4e0df + inc a + ld [TempMonLevel], a +.asm_4e0df + call PrintLevel + pop af + ld [TempMonLevel], a + ret + +Function4e0e7: ; 4e0e7 (13:60e7) + ld a, [TempMonLevel] + cp MAX_LEVEL + jr z, .asm_4e111 + inc a + ld d, a + callba CalcExpAtLevel +rept 2 + ld hl, TempMonExp + 2 +endr + ld a, [$ffb6] + sub [hl] + dec hl + ld [wd1ec], a + ld a, [$ffb5] + sbc [hl] + dec hl + ld [Buffer2], a ; wd1eb (aliases: MovementType) + ld a, [hQuotient] + sbc [hl] + ld [Buffer1], a ; wd1ea (aliases: MagikarpLength) + ret +.asm_4e111 + ld hl, Buffer1 ; wd1ea (aliases: MagikarpLength) + xor a +rept 2 + ld [hli], a +endr + ld [hl], a + ret +; 4e119 (13:6119) + +String_4e119: ; 4e119 + db "STATUS/" + next "TYPE/@" +; 4e127 + +String_4e127: ; 4e127 + db "OK @" +; 4e12b + +String_4e12b: ; 4e12b + db "EXP POINTS@" +; 4e136 + +String_4e136: ; 4e136 + db "LEVEL UP@" +; 4e13f + +String_4e13f: ; 4e13f + db "TO@" +; 4e142 + +String_4e142: ; 4e142 + db "#RUS@" +; 4e147 + +Function4e147: ; 4e147 (13:6147) + ld de, String_4e1a0 + hlcoord 0, 8 + call PlaceString + call Function4e189 + hlcoord 8, 8 + call PlaceString + ld de, String_4e1a9 + hlcoord 0, 10 + call PlaceString + ld hl, TempMonMoves + ld de, wListMoves_MoveIndicesBuffer + ld bc, NUM_MOVES + call CopyBytes + hlcoord 8, 10 + ld a, SCREEN_WIDTH * 2 + ld [Buffer1], a + predef ListMoves + hlcoord 12, 11 + ld a, $28 + ld [Buffer1], a + predef Function50c50 + ret + +Function4e189: ; 4e189 (13:6189) + ld de, String_4e1a5 + ld a, [TempMonItem] + and a + ret z + ld b, a + callba Function28771 + ld a, b + ld [wd265], a + call GetItemName + ret +; 4e1a0 (13:61a0) + +String_4e1a0: ; 4e1a0 + db "ITEM@" +; 4e1a5 + +String_4e1a5: ; 4e1a5 + db "---@" +; 4e1a9 + +String_4e1a9: ; 4e1a9 + db "MOVE@" +; 4e1ae + +Function4e1ae: ; 4e1ae (13:61ae) + call Function4e1cc + hlcoord 10, 8 + ld de, $14 + ld b, $a + ld a, $31 +.asm_4e1bb + ld [hl], a + add hl, de + dec b + jr nz, .asm_4e1bb + hlcoord 11, 8 + ld bc, $6 + predef PrintTempMonStats + ret + +Function4e1cc: ; 4e1cc (13:61cc) + ld de, IDNoString + hlcoord 0, 9 + call PlaceString + ld de, OTString + hlcoord 0, 12 + call PlaceString + hlcoord 2, 10 + lb bc, PRINTNUM_LEADINGZEROS | 2, 5 + ld de, TempMonID + call PrintNum + ld hl, Unknown_4e216 + call Function4e528 + call Function4e505 + callba CheckNickErrors + hlcoord 2, 13 + call PlaceString + ld a, [TempMonCaughtGender] + and a + jr z, .asm_4e215 + cp $7f + jr z, .asm_4e215 + and $80 + ld a, "♂" + jr z, .asm_4e211 + ld a, "♀" +.asm_4e211 + hlcoord 9, 13 + ld [hl], a +.asm_4e215 + ret +; 4e216 (13:6216) + +Unknown_4e216: ; 4e216 + dw PartyMonOT + dw OTPartyMonOT + dw sBoxMonOT + dw wd00d +; 4e21e + +IDNoString: ; 4e21e + db $73, "№.@" + +OTString: ; 4e222 + db "OT/@" +; 4e226 + + +Function4e226: ; 4e226 (13:6226) + ld hl, TempMonDVs + predef GetUnownLetter + call Function4e2ad + jr c, .asm_4e238 + and a + jr z, .asm_4e23f + jr .asm_4e246 +.asm_4e238 + call Function4e271 + call SetPalettes + ret +.asm_4e23f + call Function4e253 + call SetPalettes + ret +.asm_4e246 + call SetPalettes + call Function4e253 + ld a, [CurPartySpecies] + call PlayCry2 + ret + +Function4e253: ; 4e253 (13:6253) + ld hl, wcf64 + set 5, [hl] + ld a, [CurPartySpecies] + cp UNOWN + jr z, .asm_4e266 + hlcoord 0, 0 + call PrepMonFrontpic + ret +.asm_4e266 + xor a + ld [wc2c6], a + hlcoord 0, 0 + call _PrepMonFrontpic + ret + +Function4e271: ; 4e271 (13:6271) + ld a, [CurPartySpecies] + cp UNOWN + jr z, .asm_4e281 + ld a, $1 + ld [wc2c6], a + call Function4e289 + ret +.asm_4e281 + xor a + ld [wc2c6], a + call Function4e289 + ret + +Function4e289: ; 4e289 (13:6289) + ld a, [CurPartySpecies] + call IsAPokemon + ret c + call Function4e307 + ld de, VTiles2 tile $00 + predef Function5108b + hlcoord 0, 0 + ld d, $0 + ld e, $2 + predef LoadMonAnimation + ld hl, wcf64 + set 6, [hl] + ret + +Function4e2ad: ; 4e2ad (13:62ad) + ld a, [MonType] + ld hl, .Jumptable + rst JumpTable + ret + +.Jumptable: ; 4e2b5 (13:62b5) + dw Function4e2bf + dw Function4e2cf + dw Function4e2d1 + dw Function4e2ed + dw Function4e301 + + +Function4e2bf: ; 4e2bf (13:62bf) + ld a, [CurPartyMon] + ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) + ld bc, PARTYMON_STRUCT_LENGTH + call AddNTimes + ld b, h + ld c, l + jr Function4e2f2 + +Function4e2cf: ; 4e2cf (13:62cf) + xor a + ret + +Function4e2d1: ; 4e2d1 (13:62d1) + ld hl, sBoxMons + ld bc, PARTYMON_STRUCT_LENGTH + ld a, [CurPartyMon] + call AddNTimes + ld b, h + ld c, l + ld a, BANK(sBoxMons) + call GetSRAMBank + call Function4e2f2 + push af + call CloseSRAM + pop af + ret + +Function4e2ed: ; 4e2ed (13:62ed) + ld bc, TempMonSpecies ; wd10e (aliases: TempMon) + jr Function4e2f2 ; utterly pointless + +Function4e2f2: ; 4e2f2 (13:62f2) + ld a, [CurPartySpecies] + cp EGG + jr z, .egg + call CheckFaintedFrzSlp + jr c, Function4e305 +.egg + xor a + scf + ret + +Function4e301: ; 4e301 (13:6301) + ld a, $1 + and a + ret +Function4e305: ; 4e305 (13:6305) + xor a + ret + +Function4e307: ; 4e307 (13:6307) + nop + push hl + push de + push bc + push af + call DelayFrame + ld a, [rVBK] + push af + ld a, $1 + ld [rVBK], a + ld de, TextBoxSpaceGFX + lb bc, BANK(TextBoxSpaceGFX), 1 + ld hl, VTiles2 tile $7f + call Get2bpp + pop af + ld [rVBK], a + pop af + pop bc + pop de + pop hl + ret +; 4e32a (13:632a) + +Unknown_4e32a: ; 4e32a +; A blank tile? + ds 16 +; 4e33a + +EggStatsScreen: ; 4e33a + xor a + ld [hBGMapMode], a + ld hl, wcda1 + call SetHPPal + ld b, SCGB_03 + call GetSGBLayout + call Function4df8f + ld de, EggString + hlcoord 8, 1 + call PlaceString + ld de, IDNoString + hlcoord 8, 3 + call PlaceString + ld de, OTString + hlcoord 8, 5 + call PlaceString + ld de, FiveQMarkString + hlcoord 11, 3 + call PlaceString + ld de, FiveQMarkString + hlcoord 11, 5 + call PlaceString + ld a, [TempMonHappiness] ; egg status + ld de, EggSoonString + cp $6 + jr c, .picked + ld de, EggCloseString + cp $b + jr c, .picked + ld de, EggMoreTimeString + cp $29 + jr c, .picked + ld de, EggALotMoreTimeString +.picked + hlcoord 1, 9 + call PlaceString + ld hl, wcf64 + set 5, [hl] + call SetPalettes ; pals + call DelayFrame + hlcoord 0, 0 + call PrepMonFrontpic + callba Function10402d + call Function4e497 + + ld a, [TempMonHappiness] + cp 6 + ret nc + ld de, SFX_2_BOOPS + call PlaySFX + ret +; 0x4e3c0 + +EggString: ; 4e3c0 + db "EGG@" + +FiveQMarkString: ; 4e3c4 + db "?????@" + +EggSoonString: ; 0x4e3ca + db "It's making sounds" + next "inside. It's going" + next "to hatch soon!@" + +EggCloseString: ; 0x4e3fd + db "It moves around" + next "inside sometimes." + next "It must be close" + next "to hatching.@" + +EggMoreTimeString: ; 0x4e43d + db "Wonder what's" + next "inside? It needs" + next "more time, though.@" + +EggALotMoreTimeString: ; 0x4e46e + db "This EGG needs a" + next "lot more time to" + next "hatch.@" +; 0x4e497 + + +Function4e497: ; 4e497 (13:6497) + call Function4e2ad + ret nc + ld a, [TempMonHappiness] + ld e, $7 + cp $6 + jr c, .asm_4e4ab + ld e, $8 + cp $b + jr c, .asm_4e4ab + ret +.asm_4e4ab + push de + ld a, $1 + ld [wc2c6], a + call Function4e307 + ld de, VTiles2 tile $00 + predef Function5108b + pop de + hlcoord 0, 0 + ld d, $0 + predef LoadMonAnimation + ld hl, wcf64 + set 6, [hl] + ret + +Function4e4cd: ; 4e4cd (13:64cd) + hlcoord 13, 5 + ld a, $36 + call .load_square + hlcoord 15, 5 + ld a, $36 + call .load_square + hlcoord 17, 5 + ld a, $36 + call .load_square + ld a, c + cp $2 + ld a, $3a + hlcoord 13, 5 + jr c, .load_square + hlcoord 15, 5 + jr z, .load_square + hlcoord 17, 5 +.load_square: ; 4e4f7 (13:64f7) + push bc + ld [hli], a + inc a + ld [hld], a + ld bc, SCREEN_WIDTH + add hl, bc + inc a + ld [hli], a + inc a + ld [hl], a + pop bc + ret + +Function4e505: ; 4e505 (13:6505) + ld de, StringBuffer1 + ld bc, PKMN_NAME_LENGTH + jr .okay ; uuterly pointless +.okay + ld a, [MonType] + cp BOXMON + jr nz, .partymon + ld a, BANK(sBoxMonNicknames) + call GetSRAMBank + push de + call CopyBytes + pop de + call CloseSRAM + ret + +.partymon + push de + call CopyBytes + pop de + ret + +Function4e528: ; 4e528 (13:6528) + ld a, [MonType] + add a + ld c, a + ld b, 0 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [MonType] + cp $3 + ret z + ld a, [CurPartyMon] + jp SkipNames + + +CheckFaintedFrzSlp: ; 4e53f + ld hl, MON_HP + add hl, bc + ld a, [hli] + or [hl] + jr z, .fainted_frz_slp + ld hl, MON_STATUS + add hl, bc + ld a, [hl] + and (1 << FRZ) | SLP + jr nz, .fainted_frz_slp + and a + ret + +.fainted_frz_slp + scf + ret +; 4e554 diff --git a/main.asm b/main.asm index 0c2625399..a185662ab 100644 --- a/main.asm +++ b/main.asm @@ -20233,11 +20233,11 @@ CheckPartyFullAfterContest: ; 4d9e5 xor a ld [CurPartyMon], a ld hl, wContestMon - ld de, wd018 + ld de, wd018_Mon ld bc, BOXMON_STRUCT_LENGTH call CopyBytes ld hl, PlayerName - ld de, wd00d + ld de, wd00d_MonOT ld bc, NAME_LENGTH call CopyBytes callab Function51322 @@ -20249,9 +20249,9 @@ CheckPartyFullAfterContest: ; 4d9e5 jr c, .Box_SkipNickname ld a, BOXMON ld [MonType], a - ld de, wd050 + ld de, wd050_MonNick callab InitNickname - ld hl, wd050 + ld hl, wd050_MonNick .Box_SkipNickname ld a, BANK(sBoxMonNicknames) @@ -20538,1157 +20538,7 @@ RetroactivelyIgnoreEggs: ; 4dc67 ; 4dc7b -Function4dc7b: ; 4dc7b (13:5c7b) - ld a, [wLinkMode] - cp LINK_MOBILE - jr nz, StatsScreenInit - - ld a, [wBattleMode] ; wd22d (aliases: EnemyMonEnd) - and a - jr z, StatsScreenInit - jr Function4dc8f - -StatsScreenInit: ; 4dc8a - ld hl, StatsScreenMain - jr StatsScreenInit_gotaddress - -Function4dc8f: ; 4dc8f - ld hl, StatsScreenBattle - jr StatsScreenInit_gotaddress - -StatsScreenInit_gotaddress: ; 4dc94 - ld a, [hMapAnims] - push af - xor a - ld [hMapAnims], a ; disable overworld tile animations - ld a, [wc2c6] ; whether sprite is to be mirrorred - push af - ld a, [wJumptableIndex] - ld b, a - ld a, [wcf64] - ld c, a - - push bc - push hl - call ClearBGPalettes - call ClearTileMap - call UpdateSprites - callba Functionfb53e - pop hl - call _hl_ - call ClearBGPalettes - call ClearTileMap - pop bc - - ; restore old values - ld a, b - ld [wJumptableIndex], a - ld a, c - ld [wcf64], a - pop af - ld [wc2c6], a - pop af - ld [hMapAnims], a - ret -; 0x4dcd2 - -StatsScreenMain: ; 0x4dcd2 - xor a - ld [wJumptableIndex], a - ; stupid interns - ld [wcf64], a - ld a, [wcf64] - and $fc - or $1 - ld [wcf64], a -.loop ; 4dce3 - ld a, [wJumptableIndex] - and $7f - ld hl, StatsScreenPointerTable - rst JumpTable - call Function4dd3a ; check for keys? - ld a, [wJumptableIndex] - bit 7, a - jr z, .loop - ret -; 0x4dcf7 - -StatsScreenBattle: ; 4dcf7 - xor a - ld [wJumptableIndex], a - ; stupid interns - ld [wcf64], a - ld a, [wcf64] - and $fc - or $1 - ld [wcf64], a -.loop - callba Function100dd2 - ld a, [wJumptableIndex] - and $7f - ld hl, StatsScreenPointerTable - rst JumpTable - call Function4dd3a - callba Function100dfd - jr c, .exit - ld a, [wJumptableIndex] - bit 7, a - jr z, .loop - -.exit - ret -; 4dd2a - -StatsScreenPointerTable: ; 4dd2a - dw MonStatsInit ; regular pokémon - dw EggStatsInit ; egg - dw StatsScreenWaitCry - dw Function4ddac - dw Function4ddc6 - dw StatsScreenWaitCry - dw Function4ddd6 - dw Function4dd6c -; 4dd3a - - -Function4dd3a: ; 4dd3a (13:5d3a) - ld hl, wcf64 - bit 6, [hl] - jr nz, .asm_4dd49 - bit 5, [hl] - jr nz, .asm_4dd56 - call DelayFrame - ret -.asm_4dd49 - callba Functiond00b4 - jr nc, .asm_4dd56 - ld hl, wcf64 - res 6, [hl] -.asm_4dd56 - ld hl, wcf64 - res 5, [hl] - callba Function10402d - ret - -Function4dd62: ; 4dd62 (13:5d62) - ld a, [wJumptableIndex] - and $80 - or h - ld [wJumptableIndex], a - ret - -Function4dd6c: ; 4dd6c (13:5d6c) - ld hl, wJumptableIndex - set 7, [hl] - ret - -MonStatsInit: ; 4dd72 (13:5d72) - ld hl, wcf64 - res 6, [hl] - call ClearBGPalettes - call ClearTileMap - callba Function10402d - call Function4ddf2 - ld a, [CurPartySpecies] - cp EGG - jr z, .asm_4dd9b - call Function4deea - ld hl, wcf64 - set 4, [hl] - ld h, $4 - call Function4dd62 - ret -.asm_4dd9b - ld h, $1 - call Function4dd62 - ret - -EggStatsInit: ; 4dda1 - call EggStatsScreen - ld a, [wJumptableIndex] - inc a - ld [wJumptableIndex], a - ret -; 0x4ddac - - -Function4ddac: ; 4ddac (13:5dac) - call Function4de2c - jr nc, .asm_4ddb7 - ld h, $0 - call Function4dd62 - ret -.asm_4ddb7 - bit 0, a - jr nz, .asm_4ddc0 - and $c3 - jp Function4de54 -.asm_4ddc0 - ld h, $7 - call Function4dd62 - ret - -Function4ddc6: ; 4ddc6 (13:5dc6) - call Function4dfb6 - ld hl, wcf64 - res 4, [hl] - ld a, [wJumptableIndex] - inc a - ld [wJumptableIndex], a - ret - -Function4ddd6: ; 4ddd6 (13:5dd6) - call Function4de2c - jr nc, .asm_4dde1 - ld h, $0 - call Function4dd62 - ret - -.asm_4dde1 - and $f3 - jp Function4de54 - -StatsScreenWaitCry: ; 4dde6 (13:5de6) - call IsSFXPlaying - ret nc - ld a, [wJumptableIndex] - inc a - ld [wJumptableIndex], a - ret - -Function4ddf2: ; 4ddf2 (13:5df2) - ld a, [MonType] - cp BREEDMON - jr nz, .asm_4de10 - ld a, [wd018] - ld [CurSpecies], a - call GetBaseData - ld hl, wd018 - ld de, TempMon - ld bc, PARTYMON_STRUCT_LENGTH - call CopyBytes - jr .asm_4de2a -.asm_4de10 - callba CopyPkmnToTempMon - ld a, [CurPartySpecies] - cp EGG - jr z, .asm_4de2a - ld a, [MonType] - cp BOXMON - jr c, .asm_4de2a - callba Function50890 -.asm_4de2a - and a - ret - -Function4de2c: ; 4de2c (13:5e2c) - call GetJoypad - ld a, [MonType] - cp BREEDMON - jr nz, .notbreedmon - push hl - push de - push bc - callba Functione2f95 - pop bc - pop de - pop hl - ld a, [wcf73] - and $c0 - jr nz, .set_carry - ld a, [wcf73] - jr .clear_flags - -.notbreedmon - ld a, [hJoyPressed] -.clear_flags - and a - ret - -.set_carry - scf - ret - -Function4de54: ; 4de54 (13:5e54) - push af - ld a, [wcf64] - and $3 - ld c, a - pop af - bit 1, a - jp nz, Function4dee4 - bit 5, a - jr nz, .asm_4dec7 - bit 4, a - jr nz, .asm_4debd - bit 0, a - jr nz, .asm_4deb8 - bit 6, a - jr nz, .asm_4dea0 - bit 7, a - jr nz, .asm_4de77 - jr .asm_4dece -.asm_4de77 - ld a, [MonType] - cp BOXMON - jr nc, .asm_4dece - and a - ld a, [PartyCount] - jr z, .asm_4de87 - ld a, [OTPartyCount] -.asm_4de87 - ld b, a - ld a, [CurPartyMon] - inc a - cp b - jr z, .asm_4dece - ld [CurPartyMon], a - ld b, a - ld a, [MonType] - and a - jr nz, .asm_4dede - ld a, b - inc a - ld [wd0d8], a - jr .asm_4dede -.asm_4dea0 - ld a, [CurPartyMon] - and a - jr z, .asm_4dece - dec a - ld [CurPartyMon], a - ld b, a - ld a, [MonType] - and a - jr nz, .asm_4dede - ld a, b - inc a - ld [wd0d8], a - jr .asm_4dede -.asm_4deb8 - ld a, c - cp $3 - jr z, Function4dee4 -.asm_4debd - inc c - ld a, $3 - cp c - jr nc, .asm_4decf - ld c, $1 - jr .asm_4decf -.asm_4dec7 - dec c - jr nz, .asm_4decf - ld c, $3 - jr .asm_4decf -.asm_4dece - ret -.asm_4decf - ld a, [wcf64] - and $fc - or c - ld [wcf64], a - ld h, $4 - call Function4dd62 - ret -.asm_4dede - ld h, $0 - call Function4dd62 - ret - -Function4dee4: ; 4dee4 (13:5ee4) - ld h, $7 - call Function4dd62 - ret - -Function4deea: ; 4deea (13:5eea) - call Function4df45 - xor a - ld [hBGMapMode], a - ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo) - ld [wd265], a - ld [CurSpecies], a - hlcoord 8, 0 - ld [hl], "№" - inc hl - ld [hl], "." - inc hl - hlcoord 10, 0 - lb bc, PRINTNUM_LEADINGZEROS | 1, 3 - ld de, wd265 - call PrintNum - hlcoord 14, 0 - call PrintLevel - ld hl, Unknown_4df77 - call Function4e528 - call Function4e505 - hlcoord 8, 2 - call PlaceString - hlcoord 18, 0 - call Function4df66 - hlcoord 9, 4 - ld a, "/" - ld [hli], a - ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo) - ld [wd265], a - call GetPokemonName - call PlaceString - call Function4df8f - call Function4df9b - call Function4dfa6 - ret - -Function4df45: ; 4df45 (13:5f45) - ld hl, TempMonHP - ld a, [hli] - ld b, a - ld c, [hl] - ld hl, TempMonMaxHP - ld a, [hli] - ld d, a - ld e, [hl] - callba DrawPartyMenuHPBar - ld hl, wcda1 - call SetHPPal - ld b, SCGB_03 - call GetSGBLayout - call DelayFrame - ret - -Function4df66: ; 4df66 (13:5f66) - push hl - callba GetGender - pop hl - ret c - ld a, "♂" - jr nz, .got_gender - ld a, "♀" -.got_gender - ld [hl], a - ret -; 4df77 (13:5f77) - -Unknown_4df77: ; 4df77 - dw PartyMonNicknames - dw OTPartyMonNicknames - dw sBoxMonNicknames - dw wd002 -; 4df7f - -Function4df7f: ; 4df7f - hlcoord 7, 0 - ld bc, SCREEN_WIDTH - ld d, SCREEN_HEIGHT -.loop - ld a, $31 - ld [hl], a - add hl, bc - dec d - jr nz, .loop - ret -; 4df8f - -Function4df8f: ; 4df8f (13:5f8f) - hlcoord 0, 7 - ld b, SCREEN_WIDTH - ld a, "_" -.loop - ld [hli], a - dec b - jr nz, .loop - ret - -Function4df9b: ; 4df9b (13:5f9b) - hlcoord 12, 6 - ld [hl], "◀" - hlcoord 19, 6 - ld [hl], "▶" - ret - -Function4dfa6: ; 4dfa6 (13:5fa6) - ld bc, TempMonDVs - callba CheckShininess - ret nc - hlcoord 19, 0 - ld [hl], "" - ret - -Function4dfb6: ; 4dfb6 (13:5fb6) - ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo) - ld [wd265], a - ld [CurSpecies], a - xor a - ld [hBGMapMode], a - call Function4dfda - call Function4e002 - call Function4dfed - ld hl, wcf64 - bit 4, [hl] - jr nz, .asm_4dfd6 - call SetPalettes - ret - -.asm_4dfd6 - call Function4e226 - ret - -Function4dfda: ; 4dfda (13:5fda) - ld a, [wcf64] - and $3 - ld c, a - call Function4e4cd - hlcoord 0, 8 - lb bc, 10, 20 - call ClearBox - ret - -Function4dfed: ; 4dfed (13:5fed) - ld a, [wcf64] - and $3 - ld c, a - callba Function8c8a - call DelayFrame - ld hl, wcf64 - set 5, [hl] - ret - -Function4e002: ; 4e002 (13:6002) - ld a, [wcf64] - and $3 - dec a - ld hl, Jumptable_4e00d - rst JumpTable - ret - -Jumptable_4e00d: ; 4e00d (13:600d) - dw Function4e013 - dw Function4e147 - dw Function4e1ae - - -Function4e013: ; 4e013 (13:6013) - hlcoord 0, 9 - ld b, $0 - predef DrawPlayerHP - hlcoord 8, 9 - ld [hl], $41 - ld de, String_4e119 - hlcoord 0, 12 - call PlaceString - ld a, [TempMonPokerusStatus] - ld b, a - and $f - jr nz, .asm_4e055 - ld a, b - and $f0 - jr z, .asm_4e03d - hlcoord 8, 8 - ld [hl], $e8 -.asm_4e03d - ld a, [MonType] - cp $2 - jr z, .asm_4e060 - hlcoord 6, 13 - push hl - ld de, TempMonStatus - predef PlaceStatusString - pop hl - jr nz, .asm_4e066 - jr .asm_4e060 -.asm_4e055 - ld de, String_4e142 - hlcoord 1, 13 - call PlaceString - jr .asm_4e066 -.asm_4e060 - ld de, String_4e127 - call PlaceString -.asm_4e066 - hlcoord 1, 15 - predef PrintMonTypes - hlcoord 9, 8 - ld de, $14 - ld b, $a - ld a, $31 -.asm_4e078 - ld [hl], a - add hl, de - dec b - jr nz, .asm_4e078 - ld de, String_4e12b - hlcoord 10, 9 - call PlaceString - hlcoord 17, 14 - call Function4e0d3 - hlcoord 13, 10 - lb bc, 3, 7 - ld de, TempMonExp - call PrintNum - call Function4e0e7 - hlcoord 13, 13 - lb bc, 3, 7 - ld de, Buffer1 ; wd1ea (aliases: MagikarpLength) - call PrintNum - ld de, String_4e136 - hlcoord 10, 12 - call PlaceString - ld de, String_4e13f - hlcoord 14, 14 - call PlaceString - hlcoord 11, 16 - ld a, [TempMonLevel] - ld b, a - ld de, TempMonExp + 2 - predef FillInExpBar - hlcoord 10, 16 - ld [hl], $40 - hlcoord 19, 16 - ld [hl], $41 - ret - -Function4e0d3: ; 4e0d3 (13:60d3) - ld a, [TempMonLevel] - push af - cp MAX_LEVEL - jr z, .asm_4e0df - inc a - ld [TempMonLevel], a -.asm_4e0df - call PrintLevel - pop af - ld [TempMonLevel], a - ret - -Function4e0e7: ; 4e0e7 (13:60e7) - ld a, [TempMonLevel] - cp MAX_LEVEL - jr z, .asm_4e111 - inc a - ld d, a - callba CalcExpAtLevel -rept 2 - ld hl, TempMonExp + 2 -endr - ld a, [$ffb6] - sub [hl] - dec hl - ld [wd1ec], a - ld a, [$ffb5] - sbc [hl] - dec hl - ld [Buffer2], a ; wd1eb (aliases: MovementType) - ld a, [hQuotient] - sbc [hl] - ld [Buffer1], a ; wd1ea (aliases: MagikarpLength) - ret -.asm_4e111 - ld hl, Buffer1 ; wd1ea (aliases: MagikarpLength) - xor a -rept 2 - ld [hli], a -endr - ld [hl], a - ret -; 4e119 (13:6119) - -String_4e119: ; 4e119 - db "STATUS/" - next "TYPE/@" -; 4e127 - -String_4e127: ; 4e127 - db "OK @" -; 4e12b - -String_4e12b: ; 4e12b - db "EXP POINTS@" -; 4e136 - -String_4e136: ; 4e136 - db "LEVEL UP@" -; 4e13f - -String_4e13f: ; 4e13f - db "TO@" -; 4e142 - -String_4e142: ; 4e142 - db "#RUS@" -; 4e147 - -Function4e147: ; 4e147 (13:6147) - ld de, String_4e1a0 - hlcoord 0, 8 - call PlaceString - call Function4e189 - hlcoord 8, 8 - call PlaceString - ld de, String_4e1a9 - hlcoord 0, 10 - call PlaceString - ld hl, TempMonMoves - ld de, wListMoves_MoveIndicesBuffer - ld bc, NUM_MOVES - call CopyBytes - hlcoord 8, 10 - ld a, SCREEN_WIDTH * 2 - ld [Buffer1], a - predef ListMoves - hlcoord 12, 11 - ld a, $28 - ld [Buffer1], a - predef Function50c50 - ret - -Function4e189: ; 4e189 (13:6189) - ld de, String_4e1a5 - ld a, [TempMonItem] - and a - ret z - ld b, a - callba Function28771 - ld a, b - ld [wd265], a - call GetItemName - ret -; 4e1a0 (13:61a0) - -String_4e1a0: ; 4e1a0 - db "ITEM@" -; 4e1a5 - -String_4e1a5: ; 4e1a5 - db "---@" -; 4e1a9 - -String_4e1a9: ; 4e1a9 - db "MOVE@" -; 4e1ae - -Function4e1ae: ; 4e1ae (13:61ae) - call Function4e1cc - hlcoord 10, 8 - ld de, $14 - ld b, $a - ld a, $31 -.asm_4e1bb - ld [hl], a - add hl, de - dec b - jr nz, .asm_4e1bb - hlcoord 11, 8 - ld bc, $6 - predef PrintTempMonStats - ret - -Function4e1cc: ; 4e1cc (13:61cc) - ld de, IDNoString - hlcoord 0, 9 - call PlaceString - ld de, OTString - hlcoord 0, 12 - call PlaceString - hlcoord 2, 10 - lb bc, PRINTNUM_LEADINGZEROS | 2, 5 - ld de, TempMonID - call PrintNum - ld hl, Unknown_4e216 - call Function4e528 - call Function4e505 - callba CheckNickErrors - hlcoord 2, 13 - call PlaceString - ld a, [TempMonCaughtGender] - and a - jr z, .asm_4e215 - cp $7f - jr z, .asm_4e215 - and $80 - ld a, "♂" - jr z, .asm_4e211 - ld a, "♀" -.asm_4e211 - hlcoord 9, 13 - ld [hl], a -.asm_4e215 - ret -; 4e216 (13:6216) - -Unknown_4e216: ; 4e216 - dw PartyMonOT - dw OTPartyMonOT - dw sBoxMonOT - dw wd00d -; 4e21e - -IDNoString: ; 4e21e - db $73, "№.@" - -OTString: ; 4e222 - db "OT/@" -; 4e226 - - -Function4e226: ; 4e226 (13:6226) - ld hl, TempMonDVs - predef GetUnownLetter - call Function4e2ad - jr c, .asm_4e238 - and a - jr z, .asm_4e23f - jr .asm_4e246 -.asm_4e238 - call Function4e271 - call SetPalettes - ret -.asm_4e23f - call Function4e253 - call SetPalettes - ret -.asm_4e246 - call SetPalettes - call Function4e253 - ld a, [CurPartySpecies] - call PlayCry2 - ret - -Function4e253: ; 4e253 (13:6253) - ld hl, wcf64 - set 5, [hl] - ld a, [CurPartySpecies] - cp UNOWN - jr z, .asm_4e266 - hlcoord 0, 0 - call PrepMonFrontpic - ret -.asm_4e266 - xor a - ld [wc2c6], a - hlcoord 0, 0 - call _PrepMonFrontpic - ret - -Function4e271: ; 4e271 (13:6271) - ld a, [CurPartySpecies] - cp UNOWN - jr z, .asm_4e281 - ld a, $1 - ld [wc2c6], a - call Function4e289 - ret -.asm_4e281 - xor a - ld [wc2c6], a - call Function4e289 - ret - -Function4e289: ; 4e289 (13:6289) - ld a, [CurPartySpecies] - call IsAPokemon - ret c - call Function4e307 - ld de, VTiles2 tile $00 - predef Function5108b - hlcoord 0, 0 - ld d, $0 - ld e, $2 - predef LoadMonAnimation - ld hl, wcf64 - set 6, [hl] - ret - -Function4e2ad: ; 4e2ad (13:62ad) - ld a, [MonType] - ld hl, Jumptable_4e2b5 - rst JumpTable - ret - -Jumptable_4e2b5: ; 4e2b5 (13:62b5) - dw Function4e2bf - dw Function4e2cf - dw Function4e2d1 - dw Function4e2ed - dw Function4e301 - - -Function4e2bf: ; 4e2bf (13:62bf) - ld a, [CurPartyMon] - ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) - ld bc, PARTYMON_STRUCT_LENGTH - call AddNTimes - ld b, h - ld c, l - jr Function4e2f2 - -Function4e2cf: ; 4e2cf (13:62cf) - xor a - ret - -Function4e2d1: ; 4e2d1 (13:62d1) - ld hl, sBoxMons - ld bc, $30 - ld a, [CurPartyMon] - call AddNTimes - ld b, h - ld c, l - ld a, $1 - call GetSRAMBank - call Function4e2f2 - push af - call CloseSRAM - pop af - ret - -Function4e2ed: ; 4e2ed (13:62ed) - ld bc, TempMonSpecies ; wd10e (aliases: TempMon) - jr Function4e2f2 - -Function4e2f2: ; 4e2f2 (13:62f2) - ld a, [CurPartySpecies] - cp EGG - jr z, .asm_4e2fe - call CheckFaintedFrzSlp - jr c, Function4e305 -.asm_4e2fe - xor a - scf - ret - -Function4e301: ; 4e301 (13:6301) - ld a, $1 - and a - ret -Function4e305: ; 4e305 (13:6305) - xor a - ret - -Function4e307: ; 4e307 (13:6307) - nop - push hl - push de - push bc - push af - call DelayFrame - ld a, [rVBK] - push af - ld a, $1 - ld [rVBK], a - ld de, TextBoxSpaceGFX - lb bc, BANK(TextBoxSpaceGFX), 1 - ld hl, VTiles2 tile $7f - call Get2bpp - pop af - ld [rVBK], a - pop af - pop bc - pop de - pop hl - ret -; 4e32a (13:632a) - -Unknown_4e32a: ; 4e32a -; A blank tile? - ds 16 -; 4e33a - -EggStatsScreen: ; 4e33a - xor a - ld [hBGMapMode], a - ld hl, wcda1 - call SetHPPal - ld b, SCGB_03 - call GetSGBLayout - call Function4df8f - ld de, EggString - hlcoord 8, 1 - call PlaceString - ld de, IDNoString - hlcoord 8, 3 - call PlaceString - ld de, OTString - hlcoord 8, 5 - call PlaceString - ld de, FiveQMarkString - hlcoord 11, 3 - call PlaceString - ld de, FiveQMarkString - hlcoord 11, 5 - call PlaceString - ld a, [TempMonHappiness] ; egg status - ld de, EggSoonString - cp $6 - jr c, .picked - ld de, EggCloseString - cp $b - jr c, .picked - ld de, EggMoreTimeString - cp $29 - jr c, .picked - ld de, EggALotMoreTimeString -.picked - hlcoord 1, 9 - call PlaceString - ld hl, wcf64 - set 5, [hl] - call SetPalettes ; pals - call DelayFrame - hlcoord 0, 0 - call PrepMonFrontpic - callba Function10402d - call Function4e497 - - ld a, [TempMonHappiness] - cp 6 - ret nc - ld de, SFX_2_BOOPS - call PlaySFX - ret -; 0x4e3c0 - -EggString: ; 4e3c0 - db "EGG@" - -FiveQMarkString: ; 4e3c4 - db "?????@" - -EggSoonString: ; 0x4e3ca - db "It's making sounds" - next "inside. It's going" - next "to hatch soon!@" - -EggCloseString: ; 0x4e3fd - db "It moves around" - next "inside sometimes." - next "It must be close" - next "to hatching.@" - -EggMoreTimeString: ; 0x4e43d - db "Wonder what's" - next "inside? It needs" - next "more time, though.@" - -EggALotMoreTimeString: ; 0x4e46e - db "This EGG needs a" - next "lot more time to" - next "hatch.@" -; 0x4e497 - - -Function4e497: ; 4e497 (13:6497) - call Function4e2ad - ret nc - ld a, [TempMonHappiness] - ld e, $7 - cp $6 - jr c, .asm_4e4ab - ld e, $8 - cp $b - jr c, .asm_4e4ab - ret -.asm_4e4ab - push de - ld a, $1 - ld [wc2c6], a - call Function4e307 - ld de, VTiles2 tile $00 - predef Function5108b - pop de - hlcoord 0, 0 - ld d, $0 - predef LoadMonAnimation - ld hl, wcf64 - set 6, [hl] - ret - -Function4e4cd: ; 4e4cd (13:64cd) - hlcoord 13, 5 - ld a, $36 - call Function4e4f7 - hlcoord 15, 5 - ld a, $36 - call Function4e4f7 - hlcoord 17, 5 - ld a, $36 - call Function4e4f7 - ld a, c - cp $2 - ld a, $3a - hlcoord 13, 5 - jr c, Function4e4f7 - hlcoord 15, 5 - jr z, Function4e4f7 - hlcoord 17, 5 - -Function4e4f7: ; 4e4f7 (13:64f7) - push bc - ld [hli], a - inc a - ld [hld], a - ld bc, $14 - add hl, bc - inc a - ld [hli], a - inc a - ld [hl], a - pop bc - ret - -Function4e505: ; 4e505 (13:6505) - ld de, StringBuffer1 - ld bc, $b - jr .asm_4e50d -.asm_4e50d - ld a, [MonType] - cp BOXMON - jr nz, .asm_4e522 - ld a, BANK(sBoxMonNicknames) - call GetSRAMBank - push de - call CopyBytes - pop de - call CloseSRAM - ret -.asm_4e522 - push de - call CopyBytes - pop de - ret - -Function4e528: ; 4e528 (13:6528) - ld a, [MonType] - add a - ld c, a - ld b, 0 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [MonType] - cp $3 - ret z - ld a, [CurPartyMon] - jp SkipNames - - -CheckFaintedFrzSlp: ; 4e53f - ld hl, MON_HP - add hl, bc - ld a, [hli] - or [hl] - jr z, .fainted_frz_slp - ld hl, MON_STATUS - add hl, bc - ld a, [hl] - and (1 << FRZ) | SLP - jr nz, .fainted_frz_slp - and a - ret - -.fainted_frz_slp - scf - ret -; 4e554 - +INCLUDE "engine/stats_screen.asm" CatchTutorial:: ; 4e554 ld a, [BattleType] @@ -22010,7 +20860,7 @@ CopyPkmnToTempMon: ; 5084a Function5088b: ; 5088b - ld bc, wd018 + ld bc, wd018_Mon jr Function50893 ; 50890 @@ -22976,7 +21826,7 @@ _SwitchPartyMons: ld [Buffer2], a ; wd1eb (aliases: MovementType) cp b jr z, .skip - call .SwapPartymonViaSRAM + call .SwapMonAndMail ld a, [wd1ec] call .ClearSprite ld a, [Buffer2] ; wd1eb (aliases: MovementType) @@ -23007,7 +21857,7 @@ _SwitchPartyMons: call WaitPlaySFX ret -.SwapPartymonViaSRAM: ; 50f62 (14:4f62) +.SwapMonAndMail: ; 50f62 (14:4f62) push hl push de push bc @@ -23261,7 +22111,7 @@ Function51103: ; 51103 ld b, a call Get2bpp pop hl - ld de, 7 * 7 * $10 + ld de, 7 * 7 tiles add hl, de push hl ld a, $1 @@ -23269,17 +22119,17 @@ Function51103: ; 51103 call GetFarWRAMByte pop hl and $f - ld de, w6_d000 + $800 + 5 * 5 * $10 + ld de, w6_d800 + 5 * 5 tiles ld c, 5 * 5 cp 5 - jr z, .asm_5113b - ld de, w6_d000 + $800 + 6 * 6 * $10 + jr z, .got_dims + ld de, w6_d800 + 6 * 6 tiles ld c, 6 * 6 cp 6 - jr z, .asm_5113b - ld de, w6_d000 + $800 + 7 * 7 * $10 + jr z, .got_dims + ld de, w6_d800 + 7 * 7 tiles ld c, 7 * 7 -.asm_5113b +.got_dims push hl push bc @@ -23376,10 +22226,10 @@ FixPicBank: ; 511c5 ; This is a thing for some reason. push hl push bc - sub PICS_1 - $36 + sub PICS_1 - PICS_FIX ld c, a ld b, 0 - ld hl, Unknown_511d4 + ld hl, .PicsBanks add hl, bc ld a, [hl] pop bc @@ -23387,7 +22237,7 @@ FixPicBank: ; 511c5 ret ; 511d4 -Unknown_511d4: ; 511d4 +.PicsBanks: ; 511d4 db PICS_1 db PICS_2 db PICS_3 @@ -23513,28 +22363,28 @@ Function5127c: ; 5127c jr z, .asm_512a8 ld a, c cp 7 * 7 - ld de, 7 * 7 * $10 - jr z, .asm_51296 + ld de, 7 * 7 tiles + jr z, .got_dims cp 6 * 6 - ld de, 6 * 6 * $10 - jr z, .asm_51296 - ld de, 5 * 5 * $10 + ld de, 6 * 6 tiles + jr z, .got_dims + ld de, 5 * 5 tiles -.asm_51296 +.got_dims ld a, [hl] ld b, $0 ld c, $8 -.asm_5129b +.loop rra rl b dec c - jr nz, .asm_5129b + jr nz, .loop ld a, b ld [hli], a dec de ld a, e or d - jr nz, .asm_51296 + jr nz, .got_dims .asm_512a8 pop bc @@ -23648,13 +22498,13 @@ Function51322: ; 51322 ld [wd265], a ld hl, sBoxMons ld bc, BOXMON_STRUCT_LENGTH - ld de, wd018 + ld de, wd018_Mon call Function513e0 - ld hl, wd01a + ld hl, wd018_MonMoves ld de, TempMonMoves ld bc, NUM_MOVES call CopyBytes - ld hl, wd02f + ld hl, wd018_MonPP ld de, TempMonPP ld bc, NUM_MOVES call CopyBytes @@ -23686,7 +22536,7 @@ Function5138b: ; 5138b ld [wd265], a ld hl, PartyMons ld bc, PARTYMON_STRUCT_LENGTH - ld de, wd018 + ld de, wd018_Mon call Function513e0 ret ; 513cb diff --git a/misc/mobile_22.asm b/misc/mobile_22.asm index 3fc378924..4e4efec93 100644 --- a/misc/mobile_22.asm +++ b/misc/mobile_22.asm @@ -665,9 +665,10 @@ Function894dc: ; 894dc push af ld a, 5 ld [rSVBK], a + ld c, d ld b, 0 - ld hl, Unknown_89509 + ld hl, .PalettePointers rept 2 add hl, bc endr @@ -675,25 +676,26 @@ endr ld h, [hl] ld l, a ld de, wMapPals - ld bc, 24 + ld bc, 3 palettes call CopyBytes - ld hl, Palette_89557 - ld de, wd018 - ld bc, 24 + ld hl, .Pals345 + ld de, wMapPals + 3 palettes + ld bc, 3 palettes call CopyBytes + pop af ld [rSVBK], a pop bc ret ; 89509 -Unknown_89509: ; 89509 - dw Palette_8950f - dw Palette_89527 - dw Palette_8953f +.PalettePointers: ; 89509 + dw .Pals012a + dw .Pals012b + dw .Pals012c ; 8950f -Palette_8950f: ; 8950f +.Pals012a: ; 8950f RGB 31, 31, 31 RGB 10, 17, 13 RGB 10, 08, 22 @@ -709,7 +711,7 @@ Palette_8950f: ; 8950f RGB 10, 17, 13 RGB 00, 00, 00 -Palette_89527: ; 89527 +.Pals012b: ; 89527 RGB 31, 31, 31 RGB 30, 22, 11 RGB 31, 08, 15 @@ -725,7 +727,7 @@ Palette_89527: ; 89527 RGB 30, 22, 11 RGB 00, 00, 00 -Palette_8953f: ; 8953f +.Pals012c: ; 8953f RGB 31, 31, 31 RGB 15, 20, 26 RGB 25, 07, 20 @@ -741,7 +743,7 @@ Palette_8953f: ; 8953f RGB 15, 20, 26 RGB 00, 00, 00 -Palette_89557: ; 89557 +.Pals345: ; 89557 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 13, 00 diff --git a/wram.asm b/wram.asm index a026c84af..efcd6999f 100644 --- a/wram.asm +++ b/wram.asm @@ -1536,6 +1536,8 @@ wd016:: ds 1 wMartItem8BCD:: wd017:: ds 1 + ds wd00d - @ +wd00d_MonOT:: ds NAME_LENGTH wd018_Mon:: party_struct wd018_Mon ds wd018_Mon - @ @@ -1620,6 +1622,7 @@ MenuItemsListEnd:: wTempTrainerHeaderEnd:: wd04e:: ds 2 wOaksPkmnTalkPkmnNameBuffer:: +wd050_MonNick:: wd050:: ds PKMN_NAME_LENGTH +- 1 wd05a:: ds 12 wd066:: ds 10 @@ -2998,7 +3001,8 @@ SECTION "WRAM 6", WRAMX, BANK [6] w6_d000:: ds $400 w6_d400:: ds $200 -w6_d600:: ds $600 +w6_d600:: ds $200 +w6_d800:: INCLUDE "sram.asm" From 812976cee6ba39d50583921273ad85195e77be37 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 20 Nov 2015 11:47:52 -0500 Subject: [PATCH 28/40] bgcoord --- battle/core.asm | 4 +- constants/deco_constants.asm | 3 + engine/battle_start.asm | 2 +- engine/color.asm | 6 +- engine/crystal_intro.asm | 40 +- engine/decorations.asm | 1 + engine/evolution_animation.asm | 6 +- engine/intro_menu.asm | 1427 +++++++++++++++++ engine/link.asm | 10 +- engine/main_menu.asm | 6 +- engine/map_setup.asm | 12 +- engine/phone.asm | 4 +- engine/pokegear.asm | 10 +- engine/save.asm | 6 +- engine/slot_machine.asm | 2 +- engine/specials.asm | 10 +- engine/time_capsule/conversion.asm | 2 +- engine/timeofdaypals.asm | 6 +- engine/timeset.asm | 4 +- engine/title.asm | 54 +- event/field_moves.asm | 4 +- event/halloffame.asm | 6 +- event/magnet_train.asm | 24 +- event/sacred_ash.asm | 12 +- event/whiteout.asm | 4 +- home.asm | 8 +- home/audio.asm | 4 +- home/fade.asm | 61 +- home/map.asm | 4 +- home/time.asm | 28 +- items/item_effects.asm | 4 +- macros.asm | 13 + macros/charmap.asm | 1 + main.asm | 1483 +----------------- maps/AzaleaTown.asm | 4 +- maps/BattleTowerBattleRoom.asm | 10 +- maps/BluesHouse.asm | 4 +- maps/BurnedTower1F.asm | 4 +- maps/CherrygroveCity.asm | 2 +- maps/CianwoodCity.asm | 2 +- maps/DragonShrine.asm | 2 +- maps/DragonsDenB1F.asm | 2 +- maps/EcruteakGym.asm | 2 +- maps/FastShip1F.asm | 4 +- maps/FastShipCabins_SE_SSE_CaptainsCabin.asm | 2 +- maps/FastShipCabins_SW_SSW_NW.asm | 2 +- maps/IlexForest.asm | 2 +- maps/IndigoPlateauPokeCenter1F.asm | 6 +- maps/KurtsHouse.asm | 4 +- maps/LancesRoom.asm | 6 +- maps/MobileBattleRoom.asm | 4 +- maps/MountMoon.asm | 2 +- maps/MrPokemonsHouse.asm | 2 +- maps/OlivineCity.asm | 4 +- maps/OlivineLighthouse6F.asm | 12 +- maps/OlivinePort.asm | 2 +- maps/RadioTower2F.asm | 6 +- maps/RadioTower5F.asm | 2 +- maps/Route24.asm | 4 +- maps/Route26HealSpeechHouse.asm | 2 +- maps/Route35NationalParkgate.asm | 4 +- maps/Route36NationalParkgate.asm | 6 +- maps/SilverCaveRoom3.asm | 6 +- maps/SlowpokeWellB1F.asm | 4 +- maps/SproutTower3F.asm | 4 +- maps/TeamRocketBaseB1F.asm | 12 +- maps/TeamRocketBaseB2F.asm | 6 +- maps/TeamRocketBaseB3F.asm | 2 +- maps/TinTower1F.asm | 2 +- maps/UndergroundPathSwitchRoomEntrances.asm | 4 +- maps/VermilionPort.asm | 2 +- maps/VictoryRoad.asm | 4 +- maps/WarehouseEntrance.asm | 8 +- misc/mobile_12.asm | 2 +- misc/mobile_40.asm | 4 +- misc/mobile_42.asm | 12 +- misc/mobile_45.asm | 2 +- misc/mobile_5b.asm | 36 +- misc/mobile_5f.asm | 4 +- misc/unused_title.asm | 2 +- sram.asm | 10 +- 81 files changed, 1765 insertions(+), 1740 deletions(-) create mode 100755 engine/intro_menu.asm diff --git a/battle/core.asm b/battle/core.asm index 5ebd8517c..008535576 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -8569,7 +8569,7 @@ BackUpVBGMap2: ; 3f568 ld a, $1 ld [rVBK], a ld de, w6_d000 - ld hl, VBGMap0 ; VBGMap2 + hlbgcoord 0, 0 ; VBGMap2 lb bc, BANK(BackUpVBGMap2), $40 call Request2bpp pop af @@ -9460,7 +9460,7 @@ InitBattleDisplay: ; 3fb6c call ByteFill ld de, w6_d000 - ld hl, VBGMap0 + hlbgcoord 0, 0 lb bc, BANK(.BlankBGMap), $40 call Request2bpp diff --git a/constants/deco_constants.asm b/constants/deco_constants.asm index d48f0b997..cb5b6d00a 100644 --- a/constants/deco_constants.asm +++ b/constants/deco_constants.asm @@ -104,3 +104,6 @@ const_value = 1 const DECO_TENTACOOL_DOLL ; 32 const DECO_GOLD_TROPHY_DOLL ; 33 const DECO_SILVER_TROPHY_DOLL ; 34 + +NUM_NON_TROPHY_DECOS EQU $2b +NUM_DECOS EQU $2d diff --git a/engine/battle_start.asm b/engine/battle_start.asm index 5bcaad99c..2b32e41b9 100644 --- a/engine/battle_start.asm +++ b/engine/battle_start.asm @@ -84,7 +84,7 @@ endr Function8c2a0: ; 8c2a0 call LoadTrainerBattlePokeballTiles - ld hl, VBGMap0 + hlbgcoord 0, 0 call Function8c2cf ret ; 8c2aa diff --git a/engine/color.asm b/engine/color.asm index c44b296d4..bf428f51c 100644 --- a/engine/color.asm +++ b/engine/color.asm @@ -319,7 +319,7 @@ Function8bec: ; 8bec ld a, [EnemySafeguardCount] and $3 call FillBoxCGB - call LoadDETile + call LoadEDTile ret ; 8c1d @@ -702,7 +702,7 @@ Function96b3: ; 96b3 .asm_96d0 hlcoord 0, 0, AttrMap - ld de, VBGMap0 + debgcoord 0, 0 ld b, $12 ld a, $1 ld [rVBK], a @@ -1293,7 +1293,7 @@ ClearBytes: ; 0x9a5b DrawDefaultTiles: ; 0x9a64 ; Draw 240 tiles (2/3 of the screen) from tiles in VRAM - ld hl, VBGMap0 ; BG Map 0 + hlbgcoord 0, 0 ; BG Map 0 ld de, 32 - 20 ld a, $80 ; starting tile ld c, 12 + 1 diff --git a/engine/crystal_intro.asm b/engine/crystal_intro.asm index 7849a9f48..0ed427de4 100755 --- a/engine/crystal_intro.asm +++ b/engine/crystal_intro.asm @@ -506,7 +506,7 @@ IntroScene1: ; e495b (39:495b) ld a, $1 ld [rVBK], a ld hl, IntroTilemap001 - ld de, VBGMap0 tile $00 + debgcoord 0, 0 call Functione54fa ld a, $0 ld [rVBK], a @@ -517,7 +517,7 @@ IntroScene1: ; e495b (39:495b) ld de, VTiles0 tile $00 call Functione54c2 ld hl, IntroTilemap002 - ld de, VBGMap0 tile $00 + debgcoord 0, 0 call Functione54fa ld a, [rSVBK] push af @@ -582,7 +582,7 @@ IntroScene3: ; e49fd (39:49fd) ld a, $1 ld [rVBK], a ld hl, IntroTilemap003 - ld de, VBGMap0 tile $00 + debgcoord 0, 0 call Functione54fa ld a, $0 ld [rVBK], a @@ -590,7 +590,7 @@ IntroScene3: ; e49fd (39:49fd) ld de, VTiles2 tile $00 call Functione54c2 ld hl, IntroTilemap004 - ld de, VBGMap0 tile $00 + debgcoord 0, 0 call Functione54fa ld a, [rSVBK] push af @@ -644,7 +644,7 @@ IntroScene5: ; e4a7a (39:4a7a) ld a, $1 ld [rVBK], a ld hl, IntroTilemap005 - ld de, VBGMap0 tile $00 + debgcoord 0, 0 call Functione54fa ld a, $0 ld [rVBK], a @@ -655,7 +655,7 @@ IntroScene5: ; e4a7a (39:4a7a) ld de, VTiles0 tile $00 call Functione54c2 ld hl, IntroTilemap006 - ld de, VBGMap0 tile $00 + debgcoord 0, 0 call Functione54fa ld a, [rSVBK] push af @@ -738,7 +738,7 @@ IntroScene7: ; e4b3f (39:4b3f) ld a, $1 ld [rVBK], a ld hl, IntroTilemap003 - ld de, VBGMap0 tile $00 + debgcoord 0, 0 call Functione54fa ld hl, IntroPichuWooperGFX ld de, VTiles0 tile $00 @@ -752,7 +752,7 @@ IntroScene7: ; e4b3f (39:4b3f) ld de, VTiles2 tile $00 call Functione54c2 ld hl, IntroTilemap004 - ld de, VBGMap0 tile $00 + debgcoord 0, 0 call Functione54fa ld a, [rSVBK] push af @@ -894,7 +894,7 @@ IntroScene11: ; e4c86 (39:4c86) ld a, $1 ld [rVBK], a ld hl, IntroTilemap007 - ld de, VBGMap0 tile $00 + debgcoord 0, 0 call Functione54fa ld a, $0 ld [rVBK], a @@ -902,7 +902,7 @@ IntroScene11: ; e4c86 (39:4c86) ld de, VTiles2 tile $00 call Functione54c2 ld hl, IntroTilemap008 - ld de, VBGMap0 tile $00 + debgcoord 0, 0 call Functione54fa ld a, [rSVBK] push af @@ -1016,7 +1016,7 @@ IntroScene13: ; e4d6d (39:4d6d) ld a, $1 ld [rVBK], a ld hl, IntroTilemap003 - ld de, VBGMap0 tile $00 + debgcoord 0, 0 call Functione54fa ld a, $0 ld [rVBK], a @@ -1027,7 +1027,7 @@ IntroScene13: ; e4d6d (39:4d6d) ld de, VTiles2 tile $00 call Functione54c2 ld hl, IntroTilemap004 - ld de, VBGMap0 tile $00 + debgcoord 0, 0 call Functione54fa ld a, [rSVBK] push af @@ -1120,7 +1120,7 @@ IntroScene15: ; e4e40 (39:4e40) ld a, $1 ld [rVBK], a ld hl, IntroTilemap009 - ld de, VBGMap0 tile $00 + debgcoord 0, 0 call Functione54fa ld a, $0 ld [rVBK], a @@ -1135,7 +1135,7 @@ IntroScene15: ; e4e40 (39:4e40) lb bc, BANK(GFX_e7a5d), 1 call Request2bpp ld hl, IntroTilemap010 - ld de, VBGMap0 tile $00 + debgcoord 0, 0 call Functione54fa call Functione541b ld a, [rSVBK] @@ -1202,7 +1202,7 @@ IntroScene17: ; e4ef5 (39:4ef5) ld a, $1 ld [rVBK], a ld hl, IntroTilemap011 - ld de, VBGMap0 tile $00 + debgcoord 0, 0 call Functione54fa ld a, $0 ld [rVBK], a @@ -1210,7 +1210,7 @@ IntroScene17: ; e4ef5 (39:4ef5) ld de, VTiles1 tile $00 call Functione54de ld hl, IntroTilemap012 - ld de, VBGMap0 tile $00 + debgcoord 0, 0 call Functione54fa ld a, [rSVBK] push af @@ -1268,7 +1268,7 @@ IntroScene19: ; e4f7e (39:4f7e) ld a, $1 ld [rVBK], a ld hl, IntroTilemap013 - ld de, VBGMap0 tile $00 + debgcoord 0, 0 call Functione54fa ld a, $0 ld [rVBK], a @@ -1283,7 +1283,7 @@ IntroScene19: ; e4f7e (39:4f7e) lb bc, BANK(GFX_e7a5d), 1 call Request2bpp ld hl, IntroTilemap014 - ld de, VBGMap0 tile $00 + debgcoord 0, 0 call Functione54fa call Functione541b ld a, [rSVBK] @@ -1444,7 +1444,7 @@ IntroScene26: ; e50bb (39:50bb) ld a, $1 ld [rVBK], a ld hl, IntroTilemap015 - ld de, VBGMap0 tile $00 + debgcoord 0, 0 call Functione54fa ld a, $0 ld [rVBK], a @@ -1452,7 +1452,7 @@ IntroScene26: ; e50bb (39:50bb) ld de, VTiles2 tile $00 call Functione54c2 ld hl, IntroTilemap017 - ld de, VBGMap0 tile $00 + debgcoord 0, 0 call Functione54fa ld a, [rSVBK] push af diff --git a/engine/decorations.asm b/engine/decorations.asm index a46d359a5..519f88d7c 100755 --- a/engine/decorations.asm +++ b/engine/decorations.asm @@ -1195,6 +1195,7 @@ DecorationIDs: ; 26f2b db DECO_BIG_SNORLAX_DOLL ; 1a db DECO_BIG_ONIX_DOLL ; 1b db DECO_BIG_LAPRAS_DOLL ; 1c +Trophys: db DECO_GOLD_TROPHY_DOLL ; 33 db DECO_SILVER_TROPHY_DOLL ; 34 db -1 diff --git a/engine/evolution_animation.asm b/engine/evolution_animation.asm index ce7dbd7f5..8e0a4af6d 100755 --- a/engine/evolution_animation.asm +++ b/engine/evolution_animation.asm @@ -378,7 +378,7 @@ Function4e881: ; 4e881 call DisableLCD call LoadStandardFont call LoadFontsBattleExtra - ld hl, VBGMap0 + hlbgcoord 0, 0 ld bc, VBGMap1 - VBGMap0 ld a, " " call ByteFill @@ -411,7 +411,7 @@ Function4e8c2: ; 4e8c2 call DisableLCD call LoadStandardFont call LoadFontsBattleExtra - ld hl, VBGMap0 + hlbgcoord 0, 0 ld bc, VBGMap1 - VBGMap0 ld a, " " call ByteFill @@ -446,7 +446,7 @@ Function4e906: ; 4e906 ld bc, w6_d400 - w6_d000 ld a, " " call ByteFill - ld hl, VBGMap0 + hlbgcoord 0, 0 ld de, w6_d000 ld b, $0 ld c, $40 diff --git a/engine/intro_menu.asm b/engine/intro_menu.asm new file mode 100755 index 000000000..cf5bcf8a0 --- /dev/null +++ b/engine/intro_menu.asm @@ -0,0 +1,1427 @@ +_MainMenu: ; 5ae8 + ld de, MUSIC_NONE + call PlayMusic + call DelayFrame + ld de, MUSIC_MAIN_MENU + ld a, e + ld [wMapMusic], a + call PlayMusic + callba MainMenu + jp Function6219 +; 5b04 + +; unreferenced + ret +; 5b05 + +PrintDayOfWeek: ; 5b05 + push de + ld hl, .Days + ld a, b + call GetNthString + ld d, h + ld e, l + pop hl + call PlaceString + ld h, b + ld l, c + ld de, .Day + call PlaceString + ret +; 5b1c + +.Days ; 5b1c + db "SUN@" + db "MON@" + db "TUES@" + db "WEDNES@" + db "THURS@" + db "FRI@" + db "SATUR@" +; 5b40 + +.Day ; 5b40 + db "DAY@" +; 5b44 + +NewGame_ClearTileMapEtc: ; 5b44 + xor a + ld [hMapAnims], a + call ClearTileMap + call LoadFontsExtra + call LoadStandardFont + call ResetTextRelatedRAM + ret +; 5b54 + +MysteryGift: ; 5b54 + call UpdateTime + callba DoMysteryGiftIfDayHasPassed + callba DoMysteryGift + ret +; 5b64 + +OptionsMenu: ; 5b64 + callba _OptionsMenu + ret +; 5b6b + +NewGame: ; 5b6b + xor a + ld [wc2cc], a + call ResetWRAM + call NewGame_ClearTileMapEtc + call AreYouABoyOrAreYouAGirl + call OakSpeech + call InitializeWorld + ld a, 1 + ld [wPreviousLandmark], a + + ld a, SPAWN_HOME + ld [DefaultSpawnpoint], a + + ld a, MAPSETUP_WARP + ld [hMapEntryMethod], a + jp FinishContinueFunction +; 5b8f + +AreYouABoyOrAreYouAGirl: ; 5b8f + callba Function10632f ; some mobile stuff + jr c, .ok + callba InitGender + ret + +.ok + ld c, 0 + callba InitMobileProfile ; mobile + ret +; 5ba7 + +ResetWRAM: ; 5ba7 + xor a + ld [hBGMapMode], a + call _ResetWRAM + ret +; 5bae + +_ResetWRAM: ; 5bae + + ld hl, Sprites + ld bc, Options - Sprites + xor a + call ByteFill + + ld hl, wd000 + ld bc, wGameData - wd000 + xor a + call ByteFill + + ld hl, wGameData + ld bc, wGameDataEnd - wGameData + xor a + call ByteFill + + ld a, [rLY] + ld [hSecondsBackup], a + call DelayFrame + ld a, [hRandomSub] + ld [PlayerID], a + + ld a, [rLY] + ld [hSecondsBackup], a + call DelayFrame + ld a, [hRandomAdd] + ld [PlayerID + 1], a + + call Random + ld [wSecretID], a + call DelayFrame + call Random + ld [wSecretID + 1], a + + ld hl, PartyCount + call InitList + + xor a + ld [wCurBox], a + ld [wSavedAtLeastOnce], a + + call SetDefaultBoxNames + + ld a, BANK(sBoxCount) + call GetSRAMBank + ld hl, sBoxCount + call InitList + call CloseSRAM + + ld hl, NumItems + call InitList + + ld hl, NumKeyItems + call InitList + + ld hl, NumBalls + call InitList + + ld hl, PCItems + call InitList + + xor a + ld [wRoamMon1Species], a + ld [wRoamMon2Species], a + ld [wRoamMon3Species], a + ld a, -1 + ld [wRoamMon1MapGroup], a + ld [wRoamMon2MapGroup], a + ld [wRoamMon3MapGroup], a + ld [wRoamMon1MapNumber], a + ld [wRoamMon2MapNumber], a + ld [wRoamMon3MapNumber], a + + ld a, BANK(sMysteryGiftItem) + call GetSRAMBank + ld hl, sMysteryGiftItem + xor a + ld [hli], a + dec a + ld [hl], a + call CloseSRAM + + call LoadOrRegenerateLuckyIDNumber + call InitializeMagikarpHouse + + xor a + ld [MonType], a + + ld [JohtoBadges], a + ld [KantoBadges], a + + ld [Coins], a + ld [Coins + 1], a + +START_MONEY EQU 3000 + +IF START_MONEY / $10000 + ld a, START_MONEY / $10000 +ENDC + ld [Money], a + ld a, START_MONEY / $100 % $100 + ld [Money + 1], a + ld a, START_MONEY % $100 + ld [Money + 2], a + + xor a + ld [wdc17], a + + ld hl, wdc19 + ld [hl], 2300 / $10000 + inc hl + ld [hl], 2300 / $100 % $100 + inc hl + ld [hl], 2300 % $100 + + call InitializeNPCNames + + callba InitDecorations + + callba DeletePartyMonMail + + callba DeleteMobileEventIndex + + call ResetGameTime + ret +; 5ca1 + +InitList: ; 5ca1 +; Loads 0 in the count and -1 in the first item or mon slot. + xor a + ld [hli], a + dec a + ld [hl], a + ret +; 5ca6 + +SetDefaultBoxNames: ; 5ca6 + ld hl, wBoxNames + ld c, 0 +.loop + push hl + ld de, .Box + call CopyName2 + dec hl + ld a, c + inc a + cp 10 + jr c, .less + sub 10 + ld [hl], "1" + inc hl + +.less + add "0" + ld [hli], a + ld [hl], "@" + pop hl + ld de, 9 + add hl, de + inc c + ld a, c + cp NUM_BOXES + jr c, .loop + ret + +.Box + db "BOX@" +; 5cd3 + +InitializeMagikarpHouse: ; 5cd3 + ld hl, wBestMagikarpLengthFeet + ld a, $3 + ld [hli], a + ld a, $6 + ld [hli], a + ld de, .Ralph + call CopyName2 + ret +; 5ce3 + +.Ralph ; 5ce3 + db "RALPH@" +; 5ce9 + +InitializeNPCNames: ; 5ce9 + ld hl, .Rival + ld de, RivalName + call .Copy + + ld hl, .Mom + ld de, MomsName + call .Copy + + ld hl, .Red + ld de, RedsName + call .Copy + + ld hl, .Green + ld de, GreensName + +.Copy + ld bc, NAME_LENGTH + call CopyBytes + ret + +.Rival db "???@" +.Red db "RED@" +.Green db "GREEN@" +.Mom db "MOM@" +; 5d23 + +InitializeWorld: ; 5d23 + call ShrinkPlayer + callba GetSpawnCoord + callba _InitializeStartDay + ret +; 5d33 + +LoadOrRegenerateLuckyIDNumber: ; 5d33 + ld a, BANK(sLuckyIDNumber) + call GetSRAMBank + ld a, [CurDay] + inc a + ld b, a + ld a, [sLuckyNumberDay] + cp b + ld a, [sLuckyIDNumber + 1] + ld c, a + ld a, [sLuckyIDNumber] + jr z, .skip + ld a, b + ld [sLuckyNumberDay], a + call Random + ld c, a + call Random + +.skip + ld [wLuckyIDNumber], a + ld [sLuckyIDNumber], a + ld a, c + ld [wLuckyIDNumber + 1], a + ld [sLuckyIDNumber + 1], a + jp CloseSRAM +; 5d65 + +Continue: ; 5d65 + callba TryLoadSaveFile + jr c, .FailToLoad + callba Function150b9 + call LoadStandardMenuDataHeader + call DisplaySaveInfoOnContinue + ld a, $1 + ld [hBGMapMode], a + ld c, 20 + call DelayFrames + call ConfirmContinue + jr nc, .Check1Pass + call WriteBackup + jr .FailToLoad + +.Check1Pass + call Continue_CheckRTC_RestartClock + jr nc, .Check2Pass + call WriteBackup + jr .FailToLoad + +.Check2Pass + ld a, $8 + ld [MusicFade], a + ld a, MUSIC_NONE % $100 + ld [MusicFadeIDLo], a + ld a, MUSIC_NONE / $100 + ld [MusicFadeIDHi], a + call ClearBGPalettes + call Continue_MobileAdapterMenu + call WriteBackup + call ClearTileMap + ld c, 20 + call DelayFrames + callba JumpRoamMons + callba Function105091 ; Mystery Gift + callba Function140ae ; time-related + ld a, [wSpawnAfterChampion] + cp SPAWN_LANCE + jr z, .SpawnAfterE4 + ld a, MAPSETUP_CONTINUE + ld [hMapEntryMethod], a + jp FinishContinueFunction + +.FailToLoad + ret + +.SpawnAfterE4 + ld a, SPAWN_NEW_BARK + ld [wd001], a + call PostCreditsSpawn + jp FinishContinueFunction +; 5de2 + +SpawnAfterRed: ; 5de2 + ld a, SPAWN_MT_SILVER + ld [wd001], a +; 5de7 + +PostCreditsSpawn: ; 5de7 + xor a + ld [wSpawnAfterChampion], a + ld a, MAPSETUP_WARP + ld [hMapEntryMethod], a + ret +; 5df0 + +Continue_MobileAdapterMenu: ; 5df0 + callba Function10632f ; mobile check + ret nc + ld hl, wd479 + bit 1, [hl] + ret nz + ld a, 5 + ld [MusicFade], a + ld a, MUSIC_MOBILE_ADAPTER_MENU % $100 + ld [MusicFadeIDLo], a + ld a, MUSIC_MOBILE_ADAPTER_MENU / $100 + ld [MusicFadeIDHi], a + ld c, 20 + call DelayFrames + ld c, $1 + callba InitMobileProfile ; mobile + callba _SaveData + ld a, 8 + ld [MusicFade], a + ld a, MUSIC_NONE % $100 + ld [MusicFadeIDLo], a + ld a, MUSIC_NONE / $100 + ld [MusicFadeIDHi], a + ld c, 35 + call DelayFrames + ret +; 5e34 + +ConfirmContinue: ; 5e34 +.loop + call DelayFrame + call GetJoypad + ld hl, hJoyPressed + bit 0, [hl] + jr nz, .PressA + bit 1, [hl] + jr z, .loop + scf + ret + +.PressA + ret +; 5e48 + +Continue_CheckRTC_RestartClock: ; 5e48 + call CheckRTCStatus + and %10000000 ; Day count exceeded 16383 + jr z, .pass + callba RestartClock + ld a, c + and a + jr z, .pass + scf + ret + +.pass + xor a + ret +; 5e5d + +FinishContinueFunction: ; 5e5d +.loop + xor a + ld [wc2c1], a + ld [wLinkMode], a + ld hl, GameTimerPause + set 0, [hl] + res 7, [hl] + ld hl, wEnteredMapFromContinue + set 1, [hl] + callba OverworldLoop + ld a, [wSpawnAfterChampion] + cp SPAWN_RED + jr z, .AfterRed + jp Reset + +.AfterRed + call SpawnAfterRed + jr .loop +; 5e85 + +DisplaySaveInfoOnContinue: ; 5e85 + call CheckRTCStatus + and %10000000 + jr z, .clock_ok + lb de, 4, 8 + call DisplayContinueDataWithRTCError + ret + +.clock_ok + lb de, 4, 8 + call DisplayNormalContinueData + ret +; 5e9a + +DisplaySaveInfoOnSave: ; 5e9a + lb de, 4, 0 + jr DisplayNormalContinueData +; 5e9f + +DisplayNormalContinueData: ; 5e9f + call Continue_LoadMenuHeader + call Continue_DisplayBadgesDexPlayerName + call Continue_PrintGameTime + call LoadFontsExtra + call UpdateSprites + ret +; 5eaf + +DisplayContinueDataWithRTCError: ; 5eaf + call Continue_LoadMenuHeader + call Continue_DisplayBadgesDexPlayerName + call Continue_UnknownGameTime + call LoadFontsExtra + call UpdateSprites + ret +; 5ebf + +Continue_LoadMenuHeader: ; 5ebf + xor a + ld [hBGMapMode], a + ld hl, .MenuDataHeader_Dex + ld a, [StatusFlags] + bit 0, a ; pokedex + jr nz, .pokedex_header + ld hl, .MenuDataHeader_NoDex + +.pokedex_header + call Function1e35 + call MenuBox + call Function1c89 + ret +; 5ed9 + +.MenuDataHeader_Dex: ; 5ed9 + db $40 ; flags + db 00, 00 ; start coords + db 09, 15 ; end coords + dw .MenuData2_Dex + db 1 ; default option +; 5ee1 + +.MenuData2_Dex: ; 5ee1 + db $00 ; flags + db 4 ; items + db "PLAYER@" + db "BADGES@" + db "#DEX@" + db "TIME@" +; 5efb + +.MenuDataHeader_NoDex: ; 5efb + db $40 ; flags + db 00, 00 ; start coords + db 09, 15 ; end coords + dw .MenuData2_NoDex + db 1 ; default option +; 5f03 + +.MenuData2_NoDex: ; 5f03 + db $00 ; flags + db 4 ; items + db "PLAYER @" + db "BADGES@" + db " @" + db "TIME@" +; 5f1c + + +Continue_DisplayBadgesDexPlayerName: ; 5f1c + call MenuBoxCoord2Tile + push hl + decoord 13, 4, 0 + add hl, de + call Continue_DisplayBadgeCount + pop hl + push hl + decoord 12, 6, 0 + add hl, de + call Continue_DisplayPokedexNumCaught + pop hl + push hl + decoord 8, 2, 0 + add hl, de + ld de, .Player + call PlaceString + pop hl + ret + +.Player + db "@" +; 5f40 + +Continue_PrintGameTime: ; 5f40 + decoord 9, 8, 0 + add hl, de + call Continue_DisplayGameTime + ret +; 5f48 + +Continue_UnknownGameTime: ; 5f48 + decoord 9, 8, 0 + add hl, de + ld de, .three_question_marks + call PlaceString + ret + +.three_question_marks + db " ???@" +; 5f58 + +Continue_DisplayBadgeCount: ; 5f58 + push hl + ld hl, JohtoBadges + ld b, 2 + call CountSetBits + pop hl + ld de, wd265 + lb bc, 1, 2 + jp PrintNum +; 5f6b + +Continue_DisplayPokedexNumCaught: ; 5f6b + ld a, [StatusFlags] + bit 0, a + ret z + push hl + ld hl, PokedexCaught +IF NUM_POKEMON % 8 + ld b, NUM_POKEMON / 8 + 1 +ELSE + ld b, NUM_POKEMON / 8 +ENDC + call CountSetBits + pop hl + ld de, wd265 + lb bc, 1, 3 + jp PrintNum +; 5f84 + +Continue_DisplayGameTime: ; 5f84 + ld de, GameTimeHours + lb bc, 2, 3 + call PrintNum + ld [hl], "" + inc hl + ld de, GameTimeMinutes + lb bc, PRINTNUM_LEADINGZEROS | 1, 2 + jp PrintNum +; 5f99 + + +OakSpeech: ; 0x5f99 + callba InitClock + call RotateFourPalettesLeft + call ClearTileMap + + ld de, MUSIC_ROUTE_30 + call PlayMusic + + call RotateFourPalettesRight + call RotateThreePalettesRight + xor a + ld [CurPartySpecies], a + ld a, POKEMON_PROF + ld [TrainerClass], a + call Intro_PrepTrainerPic + + ld b, SCGB_1C + call GetSGBLayout + call Intro_RotatePalettesLeftFrontpic + + ld hl, OakText1 + call PrintText + call RotateThreePalettesRight + call ClearTileMap + + ld a, WOOPER + ld [CurSpecies], a + ld [CurPartySpecies], a + call GetBaseData + + hlcoord 6, 4 + call PrepMonFrontpic + + xor a + ld [TempMonDVs], a + ld [TempMonDVs + 1], a + + ld b, SCGB_1C + call GetSGBLayout + call Intro_WipeInFrontpic + + ld hl, OakText2 + call PrintText + ld hl, OakText4 + call PrintText + call RotateThreePalettesRight + call ClearTileMap + + xor a + ld [CurPartySpecies], a + ld a, POKEMON_PROF + ld [TrainerClass], a + call Intro_PrepTrainerPic + + ld b, SCGB_1C + call GetSGBLayout + call Intro_RotatePalettesLeftFrontpic + + ld hl, OakText5 + call PrintText + call RotateThreePalettesRight + call ClearTileMap + + xor a + ld [CurPartySpecies], a + callba DrawIntroPlayerPic + + ld b, SCGB_1C + call GetSGBLayout + call Intro_RotatePalettesLeftFrontpic + + ld hl, OakText6 + call PrintText + call NamePlayer + ld hl, OakText7 + call PrintText + ret + +OakText1: ; 0x6045 + text_jump _OakText1 + db "@" + +OakText2: ; 0x604a + text_jump _OakText2 + start_asm + ld a, WOOPER + call PlayCry + call WaitSFX + ld hl, OakText3 + ret + +OakText3: ; 0x605b + text_jump _OakText3 + db "@" + +OakText4: ; 0x6060 + text_jump _OakText4 + db "@" + +OakText5: ; 0x6065 + text_jump _OakText5 + db "@" + +OakText6: ; 0x606a + text_jump _OakText6 + db "@" + +OakText7: ; 0x606f + text_jump _OakText7 + db "@" + +NamePlayer: ; 0x6074 + callba MovePlayerPicRight + callba ShowPlayerNamingChoices + ld a, [MenuSelection2] + dec a + jr z, .NewName + call StorePlayerName + callba Function8c1d + callba MovePlayerPicLeft + ret + +.NewName + ld b, 1 + ld de, PlayerName + callba NamingScreen + + call RotateThreePalettesRight + call ClearTileMap + + call LoadFontsExtra + call WaitBGMap + + xor a + ld [CurPartySpecies], a + callba DrawIntroPlayerPic + + ld b, SCGB_1C + call GetSGBLayout + call RotateThreePalettesLeft + + ld hl, PlayerName + ld de, .Chris + ld a, [PlayerGender] + bit 0, a + jr z, .Male + ld de, .Kris +.Male + call InitName + ret + +.Chris + db "CHRIS@@@@@@" +.Kris + db "KRIS@@@@@@@" +; 60e9 + +Function60e9: ; Unreferenced + call LoadMenuDataHeader + call InterpretMenu2 + ld a, [MenuSelection2] + dec a + call CopyNameFromMenu + call WriteBackup + ret +; 60fa + +StorePlayerName: ; 60fa + ld a, "@" + ld bc, NAME_LENGTH + ld hl, PlayerName + call ByteFill + ld hl, PlayerName + ld de, StringBuffer2 + call CopyName2 + ret +; 610f + +ShrinkPlayer: ; 610f + + ld a, [hROMBank] + push af + + ld a, 0 << 7 | 32 ; fade out + ld [MusicFade], a + ld de, MUSIC_NONE + ld a, e + ld [MusicFadeIDLo], a + ld a, d + ld [MusicFadeIDHi], a + + ld de, SFX_ESCAPE_ROPE + call PlaySFX + pop af + rst Bankswitch + + ld c, 8 + call DelayFrames + + ld hl, Shrink1Pic + ld b, BANK(Shrink1Pic) + call ShrinkFrame + + ld c, 8 + call DelayFrames + + ld hl, Shrink2Pic + ld b, BANK(Shrink2Pic) + call ShrinkFrame + + ld c, 8 + call DelayFrames + + hlcoord 6, 5 + ld b, 7 + ld c, 7 + call ClearBox + + ld c, 3 + call DelayFrames + + call Intro_PlacePlayerSprite + call LoadFontsExtra + + ld c, 50 + call DelayFrames + + call RotateThreePalettesRight + call ClearTileMap + ret +; 616a + +Intro_RotatePalettesLeftFrontpic: ; 616a + ld hl, IntroFadePalettes + ld b, IntroFadePalettesEnd - IntroFadePalettes +.loop + ld a, [hli] + call DmgToCgbBGPals + ld c, 10 + call DelayFrames + dec b + jr nz, .loop + ret +; 617c + +IntroFadePalettes: ; 0x617c + db %01010100 + db %10101000 + db %11111100 + db %11111000 + db %11110100 + db %11100100 +IntroFadePalettesEnd +; 6182 + +Intro_WipeInFrontpic: ; 6182 + ld a, $77 + ld [hWX], a + call DelayFrame + ld a, %11100100 + call DmgToCgbBGPals +.loop + call DelayFrame + ld a, [hWX] + sub $8 + cp -1 + ret z + ld [hWX], a + jr .loop +; 619c + +Intro_PrepTrainerPic: ; 619c + ld de, VTiles2 + callba GetTrainerPic + xor a + ld [hFillBox], a + hlcoord 6, 4 + lb bc, 7, 7 + predef FillBox + ret +; 61b4 + +ShrinkFrame: ; 61b4 + ld de, VTiles2 + ld c, $31 + predef DecompressPredef + xor a + ld [hFillBox], a + hlcoord 6, 4 + lb bc, 7, 7 + predef FillBox + ret +; 61cd + +Intro_PlacePlayerSprite: ; 61cd + + callba GetPlayerIcon + ld c, $c + ld hl, VTiles0 + call Request2bpp + + ld hl, Sprites + ld de, .sprites + ld a, [de] + inc de + + ld c, a +.loop + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + + ld b, 0 + ld a, [PlayerGender] + bit 0, a + jr z, .male + ld b, 1 +.male + ld a, b + + ld [hli], a + dec c + jr nz, .loop + ret +; 61fe + +.sprites ; 61fe + db 4 + db $4c, $48, 0 + db $4c, $50, 1 + db $54, $48, 2 + db $54, $50, 3 +; 620b + + +Function620b: ; 620b + callab Functione4579 + jr c, Function6219 + callba CrystalIntro + +Function6219: ; 6219 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + + call .TitleScreen + call DelayFrame +.loop + call Function627b + jr nc, .loop + + call ClearSprites + call ClearBGPalettes + + pop af + ld [rSVBK], a + + ld hl, rLCDC + res 2, [hl] + call ClearScreen + call Function3200 + xor a + ld [hLCDStatCustom], a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + ld b, SCGB_08 + call GetSGBLayout + call UpdateTimePals + ld a, [wcf64] + cp $5 + jr c, .ok + xor a +.ok + ld e, a + ld d, 0 + ld hl, .jumptable +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 626a + +.jumptable + dw _MainMenu + dw Function6389 + dw Function620b + dw Function620b + dw ResetClock +; 6274 + + +.TitleScreen: ; 6274 + callba _TitleScreen + ret +; 627b + +Function627b: ; 627b + ld a, [wJumptableIndex] + bit 7, a + jr nz, .done_title + call TitleScreenScene + callba SuicuneFrameIterator + call DelayFrame + and a + ret + +.done_title + scf + ret +; 6292 + +Function6292: ; 6292 ; unreferenced + ld a, [hVBlankCounter] + and $7 + ret nz + ld hl, LYOverrides + $5f + ld a, [hl] + dec a + ld bc, 2 * SCREEN_WIDTH + call ByteFill + ret +; 62a3 + +TitleScreenScene: ; 62a3 + ld e, a + ld d, 0 + ld hl, .scenes +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 62af + +.scenes + dw TitleScreenEntrance + dw TitleScreenTimer + dw TitleScreenMain + dw TitleScreenEnd +; 62b7 + +Function62b7: ; Unreferenced + ld hl, wJumptableIndex + inc [hl] + ret +; 62bc + + +TitleScreenEntrance: ; 62bc + +; Animate the logo: +; Move each line by 4 pixels until our count hits 0. + ld a, [hSCX] + and a + jr z, .done + sub 4 + ld [hSCX], a + +; Lay out a base (all lines scrolling together). + ld e, a + ld hl, LYOverrides + ld bc, 8 * 10 ; logo height + call ByteFill + +; Reversed signage for every other line's position. +; This is responsible for the interlaced effect. + ld a, e + xor -1 + inc a + + ld b, 8 * 10 / 2 ; logo height / 2 + ld hl, LYOverrides + 1 +.loop + ld [hli], a + inc hl + dec b + jr nz, .loop + + callba AnimateTitleCrystal + ret + +.done +; Next scene + ld hl, wJumptableIndex + inc [hl] + xor a + ld [hLCDStatCustom], a + +; Play the title screen music. + ld de, MUSIC_TITLE + call PlayMusic + + ld a, $88 + ld [hWY], a + ret +; 62f6 + + +TitleScreenTimer: ; 62f6 + +; Next scene + ld hl, wJumptableIndex + inc [hl] + +; Start a timer + ld hl, wcf65 + ld de, $1140 ; 73.6 seconds + ld [hl], e + inc hl + ld [hl], d + ret +; 6304 + +TitleScreenMain: ; 6304 + +; Run the timer down. + ld hl, wcf65 + ld e, [hl] + inc hl + ld d, [hl] + ld a, e + or d + jr z, .end + + dec de + ld [hl], d + dec hl + ld [hl], e + +; Save data can be deleted by pressing Up + B + Select. + call GetJoypad + ld hl, hJoyDown + ld a, [hl] + and D_UP + B_BUTTON + SELECT + cp D_UP + B_BUTTON + SELECT + jr z, .delete_save_data + +; To bring up the clock reset dialog: + +; Hold Down + B + Select to initiate the sequence. + ld a, [$ffeb] + cp $34 + jr z, .check_clock_reset + + ld a, [hl] + and D_DOWN + B_BUTTON + SELECT + cp D_DOWN + B_BUTTON + SELECT + jr nz, .check_start + + ld a, $34 + ld [$ffeb], a + jr .check_start + +; Keep Select pressed, and hold Left + Up. +; Then let go of Select. +.check_clock_reset + bit 2, [hl] ; SELECT + jr nz, .check_start + + xor a + ld [$ffeb], a + + ld a, [hl] + and D_LEFT + D_UP + cp D_LEFT + D_UP + jr z, .clock_reset + +; Press Start or A to start the game. +.check_start + ld a, [hl] + and START | A_BUTTON + jr nz, .incave + ret + +.incave + ld a, 0 + jr .done + +.delete_save_data + ld a, 1 + +.done + ld [wcf64], a + +; Return to the intro sequence. + ld hl, wJumptableIndex + set 7, [hl] + ret + +.end +; Next scene + ld hl, wJumptableIndex + inc [hl] + +; Fade out the title screen music + xor a + ld [MusicFadeIDLo], a + ld [MusicFadeIDHi], a + ld hl, MusicFade + ld [hl], 8 ; 1 second + + ld hl, wcf65 + inc [hl] + ret + +.clock_reset + ld a, 4 + ld [wcf64], a + +; Return to the intro sequence. + ld hl, wJumptableIndex + set 7, [hl] + ret +; 6375 + +TitleScreenEnd: ; 6375 + +; Wait until the music is done fading. + + ld hl, wcf65 + inc [hl] + + ld a, [MusicFade] + and a + ret nz + + ld a, 2 + ld [wcf64], a + +; Back to the intro. + ld hl, wJumptableIndex + set 7, [hl] + ret +; 6389 + +Function6389: ; 6389 + callba Function4d54c + jp Init +; 6392 + +ResetClock: ; 6392 + callba _ResetClock + jp Init +; 639b + +Function639b: ; unreferenced + ; If bit 0 or 1 of [wcf65] is set, we don't need to be here. + ld a, [wcf65] + and $3 + ret nz + ld bc, SpriteAnim10 + ld hl, SpriteAnim10FrameIndex - SpriteAnim10 + add hl, bc ; over-the-top compicated way to load wc3ae into hl + ld l, [hl] + ld h, 0 +rept 2 + add hl, hl +endr + ld de, Data63ca + add hl, de + ; If bit 2 of [wcf65] is set, get the second dw; else, get the first dw + ld a, [wcf65] + and %00000100 +rept 2 + srl a +endr + ld e, a + ld d, 0 +rept 2 + add hl, de +endr + ld a, [hli] + and a + ret z + ld e, a + ld d, [hl] + ld a, SPRITE_ANIM_INDEX_01 + call _InitSpriteAnimStruct + ret +; 63ca + +Data63ca: ; 63ca +; frame 0 y, x; frame 1 y, x + db $5c, $50, $00, $00 + db $5c, $68, $5c, $58 + db $5c, $68, $5c, $78 + db $5c, $88, $5c, $78 + db $00, $00, $5c, $78 + db $00, $00, $5c, $58 +; 63e2 + +Copyright: ; 63e2 + call ClearTileMap + call LoadFontsExtra + ld de, CopyrightGFX + ld hl, VTiles2 tile $60 + lb bc, BANK(CopyrightGFX), $1d + call Request2bpp + hlcoord 2, 7 + ld de, CopyrightString + jp PlaceString +; 63fd + +CopyrightString: ; 63fd + ; ©1995-2001 Nintendo + db $60, $61, $62, $63, $64, $65, $66 + db $67, $68, $69, $6a, $6b, $6c + + db $4e + + ; ©1995-2001 Creatures inc. + db $60, $61, $62, $63, $64, $65, $66, $6d + db $6e, $6f, $70, $71, $72, $7a, $7b, $7c + + db $4e + + ; ©1995-2001 GAME FREAK inc. + db $60, $61, $62, $63, $64, $65, $66, $73, $74 + db $75, $76, $77, $78, $79, $7a, $7b, $7c + + db "@" +; 642e + +GameInit:: ; 642e + callba TryLoadSaveData + call ResetTextRelatedRAM + call ClearBGPalettes + call ClearTileMap + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a + xor a + ld [hBGMapAddress], a + ld [hJoyDown], a + ld [hSCX], a + ld [hSCY], a + ld a, $90 + ld [hWY], a + call WaitBGMap + jp Function620b +; 6454 diff --git a/engine/link.asm b/engine/link.asm index afdbd218a..feb4b5023 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -493,7 +493,7 @@ Function283b2: ; 283b2 pop hl bccoord 1, 14 call PlaceWholeStringInBoxAtOnce - call FadeToWhite + call RotateThreePalettesRight call ClearScreen ld b, $8 call GetSGBLayout @@ -1583,7 +1583,7 @@ Function28ade: ; 28ade jr nz, .asm_28ade Function28b22: ; 28b22 - call FadeToWhite + call RotateThreePalettesRight call ClearScreen ld b, $8 call GetSGBLayout @@ -2191,7 +2191,7 @@ Function28fdb: ; 28fdb ld [rVBK], a .asm_2900b - ld hl, VBGMap0 + hlbgcoord 0, 0 ld bc, sScratch - VBGMap0 ld a, " " call ByteFill @@ -2372,7 +2372,7 @@ Function2914e: ; 2914e push af call DisableLCD callab Function8cf53 - ld hl, $9874 + hlbgcoord 20, 3 ld bc, $c ld a, $60 call ByteFill @@ -2500,7 +2500,7 @@ Function29229: ; 29229 call ClearSprites call DisableLCD callab Function8cf53 - ld hl, VBGMap0 + hlbgcoord 0, 0 ld bc, sScratch - VBGMap0 ld a, " " call ByteFill diff --git a/engine/main_menu.asm b/engine/main_menu.asm index 6e0ab56e5..428858a74 100755 --- a/engine/main_menu.asm +++ b/engine/main_menu.asm @@ -240,7 +240,7 @@ Function49e09: ; 49e09 Function49e27: ; 49e27 - call Function6e3 + call CheckRTCStatus and $80 jr nz, .asm_49e39 hlcoord 0, 14 @@ -259,7 +259,7 @@ Function49e3d: ; 49e3d ld a, [wSaveFileExists] and a ret z - call Function6e3 + call CheckRTCStatus and $80 jp nz, Function49e75 call UpdateTime @@ -560,7 +560,7 @@ Function4a0c2: ; 4a0c2 (12:60c2) ld c, 2 call DelayFrames ld c, $1 - call Function4802f + call InitMobileProfile push af call ClearBGPalettes pop af diff --git a/engine/map_setup.asm b/engine/map_setup.asm index 7e0bfd3c1..ef1ad715e 100644 --- a/engine/map_setup.asm +++ b/engine/map_setup.asm @@ -249,10 +249,10 @@ MapSetupCommands: ; 15440 dba PlayMapMusic ; 03 dba RestartMapMusic ; 04 dba FadeToMapMusic ; 05 - dba FadeOutMapAndMusic ; 06 + dba RotatePalettesRightMapAndMusic ; 06 dba EnterMapMusic ; 07 dba ForceMapMusic ; 08 - dba FadeInMusic ; 09 + dba RotatePalettesLeftMusic ; 09 dba LoadBlockData ; 0a dba LoadNeighboringBlockData ; 0b dba SaveScreen ; 0c @@ -272,8 +272,8 @@ MapSetupCommands: ; 15440 dba LoadMapAttributes ; 1a dba LoadMapAttributes_SkipPeople ; 1b dba ClearBGPalettes ; 1c - dba FadeOutPalettes ; 1d - dba FadeInPalettes ; 1e + dba RotatePalettesRightPalettes ; 1d + dba RotatePalettesLeftPalettes ; 1e dba GetCoordOfUpperLeftCorner ; 1f dba RestoreFacingAfterWarp ; 20 dba SpawnInFacingDown ; 21 @@ -417,14 +417,14 @@ RetainOldPalettes: ; 1556d callba _UpdateTimePals ret -FadeOutMapAndMusic: ; 15574 +RotatePalettesRightMapAndMusic: ; 15574 ld e, 0 ld a, [MusicFadeIDLo] ld d, 0 ld a, [MusicFadeIDHi] ld a, $4 ld [MusicFade], a - call FadeToWhite + call RotateThreePalettesRight ret ; 15587 diff --git a/engine/phone.asm b/engine/phone.asm index 32481deaa..ab0ecb84a 100644 --- a/engine/phone.asm +++ b/engine/phone.asm @@ -604,7 +604,7 @@ Phone_StartRinging: ; 9033f call PlaySFX call Phone_CallerTextbox call UpdateSprites - callba Function4d188 + callba PhoneRing_LoadEDTile ret ; 90355 @@ -614,7 +614,7 @@ HangUp_Wait20Frames: ; 90355 Phone_Wait20Frames ld c, 20 call DelayFrames - callba Function4d188 + callba PhoneRing_LoadEDTile ret ; 90363 diff --git a/engine/pokegear.asm b/engine/pokegear.asm index 3954f5384..2aaf0d74e 100755 --- a/engine/pokegear.asm +++ b/engine/pokegear.asm @@ -2332,7 +2332,7 @@ FlyMap: ; 91c90 call TownMapBubble call TownMapPals - ld hl, VBGMap0 ; BG Map 0 + hlbgcoord 0, 0 ; BG Map 0 call TownMapBGUpdate call TownMapMon @@ -2371,12 +2371,12 @@ Function91d11: ; 91d11 call FillKantoMap call Function91de9 call TownMapPals - ld hl, VBGMap1 + hlbgcoord 0, 0, VBGMap1 call TownMapBGUpdate call FillJohtoMap call Function91de9 call TownMapPals - ld hl, VBGMap0 + hlbgcoord 0, 0 call TownMapBGUpdate ld b, $2 call GetSGBLayout @@ -2875,12 +2875,12 @@ Function92311: ; unreferenced call FillKantoMap call TownMapBubble call TownMapPals - ld hl, VBGMap1 + hlbgcoord 0, 0, VBGMap1 call TownMapBGUpdate call FillJohtoMap call TownMapBubble call TownMapPals - ld hl, VBGMap0 + hlbgcoord 0, 0 call TownMapBGUpdate call TownMapMon ld a, c diff --git a/engine/save.asm b/engine/save.asm index f314cd4b5..68189b7d1 100644 --- a/engine/save.asm +++ b/engine/save.asm @@ -1,9 +1,9 @@ SaveMenu: ; 14a1a call LoadStandardMenuDataHeader - callba Function5e9a + callba DisplaySaveInfoOnSave call SpeechTextBox call UpdateSprites - callba SaveMenu_LoadDETile + callba SaveMenu_LoadEDTile ld hl, UnknownText_0x15283 call SaveTheGame_yesorno jr nz, .refused @@ -19,7 +19,7 @@ SaveMenu: ; 14a1a .refused call ExitMenu call Functiond90 - callba SaveMenu_LoadDETile + callba SaveMenu_LoadEDTile scf ret diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm index 6f53bb6b3..dab0e2361 100755 --- a/engine/slot_machine.asm +++ b/engine/slot_machine.asm @@ -26,7 +26,7 @@ Function926f7: ; 926f7 (24:66f7) call PlayMusic call DelayFrame call DisableLCD - ld hl, VBGMap0 tile $00 + hlbgcoord 0, 0 lb bc, 4, 0 ld a, $7f call ByteFill diff --git a/engine/specials.asm b/engine/specials.asm index 29c4da492..e2b4e6195 100644 --- a/engine/specials.asm +++ b/engine/specials.asm @@ -66,11 +66,11 @@ SpecialsPointers:: ; c029 add_special Special_CardFlip add_special Special_DummyNonfunctionalGameCornerGame add_special Special_ClearBGPalettesBufferScreen - add_special FadeOutPalettes + add_special RotatePalettesRightPalettes add_special Special_BattleTowerFade add_special Special_FadeBlackQuickly - add_special FadeInPalettes - add_special Special_FadeInQuickly + add_special RotatePalettesLeftPalettes + add_special Special_RotatePalettesLeftQuickly add_special Special_ReloadSpritesNoPalettes add_special ClearBGPalettes add_special UpdateTimePals @@ -126,7 +126,7 @@ SpecialsPointers:: ; c029 add_special SpecialTrainerHouse add_special PhotoStudio add_special InitRoamMons - add_special Special_FadeOutMusic + add_special Special_RotatePalettesRightMusic add_special Diploma add_special PrintDiploma @@ -616,7 +616,7 @@ SpecialGameboyCheck: ; c478 ret -Special_FadeOutMusic: ; c48f +Special_RotatePalettesRightMusic: ; c48f ld a, MUSIC_NONE % $100 ld [MusicFadeIDLo], a ld a, MUSIC_NONE / $100 diff --git a/engine/time_capsule/conversion.asm b/engine/time_capsule/conversion.asm index 4b5b1ef83..10f7ab5f3 100755 --- a/engine/time_capsule/conversion.asm +++ b/engine/time_capsule/conversion.asm @@ -364,7 +364,7 @@ NewPokedexEntry: ; fb877 pop af ld [wPokedexStatus], a call MaxVolume - call FadeToWhite + call RotateThreePalettesRight ld a, [hSCX] add $fb ld [hSCX], a diff --git a/engine/timeofdaypals.asm b/engine/timeofdaypals.asm index 6ebb2a421..fac580f41 100644 --- a/engine/timeofdaypals.asm +++ b/engine/timeofdaypals.asm @@ -116,7 +116,7 @@ _UpdateTimePals:: ; 8c070 ret ; 8c079 -FadeInPalettes:: ; 8c079 +RotatePalettesLeftPalettes:: ; 8c079 ld c, $12 call GetTimePalFade ld b, $4 @@ -124,7 +124,7 @@ FadeInPalettes:: ; 8c079 ret ; 8c084 -FadeOutPalettes:: ; 8c084 +RotatePalettesRightPalettes:: ; 8c084 call Function8c0c1 ld c, $9 call GetTimePalFade @@ -150,7 +150,7 @@ endr ret ; 8c0ab -Special_FadeInQuickly: ; 8c0ab +Special_RotatePalettesLeftQuickly: ; 8c0ab ld c, $0 call GetTimePalFade ld b, $4 diff --git a/engine/timeset.asm b/engine/timeset.asm index 00cdf9cac..0b0f12718 100755 --- a/engine/timeset.asm +++ b/engine/timeset.asm @@ -15,7 +15,7 @@ InitClock: ; 90672 (24:4672) ld [MusicFadeIDHi], a ld c, 8 call DelayFrames - call Function4dd + call RotateFourPalettesLeft call ClearTileMap call ClearSprites ld b, SCGB_08 @@ -37,7 +37,7 @@ InitClock: ; 90672 (24:4672) call Request1bpp call .ClearScreen call WaitBGMap - call Function4a3 + call RotateFourPalettesRight ld hl, UnknownText_0x90874 call PrintText ld hl, wc608 diff --git a/engine/title.asm b/engine/title.asm index 0fbf8b42d..fc8dfa0e4 100644 --- a/engine/title.asm +++ b/engine/title.asm @@ -31,8 +31,8 @@ _TitleScreen: ; 10ed67 ; Clear screen palettes - ld hl, VBGMap0 - ld bc, $0280 + hlbgcoord 0, 0 + ld bc, 20 bgrows xor a call ByteFill @@ -42,8 +42,8 @@ _TitleScreen: ; 10ed67 ; BG Map 1: ; line 0 (copyright) - ld hl, VBGMap1 - ld bc, $0020 ; one row + hlbgcoord 0, 0, VBGMap1 + ld bc, 1 bgrows ld a, 7 ; palette call ByteFill @@ -53,41 +53,41 @@ _TitleScreen: ; 10ed67 ; Apply logo gradient: ; lines 3-4 - ld hl, VBGMap0 tile $06 ; (0,3) - ld bc, $0040 ; 2 rows + hlbgcoord 0, 3 + ld bc, 2 bgrows ld a, 2 call ByteFill ; line 5 - ld hl, VBGMap0 tile $0a ; (0,5) - ld bc, $0020 ; 1 row + hlbgcoord 0, 5 + ld bc, 1 bgrows ld a, 3 call ByteFill ; line 6 - ld hl, VBGMap0 tile $0c ; (0,6) - ld bc, $0020 ; 1 row + hlbgcoord 0, 6 + ld bc, 1 bgrows ld a, 4 call ByteFill ; line 7 - ld hl, VBGMap0 tile $0e ; (0,7) - ld bc, $0020 ; 1 row + hlbgcoord 0, 7 + ld bc, 1 bgrows ld a, 5 call ByteFill ; lines 8-9 - ld hl, VBGMap0 tile $10 ; (0,8) - ld bc, $0040 ; 2 rows + hlbgcoord 0, 8 + ld bc, 2 bgrows ld a, 6 call ByteFill ; 'CRYSTAL VERSION' - ld hl, $9925 ; (5,9) - ld bc, $000b ; length of version text + hlbgcoord 5, 9 + ld bc, NAME_LENGTH ; length of version text ld a, 1 call ByteFill ; Suicune gfx - ld hl, VBGMap0 tile $18 ; (0,12) - ld bc, $00c0 ; the rest of the screen + hlbgcoord 0, 12 + ld bc, 6 bgrows ; the rest of the screen ld a, 8 call ByteFill @@ -109,9 +109,9 @@ _TitleScreen: ; 10ed67 ; Clear screen tiles - ld hl, VBGMap0 - ld bc, $0800 - ld a, $7f + hlbgcoord 0, 0 + ld bc, 64 bgrows + ld a, " " call ByteFill ; Draw Pokemon logo @@ -122,7 +122,7 @@ _TitleScreen: ; 10ed67 call DrawTitleGraphic ; Draw copyright text - ld hl, $9c03 ; BGMap1(3,0) + hlbgcoord 3, 0, VBGMap1 lb bc, 1, 13 ld d, $c ld e, $10 @@ -270,7 +270,7 @@ SuicuneFrameIterator: ; 10eea7 LoadSuicuneFrame: ; 10eed2 hlcoord 6, 12 ld b, 6 -.row +.bgrows ld c, 8 .col ld a, d @@ -288,7 +288,7 @@ LoadSuicuneFrame: ; 10eed2 add d ld d, a dec b - jr nz, .row + jr nz, .bgrows ret ; 10eeef @@ -298,8 +298,8 @@ DrawTitleGraphic: ; 10eeef ; b: height ; c: width ; d: tile to start drawing from -; e: number of tiles to advance for each row -.row +; e: number of tiles to advance for each bgrows +.bgrows push de push bc push hl @@ -318,7 +318,7 @@ DrawTitleGraphic: ; 10eeef add d ld d, a dec b - jr nz, .row + jr nz, .bgrows ret ; 10ef06 diff --git a/event/field_moves.asm b/event/field_moves.asm index d6fa4a0bb..e12709b1e 100755 --- a/event/field_moves.asm +++ b/event/field_moves.asm @@ -7,7 +7,7 @@ PlayWhirlpoolSound: ; 8c7d4 ; 8c7e1 BlindingFlash: ; 8c7e1 - callba FadeOutPalettes + callba RotatePalettesRightPalettes ld hl, StatusFlags set 2, [hl] callba Function8c0e5 @@ -15,7 +15,7 @@ BlindingFlash: ; 8c7e1 ld b, SCGB_09 call GetSGBLayout callba Function49409 - callba FadeInPalettes + callba RotatePalettesLeftPalettes ret ; 8c80a diff --git a/event/halloffame.asm b/event/halloffame.asm index c4c901229..9aa088495 100755 --- a/event/halloffame.asm +++ b/event/halloffame.asm @@ -40,7 +40,7 @@ RedCredits:: ; 86455 ld [MusicFadeIDHi], a ld a, $a ld [MusicFade], a - callba FadeOutPalettes + callba RotatePalettesRightPalettes xor a ld [VramState], a ld [hMapAnims], a @@ -63,7 +63,7 @@ Function8648e: ; 8648e ld [MusicFadeIDHi], a ld a, 10 ld [MusicFade], a - callba FadeOutPalettes + callba RotatePalettesRightPalettes xor a ld [VramState], a ld [hMapAnims], a @@ -114,7 +114,7 @@ Function864c3: ; 864c3 call Function86810 ld a, $4 ld [MusicFade], a - call FadeToWhite + call RotateThreePalettesRight ld c, 8 call DelayFrames ret diff --git a/event/magnet_train.asm b/event/magnet_train.asm index 2c215ee63..d9c1a3ae9 100755 --- a/event/magnet_train.asm +++ b/event/magnet_train.asm @@ -158,7 +158,7 @@ endr ; 8cd27 DrawMagnetTrain: ; 8cd27 - ld hl, VBGMap0 + hlbgcoord 0, 0 xor a .asm_8cd2b call GetMagnetTrainBGTiles @@ -167,19 +167,19 @@ DrawMagnetTrain: ; 8cd27 inc a cp $12 jr c, .asm_8cd2b - ld hl, VBGMap0 tile $0c + hlbgcoord 0, 6 ld de, MagnetTrainTilemap1 ld c, 20 call .FillLine - ld hl, VBGMap0 tile $0e + hlbgcoord 0, 7 ld de, MagnetTrainTilemap2 ld c, 20 call .FillLine - ld hl, VBGMap0 tile $10 + hlbgcoord 0, 8 ld de, MagnetTrainTilemap3 ld c, 20 call .FillLine - ld hl, VBGMap0 tile $12 + hlbgcoord 0, 9 ld de, MagnetTrainTilemap4 ld c, 20 call .FillLine @@ -262,25 +262,25 @@ SetMagnetTrainPals: ; 8cdc3 ld [rVBK], a ; bushes - ld hl, VBGMap0 - ld bc, 8 tiles + hlbgcoord 0, 0 + ld bc, 4 bgrows ld a, $2 call ByteFill ; train - ld hl, VBGMap0 tile $08 - ld bc, 20 tiles + hlbgcoord 0, 4 + ld bc, 10 bgrows xor a call ByteFill ; more bushes - ld hl, VBGMap0 tile $1c - ld bc, 8 tiles + hlbgcoord 0, 14 + ld bc, 4 bgrows ld a, $2 call ByteFill ; train window - ld hl, VBGMap0 tile $10 + 7 + hlbgcoord 7, 8 ld bc, 6 ld a, $4 call ByteFill diff --git a/event/sacred_ash.asm b/event/sacred_ash.asm index 00b80bb46..1b0a4e244 100755 --- a/event/sacred_ash.asm +++ b/event/sacred_ash.asm @@ -52,12 +52,12 @@ SacredAshScript: ; 0x50821 special HealParty reloadmappart playsound SFX_WARP_TO - special FadeOutPalettes - special FadeInPalettes - special FadeOutPalettes - special FadeInPalettes - special FadeOutPalettes - special FadeInPalettes + special RotatePalettesRightPalettes + special RotatePalettesLeftPalettes + special RotatePalettesRightPalettes + special RotatePalettesLeftPalettes + special RotatePalettesRightPalettes + special RotatePalettesLeftPalettes waitbutton writetext UnknownText_0x50845 playsound SFX_CAUGHT_MON diff --git a/event/whiteout.asm b/event/whiteout.asm index 5cc0a07f9..405c6d530 100755 --- a/event/whiteout.asm +++ b/event/whiteout.asm @@ -10,7 +10,7 @@ Script_OverworldWhiteout:: ; 0x124c8 Script_Whiteout: ; 0x124ce writetext .WhitedOutText closetext - special FadeOutPalettes + special RotatePalettesRightPalettes pause 40 special HealParty checkflag ENGINE_BUG_CONTEST_TIMER @@ -37,7 +37,7 @@ OverworldBGMap: ; 124fa call ClearScreen call Function3200 call HideSprites - call Function4f0 + call RotateThreePalettesLeft ret ; 1250a diff --git a/home.asm b/home.asm index 95ca0549d..cb605bf2c 100644 --- a/home.asm +++ b/home.asm @@ -579,7 +579,7 @@ Function321c:: ; 321c ld a, 1 ld [hBGMapMode], a - jr LoadDETile + jr LoadEDTile .dmg ; WaitBGMap @@ -595,8 +595,8 @@ Function3238:: ; 3238 and a jr z, WaitBGMap -LoadDETile:: ; 323d - jr .LoadDETile +LoadEDTile:: ; 323d + jr .LoadEDTile ; 323f .unreferenced_323f ; 323f @@ -604,7 +604,7 @@ LoadDETile:: ; 323d ret ; 3246 -.LoadDETile ; 3246 +.LoadEDTile ; 3246 ld a, [hBGMapMode] push af xor a diff --git a/home/audio.asm b/home/audio.asm index 191366d0d..490f076a0 100644 --- a/home/audio.asm +++ b/home/audio.asm @@ -312,13 +312,13 @@ VolumeOff:: ; 3ca3 ret ; 3ca8 -Unused_FadeOutMusic:: ; 3ca8 +Unused_RotatePalettesRightMusic:: ; 3ca8 ld a, 4 ld [MusicFade], a ret ; 3cae -FadeInMusic:: ; 3cae +RotatePalettesLeftMusic:: ; 3cae ld a, 4 | 1 << 7 ld [MusicFade], a ret diff --git a/home/fade.asm b/home/fade.asm index 2559a0eb7..579a4125a 100644 --- a/home/fade.asm +++ b/home/fade.asm @@ -8,10 +8,10 @@ Function48c:: ; 48c ld a, l sub b ld l, a - jr nc, .asm_499 + jr nc, .okay dec h -.asm_499 +.okay ld a, [hli] ld [rBGP], a ld a, [hli] @@ -22,34 +22,34 @@ Function48c:: ; 48c ; 4a3 -Function4a3:: ; 4a3 +RotateFourPalettesRight:: ; 4a3 ld a, [hCGB] and a - jr z, .asm_4af + jr z, .dmg ld hl, IncGradGBPalTable_00 ld b, 4 - jr FadeOut + jr RotatePalettesRight -.asm_4af +.dmg ld hl, IncGradGBPalTable_08 ld b, 4 - jr FadeOut + jr RotatePalettesRight ; 4b6 -FadeToWhite:: ; 4b6 +RotateThreePalettesRight:: ; 4b6 ld a, [hCGB] and a - jr z, .asm_4c2 + jr z, .dmg ld hl, IncGradGBPalTable_05 ld b, 3 - jr FadeOut + jr RotatePalettesRight -.asm_4c2 +.dmg ld hl, IncGradGBPalTable_13 ld b, 3 -; 4c7 - -FadeOut:: ; 4c7 +RotatePalettesRight:: ; 4c7 +; Rotate palettes to the right and fill with loaded colors from the left +; If we're already at the leftmost color, fill with the leftmost color push de ld a, [hli] call DmgToCgbBGPals @@ -62,39 +62,38 @@ FadeOut:: ; 4c7 call DelayFrames pop de dec b - jr nz, FadeOut + jr nz, RotatePalettesRight ret ; 4dd -Function4dd:: ; 4dd +RotateFourPalettesLeft:: ; 4dd ld a, [hCGB] and a - jr z, .asm_4e9 + jr z, .dmg ld hl, IncGradGBPalTable_04 - 1 ld b, 4 - jr FadeIn + jr RotatePalettesLeft -.asm_4e9 +.dmg ld hl, IncGradGBPalTable_12 - 1 ld b, 4 - jr FadeIn + jr RotatePalettesLeft ; 4f0 -Function4f0:: ; 4f0 +RotateThreePalettesLeft:: ; 4f0 ld a, [hCGB] and a - jr z, .asm_4fc + jr z, .dmg ld hl, IncGradGBPalTable_07 - 1 ld b, 3 - jr FadeIn + jr RotatePalettesLeft -.asm_4fc +.dmg ld hl, IncGradGBPalTable_15 - 1 ld b, 3 - ; fallthrough -; 501 - -FadeIn:: ; 501 +RotatePalettesLeft:: ; 501 +; Rotate palettes to the left and fill with loaded colors from the right +; If we're already at the rightmost color, fill with the rightmost color push de ld a, [hld] ld d, a @@ -107,7 +106,7 @@ FadeIn:: ; 501 call DelayFrames pop de dec b - jr nz, FadeIn + jr nz, RotatePalettesLeft ret ; 517 @@ -117,17 +116,21 @@ IncGradGBPalTable_00:: db %11111111, %11111111, %11111111 IncGradGBPalTable_01:: db %11111110, %11111110, %11111110 IncGradGBPalTable_02:: db %11111001, %11111001, %11111001 IncGradGBPalTable_03:: db %11100100, %11100100, %11100100 + IncGradGBPalTable_04:: db %11100100, %11100100, %11100100 IncGradGBPalTable_05:: db %10010000, %10010000, %10010000 IncGradGBPalTable_06:: db %01000000, %01000000, %01000000 + IncGradGBPalTable_07:: db %00000000, %00000000, %00000000 ; bgp obp1 obp2 IncGradGBPalTable_08:: db %11111111, %11111111, %11111111 IncGradGBPalTable_09:: db %11111110, %11111110, %11111000 IncGradGBPalTable_10:: db %11111001, %11100100, %11100100 IncGradGBPalTable_11:: db %11100100, %11010000, %11100000 + IncGradGBPalTable_12:: db %11100100, %11010000, %11100000 IncGradGBPalTable_13:: db %10010000, %10000000, %10010000 IncGradGBPalTable_14:: db %01000000, %01000000, %01000000 + IncGradGBPalTable_15:: db %00000000, %00000000, %00000000 ; 547 diff --git a/home/map.asm b/home/map.asm index 193f58bc6..07341674f 100644 --- a/home/map.asm +++ b/home/map.asm @@ -2007,7 +2007,7 @@ FadeToMenu:: ; 2b29 xor a ld [hBGMapMode], a call LoadStandardMenuDataHeader - callba FadeOutPalettes + callba RotatePalettesRightPalettes call ClearSprites call DisableSpriteUpdates ret @@ -2036,7 +2036,7 @@ Function2b5c:: ; 2b5c call GetSGBLayout callba Function49409 call Function3200 - callba FadeInPalettes + callba RotatePalettesLeftPalettes call EnableSpriteUpdates ret ; 2b74 diff --git a/home/time.asm b/home/time.asm index d7010278e..7fb24028a 100644 --- a/home/time.asm +++ b/home/time.asm @@ -101,7 +101,7 @@ FixDays:: ; 5e8 ; update dl ld [hRTCDayLo], a ; DL -; flag for s0_ac60 +; flag for sRTCStatusFlags ld a, %01000000 jr .set @@ -120,7 +120,7 @@ FixDays:: ; 5e8 ; update dl ld [hRTCDayLo], a ; DL -; flag for s0_ac60 +; flag for sRTCStatusFlags ld a, %00100000 .set @@ -277,23 +277,23 @@ SetClock:: ; 691 ; 6c4 -Function6c4:: ; 6c4 -; clear s0_ac60 +ClearRTCStatus:: ; 6c4 +; clear sRTCStatusFlags xor a push af - ld a, BANK(s0_ac60) + ld a, BANK(sRTCStatusFlags) call GetSRAMBank pop af - ld [s0_ac60], a + ld [sRTCStatusFlags], a call CloseSRAM ret ; 6d3 -Function6d3:: ; 6d3 -; append flags to s0_ac60 - ld hl, s0_ac60 +RecordRTCStatus:: ; 6d3 +; append flags to sRTCStatusFlags + ld hl, sRTCStatusFlags push af - ld a, BANK(s0_ac60) + ld a, BANK(sRTCStatusFlags) call GetSRAMBank pop af or [hl] @@ -302,11 +302,11 @@ Function6d3:: ; 6d3 ret ; 6e3 -Function6e3:: ; 6e3 -; check s0_ac60 - ld a, BANK(s0_ac60) +CheckRTCStatus:: ; 6e3 +; check sRTCStatusFlags + ld a, BANK(sRTCStatusFlags) call GetSRAMBank - ld a, [s0_ac60] + ld a, [sRTCStatusFlags] call CloseSRAM ret ; 6ef diff --git a/items/item_effects.asm b/items/item_effects.asm index e97423fbd..6ab6f6c14 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -605,7 +605,7 @@ endr ld b, 0 callba NamingScreen - call FadeToWhite + call RotateThreePalettesRight call LoadStandardFont @@ -686,7 +686,7 @@ endr ld hl, Text_SentToBillsPC call PrintText - call FadeToWhite + call RotateThreePalettesRight call LoadStandardFont jr .return_from_capture diff --git a/macros.asm b/macros.asm index 5129e2960..4f736ffeb 100644 --- a/macros.asm +++ b/macros.asm @@ -221,3 +221,16 @@ endc endm depixel EQUS "ldpixel de," + +bgcoord: MACRO +IF _NARG == 4 + ld \1, \3 * $20 + \2 + \4 +ELSE + ld \1, \3 * $20 + \2 + VBGMap0 +ENDC +ENDM + +hlbgcoord EQUS "bgcoord hl," +debgcoord EQUS "bgcoord de," +bcbgcoord EQUS "bgcoord bc," +bgrows EQUS "* $20" diff --git a/macros/charmap.asm b/macros/charmap.asm index 73446d8e7..9eee57a0e 100644 --- a/macros/charmap.asm +++ b/macros/charmap.asm @@ -35,6 +35,7 @@ ; Actual characters charmap "▲", $61 charmap "_", $62 + charmap "", $6d ; necessary because ":" is already used charmap "′", $6e charmap "", $6e charmap "″", $6f diff --git a/main.asm b/main.asm index a185662ab..044f5fd42 100644 --- a/main.asm +++ b/main.asm @@ -14,12 +14,12 @@ Function4000:: ; 4000 jr z, .notinbattle call TextBox - jr .incave + jr .proceed .notinbattle predef Function28eef -.incave +.proceed hlcoord 4, 11 ld de, .Waiting call PlaceString @@ -58,1430 +58,7 @@ PushOAMEnd INCLUDE "engine/map_objects.asm" - -Function5ae8: ; 5ae8 - ld de, MUSIC_NONE - call PlayMusic - call DelayFrame - ld de, MUSIC_MAIN_MENU - ld a, e - ld [wMapMusic], a - call PlayMusic - callba MainMenu - jp Function6219 -; 5b04 - -; unreferenced - ret -; 5b05 - -PrintDayOfWeek: ; 5b05 - push de - ld hl, .Days - ld a, b - call GetNthString - ld d, h - ld e, l - pop hl - call PlaceString - ld h, b - ld l, c - ld de, .Day - call PlaceString - ret -; 5b1c - -.Days ; 5b1c - db "SUN@" - db "MON@" - db "TUES@" - db "WEDNES@" - db "THURS@" - db "FRI@" - db "SATUR@" -; 5b40 - -.Day ; 5b40 - db "DAY@" -; 5b44 - -NewGame_ClearTileMapEtc: ; 5b44 - xor a - ld [hMapAnims], a - call ClearTileMap - call LoadFontsExtra - call LoadStandardFont - call ResetTextRelatedRAM - ret -; 5b54 - -MysteryGift: ; 5b54 - call UpdateTime - callba DoMysteryGiftIfDayHasPassed - callba DoMysteryGift - ret -; 5b64 - -OptionsMenu: ; 5b64 - callba _OptionsMenu - ret -; 5b6b - -NewGame: ; 5b6b - xor a - ld [wc2cc], a - call ResetWRAM - call NewGame_ClearTileMapEtc - call AreYouABoyOrAreYouAGirl - call OakSpeech - call InitializeWorld - ld a, 1 - ld [wPreviousLandmark], a - - ld a, SPAWN_HOME - ld [DefaultSpawnpoint], a - - ld a, MAPSETUP_WARP - ld [hMapEntryMethod], a - jp FinishContinueFunction -; 5b8f - -AreYouABoyOrAreYouAGirl: ; 5b8f - callba Function10632f ; some mobile stuff - jr c, .ok - callba InitGender - ret - -.ok - ld c, 0 - callba Function4802f - ret -; 5ba7 - -ResetWRAM: ; 5ba7 - xor a - ld [hBGMapMode], a - call _ResetWRAM - ret -; 5bae - -_ResetWRAM: ; 5bae - - ld hl, Sprites - ld bc, Options - Sprites - xor a - call ByteFill - - ld hl, wd000 - ld bc, wGameData - wd000 - xor a - call ByteFill - - ld hl, wGameData - ld bc, wGameDataEnd - wGameData - xor a - call ByteFill - - ld a, [rLY] - ld [hSecondsBackup], a - call DelayFrame - ld a, [hRandomSub] - ld [PlayerID], a - - ld a, [rLY] - ld [hSecondsBackup], a - call DelayFrame - ld a, [hRandomAdd] - ld [PlayerID + 1], a - - call Random - ld [wSecretID], a - call DelayFrame - call Random - ld [wSecretID + 1], a - - ld hl, PartyCount - call InitList - - xor a - ld [wCurBox], a - ld [wSavedAtLeastOnce], a - - call SetDefaultBoxNames - - ld a, BANK(sBoxCount) - call GetSRAMBank - ld hl, sBoxCount - call InitList - call CloseSRAM - - ld hl, NumItems - call InitList - - ld hl, NumKeyItems - call InitList - - ld hl, NumBalls - call InitList - - ld hl, PCItems - call InitList - - xor a - ld [wRoamMon1Species], a - ld [wRoamMon2Species], a - ld [wRoamMon3Species], a - ld a, -1 - ld [wRoamMon1MapGroup], a - ld [wRoamMon2MapGroup], a - ld [wRoamMon3MapGroup], a - ld [wRoamMon1MapNumber], a - ld [wRoamMon2MapNumber], a - ld [wRoamMon3MapNumber], a - - ld a, BANK(sMysteryGiftItem) - call GetSRAMBank - ld hl, sMysteryGiftItem - xor a - ld [hli], a - dec a - ld [hl], a - call CloseSRAM - - call LoadOrRegenerateLuckyIDNumber - call InitializeMagikarpHouse - - xor a - ld [MonType], a - - ld [JohtoBadges], a - ld [KantoBadges], a - - ld [Coins], a - ld [Coins + 1], a - -START_MONEY EQU 3000 - -IF START_MONEY / $10000 - ld a, START_MONEY / $10000 -ENDC - ld [Money], a - ld a, START_MONEY / $100 % $100 - ld [Money + 1], a - ld a, START_MONEY % $100 - ld [Money + 2], a - - xor a - ld [wdc17], a - - ld hl, wdc19 - ld [hl], 2300 / $10000 - inc hl - ld [hl], 2300 / $100 % $100 - inc hl - ld [hl], 2300 % $100 - - call InitializeNPCNames - - callba InitDecorations - - callba DeletePartyMonMail - - callba DeleteMobileEventIndex - - call ResetGameTime - ret -; 5ca1 - -InitList: ; 5ca1 -; Loads 0 in the count and -1 in the first item or mon slot. - xor a - ld [hli], a - dec a - ld [hl], a - ret -; 5ca6 - -SetDefaultBoxNames: ; 5ca6 - ld hl, wBoxNames - ld c, 0 -.loop - push hl - ld de, .Box - call CopyName2 - dec hl - ld a, c - inc a - cp 10 - jr c, .less - sub 10 - ld [hl], "1" - inc hl - -.less - add "0" - ld [hli], a - ld [hl], "@" - pop hl - ld de, 9 - add hl, de - inc c - ld a, c - cp NUM_BOXES - jr c, .loop - ret - -.Box - db "BOX@" -; 5cd3 - -InitializeMagikarpHouse: ; 5cd3 - ld hl, wBestMagikarpLengthFeet - ld a, $3 - ld [hli], a - ld a, $6 - ld [hli], a - ld de, .Ralph - call CopyName2 - ret -; 5ce3 - -.Ralph ; 5ce3 - db "RALPH@" -; 5ce9 - -InitializeNPCNames: ; 5ce9 - ld hl, .Rival - ld de, RivalName - call .Copy - - ld hl, .Mom - ld de, MomsName - call .Copy - - ld hl, .Red - ld de, RedsName - call .Copy - - ld hl, .Green - ld de, GreensName - -.Copy - ld bc, NAME_LENGTH - call CopyBytes - ret - -.Rival db "???@" -.Red db "RED@" -.Green db "GREEN@" -.Mom db "MOM@" -; 5d23 - -InitializeWorld: ; 5d23 - call ShrinkPlayer - callba GetSpawnCoord - callba _InitializeStartDay - ret -; 5d33 - -LoadOrRegenerateLuckyIDNumber: ; 5d33 - ld a, BANK(sLuckyIDNumber) - call GetSRAMBank - ld a, [CurDay] - inc a - ld b, a - ld a, [sLuckyNumberDay] - cp b - ld a, [sLuckyIDNumber + 1] - ld c, a - ld a, [sLuckyIDNumber] - jr z, .skip - ld a, b - ld [sLuckyNumberDay], a - call Random - ld c, a - call Random - -.skip - ld [wLuckyIDNumber], a - ld [sLuckyIDNumber], a - ld a, c - ld [wLuckyIDNumber + 1], a - ld [sLuckyIDNumber + 1], a - jp CloseSRAM -; 5d65 - -Continue: ; 5d65 - callba TryLoadSaveFile - jr c, .FailToLoad - callba Function150b9 - call LoadStandardMenuDataHeader - call Function5e85 - ld a, $1 - ld [hBGMapMode], a - ld c, 20 - call DelayFrames - call ConfirmContinue - jr nc, .Check1Pass - call WriteBackup - jr .FailToLoad - -.Check1Pass - call Function5e48 - jr nc, .Check2Pass - call WriteBackup - jr .FailToLoad - -.Check2Pass - ld a, $8 - ld [MusicFade], a - ld a, MUSIC_NONE % $100 - ld [MusicFadeIDLo], a - ld a, MUSIC_NONE / $100 - ld [MusicFadeIDHi], a - call ClearBGPalettes - call Function5df0 - call WriteBackup - call ClearTileMap - ld c, 20 - call DelayFrames - callba JumpRoamMons - callba Function105091 - callba Function140ae ; time-related - ld a, [wSpawnAfterChampion] - cp SPAWN_LANCE - jr z, .SpawnAfterE4 - ld a, MAPSETUP_CONTINUE - ld [hMapEntryMethod], a - jp FinishContinueFunction - -.FailToLoad - ret - -.SpawnAfterE4 - ld a, SPAWN_NEW_BARK - ld [wd001], a - call PostCreditsSpawn - jp FinishContinueFunction -; 5de2 - -SpawnAfterRed: ; 5de2 - ld a, SPAWN_MT_SILVER - ld [wd001], a -; 5de7 - -PostCreditsSpawn: ; 5de7 - xor a - ld [wSpawnAfterChampion], a - ld a, MAPSETUP_WARP - ld [hMapEntryMethod], a - ret -; 5df0 - -Function5df0: ; 5df0 - callba Function10632f - ret nc - ld hl, wd479 - bit 1, [hl] - ret nz - ld a, $5 - ld [MusicFade], a - ld a, MUSIC_MOBILE_ADAPTER_MENU % $100 - ld [MusicFadeIDLo], a - ld a, MUSIC_MOBILE_ADAPTER_MENU / $100 - ld [MusicFadeIDHi], a - ld c, 20 - call DelayFrames - ld c, $1 - callba Function4802f - callba _SaveData - ld a, $8 - ld [MusicFade], a - ld a, MUSIC_NONE % $100 - ld [MusicFadeIDLo], a - ld a, MUSIC_NONE / $100 - ld [MusicFadeIDHi], a - ld c, 35 - call DelayFrames - ret -; 5e34 - -ConfirmContinue: ; 5e34 -.loop - call DelayFrame - call GetJoypad - ld hl, hJoyPressed - bit 0, [hl] - jr nz, .PressA - bit 1, [hl] - jr z, .loop - scf - ret - -.PressA - ret -; 5e48 - -Function5e48: ; 5e48 - call Function6e3 - and %10000000 ; Day count exceeded 16383 - jr z, .pass - callba RestartClock - ld a, c - and a - jr z, .pass - scf - ret - -.pass - xor a - ret -; 5e5d - -FinishContinueFunction: ; 5e5d -.loop - xor a - ld [wc2c1], a - ld [wLinkMode], a - ld hl, GameTimerPause - set 0, [hl] - res 7, [hl] - ld hl, wEnteredMapFromContinue - set 1, [hl] - callba OverworldLoop - ld a, [wSpawnAfterChampion] - cp SPAWN_RED - jr z, .AfterRed - jp Reset - -.AfterRed - call SpawnAfterRed - jr .loop -; 5e85 - -Function5e85: ; 5e85 - call Function6e3 - and $80 - jr z, .asm_5e93 - lb de, 4, 8 - call Function5eaf - ret - -.asm_5e93 - lb de, 4, 8 - call Function5e9f - ret -; 5e9a - -Function5e9a: ; 5e9a - lb de, 4, 0 - jr Function5e9f -; 5e9f - -Function5e9f: ; 5e9f - call Function5ebf - call Function5f1c - call Function5f40 - call LoadFontsExtra - call UpdateSprites - ret -; 5eaf - -Function5eaf: ; 5eaf - call Function5ebf - call Function5f1c - call Function5f48 - call LoadFontsExtra - call UpdateSprites - ret -; 5ebf - -Function5ebf: ; 5ebf - xor a - ld [hBGMapMode], a - ld hl, MenuDataHeader_0x5ed9 - ld a, [StatusFlags] - bit 0, a ; pokedex - jr nz, .asm_5ecf - ld hl, MenuDataHeader_0x5efb - -.asm_5ecf - call Function1e35 - call MenuBox - call Function1c89 - ret -; 5ed9 - -MenuDataHeader_0x5ed9: ; 5ed9 - db $40 ; flags - db 00, 00 ; start coords - db 09, 15 ; end coords - dw MenuData2_0x5ee1 - db 1 ; default option -; 5ee1 - -MenuData2_0x5ee1: ; 5ee1 - db $00 ; flags - db 4 ; items - db "PLAYER@" - db "BADGES@" - db "#DEX@" - db "TIME@" -; 5efb - -MenuDataHeader_0x5efb: ; 5efb - db $40 ; flags - db 00, 00 ; start coords - db 09, 15 ; end coords - dw MenuData2_0x5f03 - db 1 ; default option -; 5f03 - -MenuData2_0x5f03: ; 5f03 - db $00 ; flags - db 4 ; items - db "PLAYER @" - db "BADGES@" - db " @" - db "TIME@" -; 5f1c - - -Function5f1c: ; 5f1c - call MenuBoxCoord2Tile - push hl - ld de, $5d - add hl, de - call DisplayBadgeCount - pop hl - push hl - ld de, $84 - add hl, de - call DisplayPokedexNumCaught - pop hl - push hl - ld de, $30 - add hl, de - ld de, .Player - call PlaceString - pop hl - ret - -.Player - db "@" -; 5f40 - -Function5f40: ; 5f40 - ld de, $a9 - add hl, de - call DisplayGameTime - ret -; 5f48 - -Function5f48: ; 5f48 - ld de, $a9 - add hl, de - ld de, .text_5f53 - call PlaceString - ret - -.text_5f53 - db " ???@" -; 5f58 - -DisplayBadgeCount: ; 5f58 - push hl - ld hl, JohtoBadges - ld b, $2 - call CountSetBits - pop hl - ld de, wd265 - lb bc, 1, 2 - jp PrintNum -; 5f6b - -DisplayPokedexNumCaught: ; 5f6b - ld a, [StatusFlags] - bit 0, a - ret z - push hl - ld hl, PokedexCaught - ld b, $20 - call CountSetBits - pop hl - ld de, wd265 - lb bc, 1, 3 - jp PrintNum -; 5f84 - -DisplayGameTime: ; 5f84 - ld de, GameTimeHours - lb bc, 2, 3 - call PrintNum - ld [hl], $6d - inc hl - ld de, GameTimeMinutes - lb bc, PRINTNUM_LEADINGZEROS | 1, 2 - jp PrintNum -; 5f99 - - -OakSpeech: ; 0x5f99 - callba InitClock - call Function4dd - call ClearTileMap - - ld de, MUSIC_ROUTE_30 - call PlayMusic - - call Function4a3 - call FadeToWhite - xor a - ld [CurPartySpecies], a - ld a, POKEMON_PROF - ld [TrainerClass], a - call Intro_PrepTrainerPic - - ld b, SCGB_1C - call GetSGBLayout - call Intro_FadeInFrontpic - - ld hl, OakText1 - call PrintText - call FadeToWhite - call ClearTileMap - - ld a, WOOPER - ld [CurSpecies], a - ld [CurPartySpecies], a - call GetBaseData - - hlcoord 6, 4 - call PrepMonFrontpic - - xor a - ld [TempMonDVs], a - ld [TempMonDVs + 1], a - - ld b, SCGB_1C - call GetSGBLayout - call Intro_WipeInFrontpic - - ld hl, OakText2 - call PrintText - ld hl, OakText4 - call PrintText - call FadeToWhite - call ClearTileMap - - xor a - ld [CurPartySpecies], a - ld a, POKEMON_PROF - ld [TrainerClass], a - call Intro_PrepTrainerPic - - ld b, SCGB_1C - call GetSGBLayout - call Intro_FadeInFrontpic - - ld hl, OakText5 - call PrintText - call FadeToWhite - call ClearTileMap - - xor a - ld [CurPartySpecies], a - callba DrawIntroPlayerPic - - ld b, SCGB_1C - call GetSGBLayout - call Intro_FadeInFrontpic - - ld hl, OakText6 - call PrintText - call NamePlayer - ld hl, OakText7 - call PrintText - ret - -OakText1: ; 0x6045 - text_jump _OakText1 - db "@" - -OakText2: ; 0x604a - text_jump _OakText2 - start_asm - ld a, WOOPER - call PlayCry - call WaitSFX - ld hl, OakText3 - ret - -OakText3: ; 0x605b - text_jump _OakText3 - db "@" - -OakText4: ; 0x6060 - text_jump _OakText4 - db "@" - -OakText5: ; 0x6065 - text_jump _OakText5 - db "@" - -OakText6: ; 0x606a - text_jump _OakText6 - db "@" - -OakText7: ; 0x606f - text_jump _OakText7 - db "@" - -NamePlayer: ; 0x6074 - callba MovePlayerPicRight - callba ShowPlayerNamingChoices - ld a, [MenuSelection2] - dec a - jr z, .NewName - call StorePlayerName - callba Function8c1d - callba MovePlayerPicLeft - ret - -.NewName - ld b, 1 - ld de, PlayerName - callba NamingScreen - - call FadeToWhite - call ClearTileMap - - call LoadFontsExtra - call WaitBGMap - - xor a - ld [CurPartySpecies], a - callba DrawIntroPlayerPic - - ld b, SCGB_1C - call GetSGBLayout - call Function4f0 - - ld hl, PlayerName - ld de, .Chris - ld a, [PlayerGender] - bit 0, a - jr z, .Male - ld de, .Kris -.Male - call InitName - ret - -.Chris - db "CHRIS@@@@@@" -.Kris - db "KRIS@@@@@@@" -; 60e9 - -Function60e9: ; Unreferenced - call LoadMenuDataHeader - call InterpretMenu2 - ld a, [MenuSelection2] - dec a - call CopyNameFromMenu - call WriteBackup - ret -; 60fa - -StorePlayerName: ; 60fa - ld a, "@" - ld bc, NAME_LENGTH - ld hl, PlayerName - call ByteFill - ld hl, PlayerName - ld de, StringBuffer2 - call CopyName2 - ret -; 610f - -ShrinkPlayer: ; 610f - - ld a, [hROMBank] - push af - - ld a, 0 << 7 | 32 ; fade out - ld [MusicFade], a - ld de, MUSIC_NONE - ld a, e - ld [MusicFadeIDLo], a - ld a, d - ld [MusicFadeIDHi], a - - ld de, SFX_ESCAPE_ROPE - call PlaySFX - pop af - rst Bankswitch - - ld c, 8 - call DelayFrames - - ld hl, Shrink1Pic - ld b, BANK(Shrink1Pic) - call ShrinkFrame - - ld c, 8 - call DelayFrames - - ld hl, Shrink2Pic - ld b, BANK(Shrink2Pic) - call ShrinkFrame - - ld c, 8 - call DelayFrames - - hlcoord 6, 5 - ld b, 7 - ld c, 7 - call ClearBox - - ld c, 3 - call DelayFrames - - call Intro_PlacePlayerSprite - call LoadFontsExtra - - ld c, 50 - call DelayFrames - - call FadeToWhite - call ClearTileMap - ret -; 616a - -Intro_FadeInFrontpic: ; 616a - ld hl, IntroFadePalettes - ld b, IntroFadePalettesEnd - IntroFadePalettes -.loop - ld a, [hli] - call DmgToCgbBGPals - ld c, 10 - call DelayFrames - dec b - jr nz, .loop - ret -; 617c - -IntroFadePalettes: ; 0x617c - db %01010100 - db %10101000 - db %11111100 - db %11111000 - db %11110100 - db %11100100 -IntroFadePalettesEnd -; 6182 - -Intro_WipeInFrontpic: ; 6182 - ld a, $77 - ld [hWX], a - call DelayFrame - ld a, %11100100 - call DmgToCgbBGPals -.loop - call DelayFrame - ld a, [hWX] - sub $8 - cp -1 - ret z - ld [hWX], a - jr .loop -; 619c - -Intro_PrepTrainerPic: ; 619c - ld de, VTiles2 - callba GetTrainerPic - xor a - ld [hFillBox], a - hlcoord 6, 4 - lb bc, 7, 7 - predef FillBox - ret -; 61b4 - -ShrinkFrame: ; 61b4 - ld de, VTiles2 - ld c, $31 - predef DecompressPredef - xor a - ld [hFillBox], a - hlcoord 6, 4 - lb bc, 7, 7 - predef FillBox - ret -; 61cd - -Intro_PlacePlayerSprite: ; 61cd - - callba GetPlayerIcon - ld c, $c - ld hl, VTiles0 - call Request2bpp - - ld hl, Sprites - ld de, .sprites - ld a, [de] - inc de - - ld c, a -.loop - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a - - ld b, 0 - ld a, [PlayerGender] - bit 0, a - jr z, .male - ld b, 1 -.male - ld a, b - - ld [hli], a - dec c - jr nz, .loop - ret -; 61fe - -.sprites ; 61fe - db 4 - db $4c, $48, 0 - db $4c, $50, 1 - db $54, $48, 2 - db $54, $50, 3 -; 620b - - -Function620b: ; 620b - callab Functione4579 - jr c, Function6219 - callba CrystalIntro - -Function6219: ; 6219 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - - call TitleScreen - call DelayFrame -.loop - call Function627b - jr nc, .loop - - call ClearSprites - call ClearBGPalettes - - pop af - ld [rSVBK], a - - ld hl, rLCDC - res 2, [hl] - call ClearScreen - call Function3200 - xor a - ld [hLCDStatCustom], a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - ld b, SCGB_08 - call GetSGBLayout - call UpdateTimePals - ld a, [wcf64] - cp $5 - jr c, .ok - xor a -.ok - ld e, a - ld d, 0 - ld hl, .jumptable_626a -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 626a - -.jumptable_626a - dw Function5ae8 - dw Function6389 - dw Function620b - dw Function620b - dw ResetClock -; 6274 - - -TitleScreen: ; 6274 - callba _TitleScreen - ret -; 627b - -Function627b: ; 627b - ld a, [wJumptableIndex] - bit 7, a - jr nz, .done_title - call TitleScreenScene - callba SuicuneFrameIterator - call DelayFrame - and a - ret - -.done_title - scf - ret -; 6292 - -Function6292: ; 6292 ; unreferenced - ld a, [hVBlankCounter] - and $7 - ret nz - ld hl, LYOverrides + $5f - ld a, [hl] - dec a - ld bc, 2 * SCREEN_WIDTH - call ByteFill - ret -; 62a3 - -TitleScreenScene: ; 62a3 - ld e, a - ld d, 0 - ld hl, .scenes -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 62af - -.scenes - dw TitleScreenEntrance - dw TitleScreenTimer - dw TitleScreenMain - dw TitleScreenEnd -; 62b7 - -Function62b7: ; Unreferenced - ld hl, wJumptableIndex - inc [hl] - ret -; 62bc - - -TitleScreenEntrance: ; 62bc - -; Animate the logo: -; Move each line by 4 pixels until our count hits 0. - ld a, [hSCX] - and a - jr z, .done - sub 4 - ld [hSCX], a - -; Lay out a base (all lines scrolling together). - ld e, a - ld hl, LYOverrides - ld bc, 8 * 10 ; logo height - call ByteFill - -; Reversed signage for every other line's position. -; This is responsible for the interlaced effect. - ld a, e - xor -1 - inc a - - ld b, 8 * 10 / 2 ; logo height / 2 - ld hl, LYOverrides + 1 -.loop - ld [hli], a - inc hl - dec b - jr nz, .loop - - callba AnimateTitleCrystal - ret - -.done -; Next scene - ld hl, wJumptableIndex - inc [hl] - xor a - ld [hLCDStatCustom], a - -; Play the title screen music. - ld de, MUSIC_TITLE - call PlayMusic - - ld a, $88 - ld [hWY], a - ret -; 62f6 - - -TitleScreenTimer: ; 62f6 - -; Next scene - ld hl, wJumptableIndex - inc [hl] - -; Start a timer - ld hl, wcf65 - ld de, $1140 ; 73.6 seconds - ld [hl], e - inc hl - ld [hl], d - ret -; 6304 - -TitleScreenMain: ; 6304 - -; Run the timer down. - ld hl, wcf65 - ld e, [hl] - inc hl - ld d, [hl] - ld a, e - or d - jr z, .end - - dec de - ld [hl], d - dec hl - ld [hl], e - -; Save data can be deleted by pressing Up + B + Select. - call GetJoypad - ld hl, hJoyDown - ld a, [hl] - and D_UP + B_BUTTON + SELECT - cp D_UP + B_BUTTON + SELECT - jr z, .delete_save_data - -; To bring up the clock reset dialog: - -; Hold Down + B + Select to initiate the sequence. - ld a, [$ffeb] - cp $34 - jr z, .check_clock_reset - - ld a, [hl] - and D_DOWN + B_BUTTON + SELECT - cp D_DOWN + B_BUTTON + SELECT - jr nz, .check_start - - ld a, $34 - ld [$ffeb], a - jr .check_start - -; Keep Select pressed, and hold Left + Up. -; Then let go of Select. -.check_clock_reset - bit 2, [hl] ; SELECT - jr nz, .check_start - - xor a - ld [$ffeb], a - - ld a, [hl] - and D_LEFT + D_UP - cp D_LEFT + D_UP - jr z, .clock_reset - -; Press Start or A to start the game. -.check_start - ld a, [hl] - and START | A_BUTTON - jr nz, .incave - ret - -.incave - ld a, 0 - jr .done - -.delete_save_data - ld a, 1 - -.done - ld [wcf64], a - -; Return to the intro sequence. - ld hl, wJumptableIndex - set 7, [hl] - ret - -.end -; Next scene - ld hl, wJumptableIndex - inc [hl] - -; Fade out the title screen music - xor a - ld [MusicFadeIDLo], a - ld [MusicFadeIDHi], a - ld hl, MusicFade - ld [hl], 8 ; 1 second - - ld hl, wcf65 - inc [hl] - ret - -.clock_reset - ld a, 4 - ld [wcf64], a - -; Return to the intro sequence. - ld hl, wJumptableIndex - set 7, [hl] - ret -; 6375 - -TitleScreenEnd: ; 6375 - -; Wait until the music is done fading. - - ld hl, wcf65 - inc [hl] - - ld a, [MusicFade] - and a - ret nz - - ld a, 2 - ld [wcf64], a - -; Back to the intro. - ld hl, wJumptableIndex - set 7, [hl] - ret -; 6389 - -Function6389: ; 6389 - callba Function4d54c - jp Init -; 6392 - -ResetClock: ; 6392 - callba _ResetClock - jp Init -; 639b - -Function639b: ; unreferenced - ; If bit 0 or 1 of [wcf65] is set, we don't need to be here. - ld a, [wcf65] - and $3 - ret nz - ld bc, SpriteAnim10 - ld hl, SpriteAnim10FrameIndex - SpriteAnim10 - add hl, bc ; over-the-top compicated way to load wc3ae into hl - ld l, [hl] - ld h, 0 -rept 2 - add hl, hl -endr - ld de, Data63ca - add hl, de - ; If bit 2 of [wcf65] is set, get the second dw; else, get the first dw - ld a, [wcf65] - and %00000100 -rept 2 - srl a -endr - ld e, a - ld d, 0 -rept 2 - add hl, de -endr - ld a, [hli] - and a - ret z - ld e, a - ld d, [hl] - ld a, SPRITE_ANIM_INDEX_01 - call _InitSpriteAnimStruct - ret -; 63ca - -Data63ca: ; 63ca -; frame 0 y, x; frame 1 y, x - db $5c, $50, $00, $00 - db $5c, $68, $5c, $58 - db $5c, $68, $5c, $78 - db $5c, $88, $5c, $78 - db $00, $00, $5c, $78 - db $00, $00, $5c, $58 -; 63e2 - -Copyright: ; 63e2 - call ClearTileMap - call LoadFontsExtra - ld de, CopyrightGFX - ld hl, VTiles2 tile $60 - lb bc, BANK(CopyrightGFX), $1d - call Request2bpp - hlcoord 2, 7 - ld de, CopyrightString - jp PlaceString -; 63fd - -CopyrightString: ; 63fd - ; ©1995-2001 Nintendo - db $60, $61, $62, $63, $64, $65, $66 - db $67, $68, $69, $6a, $6b, $6c - - db $4e - - ; ©1995-2001 Creatures inc. - db $60, $61, $62, $63, $64, $65, $66, $6d - db $6e, $6f, $70, $71, $72, $7a, $7b, $7c - - db $4e - - ; ©1995-2001 GAME FREAK inc. - db $60, $61, $62, $63, $64, $65, $66, $73, $74 - db $75, $76, $77, $78, $79, $7a, $7b, $7c - - db "@" -; 642e - -GameInit:: ; 642e - callba TryLoadSaveData - call ResetTextRelatedRAM - call ClearBGPalettes - call ClearTileMap - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - xor a - ld [hBGMapAddress], a - ld [hJoyDown], a - ld [hSCX], a - ld [hSCY], a - ld a, $90 - ld [hWY], a - call WaitBGMap - jp Function620b -; 6454 +INCLUDE "engine/intro_menu.asm" Function6454:: ; 6454 call DelayFrame @@ -10745,10 +9322,10 @@ SaveRTC: ; 1406a ld a, $c ld [MBC3SRamBank], a res 7, [hl] - ld a, BANK(s0_ac60) + ld a, BANK(sRTCStatusFlags) ld [MBC3SRamBank], a xor a - ld [s0_ac60], a + ld [sRTCStatusFlags], a call CloseSRAM ret ; 14089 @@ -10762,7 +9339,7 @@ StartClock:: ; 14089 jr nc, .skip_set ; bit 5: Day count exceeds 139 ; bit 6: Day count exceeds 255 - call Function6d3 ; set flag on s0_ac60 + call RecordRTCStatus ; set flag on sRTCStatusFlags .skip_set call StartRTC @@ -10781,12 +9358,12 @@ Function1409b: ; 1409b .set_bit_7 ; Day count exceeds 16383 ld a, %10000000 - call Function6d3 ; set bit 7 on s0_ac60 + call RecordRTCStatus ; set bit 7 on sRTCStatusFlags ret ; 140ae Function140ae: ; 140ae - call Function6e3 + call CheckRTCStatus ld c, a and %11000000 ; Day count exceeded 255 or 16383 jr nz, .time_overflow @@ -19105,7 +17682,7 @@ EmptyAllSRAMBanks: ; 4cf1f ; 4cf45 -SaveMenu_LoadDETile: ; 4cf45 (13:4f45) +SaveMenu_LoadEDTile: ; 4cf45 (13:4f45) ld a, [hCGB] and a jp z, WaitBGMap @@ -19249,7 +17826,7 @@ endr ret ; 4d188 -Function4d188: ; 4d188 +PhoneRing_LoadEDTile: ; 4d188 ld a, [hCGB] and a jp z, WaitBGMap @@ -19275,11 +17852,11 @@ Function4d188: ; 4d188 ld a, 1 ; BANK(VBGMap2) ld [rVBK], a hlcoord 0, 0, AttrMap - call Function4d1cb + call .LoadEDTile ld a, 0 ; BANK(VBGMap0) ld [rVBK], a hlcoord 0, 0 - call Function4d1cb + call .LoadEDTile .wait2 ld a, [rLY] cp $8f @@ -19293,7 +17870,7 @@ Function4d188: ; 4d188 ret ; 4d1cb -Function4d1cb: ; 4d1cb +.LoadEDTile: ; 4d1cb ld [hSPBuffer], sp ld sp, hl ld a, [hBGMapAddress + 1] @@ -19458,10 +18035,10 @@ _ResetClock: ; 4d3b1 ret z call ClockResetPassword jr c, .wrongpassword - ld a, BANK(s0_ac60) + ld a, BANK(sRTCStatusFlags) call GetSRAMBank ld a, $80 - ld [s0_ac60], a + ld [sRTCStatusFlags], a call CloseSRAM ld hl, .text_okay call PrintText @@ -19680,7 +18257,7 @@ ClockResetPassword: ; 4d41e ld c, $2 call .ComponentFromNumber ld hl, sPlayerData + (PlayerName - wPlayerData) - ld c, $5 + ld c, $5 ; PLAYER_NAME_LENGTH_J call .ComponentFromString ld hl, sPlayerData + (Money - wPlayerData) ld c, $3 @@ -25211,13 +23788,13 @@ Function104309: ld [rVBK], a ld c, $8 ld hl, w6_d000 + $80 - ld de, VBGMap1 tile $00 + debgcoord 0, 0, VBGMap1 call Function104209 ld a, $0 ld [rVBK], a ld c, $8 ld hl, w6_d000 - ld de, VBGMap1 tile $00 + debgcoord 0, 0, VBGMap1 call Function104209 ret @@ -25515,13 +24092,13 @@ Function104770: ; 104770 (41:4770) ld [rVBK], a xor a lb bc, 4, 0 - ld hl, VBGMap0 tile $00 + hlbgcoord 0, 0 call ByteFill pop af ld [rVBK], a ld a, $60 lb bc, 4, 0 - ld hl, VBGMap0 tile $00 + hlbgcoord 0, 0 call ByteFill ret @@ -25536,7 +24113,7 @@ Function1047a3: ; 1047a3 (41:47a3) ld [rVBK], a Function1047b4: ; 1047b4 (41:47b4) - ld hl, VBGMap0 tile $00 + hlbgcoord 0, 0 ld c, $14 ld b, $12 .asm_1047bb @@ -26788,7 +25365,7 @@ Function105069: ; 105069 (41:5069) call GetMysteryGiftBank ld d, $0 ld b, $2 - ld hl, s0_abf0 + ld hl, sMysteryGiftDecorationsReceived predef_id FlagPredef push hl push bc @@ -26809,29 +25386,29 @@ Function105069: ; 105069 (41:5069) Function105091: ; 105091 (41:5091) call GetMysteryGiftBank ld c, $0 -.asm_105096 +.loop push bc ld d, $0 - ld b, $2 - ld hl, s0_abf0 + ld b, CHECK_FLAG + ld hl, sMysteryGiftDecorationsReceived predef FlagPredef ld a, c and a pop bc - jr z, .asm_1050b0 + jr z, .skip push bc callab SetSpecificDecorationFlag pop bc -.asm_1050b0 +.skip inc c ld a, c - cp $2a + 1 - jr c, .asm_105096 + cp Trophys - DecorationIDs + jr c, .loop jp CloseSRAM Special_UnlockMysteryGift: ; 1050b9 call GetMysteryGiftBank - ld hl, s0_abe3 + ld hl, sMysteryGiftUnlocked ld a, [hl] inc a jr nz, .ok diff --git a/maps/AzaleaTown.asm b/maps/AzaleaTown.asm index 95bd0b522..e3261b0a5 100644 --- a/maps/AzaleaTown.asm +++ b/maps/AzaleaTown.asm @@ -30,7 +30,7 @@ UnknownScript_0x198018: moveperson $b, $b, $b spriteface PLAYER, RIGHT showemote EMOTE_SHOCK, PLAYER, 15 - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic pause 15 appear $b applymovement $b, MovementData_0x198134 @@ -40,7 +40,7 @@ UnknownScript_0x198018: UnknownScript_0x198034: spriteface PLAYER, RIGHT showemote EMOTE_SHOCK, PLAYER, 15 - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic pause 15 appear $b applymovement $b, MovementData_0x19813c diff --git a/maps/BattleTowerBattleRoom.asm b/maps/BattleTowerBattleRoom.asm index 858b51fb0..07e0b8016 100644 --- a/maps/BattleTowerBattleRoom.asm +++ b/maps/BattleTowerBattleRoom.asm @@ -31,7 +31,7 @@ Script_BattleRoomLoop: ; 0x9f425 keeptextopen loadmovesprites special BattleTowerBattle ; calls predef startbattle - special FadeOutPalettes + special RotatePalettesRightPalettes reloadmap if_not_equal $0, Script_FailedBattleTowerChallenge copybytetovar wNrOfBeatenBattleTowerTrainers ; wcf64 @@ -46,10 +46,10 @@ Script_BattleRoomLoop: ; 0x9f425 closetext loadmovesprites playmusic MUSIC_HEAL - special FadeOutPalettes + special RotatePalettesRightPalettes special LoadMapPalettes pause 60 - special FadeInPalettes + special RotatePalettesLeftPalettes special RestartMapMusic loadfont writetext Text_NextUpOpponentNo @@ -73,7 +73,7 @@ Script_DontBattleNextOpponent: ; 0x9f483 special BattleTowerAction playsound SFX_SAVE waitbutton - special FadeOutPalettes + special RotatePalettesRightPalettes special Reset Script_DontSaveAndEndTheSession: ; 0x9f4a3 writetext Text_CancelYourBattleRoomChallenge @@ -84,7 +84,7 @@ Script_DontSaveAndEndTheSession: ; 0x9f4a3 writebyte BATTLE_TOWER_ACTION_06 special BattleTowerAction loadmovesprites - special FadeOutPalettes + special RotatePalettesRightPalettes warpfacing UP, BATTLE_TOWER_1F, $7, $7 loadfont jump UnknownScript_0x9e4b0 diff --git a/maps/BluesHouse.asm b/maps/BluesHouse.asm index 36d06b943..f15cbd1f3 100644 --- a/maps/BluesHouse.asm +++ b/maps/BluesHouse.asm @@ -30,10 +30,10 @@ UnknownScript_0x19b0de: writetext UnknownText_0x19b266 closetext loadmovesprites - special FadeOutPalettes + special RotatePalettesRightPalettes playmusic MUSIC_HEAL pause 60 - special FadeInPalettes + special RotatePalettesLeftPalettes special RestartMapMusic loadfont writetext UnknownText_0x19b296 diff --git a/maps/BurnedTower1F.asm b/maps/BurnedTower1F.asm index 2b78c59c9..414502613 100644 --- a/maps/BurnedTower1F.asm +++ b/maps/BurnedTower1F.asm @@ -49,7 +49,7 @@ UnknownScript_0x185c0d: UnknownScript_0x185c25: showemote EMOTE_SHOCK, $4, 15 - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic pause 15 spriteface $4, RIGHT pause 15 @@ -98,7 +98,7 @@ UnknownScript_0x185c80: loadmovesprites dotrigger $2 setevent EVENT_RIVAL_BURNED_TOWER - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic pause 15 earthquake 50 showemote EMOTE_SHOCK, PLAYER, 15 diff --git a/maps/CherrygroveCity.asm b/maps/CherrygroveCity.asm index 2731b774b..6da66fd62 100644 --- a/maps/CherrygroveCity.asm +++ b/maps/CherrygroveCity.asm @@ -103,7 +103,7 @@ UnknownScript_0x19c0aa: UnknownScript_0x19c0ae: spriteface PLAYER, RIGHT showemote EMOTE_SHOCK, PLAYER, 15 - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic pause 15 appear $3 applymovement $3, MovementData_0x19c1ce diff --git a/maps/CianwoodCity.asm b/maps/CianwoodCity.asm index 878369731..6bb1daada 100644 --- a/maps/CianwoodCity.asm +++ b/maps/CianwoodCity.asm @@ -66,7 +66,7 @@ UnknownScript_0x1a001e: applymovement $c, MovementData_0x1a00ec disappear $c pause 20 - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic playmapmusic pause 10 .Done diff --git a/maps/DragonShrine.asm b/maps/DragonShrine.asm index cc89ac754..62fcf4acb 100644 --- a/maps/DragonShrine.asm +++ b/maps/DragonShrine.asm @@ -130,7 +130,7 @@ DragonShrineTestScript: writetext UnknownText_0x18d916 closetext loadmovesprites - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic applymovement $5, MovementData_0x18d2da loadfont writetext UnknownText_0x18d974 diff --git a/maps/DragonsDenB1F.asm b/maps/DragonsDenB1F.asm index e47ea7516..afeb0769a 100644 --- a/maps/DragonsDenB1F.asm +++ b/maps/DragonsDenB1F.asm @@ -70,7 +70,7 @@ UnknownScript_0x18c8f4: loadmovesprites UnknownScript_0x18c8f9: applymovement $3, MovementData_0x18c9b3 - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic pause 30 special RestartMapMusic disappear $3 diff --git a/maps/EcruteakGym.asm b/maps/EcruteakGym.asm index f3e136c9d..2e205fa8a 100644 --- a/maps/EcruteakGym.asm +++ b/maps/EcruteakGym.asm @@ -84,7 +84,7 @@ UnknownScript_0x99dc6: follow PLAYER, $8 applymovement PLAYER, MovementData_0x99e5f stopfollow - special FadeOutPalettes + special RotatePalettesRightPalettes playsound SFX_ENTER_DOOR waitbutton warp ECRUTEAK_CITY, $6, $1b diff --git a/maps/FastShip1F.asm b/maps/FastShip1F.asm index be1675a1b..ec41829db 100644 --- a/maps/FastShip1F.asm +++ b/maps/FastShip1F.asm @@ -64,7 +64,7 @@ SailorScript_0x75160: loadmovesprites scall .LetThePlayerOut playsound SFX_EXIT_BUILDING - special FadeOutPalettes + special RotatePalettesRightPalettes waitbutton setevent EVENT_VERMILION_PORT_SAILOR_AT_GANGWAY domaptrigger VERMILION_PORT, $1 @@ -77,7 +77,7 @@ SailorScript_0x75160: loadmovesprites scall .LetThePlayerOut playsound SFX_EXIT_BUILDING - special FadeOutPalettes + special RotatePalettesRightPalettes waitbutton setevent EVENT_OLIVINE_PORT_SAILOR_AT_GANGWAY domaptrigger OLIVINE_PORT, $1 diff --git a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm index 70759c740..69a499841 100644 --- a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm +++ b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm @@ -43,7 +43,7 @@ TwinScript_0x75ebb: appear $4 spriteface PLAYER, UP spriteface $4, UP - special Special_FadeInQuickly + special Special_RotatePalettesLeftQuickly spriteface $3, DOWN showemote EMOTE_SHOCK, $3, 15 applymovement $4, MovementData_0x7600c diff --git a/maps/FastShipCabins_SW_SSW_NW.asm b/maps/FastShipCabins_SW_SSW_NW.asm index 493ee070e..c459b1e7e 100644 --- a/maps/FastShipCabins_SW_SSW_NW.asm +++ b/maps/FastShipCabins_SW_SSW_NW.asm @@ -70,7 +70,7 @@ FastShipBed: playmusic MUSIC_HEAL pause 60 special RestartMapMusic - special Special_FadeInQuickly + special Special_RotatePalettesLeftQuickly loadfont writetext FastShipBedText2 closetext diff --git a/maps/IlexForest.asm b/maps/IlexForest.asm index b87a3a179..851f50399 100644 --- a/maps/IlexForest.asm +++ b/maps/IlexForest.asm @@ -449,7 +449,7 @@ UnknownScript_0x6ee42: loadmovesprites pause 20 showemote EMOTE_SHOCK, PLAYER, 20 - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic applymovement PLAYER, MovementData_0x6ef58 pause 30 spriteface PLAYER, DOWN diff --git a/maps/IndigoPlateauPokeCenter1F.asm b/maps/IndigoPlateauPokeCenter1F.asm index cefc1c2bb..5cce7f36c 100644 --- a/maps/IndigoPlateauPokeCenter1F.asm +++ b/maps/IndigoPlateauPokeCenter1F.asm @@ -55,7 +55,7 @@ UnknownScript_0x180053: appear $5 spriteface PLAYER, DOWN showemote EMOTE_SHOCK, PLAYER, 15 - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic pause 15 applymovement $5, MovementData_0x180164 playmusic MUSIC_RIVAL_ENCOUNTER @@ -76,7 +76,7 @@ UnknownScript_0x180094: appear $5 spriteface PLAYER, DOWN showemote EMOTE_SHOCK, PLAYER, 15 - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic pause 15 applymovement $5, MovementData_0x18016b playmusic MUSIC_RIVAL_ENCOUNTER @@ -154,7 +154,7 @@ TeleportGuyScript: closetext loadmovesprites playsound SFX_WARP_TO - special FadeOutPalettes + special RotatePalettesRightPalettes waitbutton warp NEW_BARK_TOWN, $d, $6 end diff --git a/maps/KurtsHouse.asm b/maps/KurtsHouse.asm index f8fa0721a..4a24daf72 100644 --- a/maps/KurtsHouse.asm +++ b/maps/KurtsHouse.asm @@ -40,7 +40,7 @@ KurtScript_0x18e178: writetext UnknownText_0x18e473 closetext loadmovesprites - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic setevent EVENT_AZALEA_TOWN_SLOWPOKETAIL_ROCKET checkcode VAR_FACING if_equal UP, .RunAround @@ -287,7 +287,7 @@ KurtScript_0x18e178: setevent EVENT_FOREST_IS_RESTLESS clearevent EVENT_CAN_GIVE_GS_BALL_TO_KURT clearevent EVENT_GAVE_GS_BALL_TO_KURT - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic pause 20 showemote EMOTE_SHOCK, $2, 30 checkcode VAR_FACING diff --git a/maps/LancesRoom.asm b/maps/LancesRoom.asm index f9f03054f..549baf320 100644 --- a/maps/LancesRoom.asm +++ b/maps/LancesRoom.asm @@ -44,12 +44,12 @@ UnknownScript_0x180e53: end UnknownScript_0x180e6a: - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic applymovement PLAYER, MovementData_0x180f38 jump LanceScript_0x180e7b UnknownScript_0x180e74: - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic applymovement PLAYER, MovementData_0x180f3c LanceScript_0x180e7b: spriteface $2, LEFT @@ -125,7 +125,7 @@ LanceScript_0x180e7b: pause 30 loadmovesprites applymovement $3, MovementData_0x180f5b - special FadeOutPalettes + special RotatePalettesRightPalettes pause 15 warpfacing UP, HALL_OF_FAME, $4, $d end diff --git a/maps/MobileBattleRoom.asm b/maps/MobileBattleRoom.asm index c672c3b69..44ee3a5b1 100644 --- a/maps/MobileBattleRoom.asm +++ b/maps/MobileBattleRoom.asm @@ -35,11 +35,11 @@ MapMobileBattleRoomSignpost0Script: writetext MobileBattleRoom_HealText pause 20 loadmovesprites - special FadeOutPalettes + special RotatePalettesRightPalettes playmusic MUSIC_HEAL special LoadMapPalettes pause 60 - special FadeInPalettes + special RotatePalettesLeftPalettes special RestartMapMusic refreshscreen $0 .two_: diff --git a/maps/MountMoon.asm b/maps/MountMoon.asm index 09173be29..066fabf8a 100644 --- a/maps/MountMoon.asm +++ b/maps/MountMoon.asm @@ -19,7 +19,7 @@ UnknownScript_0x7408d: UnknownScript_0x7408e: spriteface PLAYER, RIGHT showemote EMOTE_SHOCK, PLAYER, 15 - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic pause 15 applymovement $2, MovementData_0x740f9 playmusic MUSIC_RIVAL_ENCOUNTER diff --git a/maps/MrPokemonsHouse.asm b/maps/MrPokemonsHouse.asm index aeac05928..cc1f22f21 100644 --- a/maps/MrPokemonsHouse.asm +++ b/maps/MrPokemonsHouse.asm @@ -114,7 +114,7 @@ UnknownScript_0x196ec9: special Mobile_HealParty special HealParty pause 60 - special Special_FadeInQuickly + special Special_RotatePalettesLeftQuickly special RestartMapMusic loadfont writetext UnknownText_0x197134 diff --git a/maps/OlivineCity.asm b/maps/OlivineCity.asm index 4c42e9dd5..ed89b3f1f 100644 --- a/maps/OlivineCity.asm +++ b/maps/OlivineCity.asm @@ -25,7 +25,7 @@ OlivineCity_MapScriptHeader: UnknownScript_0x1a8833: spriteface PLAYER, LEFT showemote EMOTE_SHOCK, PLAYER, 15 - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic pause 15 playsound SFX_ENTER_DOOR appear $5 @@ -49,7 +49,7 @@ UnknownScript_0x1a8833: UnknownScript_0x1a886b: spriteface PLAYER, LEFT showemote EMOTE_SHOCK, PLAYER, 15 - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic pause 15 playsound SFX_ENTER_DOOR appear $5 diff --git a/maps/OlivineLighthouse6F.asm b/maps/OlivineLighthouse6F.asm index aae5ed42e..b8986bad8 100644 --- a/maps/OlivineLighthouse6F.asm +++ b/maps/OlivineLighthouse6F.asm @@ -42,9 +42,9 @@ UnknownScript_0x60bab: loadmovesprites special RestartMapMusic cry AMPHAROS - special FadeOutPalettes + special RotatePalettesRightPalettes pause 10 - special FadeInPalettes + special RotatePalettesLeftPalettes loadfont writetext UnknownText_0x60f3d closetext @@ -116,10 +116,10 @@ UnknownScript_0x60c51: cry AMPHAROS closetext loadmovesprites - special FadeOutPalettes - special FadeInPalettes - special FadeOutPalettes - special FadeInPalettes + special RotatePalettesRightPalettes + special RotatePalettesLeftPalettes + special RotatePalettesRightPalettes + special RotatePalettesLeftPalettes end ItemFragment_0x60c66: diff --git a/maps/OlivinePort.asm b/maps/OlivinePort.asm index 38941d295..39d77694f 100644 --- a/maps/OlivinePort.asm +++ b/maps/OlivinePort.asm @@ -39,7 +39,7 @@ SailorScript_0x748c0: waitbutton applymovement PLAYER, MovementData_0x74a30 playsound SFX_EXIT_BUILDING - special FadeOutPalettes + special RotatePalettesRightPalettes waitbutton checkevent EVENT_FAST_SHIP_FIRST_TIME iffalse UnknownScript_0x7490a diff --git a/maps/RadioTower2F.asm b/maps/RadioTower2F.asm index 22619d10c..b4f5117ac 100644 --- a/maps/RadioTower2F.asm +++ b/maps/RadioTower2F.asm @@ -140,7 +140,7 @@ UnknownScript_0x5d7be: writetext UnknownText_0x5e054 closetext loadmovesprites - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic pause 20 special RestartMapMusic checkcode VAR_BLUECARDBALANCE @@ -169,7 +169,7 @@ UnknownScript_0x5d81e: closetext loadmovesprites spriteface $b, RIGHT - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic pause 20 special RestartMapMusic end @@ -200,7 +200,7 @@ UnknownScript_0x5d845: closetext loadmovesprites spriteface $b, RIGHT - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic pause 20 special RestartMapMusic end diff --git a/maps/RadioTower5F.asm b/maps/RadioTower5F.asm index 32a363e55..3f1b16882 100644 --- a/maps/RadioTower5F.asm +++ b/maps/RadioTower5F.asm @@ -95,7 +95,7 @@ UnknownScript_0x6006e: disappear $3 disappear $4 pause 15 - special Special_FadeInQuickly + special Special_RotatePalettesLeftQuickly setevent EVENT_BEAT_ROCKET_EXECUTIVEM_1 setevent EVENT_CLEARED_RADIO_TOWER clearflag ENGINE_ROCKETS_IN_RADIO_TOWER diff --git a/maps/Route24.asm b/maps/Route24.asm index f8f24209f..0e6467288 100644 --- a/maps/Route24.asm +++ b/maps/Route24.asm @@ -21,7 +21,7 @@ RocketScript_0x1adbfa: loadfont writetext UnknownText_0x1addc0 keeptextopen - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic writetext UnknownText_0x1adee1 closetext loadmovesprites @@ -29,7 +29,7 @@ RocketScript_0x1adbfa: special Special_ReloadSpritesNoPalettes disappear $2 pause 25 - special Special_FadeInQuickly + special Special_RotatePalettesLeftQuickly playmapmusic end diff --git a/maps/Route26HealSpeechHouse.asm b/maps/Route26HealSpeechHouse.asm index 785daaeb2..e187b09d4 100644 --- a/maps/Route26HealSpeechHouse.asm +++ b/maps/Route26HealSpeechHouse.asm @@ -17,7 +17,7 @@ TeacherScript_0x7b125: playmusic MUSIC_HEAL special HealParty pause 60 - special Special_FadeInQuickly + special Special_RotatePalettesLeftQuickly special RestartMapMusic loadfont writetext UnknownText_0x7b18b diff --git a/maps/Route35NationalParkgate.asm b/maps/Route35NationalParkgate.asm index ba5c3516a..005b1f1fd 100644 --- a/maps/Route35NationalParkgate.asm +++ b/maps/Route35NationalParkgate.asm @@ -75,7 +75,7 @@ Route35NationalParkgate_GoBackIn: loadmovesprites scall Route35NationalParkgate_EnterContest playsound SFX_ENTER_DOOR - special FadeOutPalettes + special RotatePalettesRightPalettes waitbutton warpfacing UP, NATIONAL_PARK_BUG_CONTEST, $a, $2f end @@ -112,7 +112,7 @@ Route35NationalParkgate_OkayToProceed: special Special_GiveParkBalls scall Route35NationalParkgate_EnterContest playsound SFX_ENTER_DOOR - special FadeOutPalettes + special RotatePalettesRightPalettes waitbutton special Special_SelectRandomBugContestContestants warpfacing UP, NATIONAL_PARK_BUG_CONTEST, $a, $2f diff --git a/maps/Route36NationalParkgate.asm b/maps/Route36NationalParkgate.asm index 03c8c2474..495ef1856 100644 --- a/maps/Route36NationalParkgate.asm +++ b/maps/Route36NationalParkgate.asm @@ -74,7 +74,7 @@ Route36NationalParkgate_MapScriptHeader: appear $d applymovement PLAYER, MovementData_0x6add1 pause 15 - special Special_FadeInQuickly + special Special_RotatePalettesLeftQuickly jumpstd bugcontestresults .GoBackToContest: @@ -83,7 +83,7 @@ Route36NationalParkgate_MapScriptHeader: loadmovesprites spriteface PLAYER, LEFT playsound SFX_EXIT_BUILDING - special FadeOutPalettes + special RotatePalettesRightPalettes waitbutton warpfacing LEFT, NATIONAL_PARK_BUG_CONTEST, $21, $12 end @@ -166,7 +166,7 @@ Route36OfficerScriptContest: special Special_GiveParkBalls spriteface PLAYER, LEFT playsound SFX_EXIT_BUILDING - special FadeOutPalettes + special RotatePalettesRightPalettes waitbutton special Special_SelectRandomBugContestContestants warpfacing LEFT, NATIONAL_PARK_BUG_CONTEST, $21, $12 diff --git a/maps/SilverCaveRoom3.asm b/maps/SilverCaveRoom3.asm index 6c637f77c..b01588ba6 100644 --- a/maps/SilverCaveRoom3.asm +++ b/maps/SilverCaveRoom3.asm @@ -6,7 +6,7 @@ SilverCaveRoom3_MapScriptHeader: db 0 RedScript_0x18c603: - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic faceplayer loadfont writetext UnknownText_0x18c637 @@ -17,7 +17,7 @@ RedScript_0x18c603: startbattle reloadmapmusic returnafterbattle - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic loadfont writetext UnknownText_0x18c63f closetext @@ -26,7 +26,7 @@ RedScript_0x18c603: special Special_ReloadSpritesNoPalettes disappear $2 pause 15 - special Special_FadeInQuickly + special Special_RotatePalettesLeftQuickly pause 30 special HealParty refreshscreen $0 diff --git a/maps/SlowpokeWellB1F.asm b/maps/SlowpokeWellB1F.asm index 27b397543..1d98bf807 100644 --- a/maps/SlowpokeWellB1F.asm +++ b/maps/SlowpokeWellB1F.asm @@ -34,7 +34,7 @@ GruntM1Script: disappear $4 disappear $5 pause 15 - special Special_FadeInQuickly + special Special_RotatePalettesLeftQuickly disappear $8 moveperson $8, $b, $6 appear $8 @@ -56,7 +56,7 @@ GruntM1Script: clearevent EVENT_AZALEA_TOWN_SLOWPOKES clearevent EVENT_KURTS_HOUSE_SLOWPOKE clearevent EVENT_KURTS_HOUSE_KURT_1 - special FadeOutPalettes + special RotatePalettesRightPalettes special HealParty pause 15 warp KURTS_HOUSE, $3, $3 diff --git a/maps/SproutTower3F.asm b/maps/SproutTower3F.asm index 6b82aa611..06c85c22b 100644 --- a/maps/SproutTower3F.asm +++ b/maps/SproutTower3F.asm @@ -18,7 +18,7 @@ UnknownScript_0x184946: UnknownScript_0x184947: spriteface PLAYER, UP showemote EMOTE_SHOCK, PLAYER, 15 - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic playsound SFX_TACKLE playsound SFX_ELEVATOR earthquake 79 @@ -51,7 +51,7 @@ UnknownScript_0x184947: special Special_ReloadSpritesNoPalettes disappear $8 waitbutton - special Special_FadeInQuickly + special Special_RotatePalettesLeftQuickly dotrigger $1 special RestartMapMusic end diff --git a/maps/TeamRocketBaseB1F.asm b/maps/TeamRocketBaseB1F.asm index e9e68a97d..5bd666972 100644 --- a/maps/TeamRocketBaseB1F.asm +++ b/maps/TeamRocketBaseB1F.asm @@ -445,9 +445,9 @@ ExplodingTrap22: end VoltorbExplodingTrap: - special FadeOutPalettes + special RotatePalettesRightPalettes cry VOLTORB - special FadeInPalettes + special RotatePalettesLeftPalettes setlasttalked $ff writecode VAR_BATTLETYPE, BATTLETYPE_TRAP loadpokedata VOLTORB, 23 @@ -455,9 +455,9 @@ VoltorbExplodingTrap: end GeodudeExplodingTrap: - special FadeOutPalettes + special RotatePalettesRightPalettes cry GEODUDE - special FadeInPalettes + special RotatePalettesLeftPalettes setlasttalked $ff writecode VAR_BATTLETYPE, BATTLETYPE_TRAP loadpokedata GEODUDE, 21 @@ -465,9 +465,9 @@ GeodudeExplodingTrap: end KoffingExplodingTrap: - special FadeOutPalettes + special RotatePalettesRightPalettes cry KOFFING - special FadeInPalettes + special RotatePalettesLeftPalettes setlasttalked $ff writecode VAR_BATTLETYPE, BATTLETYPE_TRAP loadpokedata KOFFING, 21 diff --git a/maps/TeamRocketBaseB2F.asm b/maps/TeamRocketBaseB2F.asm index 2a44c4652..39b8ea4fc 100644 --- a/maps/TeamRocketBaseB2F.asm +++ b/maps/TeamRocketBaseB2F.asm @@ -106,7 +106,7 @@ UnknownScript_0x6cfac: disappear $d disappear $e pause 15 - special Special_FadeInQuickly + special Special_RotatePalettesLeftQuickly dotrigger $2 clearevent EVENT_TEAM_ROCKET_BASE_B2F_LANCE spriteface $4, DOWN @@ -155,11 +155,11 @@ UnknownScript_0x6d091: writetext UnknownText_0x6da97 closetext loadmovesprites - special FadeOutPalettes + special RotatePalettesRightPalettes special Mobile_HealParty playsound SFX_FULL_HEAL special HealParty - special FadeInPalettes + special RotatePalettesLeftPalettes loadfont writetext UnknownText_0x6daf7 closetext diff --git a/maps/TeamRocketBaseB3F.asm b/maps/TeamRocketBaseB3F.asm index 39e2b2f67..76cd16b73 100644 --- a/maps/TeamRocketBaseB3F.asm +++ b/maps/TeamRocketBaseB3F.asm @@ -55,7 +55,7 @@ LanceScript_0x6dffc: UnknownScript_0x6e019: spriteface PLAYER, LEFT showemote EMOTE_SHOCK, PLAYER, 15 - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic appear $a applymovement $a, MovementData_0x6e164 spriteface PLAYER, LEFT diff --git a/maps/TinTower1F.asm b/maps/TinTower1F.asm index ca4d0c1ff..5ac0f1665 100644 --- a/maps/TinTower1F.asm +++ b/maps/TinTower1F.asm @@ -158,7 +158,7 @@ UnknownScript_0x1850d7: playsound SFX_EXIT_BUILDING disappear $5 waitbutton - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic pause 20 playmapmusic end diff --git a/maps/UndergroundPathSwitchRoomEntrances.asm b/maps/UndergroundPathSwitchRoomEntrances.asm index 82abe2e4a..f9cd1222f 100644 --- a/maps/UndergroundPathSwitchRoomEntrances.asm +++ b/maps/UndergroundPathSwitchRoomEntrances.asm @@ -80,7 +80,7 @@ TeacherScript_0x7ca7d: UnknownScript_0x7ca80: spriteface PLAYER, RIGHT showemote EMOTE_SHOCK, PLAYER, 15 - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic pause 15 playsound SFX_EXIT_BUILDING appear $c @@ -99,7 +99,7 @@ UnknownScript_0x7ca80: UnknownScript_0x7caaa: spriteface PLAYER, RIGHT showemote EMOTE_SHOCK, PLAYER, 15 - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic pause 15 playsound SFX_EXIT_BUILDING appear $c diff --git a/maps/VermilionPort.asm b/maps/VermilionPort.asm index c9cb32207..fd48206eb 100644 --- a/maps/VermilionPort.asm +++ b/maps/VermilionPort.asm @@ -51,7 +51,7 @@ SailorScript_0x74dc4: waitbutton applymovement PLAYER, MovementData_0x74ef1 playsound SFX_EXIT_BUILDING - special FadeOutPalettes + special RotatePalettesRightPalettes waitbutton setevent EVENT_FAST_SHIP_PASSENGERS_EASTBOUND clearevent EVENT_FAST_SHIP_PASSENGERS_WESTBOUND diff --git a/maps/VictoryRoad.asm b/maps/VictoryRoad.asm index 056b30854..25f58022e 100644 --- a/maps/VictoryRoad.asm +++ b/maps/VictoryRoad.asm @@ -19,7 +19,7 @@ UnknownScript_0x74492: moveperson $2, $12, $b spriteface PLAYER, DOWN showemote EMOTE_SHOCK, PLAYER, 15 - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic pause 15 appear $2 applymovement $2, MovementData_0x74539 @@ -33,7 +33,7 @@ UnknownScript_0x74492: UnknownScript_0x744b5: spriteface PLAYER, DOWN showemote EMOTE_SHOCK, PLAYER, 15 - special Special_FadeOutMusic + special Special_RotatePalettesRightMusic pause 15 appear $2 applymovement $2, MovementData_0x74542 diff --git a/maps/WarehouseEntrance.asm b/maps/WarehouseEntrance.asm index 2ef14fcc0..12b9ae2d6 100644 --- a/maps/WarehouseEntrance.asm +++ b/maps/WarehouseEntrance.asm @@ -226,10 +226,10 @@ OlderHaircutBrotherScript: writetext UnknownText_0x7c6b8 closetext loadmovesprites - special FadeOutPalettes + special RotatePalettesRightPalettes playmusic MUSIC_HEAL pause 60 - special FadeInPalettes + special RotatePalettesLeftPalettes special RestartMapMusic loadfont writetext UnknownText_0x7c6d8 @@ -309,10 +309,10 @@ YoungerHaircutBrotherScript: writetext UnknownText_0x7c80e closetext loadmovesprites - special FadeOutPalettes + special RotatePalettesRightPalettes playmusic MUSIC_HEAL pause 60 - special FadeInPalettes + special RotatePalettesLeftPalettes special RestartMapMusic loadfont writetext UnknownText_0x7c82a diff --git a/misc/mobile_12.asm b/misc/mobile_12.asm index 4e4eeec80..5f864ead2 100755 --- a/misc/mobile_12.asm +++ b/misc/mobile_12.asm @@ -1,4 +1,4 @@ -Function4802f: ; 4802f (12:402f) +InitMobileProfile: ; 4802f (12:402f) xor a set 6, a ld [wd002], a diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index 128fdf2b1..e0894795b 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -312,7 +312,7 @@ Function10016f: ; 10016f Function10020b: ; 10020b xor a ld [wc303], a - callba FadeOutPalettes + callba RotatePalettesRightPalettes callba Function106464 call HideSprites call DelayFrame @@ -1591,7 +1591,7 @@ Function1009d2: ; 1009d2 ld [rVBK], a ld hl, w3_d800 - ld de, VBGMap0 + debgcoord 0, 0 lb bc, $3, $24 call Get2bpp diff --git a/misc/mobile_42.asm b/misc/mobile_42.asm index 0253d4c1c..6bfdeae02 100644 --- a/misc/mobile_42.asm +++ b/misc/mobile_42.asm @@ -241,13 +241,13 @@ Function1081ad: ; 1081ad Function1081ca: ; 1081ca ld a, $1 ld [rVBK], a - ld hl, VBGMap0 + hlbgcoord 0, 0 ld bc, $0800 ld a, $0 call ByteFill ld a, $0 ld [rVBK], a - ld hl, VBGMap0 + hlbgcoord 0, 0 ld bc, $0800 ld a, $7f call ByteFill @@ -1669,10 +1669,10 @@ UnknownText_0x108c68: ; 0x108c68 Function108c6d: ; 108c6d ld hl, LZ_108fe7 - ld de, VBGMap0 + debgcoord 0, 0 call Decompress ld hl, LZ_108fe7 - ld de, VBGMap1 + debgcoord 0, 0, VBGMap1 call Decompress ret ; 108c80 @@ -1681,10 +1681,10 @@ Function108c80: ; 108c80 ld a, $1 ld [rVBK], a ld hl, LZ_1090a7 - ld de, VBGMap0 + debgcoord 0, 0 call Decompress ld hl, LZ_1090a7 - ld de, VBGMap1 + debgcoord 0, 0, VBGMap1 call Decompress ld a, $0 ld [rVBK], a diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm index f4df98c06..410f3c502 100644 --- a/misc/mobile_45.asm +++ b/misc/mobile_45.asm @@ -8407,7 +8407,7 @@ Function117c4a: add hl, de dec c jr nz, .asm_117c71 ; 0x117c7b $f4 - call FadeToWhite + call RotateThreePalettesRight pop af ld [rSVBK], a ld a, $80 diff --git a/misc/mobile_5b.asm b/misc/mobile_5b.asm index 3e26aa9ea..70b1aab93 100755 --- a/misc/mobile_5b.asm +++ b/misc/mobile_5b.asm @@ -169,7 +169,7 @@ Function16c108: ; 16c108 call Function16c130 call Function16c145 call Function16c15c - ld hl, VBGMap0 + hlbgcoord 0, 0 call Function16cc73 call Function16cc02 xor a @@ -795,7 +795,7 @@ Function16cc62: ; 16cc62 ; 16cc6e Function16cc6e: ; 16cc6e - ld hl, VBGMap1 + hlbgcoord 0, 0, VBGMap1 jr Function16cc73 Function16cc73: @@ -925,19 +925,19 @@ rept 2 inc c endr ld a, $7 -.asm_16d630 +.loop push bc push hl -.asm_16d632 +.loop2 ld [hli], a dec c - jr nz, .asm_16d632 + jr nz, .loop2 pop hl - ld de, $0014 + ld de, SCREEN_WIDTH add hl, de pop bc dec b - jr nz, .asm_16d630 + jr nz, .loop ret ; 16d640 @@ -950,20 +950,20 @@ Function16d640: ; 16d640 inc a ld [hl], a pop hl - ld de, $0014 + ld de, SCREEN_WIDTH add hl, de -.asm_16d64f +.loop push hl ld a, $33 ld [hli], a - ld a, $7f + ld a, " " call Function16d66d ld [hl], $34 pop hl - ld de, $0014 + ld de, SCREEN_WIDTH add hl, de dec b - jr nz, .asm_16d64f + jr nz, .loop ld a, $35 ld [hli], a ld a, $36 @@ -974,10 +974,10 @@ Function16d640: ; 16d640 Function16d66d: ; 16d66d ld d, c -.asm_16d66e +.loop ld [hli], a dec d - jr nz, .asm_16d66e + jr nz, .loop ret ; 16d673 @@ -1044,11 +1044,11 @@ Function16d6ce: ; 16d6ce Function16d6e1: ; 16d6e1 hlcoord 4, 10 - ld b, $1 - ld c, $a + ld b, 1 + ld c, 10 predef Function28eef hlcoord 5, 11 - ld de, String_16d701 + ld de, .Waiting call PlaceString call WaitBGMap call Function3200 @@ -1056,7 +1056,7 @@ Function16d6e1: ; 16d6e1 jp DelayFrames ; 16d701 -String_16d701: ; 16d701 +.Waiting: ; 16d701 db "WAITING..!@" ; 16d70c diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm index 3f35d8346..52080187f 100644 --- a/misc/mobile_5f.asm +++ b/misc/mobile_5f.asm @@ -1973,7 +1973,7 @@ MenuData2_17dc96: Function17dc9f: ; 17dc9f call Function17e415 call Function17e41e - call Function4dd + call RotateFourPalettesLeft ret ; 17dca9 @@ -1997,7 +1997,7 @@ Function17dcaf: add hl, de dec c jr nz, .asm_17dcbb - call FadeToWhite + call RotateThreePalettesRight ld a, $4 ld [rSVBK], a ret diff --git a/misc/unused_title.asm b/misc/unused_title.asm index 143994d9a..6a3349634 100644 --- a/misc/unused_title.asm +++ b/misc/unused_title.asm @@ -31,7 +31,7 @@ endr call CopyBytes ld hl, UnusedTitleBG_Tilemap - ld de, VBGMap0 + debgcoord 0, 0 ld bc, 32 * 32 .copy ld a, 0 diff --git a/sram.asm b/sram.asm index 5437f63de..f5be2fb5f 100644 --- a/sram.asm +++ b/sram.asm @@ -57,11 +57,12 @@ sMailbox10Backup:: mailmsg sMailbox10Backup ; abe2 sMysteryGiftItem:: ds 1 -s0_abe3:: ds 1 +sMysteryGiftUnlocked:: ds 1 sBackupMysteryGiftItem:: ds 1 s0_abe5:: ds 1 s0_abe6:: ds 10 -s0_abf0:: ds 10 +sMysteryGiftDecorationsReceived:: flag_array NUM_NON_TROPHY_DECOS + ds 4 sMysteryGiftTimer:: ds 1 sMysteryGiftTimerStartDay:: ds 1 ds 1 @@ -73,12 +74,11 @@ sBackupMysteryGiftItemEnd:: ds $30 -s0_ac60:: ds 8 +sRTCStatusFlags:: ds 8 sLuckyNumberDay:: ds 1 sLuckyIDNumber:: ds 2 - ds $b200 - $ac6b - +SECTION "Backup Save", SRAM [$b200], BANK [0] sBackupOptions:: ds OptionsEnd - Options s0_b208:: ds 1 From 7b3090e22aefffa464570ac34665ee8e43df873d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 20 Nov 2015 15:15:32 -0500 Subject: [PATCH 29/40] Annotate battle tower text bug --- battle/anim_commands.asm | 6 +- battle/bg_effects.asm | 8 +-- battle/core.asm | 12 ++-- constants/cgb_constants.asm | 3 + data/battle_tower.asm | 3 + engine/battle_start.asm | 10 ++-- engine/breeding/egg.asm | 4 +- engine/card_flip.asm | 4 +- engine/color.asm | 58 +++++++++---------- engine/credits.asm | 4 +- engine/crystal_intro.asm | 22 ++++---- engine/debug.asm | 2 +- engine/diploma.asm | 2 +- engine/dummy_game.asm | 2 +- engine/evolution_animation.asm | 95 ++++++++++++++++--------------- engine/link.asm | 14 ++--- engine/namingscreen.asm | 2 +- engine/party_menu.asm | 6 +- engine/pokedex.asm | 2 +- engine/pokegear.asm | 4 +- engine/predef.asm | 2 +- engine/slot_machine.asm | 4 +- engine/startmenu.asm | 2 +- engine/stats_screen.asm | 4 +- engine/timeofdaypals.asm | 10 ++-- engine/title.asm | 6 +- event/whiteout.asm | 2 +- gfx/pics/animation.asm | 2 +- home.asm | 5 +- home/map.asm | 6 +- home/palettes.asm | 8 +-- main.asm | 66 +++++++++++----------- maps/AzaleaTown.asm | 4 +- maps/BurnedTower1F.asm | 2 +- misc/battle_tower_47.asm | 12 +++- misc/crystal_misc.asm | 10 ++-- misc/mobile_22.asm | 12 ++-- misc/mobile_22_2.asm | 2 +- misc/mobile_40.asm | 2 +- misc/mobile_42.asm | 26 ++++----- misc/mobile_45.asm | 6 +- misc/mobile_46.asm | 42 +++++++------- misc/mobile_5b.asm | 32 +++++------ misc/mobile_5c.asm | 6 +- misc/mobile_5f.asm | 24 ++++---- misc/unused_title.asm | 4 +- predef/cgb.asm | 100 ++++++++++++++++----------------- predef/sgb.asm | 14 ++--- text/battle_tower.asm | 12 ++-- tilesets/animations.asm | 10 ++-- wram.asm | 14 ++--- 51 files changed, 361 insertions(+), 353 deletions(-) diff --git a/battle/anim_commands.asm b/battle/anim_commands.asm index 064920afe..ebc6a8a43 100644 --- a/battle/anim_commands.asm +++ b/battle/anim_commands.asm @@ -1437,13 +1437,13 @@ Functioncc91a: ; cc91a ld a, $5 ld [rSVBK], a ld hl, BGPals - ld de, wMapPals + ld de, UnknBGPals ld a, [rBGP] ld b, a ld c, $7 call CopyPals ld hl, OBPals - ld de, Unkn2Pals + ld de, UnknOBPals ld a, [rBGP] ld b, a ld c, $2 @@ -1465,7 +1465,7 @@ Functioncc94b: ; cc94b ld a, $5 ld [rSVBK], a ld hl, OBPals + $10 - ld de, Unkn2Pals + $10 + ld de, UnknOBPals + $10 ld a, [rOBP0] ld b, a ld c, $2 diff --git a/battle/bg_effects.asm b/battle/bg_effects.asm index da3d6b4a1..b6b1901da 100644 --- a/battle/bg_effects.asm +++ b/battle/bg_effects.asm @@ -2571,12 +2571,12 @@ Functionc8e52: ; c8e52 (32:4e52) push bc push af ld hl, BGPals ; BGPals - ld de, wMapPals ; wd000 + ld de, UnknBGPals ; wd000 ld b, a ld c, $1 call CopyPals ld hl, OBPals + 8 - ld de, Unkn2Pals + 8 + ld de, UnknOBPals + 8 pop af ld b, a ld c, $1 @@ -2598,12 +2598,12 @@ Functionc8e7f: ; c8e7f (32:4e7f) push bc push af ld hl, BGPals + 8 - ld de, wMapPals + 8 + ld de, UnknBGPals + 8 ld b, a ld c, $1 call CopyPals ld hl, OBPals ; OBPals - ld de, Unkn2Pals ; wd040 + ld de, UnknOBPals ; wd040 pop af ld b, a ld c, $1 diff --git a/battle/core.asm b/battle/core.asm index 008535576..15ee3caa4 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -2916,7 +2916,7 @@ ForcePlayerMonChoice: ; 3d227 call ExitMenu call LoadTileMapToTempTileMap call WaitBGMap - call ClearSGB + call GetMemSGBLayout call SetPalettes xor a ld c, a @@ -2935,7 +2935,7 @@ ForcePlayerMonChoice: ; 3d227 call DelayFrame call _LoadHPBar call WriteBackup - call ClearSGB + call GetMemSGBLayout call SetPalettes call SendOutPkmnText call NewBattleMonStatus @@ -5372,7 +5372,7 @@ Function3e299: call _LoadHPBar call WriteBackup call LoadTileMapToTempTileMap - call ClearSGB + call GetMemSGBLayout call SetPalettes jp BattleMenu ; 3e2f5 @@ -5454,7 +5454,7 @@ Function3e358: ; 3e358 call ClearSprites call _LoadHPBar call WriteBackup - call ClearSGB + call GetMemSGBLayout call SetPalettes ld a, [CurPartyMon] ld [CurBattleMon], a @@ -8450,7 +8450,7 @@ Function3f486: ; 3f486 ld hl, EnemyMonDVs predef GetUnownLetter ld de, VTiles2 - predef Function5108b + predef FrontpicPredef pop af ld [CurPartySpecies], a ret @@ -8659,7 +8659,7 @@ InitEnemyWildmon: ; 3f607 ld [wdef4], a .skip_unown ld de, VTiles2 - predef Function5108b + predef FrontpicPredef xor a ld [TrainerClass], a ld [hFillBox], a diff --git a/constants/cgb_constants.asm b/constants/cgb_constants.asm index 27dce0494..5fb29ae84 100755 --- a/constants/cgb_constants.asm +++ b/constants/cgb_constants.asm @@ -30,3 +30,6 @@ const SCGB_1C const SCGB_1D const SCGB_1E + +SCGB_FC EQU -4 +SCGB_RAM EQU -1 diff --git a/data/battle_tower.asm b/data/battle_tower.asm index 8b278fca9..612ead04d 100644 --- a/data/battle_tower.asm +++ b/data/battle_tower.asm @@ -208,6 +208,9 @@ Function_LoadRandomBattleTowerPkmn: ; 1f8081 ; 1f814e BattleTowerTrainers: ; 1f814e +; The trainer class is not used in Crystal 1.0 due to a bug. +; Instead, the sixth character in the trainer's name is used. +; See misc/battle_tower_47.asm db "HANSON@@@@", FISHER db "SAWYER@@@@", POKEMANIAC db "MASUDA@@@@", GUITARIST diff --git a/engine/battle_start.asm b/engine/battle_start.asm index 2b32e41b9..845af9d2a 100644 --- a/engine/battle_start.asm +++ b/engine/battle_start.asm @@ -26,7 +26,7 @@ Predef_StartBattle: ; 8c20f ld a, $5 ld [rSVBK], a - ld hl, wMapPals + ld hl, UnknBGPals ld bc, 8 palettes xor a call ByteFill @@ -661,7 +661,7 @@ StartTrainerBattle_LoadPokeBallGraphics: ; 8c5dc (23:45dc) ld [rSVBK], a call .copypals push hl - ld de, wMapPals + 8 * 7 + ld de, UnknBGPals + 8 * 7 ld bc, $8 call CopyBytes pop hl @@ -680,15 +680,15 @@ StartTrainerBattle_LoadPokeBallGraphics: ; 8c5dc (23:45dc) ret .copypals: ; 8c677 (23:4677) - ld de, wMapPals + 8 * 7 + ld de, UnknBGPals + 8 * 7 call .copy ld de, BGPals + 8 * 7 call .copy - ld de, Unkn2Pals + 8 * 6 + ld de, UnknOBPals + 8 * 6 call .copy ld de, OBPals + 8 * 6 call .copy - ld de, Unkn2Pals + 8 * 7 + ld de, UnknOBPals + 8 * 7 call .copy ld de, OBPals + 8 * 7 diff --git a/engine/breeding/egg.asm b/engine/breeding/egg.asm index ea365d8b5..ebf5e48d8 100755 --- a/engine/breeding/egg.asm +++ b/engine/breeding/egg.asm @@ -650,7 +650,7 @@ Function1723c: ; 1723c (5:723c) ld hl, BattleMonDVs predef GetUnownLetter pop de - predef_jump Function5108b + predef_jump FrontpicPredef Function17254: ; 17254 (5:7254) push af @@ -775,7 +775,7 @@ Function1728f: ; 1728f (5:728f) Function17363: ; 17363 (5:7363) ld [PlayerHPPal], a - ld b, $b + ld b, SCGB_0B ld c, $0 jp GetSGBLayout diff --git a/engine/card_flip.asm b/engine/card_flip.asm index 8ee1e5cd9..df9d895d1 100755 --- a/engine/card_flip.asm +++ b/engine/card_flip.asm @@ -1621,7 +1621,7 @@ Functione0c37: ; e0c37 (38:4c37) ld a, $5 ld [rSVBK], a ld hl, Palette_e0c93 - ld de, wMapPals + ld de, UnknBGPals ld bc, $48 call CopyBytes pop af @@ -1751,7 +1751,7 @@ Functione1190: ; e1190 ld a, $93 ld [rLCDC], a call WaitBGMap - ld b, $18 + ld b, SCGB_18 call GetSGBLayout ld a, $e4 call DmgToCgbBGPals diff --git a/engine/color.asm b/engine/color.asm index bf428f51c..7e7520816 100644 --- a/engine/color.asm +++ b/engine/color.asm @@ -117,7 +117,7 @@ Function8ad1: ; 8ad1 ret ; 8ade -Function8ade: ; 8ade +Function8ade: ; 8ade SGB layout $fc ld hl, wcd9b ld a, [wcda9] ld e, a @@ -149,7 +149,7 @@ Function8b07: ; 8b07 call CheckCGB ret z ld hl, Palette8b2f - ld de, wMapPals + ld de, UnknBGPals ld bc, $0008 ld a, $5 call FarCopyWRAM @@ -200,7 +200,7 @@ Function8b4d: ; 8b4d jp Function9809 .asm_8b5c - ld de, Unkn2Pals + ld de, UnknOBPals ld a, $3b call GetAthPalletFromPalettes9df6 jp LoadHLPaletteIntoDE @@ -216,7 +216,7 @@ Function8b67: ; 8b67 jp Function9809 .asm_8b76 - ld de, Unkn2Pals + ld de, UnknOBPals ld a, $3c call GetAthPalletFromPalettes9df6 jp LoadHLPaletteIntoDE @@ -248,7 +248,7 @@ Function8b81: ; 8b81 jp Function9809 .asm_8bb2 - ld de, Unkn2Pals + ld de, UnknOBPals ld a, c call Function9775 call Function9643 @@ -275,7 +275,7 @@ endr asm_8bd7 push hl - ld hl, wMapPals + ld hl, UnknBGPals ld de, $0008 .asm_8bde and a @@ -338,7 +338,7 @@ Function8c1d: ; 8c1d call Function976b .asm_8c33 - ld de, wMapPals + ld de, UnknBGPals call Function9643 call Function9699 call Function96b3 @@ -412,11 +412,11 @@ endr ld a, $5 ld [rSVBK], a ld a, [hli] - ld [wMapPals], a - ld [wMapPals + 8 * 2], a + ld [UnknBGPals], a + ld [UnknBGPals + 8 * 2], a ld a, [hl] - ld [wMapPals + 1], a - ld [wMapPals + 8 * 2 + 1], a + ld [UnknBGPals + 1], a + ld [UnknBGPals + 8 * 2 + 1], a pop af ld [rSVBK], a call Function96a4 @@ -458,7 +458,7 @@ endr ret .asm_8cf0 - ld de, wMapPals + ld de, UnknBGPals ld bc, $0008 ld a, $5 call FarCopyWRAM @@ -525,7 +525,7 @@ INCLUDE "predef/cgb.asm" Function95f0: ; 95f0 ld hl, Palette_9608 - ld de, wMapPals + ld de, UnknBGPals ld bc, 8 ld a, $5 call FarCopyWRAM @@ -544,7 +544,7 @@ Palette_9608: ; 9608 CopyFourPalettes: ; 9610 - ld de, wMapPals + ld de, UnknBGPals ld c, $4 CopyPalettes: ; 9615 @@ -644,9 +644,9 @@ Function9673: ; 9673 push af ld a, $5 ld [rSVBK], a - ld hl, wMapPals - ld c, $8 -.asm_9683 + ld hl, UnknBGPals + ld c, 8 +.loop ld a, $ff rept 4 ld [hli], a @@ -656,7 +656,7 @@ rept 4 ld [hli], a endr dec c - jr nz, .asm_9683 + jr nz, .loop pop af ld [rSVBK], a pop hl @@ -676,7 +676,7 @@ Function9699: ; 9699 ; 96a4 Function96a4: ; 96a4 - ld hl, wMapPals + ld hl, UnknBGPals ld de, BGPals ld bc, $0080 ld a, $5 @@ -728,7 +728,7 @@ Function96b3: ; 96b3 ret ; 96f3 -Function96f3: ; 96f3 +Function96f3: ; 96f3 CGB layout $fc ld hl, wcd9b ld a, [wcda9] ld e, a @@ -759,7 +759,7 @@ Function96f3: ; 96f3 Function971a: ; 971a ld hl, Palettes_b681 - ld de, Unkn2Pals + ld de, UnknOBPals ld bc, $0010 ld a, $5 call FarCopyWRAM @@ -843,7 +843,7 @@ Function977a: ; 977a dec c jr nz, .asm_9787 ld hl, Palettes_979c - ld de, Unkn2Pals + 8 * 2 + ld de, UnknOBPals + 8 * 2 ld bc, $0010 ld a, $5 call FarCopyWRAM @@ -1047,7 +1047,7 @@ Function9890:: ; 9890 push af ld a, $5 ld [rSVBK], a - ld hl, wMapPals + ld hl, UnknBGPals call Function98df ld hl, BGPals call Function98df @@ -1058,13 +1058,13 @@ Function9890:: ; 9890 Function98df: ; 98df ld c, $40 -.asm_98e1 +.loop ld a, $ff ld [hli], a ld a, $7f ld [hli], a dec c - jr nz, .asm_98e1 + jr nz, .loop ret ; 98eb @@ -1974,7 +1974,7 @@ endr push af ld a, $5 ld [rSVBK], a - ld hl, wMapPals + ld hl, UnknBGPals ld b, $8 .asm_b210 ld a, [de] @@ -2010,9 +2010,9 @@ endr ld bc, $40 ld hl, MapObjectPals call AddNTimes - ld de, Unkn2Pals + ld de, UnknOBPals ld bc, $40 - ld a, $5 ; BANK(Unkn2Pals) + ld a, $5 ; BANK(UnknOBPals) call FarCopyWRAM ld a, [wPermission] @@ -2037,7 +2037,7 @@ rept 4 inc hl endr .asm_b26d - ld de, wMapPals + 8 * 6 + 2 + ld de, UnknBGPals + 8 * 6 + 2 ld bc, 4 ld a, $5 call FarCopyWRAM diff --git a/engine/credits.asm b/engine/credits.asm index 6b35fbe6a..6e2bef12d 100644 --- a/engine/credits.asm +++ b/engine/credits.asm @@ -637,10 +637,10 @@ GetCreditsPalette: ; 109b2c push af push hl - add wMapPals % $100 + add UnknBGPals % $100 ld e, a ld a, 0 - adc wMapPals / $100 + adc UnknBGPals / $100 ld d, a ld bc, 24 call CopyBytes diff --git a/engine/crystal_intro.asm b/engine/crystal_intro.asm index 0ed427de4..69a068ff9 100755 --- a/engine/crystal_intro.asm +++ b/engine/crystal_intro.asm @@ -524,7 +524,7 @@ IntroScene1: ; e495b (39:495b) ld a, $5 ld [rSVBK], a ld hl, Palette_365ad - ld de, wMapPals + ld de, UnknBGPals ld bc, $80 call CopyBytes ld hl, Palette_365ad @@ -597,7 +597,7 @@ IntroScene3: ; e49fd (39:49fd) ld a, $5 ld [rSVBK], a ld hl, Palette_e5edd - ld de, wMapPals + ld de, UnknBGPals ld bc, $80 call CopyBytes ld hl, Palette_e5edd @@ -662,7 +662,7 @@ IntroScene5: ; e4a7a (39:4a7a) ld a, $5 ld [rSVBK], a ld hl, Palette_365ad - ld de, wMapPals + ld de, UnknBGPals ld bc, $80 call CopyBytes ld hl, Palette_365ad @@ -759,7 +759,7 @@ IntroScene7: ; e4b3f (39:4b3f) ld a, $5 ld [rSVBK], a ld hl, Palette_e5edd - ld de, wMapPals + ld de, UnknBGPals ld bc, $80 call CopyBytes ld hl, Palette_e5edd @@ -909,7 +909,7 @@ IntroScene11: ; e4c86 (39:4c86) ld a, $5 ld [rSVBK], a ld hl, Palette_365ad - ld de, wMapPals + ld de, UnknBGPals ld bc, $80 call CopyBytes ld hl, Palette_365ad @@ -1034,7 +1034,7 @@ IntroScene13: ; e4d6d (39:4d6d) ld a, $5 ld [rSVBK], a ld hl, Palette_e5edd - ld de, wMapPals + ld de, UnknBGPals ld bc, $80 call CopyBytes ld hl, Palette_e5edd @@ -1143,7 +1143,7 @@ IntroScene15: ; e4e40 (39:4e40) ld a, $5 ld [rSVBK], a ld hl, Palette_e77dd - ld de, wMapPals + ld de, UnknBGPals ld bc, $80 call CopyBytes ld hl, Palette_e77dd @@ -1217,7 +1217,7 @@ IntroScene17: ; e4ef5 (39:4ef5) ld a, $5 ld [rSVBK], a ld hl, Palette_e6d6d - ld de, wMapPals + ld de, UnknBGPals ld bc, $80 call CopyBytes ld hl, Palette_e6d6d @@ -1291,7 +1291,7 @@ IntroScene19: ; e4f7e (39:4f7e) ld a, $5 ld [rSVBK], a ld hl, Palette_e77dd - ld de, wMapPals + ld de, UnknBGPals ld bc, $80 call CopyBytes ld hl, Palette_e77dd @@ -1459,7 +1459,7 @@ IntroScene26: ; e50bb (39:50bb) ld a, $5 ld [rSVBK], a ld hl, Palette_e679d - ld de, wMapPals + ld de, UnknBGPals ld bc, $80 call CopyBytes ld hl, Palette_e679d @@ -1785,7 +1785,7 @@ endr ld bc, $8 call CopyBytes pop bc - ld de, wMapPals + ld de, UnknBGPals ld a, c add e ld e, a diff --git a/engine/debug.asm b/engine/debug.asm index 913ea0a8d..0d2720990 100755 --- a/engine/debug.asm +++ b/engine/debug.asm @@ -1244,7 +1244,7 @@ Function8220f: ; 8220f rept 3 add hl, hl endr - ld de, wMapPals + ld de, UnknBGPals add hl, de ld de, wc608 ld bc, 8 diff --git a/engine/diploma.asm b/engine/diploma.asm index d2ca46bb3..8f8ef9e99 100644 --- a/engine/diploma.asm +++ b/engine/diploma.asm @@ -31,7 +31,7 @@ Function1dd709: ; 1dd709 call PlaceString call EnableLCD call WaitBGMap - ld b, $8 + ld b, SCGB_08 call GetSGBLayout call SetPalettes call DelayFrame diff --git a/engine/dummy_game.asm b/engine/dummy_game.asm index 72a8e3a80..4e8dad1a3 100755 --- a/engine/dummy_game.asm +++ b/engine/dummy_game.asm @@ -8,7 +8,7 @@ _DummyGame: ; e1e5b (38:5e5b) Functione1e67: ; e1e67 (38:5e67) call DisableLCD - ld b, $8 + ld b, SCGB_08 call GetSGBLayout callab Function8cf53 ld hl, LZ_e2221 diff --git a/engine/evolution_animation.asm b/engine/evolution_animation.asm index 8e0a4af6d..835db8b52 100755 --- a/engine/evolution_animation.asm +++ b/engine/evolution_animation.asm @@ -52,11 +52,11 @@ _EvolutionAnimation: ; 4e607 ld [PlayerHPPal], a ld c, $0 - call Function4e703 + call .GetSGBLayout ld a, [Buffer1] ld [CurPartySpecies], a ld [CurSpecies], a - call Function4e708 + call .PlaceFrontpic ld de, VTiles2 ld hl, VTiles2 tile $31 @@ -65,11 +65,11 @@ _EvolutionAnimation: ; 4e607 ld a, $31 ld [wd1ec], a - call Evolution_FlashFrontpics + call .ReplaceFrontpic ld a, [Buffer2] ld [CurPartySpecies], a ld [CurSpecies], a - call Function4e711 + call .LoadFrontpic ld a, [Buffer1] ld [CurPartySpecies], a ld [CurSpecies], a @@ -90,14 +90,14 @@ _EvolutionAnimation: ; 4e607 call DelayFrames ld c, $1 - call Function4e703 - call Function4e726 - jr c, .pressed_b + call .GetSGBLayout + call .AnimationSequence + jr c, .cancel_evo - ld a, $cf + ld a, -7 * 7 ld [wd1ec], a - call Evolution_FlashFrontpics + call .ReplaceFrontpic xor a ld [wd1ed], a @@ -105,7 +105,7 @@ _EvolutionAnimation: ; 4e607 ld [PlayerHPPal], a ld c, $0 - call Function4e703 + call .GetSGBLayout call Function4e7a6 callba Function8cf53 call Function4e794 @@ -134,7 +134,7 @@ _EvolutionAnimation: ; 4e607 .asm_4e6de ret -.pressed_b +.cancel_evo ld a, $1 ld [wd1ed], a @@ -142,7 +142,7 @@ _EvolutionAnimation: ; 4e607 ld [PlayerHPPal], a ld c, $0 - call Function4e703 + call .GetSGBLayout call Function4e7a6 callba Function8cf53 call Function4e794 @@ -153,38 +153,38 @@ _EvolutionAnimation: ; 4e607 ret ; 4e703 -Function4e703: ; 4e703 - ld b, $b +.GetSGBLayout: ; 4e703 + ld b, SCGB_0B jp GetSGBLayout ; 4e708 -Function4e708: ; 4e708 +.PlaceFrontpic: ; 4e708 call GetBaseData hlcoord 7, 2 jp PrepMonFrontpic ; 4e711 -Function4e711: ; 4e711 +.LoadFrontpic: ; 4e711 call GetBaseData ld a, $1 ld [wc2c6], a ld de, VTiles2 - predef Function5108b + predef FrontpicPredef xor a ld [wc2c6], a ret ; 4e726 -Function4e726: ; 4e726 +.AnimationSequence: ; 4e726 call ClearJoypad - lb bc, 1, 14 + lb bc, 1, 2 * 7 ; flash b times, wait c frames in between .loop push bc - call Evolution_CheckPressedB + call .WaitFrames_CheckPressedB pop bc - jr c, .pressed_b + jr c, .exit_sequence push bc - call Evolution_NextFrame + call .Flash pop bc inc b rept 2 @@ -194,31 +194,30 @@ endr and a ret -.pressed_b +.exit_sequence scf ret ; 4e741 -Evolution_NextFrame: ; 4e741 -.loop - ld a, -49 +.Flash: ; 4e741 + ld a, -7 * 7 ; new stage ld [wd1ec], a - call Evolution_FlashFrontpics - ld a, 49 + call .ReplaceFrontpic + ld a, 7 * 7 ; previous stage ld [wd1ec], a - call Evolution_FlashFrontpics + call .ReplaceFrontpic dec b - jr nz, .loop + jr nz, .Flash ret ; 4e755 -Evolution_FlashFrontpics: ; 4e755 +.ReplaceFrontpic: ; 4e755 push bc xor a ld [hBGMapMode], a hlcoord 7, 2 lb bc, 7, 7 - ld de, $d + ld de, SCREEN_WIDTH - 7 .loop1 push bc .loop2 @@ -238,8 +237,7 @@ Evolution_FlashFrontpics: ; 4e755 ret ; 4e779 -Evolution_CheckPressedB: ; 4e779 -.loop +.WaitFrames_CheckPressedB: ; 4e779 call DelayFrame push bc call JoyTextDelay @@ -247,16 +245,16 @@ Evolution_CheckPressedB: ; 4e779 pop bc and B_BUTTON jr nz, .pressed_b -.loop2 +.loop3 dec c - jr nz, .loop + jr nz, .WaitFrames_CheckPressedB and a ret .pressed_b ld a, [wd1e9] and a - jr nz, .loop2 + jr nz, .loop3 scf ret ; 4e794 @@ -281,18 +279,18 @@ Function4e7a6: ; 4e7a6 ld a, [hl] push af ld [hl], $0 -.asm_4e7b8 +.loop call Function4e7cf - jr nc, .asm_4e7c2 + jr nc, .done call Function4e80c - jr .asm_4e7b8 + jr .loop -.asm_4e7c2 +.done ld c, $20 -.asm_4e7c4 +.loop2 call Function4e80c dec c - jr nz, .asm_4e7c4 + jr nz, .loop2 pop af ld [wJumptableIndex], a ret @@ -319,7 +317,7 @@ Function4e7cf: ; 4e7cf Function4e7e8: ; 4e7e8 push de - ld de, $4858 + lb de, $48, $58 ld a, $13 call _InitSpriteAnimStruct ld hl, $b @@ -342,6 +340,7 @@ Function4e7e8: ; 4e7e8 Function4e80c: ; 4e80c push bc callab Function8cf69 + ; a = (([hVBlankCounter] + 4) / 2) % NUM_PALETTES ld a, [hVBlankCounter] and $e srl a @@ -350,9 +349,9 @@ rept 2 endr and $7 ld b, a - ld hl, Sprites + 3 - ld c, $28 -.asm_4e823 + ld hl, Sprites + 3 ; attributes + ld c, 40 +.loop ld a, [hl] or b ld [hli], a @@ -360,7 +359,7 @@ rept 3 inc hl endr dec c - jr nz, .asm_4e823 + jr nz, .loop pop bc call DelayFrame ret diff --git a/engine/link.asm b/engine/link.asm index feb4b5023..e10a3d0f6 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -495,7 +495,7 @@ Function283b2: ; 283b2 call PlaceWholeStringInBoxAtOnce call RotateThreePalettesRight call ClearScreen - ld b, $8 + ld b, SCGB_08 call GetSGBLayout call Function3200 ret @@ -1585,7 +1585,7 @@ Function28ade: ; 28ade Function28b22: ; 28b22 call RotateThreePalettesRight call ClearScreen - ld b, $8 + ld b, SCGB_08 call GetSGBLayout call Function3200 xor a @@ -1889,7 +1889,7 @@ Function28b87: ; 28b87 call DelayFrames call ClearTileMap call LoadFontsBattleExtra - ld b, $8 + ld b, SCGB_08 call GetSGBLayout ld a, [hLinkPlayerNumber] cp $1 @@ -2401,7 +2401,7 @@ Function2914e: ; 2914e pop bc ld [hl], b call WaitBGMap - ld b, $1b + ld b, SCGB_1B call GetSGBLayout ld a, $e4 call DmgToCgbBGPals @@ -2672,7 +2672,7 @@ Function29348: ; 29348 lb bc, 3, 12 call Function297db call WaitBGMap - ld b, $1b + ld b, SCGB_1B call GetSGBLayout ld a, $e4 call DmgToCgbBGPals @@ -2812,7 +2812,7 @@ Function2942e: ; 2942e ld [TempMonDVs], a ld a, [wPlayerMinimized] ld [TempMonDVs + 1], a - ld b, $1a + ld b, SCGB_1A call GetSGBLayout ld a, $e4 call DmgToCgbBGPals @@ -2838,7 +2838,7 @@ Function29461: ; 29461 ld [TempMonDVs], a ld a, [wPlayerWrapCount] ld [TempMonDVs + 1], a - ld b, $1a + ld b, SCGB_1A call GetSGBLayout ld a, $e4 call DmgToCgbBGPals diff --git a/engine/namingscreen.asm b/engine/namingscreen.asm index c62dc1a0f..93cd97199 100755 --- a/engine/namingscreen.asm +++ b/engine/namingscreen.asm @@ -41,7 +41,7 @@ NamingScreen: ; 116c1 Function116f8: ; 116f8 call ClearBGPalettes - ld b, $8 + ld b, SCGB_08 call GetSGBLayout call DisableLCD call Function11c51 diff --git a/engine/party_menu.asm b/engine/party_menu.asm index 356b07f8e..06b774064 100644 --- a/engine/party_menu.asm +++ b/engine/party_menu.asm @@ -20,7 +20,7 @@ Function5001d: ; 5001d call ClearBGPalettes call Function5003f call WaitBGMap - ld b, $a + ld b, SCGB_0A call GetSGBLayout call SetPalettes call DelayFrame @@ -149,7 +149,7 @@ PlacePartyHPBar: ; 500cf ld b, $0 add hl, bc call SetHPPal - ld b, $fc + ld b, SCGB_FC call GetSGBLayout .skip @@ -162,7 +162,7 @@ PlacePartyHPBar: ; 500cf inc b dec c jr nz, .loop - ld b, $a + ld b, SCGB_0A call GetSGBLayout ret ; 50117 diff --git a/engine/pokedex.asm b/engine/pokedex.asm index 080647895..656e1767b 100644 --- a/engine/pokedex.asm +++ b/engine/pokedex.asm @@ -2363,7 +2363,7 @@ Function41401: ; 41401 (10:5401) push af ld a, $5 ld [rSVBK], a - ld hl, wMapPals + ld hl, UnknBGPals ld bc, $40 xor a call ByteFill diff --git a/engine/pokegear.asm b/engine/pokegear.asm index 2aaf0d74e..da6006853 100755 --- a/engine/pokegear.asm +++ b/engine/pokegear.asm @@ -1952,7 +1952,7 @@ _FlyMap: ; 91af3 call Request1bpp call FlyMap call Function91c8f - ld b, $2 + ld b, SCGB_02 call GetSGBLayout call SetPalettes .loop @@ -2378,7 +2378,7 @@ Function91d11: ; 91d11 call TownMapPals hlbgcoord 0, 0 call TownMapBGUpdate - ld b, $2 + ld b, SCGB_02 call GetSGBLayout call SetPalettes xor a diff --git a/engine/predef.asm b/engine/predef.asm index 213cfc352..90a60c800 100644 --- a/engine/predef.asm +++ b/engine/predef.asm @@ -92,7 +92,7 @@ PredefPointers:: ; 856b add_predef PartyMonItemName add_predef GetFrontpic add_predef GetBackpic - add_predef Function5108b + add_predef FrontpicPredef add_predef GetTrainerPic add_predef DecompressPredef ; $40 add_predef CheckTypeMatchup diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm index dab0e2361..afd038588 100755 --- a/engine/slot_machine.asm +++ b/engine/slot_machine.asm @@ -28,9 +28,9 @@ Function926f7: ; 926f7 (24:66f7) call DisableLCD hlbgcoord 0, 0 lb bc, 4, 0 - ld a, $7f + ld a, " " call ByteFill - ld b, $5 + ld b, SCGB_05 call GetSGBLayout callab Function8cf53 ld hl, wc6d0 diff --git a/engine/startmenu.asm b/engine/startmenu.asm index ba5e2330c..a40aa734e 100755 --- a/engine/startmenu.asm +++ b/engine/startmenu.asm @@ -1795,7 +1795,7 @@ SetUpMoveScreenBG: ; 13172 call PrintLevel ld hl, PlayerHPPal call SetHPPal - ld b, $e + ld b, SCGB_0E call GetSGBLayout hlcoord 16, 0 lb bc, 1, 3 diff --git a/engine/stats_screen.asm b/engine/stats_screen.asm index 11c6f61ce..766e05fe7 100755 --- a/engine/stats_screen.asm +++ b/engine/stats_screen.asm @@ -848,7 +848,7 @@ Function4e289: ; 4e289 (13:6289) ret c call Function4e307 ld de, VTiles2 tile $00 - predef Function5108b + predef FrontpicPredef hlcoord 0, 0 ld d, $0 ld e, $2 @@ -1051,7 +1051,7 @@ Function4e497: ; 4e497 (13:6497) ld [wc2c6], a call Function4e307 ld de, VTiles2 tile $00 - predef Function5108b + predef FrontpicPredef pop de hlcoord 0, 0 ld d, $0 diff --git a/engine/timeofdaypals.asm b/engine/timeofdaypals.asm index fac580f41..b977772eb 100644 --- a/engine/timeofdaypals.asm +++ b/engine/timeofdaypals.asm @@ -39,7 +39,7 @@ _TimeOfDayPals:: ; 8c011 ; save bg palette 8 - ld hl, wMapPals + 8 * 7 ; wMapPals + 7 pals + ld hl, UnknBGPals + 8 * 7 ; UnknBGPals + 7 pals ; save wram bank ld a, [rSVBK] @@ -65,12 +65,12 @@ _TimeOfDayPals:: ; 8c011 ; update sgb pals - ld b, $9 + ld b, SCGB_09 call GetSGBLayout ; restore bg palette 8 - ld hl, Unkn2Pals - 1 ; last byte in wMapPals + ld hl, UnknOBPals - 1 ; last byte in UnknBGPals ; save wram bank ld a, [rSVBK] @@ -172,12 +172,12 @@ Function8c0c1: ; 8c0c1 push af ld a, $5 ld [rSVBK], a - ld hl, wMapPals + ld hl, UnknBGPals ld a, [hli] ld e, a ld a, [hli] ld d, a - ld hl, wMapPals + 8 + ld hl, UnknBGPals + 8 ld c, $6 .asm_8c0d4 ld a, e diff --git a/engine/title.asm b/engine/title.asm index fc8dfa0e4..0812ec0ec 100644 --- a/engine/title.asm +++ b/engine/title.asm @@ -144,7 +144,7 @@ _TitleScreen: ; 10ed67 ; Update palette colors ld hl, TitleScreenPalettes - ld de, wMapPals + ld de, UnknBGPals ld bc, 4 * 32 call CopyBytes @@ -220,7 +220,7 @@ _TitleScreen: ; 10ed67 ld [hBGMapMode], a xor a - ld [wMapPals + 2], a + ld [UnknBGPals + 2], a ; Play starting sound effect call SFXChannelsOff @@ -231,7 +231,7 @@ _TitleScreen: ; 10ed67 ; 10eea7 SuicuneFrameIterator: ; 10eea7 - ld hl, wMapPals + 2 + ld hl, UnknBGPals + 2 ld a, [hl] ld c, a inc [hl] diff --git a/event/whiteout.asm b/event/whiteout.asm index 405c6d530..cc42714d0 100755 --- a/event/whiteout.asm +++ b/event/whiteout.asm @@ -42,7 +42,7 @@ OverworldBGMap: ; 124fa ; 1250a BattleBGMap: ; 1250a - ld b, $0 + ld b, SCGB_00 call GetSGBLayout call SetPalettes ret diff --git a/gfx/pics/animation.asm b/gfx/pics/animation.asm index fd37b0497..ea87f97e5 100644 --- a/gfx/pics/animation.asm +++ b/gfx/pics/animation.asm @@ -1113,7 +1113,7 @@ Functiond066e: ; d066e push bc push hl ld de, VTiles2 - predef Function5108b + predef FrontpicPredef pop hl pop bc ld d, 0 diff --git a/home.asm b/home.asm index cb605bf2c..c5c8187df 100644 --- a/home.asm +++ b/home.asm @@ -748,9 +748,8 @@ ClearPalettes:: ; 3317 ; 333e -ClearSGB:: ; 333e - ld b, $ff - +GetMemSGBLayout:: ; 333e + ld b, SCGB_RAM GetSGBLayout:: ; 3340 ; load sgb packets unless dmg diff --git a/home/map.asm b/home/map.asm index 07341674f..a93f208a4 100644 --- a/home/map.asm +++ b/home/map.asm @@ -2029,10 +2029,8 @@ ExitAllMenus:: ; 2b4d call Function2bae call UpdateSprites call Functiond90 -; 2b5c - Function2b5c:: ; 2b5c - ld b, $9 + ld b, SCGB_09 call GetSGBLayout callba Function49409 call Function3200 @@ -2056,7 +2054,7 @@ Function2b74:: ; 0x2b74 set 0, [hl] call UpdateSprites call Function3200 - ld b, $9 + ld b, SCGB_09 call GetSGBLayout callba Function49409 call UpdateTimePals diff --git a/home/palettes.asm b/home/palettes.asm index 666aff6b7..124fd803f 100644 --- a/home/palettes.asm +++ b/home/palettes.asm @@ -95,7 +95,7 @@ DmgToCgbBGPals:: ; c9f ; copy & reorder bg pal buffer ld hl, BGPals ; to - ld de, wMapPals ; from + ld de, UnknBGPals ; from ; order ld a, [rBGP] ld b, a @@ -143,7 +143,7 @@ DmgToCgbObjPals:: ; ccb ; copy & reorder obj pal buffer ld hl, OBPals ; to - ld de, Unkn2Pals ; from + ld de, UnknOBPals ; from ; order ld a, [rOBP0] ld b, a @@ -182,7 +182,7 @@ Functioncf8:: ; cf8 ld [rSVBK], a ld hl, OBPals - ld de, Unkn2Pals + ld de, UnknOBPals ld a, [rOBP0] ld b, a ld c, $1 @@ -216,7 +216,7 @@ Functiond24:: ; d24 ld a, $5 ld [rSVBK], a ld hl, OBPals + 8 - ld de, Unkn2Pals + 8 + ld de, UnknOBPals + 8 ld a, [rOBP1] ld b, a ld c, $1 diff --git a/main.asm b/main.asm index 044f5fd42..31c3053ea 100644 --- a/main.asm +++ b/main.asm @@ -9925,7 +9925,7 @@ PokepicYesOrNo:: ; 24528 call CopyMenuDataHeader call ClearMenuBoxInterior call WaitBGMap - call ClearSGB + call GetMemSGBLayout xor a ld [hBGMapMode], a call OverworldTextModeSwitch @@ -12161,7 +12161,7 @@ _ReturnToBattle_UseBall: ; 2715c .continue callba GetMonFrontpic callba _LoadBattleFontsHPBar - call ClearSGB + call GetMemSGBLayout call WriteBackup call LoadStandardMenuDataHeader call WaitBGMap @@ -15449,7 +15449,7 @@ Function48e14: ; 48e14 (12:4e14) Function48e47: ; 48e47 (12:4e47) ld hl, Palette_48e5c - ld de, wMapPals + ld de, UnknBGPals ld bc, $8 ld a, $5 call FarCopyWRAM @@ -15613,17 +15613,17 @@ MenuDataHeader_0x4930a: ; 0x4930a Function4930f: ; 4930f (mobile) ld a, b - cp $ff - jr nz, .asm_49317 + cp SCGB_RAM + jr nz, .not_ram ld a, [SGBPredef] -.asm_49317 +.not_ram push af callba Function9673 pop af ld l, a ld h, 0 add hl, hl - ld de, Jumptable_49330 + ld de, .jumptable add hl, de ld a, [hli] ld h, [hl] @@ -15635,7 +15635,7 @@ Function4930f: ; 4930f (mobile) ret ; 49330 (12:5330) -Jumptable_49330: ; 49330 +.jumptable: ; 49330 dw Function4936e dw Function4942f dw Function49706 @@ -15667,15 +15667,15 @@ Function49346: ; 49346 (12:5346) ret Function49351: ; 49351 (12:5351) - ld de, wMapPals + ld de, UnknBGPals ld hl, Palette_493e1 ld bc, $28 - ld a, $5 ; BANK(wMapPals) + ld a, $5 ; BANK(UnknBGPals) call FarCopyWRAM - ld de, wMapPals + $38 + ld de, UnknBGPals + $38 ld hl, Palette_49418 ld bc, $8 - ld a, $5 ; BANK(wMapPals) + ld a, $5 ; BANK(UnknBGPals) call FarCopyWRAM ret @@ -15755,7 +15755,7 @@ Palette_493e1: ; 493e1 Function49409:: ; 49409 ld hl, Palette_49418 - ld de, wMapPals + 8 * 7 + ld de, UnknBGPals + 8 * 7 ld bc, 8 ld a, $5 call FarCopyWRAM @@ -15771,19 +15771,19 @@ Palette_49418: ; 49418 Function49420:: ; 49420 (12:5420) ld hl, MansionPalette4 - ld de, wMapPals + $30 + ld de, UnknBGPals + $30 ld bc, $8 - ld a, $5 ; BANK(wMapPals) + ld a, $5 ; BANK(UnknBGPals) call FarCopyWRAM ret ; 4942f (12:542f) Function4942f: ; 4942f call Function49351 - ld de, wMapPals + $38 + ld de, UnknBGPals + $38 ld hl, Palette_49478 ld bc, $8 - ld a, $5 ; BANK(wMapPals) + ld a, $5 ; BANK(UnknBGPals) call FarCopyWRAM call Function49346 hlcoord 0, 0, AttrMap @@ -15901,7 +15901,7 @@ LoadSpecialMapPalette: ; 494ac LoadPokeComPalette: ; 494f2 ld a, $5 - ld de, wMapPals + ld de, UnknBGPals ld hl, PokeComPalette ld bc, 8 palettes call FarCopyWRAM @@ -15914,7 +15914,7 @@ INCLUDE "tilesets/pokecom.pal" LoadBattleTowerPalette: ; 49541 ld a, $5 - ld de, wMapPals + ld de, UnknBGPals ld hl, BattleTowerPalette ld bc, 8 palettes call FarCopyWRAM @@ -15927,7 +15927,7 @@ INCLUDE "tilesets/battle_tower.pal" LoadIcePathPalette: ; 49590 ld a, $5 - ld de, wMapPals + ld de, UnknBGPals ld hl, IcePathPalette ld bc, 8 palettes call FarCopyWRAM @@ -15940,7 +15940,7 @@ INCLUDE "tilesets/ice_path.pal" LoadHousePalette: ; 495df ld a, $5 - ld de, wMapPals + ld de, UnknBGPals ld hl, HousePalette ld bc, 8 palettes call FarCopyWRAM @@ -15953,7 +15953,7 @@ INCLUDE "tilesets/house.pal" LoadRadioTowerPalette: ; 4962e ld a, $5 - ld de, wMapPals + ld de, UnknBGPals ld hl, RadioTowerPalette ld bc, 8 palettes call FarCopyWRAM @@ -16016,22 +16016,22 @@ MansionPalette4: ; 496bd LoadMansionPalette: ; 496c5 ld a, $5 - ld de, wMapPals + ld de, UnknBGPals ld hl, MansionPalette1 ld bc, 8 palettes call FarCopyWRAM ld a, $5 - ld de, wMapPals + 4 palettes + ld de, UnknBGPals + 4 palettes ld hl, MansionPalette2 ld bc, 1 palettes call FarCopyWRAM ld a, $5 - ld de, wMapPals + 3 palettes + ld de, UnknBGPals + 3 palettes ld hl, MansionPalette3 ld bc, 1 palettes call FarCopyWRAM ld a, $5 - ld de, wMapPals + 6 palettes + ld de, UnknBGPals + 6 palettes ld hl, MansionPalette4 ld bc, 1 palettes call FarCopyWRAM @@ -16047,7 +16047,7 @@ MansionPalette2: ; 496fe Function49706: ; 49706 ld hl, Palette_49732 - ld de, wMapPals + ld de, UnknBGPals ld bc, 1 palettes ld a, $5 call FarCopyWRAM @@ -16055,7 +16055,7 @@ Function49706: ; 49706 call Function49346 callba Function96b3 ld hl, Palette_4973a - ld de, Unkn2Pals + ld de, UnknOBPals ld bc, 1 palettes ld a, $5 call FarCopyWRAM @@ -16078,7 +16078,7 @@ Palette_4973a: ; 4973a Function49742: ; 49742 ld hl, Palette_49757 - ld de, wMapPals + ld de, UnknBGPals ld bc, $40 ld a, $5 call FarCopyWRAM @@ -16182,7 +16182,7 @@ endr Function49811: ; 49811 ld hl, Palette_49826 - ld de, wMapPals + $10 + ld de, UnknBGPals + $10 ld bc, $30 ld a, $5 call FarCopyWRAM @@ -18422,7 +18422,7 @@ Function4d7fd: ; 4d7fd ld [CurSpecies], a call GetBaseData pop de - predef Function5108b + predef FrontpicPredef ret ; 4d81e @@ -20604,7 +20604,7 @@ GetFrontpic: ; 51077 ret ; 5108b -Function5108b: ; 5108b +FrontpicPredef: ; 5108b ld a, [CurPartySpecies] ld [CurSpecies], a call IsAPokemon @@ -24146,7 +24146,7 @@ LoadGraphics: ; 1047cf ret LoadMapPalettes: ; 1047eb - ld b, $9 + ld b, SCGB_09 jp GetSGBLayout ; 1047f0 diff --git a/maps/AzaleaTown.asm b/maps/AzaleaTown.asm index e3261b0a5..ea2168e2a 100644 --- a/maps/AzaleaTown.asm +++ b/maps/AzaleaTown.asm @@ -367,11 +367,11 @@ UnknownText_0x19851a: UnknownText_0x1985b0: text "SLOWPOKE: …" - para $56, " ", $56, " ", $56 + para "<......> <......> <......>" done UnknownText_0x1985c3: - text $56, " ", $56, "Yawn?" + text "<......> <......>Yawn?" done WoosterText: diff --git a/maps/BurnedTower1F.asm b/maps/BurnedTower1F.asm index 414502613..449a730a8 100644 --- a/maps/BurnedTower1F.asm +++ b/maps/BurnedTower1F.asm @@ -160,7 +160,7 @@ MovementData_0x185cd3: step_end UnknownText_0x185cd9: - text $56, " ", $56, " ", $56 + text "<......> <......> <......>" para "…Oh, it's you." diff --git a/misc/battle_tower_47.asm b/misc/battle_tower_47.asm index 91efccc1b..58f527868 100755 --- a/misc/battle_tower_47.asm +++ b/misc/battle_tower_47.asm @@ -11,6 +11,12 @@ IF DEF(CRYSTAL11) ld hl, BT_OTTrainerClass ELSE ld hl, BT_OTName + 5 +; BUG ALERT +; Instead of loading the Trainer Class, this routine +; loads the 6th character in the Trainer's name, then +; uses it to get the gender of the trainer. +; As a consequence, the enemy trainer's dialog will +; always be sampled from the female array. ENDC ld a, [hl] dec a @@ -2888,7 +2894,7 @@ Function11d323: ; 11d323 ld a, $5 ld [rSVBK], a ld hl, Palette_11d33a - ld de, wMapPals + ld de, UnknBGPals ld bc, 16 * 8 call CopyBytes pop af @@ -3015,7 +3021,7 @@ Function11d3ef: ; 11d3ef ld a, [hli] ld b, a push hl - ld hl, wMapPals + ld hl, UnknBGPals add hl, de ld a, [wcd2d] ld e, a @@ -4174,7 +4180,7 @@ Unknown_11f23c: db $ac, $05, $15, $00 db $00, $00, $09, $00 -BTTrainerClassGenders: +BTTrainerClassGenders: ; 11f2f0 db MALE ; FALKNER db FEMALE ; WHITNEY db FEMALE ; BUGSY diff --git a/misc/crystal_misc.asm b/misc/crystal_misc.asm index 6e9844866..662c1788a 100644 --- a/misc/crystal_misc.asm +++ b/misc/crystal_misc.asm @@ -768,26 +768,26 @@ Function17aba0: ; 17aba0 (5e:6ba0) Function17abcf: ; 17abcf (5e:6bcf) ld a, [rSVBK] push af - ld a, BANK(wMapPals) + ld a, BANK(UnknBGPals) ld [rSVBK], a ld hl, Palette_17ac55 - ld de, wMapPals ; $d000 + ld de, UnknBGPals ; $d000 ld bc, $30 call CopyBytes ld hl, Palette_17ac95 - ld de, Unkn2Pals + ld de, UnknOBPals ld bc, $40 call CopyBytes ld hl, GFX_17afa5 + $510 - ld de, Unkn2Pals + 2 * 4 + ld de, UnknOBPals + 2 * 4 ld bc, $10 call CopyBytes ld hl, MapObjectPals + 8 - ld de, Unkn2Pals + 6 * 4 + ld de, UnknOBPals + 6 * 4 ld bc, $8 ld a, BANK(MapObjectPals) call FarCopyBytes diff --git a/misc/mobile_22.asm b/misc/mobile_22.asm index 4e4efec93..3e21f1365 100644 --- a/misc/mobile_22.asm +++ b/misc/mobile_22.asm @@ -623,7 +623,7 @@ Function8949c: ; 8949c ld a, 5 ld [rSVBK], a ld hl, Palette_894b3 - ld de, wMapPals + 8 * 7 + ld de, UnknBGPals + 8 * 7 ld bc, 8 call CopyBytes pop af @@ -675,11 +675,11 @@ endr ld a, [hli] ld h, [hl] ld l, a - ld de, wMapPals + ld de, UnknBGPals ld bc, 3 palettes call CopyBytes ld hl, .Pals345 - ld de, wMapPals + 3 palettes + ld de, UnknBGPals + 3 palettes ld bc, 3 palettes call CopyBytes @@ -2154,7 +2154,7 @@ Function89d0d: ; 89d0d (22:5d0d) ld a, $5 ld [rSVBK], a ld c, $8 - ld de, wMapPals + ld de, UnknBGPals .asm_89d1c push bc ld hl, Palette_89d4e @@ -3394,7 +3394,7 @@ Function8a5b6: ; 8a5b6 (22:65b6) ld bc, $18 call CopyBytes ld hl, Palette_8a5fd - ld de, Unkn2Pals + ld de, UnknOBPals ld bc, $8 call CopyBytes ld hl, Palette_8a605 @@ -3441,7 +3441,7 @@ Function8a60d: ; 8a60d ld a, $5 ld [rSVBK], a ld hl, Palette_8a624 - ld de, Unkn2Pals + ld de, UnknOBPals ld bc, $0008 call CopyBytes pop af diff --git a/misc/mobile_22_2.asm b/misc/mobile_22_2.asm index 7a206e3e0..0157e8e9e 100644 --- a/misc/mobile_22_2.asm +++ b/misc/mobile_22_2.asm @@ -610,7 +610,7 @@ Function8b6bb: ; 8b6bb ld a, $5 ld [rSVBK], a ld hl, Palette_8b6d5 - ld de, wMapPals + ld de, UnknBGPals ld bc, $0018 call CopyBytes pop af diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index e0894795b..57ea46c1c 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -6825,7 +6825,7 @@ Function102dd3: ; 102dd3 Function102dec: ; 102dec ld hl, Unknown_1032e2 - ld de, Unkn2Pals + ld de, UnknOBPals ld bc, $0020 ld a, $5 call FarCopyWRAM diff --git a/misc/mobile_42.asm b/misc/mobile_42.asm index 6bfdeae02..0e25021bf 100644 --- a/misc/mobile_42.asm +++ b/misc/mobile_42.asm @@ -276,7 +276,7 @@ Function108201: ; 108201 ld [CurSpecies], a call GetBaseData pop de - predef Function5108b + predef FrontpicPredef ret ; 108219 @@ -459,7 +459,7 @@ Function10830e: ; 10830e ld [TempMonDVs], a ld a, [$c6fe] ld [TempMonDVs + 1], a - ld b, $1a + ld b, SCGB_1A call GetSGBLayout ld a, $e4 call DmgToCgbBGPals @@ -552,7 +552,7 @@ Function10839b: ; 10839b ld [TempMonDVs], a ld a, [wPlayerWrapCount] ld [TempMonDVs + 1], a - ld b, $1a + ld b, SCGB_1A call GetSGBLayout ld a, $e4 call DmgToCgbBGPals @@ -594,7 +594,7 @@ Function10842c: ; 10842c ld [TempMonDVs], a ld a, [$c6fe] ld [TempMonDVs + 1], a - ld b, $1a + ld b, SCGB_1A call GetSGBLayout ld a, $e4 call DmgToCgbBGPals @@ -696,7 +696,7 @@ Function1084d7: ; 1084d7 ld [TempMonDVs], a ld a, [wPlayerWrapCount] ld [TempMonDVs + 1], a - ld b, $1a + ld b, SCGB_1A call GetSGBLayout ld a, $e4 call DmgToCgbBGPals @@ -765,7 +765,7 @@ Function108589: ; 108589 ld [TempMonDVs], a ld a, [wPlayerWrapCount] ld [TempMonDVs + 1], a - ld b, $1a + ld b, SCGB_1A call GetSGBLayout ld a, $e4 call DmgToCgbBGPals @@ -804,7 +804,7 @@ Function108638: ; 108638 ld a, $5 ld [rSVBK], a ld hl, Palette_109107 - ld de, wMapPals + ld de, UnknBGPals ld bc, $0040 call CopyBytes pop af @@ -850,7 +850,7 @@ Function108689: ; 108689 ld a, $5 ld [rSVBK], a ld hl, Palette_109107 - ld de, wMapPals + ld de, UnknBGPals ld bc, $0040 call CopyBytes pop af @@ -894,7 +894,7 @@ Function1086f4: ; 1086f4 ld a, $5 ld [rSVBK], a ld hl, Palette_109107 - ld de, wMapPals + ld de, UnknBGPals ld bc, $0040 call CopyBytes pop af @@ -1423,7 +1423,7 @@ Function108af4: ; 108af4 and $1 jr z, .asm_108b1c ld hl, Palette_109187 - ld de, Unkn2Pals + ld de, UnknOBPals ld bc, $0040 call CopyBytes ld hl, Palette_109187 @@ -1434,7 +1434,7 @@ Function108af4: ; 108af4 .asm_108b1c ld hl, Palette_109147 - ld de, Unkn2Pals + ld de, UnknOBPals ld bc, $0040 call CopyBytes ld hl, Palette_109147 @@ -1459,7 +1459,7 @@ Function108b45: ; 108b45 ld a, $5 ld [rSVBK], a ld de, $7fff - ld hl, wMapPals + ld hl, UnknBGPals ld a, e ld [hli], a ld d, a @@ -1537,7 +1537,7 @@ Function108b98: ; 108b98 ld hl, Palette_108b98 .asm_108bb0 - ld de, wMapPals + 8 * 7 + ld de, UnknBGPals + 8 * 7 ld bc, $0040 call CopyBytes pop af diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm index 410f3c502..006a135f1 100644 --- a/misc/mobile_45.asm +++ b/misc/mobile_45.asm @@ -5786,7 +5786,7 @@ Function116294: ; 116294 ld bc, $0010 call CopyBytes ld hl, Palette_11734e - ld de, wMapPals + 8 * 7 + ld de, UnknBGPals + 8 * 7 ld bc, $0008 call CopyBytes call SetPalettes @@ -5912,7 +5912,7 @@ Function11636e: ; 11636e ld a, $5 ld [rSVBK], a ld hl, BGPals - ld de, wMapPals + ld de, UnknBGPals ld bc, $0040 call CopyBytes pop af @@ -5955,7 +5955,7 @@ Function1163c0: ; 1163c0 call ByteFill call DelayFrame callba Function14146 - ld b, $9 + ld b, SCGB_09 call GetSGBLayout ld a, [rSVBK] push af diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm index 48281ac13..a1f7c8a0f 100755 --- a/misc/mobile_46.asm +++ b/misc/mobile_46.asm @@ -175,7 +175,7 @@ Function118125: ; 118125 cp [hl] jr nz, .asm_11813e xor a - ld [wMapPals], a + ld [UnknBGPals], a pop af ld [rSVBK], a call Function118452 @@ -1067,7 +1067,7 @@ Function11878d: ; 11878d (46:478d) set 0, [hl] ld a, $6 ld [rSVBK], a - ld de, wMapPals + ld de, UnknBGPals ld bc, $1000 ld a, [hl] sla a @@ -1462,7 +1462,7 @@ Function118a65: ; 118a65 ld de, wcc60 ld bc, $80 call CopyBytes - ld de, wMapPals + ld de, UnknBGPals ld bc, $1000 jp Function118b10 ; 118a7a @@ -1472,7 +1472,7 @@ Function118a7a: ; 118a7a ld de, wcc60 ld bc, $80 call CopyBytes - ld de, wMapPals + ld de, UnknBGPals ld bc, $1000 jp Function118b10 ; 118a8f @@ -1482,7 +1482,7 @@ Function118a8f: ; 118a8f ld de, wcc60 ld bc, $80 call CopyBytes - ld de, wMapPals + ld de, UnknBGPals ld bc, $1000 jp Function118b10 ; 118aa4 @@ -1504,7 +1504,7 @@ Function118abc: ; 118abc (46:4abc) ld de, wcc60 ld bc, $80 call CopyBytes - ld de, wMapPals + ld de, UnknBGPals ld bc, $1000 jr Function118b10 ; 118ad0 (46:4ad0) @@ -1514,7 +1514,7 @@ Function118ad0: ld de, wcc60 ld bc, $80 call CopyBytes - ld de, wMapPals + ld de, UnknBGPals ld bc, $1000 jr Function118b10 @@ -2101,7 +2101,7 @@ Function119009: ld a, $40 ld [wcd89], a ld hl, wc314 + 48 + 2 - ld de, wMapPals + ld de, UnknBGPals ld bc, $1000 ld a, $2c jp Function119e2b @@ -2115,7 +2115,7 @@ Function119054: ; 119054 ld e, a ld a, [wcd50] ld d, a - ld a, [wMapPals] + ld a, [UnknBGPals] ld c, a ld a, [wd001] ld b, a @@ -2127,7 +2127,7 @@ Function119054: ; 119054 ld a, $6 ld [rSVBK], a ld hl, wd002 - ld a, [wMapPals] + ld a, [UnknBGPals] ld c, a ld a, [wd001] ld b, a @@ -2174,7 +2174,7 @@ Function1190d0: ; 1190d0 ld de, wcc60 call Function1191ad ret c - ld de, wMapPals + ld de, UnknBGPals ld bc, $1000 jp Function118b10 ; 1190ec @@ -2194,7 +2194,7 @@ Function1190ec: ; 1190ec call CloseSRAM ld a, $6 call GetSRAMBank - ld a, [wMapPals] + ld a, [UnknBGPals] ld c, a ld a, [wd001] ld b, a @@ -2207,7 +2207,7 @@ Function1190ec: ; 1190ec jr z, .asm_11913e ld a, $6 ld [rSVBK], a - ld a, [wMapPals] + ld a, [UnknBGPals] ld c, a ld a, [wd001] ld b, a @@ -2674,7 +2674,7 @@ Function1193fb: ld a, $8 ld [wcd3c], a call Function119ed8 - ld de, wMapPals + ld de, UnknBGPals ld bc, $1000 jp Function118b10 ; 119413 @@ -2682,7 +2682,7 @@ Function1193fb: Function119413: ; 119413 ld a, $6 call GetSRAMBank - ld a, [wMapPals] + ld a, [UnknBGPals] ld c, a ld a, [wd001] ld b, a @@ -3039,7 +3039,7 @@ Function119648: ; 119648 (46:5648) ld [wcd3c], a call Function119ed8 call Function118b24 - ld de, wMapPals + ld de, UnknBGPals ld bc, $1000 ld a, $2a jp Function119e2b @@ -3334,7 +3334,7 @@ Function1197dc: xor a ld [de], a call Function118b24 - ld de, wMapPals + ld de, UnknBGPals ld bc, $1000 ld a, $2a jp Function119e2b @@ -3533,14 +3533,14 @@ Function119973: ; 119973 xor a ld [wcf65], a ld [StringBuffer2 + 10], a - ld de, wMapPals + ld de, UnknBGPals ld a, $20 jp Function119e2b ; 119987 Function119987: ; 119987 ld hl, wd001 - ld a, [wMapPals] + ld a, [UnknBGPals] or [hl] jr z, .asm_1199a0 ld a, [wcf64] @@ -3702,13 +3702,13 @@ Function1199e2: ; 1199e2 ld [StringBuffer2 + 12], a Function119ac9: - ld a, [wMapPals] + ld a, [UnknBGPals] ld l, a ld a, [wd001] ld h, a dec hl ld a, l - ld [wMapPals], a + ld [UnknBGPals], a ld a, h ld [wd001], a ld a, [wcf64] diff --git a/misc/mobile_5b.asm b/misc/mobile_5b.asm index 70b1aab93..f4956bff9 100755 --- a/misc/mobile_5b.asm +++ b/misc/mobile_5b.asm @@ -179,7 +179,7 @@ Function16c108: ; 16c108 ; 16c130 Function16c130: ; 16c130 - ld de, wMapPals + ld de, UnknBGPals ld hl, Unknown_16c903 ld bc, 8 ld a, $5 @@ -274,7 +274,7 @@ Function16c943: ; 16c943 ld [rSVBK], a ld a, $ff ld bc, $0008 - ld hl, wMapPals + ld hl, UnknBGPals call ByteFill pop af ld [rSVBK], a @@ -291,7 +291,7 @@ Function16c943: ; 16c943 call Function16cab6 call Function16cabb ld d, a - ld hl, wMapPals + ld hl, UnknBGPals call Function16cab6 call Function16cabb cp d @@ -305,7 +305,7 @@ Function16c943: ; 16c943 jr nz, .asm_16c981 .asm_16c988 - ld hl, wMapPals + ld hl, UnknBGPals call Function16cab6 call Function16cadc @@ -314,7 +314,7 @@ Function16c943: ; 16c943 call Function16cab6 call Function16cad8 ld d, a - ld hl, wMapPals + ld hl, UnknBGPals call Function16cab6 call Function16cad8 cp d @@ -328,7 +328,7 @@ Function16c943: ; 16c943 jr nz, .asm_16c9a9 .asm_16c9b0 - ld hl, wMapPals + ld hl, UnknBGPals call Function16cab6 call Function16cb08 @@ -337,7 +337,7 @@ Function16c943: ; 16c943 call Function16cab6 call Function16cac4 ld d, a - ld hl, wMapPals + ld hl, UnknBGPals call Function16cab6 call Function16cac4 cp d @@ -351,7 +351,7 @@ Function16c943: ; 16c943 jr nz, .asm_16c9d1 .asm_16c9d8 - ld hl, wMapPals + ld hl, UnknBGPals call Function16cab6 call Function16cae8 @@ -402,7 +402,7 @@ Function16ca11: ; 16ca11 ld e, $0 ld a, $0 .asm_16ca28 - ld hl, wMapPals + ld hl, UnknBGPals call Function16cab6 call Function16cabb cp $1f @@ -416,12 +416,12 @@ Function16ca11: ; 16ca11 jr nz, .asm_16ca37 .asm_16ca3f - ld hl, wMapPals + ld hl, UnknBGPals call Function16cab6 call Function16cadc .asm_16ca48 - ld hl, wMapPals + ld hl, UnknBGPals call Function16cab6 call Function16cad8 cp $1f @@ -435,12 +435,12 @@ Function16ca11: ; 16ca11 jr nz, .asm_16ca57 .asm_16ca5f - ld hl, wMapPals + ld hl, UnknBGPals call Function16cab6 call Function16cb08 .asm_16ca68 - ld hl, wMapPals + ld hl, UnknBGPals call Function16cab6 call Function16cac4 cp $1f @@ -454,7 +454,7 @@ Function16ca11: ; 16ca11 jr nz, .asm_16ca77 .asm_16ca7f - ld hl, wMapPals + ld hl, UnknBGPals call Function16cab6 call Function16cae8 @@ -752,7 +752,7 @@ Function16cc25: ; 16cc25 ld de, wd008 call Function16cc41 ld hl, Unknown_16cfb1 - ld de, Unkn2Pals + ld de, UnknOBPals call Function16cc41 ld hl, Unknown_16cfb9 ld de, wd048 @@ -890,7 +890,7 @@ Function16d43b: ; 16d43b call ClearSprites callba Function16d421 callba Function16d42e - ld b, $8 + ld b, SCGB_08 call GetSGBLayout call SetPalettes call WaitBGMap diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm index 61a3b1962..0393d0e94 100755 --- a/misc/mobile_5c.asm +++ b/misc/mobile_5c.asm @@ -1631,7 +1631,7 @@ Function170cc6: ; 170cc6 ld hl, LZ_1715a4 ld de, wd000 call Decompress - ld de, wMapPals + ld de, UnknBGPals ld hl, VTiles0 lb bc, $6, $53 call Get2bpp @@ -2056,7 +2056,7 @@ Function171ccd: ; 171ccd (5c:5ccd) ld a, $5 ld [rSVBK], a ld hl, Palette_171d71 - ld de, wMapPals + ld de, UnknBGPals ld bc, $40 call CopyBytes ld hl, EngineBuffer5 @@ -2219,7 +2219,7 @@ Function172eb9: ld a, $5 ld [rSVBK], a ld hl, Palette_172edf - ld de, wMapPals + ld de, UnknBGPals ld bc, $40 call CopyBytes ld hl, Palette_172edf diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm index 52080187f..3349f31cb 100644 --- a/misc/mobile_5f.asm +++ b/misc/mobile_5f.asm @@ -48,11 +48,11 @@ Function17c000: ; 17c000 ld a, [rSVBK] push af - ld a, 5 ; BANK(wMapPals) + ld a, 5 ; BANK(UnknBGPals) ld [rSVBK], a ld hl, HaveWantPals - ld de, wMapPals + ld de, UnknBGPals ld bc, $80 call CopyBytes @@ -664,7 +664,7 @@ Function17d370: ; 17d370 ld a, $6 call GetSRAMBank ld hl, $a006 - ld de, wMapPals + ld de, UnknBGPals ld bc, $1000 call CopyBytes call CloseSRAM @@ -705,7 +705,7 @@ Function17d405: ld a, $5 ld [rSVBK], a ld hl, Palette_17eff6 - ld de, wMapPals + ld de, UnknBGPals ld bc, $0040 call CopyBytes call SetPalettes @@ -985,7 +985,7 @@ Function17d5f6: ; 17d5f6 ld a, $5 ld [rSVBK], a ld hl, $c608 - ld de, wMapPals + ld de, UnknBGPals ld bc, $0040 call CopyBytes ld a, $4 @@ -1239,7 +1239,7 @@ Function17d78d: ; 17d78d call GetSRAMBank ld hl, $a006 add hl, bc - ld de, wMapPals + ld de, UnknBGPals ld bc, $1000 call CopyBytes call CloseSRAM @@ -1363,7 +1363,7 @@ Function17d85d: ; 17d85d ld a, [hli] ld d, a push hl - ld hl, wMapPals + ld hl, UnknBGPals add hl, de ld de, wcc60 .asm_17d86c @@ -1432,7 +1432,7 @@ Function17d85d: ; 17d85d ld a, $3 ld [rSVBK], a ld hl, $c608 - ld de, wMapPals + ld de, UnknBGPals ld b, $0 call CopyBytes ld a, $4 @@ -1467,7 +1467,7 @@ Function17d902: ; 17d902 call Function17e41e call Function17e32b pop de - ld hl, wMapPals + ld hl, UnknBGPals add hl, de ld de, wcc60 .asm_17d918 @@ -1984,7 +1984,7 @@ Function17dca9: ; 17dca9 Function17dcaf: ld a, $5 ld [rSVBK], a - ld hl, wMapPals + ld hl, UnknBGPals ld de, $0008 ld c, $8 .asm_17dcbb @@ -3165,7 +3165,7 @@ Function17e409: ; 17e409 ; 17e40f Function17e40f: ; 17e40f - ld de, wMapPals + ld de, UnknBGPals add hl, de jr Function17e41e @@ -4419,7 +4419,7 @@ endr ld e, a ld a, [hli] ld d, a - ld hl, wMapPals + ld hl, UnknBGPals add hl, de ld e, l ld d, h diff --git a/misc/unused_title.asm b/misc/unused_title.asm index 6a3349634..a74a376a3 100644 --- a/misc/unused_title.asm +++ b/misc/unused_title.asm @@ -67,12 +67,12 @@ endr ld [rSVBK], a ld hl, UnusedTitleBG_Palettes - ld de, wMapPals + ld de, UnknBGPals ld bc, $40 call CopyBytes ld hl, UnusedTitleFG_Palettes - ld de, Unkn2Pals + ld de, UnknOBPals ld bc, $40 call CopyBytes diff --git a/predef/cgb.asm b/predef/cgb.asm index cab074d8d..300ca9f9a 100644 --- a/predef/cgb.asm +++ b/predef/cgb.asm @@ -8,12 +8,12 @@ CheckCGB: ; 8d55 Predef_LoadSGBLayoutCGB: ; 8d59 ld a, b - cp $ff - jr nz, .asm_8d61 + cp SCGB_RAM + jr nz, .not_ram ld a, [SGBPredef] -.asm_8d61 - cp -4 +.not_ram + cp SCGB_FC jp z, Function96f3 call Function9673 ld l, a @@ -69,21 +69,21 @@ Predef_LoadSGBLayoutCGB: ; 8d59 _CGB00: ; 8db8 ld hl, PalPacket_9c66 + 1 - ld de, wMapPals + ld de, UnknBGPals ld c, $4 call CopyPalettes ld hl, PalPacket_9c66 + 1 - ld de, wMapPals + $20 + ld de, UnknBGPals + $20 ld c, $4 call CopyPalettes ld hl, PalPacket_9c66 + 1 - ld de, Unkn2Pals + ld de, UnknOBPals ld c, $2 call CopyPalettes jr Function8e23 _CGB01: ; 8ddb - ld de, wMapPals + ld de, UnknBGPals call Function9729 push hl call Function9643 @@ -110,12 +110,12 @@ endr call Function9643 ld hl, Palettes_a8ca call Function9643 - ld de, Unkn2Pals + ld de, UnknOBPals pop hl call Function9643 pop hl call Function9643 - ld a, $1 + ld a, SCGB_01 ld [SGBPredef], a call Function96a4 @@ -150,7 +150,7 @@ Function8e23: ; 8e23 ld a, $7 call ByteFill ld hl, Palettes_979c - ld de, Unkn2Pals + $10 + ld de, UnknOBPals + $10 ld bc, $0030 ld a, $5 call FarCopyWRAM @@ -168,7 +168,7 @@ Function8e8b: ; 8e8b ld hl, Palette_b309 .asm_8e93 - ld de, wMapPals + 8 * 7 + ld de, UnknBGPals + 8 * 7 ld bc, $0008 ld a, $5 call FarCopyWRAM @@ -182,7 +182,7 @@ Function8e9f: ; 8e9f ld hl, Palette_b309 .asm_8ead - ld de, wMapPals + ld de, UnknBGPals ld bc, $0008 ld a, $5 call FarCopyWRAM @@ -200,7 +200,7 @@ _CGB02: ; 8eb9 ld hl, Palettes_b729 .asm_8ec8 - ld de, wMapPals + ld de, UnknBGPals ld bc, $0030 ld a, $5 call FarCopyWRAM @@ -211,7 +211,7 @@ _CGB02: ; 8eb9 ; 8edb _CGB03: ; 8edb - ld de, wMapPals + ld de, UnknBGPals ld a, [wcda1] ld l, a ld h, $0 @@ -228,7 +228,7 @@ endr ld hl, Palettes_a8ca call Function9643 ld hl, Palette8f52 - ld de, wMapPals + 8 * 3 + ld de, UnknBGPals + 8 * 3 ld bc, $0018 ld a, $5 call FarCopyWRAM @@ -286,7 +286,7 @@ Unknown_8f6a: ; 8f6a ; 8f70 _CGB04: ; 8f70 - ld de, wMapPals + ld de, UnknBGPals ld a, $1d call GetAthPalletFromPalettes9df6 call LoadHLPaletteIntoDE @@ -309,7 +309,7 @@ _CGB04: ; 8f70 call FillBoxCGB call Function971a ld hl, Palette8fc2 - ld de, Unkn2Pals + $38 + ld de, UnknOBPals + $38 ld bc, $0008 ld a, $5 call FarCopyWRAM @@ -334,7 +334,7 @@ Palette8fc2: ; 8fc2 ; 8fca _CGB17: ; 8fca - ld de, wMapPals + ld de, UnknBGPals ld a, $1d call GetAthPalletFromPalettes9df6 call LoadHLPaletteIntoDE @@ -395,7 +395,7 @@ Palette9036: ; 9036 ; 903e _CGB16: ; 903e - ld de, wMapPals + ld de, UnknBGPals ld a, $1d call GetAthPalletFromPalettes9df6 call LoadHLPaletteIntoDE @@ -417,7 +417,7 @@ _CGB16: ; 903e _CGB05: ; 906e ld hl, Palettes_b7a9 - ld de, wMapPals + ld de, UnknBGPals ld bc, $0080 ld a, $5 call FarCopyWRAM @@ -473,7 +473,7 @@ _CGB06: ; 90f8 ld hl, PalPacket_9ca6 + 1 call CopyFourPalettes call Function9699 - ld de, Unkn2Pals + ld de, UnknOBPals ld a, $3c call GetAthPalletFromPalettes9df6 call LoadHLPaletteIntoDE @@ -508,10 +508,10 @@ Jumptable_912d: ; 912d Function9133: ; 9133 ld hl, Palette_914e - ld de, wMapPals + ld de, UnknBGPals call LoadHLPaletteIntoDE ld hl, Palette_9156 - ld de, Unkn2Pals + ld de, UnknOBPals ld bc, $0010 ld a, $5 call FarCopyWRAM @@ -538,11 +538,11 @@ Palette_9156: ; 9156 ; 9166 Function9166: ; 9166 - ld de, wMapPals + ld de, UnknBGPals ld a, $38 call GetAthPalletFromPalettes9df6 call LoadHLPaletteIntoDE - ld de, Unkn2Pals + ld de, UnknOBPals ld a, $39 call GetAthPalletFromPalettes9df6 call LoadHLPaletteIntoDE @@ -553,7 +553,7 @@ Function9166: ; 9166 Function9180: ; 9180 ld hl, PalPacket_9c36 + 1 call CopyFourPalettes - ld de, Unkn2Pals + ld de, UnknOBPals ld a, $3a call GetAthPalletFromPalettes9df6 call LoadHLPaletteIntoDE @@ -563,7 +563,7 @@ Function9180: ; 9180 _CGB11: ; 9195 ld hl, Palettes_b789 - ld de, wMapPals + ld de, UnknBGPals ld bc, $0028 ld a, $5 call FarCopyWRAM @@ -575,7 +575,7 @@ _CGB11: ; 9195 _CGB08: ; 91ad ld hl, Palettes_b641 - ld de, wMapPals + ld de, UnknBGPals ld bc, $0080 ld a, $5 call FarCopyWRAM @@ -588,7 +588,7 @@ _CGB08: ; 91ad _CGB09: ; 91c8 call Functionb1de - ld a, $9 + ld a, SCGB_09 ld [SGBPredef], a ret ; 91d1 @@ -604,7 +604,7 @@ _CGB0a: ; 91d1 ; 91e4 _CGB0b: ; 91e4 - ld de, wMapPals + ld de, UnknBGPals ld a, c and a jr z, .asm_91f5 @@ -624,7 +624,7 @@ _CGB0b: ; 91e4 call Function974b call Function9643 ld hl, Palettes_979c - ld de, Unkn2Pals + $10 + ld de, UnknOBPals + $10 ld bc, $0030 ld a, $5 call FarCopyWRAM @@ -640,16 +640,16 @@ _CGB0b: ; 91e4 _CGB0c: ; 9228 ld hl, Palettes_b6f1 - ld de, wMapPals + ld de, UnknBGPals ld bc, $0028 ld a, $5 call FarCopyWRAM ld hl, Palettes_b719 - ld de, Unkn2Pals + ld de, UnknOBPals ld bc, $0010 ld a, $5 call FarCopyWRAM - ld a, $8 + ld a, SCGB_08 ld [SGBPredef], a call Function96a4 ld a, $1 @@ -668,7 +668,7 @@ _CGB0d: ; 9251 _CGB18: ; 925e ld hl, PalPacket_9bc6 + 1 call CopyFourPalettes - ld de, Unkn2Pals + ld de, UnknOBPals ld a, $4c call GetAthPalletFromPalettes9df6 call LoadHLPaletteIntoDE @@ -676,7 +676,7 @@ _CGB18: ; 925e push af ld a, $5 ld [rSVBK], a - ld hl, Unkn2Pals + ld hl, UnknOBPals ld a, $1f ld [hli], a ld a, $0 @@ -689,7 +689,7 @@ _CGB18: ; 925e ; 9289 _CGB15: ; 9289 - ld de, wMapPals + ld de, UnknBGPals xor a call Function976b call Function9643 @@ -794,7 +794,7 @@ _CGB15: ; 9289 ; 9373 _CGB0e: ; 9373 - ld de, wMapPals + ld de, UnknBGPals ld a, $10 call GetAthPalletFromPalettes9df6 call LoadHLPaletteIntoDE @@ -831,7 +831,7 @@ _CGB0f: ; 93a6 ; 93ba _CGB10: ; 93ba - ld de, wMapPals + ld de, UnknBGPals ld a, $1d call GetAthPalletFromPalettes9df6 call LoadHLPaletteIntoDE @@ -859,7 +859,7 @@ _CGB14: ; 93d3 ld hl, Palettes_9439 .asm_93e9 - ld de, wMapPals + ld de, UnknBGPals ld bc, $0040 ld a, $5 call FarCopyWRAM @@ -1000,15 +1000,15 @@ _CGB13: ; 94d0 ; 94fa _CGB19: ; 94fa - ld de, wMapPals + ld de, UnknBGPals ld a, $4e call GetAthPalletFromPalettes9df6 call LoadHLPaletteIntoDE ld hl, Palette_9521 - ld de, Unkn2Pals + ld de, UnknOBPals call LoadHLPaletteIntoDE ld hl, Palette_9521 - ld de, Unkn2Pals + 8 + ld de, UnknOBPals + 8 call LoadHLPaletteIntoDE call Function9699 call Function96b3 @@ -1024,7 +1024,7 @@ Palette_9521: ; 9521 ; 9529 _CGB1a: ; 9529 - ld de, wMapPals + ld de, UnknBGPals ld a, [CurPartySpecies] ld bc, TempMonDVs call Function974b @@ -1036,7 +1036,7 @@ _CGB1a: ; 9529 ; 9542 _CGB1e: ; 9542 - ld de, wMapPals + ld de, UnknBGPals ld a, [CurPartySpecies] call Function9775 call Function9643 @@ -1049,11 +1049,11 @@ _CGB1b: ; 9555 ld hl, PalPacket_9cc6 + 1 call CopyFourPalettes ld hl, Palettes_b681 - ld de, Unkn2Pals + ld de, UnknOBPals ld bc, $0008 ld a, $5 call FarCopyWRAM - ld de, Unkn2Pals + $38 + ld de, UnknOBPals + $38 ld a, $1c call GetAthPalletFromPalettes9df6 call LoadHLPaletteIntoDE @@ -1062,7 +1062,7 @@ _CGB1b: ; 9555 ; 9578 _CGB1c: ; 9578 - ld de, wMapPals + ld de, UnknBGPals ld a, [CurPartySpecies] ld bc, TempMonDVs call Function9764 @@ -1075,7 +1075,7 @@ _CGB1c: ; 9578 _CGB1d: ; 9591 ld hl, Palette95e0 - ld de, wMapPals + ld de, UnknBGPals ld bc, $0010 ld a, $5 call FarCopyWRAM diff --git a/predef/sgb.asm b/predef/sgb.asm index 94d553343..c10e84d1e 100644 --- a/predef/sgb.asm +++ b/predef/sgb.asm @@ -4,12 +4,12 @@ Predef_LoadSGBLayout: ; 864c jp nz, Predef_LoadSGBLayoutCGB ld a, b - cp $ff - jr nz, .asm_865a + cp SCGB_RAM + jr nz, .not_ram ld a, [SGBPredef] -.asm_865a - cp $fc +.not_ram + cp SCGB_FC jp z, Function8ade ld l, a ld h, 0 @@ -136,7 +136,7 @@ endr ld hl, wcda9 ld de, wcda9 + $10 - ld a, $1 + ld a, SCGB_01 ld [SGBPredef], a ret ; 873c @@ -341,7 +341,7 @@ endr .SGB0c: ; 8884 ld hl, PalPacket_9b96 ld de, BlkPacket_9b56 - ld a, $8 + ld a, SCGB_08 ld [SGBPredef], a ret ; 8890 @@ -377,7 +377,7 @@ endr ld hl, wcda9 + 1 ld [hld], a ld de, BlkPacket_9a86 - ld a, $9 + ld a, SCGB_09 ld [SGBPredef], a ret ; 88cd diff --git a/text/battle_tower.asm b/text/battle_tower.asm index af90b2666..8ddd69b09 100644 --- a/text/battle_tower.asm +++ b/text/battle_tower.asm @@ -186,20 +186,20 @@ UnknownText_0x1ec3e5: ; 0x1ec3e5 ; 0x1ec402 UnknownText_0x1ec402: ; 0x1ec402 - text $56, $56, $56 - line $56, $56, "Battle?" + text "<......><......><......>" + line "<......><......>Battle?" done ; 0x1ec411 UnknownText_0x1ec411: ; 0x1ec411 - text $56, $56, $56 - line $56, $56, "I won?" + text "<......><......><......>" + line "<......><......>I won?" done ; 0x1ec41f UnknownText_0x1ec41f: ; 0x1ec41f - text $56, $56, $56 - line $56, $56, "I lost?" + text "<......><......><......>" + line "<......><......>I lost?" done ; 0x1ec42e diff --git a/tilesets/animations.asm b/tilesets/animations.asm index feafbf6d8..19f457c09 100644 --- a/tilesets/animations.asm +++ b/tilesets/animations.asm @@ -958,7 +958,7 @@ TileAnimationPalette: ; fc6d7 jr z, .color2 .color1 - ld hl, wMapPals + $1a ; pal 3 color 1 + ld hl, UnknBGPals + $1a ; pal 3 color 1 ld a, [hli] ld [rBGPD], a ld a, [hli] @@ -966,7 +966,7 @@ TileAnimationPalette: ; fc6d7 jr .end .color0 - ld hl, wMapPals + $18 ; pal 3 color 0 + ld hl, UnknBGPals + $18 ; pal 3 color 0 ld a, [hli] ld [rBGPD], a ld a, [hli] @@ -974,7 +974,7 @@ TileAnimationPalette: ; fc6d7 jr .end .color2 - ld hl, wMapPals + $1c ; pal 3 color 2 + ld hl, UnknBGPals + $1c ; pal 3 color 2 ld a, [hli] ld [rBGPD], a ld a, [hli] @@ -1011,11 +1011,11 @@ FlickeringCaveEntrancePalette: ; fc71e ld a, [hVBlankCounter] and %00000010 jr nz, .bit1set - ld hl, wMapPals + $20 ; pal 4 color 0 + ld hl, UnknBGPals + $20 ; pal 4 color 0 jr .okay .bit1set - ld hl, wMapPals + $22 ; pal 4 color 2 + ld hl, UnknBGPals + $22 ; pal 4 color 2 .okay ld a, [hli] diff --git a/wram.asm b/wram.asm index efcd6999f..9455cd523 100644 --- a/wram.asm +++ b/wram.asm @@ -2896,7 +2896,7 @@ w2_d188:: ds 1 wPokeAnimStructEnd:: -SECTION "WRAM 3", WRAMX, BANK [3] +SECTION "Battle Tower", WRAMX, BANK [3] w3_d000:: ; d000 ds $80 @@ -2912,9 +2912,9 @@ BT_OTTrainer:: battle_tower_struct BT_OT ; d200 BT_TrainerTextIndex:: ds $be -w3_d2be:: - ds $542 +w3_d2be:: ds 1 +SECTION "WRAM 3 part 2", WRAMX [$d800], BANK [3] wBTChoiceOfLvlGroup:: w3_d800:: ds $400 w3_dc00:: ds $168 @@ -2924,10 +2924,10 @@ w3_dd68:: SECTION "GBC Video", WRAMX, BANK [5] ; 8 4-color palettes -wMapPals:: ds 8 * 8 ; d000 -Unkn2Pals:: ds 8 * 8 ; d040 -BGPals:: ds 8 * 8 ; d080 -OBPals:: ds 8 * 8 ; d0c0 +UnknBGPals:: ds 8 palettes ; d000 +UnknOBPals:: ds 8 palettes ; d040 +BGPals:: ds 8 palettes ; d080 +OBPals:: ds 8 palettes ; d0c0 LYOverrides:: ; d100 ds SCREEN_HEIGHT_PX From 23c70110d03260eac4154552d1666a3d0b4ddac7 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 20 Nov 2015 15:18:35 -0500 Subject: [PATCH 30/40] Replace 6 --- maps/CherrygroveCity.asm | 8 ++++---- maps/GoldenrodPokeComCenter2FMobile.asm | 4 ++-- maps/MountMoon.asm | 8 ++++---- text/phone/buena.asm | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/maps/CherrygroveCity.asm b/maps/CherrygroveCity.asm index 6da66fd62..8ae9a329c 100644 --- a/maps/CherrygroveCity.asm +++ b/maps/CherrygroveCity.asm @@ -431,7 +431,7 @@ GuideGentNoText: done UnknownText_0x19c4e2: - text $56, " ", $56, " ", $56 + text "<......> <......> <......>" para "You got a #MON" line "at the LAB." @@ -439,7 +439,7 @@ UnknownText_0x19c4e2: para "What a waste." line "A wimp like you." - para $56, " ", $56, " ", $56 + para "<......> <......> <......>" para "Don't you get what" line "I'm saying?" @@ -457,7 +457,7 @@ UnknownText_0x19c57f: done UnknownText_0x19c59e: - text $56, " ", $56, " ", $56 + text "<......> <......> <......>" para "My name's ???." @@ -473,7 +473,7 @@ UnknownText_0x19c5e6: done UnknownText_0x19c608: - text $56, " ", $56, " ", $56 + text "<......> <......> <......>" para "My name's ???." diff --git a/maps/GoldenrodPokeComCenter2FMobile.asm b/maps/GoldenrodPokeComCenter2FMobile.asm index 6a0f26f55..f43e02ee9 100644 --- a/maps/GoldenrodPokeComCenter2FMobile.asm +++ b/maps/GoldenrodPokeComCenter2FMobile.asm @@ -240,7 +240,7 @@ UnknownText_0x62b26: line "OFFICE received an" cont "e-mail. It says…" - para $56, " ", $56, " ", $56 + para "<......> <......> <......>" para "To the #COM" line "CENTER staff…" @@ -260,7 +260,7 @@ UnknownText_0x62b26: para "the world can link" line "without barriers!" - para $56, " ", $56, " ", $56 + para "<......> <......> <......>" done GoldenrodPokeComCenter2FMobile_MapEventHeader: diff --git a/maps/MountMoon.asm b/maps/MountMoon.asm index 066fabf8a..7ef6e7022 100644 --- a/maps/MountMoon.asm +++ b/maps/MountMoon.asm @@ -87,7 +87,7 @@ MovementData_0x740fd: step_end UnknownText_0x74105: - text $56, " ", $56, " ", $56 + text "<......> <......> <......>" para "It's been a while," line "." @@ -107,7 +107,7 @@ UnknownText_0x74105: done UnknownText_0x7419d: - text $56, " ", $56, " ", $56 + text "<......> <......> <......>" para "I thought I raised" line "my #MON to be" @@ -120,7 +120,7 @@ UnknownText_0x7419d: done UnknownText_0x741fa: - text $56, " ", $56, " ", $56 + text "<......> <......> <......>" para "…You won, fair" line "and square." @@ -146,7 +146,7 @@ UnknownText_0x741fa: done UnknownText_0x742e0: - text $56, " ", $56, " ", $56 + text "<......> <......> <......>" para "I've repaid my" line "debt to you." diff --git a/text/phone/buena.asm b/text/phone/buena.asm index d3390a74c..226839ee5 100644 --- a/text/phone/buena.asm +++ b/text/phone/buena.asm @@ -351,9 +351,9 @@ UnknownText_0xa1717: ; 0xa1717 para "that it gradually" line "makes me drowsy…" - para $56, " ", $56, " ", $56 + para "<......> <......> <......>" - para $56, " ", $56, " ", $56, "Zzz" + para "<......> <......> <......>Zzz" para "Oops, I drifted" line "off just thinking" From 24b7b2c1cf4a83967c441f1d23c28760e0dadcc1 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 22 Nov 2015 12:01:58 -0500 Subject: [PATCH 31/40] Foreign language font handling in mail --- engine/events_2.asm | 4 +- engine/link.asm | 67 +++++---- .../1de5e6.2bpp => font/english.1bpp} | Bin .../1de9e6.2bpp => font/french_german.1bpp} | Bin .../1dede6.2bpp => font/spanish_italian.1bpp} | Bin gfx/mail.asm | 10 +- main.asm | 137 +++++++++++------- text/common_4.asm | 10 +- wram.asm | 3 +- 9 files changed, 139 insertions(+), 92 deletions(-) rename gfx/{unknown/1de5e6.2bpp => font/english.1bpp} (100%) rename gfx/{unknown/1de9e6.2bpp => font/french_german.1bpp} (100%) rename gfx/{unknown/1dede6.2bpp => font/spanish_italian.1bpp} (100%) diff --git a/engine/events_2.asm b/engine/events_2.asm index 972379e6d..c9b673e81 100644 --- a/engine/events_2.asm +++ b/engine/events_2.asm @@ -275,7 +275,7 @@ DoBikeStep:: ; 97db3 ; if we've already gotten the call, we don't have to ; be here. ld hl, StatusFlags2 - bit 4, [hl] + bit 4, [hl] ; bike shop call jr z, .NoCall ; If we're not on the bike, we don't have to be here. @@ -326,7 +326,7 @@ DoBikeStep:: ; 97db3 xor a ld [wSpecialPhoneCallID + 1], a ld hl, StatusFlags2 - res 4, [hl] + res 4, [hl] ; bike shop call scf ret diff --git a/engine/link.asm b/engine/link.asm index e10a3d0f6..77b63183e 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -363,23 +363,23 @@ Function28177: ; 28177 .asm_282cc push bc push de - callba Function1de5c8 + callba IsMailEuropean ld a, c or a - jr z, .asm_282ee + jr z, .next sub $3 - jr nc, .asm_282e4 - callba Function1df203 - jr .asm_282ee + jr nc, .skip + callba DeutenEnglischenPost + jr .next -.asm_282e4 +.skip cp $2 - jr nc, .asm_282ee - callba Function1df220 + jr nc, .next + callba HandleSpanishItalianMail -.asm_282ee +.next pop de - ld hl, $2f + ld hl, MAIL_STRUCT_LENGTH add hl, de ld d, h ld e, l @@ -802,62 +802,77 @@ Function284f6: ; 284f6 ; 28595 Function28595: ; 28595 - ld de, OverworldMap - ld a, $fd - ld b, $6 + ld de, wc800 + ld a, EGG + ld b, PARTY_LENGTH .loop1 ld [de], a inc de dec b jr nz, .loop1 + ; de = $c806 ld hl, PlayerName ld bc, NAME_LENGTH call CopyBytes + ; de = $c811 ld hl, PartyCount - ld bc, 8 + ld bc, 1 + PARTY_LENGTH + 1 call CopyBytes + ; de = $c819 ld hl, PlayerID ld bc, 2 call CopyBytes + ; de = $c81b ld hl, PartyMon1Species - ld bc, $120 + ld bc, PARTY_LENGTH * PARTYMON_STRUCT_LENGTH call CopyBytes + ; de = $c93b ld hl, PartyMonOT - ld bc, $42 + ld bc, PARTY_LENGTH * NAME_LENGTH call CopyBytes + ; de = $c97d ld hl, PartyMonNicknames - ld bc, $42 + ld bc, PARTY_LENGTH * PKMN_NAME_LENGTH call CopyBytes + ; de = $c9bf + +; Okay, we did all that. Now, are we in the trade center? ld a, [wLinkMode] cp LINK_TRADECENTER ret nz + +; Fill 32 bytes at wc9f4 with $05 ld de, wc9f4 ld a, $20 call Function28682 + +; Copy all the mail messages to $ca14 ld a, BANK(sPartyMail) call GetSRAMBank ld hl, sPartyMail ld b, PARTY_LENGTH .loop2 push bc - ld bc, $21 + ld bc, MAIL_MSG_LENGTH + 1 call CopyBytes - ld bc, $e + ld bc, MAIL_STRUCT_LENGTH - MAIL_MSG_LENGTH - 1 add hl, bc pop bc dec b jr nz, .loop2 +; Copy the mail metadata to $cada ld hl, sPartyMail ld b, PARTY_LENGTH .loop3 push bc - ld bc, $21 + ld bc, MAIL_MSG_LENGTH + 1 add hl, bc - ld bc, $e + ld bc, MAIL_STRUCT_LENGTH - MAIL_MSG_LENGTH - 1 call CopyBytes pop bc dec b jr nz, .loop3 + ld b, PARTY_LENGTH ld de, sPartyMail ld hl, wc9f9 @@ -866,20 +881,20 @@ Function28595: ; 28595 push hl push de push hl - callba Function1de5c8 + callba IsMailEuropean pop de ld a, c or a jr z, .next sub $3 - jr nc, .skip - callba Function1df1e6 + jr nc, .italian_spanish + callba HandleFrenchGermanMail jr .next -.skip +.italian_spanish cp $2 jr nc, .next - callba Function1df220 + callba HandleSpanishItalianMail .next pop de diff --git a/gfx/unknown/1de5e6.2bpp b/gfx/font/english.1bpp similarity index 100% rename from gfx/unknown/1de5e6.2bpp rename to gfx/font/english.1bpp diff --git a/gfx/unknown/1de9e6.2bpp b/gfx/font/french_german.1bpp similarity index 100% rename from gfx/unknown/1de9e6.2bpp rename to gfx/font/french_german.1bpp diff --git a/gfx/unknown/1dede6.2bpp b/gfx/font/spanish_italian.1bpp similarity index 100% rename from gfx/unknown/1dede6.2bpp rename to gfx/font/spanish_italian.1bpp diff --git a/gfx/mail.asm b/gfx/mail.asm index 1276f3fa1..50124d6f9 100755 --- a/gfx/mail.asm +++ b/gfx/mail.asm @@ -16,20 +16,20 @@ ReadAnyMail: ; b9237 push de ld a, BANK(sPartyMail) call GetSRAMBank - callba Function1de5c8 + callba IsMailEuropean call CloseSRAM ld a, c - ld de, GFX_1de5e6 + ld de, StandardEnglishFont or a jr z, .asm_b9268 - ld de, GFX_1de9e6 + ld de, FrenchGermanFont sub $3 jr c, .asm_b9268 - ld de, GFX_1dede6 + ld de, SpanishItalianFont .asm_b9268 ld hl, VTiles1 - lb bc, BANK(GFX_1de5e6), $80 + lb bc, BANK(StandardEnglishFont), $80 call Get1bpp pop de call Functionb92b8 diff --git a/main.asm b/main.asm index 31c3053ea..7bdf0cd04 100644 --- a/main.asm +++ b/main.asm @@ -175,7 +175,7 @@ LearnMove: ; 6508 ld hl, PartyMonNicknames call GetNick ld hl, StringBuffer1 - ld de, wd050 + ld de, wd050_MonNick ld bc, PKMN_NAME_LENGTH call CopyBytes @@ -187,6 +187,10 @@ LearnMove: ; 6508 ld d, h ld e, l ld b, NUM_MOVES +; Get the first empty move slot. This routine also serves to +; determine whether the Pokemon learning the moves already has +; all four slots occupied, in which case one would need to be +; deleted. .next ld a, [hl] and a @@ -194,7 +198,8 @@ LearnMove: ; 6508 inc hl dec b jr nz, .next - +; If we're here, we enter the routine for forgetting a move +; to make room for the new move we're trying to learn. push de call ForgetMove pop de @@ -217,7 +222,7 @@ LearnMove: ; 6508 .not_disabled call GetMoveName - ld hl, UnknownText_0x6684 + ld hl, UnknownText_0x6684 ; 1, 2 and… call PrintText pop de pop hl @@ -268,18 +273,18 @@ LearnMove: ; 6508 jp .learned .cancel - ld hl, UnknownText_0x6675 + ld hl, UnknownText_0x6675 ; Stop learning ? call PrintText call YesNoBox jp c, .loop - ld hl, UnknownText_0x667a + ld hl, UnknownText_0x667a ; did not learn . call PrintText ld b, 0 ret .learned - ld hl, UnknownText_0x666b + ld hl, UnknownText_0x666b ; learned ! call PrintText ld b, 1 ret @@ -311,6 +316,7 @@ ForgetMove: ; 65d3 ld a, SCREEN_WIDTH * 2 ld [Buffer1], a predef ListMoves + ; wMenuData3 ld a, $4 ld [wcfa1], a ld a, $6 @@ -368,32 +374,38 @@ ForgetMove: ; 65d3 ; 666b UnknownText_0x666b: ; 666b +; learned ! text_jump UnknownText_0x1c5660 db "@" ; 6670 UnknownText_0x6670: ; 6670 +; Which move should be forgotten? text_jump UnknownText_0x1c5678 db "@" ; 6675 UnknownText_0x6675: ; 6675 +; Stop learning ? text_jump UnknownText_0x1c5699 db "@" ; 667a UnknownText_0x667a: ; 667a +; did not learn . text_jump UnknownText_0x1c56af db "@" ; 667f UnknownText_0x667f: ; 667f +; is trying to learn . But can't learn more than +; four moves. Delete an older move to make room for ? text_jump UnknownText_0x1c56c9 db "@" ; 6684 UnknownText_0x6684: ; 6684 - text_jump UnknownText_0x1c5740 + text_jump UnknownText_0x1c5740 ; 1, 2 and… start_asm push de ld de, SFX_SWITCH_POKEMON @@ -404,11 +416,13 @@ UnknownText_0x6684: ; 6684 ; 6695 UnknownText_0x6695: ; 6695 +; Poof! forgot . And… text_jump UnknownText_0x1c574e db "@" ; 669a UnknownText_0x669a: ; 669a +; HM moves can't be forgotten now. text_jump UnknownText_0x1c5772 db "@" ; 669f @@ -27142,10 +27156,14 @@ PokegearGFX: ; 1de2e4 INCBIN "gfx/misc/pokegear.2bpp.lz" ; 1de5c8 -Function1de5c8: ; 1de5c8 -; reads mail message at de +IsMailEuropean: ; 1de5c8 +; return 1 if French +; return 2 if German +; return 3 if Italian +; return 4 if Spanish +; return 0 if none of the above ld c, $0 - ld hl, $29 + ld hl, sPartyMon1MailAuthorNationality - sPartyMon1Mail add hl, de ld a, [hli] cp "E" @@ -27168,92 +27186,107 @@ Function1de5c8: ; 1de5c8 ; 1de5e6 ; The regular font. -GFX_1de5e6: ; 1de5e6 -INCBIN "gfx/unknown/1de5e6.2bpp" +StandardEnglishFont: ; 1de5e6 +INCBIN "gfx/font/english.1bpp" ; An extended font. -GFX_1de9e6: ; 1de9e6 -INCBIN "gfx/unknown/1de9e6.2bpp" +FrenchGermanFont: ; 1de9e6 +INCBIN "gfx/font/french_german.1bpp" ; An even more extended font. -GFX_1dede6: ; 1dede6 -INCBIN "gfx/unknown/1dede6.2bpp" +SpanishItalianFont: ; 1dede6 +INCBIN "gfx/font/spanish_italian.1bpp" -Function1df1e6: ; 1df1e6 - ld b, $21 +HandleFrenchGermanMail: ; 1df1e6 +; called if mail is french or german +; fix 's 't 'v + ld b, sPartyMon1MailAuthor - sPartyMon1Mail ld h, d ld l, e -.asm_1df1ea +.loop ld a, [hl] - cp $dc - jr nz, .asm_1df1f3 - ld a, $d4 - jr .asm_1df1fd + cp $dc ; 's in french/german font + jr nz, .check_intermediate_chars + ld a, "'s" + jr .replace -.asm_1df1f3 - sub $d4 - jr c, .asm_1df1fe - cp $3 - jr nc, .asm_1df1fe +.check_intermediate_chars + sub "'s" + jr c, .dont_replace + cp "'v" - "'s" + 1 + jr nc, .dont_replace add $cd -.asm_1df1fd +.replace ld [hl], a -.asm_1df1fe +.dont_replace inc hl dec b - jr nz, .asm_1df1ea + jr nz, .loop ret ; 1df203 -Function1df203: ; 1df203 - ld b, $21 +LireLeCourrierAnglais: +DeutenEnglischenPost: ; 1df203 +; Cette fonction convertit certains des caractères anglais pour +; leur équivalent dans le jeu de caractères français. +; Diese Funktion wandelt bestimmte englische Zeichen, um ihre +; Entsprechung in der Deutschen-Zeichensatz. + ld b, sPartyMon1MailAuthor - sPartyMon1Mail ld h, d ld l, e -.asm_1df207 +.loop ld a, [hl] - cp $d4 - jr nz, .asm_1df210 + cp "'s" + jr nz, .check_intermediate_chars ld a, $dc - jr .asm_1df21a + jr .replace -.asm_1df210 +.check_intermediate_chars sub $cd - jr c, .asm_1df21b - cp $3 - jr nc, .asm_1df21b - add $d4 + jr c, .dont_replace + cp "'v" - "'s" + 1 + jr nc, .dont_replace + add "'s" -.asm_1df21a +.replace ld [hl], a -.asm_1df21b +.dont_replace inc hl dec b - jr nz, .asm_1df207 + jr nz, .loop ret ; 1df220 -Function1df220: ; 1df220 - ld b, $21 +HandleSpanishItalianMail: ; 1df220 +LeerCorreosIngleses: +LeggiPostaInglese: +; This function converts certain characters between +; the English and Spanish/Italian character sets. +; Esta función convierte ciertos caracteres entre +; el juego de caracteres Inglés y Español. +; Questa funzione converte alcuni caratteri tra +; l'inglese e il set di caratteri italiani. + ld b, sPartyMon1MailAuthor - sPartyMon1Mail ld h, d ld l, e -.asm_1df224 +.loop ld a, [hl] and $f0 cp $d0 - jr nz, .asm_1df233 + jr nz, .dont_replace ld a, [hl] add $8 and $f or $d0 ld [hl], a -.asm_1df233 +.dont_replace inc hl dec b - jr nz, .asm_1df224 + jr nz, .loop ret ; 1df238 @@ -27342,5 +27375,3 @@ INCBIN "misc/stadium2_2.bin" ELSE INCBIN "misc/stadium2_1.bin" ENDC - - diff --git a/text/common_4.asm b/text/common_4.asm index 33cbe6d59..528b3f1d4 100644 --- a/text/common_4.asm +++ b/text/common_4.asm @@ -1045,7 +1045,7 @@ UnknownText_0x1c564a: ; 0x1c564a ; 0x1c5660 UnknownText_0x1c5660: ; 0x1c5660 - text_from_ram wd050 + text_from_ram wd050_MonNick text " learned" line "@" text_from_ram StringBuffer2 @@ -1074,7 +1074,7 @@ UnknownText_0x1c5699: ; 0x1c5699 ; 0x1c56af UnknownText_0x1c56af: ; 0x1c56af - text_from_ram wd050 + text_from_ram wd050_MonNick text "" line "did not learn" cont "@" @@ -1084,7 +1084,7 @@ UnknownText_0x1c56af: ; 0x1c56af ; 0x1c56c9 UnknownText_0x1c56c9: ; 0x1c56c9 - text_from_ram wd050 + text_from_ram wd050_MonNick text " is" line "trying to learn" cont "@" @@ -1092,7 +1092,7 @@ UnknownText_0x1c56c9: ; 0x1c56c9 text "." para "But @" - text_from_ram wd050 + text_from_ram wd050_MonNick text "" line "can't learn more" cont "than four moves." @@ -1120,7 +1120,7 @@ UnknownText_0x1c574e: ; 0x1c574e interpret_data text "" para "@" - text_from_ram wd050 + text_from_ram wd050_MonNick text " forgot" line "@" text_from_ram StringBuffer1 diff --git a/wram.asm b/wram.asm index 9455cd523..c654de3c4 100644 --- a/wram.asm +++ b/wram.asm @@ -148,7 +148,8 @@ endm mailmsg: MACRO \1Message:: ds MAIL_MSG_LENGTH \1MessageEnd:: ds 1 -\1Author:: ds NAME_LENGTH +- 1 +\1Author:: ds PLAYER_NAME_LENGTH +\1AuthorNationality:: ds 2 \1AuthorID:: ds 2 \1Species:: ds 1 \1MailType:: ds 1 From 8740fc6e87f3d0c1099e5755488e61ff3c75ea8c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 22 Nov 2015 13:50:19 -0500 Subject: [PATCH 32/40] Annotate gfx/mail.asm --- gfx/mail.asm | 876 +++++++++++++++--------------- gfx/{unknown => mail}/0b9926.1bpp | Bin gfx/{unknown => mail}/0b992e.1bpp | 0 gfx/{unknown => mail}/0b9936.1bpp | 0 gfx/{unknown => mail}/0b993e.1bpp | Bin gfx/{unknown => mail}/0b9946.1bpp | 0 gfx/{unknown => mail}/0b994e.1bpp | Bin gfx/{unknown => mail}/0b995e.1bpp | Bin gfx/{unknown => mail}/0b9966.1bpp | Bin gfx/{unknown => mail}/0b996e.1bpp | Bin gfx/{unknown => mail}/0b9976.1bpp | Bin gfx/{unknown => mail}/0b997e.1bpp | Bin gfx/{unknown => mail}/0b998e.1bpp | 0 gfx/{unknown => mail}/0b9996.1bpp | Bin gfx/{unknown => mail}/0b99c6.1bpp | Bin gfx/{unknown => mail}/0b99f6.1bpp | Bin gfx/{unknown => mail}/0b9a26.1bpp | Bin gfx/{unknown => mail}/0b9a56.1bpp | Bin gfx/{unknown => mail}/0b9a86.1bpp | Bin gfx/{unknown => mail}/0b9ab6.1bpp | Bin gfx/{unknown => mail}/0b9b46.1bpp | Bin gfx/{unknown => mail}/0b9bce.1bpp | Bin gfx/{unknown => mail}/0b9bee.1bpp | 0 gfx/{unknown => mail}/0b9bfe.1bpp | Bin gfx/{unknown => mail}/0b9c1e.1bpp | Bin gfx/{unknown => mail}/0b9c3e.1bpp | Bin gfx/{unknown => mail}/0b9c5e.1bpp | Bin gfx/{unknown => mail}/0b9c7e.1bpp | Bin gfx/{unknown => mail}/0b9c96.1bpp | Bin gfx/{unknown => mail}/0b9c9e.1bpp | Bin gfx/{unknown => mail}/0b9cbe.1bpp | Bin gfx/{unknown => mail}/0b9cde.1bpp | Bin gfx/{unknown => mail}/0b9cfe.1bpp | Bin gfx/{unknown => mail}/0b9d16.1bpp | Bin gfx/{unknown => mail}/0b9d26.1bpp | Bin gfx/{unknown => mail}/0b9d3e.1bpp | Bin gfx/{unknown => mail}/0b9d46.1bpp | Bin gfx/{unknown => mail}/0b9d76.1bpp | Bin gfx/{unknown => mail}/0b9d86.1bpp | Bin gfx/{unknown => mail}/0b9db6.1bpp | Bin gfx/{unknown => mail}/0b9dc6.1bpp | 0 gfx/{unknown => mail}/0b9dce.1bpp | Bin gfx/{unknown => mail}/0b9df6.1bpp | Bin gfx/{unknown => mail}/0b9e06.1bpp | Bin gfx/{unknown => mail}/0b9e26.1bpp | 0 gfx/{unknown => mail}/0b9e4e.1bpp | Bin 46 files changed, 444 insertions(+), 432 deletions(-) rename gfx/{unknown => mail}/0b9926.1bpp (100%) rename gfx/{unknown => mail}/0b992e.1bpp (100%) rename gfx/{unknown => mail}/0b9936.1bpp (100%) rename gfx/{unknown => mail}/0b993e.1bpp (100%) rename gfx/{unknown => mail}/0b9946.1bpp (100%) rename gfx/{unknown => mail}/0b994e.1bpp (100%) rename gfx/{unknown => mail}/0b995e.1bpp (100%) rename gfx/{unknown => mail}/0b9966.1bpp (100%) rename gfx/{unknown => mail}/0b996e.1bpp (100%) rename gfx/{unknown => mail}/0b9976.1bpp (100%) rename gfx/{unknown => mail}/0b997e.1bpp (100%) rename gfx/{unknown => mail}/0b998e.1bpp (100%) rename gfx/{unknown => mail}/0b9996.1bpp (100%) rename gfx/{unknown => mail}/0b99c6.1bpp (100%) rename gfx/{unknown => mail}/0b99f6.1bpp (100%) rename gfx/{unknown => mail}/0b9a26.1bpp (100%) rename gfx/{unknown => mail}/0b9a56.1bpp (100%) rename gfx/{unknown => mail}/0b9a86.1bpp (100%) rename gfx/{unknown => mail}/0b9ab6.1bpp (100%) rename gfx/{unknown => mail}/0b9b46.1bpp (100%) rename gfx/{unknown => mail}/0b9bce.1bpp (100%) rename gfx/{unknown => mail}/0b9bee.1bpp (100%) rename gfx/{unknown => mail}/0b9bfe.1bpp (100%) rename gfx/{unknown => mail}/0b9c1e.1bpp (100%) rename gfx/{unknown => mail}/0b9c3e.1bpp (100%) rename gfx/{unknown => mail}/0b9c5e.1bpp (100%) rename gfx/{unknown => mail}/0b9c7e.1bpp (100%) rename gfx/{unknown => mail}/0b9c96.1bpp (100%) rename gfx/{unknown => mail}/0b9c9e.1bpp (100%) rename gfx/{unknown => mail}/0b9cbe.1bpp (100%) rename gfx/{unknown => mail}/0b9cde.1bpp (100%) rename gfx/{unknown => mail}/0b9cfe.1bpp (100%) rename gfx/{unknown => mail}/0b9d16.1bpp (100%) rename gfx/{unknown => mail}/0b9d26.1bpp (100%) rename gfx/{unknown => mail}/0b9d3e.1bpp (100%) rename gfx/{unknown => mail}/0b9d46.1bpp (100%) rename gfx/{unknown => mail}/0b9d76.1bpp (100%) rename gfx/{unknown => mail}/0b9d86.1bpp (100%) rename gfx/{unknown => mail}/0b9db6.1bpp (100%) rename gfx/{unknown => mail}/0b9dc6.1bpp (100%) rename gfx/{unknown => mail}/0b9dce.1bpp (100%) rename gfx/{unknown => mail}/0b9df6.1bpp (100%) rename gfx/{unknown => mail}/0b9e06.1bpp (100%) rename gfx/{unknown => mail}/0b9e26.1bpp (100%) rename gfx/{unknown => mail}/0b9e4e.1bpp (100%) diff --git a/gfx/mail.asm b/gfx/mail.asm index 50124d6f9..38b329946 100755 --- a/gfx/mail.asm +++ b/gfx/mail.asm @@ -21,13 +21,13 @@ ReadAnyMail: ; b9237 ld a, c ld de, StandardEnglishFont or a - jr z, .asm_b9268 + jr z, .got_font ld de, FrenchGermanFont sub $3 - jr c, .asm_b9268 + jr c, .got_font ld de, SpanishItalianFont -.asm_b9268 +.got_font ld hl, VTiles1 lb bc, BANK(StandardEnglishFont), $80 call Get1bpp @@ -35,7 +35,7 @@ ReadAnyMail: ; b9237 call Functionb92b8 call EnableLCD call WaitBGMap - ld a, [wd1ec] + ld a, [Buffer3] ld e, a callba Function8cb4 call SetPalettes @@ -49,22 +49,22 @@ ReadAnyMail: ; b9237 ; b929a Functionb929a: ; b929a -.asm_b929a +.loop call GetJoypad ld a, [hJoyPressed] and A_BUTTON | B_BUTTON | START - jr z, .asm_b929a + jr z, .loop and START - jr nz, .asm_b92a8 + jr nz, .pressed_start ret -.asm_b92a8 +.pressed_start ld a, [wJumptableIndex] push af callab Function845d4 pop af ld [wJumptableIndex], a - jr .asm_b929a + jr .loop ; b92b8 Functionb92b8: ; b92b8 @@ -73,7 +73,7 @@ Functionb92b8: ; b92b8 push hl ld a, $0 call GetSRAMBank - ld de, $2b + ld de, sPartyMon1MailAuthorID - sPartyMon1Mail add hl, de ld a, [hli] ld [Buffer1], a @@ -85,25 +85,25 @@ Functionb92b8: ; b92b8 call CloseSRAM ld hl, MailGFXPointers ld c, 0 -.asm_b92d9 +.loop ld a, [hli] cp b - jr z, .asm_b92ea - cp $ff - jr z, .asm_b92e6 + jr z, .got_pointer + cp -1 + jr z, .invalid inc c rept 2 inc hl endr - jr .asm_b92d9 + jr .loop -.asm_b92e6 +.invalid ld hl, MailGFXPointers inc hl -.asm_b92ea +.got_pointer ld a, c - ld [wd1ec], a + ld [Buffer3], a ld a, [hli] ld h, [hl] ld l, a @@ -126,67 +126,68 @@ MailGFXPointers: ; b92f8 dbw BLUESKY_MAIL, LoadBlueSkyMailGFX dbw MUSIC_MAIL, LoadMusicMailGFX dbw MIRAGE_MAIL, LoadMirageMailGFX - db $ff + db -1 ; b9317 LoadSurfMailGFX: ; b9317 push bc ld hl, VTiles2 tile $31 - ld de, Unknown_b9d46 - ld c, $40 - call Functionb9915 + ld de, SurfMailBorderGFX + ld c, 8 * 8 + call LoadMailGFX_Color2 ld de, MailLaprasGFX - ld c, $30 - call Functionb991e - ld de, Unknown_b994e - ld c, $8 - call Functionb9915 - jr Functionb9351 + ld c, 6 * 8 + call LoadMailGFX_Color3 + ld de, SurfMailWaveGFX + ld c, 1 * 8 + call LoadMailGFX_Color2 + jr FinishLoadingSurfLiteBlueMailGFX LoadLiteBlueMailGFX: ; b9335 push bc ld hl, VTiles2 tile $31 - ld de, Unknown_b9dc6 - ld c, $40 - call Functionb9915 + ld de, LiteBlueMailBorderGFX + ld c, 8 * 8 + call LoadMailGFX_Color2 ld de, MailDratiniGFX - ld c, $30 - call Functionb991e - ld de, Unknown_b995e - ld c, $8 - call Functionb9915 + ld c, 6 * 8 + call LoadMailGFX_Color3 + ld de, PortraitMailUnderlineGFX + ld c, 1 * 8 + call LoadMailGFX_Color2 -Functionb9351: ; b9351 - ld de, Unknown_b9976 - ld c, $10 - call Functionb9915 - ld c, $10 - call Functionb990c - ld de, Unknown_b9c3e - ld c, $40 - call Functionb990c - ld c, $40 - call Functionb9915 - call Functionb9858 +FinishLoadingSurfLiteBlueMailGFX: ; b9351 + ld de, SurfLiteBlueMailSmallShapesGFX + ld c, 2 * 8 + call LoadMailGFX_Color2 + ld c, 2 * 8 + call LoadMailGFX_Color1 + ld de, SurfLiteBlueMailLargeShapesGFX + ld c, 8 * 8 + call LoadMailGFX_Color1 + ld c, 8 * 8 + call LoadMailGFX_Color2 + + call DrawMailBorder hlcoord 2, 15 ld a, $3f - call Functionb98d4 + call Mail_Draw16TileRow ld a, $39 hlcoord 15, 14 - call Functionb98fc + call Mail_Draw3x2Graphic ld a, $44 hlcoord 2, 2 - call Functionb98ee + call Mail_Draw2x2Graphic hlcoord 15, 11 - call Functionb98ee + call Mail_Draw2x2Graphic ld a, $4c hlcoord 3, 12 - call Functionb98ee + call Mail_Draw2x2Graphic hlcoord 15, 2 - call Functionb98ee + call Mail_Draw2x2Graphic ld a, $50 hlcoord 6, 3 - call Functionb98ee + call Mail_Draw2x2Graphic ld a, $40 hlcoord 13, 2 ld [hli], a @@ -210,102 +211,104 @@ Functionb9351: ; b9351 hlcoord 6, 11 ld [hli], a pop hl - jp Functionb9803 + jp MailGFX_PlaceMessage ; b93d2 LoadEonMailGFX: ; b93d2 push bc ld hl, VTiles2 tile $31 - ld de, Unknown_b997e - ld c, $8 - call Functionb9915 - ld de, Unknown_b998e - ld c, $8 - call Functionb990c - ld de, Unknown_b998e - ld c, $8 - call Functionb990c - ld de, Unknown_b997e - ld c, $8 - call Functionb9915 - ld de, Unknown_b9d76 - ld c, $8 - call Functionb9915 - ld de, MailPikaGFX - ld c, $30 - call Functionb991e + ld de, EonMailBorder1GFX + ld c, 1 * 8 + call LoadMailGFX_Color2 + ld de, EonMailBorder2GFX + ld c, 1 * 8 + call LoadMailGFX_Color1 + ld de, EonMailBorder2GFX + ld c, 1 * 8 + call LoadMailGFX_Color1 + ld de, EonMailBorder1GFX + ld c, 1 * 8 + call LoadMailGFX_Color2 + ld de, EonMailBorder3GFX + ld c, 1 * 8 + call LoadMailGFX_Color2 + ld de, MailEeveeGFX + ld c, 6 * 8 + call LoadMailGFX_Color3 ld hl, VTiles2 tile $3d - ld de, Unknown_b9c9e - ld c, $20 - call Functionb990c - ld de, Unknown_b998e - ld c, $8 - call Functionb9915 + ld de, MailLargeCircleGFX + ld c, 4 * 8 + call LoadMailGFX_Color1 + ld de, EonMailBorder2GFX + ld c, 1 * 8 + call LoadMailGFX_Color2 + ld a, $31 hlcoord 0, 0 - call Functionb98a8 + call Mail_Place18TileAlternatingRow hlcoord 1, 17 - call Functionb98a8 + call Mail_Place18TileAlternatingRow ld a, $33 hlcoord 0, 1 - call Functionb98ba + call Mail_Place16TileAlternatingColumn hlcoord 19, 0 - call Functionb98ba + call Mail_Place16TileAlternatingColumn hlcoord 2, 15 ld a, $35 - call Functionb98d4 + call Mail_Draw16TileRow inc a hlcoord 15, 14 - call Functionb98fc - call Functionb9491 + call Mail_Draw3x2Graphic + call LovelyEonMail_PlaceIcons pop hl - jp Functionb9803 + jp MailGFX_PlaceMessage ; b944b LoadLovelyMailGFX: ; b944b push bc ld hl, VTiles2 tile $31 - ld de, Unknown_b9e26 - ld c, $28 - call Functionb9915 + ld de, LovelyMailBorderGFX + ld c, 5 * 8 + call LoadMailGFX_Color2 ld de, MailPoliwagGFX - ld c, $30 - call Functionb991e - ld de, Unknown_b9966 - ld c, $8 - call Functionb9915 - ld de, Unknown_b9c5e - ld c, $20 - call Functionb9915 - ld de, Unknown_b996e - ld c, $8 - call Functionb990c - call Functionb987b + ld c, 6 * 8 + call LoadMailGFX_Color3 + ld de, LovelyMailUnderlineGFX + ld c, 1 * 8 + call LoadMailGFX_Color2 + ld de, LovelyMailLargeHeartGFX + ld c, 4 * 8 + call LoadMailGFX_Color2 + ld de, LovelyMailSmallHeartGFX + ld c, 1 * 8 + call LoadMailGFX_Color1 + + call DrawMailBorder2 hlcoord 2, 15 ld a, $3c - call Functionb98d4 + call Mail_Draw16TileRow ld a, $36 hlcoord 15, 14 - call Functionb98fc - call Functionb9491 + call Mail_Draw3x2Graphic + call LovelyEonMail_PlaceIcons pop hl - jp Functionb9803 + jp MailGFX_PlaceMessage ; b9491 -Functionb9491: ; b9491 +LovelyEonMail_PlaceIcons: ; b9491 ld a, $3d hlcoord 2, 2 - call Functionb98ee + call Mail_Draw2x2Graphic hlcoord 16, 2 - call Functionb98ee + call Mail_Draw2x2Graphic hlcoord 9, 4 - call Functionb98ee + call Mail_Draw2x2Graphic hlcoord 2, 11 - call Functionb98ee + call Mail_Draw2x2Graphic hlcoord 6, 12 - call Functionb98ee + call Mail_Draw2x2Graphic hlcoord 12, 11 - call Functionb98ee + call Mail_Draw2x2Graphic ld a, $41 hlcoord 5, 4 ld [hl], a @@ -327,32 +330,32 @@ Functionb9491: ; b9491 LoadMorphMailGFX: ; b94d6 push bc ld hl, VTiles2 tile $31 - ld bc, $28 - call Functionb97f8 - ld de, Unknown_b9c96 - ld c, 8 - call Functionb9915 - ld de, Unknown_b9c7e - ld c, 8 - call Functionb9915 - ld de, Unknown_b993e - ld c, 8 - call Functionb9915 - ld de, Unknown_b997e - ld c, 8 - call Functionb990c - ld de, Unknown_b9926 - ld c, 8 - call Functionb9915 + ld bc, 5 * 8 + call MailGFX_GenerateMonochromeTilesColor2 + ld de, MorphMailBorderGFX + ld c, 1 * 8 + call LoadMailGFX_Color2 + ld de, MorphMailBorderCorner1GFX + ld c, 1 * 8 + call LoadMailGFX_Color2 + ld de, MorphMailBorderCorner2GFX + ld c, 1 * 8 + call LoadMailGFX_Color2 + ld de, EonMailBorder1GFX + ld c, 1 * 8 + call LoadMailGFX_Color1 + ld de, MorphMailDividerGFX + ld c, 1 * 8 + call LoadMailGFX_Color2 ld de, MailDittoGFX - ld c, $30 - call Functionb991e - call Functionb987b + ld c, 6 * 8 + call LoadMailGFX_Color3 + call DrawMailBorder2 ld a, $31 hlcoord 1, 1 - call Functionb98ee + call Mail_Draw2x2Graphic hlcoord 17, 15 - call Functionb98ee + call Mail_Draw2x2Graphic hlcoord 1, 3 ld [hl], a hlcoord 3, 1 @@ -382,79 +385,80 @@ LoadMorphMailGFX: ; b94d6 inc a hlcoord 2, 15 ld b, $e - call Functionb98de + call Mail_DrawRowLoop inc a hlcoord 2, 11 - call Functionb98d4 + call Mail_Draw16TileRow hlcoord 2, 5 - call Functionb98d4 + call Mail_Draw16TileRow inc a hlcoord 6, 1 - call Functionb98d0 + call Mail_Draw13TileRow hlcoord 1, 16 - call Functionb98d0 + call Mail_Draw13TileRow inc a hlcoord 3, 13 - call Functionb98fc + call Mail_Draw3x2Graphic pop hl - jp Functionb9803 + jp MailGFX_PlaceMessage ; b9582 LoadBlueSkyMailGFX: ; b9582 push bc ld hl, VTiles2 tile $31 - ld de, Unknown_b997e - ld c, $8 - call Functionb9915 + ld de, EonMailBorder1GFX + ld c, 1 * 8 + call LoadMailGFX_Color2 ld a, $ff - ld bc, $10 + ld bc, 1 tiles call ByteFill - ld de, Unknown_b992e - ld c, $8 - call Functionb991e + ld de, BlueSkyMailGrassGFX + ld c, 1 * 8 + call LoadMailGFX_Color3 ld de, MailDragoniteGFX - ld c, $b8 - call Functionb991e + ld c, 23 * 8 + call LoadMailGFX_Color3 ld de, MailCloudGFX - ld c, $30 - call Functionb990c - ld de, Unknown_b9db6 - ld c, $8 - call Functionb990c + ld c, 6 * 8 + call LoadMailGFX_Color1 + ld de, FlowerMailSenderUnderlineGFX + ld c, 1 * 8 + call LoadMailGFX_Color1 ld de, MailCloudGFX - ld c, $8 - call Functionb990c - ld de, Unknown_b9d26 - ld c, $10 - call Functionb990c - ld de, Unknown_b9d3e - ld c, $8 - call Functionb990c + ld c, 1 * 8 + call LoadMailGFX_Color1 + ld de, MailCloud2GFX + ld c, 2 * 8 + call LoadMailGFX_Color1 + ld de, MailCloud3GFX + ld c, 1 * 8 + call LoadMailGFX_Color1 + ld a, $31 hlcoord 0, 0 - call Functionb98dc + call Mail_DrawFullWidthBorder hlcoord 0, 1 - call Functionb98e3 + call Mail_DrawLeftRightBorder hlcoord 19, 1 - call Functionb98e3 + call Mail_DrawLeftRightBorder inc a hlcoord 0, 17 - call Functionb98dc + call Mail_DrawFullWidthBorder inc a hlcoord 0, 16 - call Functionb98dc + call Mail_DrawFullWidthBorder inc a hlcoord 2, 2 - call Functionb9636 + call Mail_Place6TileRow hlcoord 3, 3 - call Functionb9636 + call Mail_Place6TileRow hlcoord 4, 4 - call Functionb9636 + call Mail_Place6TileRow dec hl ld [hl], $7f dec a hlcoord 15, 14 - call Functionb98ee + call Mail_Draw2x2Graphic add $4 hlcoord 15, 16 ld [hli], a @@ -463,180 +467,184 @@ LoadBlueSkyMailGFX: ; b9582 inc a push af hlcoord 12, 1 - call Functionb98fc + call Mail_Draw3x2Graphic pop af hlcoord 15, 4 - call Functionb98fc + call Mail_Draw3x2Graphic inc a hlcoord 2, 11 - call Functionb98d4 + call Mail_Draw16TileRow inc a hlcoord 10, 3 - call Functionb98ee + call Mail_Draw2x2Graphic pop hl - jp Functionb9803 + jp MailGFX_PlaceMessage ; b9636 -Functionb9636: ; b9636 +Mail_Place6TileRow: ; b9636 ld b, $6 -.asm_b9638 +.loop ld [hli], a inc a dec b - jr nz, .asm_b9638 + jr nz, .loop ret ; b963e LoadFlowerMailGFX: ; b963e push bc ld hl, VTiles2 tile $31 - ld de, Unknown_b9d86 - ld c, $40 - call Functionb990c + ld de, FlowerMailBorderGFX + ld c, 8 * 8 + call LoadMailGFX_Color1 ld de, MailOddishGFX - ld c, $20 - call Functionb991e - ld de, Unknown_b9db6 - ld c, $8 - call Functionb9915 - ld de, Unknown_b9cbe - ld c, $20 - call Functionb990c - ld c, $20 - call Functionb9915 - call Functionb9858 + ld c, 4 * 8 + call LoadMailGFX_Color3 + ld de, FlowerMailSenderUnderlineGFX + ld c, 1 * 8 + call LoadMailGFX_Color2 + ld de, FlowerMailLargeFlowerGFX + ld c, 4 * 8 + call LoadMailGFX_Color1 + ld c, 4 * 8 + call LoadMailGFX_Color2 + + call DrawMailBorder hlcoord 2, 15 - ld a, $3d - call Functionb98d4 - ld a, $39 + ld a, $3d ; underline + call Mail_Draw16TileRow + ld a, $39 ; oddish hlcoord 16, 13 - call Functionb98ee + call Mail_Draw2x2Graphic hlcoord 2, 13 - call Functionb98ee + call Mail_Draw2x2Graphic ld a, $3e hlcoord 2, 2 - call Functionb98ee + call Mail_Draw2x2Graphic hlcoord 5, 3 - call Functionb98ee + call Mail_Draw2x2Graphic hlcoord 10, 2 - call Functionb98ee + call Mail_Draw2x2Graphic hlcoord 16, 3 - call Functionb98ee + call Mail_Draw2x2Graphic hlcoord 5, 11 - call Functionb98ee + call Mail_Draw2x2Graphic hlcoord 16, 10 - call Functionb98ee + call Mail_Draw2x2Graphic ld a, $42 hlcoord 3, 4 - call Functionb98ee + call Mail_Draw2x2Graphic hlcoord 12, 3 - call Functionb98ee + call Mail_Draw2x2Graphic hlcoord 14, 2 - call Functionb98ee + call Mail_Draw2x2Graphic hlcoord 2, 10 - call Functionb98ee + call Mail_Draw2x2Graphic hlcoord 14, 11 - call Functionb98ee + call Mail_Draw2x2Graphic pop hl - jp Functionb9803 + jp MailGFX_PlaceMessage ; b96ca LoadPortraitMailGFX: ; b96ca push bc ld hl, VTiles2 tile $31 - ld de, Unknown_b9e4e - ld c, $28 - call Functionb9915 - ld de, Unknown_b995e - ld c, $8 - call Functionb9915 + ld de, PortraitMailBorderGFX + ld c, 5 * 8 + call LoadMailGFX_Color2 + ld de, PortraitMailUnderlineGFX + ld c, 1 * 8 + call LoadMailGFX_Color2 ld hl, VTiles2 tile $3d - ld de, Unknown_b9bfe - ld c, $20 - call Functionb990c - ld de, Unknown_b9936 - ld c, $8 - call Functionb9915 - call Functionb987b + ld de, PortraitMailLargePokeballGFX + ld c, 4 * 8 + call LoadMailGFX_Color1 + ld de, PortraitMailSmallPokeballGFX + ld c, 1 * 8 + call LoadMailGFX_Color2 + + call DrawMailBorder2 hlcoord 8, 15 ld a, $36 ld b, $a - call Functionb98de - call Functionb9491 + call Mail_DrawRowLoop + call LovelyEonMail_PlaceIcons ld a, $1 ld [UnownLetter], a hlcoord 1, 10 call PrepMonFrontpic pop hl - jp Functionb9803 + jp MailGFX_PlaceMessage ; b9710 LoadMusicMailGFX: ; b9710 push bc ld hl, VTiles2 tile $31 - ld de, Unknown_b9e06 - ld c, $20 - call Functionb9915 - ld de, Unknown_b993e - ld c, $10 - call Functionb9915 - ld de, Unknown_b9996 - ld c, $30 - call Functionb991e + ld de, MusicMailBorderGFX + ld c, 4 * 8 + call LoadMailGFX_Color2 + ld de, MorphMailBorderCorner2GFX + ld c, 2 * 8 + call LoadMailGFX_Color2 + ld de, MailNatuGFX + ld c, 6 * 8 + call LoadMailGFX_Color3 xor a - ld bc, $10 + ld bc, 1 tiles call ByteFill - ld de, Unknown_b9cfe - ld c, $18 - call Functionb990c - ld de, Unknown_b9946 - ld c, $8 - call Functionb990c + ld de, MusicMailLargeNoteGFX + ld c, 3 * 8 + call LoadMailGFX_Color1 + ld de, MusicMailSmallNoteGFX + ld c, 1 * 8 + call LoadMailGFX_Color1 + ld a, $31 hlcoord 0, 0 - call Functionb98a8 + call Mail_Place18TileAlternatingRow hlcoord 1, 17 - call Functionb98a8 + call Mail_Place18TileAlternatingRow ld a, $33 hlcoord 0, 1 - call Functionb98ba + call Mail_Place16TileAlternatingColumn hlcoord 19, 0 - call Functionb98ba + call Mail_Place16TileAlternatingColumn ld a, $35 hlcoord 2, 15 - call Functionb989e + call Mail_Place14TileAlternatingRow ld a, $37 hlcoord 15, 14 - call Functionb98fc - call Functionb9491 + call Mail_Draw3x2Graphic + call LovelyEonMail_PlaceIcons pop hl - jp Functionb9803 + jp MailGFX_PlaceMessage ; b9776 LoadMirageMailGFX: ; b9776 push bc ld hl, VTiles2 tile $31 - ld bc, $28 - call Functionb97f8 - ld de, Unknown_b992e - ld c, $8 - call Functionb9915 + ld bc, 5 * 8 + call MailGFX_GenerateMonochromeTilesColor2 + ld de, BlueSkyMailGrassGFX + ld c, 1 * 8 + call LoadMailGFX_Color2 ld de, MailMewGFX - ld c, $90 - call Functionb9915 - ld de, Unknown_b9dce - ld c, $8 - call Functionb990c - ld de, Unknown_b9df6 - ld c, $8 - call Functionb990c - call Functionb987b + ld c, 18 * 8 + call LoadMailGFX_Color2 + ld de, MirageMailTopDividerGFX + ld c, 1 * 8 + call LoadMailGFX_Color1 + ld de, MirageMailBottomDividerGFX + ld c, 1 * 8 + call LoadMailGFX_Color1 + + call DrawMailBorder2 ld a, $36 hlcoord 1, 16 - call Functionb98d8 + call Mail_DrawTopBottomBorder inc a hlcoord 15, 14 - call Functionb98fc + call Mail_Draw3x2Graphic inc a hlcoord 15, 16 ld [hli], a @@ -644,13 +652,13 @@ LoadMirageMailGFX: ; b9776 ld [hl], a ld a, $3f hlcoord 1, 1 - call Functionb98a8 + call Mail_Place18TileAlternatingRow ld a, $41 hlcoord 0, 2 - call Functionb98b5 + call Mail_Place14TileAlternatingColumn ld a, $43 hlcoord 19, 2 - call Functionb98b5 + call Mail_Place14TileAlternatingColumn ld a, $45 hlcoord 0, 1 ld [hl], a @@ -665,16 +673,16 @@ LoadMirageMailGFX: ; b9776 ld [hl], a inc a hlcoord 2, 5 - call Functionb98d4 + call Mail_Draw16TileRow inc a hlcoord 2, 11 - call Functionb98d4 + call Mail_Draw16TileRow pop hl - jp Functionb9803 + jp MailGFX_PlaceMessage ; b97f8 -Functionb97f8: ; b97f8 -.asm_b97f8 +MailGFX_GenerateMonochromeTilesColor2: ; b97f8 +.loop xor a ld [hli], a ld a, $ff @@ -682,24 +690,24 @@ Functionb97f8: ; b97f8 dec bc ld a, b or c - jr nz, .asm_b97f8 + jr nz, .loop ret ; b9803 -Functionb9803: ; b9803 - ld bc, $2f +MailGFX_PlaceMessage: ; b9803 + ld bc, MAIL_STRUCT_LENGTH ld de, wd002 ld a, $0 call GetSRAMBank call CopyBytes call CloseSRAM - ld hl, wd023 + ld hl, wd002 + sPartyMon1MailAuthor - sPartyMon1Mail ld de, wd050 - ld bc, $a + ld bc, NAME_LENGTH - 1 call CopyBytes - ld a, $50 - ld [wd023], a - ld [wd05a], a + ld a, "@" + ld [wd002 + sPartyMon1MailAuthor - sPartyMon1Mail], a + ld [wd050 + NAME_LENGTH - 1], a ld de, wd002 hlcoord 2, 7 call PlaceString @@ -707,110 +715,112 @@ Functionb9803: ; b9803 ld a, [de] and a ret z - ld a, [wd1ec] + ld a, [Buffer3] hlcoord 8, 14 - cp $3 - jr z, .asm_b984b + cp $3 ; PORTRAITMAIL + jr z, .place_author hlcoord 6, 14 - cp $6 - jr z, .asm_b984b + cp $6 ; MORPH_MAIL + jr z, .place_author hlcoord 5, 14 -.asm_b984b +.place_author jp PlaceString ; b984e Functionb984e: ; b984e -.asm_b984e +.loop ld a, [hl] xor $ff ld [hli], a dec bc ld a, b or c - jr nz, .asm_b984e + jr nz, .loop ret ; b9858 -Functionb9858: ; b9858 +DrawMailBorder: ; b9858 hlcoord 0, 0 ld a, $31 ld [hli], a inc a - call Functionb98d8 + call Mail_DrawTopBottomBorder inc a ld [hli], a inc a - call Functionb98e3 + call Mail_DrawLeftRightBorder ld a, $36 ld [hli], a inc a - call Functionb98d8 + call Mail_DrawTopBottomBorder hlcoord 19, 1 ld a, $35 - call Functionb98e3 + call Mail_DrawLeftRightBorder ld a, $38 ld [hl], a ret ; b987b -Functionb987b: ; b987b +DrawMailBorder2: ; b987b hlcoord 0, 0 ld a, $31 ld [hli], a inc a - call Functionb98d8 + call Mail_DrawTopBottomBorder ld [hl], $31 inc hl inc a - call Functionb98e3 + call Mail_DrawLeftRightBorder ld [hl], $31 inc hl inc a - call Functionb98d8 + call Mail_DrawTopBottomBorder hlcoord 19, 1 ld a, $35 - call Functionb98e3 + call Mail_DrawLeftRightBorder ld [hl], $31 ret ; b989e -Functionb989e: ; b989e +Mail_Place14TileAlternatingRow: ; b989e push af - ld b, $7 - jr Functionb98ab + ld b, 14 / 2 + jr Mail_PlaceAlternatingRow -Functionb98a3: ; b98a3 +Mail_Place16TileAlternatingRow: ; b98a3 push af - ld b, $8 - jr Functionb98ab + ld b, 16 / 2 + jr Mail_PlaceAlternatingRow -Functionb98a8: ; b98a8 +Mail_Place18TileAlternatingRow: ; b98a8 push af - ld b, $9 + ld b, 18 / 2 -Functionb98ab: ; b98ab +Mail_PlaceAlternatingRow: ; b98ab +.loop ld [hli], a inc a ld [hli], a dec a dec b - jr nz, Functionb98ab + jr nz, .loop ld [hl], a pop af ret ; b98b5 -Functionb98b5: ; b98b5 +Mail_Place14TileAlternatingColumn: ; b98b5 push af - ld b, $7 - jr Functionb98bd + ld b, 14 / 2 + jr Mail_PlaceAlternatingColumn -Functionb98ba: ; b98ba +Mail_Place16TileAlternatingColumn: ; b98ba push af - ld b, $8 + ld b, 16 / 2 -Functionb98bd: ; b98bd +Mail_PlaceAlternatingColumn: ; b98bd +.loop ld [hl], a ld de, SCREEN_WIDTH add hl, de @@ -819,55 +829,56 @@ Functionb98bd: ; b98bd add hl, de dec a dec b - jr nz, Functionb98bd + jr nz, .loop ld [hl], a pop af ret ; b98cc -Functionb98cc: ; b98cc +Mail_Draw7TileRow: ; b98cc ld b, $7 - jr Functionb98de + jr Mail_DrawRowLoop -Functionb98d0: ; b98d0 +Mail_Draw13TileRow: ; b98d0 ld b, $d - jr Functionb98de + jr Mail_DrawRowLoop -Functionb98d4: ; b98d4 +Mail_Draw16TileRow: ; b98d4 ld b, $10 - jr Functionb98de + jr Mail_DrawRowLoop -Functionb98d8: ; b98d8 - ld b, $12 - jr Functionb98de +Mail_DrawTopBottomBorder: ; b98d8 + ld b, SCREEN_WIDTH - 2 + jr Mail_DrawRowLoop -Functionb98dc: ; b98dc - ld b, $14 +Mail_DrawFullWidthBorder: ; b98dc + ld b, SCREEN_WIDTH -Functionb98de: ; b98de +Mail_DrawRowLoop: ; b98de +.loop ld [hli], a dec b - jr nz, Functionb98de + jr nz, .loop ret ; b98e3 -Functionb98e3: ; b98e3 - ld b, $10 +Mail_DrawLeftRightBorder: ; b98e3 + ld b, SCREEN_HEIGHT - 2 ld de, SCREEN_WIDTH -.asm_b98e8 +.loop ld [hl], a add hl, de dec b - jr nz, .asm_b98e8 + jr nz, .loop ret ; b98ee -Functionb98ee: ; b98ee +Mail_Draw2x2Graphic: ; b98ee push af ld [hli], a inc a ld [hl], a - ld bc, $13 + ld bc, SCREEN_WIDTH - 1 add hl, bc inc a ld [hli], a @@ -877,13 +888,13 @@ Functionb98ee: ; b98ee ret ; b98fc -Functionb98fc: ; b98fc +Mail_Draw3x2Graphic: ; b98fc ld [hli], a inc a ld [hli], a inc a ld [hl], a - ld bc, SCREEN_HEIGHT + ld bc, SCREEN_WIDTH - 2 add hl, bc inc a ld [hli], a @@ -894,176 +905,177 @@ Functionb98fc: ; b98fc ret ; b990c -Functionb990c: ; b990c -.asm_b990c +LoadMailGFX_Color1: ; b990c +.loop ld a, [de] inc de ld [hli], a xor a ld [hli], a dec c - jr nz, .asm_b990c + jr nz, .loop ret ; b9915 -Functionb9915: ; b9915 -.asm_b9915 +LoadMailGFX_Color2: ; b9915 +.loop xor a ld [hli], a ld a, [de] inc de ld [hli], a dec c - jr nz, .asm_b9915 + jr nz, .loop ret ; b991e -Functionb991e: ; b991e -.asm_b991e +LoadMailGFX_Color3: ; b991e +.loop ld a, [de] inc de rept 2 ld [hli], a endr dec c - jr nz, .asm_b991e + jr nz, .loop ret ; b9926 -Unknown_b9926: ; b9926 -INCBIN "gfx/unknown/0b9926.1bpp" +MorphMailDividerGFX: ; b9926 +INCBIN "gfx/mail/0b9926.1bpp" -Unknown_b992e: ; b992e -INCBIN "gfx/unknown/0b992e.1bpp" +BlueSkyMailGrassGFX: ; b992e +INCBIN "gfx/mail/0b992e.1bpp" -Unknown_b9936: ; b9936 -INCBIN "gfx/unknown/0b9936.1bpp" +PortraitMailSmallPokeballGFX: ; b9936 +INCBIN "gfx/mail/0b9936.1bpp" -Unknown_b993e: ; b993e -INCBIN "gfx/unknown/0b993e.1bpp" +MorphMailBorderCorner2GFX: ; b993e +INCBIN "gfx/mail/0b993e.1bpp" -Unknown_b9946: ; b9946 -INCBIN "gfx/unknown/0b9946.1bpp" +MusicMailSmallNoteGFX: ; b9946 +INCBIN "gfx/mail/0b9946.1bpp" -Unknown_b994e: ; b994e -INCBIN "gfx/unknown/0b994e.1bpp" +SurfMailWaveGFX: ; b994e +INCBIN "gfx/mail/0b994e.1bpp" -Unknown_b995e: ; b995e -INCBIN "gfx/unknown/0b995e.1bpp" +PortraitMailUnderlineGFX: ; b995e +INCBIN "gfx/mail/0b995e.1bpp" -Unknown_b9966: ; b9966 -INCBIN "gfx/unknown/0b9966.1bpp" +LovelyMailUnderlineGFX: ; b9966 +INCBIN "gfx/mail/0b9966.1bpp" -Unknown_b996e: ; b996e -INCBIN "gfx/unknown/0b996e.1bpp" +LovelyMailSmallHeartGFX: ; b996e +INCBIN "gfx/mail/0b996e.1bpp" -Unknown_b9976: ; b9976 -INCBIN "gfx/unknown/0b9976.1bpp" +SurfLiteBlueMailSmallShapesGFX: ; b9976 +INCBIN "gfx/mail/0b9976.1bpp" -Unknown_b997e: ; b997e -INCBIN "gfx/unknown/0b997e.1bpp" +EonMailBorder1GFX: ; b997e +INCBIN "gfx/mail/0b997e.1bpp" -Unknown_b998e: ; b998e -INCBIN "gfx/unknown/0b998e.1bpp" +EonMailBorder2GFX: ; b998e +INCBIN "gfx/mail/0b998e.1bpp" -Unknown_b9996: ; b9996 -INCBIN "gfx/unknown/0b9996.1bpp" +MailNatuGFX: ; b9996 +INCBIN "gfx/mail/0b9996.1bpp" MailDratiniGFX: ; b99c6 -INCBIN "gfx/unknown/0b99c6.1bpp" +INCBIN "gfx/mail/0b99c6.1bpp" MailPoliwagGFX: ; b99f6 -INCBIN "gfx/unknown/0b99f6.1bpp" +INCBIN "gfx/mail/0b99f6.1bpp" MailLaprasGFX: ; b9a26 -INCBIN "gfx/unknown/0b9a26.1bpp" +INCBIN "gfx/mail/0b9a26.1bpp" -MailPikaGFX: ; b9a56 -INCBIN "gfx/unknown/0b9a56.1bpp" +MailEeveeGFX: ; b9a56 +INCBIN "gfx/mail/0b9a56.1bpp" MailDittoGFX: ; b9a86 -INCBIN "gfx/unknown/0b9a86.1bpp" +INCBIN "gfx/mail/0b9a86.1bpp" MailMewGFX: ; b9ab6 -INCBIN "gfx/unknown/0b9ab6.1bpp" +INCBIN "gfx/mail/0b9ab6.1bpp" MailDragoniteGFX: ; b9b46 -INCBIN "gfx/unknown/0b9b46.1bpp" +INCBIN "gfx/mail/0b9b46.1bpp" MailSentretGFX: ; b9bce -INCBIN "gfx/unknown/0b9bce.1bpp" +INCBIN "gfx/mail/0b9bce.1bpp" -Unknown_b9bee: ; b9bee -INCBIN "gfx/unknown/0b9bee.1bpp" +MailUnusedGrassGFX: ; b9bee +INCBIN "gfx/mail/0b9bee.1bpp" -Unknown_b9bfe: ; b9bfe -INCBIN "gfx/unknown/0b9bfe.1bpp" +PortraitMailLargePokeballGFX: ; b9bfe +INCBIN "gfx/mail/0b9bfe.1bpp" MailOddishGFX: ; b9c1e -INCBIN "gfx/unknown/0b9c1e.1bpp" +INCBIN "gfx/mail/0b9c1e.1bpp" -Unknown_b9c3e: ; b9c3e -INCBIN "gfx/unknown/0b9c3e.1bpp" +SurfLiteBlueMailLargeShapesGFX: ; b9c3e +INCBIN "gfx/mail/0b9c3e.1bpp" -Unknown_b9c5e: ; b9c5e -INCBIN "gfx/unknown/0b9c5e.1bpp" +LovelyMailLargeHeartGFX: ; b9c5e +INCBIN "gfx/mail/0b9c5e.1bpp" -Unknown_b9c7e: ; b9c7e -INCBIN "gfx/unknown/0b9c7e.1bpp" +MorphMailBorderCorner1GFX: ; b9c7e +INCBIN "gfx/mail/0b9c7e.1bpp" -Unknown_b9c96: ; b9c96 -INCBIN "gfx/unknown/0b9c96.1bpp" +MorphMailBorderGFX: ; b9c96 +INCBIN "gfx/mail/0b9c96.1bpp" -Unknown_b9c9e: ; b9c9e -INCBIN "gfx/unknown/0b9c9e.1bpp" +MailLargeCircleGFX: ; b9c9e +INCBIN "gfx/mail/0b9c9e.1bpp" -Unknown_b9cbe: ; b9cbe -INCBIN "gfx/unknown/0b9cbe.1bpp" +FlowerMailLargeFlowerGFX: ; b9cbe +INCBIN "gfx/mail/0b9cbe.1bpp" -Unknown_b9cde: ; b9cde -INCBIN "gfx/unknown/0b9cde.1bpp" +FlowerMailSmallFlowerGFX: ; b9cde +; indirectly referenced +INCBIN "gfx/mail/0b9cde.1bpp" -Unknown_b9cfe: ; b9cfe -INCBIN "gfx/unknown/0b9cfe.1bpp" +MusicMailLargeNoteGFX: ; b9cfe +INCBIN "gfx/mail/0b9cfe.1bpp" MailCloudGFX: ; b9d16 -INCBIN "gfx/unknown/0b9d16.1bpp" +INCBIN "gfx/mail/0b9d16.1bpp" -Unknown_b9d26: ; b9d26 -INCBIN "gfx/unknown/0b9d26.1bpp" +MailCloud2GFX: ; b9d26 +INCBIN "gfx/mail/0b9d26.1bpp" -Unknown_b9d3e: ; b9d3e -INCBIN "gfx/unknown/0b9d3e.1bpp" +MailCloud3GFX: ; b9d3e +INCBIN "gfx/mail/0b9d3e.1bpp" -Unknown_b9d46: ; b9d46 -INCBIN "gfx/unknown/0b9d46.1bpp" +SurfMailBorderGFX: ; b9d46 +INCBIN "gfx/mail/0b9d46.1bpp" -Unknown_b9d76: ; b9d76 -INCBIN "gfx/unknown/0b9d76.1bpp" +EonMailBorder3GFX: ; b9d76 +INCBIN "gfx/mail/0b9d76.1bpp" -Unknown_b9d86: ; b9d86 -INCBIN "gfx/unknown/0b9d86.1bpp" +FlowerMailBorderGFX: ; b9d86 +INCBIN "gfx/mail/0b9d86.1bpp" -Unknown_b9db6: ; b9db6 -INCBIN "gfx/unknown/0b9db6.1bpp" +FlowerMailSenderUnderlineGFX: ; b9db6 +INCBIN "gfx/mail/0b9db6.1bpp" -Unknown_b9dc6: ; b9dc6 -INCBIN "gfx/unknown/0b9dc6.1bpp" +LiteBlueMailBorderGFX: ; b9dc6 +INCBIN "gfx/mail/0b9dc6.1bpp" -Unknown_b9dce: ; b9dce -INCBIN "gfx/unknown/0b9dce.1bpp" +MirageMailTopDividerGFX: ; b9dce +INCBIN "gfx/mail/0b9dce.1bpp" -Unknown_b9df6: ; b9df6 -INCBIN "gfx/unknown/0b9df6.1bpp" +MirageMailBottomDividerGFX: ; b9df6 +INCBIN "gfx/mail/0b9df6.1bpp" -Unknown_b9e06: ; b9e06 -INCBIN "gfx/unknown/0b9e06.1bpp" +MusicMailBorderGFX: ; b9e06 +INCBIN "gfx/mail/0b9e06.1bpp" -Unknown_b9e26: ; b9e26 -INCBIN "gfx/unknown/0b9e26.1bpp" +LovelyMailBorderGFX: ; b9e26 +INCBIN "gfx/mail/0b9e26.1bpp" -Unknown_b9e4e: ; b9e4e -INCBIN "gfx/unknown/0b9e4e.1bpp" +PortraitMailBorderGFX: ; b9e4e +INCBIN "gfx/mail/0b9e4e.1bpp" ItemIsMail: ; b9e76 @@ -1084,5 +1096,5 @@ ItemIsMail: ; b9e76 db BLUESKY_MAIL db MUSIC_MAIL db MIRAGE_MAIL - db $ff + db -1 ; b9e8b diff --git a/gfx/unknown/0b9926.1bpp b/gfx/mail/0b9926.1bpp similarity index 100% rename from gfx/unknown/0b9926.1bpp rename to gfx/mail/0b9926.1bpp diff --git a/gfx/unknown/0b992e.1bpp b/gfx/mail/0b992e.1bpp similarity index 100% rename from gfx/unknown/0b992e.1bpp rename to gfx/mail/0b992e.1bpp diff --git a/gfx/unknown/0b9936.1bpp b/gfx/mail/0b9936.1bpp similarity index 100% rename from gfx/unknown/0b9936.1bpp rename to gfx/mail/0b9936.1bpp diff --git a/gfx/unknown/0b993e.1bpp b/gfx/mail/0b993e.1bpp similarity index 100% rename from gfx/unknown/0b993e.1bpp rename to gfx/mail/0b993e.1bpp diff --git a/gfx/unknown/0b9946.1bpp b/gfx/mail/0b9946.1bpp similarity index 100% rename from gfx/unknown/0b9946.1bpp rename to gfx/mail/0b9946.1bpp diff --git a/gfx/unknown/0b994e.1bpp b/gfx/mail/0b994e.1bpp similarity index 100% rename from gfx/unknown/0b994e.1bpp rename to gfx/mail/0b994e.1bpp diff --git a/gfx/unknown/0b995e.1bpp b/gfx/mail/0b995e.1bpp similarity index 100% rename from gfx/unknown/0b995e.1bpp rename to gfx/mail/0b995e.1bpp diff --git a/gfx/unknown/0b9966.1bpp b/gfx/mail/0b9966.1bpp similarity index 100% rename from gfx/unknown/0b9966.1bpp rename to gfx/mail/0b9966.1bpp diff --git a/gfx/unknown/0b996e.1bpp b/gfx/mail/0b996e.1bpp similarity index 100% rename from gfx/unknown/0b996e.1bpp rename to gfx/mail/0b996e.1bpp diff --git a/gfx/unknown/0b9976.1bpp b/gfx/mail/0b9976.1bpp similarity index 100% rename from gfx/unknown/0b9976.1bpp rename to gfx/mail/0b9976.1bpp diff --git a/gfx/unknown/0b997e.1bpp b/gfx/mail/0b997e.1bpp similarity index 100% rename from gfx/unknown/0b997e.1bpp rename to gfx/mail/0b997e.1bpp diff --git a/gfx/unknown/0b998e.1bpp b/gfx/mail/0b998e.1bpp similarity index 100% rename from gfx/unknown/0b998e.1bpp rename to gfx/mail/0b998e.1bpp diff --git a/gfx/unknown/0b9996.1bpp b/gfx/mail/0b9996.1bpp similarity index 100% rename from gfx/unknown/0b9996.1bpp rename to gfx/mail/0b9996.1bpp diff --git a/gfx/unknown/0b99c6.1bpp b/gfx/mail/0b99c6.1bpp similarity index 100% rename from gfx/unknown/0b99c6.1bpp rename to gfx/mail/0b99c6.1bpp diff --git a/gfx/unknown/0b99f6.1bpp b/gfx/mail/0b99f6.1bpp similarity index 100% rename from gfx/unknown/0b99f6.1bpp rename to gfx/mail/0b99f6.1bpp diff --git a/gfx/unknown/0b9a26.1bpp b/gfx/mail/0b9a26.1bpp similarity index 100% rename from gfx/unknown/0b9a26.1bpp rename to gfx/mail/0b9a26.1bpp diff --git a/gfx/unknown/0b9a56.1bpp b/gfx/mail/0b9a56.1bpp similarity index 100% rename from gfx/unknown/0b9a56.1bpp rename to gfx/mail/0b9a56.1bpp diff --git a/gfx/unknown/0b9a86.1bpp b/gfx/mail/0b9a86.1bpp similarity index 100% rename from gfx/unknown/0b9a86.1bpp rename to gfx/mail/0b9a86.1bpp diff --git a/gfx/unknown/0b9ab6.1bpp b/gfx/mail/0b9ab6.1bpp similarity index 100% rename from gfx/unknown/0b9ab6.1bpp rename to gfx/mail/0b9ab6.1bpp diff --git a/gfx/unknown/0b9b46.1bpp b/gfx/mail/0b9b46.1bpp similarity index 100% rename from gfx/unknown/0b9b46.1bpp rename to gfx/mail/0b9b46.1bpp diff --git a/gfx/unknown/0b9bce.1bpp b/gfx/mail/0b9bce.1bpp similarity index 100% rename from gfx/unknown/0b9bce.1bpp rename to gfx/mail/0b9bce.1bpp diff --git a/gfx/unknown/0b9bee.1bpp b/gfx/mail/0b9bee.1bpp similarity index 100% rename from gfx/unknown/0b9bee.1bpp rename to gfx/mail/0b9bee.1bpp diff --git a/gfx/unknown/0b9bfe.1bpp b/gfx/mail/0b9bfe.1bpp similarity index 100% rename from gfx/unknown/0b9bfe.1bpp rename to gfx/mail/0b9bfe.1bpp diff --git a/gfx/unknown/0b9c1e.1bpp b/gfx/mail/0b9c1e.1bpp similarity index 100% rename from gfx/unknown/0b9c1e.1bpp rename to gfx/mail/0b9c1e.1bpp diff --git a/gfx/unknown/0b9c3e.1bpp b/gfx/mail/0b9c3e.1bpp similarity index 100% rename from gfx/unknown/0b9c3e.1bpp rename to gfx/mail/0b9c3e.1bpp diff --git a/gfx/unknown/0b9c5e.1bpp b/gfx/mail/0b9c5e.1bpp similarity index 100% rename from gfx/unknown/0b9c5e.1bpp rename to gfx/mail/0b9c5e.1bpp diff --git a/gfx/unknown/0b9c7e.1bpp b/gfx/mail/0b9c7e.1bpp similarity index 100% rename from gfx/unknown/0b9c7e.1bpp rename to gfx/mail/0b9c7e.1bpp diff --git a/gfx/unknown/0b9c96.1bpp b/gfx/mail/0b9c96.1bpp similarity index 100% rename from gfx/unknown/0b9c96.1bpp rename to gfx/mail/0b9c96.1bpp diff --git a/gfx/unknown/0b9c9e.1bpp b/gfx/mail/0b9c9e.1bpp similarity index 100% rename from gfx/unknown/0b9c9e.1bpp rename to gfx/mail/0b9c9e.1bpp diff --git a/gfx/unknown/0b9cbe.1bpp b/gfx/mail/0b9cbe.1bpp similarity index 100% rename from gfx/unknown/0b9cbe.1bpp rename to gfx/mail/0b9cbe.1bpp diff --git a/gfx/unknown/0b9cde.1bpp b/gfx/mail/0b9cde.1bpp similarity index 100% rename from gfx/unknown/0b9cde.1bpp rename to gfx/mail/0b9cde.1bpp diff --git a/gfx/unknown/0b9cfe.1bpp b/gfx/mail/0b9cfe.1bpp similarity index 100% rename from gfx/unknown/0b9cfe.1bpp rename to gfx/mail/0b9cfe.1bpp diff --git a/gfx/unknown/0b9d16.1bpp b/gfx/mail/0b9d16.1bpp similarity index 100% rename from gfx/unknown/0b9d16.1bpp rename to gfx/mail/0b9d16.1bpp diff --git a/gfx/unknown/0b9d26.1bpp b/gfx/mail/0b9d26.1bpp similarity index 100% rename from gfx/unknown/0b9d26.1bpp rename to gfx/mail/0b9d26.1bpp diff --git a/gfx/unknown/0b9d3e.1bpp b/gfx/mail/0b9d3e.1bpp similarity index 100% rename from gfx/unknown/0b9d3e.1bpp rename to gfx/mail/0b9d3e.1bpp diff --git a/gfx/unknown/0b9d46.1bpp b/gfx/mail/0b9d46.1bpp similarity index 100% rename from gfx/unknown/0b9d46.1bpp rename to gfx/mail/0b9d46.1bpp diff --git a/gfx/unknown/0b9d76.1bpp b/gfx/mail/0b9d76.1bpp similarity index 100% rename from gfx/unknown/0b9d76.1bpp rename to gfx/mail/0b9d76.1bpp diff --git a/gfx/unknown/0b9d86.1bpp b/gfx/mail/0b9d86.1bpp similarity index 100% rename from gfx/unknown/0b9d86.1bpp rename to gfx/mail/0b9d86.1bpp diff --git a/gfx/unknown/0b9db6.1bpp b/gfx/mail/0b9db6.1bpp similarity index 100% rename from gfx/unknown/0b9db6.1bpp rename to gfx/mail/0b9db6.1bpp diff --git a/gfx/unknown/0b9dc6.1bpp b/gfx/mail/0b9dc6.1bpp similarity index 100% rename from gfx/unknown/0b9dc6.1bpp rename to gfx/mail/0b9dc6.1bpp diff --git a/gfx/unknown/0b9dce.1bpp b/gfx/mail/0b9dce.1bpp similarity index 100% rename from gfx/unknown/0b9dce.1bpp rename to gfx/mail/0b9dce.1bpp diff --git a/gfx/unknown/0b9df6.1bpp b/gfx/mail/0b9df6.1bpp similarity index 100% rename from gfx/unknown/0b9df6.1bpp rename to gfx/mail/0b9df6.1bpp diff --git a/gfx/unknown/0b9e06.1bpp b/gfx/mail/0b9e06.1bpp similarity index 100% rename from gfx/unknown/0b9e06.1bpp rename to gfx/mail/0b9e06.1bpp diff --git a/gfx/unknown/0b9e26.1bpp b/gfx/mail/0b9e26.1bpp similarity index 100% rename from gfx/unknown/0b9e26.1bpp rename to gfx/mail/0b9e26.1bpp diff --git a/gfx/unknown/0b9e4e.1bpp b/gfx/mail/0b9e4e.1bpp similarity index 100% rename from gfx/unknown/0b9e4e.1bpp rename to gfx/mail/0b9e4e.1bpp From 58020fb5f629693e3f90c0a3c6b417f61330802c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 23 Nov 2015 00:21:21 -0500 Subject: [PATCH 33/40] trade animation --- battle/core.asm | 74 +- battle/used_move_text.asm | 349 ++++++ engine/billspc.asm | 28 +- engine/link.asm | 1609 +-------------------------- engine/mail.asm | 2 +- engine/main_menu.asm | 4 +- engine/mysterygift.asm | 1702 ++++++++++++++++++++++++++++ engine/npctrade.asm | 177 +-- engine/pokedex.asm | 2 +- engine/predef.asm | 4 +- engine/printer.asm | 94 +- engine/trade/animation.asm | 1542 +++++++++++++++++++++++++ event/photo.asm | 6 +- gfx/mail.asm | 6 +- hram.asm | 1 + macros.asm | 2 +- macros/trade_anim.asm | 175 +++ main.asm | 2163 +----------------------------------- misc/gbc_only.asm | 4 +- sram.asm | 10 +- text/battle.asm | 4 +- text/common_3.asm | 4 +- wram.asm | 49 +- 23 files changed, 4123 insertions(+), 3888 deletions(-) create mode 100755 battle/used_move_text.asm create mode 100755 engine/mysterygift.asm create mode 100755 engine/trade/animation.asm create mode 100755 macros/trade_anim.asm diff --git a/battle/core.asm b/battle/core.asm index 15ee3caa4..f08ca7e10 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -2532,48 +2532,48 @@ WinTrainerBattle: ; 3cfa4 ; 3d02b Function3d02b: ; 3d02b - ld a, [wc73d] + ld a, [wAmuletCoin] and a - call nz, Function3d099 - call Function3d0b1 + call nz, .DoubleReward + call .CheckMaxedOutMomMoney push af ld a, $0 - jr nc, .asm_3d044 + jr nc, .okay ld a, [wMomSavingMoney] and $7 cp $3 - jr nz, .asm_3d044 + jr nz, .okay inc a -.asm_3d044 +.okay ld b, a ld c, $4 -.asm_3d047 +.loop ld a, b and a - jr z, .asm_3d052 - call Function3d081 + jr z, .loop2 + call .SendMoneyToMom dec c dec b - jr .asm_3d047 + jr .loop -.asm_3d052 +.loop2 ld a, c and a - jr z, .asm_3d05c - call Function3d08d + jr z, .done + call .AddMoneyToWallet dec c - jr .asm_3d052 + jr .loop2 -.asm_3d05c - call Function3d099 - call Function3d099 +.done + call .DoubleReward + call .DoubleReward pop af jr nc, .KeepItAll ld a, [wMomSavingMoney] and $7 jr z, .KeepItAll - ld hl, SentToMomTexts + ld hl, .SentToMomTexts dec a ld c, a ld b, 0 @@ -2590,26 +2590,26 @@ endr jp StdBattleTextBox ; 3d081 -Function3d081: ; 3d081 +.SendMoneyToMom: ; 3d081 push bc - ld hl, wc688 + ld hl, wBattleReward + 2 ld de, wMomsMoney + 2 - call Function3d0be + call AddBattleMoneyToAccount pop bc ret ; 3d08d -Function3d08d: ; 3d08d +.AddMoneyToWallet: ; 3d08d push bc - ld hl, wc688 + ld hl, wBattleReward + 2 ld de, Money + 2 - call Function3d0be + call AddBattleMoneyToAccount pop bc ret ; 3d099 -Function3d099: ; 3d099 - ld hl, wc688 +.DoubleReward: ; 3d099 + ld hl, wBattleReward + 2 sla [hl] dec hl rl [hl] @@ -2624,14 +2624,14 @@ endr ret ; 3d0ab -SentToMomTexts: ; 3d0ab +.SentToMomTexts: ; 3d0ab dw SentSomeToMomText dw SentHalfToMomText dw SentAllToMomText ; 3d0b1 -Function3d0b1: ; 3d0b1 +.CheckMaxedOutMomMoney: ; 3d0b1 ld hl, wMomsMoney + 2 ld a, [hld] cp 999999 % $100 @@ -2642,7 +2642,7 @@ Function3d0b1: ; 3d0b1 ret ; 3d0be -Function3d0be: ; 3d0be +AddBattleMoneyToAccount: ; 3d0be ld c, $3 and a push de @@ -2653,14 +2653,14 @@ Function3d0be: ; 3d0be callba MobileFn_106008 pop bc pop hl -.asm_3d0ce +.loop ld a, [de] adc [hl] ld [de], a dec de dec hl dec c - jr nz, .asm_3d0ce + jr nz, .loop pop hl ld a, [hld] cp 999999 % $100 @@ -2823,7 +2823,7 @@ PlayerMonFaintHappinessMod: ; 3d1aa ld a, [CurBattleMon] ld c, a ld hl, wBattleParticipantsNotFainted - ld b, $0 + ld b, RESET_FLAG predef FlagPredef ld hl, EnemySubStatus3 res SUBSTATUS_IN_LOOP, [hl] @@ -5602,7 +5602,7 @@ CheckAmuletCoin: ; 3e4a8 cp HELD_AMULET_COIN ret nz ld a, 1 - ld [wc73d], a + ld [wAmuletCoin], a ret ; 3e4bc @@ -6716,7 +6716,7 @@ endr ld a, [TempEnemyMonSpecies] dec a ld c, a - ld b, 1 ; set + ld b, SET_FLAG ld hl, PokedexSeen predef FlagPredef @@ -7741,7 +7741,7 @@ endr ld hl, EvolvableFlags ld a, [CurPartyMon] ld c, a - ld b, $1 + ld b, SET_FLAG predef FlagPredef pop af ld [CurPartyLevel], a @@ -8790,7 +8790,7 @@ CheckPayDay: ; 3f71d inc hl or [hl] ret z - ld a, [wc73d] + ld a, [wAmuletCoin] and a jr z, .okay ld hl, wPayDayMoney + 2 @@ -8809,7 +8809,7 @@ endr .okay ld hl, wPayDayMoney + 2 ld de, Money + 2 - call Function3d0be + call AddBattleMoneyToAccount ld hl, BattleText_PlayerPickuedUpPayDayMoney call StdBattleTextBox ld a, [InBattleTowerBattle] diff --git a/battle/used_move_text.asm b/battle/used_move_text.asm new file mode 100755 index 000000000..dac38dbef --- /dev/null +++ b/battle/used_move_text.asm @@ -0,0 +1,349 @@ +DisplayUsedMoveText: ; 105db0 +; battle command 03 + ld hl, UsedMoveText + call BattleTextBox + jp WaitBGMap +; 105db9 + + +UsedMoveText: ; 105db9 +; this is a stream of text and asm from 105db9 to 105ef6 + + text_jump _ActorNameText + start_asm + + ld a, [hBattleTurn] + and a + jr nz, .start + + ld a, [wPlayerMoveStruct + MOVE_ANIM] + call UpdateUsedMoves + +.start + ld a, BATTLE_VARS_LAST_MOVE + call GetBattleVarAddr + ld d, h + ld e, l + + ld a, BATTLE_VARS_LAST_COUNTER_MOVE + call GetBattleVarAddr + + ld a, BATTLE_VARS_MOVE_ANIM + call GetBattleVar + ld [wd265], a + + push hl + callba CheckUserIsCharging + pop hl + jr nz, .grammar + + ; update last move + ld a, [wd265] + ld [hl], a + ld [de], a + +.grammar + call GetMoveGrammar +; wd265 now contains MoveGrammar + + +; everything except 'instead' made redundant in localization + + ; check obedience + ld a, [AlreadyDisobeyed] + and a + ld hl, UsedMove2Text + ret nz + + ; check move grammar + ld a, [wd265] + cp $3 + ld hl, UsedMove2Text + ret c + ld hl, UsedMove1Text + ret +; 105e04 + +UsedMove1Text: ; 105e04 + text_jump _UsedMove1Text + start_asm + jr Function105e10 +; 105e0b + +UsedMove2Text: ; 105e0b + text_jump _UsedMove2Text + start_asm +; 105e10 + +Function105e10: ; 105e10 +; check obedience + ld a, [AlreadyDisobeyed] + and a + jr z, GetMoveNameText +; print "instead," + ld hl, UsedInsteadText + ret +; 105e1a + +UsedInsteadText: ; 105e1a + text_jump _UsedInsteadText + start_asm +; 105e1f + +GetMoveNameText: ; 105e1f + ld hl, MoveNameText + ret +; 105e23 + +MoveNameText: ; 105e23 + text_jump _MoveNameText + start_asm +; 105e28 + +GetUsedMoveTextEnder: ; 105e28 +; get start address + ld hl, .endusedmovetexts + +; get move id + ld a, [wd265] + +; 2-byte pointer + add a + +; seek + push bc + ld b, $0 + ld c, a + add hl, bc + pop bc + +; get pointer to usedmovetext ender + ld a, [hli] + ld h, [hl] + ld l, a + ret +; 105e39 + +.endusedmovetexts ; 105e39 + dw EndUsedMove1Text + dw EndUsedMove2Text + dw EndUsedMove3Text + dw EndUsedMove4Text + dw EndUsedMove5Text +; 105e43 + +EndUsedMove1Text: ; 105e43 + text_jump _EndUsedMove1Text + db "@" +; 105e48 +EndUsedMove2Text: ; 105e48 + text_jump _EndUsedMove2Text + db "@" +; 105e4d +EndUsedMove3Text: ; 105e4d + text_jump _EndUsedMove3Text + db "@" +; 105e52 +EndUsedMove4Text: ; 105e52 + text_jump _EndUsedMove4Text + db "@" +; 105e57 +EndUsedMove5Text: ; 105e57 + text_jump _EndUsedMove5Text + db "@" +; 105e5c + + +GetMoveGrammar: ; 105e5c +; store move grammar type in wd265 + + push bc +; c = move id + ld a, [wd265] + ld c, a + ld b, $0 + +; read grammar table + ld hl, MoveGrammar +.loop + ld a, [hli] +; end of table? + cp $ff + jr z, .end +; match? + cp c + jr z, .end +; advance grammar type at $00 + and a + jr nz, .loop +; next grammar type + inc b + jr .loop + +.end +; wd265 now contains move grammar + ld a, b + ld [wd265], a + +; we're done + pop bc + ret +; 105e7a + +MoveGrammar: ; 105e7a +; made redundant in localization +; each move is given an identifier for what usedmovetext to use (0-4): + +; 0 + db SWORDS_DANCE + db GROWTH + db STRENGTH + db HARDEN + db MINIMIZE + db SMOKESCREEN + db WITHDRAW + db DEFENSE_CURL + db EGG_BOMB + db SMOG + db BONE_CLUB + db FLASH + db SPLASH + db ACID_ARMOR + db BONEMERANG + db REST + db SHARPEN + db SUBSTITUTE + db MIND_READER + db SNORE + db PROTECT + db SPIKES + db ENDURE + db ROLLOUT + db SWAGGER + db SLEEP_TALK + db HIDDEN_POWER + db PSYCH_UP + db EXTREMESPEED + db 0 ; end set + +; 1 + db RECOVER + db TELEPORT + db BIDE + db SELFDESTRUCT + db AMNESIA + db FLAIL + db 0 ; end set + +; 2 + db MEDITATE + db AGILITY + db MIMIC + db DOUBLE_TEAM + db BARRAGE + db TRANSFORM + db STRUGGLE + db SCARY_FACE + db 0 ; end set + +; 3 + db POUND + db SCRATCH + db VICEGRIP + db WING_ATTACK + db FLY + db BIND + db SLAM + db HORN_ATTACK + db WRAP + db THRASH + db TAIL_WHIP + db LEER + db BITE + db GROWL + db ROAR + db SING + db PECK + db ABSORB + db STRING_SHOT + db EARTHQUAKE + db FISSURE + db DIG + db TOXIC + db SCREECH + db METRONOME + db LICK + db CLAMP + db CONSTRICT + db POISON_GAS + db BUBBLE + db SLASH + db SPIDER_WEB + db NIGHTMARE + db CURSE + db FORESIGHT + db CHARM + db ATTRACT + db ROCK_SMASH + db 0 ; end set + +; all other moves = 4 + db $ff ; end +; 105ed0 + + +UpdateUsedMoves: ; 105ed0 +; append move a to PlayerUsedMoves unless it has already been used + + push bc +; start of list + ld hl, PlayerUsedMoves +; get move id + ld b, a +; next count + ld c, NUM_MOVES + +.loop +; get move from the list + ld a, [hli] +; not used yet? + and a + jr z, .add +; already used? + cp b + jr z, .quit +; next byte + dec c + jr nz, .loop + +; if the list is full and the move hasn't already been used +; shift the list back one byte, deleting the first move used +; this can occur with struggle or a new learned move + ld hl, PlayerUsedMoves + 1 +; 1 = 2 + ld a, [hld] + ld [hli], a +; 2 = 3 + inc hl + ld a, [hld] + ld [hli], a +; 3 = 4 + inc hl + ld a, [hld] + ld [hl], a +; 4 = new move + ld a, b + ld [PlayerUsedMoves + 3], a + jr .quit + +.add +; go back to the byte we just inced from + dec hl +; add the new move + ld [hl], b + +.quit +; list updated + pop bc + ret +; 105ef6 diff --git a/engine/billspc.asm b/engine/billspc.asm index 1f46ee587..6c228a18e 100755 --- a/engine/billspc.asm +++ b/engine/billspc.asm @@ -2547,41 +2547,41 @@ String_e36f1: ; e36f1 ; e36f9 Functione36f9: ; e36f9 (38:76f9) - ld hl, MenuDataHeader_0xe377b + ld hl, .MenuDataHeader call LoadMenuDataHeader call InterpretMenu2 call ExitMenu ret c ld a, [MenuSelection2] cp $1 - jr z, .asm_e3734 + jr z, .Switch cp $2 - jr z, .asm_e3745 + jr z, .Name cp $3 - jr z, .asm_e3717 + jr z, .Print and a ret -.asm_e3717 +.Print call GetBoxCount and a - jr z, .asm_e372f + jr z, .EmptyBox ld e, l ld d, h ld a, [MenuSelection] dec a ld c, a - callba Function844bc + callba PrintPCBox call Functione35e2 and a ret -.asm_e372f +.EmptyBox call Functione37be and a ret -.asm_e3734 +.Switch ld a, [MenuSelection] dec a ld e, a @@ -2591,8 +2591,8 @@ Functione36f9: ; e36f9 (38:76f9) callba ChangeBoxSaveGame ret -.asm_e3745 - ld b, $4 +.Name + ld b, $4 ; box ld de, wd002 callba NamingScreen call ClearTileMap @@ -2616,15 +2616,15 @@ Functione36f9: ; e36f9 (38:76f9) hlcoord 11, 7 ; XXX -MenuDataHeader_0xe377b: ; 0xe377b +.MenuDataHeader: ; 0xe377b db $40 ; flags db 04, 11 ; start coords db 13, 19 ; end coords - dw MenuData2_0xe3783 + dw .MenuData2 db 1 ; default option ; 0xe3783 -MenuData2_0xe3783: ; 0xe3783 +.MenuData2: ; 0xe3783 db $80 ; flags db 4 ; items db "SWITCH@" diff --git a/engine/link.asm b/engine/link.asm index 77b63183e..96c5cb376 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -83,8 +83,8 @@ Function2805d: ; 2805d ld a, $fe ld [de], a ld hl, wc608 - ld de, wc6d0 - ld bc, $c8 + ld de, wPlayerTrademonSpecies + ld bc, wPlayerTrademonSpecies - wc608 call Function75f xor a ld [rIF], a @@ -105,7 +105,7 @@ Function2805d: ; 2805d ld de, OverworldMap ld bc, $1a2 call Function2879e - ld de, wc6d0 + ld de, wPlayerTrademonSpecies ld hl, wc813 ld c, $2 .asm_280fe @@ -226,7 +226,7 @@ Function28177: ; 28177 ld a, $fe ld [de], a ld hl, wc608 - ld de, wc6d0 + ld de, wPlayerTrademonSpecies ld bc, $c8 call Function75f ld a, [wLinkMode] @@ -250,7 +250,7 @@ Function28177: ; 28177 ld de, OverworldMap ld bc, $1b9 call Function2879e - ld de, wc6d0 + ld de, wPlayerTrademonSpecies ld hl, wc813 ld c, $2 .asm_28224 @@ -841,12 +841,12 @@ Function28595: ; 28595 cp LINK_TRADECENTER ret nz -; Fill 32 bytes at wc9f4 with $05 +; Fill 5 bytes at wc9f4 with $20 ld de, wc9f4 ld a, $20 call Function28682 -; Copy all the mail messages to $ca14 +; Copy all the mail messages to wc9f9 ld a, BANK(sPartyMail) call GetSRAMBank ld hl, sPartyMail @@ -855,19 +855,19 @@ Function28595: ; 28595 push bc ld bc, MAIL_MSG_LENGTH + 1 call CopyBytes - ld bc, MAIL_STRUCT_LENGTH - MAIL_MSG_LENGTH - 1 + ld bc, sPartyMon1MailEnd - sPartyMon1MailAuthor add hl, bc pop bc dec b jr nz, .loop2 -; Copy the mail metadata to $cada +; Copy the mail metadata to wcabf ld hl, sPartyMail ld b, PARTY_LENGTH .loop3 push bc ld bc, MAIL_MSG_LENGTH + 1 add hl, bc - ld bc, MAIL_STRUCT_LENGTH - MAIL_MSG_LENGTH - 1 + ld bc, sPartyMon1MailEnd - sPartyMon1MailAuthor call CopyBytes pop bc dec b @@ -903,19 +903,19 @@ Function28595: ; 28595 ld d, h ld e, l pop hl - ld bc, $21 + ld bc, sPartyMon1MailAuthor - sPartyMon1Mail add hl, bc pop bc dec b jr nz, .loop4 call CloseSRAM ld hl, wc9f9 - ld bc, $c6 + ld bc, PARTY_LENGTH * (sPartyMon1MailAuthor - sPartyMon1Mail) .loop5 ld a, [hl] cp $fe jr nz, .skip2 - ld [hl], $21 + ld [hl], sPartyMon1MailAuthor - sPartyMon1Mail .skip2 inc hl @@ -925,7 +925,7 @@ Function28595: ; 28595 jr nz, .loop5 ld hl, wcabf ld de, wcb13 - ld b, $54 + ld b, PARTY_LENGTH * (sPartyMon1MailEnd - sPartyMon1MailAuthor) ld c, $0 .loop6 inc c @@ -1798,7 +1798,7 @@ Function28b87: ; 28b87 call CopyBytes call CloseSRAM ld hl, PlayerName - ld de, wc6e7 + ld de, wPlayerTrademonSenderName ld bc, NAME_LENGTH call CopyBytes ld a, [wd002] @@ -1807,28 +1807,28 @@ Function28b87: ; 28b87 ld c, a add hl, bc ld a, [hl] - ld [wc6d0], a + ld [wPlayerTrademonSpecies], a push af ld a, [wd002] ld hl, PartyMonOT call SkipNames - ld de, wc6f2 + ld de, wPlayerTrademonOTName ld bc, NAME_LENGTH call CopyBytes ld hl, PartyMon1ID ld a, [wd002] call GetPartyLocation ld a, [hli] - ld [PlayerScreens], a + ld [wPlayerTrademonID], a ld a, [hl] - ld [EnemyScreens], a + ld [wPlayerTrademonID + 1], a ld hl, PartyMon1DVs ld a, [wd002] call GetPartyLocation ld a, [hli] - ld [wc6fd], a + ld [wPlayerTrademonDVs], a ld a, [hl] - ld [wPlayerMinimized], a + ld [wPlayerTrademonDVs + 1], a ld a, [wd002] ld hl, PartyMon1Species call GetPartyLocation @@ -1836,9 +1836,9 @@ Function28b87: ; 28b87 ld c, l callba GetCaughtGender ld a, c - ld [wc701], a + ld [wPlayerTrademonCaughtData], a ld hl, wd26b - ld de, wc719 + ld de, wOTTrademonSenderName ld bc, NAME_LENGTH call CopyBytes ld a, [wd003] @@ -1847,27 +1847,27 @@ Function28b87: ; 28b87 ld c, a add hl, bc ld a, [hl] - ld [wc702], a + ld [wOTTrademonSpecies], a ld a, [wd003] ld hl, OTPartyMonOT call SkipNames - ld de, wc724 + ld de, wOTTrademonOTName ld bc, NAME_LENGTH call CopyBytes ld hl, OTPartyMon1ID ld a, [wd003] call GetPartyLocation ld a, [hli] - ld [wEnemyWrapCount], a + ld [wOTTrademonID], a ld a, [hl] - ld [wPlayerCharging], a + ld [wOTTrademonID + 1], a ld hl, OTPartyMon1DVs ld a, [wd003] call GetPartyLocation ld a, [hli] - ld [wEnemyTrappingMove], a + ld [wOTTrademonDVs], a ld a, [hl] - ld [wPlayerWrapCount], a + ld [wOTTrademonDVs + 1], a ld a, [wd003] ld hl, OTPartyMon1Species call GetPartyLocation @@ -1875,7 +1875,7 @@ Function28b87: ; 28b87 ld c, l callba GetCaughtGender ld a, c - ld [wEnemyCharging], a + ld [wOTTrademonCaughtData], a ld a, [wd002] ld [CurPartyMon], a ld hl, PartySpecies @@ -1908,14 +1908,14 @@ Function28b87: ; 28b87 call GetSGBLayout ld a, [hLinkPlayerNumber] cp $1 - jr z, .asm_28de4 - predef Function28f24 - jr .asm_28de9 + jr z, .player_2 + predef TradeAnimation + jr .done_animation -.asm_28de4 - predef Function28f63 +.player_2 + predef TradeAnimationPlayer2 -.asm_28de9 +.done_animation pop af ld c, a ld [CurPartyMon], a @@ -2050,1542 +2050,7 @@ Function28f09: ; 28f09 ret ; 28f24 -Function28f24: ; 28f24 - xor a - ld [wcf66], a - ld hl, wc6e7 - ld de, wc719 - call Function297ff - ld hl, wc6d0 - ld de, wc702 - call Function29814 - ld de, .data_28f3f - jr Function28fa1 - -.data_28f3f - db $1b - db $1 - db $1c - db $21 - db $2d - db $27 - db $23 - db $3 - db $25 - db $28 - db $25 - db $1e - db $29 - db $6 - db $16 - db $1f - db $19 - db $17 - db $22 - db $1f - db $2a - db $e - db $3 - db $24 - db $5 - db $25 - db $2 - db $27 - db $25 - db $1d - db $2c - db $2e - db $1e - db $18 - db $1f - db $2b - -Function28f63: ; 28f63 - xor a - ld [wcf66], a - ld hl, wc719 - ld de, wc6e7 - call Function297ff - ld hl, wc702 - ld de, wc6d0 - call Function29814 - ld de, .data_28f7e - jr Function28fa1 - -.data_28f7e - db $1a - db $17 - db $22 - db $1f - db $2a - db $6 - db $3 - db $24 - db $5 - db $25 - db $2 - db $27 - db $25 - db $1d - db $2c - db $2f - db $1e - db $18 - db $1f - db $1b - db $1 - db $1c - db $22 - db $27 - db $23 - db $3 - db $25 - db $28 - db $25 - db $1e - db $29 - db $e - db $16 - db $1f - db $2b - -Function28fa1: ; 28fa1 - ld hl, BattleEnded - ld [hl], e - inc hl - ld [hl], d - ld a, [hMapAnims] - push af - xor a - ld [hMapAnims], a - ld hl, VramState - ld a, [hl] - push af - res 0, [hl] - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - call Function28fdb - ld a, [wcf66] - and a - jr nz, .asm_28fca - ld de, MUSIC_EVOLUTION - call PlayMusic2 -.asm_28fca - call Function29082 - jr nc, .asm_28fca - pop af - ld [Options], a - pop af - ld [VramState], a - pop af - ld [hMapAnims], a - ret -; 28fdb - -Function28fdb: ; 28fdb - xor a - ld [wJumptableIndex], a - call ClearBGPalettes - call ClearSprites - call ClearTileMap - call DisableLCD - call LoadFontsBattleExtra - callab Function8cf53 - ld a, [hCGB] - and a - jr z, .asm_2900b - ld a, $1 - ld [rVBK], a - ld hl, VTiles0 - ld bc, sScratch - VTiles0 - xor a - call ByteFill - ld a, $0 - ld [rVBK], a - -.asm_2900b - hlbgcoord 0, 0 - ld bc, sScratch - VBGMap0 - ld a, " " - call ByteFill - ld hl, TradeGameBoyLZ - ld de, VTiles2 tile $31 - call Decompress - ld hl, TradeArrowGFX - ld de, VTiles1 tile $6d - ld bc, $10 - ld a, BANK(TradeArrowGFX) - call FarCopyBytes - ld hl, TradeArrowGFX + $10 - ld de, VTiles1 tile $6e - ld bc, $10 - ld a, BANK(TradeArrowGFX) - call FarCopyBytes - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - callba Function4d7fd - call EnableLCD - call Function2982b - ld a, [wc6d0] - ld hl, wc6fd - ld de, VTiles0 - call Function29491 - ld a, [wc702] - ld hl, wEnemyTrappingMove - ld de, VTiles0 tile $31 - call Function29491 - ld a, [wc6d0] - ld de, wc6d1 - call Function294a9 - ld a, [wc702] - ld de, wc703 - call Function294a9 - call Function297ed - ret -; 29082 - -Function29082: ; 29082 - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_2909b - call Function290a0 - callab Function8cf69 - ld hl, wcf65 - inc [hl] - call DelayFrame - and a - ret - -.asm_2909b - call LoadStandardFont - scf - ret -; 290a0 - -Function290a0: ; 290a0 - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, JumpTable290af -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 290af - -JumpTable290af: ; 290af - dw Function29114 - dw Function2942e - dw Function29461 - dw Function29348 - dw Function2937e - dw Function29391 - dw Function29129 - dw Function291af - dw Function291c4 - dw Function291d9 - dw Function2925d - dw Function29220 - dw Function2925d - dw Function29229 - dw Function2913c - dw Function2925d - dw Function291e8 - dw Function291fd - dw Function29211 - dw Function29220 - dw Function2925d - dw Function29229 - dw Function29701 - dw Function2973c - dw Function2975c - dw Function2977f - dw Function297a4 - dw Function293a6 - dw Function293b6 - dw Function293d2 - dw Function293de - dw Function293ea - dw Function2940c - dw Function294e7 - dw Function294f0 - dw Function2961b - dw Function2962c - dw Function29879 - dw Function29886 - dw Function29649 - dw Function29660 - dw Function2926d - dw Function29277 - dw Function29123 - dw Function29487 - dw Function294f9 - dw Function29502 - dw Function2950c -; 2910f - -Function2910f: ; 2910f - ld hl, wJumptableIndex - inc [hl] - ret -; 29114 - -Function29114: ; 29114 - ld hl, BattleEnded - ld e, [hl] - inc hl - ld d, [hl] - ld a, [de] - ld [wJumptableIndex], a - inc de - ld [hl], d - dec hl - ld [hl], e - ret -; 29123 - -Function29123: ; 29123 - ld hl, wJumptableIndex - set 7, [hl] - ret -; 29129 - -Function29129: ; 29129 - ld a, $ed - call Function292f6 - ld a, [wc74c] - ld [wd265], a - xor a - ld de, $2c58 - ld b, $0 - jr Function2914e - -Function2913c: ; 2913c - ld a, $ee - call Function292f6 - ld a, [wc74d] - ld [wd265], a - ld a, $2 - lb de, $4c, $94 - ld b, $4 - -Function2914e: ; 2914e - push bc - push de - push bc - push de - push af - call DisableLCD - callab Function8cf53 - hlbgcoord 20, 3 - ld bc, $c - ld a, $60 - call ByteFill - pop af - call Function29281 - xor a - ld [hSCX], a - ld a, $7 - ld [hWX], a - ld a, $70 - ld [hWY], a - call EnableLCD - call Function2985a - pop de - ld a, $11 - call _InitSpriteAnimStruct - ld hl, $b - add hl, bc - pop bc - ld [hl], b - pop de - ld a, $12 - call _InitSpriteAnimStruct - ld hl, $b - add hl, bc - pop bc - ld [hl], b - call WaitBGMap - ld b, SCGB_1B - call GetSGBLayout - ld a, $e4 - call DmgToCgbBGPals - ld a, $d0 - call Functioncf8 - call Function2910f - ld a, $5c - ld [wcf64], a - ret -; 291af - -Function291af: ; 291af - call Function2981d - ld a, [hSCX] - add $2 - ld [hSCX], a - cp $50 - ret nz - ld a, $1 - call Function29281 - call Function2910f - ret -; 291c4 - -Function291c4: ; 291c4 - call Function2981d - ld a, [hSCX] - add $2 - ld [hSCX], a - cp $a0 - ret nz - ld a, $2 - call Function29281 - call Function2910f - ret -; 291d9 - -Function291d9: ; 291d9 - call Function2981d - ld a, [hSCX] - add $2 - ld [hSCX], a - and a - ret nz - call Function2910f - ret -; 291e8 - -Function291e8: ; 291e8 - call Function2981d - ld a, [hSCX] - sub $2 - ld [hSCX], a - cp $b0 - ret nz - ld a, $1 - call Function29281 - call Function2910f - ret -; 291fd - -Function291fd: ; 291fd - call Function2981d - ld a, [hSCX] - sub $2 - ld [hSCX], a - cp $60 - ret nz - xor a - call Function29281 - call Function2910f - ret -; 29211 - -Function29211: ; 29211 - call Function2981d - ld a, [hSCX] - sub $2 - ld [hSCX], a - and a - ret nz - call Function2910f - ret -; 29220 - -Function29220: ; 29220 - ld a, $80 - ld [wcf64], a - call Function2910f - ret -; 29229 - -Function29229: ; 29229 - call ClearBGPalettes - call ClearTileMap - call ClearSprites - call DisableLCD - callab Function8cf53 - hlbgcoord 0, 0 - ld bc, sScratch - VBGMap0 - ld a, " " - call ByteFill - xor a - ld [hSCX], a - ld a, $90 - ld [hWY], a - call EnableLCD - call Function2982b - call WaitBGMap - call Function297ed - call Function29114 - ret -; 2925d - -Function2925d: ; 2925d - call Function2981d - ld hl, wcf64 - ld a, [hl] - and a - jr z, .asm_29269 - dec [hl] - ret - -.asm_29269 - call Function2910f - ret -; 2926d - -Function2926d: ; 2926d - call Function29114 - ld de, SFX_GIVE_TRADEMON - call PlaySFX - ret -; 29277 - -Function29277: ; 29277 - call Function29114 - ld de, SFX_GET_TRADEMON - call PlaySFX - ret -; 29281 - -Function29281: ; 29281 - and 3 - ld e, a - ld d, 0 - ld hl, Jumptable_2928f -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 2928f - -Jumptable_2928f: ; 2928f - dw Function29297 - dw Function292af - dw Function292be - dw Function29297 -; 29297 - -Function29297: ; 29297 - call Function297cf - hlcoord 9, 3 - ld [hl], $5b - inc hl - ld bc, $a - ld a, $60 - call ByteFill - hlcoord 3, 2 - call Function292ec - ret -; 292af - -Function292af: ; 292af - call Function297cf - hlcoord 0, 3 - ld bc, SCREEN_WIDTH - ld a, $60 - call ByteFill - ret -; 292be - -Function292be: ; 292be - call Function297cf - hlcoord 0, 3 - ld bc, $11 - ld a, $60 - call ByteFill - hlcoord 17, 3 - ld a, $5d - ld [hl], a - ld a, $61 - ld de, SCREEN_WIDTH - ld c, $3 -.asm_292d9 - add hl, de - ld [hl], a - dec c - jr nz, .asm_292d9 - add hl, de - ld a, $5f - ld [hld], a - ld a, $5b - ld [hl], a - hlcoord 10, 6 - call Function292ec - ret -; 292ec - -Function292ec: ; 292ec - ld de, TradeGameBoyTilemap - lb bc, 8, 6 - call Function297db - ret -; 292f6 - -Function292f6: ; 292f6 - push af - call ClearBGPalettes - call WaitTop - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - call ClearTileMap - hlcoord 0, 0 - ld bc, SCREEN_WIDTH - ld a, "─" - call ByteFill - hlcoord 0, 1 - ld de, wc736 - call PlaceString - ld hl, wc741 - ld de, 0 -.asm_2931e - ld a, [hli] - cp "@" - jr z, .asm_29326 - dec de - jr .asm_2931e - -.asm_29326 - hlcoord 0, 4 - add hl, de - ld de, wc741 - call PlaceString - hlcoord 7, 2 - ld bc, 6 - pop af - call ByteFill - call WaitBGMap - call WaitTop - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - call ClearTileMap - ret -; 29348 - -Function29348: ; 29348 - call ClearTileMap - call WaitTop - ld a, $a0 - ld [hSCX], a - call DelayFrame - hlcoord 8, 2 - ld de, Tilemap_298f7 - lb bc, 3, 12 - call Function297db - call WaitBGMap - ld b, SCGB_1B - call GetSGBLayout - ld a, $e4 - call DmgToCgbBGPals - ld de, $e4e4 - call DmgToCgbObjPals - ld de, SFX_POTION - call PlaySFX - call Function2910f - ret -; 2937e - -Function2937e: ; 2937e - ld a, [hSCX] - and a - jr z, .asm_29388 - add $4 - ld [hSCX], a - ret - -.asm_29388 - ld c, $50 - call DelayFrames - call Function29114 - ret -; 29391 - -Function29391: ; 29391 - ld a, [hSCX] - cp $a0 - jr z, .asm_2939c - sub $4 - ld [hSCX], a - ret - -.asm_2939c - call ClearTileMap - xor a - ld [hSCX], a - call Function29114 - ret -; 293a6 - -Function293a6: ; 293a6 - ld a, $8f - ld [hWX], a - ld a, $88 - ld [hSCX], a - ld a, $50 - ld [hWY], a - call Function29114 - ret -; 293b6 - -Function293b6: ; 293b6 - ld a, [hWX] - cp $7 - jr z, .asm_293c7 - sub $4 - ld [hWX], a - ld a, [hSCX] - sub $4 - ld [hSCX], a - ret - -.asm_293c7 - ld a, $7 - ld [hWX], a - xor a - ld [hSCX], a - call Function29114 - ret -; 293d2 - -Function293d2: ; 293d2 - ld a, $7 - ld [hWX], a - ld a, $50 - ld [hWY], a - call Function29114 - ret -; 293de - -Function293de: ; 293de - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - call Function29114 - ret -; 293ea - -Function293ea: ; 293ea - call WaitTop - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - call WaitBGMap - ld a, $7 - ld [hWX], a - xor a - ld [hWY], a - call DelayFrame - call WaitTop - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - call ClearTileMap - call Function2910f - ret -; 2940c - -Function2940c: ; 2940c - ld a, [hWX] - cp $a1 - jr nc, .asm_29417 - add $4 - ld [hWX], a - ret - -.asm_29417 - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - call WaitBGMap - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - call Function29114 - ret -; 2942e - -Function2942e: ; 2942e - call Function2951f - ld a, [wc6d0] - ld [CurPartySpecies], a - ld a, [wc6fd] - ld [TempMonDVs], a - ld a, [wPlayerMinimized] - ld [TempMonDVs + 1], a - ld b, SCGB_1A - call GetSGBLayout - ld a, $e4 - call DmgToCgbBGPals - call Function294bb - - ld a, [wc6d0] - call GetCryIndex - jr c, .asm_2945d - ld e, c - ld d, b - call PlayCryHeader -.asm_2945d - - call Function29114 - ret -; 29461 - -Function29461: ; 29461 - call Function29549 - ld a, [wc702] - ld [CurPartySpecies], a - ld a, [wEnemyTrappingMove] - ld [TempMonDVs], a - ld a, [wPlayerWrapCount] - ld [TempMonDVs + 1], a - ld b, SCGB_1A - call GetSGBLayout - ld a, $e4 - call DmgToCgbBGPals - call Function294c0 - call Function29114 - ret -; 29487 - -Function29487: ; 29487 - callba Function4d81e - call Function29114 - ret -; 29491 - -Function29491: ; 29491 - push de - push af - predef GetUnownLetter - pop af - ld [CurPartySpecies], a - ld [CurSpecies], a - call GetBaseData - pop de - predef GetFrontpic - ret -; 294a9 - -Function294a9: ; 294a9 - push de - ld [wd265], a - call GetPokemonName - ld hl, StringBuffer1 - pop de - ld bc, NAME_LENGTH - call CopyBytes - ret -; 294bb - -Function294bb: ; 294bb - ld de, VTiles0 - jr Function294c3 - -Function294c0: ; 294c0 - ld de, VTiles0 tile $31 - -Function294c3: ; 294c3 - call DelayFrame - ld hl, VTiles2 - ld bc, $a31 - call Request2bpp - call WaitTop - call Function297cf - hlcoord 7, 2 - xor a - ld [hFillBox], a - lb bc, 7, 7 - predef FillBox - call WaitBGMap - ret -; 294e7 - -Function294e7: ; 294e7 - ld c, $50 - call DelayFrames - call Function29114 - ret -; 294f0 - -Function294f0: ; 294f0 - ld c, $28 - call DelayFrames - call Function29114 - ret -; 294f9 - -Function294f9: ; 294f9 - ld c, $60 - call DelayFrames - call Function29114 - ret -; 29502 - -Function29502: ; 29502 - call Function29516 - ret nz - ld c, $50 - call DelayFrames - ret -; 2950c - -Function2950c: ; 2950c - call Function29516 - ret nz - ld c, $b4 - call DelayFrames - ret -; 29516 - -Function29516: ; 29516 - call Function29114 - ld a, [wc702] - cp $fd - ret -; 2951f - -Function2951f: ; 2951f - ld de, wc6d0 - ld a, [de] - cp $fd - jr z, Function295a1 - call Function29573 - ld de, wc6d0 - call Function295e3 - ld de, wc6d1 - call Function295ef - ld a, [wc701] - ld de, wc6f2 - call Function295f6 - ld de, PlayerScreens - call Function29611 - call Function295d8 - ret -; 29549 - -Function29549: ; 29549 - ld de, wc702 - ld a, [de] - cp $fd - jr z, Function295a1 - call Function29573 - ld de, wc702 - call Function295e3 - ld de, wc703 - call Function295ef - ld a, [wEnemyCharging] - ld de, wc724 - call Function295f6 - ld de, wEnemyWrapCount - call Function29611 - call Function295d8 - ret -; 29573 - -Function29573: ; 29573 - call WaitTop - call Function297cf - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - hlcoord 3, 0 - ld b, $6 - ld c, $d - call TextBox - hlcoord 4, 0 - ld de, String29591 - call PlaceString - ret -; 29591 - -String29591: ; 29591 - db "─── №." - next "" - next "OT/" - next $73, "№.@" -; 295a1 - -Function295a1: ; 295a1 - call WaitTop - call Function297cf - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - hlcoord 3, 0 - ld b, $6 - ld c, $d - call TextBox - hlcoord 4, 2 - ld de, String295c2 - call PlaceString - call Function295d8 - ret -; 295c2 - -String295c2: ; 295c2 - db "EGG" - next "OT/?????" - next $73, "№.?????@" -; 295d8 - -Function295d8: ; 295d8 - call WaitBGMap - call WaitTop - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - ret -; 295e3 - -Function295e3: ; 295e3 - hlcoord 10, 0 - lb bc, PRINTNUM_LEADINGZEROS | 1, 3 - call PrintNum - ld [hl], $7f - ret -; 295ef - -Function295ef: ; 295ef - hlcoord 4, 2 - call PlaceString - ret -; 295f6 - -Function295f6: ; 295f6 - cp 3 - jr c, .asm_295fb - xor a - -.asm_295fb - push af - hlcoord 7, 4 - call PlaceString - inc bc - pop af - ld hl, Unknown_2960e - ld d, 0 - ld e, a - add hl, de - ld a, [hl] - ld [bc], a - ret -; 2960e - -Unknown_2960e: ; 2960e - db " ", "♂", "♀" -; 29611 - -Function29611: ; 29611 - hlcoord 7, 6 - lb bc, PRINTNUM_LEADINGZEROS | 2, 5 - call PrintNum - ret -; 2961b - -Function2961b: ; 2961b - depixel 10, 11, 4, 0 - ld a, $e - call _InitSpriteAnimStruct - call Function29114 - ld a, $20 - ld [wcf64], a - ret -; 2962c - -Function2962c: ; 2962c - depixel 10, 11, 4, 0 - ld a, $e - call _InitSpriteAnimStruct - ld hl, $b - add hl, bc - ld [hl], $1 - ld hl, $7 - add hl, bc - ld [hl], $dc - call Function29114 - ld a, $38 - ld [wcf64], a - ret -; 29649 - -Function29649: ; 29649 - depixel 10, 11, 4, 0 - ld a, $f - call _InitSpriteAnimStruct - call Function29114 - ld a, $10 - ld [wcf64], a - ld de, SFX_BALL_POOF - call PlaySFX - ret -; 29660 - -Function29660: ; 29660 - ld a, $e4 - call Functioncf8 - depixel 5, 11 - ld a, $10 - call _InitSpriteAnimStruct - call Function29114 - ld a, $40 - ld [wcf64], a - ret -; 29676 - -Function29676: ; 29676 (a:5676) - ld hl, $b - add hl, bc - ld e, [hl] - ld d, 0 - ld hl, Jumptable_29686 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 29686 - -Jumptable_29686: ; 29686 (a:5686) - dw Function2969a - dw Function296a4 - dw Function296af - dw Function296bd - dw Function296cf - dw Function296dd - dw Function296f2 -; 2969a - -Function29694: ; 29694 (a:5694) - ld hl, $b - add hl, bc - inc [hl] - ret - -Function2969a: ; 2969a (a:569a) - call Function29694 - ld hl, $c - add hl, bc - ld [hl], $80 - ret - -Function296a4: ; 296a4 (a:56a4) - ld hl, $c - add hl, bc - ld a, [hl] - dec [hl] - and a - ret nz - call Function29694 - -Function296af: ; 296af (a:56af) - ld hl, $4 - add hl, bc - ld a, [hl] - cp $94 - jr nc, .asm_296ba - inc [hl] - ret -.asm_296ba - call Function29694 - -Function296bd: ; 296bd (a:56bd) - ld hl, $5 - add hl, bc - ld a, [hl] - cp $4c - jr nc, .asm_296c8 - inc [hl] - ret -.asm_296c8 - ld hl, $ - add hl, bc - ld [hl], $0 - ret - -Function296cf: ; 296cf (a:56cf) - ld hl, $5 - add hl, bc - ld a, [hl] - cp $2c - jr z, .asm_296da - dec [hl] - ret -.asm_296da - call Function29694 - -Function296dd: ; 296dd (a:56dd) - ld hl, $4 - add hl, bc - ld a, [hl] - cp $58 - jr z, .asm_296e8 - dec [hl] - ret -.asm_296e8 - call Function29694 - ld hl, $c - add hl, bc - ld [hl], $80 - ret - -Function296f2: ; 296f2 (a:56f2) - ld hl, $c - add hl, bc - ld a, [hl] - dec [hl] - and a - ret nz - ld hl, $ - add hl, bc - ld [hl], $0 - ret -; 29701 (a:5701) - -Function29701: ; 29701 - ld a, [wLinkMode] - cp LINK_TIMECAPSULE - jr z, .asm_29725 - ld hl, UnknownText_0x29737 - call PrintText - ld c, $bd - call DelayFrames - ld hl, UnknownText_0x29732 - call PrintText - call Function297c9 - ld c, $80 - call DelayFrames - call Function29114 - ret - -.asm_29725 - ld hl, UnknownText_0x29732 - call PrintText - call Function297c9 - call Function29114 - ret -; 29732 - -UnknownText_0x29732: ; 0x29732 - ; was sent to @ . - text_jump UnknownText_0x1bc6e9 - db "@" -; 0x29737 - -UnknownText_0x29737: ; 0x29737 - ; - text_jump UnknownText_0x1bc701 - db "@" -; 0x2973c - -Function2973c: ; 2973c - ld hl, UnknownText_0x29752 - call PrintText - call Function297c9 - ld hl, UnknownText_0x29757 - call PrintText - call Function297c9 - call Function29114 - ret -; 29752 - -UnknownText_0x29752: ; 0x29752 - ; bids farewell to - text_jump UnknownText_0x1bc703 - db "@" -; 0x29757 - -UnknownText_0x29757: ; 0x29757 - ; . - text_jump UnknownText_0x1bc719 - db "@" -; 0x2975c - -Function2975c: ; 2975c - call WaitTop - hlcoord 0, 10 - ld bc, 8 * SCREEN_WIDTH - ld a, " " - call ByteFill - call WaitBGMap - ld hl, UnknownText_0x2977a - call PrintText - call Function297c9 - call Function29114 - ret -; 2977a - -UnknownText_0x2977a: ; 0x2977a - ; Take good care of @ . - text_jump UnknownText_0x1bc71f - db "@" -; 0x2977f - -Function2977f: ; 2977f - ld hl, UnknownText_0x2979a - call PrintText - call Function297c9 - ld hl, UnknownText_0x2979f - call PrintText - call Function297c9 - ld c, $e - call DelayFrames - call Function29114 - ret -; 2979a - -UnknownText_0x2979a: ; 0x2979a - ; For @ 's @ , - text_jump UnknownText_0x1bc739 - db "@" -; 0x2979f - -UnknownText_0x2979f: ; 0x2979f - ; sends @ . - text_jump UnknownText_0x1bc74c - db "@" -; 0x297a4 - -Function297a4: ; 297a4 - ld hl, UnknownText_0x297bf - call PrintText - call Function297c9 - ld hl, UnknownText_0x297c4 - call PrintText - call Function297c9 - ld c, $e - call DelayFrames - call Function29114 - ret -; 297bf - -UnknownText_0x297bf: ; 0x297bf - ; will trade @ @ - text_jump UnknownText_0x1bc75e - db "@" -; 0x297c4 - -UnknownText_0x297c4: ; 0x297c4 - ; for @ 's @ . - text_jump UnknownText_0x1bc774 - db "@" -; 0x297c9 - -Function297c9: ; 297c9 - ld c, $50 - call DelayFrames - ret -; 297cf - -Function297cf: ; 297cf - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - call ByteFill - ret -; 297db - -Function297db: ; 297db -.asm_297db - push bc - push hl -.asm_297dd - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .asm_297dd - pop hl - ld bc, SCREEN_WIDTH - add hl, bc - pop bc - dec b - jr nz, .asm_297db - ret -; 297ed - -Function297ed: ; 297ed - ld a, [hSGB] - and a - ld a, $e4 - jr z, .asm_297f6 - ld a, $f0 - -.asm_297f6 - call Functioncf8 - ld a, $e4 - call DmgToCgbBGPals - ret -; 297ff - -Function297ff: ; 297ff - push de - ld de, wc736 - ld bc, NAME_LENGTH - call CopyBytes - pop hl - ld de, wc741 - ld bc, NAME_LENGTH - call CopyBytes - ret -; 29814 - -Function29814: ; 29814 - ld a, [hl] - ld [wc74c], a - ld a, [de] - ld [wc74d], a - ret -; 2981d - -Function2981d: ; 2981d - ld a, [wcf65] - and $7 - ret nz - ld a, [rBGP] - xor $3c - call DmgToCgbBGPals - ret -; 2982b - -Function2982b: ; 2982b - call DelayFrame - ld de, TradeBallGFX - ld hl, VTiles0 tile $62 - lb bc, BANK(TradeBallGFX), $6 - call Request2bpp - ld de, TradePoofGFX - ld hl, VTiles0 tile $68 - lb bc, BANK(TradePoofGFX), $c - call Request2bpp - ld de, TradeCableGFX - ld hl, VTiles0 tile $74 - lb bc, BANK(TradeCableGFX), $4 - call Request2bpp - xor a - ld hl, wc300 - ld [hli], a - ld [hl], $62 - ret -; 2985a - -Function2985a: ; 2985a - call DelayFrame - ld e, $3 - callab Function8e83f - ld de, TradeBubbleGFX - ld hl, VTiles0 tile $72 - lb bc, BANK(TradeBubbleGFX), $4 - call Request2bpp - xor a - ld hl, wc300 - ld [hli], a - ld [hl], $62 - ret -; 29879 - -Function29879: ; 29879 - ld hl, wcf64 - ld a, [hl] - and a - jr z, .asm_29882 - dec [hl] - ret - -.asm_29882 - call Function29114 - ret -; 29886 - -Function29886: ; 29886 - ld hl, wcf64 - ld a, [hl] - and a - jr z, .asm_2988f - dec [hl] - ret - -.asm_2988f - call Function29114 - ret -; 29893 - - -Function29893: ; 29893 -; This function is unreferenced. -; It was meant for use in Japanese versions, so the -; constant used for copy length was changed by accident. - - ld hl, Unknown_298b5 - - ld a, [hli] - ld [wc6d0], a - ld de, wc6e7 - ld c, 13 ; jp: 8 -.asm_2989f - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .asm_2989f - - ld a, [hli] - ld [wc702], a - ld de, wc719 - ld c, 13 ; jp: 8 -.asm_298ae - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .asm_298ae - ret -; 298b5 - -Unknown_298b5: ; 298b5 - db $03, "ゲーフり@@", $23, $01 ; GAME FREAK - db $06, "クりーチャ@", $56, $04 ; Creatures Inc. -; 298c7 - - -TradeGameBoyTilemap: ; 298c7 -; 6x8 - db $31, $32, $32, $32, $32, $33 - db $34, $35, $36, $36, $37, $38 - db $34, $39, $3a, $3a, $3b, $38 - db $3c, $3d, $3e, $3e, $3f, $40 - db $41, $42, $43, $43, $44, $45 - db $46, $47, $43, $48, $49, $4a - db $41, $43, $4b, $4c, $4d, $4e - db $4f, $50, $50, $50, $51, $52 -; 297f7 - -Tilemap_298f7: ; 297f7 -; 12x3 - db $43, $55, $56, $53, $53, $53, $53, $53, $53, $53, $53, $53 - db $43, $57, $58, $54, $54, $54, $54, $54, $54, $54, $54, $54 - db $43, $59, $5a, $43, $43, $43, $43, $43, $43, $43, $43, $43 -; 2991b - -TradeArrowGFX: INCBIN "gfx/trade/arrow.2bpp" -TradeCableGFX: INCBIN "gfx/trade/cable.2bpp" -TradeBubbleGFX: INCBIN "gfx/trade/bubble.2bpp" -TradeGameBoyLZ: INCBIN "gfx/trade/game_boy.2bpp.lz" -TradeBallGFX: INCBIN "gfx/trade/ball.2bpp" -TradePoofGFX: INCBIN "gfx/trade/poof.2bpp" +INCLUDE "engine/trade/animation.asm" Special_CheckTimeCapsuleCompatibility: ; 29bfb ; Checks to see if your Party is compatible with the generation 1 games. Returns the following in ScriptVar: diff --git a/engine/mail.asm b/engine/mail.asm index 1cf1a13a7..7aa6b30c1 100755 --- a/engine/mail.asm +++ b/engine/mail.asm @@ -489,7 +489,7 @@ Function4484a: ; 0x4484a ld a, BANK(sMailboxCount) call GetSRAMBank pop af - ld hl, sMailbox1MailType + ld hl, sMailbox1Type ld bc, MAIL_STRUCT_LENGTH call AddNTimes ld a, [hl] diff --git a/engine/main_menu.asm b/engine/main_menu.asm index 428858a74..efab46cda 100755 --- a/engine/main_menu.asm +++ b/engine/main_menu.asm @@ -161,9 +161,9 @@ Function49da4: ; 49da4 cp $1 ld a, $1 ret nz - ld a, BANK(s0_abe5) + ld a, BANK(sNumDailyMysteryGiftPartnerIDs) call GetSRAMBank - ld a, [s0_abe5] + ld a, [sNumDailyMysteryGiftPartnerIDs] cp $ff call CloseSRAM jr nz, .done diff --git a/engine/mysterygift.asm b/engine/mysterygift.asm new file mode 100755 index 000000000..43cbe52d1 --- /dev/null +++ b/engine/mysterygift.asm @@ -0,0 +1,1702 @@ +DoMysteryGift: ; 1048ba (41:48ba) + call ClearTileMap + call ClearSprites + call WaitBGMap + call Function105153 + hlcoord 3, 8 + ld de, .String_PressAToLink_BToCancel + call PlaceString + call WaitBGMap + callba Function2c642 + call Function1050fb + ld a, $2 + ld [wca01], a + ld a, $14 + ld [wca02], a + ld a, [rIE] + push af + call Function104a95 + ld d, a + xor a + ld [rIF], a + pop af + ld [rIE], a + push de + call ClearTileMap + call EnableLCD + call WaitBGMap + ld b, SCGB_08 + call GetSGBLayout + call SetPalettes + pop de + hlcoord 2, 8 + ld a, d + ld de, .Text_LinkCanceled ; Link has been canceled + cp $10 + jp z, .LinkCanceled + cp $6c + jp nz, .CommunicationError + ld a, [wc900] + cp $3 + jr z, .skip_checks + call .CheckAlreadyGotFiveGiftsToday + ld hl, .Text_MaxFiveGifts ; Only 5 gifts a day + jp nc, .PrintTextAndExit + call .CheckAlreadyGotAGiftFromThatPerson + ld hl, .Text_MaxOneGiftPerPerson ; Only one gift a day per person + jp c, .PrintTextAndExit +.skip_checks + ld a, [wc962] + and a + jp nz, .GiftWaiting + ld a, [wc912] + and a + jp nz, .FriendNotReady + ld a, [wc900] + cp $3 + jr z, .skip_append_save + call .AddMysteryGiftPartnerID + ld a, [wc900] + cp $4 + jr z, .skip_append_save + call .SaveMysteryGiftTrainerName + callba RestoreMobileEventIndex + callba MobileFn_1060a9 + callba BackupMobileEventIndex +.skip_append_save + ld a, [wc90f] + and a + jr z, .item + ld a, [wc911] + ld c, a + callba MysteryGiftGetDecoration + push bc + call Function105069 + pop bc + jr nz, .item + callab GetDecorationName_c + ld h, d + ld l, e + ld de, StringBuffer1 + ld bc, ITEM_NAME_LENGTH + call CopyBytes + ld hl, .Text_SentToHome ; sent decoration to home + jr .PrintTextAndExit + +.item + call GetMysteryGiftBank + ld a, [wc910] + ld c, a + callba MysteryGiftGetItemHeldEffect + ld a, c + ld [sBackupMysteryGiftItem], a + ld [wNamedObjectIndexBuffer], a + call CloseSRAM + call GetItemName + ld hl, .Text_Sent ; sent item + jr .PrintTextAndExit + +.LinkCanceled: ; 1049af (41:49af) + ld hl, .Text_LinkCanceled ; Link has been canceled + jr .PrintTextAndExit + +.CommunicationError: ; 1049b4 (41:49b4) + ld hl, .Text_CommunicationError ; Communication error + call PrintText + jp DoMysteryGift + +.GiftWaiting: ; 1049bd (41:49bd) + ld hl, .Text_ReceiveGiftAtCounter ; receive gift at counter + jr .PrintTextAndExit + +.FriendNotReady: ; 1049c2 (41:49c2) + ld hl, .Text_FriendNotReady ; friend not ready + +.PrintTextAndExit: ; 1049c5 (41:49c5) + call PrintText + ld a, $e3 + ld [rLCDC], a + ret +; 1049cd (41:49cd) + +.String_PressAToLink_BToCancel: ; 1049cd + db "Press A to" + next "link IR-Device" + next "Press B to" + next "cancel it." + db "@" +; 1049fd + +.Text_LinkCanceled: ; 1049fd + text_jump UnknownText_0x1c0436 + db "@" +; 104a02 + +.Text_CommunicationError: ; 104a02 + text_jump UnknownText_0x1c0454 + db "@" +; 104a07 + +.Text_ReceiveGiftAtCounter: ; 104a07 + text_jump UnknownText_0x1c046a + db "@" +; 104a0c + +.Text_FriendNotReady: ; 104a0c + text_jump UnknownText_0x1c048e + db "@" +; 104a11 + +.Text_MaxFiveGifts: ; 104a11 + text_jump UnknownText_0x1c04a7 + db "@" +; 104a16 + +.Text_MaxOneGiftPerPerson: ; 104a16 + text_jump UnknownText_0x1c04c6 + db "@" +; 104a1b + +.Text_Sent: ; 104a1b + text_jump UnknownText_0x1c04e9 + db "@" +; 104a20 + +.Text_SentToHome: ; 104a20 + text_jump UnknownText_0x1c04fa + db "@" +; 104a25 + +.CheckAlreadyGotFiveGiftsToday: ; 104a25 (41:4a25) + call GetMysteryGiftBank + ld a, [sNumDailyMysteryGiftPartnerIDs] + cp $5 + jp CloseSRAM + +.CheckAlreadyGotAGiftFromThatPerson: ; 104a30 (41:4a30) + call GetMysteryGiftBank + ld a, [wMysteryGiftPartnerID] + ld b, a + ld a, [wMysteryGiftPartnerID + 1] + ld c, a + ld a, [sNumDailyMysteryGiftPartnerIDs] + ld d, a + ld hl, sDailyMysteryGiftPartnerIDs +.loop + ld a, d + and a + jr z, .No + ld a, [hli] + cp b + jr nz, .skip + ld a, [hl] + cp c + jr z, .Yes +.skip + inc hl + dec d + jr .loop +.Yes + scf +.No + jp CloseSRAM + +.AddMysteryGiftPartnerID: ; 104a56 (41:4a56) + call GetMysteryGiftBank + ld hl, sNumDailyMysteryGiftPartnerIDs + ld a, [hl] + inc [hl] + ld hl, sDailyMysteryGiftPartnerIDs ; inc hl + ld e, a + ld d, $0 +rept 2 + add hl, de +endr + ld a, [wMysteryGiftPartnerID] + ld [hli], a + ld a, [wMysteryGiftPartnerID + 1] + ld [hl], a + jp CloseSRAM + +.SaveMysteryGiftTrainerName: ; 104a71 (41:4a71) + call GetMysteryGiftBank + ld a, $1 + ld [sMysteryGiftTrainerHouseFlag], a + ld hl, wMysteryGiftPartnerName + ld de, sMysteryGiftPartnerName + ld bc, NAME_LENGTH + call CopyBytes + ld a, $1 + ld [de], a + inc de + ld hl, wMysteryGiftTrainerData + ld bc, (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 2 + call CopyBytes + jp CloseSRAM + +Function104a95: ; 104a95 (41:4a95) + di + callba ClearChannels + call Function104d5e +.loop2 + call Function104d96 + call Function104ddd + ld a, [hPrintNum10] + cp $10 + jp z, Function104bd0 + cp $6c + jr nz, .loop2 + ld a, [hPrintNum9] + cp $2 + jr z, Function104b22 + ld hl, $ffb3 + ld b, $1 + call Function104d56 + jr nz, .ly_loop + call Function104b49 + jp nz, Function104bd0 + jr asm_104b0a +.ly_loop + ld a, [rLY] + cp $90 + jr c, .ly_loop + ld c, rRP % $100 + ld a, $c0 + ld [$ff00+c], a + ld b, $f0 +.loop3 + push bc + call Function105038 + ld b, $2 + ld c, rRP % $100 +.ly_loop2 + ld a, [$ff00+c] + and b + ld b, a + ld a, [rLY] + cp $90 + jr nc, .ly_loop2 +.ly_loop3 + ld a, [$ff00+c] + and b + ld b, a + ld a, [rLY] + cp $90 + jr c, .ly_loop3 + ld a, b + pop bc + dec b + jr z, .loop2 + or a + jr nz, .loop2 + ld a, [hMoneyTemp + 1] + bit 1, a + jr z, .loop3 + ld a, $10 + ld [hPrintNum10], a + jp Function104bd0 + +Function104b04: ; 104b04 (41:4b04) + call Function104b40 + jp nz, Function104bd0 + +asm_104b0a: ; 104b0a (41:4b0a) + call Function104d38 + jp nz, Function104bd0 + call Function104b88 + jp nz, Function104bd0 + call Function104d43 + jp nz, Function104bd0 + call Function105033 + jp Function104bd0 + +Function104b22: ; 104b22 (41:4b22) + call Function104b88 + jp nz, Function104bd0 + call Function104d43 + jp nz, Function104bd0 + call Function104b40 + jp nz, Function104bd0 + call Function104d38 + jp nz, Function104bd0 + call Function10502e + jp Function104bd0 + +Function104b40: ; 104b40 (41:4b40) + ld hl, $ffb3 + ld b, $1 + call Function104d56 + ret nz + +Function104b49: ; 104b49 (41:4b49) + call Function105033 + ld a, [hPrintNum10] + cp $6c + ret nz + ld a, [$ffb3] + cp $96 + jp nz, Function104d32 + ld a, $90 + ld [$ffb3], a + call Function104d38 + ret nz + ld hl, $ffb3 + ld b, $1 + call Function104d4e + ret nz + call Function10502e + ld a, [hPrintNum10] + cp $6c + ret nz + call Function104d43 + ret nz + ld hl, wMysteryGiftTrainerData + ld a, [wca02] + ld b, a + call Function104d56 + ret nz + call Function105033 + ld a, [hPrintNum10] + cp $6c + ret + +Function104b88: ; 104b88 (41:4b88) + ld a, $96 + ld [$ffb3], a + ld hl, $ffb3 + ld b, $1 + call Function104d4e + ret nz + call Function10502e + ld a, [hPrintNum10] + cp $6c + ret nz + call Function104d43 + ret nz + ld hl, $ffb3 + ld b, $1 + call Function104d56 + ret nz + call Function105033 + ld a, [hPrintNum10] + cp $6c + ret nz + ld a, [$ffb3] + cp $90 + jp nz, Function104d32 + call Function104d38 + ret nz + ld hl, OverworldMap + ld a, [wca02] + ld b, a + call Function104d4e + ret nz + call Function10502e + ld a, [hPrintNum10] + cp $6c + ret + +Function104bd0: ; 104bd0 (41:4bd0) + nop + ld a, [hPrintNum10] + cp $10 + jr z, .asm_104c18 + cp $6c + jr nz, .asm_104c18 + ld hl, wca01 + dec [hl] + jr z, .asm_104c18 + ld hl, wMysteryGiftTrainerData + ld de, wc900 + ld bc, $14 + call CopyBytes + ld a, [wMysteryGiftTrainerData] + cp $3 + jr nc, .asm_104c18 + callba Function10510b + call Function1050fb + ld a, $26 + ld [wca02], a + ld a, [hPrintNum9] + cp $2 + jr z, .asm_104c10 + call Function104d43 + jr nz, Function104bd0 + jp Function104b04 +.asm_104c10 + call Function104d38 + jr nz, Function104bd0 + jp Function104b22 +.asm_104c18 + ld a, [hPrintNum10] + push af + call Function104da0 + xor a + ld [rIF], a + ld a, [rIE] + or $1 + ld [rIE], a + ei + call DelayFrame + pop af + ret + +Function104c2d: ; 104c2d (41:4c2d) + di + callba ClearChannels + call Function104d5e +.asm_104c37 + call Function104d96 + call Function104ddd + ld a, [hPrintNum10] + cp $10 + jp z, Function104d1c + cp $6c + jr nz, .asm_104c37 + ld a, [hPrintNum9] + cp $2 + jr z, .asm_104c6c + call Function104c8a + jp nz, Function104d1c + call Function104d38 + jp nz, Function104d1c + call Function104cd2 + jp nz, Function104d1c + call Function104d43 + jp nz, Function104d1c + call Function105033 + jp Function104d1c +.asm_104c6c + call Function104cd2 + jp nz, Function104d1c + call Function104d43 + jp nz, Function104d1c + call Function104c8a + jp nz, Function104d1c + call Function104d38 + jp nz, Function104d1c + call Function10502e + jp Function104d1c + +Function104c8a: ; 104c8a (41:4c8a) + ld hl, $ffb3 + ld b, $1 + call Function104d56 + ret nz + call Function105033 + ld a, [hPrintNum10] + cp $6c + ret nz + ld a, [$ffb3] + cp $3c + jp nz, Function104d32 + swap a + ld [$ffb3], a + call Function104d38 + ret nz + ld hl, $ffb3 + ld b, $1 + call Function104d4e + ret nz + call Function10502e + ld a, [hPrintNum10] + cp $6c + ret nz + call Function104d43 + ret nz + ld hl, wMysteryGiftTrainerData + ld a, [wca02] + ld b, a + call Function104d56 + ret nz + call Function105033 + ld a, [hPrintNum10] + cp $6c + ret + +Function104cd2: ; 104cd2 (41:4cd2) + ld a, $3c + ld [$ffb3], a + ld hl, $ffb3 + ld b, $1 + call Function104d4e + ret nz + call Function10502e + ld a, [hPrintNum10] + cp $6c + ret nz + call Function104d43 + ret nz + ld hl, $ffb3 + ld b, $1 + call Function104d56 + ret nz + call Function105033 + ld a, [hPrintNum10] + cp $6c + ret nz + ld a, [$ffb3] + swap a + cp $3c + jp nz, Function104d32 + call Function104d38 + ret nz + ld hl, OverworldMap + ld a, [wca02] + ld b, a + call Function104d4e + ret nz + call Function10502e + ld a, [hPrintNum10] + cp $6c + ret + +Function104d1c: ; 104d1c (41:4d1c) + nop + ld a, [hPrintNum10] + push af + call Function104da0 + xor a + ld [rIF], a + ld a, [rIE] + or $1 + ld [rIE], a + ei + call DelayFrame + pop af + ret + +Function104d32: ; 104d32 (41:4d32) + ld a, $80 + ld [hPrintNum10], a + and a + ret + +Function104d38: ; 104d38 (41:4d38) + call Function104d96 + call Function104e46 + ld a, [hPrintNum10] + cp $6c + ret + +Function104d43: ; 104d43 (41:4d43) + call Function104d96 + call Function104dfe + ld a, [hPrintNum10] + cp $6c + ret + +Function104d4e: ; 104d4e (41:4d4e) + call Function104e93 + ld a, [hPrintNum10] + cp $6c + ret + +Function104d56: ; 104d56 (41:4d56) + call Function104f57 + ld a, [hPrintNum10] + cp $6c + ret + +Function104d5e: ; 104d5e (41:4d5e) + call Function104d74 + ld a, $4 + ld [rIE], a + xor a + ld [rIF], a + call Function104d96 + xor a + ld b, a +.asm_104d6d + inc a + jr nz, .asm_104d6d + inc b + jr nz, .asm_104d6d + ret + +Function104d74: ; 104d74 (41:4d74) + xor a + ld [rTAC], a + ld a, $fe + ld [rTMA], a + ld [rTIMA], a + ld a, $2 + ld [rTAC], a + or $4 + ld [rTAC], a + ret + +Function104d86: ; 104d86 (41:4d86) + xor a + ld [rTAC], a + ld [rTMA], a + ld [rTIMA], a + ld a, $2 + ld [rTAC], a + or $4 + ld [rTAC], a + ret + +Function104d96: ; 104d96 (41:4d96) + ld a, $c0 + call Function104e8c + ld a, $1 + ld [hPrintNum9], a + ret + +Function104da0: ; 104da0 (41:4da0) + xor a + call Function104e8c + ld a, $2 + ld [rTAC], a + ret + +Function104da9: ; 104da9 (41:4da9) + inc d + ret z + xor a + ld [rIF], a + halt + ld a, [$ff00+c] + bit 1, a + jr z, Function104da9 + or a + ret + +Function104db7: ; 104db7 (41:4db7) + inc d + ret z + xor a + ld [rIF], a + halt + ld a, [$ff00+c] + bit 1, a + jr nz, Function104db7 + or a + ret + +Function104dc5: ; 104dc5 (41:4dc5) + ld a, $c1 + ld [$ff00+c], a +.asm_104dc8 + dec d + ret z + xor a + ld [rIF], a + halt + jr .asm_104dc8 + +Function104dd1: ; 104dd1 (41:4dd1) + ld a, $c0 + ld [$ff00+c], a +.asm_104dd4 + dec d + ret z + xor a + ld [rIF], a + halt + jr .asm_104dd4 + +Function104ddd: ; 104ddd (41:4ddd) + ld d, $0 + ld e, d + ld a, $1 + ld [hPrintNum9], a +.asm_104de4 + call Function105038 + ld b, $2 + ld c, rRP % $100 + ld a, [hMoneyTemp + 1] + bit 1, a + jr z, .asm_104df6 + ld a, $10 + ld [hPrintNum10], a + ret +.asm_104df6 + bit 0, a + jr nz, asm_104e3a + ld a, [$ff00+c] + and b + jr nz, .asm_104de4 + +Function104dfe: ; 104dfe (41:4dfe) + ld c, rRP % $100 + ld d, $0 + ld e, d + call Function104db7 + jp z, Function104f42 + ld d, e + call Function104da9 + jp z, Function104f42 + call Function104db7 + jp z, Function104f42 + call Function104da9 + jp z, Function104f42 + ld a, $6c + ld [hPrintNum10], a + ld d, $3d + call Function104dd1 + ld d, $5 + call Function104dc5 + ld d, $15 + call Function104dd1 + ld d, $5 + call Function104dc5 + ld d, $5 + call Function104dd1 + ret + +asm_104e3a: ; 104e3a (41:4e3a) + call Random + ld e, a + and $f + ld d, a +.asm_104e41 + dec de + ld a, d + or e + jr nz, .asm_104e41 + +Function104e46: ; 104e46 (41:4e46) + ld a, $2 + ld [hPrintNum9], a + ld c, $56 + ld d, $0 + ld e, d + ld d, $3d + call Function104dd1 + ld d, $5 + call Function104dc5 + ld d, $15 + call Function104dd1 + ld d, $5 + call Function104dc5 + ld d, $5 + call Function104dd1 + ld d, e + call Function104db7 + jp z, Function104f42 + ld d, e + call Function104da9 + jp z, Function104f42 + call Function104db7 + jp z, Function104f42 + call Function104da9 + jp z, Function104f42 + ld d, $3d + call Function104dd1 + ld a, $6c + ld [hPrintNum10], a + ret + +Function104e8c: ; 104e8c (41:4e8c) + ld [rRP], a + ld a, $ff + ld [hPrintNum10], a + ret + +Function104e93: ; 104e93 (41:4e93) + xor a + ld [hDivisor], a + ld [hMathBuffer], a + push hl + push bc + ld c, $56 + ld d, $3d + call Function104dd1 + ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand) + ld a, $5a + ld [hli], a + ld [hl], b + dec hl + ld b, $2 + call Function104ed6 + pop bc + pop hl + call Function104ed6 + ld a, [hDivisor] + ld [hQuotient], a + ld a, [hMathBuffer] + ld [$ffb5], a + push hl + ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand) + ld b, $2 + call Function104ed6 + ld hl, hPrintNum10 + ld b, $1 + call Function104faf + ld a, [hQuotient] + ld [hDivisor], a + ld a, [$ffb5] + ld [hMathBuffer], a + pop hl + ret + +Function104ed6: ; 104ed6 (41:4ed6) + ld c, $56 + ld d, $5 + call Function104dd1 + ld d, $5 + call Function104dc5 + ld d, $15 + call Function104dd1 + ld a, b + cpl + ld b, a + ld a, $f4 + ld [rTMA], a +.asm_104eee + inc b + jr z, .asm_104f2e + ld a, $8 + ld [$ffb6], a + ld a, [hli] + ld e, a + ld a, [hDivisor] + add e + ld [hDivisor], a + ld a, [hMathBuffer] + adc $0 + ld [hMathBuffer], a +.asm_104f02 + xor a + ld [rIF], a + halt + ld a, $c1 + ld [rRP], a + ld d, $1 + ld a, e + rlca + ld e, a + jr nc, .asm_104f13 + inc d +.asm_104f13 + ld a, [rTIMA] + cp $f8 + jr c, .asm_104f13 + ld a, $c0 + ld [rRP], a + dec d + jr z, .asm_104f25 + xor a + ld [rIF], a + halt +.asm_104f25 + ld a, [$ffb6] + dec a + jr z, .asm_104eee + ld [$ffb6], a + jr .asm_104f02 +.asm_104f2e + ld a, $fe + ld [rTMA], a + xor a + ld [rIF], a + halt + ld d, $5 + call Function104dc5 + ld d, $11 + call Function104dd1 + ret + +Function104f42: ; 104f42 (41:4f42) + ld a, [hPrintNum10] + or $2 + ld [hPrintNum10], a + ret + +Function104f49: ; 104f49 (41:4f49) + ld a, [hPrintNum10] + or $1 + ld [hPrintNum10], a + ret + +Function104f50: ; 104f50 (41:4f50) + ld a, [hPrintNum10] + or $80 + ld [hPrintNum10], a + ret + +Function104f57: ; 104f57 (41:4f57) + xor a + ld [hDivisor], a + ld [hMathBuffer], a + push bc + push hl + ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand) + ld b, $2 + call Function104faf + ld a, [$ffb5] + ld [$ffba], a + ld b, a + pop hl + pop af + cp b + jp c, Function104f50 + ld a, [hQuotient] + cp $5a + jp nz, Function104f50 + call Function104faf + ld a, [hDivisor] + ld d, a + ld a, [hMathBuffer] + ld e, a + push hl + push de + ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand) + ld b, $2 + call Function104faf + pop de + ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand) + ld a, [hli] + xor d + ld b, a + ld a, [hl] + xor e + or b + call nz, Function104f49 + push de + ld d, $3d + call Function104dd1 + ld hl, hPrintNum10 + ld b, $1 + call Function104ed6 + pop de + pop hl + ld a, d + ld [hDivisor], a + ld a, e + ld [hMathBuffer], a + ret + +Function104faf: ; 104faf (41:4faf) + ld c, rRP % $100 + ld d, $0 + call Function104db7 + jp z, Function104f42 + ld d, $0 + call Function104da9 + jp z, Function104f42 + ld d, $0 + call Function104db7 + jp z, Function104f42 + ld a, b + cpl + ld b, a + xor a + ld [hMoneyTemp + 2], a + call Function104d86 +.asm_104fd2 + inc b + jr z, .asm_10501a + ld a, $8 + ld [$ffb6], a +.asm_104fd9 + ld d, $0 +.asm_104fdb + inc d + jr z, .asm_104fe5 + ld a, [$ff00+c] + bit 1, a + jr z, .asm_104fdb + ld d, $0 +.asm_104fe5 + inc d + jr z, .asm_104fed + ld a, [$ff00+c] + bit 1, a + jr nz, .asm_104fe5 +.asm_104fed + ld a, [hMoneyTemp + 2] + ld d, a + ld a, [rTIMA] + ld [hMoneyTemp + 2], a + sub d + cp $12 + jr c, .asm_104ffd + set 0, e + jr .asm_104fff +.asm_104ffd + res 0, e +.asm_104fff + ld a, [$ffb6] + dec a + ld [$ffb6], a + jr z, .asm_10500b + ld a, e + rlca + ld e, a + jr .asm_104fd9 +.asm_10500b + ld a, e + ld [hli], a + ld a, [hDivisor] + add e + ld [hDivisor], a + ld a, [hMathBuffer] + adc $0 + ld [hMathBuffer], a + jr .asm_104fd2 +.asm_10501a + call Function104d74 + xor a + ld [rIF], a + ld d, $0 + call Function104da9 + jp z, Function104f42 + ld d, $10 + call Function104dd1 + ret + +Function10502e: ; 10502e (41:502e) + ld b, $0 + jp Function104e93 + +Function105033: ; 105033 (41:5033) + ld b, $0 + jp Function104f57 + +Function105038: ; 105038 (41:5038) + ld a, $20 + ld [rJOYP], a +rept 2 + ld a, [rJOYP] +endr + cpl + and $f + swap a + ld b, a + ld a, $10 + ld [rJOYP], a +rept 6 + ld a, [rJOYP] +endr + cpl + and $f + or b + ld c, a + ld a, [hMoneyTemp] + xor c + and c + ld [hMoneyTemp + 1], a + ld a, c + ld [hMoneyTemp], a + ld a, $30 + ld [rJOYP], a + ret + +Function105069: ; 105069 (41:5069) + call GetMysteryGiftBank + ld d, $0 + ld b, CHECK_FLAG + ld hl, sMysteryGiftDecorationsReceived + predef_id FlagPredef + push hl + push bc + call Predef + call CloseSRAM + ld a, c + and a + pop bc + pop hl + ret nz + call GetMysteryGiftBank + ld b, SET_FLAG + predef FlagPredef + call CloseSRAM + xor a + ret + +Function105091: ; 105091 (41:5091) + call GetMysteryGiftBank + ld c, $0 +.loop + push bc + ld d, $0 + ld b, CHECK_FLAG + ld hl, sMysteryGiftDecorationsReceived + predef FlagPredef + ld a, c + and a + pop bc + jr z, .skip + push bc + callab SetSpecificDecorationFlag + pop bc +.skip + inc c + ld a, c + cp Trophys - DecorationIDs + jr c, .loop + jp CloseSRAM + +Special_UnlockMysteryGift: ; 1050b9 + call GetMysteryGiftBank + ld hl, sMysteryGiftUnlocked + ld a, [hl] + inc a + jr nz, .ok + ld [hld], a + ld [hl], a +.ok + jp CloseSRAM +; 1050c8 + +Function1050c8: ; 1050c8 + call GetMysteryGiftBank + ld a, [sNumDailyMysteryGiftPartnerIDs] + cp $ff + jr z, .okay + xor a + ld [sNumDailyMysteryGiftPartnerIDs], a +.okay + jp CloseSRAM +; 1050d9 + + +BackupMysteryGift: ; 1050d9 + call GetMysteryGiftBank + ld hl, sMysteryGiftItem + ld de, sBackupMysteryGiftItem + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + jp CloseSRAM +; 1050ea + + +RestoreMysteryGift: ; 1050ea (41:50ea) + call GetMysteryGiftBank + ld hl, sBackupMysteryGiftItem + ld de, sMysteryGiftItem + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + jp CloseSRAM + +Function1050fb: ; 1050fb (41:50fb) + ld hl, wMysteryGiftTrainerData + xor a + ld b, $26 +.asm_105101 + ld [hli], a + dec b + jr nz, .asm_105101 + ret + + +GetMysteryGiftBank: ; 105106 + ld a, BANK(sBackupMysteryGiftItem) + jp GetSRAMBank +; 10510b + + +Function10510b: ; 10510b (41:510b) + ld a, BANK(sPokemonData) + call GetSRAMBank + ld de, OverworldMap + ld bc, sPokemonData + PartyMons - wPokemonData + ld hl, sPokemonData + PartySpecies - wPokemonData +.asm_105119 + ld a, [hli] + cp $ff + jr z, .asm_105148 + cp EGG + jr z, .asm_10513e + push hl + ld hl, MON_LEVEL + add hl, bc + ld a, [hl] + ld [de], a + inc de + ld hl, MON_SPECIES + add hl, bc + ld a, [hl] + ld [de], a + inc de + ld hl, MON_MOVES + add hl, bc + push bc + ld bc, NUM_MOVES + call CopyBytes + pop bc + pop hl +.asm_10513e + push hl + ld hl, PARTYMON_STRUCT_LENGTH + add hl, bc + ld b, h + ld c, l + pop hl + jr .asm_105119 +.asm_105148 + ld a, $ff + ld [de], a + ld a, $26 + ld [wca00], a + jp CloseSRAM + +Function105153: ; 105153 (41:5153) + call ClearBGPalettes + call DisableLCD + ld hl, MysteryGiftGFX + ld de, VTiles2 tile $00 + ld a, BANK(MysteryGiftGFX) + ld bc, Function105688 - MysteryGiftGFX + call FarCopyBytes + hlcoord 0, 0 + ld a, $42 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + call ByteFill + hlcoord 3, 7 + lb bc, 9, 15 + call ClearBox + hlcoord 0, 0 + ld a, $0 + ld [hli], a + inc a + ld [hl], a + hlcoord 0, 1 + inc a + ld [hli], a + inc a + ld [hl], a + hlcoord 7, 1 + ld a, $12 + call Function10522e + hlcoord 2, 2 + ld a, $17 + call Function105236 + hlcoord 2, 3 + ld a, $27 + call Function105236 + hlcoord 9, 4 + ld a, $37 + ld [hli], a + inc a + ld [hl], a + hlcoord 1, 2 + ld [hl], $4 + hlcoord 1, 3 + ld a, $5 + call Function105246 + ld a, $9 + hlcoord 18, 5 + call Function105242 + hlcoord 2, 5 + ld a, $b + call Function105251 + hlcoord 2, 16 + ld a, $7 + call Function105251 + hlcoord 2, 5 + ld a, $d + call Function10522e + hlcoord 7, 5 + ld [hl], $c + hlcoord 18, 5 + ld [hl], $a + hlcoord 18, 16 + ld [hl], $8 + hlcoord 1, 16 + ld [hl], $6 + hlcoord 2, 6 + ld a, $3a + call Function105251 + hlcoord 2, 15 + ld a, $40 + call Function105251 + hlcoord 2, 6 + ld a, $3c + call Function10523e + hlcoord 17, 6 + ld a, $3e + call Function10523e + hlcoord 2, 6 + ld [hl], $39 + hlcoord 17, 6 + ld [hl], $3b + hlcoord 2, 15 + ld [hl], $3f + hlcoord 17, 15 + ld [hl], $41 + call EnableLCD + call WaitBGMap + ld b, SCGB_1D + call GetSGBLayout + call SetPalettes + ret + +Function10522e: ; 10522e (41:522e) + ld b, $5 + jr asm_105238 +; 105232 (41:5232) + +Function105232: ; unreferenced + ld b, 6 + jr asm_105238 + +Function105236: ; 105236 (41:5236) + ld b, $10 + +asm_105238: ; 105238 (41:5238) + ld [hli], a + inc a + dec b + jr nz, asm_105238 + ret + +Function10523e: ; 10523e (41:523e) + ld b, $9 + jr asm_105248 + +Function105242: ; 105242 (41:5242) + ld b, $b + jr asm_105248 + +Function105246: ; 105246 (41:5246) + ld b, $e + +asm_105248: ; 105248 (41:5248) + ld [hl], a + ld de, $14 + add hl, de + dec b + jr nz, asm_105248 + ret + +Function105251: ; 105251 (41:5251) + ld b, $10 +.asm_105253 + ld [hli], a + dec b + jr nz, .asm_105253 + ret + +MysteryGiftGFX: ; 105258 +INCBIN "gfx/misc/mystery_gift.2bpp" + + +Function105688: ; 105688 (41:5688) + call ClearTileMap + call ClearSprites + call WaitBGMap + call Function1057d7 + hlcoord 3, 8 + ld de, String_10572e + call PlaceString + call WaitBGMap + call Function10578c + call Function1050fb + ld a, $24 + ld [wca02], a + ld a, [rIE] + push af + call Function104c2d + ld d, a + xor a + ld [rIF], a + pop af + ld [rIE], a + ld a, d + cp $10 + jp z, Function105712 + cp $6c + jp nz, Function10571a + call Function1056eb + ld c, 60 + call DelayFrames + call Function105777 + ld hl, Text_10575e + call PrintText + ld de, wMysteryGiftTrainerData + callba Function8ac70 + ld a, c + ld [wd265], a + ld hl, Text_105768 + jr c, asm_105726 + ld hl, Text_105763 + jr asm_105726 + +Function1056eb: ; 1056eb (41:56eb) + ld c, $10 +.asm_1056ed + ld hl, Sprites + ld b, $8 +.asm_1056f2 + dec [hl] +rept 4 + inc hl +endr + dec b + jr nz, .asm_1056f2 + ld hl, Sprites + $20 + ld b, $8 +.asm_1056ff + inc [hl] +rept 4 + inc hl +endr + dec b + jr nz, .asm_1056ff + dec c + ret z + push bc + ld c, 4 + call DelayFrames + pop bc + jr .asm_1056ed + +Function105712: ; 105712 (41:5712) + call Function105777 + ld hl, Text_10576d + jr asm_105726 + +Function10571a: ; 10571a (41:571a) + call Function105777 + ld hl, Text_105772 + call PrintText + jp Function105688 + +asm_105726: ; 105726 (41:5726) + call PrintText + ld a, $e3 + ld [rLCDC], a + ret +; 10572e (41:572e) + +String_10572e: ; 10572e + db "エーボタン¯おすと" + next "つうしん", $4a, "おこなわれるよ!" + next "ビーボタン¯おすと" + next "つうしん¯ちゅうし します" + db "@" + +; 10575e + +Text_10575e: ; 10575e + text_jump UnknownText_0x1c051a + db "@" + +Text_105763: ; 105763 + text_jump UnknownText_0x1c0531 + db "@" + +Text_105768: ; 105768 + text_jump UnknownText_0x1c0555 + db "@" + +Text_10576d: ; 10576d + text_jump UnknownText_0x1c0573 + db "@" + +Text_105772: ; 105772 + text_jump UnknownText_0x1c0591 + db "@" +; 105777 + +Function105777: ; 105777 (41:5777) + call ClearSprites + call ClearTileMap + call EnableLCD + call WaitBGMap + ld b, SCGB_08 + call GetSGBLayout + call SetPalettes + ret + +Function10578c: ; 10578c (41:578c) + ld de, OverworldMap + ld a, BANK(sPlayerData) + call GetSRAMBank + ld hl, sPlayerData + PlayerName - wPlayerData + ld bc, NAME_LENGTH + call CopyBytes + ld hl, sPlayerData + PlayerID - wPlayerData + ld bc, 2 + call CopyBytes + ld hl, sPlayerData + wSecretID - wPlayerData + ld bc, 2 + call CopyBytes + call CloseSRAM + ld a, BANK(sCrystalData) + call GetSRAMBank + ld a, [sCrystalData + 0] + ld [de], a + inc de + ld a, $4 + call GetSRAMBank + ld hl, $a603 + ld bc, $8 + call CopyBytes + ld hl, $a007 + ld bc, $c + call CopyBytes + call CloseSRAM + ret + +Function1057d7: ; 1057d7 (41:57d7) + call ClearBGPalettes + call DisableLCD + ld hl, MysteryGiftJP_GFX + ld de, VTiles2 tile $00 + ld a, BANK(MysteryGiftJP_GFX) + lb bc, 4, 0 + call FarCopyBytes + ld hl, MysteryGiftJP_GFX + $400 + ld de, VTiles0 tile $00 + ld a, BANK(MysteryGiftJP_GFX) + ld bc, $80 + call FarCopyBytes + hlcoord 0, 0 + ld a, $3f + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + call ByteFill + hlcoord 3, 7 + lb bc, 9, 15 + call ClearBox + hlcoord 0, 0 + ld a, $0 + ld [hli], a + inc a + ld [hl], a + hlcoord 0, 1 + inc a + ld [hli], a + inc a + ld [hl], a + hlcoord 4, 2 + ld a, $13 + call Function1058ca + hlcoord 4, 3 + ld a, $1e + call Function1058ce + hlcoord 4, 4 + ld a, $2a + call Function1058ce + hlcoord 1, 2 + ld [hl], $4 + hlcoord 1, 3 + ld a, $5 + call Function1058de + ld a, $9 + hlcoord 18, 5 + call Function1058da + hlcoord 2, 5 + ld a, $b + call Function1058e9 + hlcoord 2, 16 + ld a, $7 + call Function1058e9 + hlcoord 2, 5 + ld a, $d + call Function1058c6 + hlcoord 8, 5 + ld [hl], $c + hlcoord 18, 5 + ld [hl], $a + hlcoord 18, 16 + ld [hl], $8 + hlcoord 1, 16 + ld [hl], $6 + hlcoord 2, 6 + ld a, $37 + call Function1058e9 + hlcoord 2, 15 + ld a, $3d + call Function1058e9 + hlcoord 2, 6 + ld a, $39 + call Function1058d6 + hlcoord 17, 6 + ld a, $3b + call Function1058d6 + hlcoord 2, 6 + ld [hl], $36 + hlcoord 17, 6 + ld [hl], $38 + hlcoord 2, 15 + ld [hl], $3c + hlcoord 17, 15 + ld [hl], $3e + ld de, Sprites + ld hl, OAM_1058f0 + ld bc, $40 + call CopyBytes + call EnableLCD + call WaitBGMap + ld b, $2 + callba Function4930f + jp SetPalettes + +Function1058c6: ; 1058c6 (41:58c6) + ld b, $6 + jr asm_1058d0 + +Function1058ca: ; 1058ca (41:58ca) + ld b, $b + jr asm_1058d0 + +Function1058ce: ; 1058ce (41:58ce) + ld b, $c + +asm_1058d0: ; 1058d0 (41:58d0) + ld [hli], a + inc a + dec b + jr nz, asm_1058d0 + ret + +Function1058d6: ; 1058d6 (41:58d6) + ld b, $9 + jr asm_1058e0 + +Function1058da: ; 1058da (41:58da) + ld b, $b + jr asm_1058e0 + +Function1058de: ; 1058de (41:58de) + ld b, $e + +asm_1058e0: ; 1058e0 (41:58e0) + ld [hl], a + ld de, SCREEN_WIDTH + add hl, de + dec b + jr nz, asm_1058e0 + ret + +Function1058e9: ; 1058e9 (41:58e9) + ld b, $10 +.asm_1058eb + ld [hli], a + dec b + jr nz, .asm_1058eb + ret +; 1058f0 (41:58f0) + +OAM_1058f0: ; 1058f0 + db $11, $34, $00, $00 + db $11, $3c, $01, $00 + db $11, $44, $02, $00 + db $11, $4c, $03, $00 + db $19, $34, $04, $00 + db $19, $3c, $05, $00 + db $19, $44, $06, $00 + db $19, $4c, $07, $00 + db $01, $5c, $00, $00 + db $01, $64, $01, $00 + db $01, $6c, $02, $00 + db $01, $74, $03, $00 + db $09, $5c, $04, $00 + db $09, $64, $05, $00 + db $09, $6c, $06, $00 + db $09, $74, $07, $00 + +; japanese mystery gift gfx +MysteryGiftJP_GFX: ; 105930 +INCBIN "gfx/misc/mystery_gift_jp.2bpp" diff --git a/engine/npctrade.asm b/engine/npctrade.asm index 97109cdd4..0a61129c1 100755 --- a/engine/npctrade.asm +++ b/engine/npctrade.asm @@ -18,10 +18,14 @@ TRADE_WRONG EQU 2 TRADE_COMPLETE EQU 3 TRADE_AFTER EQU 4 +TRADE_EITHER_GENDER EQU 0 +TRADE_MALE_ONLY EQU 1 +TRADE_FEMALE_ONLY EQU 2 + NPCTrade:: ; fcba8 ld a, e ld [wJumptableIndex], a - call Functionfcc59 + call Trade_GetDialog ld b, CHECK_FLAG call TradeFlagAction ld a, TRADE_AFTER @@ -57,8 +61,8 @@ NPCTrade:: ; fcba8 ld hl, ConnectLinkCableText call PrintText - call Functionfcc63 - call Functionfcc07 + call DoNPCTrade + call .TradeAnimation call GetTradeMonNames ld hl, TradedForText @@ -73,13 +77,13 @@ NPCTrade:: ; fcba8 ret ; fcc07 -Functionfcc07: ; fcc07 +.TradeAnimation: ; fcc07 call DisableSpriteUpdates ld a, [wJumptableIndex] push af ld a, [wcf64] push af - predef Function28f24 + predef TradeAnimation pop af ld [wcf64], a pop af @@ -118,7 +122,7 @@ CheckTradeGender: ; fcc23 ; fcc4a TradeFlagAction: ; fcc4a - ld hl, wd960 + ld hl, wTradeFlags ld a, [wJumptableIndex] ld c, a predef FlagPredef @@ -127,7 +131,7 @@ TradeFlagAction: ; fcc4a ret ; fcc59 -Functionfcc59: ; fcc59 +Trade_GetDialog: ; fcc59 ld e, TRADE_DIALOG call GetTradeAttribute ld a, [hl] @@ -135,74 +139,74 @@ Functionfcc59: ; fcc59 ret ; fcc63 -Functionfcc63: ; fcc63 +DoNPCTrade: ; fcc63 ld e, TRADE_GIVEMON call GetTradeAttribute ld a, [hl] - ld [wc6d0], a + ld [wPlayerTrademonSpecies], a ld e, TRADE_GETMON call GetTradeAttribute ld a, [hl] - ld [wc702], a + ld [wOTTrademonSpecies], a - ld a, [wc6d0] - ld de, wc6d1 - call Functionfcde8 - call Functionfcdf4 + ld a, [wPlayerTrademonSpecies] + ld de, wPlayerTrademonSpeciesName + call GetTradeMonName + call CopyTradeName - ld a, [wc702] - ld de, wc703 - call Functionfcde8 - call Functionfcdf4 + ld a, [wOTTrademonSpecies] + ld de, wOTTrademonSpeciesName + call GetTradeMonName + call CopyTradeName ld hl, PartyMonOT ld bc, NAME_LENGTH - call Functionfcdd7 - ld de, wc6f2 - call Functionfcdf4 + call Trade_GetAttributeOfCurrentPartymon + ld de, wPlayerTrademonOTName + call CopyTradeName ld hl, PlayerName - ld de, wc6e7 - call Functionfcdf4 + ld de, wPlayerTrademonSenderName + call CopyTradeName ld hl, PartyMon1ID ld bc, PARTYMON_STRUCT_LENGTH - call Functionfcdd7 - ld de, wc6ff - call Functionfce0f + call Trade_GetAttributeOfCurrentPartymon + ld de, wPlayerTrademonID + call Trade_CopyTwoBytes ld hl, PartyMon1DVs ld bc, PARTYMON_STRUCT_LENGTH - call Functionfcdd7 - ld de, wc6fd - call Functionfce0f + call Trade_GetAttributeOfCurrentPartymon + ld de, wPlayerTrademonDVs + call Trade_CopyTwoBytes ld hl, PartyMon1Species ld bc, PARTYMON_STRUCT_LENGTH - call Functionfcdd7 + call Trade_GetAttributeOfCurrentPartymon ld b, h ld c, l callba GetCaughtGender ld a, c - ld [wc701], a + ld [wPlayerTrademonCaughtData], a ld e, TRADE_DIALOG call GetTradeAttribute ld a, [hl] - cp TRADE_COMPLETE + cp 3 ld a, 1 - jr c, .asm_fcce6 + jr c, .okay ld a, 2 -.asm_fcce6 - ld [wEnemyCharging], a +.okay + ld [wOTTrademonCaughtData], a ld hl, PartyMon1Level ld bc, PARTYMON_STRUCT_LENGTH - call Functionfcdd7 + call Trade_GetAttributeOfCurrentPartymon ld a, [hl] ld [CurPartyLevel], a - ld a, [wc702] + ld a, [wOTTrademonSpecies] ld [CurPartySpecies], a xor a ld [MonType], a @@ -214,66 +218,66 @@ Functionfcc63: ; fcc63 call GetTradeAttribute ld a, [hl] cp TRADE_COMPLETE - ld b, 0 + ld b, RESET_FLAG jr c, .asm_fcd1c - ld b, 1 + ld b, SET_FLAG .asm_fcd1c callba SetGiftPartyMonCaughtData ld e, TRADE_NICK call GetTradeAttribute - ld de, wc70e - call Functionfcdf4 + ld de, wOTTrademonNickname + call CopyTradeName ld hl, PartyMonNicknames ld bc, PKMN_NAME_LENGTH - call Functionfcdde - ld hl, wc70e - call Functionfcdf4 + call Trade_GetAttributeOfLastPartymon + ld hl, wOTTrademonNickname + call CopyTradeName ld e, TRADE_OT_NAME call GetTradeAttribute push hl - ld de, wc724 - call Functionfcdf4 + ld de, wOTTrademonOTName + call CopyTradeName pop hl - ld de, wc719 - call Functionfcdf4 + ld de, wOTTrademonSenderName + call CopyTradeName ld hl, PartyMonOT ld bc, NAME_LENGTH - call Functionfcdde - ld hl, wc724 - call Functionfcdf4 + call Trade_GetAttributeOfLastPartymon + ld hl, wOTTrademonOTName + call CopyTradeName ld e, TRADE_DVS call GetTradeAttribute - ld de, wEnemyTrappingMove - call Functionfce0f + ld de, wOTTrademonDVs + call Trade_CopyTwoBytes ld hl, PartyMon1DVs ld bc, PARTYMON_STRUCT_LENGTH - call Functionfcdde - ld hl, wEnemyTrappingMove - call Functionfce0f + call Trade_GetAttributeOfLastPartymon + ld hl, wOTTrademonDVs + call Trade_CopyTwoBytes ld e, TRADE_OT_ID call GetTradeAttribute - ld de, wPlayerCharging - call Functionfce15 + ld de, wOTTrademonID + 1 + call Trade_CopyTwoBytesReverseEndian ld hl, PartyMon1ID ld bc, PARTYMON_STRUCT_LENGTH - call Functionfcdde - ld hl, wEnemyWrapCount - call Functionfce0f + call Trade_GetAttributeOfLastPartymon + ld hl, wOTTrademonID + call Trade_CopyTwoBytes ld e, TRADE_ITEM call GetTradeAttribute push hl ld hl, PartyMon1Item ld bc, PARTYMON_STRUCT_LENGTH - call Functionfcdde + call Trade_GetAttributeOfLastPartymon pop hl ld a, [hl] ld [de], a @@ -315,13 +319,13 @@ endr ret ; 0xfcdd7 -Functionfcdd7: ; fcdd7 +Trade_GetAttributeOfCurrentPartymon: ; fcdd7 ld a, [CurPartyMon] call AddNTimes ret ; fcdde -Functionfcdde: ; fcdde +Trade_GetAttributeOfLastPartymon: ; fcdde ld a, [PartyCount] dec a call AddNTimes @@ -330,7 +334,7 @@ Functionfcdde: ; fcdde ret ; fcde8 -Functionfcde8: ; fcde8 +GetTradeMonName: ; fcde8 push de ld [wd265], a call GetBasePokemonName @@ -339,29 +343,31 @@ Functionfcde8: ; fcde8 ret ; fcdf4 -Functionfcdf4: ; fcdf4 +CopyTradeName: ; fcdf4 ld bc, NAME_LENGTH call CopyBytes ret ; fcdfb Functionfcdfb: ; fcdfb +; unreferenced ld bc, 4 call CopyBytes - ld a, $50 + ld a, "@" ld [de], a ret ; fce05 Functionfce05: ; fce05 +; unreferenced ld bc, 3 call CopyBytes - ld a, $50 + ld a, "@" ld [de], a ret ; fce0f -Functionfce0f: ; fce0f +Trade_CopyTwoBytes: ; fce0f ld a, [hli] ld [de], a inc de @@ -370,7 +376,7 @@ Functionfce0f: ; fce0f ret ; fce15 -Functionfce15: ; fce15 +Trade_CopyTwoBytesReverseEndian: ; fce15 ld a, [hli] ld [de], a dec de @@ -383,18 +389,18 @@ GetTradeMonNames: ; fce1b ld e, TRADE_GETMON call GetTradeAttribute ld a, [hl] - call Functionfcde8 + call GetTradeMonName ld de, StringBuffer2 - call Functionfcdf4 + call CopyTradeName ld e, TRADE_GIVEMON call GetTradeAttribute ld a, [hl] - call Functionfcde8 + call GetTradeMonName ld de, wd050 - call Functionfcdf4 + call CopyTradeName ld hl, StringBuffer1 .loop @@ -423,13 +429,22 @@ GetTradeMonNames: ; fce1b NPCTrades: ; fce58 - db 0, ABRA, MACHOP, "MUSCLE@@@@@", $37, $66, GOLD_BERRY, $54, $92, "MIKE@@@@@@@", 0, 0 - db 0, BELLSPROUT, ONIX, "ROCKY@@@@@@", $96, $66, BITTER_BERRY, $1e, $bf, "KYLE@@@@@@@", 0, 0 - db 1, KRABBY, VOLTORB, "VOLTY@@@@@@", $98, $88, PRZCUREBERRY, $05, $72, "TIM@@@@@@@@", 0, 0 - db 3, DRAGONAIR, DODRIO, "DORIS@@@@@@", $77, $66, SMOKE_BALL, $1b, $01, "EMY@@@@@@@@", 2, 0 - db 2, HAUNTER, XATU, "PAUL@@@@@@@", $96, $86, MYSTERYBERRY, $00, $3d, "CHRIS@@@@@@", 0, 0 - db 3, CHANSEY, AERODACTYL, "AEROY@@@@@@", $96, $66, GOLD_BERRY, $7b, $67, "KIM@@@@@@@@", 0, 0 - db 0, DUGTRIO, MAGNETON, "MAGGIE@@@@@", $96, $66, METAL_COAT, $a2, $c3, "FOREST@@@@@", 0, 0 +npctrade: MACRO + db \1, \2, \3, \4 + dw \5 + db \6 + dw \7 + db \8, \9, 0 +ENDM + + + npctrade 0, ABRA, MACHOP, "MUSCLE@@@@@", $6637, GOLD_BERRY, $9254, "MIKE@@@@@@@", TRADE_EITHER_GENDER + npctrade 0, BELLSPROUT, ONIX, "ROCKY@@@@@@", $6696, BITTER_BERRY, $bf1e, "KYLE@@@@@@@", TRADE_EITHER_GENDER + npctrade 1, KRABBY, VOLTORB, "VOLTY@@@@@@", $8898, PRZCUREBERRY, $7205, "TIM@@@@@@@@", TRADE_EITHER_GENDER + npctrade 3, DRAGONAIR, DODRIO, "DORIS@@@@@@", $6677, SMOKE_BALL, $011b, "EMY@@@@@@@@", TRADE_FEMALE_ONLY + npctrade 2, HAUNTER, XATU, "PAUL@@@@@@@", $8696, MYSTERYBERRY, $3d00, "CHRIS@@@@@@", TRADE_EITHER_GENDER + npctrade 3, CHANSEY, AERODACTYL, "AEROY@@@@@@", $6696, GOLD_BERRY, $677b, "KIM@@@@@@@@", TRADE_EITHER_GENDER + npctrade 0, DUGTRIO, MAGNETON, "MAGGIE@@@@@", $6696, METAL_COAT, $c3a2, "FOREST@@@@@", TRADE_EITHER_GENDER ; fcf38 diff --git a/engine/pokedex.asm b/engine/pokedex.asm index 656e1767b..d150ee471 100644 --- a/engine/pokedex.asm +++ b/engine/pokedex.asm @@ -476,7 +476,7 @@ Function4034f: ; 4034f push af ld a, [wJumptableIndex] push af - callba Function8442c + callba PrintDexEntry pop af ld [wJumptableIndex], a pop af diff --git a/engine/predef.asm b/engine/predef.asm index 90a60c800..c089215a6 100644 --- a/engine/predef.asm +++ b/engine/predef.asm @@ -59,8 +59,8 @@ PredefPointers:: ; 856b add_predef LearnLevelMoves add_predef FillMoves add_predef EvolveAfterBattle - add_predef Function28f63 - add_predef Function28f24 + add_predef TradeAnimationPlayer2 + add_predef TradeAnimation add_predef CopyPkmnToTempMon add_predef ListMoves ; $20 add_predef PlaceNonFaintStatus diff --git a/engine/printer.asm b/engine/printer.asm index 9c18d42fe..5330d6b3c 100755 --- a/engine/printer.asm +++ b/engine/printer.asm @@ -653,7 +653,7 @@ Function84425: ; 84425 ret ; 8442c -Function8442c: ; 8442c +PrintDexEntry: ; 8442c ld a, [wcf65] push af ld hl, VTiles1 @@ -661,7 +661,7 @@ Function8442c: ; 8442c lb bc, BANK(FontInversed), $80 call Request1bpp xor a - ld [$ffac], a + ld [hPrinter], a call Function8474c ld a, [rIE] push af @@ -720,7 +720,7 @@ Function8442c: ; 8442c ret ; 844bc -Function844bc: ; 844bc (21:44bc) +PrintPCBox: ; 844bc (21:44bc) ld a, [wcf65] push af ld a, $9 @@ -728,13 +728,13 @@ Function844bc: ; 844bc (21:44bc) ld a, e ld [wd004], a ld a, d - ld [StartFlypoint], a + ld [wd005], a ld a, b - ld [EndFlypoint], a + ld [wd006], a ld a, c - ld [MovementBuffer], a + ld [wd007], a xor a - ld [$ffac], a + ld [hPrinter], a ld [wd003], a call Function8474c ld a, [rIE] @@ -801,11 +801,11 @@ Function84559: ; 84559 (21:4559) call Function843f0 ret -Function84560: ; 84560 +PrintUnownStamp: ; 84560 ld a, [wcf65] push af xor a - ld [$ffac], a + ld [hPrinter], a call Function8474c ld a, [rIE] push af @@ -861,7 +861,7 @@ Function84560: ; 84560 ret ; 845d4 -Function845d4: ; 845d4 +PrintMail: ; 845d4 call Function845db call Function84425 ret @@ -871,7 +871,7 @@ Function845db: ; 845db ld a, [wcf65] push af xor a - ld [$ffac], a + ld [hPrinter], a call Function8474c ld a, [rIE] push af @@ -903,11 +903,11 @@ Function845db: ; 845db ret ; 8461a -Function8461a: ; 8461a +PrintPartymon: ; 8461a ld a, [wcf65] push af xor a - ld [$ffac], a + ld [hPrinter], a call Function8474c ld a, [rIE] push af @@ -962,7 +962,7 @@ _PrintDiploma: ; 84688 push af callba Function1dd709 xor a - ld [$ffac], a + ld [hPrinter], a call Function8474c ld a, [rIE] push af @@ -1040,7 +1040,7 @@ Function846f6: ; 846f6 .asm_84722 ld a, $1 - ld [$ffac], a + ld [hPrinter], a scf ret ; 84728 @@ -1205,15 +1205,15 @@ Function84817: ; 84817 (21:4817) ld bc, SCREEN_HEIGHT * SCREEN_WIDTH ld a, " " call ByteFill - call Function84a0e + call Printer_PlaceEmptyBoxSlotString hlcoord 0, 0 ld bc, 9 * SCREEN_WIDTH ld a, " " call ByteFill - call Function849e9 - call Function849d7 + call Printer_PlaceSideBorders + call Printer_PlaceTopBorder hlcoord 4, 3 - ld de, String_84865 + ld de, .String_PokemonList call PlaceString ld a, [wd007] ld bc, BOX_NAME_LENGTH @@ -1231,7 +1231,7 @@ Function84817: ; 84817 (21:4817) ret ; 84865 (21:4865) -String_84865: +.String_PokemonList: db "#MON LIST@" ; 8486f @@ -1240,8 +1240,8 @@ Function8486f: ; 8486f (21:486f) ld bc, SCREEN_HEIGHT * SCREEN_WIDTH ld a, " " call ByteFill - call Function84a0e - call Function849e9 + call Printer_PlaceEmptyBoxSlotString + call Printer_PlaceSideBorders ld a, [wd003] and a ret nz @@ -1257,8 +1257,8 @@ Function84893: ; 84893 (21:4893) ld bc, SCREEN_HEIGHT * SCREEN_WIDTH ld a, " " call ByteFill - call Function84a0e - call Function849e9 + call Printer_PlaceEmptyBoxSlotString + call Printer_PlaceSideBorders ld a, [wd003] and a ret nz @@ -1274,12 +1274,12 @@ Function848b7: ; 848b7 (21:48b7) ld bc, SCREEN_HEIGHT * SCREEN_WIDTH ld a, " " call ByteFill - call Function84a0e + call Printer_PlaceEmptyBoxSlotString hlcoord 1, 15 lb bc, 2, 18 call ClearBox - call Function849e9 - call Function849fc + call Printer_PlaceSideBorders + call Printer_PlaceBottomBorders ld a, [wd003] and a ret nz @@ -1291,7 +1291,7 @@ Function848b7: ; 848b7 (21:48b7) ret Function848e7: ; 848e7 (21:48e7) - ld a, [EndFlypoint] + ld a, [wd006] call GetSRAMBank Function848ed: ; 848ed (21:48ed) @@ -1318,7 +1318,7 @@ Function848ed: ; 848ed (21:48ed) push hl call PlaceString ld a, [CurPartySpecies] - cp $fd + cp EGG pop hl jr z, .ok2 ld bc, $b @@ -1326,7 +1326,7 @@ Function848ed: ; 848ed (21:48ed) call Function8498a ld bc, $9 add hl, bc - ld a, $f3 + ld a, "/" ld [hli], a push hl ld bc, $e @@ -1336,7 +1336,7 @@ Function848ed: ; 848ed (21:48ed) push hl ld a, [wd004] ld l, a - ld a, [StartFlypoint] + ld a, [wd005] ld h, a ld bc, $372 add hl, bc @@ -1354,7 +1354,7 @@ Function848ed: ; 848ed (21:48ed) push hl ld a, [wd004] ld l, a - ld a, [StartFlypoint] + ld a, [wd005] ld h, a ld bc, $35 add hl, bc @@ -1387,7 +1387,7 @@ Function8498a: ; 8498a (21:498a) push hl ld a, [wd004] ld l, a - ld a, [StartFlypoint] + ld a, [wd005] ld h, a ld bc, $2b add hl, bc @@ -1421,7 +1421,7 @@ Function849c6: ; 849c6 (21:49c6) ld d, $0 ld a, [wd004] ld l, a - ld a, [StartFlypoint] + ld a, [wd005] ld h, a add hl, de ld e, l @@ -1429,62 +1429,62 @@ Function849c6: ; 849c6 (21:49c6) pop hl ret -Function849d7: ; 849d7 (21:49d7) +Printer_PlaceTopBorder: ; 849d7 (21:49d7) hlcoord 0, 0 ld a, "┌" ld [hli], a ld a, "─" ld c, SCREEN_WIDTH - 2 -.asm_849e1 +.loop ld [hli], a dec c - jr nz, .asm_849e1 + jr nz, .loop ld a, "┐" ld [hl], a ret -Function849e9: ; 849e9 (21:49e9) +Printer_PlaceSideBorders: ; 849e9 (21:49e9) hlcoord 0, 0 ld de, SCREEN_WIDTH - 1 ld c, SCREEN_HEIGHT -.asm_849f1 +.loop ld a, "│" ld [hl], a add hl, de ld a, "│" ld [hli], a dec c - jr nz, .asm_849f1 + jr nz, .loop ret -Function849fc: ; 849fc (21:49fc) +Printer_PlaceBottomBorders: ; 849fc (21:49fc) hlcoord 0, 17 ld a, "└" ld [hli], a ld a, "─" ld c, SCREEN_WIDTH - 2 -.asm_84a06 +.loop ld [hli], a dec c - jr nz, .asm_84a06 + jr nz, .loop ld a, "┘" ld [hl], a ret -Function84a0e: ; 84a0e (21:4a0e) +Printer_PlaceEmptyBoxSlotString: ; 84a0e (21:4a0e) hlcoord 2, 0 ld c, $6 -.asm_84a13 +.loop push bc push hl ld de, String84a25 call PlaceString pop hl - ld bc, $3c + ld bc, 3 * SCREEN_WIDTH add hl, bc pop bc dec c - jr nz, .asm_84a13 + jr nz, .loop ret ; 84a25 (21:4a25) diff --git a/engine/trade/animation.asm b/engine/trade/animation.asm new file mode 100755 index 000000000..1c03dc869 --- /dev/null +++ b/engine/trade/animation.asm @@ -0,0 +1,1542 @@ +TradeAnimation: ; 28f24 + xor a + ld [wcf66], a + ld hl, wPlayerTrademonSenderName + ld de, wOTTrademonSenderName + call Function297ff + ld hl, wPlayerTrademonSpecies + ld de, wOTTrademonSpecies + call Function29814 + ld de, .data_28f3f + jr Function28fa1 + +.data_28f3f + tradeanim_1b + tradeanim_01 + tradeanim_1c + tradeanim_21 + tradeanim_2d + tradeanim_27 + tradeanim_23 + tradeanim_03 + tradeanim_25 + tradeanim_28 + tradeanim_25 + tradeanim_1e + tradeanim_29 + tradeanim_06 + tradeanim_16 + tradeanim_1f + + tradeanim_19 + tradeanim_17 + tradeanim_22 + tradeanim_1f + tradeanim_2a + tradeanim_0e + tradeanim_03 + tradeanim_24 + tradeanim_05 + tradeanim_25 + tradeanim_02 + tradeanim_27 + tradeanim_25 + tradeanim_1d + tradeanim_2c + tradeanim_2e + tradeanim_1e + tradeanim_18 + tradeanim_1f + tradeanim_end + +TradeAnimationPlayer2: ; 28f63 + xor a + ld [wcf66], a + ld hl, wOTTrademonSenderName + ld de, wPlayerTrademonSenderName + call Function297ff + ld hl, wOTTrademonSpecies + ld de, wPlayerTrademonSpecies + call Function29814 + ld de, .data_28f7e + jr Function28fa1 + +.data_28f7e + tradeanim_1a + tradeanim_17 + tradeanim_22 + tradeanim_1f + tradeanim_2a + tradeanim_06 + tradeanim_03 + tradeanim_24 + tradeanim_05 + tradeanim_25 + tradeanim_02 + tradeanim_27 + tradeanim_25 + tradeanim_1d + tradeanim_2c + tradeanim_2f + tradeanim_1e + tradeanim_18 + tradeanim_1f + + tradeanim_1b + tradeanim_01 + tradeanim_1c + tradeanim_22 + tradeanim_27 + tradeanim_23 + tradeanim_03 + tradeanim_25 + tradeanim_28 + tradeanim_25 + tradeanim_1e + tradeanim_29 + tradeanim_0e + tradeanim_16 + tradeanim_1f + tradeanim_end + +Function28fa1: ; 28fa1 + ld hl, wTradeAnimPointer + ld [hl], e + inc hl + ld [hl], d + ld a, [hMapAnims] + push af + xor a + ld [hMapAnims], a + ld hl, VramState + ld a, [hl] + push af + res 0, [hl] + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + call Function28fdb + ld a, [wcf66] + and a + jr nz, .anim_loop + ld de, MUSIC_EVOLUTION + call PlayMusic2 +.anim_loop + call DoTradeAnimation + jr nc, .anim_loop + pop af + ld [Options], a + pop af + ld [VramState], a + pop af + ld [hMapAnims], a + ret +; 28fdb + +Function28fdb: ; 28fdb + xor a + ld [wJumptableIndex], a + call ClearBGPalettes + call ClearSprites + call ClearTileMap + call DisableLCD + call LoadFontsBattleExtra + callab Function8cf53 + ld a, [hCGB] + and a + jr z, .asm_2900b + ld a, $1 + ld [rVBK], a + ld hl, VTiles0 + ld bc, sScratch - VTiles0 + xor a + call ByteFill + ld a, $0 + ld [rVBK], a + +.asm_2900b + hlbgcoord 0, 0 + ld bc, sScratch - VBGMap0 + ld a, " " + call ByteFill + ld hl, TradeGameBoyLZ + ld de, VTiles2 tile $31 + call Decompress + ld hl, TradeArrowGFX + ld de, VTiles1 tile $6d + ld bc, $10 + ld a, BANK(TradeArrowGFX) + call FarCopyBytes + ld hl, TradeArrowGFX + $10 + ld de, VTiles1 tile $6e + ld bc, $10 + ld a, BANK(TradeArrowGFX) + call FarCopyBytes + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + callba Function4d7fd + call EnableLCD + call Function2982b + ld a, [wPlayerTrademonSpecies] + ld hl, wPlayerTrademonDVs + ld de, VTiles0 + call Function29491 + ld a, [wOTTrademonSpecies] + ld hl, wOTTrademonDVs + ld de, VTiles0 tile $31 + call Function29491 + ld a, [wPlayerTrademonSpecies] + ld de, wPlayerTrademonSpeciesName + call Function294a9 + ld a, [wOTTrademonSpecies] + ld de, wOTTrademonSpeciesName + call Function294a9 + call Function297ed + ret +; 29082 + +DoTradeAnimation: ; 29082 + ld a, [wJumptableIndex] + bit 7, a + jr nz, .finished + call .DoTradeAnimCommand + callab Function8cf69 + ld hl, wcf65 + inc [hl] + call DelayFrame + and a + ret + +.finished + call LoadStandardFont + scf + ret +; 290a0 + +.DoTradeAnimCommand: ; 290a0 + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, .JumpTable +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 290af + +.JumpTable: ; 290af + dw GetTradeAnimByte ; 00 + dw TradeAnim_01 ; 01 get player mon frontpic + dw TradeAnim_02 ; 02 + dw TradeAnim_03 ; 03 transition to link tube + dw TradeAnim_04 ; 04 slide in link tube + dw TradeAnim_05 ; 05 + dw TradeAnim_06 ; 06 trademon navigates to OT system + dw TradeAnim_07 ; 07 pan bgmap + dw TradeAnim_08 ; 08 pan bgmap + dw TradeAnim_09 ; 09 pan bgmap + dw TradeAnim_0a ; 0a stop scroll + dw TradeAnim_0b ; 0b disappear mon icon + dw TradeAnim_0c ; 0c continue flashing OT screen + dw TradeAnim_0d ; 0d end scene + dw TradeAnim_0e ; 0e trademon navigates to player system + dw TradeAnim_0f ; 0f pan bgmap + dw TradeAnim_10 ; 10 pan bgmap + dw TradeAnim_11 ; 11 pan bgmap + dw TradeAnim_12 ; 12 stop scroll + dw TradeAnim_13 ; 13 disappear mon icon + dw TradeAnim_14 ; 14 continue flashing OT screen + dw TradeAnim_15 ; 15 end scene + dw TradeAnim_16 ; 16 + dw TradeAnim_17 ; 17 + dw TradeAnim_18 ; 18 + dw TradeAnim_19 ; 19 + dw TradeAnim_1a ; 1a + dw TradeAnim_1b ; 1b set up scroll for player mon + dw TradeAnim_1c ; 1c scroll across + dw TradeAnim_1d ; 1d + dw TradeAnim_1e ; 1e set up scroll for mon transfer + dw TradeAnim_1f ; 1f + dw TradeAnim_20 ; 20 + dw TradeAnim_21 ; 21 wait 80 frames + dw TradeAnim_22 ; 22 + dw TradeAnim_23 ; 23 ball appear anim + dw TradeAnim_24 ; 24 ball rises into tube + dw TradeAnim_25 ; 25 wait ball rise + dw TradeAnim_26 ; 26 + dw TradeAnim_27 ; 27 ball return poof anim + dw TradeAnim_28 ; 28 ball travels through tube + dw TradeAnim_29 ; 29 give trademon sfx + dw TradeAnim_2a ; 2a get trademon sfx + dw EndTradeAnim ; 2b + dw TradeAnim_2c ; 2c + dw TradeAnim_2d ; 2d wait 96 frames + dw TradeAnim_2e ; 2e + dw TradeAnim_2f ; 2f +; 2910f + +NextTradeAnim: ; 2910f + ld hl, wJumptableIndex + inc [hl] + ret +; 29114 + +GetTradeAnimByte: ; 29114 + ld hl, wTradeAnimPointer + ld e, [hl] + inc hl + ld d, [hl] + ld a, [de] + ld [wJumptableIndex], a + inc de + ld [hl], d + dec hl + ld [hl], e + ret +; 29123 + +EndTradeAnim: ; 29123 + ld hl, wJumptableIndex + set 7, [hl] + ret +; 29129 + +TradeAnim_06: ; 29129 + ld a, $ed + call Function292f6 + ld a, [wc74c] + ld [wd265], a + xor a + depixel 5, 11, 4, 0 + ld b, $0 + jr Function2914e + +TradeAnim_0e: ; 2913c + ld a, $ee + call Function292f6 + ld a, [wc74d] + ld [wd265], a + ld a, $2 + depixel 9, 18, 4, 4 + ld b, $4 + +Function2914e: ; 2914e + push bc + push de + push bc + push de + push af + call DisableLCD + callab Function8cf53 + hlbgcoord 20, 3 + ld bc, $c + ld a, $60 + call ByteFill + pop af + call Function29281 + xor a + ld [hSCX], a + ld a, $7 + ld [hWX], a + ld a, $70 + ld [hWY], a + call EnableLCD + call Function2985a + pop de + ld a, SPRITE_ANIM_INDEX_11 + call _InitSpriteAnimStruct + ld hl, $b + add hl, bc + pop bc + ld [hl], b + pop de + ld a, SPRITE_ANIM_INDEX_12 + call _InitSpriteAnimStruct + ld hl, $b + add hl, bc + pop bc + ld [hl], b + call WaitBGMap + ld b, SCGB_1B + call GetSGBLayout + ld a, $e4 + call DmgToCgbBGPals + ld a, $d0 + call Functioncf8 + call NextTradeAnim + ld a, $5c + ld [wcf64], a + ret +; 291af + +TradeAnim_07: ; 291af + call Function2981d + ld a, [hSCX] + add $2 + ld [hSCX], a + cp $50 + ret nz + ld a, $1 + call Function29281 + call NextTradeAnim + ret +; 291c4 + +TradeAnim_08: ; 291c4 + call Function2981d + ld a, [hSCX] + add $2 + ld [hSCX], a + cp $a0 + ret nz + ld a, $2 + call Function29281 + call NextTradeAnim + ret +; 291d9 + +TradeAnim_09: ; 291d9 + call Function2981d + ld a, [hSCX] + add $2 + ld [hSCX], a + and a + ret nz + call NextTradeAnim + ret +; 291e8 + +TradeAnim_10: ; 291e8 + call Function2981d + ld a, [hSCX] + sub $2 + ld [hSCX], a + cp $b0 + ret nz + ld a, $1 + call Function29281 + call NextTradeAnim + ret +; 291fd + +TradeAnim_11: ; 291fd + call Function2981d + ld a, [hSCX] + sub $2 + ld [hSCX], a + cp $60 + ret nz + xor a + call Function29281 + call NextTradeAnim + ret +; 29211 + +TradeAnim_12: ; 29211 + call Function2981d + ld a, [hSCX] + sub $2 + ld [hSCX], a + and a + ret nz + call NextTradeAnim + ret +; 29220 + +TradeAnim_0b: +TradeAnim_13: ; 29220 + ld a, $80 + ld [wcf64], a + call NextTradeAnim + ret +; 29229 + +TradeAnim_0d: +TradeAnim_15: ; 29229 + call ClearBGPalettes + call ClearTileMap + call ClearSprites + call DisableLCD + callab Function8cf53 + hlbgcoord 0, 0 + ld bc, sScratch - VBGMap0 + ld a, " " + call ByteFill + xor a + ld [hSCX], a + ld a, $90 + ld [hWY], a + call EnableLCD + call Function2982b + call WaitBGMap + call Function297ed + call GetTradeAnimByte + ret +; 2925d + +TradeAnim_0a: +TradeAnim_0c: +TradeAnim_0f: +TradeAnim_14: ; 2925d + call Function2981d + ld hl, wcf64 + ld a, [hl] + and a + jr z, .done + dec [hl] + ret + +.done + call NextTradeAnim + ret +; 2926d + +TradeAnim_29: ; 2926d + call GetTradeAnimByte + ld de, SFX_GIVE_TRADEMON + call PlaySFX + ret +; 29277 + +TradeAnim_2a: ; 29277 + call GetTradeAnimByte + ld de, SFX_GET_TRADEMON + call PlaySFX + ret +; 29281 + +Function29281: ; 29281 + and 3 + ld e, a + ld d, 0 + ld hl, Jumptable_2928f +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 2928f + +Jumptable_2928f: ; 2928f + dw Function29297 + dw Function292af + dw Function292be + dw Function29297 +; 29297 + +Function29297: ; 29297 + call Function297cf + hlcoord 9, 3 + ld [hl], $5b + inc hl + ld bc, $a + ld a, $60 + call ByteFill + hlcoord 3, 2 + call Function292ec + ret +; 292af + +Function292af: ; 292af + call Function297cf + hlcoord 0, 3 + ld bc, SCREEN_WIDTH + ld a, $60 + call ByteFill + ret +; 292be + +Function292be: ; 292be + call Function297cf + hlcoord 0, 3 + ld bc, $11 + ld a, $60 + call ByteFill + hlcoord 17, 3 + ld a, $5d + ld [hl], a + ld a, $61 + ld de, SCREEN_WIDTH + ld c, $3 +.asm_292d9 + add hl, de + ld [hl], a + dec c + jr nz, .asm_292d9 + add hl, de + ld a, $5f + ld [hld], a + ld a, $5b + ld [hl], a + hlcoord 10, 6 + call Function292ec + ret +; 292ec + +Function292ec: ; 292ec + ld de, TradeGameBoyTilemap + lb bc, 8, 6 + call Function297db + ret +; 292f6 + +Function292f6: ; 292f6 + push af + call ClearBGPalettes + call WaitTop + ld a, VBGMap1 / $100 + ld [hBGMapAddress + 1], a + call ClearTileMap + hlcoord 0, 0 + ld bc, SCREEN_WIDTH + ld a, "─" + call ByteFill + hlcoord 0, 1 + ld de, wc736 + call PlaceString + ld hl, wc741 + ld de, 0 +.asm_2931e + ld a, [hli] + cp "@" + jr z, .asm_29326 + dec de + jr .asm_2931e + +.asm_29326 + hlcoord 0, 4 + add hl, de + ld de, wc741 + call PlaceString + hlcoord 7, 2 + ld bc, 6 + pop af + call ByteFill + call WaitBGMap + call WaitTop + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a + call ClearTileMap + ret +; 29348 + +TradeAnim_03: ; 29348 + call ClearTileMap + call WaitTop + ld a, $a0 + ld [hSCX], a + call DelayFrame + hlcoord 8, 2 + ld de, Tilemap_298f7 + lb bc, 3, 12 + call Function297db + call WaitBGMap + ld b, SCGB_1B + call GetSGBLayout + ld a, $e4 + call DmgToCgbBGPals + ld de, $e4e4 + call DmgToCgbObjPals + ld de, SFX_POTION + call PlaySFX + call NextTradeAnim + ret +; 2937e + +TradeAnim_04: ; 2937e + ld a, [hSCX] + and a + jr z, .done + add $4 + ld [hSCX], a + ret + +.done + ld c, 80 + call DelayFrames + call GetTradeAnimByte + ret +; 29391 + +TradeAnim_05: ; 29391 + ld a, [hSCX] + cp $a0 + jr z, .asm_2939c + sub $4 + ld [hSCX], a + ret + +.asm_2939c + call ClearTileMap + xor a + ld [hSCX], a + call GetTradeAnimByte + ret +; 293a6 + +TradeAnim_1b: ; 293a6 + ld a, $8f + ld [hWX], a + ld a, $88 + ld [hSCX], a + ld a, $50 + ld [hWY], a + call GetTradeAnimByte + ret +; 293b6 + +TradeAnim_1c: ; 293b6 + ld a, [hWX] + cp $7 + jr z, .done + sub $4 + ld [hWX], a + ld a, [hSCX] + sub $4 + ld [hSCX], a + ret + +.done + ld a, $7 + ld [hWX], a + xor a + ld [hSCX], a + call GetTradeAnimByte + ret +; 293d2 + +TradeAnim_1d: ; 293d2 + ld a, $7 + ld [hWX], a + ld a, $50 + ld [hWY], a + call GetTradeAnimByte + ret +; 293de + +TradeAnim_1e: ; 293de + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + call GetTradeAnimByte + ret +; 293ea + +TradeAnim_1f: ; 293ea + call WaitTop + ld a, VBGMap1 / $100 + ld [hBGMapAddress + 1], a + call WaitBGMap + ld a, $7 + ld [hWX], a + xor a + ld [hWY], a + call DelayFrame + call WaitTop + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a + call ClearTileMap + call NextTradeAnim + ret +; 2940c + +TradeAnim_20: ; 2940c + ld a, [hWX] + cp $a1 + jr nc, .asm_29417 + add $4 + ld [hWX], a + ret + +.asm_29417 + ld a, VBGMap1 / $100 + ld [hBGMapAddress + 1], a + call WaitBGMap + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a + call GetTradeAnimByte + ret +; 2942e + +TradeAnim_01: ; 2942e + call Function2951f + ld a, [wPlayerTrademonSpecies] + ld [CurPartySpecies], a + ld a, [wPlayerTrademonDVs] + ld [TempMonDVs], a + ld a, [wPlayerTrademonDVs + 1] + ld [TempMonDVs + 1], a + ld b, SCGB_1A + call GetSGBLayout + ld a, $e4 + call DmgToCgbBGPals + call Function294bb + + ld a, [wPlayerTrademonSpecies] + call GetCryIndex + jr c, .skip_cry + ld e, c + ld d, b + call PlayCryHeader +.skip_cry + + call GetTradeAnimByte + ret +; 29461 + +TradeAnim_02: ; 29461 + call Function29549 + ld a, [wOTTrademonSpecies] + ld [CurPartySpecies], a + ld a, [wOTTrademonDVs] + ld [TempMonDVs], a + ld a, [wOTTrademonDVs + 1] + ld [TempMonDVs + 1], a + ld b, SCGB_1A + call GetSGBLayout + ld a, $e4 + call DmgToCgbBGPals + call Function294c0 + call GetTradeAnimByte + ret +; 29487 + +TradeAnim_2c: ; 29487 + callba Function4d81e + call GetTradeAnimByte + ret +; 29491 + +Function29491: ; 29491 + push de + push af + predef GetUnownLetter + pop af + ld [CurPartySpecies], a + ld [CurSpecies], a + call GetBaseData + pop de + predef GetFrontpic + ret +; 294a9 + +Function294a9: ; 294a9 + push de + ld [wd265], a + call GetPokemonName + ld hl, StringBuffer1 + pop de + ld bc, NAME_LENGTH + call CopyBytes + ret +; 294bb + +Function294bb: ; 294bb + ld de, VTiles0 + jr Function294c3 + +Function294c0: ; 294c0 + ld de, VTiles0 tile $31 + +Function294c3: ; 294c3 + call DelayFrame + ld hl, VTiles2 + lb bc, 10, $31 + call Request2bpp + call WaitTop + call Function297cf + hlcoord 7, 2 + xor a + ld [hFillBox], a + lb bc, 7, 7 + predef FillBox + call WaitBGMap + ret +; 294e7 + +TradeAnim_21: ; 294e7 + ld c, 80 + call DelayFrames + call GetTradeAnimByte + ret +; 294f0 + +TradeAnim_22: ; 294f0 + ld c, 40 + call DelayFrames + call GetTradeAnimByte + ret +; 294f9 + +TradeAnim_2d: ; 294f9 + ld c, 96 + call DelayFrames + call GetTradeAnimByte + ret +; 29502 + +TradeAnim_2e: ; 29502 + call Function29516 + ret nz + ld c, 80 + call DelayFrames + ret +; 2950c + +TradeAnim_2f: ; 2950c + call Function29516 + ret nz + ld c, 180 + call DelayFrames + ret +; 29516 + +Function29516: ; 29516 + call GetTradeAnimByte + ld a, [wOTTrademonSpecies] + cp $fd + ret +; 2951f +Function2951f: ; 2951f + ld de, wPlayerTrademonSpecies + ld a, [de] + cp $fd + jr z, Function295a1 + call Function29573 + ld de, wPlayerTrademonSpecies + call Function295e3 + ld de, wPlayerTrademonSpeciesName + call Function295ef + ld a, [wPlayerTrademonCaughtData] + ld de, wPlayerTrademonOTName + call Function295f6 + ld de, PlayerScreens + call Function29611 + call Function295d8 + ret +; 29549 + +Function29549: ; 29549 + ld de, wOTTrademonSpecies + ld a, [de] + cp $fd + jr z, Function295a1 + call Function29573 + ld de, wOTTrademonSpecies + call Function295e3 + ld de, wOTTrademonSpeciesName + call Function295ef + ld a, [wOTTrademonCaughtData] + ld de, wOTTrademonOTName + call Function295f6 + ld de, wOTTrademonID + call Function29611 + call Function295d8 + ret +; 29573 + +Function29573: ; 29573 + call WaitTop + call Function297cf + ld a, VBGMap1 / $100 + ld [hBGMapAddress + 1], a + hlcoord 3, 0 + ld b, $6 + ld c, $d + call TextBox + hlcoord 4, 0 + ld de, String29591 + call PlaceString + ret +; 29591 + +String29591: ; 29591 + db "─── №." + next "" + next "OT/" + next $73, "№.@" +; 295a1 + +Function295a1: ; 295a1 + call WaitTop + call Function297cf + ld a, VBGMap1 / $100 + ld [hBGMapAddress + 1], a + hlcoord 3, 0 + ld b, $6 + ld c, $d + call TextBox + hlcoord 4, 2 + ld de, String295c2 + call PlaceString + call Function295d8 + ret +; 295c2 + +String295c2: ; 295c2 + db "EGG" + next "OT/?????" + next "№.?????@" +; 295d8 + +Function295d8: ; 295d8 + call WaitBGMap + call WaitTop + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a + ret +; 295e3 + +Function295e3: ; 295e3 + hlcoord 10, 0 + lb bc, PRINTNUM_LEADINGZEROS | 1, 3 + call PrintNum + ld [hl], " " + ret +; 295ef + +Function295ef: ; 295ef + hlcoord 4, 2 + call PlaceString + ret +; 295f6 + +Function295f6: ; 295f6 + cp 3 + jr c, .asm_295fb + xor a + +.asm_295fb + push af + hlcoord 7, 4 + call PlaceString + inc bc + pop af + ld hl, Unknown_2960e + ld d, 0 + ld e, a + add hl, de + ld a, [hl] + ld [bc], a + ret +; 2960e + +Unknown_2960e: ; 2960e + db " ", "♂", "♀" +; 29611 + +Function29611: ; 29611 + hlcoord 7, 6 + lb bc, PRINTNUM_LEADINGZEROS | 2, 5 + call PrintNum + ret +; 2961b + +TradeAnim_23: ; 2961b + depixel 10, 11, 4, 0 + ld a, SPRITE_ANIM_INDEX_0E + call _InitSpriteAnimStruct + call GetTradeAnimByte + ld a, $20 + ld [wcf64], a + ret +; 2962c + +TradeAnim_24: ; 2962c + depixel 10, 11, 4, 0 + ld a, SPRITE_ANIM_INDEX_0E + call _InitSpriteAnimStruct + ld hl, $b + add hl, bc + ld [hl], $1 + ld hl, $7 + add hl, bc + ld [hl], $dc + call GetTradeAnimByte + ld a, $38 + ld [wcf64], a + ret +; 29649 + +TradeAnim_27: ; 29649 + depixel 10, 11, 4, 0 + ld a, SPRITE_ANIM_INDEX_0F + call _InitSpriteAnimStruct + call GetTradeAnimByte + ld a, $10 + ld [wcf64], a + ld de, SFX_BALL_POOF + call PlaySFX + ret +; 29660 + +TradeAnim_28: ; 29660 + ld a, $e4 + call Functioncf8 + depixel 5, 11 + ld a, SPRITE_ANIM_INDEX_10 + call _InitSpriteAnimStruct + call GetTradeAnimByte + ld a, $40 + ld [wcf64], a + ret +; 29676 + +Function29676: ; 29676 (a:5676) + ld hl, $b + add hl, bc + ld e, [hl] + ld d, 0 + ld hl, Jumptable_29686 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 29686 + +Jumptable_29686: ; 29686 (a:5686) + dw Function2969a + dw Function296a4 + dw Function296af + dw Function296bd + dw Function296cf + dw Function296dd + dw Function296f2 +; 2969a + +Function29694: ; 29694 (a:5694) + ld hl, $b + add hl, bc + inc [hl] + ret + +Function2969a: ; 2969a (a:569a) + call Function29694 + ld hl, $c + add hl, bc + ld [hl], $80 + ret + +Function296a4: ; 296a4 (a:56a4) + ld hl, $c + add hl, bc + ld a, [hl] + dec [hl] + and a + ret nz + call Function29694 + +Function296af: ; 296af (a:56af) + ld hl, $4 + add hl, bc + ld a, [hl] + cp $94 + jr nc, .asm_296ba + inc [hl] + ret +.asm_296ba + call Function29694 + +Function296bd: ; 296bd (a:56bd) + ld hl, $5 + add hl, bc + ld a, [hl] + cp $4c + jr nc, .asm_296c8 + inc [hl] + ret +.asm_296c8 + ld hl, $ + add hl, bc + ld [hl], $0 + ret + +Function296cf: ; 296cf (a:56cf) + ld hl, $5 + add hl, bc + ld a, [hl] + cp $2c + jr z, .asm_296da + dec [hl] + ret +.asm_296da + call Function29694 + +Function296dd: ; 296dd (a:56dd) + ld hl, $4 + add hl, bc + ld a, [hl] + cp $58 + jr z, .asm_296e8 + dec [hl] + ret +.asm_296e8 + call Function29694 + ld hl, $c + add hl, bc + ld [hl], $80 + ret + +Function296f2: ; 296f2 (a:56f2) + ld hl, $c + add hl, bc + ld a, [hl] + dec [hl] + and a + ret nz + ld hl, $ + add hl, bc + ld [hl], $0 + ret +; 29701 (a:5701) + +TradeAnim_16: ; 29701 + ld a, [wLinkMode] + cp LINK_TIMECAPSULE + jr z, .time_capsule + ld hl, UnknownText_0x29737 + call PrintText + ld c, 189 + call DelayFrames + ld hl, UnknownText_0x29732 + call PrintText + call Function297c9 + ld c, 128 + call DelayFrames + call GetTradeAnimByte + ret + +.time_capsule + ld hl, UnknownText_0x29732 + call PrintText + call Function297c9 + call GetTradeAnimByte + ret +; 29732 + +UnknownText_0x29732: ; 0x29732 + ; was sent to @ . + text_jump UnknownText_0x1bc6e9 + db "@" +; 0x29737 + +UnknownText_0x29737: ; 0x29737 + ; + text_jump UnknownText_0x1bc701 + db "@" +; 0x2973c + +TradeAnim_17: ; 2973c + ld hl, UnknownText_0x29752 + call PrintText + call Function297c9 + ld hl, UnknownText_0x29757 + call PrintText + call Function297c9 + call GetTradeAnimByte + ret +; 29752 + +UnknownText_0x29752: ; 0x29752 + ; bids farewell to + text_jump UnknownText_0x1bc703 + db "@" +; 0x29757 + +UnknownText_0x29757: ; 0x29757 + ; . + text_jump UnknownText_0x1bc719 + db "@" +; 0x2975c + +TradeAnim_18: ; 2975c + call WaitTop + hlcoord 0, 10 + ld bc, 8 * SCREEN_WIDTH + ld a, " " + call ByteFill + call WaitBGMap + ld hl, UnknownText_0x2977a + call PrintText + call Function297c9 + call GetTradeAnimByte + ret +; 2977a + +UnknownText_0x2977a: ; 0x2977a + ; Take good care of @ . + text_jump UnknownText_0x1bc71f + db "@" +; 0x2977f + +TradeAnim_19: ; 2977f + ld hl, UnknownText_0x2979a + call PrintText + call Function297c9 + ld hl, UnknownText_0x2979f + call PrintText + call Function297c9 + ld c, 14 + call DelayFrames + call GetTradeAnimByte + ret +; 2979a + +UnknownText_0x2979a: ; 0x2979a + ; For @ 's @ , + text_jump UnknownText_0x1bc739 + db "@" +; 0x2979f + +UnknownText_0x2979f: ; 0x2979f + ; sends @ . + text_jump UnknownText_0x1bc74c + db "@" +; 0x297a4 + +TradeAnim_1a: ; 297a4 + ld hl, UnknownText_0x297bf + call PrintText + call Function297c9 + ld hl, UnknownText_0x297c4 + call PrintText + call Function297c9 + ld c, 14 + call DelayFrames + call GetTradeAnimByte + ret +; 297bf + +UnknownText_0x297bf: ; 0x297bf + ; will trade @ @ + text_jump UnknownText_0x1bc75e + db "@" +; 0x297c4 + +UnknownText_0x297c4: ; 0x297c4 + ; for @ 's @ . + text_jump UnknownText_0x1bc774 + db "@" +; 0x297c9 + +Function297c9: ; 297c9 + ld c, 80 + call DelayFrames + ret +; 297cf + +Function297cf: ; 297cf + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, " " + call ByteFill + ret +; 297db + +Function297db: ; 297db +.asm_297db + push bc + push hl +.asm_297dd + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .asm_297dd + pop hl + ld bc, SCREEN_WIDTH + add hl, bc + pop bc + dec b + jr nz, .asm_297db + ret +; 297ed + +Function297ed: ; 297ed + ld a, [hSGB] + and a + ld a, $e4 + jr z, .asm_297f6 + ld a, $f0 + +.asm_297f6 + call Functioncf8 + ld a, $e4 + call DmgToCgbBGPals + ret +; 297ff + +Function297ff: ; 297ff + push de + ld de, wc736 + ld bc, NAME_LENGTH + call CopyBytes + pop hl + ld de, wc741 + ld bc, NAME_LENGTH + call CopyBytes + ret +; 29814 + +Function29814: ; 29814 + ld a, [hl] + ld [wc74c], a + ld a, [de] + ld [wc74d], a + ret +; 2981d + +Function2981d: ; 2981d + ld a, [wcf65] + and $7 + ret nz + ld a, [rBGP] + xor $3c + call DmgToCgbBGPals + ret +; 2982b + +Function2982b: ; 2982b + call DelayFrame + ld de, TradeBallGFX + ld hl, VTiles0 tile $62 + lb bc, BANK(TradeBallGFX), $6 + call Request2bpp + ld de, TradePoofGFX + ld hl, VTiles0 tile $68 + lb bc, BANK(TradePoofGFX), $c + call Request2bpp + ld de, TradeCableGFX + ld hl, VTiles0 tile $74 + lb bc, BANK(TradeCableGFX), $4 + call Request2bpp + xor a + ld hl, wc300 + ld [hli], a + ld [hl], $62 + ret +; 2985a + +Function2985a: ; 2985a + call DelayFrame + ld e, $3 + callab Function8e83f + ld de, TradeBubbleGFX + ld hl, VTiles0 tile $72 + lb bc, BANK(TradeBubbleGFX), $4 + call Request2bpp + xor a + ld hl, wc300 + ld [hli], a + ld [hl], $62 + ret +; 29879 + +TradeAnim_25: ; 29879 + ld hl, wcf64 + ld a, [hl] + and a + jr z, .done + dec [hl] + ret + +.done + call GetTradeAnimByte + ret +; 29886 + +TradeAnim_26: ; 29886 + ld hl, wcf64 + ld a, [hl] + and a + jr z, .asm_2988f + dec [hl] + ret + +.asm_2988f + call GetTradeAnimByte + ret +; 29893 + + +Function29893: ; 29893 +; This function is unreferenced. +; It was meant for use in Japanese versions, so the +; constant used for copy length was changed by accident. + + ld hl, Unknown_298b5 + + ld a, [hli] + ld [wPlayerTrademonSpecies], a + ld de, wPlayerTrademonSenderName + ld c, 13 ; jp: 8 +.asm_2989f + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_2989f + + ld a, [hli] + ld [wOTTrademonSpecies], a + ld de, wOTTrademonSenderName + ld c, 13 ; jp: 8 +.asm_298ae + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_298ae + ret +; 298b5 + +Unknown_298b5: ; 298b5 + db $03, "ゲーフり@@", $23, $01 ; GAME FREAK + db $06, "クりーチャ@", $56, $04 ; Creatures Inc. +; 298c7 + + +TradeGameBoyTilemap: ; 298c7 +; 6x8 + db $31, $32, $32, $32, $32, $33 + db $34, $35, $36, $36, $37, $38 + db $34, $39, $3a, $3a, $3b, $38 + db $3c, $3d, $3e, $3e, $3f, $40 + db $41, $42, $43, $43, $44, $45 + db $46, $47, $43, $48, $49, $4a + db $41, $43, $4b, $4c, $4d, $4e + db $4f, $50, $50, $50, $51, $52 +; 297f7 + +Tilemap_298f7: ; 297f7 +; 12x3 + db $43, $55, $56, $53, $53, $53, $53, $53, $53, $53, $53, $53 + db $43, $57, $58, $54, $54, $54, $54, $54, $54, $54, $54, $54 + db $43, $59, $5a, $43, $43, $43, $43, $43, $43, $43, $43, $43 +; 2991b + +TradeArrowGFX: INCBIN "gfx/trade/arrow.2bpp" +TradeCableGFX: INCBIN "gfx/trade/cable.2bpp" +TradeBubbleGFX: INCBIN "gfx/trade/bubble.2bpp" +TradeGameBoyLZ: INCBIN "gfx/trade/game_boy.2bpp.lz" +TradeBallGFX: INCBIN "gfx/trade/ball.2bpp" +TradePoofGFX: INCBIN "gfx/trade/poof.2bpp" diff --git a/event/photo.asm b/event/photo.asm index fd603fef9..712107ed0 100755 --- a/event/photo.asm +++ b/event/photo.asm @@ -81,7 +81,7 @@ UnownPrinter: ; 16be4 .pressed_a ld a, [wJumptableIndex] push af - callba Function84560 + callba PrintUnownStamp call RestartMapMusic pop af ld [wJumptableIndex], a @@ -248,9 +248,9 @@ PhotoStudio: ; 16dc7 ld hl, .Text_HoldStill call PrintText call DisableSpriteUpdates - callba Function8461a + callba PrintPartymon call Function2b74 - ld a, [$ffac] + ld a, [hPrinter] and a jr nz, .cancel ld hl, .Text_Presto diff --git a/gfx/mail.asm b/gfx/mail.asm index 38b329946..9ab6fa0d4 100755 --- a/gfx/mail.asm +++ b/gfx/mail.asm @@ -41,14 +41,12 @@ ReadAnyMail: ; b9237 call SetPalettes xor a ld [hJoyPressed], a - call Functionb929a + call .loop call ClearBGPalettes call DisableLCD call LoadStandardFont jp EnableLCD -; b929a -Functionb929a: ; b929a .loop call GetJoypad ld a, [hJoyPressed] @@ -61,7 +59,7 @@ Functionb929a: ; b929a .pressed_start ld a, [wJumptableIndex] push af - callab Function845d4 + callab PrintMail ; printer pop af ld [wJumptableIndex], a jr .loop diff --git a/hram.asm b/hram.asm index 1ed8eaba0..63409acfb 100644 --- a/hram.asm +++ b/hram.asm @@ -32,6 +32,7 @@ hJoyDown EQU $ffa8 hJoyLast EQU $ffa9 hInMenu EQU $ffaa +hPrinter EQU $ffac hFillBox EQU $ffad hMapObjectIndexBuffer EQU $ffaf diff --git a/macros.asm b/macros.asm index 4f736ffeb..fcf3eb15f 100644 --- a/macros.asm +++ b/macros.asm @@ -14,7 +14,7 @@ INCLUDE "macros/predef.asm" INCLUDE "macros/rst.asm" INCLUDE "macros/mobile.asm" INCLUDE "macros/trainer.asm" - +INCLUDE "macros/trade_anim.asm" RGB: MACRO diff --git a/macros/trade_anim.asm b/macros/trade_anim.asm new file mode 100755 index 000000000..46ae6651d --- /dev/null +++ b/macros/trade_anim.asm @@ -0,0 +1,175 @@ + enum_start + enum tradeanim_next_command +tradeanim_next: macro + db tradeanim_next_command +endm + + enum tradeanim_01_command +tradeanim_01: macro + db tradeanim_01_command +endm + + enum tradeanim_02_command +tradeanim_02: macro + db tradeanim_02_command +endm + + enum tradeanim_03_command +tradeanim_03: macro + db tradeanim_03_command +endm + + enum tradeanim_04_command +tradeanim_04: macro + db tradeanim_04_command +endm + + enum tradeanim_05_command +tradeanim_05: macro + db tradeanim_05_command +endm + + enum tradeanim_06_command +tradeanim_06: macro + db tradeanim_06_command +endm + +__enum__ set $e + + enum tradeanim_0e_command +tradeanim_0e: macro + db tradeanim_0e_command +endm + +__enum__ set $16 + + enum tradeanim_16_command +tradeanim_16: macro + db tradeanim_16_command +endm + + enum tradeanim_17_command +tradeanim_17: macro + db tradeanim_17_command +endm + + enum tradeanim_18_command +tradeanim_18: macro + db tradeanim_18_command +endm + + enum tradeanim_19_command +tradeanim_19: macro + db tradeanim_19_command +endm + + enum tradeanim_1a_command +tradeanim_1a: macro + db tradeanim_1a_command +endm + + enum tradeanim_1b_command +tradeanim_1b: macro + db tradeanim_1b_command +endm + + enum tradeanim_1c_command +tradeanim_1c: macro + db tradeanim_1c_command +endm + + enum tradeanim_1d_command +tradeanim_1d: macro + db tradeanim_1d_command +endm + + enum tradeanim_1e_command +tradeanim_1e: macro + db tradeanim_1e_command +endm + + enum tradeanim_1f_command +tradeanim_1f: macro + db tradeanim_1f_command +endm + + enum tradeanim_20_command +tradeanim_20: macro + db tradeanim_20_command +endm + + enum tradeanim_21_command +tradeanim_21: macro + db tradeanim_21_command +endm + + enum tradeanim_22_command +tradeanim_22: macro + db tradeanim_22_command +endm + + enum tradeanim_23_command +tradeanim_23: macro + db tradeanim_23_command +endm + + enum tradeanim_24_command +tradeanim_24: macro + db tradeanim_24_command +endm + + enum tradeanim_25_command +tradeanim_25: macro + db tradeanim_25_command +endm + + enum tradeanim_26_command +tradeanim_26: macro + db tradeanim_26_command +endm + + enum tradeanim_27_command +tradeanim_27: macro + db tradeanim_27_command +endm + + enum tradeanim_28_command +tradeanim_28: macro + db tradeanim_28_command +endm + + enum tradeanim_29_command +tradeanim_29: macro + db tradeanim_29_command +endm + + enum tradeanim_2a_command +tradeanim_2a: macro + db tradeanim_2a_command +endm + + enum tradeanim_end_command +tradeanim_end: macro + db tradeanim_end_command +endm + + enum tradeanim_2c_command +tradeanim_2c: macro + db tradeanim_2c_command +endm + + enum tradeanim_2d_command +tradeanim_2d: macro + db tradeanim_2d_command +endm + + enum tradeanim_2e_command +tradeanim_2e: macro + db tradeanim_2e_command +endm + + enum tradeanim_2f_command +tradeanim_2f: macro + db tradeanim_2f_command +endm + diff --git a/main.asm b/main.asm index 7bdf0cd04..1deff6110 100644 --- a/main.asm +++ b/main.asm @@ -7688,39 +7688,51 @@ GiveEgg:: ; df8c callab GetPreEvolution ld a, [CurPartySpecies] dec a + +; TryAddMonToParty sets Seen and Caught flags +; when it is successful. This routine will make +; sure that we aren't newly setting flags. push af call CheckCaughtMon pop af push bc call CheckSeenMon push bc + call TryAddMonToParty + +; If we haven't caught this Pokemon before receiving +; the Egg, reset the flag that was just set by +; TryAddMonToParty. pop bc ld a, c and a - jr nz, .asm_dfc3 + jr nz, .skip_caught_flag ld a, [CurPartySpecies] dec a ld c, a ld d, $0 ld hl, PokedexCaught - ld b, $0 + ld b, RESET_FLAG predef FlagPredef -.asm_dfc3 +.skip_caught_flag +; If we haven't seen this Pokemon before receiving +; the Egg, reset the flag that was just set by +; TryAddMonToParty. pop bc ld a, c and a - jr nz, .asm_dfd9 + jr nz, .skip_seen_flag ld a, [CurPartySpecies] dec a ld c, a ld d, $0 ld hl, PokedexSeen - ld b, $0 + ld b, RESET_FLAG predef FlagPredef -.asm_dfd9 +.skip_seen_flag pop af ld [CurPartySpecies], a ld a, [PartyCount] @@ -12286,7 +12298,7 @@ Function29fe4: ; unreferenced ld a, $0 call GetSRAMBank ld d, $0 - ld b, $2 + ld b, CHECK_FLAG predef FlagPredef call CloseSRAM ld a, c @@ -14356,7 +14368,7 @@ Function3957b: ; 3957b ld a, [hli] ld [de], a ld a, [hl] - ld [wc652], a + ld [wEnemyTrainerBaseReward], a ret ; 3959c @@ -14437,7 +14449,7 @@ endr jp [hl] .done - jp Function3991b + jp ComputeTrainerReward .cal2 ld a, BANK(sMysteryGiftTrainer) @@ -14673,18 +14685,18 @@ TrainerType4: ; 3989d jr .loop ; 3991b -Function3991b: ; 3991b (e:591b) - ld hl, hMultiplicand - 1 +ComputeTrainerReward: ; 3991b (e:591b) + ld hl, hProduct xor a rept 3 ld [hli], a endr - ld a, [wc652] ; base reward + ld a, [wEnemyTrainerBaseReward] ld [hli], a ld a, [CurPartyLevel] ld [hl], a call Multiply - ld hl, wc686 + ld hl, wBattleReward xor a ld [hli], a ld a, [hProduct + 2] @@ -14717,9 +14729,9 @@ GetTrainerName:: ; 3994c call CloseSRAM jr z, .not_cal2 - ld a, BANK(s0_abfe) + ld a, BANK(sMysteryGiftPartnerName) call GetSRAMBank - ld hl, s0_abfe + ld hl, sMysteryGiftPartnerName call CopyTrainerName jp CloseSRAM @@ -24118,31 +24130,31 @@ Function104770: ; 104770 (41:4770) Function1047a3: ; 1047a3 (41:47a3) decoord 0, 0 - call Function1047b4 + call .copy ld a, [hCGB] and a ret z + decoord 0, 0, AttrMap ld a, $1 ld [rVBK], a - -Function1047b4: ; 1047b4 (41:47b4) +.copy: hlbgcoord 0, 0 - ld c, $14 - ld b, $12 -.asm_1047bb + ld c, SCREEN_WIDTH + ld b, SCREEN_HEIGHT +.row push bc -.asm_1047bc +.column ld a, [de] inc de ld [hli], a dec c - jr nz, .asm_1047bc - ld bc, $c + jr nz, .column + ld bc, $20 - SCREEN_WIDTH add hl, bc pop bc dec b - jr nz, .asm_1047bb + jr nz, .row ld a, $0 ld [rVBK], a ret @@ -24287,2060 +24299,9 @@ GetCoordOfUpperLeftCorner:: ; 10486d ret ; 1048ba +INCLUDE "engine/mysterygift.asm" -DoMysteryGift: ; 1048ba (41:48ba) - call ClearTileMap - call ClearSprites - call WaitBGMap - call Function105153 - hlcoord 3, 8 - ld de, String_1049cd - call PlaceString - call WaitBGMap - callba Function2c642 - call Function1050fb - ld a, $2 - ld [wca01], a - ld a, $14 - ld [wca02], a - ld a, [rIE] - push af - call Function104a95 - ld d, a - xor a - ld [rIF], a - pop af - ld [rIE], a - push de - call ClearTileMap - call EnableLCD - call WaitBGMap - ld b, SCGB_08 - call GetSGBLayout - call SetPalettes - pop de - hlcoord 2, 8 - ld a, d - ld de, UnknownText_0x1049fd - cp $10 - jp z, Function1049af - cp $6c - jp nz, Function1049b4 - ld a, [wc900] - cp $3 - jr z, .asm_10492f - call Function104a25 - ld hl, UnknownText_0x104a11 - jp nc, Function1049c5 - call Function104a30 - ld hl, UnknownText_0x104a16 - jp c, Function1049c5 -.asm_10492f - ld a, [wc962] - and a - jp nz, Function1049bd - ld a, [wc912] - and a - jp nz, Function1049c2 - ld a, [wc900] - cp $3 - jr z, .asm_104963 - call Function104a56 - ld a, [wc900] - cp $4 - jr z, .asm_104963 - call Function104a71 - callba RestoreMobileEventIndex - callba MobileFn_1060a9 - callba BackupMobileEventIndex -.asm_104963 - ld a, [wc90f] - and a - jr z, .item - ld a, [wc911] - ld c, a - callba MysteryGiftGetDecoration - push bc - call Function105069 - pop bc - jr nz, .item - callab GetDecorationName_c - ld h, d - ld l, e - ld de, StringBuffer1 - ld bc, ITEM_NAME_LENGTH - call CopyBytes - ld hl, UnknownText_0x104a20 - jr Function1049c5 - -.item - call GetMysteryGiftBank - ld a, [wc910] - ld c, a - callba MysteryGiftGetItemHeldEffect - ld a, c - ld [sBackupMysteryGiftItem], a - ld [wNamedObjectIndexBuffer], a - call CloseSRAM - call GetItemName - ld hl, UnknownText_0x104a1b - jr Function1049c5 - -Function1049af: ; 1049af (41:49af) - ld hl, UnknownText_0x1049fd - jr Function1049c5 - -Function1049b4: ; 1049b4 (41:49b4) - ld hl, UnknownText_0x104a02 - call PrintText - jp DoMysteryGift - -Function1049bd: ; 1049bd (41:49bd) - ld hl, UnknownText_0x104a07 - jr Function1049c5 - -Function1049c2: ; 1049c2 (41:49c2) - ld hl, UnknownText_0x104a0c - -Function1049c5: ; 1049c5 (41:49c5) - call PrintText - ld a, $e3 - ld [rLCDC], a - ret -; 1049cd (41:49cd) - -String_1049cd: ; 1049cd - db "Press A to" - next "link IR-Device" - next "Press B to" - next "cancel it." - db "@" -; 1049fd - -UnknownText_0x1049fd: ; 1049fd - text_jump UnknownText_0x1c0436 - db "@" -; 104a02 - -UnknownText_0x104a02: ; 104a02 - text_jump UnknownText_0x1c0454 - db "@" -; 104a07 - -UnknownText_0x104a07: ; 104a07 - text_jump UnknownText_0x1c046a - db "@" -; 104a0c - -UnknownText_0x104a0c: ; 104a0c - text_jump UnknownText_0x1c048e - db "@" -; 104a11 - -UnknownText_0x104a11: ; 104a11 - text_jump UnknownText_0x1c04a7 - db "@" -; 104a16 - -UnknownText_0x104a16: ; 104a16 - text_jump UnknownText_0x1c04c6 - db "@" -; 104a1b - -UnknownText_0x104a1b: ; 104a1b - text_jump UnknownText_0x1c04e9 - db "@" -; 104a20 - -UnknownText_0x104a20: ; 104a20 - text_jump UnknownText_0x1c04fa - db "@" -; 104a25 - -Function104a25: ; 104a25 (41:4a25) - call GetMysteryGiftBank - ld a, [s0_abe5] - cp $5 - jp CloseSRAM - -Function104a30: ; 104a30 (41:4a30) - call GetMysteryGiftBank - ld a, [wc901] - ld b, a - ld a, [wc902] - ld c, a - ld a, [s0_abe5] - ld d, a - ld hl, s0_abe6 -.asm_104a42 - ld a, d - and a - jr z, .asm_104a53 - ld a, [hli] - cp b - jr nz, .asm_104a4e - ld a, [hl] - cp c - jr z, .asm_104a52 -.asm_104a4e - inc hl - dec d - jr .asm_104a42 -.asm_104a52 - scf -.asm_104a53 - jp CloseSRAM - -Function104a56: ; 104a56 (41:4a56) - call GetMysteryGiftBank - ld hl, s0_abe5 - ld a, [hl] - inc [hl] - ld hl, s0_abe6 ; inc hl - ld e, a - ld d, $0 -rept 2 - add hl, de -endr - ld a, [wc901] - ld [hli], a - ld a, [wc902] - ld [hl], a - jp CloseSRAM - -Function104a71: ; 104a71 (41:4a71) - call GetMysteryGiftBank - ld a, $1 - ld [sMysteryGiftTrainerHouseFlag], a - ld hl, wc903 - ld de, s0_abfe - ld bc, $b - call CopyBytes - ld a, $1 - ld [de], a - inc de - ld hl, wc850 - ld bc, $26 - call CopyBytes - jp CloseSRAM - -Function104a95: ; 104a95 (41:4a95) - di - callba ClearChannels - call Function104d5e -.asm_104a9f - call Function104d96 - call Function104ddd - ld a, [hPrintNum10] - cp $10 - jp z, Function104bd0 - cp $6c - jr nz, .asm_104a9f - ld a, [hPrintNum9] - cp $2 - jr z, Function104b22 - ld hl, $ffb3 - ld b, $1 - call Function104d56 - jr nz, .asm_104ac8 - call Function104b49 - jp nz, Function104bd0 - jr asm_104b0a -.asm_104ac8 - ld a, [rLY] - cp $90 - jr c, .asm_104ac8 - ld c, rRP % $100 - ld a, $c0 - ld [$ff00+c], a - ld b, $f0 -.asm_104ad5 - push bc - call Function105038 - ld b, $2 - ld c, rRP % $100 -.asm_104add - ld a, [$ff00+c] - and b - ld b, a - ld a, [rLY] - cp $90 - jr nc, .asm_104add -.asm_104ae6 - ld a, [$ff00+c] - and b - ld b, a - ld a, [rLY] - cp $90 - jr c, .asm_104ae6 - ld a, b - pop bc - dec b - jr z, .asm_104a9f - or a - jr nz, .asm_104a9f - ld a, [hMoneyTemp + 1] - bit 1, a - jr z, .asm_104ad5 - ld a, $10 - ld [hPrintNum10], a - jp Function104bd0 - -Function104b04: ; 104b04 (41:4b04) - call Function104b40 - jp nz, Function104bd0 - -asm_104b0a: ; 104b0a (41:4b0a) - call Function104d38 - jp nz, Function104bd0 - call Function104b88 - jp nz, Function104bd0 - call Function104d43 - jp nz, Function104bd0 - call Function105033 - jp Function104bd0 - -Function104b22: ; 104b22 (41:4b22) - call Function104b88 - jp nz, Function104bd0 - call Function104d43 - jp nz, Function104bd0 - call Function104b40 - jp nz, Function104bd0 - call Function104d38 - jp nz, Function104bd0 - call Function10502e - jp Function104bd0 - -Function104b40: ; 104b40 (41:4b40) - ld hl, $ffb3 - ld b, $1 - call Function104d56 - ret nz - -Function104b49: ; 104b49 (41:4b49) - call Function105033 - ld a, [hPrintNum10] - cp $6c - ret nz - ld a, [$ffb3] - cp $96 - jp nz, Function104d32 - ld a, $90 - ld [$ffb3], a - call Function104d38 - ret nz - ld hl, $ffb3 - ld b, $1 - call Function104d4e - ret nz - call Function10502e - ld a, [hPrintNum10] - cp $6c - ret nz - call Function104d43 - ret nz - ld hl, wc850 - ld a, [wca02] - ld b, a - call Function104d56 - ret nz - call Function105033 - ld a, [hPrintNum10] - cp $6c - ret - -Function104b88: ; 104b88 (41:4b88) - ld a, $96 - ld [$ffb3], a - ld hl, $ffb3 - ld b, $1 - call Function104d4e - ret nz - call Function10502e - ld a, [hPrintNum10] - cp $6c - ret nz - call Function104d43 - ret nz - ld hl, $ffb3 - ld b, $1 - call Function104d56 - ret nz - call Function105033 - ld a, [hPrintNum10] - cp $6c - ret nz - ld a, [$ffb3] - cp $90 - jp nz, Function104d32 - call Function104d38 - ret nz - ld hl, OverworldMap - ld a, [wca02] - ld b, a - call Function104d4e - ret nz - call Function10502e - ld a, [hPrintNum10] - cp $6c - ret - -Function104bd0: ; 104bd0 (41:4bd0) - nop - ld a, [hPrintNum10] - cp $10 - jr z, .asm_104c18 - cp $6c - jr nz, .asm_104c18 - ld hl, wca01 - dec [hl] - jr z, .asm_104c18 - ld hl, wc850 - ld de, wc900 - ld bc, $14 - call CopyBytes - ld a, [wc850] - cp $3 - jr nc, .asm_104c18 - callba Function10510b - call Function1050fb - ld a, $26 - ld [wca02], a - ld a, [hPrintNum9] - cp $2 - jr z, .asm_104c10 - call Function104d43 - jr nz, Function104bd0 - jp Function104b04 -.asm_104c10 - call Function104d38 - jr nz, Function104bd0 - jp Function104b22 -.asm_104c18 - ld a, [hPrintNum10] - push af - call Function104da0 - xor a - ld [rIF], a - ld a, [rIE] - or $1 - ld [rIE], a - ei - call DelayFrame - pop af - ret - -Function104c2d: ; 104c2d (41:4c2d) - di - callba ClearChannels - call Function104d5e -.asm_104c37 - call Function104d96 - call Function104ddd - ld a, [hPrintNum10] - cp $10 - jp z, Function104d1c - cp $6c - jr nz, .asm_104c37 - ld a, [hPrintNum9] - cp $2 - jr z, .asm_104c6c - call Function104c8a - jp nz, Function104d1c - call Function104d38 - jp nz, Function104d1c - call Function104cd2 - jp nz, Function104d1c - call Function104d43 - jp nz, Function104d1c - call Function105033 - jp Function104d1c -.asm_104c6c - call Function104cd2 - jp nz, Function104d1c - call Function104d43 - jp nz, Function104d1c - call Function104c8a - jp nz, Function104d1c - call Function104d38 - jp nz, Function104d1c - call Function10502e - jp Function104d1c - -Function104c8a: ; 104c8a (41:4c8a) - ld hl, $ffb3 - ld b, $1 - call Function104d56 - ret nz - call Function105033 - ld a, [hPrintNum10] - cp $6c - ret nz - ld a, [$ffb3] - cp $3c - jp nz, Function104d32 - swap a - ld [$ffb3], a - call Function104d38 - ret nz - ld hl, $ffb3 - ld b, $1 - call Function104d4e - ret nz - call Function10502e - ld a, [hPrintNum10] - cp $6c - ret nz - call Function104d43 - ret nz - ld hl, wc850 - ld a, [wca02] - ld b, a - call Function104d56 - ret nz - call Function105033 - ld a, [hPrintNum10] - cp $6c - ret - -Function104cd2: ; 104cd2 (41:4cd2) - ld a, $3c - ld [$ffb3], a - ld hl, $ffb3 - ld b, $1 - call Function104d4e - ret nz - call Function10502e - ld a, [hPrintNum10] - cp $6c - ret nz - call Function104d43 - ret nz - ld hl, $ffb3 - ld b, $1 - call Function104d56 - ret nz - call Function105033 - ld a, [hPrintNum10] - cp $6c - ret nz - ld a, [$ffb3] - swap a - cp $3c - jp nz, Function104d32 - call Function104d38 - ret nz - ld hl, OverworldMap - ld a, [wca02] - ld b, a - call Function104d4e - ret nz - call Function10502e - ld a, [hPrintNum10] - cp $6c - ret - -Function104d1c: ; 104d1c (41:4d1c) - nop - ld a, [hPrintNum10] - push af - call Function104da0 - xor a - ld [rIF], a - ld a, [rIE] - or $1 - ld [rIE], a - ei - call DelayFrame - pop af - ret - -Function104d32: ; 104d32 (41:4d32) - ld a, $80 - ld [hPrintNum10], a - and a - ret - -Function104d38: ; 104d38 (41:4d38) - call Function104d96 - call Function104e46 - ld a, [hPrintNum10] - cp $6c - ret - -Function104d43: ; 104d43 (41:4d43) - call Function104d96 - call Function104dfe - ld a, [hPrintNum10] - cp $6c - ret - -Function104d4e: ; 104d4e (41:4d4e) - call Function104e93 - ld a, [hPrintNum10] - cp $6c - ret - -Function104d56: ; 104d56 (41:4d56) - call Function104f57 - ld a, [hPrintNum10] - cp $6c - ret - -Function104d5e: ; 104d5e (41:4d5e) - call Function104d74 - ld a, $4 - ld [rIE], a - xor a - ld [rIF], a - call Function104d96 - xor a - ld b, a -.asm_104d6d - inc a - jr nz, .asm_104d6d - inc b - jr nz, .asm_104d6d - ret - -Function104d74: ; 104d74 (41:4d74) - xor a - ld [rTAC], a - ld a, $fe - ld [rTMA], a - ld [rTIMA], a - ld a, $2 - ld [rTAC], a - or $4 - ld [rTAC], a - ret - -Function104d86: ; 104d86 (41:4d86) - xor a - ld [rTAC], a - ld [rTMA], a - ld [rTIMA], a - ld a, $2 - ld [rTAC], a - or $4 - ld [rTAC], a - ret - -Function104d96: ; 104d96 (41:4d96) - ld a, $c0 - call Function104e8c - ld a, $1 - ld [hPrintNum9], a - ret - -Function104da0: ; 104da0 (41:4da0) - xor a - call Function104e8c - ld a, $2 - ld [rTAC], a - ret - -Function104da9: ; 104da9 (41:4da9) - inc d - ret z - xor a - ld [rIF], a - halt - ld a, [$ff00+c] - bit 1, a - jr z, Function104da9 - or a - ret - -Function104db7: ; 104db7 (41:4db7) - inc d - ret z - xor a - ld [rIF], a - halt - ld a, [$ff00+c] - bit 1, a - jr nz, Function104db7 - or a - ret - -Function104dc5: ; 104dc5 (41:4dc5) - ld a, $c1 - ld [$ff00+c], a -.asm_104dc8 - dec d - ret z - xor a - ld [rIF], a - halt - jr .asm_104dc8 - -Function104dd1: ; 104dd1 (41:4dd1) - ld a, $c0 - ld [$ff00+c], a -.asm_104dd4 - dec d - ret z - xor a - ld [rIF], a - halt - jr .asm_104dd4 - -Function104ddd: ; 104ddd (41:4ddd) - ld d, $0 - ld e, d - ld a, $1 - ld [hPrintNum9], a -.asm_104de4 - call Function105038 - ld b, $2 - ld c, rRP % $100 - ld a, [hMoneyTemp + 1] - bit 1, a - jr z, .asm_104df6 - ld a, $10 - ld [hPrintNum10], a - ret -.asm_104df6 - bit 0, a - jr nz, asm_104e3a - ld a, [$ff00+c] - and b - jr nz, .asm_104de4 - -Function104dfe: ; 104dfe (41:4dfe) - ld c, rRP % $100 - ld d, $0 - ld e, d - call Function104db7 - jp z, Function104f42 - ld d, e - call Function104da9 - jp z, Function104f42 - call Function104db7 - jp z, Function104f42 - call Function104da9 - jp z, Function104f42 - ld a, $6c - ld [hPrintNum10], a - ld d, $3d - call Function104dd1 - ld d, $5 - call Function104dc5 - ld d, $15 - call Function104dd1 - ld d, $5 - call Function104dc5 - ld d, $5 - call Function104dd1 - ret - -asm_104e3a: ; 104e3a (41:4e3a) - call Random - ld e, a - and $f - ld d, a -.asm_104e41 - dec de - ld a, d - or e - jr nz, .asm_104e41 - -Function104e46: ; 104e46 (41:4e46) - ld a, $2 - ld [hPrintNum9], a - ld c, $56 - ld d, $0 - ld e, d - ld d, $3d - call Function104dd1 - ld d, $5 - call Function104dc5 - ld d, $15 - call Function104dd1 - ld d, $5 - call Function104dc5 - ld d, $5 - call Function104dd1 - ld d, e - call Function104db7 - jp z, Function104f42 - ld d, e - call Function104da9 - jp z, Function104f42 - call Function104db7 - jp z, Function104f42 - call Function104da9 - jp z, Function104f42 - ld d, $3d - call Function104dd1 - ld a, $6c - ld [hPrintNum10], a - ret - -Function104e8c: ; 104e8c (41:4e8c) - ld [rRP], a - ld a, $ff - ld [hPrintNum10], a - ret - -Function104e93: ; 104e93 (41:4e93) - xor a - ld [hDivisor], a - ld [hMathBuffer], a - push hl - push bc - ld c, $56 - ld d, $3d - call Function104dd1 - ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand) - ld a, $5a - ld [hli], a - ld [hl], b - dec hl - ld b, $2 - call Function104ed6 - pop bc - pop hl - call Function104ed6 - ld a, [hDivisor] - ld [hQuotient], a - ld a, [hMathBuffer] - ld [$ffb5], a - push hl - ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand) - ld b, $2 - call Function104ed6 - ld hl, hPrintNum10 - ld b, $1 - call Function104faf - ld a, [hQuotient] - ld [hDivisor], a - ld a, [$ffb5] - ld [hMathBuffer], a - pop hl - ret - -Function104ed6: ; 104ed6 (41:4ed6) - ld c, $56 - ld d, $5 - call Function104dd1 - ld d, $5 - call Function104dc5 - ld d, $15 - call Function104dd1 - ld a, b - cpl - ld b, a - ld a, $f4 - ld [rTMA], a -.asm_104eee - inc b - jr z, .asm_104f2e - ld a, $8 - ld [$ffb6], a - ld a, [hli] - ld e, a - ld a, [hDivisor] - add e - ld [hDivisor], a - ld a, [hMathBuffer] - adc $0 - ld [hMathBuffer], a -.asm_104f02 - xor a - ld [rIF], a - halt - ld a, $c1 - ld [rRP], a - ld d, $1 - ld a, e - rlca - ld e, a - jr nc, .asm_104f13 - inc d -.asm_104f13 - ld a, [rTIMA] - cp $f8 - jr c, .asm_104f13 - ld a, $c0 - ld [rRP], a - dec d - jr z, .asm_104f25 - xor a - ld [rIF], a - halt -.asm_104f25 - ld a, [$ffb6] - dec a - jr z, .asm_104eee - ld [$ffb6], a - jr .asm_104f02 -.asm_104f2e - ld a, $fe - ld [rTMA], a - xor a - ld [rIF], a - halt - ld d, $5 - call Function104dc5 - ld d, $11 - call Function104dd1 - ret - -Function104f42: ; 104f42 (41:4f42) - ld a, [hPrintNum10] - or $2 - ld [hPrintNum10], a - ret - -Function104f49: ; 104f49 (41:4f49) - ld a, [hPrintNum10] - or $1 - ld [hPrintNum10], a - ret - -Function104f50: ; 104f50 (41:4f50) - ld a, [hPrintNum10] - or $80 - ld [hPrintNum10], a - ret - -Function104f57: ; 104f57 (41:4f57) - xor a - ld [hDivisor], a - ld [hMathBuffer], a - push bc - push hl - ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand) - ld b, $2 - call Function104faf - ld a, [$ffb5] - ld [$ffba], a - ld b, a - pop hl - pop af - cp b - jp c, Function104f50 - ld a, [hQuotient] - cp $5a - jp nz, Function104f50 - call Function104faf - ld a, [hDivisor] - ld d, a - ld a, [hMathBuffer] - ld e, a - push hl - push de - ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand) - ld b, $2 - call Function104faf - pop de - ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand) - ld a, [hli] - xor d - ld b, a - ld a, [hl] - xor e - or b - call nz, Function104f49 - push de - ld d, $3d - call Function104dd1 - ld hl, hPrintNum10 - ld b, $1 - call Function104ed6 - pop de - pop hl - ld a, d - ld [hDivisor], a - ld a, e - ld [hMathBuffer], a - ret - -Function104faf: ; 104faf (41:4faf) - ld c, rRP % $100 - ld d, $0 - call Function104db7 - jp z, Function104f42 - ld d, $0 - call Function104da9 - jp z, Function104f42 - ld d, $0 - call Function104db7 - jp z, Function104f42 - ld a, b - cpl - ld b, a - xor a - ld [hMoneyTemp + 2], a - call Function104d86 -.asm_104fd2 - inc b - jr z, .asm_10501a - ld a, $8 - ld [$ffb6], a -.asm_104fd9 - ld d, $0 -.asm_104fdb - inc d - jr z, .asm_104fe5 - ld a, [$ff00+c] - bit 1, a - jr z, .asm_104fdb - ld d, $0 -.asm_104fe5 - inc d - jr z, .asm_104fed - ld a, [$ff00+c] - bit 1, a - jr nz, .asm_104fe5 -.asm_104fed - ld a, [hMoneyTemp + 2] - ld d, a - ld a, [rTIMA] - ld [hMoneyTemp + 2], a - sub d - cp $12 - jr c, .asm_104ffd - set 0, e - jr .asm_104fff -.asm_104ffd - res 0, e -.asm_104fff - ld a, [$ffb6] - dec a - ld [$ffb6], a - jr z, .asm_10500b - ld a, e - rlca - ld e, a - jr .asm_104fd9 -.asm_10500b - ld a, e - ld [hli], a - ld a, [hDivisor] - add e - ld [hDivisor], a - ld a, [hMathBuffer] - adc $0 - ld [hMathBuffer], a - jr .asm_104fd2 -.asm_10501a - call Function104d74 - xor a - ld [rIF], a - ld d, $0 - call Function104da9 - jp z, Function104f42 - ld d, $10 - call Function104dd1 - ret - -Function10502e: ; 10502e (41:502e) - ld b, $0 - jp Function104e93 - -Function105033: ; 105033 (41:5033) - ld b, $0 - jp Function104f57 - -Function105038: ; 105038 (41:5038) - ld a, $20 - ld [rJOYP], a -rept 2 - ld a, [rJOYP] -endr - cpl - and $f - swap a - ld b, a - ld a, $10 - ld [rJOYP], a -rept 6 - ld a, [rJOYP] -endr - cpl - and $f - or b - ld c, a - ld a, [hMoneyTemp] - xor c - and c - ld [hMoneyTemp + 1], a - ld a, c - ld [hMoneyTemp], a - ld a, $30 - ld [rJOYP], a - ret - -Function105069: ; 105069 (41:5069) - call GetMysteryGiftBank - ld d, $0 - ld b, $2 - ld hl, sMysteryGiftDecorationsReceived - predef_id FlagPredef - push hl - push bc - call Predef - call CloseSRAM - ld a, c - and a - pop bc - pop hl - ret nz - call GetMysteryGiftBank - ld b, $1 - predef FlagPredef - call CloseSRAM - xor a - ret - -Function105091: ; 105091 (41:5091) - call GetMysteryGiftBank - ld c, $0 -.loop - push bc - ld d, $0 - ld b, CHECK_FLAG - ld hl, sMysteryGiftDecorationsReceived - predef FlagPredef - ld a, c - and a - pop bc - jr z, .skip - push bc - callab SetSpecificDecorationFlag - pop bc -.skip - inc c - ld a, c - cp Trophys - DecorationIDs - jr c, .loop - jp CloseSRAM - -Special_UnlockMysteryGift: ; 1050b9 - call GetMysteryGiftBank - ld hl, sMysteryGiftUnlocked - ld a, [hl] - inc a - jr nz, .ok - ld [hld], a - ld [hl], a -.ok - jp CloseSRAM -; 1050c8 - -Function1050c8: ; 1050c8 - call GetMysteryGiftBank - ld a, [s0_abe5] - cp $ff - jr z, .okay - xor a - ld [s0_abe5], a -.okay - jp CloseSRAM -; 1050d9 - - -BackupMysteryGift: ; 1050d9 - call GetMysteryGiftBank - ld hl, sMysteryGiftItem - ld de, sBackupMysteryGiftItem - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - jp CloseSRAM -; 1050ea - - -RestoreMysteryGift: ; 1050ea (41:50ea) - call GetMysteryGiftBank - ld hl, sBackupMysteryGiftItem - ld de, sMysteryGiftItem - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - jp CloseSRAM - -Function1050fb: ; 1050fb (41:50fb) - ld hl, wc850 - xor a - ld b, $26 -.asm_105101 - ld [hli], a - dec b - jr nz, .asm_105101 - ret - - -GetMysteryGiftBank: ; 105106 - ld a, BANK(sBackupMysteryGiftItem) - jp GetSRAMBank -; 10510b - - -Function10510b: ; 10510b (41:510b) - ld a, BANK(sPokemonData) - call GetSRAMBank - ld de, OverworldMap - ld bc, sPokemonData + PartyMons - wPokemonData - ld hl, sPokemonData + PartySpecies - wPokemonData -.asm_105119 - ld a, [hli] - cp $ff - jr z, .asm_105148 - cp EGG - jr z, .asm_10513e - push hl - ld hl, MON_LEVEL - add hl, bc - ld a, [hl] - ld [de], a - inc de - ld hl, MON_SPECIES - add hl, bc - ld a, [hl] - ld [de], a - inc de - ld hl, MON_MOVES - add hl, bc - push bc - ld bc, NUM_MOVES - call CopyBytes - pop bc - pop hl -.asm_10513e - push hl - ld hl, PARTYMON_STRUCT_LENGTH - add hl, bc - ld b, h - ld c, l - pop hl - jr .asm_105119 -.asm_105148 - ld a, $ff - ld [de], a - ld a, $26 - ld [wca00], a - jp CloseSRAM - -Function105153: ; 105153 (41:5153) - call ClearBGPalettes - call DisableLCD - ld hl, MysteryGiftGFX - ld de, VTiles2 tile $00 - ld a, BANK(MysteryGiftGFX) - ld bc, Function105688 - MysteryGiftGFX - call FarCopyBytes - hlcoord 0, 0 - ld a, $42 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - call ByteFill - hlcoord 3, 7 - lb bc, 9, 15 - call ClearBox - hlcoord 0, 0 - ld a, $0 - ld [hli], a - inc a - ld [hl], a - hlcoord 0, 1 - inc a - ld [hli], a - inc a - ld [hl], a - hlcoord 7, 1 - ld a, $12 - call Function10522e - hlcoord 2, 2 - ld a, $17 - call Function105236 - hlcoord 2, 3 - ld a, $27 - call Function105236 - hlcoord 9, 4 - ld a, $37 - ld [hli], a - inc a - ld [hl], a - hlcoord 1, 2 - ld [hl], $4 - hlcoord 1, 3 - ld a, $5 - call Function105246 - ld a, $9 - hlcoord 18, 5 - call Function105242 - hlcoord 2, 5 - ld a, $b - call Function105251 - hlcoord 2, 16 - ld a, $7 - call Function105251 - hlcoord 2, 5 - ld a, $d - call Function10522e - hlcoord 7, 5 - ld [hl], $c - hlcoord 18, 5 - ld [hl], $a - hlcoord 18, 16 - ld [hl], $8 - hlcoord 1, 16 - ld [hl], $6 - hlcoord 2, 6 - ld a, $3a - call Function105251 - hlcoord 2, 15 - ld a, $40 - call Function105251 - hlcoord 2, 6 - ld a, $3c - call Function10523e - hlcoord 17, 6 - ld a, $3e - call Function10523e - hlcoord 2, 6 - ld [hl], $39 - hlcoord 17, 6 - ld [hl], $3b - hlcoord 2, 15 - ld [hl], $3f - hlcoord 17, 15 - ld [hl], $41 - call EnableLCD - call WaitBGMap - ld b, SCGB_1D - call GetSGBLayout - call SetPalettes - ret - -Function10522e: ; 10522e (41:522e) - ld b, $5 - jr asm_105238 -; 105232 (41:5232) - -Function105232: ; unreferenced - ld b, 6 - jr asm_105238 - -Function105236: ; 105236 (41:5236) - ld b, $10 - -asm_105238: ; 105238 (41:5238) - ld [hli], a - inc a - dec b - jr nz, asm_105238 - ret - -Function10523e: ; 10523e (41:523e) - ld b, $9 - jr asm_105248 - -Function105242: ; 105242 (41:5242) - ld b, $b - jr asm_105248 - -Function105246: ; 105246 (41:5246) - ld b, $e - -asm_105248: ; 105248 (41:5248) - ld [hl], a - ld de, $14 - add hl, de - dec b - jr nz, asm_105248 - ret - -Function105251: ; 105251 (41:5251) - ld b, $10 -.asm_105253 - ld [hli], a - dec b - jr nz, .asm_105253 - ret - -MysteryGiftGFX: ; 105258 -INCBIN "gfx/misc/mystery_gift.2bpp" - - -Function105688: ; 105688 (41:5688) - call ClearTileMap - call ClearSprites - call WaitBGMap - call Function1057d7 - hlcoord 3, 8 - ld de, String_10572e - call PlaceString - call WaitBGMap - call Function10578c - call Function1050fb - ld a, $24 - ld [wca02], a - ld a, [rIE] - push af - call Function104c2d - ld d, a - xor a - ld [rIF], a - pop af - ld [rIE], a - ld a, d - cp $10 - jp z, Function105712 - cp $6c - jp nz, Function10571a - call Function1056eb - ld c, 60 - call DelayFrames - call Function105777 - ld hl, Text_10575e - call PrintText - ld de, wc850 - callba Function8ac70 - ld a, c - ld [wd265], a - ld hl, Text_105768 - jr c, asm_105726 - ld hl, Text_105763 - jr asm_105726 - -Function1056eb: ; 1056eb (41:56eb) - ld c, $10 -.asm_1056ed - ld hl, Sprites - ld b, $8 -.asm_1056f2 - dec [hl] -rept 4 - inc hl -endr - dec b - jr nz, .asm_1056f2 - ld hl, Sprites + $20 - ld b, $8 -.asm_1056ff - inc [hl] -rept 4 - inc hl -endr - dec b - jr nz, .asm_1056ff - dec c - ret z - push bc - ld c, 4 - call DelayFrames - pop bc - jr .asm_1056ed - -Function105712: ; 105712 (41:5712) - call Function105777 - ld hl, Text_10576d - jr asm_105726 - -Function10571a: ; 10571a (41:571a) - call Function105777 - ld hl, Text_105772 - call PrintText - jp Function105688 - -asm_105726: ; 105726 (41:5726) - call PrintText - ld a, $e3 - ld [rLCDC], a - ret -; 10572e (41:572e) - -String_10572e: ; 10572e - db "エーボタン¯おすと" - next "つうしん", $4a, "おこなわれるよ!" - next "ビーボタン¯おすと" - next "つうしん¯ちゅうし します" - db "@" - -; 10575e - -Text_10575e: ; 10575e - text_jump UnknownText_0x1c051a - db "@" - -Text_105763: ; 105763 - text_jump UnknownText_0x1c0531 - db "@" - -Text_105768: ; 105768 - text_jump UnknownText_0x1c0555 - db "@" - -Text_10576d: ; 10576d - text_jump UnknownText_0x1c0573 - db "@" - -Text_105772: ; 105772 - text_jump UnknownText_0x1c0591 - db "@" -; 105777 - -Function105777: ; 105777 (41:5777) - call ClearSprites - call ClearTileMap - call EnableLCD - call WaitBGMap - ld b, SCGB_08 - call GetSGBLayout - call SetPalettes - ret - -Function10578c: ; 10578c (41:578c) - ld de, OverworldMap - ld a, BANK(sPlayerData) - call GetSRAMBank - ld hl, sPlayerData + PlayerName - wPlayerData - ld bc, NAME_LENGTH - call CopyBytes - ld hl, sPlayerData + PlayerID - wPlayerData - ld bc, 2 - call CopyBytes - ld hl, sPlayerData + wSecretID - wPlayerData - ld bc, 2 - call CopyBytes - call CloseSRAM - ld a, BANK(sCrystalData) - call GetSRAMBank - ld a, [sCrystalData + 0] - ld [de], a - inc de - ld a, $4 - call GetSRAMBank - ld hl, $a603 - ld bc, $8 - call CopyBytes - ld hl, $a007 - ld bc, $c - call CopyBytes - call CloseSRAM - ret - -Function1057d7: ; 1057d7 (41:57d7) - call ClearBGPalettes - call DisableLCD - ld hl, MysteryGiftJP_GFX - ld de, VTiles2 tile $00 - ld a, BANK(MysteryGiftJP_GFX) - lb bc, 4, 0 - call FarCopyBytes - ld hl, MysteryGiftJP_GFX + $400 - ld de, VTiles0 tile $00 - ld a, BANK(MysteryGiftJP_GFX) - ld bc, $80 - call FarCopyBytes - hlcoord 0, 0 - ld a, $3f - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - call ByteFill - hlcoord 3, 7 - lb bc, 9, 15 - call ClearBox - hlcoord 0, 0 - ld a, $0 - ld [hli], a - inc a - ld [hl], a - hlcoord 0, 1 - inc a - ld [hli], a - inc a - ld [hl], a - hlcoord 4, 2 - ld a, $13 - call Function1058ca - hlcoord 4, 3 - ld a, $1e - call Function1058ce - hlcoord 4, 4 - ld a, $2a - call Function1058ce - hlcoord 1, 2 - ld [hl], $4 - hlcoord 1, 3 - ld a, $5 - call Function1058de - ld a, $9 - hlcoord 18, 5 - call Function1058da - hlcoord 2, 5 - ld a, $b - call Function1058e9 - hlcoord 2, 16 - ld a, $7 - call Function1058e9 - hlcoord 2, 5 - ld a, $d - call Function1058c6 - hlcoord 8, 5 - ld [hl], $c - hlcoord 18, 5 - ld [hl], $a - hlcoord 18, 16 - ld [hl], $8 - hlcoord 1, 16 - ld [hl], $6 - hlcoord 2, 6 - ld a, $37 - call Function1058e9 - hlcoord 2, 15 - ld a, $3d - call Function1058e9 - hlcoord 2, 6 - ld a, $39 - call Function1058d6 - hlcoord 17, 6 - ld a, $3b - call Function1058d6 - hlcoord 2, 6 - ld [hl], $36 - hlcoord 17, 6 - ld [hl], $38 - hlcoord 2, 15 - ld [hl], $3c - hlcoord 17, 15 - ld [hl], $3e - ld de, Sprites - ld hl, OAM_1058f0 - ld bc, $40 - call CopyBytes - call EnableLCD - call WaitBGMap - ld b, $2 - callba Function4930f - jp SetPalettes - -Function1058c6: ; 1058c6 (41:58c6) - ld b, $6 - jr asm_1058d0 - -Function1058ca: ; 1058ca (41:58ca) - ld b, $b - jr asm_1058d0 - -Function1058ce: ; 1058ce (41:58ce) - ld b, $c - -asm_1058d0: ; 1058d0 (41:58d0) - ld [hli], a - inc a - dec b - jr nz, asm_1058d0 - ret - -Function1058d6: ; 1058d6 (41:58d6) - ld b, $9 - jr asm_1058e0 - -Function1058da: ; 1058da (41:58da) - ld b, $b - jr asm_1058e0 - -Function1058de: ; 1058de (41:58de) - ld b, $e - -asm_1058e0: ; 1058e0 (41:58e0) - ld [hl], a - ld de, $14 - add hl, de - dec b - jr nz, asm_1058e0 - ret - -Function1058e9: ; 1058e9 (41:58e9) - ld b, $10 -.asm_1058eb - ld [hli], a - dec b - jr nz, .asm_1058eb - ret -; 1058f0 (41:58f0) - -OAM_1058f0: ; 1058f0 - db $11, $34, $00, $00 - db $11, $3c, $01, $00 - db $11, $44, $02, $00 - db $11, $4c, $03, $00 - db $19, $34, $04, $00 - db $19, $3c, $05, $00 - db $19, $44, $06, $00 - db $19, $4c, $07, $00 - db $01, $5c, $00, $00 - db $01, $64, $01, $00 - db $01, $6c, $02, $00 - db $01, $74, $03, $00 - db $09, $5c, $04, $00 - db $09, $64, $05, $00 - db $09, $6c, $06, $00 - db $09, $74, $07, $00 - -; japanese mystery gift gfx -MysteryGiftJP_GFX: ; 105930 -INCBIN "gfx/misc/mystery_gift_jp.2bpp" - - -DisplayUsedMoveText: ; 105db0 -; battle command 03 - ld hl, UsedMoveText - call BattleTextBox - jp WaitBGMap -; 105db9 - - -UsedMoveText: ; 105db9 -; this is a stream of text and asm from 105db9 to 105ef6 - - text_jump _ActorNameText - start_asm - - ld a, [hBattleTurn] - and a - jr nz, .start - - ld a, [wPlayerMoveStruct + MOVE_ANIM] - call UpdateUsedMoves - -.start - ld a, BATTLE_VARS_LAST_MOVE - call GetBattleVarAddr - ld d, h - ld e, l - - ld a, BATTLE_VARS_LAST_COUNTER_MOVE - call GetBattleVarAddr - - ld a, BATTLE_VARS_MOVE_ANIM - call GetBattleVar - ld [wd265], a - - push hl - callba CheckUserIsCharging - pop hl - jr nz, .grammar - - ; update last move - ld a, [wd265] - ld [hl], a - ld [de], a - -.grammar - call GetMoveGrammar -; wd265 now contains MoveGrammar - - -; everything except 'instead' made redundant in localization - - ; check obedience - ld a, [AlreadyDisobeyed] - and a - ld hl, UsedMove2Text - ret nz - - ; check move grammar - ld a, [wd265] - cp $3 - ld hl, UsedMove2Text - ret c - ld hl, UsedMove1Text - ret -; 105e04 - -UsedMove1Text: ; 105e04 - text_jump _UsedMove1Text - start_asm - jr Function105e10 -; 105e0b - -UsedMove2Text: ; 105e0b - text_jump _UsedMove2Text - start_asm -; 105e10 - -Function105e10: ; 105e10 -; check obedience - ld a, [AlreadyDisobeyed] - and a - jr z, GetMoveNameText -; print "instead," - ld hl, UsedInsteadText - ret -; 105e1a - -UsedInsteadText: ; 105e1a - text_jump _UsedInsteadText - start_asm -; 105e1f - -GetMoveNameText: ; 105e1f - ld hl, MoveNameText - ret -; 105e23 - -MoveNameText: ; 105e23 - text_jump _MoveNameText - start_asm -; 105e28 - -GetUsedMoveTextEnder: ; 105e28 -; get start address - ld hl, .endusedmovetexts - -; get move id - ld a, [wd265] - -; 2-byte pointer - add a - -; seek - push bc - ld b, $0 - ld c, a - add hl, bc - pop bc - -; get pointer to usedmovetext ender - ld a, [hli] - ld h, [hl] - ld l, a - ret -; 105e39 - -.endusedmovetexts ; 105e39 - dw EndUsedMove1Text - dw EndUsedMove2Text - dw EndUsedMove3Text - dw EndUsedMove4Text - dw EndUsedMove5Text -; 105e43 - -EndUsedMove1Text: ; 105e43 - text_jump _EndUsedMove1Text - db "@" -; 105e48 -EndUsedMove2Text: ; 105e48 - text_jump _EndUsedMove2Text - db "@" -; 105e4d -EndUsedMove3Text: ; 105e4d - text_jump _EndUsedMove3Text - db "@" -; 105e52 -EndUsedMove4Text: ; 105e52 - text_jump _EndUsedMove4Text - db "@" -; 105e57 -EndUsedMove5Text: ; 105e57 - text_jump _EndUsedMove5Text - db "@" -; 105e5c - - -GetMoveGrammar: ; 105e5c -; store move grammar type in wd265 - - push bc -; c = move id - ld a, [wd265] - ld c, a - ld b, $0 - -; read grammar table - ld hl, MoveGrammar -.loop - ld a, [hli] -; end of table? - cp $ff - jr z, .end -; match? - cp c - jr z, .end -; advance grammar type at $00 - and a - jr nz, .loop -; next grammar type - inc b - jr .loop - -.end -; wd265 now contains move grammar - ld a, b - ld [wd265], a - -; we're done - pop bc - ret -; 105e7a - -MoveGrammar: ; 105e7a -; made redundant in localization -; each move is given an identifier for what usedmovetext to use (0-4): - -; 0 - db SWORDS_DANCE - db GROWTH - db STRENGTH - db HARDEN - db MINIMIZE - db SMOKESCREEN - db WITHDRAW - db DEFENSE_CURL - db EGG_BOMB - db SMOG - db BONE_CLUB - db FLASH - db SPLASH - db ACID_ARMOR - db BONEMERANG - db REST - db SHARPEN - db SUBSTITUTE - db MIND_READER - db SNORE - db PROTECT - db SPIKES - db ENDURE - db ROLLOUT - db SWAGGER - db SLEEP_TALK - db HIDDEN_POWER - db PSYCH_UP - db EXTREMESPEED - db 0 ; end set - -; 1 - db RECOVER - db TELEPORT - db BIDE - db SELFDESTRUCT - db AMNESIA - db FLAIL - db 0 ; end set - -; 2 - db MEDITATE - db AGILITY - db MIMIC - db DOUBLE_TEAM - db BARRAGE - db TRANSFORM - db STRUGGLE - db SCARY_FACE - db 0 ; end set - -; 3 - db POUND - db SCRATCH - db VICEGRIP - db WING_ATTACK - db FLY - db BIND - db SLAM - db HORN_ATTACK - db WRAP - db THRASH - db TAIL_WHIP - db LEER - db BITE - db GROWL - db ROAR - db SING - db PECK - db ABSORB - db STRING_SHOT - db EARTHQUAKE - db FISSURE - db DIG - db TOXIC - db SCREECH - db METRONOME - db LICK - db CLAMP - db CONSTRICT - db POISON_GAS - db BUBBLE - db SLASH - db SPIDER_WEB - db NIGHTMARE - db CURSE - db FORESIGHT - db CHARM - db ATTRACT - db ROCK_SMASH - db 0 ; end set - -; all other moves = 4 - db $ff ; end -; 105ed0 - - -UpdateUsedMoves: ; 105ed0 -; append move a to PlayerUsedMoves unless it has already been used - - push bc -; start of list - ld hl, PlayerUsedMoves -; get move id - ld b, a -; next count - ld c, NUM_MOVES - -.loop -; get move from the list - ld a, [hli] -; not used yet? - and a - jr z, .add -; already used? - cp b - jr z, .quit -; next byte - dec c - jr nz, .loop - -; if the list is full and the move hasn't already been used -; shift the list back one byte, deleting the first move used -; this can occur with struggle or a new learned move - ld hl, PlayerUsedMoves + 1 -; 1 = 2 - ld a, [hld] - ld [hli], a -; 2 = 3 - inc hl - ld a, [hld] - ld [hli], a -; 3 = 4 - inc hl - ld a, [hld] - ld [hl], a -; 4 = new move - ld a, b - ld [PlayerUsedMoves + 3], a - jr .quit - -.add -; go back to the byte we just inced from - dec hl -; add the new move - ld [hl], b - -.quit -; list updated - pop bc - ret -; 105ef6 +INCLUDE "battle/used_move_text.asm" INCLUDE "misc/mobile_41.asm" @@ -26477,7 +24438,7 @@ Function1dc1b0: ; 1dc1b0 inc a ld [hl], a ld hl, wcb45 - ld a, $7f + ld a, " " ld [hli], a ld [hl], a ld hl, wcb59 @@ -26962,7 +24923,7 @@ Function1de171: ; 1de171 (77:6171) ld [hl], $50 ld a, $51 hlcoord 11, 1 - ld b, $f + ld b, SCREEN_HEIGHT - 3 call Function1de27f ld [hl], $52 jr .asm_1de1d0 @@ -26971,7 +24932,7 @@ Function1de171: ; 1de171 (77:6171) ld [hl], $66 ld a, $67 hlcoord 11, 1 - ld b, $f + ld b, SCREEN_HEIGHT - 3 call Function1de27f ld [hl], $68 .asm_1de1d0 @@ -26994,7 +24955,7 @@ Function1de1d1: ; 1de1d1 (77:61d1) ld [hl], $66 ld a, $67 hlcoord 11, 1 - ld b, $9 + ld b, SCREEN_HEIGHT / 2 call Function1de27f ld [hl], $68 ld a, $34 @@ -27009,7 +24970,7 @@ Function1de1d1: ; 1de1d1 (77:61d1) ld [hl], $66 ld a, $67 hlcoord 11, 12 - ld b, $5 + ld b, 5 call Function1de27f ld [hl], $68 hlcoord 0, 12 @@ -27023,10 +24984,8 @@ Function1de1d1: ; 1de1d1 (77:61d1) String_1de23c: ; 1de23c ; At a glance, this is less coherent in the Japanese charset. - db "ESULTS" - db $4e - db $4e - db "D!@" + db "ESULTS" + next "D!@" ; 1de247 Function1de247: ; 1de247 @@ -27044,13 +25003,13 @@ Function1de247: ; 1de247 ld [hl], $66 hlcoord 19, 1 ld a, $67 - ld b, $f + ld b, SCREEN_HEIGHT - 3 call Function1de27f ld [hl], $68 hlcoord 19, 17 ld [hl], $3c xor a - ld b, $12 + ld b, SCREEN_HEIGHT hlcoord 19, 0, AttrMap call Function1de27f call Function3200 @@ -27065,11 +25024,11 @@ Function1de247: ; 1de247 Function1de27f: ; 1de27f push de ld de, SCREEN_WIDTH -.asm_1de283 +.loop ld [hl], a add hl, de dec b - jr nz, .asm_1de283 + jr nz, .loop pop de ret ; 1de28a @@ -27131,21 +25090,21 @@ DudeAutoInput_DownA: ; 1de2af Function1de2c5: ; 1de2c5 ld hl, StringBuffer1 -.asm_1de2c8 +.loop ld a, [hl] - cp $50 - jr z, .asm_1de2da - cp $25 - jr z, .asm_1de2d8 - cp $1f - jr z, .asm_1de2d8 + cp "@" + jr z, .end + cp "%" + jr z, .line_break + cp "¯" + jr z, .line_break inc hl - jr .asm_1de2c8 + jr .loop -.asm_1de2d8 - ld [hl], $22 +.line_break + ld [hl], "" -.asm_1de2da +.end ld de, StringBuffer1 hlcoord 9, 0 call PlaceString diff --git a/misc/gbc_only.asm b/misc/gbc_only.asm index 2349bb687..81d3eadb4 100644 --- a/misc/gbc_only.asm +++ b/misc/gbc_only.asm @@ -10,7 +10,7 @@ GBCOnlyScreen: ; 4ea82 call ClearTileMap ld hl, GBCOnlyGFX - ld de, $d000 + ld de, wd000 ld a, [rSVBK] push af ld a, 0 @@ -19,7 +19,7 @@ GBCOnlyScreen: ; 4ea82 pop af ld [rSVBK], a - ld de, $d000 + ld de, wd000 ld hl, VTiles2 lb bc, BANK(GBCOnlyGFX), $54 call Get2bpp diff --git a/sram.asm b/sram.asm index f5be2fb5f..7b901409f 100644 --- a/sram.asm +++ b/sram.asm @@ -59,17 +59,17 @@ sMailbox10Backup:: mailmsg sMailbox10Backup sMysteryGiftItem:: ds 1 sMysteryGiftUnlocked:: ds 1 sBackupMysteryGiftItem:: ds 1 -s0_abe5:: ds 1 -s0_abe6:: ds 10 +sNumDailyMysteryGiftPartnerIDs:: ds 1 +sDailyMysteryGiftPartnerIDs:: ds 5 * 2 ; maximum 5 per day, 2 bytes per ID sMysteryGiftDecorationsReceived:: flag_array NUM_NON_TROPHY_DECOS ds 4 sMysteryGiftTimer:: ds 1 sMysteryGiftTimerStartDay:: ds 1 ds 1 sMysteryGiftTrainerHouseFlag:: ds 1 -s0_abfe:: ds 12 -sMysteryGiftTrainer:: ds (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 1 - ds 1 +sMysteryGiftPartnerName:: ds NAME_LENGTH +s0_ac09:: ds 1 +sMysteryGiftTrainer:: ds (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 2 sBackupMysteryGiftItemEnd:: ds $30 diff --git a/text/battle.asm b/text/battle.asm index 6dc3d830f..9167ac7af 100644 --- a/text/battle.asm +++ b/text/battle.asm @@ -194,7 +194,7 @@ BattleText_EnemyPkmnFainted: ; 0x809a8 GotMoneyForWinningText: text " got ¥@" - deciram wc686, 3, 6 + deciram wBattleReward, 3, 6 text "" line "for winning!" prompt @@ -213,7 +213,7 @@ TiedAgainstText: ; 0x809eb SentSomeToMomText: text " got ¥@" - deciram wc686, 3, 6 + deciram wBattleReward, 3, 6 text "" line "for winning!" cont "Sent some to MOM!" diff --git a/text/common_3.asm b/text/common_3.asm index bcd010970..fe0cef171 100644 --- a/text/common_3.asm +++ b/text/common_3.asm @@ -279,7 +279,7 @@ UnknownText_0x1c04c6: ; 1c04c6 ; 1c04e9 UnknownText_0x1c04e9: ; 1c04e9 - text_from_ram wc903 + text_from_ram wMysteryGiftPartnerName text " sent" line "@" text_from_ram StringBuffer1 @@ -288,7 +288,7 @@ UnknownText_0x1c04e9: ; 1c04e9 ; 1c04fa UnknownText_0x1c04fa: ; 1c04fa - text_from_ram wc903 + text_from_ram wMysteryGiftPartnerName text " sent" line "@" text_from_ram StringBuffer1 diff --git a/wram.asm b/wram.asm index c654de3c4..c4b6971d8 100644 --- a/wram.asm +++ b/wram.asm @@ -152,9 +152,11 @@ mailmsg: MACRO \1AuthorNationality:: ds 2 \1AuthorID:: ds 2 \1Species:: ds 1 -\1MailType:: ds 1 +\1Type:: ds 1 +\1End:: endm + INCLUDE "vram.asm" SECTION "Stack", WRAM0 @@ -542,7 +544,8 @@ wc64e:: ds 1 ds 1 wEnemyTrainerItem1:: ds 1 wEnemyTrainerItem2:: ds 1 -wc652:: ds 4 +wEnemyTrainerBaseReward:: ds 1 +wEnemyTrainerAIFlags:: ds 3 wc656:: OTName:: ds NAME_LENGTH ; c656 @@ -688,8 +691,7 @@ PlayerDamageTaken:: ; c682 EnemyDamageTaken:: ; c684 ds 2 -wc686:: ds 2 -wc688:: ds 1 +wBattleReward:: ds 3 wKickCounter:: wPresentPower:: ds 1 wc68a:: @@ -719,6 +721,24 @@ PlayerSpdLevel:: ; c6ce ds 1 PlayerSAtkLevel:: ; c6cf ds 1 + +trademon: MACRO +\1Species:: ds 1 ; wc6d0 | wc702 +\1SpeciesName:: ds PKMN_NAME_LENGTH ; wc6d1 | wc703 +\1Nickname:: ds PKMN_NAME_LENGTH ; wc6dc | wc70e +\1SenderName:: ds NAME_LENGTH ; wc6e7 | wc719 +\1OTName:: ds NAME_LENGTH ; wc6f2 | wc724 +\1DVs:: ds 2 ; wc6fd | wc72f +\1ID:: ds 2 ; wc6ff | wc731 +\1CaughtData:: ds 1 ; wc701 | wc733 +\1End:: +ENDM + +wPlayerTrademon:: trademon wPlayerTrademon +wOTTrademon:: trademon wOTTrademon + + ds wPlayerTrademon - @ + wc6d0:: wPokedexDataStart:: PlayerSDefLevel:: ; c6d0 @@ -920,12 +940,19 @@ wc729:: ds 2 wPlayerRageCounter:: ds 1 wEnemyRageCounter:: ds 1 wc72d:: ds 1 ; if 0 then PrintButItFailed +wc72e:: wPlayerTrappingMove:: ds 1 +wc72f:: wEnemyTrappingMove:: ds 1 +wc730:: wPlayerWrapCount:: ds 1 +wc731:: wEnemyWrapCount:: ds 1 +wc732:: wPlayerCharging:: ds 1 -wEnemyCharging:: ds 1 +wEnemyCharging:: +wc733:: ds 1 +wTradeAnimPointer:: wc734:: BattleEnded:: ; c734 ds 1 @@ -935,7 +962,7 @@ wc735:: ds 1 wc736:: ds 3 wWildMonPP:: wc739:: ds 4 -wc73d:: ds 1 +wAmuletCoin:: ds 1 wc73e:: ds 1 wPlayerJustGotFrozen:: ds 1 wEnemyJustGotFrozen:: ds 1 @@ -1006,6 +1033,8 @@ wc820:: ds 1 wc821:: ds 15 wc830:: ds 16 wc840:: ds 16 +wMysteryGiftTrainerData:: ds (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 2 + ds wMysteryGiftTrainerData - @ wc850:: ds 16 wc860:: ds 16 wc870:: ds 16 @@ -1018,9 +1047,9 @@ wc8d0:: ds 16 wc8e0:: ds 16 wc8f0:: ds 16 wc900:: ds 1 -wc901:: ds 1 -wc902:: ds 1 -wc903:: ds 12 +wMysteryGiftPartnerID:: ds 2 +wMysteryGiftPartnerName:: ds NAME_LENGTH +wc90e:: ds 1 wc90f:: ds 1 wc910:: ds 1 wc911:: ds 1 @@ -2432,7 +2461,7 @@ PlayerState:: ; d95d ds 1 wHallOfFameCount:: ds 2 -wd960:: ds 2 +wTradeFlags:: ds 2 MooMooBerries:: ; d962 ds 1 ; how many berries fed to MooMoo UndergroundSwitchPositions:: ; d963 From 0dc5ae04b82143b1cbff50a9d25ebe21326305ae Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 23 Nov 2015 02:08:08 -0500 Subject: [PATCH 34/40] more trade animation labels --- engine/npctrade.asm | 14 +- engine/trade/animation.asm | 432 ++++++++++++++++++------------------- macros/trade_anim.asm | 183 ++++++++-------- wram.asm | 3 + 4 files changed, 313 insertions(+), 319 deletions(-) diff --git a/engine/npctrade.asm b/engine/npctrade.asm index 0a61129c1..22ca490d6 100755 --- a/engine/npctrade.asm +++ b/engine/npctrade.asm @@ -438,13 +438,13 @@ npctrade: MACRO ENDM - npctrade 0, ABRA, MACHOP, "MUSCLE@@@@@", $6637, GOLD_BERRY, $9254, "MIKE@@@@@@@", TRADE_EITHER_GENDER - npctrade 0, BELLSPROUT, ONIX, "ROCKY@@@@@@", $6696, BITTER_BERRY, $bf1e, "KYLE@@@@@@@", TRADE_EITHER_GENDER - npctrade 1, KRABBY, VOLTORB, "VOLTY@@@@@@", $8898, PRZCUREBERRY, $7205, "TIM@@@@@@@@", TRADE_EITHER_GENDER - npctrade 3, DRAGONAIR, DODRIO, "DORIS@@@@@@", $6677, SMOKE_BALL, $011b, "EMY@@@@@@@@", TRADE_FEMALE_ONLY - npctrade 2, HAUNTER, XATU, "PAUL@@@@@@@", $8696, MYSTERYBERRY, $3d00, "CHRIS@@@@@@", TRADE_EITHER_GENDER - npctrade 3, CHANSEY, AERODACTYL, "AEROY@@@@@@", $6696, GOLD_BERRY, $677b, "KIM@@@@@@@@", TRADE_EITHER_GENDER - npctrade 0, DUGTRIO, MAGNETON, "MAGGIE@@@@@", $6696, METAL_COAT, $c3a2, "FOREST@@@@@", TRADE_EITHER_GENDER + npctrade 0, ABRA, MACHOP, "MUSCLE@@@@@", $6637, GOLD_BERRY, 37460, "MIKE@@@@@@@", TRADE_EITHER_GENDER + npctrade 0, BELLSPROUT, ONIX, "ROCKY@@@@@@", $6696, BITTER_BERRY, 48926, "KYLE@@@@@@@", TRADE_EITHER_GENDER + npctrade 1, KRABBY, VOLTORB, "VOLTY@@@@@@", $8898, PRZCUREBERRY, 29189, "TIM@@@@@@@@", TRADE_EITHER_GENDER + npctrade 3, DRAGONAIR, DODRIO, "DORIS@@@@@@", $6677, SMOKE_BALL, 00283, "EMY@@@@@@@@", TRADE_FEMALE_ONLY + npctrade 2, HAUNTER, XATU, "PAUL@@@@@@@", $8696, MYSTERYBERRY, 15616, "CHRIS@@@@@@", TRADE_EITHER_GENDER + npctrade 3, CHANSEY, AERODACTYL, "AEROY@@@@@@", $6696, GOLD_BERRY, 26491, "KIM@@@@@@@@", TRADE_EITHER_GENDER + npctrade 0, DUGTRIO, MAGNETON, "MAGGIE@@@@@", $6696, METAL_COAT, 50082, "FOREST@@@@@", TRADE_EITHER_GENDER ; fcf38 diff --git a/engine/trade/animation.asm b/engine/trade/animation.asm index 1c03dc869..0aaf0cb8b 100755 --- a/engine/trade/animation.asm +++ b/engine/trade/animation.asm @@ -11,42 +11,42 @@ TradeAnimation: ; 28f24 jr Function28fa1 .data_28f3f - tradeanim_1b - tradeanim_01 - tradeanim_1c - tradeanim_21 - tradeanim_2d - tradeanim_27 - tradeanim_23 - tradeanim_03 - tradeanim_25 - tradeanim_28 - tradeanim_25 + tradeanim_setup_givemon_scroll + tradeanim_show_givemon_data + tradeanim_do_givemon_scroll + tradeanim_wait_80 + tradeanim_wait_96 + tradeanim_poof + tradeanim_rocking_ball + tradeanim_enter_link_tube + tradeanim_wait_anim + tradeanim_bulge_through_tube + tradeanim_wait_anim tradeanim_1e - tradeanim_29 - tradeanim_06 - tradeanim_16 - tradeanim_1f + tradeanim_give_trademon_sfx + tradeanim_tube_to_ot + tradeanim_sent_to_ot_text + tradeanim_scroll_out_right - tradeanim_19 - tradeanim_17 - tradeanim_22 - tradeanim_1f - tradeanim_2a - tradeanim_0e - tradeanim_03 - tradeanim_24 - tradeanim_05 - tradeanim_25 - tradeanim_02 - tradeanim_27 - tradeanim_25 + tradeanim_ot_sends_text_1 + tradeanim_ot_bids_farewell + tradeanim_wait_40 + tradeanim_scroll_out_right + tradeanim_get_trademon_sfx + tradeanim_tube_to_player + tradeanim_enter_link_tube + tradeanim_drop_ball + tradeanim_exit_link_tube + tradeanim_wait_anim + tradeanim_show_getmon_data + tradeanim_poof + tradeanim_wait_anim tradeanim_1d - tradeanim_2c - tradeanim_2e + tradeanim_animate_frontpic + tradeanim_wait_80_if_ot_egg tradeanim_1e - tradeanim_18 - tradeanim_1f + tradeanim_take_care_of_text + tradeanim_scroll_out_right tradeanim_end TradeAnimationPlayer2: ; 28f63 @@ -62,41 +62,41 @@ TradeAnimationPlayer2: ; 28f63 jr Function28fa1 .data_28f7e - tradeanim_1a - tradeanim_17 - tradeanim_22 - tradeanim_1f - tradeanim_2a - tradeanim_06 - tradeanim_03 - tradeanim_24 - tradeanim_05 - tradeanim_25 - tradeanim_02 - tradeanim_27 - tradeanim_25 + tradeanim_ot_sends_text_2 + tradeanim_ot_bids_farewell + tradeanim_wait_40 + tradeanim_scroll_out_right + tradeanim_get_trademon_sfx + tradeanim_tube_to_ot + tradeanim_enter_link_tube + tradeanim_drop_ball + tradeanim_exit_link_tube + tradeanim_wait_anim + tradeanim_show_getmon_data + tradeanim_poof + tradeanim_wait_anim tradeanim_1d - tradeanim_2c - tradeanim_2f + tradeanim_animate_frontpic + tradeanim_wait_180_if_ot_egg tradeanim_1e - tradeanim_18 - tradeanim_1f + tradeanim_take_care_of_text + tradeanim_scroll_out_right - tradeanim_1b - tradeanim_01 - tradeanim_1c - tradeanim_22 - tradeanim_27 - tradeanim_23 - tradeanim_03 - tradeanim_25 - tradeanim_28 - tradeanim_25 + tradeanim_setup_givemon_scroll + tradeanim_show_givemon_data + tradeanim_do_givemon_scroll + tradeanim_wait_40 + tradeanim_poof + tradeanim_rocking_ball + tradeanim_enter_link_tube + tradeanim_wait_anim + tradeanim_bulge_through_tube + tradeanim_wait_anim tradeanim_1e - tradeanim_29 - tradeanim_0e - tradeanim_16 - tradeanim_1f + tradeanim_give_trademon_sfx + tradeanim_tube_to_player + tradeanim_sent_to_ot_text + tradeanim_scroll_out_right tradeanim_end Function28fa1: ; 28fa1 @@ -234,54 +234,54 @@ endr ; 290af .JumpTable: ; 290af - dw GetTradeAnimByte ; 00 - dw TradeAnim_01 ; 01 get player mon frontpic - dw TradeAnim_02 ; 02 - dw TradeAnim_03 ; 03 transition to link tube - dw TradeAnim_04 ; 04 slide in link tube - dw TradeAnim_05 ; 05 - dw TradeAnim_06 ; 06 trademon navigates to OT system - dw TradeAnim_07 ; 07 pan bgmap - dw TradeAnim_08 ; 08 pan bgmap - dw TradeAnim_09 ; 09 pan bgmap - dw TradeAnim_0a ; 0a stop scroll - dw TradeAnim_0b ; 0b disappear mon icon - dw TradeAnim_0c ; 0c continue flashing OT screen - dw TradeAnim_0d ; 0d end scene - dw TradeAnim_0e ; 0e trademon navigates to player system - dw TradeAnim_0f ; 0f pan bgmap - dw TradeAnim_10 ; 10 pan bgmap - dw TradeAnim_11 ; 11 pan bgmap - dw TradeAnim_12 ; 12 stop scroll - dw TradeAnim_13 ; 13 disappear mon icon - dw TradeAnim_14 ; 14 continue flashing OT screen - dw TradeAnim_15 ; 15 end scene - dw TradeAnim_16 ; 16 - dw TradeAnim_17 ; 17 - dw TradeAnim_18 ; 18 - dw TradeAnim_19 ; 19 - dw TradeAnim_1a ; 1a - dw TradeAnim_1b ; 1b set up scroll for player mon - dw TradeAnim_1c ; 1c scroll across + dw TradeAnim_Next ; 00 + dw TradeAnim_ShowGivemonData ; 01 + dw TradeAnim_ShowGetmonData ; 02 + dw TradeAnim_EnterLinkTube ; 03 + dw TradeAnim_04 ; 04 + dw TradeAnim_ExitLinkTube ; 05 + dw TradeAnim_TubeToOT1 ; 06 + dw TradeAnim_TubeToOT2 ; 07 + dw TradeAnim_TubeToOT3 ; 08 + dw TradeAnim_TubeToOT4 ; 09 + dw TradeAnim_TubeToOT5 ; 0a + dw TradeAnim_TubeToOT6 ; 0b + dw TradeAnim_TubeToOT7 ; 0c + dw TradeAnim_TubeToOT8 ; 0d + dw TradeAnim_TubeToPlayer1 ; 0e + dw TradeAnim_TubeToPlayer2 ; 0f + dw TradeAnim_TubeToPlayer3 ; 10 + dw TradeAnim_TubeToPlayer4 ; 11 + dw TradeAnim_TubeToPlayer5 ; 12 + dw TradeAnim_TubeToPlayer6 ; 13 + dw TradeAnim_TubeToPlayer7 ; 14 + dw TradeAnim_TubeToPlayer8 ; 15 + dw TradeAnim_SentToOTText ; 16 + dw TradeAnim_OTBidsFarewell ; 17 + dw TradeAnim_TakeCareOfText ; 18 + dw TradeAnim_OTSendsText1 ; 19 + dw TradeAnim_OTSendsText2 ; 1a + dw TradeAnim_SetupGivemonScroll ; 1b + dw TradeAnim_DoGivemonScroll ; 1c dw TradeAnim_1d ; 1d - dw TradeAnim_1e ; 1e set up scroll for mon transfer - dw TradeAnim_1f ; 1f - dw TradeAnim_20 ; 20 - dw TradeAnim_21 ; 21 wait 80 frames - dw TradeAnim_22 ; 22 - dw TradeAnim_23 ; 23 ball appear anim - dw TradeAnim_24 ; 24 ball rises into tube - dw TradeAnim_25 ; 25 wait ball rise - dw TradeAnim_26 ; 26 - dw TradeAnim_27 ; 27 ball return poof anim - dw TradeAnim_28 ; 28 ball travels through tube - dw TradeAnim_29 ; 29 give trademon sfx - dw TradeAnim_2a ; 2a get trademon sfx - dw EndTradeAnim ; 2b - dw TradeAnim_2c ; 2c - dw TradeAnim_2d ; 2d wait 96 frames - dw TradeAnim_2e ; 2e - dw TradeAnim_2f ; 2f + dw TradeAnim_1e ; 1e + dw TradeAnim_ScrollOutRight ; 1f + dw TradeAnim_ScrollOutRight2 ; 20 + dw TraideAnim_Wait80 ; 21 + dw TraideAnim_Wait40 ; 22 + dw TradeAnim_RockingBall ; 23 + dw TradeAnim_DropBall ; 24 + dw TradeAnim_WaitAnim ; 25 + dw TradeAnim_WaitAnim2 ; 26 + dw TradeAnim_Poof ; 27 + dw TradeAnim_BulgeThroughTube ; 28 + dw TradeAnim_GiveTrademonSFX ; 29 + dw TradeAnim_GetTrademonSFX ; 2a + dw TradeAnim_End ; 2b + dw TradeAnim_AnimateFrontpic ; 2c + dw TraideAnim_Wait96 ; 2d + dw TraideAnim_Wait80IfOTEgg ; 2e + dw TraideAnim_Wait180IfOTEgg ; 2f ; 2910f NextTradeAnim: ; 2910f @@ -290,7 +290,7 @@ NextTradeAnim: ; 2910f ret ; 29114 -GetTradeAnimByte: ; 29114 +TradeAnim_Next: ; 29114 ld hl, wTradeAnimPointer ld e, [hl] inc hl @@ -304,13 +304,13 @@ GetTradeAnimByte: ; 29114 ret ; 29123 -EndTradeAnim: ; 29123 +TradeAnim_End: ; 29123 ld hl, wJumptableIndex set 7, [hl] ret ; 29129 -TradeAnim_06: ; 29129 +TradeAnim_TubeToOT1: ; 29129 ld a, $ed call Function292f6 ld a, [wc74c] @@ -320,7 +320,7 @@ TradeAnim_06: ; 29129 ld b, $0 jr Function2914e -TradeAnim_0e: ; 2913c +TradeAnim_TubeToPlayer1: ; 2913c ld a, $ee call Function292f6 ld a, [wc74d] @@ -378,7 +378,7 @@ Function2914e: ; 2914e ret ; 291af -TradeAnim_07: ; 291af +TradeAnim_TubeToOT2: ; 291af call Function2981d ld a, [hSCX] add $2 @@ -391,7 +391,7 @@ TradeAnim_07: ; 291af ret ; 291c4 -TradeAnim_08: ; 291c4 +TradeAnim_TubeToOT3: ; 291c4 call Function2981d ld a, [hSCX] add $2 @@ -404,7 +404,7 @@ TradeAnim_08: ; 291c4 ret ; 291d9 -TradeAnim_09: ; 291d9 +TradeAnim_TubeToOT4: ; 291d9 call Function2981d ld a, [hSCX] add $2 @@ -415,7 +415,7 @@ TradeAnim_09: ; 291d9 ret ; 291e8 -TradeAnim_10: ; 291e8 +TradeAnim_TubeToPlayer3: ; 291e8 call Function2981d ld a, [hSCX] sub $2 @@ -428,7 +428,7 @@ TradeAnim_10: ; 291e8 ret ; 291fd -TradeAnim_11: ; 291fd +TradeAnim_TubeToPlayer4: ; 291fd call Function2981d ld a, [hSCX] sub $2 @@ -441,7 +441,7 @@ TradeAnim_11: ; 291fd ret ; 29211 -TradeAnim_12: ; 29211 +TradeAnim_TubeToPlayer5: ; 29211 call Function2981d ld a, [hSCX] sub $2 @@ -452,16 +452,16 @@ TradeAnim_12: ; 29211 ret ; 29220 -TradeAnim_0b: -TradeAnim_13: ; 29220 +TradeAnim_TubeToOT6: +TradeAnim_TubeToPlayer6: ; 29220 ld a, $80 ld [wcf64], a call NextTradeAnim ret ; 29229 -TradeAnim_0d: -TradeAnim_15: ; 29229 +TradeAnim_TubeToOT8: +TradeAnim_TubeToPlayer8: ; 29229 call ClearBGPalettes call ClearTileMap call ClearSprites @@ -479,14 +479,14 @@ TradeAnim_15: ; 29229 call Function2982b call WaitBGMap call Function297ed - call GetTradeAnimByte + call TradeAnim_Next ret ; 2925d -TradeAnim_0a: -TradeAnim_0c: -TradeAnim_0f: -TradeAnim_14: ; 2925d +TradeAnim_TubeToOT5: +TradeAnim_TubeToOT7: +TradeAnim_TubeToPlayer2: +TradeAnim_TubeToPlayer7: ; 2925d call Function2981d ld hl, wcf64 ld a, [hl] @@ -500,15 +500,15 @@ TradeAnim_14: ; 2925d ret ; 2926d -TradeAnim_29: ; 2926d - call GetTradeAnimByte +TradeAnim_GiveTrademonSFX: ; 2926d + call TradeAnim_Next ld de, SFX_GIVE_TRADEMON call PlaySFX ret ; 29277 -TradeAnim_2a: ; 29277 - call GetTradeAnimByte +TradeAnim_GetTrademonSFX: ; 29277 + call TradeAnim_Next ld de, SFX_GET_TRADEMON call PlaySFX ret @@ -540,7 +540,7 @@ Function29297: ; 29297 hlcoord 9, 3 ld [hl], $5b inc hl - ld bc, $a + ld bc, 10 ld a, $60 call ByteFill hlcoord 3, 2 @@ -569,11 +569,11 @@ Function292be: ; 292be ld a, $61 ld de, SCREEN_WIDTH ld c, $3 -.asm_292d9 +.loop add hl, de ld [hl], a dec c - jr nz, .asm_292d9 + jr nz, .loop add hl, de ld a, $5f ld [hld], a @@ -603,21 +603,21 @@ Function292f6: ; 292f6 ld a, "─" call ByteFill hlcoord 0, 1 - ld de, wc736 + ld de, wLinkPlayer1Name call PlaceString - ld hl, wc741 + ld hl, wLinkPlayer2Name ld de, 0 -.asm_2931e +.find_name_end_loop ld a, [hli] cp "@" - jr z, .asm_29326 + jr z, .done dec de - jr .asm_2931e + jr .find_name_end_loop -.asm_29326 +.done hlcoord 0, 4 add hl, de - ld de, wc741 + ld de, wLinkPlayer2Name call PlaceString hlcoord 7, 2 ld bc, 6 @@ -631,7 +631,7 @@ Function292f6: ; 292f6 ret ; 29348 -TradeAnim_03: ; 29348 +TradeAnim_EnterLinkTube: ; 29348 call ClearTileMap call WaitTop ld a, $a0 @@ -665,11 +665,11 @@ TradeAnim_04: ; 2937e .done ld c, 80 call DelayFrames - call GetTradeAnimByte + call TradeAnim_Next ret ; 29391 -TradeAnim_05: ; 29391 +TradeAnim_ExitLinkTube: ; 29391 ld a, [hSCX] cp $a0 jr z, .asm_2939c @@ -681,22 +681,22 @@ TradeAnim_05: ; 29391 call ClearTileMap xor a ld [hSCX], a - call GetTradeAnimByte + call TradeAnim_Next ret ; 293a6 -TradeAnim_1b: ; 293a6 +TradeAnim_SetupGivemonScroll: ; 293a6 ld a, $8f ld [hWX], a ld a, $88 ld [hSCX], a ld a, $50 ld [hWY], a - call GetTradeAnimByte + call TradeAnim_Next ret ; 293b6 -TradeAnim_1c: ; 293b6 +TradeAnim_DoGivemonScroll: ; 293b6 ld a, [hWX] cp $7 jr z, .done @@ -712,7 +712,7 @@ TradeAnim_1c: ; 293b6 ld [hWX], a xor a ld [hSCX], a - call GetTradeAnimByte + call TradeAnim_Next ret ; 293d2 @@ -721,7 +721,7 @@ TradeAnim_1d: ; 293d2 ld [hWX], a ld a, $50 ld [hWY], a - call GetTradeAnimByte + call TradeAnim_Next ret ; 293de @@ -730,11 +730,11 @@ TradeAnim_1e: ; 293de ld [hWX], a ld a, $90 ld [hWY], a - call GetTradeAnimByte + call TradeAnim_Next ret ; 293ea -TradeAnim_1f: ; 293ea +TradeAnim_ScrollOutRight: ; 293ea call WaitTop ld a, VBGMap1 / $100 ld [hBGMapAddress + 1], a @@ -752,15 +752,15 @@ TradeAnim_1f: ; 293ea ret ; 2940c -TradeAnim_20: ; 2940c +TradeAnim_ScrollOutRight2: ; 2940c ld a, [hWX] cp $a1 - jr nc, .asm_29417 + jr nc, .done add $4 ld [hWX], a ret -.asm_29417 +.done ld a, VBGMap1 / $100 ld [hBGMapAddress + 1], a call WaitBGMap @@ -770,11 +770,11 @@ TradeAnim_20: ; 2940c ld [hWY], a ld a, VBGMap0 / $100 ld [hBGMapAddress + 1], a - call GetTradeAnimByte + call TradeAnim_Next ret ; 2942e -TradeAnim_01: ; 2942e +TradeAnim_ShowGivemonData: ; 2942e call Function2951f ld a, [wPlayerTrademonSpecies] ld [CurPartySpecies], a @@ -796,11 +796,11 @@ TradeAnim_01: ; 2942e call PlayCryHeader .skip_cry - call GetTradeAnimByte + call TradeAnim_Next ret ; 29461 -TradeAnim_02: ; 29461 +TradeAnim_ShowGetmonData: ; 29461 call Function29549 ld a, [wOTTrademonSpecies] ld [CurPartySpecies], a @@ -813,13 +813,13 @@ TradeAnim_02: ; 29461 ld a, $e4 call DmgToCgbBGPals call Function294c0 - call GetTradeAnimByte + call TradeAnim_Next ret ; 29487 -TradeAnim_2c: ; 29487 +TradeAnim_AnimateFrontpic: ; 29487 callba Function4d81e - call GetTradeAnimByte + call TradeAnim_Next ret ; 29491 @@ -870,53 +870,53 @@ Function294c3: ; 294c3 ret ; 294e7 -TradeAnim_21: ; 294e7 +TraideAnim_Wait80: ; 294e7 ld c, 80 call DelayFrames - call GetTradeAnimByte + call TradeAnim_Next ret ; 294f0 -TradeAnim_22: ; 294f0 +TraideAnim_Wait40: ; 294f0 ld c, 40 call DelayFrames - call GetTradeAnimByte + call TradeAnim_Next ret ; 294f9 -TradeAnim_2d: ; 294f9 +TraideAnim_Wait96: ; 294f9 ld c, 96 call DelayFrames - call GetTradeAnimByte + call TradeAnim_Next ret ; 29502 -TradeAnim_2e: ; 29502 - call Function29516 +TraideAnim_Wait80IfOTEgg: ; 29502 + call IsOTTrademonEgg ret nz ld c, 80 call DelayFrames ret ; 2950c -TradeAnim_2f: ; 2950c - call Function29516 +TraideAnim_Wait180IfOTEgg: ; 2950c + call IsOTTrademonEgg ret nz ld c, 180 call DelayFrames ret ; 29516 -Function29516: ; 29516 - call GetTradeAnimByte +IsOTTrademonEgg: ; 29516 + call TradeAnim_Next ld a, [wOTTrademonSpecies] - cp $fd + cp EGG ret ; 2951f Function2951f: ; 2951f ld de, wPlayerTrademonSpecies ld a, [de] - cp $fd + cp EGG jr z, Function295a1 call Function29573 ld de, wPlayerTrademonSpecies @@ -935,7 +935,7 @@ Function2951f: ; 2951f Function29549: ; 29549 ld de, wOTTrademonSpecies ld a, [de] - cp $fd + cp EGG jr z, Function295a1 call Function29573 ld de, wOTTrademonSpecies @@ -970,7 +970,7 @@ String29591: ; 29591 db "─── №." next "" next "OT/" - next $73, "№.@" + next "№.@" ; 295a1 Function295a1: ; 295a1 @@ -1048,17 +1048,17 @@ Function29611: ; 29611 ret ; 2961b -TradeAnim_23: ; 2961b +TradeAnim_RockingBall: ; 2961b depixel 10, 11, 4, 0 ld a, SPRITE_ANIM_INDEX_0E call _InitSpriteAnimStruct - call GetTradeAnimByte + call TradeAnim_Next ld a, $20 ld [wcf64], a ret ; 2962c -TradeAnim_24: ; 2962c +TradeAnim_DropBall: ; 2962c depixel 10, 11, 4, 0 ld a, SPRITE_ANIM_INDEX_0E call _InitSpriteAnimStruct @@ -1068,17 +1068,17 @@ TradeAnim_24: ; 2962c ld hl, $7 add hl, bc ld [hl], $dc - call GetTradeAnimByte + call TradeAnim_Next ld a, $38 ld [wcf64], a ret ; 29649 -TradeAnim_27: ; 29649 +TradeAnim_Poof: ; 29649 depixel 10, 11, 4, 0 ld a, SPRITE_ANIM_INDEX_0F call _InitSpriteAnimStruct - call GetTradeAnimByte + call TradeAnim_Next ld a, $10 ld [wcf64], a ld de, SFX_BALL_POOF @@ -1086,13 +1086,13 @@ TradeAnim_27: ; 29649 ret ; 29660 -TradeAnim_28: ; 29660 +TradeAnim_BulgeThroughTube: ; 29660 ld a, $e4 call Functioncf8 depixel 5, 11 ld a, SPRITE_ANIM_INDEX_10 call _InitSpriteAnimStruct - call GetTradeAnimByte + call TradeAnim_Next ld a, $40 ld [wcf64], a ret @@ -1209,7 +1209,7 @@ Function296f2: ; 296f2 (a:56f2) ret ; 29701 (a:5701) -TradeAnim_16: ; 29701 +TradeAnim_SentToOTText: ; 29701 ld a, [wLinkMode] cp LINK_TIMECAPSULE jr z, .time_capsule @@ -1222,14 +1222,14 @@ TradeAnim_16: ; 29701 call Function297c9 ld c, 128 call DelayFrames - call GetTradeAnimByte + call TradeAnim_Next ret .time_capsule ld hl, UnknownText_0x29732 call PrintText call Function297c9 - call GetTradeAnimByte + call TradeAnim_Next ret ; 29732 @@ -1245,14 +1245,14 @@ UnknownText_0x29737: ; 0x29737 db "@" ; 0x2973c -TradeAnim_17: ; 2973c +TradeAnim_OTBidsFarewell: ; 2973c ld hl, UnknownText_0x29752 call PrintText call Function297c9 ld hl, UnknownText_0x29757 call PrintText call Function297c9 - call GetTradeAnimByte + call TradeAnim_Next ret ; 29752 @@ -1268,7 +1268,7 @@ UnknownText_0x29757: ; 0x29757 db "@" ; 0x2975c -TradeAnim_18: ; 2975c +TradeAnim_TakeCareOfText: ; 2975c call WaitTop hlcoord 0, 10 ld bc, 8 * SCREEN_WIDTH @@ -1278,7 +1278,7 @@ TradeAnim_18: ; 2975c ld hl, UnknownText_0x2977a call PrintText call Function297c9 - call GetTradeAnimByte + call TradeAnim_Next ret ; 2977a @@ -1288,7 +1288,7 @@ UnknownText_0x2977a: ; 0x2977a db "@" ; 0x2977f -TradeAnim_19: ; 2977f +TradeAnim_OTSendsText1: ; 2977f ld hl, UnknownText_0x2979a call PrintText call Function297c9 @@ -1297,7 +1297,7 @@ TradeAnim_19: ; 2977f call Function297c9 ld c, 14 call DelayFrames - call GetTradeAnimByte + call TradeAnim_Next ret ; 2979a @@ -1313,7 +1313,7 @@ UnknownText_0x2979f: ; 0x2979f db "@" ; 0x297a4 -TradeAnim_1a: ; 297a4 +TradeAnim_OTSendsText2: ; 297a4 ld hl, UnknownText_0x297bf call PrintText call Function297c9 @@ -1322,7 +1322,7 @@ TradeAnim_1a: ; 297a4 call Function297c9 ld c, 14 call DelayFrames - call GetTradeAnimByte + call TradeAnim_Next ret ; 297bf @@ -1387,11 +1387,11 @@ Function297ed: ; 297ed Function297ff: ; 297ff push de - ld de, wc736 + ld de, wLinkPlayer1Name ld bc, NAME_LENGTH call CopyBytes pop hl - ld de, wc741 + ld de, wLinkPlayer2Name ld bc, NAME_LENGTH call CopyBytes ret @@ -1451,7 +1451,7 @@ Function2985a: ; 2985a ret ; 29879 -TradeAnim_25: ; 29879 +TradeAnim_WaitAnim: ; 29879 ld hl, wcf64 ld a, [hl] and a @@ -1460,25 +1460,25 @@ TradeAnim_25: ; 29879 ret .done - call GetTradeAnimByte + call TradeAnim_Next ret ; 29886 -TradeAnim_26: ; 29886 +TradeAnim_WaitAnim2: ; 29886 ld hl, wcf64 ld a, [hl] and a - jr z, .asm_2988f + jr z, .done dec [hl] ret -.asm_2988f - call GetTradeAnimByte +.done + call TradeAnim_Next ret ; 29893 -Function29893: ; 29893 +DebugTrade: ; 29893 ; This function is unreferenced. ; It was meant for use in Japanese versions, so the ; constant used for copy length was changed by accident. @@ -1488,30 +1488,30 @@ Function29893: ; 29893 ld a, [hli] ld [wPlayerTrademonSpecies], a ld de, wPlayerTrademonSenderName - ld c, 13 ; jp: 8 -.asm_2989f + ld c, 11 + 2 ; jp: 6 + 2 +.loop1 ld a, [hli] ld [de], a inc de dec c - jr nz, .asm_2989f + jr nz, .loop1 ld a, [hli] ld [wOTTrademonSpecies], a ld de, wOTTrademonSenderName - ld c, 13 ; jp: 8 -.asm_298ae + ld c, 11 + 2 ; jp: 6 + 2 +.loop2 ld a, [hli] ld [de], a inc de dec c - jr nz, .asm_298ae + jr nz, .loop2 ret ; 298b5 Unknown_298b5: ; 298b5 - db $03, "ゲーフり@@", $23, $01 ; GAME FREAK - db $06, "クりーチャ@", $56, $04 ; Creatures Inc. + db VENUSAUR, "ゲーフり@@", $23, $01 ; GAME FREAK + db CHARIZARD, "クりーチャ@", $56, $04 ; Creatures Inc. ; 298c7 diff --git a/macros/trade_anim.asm b/macros/trade_anim.asm index 46ae6651d..3b2aeaf09 100755 --- a/macros/trade_anim.asm +++ b/macros/trade_anim.asm @@ -4,78 +4,75 @@ tradeanim_next: macro db tradeanim_next_command endm - enum tradeanim_01_command -tradeanim_01: macro - db tradeanim_01_command + enum tradeanim_show_givemon_data_command +tradeanim_show_givemon_data: macro + db tradeanim_show_givemon_data_command endm - enum tradeanim_02_command -tradeanim_02: macro - db tradeanim_02_command + enum tradeanim_show_getmon_data_command +tradeanim_show_getmon_data: macro + db tradeanim_show_getmon_data_command endm - enum tradeanim_03_command -tradeanim_03: macro - db tradeanim_03_command + enum tradeanim_enter_link_tube_command +tradeanim_enter_link_tube: macro + db tradeanim_enter_link_tube_command endm - enum tradeanim_04_command -tradeanim_04: macro - db tradeanim_04_command +__enum__ set $5 + + enum tradeanim_exit_link_tube_command +tradeanim_exit_link_tube: macro + db tradeanim_exit_link_tube_command endm - enum tradeanim_05_command -tradeanim_05: macro - db tradeanim_05_command -endm - - enum tradeanim_06_command -tradeanim_06: macro - db tradeanim_06_command + enum tradeanim_tube_to_ot_command +tradeanim_tube_to_ot: macro + db tradeanim_tube_to_ot_command endm __enum__ set $e - enum tradeanim_0e_command -tradeanim_0e: macro - db tradeanim_0e_command + enum tradeanim_tube_to_player_command +tradeanim_tube_to_player: macro + db tradeanim_tube_to_player_command endm __enum__ set $16 - enum tradeanim_16_command -tradeanim_16: macro - db tradeanim_16_command + enum tradeanim_sent_to_ot_text_command +tradeanim_sent_to_ot_text: macro + db tradeanim_sent_to_ot_text_command endm - enum tradeanim_17_command -tradeanim_17: macro - db tradeanim_17_command + enum tradeanim_ot_bids_farewell_command +tradeanim_ot_bids_farewell: macro + db tradeanim_ot_bids_farewell_command endm - enum tradeanim_18_command -tradeanim_18: macro - db tradeanim_18_command + enum tradeanim_take_care_of_text_command +tradeanim_take_care_of_text: macro + db tradeanim_take_care_of_text_command endm - enum tradeanim_19_command -tradeanim_19: macro - db tradeanim_19_command + enum tradeanim_ot_sends_text_1_command +tradeanim_ot_sends_text_1: macro + db tradeanim_ot_sends_text_1_command endm - enum tradeanim_1a_command -tradeanim_1a: macro - db tradeanim_1a_command + enum tradeanim_ot_sends_text_2_command +tradeanim_ot_sends_text_2: macro + db tradeanim_ot_sends_text_2_command endm - enum tradeanim_1b_command -tradeanim_1b: macro - db tradeanim_1b_command + enum tradeanim_setup_givemon_scroll_command +tradeanim_setup_givemon_scroll: macro + db tradeanim_setup_givemon_scroll_command endm - enum tradeanim_1c_command -tradeanim_1c: macro - db tradeanim_1c_command + enum tradeanim_do_givemon_scroll_command +tradeanim_do_givemon_scroll: macro + db tradeanim_do_givemon_scroll_command endm enum tradeanim_1d_command @@ -88,64 +85,58 @@ tradeanim_1e: macro db tradeanim_1e_command endm - enum tradeanim_1f_command -tradeanim_1f: macro - db tradeanim_1f_command + enum tradeanim_scroll_out_right_command +tradeanim_scroll_out_right: macro + db tradeanim_scroll_out_right_command endm - enum tradeanim_20_command -tradeanim_20: macro - db tradeanim_20_command +__enum__ set $21 + + enum tradeanim_wait_80_command +tradeanim_wait_80: macro + db tradeanim_wait_80_command endm - enum tradeanim_21_command -tradeanim_21: macro - db tradeanim_21_command + enum tradeanim_wait_40_command +tradeanim_wait_40: macro + db tradeanim_wait_40_command endm - enum tradeanim_22_command -tradeanim_22: macro - db tradeanim_22_command + enum tradeanim_rocking_ball_command +tradeanim_rocking_ball: macro + db tradeanim_rocking_ball_command endm - enum tradeanim_23_command -tradeanim_23: macro - db tradeanim_23_command + enum tradeanim_drop_ball_command +tradeanim_drop_ball: macro + db tradeanim_drop_ball_command endm - enum tradeanim_24_command -tradeanim_24: macro - db tradeanim_24_command + enum tradeanim_wait_anim_command +tradeanim_wait_anim: macro + db tradeanim_wait_anim_command endm - enum tradeanim_25_command -tradeanim_25: macro - db tradeanim_25_command +__enum__ set $27 + + enum tradeanim_poof_command +tradeanim_poof: macro + db tradeanim_poof_command endm - enum tradeanim_26_command -tradeanim_26: macro - db tradeanim_26_command + enum tradeanim_bulge_through_tube_command +tradeanim_bulge_through_tube: macro + db tradeanim_bulge_through_tube_command endm - enum tradeanim_27_command -tradeanim_27: macro - db tradeanim_27_command + enum tradeanim_give_trademon_sfx_command +tradeanim_give_trademon_sfx: macro + db tradeanim_give_trademon_sfx_command endm - enum tradeanim_28_command -tradeanim_28: macro - db tradeanim_28_command -endm - - enum tradeanim_29_command -tradeanim_29: macro - db tradeanim_29_command -endm - - enum tradeanim_2a_command -tradeanim_2a: macro - db tradeanim_2a_command + enum tradeanim_get_trademon_sfx_command +tradeanim_get_trademon_sfx: macro + db tradeanim_get_trademon_sfx_command endm enum tradeanim_end_command @@ -153,23 +144,23 @@ tradeanim_end: macro db tradeanim_end_command endm - enum tradeanim_2c_command -tradeanim_2c: macro - db tradeanim_2c_command + enum tradeanim_animate_frontpic_command +tradeanim_animate_frontpic: macro + db tradeanim_animate_frontpic_command endm - enum tradeanim_2d_command -tradeanim_2d: macro - db tradeanim_2d_command + enum tradeanim_wait_96_command +tradeanim_wait_96: macro + db tradeanim_wait_96_command endm - enum tradeanim_2e_command -tradeanim_2e: macro - db tradeanim_2e_command + enum tradeanim_wait_80_if_ot_egg_command +tradeanim_wait_80_if_ot_egg: macro + db tradeanim_wait_80_if_ot_egg_command endm - enum tradeanim_2f_command -tradeanim_2f: macro - db tradeanim_2f_command + enum tradeanim_wait_180_if_ot_egg_command +tradeanim_wait_180_if_ot_egg: macro + db tradeanim_wait_180_if_ot_egg_command endm diff --git a/wram.asm b/wram.asm index c4b6971d8..88737f277 100644 --- a/wram.asm +++ b/wram.asm @@ -959,6 +959,9 @@ BattleEnded:: ; c734 wWildMonMoves:: wc735:: ds 1 +wLinkPlayer1Name:: ds NAME_LENGTH +wLinkPlayer2Name:: ds NAME_LENGTH + ds wLinkPlayer1Name - @ wc736:: ds 3 wWildMonPP:: wc739:: ds 4 From d972564175bcee324877f1e016fafd349c50e7d3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 23 Nov 2015 16:04:53 -0500 Subject: [PATCH 35/40] link and seer labels --- battle/core.asm | 374 ++++++++++++++++++----------------- battle/effect_commands.asm | 4 +- constants/misc_constants.asm | 4 + engine/billspc.asm | 2 +- engine/decorations.asm | 2 +- engine/evolve.asm | 6 +- engine/link.asm | 96 ++++----- engine/mail.asm | 4 +- engine/mart.asm | 6 +- engine/pack.asm | 361 +++++++++++++++++---------------- engine/pokecenter_pc.asm | 6 +- event/buena.asm | 2 +- event/elevator.asm | 2 +- event/kurt.asm | 2 +- event/poke_seer.asm | 118 ++++++----- home/serial.asm | 96 ++++----- home/text.asm | 4 +- items/item_effects.asm | 28 +-- main.asm | 46 ++--- maps/PokeCenter2F.asm | 6 +- misc/mobile_12.asm | 18 +- misc/mobile_22_2.asm | 14 +- misc/mobile_40.asm | 104 +++++----- wram.asm | 43 ++-- 24 files changed, 705 insertions(+), 643 deletions(-) diff --git a/battle/core.asm b/battle/core.asm index f08ca7e10..bda8e736d 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -7,7 +7,7 @@ SendOutFirstMons: ; 3c000 xor a ld [wBattleParticipantsNotFainted], a ld [wc6fc], a - ld [wd0ec], a + ld [wPlayerAction], a ld [BattleEnded], a inc a ld [wd264], a @@ -302,7 +302,7 @@ HandleBetweenTurnEffects: ; 3c1d6 call HandleHealingItems call UpdateBattleMonInParty call LoadTileMapToTempTileMap - jp Function3c4df + jp HandleEncore ; 3c23c CheckFaint_PlayerThenEnemy: ; 3c23c @@ -461,7 +461,7 @@ DetermineMoveOrder: ; 3c314 jr z, .use_move sub BATTLEACTION_SWITCH1 jr c, .use_move - ld a, [wd0ec] + ld a, [wPlayerAction] cp $2 jr nz, .switch ld a, [hLinkPlayerNumber] @@ -486,7 +486,7 @@ DetermineMoveOrder: ; 3c314 jp .enemy_first .use_move - ld a, [wd0ec] + ld a, [wPlayerAction] and a jp nz, .player_first call CompareMovePriority @@ -629,7 +629,7 @@ ParsePlayerAction: ; 3c434 jr .encored .not_encored - ld a, [wd0ec] + ld a, [wPlayerAction] cp $2 jr z, .reset_rage and a @@ -638,7 +638,7 @@ ParsePlayerAction: ; 3c434 and 1 << SUBSTATUS_BIDE jr nz, .locked_in xor a - ld [wd235], a + ld [wMoveSelectionMenuType], a inc a ; POUND ld [FXAnimIDLo], a call MoveSelectionScreen @@ -714,23 +714,23 @@ ParsePlayerAction: ; 3c434 ret ; 3c4df -Function3c4df: ; 3c4df +HandleEncore: ; 3c4df ld a, [hLinkPlayerNumber] cp $1 - jr z, .asm_3c4ea - call .asm_3c4ed - jr .asm_3c518 + jr z, .player_1 + call .do_player + jr .do_enemy -.asm_3c4ea - call .asm_3c518 -.asm_3c4ed +.player_1 + call .do_enemy +.do_player ld hl, PlayerSubStatus5 bit SUBSTATUS_ENCORED, [hl] ret z ld a, [PlayerEncoreCount] dec a ld [PlayerEncoreCount], a - jr z, .asm_3c50a + jr z, .end_player_encore ld hl, BattleMonPP ld a, [CurMoveNum] ld c, a @@ -740,21 +740,21 @@ Function3c4df: ; 3c4df and $3f ret nz -.asm_3c50a +.end_player_encore ld hl, PlayerSubStatus5 res SUBSTATUS_ENCORED, [hl] call SetEnemyTurn ld hl, BattleText_TargetsEncoreEnded jp StdBattleTextBox -.asm_3c518 +.do_enemy ld hl, EnemySubStatus5 bit SUBSTATUS_ENCORED, [hl] ret z ld a, [EnemyEncoreCount] dec a ld [EnemyEncoreCount], a - jr z, .asm_3c535 + jr z, .end_enemy_encore ld hl, EnemyMonPP ld a, [CurEnemyMoveNum] ld c, a @@ -764,7 +764,7 @@ Function3c4df: ; 3c4df and $3f ret nz -.asm_3c535 +.end_enemy_encore ld hl, EnemySubStatus5 res SUBSTATUS_ENCORED, [hl] call SetPlayerTurn @@ -972,7 +972,7 @@ Battle_EnemyFirst: ; 3c5fe jp z, HandlePlayerMonFaint call RefreshBattleHuds xor a - ld [wd0ec], a + ld [wPlayerAction], a ret ; 3c664 @@ -1022,7 +1022,7 @@ Battle_PlayerFirst: ; 3c664 jp z, HandleEnemyMonFaint call RefreshBattleHuds xor a - ld [wd0ec], a + ld [wPlayerAction], a ret ; 3c6cf @@ -2004,7 +2004,8 @@ GetMaxHP: ; 3ccac ret ; 3ccc2 -Function3ccc2: ; 3ccc2 +GetHalfHP: ; 3ccc2 +; unreferenced ld hl, BattleMonHP ld a, [hBattleTurn] and a @@ -2160,22 +2161,22 @@ HandleEnemyMonFaint: ; 3cd55 jp c, WildFled_EnemyFled_LinkBattleCanceled ld a, $1 - ld [wd0ec], a + ld [wPlayerAction], a call Function3cf4a jp z, WildFled_EnemyFled_LinkBattleCanceled - jr Function3cdca + jr DoubleSwitch .player_mon_not_fainted ld a, $1 - ld [wd0ec], a + ld [wPlayerAction], a call Function3cf4a jp z, WildFled_EnemyFled_LinkBattleCanceled xor a - ld [wd0ec], a + ld [wPlayerAction], a ret ; 3cdca -Function3cdca: ; 3cdca +DoubleSwitch: ; 3cdca ld a, [hLinkPlayerNumber] cp $1 jr z, .player_1 @@ -2201,7 +2202,7 @@ Function3cdca: ; 3cdca .done xor a - ld [wd0ec], a + ld [wPlayerAction], a ret ; 3ce01 @@ -2412,14 +2413,14 @@ CheckEnemyTrainerDefeated: ; 3cf35 Function3cf4a: ; 3cf4a ld hl, EnemyHPPal ld e, HP_BAR_LENGTH_PX - call Function3e12e + call UpdateHPPal call WaitBGMap callba Function2c012 ld a, [wLinkMode] and a jr z, .not_linked - call Function3e8e4 + call LinkBattleSendReceiveAction ld a, [wBattleAction] cp BATTLEACTION_FORFEIT ret z @@ -2459,7 +2460,7 @@ EnemyPartyMonEntrance: ; 3cf78 call SpikesDamage xor a ld [wEnemyMoveStruct + MOVE_ANIM], a - ld [wd0ec], a + ld [wPlayerAction], a inc a ret ; 3cfa4 @@ -2813,10 +2814,10 @@ HandlePlayerMonFaint: ; 3d14e and a ret nz ld a, $1 - ld [wd0ec], a + ld [wPlayerAction], a call Function3cf4a jp z, WildFled_EnemyFled_LinkBattleCanceled - jp Function3cdca + jp DoubleSwitch ; 3d1aa PlayerMonFaintHappinessMod: ; 3d1aa @@ -2896,12 +2897,12 @@ ForcePlayerMonChoice: ; 3d227 and a jr z, .skip_link ld a, $1 - ld [wd0ec], a - call Function3e8e4 + ld [wPlayerAction], a + call LinkBattleSendReceiveAction .skip_link xor a - ld [wd0ec], a + ld [wPlayerAction], a call CheckMobileBattleError jr c, .enemy_fainted_mobile_error ld hl, EnemyMonHP @@ -3344,7 +3345,7 @@ EnemySwitch: ; 3d4e1 xor a ld [wBattleParticipantsNotFainted], a ld [wc6fc], a - ld [wd0ec], a + ld [wPlayerAction], a inc a ld [wEnemyIsSwitching], a call LoadTileMapToTempTileMap @@ -3938,9 +3939,9 @@ TryToRunAwayFromBattle: ; 3d8b3 jp .can_escape .no_flee_item - ld a, [wd267] + ld a, [wNumFleeAttempts] inc a - ld [wd267], a + ld [wNumFleeAttempts], a ld a, [hli] ld [hStringCmpString2 + 0], a ld a, [hl] @@ -3981,12 +3982,12 @@ TryToRunAwayFromBattle: ; 3d8b3 ld a, [hQuotient + 1] and a jr nz, .can_escape - ld a, [wd267] + ld a, [wNumFleeAttempts] ld c, a .loop dec c jr z, .cant_escape_2 - ld b, $1e + ld b, 30 ld a, [hQuotient + 2] add b ld [hQuotient + 2], a @@ -4000,7 +4001,7 @@ TryToRunAwayFromBattle: ; 3d8b3 cp b jr nc, .can_escape ld a, $1 - ld [wd0ec], a + ld [wPlayerAction], a ld hl, BattleText_CantEscape2 jr .print_inescapable_text @@ -4014,7 +4015,7 @@ TryToRunAwayFromBattle: ; 3d8b3 .print_inescapable_text call StdBattleTextBox ld a, $1 - ld [wd266], a + ld [wFailedToFlee], a call LoadTileMapToTempTileMap and a ret @@ -4026,12 +4027,12 @@ TryToRunAwayFromBattle: ; 3d8b3 jr z, .fled call LoadTileMapToTempTileMap xor a - ld [wd0ec], a + ld [wPlayerAction], a ld a, $f ld [CurMoveNum], a xor a ld [CurPlayerMove], a - call Function3e8e4 + call LinkBattleSendReceiveAction call Call_LoadTempTileMapToTileMap call CheckMobileBattleError jr c, .mobile @@ -4886,7 +4887,7 @@ DrawPlayerHUD: ; 3df58 UpdatePlayerHPPal: ; 3df98 ld hl, PlayerHPPal - jp Function3e12e + jp UpdateHPPal ; 3df9e CheckDanger: ; 3df9e @@ -4917,7 +4918,7 @@ CheckDanger: ; 3df9e PrintPlayerHUD: ; 3dfbf ld de, BattleMonNick hlcoord 10, 7 - call Function3e138 + call ret_3e138 call PlaceString push bc @@ -5005,7 +5006,7 @@ DrawEnemyHUD: ; 3e043 call GetBaseData ld de, EnemyMonNick hlcoord 1, 0 - call Function3e138 + call ret_3e138 call PlaceString ld h, b ld l, c @@ -5028,12 +5029,12 @@ DrawEnemyHUD: ; 3e043 ld [MonType], a callab GetGender ld a, " " - jr c, .asm_3e09a + jr c, .got_gender ld a, "♂" - jr nz, .asm_3e09a + jr nz, .got_gender ld a, "♀" -.asm_3e09a +.got_gender hlcoord 9, 1 ld [hl], a @@ -5044,16 +5045,16 @@ DrawEnemyHUD: ; 3e043 predef PlaceNonFaintStatus pop hl pop bc - jr nz, .asm_3e0be + jr nz, .skip_level ld a, b cp " " - jr nz, .asm_3e0b5 + jr nz, .print_level dec hl -.asm_3e0b5 +.print_level ld a, [EnemyMonLevel] ld [TempMonLevel], a call PrintLevel -.asm_3e0be +.skip_level ld hl, EnemyMonHP ld a, [hli] @@ -5061,14 +5062,14 @@ DrawEnemyHUD: ; 3e043 ld a, [hld] ld [hMultiplicand + 2], a or [hl] - jr nz, .asm_3e0d1 + jr nz, .not_fainted ld c, a ld e, a ld d, HP_BAR_LENGTH - jp .asm_3e11a + jp .draw_bar -.asm_3e0d1 +.not_fainted xor a ld [hMultiplicand], a ld a, HP_BAR_LENGTH_PX @@ -5081,7 +5082,7 @@ DrawEnemyHUD: ; 3e043 ld [hMultiplier], a ld a, b and a - jr z, .asm_3e105 + jr z, .less_than_256_max ld a, [hMultiplier] srl b rr a @@ -5099,12 +5100,12 @@ DrawEnemyHUD: ; 3e043 ld a, b ld [hProduct + 2], a -.asm_3e105 +.less_than_256_max ld a, [hProduct + 2] ld [hDividend + 0], a ld a, [hProduct + 3] ld [hDividend + 1], a - ld a, $2 + ld a, 2 ld b, a call Divide ld a, [hQuotient + 2] @@ -5113,7 +5114,7 @@ DrawEnemyHUD: ; 3e043 ld d, a ld c, a -.asm_3e11a +.draw_bar xor a ld [wd10a], a hlcoord 2, 2 @@ -5124,11 +5125,11 @@ DrawEnemyHUD: ; 3e043 UpdateEnemyHPPal: ; 3e127 ld hl, EnemyHPPal - call Function3e12e + call UpdateHPPal ret ; 3e12e -Function3e12e: ; 3e12e +UpdateHPPal: ; 3e12e ld b, [hl] call SetHPPal ld a, [hl] @@ -5137,7 +5138,7 @@ Function3e12e: ; 3e12e jp FinishBattleAnim ; 3e138 -Function3e138: ; 3e138 +ret_3e138: ; 3e138 ret ; 3e139 @@ -5192,7 +5193,7 @@ BattleMenu: ; 3e139 BattleMenu_Fight: ; 3e192 xor a - ld [wd267], a + ld [wNumFleeAttempts], a call Call_LoadTempTileMapToTileMap and a ret @@ -5242,13 +5243,13 @@ BattleMenu_Pack: ; 3e1c7 jr z, .contest callba BattlePack - ld a, [wd0ec] + ld a, [wPlayerAction] and a jr z, .didnt_use_item jr .got_item .tutorial - callba Function107bb + callba TutorialPack ld a, POKE_BALL ld [CurItem], a call DoItemEffect @@ -5448,7 +5449,7 @@ Function3e358: ; 3e358 ld a, [CurBattleMon] ld [LastPlayerMon], a ld a, $2 - ld [wd0ec], a + ld [wPlayerAction], a call ClearPalettes call DelayFrame call ClearSprites @@ -5468,7 +5469,7 @@ PlayerSwitch: ; 3e3ad and a jr z, .not_linked call LoadStandardMenuDataHeader - call Function3e8e4 + call LinkBattleSendReceiveAction call WriteBackup .not_linked @@ -5585,9 +5586,9 @@ BattleMenu_Run: ; 3e489 ld de, EnemyMonSpeed call TryToRunAwayFromBattle ld a, $0 - ld [wd266], a + ld [wFailedToFlee], a ret c - ld a, [wd0ec] + ld a, [wPlayerAction] and a ret nz jp BattleMenu @@ -5608,27 +5609,27 @@ CheckAmuletCoin: ; 3e4a8 MoveSelectionScreen: ; 3e4bc call IsMobileBattle - jr nz, .asm_3e4c8 - callba Function100b9f + jr nz, .not_mobile + callba MobileMoveSelectionScreen ret -.asm_3e4c8 +.not_mobile ld hl, EnemyMonMoves - ld a, [wd235] + ld a, [wMoveSelectionMenuType] dec a - jr z, .asm_3e4e2 + jr z, .got_menu_type dec a - jr z, .asm_3e4dd - call Function3e786 - ret z + jr z, .ether_elixer_menu + call CheckPlayerHasUsableMoves + ret z ; use Struggle ld hl, BattleMonMoves - jr .asm_3e4e2 + jr .got_menu_type -.asm_3e4dd +.ether_elixer_menu ld a, MON_MOVES call GetPartyParamLocation -.asm_3e4e2 +.got_menu_type ld de, wListMoves_MoveIndicesBuffer ld bc, NUM_MOVES call CopyBytes @@ -5638,44 +5639,44 @@ MoveSelectionScreen: ; 3e4bc hlcoord 4, 17 - NUM_MOVES - 1 ld b, 4 ld c, 14 - ld a, [wd235] + ld a, [wMoveSelectionMenuType] cp $2 - jr nz, .asm_3e503 + jr nz, .got_dims hlcoord 4, 17 - NUM_MOVES - 1 - 4 ld b, 4 ld c, 14 -.asm_3e503 +.got_dims call TextBox hlcoord 6, 17 - NUM_MOVES - ld a, [wd235] + ld a, [wMoveSelectionMenuType] cp $2 - jr nz, .asm_3e513 + jr nz, .got_start_coord hlcoord 6, 17 - NUM_MOVES - 4 -.asm_3e513 +.got_start_coord ld a, SCREEN_WIDTH ld [Buffer1], a predef ListMoves ld b, 5 - ld a, [wd235] + ld a, [wMoveSelectionMenuType] cp $2 ld a, 17 - NUM_MOVES - jr nz, .asm_3e52c + jr nz, .got_default_coord ld b, 5 ld a, 17 - NUM_MOVES - 4 -.asm_3e52c +.got_default_coord ld [wcfa1], a ld a, b ld [wcfa2], a - ld a, [wd235] + ld a, [wMoveSelectionMenuType] cp $1 - jr z, .asm_3e53e + jr z, .skip_inc ld a, [CurMoveNum] inc a -.asm_3e53e +.skip_inc ld [MenuSelection2], a ld a, $1 ld [wcfaa], a @@ -5685,19 +5686,19 @@ MoveSelectionScreen: ; 3e4bc ld a, $1 ld [wcfa4], a ld c, $2c - ld a, [wd235] + ld a, [wMoveSelectionMenuType] dec a ld b, $c1 - jr z, .asm_3e569 + jr z, .okay dec a ld b, $c3 - jr z, .asm_3e569 + jr z, .okay ld a, [wLinkMode] and a - jr nz, .asm_3e569 + jr nz, .okay ld b, $c7 -.asm_3e569 +.okay ld a, b ld [wcfa8], a ld a, c @@ -5706,64 +5707,64 @@ MoveSelectionScreen: ; 3e4bc ld [wcfa6], a ld a, $10 ld [wcfa7], a -.asm_3e57a - ld a, [wd235] +.menu_loop + ld a, [wMoveSelectionMenuType] and a - jr z, .asm_3e58e + jr z, .battle_player_moves dec a - jr nz, .asm_3e5a3 + jr nz, .interpret_joypad hlcoord 11, 14 ld de, .string_3e61c call PlaceString - jr .asm_3e5a3 + jr .interpret_joypad -.asm_3e58e +.battle_player_moves call MoveInfoBox - ld a, [wSwitchMon] + ld a, [wMoveSwapBuffer] and a - jr z, .asm_3e5a3 + jr z, .interpret_joypad hlcoord 5, 13 ld bc, SCREEN_WIDTH dec a call AddNTimes ld [hl], "▷" -.asm_3e5a3 +.interpret_joypad ld a, $1 ld [hBGMapMode], a call Function1bd3 - bit 6, a ; D_UP - jp nz, .asm_3e61d - bit 7, a ; D_DOWN - jp nz, .asm_3e62e - bit 2, a ; B_BUTTON - jp nz, .asm_3e643 - bit 1, a ; A_BUTTON + bit D_UP_F, a + jp nz, .pressed_up + bit D_DOWN_F, a + jp nz, .pressed_down + bit SELECT_F, a + jp nz, .pressed_select + bit B_BUTTON_F, a push af xor a - ld [wSwitchMon], a + ld [wMoveSwapBuffer], a ld a, [MenuSelection2] dec a ld [MenuSelection2], a ld b, a - ld a, [wd235] + ld a, [wMoveSelectionMenuType] dec a - jr nz, .asm_3e5d0 + jr nz, .not_enemy_moves_process_b pop af ret -.asm_3e5d0 +.not_enemy_moves_process_b dec a ld a, b ld [CurMoveNum], a - jr nz, .asm_3e5d9 + jr nz, .use_move pop af ret -.asm_3e5d9 +.use_move pop af ret nz @@ -5774,16 +5775,16 @@ MoveSelectionScreen: ; 3e4bc add hl, bc ld a, [hl] and $3f - jr z, .asm_3e610 + jr z, .no_pp_left ld a, [PlayerDisableCount] swap a and $f dec a cp c - jr z, .asm_3e60b + jr z, .move_disabled ld a, [wc6e1] and a - jr nz, .asm_3e606 + jr nz, .skip2 ld a, [MenuSelection2] ld hl, BattleMonMoves ld c, a @@ -5791,19 +5792,19 @@ MoveSelectionScreen: ; 3e4bc add hl, bc ld a, [hl] -.asm_3e606 +.skip2 ld [CurPlayerMove], a xor a ret -.asm_3e60b +.move_disabled ld hl, BattleText_TheMoveIsDisabled - jr .asm_3e613 + jr .place_textbox_start_over -.asm_3e610 +.no_pp_left ld hl, BattleText_TheresNoPPLeftForThisMove -.asm_3e613 +.place_textbox_start_over call StdBattleTextBox call Call_LoadTempTileMapToTileMap jp MoveSelectionScreen @@ -5813,17 +5814,17 @@ MoveSelectionScreen: ; 3e4bc db "@" ; 3e61d -.asm_3e61d +.pressed_up ld a, [MenuSelection2] and a - jp nz, .asm_3e57a + jp nz, .menu_loop ld a, [wd0eb] inc a ld [MenuSelection2], a - jp .asm_3e57a + jp .menu_loop ; 3e62e -.asm_3e62e ; 3e62e +.pressed_down ; 3e62e ld a, [MenuSelection2] ld b, a ld a, [wd0eb] @@ -5831,20 +5832,20 @@ rept 2 inc a endr cp b - jp nz, .asm_3e57a + jp nz, .menu_loop ld a, $1 ld [MenuSelection2], a - jp .asm_3e57a + jp .menu_loop ; 3e643 -.asm_3e643 ; 3e643 - ld a, [wSwitchMon] +.pressed_select ; 3e643 + ld a, [wMoveSwapBuffer] and a - jr z, .asm_3e6bf + jr z, .start_swap ld hl, BattleMonMoves - call .asm_3e6a5 + call .swap_bytes ld hl, BattleMonPP - call .asm_3e6a5 + call .swap_bytes ld hl, PlayerDisableCount ld a, [hl] swap a @@ -5852,20 +5853,20 @@ endr ld b, a ld a, [MenuSelection2] cp b - jr nz, .asm_3e671 + jr nz, .not_swapping_disabled_move ld a, [hl] and $f ld b, a - ld a, [wSwitchMon] + ld a, [wMoveSwapBuffer] swap a add b ld [hl], a - jr .asm_3e682 + jr .swap_moves_in_party_struct -.asm_3e671 - ld a, [wSwitchMon] +.not_swapping_disabled_move + ld a, [wMoveSwapBuffer] cp b - jr nz, .asm_3e682 + jr nz, .swap_moves_in_party_struct ld a, [hl] and $f ld b, a @@ -5874,28 +5875,29 @@ endr add b ld [hl], a -.asm_3e682 +.swap_moves_in_party_struct +; Fixes the COOLTRAINER glitch ld a, [PlayerSubStatus5] bit SUBSTATUS_TRANSFORMED, a - jr nz, .asm_3e69e + jr nz, .transformed ld hl, PartyMon1Moves ld a, [CurBattleMon] call GetPartyLocation push hl - call .asm_3e6a5 + call .swap_bytes pop hl ld bc, MON_PP - MON_MOVES add hl, bc - call .asm_3e6a5 + call .swap_bytes -.asm_3e69e +.transformed xor a - ld [wSwitchMon], a + ld [wMoveSwapBuffer], a jp MoveSelectionScreen -.asm_3e6a5 +.swap_bytes push hl - ld a, [wSwitchMon] + ld a, [wMoveSwapBuffer] dec a ld c, a ld b, 0 @@ -5915,9 +5917,9 @@ endr ld [de], a ret -.asm_3e6bf +.start_swap ld a, [MenuSelection2] - ld [wSwitchMon], a + ld [wMoveSwapBuffer], a jp MoveSelectionScreen ; 3e6c8 @@ -5933,21 +5935,21 @@ MoveInfoBox: ; 3e6c8 ld a, [PlayerDisableCount] and a - jr z, .asm_3e6f4 + jr z, .not_disabled swap a and $f ld b, a ld a, [MenuSelection2] cp b - jr nz, .asm_3e6f4 + jr nz, .not_disabled hlcoord 1, 10 ld de, .Disabled call PlaceString jr .done -.asm_3e6f4 +.not_disabled ld hl, MenuSelection2 dec [hl] call SetPlayerTurn @@ -5974,7 +5976,7 @@ MoveInfoBox: ; 3e6c8 ld a, [hl] and $3f ld [StringBuffer1], a - call Function3e75f + call .PrintPP hlcoord 1, 9 ld de, .Type @@ -6000,7 +6002,7 @@ MoveInfoBox: ; 3e6c8 ; 3e75f -Function3e75f: ; 3e75f +.PrintPP: ; 3e75f hlcoord 5, 11 ld a, [wLinkMode] ; What's the point of this check? cp LINK_MOBILE @@ -6023,13 +6025,13 @@ endr ret ; 3e786 -Function3e786: ; 3e786 +CheckPlayerHasUsableMoves: ; 3e786 ld a, STRUGGLE ld [CurPlayerMove], a ld a, [PlayerDisableCount] and a ld hl, BattleMonPP - jr nz, .asm_3e79f + jr nz, .disabled ld a, [hli] or [hl] @@ -6039,29 +6041,29 @@ Function3e786: ; 3e786 or [hl] and $3f ret nz - jr .asm_3e7b4 + jr .force_struggle -.asm_3e79f +.disabled swap a and $f ld b, a ld d, $5 xor a -.asm_3e7a7 +.loop dec d - jr z, .asm_3e7b2 + jr z, .done ld c, [hl] inc hl dec b - jr z, .asm_3e7a7 + jr z, .loop or c - jr .asm_3e7a7 + jr .loop -.asm_3e7b2 +.done and a ret nz -.asm_3e7b4 +.force_struggle ld hl, BattleText_PkmnHasNoMovesLeft call StdBattleTextBox ld c, 60 @@ -6081,9 +6083,9 @@ ParseEnemyAction: ; 3e7c1 jr z, .not_linked call EmptyBattleTextBox call LoadTileMapToTempTileMap - ld a, [wd0ec] + ld a, [wPlayerAction] and a - call z, Function3e8e4 + call z, LinkBattleSendReceiveAction call Call_LoadTempTileMapToTileMap ld a, [wBattleAction] cp BATTLEACTION_E @@ -6247,8 +6249,8 @@ CheckSubstatus_RechargeChargedRampageBideRollout: ; 3e8d1 ret ; 3e8e4 -Function3e8e4: ; 3e8e4 - callba Function100a09 +LinkBattleSendReceiveAction: ; 3e8e4 + callba _LinkBattleSendReceiveAction ret ; 3e8eb @@ -6569,13 +6571,13 @@ LoadEnemyMon: ; 3e8eb xor a ld [hli], a -; Full HP... +; Full HP.. ld a, [EnemyMonMaxHP] ld [hli], a ld a, [EnemyMonMaxHP + 1] ld [hl], a -; ...unless it's a RoamMon +; ..unless it's a RoamMon ld a, [BattleType] cp a, BATTLETYPE_ROAMING jr nz, .Moves @@ -6678,7 +6680,7 @@ endr call CopyBytes .Finish -; Only the first five base stats are copied... +; Only the first five base stats are copied.. ld hl, BaseStats ld de, EnemyMonBaseStats ld b, BaseSpecialDefense - BaseStats @@ -8759,8 +8761,8 @@ CleanUpBattleRAM: ; 3f6d0 ld [AttackMissed], a ld [TempWildMonSpecies], a ld [OtherTrainerClass], a - ld [wd266], a - ld [wd267], a + ld [wFailedToFlee], a + ld [wNumFleeAttempts], a ld [wForcedSwitch], a ld [wd0d8], a ld [wKeyItemsPocketCursor], a @@ -8768,13 +8770,13 @@ CleanUpBattleRAM: ; 3f6d0 ld [wd0d2], a ld [CurMoveNum], a ld [wBallsPocketCursor], a - ld [wd0d6], a - ld [wd0e4], a - ld [wd0e0], a - ld [wd0df], a - ld [wd0e1], a + ld [wLastPocket], a + ld [wMenuScrollPosition], a + ld [wKeyItemsPocketScrollPosition], a + ld [wItemsPocketScrollPosition], a + ld [wBallsPocketScrollPosition], a ld hl, PlayerSubStatus1 - ld b, $18 + ld b, EnemyFuryCutterCount - PlayerSubStatus1 .loop ld [hli], a dec b diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index 2ebe1f843..506dc9746 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -9028,7 +9028,7 @@ BatonPass_LinkPlayerSwitch: ; 37a67 ld [wd0ec], a call LoadStandardMenuDataHeader - ld hl, Function3e8e4 + ld hl, LinkBattleSendReceiveAction call CallBattleCore call WriteBackup @@ -9044,7 +9044,7 @@ BatonPass_LinkEnemySwitch: ; 37a82 ret z call LoadStandardMenuDataHeader - ld hl, Function3e8e4 + ld hl, LinkBattleSendReceiveAction call CallBattleCore ld a, [OTPartyCount] diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 63d46c646..e9f2a387f 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -176,6 +176,10 @@ const_value = 1 const LINK_COLOSSEUM const LINK_MOBILE +SERIAL_TIMECAPSULE EQU $60 +SERIAL_TRADECENTER EQU $70 +SERIAL_BATTLE EQU $80 + HMENURETURN_SCRIPT EQU %10000000 HMENURETURN_ASM EQU %11111111 diff --git a/engine/billspc.asm b/engine/billspc.asm index 6c228a18e..a4dd02876 100755 --- a/engine/billspc.asm +++ b/engine/billspc.asm @@ -2362,7 +2362,7 @@ _ChangeBox: ; e35aa (38:75aa) ld hl, _ChangeBox_menudataheader call CopyMenuDataHeader xor a - ld [wd0e4], a + ld [wMenuScrollPosition], a hlcoord 0, 4 lb bc, 8, 9 call TextBox diff --git a/engine/decorations.asm b/engine/decorations.asm index 519f88d7c..1fa5cac7e 100755 --- a/engine/decorations.asm +++ b/engine/decorations.asm @@ -399,7 +399,7 @@ PopulateDecoCategoryMenu: ; 2695b ld [hBGMapMode], a call InitScrollingMenu xor a - ld [wd0e4], a + ld [wMenuScrollPosition], a call HandleScrollingMenu ld a, [wcf73] cp 2 diff --git a/engine/evolve.asm b/engine/evolve.asm index 940b033b1..6772db932 100755 --- a/engine/evolve.asm +++ b/engine/evolve.asm @@ -9,7 +9,7 @@ EvolvePokemon: ; 421d8 EvolveAfterBattle: ; 421e6 xor a - ld [wd268], a + ld [wMonTriedToEvolve], a dec a ld [CurPartyMon], a push hl @@ -201,7 +201,7 @@ endr ld a, [TempMonLevel] ld [CurPartyLevel], a ld a, $1 - ld [wd268], a + ld [wMonTriedToEvolve], a push hl @@ -349,7 +349,7 @@ Evolution_ReturnToMap: ; 423ff ld a, [wBattleMode] and a ret nz - ld a, [wd268] + ld a, [wMonTriedToEvolve] and a call nz, RestartMapMusic ret diff --git a/engine/link.asm b/engine/link.asm index 96c5cb376..9d21104f8 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -40,7 +40,7 @@ Function2805d: ; 2805d call Function28499 call Function28434 xor a - ld [wcf56], a + ld [wPlayerLinkAction], a call Function87d ld a, [hLinkPlayerNumber] cp $2 @@ -474,7 +474,7 @@ Function283b2: ; 283b2 ld b, $a .asm_283b7 call DelayFrame - call Function908 + call LinkCommunicationsSignalDataReceived dec b jr nz, .asm_283b7 xor a @@ -1213,7 +1213,7 @@ Function287e3: ; 287e3 call Function28ef8 callba Function16d673 xor a - ld hl, wcf51 + ld hl, wOtherPlayerLinkMode rept 3 ld [hli], a endr @@ -1221,7 +1221,7 @@ endr ld a, $1 ld [MenuSelection2], a inc a - ld [wcf56], a + ld [wPlayerLinkAction], a jp Function2888b ; 28803 @@ -1468,9 +1468,9 @@ Function28926: ; 28926 ld [MenuSelection2], a dec a ld [wd002], a - ld [wcf56], a + ld [wPlayerLinkAction], a callba Function16d6ce - ld a, [wcf51] + ld a, [wOtherPlayerLinkMode] cp $f jp z, Function287e3 ld [wd003], a @@ -1483,7 +1483,7 @@ Function28926: ; 28926 jp nc, Function28b87 xor a ld [wcf57], a - ld [wcf52], a + ld [wOtherPlayerLinkAction], a hlcoord 0, 12 ld b, $4 ld c, $12 @@ -1497,7 +1497,7 @@ Function28926: ; 28926 .asm_28a58 xor a ld [wcf57], a - ld [wcf52], a + ld [wOtherPlayerLinkAction], a ld a, [wd003] ld hl, OTPartySpecies ld c, a @@ -1524,7 +1524,7 @@ Function28926: ; 28926 ld de, String28ece call PlaceString ld a, $1 - ld [wcf56], a + ld [wPlayerLinkAction], a callba Function16d6ce ld c, $64 call DelayFrames @@ -1591,9 +1591,9 @@ Function28ade: ; 28ade ld a, $ec ldcoord_a 9, 17 ld a, $f - ld [wcf56], a + ld [wPlayerLinkAction], a callba Function16d6ce - ld a, [wcf51] + ld a, [wOtherPlayerLinkMode] cp $f jr nz, .asm_28ade @@ -1634,7 +1634,7 @@ String_28b61: ; 28b61 ; 28b68 Function28b68: ; 28b68 - ld a, [wcf51] + ld a, [wOtherPlayerLinkMode] hlcoord 6, 9 ld bc, SCREEN_WIDTH call AddNTimes @@ -1662,7 +1662,7 @@ Function28b77: ; 28b77 Function28b87: ; 28b87 xor a ld [wcf57], a - ld [wcf52], a + ld [wOtherPlayerLinkAction], a hlcoord 0, 12 ld b, $4 ld c, $12 @@ -1731,7 +1731,7 @@ Function28b87: ; 28b87 .asm_28c33 ld a, $1 - ld [wcf56], a + ld [wPlayerLinkAction], a hlcoord 0, 12 ld b, 4 ld c, 18 @@ -1744,9 +1744,9 @@ Function28b87: ; 28b87 .asm_28c54 ld a, $2 - ld [wcf56], a + ld [wPlayerLinkAction], a callba Function16d6ce - ld a, [wcf51] + ld a, [wOtherPlayerLinkMode] dec a jr nz, .asm_28c7b hlcoord 0, 12 @@ -1959,7 +1959,7 @@ Function28b87: ; 28b87 .asm_28e49 ld a, b - ld [wcf56], a + ld [wPlayerLinkAction], a push bc call Function862 pop bc @@ -1969,7 +1969,7 @@ Function28b87: ; 28b87 ld a, b and a jr z, .asm_28e63 - ld a, [wcf52] + ld a, [wOtherPlayerLinkAction] cp b jr nz, .asm_28e49 @@ -2148,11 +2148,11 @@ Function29c67: ; 29c67 ; 29c7b Special_EnterTimeCapsule: ; 29c7b - ld c, $a + ld c, 10 call DelayFrames ld a, $4 call Function29f17 - ld c, $28 + ld c, 40 call DelayFrames xor a ld [hVBlank], a @@ -2210,15 +2210,15 @@ Special_AbortLink: ; 29c92 ; 29ce8 Special_SetBitsForLinkTradeRequest: ; 29ce8 - ld a, $1 - ld [wcf56], a + ld a, LINK_TRADECENTER - 1 + ld [wPlayerLinkAction], a ld [wd265], a ret ; 29cf1 Special_SetBitsForBattleRequest: ; 29cf1 - ld a, $2 - ld [wcf56], a + ld a, LINK_COLOSSEUM - 1 + ld [wPlayerLinkAction], a ld [wd265], a ret ; 29cfa @@ -2232,14 +2232,14 @@ Special_SetBitsForTimeCapsuleRequest: ; 29cfa ld [rSC], a ld a, $80 ld [rSC], a - xor a - ld [wcf56], a + xor a ; LINK_TIMECAPSULE - 1 + ld [wPlayerLinkAction], a ld [wd265], a ret ; 29d11 Special_WaitForLinkedFriend: ; 29d11 - ld a, [wcf56] + ld a, [wPlayerLinkAction] and a jr z, .asm_29d2f ld a, $2 @@ -2295,9 +2295,9 @@ Special_WaitForLinkedFriend: ; 29d11 jr .asm_29d39 .asm_29d79 - call Function908 + call LinkCommunicationsSignalDataReceived call DelayFrame - call Function908 + call LinkCommunicationsSignalDataReceived ld c, $32 call DelayFrames ld a, $1 @@ -2312,7 +2312,7 @@ Special_WaitForLinkedFriend: ; 29d11 Special_CheckLinkTimeout: ; 29d92 ld a, $1 - ld [wcf56], a + ld [wPlayerLinkAction], a ld hl, wcf5b ld a, $3 ld [hli], a @@ -2334,7 +2334,7 @@ Special_CheckLinkTimeout: ; 29d92 Function29dba: ; 29dba ld a, $5 - ld [wcf56], a + ld [wPlayerLinkAction], a ld hl, wcf5b ld a, $3 ld [hli], a @@ -2355,17 +2355,17 @@ Function29dba: ; 29dba ld a, b or c jr nz, .asm_29de0 - ld a, [wcf51] + ld a, [wOtherPlayerLinkMode] cp $5 jr nz, .asm_29e03 ld a, $6 - ld [wcf56], a + ld [wPlayerLinkAction], a ld hl, wcf5b ld a, $1 ld [hli], a ld [hl], $32 call Function29e0c - ld a, [wcf51] + ld a, [wOtherPlayerLinkMode] cp $6 jr z, .asm_29e08 @@ -2426,7 +2426,7 @@ Function29e47: ; 29e47 ld b, $a .asm_29e49 call DelayFrame - call Function908 + call LinkCommunicationsSignalDataReceived dec b jr nz, .asm_29e49 ret @@ -2467,14 +2467,14 @@ Special_CheckBothSelectedSameRoom: ; 29e82 ld a, [wd265] call Function29f17 push af - call Function908 + call LinkCommunicationsSignalDataReceived call DelayFrame - call Function908 + call LinkCommunicationsSignalDataReceived pop af ld b, a ld a, [wd265] cp b - jr nz, .asm_29eaa + jr nz, .fail ld a, [wd265] inc a ld [wLinkMode], a @@ -2484,7 +2484,7 @@ Special_CheckBothSelectedSameRoom: ; 29e82 ld [ScriptVar], a ret -.asm_29eaa +.fail xor a ld [ScriptVar], a ret @@ -2532,14 +2532,14 @@ Special_CloseLink: ; 29eee ; 29efa Special_FailedLinkToPast: ; 29efa - ld c, $28 + ld c, 40 call DelayFrames ld a, $e jp Function29f17 ; 29f04 Function29f04: ; 29f04 - ld c, $3 + ld c, 3 call DelayFrames ld a, -1 ld [hLinkPlayerNumber], a @@ -2553,26 +2553,26 @@ Function29f04: ; 29f04 Function29f17: ; 29f17 add $d0 - ld [wcf56], a + ld [wPlayerLinkAction], a ld [wcf57], a ld a, $2 ld [hVBlank], a call DelayFrame call DelayFrame -.asm_29f29 +.receive_loop call Function83b - ld a, [wcf51] + ld a, [wOtherPlayerLinkMode] ld b, a and $f0 cp $d0 - jr z, .asm_29f40 - ld a, [wcf52] + jr z, .done + ld a, [wOtherPlayerLinkAction] ld b, a and $f0 cp $d0 - jr nz, .asm_29f29 + jr nz, .receive_loop -.asm_29f40 +.done xor a ld [hVBlank], a ld a, b diff --git a/engine/mail.asm b/engine/mail.asm index 7aa6b30c1..82d27d4be 100755 --- a/engine/mail.asm +++ b/engine/mail.asm @@ -398,9 +398,9 @@ MailboxPC: ; 0x44806 ld a, [wCurMessageIndex] ld [wMenuCursorBuffer], a ld a, [OBPals + 8 * 6] - ld [wd0e4], a + ld [wMenuScrollPosition], a call HandleScrollingMenu - ld a, [wd0e4] + ld a, [wMenuScrollPosition] ld [OBPals + 8 * 6], a ld a, [MenuSelection2] ld [wCurMessageIndex], a diff --git a/engine/mart.asm b/engine/mart.asm index 2aa410760..87c805c25 100755 --- a/engine/mart.asm +++ b/engine/mart.asm @@ -477,9 +477,9 @@ BuyMenuLoop: ; 15cef ld a, [wd045] ld [wMenuCursorBuffer], a ld a, [wd045 + 1] - ld [wd0e4], a + ld [wMenuScrollPosition], a call HandleScrollingMenu - ld a, [wd0e4] + ld a, [wMenuScrollPosition] ld [wd045 + 1], a ld a, [MenuSelection2] ld [wd045], a @@ -658,7 +658,7 @@ MenuDataHeader_Buy: ; 0x15e18 dbw 0, CurMart dba PlaceMenuItemName dba .PrintBCDPrices - dba Function244c3 + dba UpdateItemDescription ; 15e30 .PrintBCDPrices: ; 15e30 diff --git a/engine/pack.asm b/engine/pack.asm index e9b52606c..0b7d35ece 100644 --- a/engine/pack.asm +++ b/engine/pack.asm @@ -1,7 +1,7 @@ Pack: ; 10000 ld hl, Options - set 4, [hl] + set NO_TEXT_SCROLL, [hl] call Function1068a .loop call JoyTextDelay @@ -14,9 +14,9 @@ Pack: ; 10000 .done ld a, [wcf65] - ld [wd0d6], a + ld [wLastPocket], a ld hl, Options - res 4, [hl] + res NO_TEXT_SCROLL, [hl] ret ; 10026 @@ -65,11 +65,11 @@ Function10067: ; 10067 (4:4067) call CopyMenuDataHeader ld a, [wItemsPocketCursor] ld [wMenuCursorBuffer], a - ld a, [wd0df] - ld [wd0e4], a + ld a, [wItemsPocketScrollPosition] + ld [wMenuScrollPosition], a call HandleScrollingMenu - ld a, [wd0e4] - ld [wd0df], a + ld a, [wMenuScrollPosition] + ld [wItemsPocketScrollPosition], a ld a, [MenuSelection2] ld [wItemsPocketCursor], a ld b, $7 @@ -93,11 +93,11 @@ Function100a6: ; 100a6 (4:40a6) call CopyMenuDataHeader ld a, [wKeyItemsPocketCursor] ld [wMenuCursorBuffer], a - ld a, [wd0e0] - ld [wd0e4], a + ld a, [wKeyItemsPocketScrollPosition] + ld [wMenuScrollPosition], a call HandleScrollingMenu - ld a, [wd0e4] - ld [wd0e0], a + ld a, [wMenuScrollPosition] + ld [wKeyItemsPocketScrollPosition], a ld a, [MenuSelection2] ld [wKeyItemsPocketCursor], a ld b, $3 @@ -164,7 +164,7 @@ MenuData2_0x1012c: ; 0x1012c Jumptable_10137: ; 10137 dw Function10159 - dw Function10492_ret + dw QuitItemSubmenu ; 1013b MenuDataHeader_0x1013b: ; 0x1013b @@ -185,8 +185,8 @@ MenuData2_0x10143: ; 0x10143 Jumptable_10153: ; 10153 dw Function10159 - dw Function103fd - dw Function10492_ret + dw GiveItem + dw QuitItemSubmenu ; 10159 Function10159: ; 10159 @@ -223,11 +223,11 @@ Function10198: ; 10198 (4:4198) call CopyMenuDataHeader ld a, [wBallsPocketCursor] ld [wMenuCursorBuffer], a - ld a, [wd0e1] - ld [wd0e4], a + ld a, [wBallsPocketScrollPosition] + ld [wMenuScrollPosition], a call HandleScrollingMenu - ld a, [wd0e4] - ld [wd0e1], a + ld a, [wMenuScrollPosition] + ld [wBallsPocketScrollPosition], a ld a, [MenuSelection2] ld [wBallsPocketCursor], a ld b, $1 @@ -267,32 +267,32 @@ Function101c5: ; 101c5 (4:41c5) jr .tossable_unselectable .usable - ld hl, MenuDataHeader_0x10249 + ld hl, MenuDataHeader_UsableKeyItem ld de, Jumptable_1026a jr .build_menu .selectable_usable - ld hl, MenuDataHeader_0x10274 + ld hl, MenuDataHeader_UsableItem ld de, Jumptable_10291 jr .build_menu .tossable_selectable - ld hl, MenuDataHeader_0x10299 + ld hl, MenuDataHeader_UnusableItem ld de, Jumptable_102ac jr .build_menu .tossable_unselectable - ld hl, MenuDataHeader_0x102b0 + ld hl, MenuDataHeader_UnusableKeyItem ld de, Jumptable_102c7 jr .build_menu .unusable - ld hl, MenuDataHeader_0x102cd + ld hl, MenuDataHeader_HoldableKeyItem ld de, Jumptable_102ea jr .build_menu .selectable_unusable - ld hl, MenuDataHeader_0x102f2 + ld hl, MenuDataHeader_HoldableItem ld de, Jumptable_1030b .build_menu push de @@ -307,15 +307,15 @@ Function101c5: ; 101c5 (4:41c5) jp [hl] ; 10249 (4:4249) -MenuDataHeader_0x10249: ; 0x10249 +MenuDataHeader_UsableKeyItem: ; 0x10249 db $40 ; flags db 01, 13 ; start coords db 11, 19 ; end coords - dw MenuData2_0x10251 + dw .MenuData2 db 1 ; default option ; 0x10251 -MenuData2_0x10251: ; 0x10251 +.MenuData2: ; 0x10251 db $c0 ; flags db 5 ; items db "USE@" @@ -326,22 +326,22 @@ MenuData2_0x10251: ; 0x10251 ; 0x1026a Jumptable_1026a: ; 1026a - dw Function10311 - dw Function103fd - dw Function10364 - dw Function103c2 - dw Function10492_ret + dw UseItem + dw GiveItem + dw TossMenu + dw RegisterItem + dw QuitItemSubmenu ; 10274 -MenuDataHeader_0x10274: ; 0x10274 +MenuDataHeader_UsableItem: ; 0x10274 db $40 ; flags db 03, 13 ; start coords db 11, 19 ; end coords - dw MenuData2_0x1027c + dw .MenuData2 db 1 ; default option ; 0x1027c -MenuData2_0x1027c: ; 0x1027c +.MenuData2: ; 0x1027c db $c0 ; flags db 4 ; items db "USE@" @@ -351,21 +351,21 @@ MenuData2_0x1027c: ; 0x1027c ; 0x10291 Jumptable_10291: ; 10291 - dw Function10311 - dw Function103fd - dw Function10364 - dw Function10492_ret + dw UseItem + dw GiveItem + dw TossMenu + dw QuitItemSubmenu ; 10299 -MenuDataHeader_0x10299: ; 0x10299 +MenuDataHeader_UnusableItem: ; 0x10299 db %01000000 ; flags db 07, 13 ; start coords db 11, 19 ; end coords - dw MenuData2_0x102a1 + dw .MenuData2 db 1 ; default option ; 0x102a1 -MenuData2_0x102a1: ; 0x102a1 +.MenuData2: ; 0x102a1 db $c0 ; flags db 2 ; items db "USE@" @@ -373,19 +373,19 @@ MenuData2_0x102a1: ; 0x102a1 ; 0x102ac Jumptable_102ac: ; 102ac - dw Function10311 - dw Function10492_ret + dw UseItem + dw QuitItemSubmenu ; 102b0 -MenuDataHeader_0x102b0: ; 0x102b0 +MenuDataHeader_UnusableKeyItem: ; 0x102b0 db %01000000 ; flags db 05, 13 ; start coords db 11, 19 ; end coords - dw MenuData2_0x102b8 + dw .MenuData2 db 1 ; default option ; 0x102b8 -MenuData2_0x102b8: ; 0x102b8 +.MenuData2: ; 0x102b8 db $c0 ; flags db 3 ; items db "USE@" @@ -394,20 +394,20 @@ MenuData2_0x102b8: ; 0x102b8 ; 0x102c7 Jumptable_102c7: ; 102c7 - dw Function10311 - dw Function103c2 - dw Function10492_ret + dw UseItem + dw RegisterItem + dw QuitItemSubmenu ; 102cd -MenuDataHeader_0x102cd: ; 0x102cd +MenuDataHeader_HoldableKeyItem: ; 0x102cd db $40 ; flags db 03, 13 ; start coords db 11, 19 ; end coords - dw MenuData2_0x102d5 + dw .MenuData2 db 1 ; default option ; 0x102d5 -MenuData2_0x102d5: ; 0x102d5 +.MenuData2: ; 0x102d5 db $c0 ; flags db 4 ; items db "GIVE@" @@ -417,21 +417,21 @@ MenuData2_0x102d5: ; 0x102d5 ; 0x102ea Jumptable_102ea: ; 102ea - dw Function103fd - dw Function10364 - dw Function103c2 - dw Function10492_ret + dw GiveItem + dw TossMenu + dw RegisterItem + dw QuitItemSubmenu ; 102f2 -MenuDataHeader_0x102f2: ; 0x102f2 +MenuDataHeader_HoldableItem: ; 0x102f2 db $40 ; flags db 05, 13 ; start coords db 11, 19 ; end coords - dw MenuData2_0x102fa + dw .MenuData2 db 1 ; default option ; 0x102fa -MenuData2_0x102fa: ; 0x102fa +.MenuData2: ; 0x102fa db $c0 ; flags db 3 ; items db "GIVE@" @@ -440,12 +440,12 @@ MenuData2_0x102fa: ; 0x102fa ; 0x1030b Jumptable_1030b: ; 1030b - dw Function103fd - dw Function10364 - dw Function10492_ret + dw GiveItem + dw TossMenu + dw QuitItemSubmenu ; 10311 -Function10311: ; 10311 +UseItem: ; 10311 callba CheckItemMenu ld a, [wItemAttributeParamBuffer] ld hl, .jumptable @@ -464,7 +464,7 @@ Function10311: ; 10311 ; 1035c .Oak: ; 1032d (4:432d) - ld hl, UnknownText_0x10af3 + ld hl, Text_ThisIsntTheTime call Function10889 ret @@ -498,30 +498,30 @@ Function10311: ; 10311 ret ; 10364 (4:4364) -Function10364: ; 10364 - ld hl, UnknownText_0x10ae4 +TossMenu: ; 10364 + ld hl, Text_ThrowAwayHowMany call Function10889 callba Function24fbf push af call ExitMenu pop af - jr c, .asm_1039c - call Function10a1d - ld hl, UnknownText_0x10ae9 + jr c, .finish + call Pack_GetItemName + ld hl, Text_ConfirmThrowAway call MenuTextBox call YesNoBox push af call ExitMenu pop af - jr c, .asm_1039c + jr c, .finish ld hl, NumItems - ld a, [wd107] + ld a, [ItemCountBuffer] call TossItem - call Function10a1d - ld hl, UnknownText_0x10aee + call Pack_GetItemName + ld hl, Text_ThrewAway call Function10889 -.asm_1039c +.finish ret ; 1039d @@ -538,23 +538,23 @@ Function1039d: ; 1039d .asm_103aa xor a ld [wBallsPocketCursor], a - ld [wd0e1], a + ld [wBallsPocketScrollPosition], a ret .asm_103b2 xor a ld [wItemsPocketCursor], a - ld [wd0df], a + ld [wItemsPocketScrollPosition], a ret .asm_103ba xor a ld [wKeyItemsPocketCursor], a - ld [wd0e0], a + ld [wKeyItemsPocketScrollPosition], a ret ; 103c2 -Function103c2: ; 103c2 +RegisterItem: ; 103c2 callba CheckSelectableItem ld a, [wItemAttributeParamBuffer] and a @@ -564,27 +564,27 @@ Function103c2: ; 103c2 rrca and $c0 ld b, a - ld a, [wd107] + ld a, [ItemCountBuffer] inc a and $3f or b ld [WhichRegisteredItem], a ld a, [CurItem] ld [RegisteredItem], a - call Function10a1d + call Pack_GetItemName ld de, SFX_FULL_HEAL call WaitPlaySFX - ld hl, UnknownText_0x10afd + ld hl, Text_RegisteredItem call Function10889 ret .asm_103f6 - ld hl, UnknownText_0x10b02 + ld hl, Text_CantRegister call Function10889 ret ; 103fd -Function103fd: ; 103fd +GiveItem: ; 103fd ld a, [PartyCount] and a jp z, Function10486 @@ -652,7 +652,7 @@ TextJump_AnEGGCantHoldAnItem: ; 0x1048d db "@" ; 0x10492 -Function10492_ret: ; 10492 +QuitItemSubmenu: ; 10492 ret ; 10493 @@ -661,18 +661,18 @@ BattlePack: ; 10493 ld hl, Options set 4, [hl] call Function1068a -.asm_1049b +.loop call JoyTextDelay ld a, [wJumptableIndex] bit 7, a - jr nz, .asm_104ad + jr nz, .end call Function104b9 call DelayFrame - jr .asm_1049b + jr .loop -.asm_104ad +.end ld a, [wcf65] - ld [wd0d6], a + ld [wLastPocket], a ld hl, Options res 4, [hl] ret @@ -723,11 +723,11 @@ Function104fa: ; 104fa (4:44fa) call CopyMenuDataHeader ld a, [wItemsPocketCursor] ld [wMenuCursorBuffer], a - ld a, [wd0df] - ld [wd0e4], a + ld a, [wItemsPocketScrollPosition] + ld [wMenuScrollPosition], a call HandleScrollingMenu - ld a, [wd0e4] - ld [wd0df], a + ld a, [wMenuScrollPosition] + ld [wItemsPocketScrollPosition], a ld a, [MenuSelection2] ld [wItemsPocketCursor], a ld b, $7 @@ -751,11 +751,11 @@ Function10539: ; 10539 (4:4539) call CopyMenuDataHeader ld a, [wKeyItemsPocketCursor] ld [wMenuCursorBuffer], a - ld a, [wd0e0] - ld [wd0e4], a + ld a, [wKeyItemsPocketScrollPosition] + ld [wMenuScrollPosition], a call HandleScrollingMenu - ld a, [wd0e4] - ld [wd0e0], a + ld a, [wMenuScrollPosition] + ld [wKeyItemsPocketScrollPosition], a ld a, [MenuSelection2] ld [wKeyItemsPocketCursor], a ld b, $3 @@ -773,7 +773,7 @@ Function10566: ; 10566 (4:4566) xor a ld [hBGMapMode], a call WaitBGMap_DrawPackGFX - ld hl, UnknownText_0x10b0c + ld hl, Text_PackEmptyString call Function10889 call Function10866 ret @@ -802,11 +802,11 @@ Function105a6: ; 105a6 (4:45a6) call CopyMenuDataHeader ld a, [wBallsPocketCursor] ld [wMenuCursorBuffer], a - ld a, [wd0e1] - ld [wd0e4], a + ld a, [wBallsPocketScrollPosition] + ld [wMenuScrollPosition], a call HandleScrollingMenu - ld a, [wd0e4] - ld [wd0e1], a + ld a, [wMenuScrollPosition] + ld [wBallsPocketScrollPosition], a ld a, [MenuSelection2] ld [wBallsPocketCursor], a ld b, $1 @@ -898,7 +898,7 @@ Function105dc: ; 105dc (4:45dc) .Oak: ; 10645 (4:4645) - ld hl, UnknownText_0x10af3 + ld hl, Text_ThisIsntTheTime call Function10889 ret @@ -951,7 +951,7 @@ Function105dc: ; 105dc (4:45dc) Function1068a: ; 1068a xor a ld [wJumptableIndex], a - ld a, [wd0d6] + ld a, [wLastPocket] and $3 ld [wcf65], a inc a @@ -1008,33 +1008,33 @@ Jumptable_106d1: ; 106d1 (4:46d1) call CopyMenuDataHeader ld a, [wItemsPocketCursor] ld [wMenuCursorBuffer], a - ld a, [wd0df] - ld [wd0e4], a + ld a, [wItemsPocketScrollPosition] + ld [wMenuScrollPosition], a call HandleScrollingMenu - ld a, [wd0e4] - ld [wd0df], a + ld a, [wMenuScrollPosition] + ld [wItemsPocketScrollPosition], a ld a, [MenuSelection2] ld [wItemsPocketCursor], a ret .KeyItemsPocket: ; 106ff (4:46ff) - ld a, $2 + ld a, 2 call InitPocket ld hl, MenuDataHeader_0x10a97 call CopyMenuDataHeader ld a, [wKeyItemsPocketCursor] ld [wMenuCursorBuffer], a - ld a, [wd0e0] - ld [wd0e4], a + ld a, [wKeyItemsPocketScrollPosition] + ld [wMenuScrollPosition], a call HandleScrollingMenu - ld a, [wd0e4] - ld [wd0e0], a + ld a, [wMenuScrollPosition] + ld [wKeyItemsPocketScrollPosition], a ld a, [MenuSelection2] ld [wKeyItemsPocketCursor], a ret .TMHMPocket: ; 10726 (4:4726) - ld a, $3 + ld a, 3 call InitPocket call WaitBGMap_DrawPackGFX callba Function2c76f @@ -1043,17 +1043,17 @@ Jumptable_106d1: ; 106d1 (4:46d1) ret .BallsPocket: ; 1073b (4:473b) - ld a, $1 + ld a, 1 call InitPocket ld hl, MenuDataHeader_0x10ac7 call CopyMenuDataHeader ld a, [wBallsPocketCursor] ld [wMenuCursorBuffer], a - ld a, [wd0e1] - ld [wd0e4], a + ld a, [wBallsPocketScrollPosition] + ld [wMenuScrollPosition], a call HandleScrollingMenu - ld a, [wd0e4] - ld [wd0e1], a + ld a, [wMenuScrollPosition] + ld [wBallsPocketScrollPosition], a ld a, [MenuSelection2] ld [wBallsPocketCursor], a ret @@ -1120,17 +1120,17 @@ Function1076f: ; 1076f ret ; 107bb -Function107bb: ; 107bb +TutorialPack: ; 107bb call Function106a5 ld a, [InputType] or a - jr z, .asm_107ca + jr z, .loop callba _DudeAutoInput_RightA -.asm_107ca +.loop call Function107d7 call Function1076f - jr c, .asm_107ca + jr c, .loop xor a ld [wcf66], a ret @@ -1138,13 +1138,13 @@ Function107bb: ; 107bb Function107d7: ; 107d7 ld a, [wJumptableIndex] - ld hl, Jumptable_107e1 + ld hl, .jumptable call Function1086b jp [hl] ; 107e1 -Jumptable_107e1: ; 107e1 (4:47e1) +.jumptable: ; 107e1 (4:47e1) dw Function107e9 dw Function1083b dw Function10807 @@ -1161,22 +1161,22 @@ MenuDataHeader_0x107ef: ; 0x107ef db $40 ; flags db 01, 07 ; start coords db 11, 19 ; end coords - dw MenuData2_0x107f7 + dw .MenuData2 db 1 ; default option ; 0x107f7 -MenuData2_0x107f7: ; 0x107f7 +.MenuData2: ; 0x107f7 db $ae ; flags db 5, 8 ; rows, columns db 2 ; horizontal spacing dbw 0, OTPartyMons dba PlaceMenuItemName dba PlaceMenuItemQuantity - dba Function244c3 + dba UpdateItemDescription ; 10807 Function10807: ; 10807 (4:4807) - ld a, $2 + ld a, 2 ld hl, MenuDataHeader_0x1080e jr Function1085a ; 1080e (4:480e) @@ -1185,22 +1185,22 @@ MenuDataHeader_0x1080e: ; 0x1080e db $40 ; flags db 01, 07 ; start coords db 11, 19 ; end coords - dw MenuData2_0x10816 + dw .MenuData2 db 1 ; default option ; 0x10816 -MenuData2_0x10816: ; 0x10816 +.MenuData2: ; 0x10816 db $ae ; flags db 5, 8 ; rows, columns db 1 ; horizontal spacing dbw 0, OTPartyMon1Exp + 2 dba PlaceMenuItemName dba PlaceMenuItemQuantity - dba Function244c3 + dba UpdateItemDescription ; 10826 Function10826: ; 10826 (4:4826) - ld a, $3 + ld a, 3 call InitPocket call WaitBGMap_DrawPackGFX callba Function2c76f @@ -1209,7 +1209,7 @@ Function10826: ; 10826 (4:4826) ret Function1083b: ; 1083b (4:483b) - ld a, $1 + ld a, 1 ld hl, MenuDataHeader_0x10842 jr Function1085a ; 10842 (4:4842) @@ -1218,18 +1218,18 @@ MenuDataHeader_0x10842: ; 0x10842 db $40 ; flags db 01, 07 ; start coords db 11, 19 ; end coords - dw MenuData2_0x1084a + dw .MenuData2 db 1 ; default option ; 0x1084a -MenuData2_0x1084a: ; 0x1084a +.MenuData2: ; 0x1084a db $ae ; flags db 5, 8 ; rows, columns db 2 ; horizontal spacing dbw 0, OTPartyMon1CaughtGender dba PlaceMenuItemName dba PlaceMenuItemQuantity - dba Function244c3 + dba UpdateItemDescription ; 1085a Function1085a: ; 1085a (4:485a) @@ -1374,7 +1374,7 @@ Function108d4: ; 108d4 (4:48d4) ret .asm_10923 callba Function2490c - ld hl, UnknownText_0x10b07 + ld hl, Text_MoveItemWhere call Function10889 scf ret @@ -1410,13 +1410,19 @@ Function10955: ; 10955 ld bc, $60 tiles ld a, BANK(PackMenuGFX) call FarCopyBytes + +; Background (blue if male, pink if female) hlcoord 0, 1 ld bc, 11 * SCREEN_WIDTH ld a, $24 call ByteFill + +; This is where the items themselves will be listed. hlcoord 5, 1 lb bc, 11, 15 call ClearBox + +; ◀▶ POCKET ▼▲ ITEMS hlcoord 0, 0 ld a, $28 ld c, SCREEN_WIDTH @@ -1425,31 +1431,34 @@ Function10955: ; 10955 inc a dec c jr nz, .loop + call DrawPocketName - call Function109a5 - hlcoord 0, 12 - lb bc, 4, 18 + call PlacePackGFX + +; Place the textbox for displaying the item description + hlcoord 0, SCREEN_HEIGHT - 4 - 2 + lb bc, 4, SCREEN_WIDTH - 2 call TextBox call EnableLCD call DrawPackGFX ret ; 109a5 -Function109a5: ; 109a5 +PlacePackGFX: ; 109a5 hlcoord 0, 3 ld a, $50 - ld de, 15 + ld de, SCREEN_WIDTH - 5 ld b, 3 -.asm_109af +.row ld c, 5 -.asm_109b1 +.column ld [hli], a inc a dec c - jr nz, .asm_109b1 + jr nz, .column add hl, de dec b - jr nz, .asm_109af + jr nz, .row ret ; 109bb @@ -1487,21 +1496,33 @@ DrawPocketName: ; 109bb ; 109e1 .tilemap: ; 109e1 - db $00, $04, $04, $04, $01, $06, $07, $08, $09, $0a, $02, $05, $05, $05, $03 - db $00, $04, $04, $04, $01, $15, $16, $17, $18, $19, $02, $05, $05, $05, $03 - db $00, $04, $04, $04, $01, $0b, $0c, $0d, $0e, $0f, $02, $05, $05, $05, $03 - db $00, $04, $04, $04, $01, $10, $11, $12, $13, $14, $02, $05, $05, $05, $03 + db $00, $04, $04, $04, $01 ; top border + db $06, $07, $08, $09, $0a ; Items + db $02, $05, $05, $05, $03 ; bottom border + + db $00, $04, $04, $04, $01 ; top border + db $15, $16, $17, $18, $19 ; Balls + db $02, $05, $05, $05, $03 ; bottom border + + db $00, $04, $04, $04, $01 ; top border + db $0b, $0c, $0d, $0e, $0f ; Key Items + db $02, $05, $05, $05, $03 ; bottom border + + db $00, $04, $04, $04, $01 ; top border + db $10, $11, $12, $13, $14 ; TM/HM + db $02, $05, $05, $05, $03 ; bottom border ; 10a1d -Function10a1d: ; 10a1d +Pack_GetItemName: ; 10a1d ld a, [CurItem] - ld [wd265], a + ld [wNamedObjectIndexBuffer], a call GetItemName call CopyName1 ret ; 10a2a -Function10a2a: ; 10a2a +Pack_ClearTilemap: ; 10a2a +; unreferenced hlcoord 0, 0 ld bc, SCREEN_WIDTH * SCREEN_HEIGHT ld a, " " @@ -1540,7 +1561,7 @@ MenuData2_0x10a57: ; 0x10a57 dbw 0, NumItems dba PlaceMenuItemName dba PlaceMenuItemQuantity - dba Function244c3 + dba UpdateItemDescription ; 10a67 MenuDataHeader_0x10a67: ; 0x10a67 @@ -1558,7 +1579,7 @@ MenuData2_0x10a6f: ; 0x10a6f dbw 0, NumItems dba PlaceMenuItemName dba PlaceMenuItemQuantity - dba Function244c3 + dba UpdateItemDescription ; 10a7f MenuDataHeader_0x10a7f: ; 0x10a7f @@ -1576,7 +1597,7 @@ MenuData2_0x10a87: ; 0x10a87 dbw 0, NumKeyItems dba PlaceMenuItemName dba PlaceMenuItemQuantity - dba Function244c3 + dba UpdateItemDescription ; 10a97 MenuDataHeader_0x10a97: ; 0x10a97 @@ -1594,7 +1615,7 @@ MenuData2_0x10a9f: ; 0x10a9f dbw 0, NumKeyItems dba PlaceMenuItemName dba PlaceMenuItemQuantity - dba Function244c3 + dba UpdateItemDescription ; 10aaf MenuDataHeader_0x10aaf: ; 0x10aaf @@ -1612,7 +1633,7 @@ MenuData2_0x10ab7: ; 0x10ab7 dbw 0, NumBalls dba PlaceMenuItemName dba PlaceMenuItemQuantity - dba Function244c3 + dba UpdateItemDescription ; 10ac7 MenuDataHeader_0x10ac7: ; 0x10ac7 @@ -1630,34 +1651,34 @@ MenuData2_0x10acf: ; 0x10acf dbw 0, NumBalls dba PlaceMenuItemName dba PlaceMenuItemQuantity - dba Function244c3 + dba UpdateItemDescription ; 10adf -UnknownText_0x10adf: ; 0x10adf +Text_PackNoItems: ; 0x10adf ; No items. text_jump UnknownText_0x1c0b9a db "@" ; 0x10ae4 -UnknownText_0x10ae4: ; 0x10ae4 +Text_ThrowAwayHowMany: ; 0x10ae4 ; Throw away how many? text_jump UnknownText_0x1c0ba5 db "@" ; 0x10ae9 -UnknownText_0x10ae9: ; 0x10ae9 +Text_ConfirmThrowAway: ; 0x10ae9 ; Throw away @ @ (S)? text_jump UnknownText_0x1c0bbb db "@" ; 0x10aee -UnknownText_0x10aee: ; 0x10aee +Text_ThrewAway: ; 0x10aee ; Threw away @ (S). text_jump UnknownText_0x1c0bd8 db "@" ; 0x10af3 -UnknownText_0x10af3: ; 0x10af3 +Text_ThisIsntTheTime: ; 0x10af3 ; OAK: ! This isn't the time to use that! text_jump UnknownText_0x1c0bee db "@" @@ -1669,25 +1690,25 @@ TextJump_YouDontHaveAPkmn: ; 0x10af8 db "@" ; 0x10afd -UnknownText_0x10afd: ; 0x10afd +Text_RegisteredItem: ; 0x10afd ; Registered the @ . text_jump UnknownText_0x1c0c2e db "@" ; 0x10b02 -UnknownText_0x10b02: ; 0x10b02 +Text_CantRegister: ; 0x10b02 ; You can't register that item. text_jump UnknownText_0x1c0c45 db "@" ; 0x10b07 -UnknownText_0x10b07: ; 0x10b07 +Text_MoveItemWhere: ; 0x10b07 ; Where should this be moved to? text_jump UnknownText_0x1c0c63 db "@" ; 0x10b0c -UnknownText_0x10b0c: ; 0x10b0c +Text_PackEmptyString: ; 0x10b0c ; text_jump UnknownText_0x1c0c83 db "@" diff --git a/engine/pokecenter_pc.asm b/engine/pokecenter_pc.asm index 4d31109ac..4d296aab2 100755 --- a/engine/pokecenter_pc.asm +++ b/engine/pokecenter_pc.asm @@ -590,9 +590,9 @@ Function15985: ; 0x15985 ld a, [wd0d7] ld [wMenuCursorBuffer], a ld a, [wd0dd] - ld [wd0e4], a + ld [wMenuScrollPosition], a call HandleScrollingMenu - ld a, [wd0e4] + ld a, [wMenuScrollPosition] ld [wd0dd], a ld a, [MenuSelection2] ld [wd0d7], a @@ -659,7 +659,7 @@ MenuData15a08: ; 0x15a08 dbw 0, PCItems dba PlaceMenuItemName dba PlaceMenuItemQuantity - dba Function244c3 + dba UpdateItemDescription PC_DisplayText: ; 15a20 call MenuTextBox diff --git a/event/buena.asm b/event/buena.asm index ca3fad630..76a378549 100644 --- a/event/buena.asm +++ b/event/buena.asm @@ -66,7 +66,7 @@ SpecialBuenasPassword: ; 8af6b SpecialBuenaPrize: ; 8afd4 xor a - ld [wd0e4], a + ld [wMenuScrollPosition], a ld a, $1 ld [MenuSelection], a call Function8b0d6 diff --git a/event/elevator.asm b/event/elevator.asm index 4e522c276..0aa5c1f05 100755 --- a/event/elevator.asm +++ b/event/elevator.asm @@ -130,7 +130,7 @@ Function134dd: ; 134dd call InitScrollingMenu call UpdateSprites xor a - ld [wd0e4], a + ld [wMenuScrollPosition], a call HandleScrollingMenu call WriteBackup ld a, [wcf73] diff --git a/event/kurt.asm b/event/kurt.asm index dcbff8bd4..272a96ca8 100644 --- a/event/kurt.asm +++ b/event/kurt.asm @@ -26,7 +26,7 @@ Special_SelectApricornForKurt: ; 88018 call LoadStandardMenuDataHeader ld c, $1 xor a - ld [wd0e4], a + ld [wMenuScrollPosition], a ld [wKurtApricornQuantity], a .loop push bc diff --git a/event/poke_seer.asm b/event/poke_seer.asm index b5364e67f..5f1a5d1ab 100644 --- a/event/poke_seer.asm +++ b/event/poke_seer.asm @@ -1,12 +1,19 @@ -SEER_INTRO EQU 0 -SEER_CANT_TELL EQU 1 -SEER_MET_AT EQU 2 -SEER_TIME_LEVEL EQU 3 -SEER_TRADED EQU 4 -SEER_CANCEL EQU 5 -SEER_EGG EQU 6 -SEER_LEVEL_ONLY EQU 7 + const_def + const SEER_INTRO + const SEER_CANT_TELL + const SEER_MET_AT + const SEER_TIME_LEVEL + const SEER_TRADED + const SEER_CANCEL + const SEER_EGG + const SEER_LEVEL_ONLY + const_def + const SEERACTION_MET + const SEERACTION_TRADED + const SEERACTION_CANT_TELL_1 + const SEERACTION_CANT_TELL_2 + const SEERACTION_LEVEL_ONLY SpecialPokeSeer: ; 4f0bc ld a, SEER_INTRO @@ -44,7 +51,7 @@ SpecialPokeSeer: ; 4f0bc SeerAction: ; 4f0ee - ld a, [wd002] + ld a, [wSeerAction] ld hl, SeerActions rst JumpTable ret @@ -100,29 +107,30 @@ ReadCaughtData: ; 4f134 ld a, MON_CAUGHTDATA call GetPartyParamLocation ld a, [hli] - ld [wd03b], a + ld [wSeerCaughtData], a ld a, [hld] - ld [wd03b + 1], a + ld [wSeerCaughtGender], a or [hl] - jr z, .asm_4f170 + jr z, .error - ld a, 1 - ld [wd002], a + ld a, SEERACTION_TRADED + ld [wSeerAction], a ld a, MON_ID call GetPartyParamLocation ld a, [PlayerID] cp [hl] - jr nz, .asm_4f15f + jr nz, .traded inc hl ld a, [PlayerID + 1] - jr nz, .asm_4f15f + ; cp [hl] + jr nz, .traded - ld a, 0 - ld [wd002], a + ld a, SEERACTION_MET + ld [wSeerAction], a -.asm_4f15f +.traded call GetCaughtLevel call GetCaughtOT call GetCaughtName @@ -131,9 +139,9 @@ ReadCaughtData: ; 4f134 and a ret -.asm_4f170 - ld a, 2 - ld [wd002], a +.error + ld a, SEERACTION_CANT_TELL_1 + ld [wSeerAction], a ret ; 4f176 @@ -142,7 +150,7 @@ GetCaughtName: ; 4f176 ld hl, PartyMonNicknames ld bc, PKMN_NAME_LENGTH call AddNTimes - ld de, wd003 + ld de, wSeerNickname ld bc, PKMN_NAME_LENGTH call CopyBytes ret @@ -150,12 +158,12 @@ GetCaughtName: ; 4f176 GetCaughtLevel: ; 4f18c ld a, "@" - ld hl, wd036 + ld hl, wSeerCaughtLevelString ld bc, 4 call ByteFill ; caught level - ld a, [wd03b] + ld a, [wSeerCaughtData] and $3f jr z, .unknown cp 1 ; hatched from an egg @@ -163,15 +171,15 @@ GetCaughtLevel: ; 4f18c ld a, 5 ; egg hatch level .print - ld [wd038 + 2], a - ld hl, wd036 - ld de, wd038 + 2 + ld [wSeerCaughtLevel], a + ld hl, wSeerCaughtLevelString + ld de, wSeerCaughtLevel lb bc, PRINTNUM_RIGHTALIGN | 1, 3 call PrintNum ret .unknown - ld de, wd036 + ld de, wSeerCaughtLevelString ld hl, .unknown_level ld bc, 4 call CopyBytes @@ -183,7 +191,7 @@ GetCaughtLevel: ; 4f18c ; 4f1c5 GetCaughtTime: ; 4f1c5 - ld a, [wd03b] + ld a, [wSeerCaughtData] and $c0 jr z, .none @@ -194,13 +202,13 @@ GetCaughtTime: ; 4f1c5 call GetNthString ld d, h ld e, l - ld hl, wd01f + ld hl, wSeerTimeOfDay call CopyName2 and a ret .none - ld de, wd01f + ld de, wSeerTimeOfDay call UnknownCaughtData ret ; 4f1e6 @@ -213,7 +221,7 @@ GetCaughtTime: ; 4f1c5 UnknownCaughtData: ; 4f1f8 ld hl, .unknown - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes ret ; 4f202 @@ -223,35 +231,35 @@ UnknownCaughtData: ; 4f1f8 ; 4f20a GetCaughtLocation: ; 4f20a - ld a, [wd03b + 1] + ld a, [wSeerCaughtGender] and $7f - jr z, .asm_4f22e + jr z, .Unknown cp $7f - jr z, .asm_4f234 + jr z, .event cp $7e - jr z, .asm_4f23b + jr z, .fail ld e, a callba GetLandmarkName ld hl, StringBuffer1 - ld de, wd00e - ld bc, $0011 + ld de, wSeerCaughtLocation + ld bc, 17 call CopyBytes and a ret -.asm_4f22e - ld de, wd00e +.Unknown + ld de, wSeerCaughtLocation jp UnknownCaughtData -.asm_4f234 - ld a, $4 - ld [wd002], a +.event + ld a, SEERACTION_LEVEL_ONLY + ld [wSeerAction], a scf ret -.asm_4f23b - ld a, $3 - ld [wd002], a +.fail + ld a, SEERACTION_CANT_TELL_2 + ld [wSeerAction], a scf ret ; 4f242 @@ -261,17 +269,19 @@ GetCaughtOT: ; 4f242 ld hl, PartyMonOT ld bc, NAME_LENGTH call AddNTimes - ld de, wd02a - ld bc, $000b + ld de, wSeerOTName + ld bc, NAME_LENGTH call CopyBytes + +; this routine is useless in Western localizations ld hl, .male - ld a, [wd03b + 1] + ld a, [wSeerCaughtGender] bit 7, a - jr z, .asm_4f264 + jr z, .got_grammar ld hl, .female -.asm_4f264 - ld de, wd034 + 1 +.got_grammar + ld de, wSeerOTNameGrammar ld a, "@" ld [de], a ret @@ -360,7 +370,7 @@ SeerCancelText: ; 0x4f2af SeerAdvice: ; 4f2b4 ld a, MON_LEVEL call GetPartyParamLocation - ld a, [wd038 + 2] + ld a, [wSeerCaughtLevel] ld c, a ld a, [hl] sub c diff --git a/home/serial.asm b/home/serial.asm index fdaba6cc5..9f5dae96b 100644 --- a/home/serial.asm +++ b/home/serial.asm @@ -247,8 +247,8 @@ Function833:: ; 833 ; 83b Function83b:: ; 83b - ld hl, wcf56 - ld de, wcf51 + ld hl, wPlayerLinkAction + ld de, wOtherPlayerLinkMode ld c, $2 ld a, $1 ld [hFFCC], a @@ -274,7 +274,7 @@ Function83b:: ; 83b Function862:: ; 862 call LoadTileMapToTempTileMap - callab Function4000 + callab PlaceWaitingText call Function87d jp Call_LoadTempTileMapToTileMap ; 871 @@ -282,102 +282,106 @@ Function862:: ; 862 Function871:: ; 871 call LoadTileMapToTempTileMap - callab Function4000 + callab PlaceWaitingText jp Function87d ; 87d - +; One "giant" leap for machinekind Function87d:: ; 87d ld a, $ff - ld [wcf52], a -.asm_882 - call Function8c1 + ld [wOtherPlayerLinkAction], a +.loop + call LinkCommunicationsSendReceive call DelayFrame call Function82b - jr z, .asm_89e + jr z, .check push hl ld hl, wcf5c dec [hl] - jr nz, .asm_89d + jr nz, .skip dec hl dec [hl] - jr nz, .asm_89d + jr nz, .skip pop hl xor a jp Function833 -.asm_89d +.skip pop hl -.asm_89e - ld a, [wcf52] +.check + ld a, [wOtherPlayerLinkAction] inc a - jr z, .asm_882 - ld b, $a -.asm_8a6 + jr z, .loop + + ld b, 10 +.receive call DelayFrame - call Function8c1 + call LinkCommunicationsSendReceive dec b - jr nz, .asm_8a6 - ld b, $a -.asm_8b1 + jr nz, .receive + + ld b, 10 +.acknowledge call DelayFrame - call Function908 + call LinkCommunicationsSignalDataReceived dec b - jr nz, .asm_8b1 - ld a, [wcf52] - ld [wcf51], a + jr nz, .acknowledge + + ld a, [wOtherPlayerLinkAction] + ld [wOtherPlayerLinkMode], a ret ; 8c1 -Function8c1:: ; 8c1 +LinkCommunicationsSendReceive:: ; 8c1 push bc - ld b, $60 + ld b, SERIAL_TIMECAPSULE ld a, [wLinkMode] - cp $1 - jr z, .asm_8d7 - ld b, $60 - jr c, .asm_8d7 - cp $2 - ld b, $70 - jr z, .asm_8d7 - ld b, $80 + cp LINK_TIMECAPSULE + jr z, .got_high_nybble + ld b, SERIAL_TIMECAPSULE + jr c, .got_high_nybble + cp LINK_TRADECENTER + ld b, SERIAL_TRADECENTER + jr z, .got_high_nybble + ld b, SERIAL_BATTLE -.asm_8d7 - call Function8f3 - ld a, [wcf56] +.got_high_nybble + call .Receive + ld a, [wPlayerLinkAction] add b ld [hSerialSend], a ld a, [hLinkPlayerNumber] cp $2 - jr nz, .asm_8ee + jr nz, .player_1 ld a, $1 ld [rSC], a ld a, $81 ld [rSC], a -.asm_8ee - call Function8f3 +.player_1 + call .Receive pop bc ret ; 8f3 -Function8f3:: ; 8f3 +.Receive ; 8f3 ld a, [hSerialReceive] - ld [wcf51], a + ld [wOtherPlayerLinkMode], a and $f0 cp b ret nz xor a ld [hSerialReceive], a - ld a, [wcf51] + ld a, [wOtherPlayerLinkMode] and $f - ld [wcf52], a + ld [wOtherPlayerLinkAction], a ret ; 908 -Function908:: ; 908 +LinkCommunicationsSignalDataReceived:: ; 908 +; Let the other system know that the data has been received. xor a ld [hSerialSend], a ld a, [hLinkPlayerNumber] diff --git a/home/text.asm b/home/text.asm index dffe686c4..2877f88dd 100644 --- a/home/text.asm +++ b/home/text.asm @@ -880,10 +880,10 @@ Text_TX_MOVE:: ; 1480 ; [$03][addr] ld a, [hli] - ld [wd0e4 + 2], a + ld [wMenuScrollPosition + 2], a ld c, a ld a, [hli] - ld [wd0e4 + 2 + 1], a + ld [wMenuScrollPosition + 2 + 1], a ld b, a ret ; 148b diff --git a/items/item_effects.asm b/items/item_effects.asm index 6ab6f6c14..ea0c99881 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -4,7 +4,7 @@ _DoItemEffect:: ; e722 call GetItemName call CopyName1 ld a, 1 - ld [wd0ec], a + ld [wPlayerAction], a ld a, [CurItem] dec a ld hl, ItemEffects @@ -1209,7 +1209,7 @@ SunStone: ; ee0f ld [wd1e9], a callba EvolvePokemon - ld a, [wd268] + ld a, [wMonTriedToEvolve] and a jr z, .NoEffect @@ -1220,7 +1220,7 @@ SunStone: ; ee0f .DecidedNotToUse xor a - ld [wd0ec], a + ld [wPlayerAction], a ret ; ee3d @@ -1293,7 +1293,7 @@ UpdateStatsAfterItem: ; ee8c RareCandy_StatBooster_ExitMenu: ; ee9f xor a - ld [wd0ec], a + ld [wPlayerAction], a jp ClearPalettes ; eea6 @@ -1930,7 +1930,7 @@ StatusHealer_NoEffect: ; f299 (3:7299) StatusHealer_ExitMenu: ; f29e (3:729e) xor a - ld [wd0ec], a + ld [wPlayerAction], a StatusHealer_ClearPalettes: ; f2a2 (3:72a2) call ClearPalettes ret @@ -2233,10 +2233,10 @@ Softboiled_MilkDrinkFunction: ; f3df (3:73df) EscapeRope: ; f44f xor a - ld [wd0ec], a + ld [wPlayerAction], a callba EscapeRopeFunction - ld a, [wd0ec] + ld a, [wPlayerAction] cp 1 call z, UseDisposableItem ret @@ -2298,7 +2298,7 @@ PokeDoll: ; f48f .asm_f4a6 xor a - ld [wd0ec], a + ld [wPlayerAction], a ret ; f4ab @@ -2547,7 +2547,7 @@ Mysteryberry: ; f5bf xor a ld [CurMoveNum], a ld a, $2 - ld [wd235], a + ld [wMoveSelectionMenuType], a callba MoveSelectionScreen pop bc @@ -2701,7 +2701,7 @@ PPRestoreItem_NoEffect: ; f6dd PPRestoreItem_Cancel: ; f6e0 call ClearPalettes xor a - ld [wd0ec], a + ld [wPlayerAction], a ret ; f6e8 @@ -2802,7 +2802,7 @@ BasementKey: ; f74c SacredAsh: ; f753 callba _SacredAsh - ld a, [wd0ec] + ld a, [wPlayerAction] cp $1 ret nz call UseDisposableItem @@ -2973,7 +2973,7 @@ WontHaveAnyEffect_NotUsedMessage: ; f7ca ; Item wasn't used. ld a, $2 - ld [wd0ec], a + ld [wPlayerAction], a ret ; f7d6 @@ -2988,7 +2988,7 @@ Ball_BoxIsFullMessage: ; f7dc ; Item wasn't used. ld a, $2 - ld [wd0ec], a + ld [wPlayerAction], a ret ; f7e8 @@ -3018,7 +3018,7 @@ CantGetOnYourBikeMessage: ; f801 CantUseItemMessage: ; f804 ; Item couldn't be used. xor a - ld [wd0ec], a + ld [wPlayerAction], a jp PrintText ; f80b diff --git a/main.asm b/main.asm index 1deff6110..dfff0d855 100644 --- a/main.asm +++ b/main.asm @@ -4,7 +4,7 @@ INCLUDE "includes.asm" SECTION "bank1", ROMX, BANK[$1] -Function4000:: ; 4000 +PlaceWaitingText:: ; 4000 hlcoord 3, 10 ld b, 1 ld c, 11 @@ -5710,11 +5710,11 @@ TossTMHM: ; d3d8 ld [hl], a ld [wItemQuantityBuffer], a jr nz, .yup - ld a, [wd0e2] + ld a, [wTMHMPocketScrollPosition] and a jr z, .yup dec a - ld [wd0e2], a + ld [wTMHMPocketScrollPosition], a .yup scf @@ -9901,7 +9901,7 @@ endr ; 244c3 -Function244c3: ; 0x244c3 +UpdateItemDescription: ; 0x244c3 ld a, [MenuSelection] ld [CurSpecies], a hlcoord 0, 12 @@ -10216,7 +10216,7 @@ MenuJoyAction: ; 24609 ld hl, wcfa6 bit 7, [hl] jp z, xor_a - ld hl, wd0e4 + ld hl, wMenuScrollPosition ld a, [hl] and a jr z, .xor_dec_up @@ -10231,7 +10231,7 @@ MenuJoyAction: ; 24609 ld hl, wcfa6 bit 7, [hl] jp z, xor_a - ld hl, wd0e4 + ld hl, wMenuScrollPosition ld a, [wMenuData2Items] add [hl] ld b, a @@ -10246,7 +10246,7 @@ MenuJoyAction: ; 24609 ; 246fc Function246fc: ; 246fc - ld a, [wd0e4] + ld a, [wMenuScrollPosition] ld c, a ld a, [MenuSelection2] add c @@ -10276,10 +10276,10 @@ ClearObjectStructsa: ; 2471a ld a, [wcf95] call GetFarByte ld [wd144], a -; if ([wd144] + 1) < [wMenuData2Items] + [wd0e4]: [wd0e4] = max(([wd144] + 1) - [wMenuData2Items], 0) +; if ([wd144] + 1) < [wMenuData2Items] + [wMenuScrollPosition]: [wMenuScrollPosition] = max(([wd144] + 1) - [wMenuData2Items], 0) ld a, [wMenuData2Items] ld c, a - ld a, [wd0e4] + ld a, [wMenuScrollPosition] add c ld c, a ld a, [wd144] @@ -10295,10 +10295,10 @@ ClearObjectStructsa: ; 2471a xor a .store - ld [wd0e4], a + ld [wMenuScrollPosition], a .skip - ld a, [wd0e4] + ld a, [wMenuScrollPosition] ld c, a ld a, [wMenuCursorBuffer] add c @@ -10311,7 +10311,7 @@ ClearObjectStructsa: ; 2471a .asm_2475a xor a - ld [wd0e4], a + ld [wMenuScrollPosition], a ld a, $1 ld [wMenuCursorBuffer], a @@ -10413,7 +10413,7 @@ Function247f0: ; 247f0 ld a, [wMenuData2Flags] bit 4, a jr z, .asm_2480d - ld a, [wd0e4] + ld a, [wMenuScrollPosition] and a jr z, .asm_2480d ld a, [wMenuBorderTopCoord] @@ -10431,7 +10431,7 @@ Function247f0: ; 247f0 ld b, a ld c, $0 .asm_2481a - ld a, [wd0e4] + ld a, [wMenuScrollPosition] add c ld [wcf77], a ld a, c @@ -10508,7 +10508,7 @@ Function2488b: ; 2488b and a jr z, .asm_248b7 ld b, a - ld a, [wd0e4] + ld a, [wMenuScrollPosition] cp b jr nc, .asm_248b7 ld c, a @@ -10558,7 +10558,7 @@ Function248d5: ; 248d5 push de push hl ld e, a - ld a, [wd0e4] + ld a, [wMenuScrollPosition] add e ld e, a ld d, $0 @@ -13540,7 +13540,7 @@ Function2c974: ; 2c974 (b:4974) ld a, [MenuSelection2] dec a ld b, a - ld a, [wd0e2] + ld a, [wTMHMPocketScrollPosition] add b ld b, a ld a, [wd265] @@ -13584,7 +13584,7 @@ Function2c9b1: ; 2c9b1 (b:49b1) ld a, b bit 7, a jr nz, .skip - ld hl, wd0e2 + ld hl, wTMHMPocketScrollPosition ld a, [hl] and a jp z, Function2c915 @@ -13605,7 +13605,7 @@ Function2c9b1: ; 2c9b1 (b:49b1) jr z, .loop dec b jr nz, .loop - ld hl, wd0e2 + ld hl, wTMHMPocketScrollPosition inc [hl] call Function2c9e2 jp Function2c946 @@ -13737,7 +13737,7 @@ String_2caae: ; 2caae Function2cab5: ; 2cab5 (b:4ab5) ld hl, TMsHMs - ld a, [wd0e2] + ld a, [wTMHMPocketScrollPosition] ld b, a inc b ld c, 0 @@ -13820,11 +13820,11 @@ Function2cb0c: ; 2cb0c (b:4b0c) dec a ld [hl], a ret nz - ld a, [wd0e2] + ld a, [wTMHMPocketScrollPosition] and a ret z dec a - ld [wd0e2], a + ld [wTMHMPocketScrollPosition], a ret Function2cb2a: ; 2cb2a (b:4b2a) @@ -14186,7 +14186,7 @@ rept 3 endr ld [hl], a - ld [wd0e4], a + ld [wMenuScrollPosition], a ld [CriticalHit], a ld [BattleMonSpecies], a ld [wBattleParticipantsNotFainted], a diff --git a/maps/PokeCenter2F.asm b/maps/PokeCenter2F.asm index 1684dce98..b5596bb9c 100644 --- a/maps/PokeCenter2F.asm +++ b/maps/PokeCenter2F.asm @@ -91,7 +91,7 @@ LinkReceptionistScript_Trade: writetext Text_PleaseWait special Special_CheckLinkTimeout iffalse .LinkTimedOut - copybytetovar wcf51 + copybytetovar wOtherPlayerLinkMode iffalse .LinkedToFirstGen special Special_CheckBothSelectedSameRoom iffalse .IncompatibleRooms @@ -193,7 +193,7 @@ LinkReceptionistScript_Battle: writetext Text_PleaseWait special Special_CheckLinkTimeout iffalse .LinkTimedOut - copybytetovar wcf51 + copybytetovar wOtherPlayerLinkMode iffalse .LinkedToFirstGen special Special_CheckBothSelectedSameRoom iffalse .IncompatibleRooms @@ -320,7 +320,7 @@ LinkReceptionistScript_TimeCapsule: writetext Text_PleaseWait special Special_CheckLinkTimeout iffalse .LinkTimedOut - copybytetovar wcf51 + copybytetovar wOtherPlayerLinkMode iffalse .OK special Special_CheckBothSelectedSameRoom writetext Text_IncompatibleRooms diff --git a/misc/mobile_12.asm b/misc/mobile_12.asm index 5f864ead2..185d19e89 100755 --- a/misc/mobile_12.asm +++ b/misc/mobile_12.asm @@ -346,7 +346,7 @@ Function48304: ; 48304 (12:4304) call Function48cdc ld a, [wMenuCursorBuffer] ld b, a - ld a, [wd0e4] + ld a, [wMenuScrollPosition] ld c, a push bc ld a, [wd474] @@ -358,7 +358,7 @@ Function48304: ; 48304 (12:4304) ld [wMenuCursorBuffer], a ld a, $29 .asm_4833f - ld [wd0e4], a + ld [wMenuScrollPosition], a callba Function104148 .asm_48348 call HandleScrollingMenu @@ -370,7 +370,7 @@ Function48304: ; 48304 (12:4304) ld a, b ld [wMenuCursorBuffer], a ld a, c - ld [wd0e4], a + ld [wMenuScrollPosition], a ld a, d push af call ExitMenu @@ -398,21 +398,21 @@ Function48383: ; 48383 (12:4383) and a jr .asm_483b7 .asm_48390 - ld a, [wd0e4] + ld a, [wMenuScrollPosition] sub d - ld [wd0e4], a + ld [wMenuScrollPosition], a jr nc, .asm_483af xor a - ld [wd0e4], a + ld [wMenuScrollPosition], a jr .asm_483af .asm_4839f - ld a, [wd0e4] + ld a, [wMenuScrollPosition] add d - ld [wd0e4], a + ld [wMenuScrollPosition], a cp e jr c, .asm_483af ld a, e - ld [wd0e4], a + ld [wMenuScrollPosition], a jr .asm_483af .asm_483af ld hl, MenuSelection2 diff --git a/misc/mobile_22_2.asm b/misc/mobile_22_2.asm index 0157e8e9e..b794ba33a 100644 --- a/misc/mobile_22_2.asm +++ b/misc/mobile_22_2.asm @@ -805,7 +805,7 @@ Function8b7bd: ; 8b7bd ld a, [wd030] ld [wMenuCursorBuffer], a ld a, [wd031] - ld [wd0e4], a + ld [wMenuScrollPosition], a ld a, [wd032] and a jr z, .asm_8b7e0 @@ -856,13 +856,13 @@ Function8b7bd: ; 8b7bd ld c, a ld a, [MenuSelection2] ld [wd030], a - ld a, [wd0e4] + ld a, [wMenuScrollPosition] ld [wd031], a ret ; 8b832 Function8b832: ; 8b832 - ld a, [wd0e4] + ld a, [wMenuScrollPosition] ld hl, wMenuData2Items sub [hl] jr nc, Function8b84b @@ -871,7 +871,7 @@ Function8b832: ; 8b832 ; 8b83e Function8b83e: ; 8b83e - ld a, [wd0e4] + ld a, [wMenuScrollPosition] ld hl, wMenuData2Items add [hl] cp $24 @@ -879,7 +879,7 @@ Function8b83e: ; 8b83e ld a, $24 Function8b84b: ; 8b84b - ld [wd0e4], a + ld [wMenuScrollPosition], a ld a, [MenuSelection2] ld [wMenuCursorBuffer], a ret @@ -994,7 +994,7 @@ endr hlcoord 19, 13 ld a, $11 ld [hl], a - ld a, [wd0e4] + ld a, [wMenuScrollPosition] cp $24 ret c hlcoord 0, 13 @@ -1018,7 +1018,7 @@ String_8b938: db "いれる ところを えらんでください@" ; Please sel Function8b94a: ; 8b94a ld [wd033], a xor a - ld [wd0e4], a + ld [wMenuScrollPosition], a ld [wd032], a ld [wd0e3], a ld [wd031], a diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index 57ea46c1c..51fbcbd65 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -171,6 +171,7 @@ Function1000fa: ; 1000fa ld [hFFC9], a ld [hMobile], a ei + ld a, [wLinkMode] push af xor a @@ -1620,78 +1621,81 @@ Function1009f3: ; 1009f3 ret ; 100a09 -Function100a09: ; 100a09 - call Function100a2e +_LinkBattleSendReceiveAction: ; 100a09 + call .StageForSend ld [wd431], a - callba Function4000 + callba PlaceWaitingText ld a, [wLinkMode] cp LINK_MOBILE - jr nz, .asm_100a2a + jr nz, .not_mobile call Function100a87 call Function100da5 callba FinishBattleAnim - jr .asm_100a2d + jr .done -.asm_100a2a +.not_mobile call Function100a53 -.asm_100a2d +.done ret ; 100a2e -Function100a2e: ; 100a2e - ld a, [wd0ec] +.StageForSend: ; 100a2e + ld a, [wPlayerAction] and a - jr nz, .asm_100a48 + jr nz, .switch ld a, [CurPlayerMove] - ld b, $e + ld b, BATTLEACTION_E cp STRUGGLE - jr z, .asm_100a4f - ld b, $d + jr z, .struggle + ld b, BATTLEACTION_D cp $ff - jr z, .asm_100a4f + jr z, .struggle ld a, [CurMoveNum] - jr .asm_100a50 + jr .use_move -.asm_100a48 +.switch ld a, [CurPartyMon] - add $4 - jr .asm_100a50 + add BATTLEACTION_SWITCH1 + jr .use_move -.asm_100a4f +.struggle ld a, b -.asm_100a50 +.use_move and $f ret ; 100a53 Function100a53: ; 100a53 ld a, [wd431] - ld [wcf56], a + ld [wPlayerLinkAction], a ld a, $ff - ld [wcf52], a -.asm_100a5e - call Function8c1 + ld [wOtherPlayerLinkAction], a +.waiting + call LinkCommunicationsSendReceive call DelayFrame - ld a, [wcf52] + ld a, [wOtherPlayerLinkAction] inc a - jr z, .asm_100a5e - ld b, $a -.asm_100a6c + jr z, .waiting + + ld b, 10 +.receive call DelayFrame - call Function8c1 + call LinkCommunicationsSendReceive dec b - jr nz, .asm_100a6c - ld b, $a -.asm_100a77 + jr nz, .receive + + ld b, 10 +.acknowledge call DelayFrame - call Function908 + call LinkCommunicationsSignalDataReceived dec b - jr nz, .asm_100a77 - ld a, [wcf52] - ld [wd430], a + jr nz, .acknowledge + + ld a, [wOtherPlayerLinkAction] + ld [wBattleAction], a ret ; 100a87 @@ -1850,10 +1854,10 @@ Function100b7a: ; 100b7a ret ; 100b9f -Function100b9f: ; 100b9f +MobileMoveSelectionScreen: ; 100b9f xor a ld [wd0e3], a - callba Function3e786 + callba CheckPlayerHasUsableMoves ret z call Function100dd8 jp c, xor_a_dec_a @@ -2148,7 +2152,7 @@ Function100db0: ; 100db0 Function100dc0: ; 100dc0 ld a, [wLinkMode] - cp $4 + cp LINK_MOBILE jr nz, .asm_100dd0 ld hl, wcd2a bit 3, [hl] @@ -2794,16 +2798,16 @@ Function1011f1: ; 1011f1 res 4, [hl] ld hl, GameTimerPause bit 7, [hl] - jr z, .asm_101210 + jr z, .skip ld hl, wdc41 set 4, [hl] -.asm_101210 +.skip call Function10209c xor a ld [wdc5f], a ld [wdc60], a - ld a, $4 + ld a, LINK_MOBILE ld [wLinkMode], a ret ; 101220 @@ -7958,16 +7962,16 @@ Function10378c: ; 10378c ld c, $0 ld hl, SwarmFlags bit 4, [hl] - jr nz, .asm_10379c + jr nz, .already_set ld c, $1 ld hl, SwarmFlags set 4, [hl] -.asm_10379c +.already_set push bc callba Link_SaveGame pop bc - jr c, .asm_1037b5 + jr c, .failed_to_save ld a, $1 ld [ScriptVar], a ld a, c @@ -7976,7 +7980,7 @@ Function10378c: ; 10378c callba Function1006fd ret -.asm_1037b5 +.failed_to_save xor a ld [ScriptVar], a ld a, c @@ -7989,19 +7993,19 @@ Function10378c: ; 10378c Function1037c2: ; 1037c2 call Function103823 - jr c, .asm_1037de + jr c, .nope ld a, [wdc5f] and a - jr z, .asm_1037de + jr z, .nope ld hl, UnknownText_0x1037e6 call PrintText call YesNoBox - jr c, .asm_1037de + jr c, .nope ld a, $1 ld [ScriptVar], a ret -.asm_1037de +.nope xor a ld [wdc5f], a ld [ScriptVar], a diff --git a/wram.asm b/wram.asm index 88737f277..c0069fd06 100644 --- a/wram.asm +++ b/wram.asm @@ -1298,9 +1298,10 @@ wcf41:: ds 1 wcf42:: ds 2 wcf44:: ds 1 wcf45:: ds 12 -wcf51:: ds 1 -wcf52:: ds 4 -wcf56:: ds 1 +; addresses dealing with serial comms +wOtherPlayerLinkMode:: ds 1 +wOtherPlayerLinkAction:: ds 4 +wPlayerLinkAction:: ds 1 wcf57:: ds 4 wcf5b:: ds 1 wcf5c:: ds 1 @@ -1509,6 +1510,18 @@ wd001:: ds 1 wTempMail:: mailmsg wTempMail ds wTempMail - @ +wSeerAction:: ds 1 +wSeerNickname:: ds PKMN_NAME_LENGTH +wSeerCaughtLocation:: ds 17 +wSeerTimeOfDay:: ds NAME_LENGTH +wSeerOTName:: ds NAME_LENGTH +wSeerOTNameGrammar:: ds 1 +wSeerCaughtLevelString:: ds 4 +wSeerCaughtLevel:: ds 1 +wSeerCaughtData:: ds 1 +wSeerCaughtGender:: ds 1 + ds wSeerAction - @ + wd002:: PhoneScriptBank:: LuckyNumberDigit1Buffer:: @@ -1683,7 +1696,7 @@ CurBattleMon:: ; d0d4 CurMoveNum:: ; d0d5 ds 1 -wd0d6:: ds 1 +wLastPocket:: ds 1 wd0d7:: ds 1 wPartyMenuCursor:: wd0d8:: ds 1 @@ -1692,18 +1705,22 @@ wKeyItemsPocketCursor:: ds 1 wBallsPocketCursor:: ds 1 wTMHMPocketCursor:: ds 1 wd0dd:: ds 2 -wd0df:: ds 1 -wd0e0:: ds 1 -wd0e1:: ds 1 -wd0e2:: ds 1 +wItemsPocketScrollPosition:: ds 1 +wKeyItemsPocketScrollPosition:: ds 1 +wBallsPocketScrollPosition:: ds 1 +wTMHMPocketScrollPosition:: ds 1 wMoveSwapBuffer:: wSwitchMon:: wd0e3:: ds 1 -wd0e4:: ds 4 +wMenuScrollPosition:: ds 4 wQueuedScriptBank:: ds 1 wQueuedScriptAddr:: ds 2 wd0eb:: ds 1 wFieldMoveSucceeded:: +wPlayerAction:: +; 0 - use move +; 1 - use item +; 2 - switch wd0ec:: ds 1 VramState:: ; d0ed @@ -2034,7 +2051,7 @@ TrainerClass:: ; d233 UnownLetter:: ; d234 ds 1 -wd235:: ds 1 +wMoveSelectionMenuType:: ds 1 CurBaseData:: ; d236 BaseDexNo:: ; d236 @@ -2098,9 +2115,9 @@ wNamedObjectIndexBuffer:: wCurTMHM:: wTypeMatchup:: wd265:: ds 1 -wd266:: ds 1 -wd267:: ds 1 -wd268:: ds 1 +wFailedToFlee:: ds 1 +wNumFleeAttempts:: ds 1 +wMonTriedToEvolve:: ds 1 TimeOfDay:: ; d269 ds 1 From f3c8f7520975cbfca8be57b0adb855bf42368d83 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 23 Nov 2015 21:19:53 -0500 Subject: [PATCH 36/40] bug contest judgint labels --- engine/npctrade.asm | 2 +- event/bug_contest_judging.asm | 117 +++++++++++++++++----------------- macros/text.asm | 16 ++--- maps/BattleTower1F.asm | 2 +- text/battle.asm | 2 +- text/common_2.asm | 6 +- text/common_3.asm | 24 +++---- text/common_4.asm | 48 +++++++------- wram.asm | 16 +++++ 9 files changed, 123 insertions(+), 110 deletions(-) diff --git a/engine/npctrade.asm b/engine/npctrade.asm index 22ca490d6..71ab03ee3 100755 --- a/engine/npctrade.asm +++ b/engine/npctrade.asm @@ -519,7 +519,7 @@ TradedForText: ; 0xfcf80 ret .done - ; sound0x0A + ; sound_dex_fanfare_80_109 ; interpret_data text_jump UnknownText_0x1bd445 db "@" diff --git a/event/bug_contest_judging.asm b/event/bug_contest_judging.asm index 25b3805ee..4180391e1 100755 --- a/event/bug_contest_judging.asm +++ b/event/bug_contest_judging.asm @@ -2,24 +2,24 @@ _BugContestJudging: ; 1369d call ContestScore callba MobileFn_105f79 call Function13819 - ld a, [wd00a] + ld a, [wBugContestThirdPlacePersonID] call LoadContestantName - ld a, [wd00b] - ld [wd265], a + ld a, [wBugContestThirdPlaceMon] + ld [wNamedObjectIndexBuffer], a call GetPokemonName ld hl, BugContest_ThirdPlaceText call PrintText - ld a, [EndFlypoint] + ld a, [wBugContestSecondPlacePersonID] call LoadContestantName - ld a, [MovementBuffer] - ld [wd265], a + ld a, [wBugContestSecondPlaceMon] + ld [wNamedObjectIndexBuffer], a call GetPokemonName ld hl, BugContest_SecondPlaceText call PrintText - ld a, [wd002] + ld a, [wBugContestFirstPlacePersonID] call LoadContestantName - ld a, [wd003] - ld [wd265], a + ld a, [wBugContestFirstPlaceMon] + ld [wNamedObjectIndexBuffer], a call GetPokemonName ld hl, BugContest_FirstPlaceText call PrintText @@ -85,7 +85,7 @@ LoadContestantName: ; 13730 ; If a = 0, get your name. dec a - jr z, .done + jr z, .player ; Find the pointer for the trainer class of the Bug Catching Contestant whose ID is in a. ld c, a ld b, 0 @@ -102,13 +102,13 @@ endr ; Save hl and bc for later. push hl push bc -; Get the Trainer Class name and copy it into wd016. +; Get the Trainer Class name and copy it into wBugContestWinnerName. callab GetTrainerClassName ld hl, StringBuffer1 - ld de, wd016 + ld de, wBugContestWinnerName ld bc, TRAINER_CLASS_NAME_LENGTH call CopyBytes - ld hl, wd016 + ld hl, wBugContestWinnerName ; Delete the trailing terminator and replace it with a space. .next ld a, [hli] @@ -127,15 +127,15 @@ endr ld a, [hl] ld b, a callab GetTrainerName -; Append the name to wd016. +; Append the name to wBugContestWinnerName. ld hl, StringBuffer1 pop de ld bc, NAME_LENGTH - 1 jp CopyBytes -.done +.player ld hl, PlayerName - ld de, wd016 + ld de, wBugContestWinnerName ld bc, NAME_LENGTH jp CopyBytes ; 13783 @@ -216,7 +216,7 @@ BugContestant_SchoolboyKipp: ; 13807 Function13807: ; 13807 - ld hl, wd00a + ld hl, wBugContestThirdPlacePersonID ld de, -4 ld b, 3 .loop @@ -232,9 +232,9 @@ Function13807: ; 13807 ; 13819 Function13819: ; 13819 - call Function13833 - call Function138b0 - ld hl, wd00e + call ClearContestResults + call ComputeAIContestantScores + ld hl, wBugContestTempPersonID ld a, 1 ld [hli], a ld a, [wContestMon] @@ -243,12 +243,12 @@ Function13819: ; 13819 ld [hli], a ld a, [hMultiplicand] ld [hl], a - call Function1383e + call DetermineContestWinners ret ; 13833 -Function13833: ; 13833 - ld hl, wd002 +ClearContestResults: ; 13833 + ld hl, wBugContestFirstPlacePersonID ld b, 12 xor a .loop @@ -258,69 +258,66 @@ Function13833: ; 13833 ret ; 1383e -Function1383e: ; 1383e - ld de, wd010 - ld hl, wd004 +DetermineContestWinners: ; 1383e + ld de, wBugContestTempScore + ld hl, wBugContestFirstPlaceScore ld c, 2 call StringCmp - jr c, .next - ld hl, EndFlypoint - ld de, wd00a + jr c, .not_first_place + ld hl, wBugContestSecondPlacePersonID + ld de, wBugContestThirdPlacePersonID ld bc, 4 call CopyBytes - ld hl, wd002 - ld de, EndFlypoint + ld hl, wBugContestFirstPlacePersonID + ld de, wBugContestSecondPlacePersonID ld bc, 4 call CopyBytes - ld hl, wd002 - call Function138a0 + ld hl, wBugContestFirstPlacePersonID + call CopyTempContestant jr .done -.next - ld de, wd010 - ld hl, wd008 +.not_first_place + ld de, wBugContestTempScore + ld hl, wBugContestSecondPlaceScore ld c, 2 call StringCmp - jr c, .next2 - ld hl, EndFlypoint - ld de, wd00a + jr c, .not_second_place + ld hl, wBugContestSecondPlacePersonID + ld de, wBugContestThirdPlacePersonID ld bc, 4 call CopyBytes - ld hl, EndFlypoint - call Function138a0 + ld hl, wBugContestSecondPlacePersonID + call CopyTempContestant jr .done -.next2 - ld de, wd010 - ld hl, wd00c +.not_second_place + ld de, wBugContestTempScore + ld hl, wBugContestThirdPlaceScore ld c, 2 call StringCmp jr c, .done - ld hl, wd00a - call Function138a0 + ld hl, wBugContestThirdPlacePersonID + call CopyTempContestant .done ret ; 138a0 -Function138a0: ; 138a0 - ld de, wd00e - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a +CopyTempContestant: ; 138a0 +; Could've just called CopyBytes. + ld de, wBugContestTempPersonID +rept 3 ld a, [de] inc de ld [hli], a +endr ld a, [de] inc de ld [hl], a ret ; 138b0 -Function138b0: ; 138b0 +ComputeAIContestantScores: ; 138b0 ld e, 0 .loop push de @@ -331,7 +328,7 @@ Function138b0: ; 138b0 rept 2 inc a endr - ld [wd00e], a + ld [wBugContestTempPersonID], a dec a ld c, a ld b, 0 @@ -356,7 +353,7 @@ rept 3 add hl, bc endr ld a, [hli] - ld [wd00f], a + ld [wBugContestTempMon], a ld a, [hli] ld h, [hl] ld l, a @@ -366,11 +363,11 @@ endr ld b, 0 add hl, bc ld a, h - ld [wd010], a + ld [wBugContestTempScore], a ld a, l - ld [wd011], a + ld [wBugContestTempScore + 1], a push de - call Function1383e + call DetermineContestWinners pop de .done diff --git a/macros/text.asm b/macros/text.asm index 6af4d109b..37ce72d98 100644 --- a/macros/text.asm +++ b/macros/text.asm @@ -73,7 +73,7 @@ interpret_data: macro endm enum TX_SOUND_0B -sound0: macro +sound_dex_fanfare_50_79: macro db TX_SOUND_0B endm @@ -89,33 +89,33 @@ link_wait_button: macro endm enum TX_SOUND_0E -sound1: macro +sound_dex_fanfare_20_49: macro db TX_SOUND_0E endm enum TX_SOUND_0F -sound0x0F: macro +sound_item: macro db TX_SOUND_0F endm enum TX_SOUND_10 -sound0x02: macro +sound_caught_mon: macro db TX_SOUND_10 endm enum TX_SOUND_11 -sound0x0A: macro +sound_dex_fanfare_80_109: macro db TX_SOUND_11 endm enum TX_SOUND_12 -sound0x12: macro +sound_fanfare: macro db TX_SOUND_12 endm enum TX_SOUND_13 -sound0x2C: macro - db $13 +sound_slot_machine_start: macro + db TX_SOUND_13 endm enum TX_STRINGBUFFER diff --git a/maps/BattleTower1F.asm b/maps/BattleTower1F.asm index 760cf7e6f..9a678ca55 100644 --- a/maps/BattleTower1F.asm +++ b/maps/BattleTower1F.asm @@ -525,7 +525,7 @@ Text_PlayerGotFive: ; 0x9eb7e line "@" text_from_ram StringBuffer4 text "!@" - sound0x0F + sound_item text_waitbutton db "@" diff --git a/text/battle.asm b/text/battle.asm index 9167ac7af..c17765855 100644 --- a/text/battle.asm +++ b/text/battle.asm @@ -396,7 +396,7 @@ BattleText_StringBuffer1GrewToLevel: ; 0x80c9c line "level @" deciram CurPartyLevel, 1, 3 text "!@" - sound0 + sound_dex_fanfare_50_79 db "@" ; 0x80cb9 diff --git a/text/common_2.asm b/text/common_2.asm index ea01fd975..052ea9ebb 100644 --- a/text/common_2.asm +++ b/text/common_2.asm @@ -108,7 +108,7 @@ UnknownText_0x1bc14f: ; 0x1bc14f line "level @" deciram CurPartyLevel, 1, 3 text "!@" - sound0 + sound_dex_fanfare_50_79 text_waitbutton db "@" ; 0x1bc16d @@ -1575,7 +1575,7 @@ UnknownText_0x1bd3be: ; 0x1bd3be line "@" text_from_ram StringBuffer1 text "!@" - sound0x0F + sound_item text_waitbutton db "@" ; 0x1bd3d6 @@ -1613,7 +1613,7 @@ UnknownText_0x1bd429: ; 0x1bd429 ; 0x1bd445 UnknownText_0x1bd445: ; 0x1bd445 - sound0x0A + sound_dex_fanfare_80_109 interpret_data db "@" ; 0x1bd448 diff --git a/text/common_3.asm b/text/common_3.asm index fe0cef171..adc32f6cb 100644 --- a/text/common_3.asm +++ b/text/common_3.asm @@ -931,7 +931,7 @@ UnknownText_0x1c0dba: ; 1c0dba text_from_ram StringBuffer1 text " came" line "out of its EGG!@" - sound0x02 + sound_caught_mon text_waitbutton db "@" ; 1c0dd7 @@ -1145,7 +1145,7 @@ ContestJudging_FirstPlaceText: ; 1c10fa interpret_data text "…" para "@" - text_from_ram wd016 + text_from_ram wBugContestWinnerName text "," line "who caught a" cont "@" @@ -1158,7 +1158,7 @@ ContestJudging_FirstPlaceScoreText: ; 1c113f text "" para "The winning score" line "was @" - deciram wd004, 2, 3 + deciram wBugContestFirstPlaceScore, 2, 3 text " points!" prompt ; 1c1166 @@ -1166,7 +1166,7 @@ ContestJudging_FirstPlaceScoreText: ; 1c113f ContestJudging_SecondPlaceText: ; 1c1166 text "Placing second was" line "@" - text_from_ram wd016 + text_from_ram wBugContestWinnerName text "," para "who caught a" line "@" @@ -1179,7 +1179,7 @@ ContestJudging_SecondPlaceScoreText: ; 1c1196 text "" para "The score was" line "@" - deciram wd008, 2, 3 + deciram wBugContestSecondPlaceScore, 2, 3 text " points!" prompt ; 1c11b5 @@ -1187,7 +1187,7 @@ ContestJudging_SecondPlaceScoreText: ; 1c1196 ContestJudging_ThirdPlaceText: ; 1c11b5 text "Placing third was" line "@" - text_from_ram wd016 + text_from_ram wBugContestWinnerName text "," para "who caught a" line "@" @@ -1200,7 +1200,7 @@ ContestJudging_ThirdPlaceScoreText: ; 1c11e4 text "" para "The score was" line "@" - deciram wd00c, 2, 3 + deciram wBugContestThirdPlaceScore, 2, 3 text " points!" prompt ; 1c1203 @@ -1641,7 +1641,7 @@ UnknownText_0x1c1b03: ; 1c1b03 UnknownText_0x1c1b2c: ; 1c1b2c text "Took @" - text_from_ram wd050 + text_from_ram wd050_MonNick text "'s" line "@" text_from_ram StringBuffer1 @@ -1656,7 +1656,7 @@ UnknownText_0x1c1b2c: ; 1c1b2c UnknownText_0x1c1b57: ; 1c1b57 text "Made @" - text_from_ram wd050 + text_from_ram wd050_MonNick text "" line "hold @" text_from_ram StringBuffer2 @@ -1671,7 +1671,7 @@ UnknownText_0x1c1b6f: ; 1c1b6f ; 1c1b8e UnknownText_0x1c1b8e: ; 1c1b8e - text_from_ram wd050 + text_from_ram wd050_MonNick text " isn't" line "holding anything." prompt @@ -1688,13 +1688,13 @@ UnknownText_0x1c1bc4: ; 1c1bc4 text_from_ram StringBuffer1 text "" line "from @" - text_from_ram wd050 + text_from_ram wd050_MonNick text "." prompt ; 1c1bdc UnknownText_0x1c1bdc: ; 1c1bdc - text_from_ram wd050 + text_from_ram wd050_MonNick text " is" line "already holding" diff --git a/text/common_4.asm b/text/common_4.asm index 528b3f1d4..ad4a90d27 100644 --- a/text/common_4.asm +++ b/text/common_4.asm @@ -338,10 +338,10 @@ UnknownText_0x1c4797: ; 0x1c4797 UnknownText_0x1c47d4: ; 0x1c47d4 text "Hm… I see you met" line "@" - text_from_ram wd003 + text_from_ram wSeerNickname text " here:" cont "@" - text_from_ram wd00e + text_from_ram wSeerCaughtLocation text "!" prompt ; 0x1c47fa @@ -349,11 +349,11 @@ UnknownText_0x1c47d4: ; 0x1c47d4 UnknownText_0x1c47fa: ; 0x1c47fa text "The time was" line "@" - text_from_ram wd01f + text_from_ram wSeerTimeOfDay text "!" para "Its level was @" - text_from_ram wd036 + text_from_ram wSeerCaughtLevelString text "!" para "Am I good or what?" @@ -362,21 +362,21 @@ UnknownText_0x1c47fa: ; 0x1c47fa UnknownText_0x1c4837: ; 0x1c4837 text "Hm… @" - text_from_ram wd003 + text_from_ram wSeerNickname text "" line "came from @" - text_from_ram wd02a + text_from_ram wSeerOTName text "" cont "in a trade?" para "@" - text_from_ram wd00e + text_from_ram wSeerCaughtLocation text "" line "was where @" - text_from_ram wd02a + text_from_ram wSeerOTName text "" cont "met @" - text_from_ram wd003 + text_from_ram wSeerNickname text "!" prompt ; 0x1c487f @@ -393,7 +393,7 @@ UnknownText_0x1c487f: ; 0x1c487f para "I can't tell where" line "you met it, but it" cont "was at level @" - text_from_ram wd036 + text_from_ram wSeerCaughtLevelString text "." para "Am I good or what?" @@ -434,7 +434,7 @@ UnknownText_0x1c49c6: ; 0x1c49c6 line "grown a little." para "@" - text_from_ram wd003 + text_from_ram wSeerNickname text " seems" line "to be becoming" cont "more confident." @@ -445,7 +445,7 @@ UnknownText_0x1c4a21: ; 0x1c4a21 text "Incidentally…" para "@" - text_from_ram wd003 + text_from_ram wSeerNickname text " has" line "grown. It's gained" cont "much strength." @@ -459,7 +459,7 @@ UnknownText_0x1c4a5b: ; 0x1c4a5b line "grown mighty!" para "This @" - text_from_ram wd003 + text_from_ram wSeerNickname text "" line "must have come" @@ -483,12 +483,12 @@ UnknownText_0x1c4ae5: ; 0x1c4ae5 para "seen a #MON as" line "mighty as this" cont "@" - text_from_ram wd003 + text_from_ram wSeerNickname text "." para "I'm sure that" line "seeing @" - text_from_ram wd003 + text_from_ram wSeerNickname text "" para "in battle would" line "excite anyone." @@ -859,13 +859,13 @@ UnknownText_0x1c51d7: ; 0x1c51d7 ; 0x1c51f4 UnknownText_0x1c51f4: ; 0x1c51f4 - text_from_ram wd006 + text_from_ram wMobileParticipant1Nickname text "," line "@" - text_from_ram wd00c + text_from_ram wMobileParticipant2Nickname text " and" cont "@" - text_from_ram wd012 + text_from_ram wMobileParticipant3Nickname text "." para "Use these three?" @@ -989,7 +989,7 @@ UnknownText_0x1c5580: ; 0x1c5580 ; 0x1c5588 UnknownText_0x1c5588: ; 0x1c5588 - text $56 + text "<......>" done ; 0x1c558b @@ -1050,7 +1050,7 @@ UnknownText_0x1c5660: ; 0x1c5660 line "@" text_from_ram StringBuffer2 text "!@" - sound0 + sound_dex_fanfare_50_79 text_waitbutton db "@" ; 0x1c5677 @@ -1189,7 +1189,7 @@ UnknownText_0x1c5823: ; 0x1c5823 ; 0x1c5824 UnknownText_0x1c5824: ; 0x1c5824 - text $56 + text "<......>" done ; 0x1c5827 @@ -1367,7 +1367,7 @@ UnknownText_0x1c5b17: ; 0x1c5b17 text_from_ram EnemyMonNick text "" line "was caught!@" - sound0x02 + sound_caught_mon db "@" ; 0x1c5b34 @@ -1396,7 +1396,7 @@ UnknownText_0x1c5b53: ; 0x1c5b53 text "'s data" line "was newly added to" cont "the #DEX.@" - sound0x2C + sound_slot_machine_start text_waitbutton db "@" ; 0x1c5b7e @@ -1514,7 +1514,7 @@ UnknownText_0x1c5cf1: ; 0x1c5cf1 UnknownText_0x1c5d03: ; 0x1c5d03 text "There was a trophy" line "inside!@" - sound0 + sound_dex_fanfare_50_79 text "" para "@" text_from_ram PlayerName diff --git a/wram.asm b/wram.asm index c0069fd06..c6e0438f6 100644 --- a/wram.asm +++ b/wram.asm @@ -1528,17 +1528,20 @@ LuckyNumberDigit1Buffer:: wCurrentRadioLine:: wMovementBufferCount:: wMartItem1BCD:: +wBugContestFirstPlacePersonID:: ds 1 wd003:: LuckyNumberDigit2Buffer:: PhoneCallerLo:: wNextRadioLine:: wMovementBufferPerson:: +wBugContestFirstPlaceMon:: ds 1 wd004:: LuckyNumberDigit3Buffer:: PhoneCallerHi:: wRadioTextDelay:: +wBugContestFirstPlaceScore:: ds 1 wd005:: LuckyNumberDigit4Buffer:: @@ -1547,18 +1550,24 @@ wNumRadioLinesPrinted:: wMartItem2BCD:: ds 1 wd006:: +wMobileParticipant1Nickname:: LuckyNumberDigit5Buffer:: EndFlypoint:: ; d006 wOaksPkmnTalkSegmentCounter:: +wBugContestSecondPlacePersonID:: ds 1 wd007:: MovementBuffer:: ; d007 +wBugContestSecondPlaceMon:: ds 1 wMartItem3BCD:: +wBugContestSecondPlaceScore:: wd008:: ds 2 +wBugContestThirdPlacePersonID:: wd00a:: ds 1 +wBugContestThirdPlaceMon:: wMartItem4BCD:: wd00b:: ds 1 @@ -1566,18 +1575,25 @@ wRadioText:: ds 2 * SCREEN_WIDTH wRadioTextEnd:: ds wRadioText - @ +wMobileParticipant2Nickname:: +wBugContestThirdPlaceScore:: wd00c:: ds 1 wd00d:: ds 1 wMartItem5BCD:: +wBugContestTempPersonID:: wd00e:: ds 1 +wBugContestTempMon:: wd00f:: ds 1 +wBugContestTempScore:: wd010:: ds 1 wMartItem6BCD:: wd011:: ds 1 +wMobileParticipant3Nickname:: wd012:: ds 1 wd013:: ds 1 wMartItem7BCD:: wd014:: ds 2 +wBugContestWinnerName:: wd016:: ds 1 wMartItem8BCD:: wd017:: ds 1 From 6c248953b79237de98a177b7820ed7b9c4e96880 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 24 Nov 2015 10:35:13 -0500 Subject: [PATCH 37/40] Mobile functions for fixed-phrase selection --- constants/misc_constants.asm | 2 + engine/sprites.asm | 2 +- misc/battle_tower_47.asm | 4093 +-------------------------------- misc/fixed_words.asm | 4182 ++++++++++++++++++++++++++++++++++ 4 files changed, 4186 insertions(+), 4093 deletions(-) create mode 100755 misc/fixed_words.asm diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index e9f2a387f..cf1e9dfae 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -290,3 +290,5 @@ NUM_BADGES EQU NUM_JOHTO_BADGES + NUM_KANTO_BADGES const SPRITE_ANIM_INDEX_2A const SPRITE_ANIM_INDEX_2B const SPRITE_ANIM_INDEX_2C + +NUM_KANA EQU $2d diff --git a/engine/sprites.asm b/engine/sprites.asm index bf82659e8..f12ed1de8 100755 --- a/engine/sprites.asm +++ b/engine/sprites.asm @@ -889,7 +889,7 @@ endr ld a, [hli] ld h, [hl] ld l, a - ld de, $fff0 + ld de, -$10 add hl, de ld e, l ld d, h diff --git a/misc/battle_tower_47.asm b/misc/battle_tower_47.asm index 58f527868..a11f61064 100755 --- a/misc/battle_tower_47.asm +++ b/misc/battle_tower_47.asm @@ -87,4098 +87,7 @@ endr ret ; 11c05d -Function11c05d: ; 11c05d - ld a, e - or d - jr z, .asm_11c071 - ld a, e - and d - cp $ff - jr z, .asm_11c071 - push hl - call Function11c156 - pop hl - call PlaceString - and a - ret - -.asm_11c071 - ld c, l - ld b, h - scf - ret -; 11c075 - -Function11c075: ; 11c075 - push de - ld a, c - call Function11c254 - pop de - ld bc, wcd36 - call Function11c08f - ret -; 11c082 - -Function11c082: ; 11c082 - push de - ld a, c - call Function11c254 - pop de - ld bc, wcd36 - call Function11c0c6 - ret -; 11c08f - -Function11c08f: ; 11c08f - ld l, e - ld h, d - push hl - ld a, $3 -.asm_11c094 - push af - ld a, [bc] - ld e, a - inc bc - ld a, [bc] - ld d, a - inc bc - push bc - call Function11c05d - jr c, .asm_11c0a2 - inc bc - -.asm_11c0a2 - ld l, c - ld h, b - pop bc - pop af - dec a - jr nz, .asm_11c094 - pop hl - ld de, $0028 - add hl, de - ld a, $3 -.asm_11c0b0 - push af - ld a, [bc] - ld e, a - inc bc - ld a, [bc] - ld d, a - inc bc - push bc - call Function11c05d - jr c, .asm_11c0be - inc bc - -.asm_11c0be - ld l, c - ld h, b - pop bc - pop af - dec a - jr nz, .asm_11c0b0 - ret -; 11c0c6 - - -Function11c0c6: ; 11c0c6 - ld a, [wJumptableIndex] - ld l, a - ld a, [wcf64] - ld h, a - push hl - ld hl, $c608 + 16 - ld a, $0 - ld [hli], a - push de - xor a - ld [wJumptableIndex], a - ld a, $12 - ld [wcf64], a - ld a, $6 -.asm_11c0e1 - push af - ld a, [bc] - ld e, a - inc bc - ld a, [bc] - ld d, a - inc bc - or e - jr z, .asm_11c133 - push hl - push bc - call Function11c156 - call Function11c14a - ld e, c - pop bc - pop hl - ld a, e - or a - jr z, .asm_11c133 -.asm_11c0fa - ld a, [wcf64] - cp $12 - jr z, .asm_11c102 - inc e - -.asm_11c102 - cp e - jr nc, .asm_11c11c - ld a, [wJumptableIndex] - inc a - ld [wJumptableIndex], a - ld [hl], $4e - rra - jr c, .asm_11c113 - ld [hl], $55 - -.asm_11c113 - inc hl - ld a, $12 - ld [wcf64], a - dec e - jr .asm_11c0fa - -.asm_11c11c - cp $12 - jr z, .asm_11c123 - ld [hl], $7f - inc hl - -.asm_11c123 - sub e - ld [wcf64], a - ld de, $c608 -.asm_11c12a - ld a, [de] - cp $50 - jr z, .asm_11c133 - inc de - ld [hli], a - jr .asm_11c12a - -.asm_11c133 - pop af - dec a - jr nz, .asm_11c0e1 - ld [hl], $57 - pop bc - ld hl, $c608 + 16 - call PlaceWholeStringInBoxAtOnce - pop hl - ld a, l - ld [wJumptableIndex], a - ld a, h - ld [wcf64], a - ret -; 11c14a - -Function11c14a: ; 11c14a - ld c, $0 - ld hl, $c608 -.asm_11c14f - ld a, [hli] - cp $50 - ret z - inc c - jr .asm_11c14f -; 11c156 - -Function11c156: ; 11c156 - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, $50 - ld hl, $c608 - ld bc, $000b - call ByteFill - ld a, d - and a - jr z, .asm_11c19c - ld hl, Unknown_11daac - dec d - sla d - ld c, d - ld b, $0 - add hl, bc - ld a, [hli] - ld c, a - ld a, [hl] - ld b, a - push bc - pop hl - ld c, e - ld b, $0 - sla c - rl b - sla c - rl b - sla c - rl b - add hl, bc - ld bc, $0005 -.asm_11c18f - ld de, $c608 - call CopyBytes - ld de, $c608 - pop af - ld [rSVBK], a - ret - -.asm_11c19c - ld a, e - ld [wd265], a - call GetPokemonName - ld hl, StringBuffer1 - ld bc, $000a - jr .asm_11c18f -; 11c1ab - -Function11c1ab: ; 11c1ab - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - call Function11c1b9 - pop af - ld [hInMenu], a - ret -; 11c1b9 - -Function11c1b9: ; 11c1b9 - call Function11c1ca - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - call Function11c283 - pop af - ld [rSVBK], a - ret -; 11c1ca - -Function11c1ca: ; 11c1ca - xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [wcf66], a - ld [wcd23], a - ld [BGMapBuffer], a - ld [wcd21], a - ld [CreditsTimer], a - ld [wcd35], a - ld [wcd2b], a - ld a, $ff - ld [wcd24], a - ld a, [MenuSelection2] - dec a - call Function11c254 - call ClearBGPalettes - call ClearSprites - call ClearScreen - call Function11d323 - call SetPalettes - call DisableLCD - ld hl, GFX_11d67e - ld de, VTiles2 - ld bc, $60 - call CopyBytes - ld hl, LZ_11d6de - ld de, VTiles0 - call Decompress - call EnableLCD - callba ReloadMapPart - callba Function8cf53 - callba LoadPokemonData - callba Function40c30 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, $c6d0 - ld de, LYOverrides - ld bc, $100 - call CopyBytes - pop af - ld [rSVBK], a - call Function11d4aa - call Function11d3ba - ret -; 11c254 - -Function11c254: ; 11c254 - push af - ld a, $4 - call GetSRAMBank - ld hl, $a007 - pop af - sla a - sla a - ld c, a - sla a - add c - ld c, a - ld b, $0 - add hl, bc - ld de, wcd36 - ld bc, $000c - call CopyBytes - call CloseSRAM - ret -; 11c277 - - -Function11c277: ; 11c277 (47:4277) - ld a, $7f - hlcoord 0, 6 - ld bc, $f0 - call ByteFill - ret - -Function11c283: ; 11c283 -.asm_11c283 - call JoyTextDelay - ld a, [hJoyPressed] - ld [hJoypadPressed], a - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_11c2a2 - call Function11c2ac - callba Function8cf69 - callba ReloadMapPart - jr .asm_11c283 - -.asm_11c2a2 - callba Function8cf53 - call ClearSprites - ret -; 11c2ac - -Function11c2ac: ; 11c2ac - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_11c2bb -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 11c2bb - - -Jumptable_11c2bb: ; 11c2bb (47:42bb) - dw Function11c2e9 - dw Function11c346 - dw Function11c35f - dw Function11c373 - dw Function11c3c2 - dw Function11c3ed - dw Function11c52c - dw Function11c53d - dw Function11c658 - dw Function11c675 - dw Function11c9bd - dw Function11c9c3 - dw Function11caad - dw Function11cab3 - dw Function11cb52 - dw Function11cb66 - dw Function11cbf5 - dw Function11ccef - dw Function11cd04 - dw Function11cd20 - dw Function11cd54 - dw Function11ce0b - dw Function11ce2b - - -Function11c2e9: ; 11c2e9 (47:42e9) - depixel 3, 1, 2, 5 - ld a, SPRITE_ANIM_INDEX_1D - call _InitSpriteAnimStruct - depixel 8, 1, 2, 5 - ld a, SPRITE_ANIM_INDEX_1D - call _InitSpriteAnimStruct - ld hl, $c - add hl, bc - ld a, $1 - ld [hl], a - depixel 9, 2, 2, 0 - ld a, SPRITE_ANIM_INDEX_1D - call _InitSpriteAnimStruct - ld hl, $c - add hl, bc - ld a, $3 - ld [hl], a - depixel 10, 16 - ld a, SPRITE_ANIM_INDEX_1D - call _InitSpriteAnimStruct - ld hl, $c - add hl, bc - ld a, $4 - ld [hl], a - depixel 10, 4 - ld a, SPRITE_ANIM_INDEX_1D - call _InitSpriteAnimStruct - ld hl, $c - add hl, bc - ld a, $5 - ld [hl], a - depixel 10, 2 - ld a, SPRITE_ANIM_INDEX_1D - call _InitSpriteAnimStruct - ld hl, $c - add hl, bc - ld a, $2 - ld [hl], a - ld hl, wcd23 - set 1, [hl] - set 2, [hl] - jp Function11cfb5 - -Function11c346: ; 11c346 (47:4346) - ld a, $9 - ld [wcd2d], a - ld a, $2 - ld [wcd2e], a - ld [wcd2f], a - ld [wcd30], a - ld de, wcd2d - call Function11cfce - jp Function11cfb5 - -Function11c35f: ; 11c35f (47:435f) - ld hl, wcd2f -rept 2 - inc [hl] -endr -rept 2 - dec hl -endr - dec [hl] - push af - ld de, wcd2d - call Function11cfce - pop af - ret nz - jp Function11cfb5 - -Function11c373: ; 11c373 (47:4373) - ld hl, wcd30 -rept 2 - inc [hl] -endr -rept 2 - dec hl -endr - dec [hl] - push af - ld de, wcd2d - call Function11cfce - pop af - ret nz - call Function11c38a - jp Function11cfb5 - -Function11c38a: ; 11c38a (47:438a) - ld hl, Unknown_11c986 - ld bc, wcd36 - ld a, $6 -.asm_11c392 - push af - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push hl - push de - pop hl - ld a, [bc] - inc bc - ld e, a - ld a, [bc] - inc bc - ld d, a - push bc - or e - jr z, .asm_11c3af - ld a, e - and d - cp $ff - jr z, .asm_11c3af - call Function11c05d - jr .asm_11c3b5 -.asm_11c3af - ld de, String_11c3bc - call PlaceString -.asm_11c3b5 - pop bc - pop hl - pop af - dec a - jr nz, .asm_11c392 - ret -; 11c3bc (47:43bc) - -String_11c3bc: ; 11c3bc - db "ーーーーー@" -; 11c3c2 - -Function11c3c2: ; 11c3c2 (47:43c2) - call Function11c277 - ld de, Unknown_11cfbe - call Function11d035 - hlcoord 1, 7 - ld de, String_11c4db - call PlaceString - hlcoord 1, 16 - ld de, String_11c51b - call PlaceString - call Function11c4be - ld hl, wcd23 - set 0, [hl] - ld hl, wcd24 - res 0, [hl] - call Function11cfb5 - -Function11c3ed: ; 11c3ed (47:43ed) - ld hl, BGMapBuffer ; wcd20 (aliases: CreditsPos) - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and $8 - jr nz, .asm_11c426 - ld a, [de] - and $2 - jr nz, .asm_11c41a - ld a, [de] - and $1 - jr nz, .asm_11c42c - ld de, hJoyLast - ld a, [de] - and $40 - jr nz, .asm_11c47c - ld a, [de] - and $80 - jr nz, .asm_11c484 - ld a, [de] - and $20 - jr nz, .asm_11c48c - ld a, [de] - and $10 - jr nz, .asm_11c498 - ret -.asm_11c41a - call PlayClickSFX -.asm_11c41d - ld hl, wcd24 - set 0, [hl] - ld a, $c - jr .asm_11c475 -.asm_11c426 - ld a, $8 - ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos) - ret -.asm_11c42c - ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) - cp $6 - jr c, .asm_11c472 - sub $6 - jr z, .asm_11c469 - dec a - jr z, .asm_11c41d - ld hl, wcd36 - ld c, $c - xor a -.asm_11c440 - or [hl] - inc hl - dec c - jr nz, .asm_11c440 - and a - jr z, .asm_11c460 - ld de, Unknown_11cfba - call Function11cfce - decoord 1, 2 - ld bc, wcd36 - call Function11c08f - ld hl, wcd24 - set 0, [hl] - ld a, $e - jr .asm_11c475 -.asm_11c460 - ld hl, wcd24 - set 0, [hl] - ld a, $11 - jr .asm_11c475 -.asm_11c469 - ld hl, wcd24 - set 0, [hl] - ld a, $a - jr .asm_11c475 -.asm_11c472 - call Function11c4a5 -.asm_11c475 - ld [wJumptableIndex], a - call PlayClickSFX - ret -.asm_11c47c - ld a, [hl] - cp $3 - ret c - sub $3 - jr .asm_11c4a3 -.asm_11c484 - ld a, [hl] - cp $6 - ret nc - add $3 - jr .asm_11c4a3 -.asm_11c48c - ld a, [hl] - and a - ret z - cp $3 - ret z - cp $6 - ret z - dec a - jr .asm_11c4a3 -.asm_11c498 - ld a, [hl] - cp $2 - ret z - cp $5 - ret z - cp $8 - ret z - inc a -.asm_11c4a3 - ld [hl], a - ret - -Function11c4a5: ; 11c4a5 (47:44a5) - ld hl, wcd23 - res 0, [hl] - ld a, [wcd2b] - and a - jr nz, .asm_11c4b7 - xor a - ld [wcd21], a - ld a, $6 - ret -.asm_11c4b7 - xor a - ld [CreditsTimer], a - ld a, $15 - ret - -Function11c4be: ; 11c4be (47:44be) - ld a, $1 - hlcoord 0, 6, AttrMap - ld bc, $a0 - call ByteFill - ld a, $7 - hlcoord 0, 14, AttrMap - ld bc, $28 - call ByteFill - callba ReloadMapPart - ret -; 11c4db (47:44db) - -String_11c4db: ; 11c4db - db "6つのことば", $1f, "くみあわせます" - next "かえたいところ", $1f, "えらぶと でてくる" - next "ことばのグループから いれかえたい" - next "たんご", $1f, "えらんでください" - db "@" -; 11c51b - -String_11c51b: ; 11c51b - db "ぜんぶけす やめる けってい@" -; 11c52c - -Function11c52c: ; 11c52c (47:452c) - call Function11c277 - call Function11c5f0 - call Function11c618 - ld hl, wcd24 - res 1, [hl] - call Function11cfb5 - -Function11c53d: ; 11c53d (47:453d) - ld hl, wcd21 - ld de, hJoypadPressed ; $ffa3 - - ld a, [de] - and START - jr nz, .start - - ld a, [de] - and SELECT - jr nz, .select - - ld a, [de] - and B_BUTTON - jr nz, .b - - ld a, [de] - and A_BUTTON - jr nz, .a - - ld de, hJoyLast - - ld a, [de] - and D_UP - jr nz, .up - - ld a, [de] - and D_DOWN - jr nz, .down - - ld a, [de] - and D_LEFT - jr nz, .left - - ld a, [de] - and D_RIGHT - jr nz, .right - - ret - -.a - ld a, [wcd21] - cp $f - jr c, .asm_11c59d - sub $f - jr z, .asm_11c5ab - dec a - jr z, .asm_11c599 - jr .b - -.start - ld hl, wcd24 - set 0, [hl] - ld a, $8 - ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos) - -.b - ld a, $4 - jr .asm_11c59f - -.select - ld a, [wcd2b] - xor $1 - ld [wcd2b], a - ld a, $15 - jr .asm_11c59f - -.asm_11c599 - ld a, $13 - jr .asm_11c59f - -.asm_11c59d - ld a, $8 - -.asm_11c59f - ld hl, wcd24 - set 1, [hl] - ld [wJumptableIndex], a - call PlayClickSFX - ret - -.asm_11c5ab - ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) - call Function11ca6a - call PlayClickSFX - ret - -.up - ld a, [hl] - cp $3 - ret c - sub $3 - jr .asm_11c5ee - -.down - ld a, [hl] - cp $f - ret nc - add $3 - jr .asm_11c5ee - -.left - ld a, [hl] - and a - ret z - cp $3 - ret z - cp $6 - ret z - cp $9 - ret z - cp $c - ret z - cp $f - ret z - dec a - jr .asm_11c5ee - -.right - ld a, [hl] - cp $2 - ret z - cp $5 - ret z - cp $8 - ret z - cp $b - ret z - cp $e - ret z - cp $11 - ret z - inc a - -.asm_11c5ee - ld [hl], a - ret -; 11c5f0 - -Function11c5f0: ; 11c5f0 (47:45f0) - ld de, Strings_11da52 - ld bc, Unknown_11c63a - ld a, $f -.asm_11c5f8 - push af - ld a, [bc] - inc bc - ld l, a - ld a, [bc] - inc bc - ld h, a - push bc - call PlaceString -.asm_11c603 - inc de - ld a, [de] - cp $50 - jr z, .asm_11c603 - pop bc - pop af - dec a - jr nz, .asm_11c5f8 - hlcoord 1, 17 - ld de, String_11c62a - call PlaceString - ret - -Function11c618: ; 11c618 (47:4618) - ld a, $2 - hlcoord 0, 6, AttrMap - ld bc, $c8 - call ByteFill - callba ReloadMapPart - ret -; 11c62a (47:462a) - -String_11c62a: ; 11c62a - db "けす モード やめる@" -; 11c63a - -Unknown_11c63a: ; 11c63a - dwcoord 1, 7 - dwcoord 7, 7 - dwcoord 13, 7 - dwcoord 1, 9 - dwcoord 7, 9 - dwcoord 13, 9 - dwcoord 1, 11 - dwcoord 7, 11 - dwcoord 13, 11 - dwcoord 1, 13 - dwcoord 7, 13 - dwcoord 13, 13 - dwcoord 1, 15 - dwcoord 7, 15 - dwcoord 13, 15 -; 11c658 - -Function11c658: ; 11c658 (47:4658) - call Function11c277 - call Function11c770 - ld de, Unknown_11cfc2 - call Function11d035 - call Function11c9ab - call Function11c7bc - call Function11c86e - ld hl, wcd24 - res 3, [hl] - call Function11cfb5 - -Function11c675: ; 11c675 (47:4675) - ld hl, wcd25 - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and A_BUTTON - jr nz, .a - ld a, [de] - and B_BUTTON - jr nz, .b - ld a, [de] - and START - jr nz, .start - ld a, [de] - and SELECT - jr z, .select - - ld a, [wcd26] - and a - ret z - sub $c - jr nc, .asm_11c699 - xor a -.asm_11c699 - ld [wcd26], a - jr .asm_11c6c4 - -.start - ld hl, wcd28 - ld a, [wcd26] - add $c - cp [hl] - ret nc - ld [wcd26], a - ld a, [hl] - ld b, a - ld hl, wcd25 - ld a, [wcd26] - add [hl] - jr c, .asm_11c6b9 - cp b - jr c, .asm_11c6c4 -.asm_11c6b9 - ld a, [wcd28] - ld hl, wcd26 - sub [hl] - dec a - ld [wcd25], a -.asm_11c6c4 - call Function11c992 - call Function11c7bc - call Function11c86e - ret - -.select - ld de, hJoyLast - ld a, [de] - and D_UP - jr nz, .asm_11c708 - ld a, [de] - and D_DOWN - jr nz, .asm_11c731 - ld a, [de] - and D_LEFT - jr nz, .asm_11c746 - ld a, [de] - and D_RIGHT - jr nz, .asm_11c755 - ret - -.a - call Function11c8f6 - ld a, $4 - ld [wcd35], a - jr .asm_11c6fc -.b - ld a, [wcd2b] - and a - jr nz, .asm_11c6fa - ld a, $6 - jr .asm_11c6fc -.asm_11c6fa - ld a, $15 -.asm_11c6fc - ld [wJumptableIndex], a - ld hl, wcd24 - set 3, [hl] - call PlayClickSFX - ret -.asm_11c708 - ld a, [hl] - cp $3 - jr c, .asm_11c711 - sub $3 - jr .asm_11c76e -.asm_11c711 - ld a, [wcd26] - sub $3 - ret c - ld [wcd26], a - jr .asm_11c6c4 -.asm_11c71c - ld hl, wcd28 - ld a, [wcd26] - add $c - ret c - cp [hl] - ret nc - ld a, [wcd26] - add $3 - ld [wcd26], a - jr .asm_11c6c4 -.asm_11c731 - ld a, [wcd28] - ld b, a - ld a, [wcd26] - add [hl] - add $3 - cp b - ret nc - ld a, [hl] - cp $9 - jr nc, .asm_11c71c - add $3 - jr .asm_11c76e -.asm_11c746 - ld a, [hl] - and a - ret z - cp $3 - ret z - cp $6 - ret z - cp $9 - ret z - dec a - jr .asm_11c76e -.asm_11c755 - ld a, [wcd28] - ld b, a - ld a, [wcd26] - add [hl] - inc a - cp b - ret nc - ld a, [hl] - cp $2 - ret z - cp $5 - ret z - cp $8 - ret z - cp $b - ret z - inc a -.asm_11c76e - ld [hl], a - ret - -Function11c770: ; 11c770 (47:4770) - xor a - ld [wcd25], a - ld [wcd26], a - ld [wcd27], a - ld a, [wcd2b] - and a - jr nz, .asm_11c7ab - ld a, [wcd21] - and a - jr z, .asm_11c799 - dec a - sla a - ld hl, Unknown_11f220 - ld c, a - ld b, 0 - add hl, bc - ld a, [hli] - ld [wcd28], a - ld a, [hl] -.asm_11c795 - ld [wcd29], a - ret -.asm_11c799 - ld a, [wc7d2] - ld [wcd28], a -.asm_11c79f - ld c, $c - call SimpleDivide - and a - jr nz, .asm_11c7a8 - dec b -.asm_11c7a8 - ld a, b - jr .asm_11c795 -.asm_11c7ab - ld hl, $c68a + 30 - ld a, [CreditsTimer] - ld c, a - ld b, 0 -rept 2 - add hl, bc -endr - ld a, [hl] - ld [wcd28], a - jr .asm_11c79f - -Function11c7bc: ; 11c7bc (47:47bc) - ld bc, Unknown_11c854 - ld a, [wcd2b] - and a - jr nz, .asm_11c814 - ld a, [wcd21] - ld d, a - and a - jr z, .asm_11c7e9 - ld a, [wcd26] - ld e, a -.asm_11c7d0 - ld a, [bc] - ld l, a - inc bc - ld a, [bc] - ld h, a - inc bc - and l - cp $ff - ret z - push bc - push de - call Function11c05d - pop de - pop bc - inc e - ld a, [wcd28] - cp e - jr nz, .asm_11c7d0 - ret -.asm_11c7e9 - ld hl, wd100 - ld a, [wcd26] - ld e, a - add hl, de -.asm_11c7f1 - push de - ld a, [hli] - ld e, a - ld d, $0 - push hl - ld a, [bc] - ld l, a - inc bc - ld a, [bc] - ld h, a - inc bc - and l - cp $ff - jr z, .asm_11c811 - push bc - call Function11c05d - pop bc - pop hl - pop de - inc e - ld a, [wcd28] - cp e - jr nz, .asm_11c7f1 - ret -.asm_11c811 - pop hl - pop de - ret -.asm_11c814 - ld hl, $c648 - ld a, [wcd22] - ld e, a - ld d, $0 -rept 2 - add hl, de -endr - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - push de - pop hl - ld a, [wcd26] - ld e, a - ld d, $0 -rept 2 - add hl, de -endr - ld a, [wcd26] - ld e, a -.asm_11c831 - push de - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push hl - ld a, [bc] - ld l, a - inc bc - ld a, [bc] - ld h, a - inc bc - and l - cp $ff - jr z, .asm_11c851 - push bc - call Function11c05d - pop bc - pop hl - pop de - inc e - ld a, [wcd28] - cp e - jr nz, .asm_11c831 - ret -.asm_11c851 - pop hl - pop de - ret -; 11c854 (47:4854) - -Unknown_11c854: ; 11c854 - dwcoord 2, 8 - dwcoord 8, 8 - dwcoord 14, 8 - dwcoord 2, 10 - dwcoord 8, 10 - dwcoord 14, 10 - dwcoord 2, 12 - dwcoord 8, 12 - dwcoord 14, 12 - dwcoord 2, 14 - dwcoord 8, 14 - dwcoord 14, 14 - dw -1 -; 11c86e - -Function11c86e: ; 11c86e (47:486e) - ld a, [wcd26] - and a - jr z, .asm_11c88a - hlcoord 2, 17 - ld de, String_11c8f0 - call PlaceString - hlcoord 6, 17 - ld c, $3 - xor a -.asm_11c883 - ld [hli], a - inc a - dec c - jr nz, .asm_11c883 - jr .asm_11c895 -.asm_11c88a - hlcoord 2, 17 - ld c, $7 - ld a, $7f -.asm_11c891 - ld [hli], a - dec c - jr nz, .asm_11c891 -.asm_11c895 - ld hl, wcd28 - ld a, [wcd26] - add $c - jr c, .asm_11c8b7 - cp [hl] - jr nc, .asm_11c8b7 - hlcoord 16, 17 - ld de, String_11c8f3 - call PlaceString - hlcoord 11, 17 - ld a, $3 - ld c, a -.asm_11c8b1 - ld [hli], a - inc a - dec c - jr nz, .asm_11c8b1 - ret -.asm_11c8b7 - hlcoord 17, 16 - ld a, $7f - ld [hl], a - hlcoord 11, 17 - ld c, $7 -.asm_11c8c2 - ld [hli], a - dec c - jr nz, .asm_11c8c2 - ret -; 11c8c7 (47:48c7) - -Function11c8c7: ; 11c8c7 - inc a - push af - and $f - ld [hDividend], a - pop af - and $f0 - swap a - ld [hQuotient], a - xor a - ld [$ffb5], a - push hl - callba Function11a80c - pop hl - ld a, [wcd63] - add $f6 - ld [hli], a - ld a, [wcd62] - add $f6 - ld [hli], a - ret -; 11c8ec - -String_11c8ec: ; 11c8ec - db "ぺージ@" -; 11c8f0 - -String_11c8f0: ; 11c8f0 - db "まえ@" -; 11c8f3 - -String_11c8f3: ; 11c8f3 - db "つぎ@" -; 11c8f6 - -Function11c8f6: ; 11c8f6 (47:48f6) - ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) - call Function11c95d - push hl - ld a, [wcd2b] - and a - jr nz, .asm_11c938 - ld a, [wcd21] - ld d, a - and a - jr z, .asm_11c927 - ld hl, wcd26 - ld a, [wcd25] - add [hl] -.asm_11c911 - ld e, a -.asm_11c912 - pop hl - push de - call Function11c05d - pop de - ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) - ld c, a - ld b, $0 - ld hl, wcd36 -rept 2 - add hl, bc -endr - ld [hl], e - inc hl - ld [hl], d - ret -.asm_11c927 - ld hl, wcd26 - ld a, [wcd25] - add [hl] - ld c, a - ld b, $0 - ld hl, wd100 - add hl, bc - ld a, [hl] - jr .asm_11c911 -.asm_11c938 - ld hl, $c648 - ld a, [wcd22] - ld e, a - ld d, $0 -rept 2 - add hl, de -endr - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - push de - pop hl - ld a, [wcd26] - ld e, a - ld d, $0 -rept 2 - add hl, de -endr - ld a, [wcd25] - ld e, a -rept 2 - add hl, de -endr - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - jr .asm_11c912 - -Function11c95d: ; 11c95d (47:495d) - sla a - ld c, a - ld b, 0 - ld hl, Unknown_11c986 - add hl, bc - ld a, [hli] - ld c, a - ld a, [hl] - ld b, a - push bc - push bc - pop hl - ld a, $5 - ld c, a - ld a, $7f -.asm_11c972 - ld [hli], a - dec c - jr nz, .asm_11c972 - dec hl - ld bc, -20 - add hl, bc - ld a, $5 - ld c, a - ld a, $7f -.asm_11c980 - ld [hld], a - dec c - jr nz, .asm_11c980 - pop hl - ret -; 11c986 (47:4986) - -Unknown_11c986: - dwcoord 1, 2 - dwcoord 7, 2 - dwcoord 13, 2 - dwcoord 1, 4 - dwcoord 7, 4 - dwcoord 13, 4 -; 11c992 - -Function11c992: ; 11c992 (47:4992) - ld a, $8 - hlcoord 2, 7 -.asm_11c997 - push af - ld a, $7f - push hl - ld bc, $11 - call ByteFill - pop hl - ld bc, $14 - add hl, bc - pop af - dec a - jr nz, .asm_11c997 - ret - -Function11c9ab: ; 11c9ab (47:49ab) - ld a, $7 - hlcoord 0, 6, AttrMap - ld bc, $c8 - call ByteFill - callba ReloadMapPart - ret - -Function11c9bd: ; 11c9bd (47:49bd) - ld de, String_11ca38 - call Function11ca7f - -Function11c9c3: ; 11c9c3 (47:49c3) - ld hl, wcd2a - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and $1 - jr nz, .asm_11c9de - ld a, [de] - and $2 - jr nz, .asm_11c9e9 - ld a, [de] - and $40 - jr nz, .asm_11c9f7 - ld a, [de] - and $80 - jr nz, .asm_11c9fc - ret -.asm_11c9de - ld a, [hl] - and a - jr nz, .asm_11c9e9 - call Function11ca5e - xor a - ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos) -.asm_11c9e9 - ld hl, wcd24 - set 4, [hl] - ld a, $4 - ld [wJumptableIndex], a - call PlayClickSFX - ret -.asm_11c9f7 - ld a, [hl] - and a - ret z - dec [hl] - ret -.asm_11c9fc - ld a, [hl] - and a - ret nz - inc [hl] - ret - -Function11ca01: ; 11ca01 (47:4a01) - hlcoord 14, 7, AttrMap - ld de, $14 - ld a, $5 - ld c, a -.asm_11ca0a - push hl - ld a, $6 - ld b, a - ld a, $7 -.asm_11ca10 - ld [hli], a - dec b - jr nz, .asm_11ca10 - pop hl - add hl, de - dec c - jr nz, .asm_11ca0a - -Function11ca19: ; 11ca19 (47:4a19) - hlcoord 0, 12, AttrMap - ld de, $14 - ld a, $6 - ld c, a -.asm_11ca22 - push hl - ld a, $14 - ld b, a - ld a, $7 -.asm_11ca28 - ld [hli], a - dec b - jr nz, .asm_11ca28 - pop hl - add hl, de - dec c - jr nz, .asm_11ca22 - callba ReloadMapPart - ret -; 11ca38 (47:4a38) - -String_11ca38: ; 11ca38 - db "とうろくちゅう", $25, "あいさつ", $1f, "ぜんぶ" - next "けしても よろしいですか?@" -; 11ca57 - -String_11ca57: ; 11ca57 - db "はい" - next "いいえ@" -; 11ca5e - -Function11ca5e: ; 11ca5e (47:4a5e) - xor a -.asm_11ca5f - push af - call Function11ca6a - pop af - inc a - cp $6 - jr nz, .asm_11ca5f - ret - -Function11ca6a: ; 11ca6a (47:4a6a) - ld hl, wcd36 - ld c, a - ld b, $0 -rept 2 - add hl, bc -endr - ld [hl], b - inc hl - ld [hl], b - call Function11c95d - ld de, String_11c3bc - call PlaceString - ret - -Function11ca7f: ; 11ca7f (47:4a7f) - push de - ld de, Unknown_11cfc6 - call Function11cfce - ld de, Unknown_11cfca - call Function11cfce - hlcoord 1, 14 - pop de - call PlaceString - hlcoord 16, 8 - ld de, String_11ca57 - call PlaceString - call Function11ca01 - ld a, $1 - ld [wcd2a], a - ld hl, wcd24 - res 4, [hl] - call Function11cfb5 - ret - -Function11caad: ; 11caad (47:4aad) - ld de, String_11cb1c - call Function11ca7f - -Function11cab3: ; 11cab3 (47:4ab3) - ld hl, wcd2a - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and $1 - jr nz, .asm_11cace - ld a, [de] - and $2 - jr nz, .asm_11caf9 - ld a, [de] - and $40 - jr nz, .asm_11cb12 - ld a, [de] - and $80 - jr nz, .asm_11cb17 - ret -.asm_11cace - call PlayClickSFX - ld a, [hl] - and a - jr nz, .asm_11cafc - ld a, [wcd35] - and a - jr z, .asm_11caf3 - cp $ff - jr z, .asm_11caf3 - ld a, $ff - ld [wcd35], a - hlcoord 1, 14 - ld de, String_11cb31 - call PlaceString - ld a, $1 - ld [wcd2a], a - ret -.asm_11caf3 - ld hl, wJumptableIndex - set 7, [hl] - ret -.asm_11caf9 - call PlayClickSFX -.asm_11cafc - ld hl, wcd24 - set 4, [hl] - ld a, $4 - ld [wJumptableIndex], a - ld a, [wcd35] - cp $ff - ret nz - ld a, $1 - ld [wcd35], a - ret -.asm_11cb12 - ld a, [hl] - and a - ret z - dec [hl] - ret -.asm_11cb17 - ld a, [hl] - and a - ret nz - inc [hl] - ret -; 11cb1c (47:4b1c) - -String_11cb1c: ; 11cb1c - db "あいさつ", $25, "とうろく", $1f, "ちゅうし" - next "しますか?@" -; 11cb31 - -String_11cb31: ; 11cb31 - db "とうろくちゅう", $25, "あいさつ", $24, "ほぞん" - next "されません", $4a, "よろしい ですか?@" -; 11cb52 - -Function11cb52: ; 11cb52 (47:4b52) - ld hl, Unknown_11cc01 - ld a, [MenuSelection2] -.asm_11cb58 - dec a - jr z, .asm_11cb5f -rept 2 - inc hl -endr - jr .asm_11cb58 -.asm_11cb5f - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - call Function11ca7f - -Function11cb66: ; 11cb66 (47:4b66) - ld hl, wcd2a - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and $1 - jr nz, .asm_11cb81 - ld a, [de] - and $2 - jr nz, .asm_11cbd7 - ld a, [de] - and $40 - jr nz, .asm_11cbeb - ld a, [de] - and $80 - jr nz, .asm_11cbf0 - ret -.asm_11cb81 - ld a, [hl] - and a - jr nz, .asm_11cbd4 - ld a, $4 - call GetSRAMBank - ld hl, $a007 - ld a, [MenuSelection2] - dec a - sla a - sla a - ld c, a - sla a - add c - ld c, a - ld b, $0 - add hl, bc - ld de, wcd36 - ld c, $c -.asm_11cba2 - ld a, [de] - ld [hli], a - inc de - dec c - jr nz, .asm_11cba2 - call CloseSRAM - call PlayClickSFX - ld de, Unknown_11cfc6 - call Function11cfce - ld hl, Unknown_11cc7e - ld a, [MenuSelection2] -.asm_11cbba - dec a - jr z, .asm_11cbc1 -rept 2 - inc hl -endr - jr .asm_11cbba -.asm_11cbc1 - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - hlcoord 1, 14 - call PlaceString - ld hl, wJumptableIndex - inc [hl] - inc hl - ld a, $10 - ld [hl], a - ret -.asm_11cbd4 - call PlayClickSFX -.asm_11cbd7 - ld de, Unknown_11cfba - call Function11cfce - call Function11c38a - ld hl, wcd24 - set 4, [hl] - ld a, $4 - ld [wJumptableIndex], a - ret -.asm_11cbeb - ld a, [hl] - and a - ret z - dec [hl] - ret -.asm_11cbf0 - ld a, [hl] - and a - ret nz - inc [hl] - ret - -Function11cbf5: ; 11cbf5 (47:4bf5) - call WaitSFX - ld hl, wcf64 - dec [hl] - ret nz - dec hl - set 7, [hl] - ret -; 11cc01 (47:4c01) - -Unknown_11cc01: ; 11cc01 - dw String_11cc09 - dw String_11cc23 - dw String_11cc42 - dw String_11cc60 - -String_11cc09: ; 11cc09 - db "じこしょうかい は" - next "この あいさつで いいですか?@" - -String_11cc23: ; 11cc23 - db "たいせん ", $4a, "はじまるとき は" - next "この あいさつで いいですか?@" - -String_11cc42: ; 11cc42 - db "たいせん ", $1d, "かったとき は" - next "この あいさつで いいですか?@" - -String_11cc60: ; 11cc60 - db "たいせん ", $1d, "まけたとき は" - next "この あいさつで いいですか?@" -; 11cc7e - -Unknown_11cc7e: ; 11cc7e - dw String_11cc86 - dw String_11cc9d - dw String_11ccb9 - dw String_11ccd4 - -String_11cc86: ; 11cc86 - db "じこしょうかい の" - next "あいさつ", $1f, "とうろくした!@" - -String_11cc9d: ; 11cc9d - db "たいせん ", $4a, "はじまるとき の" - next "あいさつ", $1f, "とうろくした!@" - -String_11ccb9: ; 11ccb9 - db "たいせん ", $1d, "かったとき の" - next "あいさつ", $1f, "とうろくした!@" - -String_11ccd4: ; 11ccd4 - db "たいせん ", $1d, "まけたとき の" - next "あいさつ", $1f, "とうろくした!@" -; 11ccef - -Function11ccef: ; 11ccef (47:4cef) - ld de, Unknown_11cfc6 - call Function11cfce - hlcoord 1, 14 - ld de, String_11cd10 - call PlaceString - call Function11ca19 - call Function11cfb5 - -Function11cd04: ; 11cd04 (47:4d04) - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and a - ret z - ld a, $4 - ld [wJumptableIndex], a - ret -; 11cd10 (47:4d10) - -String_11cd10: ; 11cd10 - db "なにか ことば", $1f, "いれてください@" -; 11cd20 - -Function11cd20: ; 11cd20 (47:4d20) - call Function11c277 - ld de, Unknown_11cfc6 - call Function11cfce - hlcoord 1, 14 - ld a, [wcd2b] - ld [wcd2c], a - and a - jr nz, .asm_11cd3a - ld de, String_11cdc7 - jr .asm_11cd3d -.asm_11cd3a - ld de, String_11cdd9 -.asm_11cd3d - call PlaceString - hlcoord 4, 8 - ld de, String_11cdf5 - call PlaceString - call Function11cdaa - ld hl, wcd24 - res 5, [hl] - call Function11cfb5 - -Function11cd54: ; 11cd54 (47:4d54) - ld hl, wcd2c - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and A_BUTTON - jr nz, .asm_11cd6f - ld a, [de] - and B_BUTTON - jr nz, .asm_11cd73 - ld a, [de] - and D_UP - jr nz, .asm_11cd8b - ld a, [de] - and D_DOWN - jr nz, .asm_11cd94 - ret - -.asm_11cd6f - ld a, [hl] - ld [wcd2b], a -.asm_11cd73 - ld a, [wcd2b] - and a - jr nz, .asm_11cd7d - ld a, $6 - jr .asm_11cd7f - -.asm_11cd7d - ld a, $15 -.asm_11cd7f - ld [wJumptableIndex], a - ld hl, wcd24 - set 5, [hl] - call PlayClickSFX - ret - -.asm_11cd8b - ld a, [hl] - and a - ret z - dec [hl] - ld de, String_11cdc7 - jr .asm_11cd9b - -.asm_11cd94 - ld a, [hl] - and a - ret nz - inc [hl] - ld de, String_11cdd9 -.asm_11cd9b - push de - ld de, Unknown_11cfc6 - call Function11cfce - pop de - hlcoord 1, 14 - call PlaceString - ret - -Function11cdaa: ; 11cdaa (47:4daa) - ld a, $2 - hlcoord 0, 6, AttrMap - ld bc, $78 - call ByteFill - ld a, $7 - hlcoord 0, 12, AttrMap - ld bc, $50 - call ByteFill - callba ReloadMapPart - ret -; 11cdc7 (47:4dc7) - -String_11cdc7: ; 11cdc7 - db "ことば", $1f, "しゅるいべつに" - next "えらべます@" -; 11cdd9 - -String_11cdd9: ; 11cdd9 - db "ことば", $1f, "アイウエォ の" - next "じゅんばんで ひょうじ します@" -; 11cdf5 - -String_11cdf5: ; 11cdf5 - db "しゅるいべつ モード" - next "アイウエォ モード@" -; 11ce0b - -Function11ce0b: ; 11ce0b (47:4e0b) - call Function11c277 - hlcoord 1, 7 - ld de, String_11cf79 - call PlaceString - hlcoord 1, 17 - ld de, String_11c62a - call PlaceString - call Function11c618 - ld hl, wcd24 - res 2, [hl] - call Function11cfb5 - -Function11ce2b: ; 11ce2b (47:4e2b) - ld a, [CreditsTimer] - sla a - sla a - ld c, a - ld b, 0 - ld hl, Unknown_11ceb9 - add hl, bc - - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and START - jr nz, .start - ld a, [de] - and SELECT - jr nz, .select - ld a, [de] - and A_BUTTON - jr nz, .a - ld a, [de] - and B_BUTTON - jr nz, .b - - ld de, hJoyLast - ld a, [de] - and D_UP - jr nz, .up - ld a, [de] - and D_DOWN - jr nz, .down - ld a, [de] - and D_LEFT - jr nz, .left - ld a, [de] - and D_RIGHT - jr nz, .right - - ret - -.a - ld a, [CreditsTimer] - cp $2d - jr c, .asm_11ce92 - sub $2d - jr z, .asm_11cea4 - dec a - jr z, .asm_11ce96 - jr .b - -.start - ld hl, wcd24 - set 0, [hl] - ld a, $8 - ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos) -.b - ld a, $4 - jr .asm_11ce98 -.select - ld a, [wcd2b] - xor $1 - ld [wcd2b], a - ld a, $6 - jr .asm_11ce98 - -.asm_11ce92 - ld a, $8 - jr .asm_11ce98 - -.asm_11ce96 - ld a, $13 -.asm_11ce98 - ld [wJumptableIndex], a - ld hl, wcd24 - set 2, [hl] - call PlayClickSFX - ret -.asm_11cea4 - ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) - call Function11ca6a - call PlayClickSFX - ret - -.left - inc hl -.down - inc hl -.right - inc hl -.up - ld a, [hl] - cp $ff - ret z - ld [CreditsTimer], a - ret -; 11ceb9 (47:4eb9) - -Unknown_11ceb9: ; 11ceb9 - ; up left down right - db $ff, $01, $05, $ff - db $ff, $02, $06, $00 - db $ff, $03, $07, $01 - db $ff, $04, $08, $02 - db $ff, $14, $09, $03 - db $00, $06, $0a, $ff - db $01, $07, $0b, $05 - db $02, $08, $0c, $06 - db $03, $09, $0d, $07 - db $04, $19, $0e, $08 - db $05, $0b, $0f, $ff - db $06, $0c, $10, $0a - db $07, $0d, $11, $0b - db $08, $0e, $12, $0c - db $09, $1e, $13, $0d - db $0a, $10, $2d, $ff - db $0b, $11, $2d, $0f - db $0c, $12, $2d, $10 - db $0d, $13, $2d, $11 - db $0e, $26, $2d, $12 - db $ff, $15, $19, $04 - db $ff, $16, $1a, $14 - db $ff, $17, $1b, $15 - db $ff, $18, $1c, $16 - db $ff, $23, $1d, $17 - db $14, $1a, $1e, $09 - db $15, $1b, $1f, $19 - db $16, $1c, $20, $1a - db $17, $1d, $21, $1b - db $18, $2b, $22, $1c - db $19, $1f, $26, $0e - db $1a, $20, $27, $1e - db $1b, $21, $28, $1f - db $1c, $22, $29, $20 - db $1d, $2c, $2a, $21 - db $ff, $24, $2b, $18 - db $ff, $25, $2b, $23 - db $ff, $ff, $2b, $24 - db $1e, $27, $2e, $13 - db $1f, $28, $2e, $26 - db $20, $29, $2e, $27 - db $21, $2a, $2e, $28 - db $22, $ff, $2e, $29 - db $23, $ff, $2c, $1d - db $2b, $ff, $2f, $22 - db $0f, $2e, $ff, $ff - db $26, $2f, $ff, $2d - db $2c, $ff, $ff, $2e -; 11cf79 - -String_11cf79: ; 11cf79 - db "あいうえお なにぬねの や ゆ よ" - next "かきくけこ はひふへほ わ" - next "さしすせそ まみむめも そのた" - next "たちつてと らりるれろ" - db "@" -; 11cfb5 - -Function11cfb5: ; 11cfb5 (47:4fb5) - ld hl, wJumptableIndex - inc [hl] - ret -; 11cfba (47:4fba) - -Unknown_11cfba: - db 0, 0 ; start coords - db 20, 6 ; end coords - -Unknown_11cfbe: - db 0, 14 ; start coords - db 20, 4 ; end coords - -Unknown_11cfc2: - db 0, 6 ; start coords - db 20, 10 ; end coords - -Unknown_11cfc6: - db 0, 12 ; start coords - db 20, 6 ; end coords - -Unknown_11cfca: - db 14, 7 ; start coords - db 6, 5 ; end coords -; 11cfce - -Function11cfce: ; 11cfce (47:4fce) - hlcoord 0, 0 - ld bc, $14 - ld a, [de] - inc de - push af - ld a, [de] - inc de - and a -.asm_11cfda - jr z, .asm_11cfe0 - add hl, bc - dec a - jr .asm_11cfda -.asm_11cfe0 - pop af - ld c, a - ld b, 0 - add hl, bc - push hl - ld a, $79 - ld [hli], a - ld a, [de] - inc de -rept 2 - dec a -endr - jr z, .asm_11cff6 - ld c, a - ld a, $7a -.asm_11cff2 - ld [hli], a - dec c - jr nz, .asm_11cff2 -.asm_11cff6 - ld a, $7b - ld [hl], a - pop hl - ld bc, $14 - add hl, bc - ld a, [de] - dec de -rept 2 - dec a -endr - jr z, .asm_11d022 - ld b, a -.asm_11d005 - push hl - ld a, $7c - ld [hli], a - ld a, [de] -rept 2 - dec a -endr - jr z, .asm_11d015 - ld c, a - ld a, $7f -.asm_11d011 - ld [hli], a - dec c - jr nz, .asm_11d011 -.asm_11d015 - ld a, $7c - ld [hl], a - pop hl - push bc - ld bc, $14 - add hl, bc - pop bc - dec b - jr nz, .asm_11d005 -.asm_11d022 - ld a, $7d - ld [hli], a - ld a, [de] -rept 2 - dec a -endr - jr z, .asm_11d031 - ld c, a - ld a, $7a -.asm_11d02d - ld [hli], a - dec c - jr nz, .asm_11d02d -.asm_11d031 - ld a, $7e - ld [hl], a - ret - -Function11d035: ; 11d035 (47:5035) - hlcoord 0, 0 - ld bc, $14 - ld a, [de] - inc de - push af - ld a, [de] - inc de - and a -.asm_11d041 - jr z, .asm_11d047 - add hl, bc - dec a - jr .asm_11d041 -.asm_11d047 - pop af - ld c, a - ld b, $0 - add hl, bc - push hl - ld a, $79 - ld [hl], a - pop hl - push hl - ld a, [de] - dec a - inc de - ld c, a - add hl, bc - ld a, $7b - ld [hl], a - call Function11d0ac - ld a, $7e - ld [hl], a - pop hl - push hl - call Function11d0ac - ld a, $7d - ld [hl], a - pop hl - push hl - inc hl - push hl - call Function11d0ac - pop bc - dec de - ld a, [de] - cp $2 - jr z, .asm_11d082 -rept 2 - dec a -endr -.asm_11d078 - push af - ld a, $7a - ld [hli], a - ld [bc], a - inc bc - pop af - dec a - jr nz, .asm_11d078 -.asm_11d082 - pop hl - ld bc, $14 - add hl, bc - push hl - ld a, [de] - dec a - ld c, a - ld b, $0 - add hl, bc - pop bc - inc de - ld a, [de] - cp $2 - ret z - push bc -rept 2 - dec a -endr - ld c, a - ld b, a - ld de, $14 -.asm_11d09c - ld a, $7c - ld [hl], a - add hl, de - dec c - jr nz, .asm_11d09c - pop hl -.asm_11d0a4 - ld a, $7c - ld [hl], a - add hl, de - dec b - jr nz, .asm_11d0a4 - ret - -Function11d0ac: ; 11d0ac (47:50ac) - ld a, [de] - dec a - ld bc, $14 -.asm_11d0b1 - add hl, bc - dec a - jr nz, .asm_11d0b1 - ret - -Function11d0b6: ; 11d0b6 (47:50b6) - ld hl, $c - add hl, bc - ld a, [hl] - ld e, a - ld d, 0 - ld hl, Jumptable_11d0c7 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -Jumptable_11d0c7: ; 11d0c7 (47:50c7) - dw Function11d0dd - dw Function11d0e9 - dw Function11d0f5 - dw Function11d10f - dw Function11d134 - dw Function11d145 - dw Function11d156 - dw Function11d175 - dw Function11d1d7 - dw Function11d1d1 - dw Function11d1fc - - -Function11d0dd: ; 11d0dd (47:50dd) - ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) - sla a - ld hl, Unknown_11d208 - ld e, $1 - jr asm_11d11e - -Function11d0e9: ; 11d0e9 (47:50e9) - ld a, [wcd21] - sla a - ld hl, Unknown_11d21a - ld e, $2 - jr asm_11d11e - -Function11d0f5: ; 11d0f5 (47:50f5) - ld hl, Unknown_11d2be - ld a, [CreditsTimer] - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - call Function3b3c - ld a, [CreditsTimer] - sla a - ld hl, Unknown_11d23e - ld e, $4 - jr asm_11d11e - -Function11d10f: ; 11d10f (47:510f) - ld a, $27 - call Function3b3c - ld a, [wcd25] - sla a - ld hl, Unknown_11d29e - ld e, $8 - -asm_11d11e: ; 11d11e (47:511e) - push de - ld e, a - ld d, $0 - add hl, de - push hl - pop de - ld hl, $4 - add hl, bc - ld a, [de] - inc de - ld [hli], a - ld a, [de] - ld [hl], a - pop de - ld a, e - call Function11d2ee - ret - -Function11d134: ; 11d134 (47:5134) - ld a, $27 - call Function3b3c - ld a, [wcd2a] - sla a - ld hl, Unknown_11d2b6 - ld e, $10 - jr asm_11d11e - -Function11d145: ; 11d145 (47:5145) - ld a, $27 - call Function3b3c - ld a, [wcd2c] - sla a - ld hl, Unknown_11d2ba - ld e, $20 - jr asm_11d11e - -Function11d156: ; 11d156 (47:5156) - ld a, $2a - call Function3b3c - ld a, [wcd4a] - sla a - sla a - sla a - add $18 - ld hl, $4 - add hl, bc - ld [hli], a - ld a, $30 - ld [hl], a - ld a, $1 - ld e, a - call Function11d2ee - ret - -Function11d175: ; 11d175 (47:5175) - ld a, [wcd4d] - cp $4 - jr z, .asm_11d180 - ld a, $28 - jr .asm_11d182 -.asm_11d180 - ld a, $26 -.asm_11d182 - call Function3b3c - ld a, [wcd4d] - cp $4 - jr z, .asm_11d1b1 - ld a, [wcd4c] - sla a - sla a - sla a - add $20 - ld hl, $4 - add hl, bc - ld [hli], a - ld a, [wcd4d] - sla a - sla a - sla a - sla a - add $48 - ld [hl], a - ld a, $2 - ld e, a - call Function11d2ee - ret -.asm_11d1b1 - ld a, [wcd4c] - sla a - sla a - sla a - ld e, a - sla a - sla a - add e - add $18 - ld hl, $4 - add hl, bc - ld [hli], a - ld a, $8a - ld [hl], a - ld a, $2 - ld e, a - call Function11d2ee - ret - -Function11d1d1: ; 11d1d1 (47:51d1) - ld d, $98 - ld a, $2c - jr asm_11d1db - -Function11d1d7: ; 11d1d7 (47:51d7) - ld d, $10 - ld a, $2b - -asm_11d1db: ; 11d1db (47:51db) - push de - call Function3b3c - ld a, [wcd4a] - sla a - sla a - sla a - ld e, a - sla a - add e - add $40 - ld hl, $5 - add hl, bc - ld [hld], a - pop af - ld [hl], a - ld a, $4 - ld e, a - call Function11d2ee - ret - -Function11d1fc: ; 11d1fc (47:51fc) - ld a, $26 - call Function3b3c - ld a, $8 - ld e, a - call Function11d2ee - ret -; 11d208 (47:5208) - -Unknown_11d208: ; 11d208 - db $0d, $1a - db $3d, $1a - db $6d, $1a - db $0d, $2a - db $3d, $2a - db $6d, $2a - db $0d, $8a - db $3d, $8a - db $6d, $8a - -Unknown_11d21a: ; 11d21a - db $0d, $42 - db $3d, $42 - db $6d, $42 - db $0d, $52 - db $3d, $52 - db $6d, $52 - db $0d, $62 - db $3d, $62 - db $6d, $62 - db $0d, $72 - db $3d, $72 - db $6d, $72 - db $0d, $82 - db $3d, $82 - db $6d, $82 - db $0d, $92 - db $3d, $92 - db $6d, $92 - -Unknown_11d23e: ; 11d23e - db $10, $48 - db $18, $48 - db $20, $48 - db $28, $48 - db $30, $48 - db $10, $58 - db $18, $58 - db $20, $58 - db $28, $58 - db $30, $58 - db $10, $68 - db $18, $68 - db $20, $68 - db $28, $68 - db $30, $68 - db $10, $78 - db $18, $78 - db $20, $78 - db $28, $78 - db $30, $78 - db $40, $48 - db $48, $48 - db $50, $48 - db $58, $48 - db $60, $48 - db $40, $58 - db $48, $58 - db $50, $58 - db $58, $58 - db $60, $58 - db $40, $68 - db $48, $68 - db $50, $68 - db $58, $68 - db $60, $68 - db $70, $48 - db $80, $48 - db $90, $48 - db $40, $78 - db $48, $78 - db $50, $78 - db $58, $78 - db $60, $78 - db $70, $58 - db $70, $68 - db $0d, $92 - db $3d, $92 - db $6d, $92 - -Unknown_11d29e: ; 11d29e - db $10, $50 - db $40, $50 - db $70, $50 - db $10, $60 - db $40, $60 - db $70, $60 - db $10, $70 - db $40, $70 - db $70, $70 - db $10, $80 - db $40, $80 - db $70, $80 - -Unknown_11d2b6: ; 11d2b6 - db $80, $50 - db $80, $60 - -Unknown_11d2ba: ; 11d2ba - db $20, $50 - db $20, $60 - -Unknown_11d2be: ; 11d2be - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $29, $26 - db $26, $26 - -Function11d2ee: ; 11d2ee (47:52ee) - ld hl, wcd24 - and [hl] - jr nz, .asm_11d316 - ld a, e - ld hl, wcd23 - and [hl] - jr z, .asm_11d30f - ld hl, $e - add hl, bc - ld a, [hl] - and a - jr z, .asm_11d305 - dec [hl] - ret -.asm_11d305 - ld a, $0 - ld [hld], a - ld a, $1 - xor [hl] - ld [hl], a - and a - jr nz, .asm_11d316 -.asm_11d30f - ld hl, $7 - add hl, bc - xor a - ld [hl], a - ret -.asm_11d316 - ld hl, $5 - add hl, bc - ld a, $b0 - sub [hl] - ld hl, $7 - add hl, bc - ld [hl], a - ret - -Function11d323: ; 11d323 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_11d33a - ld de, UnknBGPals - ld bc, 16 * 8 - call CopyBytes - pop af - ld [rSVBK], a - ret -; 11d33a - -Palette_11d33a: - RGB 31, 31, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 31, 16, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 23, 17, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - -; 11d3ba - -Function11d3ba: ; 11d3ba - ld a, [rSVBK] - push af - ld hl, BattleMonSpclDef - ld a, $0 - ld [wcd2d], a - ld [hli], a - ld a, $d8 - ld [wcd2e], a - ld [hl], a - ld a, $fe - ld [wcd2f], a - ld a, $54 - ld [wcd30], a - ld a, $a8 - ld [wcd31], a - ld a, $c6 - ld [wcd32], a - ld a, $4a - ld [wcd33], a - ld a, $c6 - ld [wcd34], a - ld hl, Unknown_11f23c - ld a, $2d - -Function11d3ef: ; 11d3ef - push af - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - push hl - ld hl, UnknBGPals - add hl, de - ld a, [wcd2d] - ld e, a - ld a, [wcd2e] - ld d, a - push bc -.asm_11d406 - ld a, $3 - ld [rSVBK], a - ld a, [hli] - push af - ld a, $5 - ld [rSVBK], a - pop af - ld [de], a - inc de - ld a, $3 - ld [rSVBK], a - ld a, [hli] - push af - ld a, $5 - ld [rSVBK], a - pop af - ld [de], a - inc de - dec bc - ld a, c - or b - jr nz, .asm_11d406 - ld a, [wcd2f] - ld l, a - ld a, [wcd30] - ld h, a - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, l - ld [wcd2f], a - ld a, h - ld [wcd30], a - push bc - pop hl - ld c, $0 -.asm_11d43d - ld a, [hl] - cp $ff - jr z, .asm_11d453 - call Function11d493 - jr nz, .asm_11d44a - inc hl - jr .asm_11d43d - -.asm_11d44a - ld a, [hli] - ld [de], a - inc de - xor a - ld [de], a - inc de - inc c - jr .asm_11d43d - -.asm_11d453 - pop hl - ld b, $0 - add hl, bc - push hl - pop bc - ld a, [wcd31] - ld l, a - ld a, [wcd32] - ld h, a - ld a, c - ld [hli], a - ld a, b - ld [hli], a - ld a, l - ld [wcd31], a - ld a, h - ld [wcd32], a - ld a, [wcd33] - ld l, a - ld a, [wcd34] - ld h, a - ld a, e - ld [wcd2d], a - ld [hli], a - ld a, d - ld [wcd2e], a - ld [hli], a - ld a, l - ld [wcd33], a - ld a, h - ld [wcd34], a - pop hl - pop af - dec a - jr z, .asm_11d48f - jp Function11d3ef - -.asm_11d48f - pop af - ld [rSVBK], a - ret -; 11d493 - -Function11d493: ; 11d493 - push hl - push bc - push de - dec a - ld hl, rSVBK - ld e, $1 - ld [hl], e - call CheckSeenMon - ld hl, rSVBK - ld e, $5 - ld [hl], e - pop de - pop bc - pop hl - ret -; 11d4aa - -Function11d4aa: ; 11d4aa - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a - ld hl, Unknown_11daac - ld bc, Unknown_11f220 - xor a - ld [wcd2d], a - inc a - ld [wcd2e], a - ld a, $e -.asm_11d4c1 - push af - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push hl - ld hl, $0005 - add hl, de - ld a, [bc] -rept 2 - inc bc -endr - push bc -.asm_11d4cf - push af - push hl - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - ld hl, wd000 - add hl, de - ld a, [wcd2d] - ld [hli], a - inc a - ld [wcd2d], a - ld a, [wcd2e] - ld [hl], a - pop hl - ld de, $0008 - add hl, de - pop af - dec a - jr nz, .asm_11d4cf - ld hl, wcd2d - xor a - ld [hli], a - inc [hl] - pop bc - pop hl - pop af - dec a - jr nz, .asm_11d4c1 - pop af - ld [rSVBK], a - ret -; 11d4fe - - -Unknown_11d4fe: -; Pokemon sorted by kana. -; Notably, Rhydon is missing. - - dw Unknown_11d558 - dw Unknown_11d55f - dw Unknown_11d565 - dw Unknown_11d56c - dw Unknown_11d574 - dw Unknown_11d57f - dw Unknown_11d58e - dw Unknown_11d598 - dw Unknown_11d59f - dw Unknown_11d5a3 - dw Unknown_11d5b2 - dw Unknown_11d5bb - dw Unknown_11d5c0 - dw Unknown_11d5c8 - dw Unknown_11d5cb - dw Unknown_11d5cd - dw Unknown_11d5d1 - dw Unknown_11d5d4 - dw Unknown_11d5d6 - dw Unknown_11d5dc - dw Unknown_11d5e7 - dw Unknown_11d5ea - dw Unknown_11d5f7 - dw Unknown_11d5f9 - dw Unknown_11d5fc - dw Unknown_11d5fe - dw Unknown_11d60e - dw Unknown_11d61d - dw Unknown_11d62e - dw Unknown_11d636 - dw Unknown_11d63e - dw Unknown_11d649 - dw Unknown_11d64e - dw Unknown_11d651 - dw Unknown_11d656 - dw Unknown_11d65a - dw Unknown_11d660 - dw Unknown_11d662 - dw Unknown_11d665 - dw Unknown_11d66d - dw Unknown_11d671 - dw Unknown_11d674 - dw Unknown_11d678 - dw Unknown_11d67a - dw Unknown_11d67d - -Unknown_11d558: db EKANS, ARBOK, SEAKING, ARIADOS, CROCONAW, UNOWN, $ff -Unknown_11d55f: db EEVEE, GEODUDE, SPINARAK, PILOSWINE, ONIX, $ff -Unknown_11d565: db ARCANINE, SUDOWOODO, WEEPINBELL, VICTREEBEL, WOOPER, SWINUB, $ff -Unknown_11d56c: db SKARMORY, AIPOM, ESPEON, HITMONCHAN, ELEKID, ELECTABUZZ, ENTEI, $ff -Unknown_11d574: db FERALIGATR, FURRET, OCTILLERY, PRIMEAPE, SENTRET, STANTLER, SPEAROW, FEAROW, OMASTAR, OMANYTE, $ff -Unknown_11d57f: db GROWLITHE, MACHAMP, DRAGONITE, PINSIR, SNORLAX, KABUTO, KABUTOPS, HITMONTOP, WARTORTLE, BLASTOISE, FARFETCH_D, CUBONE, MAROWAK, KANGASKHAN, $ff -Unknown_11d58e: db SUNFLORA, CATERPIE, GYARADOS, RAPIDASH, NINETALES, GIRAFARIG, BELLOSSOM, KINGDRA, KINGLER, $ff -Unknown_11d598: db GLOOM, PINECO, GLIGAR, KRABBY, GRANBULL, CROBAT, $ff -Unknown_11d59f: db ABRA, GENGAR, TAUROS, $ff -Unknown_11d5a3: db MAGIKARP, MAGNEMITE, GASTLY, HAUNTER, MACHOKE, KAKUNA, PSYDUCK, PHANPY, RATTATA, GOLDUCK, GOLBAT, GOLEM, GRAVELER, VENONAT, $ff -Unknown_11d5b2: db RHYHORN, PUPITAR, CORSOLA, HITMONLEE, ZAPDOS, JOLTEON, SANDSHREW, SANDSLASH, $ff -Unknown_11d5bb: db SEADRA, SHELLDER, VAPOREON, DEWGONG, $ff -Unknown_11d5c0: db SUICUNE, STARMIE, SCYTHER, ZUBAT, BEEDRILL, HYPNO, DROWZEE, $ff -Unknown_11d5c8: db SQUIRTLE, CELEBI, $ff -Unknown_11d5cb: db WOBBUFFET, $ff -Unknown_11d5cd: db DUGTRIO, HORSEA, EXEGGCUTE, $ff -Unknown_11d5d1: db CHIKORITA, CHINCHOU, $ff -Unknown_11d5d4: db SHUCKLE, $ff -Unknown_11d5d6: db DIGLETT, REMORAID, DELIBIRD, HOUNDOUR, AMPHAROS, $ff -Unknown_11d5dc: db DODUO, DODRIO, SMEARGLE, KOFFING, TENTACRUEL, TOGETIC, TOGEPI, GOLDEEN, METAPOD, DONPHAN, $ff -Unknown_11d5e7: db ODDISH, EXEGGUTOR, $ff -Unknown_11d5ea: db NIDOKING, NIDOQUEEN, NIDORAN_M, NIDORAN_F, NIDORINA, NIDORINO, MEOWTH, SNEASEL, POLIWHIRL, POLITOED, POLIWRATH, POLIWAG, $ff -Unknown_11d5f7: db QUAGSIRE, $ff -Unknown_11d5f9: db NATU, XATU, $ff -Unknown_11d5fc: db DUNSPARCE, $ff -Unknown_11d5fe: db SEEL, STEELIX, TYPHLOSION, DRAGONAIR, BUTTERFREE, SCIZOR, HOPPIP, BLISSEY, PARAS, PARASECT, QWILFISH, MR__MIME, TYROGUE, CLOYSTER, TYRANITAR, $ff -Unknown_11d60e: db CLEFFA, WEEDLE, PIKACHU, CLEFABLE, PIDGEOT, PIDGEOTTO, PICHU, CLEFAIRY, CHARMANDER, STARYU, CYNDAQUIL, SUNKERN, TEDDIURSA, VOLTORB, $ff -Unknown_11d61d: db MOLTRES, FLAREON, ALAKAZAM, MAGMAR, FORRETRESS, WIGGLYTUFF, IVYSAUR, BULBASAUR, VENUSAUR, AERODACTYL, MAGBY, IGGLYBUFF, UMBREON, ARTICUNO, JIGGLYPUFF, SNUBBULL, $ff -Unknown_11d62e: db BAYLEEF, GRIMER, MUK, HERACROSS, HOUNDOOM, PERSIAN, LICKITUNG, $ff -Unknown_11d636: db HO_OH, HOOTHOOT, PIDGEY, PONYTA, SKIPLOOM, PORYGON, PORYGON2, $ff -Unknown_11d63e: db MAGCARGO, SLUGMA, QUILAVA, BELLSPROUT, WEEZING, MARILL, AZUMARILL, ELECTRODE, MANKEY, MANTINE, $ff -Unknown_11d649: db DRATINI, MEW, MEWTWO, MILTANK, $ff -Unknown_11d64e: db MISDREAVUS, SMOOCHUM, $ff -Unknown_11d651: db MEGANIUM, DITTO, TENTACOOL, MAREEP, $ff -Unknown_11d656: db FLAAFFY, VENOMOTH, TANGELA, $ff -Unknown_11d65a: db SLOWKING, SLOWBRO, SLOWPOKE, MURKROW, YANMA, $ff -Unknown_11d660: db KADABRA, $ff -Unknown_11d662: db LARVITAR, NOCTOWL, $ff -Unknown_11d665: db RAIKOU, RAICHU, CHANSEY, RATICATE, LAPRAS, VILEPLUME, LANTURN, $ff -Unknown_11d66d: db CHARMELEON, CHARIZARD, URSARING, $ff -Unknown_11d671: db JYNX, LUGIA, $ff -Unknown_11d674: db MAGNETON, LEDIAN, LEDYBA, $ff -Unknown_11d678: db VULPIX, $ff -Unknown_11d67a: db JUMPLUFF, TOTODILE, MACHOP -Unknown_11d67d: db $ff -; 11d67e - -GFX_11d67e: -INCBIN "gfx/pokedex/select_start.2bpp" -; 11d6de - -LZ_11d6de: -INCBIN "gfx/pokedex/slowpoke.2bpp.lz" -; 11da52 - -Strings_11da52: ; 11da52 - db "ポケモン@@" - db "タイプ@@@" - db "あいさつ@@" - db "ひと@@@@" - db "バトル@@@" - db "こえ@@@@" - db "かいわ@@@" - db "きもち@@@" - db "じょうたい@" - db "せいかつ@@" - db "しゅみ@@@" - db "こうどう@@" - db "じかん@@@" - db "むすび@@@" - db "あれこれ@@" -; 11daac - -Unknown_11daac: ; 11daac - dw Unknown_11dac8 - dw Unknown_11db58 - dw Unknown_11dc78 - dw Unknown_11dea0 - dw Unknown_11e0c8 - dw Unknown_11e2d8 - dw Unknown_11e4e8 - dw Unknown_11e710 - dw Unknown_11e920 - dw Unknown_11ea58 - dw Unknown_11eb90 - dw Unknown_11edb8 - dw Unknown_11eef0 - dw Unknown_11f100 - -Unknown_11dac8: ; 11dac8 - db "あく@@@", $26, $0, $0 - db "いわ@@@", $aa, $0, $0 - db "エスパー@", $da, $0, $0 - db "かくとう@", $4e, $1, $0 - db "くさ@@@", $ba, $1, $0 - db "ゴースト@", $e4, $1, $0 - db "こおり@@", $e6, $1, $0 - db "じめん@@", $68, $2, $0 - db "タイプ@@", $e8, $2, $0 - db "でんき@@", $8e, $3, $0 - db "どく@@@", $ae, $3, $0 - db "ドラゴン@", $bc, $3, $0 - db "ノーマル@", $22, $4, $0 - db "はがね@@", $36, $4, $0 - db "ひこう@@", $5e, $4, $0 - db "ほのお@@", $b2, $4, $0 - db "みず@@@", $f4, $4, $0 - db "むし@@@", $12, $5, $0 - -Unknown_11db58: ; 11db58 - db "ありがと@", $58, $0, $0 - db "ありがとう", $5a, $0, $0 - db "いくぜ!@", $80, $0, $0 - db "いくよ!@", $82, $0, $0 - db "いくわよ!", $84, $0, $0 - db "いやー@@", $a6, $0, $0 - db "おっす@@", $a, $1, $0 - db "おはつです", $22, $1, $0 - db "おめでとう", $2a, $1, $0 - db "ごめん@@", $f8, $1, $0 - db "ごめんよ@", $fa, $1, $0 - db "こらっ@@", $fc, $1, $0 - db "こんちは!", $a, $2, $0 - db "こんにちは", $10, $2, $0 - db "さようなら", $28, $2, $0 - db "サンキュー", $2e, $2, $0 - db "さんじょう", $30, $2, $0 - db "しっけい@", $48, $2, $0 - db "しつれい@", $4c, $2, $0 - db "じゃーね@", $6c, $2, $0 - db "すいません", $8c, $2, $0 - db "それじゃ@", $ca, $2, $0 - db "どうも@@", $a6, $3, $0 - db "なんじゃ@", $ee, $3, $0 - db "ハーイ@@", $2c, $4, $0 - db "はいはい@", $32, $4, $0 - db "バイバイ@", $34, $4, $0 - db "へイ@@@", $8a, $4, $0 - db "またね@@", $de, $4, $0 - db "もしもし@", $32, $5, $0 - db "やあ@@@", $3e, $5, $0 - db "やっほー@", $4e, $5, $0 - db "よう@@@", $62, $5, $0 - db "ようこそ@", $64, $5, $0 - db "よろしく@", $80, $5, $0 - db "らっしゃい", $94, $5, $0 - -Unknown_11dc78: ; 11dc78 - db "あいて@@", $1c, $0, $0 - db "あたし@@", $36, $0, $0 - db "あなた@@", $40, $0, $0 - db "あなたが@", $42, $0, $0 - db "あなたに@", $44, $0, $0 - db "あなたの@", $46, $0, $0 - db "あなたは@", $48, $0, $0 - db "あなたを@", $4a, $0, $0 - db "おかあさん", $e8, $0, $0 - db "おじいさん", $fc, $0, $0 - db "おじさん@", $2, $1, $0 - db "おとうさん", $e, $1, $0 - db "おとこのこ", $10, $1, $0 - db "おとな@@", $14, $1, $0 - db "おにいさん", $16, $1, $0 - db "おねえさん", $18, $1, $0 - db "おばあさん", $1c, $1, $0 - db "おばさん@", $20, $1, $0 - db "おれさま@", $34, $1, $0 - db "おんなのこ", $3a, $1, $0 - db "ガール@@", $40, $1, $0 - db "かぞく@@", $52, $1, $0 - db "かのじょ@", $72, $1, $0 - db "かれ@@@", $7c, $1, $0 - db "きみ@@@", $9a, $1, $0 - db "きみが@@", $9c, $1, $0 - db "きみに@@", $9e, $1, $0 - db "きみの@@", $a0, $1, $0 - db "きみは@@", $a2, $1, $0 - db "きみを@@", $a4, $1, $0 - db "ギャル@@", $ae, $1, $0 - db "きょうだい", $b2, $1, $0 - db "こども@@", $f0, $1, $0 - db "じぶん@@", $54, $2, $0 - db "じぶんが@", $56, $2, $0 - db "じぶんに@", $58, $2, $0 - db "じぶんの@", $5a, $2, $0 - db "じぶんは@", $5c, $2, $0 - db "じぶんを@", $5e, $2, $0 - db "だれ@@@", $18, $3, $0 - db "だれか@@", $1a, $3, $0 - db "だれが@@", $1c, $3, $0 - db "だれに@@", $1e, $3, $0 - db "だれの@@", $20, $3, $0 - db "だれも@@", $22, $3, $0 - db "だれを@@", $24, $3, $0 - db "ちゃん@@", $38, $3, $0 - db "ともだち@", $b8, $3, $0 - db "なかま@@", $d4, $3, $0 - db "ひと@@@", $62, $4, $0 - db "ボーイ@@", $98, $4, $0 - db "ボク@@@", $a0, $4, $0 - db "ボクが@@", $a2, $4, $0 - db "ボクに@@", $a4, $4, $0 - db "ボクの@@", $a6, $4, $0 - db "ボクは@@", $a8, $4, $0 - db "ボクを@@", $aa, $4, $0 - db "みんな@@", $4, $5, $0 - db "みんなが@", $6, $5, $0 - db "みんなに@", $8, $5, $0 - db "みんなの@", $a, $5, $0 - db "みんなは@", $c, $5, $0 - db "ライバル@", $8a, $5, $0 - db "わたし@@", $c2, $5, $0 - db "わたしが@", $c4, $5, $0 - db "わたしに@", $c6, $5, $0 - db "わたしの@", $c8, $5, $0 - db "わたしは@", $ca, $5, $0 - db "わたしを@", $cc, $5, $0 - -Unknown_11dea0: ; 11dea0 - db "あいしょう", $18, $0, $0 - db "いけ!@@", $88, $0, $0 - db "いちばん@", $96, $0, $0 - db "かくご@@", $4c, $1, $0 - db "かたせて@", $54, $1, $0 - db "かち@@@", $56, $1, $0 - db "かつ@@@", $58, $1, $0 - db "かった@@", $60, $1, $0 - db "かったら@", $62, $1, $0 - db "かって@@", $64, $1, $0 - db "かてない@", $66, $1, $0 - db "かてる@@", $68, $1, $0 - db "かなわない", $70, $1, $0 - db "きあい@@", $84, $1, $0 - db "きめた@@", $a8, $1, $0 - db "きりふだ@", $b6, $1, $0 - db "くらえ@@", $c2, $1, $0 - db "こい!@@", $da, $1, $0 - db "こうげき@", $e0, $1, $0 - db "こうさん@", $e2, $1, $0 - db "こんじょう", $8, $2, $0 - db "さいのう@", $16, $2, $0 - db "さくせん@", $1a, $2, $0 - db "さばき@@", $22, $2, $0 - db "しょうぶ@", $7e, $2, $0 - db "しょうり@", $80, $2, $0 - db "せめ@@@", $b4, $2, $0 - db "センス@@", $b6, $2, $0 - db "たいせん@", $e6, $2, $0 - db "たたかい@", $f6, $2, $0 - db "ちから@@", $32, $3, $0 - db "チャレンジ", $36, $3, $0 - db "つよい@@", $58, $3, $0 - db "つよすぎ@", $5a, $3, $0 - db "つらい@@", $5c, $3, $0 - db "つらかった", $5e, $3, $0 - db "てかげん@", $6c, $3, $0 - db "てき@@@", $6e, $3, $0 - db "てんさい@", $90, $3, $0 - db "でんせつ@", $94, $3, $0 - db "トレーナー", $c6, $3, $0 - db "にげ@@@", $4, $4, $0 - db "ぬるい@@", $10, $4, $0 - db "ねらう@@", $16, $4, $0 - db "バトル@@", $4a, $4, $0 - db "ファイト@", $72, $4, $0 - db "ふっかつ@", $78, $4, $0 - db "ポイント@", $94, $4, $0 - db "ポケモン@", $ac, $4, $0 - db "ほんき@@", $bc, $4, $0 - db "まいった!", $c4, $4, $0 - db "まけ@@@", $c8, $4, $0 - db "まけたら@", $ca, $4, $0 - db "まけて@@", $cc, $4, $0 - db "まける@@", $ce, $4, $0 - db "まもり@@", $ea, $4, $0 - db "みかた@@", $f2, $4, $0 - db "みとめない", $fe, $4, $0 - db "みとめる@", $0, $5, $0 - db "むてき@@", $16, $5, $0 - db "もらった!", $3c, $5, $0 - db "よゆう@@", $7a, $5, $0 - db "よわい@@", $82, $5, $0 - db "よわすぎ@", $84, $5, $0 - db "らくしょう", $8e, $5, $0 - db "りーダー@", $9e, $5, $0 - db "ルール@@", $a0, $5, $0 - db "レべル@@", $a6, $5, $0 - db "わざ@@@", $be, $5, $0 - -Unknown_11e0c8: ; 11e0c8 - db "!@@@@", $0, $0, $0 - db "!!@@@", $2, $0, $0 - db "!?@@@", $4, $0, $0 - db "?@@@@", $6, $0, $0 - db "…@@@@", $8, $0, $0 - db "…!@@@", $a, $0, $0 - db "………@@", $c, $0, $0 - db "ー@@@@", $e, $0, $0 - db "ーーー@@", $10, $0, $0 - db "あーあ@@", $14, $0, $0 - db "あーん@@", $16, $0, $0 - db "あははー@", $52, $0, $0 - db "あら@@@", $54, $0, $0 - db "いえ@@@", $72, $0, $0 - db "イエス@@", $74, $0, $0 - db "うう@@@", $ac, $0, $0 - db "うーん@@", $ae, $0, $0 - db "うおー!@", $b0, $0, $0 - db "うおりゃー", $b2, $0, $0 - db "うひょー@", $bc, $0, $0 - db "うふふ@@", $be, $0, $0 - db "うわー@@", $ca, $0, $0 - db "うわーん@", $cc, $0, $0 - db "ええ@@@", $d2, $0, $0 - db "えー@@@", $d4, $0, $0 - db "えーん@@", $d6, $0, $0 - db "えへへ@@", $dc, $0, $0 - db "おいおい@", $e0, $0, $0 - db "おお@@@", $e2, $0, $0 - db "おっと@@", $c, $1, $0 - db "がーん@@", $42, $1, $0 - db "キャー@@", $aa, $1, $0 - db "ギャー@@", $ac, $1, $0 - db "ぐふふふふ", $bc, $1, $0 - db "げっ@@@", $ce, $1, $0 - db "しくしく@", $3e, $2, $0 - db "ちえっ@@", $2e, $3, $0 - db "てへ@@@", $86, $3, $0 - db "ノー@@@", $20, $4, $0 - db "はあー@@", $2a, $4, $0 - db "はい@@@", $30, $4, $0 - db "はっはっは", $48, $4, $0 - db "ひいー@@", $56, $4, $0 - db "ひゃあ@@", $6a, $4, $0 - db "ふっふっふ", $7c, $4, $0 - db "ふにゃ@@", $7e, $4, $0 - db "ププ@@@", $80, $4, $0 - db "ふふん@@", $82, $4, $0 - db "ふん@@@", $88, $4, $0 - db "へっへっへ", $8e, $4, $0 - db "へへー@@", $90, $4, $0 - db "ほーほほほ", $9c, $4, $0 - db "ほら@@@", $b6, $4, $0 - db "まあ@@@", $c0, $4, $0 - db "むきー!!", $10, $5, $0 - db "むふー@@", $18, $5, $0 - db "むふふ@@", $1a, $5, $0 - db "むむ@@@", $1c, $5, $0 - db "よーし@@", $6a, $5, $0 - db "よし!@@", $72, $5, $0 - db "ラララ@@", $98, $5, $0 - db "わーい@@", $ac, $5, $0 - db "わーん!!", $b0, $5, $0 - db "ワォ@@@", $b2, $5, $0 - db "わっ!!@", $ce, $5, $0 - db "わははは!", $d0, $5, $0 - -Unknown_11e2d8: ; 11e2d8 - db "あのね@@", $50, $0, $0 - db "あんまり@", $6e, $0, $0 - db "いじわる@", $8e, $0, $0 - db "うそ@@@", $b6, $0, $0 - db "うむ@@@", $c4, $0, $0 - db "おーい@@", $e4, $0, $0 - db "おすすめ@", $6, $1, $0 - db "おばかさん", $1e, $1, $0 - db "かなり@@", $6e, $1, $0 - db "から@@@", $7a, $1, $0 - db "きぶん@@", $98, $1, $0 - db "けど@@@", $d6, $1, $0 - db "こそ@@@", $ea, $1, $0 - db "こと@@@", $ee, $1, $0 - db "さあ@@@", $12, $2, $0 - db "さっぱり@", $1e, $2, $0 - db "さて@@@", $20, $2, $0 - db "じゅうぶん", $72, $2, $0 - db "すぐ@@@", $94, $2, $0 - db "すごく@@", $98, $2, $0 - db "すこしは@", $9a, $2, $0 - db "すっっごい", $a0, $2, $0 - db "ぜーんぜん", $b0, $2, $0 - db "ぜったい@", $b2, $2, $0 - db "それで@@", $ce, $2, $0 - db "だけ@@@", $f2, $2, $0 - db "だって@@", $fc, $2, $0 - db "たぶん@@", $6, $3, $0 - db "たら@@@", $14, $3, $0 - db "ちょー@@", $3a, $3, $0 - db "ちょっと@", $3c, $3, $0 - db "ったら@@", $4e, $3, $0 - db "って@@@", $50, $3, $0 - db "ていうか@", $62, $3, $0 - db "でも@@@", $88, $3, $0 - db "どうしても", $9c, $3, $0 - db "とうぜん@", $a0, $3, $0 - db "どうぞ@@", $a2, $3, $0 - db "とりあえず", $be, $3, $0 - db "なあ@@@", $cc, $3, $0 - db "なんて@@", $f4, $3, $0 - db "なんでも@", $fc, $3, $0 - db "なんとか@", $fe, $3, $0 - db "には@@@", $8, $4, $0 - db "バッチり@", $46, $4, $0 - db "ばりばり@", $52, $4, $0 - db "ほど@@@", $b0, $4, $0 - db "ほんと@@", $be, $4, $0 - db "まさに@@", $d0, $4, $0 - db "マジ@@@", $d2, $4, $0 - db "マジで@@", $d4, $4, $0 - db "まったく@", $e4, $4, $0 - db "まで@@@", $e6, $4, $0 - db "まるで@@", $ec, $4, $0 - db "ムード@@", $e, $5, $0 - db "むしろ@@", $14, $5, $0 - db "めちゃ@@", $24, $5, $0 - db "めっぽう@", $28, $5, $0 - db "もう@@@", $2c, $5, $0 - db "モード@@", $2e, $5, $0 - db "もっと@@", $36, $5, $0 - db "もはや@@", $38, $5, $0 - db "やっと@@", $4a, $5, $0 - db "やっぱり@", $4c, $5, $0 - db "より@@@", $7c, $5, $0 - db "れば@@@", $a4, $5, $0 - -Unknown_11e4e8: ; 11e4e8 - db "あいたい@", $1a, $0, $0 - db "あそびたい", $32, $0, $0 - db "いきたい@", $7c, $0, $0 - db "うかれて@", $b4, $0, $0 - db "うれしい@", $c6, $0, $0 - db "うれしさ@", $c8, $0, $0 - db "エキサイト", $d8, $0, $0 - db "えらい@@", $de, $0, $0 - db "おかしい@", $ec, $0, $0 - db "ォッケー@", $8, $1, $0 - db "かえりたい", $48, $1, $0 - db "がっくし@", $5a, $1, $0 - db "かなしい@", $6c, $1, $0 - db "がんばって", $80, $1, $0 - db "きがしない", $86, $1, $0 - db "きがする@", $88, $1, $0 - db "ききたい@", $8a, $1, $0 - db "きになる@", $90, $1, $0 - db "きのせい@", $96, $1, $0 - db "きらい@@", $b4, $1, $0 - db "くやしい@", $be, $1, $0 - db "くやしさ@", $c0, $1, $0 - db "さみしい@", $24, $2, $0 - db "ざんねん@", $32, $2, $0 - db "しあわせ@", $36, $2, $0 - db "したい@@", $44, $2, $0 - db "したくない", $46, $2, $0 - db "しまった@", $64, $2, $0 - db "しょんぼり", $82, $2, $0 - db "すき@@@", $92, $2, $0 - db "だいきらい", $da, $2, $0 - db "たいくつ@", $dc, $2, $0 - db "だいじ@@", $de, $2, $0 - db "だいすき@", $e4, $2, $0 - db "たいへん@", $ea, $2, $0 - db "たのしい@", $0, $3, $0 - db "たのしすぎ", $2, $3, $0 - db "たべたい@", $8, $3, $0 - db "ダメダメ@", $e, $3, $0 - db "たりない@", $16, $3, $0 - db "ちくしょー", $34, $3, $0 - db "どうしよう", $9e, $3, $0 - db "ドキドキ@", $ac, $3, $0 - db "ナイス@@", $d0, $3, $0 - db "のみたい@", $26, $4, $0 - db "びっくり@", $60, $4, $0 - db "ふあん@@", $74, $4, $0 - db "ふらふら@", $86, $4, $0 - db "ほしい@@", $ae, $4, $0 - db "ボロボロ@", $b8, $4, $0 - db "まだまだ@", $e0, $4, $0 - db "まてない@", $e8, $4, $0 - db "まんぞく@", $f0, $4, $0 - db "みたい@@", $f8, $4, $0 - db "めずらしい", $22, $5, $0 - db "メラメラ@", $2a, $5, $0 - db "やだ@@@", $46, $5, $0 - db "やったー@", $48, $5, $0 - db "やばい@@", $50, $5, $0 - db "やばすぎる", $52, $5, $0 - db "やられた@", $54, $5, $0 - db "やられて@", $56, $5, $0 - db "よかった@", $6e, $5, $0 - db "ラブラブ@", $96, $5, $0 - db "ロマン@@", $a8, $5, $0 - db "ろんがい@", $aa, $5, $0 - db "わから@@", $b4, $5, $0 - db "わかり@@", $b6, $5, $0 - db "わくわく@", $ba, $5, $0 - -Unknown_11e710: ; 11e710 - db "あつい@@", $38, $0, $0 - db "あった@@", $3a, $0, $0 - db "あり@@@", $56, $0, $0 - db "ある@@@", $5e, $0, $0 - db "あわてて@", $6a, $0, $0 - db "いい@@@", $70, $0, $0 - db "いか@@@", $76, $0, $0 - db "イカス@@", $78, $0, $0 - db "いきおい@", $7a, $0, $0 - db "いける@@", $8a, $0, $0 - db "いじょう@", $8c, $0, $0 - db "いそがしい", $90, $0, $0 - db "いっしょに", $9a, $0, $0 - db "いっぱい@", $9c, $0, $0 - db "いない@@", $a0, $0, $0 - db "いや@@@", $a4, $0, $0 - db "いる@@@", $a8, $0, $0 - db "うまい@@", $c0, $0, $0 - db "うまく@@", $c2, $0, $0 - db "おおきい@", $e6, $0, $0 - db "おくれ@@", $f2, $0, $0 - db "おしい@@", $fa, $0, $0 - db "おもしろい", $2c, $1, $0 - db "おもしろく", $2e, $1, $0 - db "かっこいい", $5c, $1, $0 - db "かわいい@", $7e, $1, $0 - db "かんぺき@", $82, $1, $0 - db "けっこう@", $d0, $1, $0 - db "げんき@@", $d8, $1, $0 - db "こわい@@", $6, $2, $0 - db "さいこう@", $14, $2, $0 - db "さむい@@", $26, $2, $0 - db "さわやか@", $2c, $2, $0 - db "しかたない", $38, $2, $0 - db "すごい@@", $96, $2, $0 - db "すごすぎ@", $9c, $2, $0 - db "すてき@@", $a4, $2, $0 - db "たいした@", $e0, $2, $0 - db "だいじょぶ", $e2, $2, $0 - db "たかい@@", $ec, $2, $0 - db "ただしい@", $f8, $2, $0 - db "だめ@@@", $c, $3, $0 - db "ちいさい@", $2c, $3, $0 - db "ちがう@@", $30, $3, $0 - db "つかれ@@", $48, $3, $0 - db "とくい@@", $b0, $3, $0 - db "とまらない", $b6, $3, $0 - db "ない@@@", $ce, $3, $0 - db "なかった@", $d2, $3, $0 - db "なし@@@", $d8, $3, $0 - db "なって@@", $dc, $3, $0 - db "はやい@@", $50, $4, $0 - db "ひかる@@", $5a, $4, $0 - db "ひくい@@", $5c, $4, $0 - db "ひどい@@", $64, $4, $0 - db "ひとりで@", $66, $4, $0 - db "ひま@@@", $68, $4, $0 - db "ふそく@@", $76, $4, $0 - db "へた@@@", $8c, $4, $0 - db "まちがって", $e2, $4, $0 - db "やさしい@", $42, $5, $0 - db "よく@@@", $70, $5, $0 - db "よわって@", $86, $5, $0 - db "らく@@@", $8c, $5, $0 - db "らしい@@", $90, $5, $0 - db "わるい@@", $d4, $5, $0 - -Unknown_11e920: ; 11e920 - db "アルバイト", $64, $0, $0 - db "うち@@@", $ba, $0, $0 - db "おかね@@", $ee, $0, $0 - db "おこづかい", $f4, $0, $0 - db "おふろ@@", $24, $1, $0 - db "がっこう@", $5e, $1, $0 - db "きねん@@", $92, $1, $0 - db "グループ@", $c6, $1, $0 - db "ゲット@@", $d2, $1, $0 - db "こうかん@", $de, $1, $0 - db "しごと@@", $40, $2, $0 - db "しゅぎょう", $74, $2, $0 - db "じゅぎょう", $76, $2, $0 - db "じゅく@@", $78, $2, $0 - db "しんか@@", $88, $2, $0 - db "ずかん@@", $90, $2, $0 - db "せいかつ@", $ae, $2, $0 - db "せんせい@", $b8, $2, $0 - db "センター@", $ba, $2, $0 - db "タワー@@", $28, $3, $0 - db "つうしん@", $40, $3, $0 - db "テスト@@", $7e, $3, $0 - db "テレビ@@", $8c, $3, $0 - db "でんわ@@", $96, $3, $0 - db "どうぐ@@", $9a, $3, $0 - db "トレード@", $c4, $3, $0 - db "なまえ@@", $e8, $3, $0 - db "ニュース@", $a, $4, $0 - db "にんき@@", $c, $4, $0 - db "パーティー", $2e, $4, $0 - db "べんきょう", $92, $4, $0 - db "マシン@@", $d6, $4, $0 - db "めいし@@", $1e, $5, $0 - db "メッセージ", $26, $5, $0 - db "もようがえ", $3a, $5, $0 - db "ゆめ@@@", $5a, $5, $0 - db "ようちえん", $66, $5, $0 - db "ラジォ@@", $92, $5, $0 - db "ワールド@", $ae, $5, $0 - -Unknown_11ea58: ; 11ea58 - db "アイドル@", $1e, $0, $0 - db "アニメ@@", $4c, $0, $0 - db "うた@@@", $b8, $0, $0 - db "えいが@@", $d0, $0, $0 - db "おかし@@", $ea, $0, $0 - db "おしゃべり", $4, $1, $0 - db "おままごと", $28, $1, $0 - db "おもちゃ@", $30, $1, $0 - db "おんがく@", $38, $1, $0 - db "カード@@", $3e, $1, $0 - db "かいもの@", $46, $1, $0 - db "グルメ@@", $c8, $1, $0 - db "ゲーム@@", $cc, $1, $0 - db "ざっし@@", $1c, $2, $0 - db "さんぽ@@", $34, $2, $0 - db "じてんしゃ", $50, $2, $0 - db "しゅみ@@", $7a, $2, $0 - db "スポーツ@", $a8, $2, $0 - db "ダイエット", $d8, $2, $0 - db "たからもの", $f0, $2, $0 - db "たび@@@", $4, $3, $0 - db "ダンス@@", $2a, $3, $0 - db "つり@@@", $60, $3, $0 - db "デート@@", $6a, $3, $0 - db "でんしゃ@", $92, $3, $0 - db "ぬいぐるみ", $e, $4, $0 - db "パソコン@", $3e, $4, $0 - db "はな@@@", $4c, $4, $0 - db "ヒーロー@", $58, $4, $0 - db "ひるね@@", $6e, $4, $0 - db "ヒロイン@", $70, $4, $0 - db "ぼうけん@", $96, $4, $0 - db "ボード@@", $9a, $4, $0 - db "ボール@@", $9e, $4, $0 - db "ほん@@@", $ba, $4, $0 - db "マンガ@@", $ee, $4, $0 - db "やくそく@", $40, $5, $0 - db "やすみ@@", $44, $5, $0 - db "よてい@@", $74, $5, $0 - -Unknown_11eb90: ; 11eb90 - db "あう@@@", $20, $0, $0 - db "あきらめ@", $24, $0, $0 - db "あげる@@", $28, $0, $0 - db "あせる@@", $2e, $0, $0 - db "あそび@@", $30, $0, $0 - db "あそぶ@@", $34, $0, $0 - db "あつめ@@", $3e, $0, $0 - db "あるき@@", $60, $0, $0 - db "あるく@@", $62, $0, $0 - db "いく@@@", $7e, $0, $0 - db "いけ@@@", $86, $0, $0 - db "おき@@@", $f0, $0, $0 - db "おこり@@", $f6, $0, $0 - db "おこる@@", $f8, $0, $0 - db "おしえ@@", $fe, $0, $0 - db "おしえて@", $0, $1, $0 - db "おねがい@", $1a, $1, $0 - db "おぼえ@@", $26, $1, $0 - db "かえる@@", $4a, $1, $0 - db "がまん@@", $74, $1, $0 - db "きく@@@", $8c, $1, $0 - db "きたえ@@", $8e, $1, $0 - db "きめ@@@", $a6, $1, $0 - db "くる@@@", $c4, $1, $0 - db "さがし@@", $18, $2, $0 - db "さわぎ@@", $2a, $2, $0 - db "した@@@", $42, $2, $0 - db "しって@@", $4a, $2, $0 - db "して@@@", $4e, $2, $0 - db "しない@@", $52, $2, $0 - db "しまう@@", $60, $2, $0 - db "じまん@@", $66, $2, $0 - db "しらない@", $84, $2, $0 - db "しる@@@", $86, $2, $0 - db "しんじて@", $8a, $2, $0 - db "する@@@", $aa, $2, $0 - db "たべる@@", $a, $3, $0 - db "つかう@@", $42, $3, $0 - db "つかえ@@", $44, $3, $0 - db "つかって@", $46, $3, $0 - db "できない@", $70, $3, $0 - db "できる@@", $72, $3, $0 - db "でない@@", $84, $3, $0 - db "でる@@@", $8a, $3, $0 - db "なげる@@", $d6, $3, $0 - db "なやみ@@", $ea, $3, $0 - db "ねられ@@", $18, $4, $0 - db "ねる@@@", $1a, $4, $0 - db "のがし@@", $24, $4, $0 - db "のむ@@@", $28, $4, $0 - db "はしり@@", $3a, $4, $0 - db "はしる@@", $3c, $4, $0 - db "はたらき@", $40, $4, $0 - db "はたらく@", $42, $4, $0 - db "はまって@", $4e, $4, $0 - db "ぶつけ@@", $7a, $4, $0 - db "ほめ@@@", $b4, $4, $0 - db "みせて@@", $f6, $4, $0 - db "みて@@@", $fc, $4, $0 - db "みる@@@", $2, $5, $0 - db "めざす@@", $20, $5, $0 - db "もって@@", $34, $5, $0 - db "ゆずる@@", $58, $5, $0 - db "ゆるす@@", $5c, $5, $0 - db "ゆるせ@@", $5e, $5, $0 - db "られない@", $9a, $5, $0 - db "られる@@", $9c, $5, $0 - db "わかる@@", $b8, $5, $0 - db "わすれ@@", $c0, $5, $0 - -Unknown_11edb8: ; 11edb8 - db "あき@@@", $22, $0, $0 - db "あさ@@@", $2a, $0, $0 - db "あした@@", $2c, $0, $0 - db "いちにち@", $94, $0, $0 - db "いつか@@", $98, $0, $0 - db "いつも@@", $9e, $0, $0 - db "いま@@@", $a2, $0, $0 - db "えいえん@", $ce, $0, $0 - db "おととい@", $12, $1, $0 - db "おわり@@", $36, $1, $0 - db "かようび@", $78, $1, $0 - db "きのう@@", $94, $1, $0 - db "きょう@@", $b0, $1, $0 - db "きんようび", $b8, $1, $0 - db "げつようび", $d4, $1, $0 - db "このあと@", $f4, $1, $0 - db "このまえ@", $f6, $1, $0 - db "こんど@@", $c, $2, $0 - db "じかん@@", $3c, $2, $0 - db "じゅうねん", $70, $2, $0 - db "すいようび", $8e, $2, $0 - db "スタート@", $9e, $2, $0 - db "ずっと@@", $a2, $2, $0 - db "ストップ@", $a6, $2, $0 - db "そのうち@", $c4, $2, $0 - db "ついに@@", $3e, $3, $0 - db "つぎ@@@", $4a, $3, $0 - db "どようび@", $ba, $3, $0 - db "なつ@@@", $da, $3, $0 - db "にちようび", $6, $4, $0 - db "はじめ@@", $38, $4, $0 - db "はる@@@", $54, $4, $0 - db "ひる@@@", $6c, $4, $0 - db "ふゆ@@@", $84, $4, $0 - db "まいにち@", $c6, $4, $0 - db "もくようび", $30, $5, $0 - db "よなか@@", $76, $5, $0 - db "よる@@@", $7e, $5, $0 - db "らいしゅう", $88, $5, $0 - -Unknown_11eef0: ; 11eef0 - db "いたします", $92, $0, $0 - db "おります@", $32, $1, $0 - db "か!?@@", $3c, $1, $0 - db "かい?@@", $44, $1, $0 - db "かしら?@", $50, $1, $0 - db "かな?@@", $6a, $1, $0 - db "かも@@@", $76, $1, $0 - db "くれ@@@", $ca, $1, $0 - db "ございます", $e8, $1, $0 - db "しがち@@", $3a, $2, $0 - db "します@@", $62, $2, $0 - db "じゃ@@@", $6a, $2, $0 - db "じゃん@@", $6e, $2, $0 - db "しよう@@", $7c, $2, $0 - db "ぜ!@@@", $ac, $2, $0 - db "ぞ!@@@", $bc, $2, $0 - db "た@@@@", $d4, $2, $0 - db "だ@@@@", $d6, $2, $0 - db "だからね@", $ee, $2, $0 - db "だぜ@@@", $f4, $2, $0 - db "だった@@", $fa, $2, $0 - db "だね@@@", $fe, $2, $0 - db "だよ@@@", $10, $3, $0 - db "だよねー!", $12, $3, $0 - db "だわ@@@", $26, $3, $0 - db "ッス@@@", $4c, $3, $0 - db "ってかんじ", $52, $3, $0 - db "っぱなし@", $54, $3, $0 - db "つもり@@", $56, $3, $0 - db "ていない@", $64, $3, $0 - db "ている@@", $66, $3, $0 - db "でーす!@", $68, $3, $0 - db "でした@@", $74, $3, $0 - db "でしょ?@", $76, $3, $0 - db "でしょー!", $78, $3, $0 - db "です@@@", $7a, $3, $0 - db "ですか?@", $7c, $3, $0 - db "ですよ@@", $80, $3, $0 - db "ですわ@@", $82, $3, $0 - db "どうなの?", $a4, $3, $0 - db "どうよ?@", $a8, $3, $0 - db "とかいって", $aa, $3, $0 - db "なの@@@", $e0, $3, $0 - db "なのか@@", $e2, $3, $0 - db "なのだ@@", $e4, $3, $0 - db "なのよ@@", $e6, $3, $0 - db "なんだね@", $f2, $3, $0 - db "なんです@", $f8, $3, $0 - db "なんてね@", $fa, $3, $0 - db "ね@@@@", $12, $4, $0 - db "ねー@@@", $14, $4, $0 - db "の@@@@", $1c, $4, $0 - db "の?@@@", $1e, $4, $0 - db "ばっかり@", $44, $4, $0 - db "まーす!@", $c2, $4, $0 - db "ます@@@", $d8, $4, $0 - db "ますわ@@", $da, $4, $0 - db "ません@@", $dc, $4, $0 - db "みたいな@", $fa, $4, $0 - db "よ!@@@", $60, $5, $0 - db "よー@@@", $68, $5, $0 - db "よーん@@", $6c, $5, $0 - db "よね@@@", $78, $5, $0 - db "るよ@@@", $a2, $5, $0 - db "わけ@@@", $bc, $5, $0 - db "わよ!@@", $d2, $5, $0 - -Unknown_11f100: ; 11f100 - db "ああ@@@", $12, $0, $0 - db "あっち@@", $3c, $0, $0 - db "あの@@@", $4e, $0, $0 - db "ありゃ@@", $5c, $0, $0 - db "あれ@@@", $66, $0, $0 - db "あれは@@", $68, $0, $0 - db "あんな@@", $6c, $0, $0 - db "こう@@@", $dc, $1, $0 - db "こっち@@", $ec, $1, $0 - db "この@@@", $f2, $1, $0 - db "こりゃ@@", $fe, $1, $0 - db "これ@@@", $0, $2, $0 - db "これだ!@", $2, $2, $0 - db "これは@@", $4, $2, $0 - db "こんな@@", $e, $2, $0 - db "そう@@@", $be, $2, $0 - db "そっち@@", $c0, $2, $0 - db "その@@@", $c2, $2, $0 - db "そりゃ@@", $c6, $2, $0 - db "それ@@@", $c8, $2, $0 - db "それだ!@", $cc, $2, $0 - db "それは@@", $d0, $2, $0 - db "そんな@@", $d2, $2, $0 - db "どう@@@", $98, $3, $0 - db "どっち@@", $b2, $3, $0 - db "どの@@@", $b4, $3, $0 - db "どりゃ@@", $c0, $3, $0 - db "どれ@@@", $c2, $3, $0 - db "どれを@@", $c8, $3, $0 - db "どんな@@", $ca, $3, $0 - db "なに@@@", $de, $3, $0 - db "なんか@@", $ec, $3, $0 - db "なんだ@@", $f0, $3, $0 - db "なんで@@", $f6, $3, $0 - db "なんなんだ", $0, $4, $0 - db "なんの@@", $2, $4, $0 -; 11f220 - -Unknown_11f220: - db $12, $01, $24, $02 - db $45, $05, $45, $05 - db $42, $05, $42, $05 - db $45, $05, $42, $05 - db $27, $03, $27, $03 - db $45, $05, $27, $03 - db $42, $05, $24, $02 - -Unknown_11f23c: - db $12, $00, $2f, $00 - db $70, $00, $1e, $00 - db $ac, $00, $11, $00 - db $ce, $00, $09, $00 - db $e0, $00, $2e, $00 - db $3c, $01, $24, $00 - db $84, $01, $1b, $00 - db $ba, $01, $09, $00 - db $cc, $01, $07, $00 - db $da, $01, $1c, $00 - db $12, $02, $12, $00 - db $36, $02, $2b, $00 - db $8c, $02, $10, $00 - db $ac, $02, $08, $00 - db $bc, $02, $0c, $00 - db $d4, $02, $2c, $00 - db $2c, $03, $09, $00 - db $3e, $03, $12, $00 - db $62, $03, $1b, $00 - db $98, $03, $1a, $00 - db $cc, $03, $1c, $00 - db $04, $04, $05, $00 - db $0e, $04, $02, $00 - db $12, $04, $05, $00 - db $1c, $04, $07, $00 - db $2a, $04, $16, $00 - db $56, $04, $0e, $00 - db $72, $04, $0c, $00 - db $8a, $04, $05, $00 - db $94, $04, $16, $00 - db $c0, $04, $19, $00 - db $f2, $04, $0e, $00 - db $0e, $05, $08, $00 - db $1e, $05, $07, $00 - db $2c, $05, $09, $00 - db $3e, $05, $0d, $00 - db $58, $05, $04, $00 - db $60, $05, $14, $00 - db $88, $05, $0b, $00 - db $9e, $05, $01, $00 - db $a0, $05, $02, $00 - db $a4, $05, $02, $00 - db $a8, $05, $02, $00 - db $ac, $05, $15, $00 - db $00, $00, $09, $00 +INCLUDE "misc/fixed_words.asm" BTTrainerClassGenders: ; 11f2f0 db MALE ; FALKNER diff --git a/misc/fixed_words.asm b/misc/fixed_words.asm new file mode 100755 index 000000000..708116689 --- /dev/null +++ b/misc/fixed_words.asm @@ -0,0 +1,4182 @@ +; These functions seem to be related to the selection of preset phrases +; for use in mobile communications. Annoyingly, they separate the +; Battle Tower function above from the data it references. +Function11c05d: ; 11c05d + ld a, e + or d + jr z, .asm_11c071 + ld a, e + and d + cp $ff + jr z, .asm_11c071 + push hl + call Function11c156 + pop hl + call PlaceString + and a + ret + +.asm_11c071 + ld c, l + ld b, h + scf + ret +; 11c075 + +Function11c075: ; 11c075 + push de + ld a, c + call Function11c254 + pop de + ld bc, wcd36 + call Function11c08f + ret +; 11c082 + +Function11c082: ; 11c082 + push de + ld a, c + call Function11c254 + pop de + ld bc, wcd36 + call Function11c0c6 + ret +; 11c08f + +Function11c08f: ; 11c08f + ld l, e + ld h, d + push hl + ld a, $3 +.asm_11c094 + push af + ld a, [bc] + ld e, a + inc bc + ld a, [bc] + ld d, a + inc bc + push bc + call Function11c05d + jr c, .asm_11c0a2 + inc bc + +.asm_11c0a2 + ld l, c + ld h, b + pop bc + pop af + dec a + jr nz, .asm_11c094 + pop hl + ld de, $0028 + add hl, de + ld a, $3 +.asm_11c0b0 + push af + ld a, [bc] + ld e, a + inc bc + ld a, [bc] + ld d, a + inc bc + push bc + call Function11c05d + jr c, .asm_11c0be + inc bc + +.asm_11c0be + ld l, c + ld h, b + pop bc + pop af + dec a + jr nz, .asm_11c0b0 + ret +; 11c0c6 + + +Function11c0c6: ; 11c0c6 + ld a, [wJumptableIndex] + ld l, a + ld a, [wcf64] + ld h, a + push hl + ld hl, $c608 + 16 + ld a, $0 + ld [hli], a + push de + xor a + ld [wJumptableIndex], a + ld a, $12 + ld [wcf64], a + ld a, $6 +.asm_11c0e1 + push af + ld a, [bc] + ld e, a + inc bc + ld a, [bc] + ld d, a + inc bc + or e + jr z, .asm_11c133 + push hl + push bc + call Function11c156 + call Function11c14a + ld e, c + pop bc + pop hl + ld a, e + or a + jr z, .asm_11c133 +.asm_11c0fa + ld a, [wcf64] + cp $12 + jr z, .asm_11c102 + inc e + +.asm_11c102 + cp e + jr nc, .asm_11c11c + ld a, [wJumptableIndex] + inc a + ld [wJumptableIndex], a + ld [hl], $4e + rra + jr c, .asm_11c113 + ld [hl], $55 + +.asm_11c113 + inc hl + ld a, $12 + ld [wcf64], a + dec e + jr .asm_11c0fa + +.asm_11c11c + cp $12 + jr z, .asm_11c123 + ld [hl], $7f + inc hl + +.asm_11c123 + sub e + ld [wcf64], a + ld de, $c608 +.asm_11c12a + ld a, [de] + cp $50 + jr z, .asm_11c133 + inc de + ld [hli], a + jr .asm_11c12a + +.asm_11c133 + pop af + dec a + jr nz, .asm_11c0e1 + ld [hl], $57 + pop bc + ld hl, $c608 + 16 + call PlaceWholeStringInBoxAtOnce + pop hl + ld a, l + ld [wJumptableIndex], a + ld a, h + ld [wcf64], a + ret +; 11c14a + +Function11c14a: ; 11c14a + ld c, $0 + ld hl, $c608 +.asm_11c14f + ld a, [hli] + cp $50 + ret z + inc c + jr .asm_11c14f +; 11c156 + +Function11c156: ; 11c156 + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, $50 + ld hl, $c608 + ld bc, $000b + call ByteFill + ld a, d + and a + jr z, .asm_11c19c + ld hl, Unknown_11daac + dec d + sla d + ld c, d + ld b, $0 + add hl, bc + ld a, [hli] + ld c, a + ld a, [hl] + ld b, a + push bc + pop hl + ld c, e + ld b, $0 + sla c + rl b + sla c + rl b + sla c + rl b + add hl, bc + ld bc, $0005 +.asm_11c18f + ld de, $c608 + call CopyBytes + ld de, $c608 + pop af + ld [rSVBK], a + ret + +.asm_11c19c + ld a, e + ld [wd265], a + call GetPokemonName + ld hl, StringBuffer1 + ld bc, $000a + jr .asm_11c18f +; 11c1ab + +Function11c1ab: ; 11c1ab + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + call Function11c1b9 + pop af + ld [hInMenu], a + ret +; 11c1b9 + +Function11c1b9: ; 11c1b9 + call Function11c1ca + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + call Function11c283 + pop af + ld [rSVBK], a + ret +; 11c1ca + +Function11c1ca: ; 11c1ca + xor a + ld [wJumptableIndex], a + ld [wcf64], a + ld [wcf65], a + ld [wcf66], a + ld [wcd23], a + ld [BGMapBuffer], a + ld [wcd21], a + ld [CreditsTimer], a + ld [wcd35], a + ld [wcd2b], a + ld a, $ff + ld [wcd24], a + ld a, [MenuSelection2] + dec a + call Function11c254 + call ClearBGPalettes + call ClearSprites + call ClearScreen + call Function11d323 + call SetPalettes + call DisableLCD + ld hl, GFX_11d67e + ld de, VTiles2 + ld bc, $60 + call CopyBytes + ld hl, LZ_11d6de + ld de, VTiles0 + call Decompress + call EnableLCD + callba ReloadMapPart + callba Function8cf53 + callba LoadPokemonData + callba Function40c30 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, $c6d0 + ld de, LYOverrides + ld bc, $100 + call CopyBytes + pop af + ld [rSVBK], a + call Function11d4aa + call Function11d3ba + ret +; 11c254 + +Function11c254: ; 11c254 + push af + ld a, $4 + call GetSRAMBank + ld hl, $a007 + pop af + sla a + sla a + ld c, a + sla a + add c + ld c, a + ld b, $0 + add hl, bc + ld de, wcd36 + ld bc, $000c + call CopyBytes + call CloseSRAM + ret +; 11c277 + + +Function11c277: ; 11c277 (47:4277) + ld a, " " + hlcoord 0, 6 + ld bc, (SCREEN_HEIGHT - 6) * SCREEN_WIDTH + call ByteFill + ret + +Function11c283: ; 11c283 +.loop + call JoyTextDelay + ld a, [hJoyPressed] + ld [hJoypadPressed], a + ld a, [wJumptableIndex] + bit 7, a + jr nz, .exit + call .DoJumptableFunction + callba Function8cf69 + callba ReloadMapPart + jr .loop + +.exit + callba Function8cf53 + call ClearSprites + ret +; 11c2ac + +.DoJumptableFunction: ; 11c2ac + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, .Jumptable +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 11c2bb + + +.Jumptable: ; 11c2bb (47:42bb) + dw Function11c2e9 ; 00 + dw Function11c346 ; 01 + dw Function11c35f ; 02 + dw Function11c373 ; 03 + dw Function11c3c2 ; 04 + dw Function11c3ed ; 05 + dw Function11c52c ; 06 + dw Function11c53d ; 07 + dw Function11c658 ; 08 + dw Function11c675 ; 09 + dw Function11c9bd ; 0a + dw Function11c9c3 ; 0b + dw Function11caad ; 0c + dw Function11cab3 ; 0d + dw Function11cb52 ; 0e + dw Function11cb66 ; 0f + dw Function11cbf5 ; 10 + dw Function11ccef ; 11 + dw Function11cd04 ; 12 + dw Function11cd20 ; 13 + dw Function11cd54 ; 14 + dw Function11ce0b ; 15 + dw Function11ce2b ; 16 + + +Function11c2e9: ; 11c2e9 (47:42e9) + depixel 3, 1, 2, 5 + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct + depixel 8, 1, 2, 5 + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct + ld hl, $c + add hl, bc + ld a, $1 + ld [hl], a + depixel 9, 2, 2, 0 + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct + ld hl, $c + add hl, bc + ld a, $3 + ld [hl], a + depixel 10, 16 + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct + ld hl, $c + add hl, bc + ld a, $4 + ld [hl], a + depixel 10, 4 + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct + ld hl, $c + add hl, bc + ld a, $5 + ld [hl], a + depixel 10, 2 + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct + ld hl, $c + add hl, bc + ld a, $2 + ld [hl], a + ld hl, wcd23 + set 1, [hl] + set 2, [hl] + jp Function11cfb5 + +Function11c346: ; 11c346 (47:4346) + ld a, $9 + ld [wcd2d], a + ld a, $2 + ld [wcd2e], a + ld [wcd2f], a + ld [wcd30], a + ld de, wcd2d + call Function11cfce + jp Function11cfb5 + +Function11c35f: ; 11c35f (47:435f) + ld hl, wcd2f +rept 2 + inc [hl] +endr +rept 2 + dec hl +endr + dec [hl] + push af + ld de, wcd2d + call Function11cfce + pop af + ret nz + jp Function11cfb5 + +Function11c373: ; 11c373 (47:4373) + ld hl, wcd30 +rept 2 + inc [hl] +endr +rept 2 + dec hl +endr + dec [hl] + push af + ld de, wcd2d + call Function11cfce + pop af + ret nz + call Function11c38a + jp Function11cfb5 + +Function11c38a: ; 11c38a (47:438a) + ld hl, Unknown_11c986 + ld bc, wcd36 + ld a, $6 +.asm_11c392 + push af + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push hl + push de + pop hl + ld a, [bc] + inc bc + ld e, a + ld a, [bc] + inc bc + ld d, a + push bc + or e + jr z, .asm_11c3af + ld a, e + and d + cp $ff + jr z, .asm_11c3af + call Function11c05d + jr .asm_11c3b5 +.asm_11c3af + ld de, String_11c3bc + call PlaceString +.asm_11c3b5 + pop bc + pop hl + pop af + dec a + jr nz, .asm_11c392 + ret +; 11c3bc (47:43bc) + +String_11c3bc: ; 11c3bc + db "ーーーーー@" +; 11c3c2 + +Function11c3c2: ; 11c3c2 (47:43c2) + call Function11c277 + ld de, Unknown_11cfbe + call Function11d035 + hlcoord 1, 7 + ld de, String_11c4db + call PlaceString + hlcoord 1, 16 + ld de, String_11c51b + call PlaceString + call Function11c4be + ld hl, wcd23 + set 0, [hl] + ld hl, wcd24 + res 0, [hl] + call Function11cfb5 + +Function11c3ed: ; 11c3ed (47:43ed) + ld hl, BGMapBuffer ; wcd20 (aliases: CreditsPos) + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and $8 + jr nz, .asm_11c426 + ld a, [de] + and $2 + jr nz, .asm_11c41a + ld a, [de] + and $1 + jr nz, .asm_11c42c + ld de, hJoyLast + ld a, [de] + and $40 + jr nz, .asm_11c47c + ld a, [de] + and $80 + jr nz, .asm_11c484 + ld a, [de] + and $20 + jr nz, .asm_11c48c + ld a, [de] + and $10 + jr nz, .asm_11c498 + ret +.asm_11c41a + call PlayClickSFX +.asm_11c41d + ld hl, wcd24 + set 0, [hl] + ld a, $c + jr .asm_11c475 +.asm_11c426 + ld a, $8 + ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos) + ret +.asm_11c42c + ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) + cp $6 + jr c, .asm_11c472 + sub $6 + jr z, .asm_11c469 + dec a + jr z, .asm_11c41d + ld hl, wcd36 + ld c, $c + xor a +.asm_11c440 + or [hl] + inc hl + dec c + jr nz, .asm_11c440 + and a + jr z, .asm_11c460 + ld de, Unknown_11cfba + call Function11cfce + decoord 1, 2 + ld bc, wcd36 + call Function11c08f + ld hl, wcd24 + set 0, [hl] + ld a, $e + jr .asm_11c475 +.asm_11c460 + ld hl, wcd24 + set 0, [hl] + ld a, $11 + jr .asm_11c475 +.asm_11c469 + ld hl, wcd24 + set 0, [hl] + ld a, $a + jr .asm_11c475 +.asm_11c472 + call Function11c4a5 +.asm_11c475 + ld [wJumptableIndex], a + call PlayClickSFX + ret +.asm_11c47c + ld a, [hl] + cp $3 + ret c + sub $3 + jr .asm_11c4a3 +.asm_11c484 + ld a, [hl] + cp $6 + ret nc + add $3 + jr .asm_11c4a3 +.asm_11c48c + ld a, [hl] + and a + ret z + cp $3 + ret z + cp $6 + ret z + dec a + jr .asm_11c4a3 +.asm_11c498 + ld a, [hl] + cp $2 + ret z + cp $5 + ret z + cp $8 + ret z + inc a +.asm_11c4a3 + ld [hl], a + ret + +Function11c4a5: ; 11c4a5 (47:44a5) + ld hl, wcd23 + res 0, [hl] + ld a, [wcd2b] + and a + jr nz, .asm_11c4b7 + xor a + ld [wcd21], a + ld a, $6 + ret +.asm_11c4b7 + xor a + ld [CreditsTimer], a + ld a, $15 + ret + +Function11c4be: ; 11c4be (47:44be) + ld a, $1 + hlcoord 0, 6, AttrMap + ld bc, $a0 + call ByteFill + ld a, $7 + hlcoord 0, 14, AttrMap + ld bc, $28 + call ByteFill + callba ReloadMapPart + ret +; 11c4db (47:44db) + +String_11c4db: ; 11c4db + db "6つのことば¯くみあわせます" + next "かえたいところ¯えらぶと でてくる" + next "ことばのグループから いれかえたい" + next "たんご¯えらんでください" + db "@" +; 11c51b + +String_11c51b: ; 11c51b + db "ぜんぶけす やめる けってい@" +; 11c52c + +Function11c52c: ; 11c52c (47:452c) + call Function11c277 + call Function11c5f0 + call Function11c618 + ld hl, wcd24 + res 1, [hl] + call Function11cfb5 + +Function11c53d: ; 11c53d (47:453d) + ld hl, wcd21 + ld de, hJoypadPressed ; $ffa3 + + ld a, [de] + and START + jr nz, .start + + ld a, [de] + and SELECT + jr nz, .select + + ld a, [de] + and B_BUTTON + jr nz, .b + + ld a, [de] + and A_BUTTON + jr nz, .a + + ld de, hJoyLast + + ld a, [de] + and D_UP + jr nz, .up + + ld a, [de] + and D_DOWN + jr nz, .down + + ld a, [de] + and D_LEFT + jr nz, .left + + ld a, [de] + and D_RIGHT + jr nz, .right + + ret + +.a + ld a, [wcd21] + cp $f + jr c, .asm_11c59d + sub $f + jr z, .asm_11c5ab + dec a + jr z, .asm_11c599 + jr .b + +.start + ld hl, wcd24 + set 0, [hl] + ld a, $8 + ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos) + +.b + ld a, $4 + jr .asm_11c59f + +.select + ld a, [wcd2b] + xor $1 + ld [wcd2b], a + ld a, $15 + jr .asm_11c59f + +.asm_11c599 + ld a, $13 + jr .asm_11c59f + +.asm_11c59d + ld a, $8 + +.asm_11c59f + ld hl, wcd24 + set 1, [hl] + ld [wJumptableIndex], a + call PlayClickSFX + ret + +.asm_11c5ab + ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) + call Function11ca6a + call PlayClickSFX + ret + +.up + ld a, [hl] + cp $3 + ret c + sub $3 + jr .asm_11c5ee + +.down + ld a, [hl] + cp $f + ret nc + add $3 + jr .asm_11c5ee + +.left + ld a, [hl] + and a + ret z + cp $3 + ret z + cp $6 + ret z + cp $9 + ret z + cp $c + ret z + cp $f + ret z + dec a + jr .asm_11c5ee + +.right + ld a, [hl] + cp $2 + ret z + cp $5 + ret z + cp $8 + ret z + cp $b + ret z + cp $e + ret z + cp $11 + ret z + inc a + +.asm_11c5ee + ld [hl], a + ret +; 11c5f0 + +Function11c5f0: ; 11c5f0 (47:45f0) + ld de, Strings_11da52 + ld bc, Unknown_11c63a + ld a, $f +.asm_11c5f8 + push af + ld a, [bc] + inc bc + ld l, a + ld a, [bc] + inc bc + ld h, a + push bc + call PlaceString +.asm_11c603 + inc de + ld a, [de] + cp $50 + jr z, .asm_11c603 + pop bc + pop af + dec a + jr nz, .asm_11c5f8 + hlcoord 1, 17 + ld de, String_11c62a + call PlaceString + ret + +Function11c618: ; 11c618 (47:4618) + ld a, $2 + hlcoord 0, 6, AttrMap + ld bc, $c8 + call ByteFill + callba ReloadMapPart + ret +; 11c62a (47:462a) + +String_11c62a: ; 11c62a + db "けす モード やめる@" +; 11c63a + +Unknown_11c63a: ; 11c63a + dwcoord 1, 7 + dwcoord 7, 7 + dwcoord 13, 7 + dwcoord 1, 9 + dwcoord 7, 9 + dwcoord 13, 9 + dwcoord 1, 11 + dwcoord 7, 11 + dwcoord 13, 11 + dwcoord 1, 13 + dwcoord 7, 13 + dwcoord 13, 13 + dwcoord 1, 15 + dwcoord 7, 15 + dwcoord 13, 15 +; 11c658 + +Function11c658: ; 11c658 (47:4658) + call Function11c277 + call Function11c770 + ld de, Unknown_11cfc2 + call Function11d035 + call Function11c9ab + call Function11c7bc + call Function11c86e + ld hl, wcd24 + res 3, [hl] + call Function11cfb5 + +Function11c675: ; 11c675 (47:4675) + ld hl, wcd25 + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and A_BUTTON + jr nz, .a + ld a, [de] + and B_BUTTON + jr nz, .b + ld a, [de] + and START + jr nz, .start + ld a, [de] + and SELECT + jr z, .select + + ld a, [wcd26] + and a + ret z + sub $c + jr nc, .asm_11c699 + xor a +.asm_11c699 + ld [wcd26], a + jr .asm_11c6c4 + +.start + ld hl, wcd28 + ld a, [wcd26] + add $c + cp [hl] + ret nc + ld [wcd26], a + ld a, [hl] + ld b, a + ld hl, wcd25 + ld a, [wcd26] + add [hl] + jr c, .asm_11c6b9 + cp b + jr c, .asm_11c6c4 +.asm_11c6b9 + ld a, [wcd28] + ld hl, wcd26 + sub [hl] + dec a + ld [wcd25], a +.asm_11c6c4 + call Function11c992 + call Function11c7bc + call Function11c86e + ret + +.select + ld de, hJoyLast + ld a, [de] + and D_UP + jr nz, .asm_11c708 + ld a, [de] + and D_DOWN + jr nz, .asm_11c731 + ld a, [de] + and D_LEFT + jr nz, .asm_11c746 + ld a, [de] + and D_RIGHT + jr nz, .asm_11c755 + ret + +.a + call Function11c8f6 + ld a, $4 + ld [wcd35], a + jr .asm_11c6fc +.b + ld a, [wcd2b] + and a + jr nz, .asm_11c6fa + ld a, $6 + jr .asm_11c6fc +.asm_11c6fa + ld a, $15 +.asm_11c6fc + ld [wJumptableIndex], a + ld hl, wcd24 + set 3, [hl] + call PlayClickSFX + ret +.asm_11c708 + ld a, [hl] + cp $3 + jr c, .asm_11c711 + sub $3 + jr .asm_11c76e +.asm_11c711 + ld a, [wcd26] + sub $3 + ret c + ld [wcd26], a + jr .asm_11c6c4 +.asm_11c71c + ld hl, wcd28 + ld a, [wcd26] + add $c + ret c + cp [hl] + ret nc + ld a, [wcd26] + add $3 + ld [wcd26], a + jr .asm_11c6c4 +.asm_11c731 + ld a, [wcd28] + ld b, a + ld a, [wcd26] + add [hl] + add $3 + cp b + ret nc + ld a, [hl] + cp $9 + jr nc, .asm_11c71c + add $3 + jr .asm_11c76e +.asm_11c746 + ld a, [hl] + and a + ret z + cp $3 + ret z + cp $6 + ret z + cp $9 + ret z + dec a + jr .asm_11c76e +.asm_11c755 + ld a, [wcd28] + ld b, a + ld a, [wcd26] + add [hl] + inc a + cp b + ret nc + ld a, [hl] + cp $2 + ret z + cp $5 + ret z + cp $8 + ret z + cp $b + ret z + inc a +.asm_11c76e + ld [hl], a + ret + +Function11c770: ; 11c770 (47:4770) + xor a + ld [wcd25], a + ld [wcd26], a + ld [wcd27], a + ld a, [wcd2b] + and a + jr nz, .asm_11c7ab + ld a, [wcd21] + and a + jr z, .asm_11c799 + dec a + sla a + ld hl, Unknown_11f220 + ld c, a + ld b, 0 + add hl, bc + ld a, [hli] + ld [wcd28], a + ld a, [hl] +.asm_11c795 + ld [wcd29], a + ret +.asm_11c799 + ld a, [wc7d2] + ld [wcd28], a +.asm_11c79f + ld c, $c + call SimpleDivide + and a + jr nz, .asm_11c7a8 + dec b +.asm_11c7a8 + ld a, b + jr .asm_11c795 +.asm_11c7ab + ld hl, $c68a + 30 + ld a, [CreditsTimer] + ld c, a + ld b, 0 +rept 2 + add hl, bc +endr + ld a, [hl] + ld [wcd28], a + jr .asm_11c79f + +Function11c7bc: ; 11c7bc (47:47bc) + ld bc, Unknown_11c854 + ld a, [wcd2b] + and a + jr nz, .asm_11c814 + ld a, [wcd21] + ld d, a + and a + jr z, .asm_11c7e9 + ld a, [wcd26] + ld e, a +.asm_11c7d0 + ld a, [bc] + ld l, a + inc bc + ld a, [bc] + ld h, a + inc bc + and l + cp $ff + ret z + push bc + push de + call Function11c05d + pop de + pop bc + inc e + ld a, [wcd28] + cp e + jr nz, .asm_11c7d0 + ret +.asm_11c7e9 + ld hl, wd100 + ld a, [wcd26] + ld e, a + add hl, de +.asm_11c7f1 + push de + ld a, [hli] + ld e, a + ld d, $0 + push hl + ld a, [bc] + ld l, a + inc bc + ld a, [bc] + ld h, a + inc bc + and l + cp $ff + jr z, .asm_11c811 + push bc + call Function11c05d + pop bc + pop hl + pop de + inc e + ld a, [wcd28] + cp e + jr nz, .asm_11c7f1 + ret +.asm_11c811 + pop hl + pop de + ret +.asm_11c814 + ld hl, $c648 + ld a, [wcd22] + ld e, a + ld d, $0 +rept 2 + add hl, de +endr + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + push de + pop hl + ld a, [wcd26] + ld e, a + ld d, $0 +rept 2 + add hl, de +endr + ld a, [wcd26] + ld e, a +.asm_11c831 + push de + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push hl + ld a, [bc] + ld l, a + inc bc + ld a, [bc] + ld h, a + inc bc + and l + cp $ff + jr z, .asm_11c851 + push bc + call Function11c05d + pop bc + pop hl + pop de + inc e + ld a, [wcd28] + cp e + jr nz, .asm_11c831 + ret +.asm_11c851 + pop hl + pop de + ret +; 11c854 (47:4854) + +Unknown_11c854: ; 11c854 + dwcoord 2, 8 + dwcoord 8, 8 + dwcoord 14, 8 + dwcoord 2, 10 + dwcoord 8, 10 + dwcoord 14, 10 + dwcoord 2, 12 + dwcoord 8, 12 + dwcoord 14, 12 + dwcoord 2, 14 + dwcoord 8, 14 + dwcoord 14, 14 + dw -1 +; 11c86e + +Function11c86e: ; 11c86e (47:486e) + ld a, [wcd26] + and a + jr z, .asm_11c88a + hlcoord 2, 17 + ld de, String_11c8f0 + call PlaceString + hlcoord 6, 17 + ld c, $3 + xor a +.asm_11c883 + ld [hli], a + inc a + dec c + jr nz, .asm_11c883 + jr .asm_11c895 +.asm_11c88a + hlcoord 2, 17 + ld c, $7 + ld a, $7f +.asm_11c891 + ld [hli], a + dec c + jr nz, .asm_11c891 +.asm_11c895 + ld hl, wcd28 + ld a, [wcd26] + add $c + jr c, .asm_11c8b7 + cp [hl] + jr nc, .asm_11c8b7 + hlcoord 16, 17 + ld de, String_11c8f3 + call PlaceString + hlcoord 11, 17 + ld a, $3 + ld c, a +.asm_11c8b1 + ld [hli], a + inc a + dec c + jr nz, .asm_11c8b1 + ret +.asm_11c8b7 + hlcoord 17, 16 + ld a, $7f + ld [hl], a + hlcoord 11, 17 + ld c, $7 +.asm_11c8c2 + ld [hli], a + dec c + jr nz, .asm_11c8c2 + ret +; 11c8c7 (47:48c7) + +Function11c8c7: ; 11c8c7 + inc a + push af + and $f + ld [hDividend], a + pop af + and $f0 + swap a + ld [hQuotient], a + xor a + ld [$ffb5], a + push hl + callba Function11a80c + pop hl + ld a, [wcd63] + add $f6 + ld [hli], a + ld a, [wcd62] + add $f6 + ld [hli], a + ret +; 11c8ec + +String_11c8ec: ; 11c8ec + db "ぺージ@" +; 11c8f0 + +String_11c8f0: ; 11c8f0 + db "まえ@" +; 11c8f3 + +String_11c8f3: ; 11c8f3 + db "つぎ@" +; 11c8f6 + +Function11c8f6: ; 11c8f6 (47:48f6) + ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) + call Function11c95d + push hl + ld a, [wcd2b] + and a + jr nz, .asm_11c938 + ld a, [wcd21] + ld d, a + and a + jr z, .asm_11c927 + ld hl, wcd26 + ld a, [wcd25] + add [hl] +.asm_11c911 + ld e, a +.asm_11c912 + pop hl + push de + call Function11c05d + pop de + ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) + ld c, a + ld b, $0 + ld hl, wcd36 +rept 2 + add hl, bc +endr + ld [hl], e + inc hl + ld [hl], d + ret +.asm_11c927 + ld hl, wcd26 + ld a, [wcd25] + add [hl] + ld c, a + ld b, $0 + ld hl, wd100 + add hl, bc + ld a, [hl] + jr .asm_11c911 +.asm_11c938 + ld hl, $c648 + ld a, [wcd22] + ld e, a + ld d, $0 +rept 2 + add hl, de +endr + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + push de + pop hl + ld a, [wcd26] + ld e, a + ld d, $0 +rept 2 + add hl, de +endr + ld a, [wcd25] + ld e, a +rept 2 + add hl, de +endr + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + jr .asm_11c912 + +Function11c95d: ; 11c95d (47:495d) + sla a + ld c, a + ld b, 0 + ld hl, Unknown_11c986 + add hl, bc + ld a, [hli] + ld c, a + ld a, [hl] + ld b, a + push bc + push bc + pop hl + ld a, $5 + ld c, a + ld a, $7f +.asm_11c972 + ld [hli], a + dec c + jr nz, .asm_11c972 + dec hl + ld bc, -20 + add hl, bc + ld a, $5 + ld c, a + ld a, $7f +.asm_11c980 + ld [hld], a + dec c + jr nz, .asm_11c980 + pop hl + ret +; 11c986 (47:4986) + +Unknown_11c986: + dwcoord 1, 2 + dwcoord 7, 2 + dwcoord 13, 2 + dwcoord 1, 4 + dwcoord 7, 4 + dwcoord 13, 4 +; 11c992 + +Function11c992: ; 11c992 (47:4992) + ld a, $8 + hlcoord 2, 7 +.asm_11c997 + push af + ld a, $7f + push hl + ld bc, $11 + call ByteFill + pop hl + ld bc, $14 + add hl, bc + pop af + dec a + jr nz, .asm_11c997 + ret + +Function11c9ab: ; 11c9ab (47:49ab) + ld a, $7 + hlcoord 0, 6, AttrMap + ld bc, $c8 + call ByteFill + callba ReloadMapPart + ret + +Function11c9bd: ; 11c9bd (47:49bd) + ld de, String_11ca38 + call Function11ca7f + +Function11c9c3: ; 11c9c3 (47:49c3) + ld hl, wcd2a + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and $1 + jr nz, .asm_11c9de + ld a, [de] + and $2 + jr nz, .asm_11c9e9 + ld a, [de] + and $40 + jr nz, .asm_11c9f7 + ld a, [de] + and $80 + jr nz, .asm_11c9fc + ret +.asm_11c9de + ld a, [hl] + and a + jr nz, .asm_11c9e9 + call Function11ca5e + xor a + ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos) +.asm_11c9e9 + ld hl, wcd24 + set 4, [hl] + ld a, $4 + ld [wJumptableIndex], a + call PlayClickSFX + ret +.asm_11c9f7 + ld a, [hl] + and a + ret z + dec [hl] + ret +.asm_11c9fc + ld a, [hl] + and a + ret nz + inc [hl] + ret + +Function11ca01: ; 11ca01 (47:4a01) + hlcoord 14, 7, AttrMap + ld de, $14 + ld a, $5 + ld c, a +.asm_11ca0a + push hl + ld a, $6 + ld b, a + ld a, $7 +.asm_11ca10 + ld [hli], a + dec b + jr nz, .asm_11ca10 + pop hl + add hl, de + dec c + jr nz, .asm_11ca0a + +Function11ca19: ; 11ca19 (47:4a19) + hlcoord 0, 12, AttrMap + ld de, $14 + ld a, $6 + ld c, a +.asm_11ca22 + push hl + ld a, $14 + ld b, a + ld a, $7 +.asm_11ca28 + ld [hli], a + dec b + jr nz, .asm_11ca28 + pop hl + add hl, de + dec c + jr nz, .asm_11ca22 + callba ReloadMapPart + ret +; 11ca38 (47:4a38) + +String_11ca38: ; 11ca38 + db "とうろくちゅう", $25, "あいさつ¯ぜんぶ" + next "けしても よろしいですか?@" +; 11ca57 + +String_11ca57: ; 11ca57 + db "はい" + next "いいえ@" +; 11ca5e + +Function11ca5e: ; 11ca5e (47:4a5e) + xor a +.asm_11ca5f + push af + call Function11ca6a + pop af + inc a + cp $6 + jr nz, .asm_11ca5f + ret + +Function11ca6a: ; 11ca6a (47:4a6a) + ld hl, wcd36 + ld c, a + ld b, $0 +rept 2 + add hl, bc +endr + ld [hl], b + inc hl + ld [hl], b + call Function11c95d + ld de, String_11c3bc + call PlaceString + ret + +Function11ca7f: ; 11ca7f (47:4a7f) + push de + ld de, Unknown_11cfc6 + call Function11cfce + ld de, Unknown_11cfca + call Function11cfce + hlcoord 1, 14 + pop de + call PlaceString + hlcoord 16, 8 + ld de, String_11ca57 + call PlaceString + call Function11ca01 + ld a, $1 + ld [wcd2a], a + ld hl, wcd24 + res 4, [hl] + call Function11cfb5 + ret + +Function11caad: ; 11caad (47:4aad) + ld de, String_11cb1c + call Function11ca7f + +Function11cab3: ; 11cab3 (47:4ab3) + ld hl, wcd2a + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and $1 + jr nz, .asm_11cace + ld a, [de] + and $2 + jr nz, .asm_11caf9 + ld a, [de] + and $40 + jr nz, .asm_11cb12 + ld a, [de] + and $80 + jr nz, .asm_11cb17 + ret +.asm_11cace + call PlayClickSFX + ld a, [hl] + and a + jr nz, .asm_11cafc + ld a, [wcd35] + and a + jr z, .asm_11caf3 + cp $ff + jr z, .asm_11caf3 + ld a, $ff + ld [wcd35], a + hlcoord 1, 14 + ld de, String_11cb31 + call PlaceString + ld a, $1 + ld [wcd2a], a + ret +.asm_11caf3 + ld hl, wJumptableIndex + set 7, [hl] + ret +.asm_11caf9 + call PlayClickSFX +.asm_11cafc + ld hl, wcd24 + set 4, [hl] + ld a, $4 + ld [wJumptableIndex], a + ld a, [wcd35] + cp $ff + ret nz + ld a, $1 + ld [wcd35], a + ret +.asm_11cb12 + ld a, [hl] + and a + ret z + dec [hl] + ret +.asm_11cb17 + ld a, [hl] + and a + ret nz + inc [hl] + ret +; 11cb1c (47:4b1c) + +String_11cb1c: ; 11cb1c + db "あいさつ", $25, "とうろく¯ちゅうし" + next "しますか?@" +; 11cb31 + +String_11cb31: ; 11cb31 + db "とうろくちゅう", $25, "あいさつ", $24, "ほぞん" + next "されません", $4a, "よろしい ですか?@" +; 11cb52 + +Function11cb52: ; 11cb52 (47:4b52) + ld hl, Unknown_11cc01 + ld a, [MenuSelection2] +.asm_11cb58 + dec a + jr z, .asm_11cb5f +rept 2 + inc hl +endr + jr .asm_11cb58 +.asm_11cb5f + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + call Function11ca7f + +Function11cb66: ; 11cb66 (47:4b66) + ld hl, wcd2a + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and $1 + jr nz, .asm_11cb81 + ld a, [de] + and $2 + jr nz, .asm_11cbd7 + ld a, [de] + and $40 + jr nz, .asm_11cbeb + ld a, [de] + and $80 + jr nz, .asm_11cbf0 + ret +.asm_11cb81 + ld a, [hl] + and a + jr nz, .asm_11cbd4 + ld a, $4 + call GetSRAMBank + ld hl, $a007 + ld a, [MenuSelection2] + dec a + sla a + sla a + ld c, a + sla a + add c + ld c, a + ld b, $0 + add hl, bc + ld de, wcd36 + ld c, $c +.asm_11cba2 + ld a, [de] + ld [hli], a + inc de + dec c + jr nz, .asm_11cba2 + call CloseSRAM + call PlayClickSFX + ld de, Unknown_11cfc6 + call Function11cfce + ld hl, Unknown_11cc7e + ld a, [MenuSelection2] +.asm_11cbba + dec a + jr z, .asm_11cbc1 +rept 2 + inc hl +endr + jr .asm_11cbba +.asm_11cbc1 + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + hlcoord 1, 14 + call PlaceString + ld hl, wJumptableIndex + inc [hl] + inc hl + ld a, $10 + ld [hl], a + ret +.asm_11cbd4 + call PlayClickSFX +.asm_11cbd7 + ld de, Unknown_11cfba + call Function11cfce + call Function11c38a + ld hl, wcd24 + set 4, [hl] + ld a, $4 + ld [wJumptableIndex], a + ret +.asm_11cbeb + ld a, [hl] + and a + ret z + dec [hl] + ret +.asm_11cbf0 + ld a, [hl] + and a + ret nz + inc [hl] + ret + +Function11cbf5: ; 11cbf5 (47:4bf5) + call WaitSFX + ld hl, wcf64 + dec [hl] + ret nz + dec hl + set 7, [hl] + ret +; 11cc01 (47:4c01) + +Unknown_11cc01: ; 11cc01 + dw String_11cc09 + dw String_11cc23 + dw String_11cc42 + dw String_11cc60 + +String_11cc09: ; 11cc09 + db "じこしょうかい は" + next "この あいさつで いいですか?@" + +String_11cc23: ; 11cc23 + db "たいせん ", $4a, "はじまるとき は" + next "この あいさつで いいですか?@" + +String_11cc42: ; 11cc42 + db "たいせん ", $1d, "かったとき は" + next "この あいさつで いいですか?@" + +String_11cc60: ; 11cc60 + db "たいせん ", $1d, "まけたとき は" + next "この あいさつで いいですか?@" +; 11cc7e + +Unknown_11cc7e: ; 11cc7e + dw String_11cc86 + dw String_11cc9d + dw String_11ccb9 + dw String_11ccd4 + +String_11cc86: ; 11cc86 + db "じこしょうかい の" + next "あいさつ¯とうろくした!@" + +String_11cc9d: ; 11cc9d + db "たいせん ", $4a, "はじまるとき の" + next "あいさつ¯とうろくした!@" + +String_11ccb9: ; 11ccb9 + db "たいせん ", $1d, "かったとき の" + next "あいさつ¯とうろくした!@" + +String_11ccd4: ; 11ccd4 + db "たいせん ", $1d, "まけたとき の" + next "あいさつ¯とうろくした!@" +; 11ccef + +Function11ccef: ; 11ccef (47:4cef) + ld de, Unknown_11cfc6 + call Function11cfce + hlcoord 1, 14 + ld de, String_11cd10 + call PlaceString + call Function11ca19 + call Function11cfb5 + +Function11cd04: ; 11cd04 (47:4d04) + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and a + ret z + ld a, $4 + ld [wJumptableIndex], a + ret +; 11cd10 (47:4d10) + +String_11cd10: ; 11cd10 + db "なにか ことば¯いれてください@" +; 11cd20 + +Function11cd20: ; 11cd20 (47:4d20) + call Function11c277 + ld de, Unknown_11cfc6 + call Function11cfce + hlcoord 1, 14 + ld a, [wcd2b] + ld [wcd2c], a + and a + jr nz, .asm_11cd3a + ld de, String_11cdc7 + jr .asm_11cd3d +.asm_11cd3a + ld de, String_11cdd9 +.asm_11cd3d + call PlaceString + hlcoord 4, 8 + ld de, String_11cdf5 + call PlaceString + call Function11cdaa + ld hl, wcd24 + res 5, [hl] + call Function11cfb5 + +Function11cd54: ; 11cd54 (47:4d54) + ld hl, wcd2c + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and A_BUTTON + jr nz, .asm_11cd6f + ld a, [de] + and B_BUTTON + jr nz, .asm_11cd73 + ld a, [de] + and D_UP + jr nz, .asm_11cd8b + ld a, [de] + and D_DOWN + jr nz, .asm_11cd94 + ret + +.asm_11cd6f + ld a, [hl] + ld [wcd2b], a +.asm_11cd73 + ld a, [wcd2b] + and a + jr nz, .asm_11cd7d + ld a, $6 + jr .asm_11cd7f + +.asm_11cd7d + ld a, $15 +.asm_11cd7f + ld [wJumptableIndex], a + ld hl, wcd24 + set 5, [hl] + call PlayClickSFX + ret + +.asm_11cd8b + ld a, [hl] + and a + ret z + dec [hl] + ld de, String_11cdc7 + jr .asm_11cd9b + +.asm_11cd94 + ld a, [hl] + and a + ret nz + inc [hl] + ld de, String_11cdd9 +.asm_11cd9b + push de + ld de, Unknown_11cfc6 + call Function11cfce + pop de + hlcoord 1, 14 + call PlaceString + ret + +Function11cdaa: ; 11cdaa (47:4daa) + ld a, $2 + hlcoord 0, 6, AttrMap + ld bc, 6 * SCREEN_WIDTH + call ByteFill + ld a, $7 + hlcoord 0, 12, AttrMap + ld bc, 4 * SCREEN_WIDTH + call ByteFill + callba ReloadMapPart + ret +; 11cdc7 (47:4dc7) + +String_11cdc7: ; 11cdc7 +; Words will be displayed by category + db "ことば¯しゅるいべつに" + next "えらべます@" +; 11cdd9 + +String_11cdd9: ; 11cdd9 +; Words will be displayed in alphabetical order + db "ことば¯アイウエォ の" + next "じゅんばんで ひょうじ します@" +; 11cdf5 + +String_11cdf5: ; 11cdf5 + db "しゅるいべつ モード" ; Category mode + next "アイウエォ モード@" ; ABC mode +; 11ce0b + +Function11ce0b: ; 11ce0b (47:4e0b) + call Function11c277 + hlcoord 1, 7 + ld de, String_11cf79 + call PlaceString + hlcoord 1, 17 + ld de, String_11c62a + call PlaceString + call Function11c618 + ld hl, wcd24 + res 2, [hl] + call Function11cfb5 + +Function11ce2b: ; 11ce2b (47:4e2b) + ld a, [CreditsTimer] + sla a + sla a + ld c, a + ld b, 0 + ld hl, Unknown_11ceb9 + add hl, bc + + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and START + jr nz, .start + ld a, [de] + and SELECT + jr nz, .select + ld a, [de] + and A_BUTTON + jr nz, .a + ld a, [de] + and B_BUTTON + jr nz, .b + + ld de, hJoyLast + ld a, [de] + and D_UP + jr nz, .up + ld a, [de] + and D_DOWN + jr nz, .down + ld a, [de] + and D_LEFT + jr nz, .left + ld a, [de] + and D_RIGHT + jr nz, .right + + ret + +.a + ld a, [CreditsTimer] + cp NUM_KANA + jr c, .place + sub NUM_KANA + jr z, .asm_11cea4 + dec a + jr z, .asm_11ce96 + jr .b + +.start + ld hl, wcd24 + set 0, [hl] + ld a, $8 + ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos) +.b + ld a, $4 + jr .load + +.select + ld a, [wcd2b] + xor $1 + ld [wcd2b], a + ld a, $6 + jr .load + +.place + ld a, $8 + jr .load + +.asm_11ce96 + ld a, $13 +.load + ld [wJumptableIndex], a + ld hl, wcd24 + set 2, [hl] + call PlayClickSFX + ret + +.asm_11cea4 + ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) + call Function11ca6a + call PlayClickSFX + ret + +.left + inc hl +.down + inc hl +.right + inc hl +.up + ld a, [hl] + cp $ff + ret z + ld [CreditsTimer], a + ret +; 11ceb9 (47:4eb9) + +Unknown_11ceb9: ; 11ceb9 + ; up left down right + db $ff, $01, $05, $ff + db $ff, $02, $06, $00 + db $ff, $03, $07, $01 + db $ff, $04, $08, $02 + db $ff, $14, $09, $03 + db $00, $06, $0a, $ff + db $01, $07, $0b, $05 + db $02, $08, $0c, $06 + db $03, $09, $0d, $07 + db $04, $19, $0e, $08 + db $05, $0b, $0f, $ff + db $06, $0c, $10, $0a + db $07, $0d, $11, $0b + db $08, $0e, $12, $0c + db $09, $1e, $13, $0d + db $0a, $10, $2d, $ff + db $0b, $11, $2d, $0f + db $0c, $12, $2d, $10 + db $0d, $13, $2d, $11 + db $0e, $26, $2d, $12 + db $ff, $15, $19, $04 + db $ff, $16, $1a, $14 + db $ff, $17, $1b, $15 + db $ff, $18, $1c, $16 + db $ff, $23, $1d, $17 + db $14, $1a, $1e, $09 + db $15, $1b, $1f, $19 + db $16, $1c, $20, $1a + db $17, $1d, $21, $1b + db $18, $2b, $22, $1c + db $19, $1f, $26, $0e + db $1a, $20, $27, $1e + db $1b, $21, $28, $1f + db $1c, $22, $29, $20 + db $1d, $2c, $2a, $21 + db $ff, $24, $2b, $18 + db $ff, $25, $2b, $23 + db $ff, $ff, $2b, $24 + db $1e, $27, $2e, $13 + db $1f, $28, $2e, $26 + db $20, $29, $2e, $27 + db $21, $2a, $2e, $28 + db $22, $ff, $2e, $29 + db $23, $ff, $2c, $1d + db $2b, $ff, $2f, $22 + db $0f, $2e, $ff, $ff + db $26, $2f, $ff, $2d + db $2c, $ff, $ff, $2e +; 11cf79 + +String_11cf79: ; 11cf79 +; Hiragana table + db "あいうえお なにぬねの や ゆ よ" + next "かきくけこ はひふへほ わ" + next "さしすせそ まみむめも そのた" + next "たちつてと らりるれろ" + db "@" +; 11cfb5 + +Function11cfb5: ; 11cfb5 (47:4fb5) + ld hl, wJumptableIndex + inc [hl] + ret +; 11cfba (47:4fba) + +Unknown_11cfba: + db 0, 0 ; start coords + db 20, 6 ; end coords + +Unknown_11cfbe: + db 0, 14 ; start coords + db 20, 4 ; end coords + +Unknown_11cfc2: + db 0, 6 ; start coords + db 20, 10 ; end coords + +Unknown_11cfc6: + db 0, 12 ; start coords + db 20, 6 ; end coords + +Unknown_11cfca: + db 14, 7 ; start coords + db 6, 5 ; end coords +; 11cfce + +Function11cfce: ; 11cfce (47:4fce) + hlcoord 0, 0 + ld bc, $14 + ld a, [de] + inc de + push af + ld a, [de] + inc de + and a +.asm_11cfda + jr z, .asm_11cfe0 + add hl, bc + dec a + jr .asm_11cfda +.asm_11cfe0 + pop af + ld c, a + ld b, 0 + add hl, bc + push hl + ld a, $79 + ld [hli], a + ld a, [de] + inc de +rept 2 + dec a +endr + jr z, .asm_11cff6 + ld c, a + ld a, $7a +.asm_11cff2 + ld [hli], a + dec c + jr nz, .asm_11cff2 +.asm_11cff6 + ld a, $7b + ld [hl], a + pop hl + ld bc, $14 + add hl, bc + ld a, [de] + dec de +rept 2 + dec a +endr + jr z, .asm_11d022 + ld b, a +.asm_11d005 + push hl + ld a, $7c + ld [hli], a + ld a, [de] +rept 2 + dec a +endr + jr z, .asm_11d015 + ld c, a + ld a, $7f +.asm_11d011 + ld [hli], a + dec c + jr nz, .asm_11d011 +.asm_11d015 + ld a, $7c + ld [hl], a + pop hl + push bc + ld bc, $14 + add hl, bc + pop bc + dec b + jr nz, .asm_11d005 +.asm_11d022 + ld a, $7d + ld [hli], a + ld a, [de] +rept 2 + dec a +endr + jr z, .asm_11d031 + ld c, a + ld a, $7a +.asm_11d02d + ld [hli], a + dec c + jr nz, .asm_11d02d +.asm_11d031 + ld a, $7e + ld [hl], a + ret + +Function11d035: ; 11d035 (47:5035) + hlcoord 0, 0 + ld bc, $14 + ld a, [de] + inc de + push af + ld a, [de] + inc de + and a +.asm_11d041 + jr z, .asm_11d047 + add hl, bc + dec a + jr .asm_11d041 +.asm_11d047 + pop af + ld c, a + ld b, $0 + add hl, bc + push hl + ld a, $79 + ld [hl], a + pop hl + push hl + ld a, [de] + dec a + inc de + ld c, a + add hl, bc + ld a, $7b + ld [hl], a + call Function11d0ac + ld a, $7e + ld [hl], a + pop hl + push hl + call Function11d0ac + ld a, $7d + ld [hl], a + pop hl + push hl + inc hl + push hl + call Function11d0ac + pop bc + dec de + ld a, [de] + cp $2 + jr z, .asm_11d082 +rept 2 + dec a +endr +.asm_11d078 + push af + ld a, $7a + ld [hli], a + ld [bc], a + inc bc + pop af + dec a + jr nz, .asm_11d078 +.asm_11d082 + pop hl + ld bc, $14 + add hl, bc + push hl + ld a, [de] + dec a + ld c, a + ld b, $0 + add hl, bc + pop bc + inc de + ld a, [de] + cp $2 + ret z + push bc +rept 2 + dec a +endr + ld c, a + ld b, a + ld de, $14 +.asm_11d09c + ld a, $7c + ld [hl], a + add hl, de + dec c + jr nz, .asm_11d09c + pop hl +.asm_11d0a4 + ld a, $7c + ld [hl], a + add hl, de + dec b + jr nz, .asm_11d0a4 + ret + +Function11d0ac: ; 11d0ac (47:50ac) + ld a, [de] + dec a + ld bc, $14 +.asm_11d0b1 + add hl, bc + dec a + jr nz, .asm_11d0b1 + ret + +Function11d0b6: ; 11d0b6 (47:50b6) + ld hl, $c + add hl, bc + ld a, [hl] + ld e, a + ld d, 0 + ld hl, Jumptable_11d0c7 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Jumptable_11d0c7: ; 11d0c7 (47:50c7) + dw Function11d0dd + dw Function11d0e9 + dw Function11d0f5 + dw Function11d10f + dw Function11d134 + dw Function11d145 + dw Function11d156 + dw Function11d175 + dw Function11d1d7 + dw Function11d1d1 + dw Function11d1fc + + +Function11d0dd: ; 11d0dd (47:50dd) + ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) + sla a + ld hl, Unknown_11d208 + ld e, $1 + jr asm_11d11e + +Function11d0e9: ; 11d0e9 (47:50e9) + ld a, [wcd21] + sla a + ld hl, Unknown_11d21a + ld e, $2 + jr asm_11d11e + +Function11d0f5: ; 11d0f5 (47:50f5) + ld hl, Unknown_11d2be + ld a, [CreditsTimer] + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + call Function3b3c + ld a, [CreditsTimer] + sla a + ld hl, Unknown_11d23e + ld e, $4 + jr asm_11d11e + +Function11d10f: ; 11d10f (47:510f) + ld a, $27 + call Function3b3c + ld a, [wcd25] + sla a + ld hl, Unknown_11d29e + ld e, $8 + +asm_11d11e: ; 11d11e (47:511e) + push de + ld e, a + ld d, $0 + add hl, de + push hl + pop de + ld hl, $4 + add hl, bc + ld a, [de] + inc de + ld [hli], a + ld a, [de] + ld [hl], a + pop de + ld a, e + call Function11d2ee + ret + +Function11d134: ; 11d134 (47:5134) + ld a, $27 + call Function3b3c + ld a, [wcd2a] + sla a + ld hl, Unknown_11d2b6 + ld e, $10 + jr asm_11d11e + +Function11d145: ; 11d145 (47:5145) + ld a, $27 + call Function3b3c + ld a, [wcd2c] + sla a + ld hl, Unknown_11d2ba + ld e, $20 + jr asm_11d11e + +Function11d156: ; 11d156 (47:5156) + ld a, $2a + call Function3b3c + ld a, [wcd4a] + sla a + sla a + sla a + add $18 + ld hl, $4 + add hl, bc + ld [hli], a + ld a, $30 + ld [hl], a + ld a, $1 + ld e, a + call Function11d2ee + ret + +Function11d175: ; 11d175 (47:5175) + ld a, [wcd4d] + cp $4 + jr z, .asm_11d180 + ld a, $28 + jr .asm_11d182 +.asm_11d180 + ld a, $26 +.asm_11d182 + call Function3b3c + ld a, [wcd4d] + cp $4 + jr z, .asm_11d1b1 + ld a, [wcd4c] + sla a + sla a + sla a + add $20 + ld hl, $4 + add hl, bc + ld [hli], a + ld a, [wcd4d] + sla a + sla a + sla a + sla a + add $48 + ld [hl], a + ld a, $2 + ld e, a + call Function11d2ee + ret +.asm_11d1b1 + ld a, [wcd4c] + sla a + sla a + sla a + ld e, a + sla a + sla a + add e + add $18 + ld hl, $4 + add hl, bc + ld [hli], a + ld a, $8a + ld [hl], a + ld a, $2 + ld e, a + call Function11d2ee + ret + +Function11d1d1: ; 11d1d1 (47:51d1) + ld d, $98 + ld a, $2c + jr asm_11d1db + +Function11d1d7: ; 11d1d7 (47:51d7) + ld d, $10 + ld a, $2b + +asm_11d1db: ; 11d1db (47:51db) + push de + call Function3b3c + ld a, [wcd4a] + sla a + sla a + sla a + ld e, a + sla a + add e + add $40 + ld hl, $5 + add hl, bc + ld [hld], a + pop af + ld [hl], a + ld a, $4 + ld e, a + call Function11d2ee + ret + +Function11d1fc: ; 11d1fc (47:51fc) + ld a, $26 + call Function3b3c + ld a, $8 + ld e, a + call Function11d2ee + ret +; 11d208 (47:5208) + +Unknown_11d208: ; 11d208 + db $0d, $1a + db $3d, $1a + db $6d, $1a + db $0d, $2a + db $3d, $2a + db $6d, $2a + db $0d, $8a + db $3d, $8a + db $6d, $8a + +Unknown_11d21a: ; 11d21a + db $0d, $42 + db $3d, $42 + db $6d, $42 + db $0d, $52 + db $3d, $52 + db $6d, $52 + db $0d, $62 + db $3d, $62 + db $6d, $62 + db $0d, $72 + db $3d, $72 + db $6d, $72 + db $0d, $82 + db $3d, $82 + db $6d, $82 + db $0d, $92 + db $3d, $92 + db $6d, $92 + +Unknown_11d23e: ; 11d23e + db $10, $48 + db $18, $48 + db $20, $48 + db $28, $48 + db $30, $48 + db $10, $58 + db $18, $58 + db $20, $58 + db $28, $58 + db $30, $58 + db $10, $68 + db $18, $68 + db $20, $68 + db $28, $68 + db $30, $68 + db $10, $78 + db $18, $78 + db $20, $78 + db $28, $78 + db $30, $78 + db $40, $48 + db $48, $48 + db $50, $48 + db $58, $48 + db $60, $48 + db $40, $58 + db $48, $58 + db $50, $58 + db $58, $58 + db $60, $58 + db $40, $68 + db $48, $68 + db $50, $68 + db $58, $68 + db $60, $68 + db $70, $48 + db $80, $48 + db $90, $48 + db $40, $78 + db $48, $78 + db $50, $78 + db $58, $78 + db $60, $78 + db $70, $58 + db $70, $68 + db $0d, $92 + db $3d, $92 + db $6d, $92 + +Unknown_11d29e: ; 11d29e + db $10, $50 + db $40, $50 + db $70, $50 + db $10, $60 + db $40, $60 + db $70, $60 + db $10, $70 + db $40, $70 + db $70, $70 + db $10, $80 + db $40, $80 + db $70, $80 + +Unknown_11d2b6: ; 11d2b6 + db $80, $50 + db $80, $60 + +Unknown_11d2ba: ; 11d2ba + db $20, $50 + db $20, $60 + +Unknown_11d2be: ; 11d2be + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $29, $26 + db $26, $26 + +Function11d2ee: ; 11d2ee (47:52ee) + ld hl, wcd24 + and [hl] + jr nz, .asm_11d316 + ld a, e + ld hl, wcd23 + and [hl] + jr z, .asm_11d30f + ld hl, $e + add hl, bc + ld a, [hl] + and a + jr z, .asm_11d305 + dec [hl] + ret +.asm_11d305 + ld a, $0 + ld [hld], a + ld a, $1 + xor [hl] + ld [hl], a + and a + jr nz, .asm_11d316 +.asm_11d30f + ld hl, $7 + add hl, bc + xor a + ld [hl], a + ret +.asm_11d316 + ld hl, $5 + add hl, bc + ld a, $b0 + sub [hl] + ld hl, $7 + add hl, bc + ld [hl], a + ret + +Function11d323: ; 11d323 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_11d33a + ld de, UnknBGPals + ld bc, 16 * 8 + call CopyBytes + pop af + ld [rSVBK], a + ret +; 11d33a + +Palette_11d33a: + RGB 31, 31, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 31, 16, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 23, 17, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + +; 11d3ba + +Function11d3ba: ; 11d3ba + ld a, [rSVBK] + push af + ld hl, $c648 + ld a, w5_d800 % $100 + ld [wcd2d], a + ld [hli], a + ld a, w5_d800 / $100 + ld [wcd2e], a + ld [hl], a + + ld a, SortedPokemon % $100 + ld [wcd2f], a + ld a, SortedPokemon / $100 + ld [wcd30], a + + ld a, $c6a8 % $100 + ld [wcd31], a + ld a, $c6a8 / $100 + ld [wcd32], a + + ld a, $c64a % $100 + ld [wcd33], a + ld a, $c64a / $100 + ld [wcd34], a + + ld hl, Unknown_11f23c + ld a, (Unknown_11f23cEnd - Unknown_11f23c) / 4 + +.MasterLoop: ; 11d3ef + push af +; read row + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a +; save the pointer to the next row + push hl +; add de to hl + ld hl, w3_d000 + add hl, de +; recover de from wcd2d (default: w5_d800) + ld a, [wcd2d] + ld e, a + ld a, [wcd2e] + ld d, a +; save bc for later + push bc + +.loop1 +; copy 2*bc bytes from 3:hl to 5:de + ld a, $3 + ld [rSVBK], a + ld a, [hli] + push af + ld a, $5 + ld [rSVBK], a + pop af + ld [de], a + inc de + + ld a, $3 + ld [rSVBK], a + ld a, [hli] + push af + ld a, $5 + ld [rSVBK], a + pop af + ld [de], a + inc de + + dec bc + ld a, c + or b + jr nz, .loop1 +; recover the pointer from wcd2f (default: SortedPokemon) + ld a, [wcd2f] + ld l, a + ld a, [wcd30] + ld h, a +; copy the pointer from [hl] to bc + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a +; store the pointer to the next pointer back in wcd2f + ld a, l + ld [wcd2f], a + ld a, h + ld [wcd30], a +; push pop that pointer to hl + push bc + pop hl + ld c, $0 +.loop2 +; Have you seen this Pokemon? + ld a, [hl] + cp $ff + jr z, .done + call .CheckSeenMon + jr nz, .next +; If not, skip it. + inc hl + jr .loop2 + +.next +; If so, append it to the list at 5:de, and increase the count. + ld a, [hli] + ld [de], a + inc de + xor a + ld [de], a + inc de + inc c + jr .loop2 + +.done +; Remember the original value of bc from the table? +; Well, the stack remembers it, and it's popping it to hl. + pop hl +; Add the number of seen Pokemon from the list. + ld b, $0 + add hl, bc +; Push pop to bc. + push hl + pop bc +; Load the pointer from [wcd31] (default: $c6a8) + ld a, [wcd31] + ld l, a + ld a, [wcd32] + ld h, a +; Save the quantity from bc to [hl] + ld a, c + ld [hli], a + ld a, b + ld [hli], a +; Save the new value of hl to [wcd31] + ld a, l + ld [wcd31], a + ld a, h + ld [wcd32], a +; Recover the pointer from [wcd33] (default: $c64a) + ld a, [wcd33] + ld l, a + ld a, [wcd34] + ld h, a +; Save the current value of de there + ld a, e + ld [wcd2d], a + ld [hli], a + ld a, d + ld [wcd2e], a +; Save the new value of hl back to [wcd33] + ld [hli], a + ld a, l + ld [wcd33], a + ld a, h + ld [wcd34], a +; Next row + pop hl + pop af + dec a + jr z, .ExitMasterLoop + jp .MasterLoop + +.ExitMasterLoop + pop af + ld [rSVBK], a + ret +; 11d493 + +.CheckSeenMon: ; 11d493 + push hl + push bc + push de + dec a + ld hl, rSVBK + ld e, $1 + ld [hl], e + call CheckSeenMon + ld hl, rSVBK + ld e, $5 + ld [hl], e + pop de + pop bc + pop hl + ret +; 11d4aa + +Function11d4aa: ; 11d4aa + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld hl, Unknown_11daac + ld bc, Unknown_11f220 + xor a + ld [wcd2d], a + inc a + ld [wcd2e], a + ld a, $e +.asm_11d4c1 + push af + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push hl + ld hl, $0005 + add hl, de + ld a, [bc] +rept 2 + inc bc +endr + push bc +.asm_11d4cf + push af + push hl + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + ld hl, wd000 + add hl, de + ld a, [wcd2d] + ld [hli], a + inc a + ld [wcd2d], a + ld a, [wcd2e] + ld [hl], a + pop hl + ld de, $0008 + add hl, de + pop af + dec a + jr nz, .asm_11d4cf + ld hl, wcd2d + xor a + ld [hli], a + inc [hl] + pop bc + pop hl + pop af + dec a + jr nz, .asm_11d4c1 + pop af + ld [rSVBK], a + ret +; 11d4fe + + +SortedPokemon: +; Pokemon sorted by kana. +; Notably, Rhydon is missing. + + dw .a + dw .i + dw .u + dw .e + dw .o + dw .ka_ga + dw .ki_gi + dw .ku_gu + dw .ke_ge + dw .ko_go + dw .sa_za + dw .shi_ji + dw .su_zu + dw .se_ze + dw .so_zo + dw .ta_da + dw .chi_dhi + dw .tsu_du + dw .te_de + dw .to_do + dw .na + dw .ni + dw .nu + dw .ne + dw .no + dw .ha_ba_pa + dw .hi_bi_pi + dw .fu_bu_pu + dw .he_be_pe + dw .ho_bo_po + dw .ma + dw .mi + dw .mu + dw .me + dw .mo + dw .ya + dw .yu + dw .yo + dw .ra + dw .ri + dw .ru + dw .re + dw .ro + dw .wa + dw .end + +.a: db EKANS, ARBOK, SEAKING, ARIADOS, CROCONAW, UNOWN + db -1 +.i: db EEVEE, GEODUDE, SPINARAK, PILOSWINE, ONIX + db -1 +.u: db ARCANINE, SUDOWOODO, WEEPINBELL, VICTREEBEL, WOOPER, SWINUB + db -1 +.e: db SKARMORY, AIPOM, ESPEON, HITMONCHAN, ELEKID, ELECTABUZZ, ENTEI + db -1 +.o: db FERALIGATR, FURRET, OCTILLERY, PRIMEAPE, SENTRET, STANTLER, SPEAROW, FEAROW, OMASTAR, OMANYTE + db -1 +.ka_ga: db GROWLITHE, MACHAMP, DRAGONITE, PINSIR, SNORLAX, KABUTO, KABUTOPS, HITMONTOP, WARTORTLE, BLASTOISE, FARFETCH_D, CUBONE, MAROWAK, KANGASKHAN + db -1 +.ki_gi: db SUNFLORA, CATERPIE, GYARADOS, RAPIDASH, NINETALES, GIRAFARIG, BELLOSSOM, KINGDRA, KINGLER + db -1 +.ku_gu: db GLOOM, PINECO, GLIGAR, KRABBY, GRANBULL, CROBAT + db -1 +.ke_ge: db ABRA, GENGAR, TAUROS + db -1 +.ko_go: db MAGIKARP, MAGNEMITE, GASTLY, HAUNTER, MACHOKE, KAKUNA, PSYDUCK, PHANPY, RATTATA, GOLDUCK, GOLBAT, GOLEM, GRAVELER, VENONAT + db -1 +.sa_za: db RHYHORN, PUPITAR, CORSOLA, HITMONLEE, ZAPDOS, JOLTEON, SANDSHREW, SANDSLASH ; RHYDON should lead this list + db -1 +.shi_ji: db SEADRA, SHELLDER, VAPOREON, DEWGONG + db -1 +.su_zu: db SUICUNE, STARMIE, SCYTHER, ZUBAT, BEEDRILL, HYPNO, DROWZEE + db -1 +.se_ze: db SQUIRTLE, CELEBI + db -1 +.so_zo: db WOBBUFFET + db -1 +.ta_da: db DUGTRIO, HORSEA, EXEGGCUTE + db -1 +.chi_dhi: db CHIKORITA, CHINCHOU + db -1 +.tsu_du: db SHUCKLE + db -1 +.te_de: db DIGLETT, REMORAID, DELIBIRD, HOUNDOUR, AMPHAROS + db -1 +.to_do: db DODUO, DODRIO, SMEARGLE, KOFFING, TENTACRUEL, TOGETIC, TOGEPI, GOLDEEN, METAPOD, DONPHAN + db -1 +.na: db ODDISH, EXEGGUTOR + db -1 +.ni: db NIDOKING, NIDOQUEEN, NIDORAN_M, NIDORAN_F, NIDORINA, NIDORINO, MEOWTH, SNEASEL, POLIWHIRL, POLITOED, POLIWRATH, POLIWAG + db -1 +.nu: db QUAGSIRE + db -1 +.ne: db NATU, XATU + db -1 +.no: db DUNSPARCE + db -1 +.ha_ba_pa: db SEEL, STEELIX, TYPHLOSION, DRAGONAIR, BUTTERFREE, SCIZOR, HOPPIP, BLISSEY, PARAS, PARASECT, QWILFISH, MR__MIME, TYROGUE, CLOYSTER, TYRANITAR + db -1 +.hi_bi_pi: db CLEFFA, WEEDLE, PIKACHU, CLEFABLE, PIDGEOT, PIDGEOTTO, PICHU, CLEFAIRY, CHARMANDER, STARYU, CYNDAQUIL, SUNKERN, TEDDIURSA, VOLTORB + db -1 +.fu_bu_pu: db MOLTRES, FLAREON, ALAKAZAM, MAGMAR, FORRETRESS, WIGGLYTUFF, IVYSAUR, BULBASAUR, VENUSAUR, AERODACTYL, MAGBY, IGGLYBUFF, UMBREON, ARTICUNO, JIGGLYPUFF, SNUBBULL + db -1 +.he_be_pe: db BAYLEEF, GRIMER, MUK, HERACROSS, HOUNDOOM, PERSIAN, LICKITUNG + db -1 +.ho_bo_po: db HO_OH, HOOTHOOT, PIDGEY, PONYTA, SKIPLOOM, PORYGON, PORYGON2 + db -1 +.ma: db MAGCARGO, SLUGMA, QUILAVA, BELLSPROUT, WEEZING, MARILL, AZUMARILL, ELECTRODE, MANKEY, MANTINE + db -1 +.mi: db DRATINI, MEW, MEWTWO, MILTANK + db -1 +.mu: db MISDREAVUS, SMOOCHUM + db -1 +.me: db MEGANIUM, DITTO, TENTACOOL, MAREEP + db -1 +.mo: db FLAAFFY, VENOMOTH, TANGELA + db -1 +.ya: db SLOWKING, SLOWBRO, SLOWPOKE, MURKROW, YANMA + db -1 +.yu: db KADABRA + db -1 +.yo: db LARVITAR, NOCTOWL + db -1 +.ra: db RAIKOU, RAICHU, CHANSEY, RATICATE, LAPRAS, VILEPLUME, LANTURN + db -1 +.ri: db CHARMELEON, CHARIZARD, URSARING + db -1 +.ru: db JYNX, LUGIA + db -1 +.re: db MAGNETON, LEDIAN, LEDYBA + db -1 +.ro: db VULPIX + db -1 +.wa: db JUMPLUFF, TOTODILE, MACHOP +.end: db -1 +; 11d67e + +GFX_11d67e: +INCBIN "gfx/pokedex/select_start.2bpp" +; 11d6de + +LZ_11d6de: +INCBIN "gfx/pokedex/slowpoke.2bpp.lz" +; 11da52 + +Strings_11da52: ; 11da52 +; Fixed message categories + db "ポケモン@@" + db "タイプ@@@" + db "あいさつ@@" + db "ひと@@@@" + db "バトル@@@" + db "こえ@@@@" + db "かいわ@@@" + db "きもち@@@" + db "じょうたい@" + db "せいかつ@@" + db "しゅみ@@@" + db "こうどう@@" + db "じかん@@@" + db "むすび@@@" + db "あれこれ@@" +; 11daac + +Unknown_11daac: ; 11daac + dw .Types + dw .Greetings + dw .People + dw .Battle + dw .Exclamations + dw .Conversation + dw .Feelings + dw .Conditions + dw .Life + dw .Hobbies + dw .Actions + dw .Time + dw .Farewells + dw .ThisAndThat + +.Types: ; 11dac8 + db "あく@@@", $26, $0, $0 + db "いわ@@@", $aa, $0, $0 + db "エスパー@", $da, $0, $0 + db "かくとう@", $4e, $1, $0 + db "くさ@@@", $ba, $1, $0 + db "ゴースト@", $e4, $1, $0 + db "こおり@@", $e6, $1, $0 + db "じめん@@", $68, $2, $0 + db "タイプ@@", $e8, $2, $0 + db "でんき@@", $8e, $3, $0 + db "どく@@@", $ae, $3, $0 + db "ドラゴン@", $bc, $3, $0 + db "ノーマル@", $22, $4, $0 + db "はがね@@", $36, $4, $0 + db "ひこう@@", $5e, $4, $0 + db "ほのお@@", $b2, $4, $0 + db "みず@@@", $f4, $4, $0 + db "むし@@@", $12, $5, $0 + +.Greetings: ; 11db58 + db "ありがと@", $58, $0, $0 + db "ありがとう", $5a, $0, $0 + db "いくぜ!@", $80, $0, $0 + db "いくよ!@", $82, $0, $0 + db "いくわよ!", $84, $0, $0 + db "いやー@@", $a6, $0, $0 + db "おっす@@", $a, $1, $0 + db "おはつです", $22, $1, $0 + db "おめでとう", $2a, $1, $0 + db "ごめん@@", $f8, $1, $0 + db "ごめんよ@", $fa, $1, $0 + db "こらっ@@", $fc, $1, $0 + db "こんちは!", $a, $2, $0 + db "こんにちは", $10, $2, $0 + db "さようなら", $28, $2, $0 + db "サンキュー", $2e, $2, $0 + db "さんじょう", $30, $2, $0 + db "しっけい@", $48, $2, $0 + db "しつれい@", $4c, $2, $0 + db "じゃーね@", $6c, $2, $0 + db "すいません", $8c, $2, $0 + db "それじゃ@", $ca, $2, $0 + db "どうも@@", $a6, $3, $0 + db "なんじゃ@", $ee, $3, $0 + db "ハーイ@@", $2c, $4, $0 + db "はいはい@", $32, $4, $0 + db "バイバイ@", $34, $4, $0 + db "へイ@@@", $8a, $4, $0 + db "またね@@", $de, $4, $0 + db "もしもし@", $32, $5, $0 + db "やあ@@@", $3e, $5, $0 + db "やっほー@", $4e, $5, $0 + db "よう@@@", $62, $5, $0 + db "ようこそ@", $64, $5, $0 + db "よろしく@", $80, $5, $0 + db "らっしゃい", $94, $5, $0 + +.People: ; 11dc78 + db "あいて@@", $1c, $0, $0 + db "あたし@@", $36, $0, $0 + db "あなた@@", $40, $0, $0 + db "あなたが@", $42, $0, $0 + db "あなたに@", $44, $0, $0 + db "あなたの@", $46, $0, $0 + db "あなたは@", $48, $0, $0 + db "あなたを@", $4a, $0, $0 + db "おかあさん", $e8, $0, $0 + db "おじいさん", $fc, $0, $0 + db "おじさん@", $2, $1, $0 + db "おとうさん", $e, $1, $0 + db "おとこのこ", $10, $1, $0 + db "おとな@@", $14, $1, $0 + db "おにいさん", $16, $1, $0 + db "おねえさん", $18, $1, $0 + db "おばあさん", $1c, $1, $0 + db "おばさん@", $20, $1, $0 + db "おれさま@", $34, $1, $0 + db "おんなのこ", $3a, $1, $0 + db "ガール@@", $40, $1, $0 + db "かぞく@@", $52, $1, $0 + db "かのじょ@", $72, $1, $0 + db "かれ@@@", $7c, $1, $0 + db "きみ@@@", $9a, $1, $0 + db "きみが@@", $9c, $1, $0 + db "きみに@@", $9e, $1, $0 + db "きみの@@", $a0, $1, $0 + db "きみは@@", $a2, $1, $0 + db "きみを@@", $a4, $1, $0 + db "ギャル@@", $ae, $1, $0 + db "きょうだい", $b2, $1, $0 + db "こども@@", $f0, $1, $0 + db "じぶん@@", $54, $2, $0 + db "じぶんが@", $56, $2, $0 + db "じぶんに@", $58, $2, $0 + db "じぶんの@", $5a, $2, $0 + db "じぶんは@", $5c, $2, $0 + db "じぶんを@", $5e, $2, $0 + db "だれ@@@", $18, $3, $0 + db "だれか@@", $1a, $3, $0 + db "だれが@@", $1c, $3, $0 + db "だれに@@", $1e, $3, $0 + db "だれの@@", $20, $3, $0 + db "だれも@@", $22, $3, $0 + db "だれを@@", $24, $3, $0 + db "ちゃん@@", $38, $3, $0 + db "ともだち@", $b8, $3, $0 + db "なかま@@", $d4, $3, $0 + db "ひと@@@", $62, $4, $0 + db "ボーイ@@", $98, $4, $0 + db "ボク@@@", $a0, $4, $0 + db "ボクが@@", $a2, $4, $0 + db "ボクに@@", $a4, $4, $0 + db "ボクの@@", $a6, $4, $0 + db "ボクは@@", $a8, $4, $0 + db "ボクを@@", $aa, $4, $0 + db "みんな@@", $4, $5, $0 + db "みんなが@", $6, $5, $0 + db "みんなに@", $8, $5, $0 + db "みんなの@", $a, $5, $0 + db "みんなは@", $c, $5, $0 + db "ライバル@", $8a, $5, $0 + db "わたし@@", $c2, $5, $0 + db "わたしが@", $c4, $5, $0 + db "わたしに@", $c6, $5, $0 + db "わたしの@", $c8, $5, $0 + db "わたしは@", $ca, $5, $0 + db "わたしを@", $cc, $5, $0 + +.Battle: ; 11dea0 + db "あいしょう", $18, $0, $0 + db "いけ!@@", $88, $0, $0 + db "いちばん@", $96, $0, $0 + db "かくご@@", $4c, $1, $0 + db "かたせて@", $54, $1, $0 + db "かち@@@", $56, $1, $0 + db "かつ@@@", $58, $1, $0 + db "かった@@", $60, $1, $0 + db "かったら@", $62, $1, $0 + db "かって@@", $64, $1, $0 + db "かてない@", $66, $1, $0 + db "かてる@@", $68, $1, $0 + db "かなわない", $70, $1, $0 + db "きあい@@", $84, $1, $0 + db "きめた@@", $a8, $1, $0 + db "きりふだ@", $b6, $1, $0 + db "くらえ@@", $c2, $1, $0 + db "こい!@@", $da, $1, $0 + db "こうげき@", $e0, $1, $0 + db "こうさん@", $e2, $1, $0 + db "こんじょう", $8, $2, $0 + db "さいのう@", $16, $2, $0 + db "さくせん@", $1a, $2, $0 + db "さばき@@", $22, $2, $0 + db "しょうぶ@", $7e, $2, $0 + db "しょうり@", $80, $2, $0 + db "せめ@@@", $b4, $2, $0 + db "センス@@", $b6, $2, $0 + db "たいせん@", $e6, $2, $0 + db "たたかい@", $f6, $2, $0 + db "ちから@@", $32, $3, $0 + db "チャレンジ", $36, $3, $0 + db "つよい@@", $58, $3, $0 + db "つよすぎ@", $5a, $3, $0 + db "つらい@@", $5c, $3, $0 + db "つらかった", $5e, $3, $0 + db "てかげん@", $6c, $3, $0 + db "てき@@@", $6e, $3, $0 + db "てんさい@", $90, $3, $0 + db "でんせつ@", $94, $3, $0 + db "トレーナー", $c6, $3, $0 + db "にげ@@@", $4, $4, $0 + db "ぬるい@@", $10, $4, $0 + db "ねらう@@", $16, $4, $0 + db "バトル@@", $4a, $4, $0 + db "ファイト@", $72, $4, $0 + db "ふっかつ@", $78, $4, $0 + db "ポイント@", $94, $4, $0 + db "ポケモン@", $ac, $4, $0 + db "ほんき@@", $bc, $4, $0 + db "まいった!", $c4, $4, $0 + db "まけ@@@", $c8, $4, $0 + db "まけたら@", $ca, $4, $0 + db "まけて@@", $cc, $4, $0 + db "まける@@", $ce, $4, $0 + db "まもり@@", $ea, $4, $0 + db "みかた@@", $f2, $4, $0 + db "みとめない", $fe, $4, $0 + db "みとめる@", $0, $5, $0 + db "むてき@@", $16, $5, $0 + db "もらった!", $3c, $5, $0 + db "よゆう@@", $7a, $5, $0 + db "よわい@@", $82, $5, $0 + db "よわすぎ@", $84, $5, $0 + db "らくしょう", $8e, $5, $0 + db "りーダー@", $9e, $5, $0 + db "ルール@@", $a0, $5, $0 + db "レべル@@", $a6, $5, $0 + db "わざ@@@", $be, $5, $0 + +.Exclamations: ; 11e0c8 + db "!@@@@", $0, $0, $0 + db "!!@@@", $2, $0, $0 + db "!?@@@", $4, $0, $0 + db "?@@@@", $6, $0, $0 + db "…@@@@", $8, $0, $0 + db "…!@@@", $a, $0, $0 + db "………@@", $c, $0, $0 + db "ー@@@@", $e, $0, $0 + db "ーーー@@", $10, $0, $0 + db "あーあ@@", $14, $0, $0 + db "あーん@@", $16, $0, $0 + db "あははー@", $52, $0, $0 + db "あら@@@", $54, $0, $0 + db "いえ@@@", $72, $0, $0 + db "イエス@@", $74, $0, $0 + db "うう@@@", $ac, $0, $0 + db "うーん@@", $ae, $0, $0 + db "うおー!@", $b0, $0, $0 + db "うおりゃー", $b2, $0, $0 + db "うひょー@", $bc, $0, $0 + db "うふふ@@", $be, $0, $0 + db "うわー@@", $ca, $0, $0 + db "うわーん@", $cc, $0, $0 + db "ええ@@@", $d2, $0, $0 + db "えー@@@", $d4, $0, $0 + db "えーん@@", $d6, $0, $0 + db "えへへ@@", $dc, $0, $0 + db "おいおい@", $e0, $0, $0 + db "おお@@@", $e2, $0, $0 + db "おっと@@", $c, $1, $0 + db "がーん@@", $42, $1, $0 + db "キャー@@", $aa, $1, $0 + db "ギャー@@", $ac, $1, $0 + db "ぐふふふふ", $bc, $1, $0 + db "げっ@@@", $ce, $1, $0 + db "しくしく@", $3e, $2, $0 + db "ちえっ@@", $2e, $3, $0 + db "てへ@@@", $86, $3, $0 + db "ノー@@@", $20, $4, $0 + db "はあー@@", $2a, $4, $0 + db "はい@@@", $30, $4, $0 + db "はっはっは", $48, $4, $0 + db "ひいー@@", $56, $4, $0 + db "ひゃあ@@", $6a, $4, $0 + db "ふっふっふ", $7c, $4, $0 + db "ふにゃ@@", $7e, $4, $0 + db "ププ@@@", $80, $4, $0 + db "ふふん@@", $82, $4, $0 + db "ふん@@@", $88, $4, $0 + db "へっへっへ", $8e, $4, $0 + db "へへー@@", $90, $4, $0 + db "ほーほほほ", $9c, $4, $0 + db "ほら@@@", $b6, $4, $0 + db "まあ@@@", $c0, $4, $0 + db "むきー!!", $10, $5, $0 + db "むふー@@", $18, $5, $0 + db "むふふ@@", $1a, $5, $0 + db "むむ@@@", $1c, $5, $0 + db "よーし@@", $6a, $5, $0 + db "よし!@@", $72, $5, $0 + db "ラララ@@", $98, $5, $0 + db "わーい@@", $ac, $5, $0 + db "わーん!!", $b0, $5, $0 + db "ワォ@@@", $b2, $5, $0 + db "わっ!!@", $ce, $5, $0 + db "わははは!", $d0, $5, $0 + +.Conversation: ; 11e2d8 + db "あのね@@", $50, $0, $0 + db "あんまり@", $6e, $0, $0 + db "いじわる@", $8e, $0, $0 + db "うそ@@@", $b6, $0, $0 + db "うむ@@@", $c4, $0, $0 + db "おーい@@", $e4, $0, $0 + db "おすすめ@", $6, $1, $0 + db "おばかさん", $1e, $1, $0 + db "かなり@@", $6e, $1, $0 + db "から@@@", $7a, $1, $0 + db "きぶん@@", $98, $1, $0 + db "けど@@@", $d6, $1, $0 + db "こそ@@@", $ea, $1, $0 + db "こと@@@", $ee, $1, $0 + db "さあ@@@", $12, $2, $0 + db "さっぱり@", $1e, $2, $0 + db "さて@@@", $20, $2, $0 + db "じゅうぶん", $72, $2, $0 + db "すぐ@@@", $94, $2, $0 + db "すごく@@", $98, $2, $0 + db "すこしは@", $9a, $2, $0 + db "すっっごい", $a0, $2, $0 + db "ぜーんぜん", $b0, $2, $0 + db "ぜったい@", $b2, $2, $0 + db "それで@@", $ce, $2, $0 + db "だけ@@@", $f2, $2, $0 + db "だって@@", $fc, $2, $0 + db "たぶん@@", $6, $3, $0 + db "たら@@@", $14, $3, $0 + db "ちょー@@", $3a, $3, $0 + db "ちょっと@", $3c, $3, $0 + db "ったら@@", $4e, $3, $0 + db "って@@@", $50, $3, $0 + db "ていうか@", $62, $3, $0 + db "でも@@@", $88, $3, $0 + db "どうしても", $9c, $3, $0 + db "とうぜん@", $a0, $3, $0 + db "どうぞ@@", $a2, $3, $0 + db "とりあえず", $be, $3, $0 + db "なあ@@@", $cc, $3, $0 + db "なんて@@", $f4, $3, $0 + db "なんでも@", $fc, $3, $0 + db "なんとか@", $fe, $3, $0 + db "には@@@", $8, $4, $0 + db "バッチり@", $46, $4, $0 + db "ばりばり@", $52, $4, $0 + db "ほど@@@", $b0, $4, $0 + db "ほんと@@", $be, $4, $0 + db "まさに@@", $d0, $4, $0 + db "マジ@@@", $d2, $4, $0 + db "マジで@@", $d4, $4, $0 + db "まったく@", $e4, $4, $0 + db "まで@@@", $e6, $4, $0 + db "まるで@@", $ec, $4, $0 + db "ムード@@", $e, $5, $0 + db "むしろ@@", $14, $5, $0 + db "めちゃ@@", $24, $5, $0 + db "めっぽう@", $28, $5, $0 + db "もう@@@", $2c, $5, $0 + db "モード@@", $2e, $5, $0 + db "もっと@@", $36, $5, $0 + db "もはや@@", $38, $5, $0 + db "やっと@@", $4a, $5, $0 + db "やっぱり@", $4c, $5, $0 + db "より@@@", $7c, $5, $0 + db "れば@@@", $a4, $5, $0 + +.Feelings: ; 11e4e8 + db "あいたい@", $1a, $0, $0 + db "あそびたい", $32, $0, $0 + db "いきたい@", $7c, $0, $0 + db "うかれて@", $b4, $0, $0 + db "うれしい@", $c6, $0, $0 + db "うれしさ@", $c8, $0, $0 + db "エキサイト", $d8, $0, $0 + db "えらい@@", $de, $0, $0 + db "おかしい@", $ec, $0, $0 + db "ォッケー@", $8, $1, $0 + db "かえりたい", $48, $1, $0 + db "がっくし@", $5a, $1, $0 + db "かなしい@", $6c, $1, $0 + db "がんばって", $80, $1, $0 + db "きがしない", $86, $1, $0 + db "きがする@", $88, $1, $0 + db "ききたい@", $8a, $1, $0 + db "きになる@", $90, $1, $0 + db "きのせい@", $96, $1, $0 + db "きらい@@", $b4, $1, $0 + db "くやしい@", $be, $1, $0 + db "くやしさ@", $c0, $1, $0 + db "さみしい@", $24, $2, $0 + db "ざんねん@", $32, $2, $0 + db "しあわせ@", $36, $2, $0 + db "したい@@", $44, $2, $0 + db "したくない", $46, $2, $0 + db "しまった@", $64, $2, $0 + db "しょんぼり", $82, $2, $0 + db "すき@@@", $92, $2, $0 + db "だいきらい", $da, $2, $0 + db "たいくつ@", $dc, $2, $0 + db "だいじ@@", $de, $2, $0 + db "だいすき@", $e4, $2, $0 + db "たいへん@", $ea, $2, $0 + db "たのしい@", $0, $3, $0 + db "たのしすぎ", $2, $3, $0 + db "たべたい@", $8, $3, $0 + db "ダメダメ@", $e, $3, $0 + db "たりない@", $16, $3, $0 + db "ちくしょー", $34, $3, $0 + db "どうしよう", $9e, $3, $0 + db "ドキドキ@", $ac, $3, $0 + db "ナイス@@", $d0, $3, $0 + db "のみたい@", $26, $4, $0 + db "びっくり@", $60, $4, $0 + db "ふあん@@", $74, $4, $0 + db "ふらふら@", $86, $4, $0 + db "ほしい@@", $ae, $4, $0 + db "ボロボロ@", $b8, $4, $0 + db "まだまだ@", $e0, $4, $0 + db "まてない@", $e8, $4, $0 + db "まんぞく@", $f0, $4, $0 + db "みたい@@", $f8, $4, $0 + db "めずらしい", $22, $5, $0 + db "メラメラ@", $2a, $5, $0 + db "やだ@@@", $46, $5, $0 + db "やったー@", $48, $5, $0 + db "やばい@@", $50, $5, $0 + db "やばすぎる", $52, $5, $0 + db "やられた@", $54, $5, $0 + db "やられて@", $56, $5, $0 + db "よかった@", $6e, $5, $0 + db "ラブラブ@", $96, $5, $0 + db "ロマン@@", $a8, $5, $0 + db "ろんがい@", $aa, $5, $0 + db "わから@@", $b4, $5, $0 + db "わかり@@", $b6, $5, $0 + db "わくわく@", $ba, $5, $0 + +.Conditions: ; 11e710 + db "あつい@@", $38, $0, $0 + db "あった@@", $3a, $0, $0 + db "あり@@@", $56, $0, $0 + db "ある@@@", $5e, $0, $0 + db "あわてて@", $6a, $0, $0 + db "いい@@@", $70, $0, $0 + db "いか@@@", $76, $0, $0 + db "イカス@@", $78, $0, $0 + db "いきおい@", $7a, $0, $0 + db "いける@@", $8a, $0, $0 + db "いじょう@", $8c, $0, $0 + db "いそがしい", $90, $0, $0 + db "いっしょに", $9a, $0, $0 + db "いっぱい@", $9c, $0, $0 + db "いない@@", $a0, $0, $0 + db "いや@@@", $a4, $0, $0 + db "いる@@@", $a8, $0, $0 + db "うまい@@", $c0, $0, $0 + db "うまく@@", $c2, $0, $0 + db "おおきい@", $e6, $0, $0 + db "おくれ@@", $f2, $0, $0 + db "おしい@@", $fa, $0, $0 + db "おもしろい", $2c, $1, $0 + db "おもしろく", $2e, $1, $0 + db "かっこいい", $5c, $1, $0 + db "かわいい@", $7e, $1, $0 + db "かんぺき@", $82, $1, $0 + db "けっこう@", $d0, $1, $0 + db "げんき@@", $d8, $1, $0 + db "こわい@@", $6, $2, $0 + db "さいこう@", $14, $2, $0 + db "さむい@@", $26, $2, $0 + db "さわやか@", $2c, $2, $0 + db "しかたない", $38, $2, $0 + db "すごい@@", $96, $2, $0 + db "すごすぎ@", $9c, $2, $0 + db "すてき@@", $a4, $2, $0 + db "たいした@", $e0, $2, $0 + db "だいじょぶ", $e2, $2, $0 + db "たかい@@", $ec, $2, $0 + db "ただしい@", $f8, $2, $0 + db "だめ@@@", $c, $3, $0 + db "ちいさい@", $2c, $3, $0 + db "ちがう@@", $30, $3, $0 + db "つかれ@@", $48, $3, $0 + db "とくい@@", $b0, $3, $0 + db "とまらない", $b6, $3, $0 + db "ない@@@", $ce, $3, $0 + db "なかった@", $d2, $3, $0 + db "なし@@@", $d8, $3, $0 + db "なって@@", $dc, $3, $0 + db "はやい@@", $50, $4, $0 + db "ひかる@@", $5a, $4, $0 + db "ひくい@@", $5c, $4, $0 + db "ひどい@@", $64, $4, $0 + db "ひとりで@", $66, $4, $0 + db "ひま@@@", $68, $4, $0 + db "ふそく@@", $76, $4, $0 + db "へた@@@", $8c, $4, $0 + db "まちがって", $e2, $4, $0 + db "やさしい@", $42, $5, $0 + db "よく@@@", $70, $5, $0 + db "よわって@", $86, $5, $0 + db "らく@@@", $8c, $5, $0 + db "らしい@@", $90, $5, $0 + db "わるい@@", $d4, $5, $0 + +.Life: ; 11e920 + db "アルバイト", $64, $0, $0 + db "うち@@@", $ba, $0, $0 + db "おかね@@", $ee, $0, $0 + db "おこづかい", $f4, $0, $0 + db "おふろ@@", $24, $1, $0 + db "がっこう@", $5e, $1, $0 + db "きねん@@", $92, $1, $0 + db "グループ@", $c6, $1, $0 + db "ゲット@@", $d2, $1, $0 + db "こうかん@", $de, $1, $0 + db "しごと@@", $40, $2, $0 + db "しゅぎょう", $74, $2, $0 + db "じゅぎょう", $76, $2, $0 + db "じゅく@@", $78, $2, $0 + db "しんか@@", $88, $2, $0 + db "ずかん@@", $90, $2, $0 + db "せいかつ@", $ae, $2, $0 + db "せんせい@", $b8, $2, $0 + db "センター@", $ba, $2, $0 + db "タワー@@", $28, $3, $0 + db "つうしん@", $40, $3, $0 + db "テスト@@", $7e, $3, $0 + db "テレビ@@", $8c, $3, $0 + db "でんわ@@", $96, $3, $0 + db "どうぐ@@", $9a, $3, $0 + db "トレード@", $c4, $3, $0 + db "なまえ@@", $e8, $3, $0 + db "ニュース@", $a, $4, $0 + db "にんき@@", $c, $4, $0 + db "パーティー", $2e, $4, $0 + db "べんきょう", $92, $4, $0 + db "マシン@@", $d6, $4, $0 + db "めいし@@", $1e, $5, $0 + db "メッセージ", $26, $5, $0 + db "もようがえ", $3a, $5, $0 + db "ゆめ@@@", $5a, $5, $0 + db "ようちえん", $66, $5, $0 + db "ラジォ@@", $92, $5, $0 + db "ワールド@", $ae, $5, $0 + +.Hobbies: ; 11ea58 + db "アイドル@", $1e, $0, $0 + db "アニメ@@", $4c, $0, $0 + db "うた@@@", $b8, $0, $0 + db "えいが@@", $d0, $0, $0 + db "おかし@@", $ea, $0, $0 + db "おしゃべり", $4, $1, $0 + db "おままごと", $28, $1, $0 + db "おもちゃ@", $30, $1, $0 + db "おんがく@", $38, $1, $0 + db "カード@@", $3e, $1, $0 + db "かいもの@", $46, $1, $0 + db "グルメ@@", $c8, $1, $0 + db "ゲーム@@", $cc, $1, $0 + db "ざっし@@", $1c, $2, $0 + db "さんぽ@@", $34, $2, $0 + db "じてんしゃ", $50, $2, $0 + db "しゅみ@@", $7a, $2, $0 + db "スポーツ@", $a8, $2, $0 + db "ダイエット", $d8, $2, $0 + db "たからもの", $f0, $2, $0 + db "たび@@@", $4, $3, $0 + db "ダンス@@", $2a, $3, $0 + db "つり@@@", $60, $3, $0 + db "デート@@", $6a, $3, $0 + db "でんしゃ@", $92, $3, $0 + db "ぬいぐるみ", $e, $4, $0 + db "パソコン@", $3e, $4, $0 + db "はな@@@", $4c, $4, $0 + db "ヒーロー@", $58, $4, $0 + db "ひるね@@", $6e, $4, $0 + db "ヒロイン@", $70, $4, $0 + db "ぼうけん@", $96, $4, $0 + db "ボード@@", $9a, $4, $0 + db "ボール@@", $9e, $4, $0 + db "ほん@@@", $ba, $4, $0 + db "マンガ@@", $ee, $4, $0 + db "やくそく@", $40, $5, $0 + db "やすみ@@", $44, $5, $0 + db "よてい@@", $74, $5, $0 + +.Actions: ; 11eb90 + db "あう@@@", $20, $0, $0 + db "あきらめ@", $24, $0, $0 + db "あげる@@", $28, $0, $0 + db "あせる@@", $2e, $0, $0 + db "あそび@@", $30, $0, $0 + db "あそぶ@@", $34, $0, $0 + db "あつめ@@", $3e, $0, $0 + db "あるき@@", $60, $0, $0 + db "あるく@@", $62, $0, $0 + db "いく@@@", $7e, $0, $0 + db "いけ@@@", $86, $0, $0 + db "おき@@@", $f0, $0, $0 + db "おこり@@", $f6, $0, $0 + db "おこる@@", $f8, $0, $0 + db "おしえ@@", $fe, $0, $0 + db "おしえて@", $0, $1, $0 + db "おねがい@", $1a, $1, $0 + db "おぼえ@@", $26, $1, $0 + db "かえる@@", $4a, $1, $0 + db "がまん@@", $74, $1, $0 + db "きく@@@", $8c, $1, $0 + db "きたえ@@", $8e, $1, $0 + db "きめ@@@", $a6, $1, $0 + db "くる@@@", $c4, $1, $0 + db "さがし@@", $18, $2, $0 + db "さわぎ@@", $2a, $2, $0 + db "した@@@", $42, $2, $0 + db "しって@@", $4a, $2, $0 + db "して@@@", $4e, $2, $0 + db "しない@@", $52, $2, $0 + db "しまう@@", $60, $2, $0 + db "じまん@@", $66, $2, $0 + db "しらない@", $84, $2, $0 + db "しる@@@", $86, $2, $0 + db "しんじて@", $8a, $2, $0 + db "する@@@", $aa, $2, $0 + db "たべる@@", $a, $3, $0 + db "つかう@@", $42, $3, $0 + db "つかえ@@", $44, $3, $0 + db "つかって@", $46, $3, $0 + db "できない@", $70, $3, $0 + db "できる@@", $72, $3, $0 + db "でない@@", $84, $3, $0 + db "でる@@@", $8a, $3, $0 + db "なげる@@", $d6, $3, $0 + db "なやみ@@", $ea, $3, $0 + db "ねられ@@", $18, $4, $0 + db "ねる@@@", $1a, $4, $0 + db "のがし@@", $24, $4, $0 + db "のむ@@@", $28, $4, $0 + db "はしり@@", $3a, $4, $0 + db "はしる@@", $3c, $4, $0 + db "はたらき@", $40, $4, $0 + db "はたらく@", $42, $4, $0 + db "はまって@", $4e, $4, $0 + db "ぶつけ@@", $7a, $4, $0 + db "ほめ@@@", $b4, $4, $0 + db "みせて@@", $f6, $4, $0 + db "みて@@@", $fc, $4, $0 + db "みる@@@", $2, $5, $0 + db "めざす@@", $20, $5, $0 + db "もって@@", $34, $5, $0 + db "ゆずる@@", $58, $5, $0 + db "ゆるす@@", $5c, $5, $0 + db "ゆるせ@@", $5e, $5, $0 + db "られない@", $9a, $5, $0 + db "られる@@", $9c, $5, $0 + db "わかる@@", $b8, $5, $0 + db "わすれ@@", $c0, $5, $0 + +.Time: ; 11edb8 + db "あき@@@", $22, $0, $0 + db "あさ@@@", $2a, $0, $0 + db "あした@@", $2c, $0, $0 + db "いちにち@", $94, $0, $0 + db "いつか@@", $98, $0, $0 + db "いつも@@", $9e, $0, $0 + db "いま@@@", $a2, $0, $0 + db "えいえん@", $ce, $0, $0 + db "おととい@", $12, $1, $0 + db "おわり@@", $36, $1, $0 + db "かようび@", $78, $1, $0 + db "きのう@@", $94, $1, $0 + db "きょう@@", $b0, $1, $0 + db "きんようび", $b8, $1, $0 + db "げつようび", $d4, $1, $0 + db "このあと@", $f4, $1, $0 + db "このまえ@", $f6, $1, $0 + db "こんど@@", $c, $2, $0 + db "じかん@@", $3c, $2, $0 + db "じゅうねん", $70, $2, $0 + db "すいようび", $8e, $2, $0 + db "スタート@", $9e, $2, $0 + db "ずっと@@", $a2, $2, $0 + db "ストップ@", $a6, $2, $0 + db "そのうち@", $c4, $2, $0 + db "ついに@@", $3e, $3, $0 + db "つぎ@@@", $4a, $3, $0 + db "どようび@", $ba, $3, $0 + db "なつ@@@", $da, $3, $0 + db "にちようび", $6, $4, $0 + db "はじめ@@", $38, $4, $0 + db "はる@@@", $54, $4, $0 + db "ひる@@@", $6c, $4, $0 + db "ふゆ@@@", $84, $4, $0 + db "まいにち@", $c6, $4, $0 + db "もくようび", $30, $5, $0 + db "よなか@@", $76, $5, $0 + db "よる@@@", $7e, $5, $0 + db "らいしゅう", $88, $5, $0 + +.Farewells: ; 11eef0 + db "いたします", $92, $0, $0 + db "おります@", $32, $1, $0 + db "か!?@@", $3c, $1, $0 + db "かい?@@", $44, $1, $0 + db "かしら?@", $50, $1, $0 + db "かな?@@", $6a, $1, $0 + db "かも@@@", $76, $1, $0 + db "くれ@@@", $ca, $1, $0 + db "ございます", $e8, $1, $0 + db "しがち@@", $3a, $2, $0 + db "します@@", $62, $2, $0 + db "じゃ@@@", $6a, $2, $0 + db "じゃん@@", $6e, $2, $0 + db "しよう@@", $7c, $2, $0 + db "ぜ!@@@", $ac, $2, $0 + db "ぞ!@@@", $bc, $2, $0 + db "た@@@@", $d4, $2, $0 + db "だ@@@@", $d6, $2, $0 + db "だからね@", $ee, $2, $0 + db "だぜ@@@", $f4, $2, $0 + db "だった@@", $fa, $2, $0 + db "だね@@@", $fe, $2, $0 + db "だよ@@@", $10, $3, $0 + db "だよねー!", $12, $3, $0 + db "だわ@@@", $26, $3, $0 + db "ッス@@@", $4c, $3, $0 + db "ってかんじ", $52, $3, $0 + db "っぱなし@", $54, $3, $0 + db "つもり@@", $56, $3, $0 + db "ていない@", $64, $3, $0 + db "ている@@", $66, $3, $0 + db "でーす!@", $68, $3, $0 + db "でした@@", $74, $3, $0 + db "でしょ?@", $76, $3, $0 + db "でしょー!", $78, $3, $0 + db "です@@@", $7a, $3, $0 + db "ですか?@", $7c, $3, $0 + db "ですよ@@", $80, $3, $0 + db "ですわ@@", $82, $3, $0 + db "どうなの?", $a4, $3, $0 + db "どうよ?@", $a8, $3, $0 + db "とかいって", $aa, $3, $0 + db "なの@@@", $e0, $3, $0 + db "なのか@@", $e2, $3, $0 + db "なのだ@@", $e4, $3, $0 + db "なのよ@@", $e6, $3, $0 + db "なんだね@", $f2, $3, $0 + db "なんです@", $f8, $3, $0 + db "なんてね@", $fa, $3, $0 + db "ね@@@@", $12, $4, $0 + db "ねー@@@", $14, $4, $0 + db "の@@@@", $1c, $4, $0 + db "の?@@@", $1e, $4, $0 + db "ばっかり@", $44, $4, $0 + db "まーす!@", $c2, $4, $0 + db "ます@@@", $d8, $4, $0 + db "ますわ@@", $da, $4, $0 + db "ません@@", $dc, $4, $0 + db "みたいな@", $fa, $4, $0 + db "よ!@@@", $60, $5, $0 + db "よー@@@", $68, $5, $0 + db "よーん@@", $6c, $5, $0 + db "よね@@@", $78, $5, $0 + db "るよ@@@", $a2, $5, $0 + db "わけ@@@", $bc, $5, $0 + db "わよ!@@", $d2, $5, $0 + +.ThisAndThat: ; 11f100 + db "ああ@@@", $12, $0, $0 + db "あっち@@", $3c, $0, $0 + db "あの@@@", $4e, $0, $0 + db "ありゃ@@", $5c, $0, $0 + db "あれ@@@", $66, $0, $0 + db "あれは@@", $68, $0, $0 + db "あんな@@", $6c, $0, $0 + db "こう@@@", $dc, $1, $0 + db "こっち@@", $ec, $1, $0 + db "この@@@", $f2, $1, $0 + db "こりゃ@@", $fe, $1, $0 + db "これ@@@", $0, $2, $0 + db "これだ!@", $2, $2, $0 + db "これは@@", $4, $2, $0 + db "こんな@@", $e, $2, $0 + db "そう@@@", $be, $2, $0 + db "そっち@@", $c0, $2, $0 + db "その@@@", $c2, $2, $0 + db "そりゃ@@", $c6, $2, $0 + db "それ@@@", $c8, $2, $0 + db "それだ!@", $cc, $2, $0 + db "それは@@", $d0, $2, $0 + db "そんな@@", $d2, $2, $0 + db "どう@@@", $98, $3, $0 + db "どっち@@", $b2, $3, $0 + db "どの@@@", $b4, $3, $0 + db "どりゃ@@", $c0, $3, $0 + db "どれ@@@", $c2, $3, $0 + db "どれを@@", $c8, $3, $0 + db "どんな@@", $ca, $3, $0 + db "なに@@@", $de, $3, $0 + db "なんか@@", $ec, $3, $0 + db "なんだ@@", $f0, $3, $0 + db "なんで@@", $f6, $3, $0 + db "なんなんだ", $0, $4, $0 + db "なんの@@", $2, $4, $0 +; 11f220 + +Unknown_11f220: + db $12, $01, $24, $02 + db $45, $05, $45, $05 + db $42, $05, $42, $05 + db $45, $05, $42, $05 + db $27, $03, $27, $03 + db $45, $05, $27, $03 + db $42, $05, $24, $02 + +Unknown_11f23c: +macro_11f23c: macro + dw x - w3_d000, \1 +x = x + 2 * \1 +endm +x = $d012 + macro_11f23c $2f + macro_11f23c $1e + macro_11f23c $11 + macro_11f23c $09 + macro_11f23c $2e + macro_11f23c $24 + macro_11f23c $1b + macro_11f23c $09 + macro_11f23c $07 + macro_11f23c $1c + macro_11f23c $12 + macro_11f23c $2b + macro_11f23c $10 + macro_11f23c $08 + macro_11f23c $0c + macro_11f23c $2c + macro_11f23c $09 + macro_11f23c $12 + macro_11f23c $1b + macro_11f23c $1a + macro_11f23c $1c + macro_11f23c $05 + macro_11f23c $02 + macro_11f23c $05 + macro_11f23c $07 + macro_11f23c $16 + macro_11f23c $0e + macro_11f23c $0c + macro_11f23c $05 + macro_11f23c $16 + macro_11f23c $19 + macro_11f23c $0e + macro_11f23c $08 + macro_11f23c $07 + macro_11f23c $09 + macro_11f23c $0d + macro_11f23c $04 + macro_11f23c $14 + macro_11f23c $0b + macro_11f23c $01 + macro_11f23c $02 + macro_11f23c $02 + macro_11f23c $02 + macro_11f23c $15 +x = $d000 + macro_11f23c $09 +Unknown_11f23cEnd: From f599e477fc3306dbca9cad4aeadfe7a66b84c7bc Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 24 Nov 2015 15:18:44 -0500 Subject: [PATCH 38/40] Partial interpretation of battle tower trainer data --- data/battle_tower_2.asm | 1473 ++++++++++++++++++++++++++++++++++++-- engine/save.asm | 16 +- maps/BattleTower1F.asm | 10 +- misc/battle_tower_5c.asm | 1314 ++++++++++++++++++++++++++++++++++ misc/mobile_46.asm | 44 +- misc/mobile_5c.asm | 1280 --------------------------------- misc/mobile_5f.asm | 134 ++-- sram.asm | 11 +- wram.asm | 14 +- 9 files changed, 2838 insertions(+), 1458 deletions(-) diff --git a/data/battle_tower_2.asm b/data/battle_tower_2.asm index 8d6e6d59d..05e0a7e52 100755 --- a/data/battle_tower_2.asm +++ b/data/battle_tower_2.asm @@ -1,72 +1,1405 @@ + BattleTowerTrainerData:: ; What exactly it is, I don't know ; Size is 70 (Nr of Trainers in BattleTower) * 0x24 (Nr of Bytes that are copied) - db $37, $03, $0e, $09, $25, $0b, $1c, $0d, $12, $0d, $00, $05, $0e, $09, $1a, $0b, $30, $04, $3f, $06, $20, $04, $21, $0d, $0e, $09, $30, $04, $20, $04, $0b, $06, $34, $03, $06, $05 - db $36, $03, $ca, $00, $22, $08, $20, $04, $33, $0d, $11, $0d, $37, $05, $06, $05, $3f, $06, $ca, $00, $20, $04, $06, $0d, $ca, $00, $21, $03, $09, $06, $12, $04, $28, $0b, $0c, $0d - db $32, $06, $31, $04, $02, $02, $03, $04, $22, $02, $00, $05, $40, $04, $2d, $06, $13, $0d, $18, $03, $3f, $04, $13, $0d, $1a, $0c, $33, $04, $32, $0d, $09, $06, $22, $02, $13, $0d - db $22, $0c, $22, $0c, $0a, $09, $0b, $08, $2f, $06, $22, $07, $22, $06, $2c, $04, $1a, $06, $0d, $07, $3f, $0d, $00, $05, $0b, $08, $09, $06, $2c, $04, $1f, $0e, $1c, $0b, $41, $0b - db $a3, $00, $41, $03, $1f, $04, $29, $00, $1c, $04, $03, $02, $3d, $05, $38, $06, $71, $00, $18, $03, $30, $06, $53, $00, $1e, $05, $b9, $00, $21, $0d, $30, $06, $d1, $00, $0a, $06 - db $13, $02, $31, $06, $04, $02, $1c, $04, $0d, $0d, $31, $0d, $39, $07, $31, $06, $24, $07, $3d, $04, $40, $04, $30, $0d, $03, $06, $08, $05, $02, $05, $14, $07, $08, $05, $1a, $0d - db $0d, $02, $07, $02, $00, $05, $22, $02, $10, $0b, $0a, $0d, $16, $02, $01, $02, $08, $0d, $2c, $04, $23, $07, $23, $0d, $16, $02, $01, $02, $08, $0d, $02, $03, $20, $04, $23, $0d - db $1e, $02, $22, $02, $00, $05, $20, $08, $2c, $04, $03, $02, $1d, $05, $41, $08, $41, $08, $35, $05, $40, $0b, $00, $05, $0b, $05, $0b, $02, $00, $05, $04, $04, $14, $08, $00, $05 - db $06, $0c, $09, $06, $00, $00, $0b, $09, $1e, $0c, $37, $0d, $41, $03, $06, $04, $34, $06, $22, $0c, $15, $09, $23, $0d, $02, $03, $22, $08, $41, $0d, $26, $04, $31, $0d, $01, $05 - db $22, $0c, $30, $04, $01, $05, $2c, $04, $23, $07, $01, $05, $37, $03, $3d, $04, $3c, $0d, $1c, $03, $29, $08, $3c, $0d, $18, $04, $30, $0d, $06, $05, $14, $07, $30, $0d, $06, $05 - db $0e, $06, $04, $05, $2c, $04, $1e, $0c, $38, $0d, $00, $05, $3f, $03, $3f, $06, $20, $04, $33, $0d, $04, $0d, $00, $00, $20, $04, $26, $0d, $04, $05, $0c, $04, $26, $0d, $04, $05 - db $18, $02, $33, $03, $28, $04, $2c, $04, $09, $07, $03, $05, $30, $04, $08, $09, $00, $05, $1a, $02, $32, $03, $00, $05, $3f, $05, $26, $07, $01, $05, $26, $05, $0f, $02, $00, $05 - db $3a, $0b, $3a, $0b, $00, $05, $42, $03, $19, $08, $30, $04, $39, $03, $13, $06, $13, $06, $19, $08, $21, $0d, $00, $00, $39, $03, $09, $02, $00, $05, $40, $03, $3a, $08, $2a, $0d - db $31, $05, $11, $0e, $30, $04, $1b, $08, $07, $08, $0c, $0d, $1b, $02, $1b, $02, $01, $05, $15, $02, $0a, $04, $0e, $0d, $22, $05, $31, $06, $02, $05, $1d, $06, $3b, $07, $0e, $0d - db $1b, $02, $2c, $04, $0d, $0d, $34, $03, $00, $03, $11, $0d, $1b, $08, $31, $04, $0b, $0d, $2f, $08, $01, $05, $00, $00, $06, $05, $10, $05, $0f, $06, $11, $0d, $06, $05, $00, $00 - db $42, $03, $30, $04, $1f, $0b, $16, $0e, $10, $07, $34, $0d, $17, $0e, $04, $0d, $00, $00, $42, $03, $19, $08, $30, $04, $0c, $05, $35, $05, $01, $05, $1e, $06, $36, $08, $41, $0d - db $18, $03, $42, $03, $43, $04, $3a, $0b, $3b, $0b, $03, $05, $2c, $05, $06, $05, $1b, $03, $43, $04, $39, $0b, $3c, $04, $14, $0b, $0f, $05, $06, $05, $40, $03, $3f, $04, $20, $0e - db $0c, $05, $36, $07, $30, $04, $27, $0b, $10, $08, $31, $0d, $11, $0e, $30, $04, $41, $03, $07, $0d, $2f, $08, $03, $05, $06, $05, $3f, $06, $11, $0e, $30, $04, $30, $07, $06, $05 - db $36, $03, $06, $06, $44, $04, $0b, $0e, $16, $0d, $00, $05, $32, $0d, $08, $06, $09, $0e, $44, $04, $09, $08, $22, $0d, $04, $0e, $09, $0e, $44, $04, $29, $08, $05, $0d, $00, $00 - db $3f, $06, $2c, $04, $34, $0d, $14, $05, $13, $02, $04, $02, $0c, $05, $3f, $04, $38, $0d, $02, $03, $29, $08, $32, $0d, $35, $05, $15, $06, $40, $05, $02, $03, $34, $07, $04, $0d - db $12, $03, $02, $04, $07, $07, $28, $04, $2c, $0d, $00, $05, $2c, $03, $12, $03, $2b, $06, $0a, $04, $06, $0d, $31, $0d, $2c, $03, $12, $03, $06, $04, $0d, $06, $28, $0b, $02, $05 - db $41, $04, $3c, $0b, $34, $0d, $40, $03, $00, $03, $0d, $0d, $13, $0c, $33, $08, $31, $0d, $1e, $09, $27, $07, $3b, $0d, $22, $08, $15, $04, $11, $0d, $2c, $03, $0c, $04, $3b, $0d - db $03, $0a, $3a, $0d, $2c, $04, $1c, $0b, $35, $07, $26, $0d, $24, $09, $43, $04, $26, $0d, $0f, $03, $1f, $07, $04, $05, $02, $03, $24, $08, $26, $0d, $3f, $03, $13, $04, $04, $05 - db $06, $05, $06, $05, $06, $05, $06, $05, $2c, $04, $03, $05, $06, $05, $06, $05, $06, $05, $06, $05, $07, $04, $03, $05, $06, $05, $06, $05, $06, $05, $06, $05, $33, $04, $03, $05 - db $27, $05, $01, $05, $00, $00, $18, $04, $19, $0d, $01, $05, $41, $05, $00, $00, $00, $00, $16, $06, $3d, $04, $19, $0d, $20, $04, $05, $05, $00, $00, $21, $03, $0c, $04, $19, $0d - db $03, $02, $43, $03, $27, $04, $28, $04, $2d, $0d, $00, $05, $30, $05, $04, $05, $02, $03, $38, $06, $3e, $04, $41, $0d, $16, $0e, $04, $05, $02, $03, $38, $06, $20, $04, $41, $0d - db $34, $03, $00, $03, $11, $0d, $03, $04, $1c, $0b, $07, $0d, $29, $05, $00, $05, $00, $00, $40, $04, $11, $0d, $3e, $0d, $03, $06, $11, $0d, $00, $05, $16, $0e, $0d, $06, $20, $06 - db $19, $03, $17, $0b, $20, $06, $1b, $0b, $06, $0c, $1a, $0b, $34, $03, $06, $04, $20, $06, $1b, $0b, $06, $0c, $1a, $0b, $34, $03, $36, $04, $20, $06, $1b, $0b, $06, $0c, $1a, $0b - db $0a, $03, $0c, $0c, $25, $0a, $21, $0e, $2c, $04, $03, $02, $10, $09, $03, $08, $09, $06, $0a, $03, $31, $04, $16, $0d, $27, $05, $17, $07, $04, $05, $02, $0c, $0a, $09, $2f, $0d - db $15, $02, $2c, $04, $03, $02, $24, $04, $39, $04, $0f, $0d, $1e, $02, $11, $02, $01, $05, $0d, $04, $39, $08, $05, $0d, $29, $05, $08, $02, $00, $05, $43, $03, $0c, $04, $3b, $0d - db $10, $0b, $04, $04, $00, $05, $05, $08, $21, $0d, $00, $00, $1f, $05, $01, $02, $00, $05, $18, $03, $3c, $08, $31, $0d, $02, $06, $23, $0b, $31, $03, $43, $03, $13, $07, $16, $0d - db $0f, $0e, $19, $0d, $00, $05, $0b, $0e, $2c, $04, $19, $0d, $0e, $0e, $2c, $04, $06, $05, $1f, $07, $19, $0d, $01, $05, $06, $05, $37, $03, $29, $04, $32, $0d, $19, $0d, $01, $05 - db $35, $03, $06, $04, $0d, $06, $29, $0b, $05, $0d, $00, $00, $16, $0e, $30, $04, $0b, $0d, $29, $08, $16, $0d, $00, $05, $11, $0e, $30, $04, $30, $07, $06, $05, $29, $08, $03, $05 - db $18, $04, $03, $05, $0b, $0d, $2c, $04, $1e, $0c, $01, $05, $1f, $05, $1d, $07, $1d, $07, $2c, $04, $21, $07, $01, $05, $0a, $05, $12, $02, $32, $0d, $11, $0c, $0c, $06, $1a, $0d - db $0c, $0c, $37, $03, $1a, $03, $40, $04, $23, $0b, $26, $0a, $3f, $06, $09, $04, $1b, $07, $37, $03, $22, $08, $27, $06, $04, $0e, $03, $05, $00, $00, $26, $0a, $3b, $08, $1b, $07 - db $18, $03, $1b, $08, $29, $0b, $40, $08, $32, $0d, $00, $05, $2f, $06, $29, $0b, $0b, $0d, $2f, $08, $23, $0d, $02, $0d, $35, $05, $13, $0e, $2e, $06, $22, $06, $2f, $08, $27, $06 - db $1c, $03, $02, $0e, $31, $03, $2a, $0d, $24, $0d, $00, $00, $18, $03, $0b, $0d, $30, $08, $40, $08, $04, $05, $00, $00, $1c, $05, $01, $05, $03, $03, $02, $0e, $27, $04, $34, $0d - db $33, $03, $30, $04, $2c, $04, $1c, $0b, $35, $07, $00, $05, $30, $04, $2c, $04, $20, $06, $1e, $09, $40, $06, $40, $04, $30, $04, $2c, $04, $20, $06, $1e, $09, $40, $06, $22, $07 - db $22, $0c, $22, $0c, $16, $0a, $35, $0d, $1c, $0b, $3f, $0d, $13, $05, $16, $0a, $40, $06, $23, $07, $06, $0d, $06, $05, $3f, $06, $16, $0a, $16, $0d, $37, $03, $2c, $04, $26, $07 - db $0e, $06, $05, $08, $04, $0d, $00, $00, $00, $00, $00, $00, $14, $05, $06, $05, $12, $02, $00, $00, $00, $00, $00, $00, $23, $05, $01, $06, $18, $0d, $00, $00, $00, $00, $00, $00 - db $18, $03, $27, $03, $03, $05, $20, $0b, $27, $06, $06, $05, $20, $0e, $12, $07, $2b, $0d, $2c, $03, $0e, $08, $35, $07, $37, $03, $27, $03, $03, $05, $42, $07, $2f, $08, $06, $05 - db $36, $03, $30, $04, $17, $04, $2c, $03, $0c, $04, $3b, $0d, $18, $03, $32, $07, $15, $0d, $35, $05, $0d, $07, $07, $0d, $09, $05, $06, $05, $0f, $0c, $09, $04, $07, $0d, $3b, $0d - db $0b, $05, $14, $06, $24, $04, $0a, $0d, $3c, $0d, $00, $05, $14, $05, $09, $02, $32, $0d, $1e, $06, $04, $07, $06, $0d, $1a, $05, $33, $04, $03, $05, $16, $02, $00, $02, $07, $05 - db $0a, $03, $32, $07, $0b, $0e, $22, $06, $2c, $04, $29, $0b, $0a, $03, $12, $0d, $24, $04, $1a, $0b, $33, $0d, $03, $0d, $0a, $03, $35, $04, $1b, $07, $06, $05, $1e, $06, $14, $07 - db $0e, $06, $2c, $04, $00, $0d, $06, $03, $31, $04, $04, $0d, $0c, $05, $12, $02, $00, $05, $40, $03, $09, $04, $01, $0d, $35, $05, $36, $08, $00, $05, $02, $03, $31, $04, $21, $0d - db $22, $05, $07, $0e, $30, $04, $c5, $00, $10, $02, $01, $05, $0c, $0c, $00, $01, $30, $04, $82, $00, $21, $04, $01, $05, $10, $01, $11, $05, $30, $04, $c3, $00, $3f, $04, $06, $05 - db $3a, $07, $3b, $07, $36, $03, $30, $04, $21, $04, $06, $0d, $17, $0e, $03, $05, $00, $00, $3f, $06, $21, $04, $21, $0d, $36, $05, $36, $03, $30, $04, $33, $06, $3f, $04, $0c, $0d - db $43, $03, $20, $04, $41, $0d, $17, $06, $06, $03, $0a, $04, $3a, $06, $13, $04, $04, $0d, $08, $06, $3f, $04, $31, $0d, $43, $03, $39, $04, $04, $05, $17, $06, $39, $04, $41, $0d - db $36, $03, $16, $04, $08, $06, $09, $08, $06, $0d, $00, $00, $1f, $0b, $03, $05, $12, $0e, $0f, $0e, $2c, $0d, $00, $05, $3a, $06, $16, $04, $38, $06, $38, $06, $2c, $0d, $00, $05 - db $11, $05, $25, $03, $33, $04, $2f, $08, $19, $0d, $00, $05, $11, $05, $25, $03, $3f, $06, $26, $04, $19, $0d, $00, $05, $11, $05, $21, $03, $35, $04, $14, $07, $19, $0d, $06, $05 - db $2c, $04, $0a, $0d, $04, $05, $33, $03, $29, $0b, $05, $0d, $00, $06, $04, $05, $09, $02, $33, $03, $07, $04, $35, $07, $33, $03, $3a, $08, $05, $0d, $3f, $06, $29, $08, $05, $0d - db $05, $03, $1b, $04, $41, $03, $39, $0b, $3a, $0b, $01, $05, $2c, $04, $03, $05, $00, $00, $40, $07, $3e, $0d, $00, $05, $00, $0e, $09, $05, $04, $05, $19, $09, $1d, $0b, $03, $05 - db $1c, $0c, $20, $06, $05, $08, $3e, $0d, $00, $05, $00, $00, $18, $03, $1f, $0e, $11, $0a, $1c, $0b, $15, $0b, $1c, $06, $03, $0e, $06, $0c, $21, $0c, $14, $0d, $06, $05, $1f, $08 - db $37, $03, $0e, $01, $08, $01, $19, $06, $27, $0b, $03, $02, $0e, $01, $08, $01, $1b, $08, $05, $08, $21, $0d, $00, $00, $36, $03, $33, $04, $04, $05, $00, $04, $41, $08, $3b, $0d - db $06, $02, $00, $05, $34, $03, $00, $03, $0d, $0d, $00, $05, $3c, $06, $05, $08, $16, $04, $2f, $08, $33, $0d, $02, $0d, $1c, $05, $00, $05, $18, $03, $05, $08, $1b, $04, $0c, $0d - db $2c, $04, $13, $09, $20, $06, $39, $03, $20, $04, $3c, $0d, $05, $03, $43, $04, $0b, $0d, $22, $04, $06, $0d, $31, $0d, $24, $08, $00, $05, $02, $03, $09, $08, $06, $0d, $3b, $0d - db $06, $03, $20, $04, $24, $0d, $24, $04, $10, $0b, $00, $05, $39, $07, $00, $05, $2a, $06, $04, $04, $3c, $04, $00, $00, $24, $04, $1c, $0b, $07, $0d, $2f, $08, $09, $06, $06, $05 - db $44, $07, $23, $0b, $33, $0d, $2c, $04, $20, $06, $24, $08, $24, $08, $00, $05, $0e, $0e, $12, $08, $09, $0b, $28, $06, $24, $08, $00, $05, $02, $03, $13, $06, $11, $08, $41, $0d - db $36, $03, $06, $06, $30, $04, $0f, $0b, $02, $0b, $3b, $0d, $31, $0d, $00, $05, $39, $03, $20, $04, $21, $0d, $00, $00, $04, $0e, $02, $05, $06, $06, $20, $0e, $0b, $06, $27, $06 - db $14, $05, $04, $02, $09, $0e, $08, $08, $2e, $08, $41, $0d, $34, $05, $2e, $08, $21, $0d, $3f, $03, $18, $08, $00, $05, $36, $05, $05, $02, $00, $05, $17, $06, $39, $04, $00, $05 - db $34, $03, $00, $03, $11, $0d, $41, $08, $0b, $06, $06, $04, $39, $07, $00, $05, $00, $00, $36, $03, $30, $04, $07, $08, $10, $05, $15, $08, $00, $05, $3a, $06, $1e, $06, $14, $0d - db $37, $05, $37, $05, $00, $05, $38, $05, $38, $05, $41, $05, $25, $05, $04, $05, $32, $05, $31, $05, $41, $05, $41, $05, $0f, $05, $04, $05, $0f, $05, $0f, $05, $16, $05, $01, $05 - db $1f, $0e, $36, $04, $40, $0d, $2f, $08, $1a, $0d, $00, $05, $21, $06, $35, $05, $24, $06, $1a, $06, $12, $0e, $00, $00, $1b, $05, $31, $06, $02, $05, $28, $0d, $27, $0d, $00, $00 - db $41, $08, $0b, $06, $37, $03, $08, $06, $20, $04, $3b, $0d, $15, $02, $16, $06, $26, $07, $13, $0c, $33, $08, $32, $0d, $2d, $07, $00, $05, $35, $03, $0b, $04, $28, $06, $06, $05 - db $0c, $08, $2c, $04, $1c, $0b, $06, $07, $0a, $0d, $03, $05, $30, $06, $06, $07, $00, $05, $2c, $04, $20, $06, $24, $07, $30, $06, $0b, $07, $00, $05, $2c, $04, $20, $06, $22, $07 - db $22, $0c, $22, $0c, $0a, $09, $04, $0b, $02, $07, $27, $06, $0f, $0c, $0a, $0a, $22, $06, $02, $07, $27, $06, $04, $05, $3a, $06, $0e, $0a, $22, $06, $05, $08, $02, $07, $04, $05 - db $2d, $0b, $02, $08, $37, $0d, $10, $05, $29, $07, $03, $05, $20, $0e, $0e, $0e, $0d, $06, $42, $07, $30, $08, $28, $06, $10, $05, $04, $05, $04, $05, $10, $05, $10, $05, $04, $05 - db $3f, $03, $16, $0e, $3f, $08, $0b, $0d, $2f, $08, $41, $0d, $34, $05, $00, $05, $02, $03, $3a, $06, $31, $07, $31, $0d, $21, $0e, $03, $05, $3f, $03, $16, $0e, $26, $07, $03, $05 - db $3a, $06, $2c, $03, $12, $03, $17, $0c, $28, $0b, $06, $0d, $3a, $06, $17, $0c, $23, $0b, $0d, $06, $2f, $08, $22, $0d, $14, $07, $04, $05, $17, $0c, $1c, $0b, $1b, $07, $00, $05 - db $1b, $02, $00, $05, $0c, $08, $2c, $04, $23, $0b, $32, $0d, $2b, $07, $1f, $04, $3b, $0d, $09, $07, $09, $07, $00, $05, $26, $05, $00, $05, $3f, $03, $22, $07, $d1, $00, $32, $0d +; Second argument points to an entry in Unknown_170470, to which the first argument is compared. + +BattleTowerTrainer1DataTable: + db $37, 3 + db $0e, 9 + db $25, 11 + db $1c, 13 + db $12, 13 + db $00, 5 + db $0e, 9 + db $1a, 11 + db $30, 4 + db $3f, 6 + db $20, 4 + db $21, 13 + db $0e, 9 + db $30, 4 + db $20, 4 + db $0b, 6 + db $34, 3 + db $06, 5 + +BattleTowerTrainer2DataTable: + db $36, 3 + db $ca, 0 + db $22, 8 + db $20, 4 + db $33, 13 + db $11, 13 + db $37, 5 + db $06, 5 + db $3f, 6 + db $ca, 0 + db $20, 4 + db $06, 13 + db $ca, 0 + db $21, 3 + db $09, 6 + db $12, 4 + db $28, 11 + db $0c, 13 + +BattleTowerTrainer3DataTable: + db $32, 6 + db $31, 4 + db $02, 2 + db $03, 4 + db $22, 2 + db $00, 5 + db $40, 4 + db $2d, 6 + db $13, 13 + db $18, 3 + db $3f, 4 + db $13, 13 + db $1a, 12 + db $33, 4 + db $32, 13 + db $09, 6 + db $22, 2 + db $13, 13 + +BattleTowerTrainer4DataTable: + db $22, 12 + db $22, 12 + db $0a, 9 + db $0b, 8 + db $2f, 6 + db $22, 7 + db $22, 6 + db $2c, 4 + db $1a, 6 + db $0d, 7 + db $3f, 13 + db $00, 5 + db $0b, 8 + db $09, 6 + db $2c, 4 + db $1f, 14 + db $1c, 11 + db $41, 11 + +BattleTowerTrainer5DataTable: + db $a3, 0 + db $41, 3 + db $1f, 4 + db $29, 0 + db $1c, 4 + db $03, 2 + db $3d, 5 + db $38, 6 + db $71, 0 + db $18, 3 + db $30, 6 + db $53, 0 + db $1e, 5 + db $b9, 0 + db $21, 13 + db $30, 6 + db $d1, 0 + db $0a, 6 + +BattleTowerTrainer6DataTable: + db $13, 2 + db $31, 6 + db $04, 2 + db $1c, 4 + db $0d, 13 + db $31, 13 + db $39, 7 + db $31, 6 + db $24, 7 + db $3d, 4 + db $40, 4 + db $30, 13 + db $03, 6 + db $08, 5 + db $02, 5 + db $14, 7 + db $08, 5 + db $1a, 13 + +BattleTowerTrainer7DataTable: + db $0d, 2 + db $07, 2 + db $00, 5 + db $22, 2 + db $10, 11 + db $0a, 13 + db $16, 2 + db $01, 2 + db $08, 13 + db $2c, 4 + db $23, 7 + db $23, 13 + db $16, 2 + db $01, 2 + db $08, 13 + db $02, 3 + db $20, 4 + db $23, 13 + +BattleTowerTrainer8DataTable: + db $1e, 2 + db $22, 2 + db $00, 5 + db $20, 8 + db $2c, 4 + db $03, 2 + db $1d, 5 + db $41, 8 + db $41, 8 + db $35, 5 + db $40, 11 + db $00, 5 + db $0b, 5 + db $0b, 2 + db $00, 5 + db $04, 4 + db $14, 8 + db $00, 5 + +BattleTowerTrainer9DataTable: + db $06, 12 + db $09, 6 + db $00, 0 + db $0b, 9 + db $1e, 12 + db $37, 13 + db $41, 3 + db $06, 4 + db $34, 6 + db $22, 12 + db $15, 9 + db $23, 13 + db $02, 3 + db $22, 8 + db $41, 13 + db $26, 4 + db $31, 13 + db $01, 5 + +BattleTowerTrainer10DataTable: + db $22, 12 + db $30, 4 + db $01, 5 + db $2c, 4 + db $23, 7 + db $01, 5 + db $37, 3 + db $3d, 4 + db $3c, 13 + db $1c, 3 + db $29, 8 + db $3c, 13 + db $18, 4 + db $30, 13 + db $06, 5 + db $14, 7 + db $30, 13 + db $06, 5 + +BattleTowerTrainer11DataTable: + db $0e, 6 + db $04, 5 + db $2c, 4 + db $1e, 12 + db $38, 13 + db $00, 5 + db $3f, 3 + db $3f, 6 + db $20, 4 + db $33, 13 + db $04, 13 + db $00, 0 + db $20, 4 + db $26, 13 + db $04, 5 + db $0c, 4 + db $26, 13 + db $04, 5 + +BattleTowerTrainer12DataTable: + db $18, 2 + db $33, 3 + db $28, 4 + db $2c, 4 + db $09, 7 + db $03, 5 + db $30, 4 + db $08, 9 + db $00, 5 + db $1a, 2 + db $32, 3 + db $00, 5 + db $3f, 5 + db $26, 7 + db $01, 5 + db $26, 5 + db $0f, 2 + db $00, 5 + +BattleTowerTrainer13DataTable: + db $3a, 11 + db $3a, 11 + db $00, 5 + db $42, 3 + db $19, 8 + db $30, 4 + db $39, 3 + db $13, 6 + db $13, 6 + db $19, 8 + db $21, 13 + db $00, 0 + db $39, 3 + db $09, 2 + db $00, 5 + db $40, 3 + db $3a, 8 + db $2a, 13 + +BattleTowerTrainer14DataTable: + db $31, 5 + db $11, 14 + db $30, 4 + db $1b, 8 + db $07, 8 + db $0c, 13 + db $1b, 2 + db $1b, 2 + db $01, 5 + db $15, 2 + db $0a, 4 + db $0e, 13 + db $22, 5 + db $31, 6 + db $02, 5 + db $1d, 6 + db $3b, 7 + db $0e, 13 + +BattleTowerTrainer15DataTable: + db $1b, 2 + db $2c, 4 + db $0d, 13 + db $34, 3 + db $00, 3 + db $11, 13 + db $1b, 8 + db $31, 4 + db $0b, 13 + db $2f, 8 + db $01, 5 + db $00, 0 + db $06, 5 + db $10, 5 + db $0f, 6 + db $11, 13 + db $06, 5 + db $00, 0 + +BattleTowerTrainer16DataTable: + db $42, 3 + db $30, 4 + db $1f, 11 + db $16, 14 + db $10, 7 + db $34, 13 + db $17, 14 + db $04, 13 + db $00, 0 + db $42, 3 + db $19, 8 + db $30, 4 + db $0c, 5 + db $35, 5 + db $01, 5 + db $1e, 6 + db $36, 8 + db $41, 13 + +BattleTowerTrainer17DataTable: + db $18, 3 + db $42, 3 + db $43, 4 + db $3a, 11 + db $3b, 11 + db $03, 5 + db $2c, 5 + db $06, 5 + db $1b, 3 + db $43, 4 + db $39, 11 + db $3c, 4 + db $14, 11 + db $0f, 5 + db $06, 5 + db $40, 3 + db $3f, 4 + db $20, 14 + +BattleTowerTrainer18DataTable: + db $0c, 5 + db $36, 7 + db $30, 4 + db $27, 11 + db $10, 8 + db $31, 13 + db $11, 14 + db $30, 4 + db $41, 3 + db $07, 13 + db $2f, 8 + db $03, 5 + db $06, 5 + db $3f, 6 + db $11, 14 + db $30, 4 + db $30, 7 + db $06, 5 + +BattleTowerTrainer19DataTable: + db $36, 3 + db $06, 6 + db $44, 4 + db $0b, 14 + db $16, 13 + db $00, 5 + db $32, 13 + db $08, 6 + db $09, 14 + db $44, 4 + db $09, 8 + db $22, 13 + db $04, 14 + db $09, 14 + db $44, 4 + db $29, 8 + db $05, 13 + db $00, 0 + +BattleTowerTrainer20DataTable: + db $3f, 6 + db $2c, 4 + db $34, 13 + db $14, 5 + db $13, 2 + db $04, 2 + db $0c, 5 + db $3f, 4 + db $38, 13 + db $02, 3 + db $29, 8 + db $32, 13 + db $35, 5 + db $15, 6 + db $40, 5 + db $02, 3 + db $34, 7 + db $04, 13 + +BattleTowerTrainer21DataTable: + db $12, 3 + db $02, 4 + db $07, 7 + db $28, 4 + db $2c, 13 + db $00, 5 + db $2c, 3 + db $12, 3 + db $2b, 6 + db $0a, 4 + db $06, 13 + db $31, 13 + db $2c, 3 + db $12, 3 + db $06, 4 + db $0d, 6 + db $28, 11 + db $02, 5 + +BattleTowerTrainer22DataTable: + db $41, 4 + db $3c, 11 + db $34, 13 + db $40, 3 + db $00, 3 + db $0d, 13 + db $13, 12 + db $33, 8 + db $31, 13 + db $1e, 9 + db $27, 7 + db $3b, 13 + db $22, 8 + db $15, 4 + db $11, 13 + db $2c, 3 + db $0c, 4 + db $3b, 13 + +BattleTowerTrainer23DataTable: + db $03, 10 + db $3a, 13 + db $2c, 4 + db $1c, 11 + db $35, 7 + db $26, 13 + db $24, 9 + db $43, 4 + db $26, 13 + db $0f, 3 + db $1f, 7 + db $04, 5 + db $02, 3 + db $24, 8 + db $26, 13 + db $3f, 3 + db $13, 4 + db $04, 5 + +BattleTowerTrainer24DataTable: + db $06, 5 + db $06, 5 + db $06, 5 + db $06, 5 + db $2c, 4 + db $03, 5 + db $06, 5 + db $06, 5 + db $06, 5 + db $06, 5 + db $07, 4 + db $03, 5 + db $06, 5 + db $06, 5 + db $06, 5 + db $06, 5 + db $33, 4 + db $03, 5 + +BattleTowerTrainer25DataTable: + db $27, 5 + db $01, 5 + db $00, 0 + db $18, 4 + db $19, 13 + db $01, 5 + db $41, 5 + db $00, 0 + db $00, 0 + db $16, 6 + db $3d, 4 + db $19, 13 + db $20, 4 + db $05, 5 + db $00, 0 + db $21, 3 + db $0c, 4 + db $19, 13 + +BattleTowerTrainer26DataTable: + db $03, 2 + db $43, 3 + db $27, 4 + db $28, 4 + db $2d, 13 + db $00, 5 + db $30, 5 + db $04, 5 + db $02, 3 + db $38, 6 + db $3e, 4 + db $41, 13 + db $16, 14 + db $04, 5 + db $02, 3 + db $38, 6 + db $20, 4 + db $41, 13 + +BattleTowerTrainer27DataTable: + db $34, 3 + db $00, 3 + db $11, 13 + db $03, 4 + db $1c, 11 + db $07, 13 + db $29, 5 + db $00, 5 + db $00, 0 + db $40, 4 + db $11, 13 + db $3e, 13 + db $03, 6 + db $11, 13 + db $00, 5 + db $16, 14 + db $0d, 6 + db $20, 6 + +BattleTowerTrainer28DataTable: + db $19, 3 + db $17, 11 + db $20, 6 + db $1b, 11 + db $06, 12 + db $1a, 11 + db $34, 3 + db $06, 4 + db $20, 6 + db $1b, 11 + db $06, 12 + db $1a, 11 + db $34, 3 + db $36, 4 + db $20, 6 + db $1b, 11 + db $06, 12 + db $1a, 11 + +BattleTowerTrainer29DataTable: + db $0a, 3 + db $0c, 12 + db $25, 10 + db $21, 14 + db $2c, 4 + db $03, 2 + db $10, 9 + db $03, 8 + db $09, 6 + db $0a, 3 + db $31, 4 + db $16, 13 + db $27, 5 + db $17, 7 + db $04, 5 + db $02, 12 + db $0a, 9 + db $2f, 13 + +BattleTowerTrainer30DataTable: + db $15, 2 + db $2c, 4 + db $03, 2 + db $24, 4 + db $39, 4 + db $0f, 13 + db $1e, 2 + db $11, 2 + db $01, 5 + db $0d, 4 + db $39, 8 + db $05, 13 + db $29, 5 + db $08, 2 + db $00, 5 + db $43, 3 + db $0c, 4 + db $3b, 13 + +BattleTowerTrainer31DataTable: + db $10, 11 + db $04, 4 + db $00, 5 + db $05, 8 + db $21, 13 + db $00, 0 + db $1f, 5 + db $01, 2 + db $00, 5 + db $18, 3 + db $3c, 8 + db $31, 13 + db $02, 6 + db $23, 11 + db $31, 3 + db $43, 3 + db $13, 7 + db $16, 13 + +BattleTowerTrainer32DataTable: + db $0f, 14 + db $19, 13 + db $00, 5 + db $0b, 14 + db $2c, 4 + db $19, 13 + db $0e, 14 + db $2c, 4 + db $06, 5 + db $1f, 7 + db $19, 13 + db $01, 5 + db $06, 5 + db $37, 3 + db $29, 4 + db $32, 13 + db $19, 13 + db $01, 5 + +BattleTowerTrainer33DataTable: + db $35, 3 + db $06, 4 + db $0d, 6 + db $29, 11 + db $05, 13 + db $00, 0 + db $16, 14 + db $30, 4 + db $0b, 13 + db $29, 8 + db $16, 13 + db $00, 5 + db $11, 14 + db $30, 4 + db $30, 7 + db $06, 5 + db $29, 8 + db $03, 5 + +BattleTowerTrainer34DataTable: + db $18, 4 + db $03, 5 + db $0b, 13 + db $2c, 4 + db $1e, 12 + db $01, 5 + db $1f, 5 + db $1d, 7 + db $1d, 7 + db $2c, 4 + db $21, 7 + db $01, 5 + db $0a, 5 + db $12, 2 + db $32, 13 + db $11, 12 + db $0c, 6 + db $1a, 13 + +BattleTowerTrainer35DataTable: + db $0c, 12 + db $37, 3 + db $1a, 3 + db $40, 4 + db $23, 11 + db $26, 10 + db $3f, 6 + db $09, 4 + db $1b, 7 + db $37, 3 + db $22, 8 + db $27, 6 + db $04, 14 + db $03, 5 + db $00, 0 + db $26, 10 + db $3b, 8 + db $1b, 7 + +BattleTowerTrainer36DataTable: + db $18, 3 + db $1b, 8 + db $29, 11 + db $40, 8 + db $32, 13 + db $00, 5 + db $2f, 6 + db $29, 11 + db $0b, 13 + db $2f, 8 + db $23, 13 + db $02, 13 + db $35, 5 + db $13, 14 + db $2e, 6 + db $22, 6 + db $2f, 8 + db $27, 6 + +BattleTowerTrainer37DataTable: + db $1c, 3 + db $02, 14 + db $31, 3 + db $2a, 13 + db $24, 13 + db $00, 0 + db $18, 3 + db $0b, 13 + db $30, 8 + db $40, 8 + db $04, 5 + db $00, 0 + db $1c, 5 + db $01, 5 + db $03, 3 + db $02, 14 + db $27, 4 + db $34, 13 + +BattleTowerTrainer38DataTable: + db $33, 3 + db $30, 4 + db $2c, 4 + db $1c, 11 + db $35, 7 + db $00, 5 + db $30, 4 + db $2c, 4 + db $20, 6 + db $1e, 9 + db $40, 6 + db $40, 4 + db $30, 4 + db $2c, 4 + db $20, 6 + db $1e, 9 + db $40, 6 + db $22, 7 + +BattleTowerTrainer39DataTable: + db $22, 12 + db $22, 12 + db $16, 10 + db $35, 13 + db $1c, 11 + db $3f, 13 + db $13, 5 + db $16, 10 + db $40, 6 + db $23, 7 + db $06, 13 + db $06, 5 + db $3f, 6 + db $16, 10 + db $16, 13 + db $37, 3 + db $2c, 4 + db $26, 7 + +BattleTowerTrainer40DataTable: + db $0e, 6 + db $05, 8 + db $04, 13 + db $00, 0 + db $00, 0 + db $00, 0 + db $14, 5 + db $06, 5 + db $12, 2 + db $00, 0 + db $00, 0 + db $00, 0 + db $23, 5 + db $01, 6 + db $18, 13 + db $00, 0 + db $00, 0 + db $00, 0 + +BattleTowerTrainer41DataTable: + db $18, 3 + db $27, 3 + db $03, 5 + db $20, 11 + db $27, 6 + db $06, 5 + db $20, 14 + db $12, 7 + db $2b, 13 + db $2c, 3 + db $0e, 8 + db $35, 7 + db $37, 3 + db $27, 3 + db $03, 5 + db $42, 7 + db $2f, 8 + db $06, 5 + +BattleTowerTrainer42DataTable: + db $36, 3 + db $30, 4 + db $17, 4 + db $2c, 3 + db $0c, 4 + db $3b, 13 + db $18, 3 + db $32, 7 + db $15, 13 + db $35, 5 + db $0d, 7 + db $07, 13 + db $09, 5 + db $06, 5 + db $0f, 12 + db $09, 4 + db $07, 13 + db $3b, 13 + +BattleTowerTrainer43DataTable: + db $0b, 5 + db $14, 6 + db $24, 4 + db $0a, 13 + db $3c, 13 + db $00, 5 + db $14, 5 + db $09, 2 + db $32, 13 + db $1e, 6 + db $04, 7 + db $06, 13 + db $1a, 5 + db $33, 4 + db $03, 5 + db $16, 2 + db $00, 2 + db $07, 5 + +BattleTowerTrainer44DataTable: + db $0a, 3 + db $32, 7 + db $0b, 14 + db $22, 6 + db $2c, 4 + db $29, 11 + db $0a, 3 + db $12, 13 + db $24, 4 + db $1a, 11 + db $33, 13 + db $03, 13 + db $0a, 3 + db $35, 4 + db $1b, 7 + db $06, 5 + db $1e, 6 + db $14, 7 + +BattleTowerTrainer45DataTable: + db $0e, 6 + db $2c, 4 + db $00, 13 + db $06, 3 + db $31, 4 + db $04, 13 + db $0c, 5 + db $12, 2 + db $00, 5 + db $40, 3 + db $09, 4 + db $01, 13 + db $35, 5 + db $36, 8 + db $00, 5 + db $02, 3 + db $31, 4 + db $21, 13 + +BattleTowerTrainer46DataTable: + db $22, 5 + db $07, 14 + db $30, 4 + db $c5, 0 + db $10, 2 + db $01, 5 + db $0c, 12 + db $00, 1 + db $30, 4 + db $82, 0 + db $21, 4 + db $01, 5 + db $10, 1 + db $11, 5 + db $30, 4 + db $c3, 0 + db $3f, 4 + db $06, 5 + +BattleTowerTrainer47DataTable: + db $3a, 7 + db $3b, 7 + db $36, 3 + db $30, 4 + db $21, 4 + db $06, 13 + db $17, 14 + db $03, 5 + db $00, 0 + db $3f, 6 + db $21, 4 + db $21, 13 + db $36, 5 + db $36, 3 + db $30, 4 + db $33, 6 + db $3f, 4 + db $0c, 13 + +BattleTowerTrainer48DataTable: + db $43, 3 + db $20, 4 + db $41, 13 + db $17, 6 + db $06, 3 + db $0a, 4 + db $3a, 6 + db $13, 4 + db $04, 13 + db $08, 6 + db $3f, 4 + db $31, 13 + db $43, 3 + db $39, 4 + db $04, 5 + db $17, 6 + db $39, 4 + db $41, 13 + +BattleTowerTrainer49DataTable: + db $36, 3 + db $16, 4 + db $08, 6 + db $09, 8 + db $06, 13 + db $00, 0 + db $1f, 11 + db $03, 5 + db $12, 14 + db $0f, 14 + db $2c, 13 + db $00, 5 + db $3a, 6 + db $16, 4 + db $38, 6 + db $38, 6 + db $2c, 13 + db $00, 5 + +BattleTowerTrainer50DataTable: + db $11, 5 + db $25, 3 + db $33, 4 + db $2f, 8 + db $19, 13 + db $00, 5 + db $11, 5 + db $25, 3 + db $3f, 6 + db $26, 4 + db $19, 13 + db $00, 5 + db $11, 5 + db $21, 3 + db $35, 4 + db $14, 7 + db $19, 13 + db $06, 5 + +BattleTowerTrainer51DataTable: + db $2c, 4 + db $0a, 13 + db $04, 5 + db $33, 3 + db $29, 11 + db $05, 13 + db $00, 6 + db $04, 5 + db $09, 2 + db $33, 3 + db $07, 4 + db $35, 7 + db $33, 3 + db $3a, 8 + db $05, 13 + db $3f, 6 + db $29, 8 + db $05, 13 + +BattleTowerTrainer52DataTable: + db $05, 3 + db $1b, 4 + db $41, 3 + db $39, 11 + db $3a, 11 + db $01, 5 + db $2c, 4 + db $03, 5 + db $00, 0 + db $40, 7 + db $3e, 13 + db $00, 5 + db $00, 14 + db $09, 5 + db $04, 5 + db $19, 9 + db $1d, 11 + db $03, 5 + +BattleTowerTrainer53DataTable: + db $1c, 12 + db $20, 6 + db $05, 8 + db $3e, 13 + db $00, 5 + db $00, 0 + db $18, 3 + db $1f, 14 + db $11, 10 + db $1c, 11 + db $15, 11 + db $1c, 6 + db $03, 14 + db $06, 12 + db $21, 12 + db $14, 13 + db $06, 5 + db $1f, 8 + +BattleTowerTrainer54DataTable: + db $37, 3 + db $0e, 1 + db $08, 1 + db $19, 6 + db $27, 11 + db $03, 2 + db $0e, 1 + db $08, 1 + db $1b, 8 + db $05, 8 + db $21, 13 + db $00, 0 + db $36, 3 + db $33, 4 + db $04, 5 + db $00, 4 + db $41, 8 + db $3b, 13 + +BattleTowerTrainer55DataTable: + db $06, 2 + db $00, 5 + db $34, 3 + db $00, 3 + db $0d, 13 + db $00, 5 + db $3c, 6 + db $05, 8 + db $16, 4 + db $2f, 8 + db $33, 13 + db $02, 13 + db $1c, 5 + db $00, 5 + db $18, 3 + db $05, 8 + db $1b, 4 + db $0c, 13 + +BattleTowerTrainer56DataTable: + db $2c, 4 + db $13, 9 + db $20, 6 + db $39, 3 + db $20, 4 + db $3c, 13 + db $05, 3 + db $43, 4 + db $0b, 13 + db $22, 4 + db $06, 13 + db $31, 13 + db $24, 8 + db $00, 5 + db $02, 3 + db $09, 8 + db $06, 13 + db $3b, 13 + +BattleTowerTrainer57DataTable: + db $06, 3 + db $20, 4 + db $24, 13 + db $24, 4 + db $10, 11 + db $00, 5 + db $39, 7 + db $00, 5 + db $2a, 6 + db $04, 4 + db $3c, 4 + db $00, 0 + db $24, 4 + db $1c, 11 + db $07, 13 + db $2f, 8 + db $09, 6 + db $06, 5 + +BattleTowerTrainer58DataTable: + db $44, 7 + db $23, 11 + db $33, 13 + db $2c, 4 + db $20, 6 + db $24, 8 + db $24, 8 + db $00, 5 + db $0e, 14 + db $12, 8 + db $09, 11 + db $28, 6 + db $24, 8 + db $00, 5 + db $02, 3 + db $13, 6 + db $11, 8 + db $41, 13 + +BattleTowerTrainer59DataTable: + db $36, 3 + db $06, 6 + db $30, 4 + db $0f, 11 + db $02, 11 + db $3b, 13 + db $31, 13 + db $00, 5 + db $39, 3 + db $20, 4 + db $21, 13 + db $00, 0 + db $04, 14 + db $02, 5 + db $06, 6 + db $20, 14 + db $0b, 6 + db $27, 6 + +BattleTowerTrainer60DataTable: + db $14, 5 + db $04, 2 + db $09, 14 + db $08, 8 + db $2e, 8 + db $41, 13 + db $34, 5 + db $2e, 8 + db $21, 13 + db $3f, 3 + db $18, 8 + db $00, 5 + db $36, 5 + db $05, 2 + db $00, 5 + db $17, 6 + db $39, 4 + db $00, 5 + +BattleTowerTrainer61DataTable: + db $34, 3 + db $00, 3 + db $11, 13 + db $41, 8 + db $0b, 6 + db $06, 4 + db $39, 7 + db $00, 5 + db $00, 0 + db $36, 3 + db $30, 4 + db $07, 8 + db $10, 5 + db $15, 8 + db $00, 5 + db $3a, 6 + db $1e, 6 + db $14, 13 + +BattleTowerTrainer62DataTable: + db $37, 5 + db $37, 5 + db $00, 5 + db $38, 5 + db $38, 5 + db $41, 5 + db $25, 5 + db $04, 5 + db $32, 5 + db $31, 5 + db $41, 5 + db $41, 5 + db $0f, 5 + db $04, 5 + db $0f, 5 + db $0f, 5 + db $16, 5 + db $01, 5 + +BattleTowerTrainer63DataTable: + db $1f, 14 + db $36, 4 + db $40, 13 + db $2f, 8 + db $1a, 13 + db $00, 5 + db $21, 6 + db $35, 5 + db $24, 6 + db $1a, 6 + db $12, 14 + db $00, 0 + db $1b, 5 + db $31, 6 + db $02, 5 + db $28, 13 + db $27, 13 + db $00, 0 + +BattleTowerTrainer64DataTable: + db $41, 8 + db $0b, 6 + db $37, 3 + db $08, 6 + db $20, 4 + db $3b, 13 + db $15, 2 + db $16, 6 + db $26, 7 + db $13, 12 + db $33, 8 + db $32, 13 + db $2d, 7 + db $00, 5 + db $35, 3 + db $0b, 4 + db $28, 6 + db $06, 5 + +BattleTowerTrainer65DataTable: + db $0c, 8 + db $2c, 4 + db $1c, 11 + db $06, 7 + db $0a, 13 + db $03, 5 + db $30, 6 + db $06, 7 + db $00, 5 + db $2c, 4 + db $20, 6 + db $24, 7 + db $30, 6 + db $0b, 7 + db $00, 5 + db $2c, 4 + db $20, 6 + db $22, 7 + +BattleTowerTrainer66DataTable: + db $22, 12 + db $22, 12 + db $0a, 9 + db $04, 11 + db $02, 7 + db $27, 6 + db $0f, 12 + db $0a, 10 + db $22, 6 + db $02, 7 + db $27, 6 + db $04, 5 + db $3a, 6 + db $0e, 10 + db $22, 6 + db $05, 8 + db $02, 7 + db $04, 5 + +BattleTowerTrainer67DataTable: + db $2d, 11 + db $02, 8 + db $37, 13 + db $10, 5 + db $29, 7 + db $03, 5 + db $20, 14 + db $0e, 14 + db $0d, 6 + db $42, 7 + db $30, 8 + db $28, 6 + db $10, 5 + db $04, 5 + db $04, 5 + db $10, 5 + db $10, 5 + db $04, 5 + +BattleTowerTrainer68DataTable: + db $3f, 3 + db $16, 14 + db $3f, 8 + db $0b, 13 + db $2f, 8 + db $41, 13 + db $34, 5 + db $00, 5 + db $02, 3 + db $3a, 6 + db $31, 7 + db $31, 13 + db $21, 14 + db $03, 5 + db $3f, 3 + db $16, 14 + db $26, 7 + db $03, 5 + +BattleTowerTrainer69DataTable: + db $3a, 6 + db $2c, 3 + db $12, 3 + db $17, 12 + db $28, 11 + db $06, 13 + db $3a, 6 + db $17, 12 + db $23, 11 + db $0d, 6 + db $2f, 8 + db $22, 13 + db $14, 7 + db $04, 5 + db $17, 12 + db $1c, 11 + db $1b, 7 + db $00, 5 + +BattleTowerTrainer70DataTable: + db $1b, 2 + db $00, 5 + db $0c, 8 + db $2c, 4 + db $23, 11 + db $32, 13 + db $2b, 7 + db $1f, 4 + db $3b, 13 + db $09, 7 + db $09, 7 + db $00, 5 + db $26, 5 + db $00, 5 + db $3f, 3 + db $22, 7 + db $d1, 0 + db $32, 13 +BattleTowerTrainerDataEnd: diff --git a/engine/save.asm b/engine/save.asm index 68189b7d1..20f59c042 100644 --- a/engine/save.asm +++ b/engine/save.asm @@ -288,13 +288,13 @@ SaveGameData_: ; 14c10 callba BackupPartyMonMail callba BackupMobileEventIndex callba SaveRTC - ld a, BANK(sSaveType) + ld a, BANK(sBattleTowerChallengeState) call GetSRAMBank - ld a, [sSaveType] + ld a, [sBattleTowerChallengeState] cp $4 jr nz, .ok xor a - ld [sSaveType], a + ld [sBattleTowerChallengeState], a .ok call CloseSRAM ret @@ -438,10 +438,10 @@ Unknown_14d2c: ; 14d2c ; 14d5c Function14d5c: ; 14d5c - ld a, BANK(sSaveType) + ld a, BANK(sBattleTowerChallengeState) call GetSRAMBank xor a - ld [sSaveType], a + ld [sBattleTowerChallengeState], a jp CloseSRAM ; 14d68 @@ -788,13 +788,13 @@ LoadPlayerData: ; 14fd7 (5:4fd7) ld bc, wMapDataEnd - wMapData call CopyBytes call CloseSRAM - ld a, BANK(sSaveType) + ld a, BANK(sBattleTowerChallengeState) call GetSRAMBank - ld a, [sSaveType] + ld a, [sBattleTowerChallengeState] cp $4 jr nz, .not_4 ld a, $3 - ld [sSaveType], a + ld [sBattleTowerChallengeState], a .not_4 call CloseSRAM ret diff --git a/maps/BattleTower1F.asm b/maps/BattleTower1F.asm index 9a678ca55..41f44dd7a 100644 --- a/maps/BattleTower1F.asm +++ b/maps/BattleTower1F.asm @@ -27,7 +27,7 @@ BattleTower1F_MapScriptHeader: end .priorityjump1: - priorityjump UnknownScript_0x9e555 + priorityjump BattleTower_LeftWithoutSaving writebyte BATTLE_TOWER_ACTION_04 special BattleTowerAction writebyte BATTLE_TOWER_ACTION_06 @@ -119,7 +119,7 @@ Script_GivePlayerHisPrize: ; 0x9e47a special BattleTowerAction writebyte BATTLE_TOWER_ACTION_1B special BattleTowerAction - if_equal $12, Script_YourPackIsStuffedFull + if_equal POTION, Script_YourPackIsStuffedFull itemtotext $0, $1 giveitem ITEM_FROM_MEM, 5 writetext Text_PlayerGotFive @@ -236,9 +236,9 @@ UnknownScript_0x9e550: loadmovesprites end -UnknownScript_0x9e555: +BattleTower_LeftWithoutSaving: loadfont - writetext UnknownText_0x9ee18 + writetext Text_BattleTower_LeftWithoutSaving closetext jump UnknownScript_0x9e4b0 @@ -610,7 +610,7 @@ Text_BattleTowerRules: ; 0x9ed72 line "placed on them." done -UnknownText_0x9ee18: +Text_BattleTower_LeftWithoutSaving: text "Excuse me!" line "You didn't SAVE" diff --git a/misc/battle_tower_5c.asm b/misc/battle_tower_5c.asm index f4f0e2a2b..1c9c7436b 100755 --- a/misc/battle_tower_5c.asm +++ b/misc/battle_tower_5c.asm @@ -1,3 +1,183 @@ +Function1700b0: ; 1700b0 + call Function17021e + callba Function118121 + ret +; 1700ba + +Function1700ba: ; 1700ba + call Function17021e + callba Function11811a + ret +; 1700c4 + +Function1700c4: ; 1700c4 + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + + call Function17042c + ld a, $5 + call GetSRAMBank + ld a, $1 + ld [$be45], a + xor a + ld [$be46], a + ld hl, $dffc + ld de, $aa41 + ld bc, $0004 + call CopyBytes + ld hl, $d202 + ld de, $aa8e + ld bc, $0594 + call CopyBytes + ld hl, $aa5d + ld a, [hl] + inc [hl] + inc hl + sla a + sla a + ld e, a + ld d, $0 + add hl, de + ld e, l + ld d, h + ld hl, $dffc + ld bc, $0004 + call CopyBytes + call CloseSRAM + pop af + ld [rSVBK], a + ret +; 170114 + +Function170114: ; 170114 + call Function17021e + call Function170121 + callba Function11805f + ret +; 170121 + +Function170121: ; 170121 + ld a, $5 + call GetSRAMBank + ld hl, $a948 + ld de, $c608 + ld bc, $00f6 + call CopyBytes + call CloseSRAM + call Function170c8b + ret +; 170139 + +Function170139: ; 170139 + ld a, $5 + call GetSRAMBank + ld de, $aa41 + ld h, $0 + ld l, h + ld bc, $03e8 + call Function17020c + ld bc, $0064 + call Function17020c + ld bc, $000a + call Function17020c + ld a, [de] + ld c, a + ld b, $0 + add hl, bc + call CloseSRAM + ld a, h + ld [$c608], a + ld a, l + ld [$c608 + 1], a + ld hl, $c628 + ld a, [PlayerID] + ld [hli], a + ld a, [PlayerID + 1] + ld [hli], a + ld a, [wSecretID] + ld [hli], a + ld a, [wSecretID + 1] + ld [hli], a + ld e, l + ld d, h + ld hl, PlayerName + ld bc, $0005 ; Japanese name length + call CopyBytes + ld bc, PlayerID + ld de, PlayerGender + callba Function4e929 + ld de, $c62c + 5 + ld a, c + ld [de], a + inc de + ld a, $df + ld [wcd49], a + ld a, $dc + ld [wcd4a], a + ld a, $41 + ld [wcd4b], a + ld a, $de + ld [wcd4c], a + ld a, $3 +.asm_1701ac + push af + ld a, [wcd49] + ld l, a + ld a, [wcd4a] + ld h, a + ld bc, $0030 + call CopyBytes + ld a, l + ld [wcd49], a + ld a, h + ld [wcd4a], a + ld a, [wcd4b] + ld l, a + ld a, [wcd4c] + ld h, a + ld bc, $0006 + call CopyBytes + ld a, l + ld [wcd4b], a + ld a, h + ld [wcd4c], a + pop af + dec a + jr nz, .asm_1701ac + ld a, $4 + call GetSRAMBank + ld hl, $a013 + ld bc, $0024 + call CopyBytes + call CloseSRAM + ld a, $5 + call GetSRAMBank + ld hl, $a894 + ld bc, $0006 + call CopyBytes + ld hl, $c608 + ld de, $a948 + ld bc, $00f6 + call CopyBytes + call CloseSRAM + ret +; 17020c + +Function17020c: ; 17020c + ld a, [de] + inc de + and a + ret z + +.loop + add hl, bc + dec a + jr nz, .loop + ret +; 170215 + BattleTowerBattle: ; 170215 xor a ld [wcf63], a @@ -64,7 +244,9 @@ RunBattleTowerTrainer: ; 17024d callba HealParty call ReadBTTrainerParty call Clears5_a89a + predef StartBattle + callba LoadPokemonData callba HealParty ld a, [wBattleResult] @@ -323,3 +505,1135 @@ endr BT_ChrisName: ; 170426 db "CHRIS@" ; 17042c + +Function17042c: ; 17042c + ld hl, w3_d202TrainerData + ld a, 7 +.loop + push af + push hl + ld c, BATTLETOWER_TRAINERDATALENGTH / 2 +.loop2 + ; First byte is a comparison value. + ld a, [hli] + ld b, a + ; Second byte is a lookup index. + ld a, [hli] + and a + jr z, .empty + cp $f + jr nc, .copy_data + + push hl + ld hl, Unknown_170470 + dec a + ld e, a + ld d, 0 + add hl, de + ld a, [hl] + pop hl + + ; If Unknown_170470[a-1] <= b, overwrite the current trainer's data + ; with Unknown17047e, and exit the inner loop. + cp b + jr c, .copy_data + jr z, .copy_data + jr .next_iteration + +.empty + ; If a == 0 and b >= $fc, overwrite the current trainer's data with + ; Unknown17047e, and exit the inner loop. + ld a, b + cp $fc + jr nc, .copy_data + +.next_iteration + dec c + jr nz, .loop2 + jr .next_trainer + +.copy_data + pop de + push de + ld hl, Unknown_17047e + ld bc, BATTLETOWER_TRAINERDATALENGTH + call CopyBytes + +.next_trainer + pop hl + ld de, BATTLE_TOWER_STRUCT_LENGTH + add hl, de + pop af + dec a + jr nz, .loop + ret +; 170470 + +Unknown_170470: + db $12 + db $24 + db $45 + db $45 + db $42 + db $42 + db $45 + db $42 + db $27 + db $27 + db $45 + db $27 + db $42 + db $24 + +Unknown_17047e: +; see data/battle_tower_2.asm + db $03, 4 + db $05, 8 + db $03, 5 + db $0e, 6 + db $03, 2 + db $00, 0 + db $39, 7 + db $07, 4 + db $00, 5 + db $04, 7 + db $01, 5 + db $00, 0 + db $0f, 5 + db $14, 7 + db $05, 5 + db $11, 12 + db $0c, 6 + db $06, 4 + + +CopyBTTrainer_FromBT_OT_TowBT_OTTemp: ; 1704a2 +; copy the BattleTower-Trainer data that lies at 'BT_OTTrainer' to 'wBT_OTTemp' + ld a, [rSVBK] + push af + ld a, $3 ; BANK(BT_OTTrainer) + ld [rSVBK], a + + ld hl, BT_OTTrainer ; $d100 + ld de, wBT_OTTemp ; $c608 + ld bc, BATTLE_TOWER_STRUCT_LENGTH + call CopyBytes + + pop af + ld [rSVBK], a + + ld a, BANK(sBattleTowerChallengeState) + call GetSRAMBank + ld a, $2 + ld [sBattleTowerChallengeState], a + ld hl, sNrOfBeatenBattleTowerTrainers + inc [hl] + call CloseSRAM +SkipBattleTowerTrainer: ; 1704c9 + ret +; 1704ca +Function1704ca: ; 1704ca + ld a, [$be46] + cp $7 + jr c, .asm_1704d3 + ld a, $6 + +.asm_1704d3 + ld hl, $afce + ld de, -$e0 +.asm_1704d9 + and a + jr z, .asm_1704e0 + add hl, de + dec a + jr .asm_1704d9 + +.asm_1704e0 + ret +; 1704e1 + +Function1704e1: ; 1704e1 + call SpeechTextBox + call FadeToMenu + call Function17021e + call Function1704f1 + call ReturnToCallingMenu + ret +; 1704f1 + +Function1704f1: ; 1704f1 + call ClearBGPalettes + call ClearSprites + call ClearScreen +.asm_1704fa + call JoyTextDelay + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_17050f + call Function170510 + callba ReloadMapPart + jr .asm_1704fa + +.asm_17050f + ret +; 170510 + +Function170510: ; 170510 + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, Jumptable_17051f +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 17051f + +Jumptable_17051f: ; 17051f + dw Function170525 + dw Function170571 + dw Function170577 +; 170525 + +Function170525: ; 170525 + ld a, $5 + call GetSRAMBank + + ld hl, $a89c + ld de, StringBuffer3 + ld bc, $0016 + call CopyBytes + + ld hl, $a8b2 + ld de, $c608 + ld bc, $0096 + call CopyBytes + + call CloseSRAM + hlcoord 1, 1 + ld de, StringBuffer3 + call PlaceString + hlcoord 1, 3 + ld de, String_170676 + call PlaceString + hlcoord 4, 3 + ld de, StringBuffer4 + call PlaceString + hlcoord 8, 3 + ld de, String_17067a + call PlaceString + call Function1705b7 + call Function1705f0 + jr Function1705b2 + + +Function170571: + call SetPalettes + call Function1705b2 + + +Function170577: + ld hl, hJoyPressed + ld a, [hl] + and $1 + jr nz, .asm_1705ac + ld a, [hl] + and $2 + jr nz, .asm_1705ac + ld a, [hl] + and $40 + jr nz, .asm_17058f + ld a, [hl] + and $80 + jr nz, .asm_17059d + ret + +.asm_17058f + ld a, [wcf64] + and a + ret z + sub $f + ld [wcf64], a + call Function1705f0 + ret + +.asm_17059d + ld a, [wcf64] + cp $3c + ret z + add $f + ld [wcf64], a + call Function1705f0 + ret + +.asm_1705ac + ld hl, wJumptableIndex + set 7, [hl] + ret + +Function1705b2: + ld hl, wJumptableIndex + inc [hl] + ret +; 1705b7 + +Function1705b7: ; 1705b7 + hlcoord 0, 4 + ld a, $79 + ld [hli], a + ld c, $12 +.asm_1705bf + ld a, $7a + ld [hli], a + dec c + jr nz, .asm_1705bf + ld a, $7b + ld [hli], a + ld de, $0014 + ld c, $c +.asm_1705cd + ld a, $7c + ld [hl], a + add hl, de + dec c + jr nz, .asm_1705cd + ld a, $7d + ld [hli], a + ld c, $12 +.asm_1705d9 + ld a, $7a + ld [hli], a + dec c + jr nz, .asm_1705d9 + ld a, $7e + ld [hl], a + ld de, $ffec + add hl, de + ld c, $c +.asm_1705e8 + ld a, $7c + ld [hl], a + add hl, de + dec c + jr nz, .asm_1705e8 + ret +; 1705f0 + +Function1705f0: ; 1705f0 + call Function17064b + call Function17065d + ld a, $50 + ld [wcd4e], a + ld hl, $c608 + ld a, [wcf64] + ld c, a + xor a + ld b, a + add hl, bc + push hl + pop bc + hlcoord 1, 6 + ld a, $6 +.asm_17060c + push af + push hl + ld a, $3 +.asm_170610 + push af + ld de, wcd49 + ld a, [bc] + and a + jr z, .asm_170625 + ld a, $5 +.asm_17061a + push af + ld a, [bc] + ld [de], a + inc bc + inc de + pop af + dec a + jr nz, .asm_17061a + jr .asm_170631 + +.asm_170625 + ld a, $5 +.asm_170627 + push af + ld a, $e3 + ld [de], a + inc de + inc bc + pop af + dec a + jr nz, .asm_170627 + +.asm_170631 + ld de, wcd49 + push bc + call PlaceString + ld de, $0006 + add hl, de + pop bc + pop af + dec a + jr nz, .asm_170610 + pop hl + ld de, $0028 + add hl, de + pop af + dec a + jr nz, .asm_17060c + ret +; 17064b + +Function17064b: ; 17064b + hlcoord 1, 5 + xor a + ld b, $c +.asm_170651 + ld c, $12 +.asm_170653 + ld [hli], a + dec c + jr nz, .asm_170653 +rept 2 + inc hl +endr + dec b + jr nz, .asm_170651 + ret +; 17065d + +Function17065d: ; 17065d + ld a, [wcf64] + and a + jr z, .asm_170669 + hlcoord 18, 5 + ld a, $61 + ld [hl], a + +.asm_170669 + ld a, [wcf64] + cp $3c + ret z + hlcoord 18, 16 + ld a, $ee + ld [hl], a + ret +; 170676 + +String_170676: ; 170676 + db "ルーム@" +; 17067a + +String_17067a: ; 17067a + db "れきだいりーダーいちらん@" +; 170687 + +BattleTowerAction: ; 170687 + ld a, [ScriptVar] + ld e, a + ld d, 0 + ld hl, .jumptable +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 170696 + + +.jumptable: ; 170696 (5c:4696) + dw Function17075f ; 0x00 + dw Function170788 ; 0x01 + dw Function170778 ; 0x02 + dw Function170799 ; 0x03 + dw Function17079d ; 0x04 + dw Function1707ac ; 0x05 + dw Function1707f4 ; 0x06 + dw Function170868 ; 0x07 + dw Function170881 ; 0x08 + dw Function17089a ; 0x09 + dw Function1708b1 ; 0x0a + dw CheckMobileEventIndex ; 0x0b + dw Function1708c8 ; 0x0c + dw Function1708f0 ; 0x0d + dw Function17093c ; 0x0e + dw Function1709aa ; 0x0f + dw Function1709bb ; 0x10 + dw Function170a9c ; 0x11 + dw Function170aa0 ; 0x12 + dw Function170aaf ; 0x13 + dw Function170abe ; 0x14 + dw Function170ad7 ; 0x15 + dw Function170807 ; 0x16 + dw Function17081d ; 0x17 + dw Function170ae8 ; 0x18 + dw Function170b16 ; 0x19 + dw ResetBattleTowerTrainersSRAM ; 0x1a + dw Function1706ee ; 0x1b + dw Function17071b ; 0x1c + dw Function170729 ; 0x1d + dw Function17073e ; 0x1e + dw Function170737 ; 0x1f + + +; Reset the save memory for BattleTower-Trainers (Counter and all 7 TrainerBytes) +ResetBattleTowerTrainersSRAM: ; 1706d6 (5c:46d6) BattleTowerAction $1a + ld a, BANK(sBTTrainers) + call GetSRAMBank + + ld a, $ff + ld hl, sBTTrainers + ld bc, BATTLETOWER_NROFTRAINERS + call ByteFill + + xor a + ld [sNrOfBeatenBattleTowerTrainers], a + + call CloseSRAM + + ret + +Function1706ee: ; 1706ee (5c:46ee) BattleTowerAction $1b + ld a, BANK(sBattleTowerReward) + call GetSRAMBank + + ld a, [sBattleTowerReward] + call CloseSRAM + ld [ScriptVar], a + ld hl, NumItems + ld a, [hli] + cp MAX_ITEMS + ret c + ld b, MAX_ITEMS + ld a, [ScriptVar] + ld c, a +.loop + ld a, [hli] + cp c + jr nz, .next + ld a, [hl] + cp 95 + ret c +.next + inc hl + dec b + jr nz, .loop + ld a, POTION + ld [ScriptVar], a + ret + +Function17071b: ; 17071b (5c:471b) BattleTowerAction $1c + ld a, BANK(sBattleTowerChallengeState) + call GetSRAMBank + ld a, $3 + ld [sBattleTowerChallengeState], a + call CloseSRAM + ret + +Function170729: ; 170729 (5c:4729) BattleTowerAction $1d + ld a, BANK(sBattleTowerChallengeState) + call GetSRAMBank + ld a, $4 + ld [sBattleTowerChallengeState], a + call CloseSRAM + ret + +Function170737: ; 170737 (5c:4737) BattleTowerAction $1e + callba SaveOptions + ret + +Function17073e: ; 17073e (5c:473e) BattleTowerAction $1f +; Generate a random stat boosting item. +.loop + call Random + ld a, [hRandomAdd] + and $7 + cp 6 + jr c, .okay + sub 6 +.okay + add HP_UP + cp LUCKY_PUNCH + jr z, .loop + push af + ld a, BANK(sBattleTowerReward) + call GetSRAMBank + pop af + ld [sBattleTowerReward], a + call CloseSRAM + ret + +Function17075f: ; 17075f (5c:475f) BattleTowerAction $00 + call Function17089a + ld a, [ScriptVar] + and a + ret z + + ld a, BANK(sbe4f) + call GetSRAMBank + ld a, [sbe4f] + and $2 + ld [ScriptVar], a + call CloseSRAM + ret + +Function170778: ; 170778 (5c:4778) BattleTowerAction $02 + ld hl, sBattleTowerChallengeState + ld a, BANK(sBattleTowerChallengeState) + call GetSRAMBank + ld a, [hl] + ld [ScriptVar], a + call CloseSRAM + ret + +Function170788: ; 170788 (5c:4788) BattleTowerAction $01 + ld a, BANK(sbe4f) + call GetSRAMBank + ld a, [sbe4f] + or $2 + ld [sbe4f], a + call CloseSRAM + ret + +Function170799: ; 170799 (5c:4799) BattleTowerAction $03 + ld c, $1 + jr asm_17079f + +Function17079d: ; 17079d (5c:479d) BattleTowerAction $04 + ld c, $0 +asm_17079f: ; 17079f (5c:479f) + ld a, BANK(sBattleTowerChallengeState) + call GetSRAMBank + ld a, c + ld [sBattleTowerChallengeState], a + call CloseSRAM + ret + +Function1707ac: ; 1707ac (5c:47ac) BattleTowerAction $05 + ld a, $5 + call GetSRAMBank + ld a, [$aa8c] + ld b, a + ld a, [$be46] + ld [ScriptVar], a + call CloseSRAM + and a + ret z + ld a, b + cp $2 + jr nc, .asm_1707ef + push bc + call UpdateTime + pop bc + ld a, $5 + call GetSRAMBank + ld a, [$aa8b] + call CloseSRAM + ld c, a + ld a, [CurDay] + sub c + jr c, .asm_1707e5 + cp $8 + jr nc, .asm_1707ef + ld a, b + and a + jr nz, .asm_1707ef + ret +.asm_1707e5 + ld hl, CurDay + ld a, $8c + sub c + add [hl] + cp $8 + ret c +.asm_1707ef + ld a, $8 + ld [ScriptVar], a + +Function1707f4: ; 1707f4 (5c:47f4) BattleTowerAction $06 + ld a, $5 + call GetSRAMBank + xor a + ld [$be46], a + ld [$aa8b], a + ld [$aa8c], a + call CloseSRAM + ret + +Function170807: ; 170807 (5c:4807) BattleTowerAction $16 + call UpdateTime + ld a, $5 + call GetSRAMBank + ld a, [CurDay] + ld [$b2f9], a + xor a + ld [$b2fa], a + call CloseSRAM + ret + +Function17081d: ; 17081d (5c:481d) BattleTowerAction $17 + xor a + ld [ScriptVar], a + ld a, $5 + call GetSRAMBank + ld a, [$b2f9] + ld c, a + ld a, [$b2fa] + ld b, a + call CloseSRAM + cp $2 + jr nc, .asm_170853 + push bc + call UpdateTime + pop bc + ld a, [CurDay] + sub c + jr c, .asm_170849 + cp $b + jr nc, .asm_170853 + ld a, b + and a + jr nz, .asm_170853 + ret +.asm_170849 + ld hl, CurDay + ld a, $8c + sub c + add [hl] + cp $b + ret c +.asm_170853 + ld a, $1 + ld [ScriptVar], a + ld a, $5 + call GetSRAMBank + xor a + ld [$b2f9], a + ld [$b2fa], a + call CloseSRAM + ret + +Function170868: ; 170868 (5c:4868) BattleTowerAction $07 + ld a, BANK(sbe47) + call GetSRAMBank + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld a, [wd000 + $800] + ld [sbe47], a + pop af + ld [rSVBK], a + call CloseSRAM + ret + +Function170881: ; 170881 (5c:4881) BattleTowerAction $08 + ld a, BANK(sbe47) + call GetSRAMBank + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld a, [sbe47] + ld [wd000 + $800], a + pop af + ld [rSVBK], a + call CloseSRAM + ret + +Function17089a: ; 17089a BattleTowerAction $09 + ld a, [wSaveFileExists] + and a + jr z, .nope + callba Function14bcb + jr z, .yes + xor a + jr .nope + +.yes + ld a, $1 + +.nope + ld [ScriptVar], a + ret +; 1708b1 + + +Function1708b1: ; 1708b1 (5c:48b1) BattleTowerAction $0a + xor a + ld [MusicFade], a + call MaxVolume + ret + +CheckMobileEventIndex: ; 1708b9 (5c:48b9) BattleTowerAction $0b something to do with GS Ball + ld a, BANK(sMobileEventIndex) + call GetSRAMBank + ld a, [sMobileEventIndex] + ld [ScriptVar], a + call CloseSRAM + ret + +Function1708c8: ; 1708c8 (5c:48c8) BattleTowerAction $0c + call UpdateTime + ld a, $5 + call GetSRAMBank + ld a, [CurDay] + ld [$aa8b], a + xor a + ld [$aa8c], a + ld a, [$aa5d] + cp $2 + jr nc, .asm_1708ec + ld a, [CurDay] + ld [$aa48], a + ld a, $1 + ld [$aa47], a +.asm_1708ec + call CloseSRAM + ret + +Function1708f0: ; 1708f0 (5c:48f0) BattleTowerAction $0d + xor a + ld [ScriptVar], a + call UpdateTime + ld a, $5 + call GetSRAMBank + ld a, [$aa48] + ld c, a + ld a, [$aa47] + call CloseSRAM + and a + ret z + ld hl, CurDay + ld a, c + cp [hl] + jr nz, Function170923 + ld a, $5 + call GetSRAMBank + ld a, [$aa5d] + call CloseSRAM + cp $5 + ret c + ld a, $1 + ld [ScriptVar], a + ret + + +Function170923: ; 170923 + ld a, $5 + call GetSRAMBank + xor a + ld [$aa48], a + ld [$aa47], a + ld hl, $aa5d + ld bc, $0011 + call ByteFill + call CloseSRAM + ret +; 17093c + + +Function17093c: ; 17093c (5c:493c) BattleTowerAction $0e + xor a + ld [ScriptVar], a + ld a, EGG_TICKET + ld [CurItem], a + ld hl, NumItems + call CheckItem + ret nc + ld a, [PartyCount] + ld b, 0 + ld c, a + ld hl, PartySpecies +.loop + ld a, [hli] + cp EGG + jr nz, .not_egg + push hl + ld hl, PartyMonOT ; wddff (aliases: PartyMonOT) + ld de, $6 + ld a, b + and a + jr z, .skip +.loop2 + add hl, de + dec a + jr nz, .loop2 +.skip + ld de, String_1709a4 + ld a, $6 +.asm_17096e + push af + ld a, [de] + inc de + cp [hl] + inc hl + jr nz, .asm_17099d + pop af + dec a + jr nz, .asm_17096e +rept 4 + dec hl +endr + ld a, $50 +rept 2 + ld [hli], a +endr + pop hl + ld a, EGG_TICKET + ld [CurItem], a + ld a, $1 + ld [wItemQuantityChangeBuffer], a + ld a, $ff + ld [wd107], a + ld hl, NumItems + call TossItem + ld a, $1 + ld [ScriptVar], a + ret + +.asm_17099d + pop af + pop hl +.not_egg + inc b + dec c + jr nz, .loop + ret +; 1709a4 (5c:49a4) + +String_1709a4: ; 1709a4 + db "なぞナゾ@@" + +Function1709aa: ; 1709aa (5c:49aa) BattleTowerAction $0f + ld a, [rSVBK] + push af + ld a, BANK(w3_d090) + ld [rSVBK], a + ld a, [w3_d090] + ld [ScriptVar], a + pop af + ld [rSVBK], a + ret + +Function1709bb: ; 1709bb (5c:49bb) BattleTowerAction $10 + xor a + ld [ScriptVar], a + ld a, $5 + call GetSRAMBank + ld a, [$a800] + call CloseSRAM + cp 6 + jr nc, .invalid + ld e, a + ld d, 0 + ld hl, Jumptable_1709e7 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +.invalid + ld a, $5 + call GetSRAMBank + xor a + ld [$a800], a + call CloseSRAM + ret +; 1709e7 (5c:49e7) + +Jumptable_1709e7: ; 1709e7 + dw Function170a00 + dw Function170a00 + dw Function1709f3 + dw Function1709f3 + dw Function170a01 + dw Function170a33 +; 1709f3 + +Function1709f3: ; 1709f3 + ld a, $5 + call GetSRAMBank + ld a, $1 + ld [$a800], a + call CloseSRAM + +Function170a00: ; 170a00 + ret +; 170a01 + +Function170a01: ; 170a01 + ld a, $5 + call GetSRAMBank + ld hl, $b023 + ld de, $c608 + ld bc, $0069 + call CopyBytes + ld a, [$a825] + ld [wcd30], a + ld a, [$a826] + ld [wcd31], a + call CloseSRAM + callba Function11b6b4 + callba Function17d0f3 + ld a, $1 + ld [ScriptVar], a + ret +; 170a33 + +Function170a33: ; 170a33 + ld a, $0 + call GetSRAMBank + ld hl, wRTC + ld de, $c608 + ld bc, $0004 + call CopyBytes + call CloseSRAM + ld a, $5 + call GetSRAMBank + ld hl, $b08c + ld de, $c608 + ld c, $4 +.asm_170a54 + ld a, [de] + inc de + cp [hl] + jr nz, .asm_170a78 + inc hl + dec c + jr nz, .asm_170a54 + call CloseSRAM + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetMapTrigger + ld a, d + or e + jr z, .asm_170a72 + ld a, [de] + and a + ret nz + +.asm_170a72 + ld a, $1 + ld [ScriptVar], a + ret + +.asm_170a78 + call CloseSRAM + ld a, $5 + call GetSRAMBank + xor a + ld [$a800], a + call CloseSRAM + ld [ScriptVar], a + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetMapTrigger + ld a, d + or e + jr z, .asm_170a9b + xor a + ld [de], a + +.asm_170a9b + ret +; 170a9c + +Function170a9c: ; 170a9c (5c:4a9c) BattleTowerAction $11 + ld c, $0 + jr asm_170aa2 + +Function170aa0: ; 170aa0 (5c:4aa0) BattleTowerAction $12 + ld c, $1 +asm_170aa2: ; 170aa2 (5c:4aa2) + ld a, $5 + call GetSRAMBank + ld a, c + ld [$aa8d], a + call CloseSRAM + ret + +Function170aaf: ; 170aaf (5c:4aaf) BattleTowerAction $13 + ld a, $5 + call GetSRAMBank + ld a, [$aa8d] + ld [ScriptVar], a + call CloseSRAM + ret + +Function170abe: ; 170abe (5c:4abe) BattleTowerAction $14 + call Function17089a + ld a, [ScriptVar] + and a + ret z + ld a, BANK(sbe4f) + call GetSRAMBank + ld a, [sbe4f] + and $1 + ld [ScriptVar], a + call CloseSRAM + ret + +Function170ad7: ; 170ad7 (5c:4ad7) BattleTowerAction $15 + ld a, BANK(sbe4f) + call GetSRAMBank + ld a, [sbe4f] + or $1 + ld [sbe4f], a + call CloseSRAM + ret + +Function170ae8: ; 170ae8 (5c:4ae8) BattleTowerAction $18 + ld a, $5 + call GetSRAMBank + ld a, [$b2fb] + call CloseSRAM + ld c, $a + call SimpleDivide + ld a, b + ld [wcd4f], a + xor a + ld [ScriptVar], a + callba Function119d93 + ret nc + ld a, $5 + call GetSRAMBank + ld a, [$b2fb] + call CloseSRAM + ld [ScriptVar], a + ret + +Function170b16: ; 170b16 (5c:4b16) BattleTowerAction $19 + ld a, $5 + call GetSRAMBank + ld a, [$b2fb] + call CloseSRAM + ld c, 10 + call SimpleDivide + ld a, b + ld [wcd4f], a + xor a + ld [ScriptVar], a + callba Function119dd1 + ret nc + ld a, $5 + call GetSRAMBank + ld a, [$b2fb] + call CloseSRAM + ld [ScriptVar], a + ret diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm index a1f7c8a0f..ac44da8cd 100755 --- a/misc/mobile_46.asm +++ b/misc/mobile_46.asm @@ -175,7 +175,7 @@ Function118125: ; 118125 cp [hl] jr nz, .asm_11813e xor a - ld [UnknBGPals], a + ld [w3_d000], a pop af ld [rSVBK], a call Function118452 @@ -197,33 +197,37 @@ Function118180: ; 118180 ld de, $a89c ld bc, $0016 call CopyBytes + ld a, [rSVBK] push af ld a, $3 ld [rSVBK], a - ld de, $d202 + + ld de, w3_d202 ld c, $96 - callba Function17d0b3 - jr c, .asm_1181d0 - ld de, $d202 - ld bc, $0196 - callba Function17d1e1 - jr c, .asm_1181d0 - ld hl, $d202 + callba CheckStringForErrors_IgnoreTerminator + jr c, .return_d3 + + ld de, w3_d202 + lb bc, 1, $96 + callba CheckStringContainsLessThanBNextCharacters + jr c, .return_d3 + + ld hl, w3_d202 ld de, $a8b2 ld bc, $0096 call CopyBytes -.asm_1181c9 +.reset_banks pop af ld [rSVBK], a call CloseSRAM ret -.asm_1181d0 +.return_d3 ld a, $d3 ld [wc300], a ld [ScriptVar], a - jr .asm_1181c9 + jr .reset_banks ; 1181da Function1181da: ; 1181da @@ -7549,8 +7553,8 @@ Function11b6b4: ; 11b6b4 .asm_11b70f ld de, $c63d - ld bc, $0105 - callba Function17d1e1 + lb bc, 1, 5 + callba CheckStringContainsLessThanBNextCharacters jr nc, .asm_11b723 callba Function17d187 @@ -7563,8 +7567,8 @@ Function11b6b4: ; 11b6b4 .asm_11b736 ld de, $c642 - ld bc, $0105 - callba Function17d1e1 + lb bc, 1, 5 + callba CheckStringContainsLessThanBNextCharacters jr nc, .asm_11b74a callba Function17d199 @@ -7577,8 +7581,8 @@ Function11b6b4: ; 11b6b4 .asm_11b75d ld de, $c647 - ld bc, $0221 - callba Function17d1e1 + lb bc, 2, $21 + callba CheckStringContainsLessThanBNextCharacters jr c, .asm_11b770 ld a, b cp $2 @@ -7596,8 +7600,8 @@ Function11b6b4: ; 11b6b4 .asm_11b789 ld de, $c668 - ld bc, $0105 - callba Function17d1e1 + lb bc, 1, 5 + callba CheckStringContainsLessThanBNextCharacters jr nc, .asm_11b79d callba Function17d1c9 diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm index 0393d0e94..ebebb302c 100755 --- a/misc/mobile_5c.asm +++ b/misc/mobile_5c.asm @@ -73,1288 +73,8 @@ Function17005a: ; 17005a ret ; 1700b0 -Function1700b0: ; 1700b0 - call Function17021e - callba Function118121 - ret -; 1700ba - -Function1700ba: ; 1700ba - call Function17021e - callba Function11811a - ret -; 1700c4 - -Function1700c4: ; 1700c4 - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a - - call Function17042c - ld a, $5 - call GetSRAMBank - ld a, $1 - ld [$be45], a - xor a - ld [$be46], a - ld hl, $dffc - ld de, $aa41 - ld bc, $0004 - call CopyBytes - ld hl, $d202 - ld de, $aa8e - ld bc, $0594 - call CopyBytes - ld hl, $aa5d - ld a, [hl] - inc [hl] - inc hl - sla a - sla a - ld e, a - ld d, $0 - add hl, de - ld e, l - ld d, h - ld hl, $dffc - ld bc, $0004 - call CopyBytes - call CloseSRAM - pop af - ld [rSVBK], a - ret -; 170114 - -Function170114: ; 170114 - call Function17021e - call Function170121 - callba Function11805f - ret -; 170121 - -Function170121: ; 170121 - ld a, $5 - call GetSRAMBank - ld hl, $a948 - ld de, $c608 - ld bc, $00f6 - call CopyBytes - call CloseSRAM - call Function170c8b - ret -; 170139 - -Function170139: ; 170139 - ld a, $5 - call GetSRAMBank - ld de, $aa41 - ld h, $0 - ld l, h - ld bc, $03e8 - call Function17020c - ld bc, $0064 - call Function17020c - ld bc, $000a - call Function17020c - ld a, [de] - ld c, a - ld b, $0 - add hl, bc - call CloseSRAM - ld a, h - ld [$c608], a - ld a, l - ld [$c608 + 1], a - ld hl, $c628 - ld a, [PlayerID] - ld [hli], a - ld a, [PlayerID + 1] - ld [hli], a - ld a, [wSecretID] - ld [hli], a - ld a, [wSecretID + 1] - ld [hli], a - ld e, l - ld d, h - ld hl, PlayerName - ld bc, $0005 ; Japanese name length - call CopyBytes - ld bc, PlayerID - ld de, PlayerGender - callba Function4e929 - ld de, $c62c + 5 - ld a, c - ld [de], a - inc de - ld a, $df - ld [wcd49], a - ld a, $dc - ld [wcd4a], a - ld a, $41 - ld [wcd4b], a - ld a, $de - ld [wcd4c], a - ld a, $3 -.asm_1701ac - push af - ld a, [wcd49] - ld l, a - ld a, [wcd4a] - ld h, a - ld bc, $0030 - call CopyBytes - ld a, l - ld [wcd49], a - ld a, h - ld [wcd4a], a - ld a, [wcd4b] - ld l, a - ld a, [wcd4c] - ld h, a - ld bc, $0006 - call CopyBytes - ld a, l - ld [wcd4b], a - ld a, h - ld [wcd4c], a - pop af - dec a - jr nz, .asm_1701ac - ld a, $4 - call GetSRAMBank - ld hl, $a013 - ld bc, $0024 - call CopyBytes - call CloseSRAM - ld a, $5 - call GetSRAMBank - ld hl, $a894 - ld bc, $0006 - call CopyBytes - ld hl, $c608 - ld de, $a948 - ld bc, $00f6 - call CopyBytes - call CloseSRAM - ret -; 17020c - -Function17020c: ; 17020c - ld a, [de] - inc de - and a - ret z - -.loop - add hl, bc - dec a - jr nz, .loop - ret -; 170215 - INCLUDE "misc/battle_tower_5c.asm" - -Function17042c: ; 17042c - ld hl, w3_d2be - ld a, 7 -.loop - push af - push hl - ld c, 18 -.loop2 - ld a, [hli] - ld b, a - ld a, [hli] - and a - jr z, .empty - cp $f - jr nc, .exit_inner_loop - push hl - ld hl, Unknown_170470 - dec a - ld e, a - ld d, 0 - add hl, de - ld a, [hl] - pop hl - cp b - jr c, .exit_inner_loop - jr z, .exit_inner_loop - jr .next_iteration - -.empty - ld a, b - cp $fc - jr nc, .exit_inner_loop - -.next_iteration - dec c - jr nz, .loop2 - jr .dont_copy - -.exit_inner_loop - pop de - push de - ld hl, Unknown_17047e - ld bc, BATTLETOWER_TRAINERDATALENGTH - call CopyBytes - -.dont_copy - pop hl - ld de, $00e0 - add hl, de - pop af - dec a - jr nz, .loop - ret -; 170470 - -Unknown_170470: - db $12, $24, $45, $45, $42, $42, $45, $42, $27, $27, $45, $27, $42, $24 - -Unknown_17047e: - db $03, $04, $05, $08 - db $03, $05, $0e, $06 - db $03, $02, $00, $00 - db $39, $07, $07, $04 - db $00, $05, $04, $07 - db $01, $05, $00, $00 - db $0f, $05, $14, $07 - db $05, $05, $11, $0c - db $0c, $06, $06, $04 - - -CopyBTTrainer_FromBT_OT_TowBT_OTTemp: ; 1704a2 -; copy the BattleTower-Trainer data that lies at 'BT_OTTrainer' to 'wBT_OTTemp' - ld a, [rSVBK] - push af - ld a, $3 ; BANK(BT_OTTrainer) - ld [rSVBK], a - - ld hl, BT_OTTrainer ; $d100 - ld de, wBT_OTTemp ; $c608 - ld bc, BATTLE_TOWER_STRUCT_LENGTH - call CopyBytes - - pop af - ld [rSVBK], a - - ld a, BANK(sSaveType) - call GetSRAMBank - ld a, $2 - ld [sSaveType], a - ld hl, sNrOfBeatenBattleTowerTrainers - inc [hl] - call CloseSRAM -SkipBattleTowerTrainer: ; 1704c9 - ret -; 1704ca - -Function1704ca: ; 1704ca - ld a, [$be46] - cp $7 - jr c, .asm_1704d3 - ld a, $6 - -.asm_1704d3 - ld hl, $afce - ld de, -$e0 -.asm_1704d9 - and a - jr z, .asm_1704e0 - add hl, de - dec a - jr .asm_1704d9 - -.asm_1704e0 - ret -; 1704e1 - -Function1704e1: ; 1704e1 - call SpeechTextBox - call FadeToMenu - call Function17021e - call Function1704f1 - call ReturnToCallingMenu - ret -; 1704f1 - -Function1704f1: ; 1704f1 - call ClearBGPalettes - call ClearSprites - call ClearScreen -.asm_1704fa - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_17050f - call Function170510 - callba ReloadMapPart - jr .asm_1704fa - -.asm_17050f - ret -; 170510 - -Function170510: ; 170510 - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_17051f -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 17051f - -Jumptable_17051f: ; 17051f - dw Function170525 - dw Function170571 - dw Function170577 -; 170525 - -Function170525: ; 170525 - ld a, $5 - call GetSRAMBank - - ld hl, $a89c - ld de, StringBuffer3 - ld bc, $0016 - call CopyBytes - - ld hl, $a8b2 - ld de, $c608 - ld bc, $0096 - call CopyBytes - - call CloseSRAM - hlcoord 1, 1 - ld de, StringBuffer3 - call PlaceString - hlcoord 1, 3 - ld de, String_170676 - call PlaceString - hlcoord 4, 3 - ld de, StringBuffer4 - call PlaceString - hlcoord 8, 3 - ld de, String_17067a - call PlaceString - call Function1705b7 - call Function1705f0 - jr Function1705b2 - - -Function170571: - call SetPalettes - call Function1705b2 - - -Function170577: - ld hl, hJoyPressed - ld a, [hl] - and $1 - jr nz, .asm_1705ac - ld a, [hl] - and $2 - jr nz, .asm_1705ac - ld a, [hl] - and $40 - jr nz, .asm_17058f - ld a, [hl] - and $80 - jr nz, .asm_17059d - ret - -.asm_17058f - ld a, [wcf64] - and a - ret z - sub $f - ld [wcf64], a - call Function1705f0 - ret - -.asm_17059d - ld a, [wcf64] - cp $3c - ret z - add $f - ld [wcf64], a - call Function1705f0 - ret - -.asm_1705ac - ld hl, wJumptableIndex - set 7, [hl] - ret - -Function1705b2: - ld hl, wJumptableIndex - inc [hl] - ret -; 1705b7 - -Function1705b7: ; 1705b7 - hlcoord 0, 4 - ld a, $79 - ld [hli], a - ld c, $12 -.asm_1705bf - ld a, $7a - ld [hli], a - dec c - jr nz, .asm_1705bf - ld a, $7b - ld [hli], a - ld de, $0014 - ld c, $c -.asm_1705cd - ld a, $7c - ld [hl], a - add hl, de - dec c - jr nz, .asm_1705cd - ld a, $7d - ld [hli], a - ld c, $12 -.asm_1705d9 - ld a, $7a - ld [hli], a - dec c - jr nz, .asm_1705d9 - ld a, $7e - ld [hl], a - ld de, $ffec - add hl, de - ld c, $c -.asm_1705e8 - ld a, $7c - ld [hl], a - add hl, de - dec c - jr nz, .asm_1705e8 - ret -; 1705f0 - -Function1705f0: ; 1705f0 - call Function17064b - call Function17065d - ld a, $50 - ld [wcd4e], a - ld hl, $c608 - ld a, [wcf64] - ld c, a - xor a - ld b, a - add hl, bc - push hl - pop bc - hlcoord 1, 6 - ld a, $6 -.asm_17060c - push af - push hl - ld a, $3 -.asm_170610 - push af - ld de, wcd49 - ld a, [bc] - and a - jr z, .asm_170625 - ld a, $5 -.asm_17061a - push af - ld a, [bc] - ld [de], a - inc bc - inc de - pop af - dec a - jr nz, .asm_17061a - jr .asm_170631 - -.asm_170625 - ld a, $5 -.asm_170627 - push af - ld a, $e3 - ld [de], a - inc de - inc bc - pop af - dec a - jr nz, .asm_170627 - -.asm_170631 - ld de, wcd49 - push bc - call PlaceString - ld de, $0006 - add hl, de - pop bc - pop af - dec a - jr nz, .asm_170610 - pop hl - ld de, $0028 - add hl, de - pop af - dec a - jr nz, .asm_17060c - ret -; 17064b - -Function17064b: ; 17064b - hlcoord 1, 5 - xor a - ld b, $c -.asm_170651 - ld c, $12 -.asm_170653 - ld [hli], a - dec c - jr nz, .asm_170653 -rept 2 - inc hl -endr - dec b - jr nz, .asm_170651 - ret -; 17065d - -Function17065d: ; 17065d - ld a, [wcf64] - and a - jr z, .asm_170669 - hlcoord 18, 5 - ld a, $61 - ld [hl], a - -.asm_170669 - ld a, [wcf64] - cp $3c - ret z - hlcoord 18, 16 - ld a, $ee - ld [hl], a - ret -; 170676 - -String_170676: ; 170676 - db "ルーム@" -; 17067a - -String_17067a: ; 17067a - db "れきだいりーダーいちらん@" -; 170687 - -BattleTowerAction: ; 170687 - ld a, [ScriptVar] - ld e, a - ld d, 0 - ld hl, .jumptable -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 170696 - - -.jumptable: ; 170696 (5c:4696) - dw Function17075f ; 0x00 - dw Function170788 ; 0x01 - dw Function170778 ; 0x02 - dw Function170799 ; 0x03 - dw Function17079d ; 0x04 - dw Function1707ac ; 0x05 - dw Function1707f4 ; 0x06 - dw Function170868 ; 0x07 - dw Function170881 ; 0x08 - dw Function17089a ; 0x09 - dw Function1708b1 ; 0x0a - dw CheckMobileEventIndex ; 0x0b - dw Function1708c8 ; 0x0c - dw Function1708f0 ; 0x0d - dw Function17093c ; 0x0e - dw Function1709aa ; 0x0f - dw Function1709bb ; 0x10 - dw Function170a9c ; 0x11 - dw Function170aa0 ; 0x12 - dw Function170aaf ; 0x13 - dw Function170abe ; 0x14 - dw Function170ad7 ; 0x15 - dw Function170807 ; 0x16 - dw Function17081d ; 0x17 - dw Function170ae8 ; 0x18 - dw Function170b16 ; 0x19 - dw ResetBattleTowerTrainersSRAM ; 0x1a - dw Function1706ee ; 0x1b - dw Function17071b ; 0x1c - dw Function170729 ; 0x1d - dw Function17073e ; 0x1e - dw Function170737 ; 0x1f - - -; Reset the save memory for BattleTower-Trainers (Counter and all 7 TrainerBytes) -ResetBattleTowerTrainersSRAM: ; 1706d6 (5c:46d6) BattleTowerAction $1a - ld a, BANK(sBTTrainers) - call GetSRAMBank - - ld a, $ff - ld hl, sBTTrainers - ld bc, BATTLETOWER_NROFTRAINERS - call ByteFill - - xor a - ld [sNrOfBeatenBattleTowerTrainers], a - - call CloseSRAM - - ret - -Function1706ee: ; 1706ee (5c:46ee) - ld a, BANK(sbe50) - call GetSRAMBank - - ld a, [sbe50] - call CloseSRAM - ld [ScriptVar], a - ld hl, NumItems - ld a, [hli] - cp $14 - ret c - ld b, $14 - ld a, [ScriptVar] - ld c, a -.asm_170709 - ld a, [hli] - cp c - jr nz, .asm_170711 - ld a, [hl] - cp $5f - ret c -.asm_170711 - inc hl - dec b - jr nz, .asm_170709 - ld a, $12 - ld [ScriptVar], a - ret - -Function17071b: ; 17071b (5c:471b) - ld a, BANK(sSaveType) - call GetSRAMBank - ld a, $3 - ld [sSaveType], a - call CloseSRAM - ret - -Function170729: ; 170729 (5c:4729) - ld a, BANK(sSaveType) - call GetSRAMBank - ld a, $4 - ld [sSaveType], a - call CloseSRAM - ret - -Function170737: ; 170737 (5c:4737) - callba SaveOptions - ret - -Function17073e: ; 17073e (5c:473e) - call Random - ld a, [hRandomAdd] - and $7 - cp $6 - jr c, .asm_17074b - sub $6 -.asm_17074b - add $1a - cp $1e - jr z, Function17073e - push af - ld a, BANK(sbe50) - call GetSRAMBank - pop af - ld [sbe50], a - call CloseSRAM - ret - -Function17075f: ; 17075f (5c:475f) - call Function17089a - ld a, [ScriptVar] - and a - ret z - ld a, BANK(sbe4f) - call GetSRAMBank - ld a, [sbe4f] - and $2 - ld [ScriptVar], a - call CloseSRAM - ret - -Function170778: ; 170778 (5c:4778) - ld hl, sSaveType - ld a, BANK(sSaveType) - call GetSRAMBank - ld a, [hl] - ld [ScriptVar], a - call CloseSRAM - ret - -Function170788: ; 170788 (5c:4788) - ld a, BANK(sbe4f) - call GetSRAMBank - ld a, [sbe4f] - or $2 - ld [sbe4f], a - call CloseSRAM - ret - -Function170799: ; 170799 (5c:4799) - ld c, $1 - jr asm_17079f - -Function17079d: ; 17079d (5c:479d) - ld c, $0 -asm_17079f: ; 17079f (5c:479f) - ld a, BANK(sSaveType) - call GetSRAMBank - ld a, c - ld [sSaveType], a - call CloseSRAM - ret - -Function1707ac: ; 1707ac (5c:47ac) - ld a, $5 - call GetSRAMBank - ld a, [$aa8c] - ld b, a - ld a, [$be46] - ld [ScriptVar], a - call CloseSRAM - and a - ret z - ld a, b - cp $2 - jr nc, .asm_1707ef - push bc - call UpdateTime - pop bc - ld a, $5 - call GetSRAMBank - ld a, [$aa8b] - call CloseSRAM - ld c, a - ld a, [CurDay] - sub c - jr c, .asm_1707e5 - cp $8 - jr nc, .asm_1707ef - ld a, b - and a - jr nz, .asm_1707ef - ret -.asm_1707e5 - ld hl, CurDay - ld a, $8c - sub c - add [hl] - cp $8 - ret c -.asm_1707ef - ld a, $8 - ld [ScriptVar], a - -Function1707f4: ; 1707f4 (5c:47f4) - ld a, $5 - call GetSRAMBank - xor a - ld [$be46], a - ld [$aa8b], a - ld [$aa8c], a - call CloseSRAM - ret - -Function170807: ; 170807 (5c:4807) - call UpdateTime - ld a, $5 - call GetSRAMBank - ld a, [CurDay] - ld [$b2f9], a - xor a - ld [$b2fa], a - call CloseSRAM - ret - -Function17081d: ; 17081d (5c:481d) - xor a - ld [ScriptVar], a - ld a, $5 - call GetSRAMBank - ld a, [$b2f9] - ld c, a - ld a, [$b2fa] - ld b, a - call CloseSRAM - cp $2 - jr nc, .asm_170853 - push bc - call UpdateTime - pop bc - ld a, [CurDay] - sub c - jr c, .asm_170849 - cp $b - jr nc, .asm_170853 - ld a, b - and a - jr nz, .asm_170853 - ret -.asm_170849 - ld hl, CurDay - ld a, $8c - sub c - add [hl] - cp $b - ret c -.asm_170853 - ld a, $1 - ld [ScriptVar], a - ld a, $5 - call GetSRAMBank - xor a - ld [$b2f9], a - ld [$b2fa], a - call CloseSRAM - ret - -Function170868: ; 170868 (5c:4868) - ld a, BANK(sbe47) - call GetSRAMBank - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a - ld a, [wd000 + $800] - ld [sbe47], a - pop af - ld [rSVBK], a - call CloseSRAM - ret - -Function170881: ; 170881 (5c:4881) - ld a, BANK(sbe47) - call GetSRAMBank - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a - ld a, [sbe47] - ld [wd000 + $800], a - pop af - ld [rSVBK], a - call CloseSRAM - ret - -Function17089a: ; 17089a - ld a, [wSaveFileExists] - and a - jr z, .asm_1708ad - callba Function14bcb - jr z, .asm_1708ab - xor a - jr .asm_1708ad - -.asm_1708ab - ld a, $1 - -.asm_1708ad - ld [ScriptVar], a - ret -; 1708b1 - - -Function1708b1: ; 1708b1 (5c:48b1) - xor a - ld [MusicFade], a - call MaxVolume - ret - -CheckMobileEventIndex: ; 1708b9 (5c:48b9) something to do with GS Ball - ld a, BANK(sMobileEventIndex) - call GetSRAMBank - ld a, [sMobileEventIndex] - ld [ScriptVar], a - call CloseSRAM - ret - -Function1708c8: ; 1708c8 (5c:48c8) - call UpdateTime - ld a, $5 - call GetSRAMBank - ld a, [CurDay] - ld [$aa8b], a - xor a - ld [$aa8c], a - ld a, [$aa5d] - cp $2 - jr nc, .asm_1708ec - ld a, [CurDay] - ld [$aa48], a - ld a, $1 - ld [$aa47], a -.asm_1708ec - call CloseSRAM - ret - -Function1708f0: ; 1708f0 (5c:48f0) - xor a - ld [ScriptVar], a - call UpdateTime - ld a, $5 - call GetSRAMBank - ld a, [$aa48] - ld c, a - ld a, [$aa47] - call CloseSRAM - and a - ret z - ld hl, CurDay - ld a, c - cp [hl] - jr nz, Function170923 - ld a, $5 - call GetSRAMBank - ld a, [$aa5d] - call CloseSRAM - cp $5 - ret c - ld a, $1 - ld [ScriptVar], a - ret - - -Function170923: ; 170923 - ld a, $5 - call GetSRAMBank - xor a - ld [$aa48], a - ld [$aa47], a - ld hl, $aa5d - ld bc, $0011 - call ByteFill - call CloseSRAM - ret -; 17093c - - -Function17093c: ; 17093c (5c:493c) - xor a - ld [ScriptVar], a - ld a, EGG_TICKET - ld [CurItem], a - ld hl, NumItems - call CheckItem - ret nc - ld a, [PartyCount] - ld b, 0 - ld c, a - ld hl, PartySpecies -.loop - ld a, [hli] - cp EGG - jr nz, .not_egg - push hl - ld hl, PartyMonOT ; wddff (aliases: PartyMonOT) - ld de, $6 - ld a, b - and a - jr z, .skip -.loop2 - add hl, de - dec a - jr nz, .loop2 -.skip - ld de, String_1709a4 - ld a, $6 -.asm_17096e - push af - ld a, [de] - inc de - cp [hl] - inc hl - jr nz, .asm_17099d - pop af - dec a - jr nz, .asm_17096e -rept 4 - dec hl -endr - ld a, $50 -rept 2 - ld [hli], a -endr - pop hl - ld a, EGG_TICKET - ld [CurItem], a - ld a, $1 - ld [wItemQuantityChangeBuffer], a - ld a, $ff - ld [wd107], a - ld hl, NumItems - call TossItem - ld a, $1 - ld [ScriptVar], a - ret - -.asm_17099d - pop af - pop hl -.not_egg - inc b - dec c - jr nz, .loop - ret -; 1709a4 (5c:49a4) - -String_1709a4: ; 1709a4 - db "なぞナゾ@@" - -Function1709aa: ; 1709aa (5c:49aa) - ld a, [rSVBK] - push af - ld a, BANK(w3_d090) - ld [rSVBK], a - ld a, [w3_d090] - ld [ScriptVar], a - pop af - ld [rSVBK], a - ret - -Function1709bb: ; 1709bb (5c:49bb) - xor a - ld [ScriptVar], a - ld a, $5 - call GetSRAMBank - ld a, [$a800] - call CloseSRAM - cp 6 - jr nc, .invalid - ld e, a - ld d, 0 - ld hl, Jumptable_1709e7 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -.invalid - ld a, $5 - call GetSRAMBank - xor a - ld [$a800], a - call CloseSRAM - ret -; 1709e7 (5c:49e7) - -Jumptable_1709e7: ; 1709e7 - dw Function170a00 - dw Function170a00 - dw Function1709f3 - dw Function1709f3 - dw Function170a01 - dw Function170a33 -; 1709f3 - -Function1709f3: ; 1709f3 - ld a, $5 - call GetSRAMBank - ld a, $1 - ld [$a800], a - call CloseSRAM - -Function170a00: ; 170a00 - ret -; 170a01 - -Function170a01: ; 170a01 - ld a, $5 - call GetSRAMBank - ld hl, $b023 - ld de, $c608 - ld bc, $0069 - call CopyBytes - ld a, [$a825] - ld [wcd30], a - ld a, [$a826] - ld [wcd31], a - call CloseSRAM - callba Function11b6b4 - callba Function17d0f3 - ld a, $1 - ld [ScriptVar], a - ret -; 170a33 - -Function170a33: ; 170a33 - ld a, $0 - call GetSRAMBank - ld hl, wRTC - ld de, $c608 - ld bc, $0004 - call CopyBytes - call CloseSRAM - ld a, $5 - call GetSRAMBank - ld hl, $b08c - ld de, $c608 - ld c, $4 -.asm_170a54 - ld a, [de] - inc de - cp [hl] - jr nz, .asm_170a78 - inc hl - dec c - jr nz, .asm_170a54 - call CloseSRAM - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - call GetMapTrigger - ld a, d - or e - jr z, .asm_170a72 - ld a, [de] - and a - ret nz - -.asm_170a72 - ld a, $1 - ld [ScriptVar], a - ret - -.asm_170a78 - call CloseSRAM - ld a, $5 - call GetSRAMBank - xor a - ld [$a800], a - call CloseSRAM - ld [ScriptVar], a - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - call GetMapTrigger - ld a, d - or e - jr z, .asm_170a9b - xor a - ld [de], a - -.asm_170a9b - ret -; 170a9c - -Function170a9c: ; 170a9c (5c:4a9c) - ld c, $0 - jr asm_170aa2 - -Function170aa0: ; 170aa0 (5c:4aa0) - ld c, $1 -asm_170aa2: ; 170aa2 (5c:4aa2) - ld a, $5 - call GetSRAMBank - ld a, c - ld [$aa8d], a - call CloseSRAM - ret - -Function170aaf: ; 170aaf (5c:4aaf) - ld a, $5 - call GetSRAMBank - ld a, [$aa8d] - ld [ScriptVar], a - call CloseSRAM - ret - -Function170abe: ; 170abe (5c:4abe) - call Function17089a - ld a, [ScriptVar] - and a - ret z - ld a, BANK(sbe4f) - call GetSRAMBank - ld a, [sbe4f] - and $1 - ld [ScriptVar], a - call CloseSRAM - ret - -Function170ad7: ; 170ad7 (5c:4ad7) - ld a, BANK(sbe4f) - call GetSRAMBank - ld a, [sbe4f] - or $1 - ld [sbe4f], a - call CloseSRAM - ret - -Function170ae8: ; 170ae8 (5c:4ae8) - ld a, $5 - call GetSRAMBank - ld a, [$b2fb] - call CloseSRAM - ld c, $a - call SimpleDivide - ld a, b - ld [wcd4f], a - xor a - ld [ScriptVar], a - callba Function119d93 - ret nc - ld a, $5 - call GetSRAMBank - ld a, [$b2fb] - call CloseSRAM - ld [ScriptVar], a - ret - -Function170b16: ; 170b16 (5c:4b16) - ld a, $5 - call GetSRAMBank - ld a, [$b2fb] - call CloseSRAM - ld c, 10 - call SimpleDivide - ld a, b - ld [wcd4f], a - xor a - ld [ScriptVar], a - callba Function119dd1 - ret nc - ld a, $5 - call GetSRAMBank - ld a, [$b2fb] - call CloseSRAM - ld [ScriptVar], a - ret - Function_LoadOpponentTrainerAndPokemonsWithOTSprite: ; 0x170b44 callba Function_LoadOpponentTrainerAndPokemons ld a, [rSVBK] diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm index 3349f31cb..19c3748e8 100644 --- a/misc/mobile_5f.asm +++ b/misc/mobile_5f.asm @@ -6,7 +6,7 @@ Function17c000: ; 17c000 call DisableLCD ld hl, VTiles2 - ld bc, $310 + ld bc, $31 tiles xor a call ByteFill @@ -61,7 +61,7 @@ Function17c000: ; 17c000 ld hl, MobileSelectGFX ld de, VTiles0 tile $30 - ld bc, $200 + ld bc, $20 tiles call CopyBytes ld a, 1 @@ -69,12 +69,12 @@ Function17c000: ; 17c000 ld hl, HaveWantGFX ld de, VTiles2 - ld bc, $800 + ld bc, $80 tiles call CopyBytes ld hl, HaveWantGFX + $800 ld de, VTiles1 - ld bc, $100 + ld bc, $10 tiles call CopyBytes xor a @@ -226,46 +226,48 @@ CheckStringForErrors: ; 17d073 ret ; 17d0b3 -Function17d0b3: ; 17d0b3 -.asm_17d0b3 +CheckStringForErrors_IgnoreTerminator: ; 17d0b3 +; Find control chars +.loop ld a, [de] inc de and a - jr z, .asm_17d0ee - cp $60 - jr nc, .asm_17d0ee - cp $4e - jr z, .asm_17d0ee - cp $50 - jr z, .asm_17d0ee - cp $5 - jr c, .asm_17d0ec - cp $14 - jr c, .asm_17d0ee - cp $19 - jr c, .asm_17d0ec - cp $1d - jr c, .asm_17d0ee - cp $26 - jr c, .asm_17d0ec - cp $35 - jr c, .asm_17d0ee - cp $3a - jr c, .asm_17d0ec - cp $3f - jr c, .asm_17d0ee - cp $40 - jr c, .asm_17d0ec - cp $49 - jr c, .asm_17d0ee + jr z, .next + cp "" + 1 + jr nc, .next + cp "" + jr z, .next + cp "@" + jr z, .next -.asm_17d0ec + cp $5 + jr c, .end + cp "" + jr c, .next + cp $19 + jr c, .end + cp $1d + jr c, .next + cp "%" + 1 + jr c, .end + cp $35 + jr c, .next + cp "" + 1 + jr c, .end + cp "" + jr c, .next + cp "" + 1 + jr c, .end + cp "" + jr c, .next + +.end scf ret -.asm_17d0ee +.next dec c - jr nz, .asm_17d0b3 + jr nz, .loop and a ret ; 17d0f3 @@ -380,22 +382,22 @@ Function17d1c9: ; 17d1c9 ret ; 17d1e1 -Function17d1e1: ; 17d1e1 -.asm_17d1e1 +CheckStringContainsLessThanBNextCharacters: ; 17d1e1 +.loop ld a, [de] inc de - cp $4e - jr nz, .asm_17d1ea + cp "" + jr nz, .next_char dec b - jr z, .asm_17d1ef + jr z, .done -.asm_17d1ea +.next_char dec c - jr nz, .asm_17d1e1 + jr nz, .loop and a ret -.asm_17d1ef +.done scf ret ; 17d1f1 @@ -440,18 +442,18 @@ Function17d1f1: ; 17d1f1 Special_Menu_ChallengeExplanationCancel: ; 17d224 ld a, [ScriptVar] and a - jr nz, .asm_17d234 + jr nz, .English ld a, $4 ld [ScriptVar], a ld hl, MenuDataHeader_17d26a ; Japanese Menu, where you can choose 'News' as an option - jr .asm_17d23c + jr .Load_Interpret -.asm_17d234 +.English ld a, $4 ld [ScriptVar], a ld hl, MenuDataHeader_ChallengeExplanationCancel ; English Menu -.asm_17d23c +.Load_Interpret call LoadMenuDataHeader call Function17d246 call WriteBackup @@ -460,25 +462,25 @@ Special_Menu_ChallengeExplanationCancel: ; 17d224 Function17d246: ; 17d246 call InterpretMenu2 - jr c, .asm_17d264 + jr c, .Exit ld a, [ScriptVar] cp $5 - jr nz, .asm_17d25d + jr nz, .UseMenuSelection2 ld a, [MenuSelection2] cp $3 ret z - jr c, .asm_17d25d + jr c, .UseMenuSelection2 dec a - jr .asm_17d260 + jr .LoadToScriptVar -.asm_17d25d +.UseMenuSelection2 ld a, [MenuSelection2] -.asm_17d260 +.LoadToScriptVar ld [ScriptVar], a ret -.asm_17d264 +.Exit ld a, $4 ld [ScriptVar], a ret @@ -494,8 +496,8 @@ MenuDataHeader_17d26a: ; 17d26a MenuData2_17d272: ; 17d272 db $a0 ; flags db 4 - db "ニュース", $1f, "よみこむ@" - db "ニュース", $1f, "みる@" + db "ニュース¯よみこむ@" + db "ニュース¯みる@" db "せつめい@" db "やめる@" ; 17d28f @@ -633,27 +635,27 @@ Function17d370: ; 17d370 call DisableLCD ld hl, VTiles1 tile $6e ld de, $c608 - ld bc, $0010 + ld bc, 1 tiles call CopyBytes ld a, $1 ld [rVBK], a ld hl, PokemonNewsGFX ld de, VTiles1 - ld bc, $0480 + ld bc, $48 tiles call CopyBytes xor a ld hl, VTiles2 tile $7f - ld bc, $0010 + ld bc, 1 tiles call ByteFill ld hl, $c608 ld de, VTiles1 tile $6e - ld bc, $0010 + ld bc, 1 tiles call CopyBytes xor a ld [rVBK], a ld hl, GFX_17eb7e ld de, VTiles2 tile $60 - ld bc, $0010 + ld bc, 1 tiles call CopyBytes call EnableLCD call Function17d60b @@ -681,21 +683,21 @@ Function17d405: call DisableLCD ld hl, VTiles1 tile $6e ld de, $c608 - ld bc, $0010 + ld bc, 1 tiles call CopyBytes ld a, $1 ld [rVBK], a ld hl, PokemonNewsGFX ld de, VTiles1 - ld bc, $0480 + ld bc, $48 tiles call CopyBytes xor a ld hl, VTiles2 tile $7f - ld bc, $0010 + ld bc, 1 tiles call ByteFill ld hl, $c608 ld de, VTiles1 tile $6e - ld bc, $0010 + ld bc, 1 tiles call CopyBytes xor a ld [rVBK], a diff --git a/sram.asm b/sram.asm index 7b901409f..b825813c0 100644 --- a/sram.asm +++ b/sram.asm @@ -143,20 +143,21 @@ sMobileEventIndex:: ds 1 sCrystalData:: ds wCrystalDataEnd - wCrystalData sMobileEventIndexBackup:: ds 1 -sSaveType:: ds 1 + +SECTION "SRAM Battle Tower", SRAM, BANK [1] +; data of the BattleTower must be in SRAM because you can save and leave between battles +sBattleTowerChallengeState:: ds 1 ; 0: normal ; 2: battle tower -; data of the BattleTower must be in SRAM because you can save and leave between battles sBattleTower:: ; be46 -sNrOfBeatenBattleTowerTrainers:: -sbe46:: ds 1 +sNrOfBeatenBattleTowerTrainers:: ds 1 sbe47:: ds 1 ; The 7 trainers of the BattleTower are saved here, so nobody appears more than once sBTTrainers:: ; sbe48 ds 7 sbe4f:: ds 1 -sbe50:: ds 1 +sBattleTowerReward:: ds 1 ; Pkmn of previous trainer sBTPkmnOfTrainers:: ; 0xbe51 sBTPkmnPrevTrainer1:: diff --git a/wram.asm b/wram.asm index c6e0438f6..00b4956b2 100644 --- a/wram.asm +++ b/wram.asm @@ -2976,11 +2976,17 @@ BT_OTTrainer:: battle_tower_struct BT_OT ; d1e0 ds $20 ; d200 -BT_TrainerTextIndex:: - ds $be -w3_d2be:: ds 1 +BT_TrainerTextIndex:: ds 2 +w3_d202:: battle_tower_struct w3_d202 +w3_d2e2:: battle_tower_struct w3_d2e2 +w3_d3c2:: battle_tower_struct w3_d3c2 +w3_d4a2:: battle_tower_struct w3_d4a2 +w3_d582:: battle_tower_struct w3_d582 +w3_d662:: battle_tower_struct w3_d662 +w3_d742:: battle_tower_struct w3_d742 +; d822 + ds -$22 -SECTION "WRAM 3 part 2", WRAMX [$d800], BANK [3] wBTChoiceOfLvlGroup:: w3_d800:: ds $400 w3_dc00:: ds $168 From 0c6f94effd1cb4278b0c0a2f02117055a69537e1 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 25 Nov 2015 10:26:30 -0500 Subject: [PATCH 39/40] Final relabeling before merge --- engine/link.asm | 26 +++++++++++++------------- engine/map_objects.asm | 2 +- engine/menu.asm | 6 +++--- engine/pokecenter_pc.asm | 14 +++++++------- engine/predef.asm | 2 +- engine/scripting.asm | 16 ++++++++-------- engine/timeset.asm | 4 ++-- event/kurt.asm | 2 +- event/unown.asm | 2 +- home.asm | 10 +++++----- home/battle.asm | 2 +- home/map.asm | 4 ++-- home/menu.asm | 4 ++-- home/rtc.asm | 2 +- home/text.asm | 2 +- home/tilemap.asm | 2 +- main.asm | 16 ++++++++-------- misc/mobile_22.asm | 4 ++-- misc/mobile_40.asm | 4 ++-- misc/mobile_46.asm | 4 ++-- misc/mobile_5b.asm | 4 ++-- wram.asm | 6 +++--- 22 files changed, 69 insertions(+), 69 deletions(-) diff --git a/engine/link.asm b/engine/link.asm index 9d21104f8..8ba1702e9 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -1378,7 +1378,7 @@ Function28926: ; 28926 hlcoord 0, 15 ld b, $1 ld c, $12 - call Function28eef + call Predef_LinkTextbox hlcoord 2, 16 ld de, String28ab4 call PlaceString @@ -1487,7 +1487,7 @@ Function28926: ; 28926 hlcoord 0, 12 ld b, $4 ld c, $12 - call Function28eef + call Predef_LinkTextbox callba Function4d354 ld hl, UnknownText_0x28aaf bccoord 1, 14 @@ -1509,7 +1509,7 @@ Function28926: ; 28926 hlcoord 0, 12 ld b, $4 ld c, $12 - call Function28eef + call Predef_LinkTextbox callba Function4d354 ld hl, UnknownText_0x28ac4 bccoord 1, 14 @@ -1519,7 +1519,7 @@ Function28926: ; 28926 hlcoord 0, 12 ld b, $4 ld c, $12 - call Function28eef + call Predef_LinkTextbox hlcoord 1, 14 ld de, String28ece call PlaceString @@ -1666,7 +1666,7 @@ Function28b87: ; 28b87 hlcoord 0, 12 ld b, $4 ld c, $12 - call Function28eef + call Predef_LinkTextbox callba Function4d354 ld a, [wd002] ld hl, PartySpecies @@ -1695,7 +1695,7 @@ Function28b87: ; 28b87 hlcoord 10, 7 ld b, $3 ld c, $7 - call Function28eef + call Predef_LinkTextbox ld de, String28eab hlcoord 12, 8 call PlaceString @@ -1735,7 +1735,7 @@ Function28b87: ; 28b87 hlcoord 0, 12 ld b, 4 ld c, 18 - call Function28eef + call Predef_LinkTextbox hlcoord 1, 14 ld de, String28ece call PlaceString @@ -1752,7 +1752,7 @@ Function28b87: ; 28b87 hlcoord 0, 12 ld b, 4 ld c, 18 - call Function28eef + call Predef_LinkTextbox hlcoord 1, 14 ld de, String28ece call PlaceString @@ -1982,7 +1982,7 @@ Function28b87: ; 28b87 hlcoord 0, 12 ld b, 4 ld c, 18 - call Function28eef + call Predef_LinkTextbox hlcoord 1, 14 ld de, String28ebd call PlaceString @@ -2019,10 +2019,10 @@ String28ece: ; 28ece next "was canceled!@" -Function28eef: ; 28eef +Predef_LinkTextbox: ; 28eef ld d, h ld e, l - callba Function16d6ca + callba LinkTextbox ret ; 28ef8 @@ -2041,11 +2041,11 @@ Function28f09: ; 28f09 hlcoord 0, 0 ld b, 6 ld c, 18 - call Function28eef + call Predef_LinkTextbox hlcoord 0, 8 ld b, 6 ld c, 18 - call Function28eef + call Predef_LinkTextbox callba Functionfb60d ret ; 28f24 diff --git a/engine/map_objects.asm b/engine/map_objects.asm index 168c5389c..13e4f73bf 100644 --- a/engine/map_objects.asm +++ b/engine/map_objects.asm @@ -2736,7 +2736,7 @@ Function5602: ; 5602, called at battle start ld a, PLAYER call Function5629 ; respawn player - ld a, [wd459] + ld a, [wBattleScriptFlags] bit 7, a jr z, .ok diff --git a/engine/menu.asm b/engine/menu.asm index a1ec30b7a..6978a0e54 100755 --- a/engine/menu.asm +++ b/engine/menu.asm @@ -4,7 +4,7 @@ Function2400e:: ; 2400e rst FarCall call Function24085 call UpdateSprites - call Function321c + call ApplyTilemap call Function2408f ret ; 24022 @@ -16,7 +16,7 @@ Function24022:: ; 24022 call Function24085 callba MobileTextBorder call UpdateSprites - call Function321c + call ApplyTilemap call Function2408f ret ; 2403c @@ -28,7 +28,7 @@ Function2403c:: ; 2403c call Function24085 callba MobileTextBorder call UpdateSprites - call Function321c + call ApplyTilemap call Function2411a ld hl, wcfa5 set 7, [hl] diff --git a/engine/pokecenter_pc.asm b/engine/pokecenter_pc.asm index 4d296aab2..064b35a6c 100755 --- a/engine/pokecenter_pc.asm +++ b/engine/pokecenter_pc.asm @@ -188,7 +188,7 @@ _KrissHousePC: ; 156d9 and a jr nz, .asm_156f9 call OverworldTextModeSwitch - call Function321c + call ApplyTilemap call UpdateSprites call PC_PlayShutdownSound ld c, $0 @@ -466,16 +466,16 @@ UnknownText_0x158c7: ; 0x158c7 Function158cc: ; 0x158cc - ld a, [wc2ce] + ld a, [wSpriteUpdatesEnabled] push af ld a, $0 - ld [wc2ce], a + ld [wSpriteUpdatesEnabled], a callba CheckItemMenu ld a, [wItemAttributeParamBuffer] ld hl, .jumptable rst JumpTable pop af - ld [wc2ce], a + ld [wSpriteUpdatesEnabled], a ret ; 0x158e7 @@ -577,10 +577,10 @@ Function15985: ; 0x15985 xor a ld [wd0e3], a .asm_15989 - ld a, [wc2ce] + ld a, [wSpriteUpdatesEnabled] push af ld a, $0 - ld [wc2ce], a + ld [wSpriteUpdatesEnabled], a ld hl, MenuData15a08 call CopyMenuDataHeader hlcoord 0, 0 @@ -597,7 +597,7 @@ Function15985: ; 0x15985 ld a, [MenuSelection2] ld [wd0d7], a pop af - ld [wc2ce], a + ld [wSpriteUpdatesEnabled], a ld a, [wd0e3] and a jr nz, .asm_159d8 diff --git a/engine/predef.asm b/engine/predef.asm index c089215a6..680a6b4a0 100644 --- a/engine/predef.asm +++ b/engine/predef.asm @@ -46,7 +46,7 @@ PredefPointers:: ; 856b add_predef CalcPkmnStatC add_predef CanLearnTMHMMove add_predef GetTMHMMove - add_predef Function28eef ; $ 10 + add_predef Predef_LinkTextbox ; $ 10 add_predef PrintMoveDesc add_predef UpdatePlayerHUD add_predef FillBox diff --git a/engine/scripting.asm b/engine/scripting.asm index 945368e2b..c80343a4c 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -929,7 +929,7 @@ Script_winlosstext: ; 9714c Script_talkaftercancel: ; 97163 ; script command 0x66 - ld a, [wd04d] + ld a, [wRunningTrainerBattleScript] and a ret z jp Script_end @@ -940,7 +940,7 @@ Script_talkaftercheck: ; 9716b ld a, 1 ld [ScriptVar], a - ld a, [wd04d] + ld a, [wRunningTrainerBattleScript] and a ret nz xor a @@ -1485,7 +1485,7 @@ Script_battlecheck: ; 973fb ; script command 0x5b xor a - ld [wd459], a + ld [wBattleScriptFlags], a ret ; 97400 @@ -1493,7 +1493,7 @@ Script_loadtrainerdata: ; 97400 ; script command 0x5c ld a, (1 << 7) | 1 - ld [wd459], a + ld [wBattleScriptFlags], a ld a, [WalkingDirection] ld [OtherTrainerClass], a ld a, [FacingDirection] @@ -1508,7 +1508,7 @@ Script_loadpokedata: ; 97412 ; level (DecimalParam) ld a, (1 << 7) - ld [wd459], a + ld [wBattleScriptFlags], a call GetScriptByte ld [TempWildMonSpecies], a call GetScriptByte @@ -1523,7 +1523,7 @@ Script_loadtrainer: ; 97424 ; trainer_id (TrainerIdParam) ld a, (1 << 7) | 1 - ld [wd459], a + ld [wBattleScriptFlags], a call GetScriptByte ld [OtherTrainerClass], a call GetScriptByte @@ -1557,7 +1557,7 @@ Script_catchtutorial: ; 97447 Script_returnafterbattle: ; 97459 ; script command 0x60 - ld hl, wd459 + ld hl, wBattleScriptFlags ld d, [hl] ld [hl], $0 ld a, [wBattleResult] @@ -1589,7 +1589,7 @@ Script_reloadmap: ; 97491 ; script command 0x7b xor a - ld [wd459], a + ld [wBattleScriptFlags], a ld a, MAPSETUP_RELOADMAP ld [hMapEntryMethod], a ld a, $1 diff --git a/engine/timeset.asm b/engine/timeset.asm index 0b0f12718..1f82da884 100755 --- a/engine/timeset.asm +++ b/engine/timeset.asm @@ -6,7 +6,7 @@ InitClock: ; 90672 (24:4672) ld [hInMenu], a ld a, $0 - ld [wc2ce], a + ld [wSpriteUpdatesEnabled], a ld a, $10 ld [MusicFade], a ld a, MUSIC_NONE % $100 @@ -436,7 +436,7 @@ Special_SetDayOfWeek: ; 90913 ld [hl], $f5 hlcoord 10, 5 call Function909de - call Function321c + call ApplyTilemap ld c, 10 call DelayFrames .asm_9096a diff --git a/event/kurt.asm b/event/kurt.asm index 272a96ca8..bb24f26ab 100644 --- a/event/kurt.asm +++ b/event/kurt.asm @@ -139,7 +139,7 @@ Kurt_SelectQuantity: ; 880c2 call UpdateSprites call .PlaceApricornName call PlaceApricornQuantity - call Function321c + call ApplyTilemap callba Function27a28 jr nc, .loop diff --git a/event/unown.asm b/event/unown.asm index 2d48dc695..789629ae0 100644 --- a/event/unown.asm +++ b/event/unown.asm @@ -124,7 +124,7 @@ Special_DisplayUnownWords: ; 8ae68 ld [hBGMapMode], a call MenuBox call UpdateSprites - call Function321c + call ApplyTilemap call MenuBoxCoord2Tile inc hl ld d, $0 diff --git a/home.asm b/home.asm index c5c8187df..2808df8fb 100644 --- a/home.asm +++ b/home.asm @@ -104,13 +104,13 @@ DisableSpriteUpdates:: ; 0x2ed3 res 0, a ld [VramState], a ld a, $0 - ld [wc2ce], a + ld [wSpriteUpdatesEnabled], a ret ; 0x2ee4 EnableSpriteUpdates:: ; 2ee4 ld a, $1 - ld [wc2ce], a + ld [wSpriteUpdatesEnabled], a ld a, [VramState] set 0, a ld [VramState], a @@ -568,12 +568,12 @@ IsCGB:: ; 3218 ; 321c -Function321c:: ; 321c +ApplyTilemap:: ; 321c ld a, [hCGB] and a jr z, .dmg - ld a, [wc2ce] + ld a, [wSpriteUpdatesEnabled] cp 0 jr z, .dmg @@ -1488,7 +1488,7 @@ LoadTrainer_continue:: ; 367e ld a, [EngineBuffer1] call FarCopyBytes xor a - ld [wd04d], a + ld [wRunningTrainerBattleScript], a scf ret ; 36a5 diff --git a/home/battle.asm b/home/battle.asm index 57bab4083..4786cc4d3 100644 --- a/home/battle.asm +++ b/home/battle.asm @@ -285,7 +285,7 @@ BattleTextBox:: ; 3ac3 call SpeechTextBox call MobileTextBorder call UpdateSprites - call Function321c + call ApplyTilemap pop hl call PrintTextBoxText ret diff --git a/home/map.asm b/home/map.asm index a93f208a4..d50c99349 100644 --- a/home/map.asm +++ b/home/map.asm @@ -1091,7 +1091,7 @@ MapTextbox:: ; 269a call Function2e31 ld a, 1 ld [hOAMUpdate], a - call Function321c + call ApplyTilemap pop hl call PrintTextBoxText xor a @@ -2043,7 +2043,7 @@ Function2b5c:: ; 2b5c Function2b74:: ; 0x2b74 push af ld a, $1 - ld [wc2ce], a + ld [wSpriteUpdatesEnabled], a call ClearBGPalettes call ClearSprites call Function2bae diff --git a/home/menu.asm b/home/menu.asm index 64f7e4d8c..4e7b7772b 100644 --- a/home/menu.asm +++ b/home/menu.asm @@ -77,7 +77,7 @@ InterpretMenu2:: call MenuBox call UpdateSprites call Function1c89 - call Function321c + call ApplyTilemap call CopyMenuData2 ld a, [wMenuData2Flags] bit 7, a @@ -262,7 +262,7 @@ MenuWriteText:: push af ld a, $1 ld [hOAMUpdate], a - call Function321c + call ApplyTilemap pop af ld [hOAMUpdate], a ret diff --git a/home/rtc.asm b/home/rtc.asm index 7070c0dad..9fb71c0be 100644 --- a/home/rtc.asm +++ b/home/rtc.asm @@ -2,7 +2,7 @@ RTC:: ; 46f ; update time and time-sensitive palettes ; rtc enabled? - ld a, [wc2ce] + ld a, [wSpriteUpdatesEnabled] cp 0 ret z diff --git a/home/text.asm b/home/text.asm index 2877f88dd..37208af9d 100644 --- a/home/text.asm +++ b/home/text.asm @@ -192,7 +192,7 @@ SetUpTextBox:: ; 106c push hl call SpeechTextBox call UpdateSprites - call Function321c + call ApplyTilemap pop hl ret ; 1078 diff --git a/home/tilemap.asm b/home/tilemap.asm index 3153cea2c..74ec17cee 100644 --- a/home/tilemap.asm +++ b/home/tilemap.asm @@ -16,7 +16,7 @@ Function1c10:: ; 0x1c10 WriteBackup:: ; 0x1c17 push af call ExitMenu - call Function321c + call ApplyTilemap call UpdateSprites pop af ret diff --git a/main.asm b/main.asm index dfff0d855..0117e41c3 100644 --- a/main.asm +++ b/main.asm @@ -17,7 +17,7 @@ PlaceWaitingText:: ; 4000 jr .proceed .notinbattle - predef Function28eef + predef Predef_LinkTextbox .proceed hlcoord 4, 11 @@ -9921,7 +9921,7 @@ Pokepic:: ; 244e3 call CopyMenuDataHeader call MenuBox call UpdateSprites - call Function321c + call ApplyTilemap ld b, SCGB_12 call GetSGBLayout xor a @@ -9955,7 +9955,7 @@ PokepicYesOrNo:: ; 24528 xor a ld [hBGMapMode], a call OverworldTextModeSwitch - call Function321c + call ApplyTilemap call UpdateSprites call LoadStandardFont ret @@ -10051,7 +10051,7 @@ Function245af:: ; 245af call Function24764 call Function247dd call Function245f1 - call Function321c + call ApplyTilemap xor a ld [hBGMapMode], a ret @@ -17539,7 +17539,7 @@ Buena_ExitMenu: ; 4ae5e call DelayFrame ld a, $1 ld [hOAMUpdate], a - call Function321c + call ApplyTilemap pop af ld [hOAMUpdate], a ret @@ -17856,7 +17856,7 @@ PhoneRing_LoadEDTile: ; 4d188 ld a, [hCGB] and a jp z, WaitBGMap - ld a, [wc2ce] + ld a, [wSpriteUpdatesEnabled] cp $0 jp z, WaitBGMap @@ -22713,7 +22713,7 @@ StartBattleWithMapTrainerScript: ; 0xbe68a startbattle returnafterbattle trainerstatus SET_FLAG - loadvar wd04d, -1 + loadvar wRunningTrainerBattleScript, -1 AlreadyBeatenTrainerScript: scripttalkafter @@ -24096,7 +24096,7 @@ LoadMapTimeOfDay: ; 104750 ld hl, VramState res 6, [hl] ld a, $1 - ld [wc2ce], a + ld [wSpriteUpdatesEnabled], a callba Function8c0e5 callba Function8c001 call OverworldTextModeSwitch diff --git a/misc/mobile_22.asm b/misc/mobile_22.asm index 3e21f1365..061e67117 100644 --- a/misc/mobile_22.asm +++ b/misc/mobile_22.asm @@ -150,13 +150,13 @@ Function891fe: ; 891fe Function89209: ; 89209 ld a, 1 - ld [wc2ce], a + ld [wSpriteUpdatesEnabled], a ret ; 8920f Function8920f: ; 8920f ld a, 0 - ld [wc2ce], a + ld [wSpriteUpdatesEnabled], a ret ; 89215 diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index 51fbcbd65..00581de06 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -838,7 +838,7 @@ Jumptable_10052a: ; 10052a Function100534: ; 100534 call Function100513 call UpdateSprites - call Function321c + call ApplyTilemap ld a, [wcd28] inc a ld [wcd28], a @@ -1847,7 +1847,7 @@ Function100b7a: ; 100b7a callba Function24085 callba MobileTextBorder call UpdateSprites - call Function321c + call ApplyTilemap callba Function2411a ld hl, wcfa5 set 7, [hl] diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm index ac44da8cd..836da4fa0 100755 --- a/misc/mobile_46.asm +++ b/misc/mobile_46.asm @@ -1290,7 +1290,7 @@ Function118936: call LoadMenuDataHeader call MenuBox call MenuBoxCoord2Tile - call Function321c + call ApplyTilemap hlcoord 16, 8, AttrMap ld a, $40 or [hl] @@ -4745,7 +4745,7 @@ Function11a207: ; 11a207 call LoadMenuDataHeader call MenuBox call MenuBoxCoord2Tile - call Function321c + call ApplyTilemap hlcoord 16, 8 ld de, String_11a2cf call PlaceString diff --git a/misc/mobile_5b.asm b/misc/mobile_5b.asm index f4956bff9..19d192aeb 100755 --- a/misc/mobile_5b.asm +++ b/misc/mobile_5b.asm @@ -1028,7 +1028,7 @@ Function16d6ae: ; 16d6ae ret ; 16d6ca -Function16d6ca: ; 16d6ca +LinkTextbox: ; 16d6ca call Function16d61d ret ; 16d6ce @@ -1046,7 +1046,7 @@ Function16d6e1: ; 16d6e1 hlcoord 4, 10 ld b, 1 ld c, 10 - predef Function28eef + predef Predef_LinkTextbox hlcoord 5, 11 ld de, .Waiting call PlaceString diff --git a/wram.asm b/wram.asm index 00b4956b2..30b02eac4 100644 --- a/wram.asm +++ b/wram.asm @@ -311,7 +311,7 @@ AutoInputLength:: ; c2cb wc2cc:: ds 1 wc2cd:: ds 1 -wc2ce:: ds 1 +wSpriteUpdatesEnabled:: ds 1 wc2cf:: ds 1 wc2d0:: ds 4 wc2d4:: ds 1 @@ -1679,7 +1679,7 @@ wd048:: ds 1 wLossTextPointer:: ds 2 wScriptAfterPointer:: wd04b:: ds 2 -wd04d:: ds 1 +wRunningTrainerBattleScript:: ds 1 MenuItemsListEnd:: wTempTrainerHeaderEnd:: wd04e:: ds 2 @@ -2221,7 +2221,7 @@ wd453:: ds 1 wd454:: ds 1 ds 4 -wd459:: ds 2 +wBattleScriptFlags:: ds 2 wPlayerSpriteSetupFlags:: ds 1 wMapReentryScriptQueueFlag:: ds 1 ; MemScriptFlag wMapReentryScriptBank:: ds 1 ; MemScriptBank From 4bcd71e3227181baa536357af3d87a8d02af3890 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 26 Nov 2015 21:06:32 -0500 Subject: [PATCH 40/40] Fix some labels in engine/timeofdaypals.asm --- engine/map_setup.asm | 4 ++-- engine/specials.asm | 6 +++--- engine/timeofdaypals.asm | 6 +++--- event/field_moves.asm | 4 ++-- event/halloffame.asm | 4 ++-- event/sacred_ash.asm | 12 ++++++------ event/whiteout.asm | 2 +- home/map.asm | 4 ++-- maps/BattleTowerBattleRoom.asm | 10 +++++----- maps/BluesHouse.asm | 4 ++-- maps/EcruteakGym.asm | 2 +- maps/FastShip1F.asm | 4 ++-- maps/FastShipCabins_SE_SSE_CaptainsCabin.asm | 2 +- maps/FastShipCabins_SW_SSW_NW.asm | 2 +- maps/IndigoPlateauPokeCenter1F.asm | 2 +- maps/LancesRoom.asm | 2 +- maps/MobileBattleRoom.asm | 4 ++-- maps/MrPokemonsHouse.asm | 2 +- maps/OlivineLighthouse6F.asm | 12 ++++++------ maps/OlivinePort.asm | 2 +- maps/RadioTower5F.asm | 2 +- maps/Route24.asm | 2 +- maps/Route26HealSpeechHouse.asm | 2 +- maps/Route35NationalParkgate.asm | 4 ++-- maps/Route36NationalParkgate.asm | 6 +++--- maps/SilverCaveRoom3.asm | 2 +- maps/SlowpokeWellB1F.asm | 4 ++-- maps/SproutTower3F.asm | 2 +- maps/TeamRocketBaseB1F.asm | 12 ++++++------ maps/TeamRocketBaseB2F.asm | 6 +++--- maps/VermilionPort.asm | 2 +- maps/WarehouseEntrance.asm | 8 ++++---- misc/mobile_40.asm | 2 +- 33 files changed, 72 insertions(+), 72 deletions(-) diff --git a/engine/map_setup.asm b/engine/map_setup.asm index ef1ad715e..7444c7fbe 100644 --- a/engine/map_setup.asm +++ b/engine/map_setup.asm @@ -272,8 +272,8 @@ MapSetupCommands: ; 15440 dba LoadMapAttributes ; 1a dba LoadMapAttributes_SkipPeople ; 1b dba ClearBGPalettes ; 1c - dba RotatePalettesRightPalettes ; 1d - dba RotatePalettesLeftPalettes ; 1e + dba FadeOutPalettes ; 1d + dba FadeInPalettes ; 1e dba GetCoordOfUpperLeftCorner ; 1f dba RestoreFacingAfterWarp ; 20 dba SpawnInFacingDown ; 21 diff --git a/engine/specials.asm b/engine/specials.asm index e2b4e6195..09edbb263 100644 --- a/engine/specials.asm +++ b/engine/specials.asm @@ -66,11 +66,11 @@ SpecialsPointers:: ; c029 add_special Special_CardFlip add_special Special_DummyNonfunctionalGameCornerGame add_special Special_ClearBGPalettesBufferScreen - add_special RotatePalettesRightPalettes + add_special FadeOutPalettes add_special Special_BattleTowerFade add_special Special_FadeBlackQuickly - add_special RotatePalettesLeftPalettes - add_special Special_RotatePalettesLeftQuickly + add_special FadeInPalettes + add_special Special_FadeInQuickly add_special Special_ReloadSpritesNoPalettes add_special ClearBGPalettes add_special UpdateTimePals diff --git a/engine/timeofdaypals.asm b/engine/timeofdaypals.asm index b977772eb..368636758 100644 --- a/engine/timeofdaypals.asm +++ b/engine/timeofdaypals.asm @@ -116,7 +116,7 @@ _UpdateTimePals:: ; 8c070 ret ; 8c079 -RotatePalettesLeftPalettes:: ; 8c079 +FadeInPalettes:: ; 8c079 ld c, $12 call GetTimePalFade ld b, $4 @@ -124,7 +124,7 @@ RotatePalettesLeftPalettes:: ; 8c079 ret ; 8c084 -RotatePalettesRightPalettes:: ; 8c084 +FadeOutPalettes:: ; 8c084 call Function8c0c1 ld c, $9 call GetTimePalFade @@ -150,7 +150,7 @@ endr ret ; 8c0ab -Special_RotatePalettesLeftQuickly: ; 8c0ab +Special_FadeInQuickly: ; 8c0ab ld c, $0 call GetTimePalFade ld b, $4 diff --git a/event/field_moves.asm b/event/field_moves.asm index e12709b1e..d6fa4a0bb 100755 --- a/event/field_moves.asm +++ b/event/field_moves.asm @@ -7,7 +7,7 @@ PlayWhirlpoolSound: ; 8c7d4 ; 8c7e1 BlindingFlash: ; 8c7e1 - callba RotatePalettesRightPalettes + callba FadeOutPalettes ld hl, StatusFlags set 2, [hl] callba Function8c0e5 @@ -15,7 +15,7 @@ BlindingFlash: ; 8c7e1 ld b, SCGB_09 call GetSGBLayout callba Function49409 - callba RotatePalettesLeftPalettes + callba FadeInPalettes ret ; 8c80a diff --git a/event/halloffame.asm b/event/halloffame.asm index 9aa088495..d4b86286d 100755 --- a/event/halloffame.asm +++ b/event/halloffame.asm @@ -40,7 +40,7 @@ RedCredits:: ; 86455 ld [MusicFadeIDHi], a ld a, $a ld [MusicFade], a - callba RotatePalettesRightPalettes + callba FadeOutPalettes xor a ld [VramState], a ld [hMapAnims], a @@ -63,7 +63,7 @@ Function8648e: ; 8648e ld [MusicFadeIDHi], a ld a, 10 ld [MusicFade], a - callba RotatePalettesRightPalettes + callba FadeOutPalettes xor a ld [VramState], a ld [hMapAnims], a diff --git a/event/sacred_ash.asm b/event/sacred_ash.asm index 1b0a4e244..00b80bb46 100755 --- a/event/sacred_ash.asm +++ b/event/sacred_ash.asm @@ -52,12 +52,12 @@ SacredAshScript: ; 0x50821 special HealParty reloadmappart playsound SFX_WARP_TO - special RotatePalettesRightPalettes - special RotatePalettesLeftPalettes - special RotatePalettesRightPalettes - special RotatePalettesLeftPalettes - special RotatePalettesRightPalettes - special RotatePalettesLeftPalettes + special FadeOutPalettes + special FadeInPalettes + special FadeOutPalettes + special FadeInPalettes + special FadeOutPalettes + special FadeInPalettes waitbutton writetext UnknownText_0x50845 playsound SFX_CAUGHT_MON diff --git a/event/whiteout.asm b/event/whiteout.asm index cc42714d0..2e8774b8f 100755 --- a/event/whiteout.asm +++ b/event/whiteout.asm @@ -10,7 +10,7 @@ Script_OverworldWhiteout:: ; 0x124c8 Script_Whiteout: ; 0x124ce writetext .WhitedOutText closetext - special RotatePalettesRightPalettes + special FadeOutPalettes pause 40 special HealParty checkflag ENGINE_BUG_CONTEST_TIMER diff --git a/home/map.asm b/home/map.asm index d50c99349..e385517a1 100644 --- a/home/map.asm +++ b/home/map.asm @@ -2007,7 +2007,7 @@ FadeToMenu:: ; 2b29 xor a ld [hBGMapMode], a call LoadStandardMenuDataHeader - callba RotatePalettesRightPalettes + callba FadeOutPalettes call ClearSprites call DisableSpriteUpdates ret @@ -2034,7 +2034,7 @@ Function2b5c:: ; 2b5c call GetSGBLayout callba Function49409 call Function3200 - callba RotatePalettesLeftPalettes + callba FadeInPalettes call EnableSpriteUpdates ret ; 2b74 diff --git a/maps/BattleTowerBattleRoom.asm b/maps/BattleTowerBattleRoom.asm index 07e0b8016..858b51fb0 100644 --- a/maps/BattleTowerBattleRoom.asm +++ b/maps/BattleTowerBattleRoom.asm @@ -31,7 +31,7 @@ Script_BattleRoomLoop: ; 0x9f425 keeptextopen loadmovesprites special BattleTowerBattle ; calls predef startbattle - special RotatePalettesRightPalettes + special FadeOutPalettes reloadmap if_not_equal $0, Script_FailedBattleTowerChallenge copybytetovar wNrOfBeatenBattleTowerTrainers ; wcf64 @@ -46,10 +46,10 @@ Script_BattleRoomLoop: ; 0x9f425 closetext loadmovesprites playmusic MUSIC_HEAL - special RotatePalettesRightPalettes + special FadeOutPalettes special LoadMapPalettes pause 60 - special RotatePalettesLeftPalettes + special FadeInPalettes special RestartMapMusic loadfont writetext Text_NextUpOpponentNo @@ -73,7 +73,7 @@ Script_DontBattleNextOpponent: ; 0x9f483 special BattleTowerAction playsound SFX_SAVE waitbutton - special RotatePalettesRightPalettes + special FadeOutPalettes special Reset Script_DontSaveAndEndTheSession: ; 0x9f4a3 writetext Text_CancelYourBattleRoomChallenge @@ -84,7 +84,7 @@ Script_DontSaveAndEndTheSession: ; 0x9f4a3 writebyte BATTLE_TOWER_ACTION_06 special BattleTowerAction loadmovesprites - special RotatePalettesRightPalettes + special FadeOutPalettes warpfacing UP, BATTLE_TOWER_1F, $7, $7 loadfont jump UnknownScript_0x9e4b0 diff --git a/maps/BluesHouse.asm b/maps/BluesHouse.asm index f15cbd1f3..36d06b943 100644 --- a/maps/BluesHouse.asm +++ b/maps/BluesHouse.asm @@ -30,10 +30,10 @@ UnknownScript_0x19b0de: writetext UnknownText_0x19b266 closetext loadmovesprites - special RotatePalettesRightPalettes + special FadeOutPalettes playmusic MUSIC_HEAL pause 60 - special RotatePalettesLeftPalettes + special FadeInPalettes special RestartMapMusic loadfont writetext UnknownText_0x19b296 diff --git a/maps/EcruteakGym.asm b/maps/EcruteakGym.asm index 2e205fa8a..f3e136c9d 100644 --- a/maps/EcruteakGym.asm +++ b/maps/EcruteakGym.asm @@ -84,7 +84,7 @@ UnknownScript_0x99dc6: follow PLAYER, $8 applymovement PLAYER, MovementData_0x99e5f stopfollow - special RotatePalettesRightPalettes + special FadeOutPalettes playsound SFX_ENTER_DOOR waitbutton warp ECRUTEAK_CITY, $6, $1b diff --git a/maps/FastShip1F.asm b/maps/FastShip1F.asm index ec41829db..be1675a1b 100644 --- a/maps/FastShip1F.asm +++ b/maps/FastShip1F.asm @@ -64,7 +64,7 @@ SailorScript_0x75160: loadmovesprites scall .LetThePlayerOut playsound SFX_EXIT_BUILDING - special RotatePalettesRightPalettes + special FadeOutPalettes waitbutton setevent EVENT_VERMILION_PORT_SAILOR_AT_GANGWAY domaptrigger VERMILION_PORT, $1 @@ -77,7 +77,7 @@ SailorScript_0x75160: loadmovesprites scall .LetThePlayerOut playsound SFX_EXIT_BUILDING - special RotatePalettesRightPalettes + special FadeOutPalettes waitbutton setevent EVENT_OLIVINE_PORT_SAILOR_AT_GANGWAY domaptrigger OLIVINE_PORT, $1 diff --git a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm index 69a499841..70759c740 100644 --- a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm +++ b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm @@ -43,7 +43,7 @@ TwinScript_0x75ebb: appear $4 spriteface PLAYER, UP spriteface $4, UP - special Special_RotatePalettesLeftQuickly + special Special_FadeInQuickly spriteface $3, DOWN showemote EMOTE_SHOCK, $3, 15 applymovement $4, MovementData_0x7600c diff --git a/maps/FastShipCabins_SW_SSW_NW.asm b/maps/FastShipCabins_SW_SSW_NW.asm index c459b1e7e..493ee070e 100644 --- a/maps/FastShipCabins_SW_SSW_NW.asm +++ b/maps/FastShipCabins_SW_SSW_NW.asm @@ -70,7 +70,7 @@ FastShipBed: playmusic MUSIC_HEAL pause 60 special RestartMapMusic - special Special_RotatePalettesLeftQuickly + special Special_FadeInQuickly loadfont writetext FastShipBedText2 closetext diff --git a/maps/IndigoPlateauPokeCenter1F.asm b/maps/IndigoPlateauPokeCenter1F.asm index 5cce7f36c..6595cc0a9 100644 --- a/maps/IndigoPlateauPokeCenter1F.asm +++ b/maps/IndigoPlateauPokeCenter1F.asm @@ -154,7 +154,7 @@ TeleportGuyScript: closetext loadmovesprites playsound SFX_WARP_TO - special RotatePalettesRightPalettes + special FadeOutPalettes waitbutton warp NEW_BARK_TOWN, $d, $6 end diff --git a/maps/LancesRoom.asm b/maps/LancesRoom.asm index 549baf320..0a89ea3a7 100644 --- a/maps/LancesRoom.asm +++ b/maps/LancesRoom.asm @@ -125,7 +125,7 @@ LanceScript_0x180e7b: pause 30 loadmovesprites applymovement $3, MovementData_0x180f5b - special RotatePalettesRightPalettes + special FadeOutPalettes pause 15 warpfacing UP, HALL_OF_FAME, $4, $d end diff --git a/maps/MobileBattleRoom.asm b/maps/MobileBattleRoom.asm index 44ee3a5b1..c672c3b69 100644 --- a/maps/MobileBattleRoom.asm +++ b/maps/MobileBattleRoom.asm @@ -35,11 +35,11 @@ MapMobileBattleRoomSignpost0Script: writetext MobileBattleRoom_HealText pause 20 loadmovesprites - special RotatePalettesRightPalettes + special FadeOutPalettes playmusic MUSIC_HEAL special LoadMapPalettes pause 60 - special RotatePalettesLeftPalettes + special FadeInPalettes special RestartMapMusic refreshscreen $0 .two_: diff --git a/maps/MrPokemonsHouse.asm b/maps/MrPokemonsHouse.asm index cc1f22f21..aeac05928 100644 --- a/maps/MrPokemonsHouse.asm +++ b/maps/MrPokemonsHouse.asm @@ -114,7 +114,7 @@ UnknownScript_0x196ec9: special Mobile_HealParty special HealParty pause 60 - special Special_RotatePalettesLeftQuickly + special Special_FadeInQuickly special RestartMapMusic loadfont writetext UnknownText_0x197134 diff --git a/maps/OlivineLighthouse6F.asm b/maps/OlivineLighthouse6F.asm index b8986bad8..aae5ed42e 100644 --- a/maps/OlivineLighthouse6F.asm +++ b/maps/OlivineLighthouse6F.asm @@ -42,9 +42,9 @@ UnknownScript_0x60bab: loadmovesprites special RestartMapMusic cry AMPHAROS - special RotatePalettesRightPalettes + special FadeOutPalettes pause 10 - special RotatePalettesLeftPalettes + special FadeInPalettes loadfont writetext UnknownText_0x60f3d closetext @@ -116,10 +116,10 @@ UnknownScript_0x60c51: cry AMPHAROS closetext loadmovesprites - special RotatePalettesRightPalettes - special RotatePalettesLeftPalettes - special RotatePalettesRightPalettes - special RotatePalettesLeftPalettes + special FadeOutPalettes + special FadeInPalettes + special FadeOutPalettes + special FadeInPalettes end ItemFragment_0x60c66: diff --git a/maps/OlivinePort.asm b/maps/OlivinePort.asm index 39d77694f..38941d295 100644 --- a/maps/OlivinePort.asm +++ b/maps/OlivinePort.asm @@ -39,7 +39,7 @@ SailorScript_0x748c0: waitbutton applymovement PLAYER, MovementData_0x74a30 playsound SFX_EXIT_BUILDING - special RotatePalettesRightPalettes + special FadeOutPalettes waitbutton checkevent EVENT_FAST_SHIP_FIRST_TIME iffalse UnknownScript_0x7490a diff --git a/maps/RadioTower5F.asm b/maps/RadioTower5F.asm index 3f1b16882..32a363e55 100644 --- a/maps/RadioTower5F.asm +++ b/maps/RadioTower5F.asm @@ -95,7 +95,7 @@ UnknownScript_0x6006e: disappear $3 disappear $4 pause 15 - special Special_RotatePalettesLeftQuickly + special Special_FadeInQuickly setevent EVENT_BEAT_ROCKET_EXECUTIVEM_1 setevent EVENT_CLEARED_RADIO_TOWER clearflag ENGINE_ROCKETS_IN_RADIO_TOWER diff --git a/maps/Route24.asm b/maps/Route24.asm index 0e6467288..b828c9e89 100644 --- a/maps/Route24.asm +++ b/maps/Route24.asm @@ -29,7 +29,7 @@ RocketScript_0x1adbfa: special Special_ReloadSpritesNoPalettes disappear $2 pause 25 - special Special_RotatePalettesLeftQuickly + special Special_FadeInQuickly playmapmusic end diff --git a/maps/Route26HealSpeechHouse.asm b/maps/Route26HealSpeechHouse.asm index e187b09d4..785daaeb2 100644 --- a/maps/Route26HealSpeechHouse.asm +++ b/maps/Route26HealSpeechHouse.asm @@ -17,7 +17,7 @@ TeacherScript_0x7b125: playmusic MUSIC_HEAL special HealParty pause 60 - special Special_RotatePalettesLeftQuickly + special Special_FadeInQuickly special RestartMapMusic loadfont writetext UnknownText_0x7b18b diff --git a/maps/Route35NationalParkgate.asm b/maps/Route35NationalParkgate.asm index 005b1f1fd..ba5c3516a 100644 --- a/maps/Route35NationalParkgate.asm +++ b/maps/Route35NationalParkgate.asm @@ -75,7 +75,7 @@ Route35NationalParkgate_GoBackIn: loadmovesprites scall Route35NationalParkgate_EnterContest playsound SFX_ENTER_DOOR - special RotatePalettesRightPalettes + special FadeOutPalettes waitbutton warpfacing UP, NATIONAL_PARK_BUG_CONTEST, $a, $2f end @@ -112,7 +112,7 @@ Route35NationalParkgate_OkayToProceed: special Special_GiveParkBalls scall Route35NationalParkgate_EnterContest playsound SFX_ENTER_DOOR - special RotatePalettesRightPalettes + special FadeOutPalettes waitbutton special Special_SelectRandomBugContestContestants warpfacing UP, NATIONAL_PARK_BUG_CONTEST, $a, $2f diff --git a/maps/Route36NationalParkgate.asm b/maps/Route36NationalParkgate.asm index 495ef1856..03c8c2474 100644 --- a/maps/Route36NationalParkgate.asm +++ b/maps/Route36NationalParkgate.asm @@ -74,7 +74,7 @@ Route36NationalParkgate_MapScriptHeader: appear $d applymovement PLAYER, MovementData_0x6add1 pause 15 - special Special_RotatePalettesLeftQuickly + special Special_FadeInQuickly jumpstd bugcontestresults .GoBackToContest: @@ -83,7 +83,7 @@ Route36NationalParkgate_MapScriptHeader: loadmovesprites spriteface PLAYER, LEFT playsound SFX_EXIT_BUILDING - special RotatePalettesRightPalettes + special FadeOutPalettes waitbutton warpfacing LEFT, NATIONAL_PARK_BUG_CONTEST, $21, $12 end @@ -166,7 +166,7 @@ Route36OfficerScriptContest: special Special_GiveParkBalls spriteface PLAYER, LEFT playsound SFX_EXIT_BUILDING - special RotatePalettesRightPalettes + special FadeOutPalettes waitbutton special Special_SelectRandomBugContestContestants warpfacing LEFT, NATIONAL_PARK_BUG_CONTEST, $21, $12 diff --git a/maps/SilverCaveRoom3.asm b/maps/SilverCaveRoom3.asm index b01588ba6..08831af22 100644 --- a/maps/SilverCaveRoom3.asm +++ b/maps/SilverCaveRoom3.asm @@ -26,7 +26,7 @@ RedScript_0x18c603: special Special_ReloadSpritesNoPalettes disappear $2 pause 15 - special Special_RotatePalettesLeftQuickly + special Special_FadeInQuickly pause 30 special HealParty refreshscreen $0 diff --git a/maps/SlowpokeWellB1F.asm b/maps/SlowpokeWellB1F.asm index 1d98bf807..27b397543 100644 --- a/maps/SlowpokeWellB1F.asm +++ b/maps/SlowpokeWellB1F.asm @@ -34,7 +34,7 @@ GruntM1Script: disappear $4 disappear $5 pause 15 - special Special_RotatePalettesLeftQuickly + special Special_FadeInQuickly disappear $8 moveperson $8, $b, $6 appear $8 @@ -56,7 +56,7 @@ GruntM1Script: clearevent EVENT_AZALEA_TOWN_SLOWPOKES clearevent EVENT_KURTS_HOUSE_SLOWPOKE clearevent EVENT_KURTS_HOUSE_KURT_1 - special RotatePalettesRightPalettes + special FadeOutPalettes special HealParty pause 15 warp KURTS_HOUSE, $3, $3 diff --git a/maps/SproutTower3F.asm b/maps/SproutTower3F.asm index 06c85c22b..c8a1216a8 100644 --- a/maps/SproutTower3F.asm +++ b/maps/SproutTower3F.asm @@ -51,7 +51,7 @@ UnknownScript_0x184947: special Special_ReloadSpritesNoPalettes disappear $8 waitbutton - special Special_RotatePalettesLeftQuickly + special Special_FadeInQuickly dotrigger $1 special RestartMapMusic end diff --git a/maps/TeamRocketBaseB1F.asm b/maps/TeamRocketBaseB1F.asm index 5bd666972..e9e68a97d 100644 --- a/maps/TeamRocketBaseB1F.asm +++ b/maps/TeamRocketBaseB1F.asm @@ -445,9 +445,9 @@ ExplodingTrap22: end VoltorbExplodingTrap: - special RotatePalettesRightPalettes + special FadeOutPalettes cry VOLTORB - special RotatePalettesLeftPalettes + special FadeInPalettes setlasttalked $ff writecode VAR_BATTLETYPE, BATTLETYPE_TRAP loadpokedata VOLTORB, 23 @@ -455,9 +455,9 @@ VoltorbExplodingTrap: end GeodudeExplodingTrap: - special RotatePalettesRightPalettes + special FadeOutPalettes cry GEODUDE - special RotatePalettesLeftPalettes + special FadeInPalettes setlasttalked $ff writecode VAR_BATTLETYPE, BATTLETYPE_TRAP loadpokedata GEODUDE, 21 @@ -465,9 +465,9 @@ GeodudeExplodingTrap: end KoffingExplodingTrap: - special RotatePalettesRightPalettes + special FadeOutPalettes cry KOFFING - special RotatePalettesLeftPalettes + special FadeInPalettes setlasttalked $ff writecode VAR_BATTLETYPE, BATTLETYPE_TRAP loadpokedata KOFFING, 21 diff --git a/maps/TeamRocketBaseB2F.asm b/maps/TeamRocketBaseB2F.asm index 39b8ea4fc..2a44c4652 100644 --- a/maps/TeamRocketBaseB2F.asm +++ b/maps/TeamRocketBaseB2F.asm @@ -106,7 +106,7 @@ UnknownScript_0x6cfac: disappear $d disappear $e pause 15 - special Special_RotatePalettesLeftQuickly + special Special_FadeInQuickly dotrigger $2 clearevent EVENT_TEAM_ROCKET_BASE_B2F_LANCE spriteface $4, DOWN @@ -155,11 +155,11 @@ UnknownScript_0x6d091: writetext UnknownText_0x6da97 closetext loadmovesprites - special RotatePalettesRightPalettes + special FadeOutPalettes special Mobile_HealParty playsound SFX_FULL_HEAL special HealParty - special RotatePalettesLeftPalettes + special FadeInPalettes loadfont writetext UnknownText_0x6daf7 closetext diff --git a/maps/VermilionPort.asm b/maps/VermilionPort.asm index fd48206eb..c9cb32207 100644 --- a/maps/VermilionPort.asm +++ b/maps/VermilionPort.asm @@ -51,7 +51,7 @@ SailorScript_0x74dc4: waitbutton applymovement PLAYER, MovementData_0x74ef1 playsound SFX_EXIT_BUILDING - special RotatePalettesRightPalettes + special FadeOutPalettes waitbutton setevent EVENT_FAST_SHIP_PASSENGERS_EASTBOUND clearevent EVENT_FAST_SHIP_PASSENGERS_WESTBOUND diff --git a/maps/WarehouseEntrance.asm b/maps/WarehouseEntrance.asm index 12b9ae2d6..2ef14fcc0 100644 --- a/maps/WarehouseEntrance.asm +++ b/maps/WarehouseEntrance.asm @@ -226,10 +226,10 @@ OlderHaircutBrotherScript: writetext UnknownText_0x7c6b8 closetext loadmovesprites - special RotatePalettesRightPalettes + special FadeOutPalettes playmusic MUSIC_HEAL pause 60 - special RotatePalettesLeftPalettes + special FadeInPalettes special RestartMapMusic loadfont writetext UnknownText_0x7c6d8 @@ -309,10 +309,10 @@ YoungerHaircutBrotherScript: writetext UnknownText_0x7c80e closetext loadmovesprites - special RotatePalettesRightPalettes + special FadeOutPalettes playmusic MUSIC_HEAL pause 60 - special RotatePalettesLeftPalettes + special FadeInPalettes special RestartMapMusic loadfont writetext UnknownText_0x7c82a diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index 00581de06..9b98046c0 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -313,7 +313,7 @@ Function10016f: ; 10016f Function10020b: ; 10020b xor a ld [wc303], a - callba RotatePalettesRightPalettes + callba FadeOutPalettes callba Function106464 call HideSprites call DelayFrame