diff options
Diffstat (limited to 'engine')
46 files changed, 882 insertions, 2935 deletions
diff --git a/engine/battle_start.asm b/engine/battle_start.asm index 9097e74ed..b16bbbd67 100644 --- a/engine/battle_start.asm +++ b/engine/battle_start.asm @@ -141,7 +141,7 @@ ConvertTrainerBattlePokeballTilesTo2bpp: ; 8c2cf ; 8c2f4 TrainerBattlePokeballTiles: ; 8c2f4 -INCBIN "gfx/ow_fx/trainer_battle_pokeball_tiles.2bpp" +INCBIN "gfx/overworld/trainer_battle_pokeball_tiles.2bpp" FlashyTransitionToBattle: ; 8c314 @@ -651,11 +651,11 @@ StartTrainerBattle_LoadPokeBallGraphics: ; 8c5dc (23:45dc) ld [rSVBK], a call .copypals push hl - ld de, UnknBGPals + 7 palettes + ld de, UnknBGPals palette PAL_BG_TEXT ld bc, 1 palettes call CopyBytes pop hl - ld de, BGPals + 7 palettes + ld de, BGPals palette PAL_BG_TEXT ld bc, 1 palettes call CopyBytes pop af @@ -670,17 +670,17 @@ StartTrainerBattle_LoadPokeBallGraphics: ; 8c5dc (23:45dc) ret .copypals ; 8c677 (23:4677) - ld de, UnknBGPals + 7 palettes + ld de, UnknBGPals palette PAL_BG_TEXT call .copy - ld de, BGPals + 7 palettes + ld de, BGPals palette PAL_BG_TEXT call .copy - ld de, UnknOBPals + 6 palettes + ld de, UnknOBPals palette PAL_OW_TREE call .copy - ld de, OBPals + 6 palettes + ld de, OBPals palette PAL_OW_TREE call .copy - ld de, UnknOBPals + 7 palettes + ld de, UnknOBPals palette PAL_OW_ROCK call .copy - ld de, OBPals + 7 palettes + ld de, OBPals palette PAL_OW_ROCK .copy ; 8c698 (23:4698) push hl diff --git a/engine/battle_tower.asm b/engine/battle_tower.asm new file mode 100644 index 000000000..b880a099b --- /dev/null +++ b/engine/battle_tower.asm @@ -0,0 +1,210 @@ +Function_LoadOpponentTrainerAndPokemons: ; 1f8000 + ld a, [rSVBK] + push af + ld a, BANK(BT_OTTrainer) + ld [rSVBK], a + + ; Fill BT_OTTrainer with zeros + xor a + ld hl, BT_OTTrainer + ld bc, BT_OTTrainerEnd - BT_OTTrainer + call ByteFill + + ; Write $ff into the Item-Slots + ld a, $ff + ld [BT_OTPkmn1Item], a + ld [BT_OTPkmn2Item], a + ld [BT_OTPkmn3Item], a + + ; Set BT_OTTrainer as start address to write the following data to + ld de, BT_OTTrainer + + ld a, [hRandomAdd] + ld b, a +.resample ; loop to find a random trainer + call Random + ld a, [hRandomAdd] + add b + ld b, a ; b contains the nr of the trainer +IF DEF(CRYSTAL11) + and (1 << 7) - 1 + cp 70 +ELSE + and (1 << 5) - 1 + cp 21 +ENDC + jr nc, .resample + ld b, a + + ld a, BANK(sBTTrainers) + call GetSRAMBank + + ld c, BATTLETOWER_NROFTRAINERS + ld hl, sBTTrainers +.next_trainer + ld a, [hli] + cp b + jr z, .resample + dec c + jr nz, .next_trainer ; c <= 7 initialise all 7 trainers? + + ld hl, sBTTrainers + ld a, [sNrOfBeatenBattleTowerTrainers] + ld c, a + ld a, b + ld b, 0 + add hl, bc + ld [hl], a + + call CloseSRAM + + push af +; Copy name (10 bytes) and class (1 byte) of trainer + ld hl, BattleTowerTrainers + ld bc, NAME_LENGTH + call AddNTimes + ld bc, NAME_LENGTH + call CopyBytes + + call Function_LoadRandomBattleTowerPkmn + pop af + + ld hl, BattleTowerTrainerData + ld bc, BATTLETOWER_TRAINERDATALENGTH + call AddNTimes + ld bc, BATTLETOWER_TRAINERDATALENGTH +.copy_bt_trainer_data_loop + ld a, BANK(BattleTowerTrainerData) + call GetFarByte + ld [de], a + inc hl + inc de + dec bc + ld a, b + or c + jr nz, .copy_bt_trainer_data_loop + + pop af + ld [rSVBK], a + + ret + + +Function_LoadRandomBattleTowerPkmn: ; 1f8081 + ld c, BATTLETOWER_NROFPKMNS +.loop + push bc + ld a, BANK(sBTPkmnPrevTrainer1) + call GetSRAMBank + +.FindARandomBattleTowerPkmn: + ; From Which LevelGroup are the Pkmn loaded + ; a = 1..10 + ld a, [wBTChoiceOfLvlGroup] ; [$d800] + dec a + ld hl, BattleTowerMons + ld bc, BattleTowerMons2 - BattleTowerMons1 + call AddNTimes + + ld a, [hRandomAdd] + ld b, a +.resample + call Random + ld a, [hRandomAdd] + add b + ld b, a + and $1f + cp BATTLETOWER_NRMONSPERLEVELBRACKET + jr nc, .resample + ; in register 'a' is the chosen Pkmn of the LevelGroup + + ; Check if Pkmn was already loaded before + ; Check current and the 2 previous teams + ; includes check if item is double at the current team + ld bc, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH + call AddNTimes + ld a, [hli] + ld b, a + ld a, [hld] + ld c, a + ld a, [BT_OTPkmn1] + cp b + jr z, .FindARandomBattleTowerPkmn + ld a, [BT_OTPkmn1Item] + cp c + jr z, .FindARandomBattleTowerPkmn + ld a, [BT_OTPkmn2] + cp b + jr z, .FindARandomBattleTowerPkmn + ld a, [BT_OTPkmn2Item] + cp c + jr z, .FindARandomBattleTowerPkmn + ld a, [BT_OTPkmn3] + cp b + jr z, .FindARandomBattleTowerPkmn + ld a, [BT_OTPkmn3Item] + cp c + jr z, .FindARandomBattleTowerPkmn + ld a, [sBTPkmnPrevTrainer1] + cp b + jr z, .FindARandomBattleTowerPkmn + ld a, [sBTPkmnPrevTrainer2] + cp b + jr z, .FindARandomBattleTowerPkmn + ld a, [sBTPkmnPrevTrainer3] + cp b + jr z, .FindARandomBattleTowerPkmn + ld a, [sBTPkmnPrevPrevTrainer1] + cp b + jr z, .FindARandomBattleTowerPkmn + ld a, [sBTPkmnPrevPrevTrainer2] + cp b + jr z, .FindARandomBattleTowerPkmn + ld a, [sBTPkmnPrevPrevTrainer3] + cp b + jr z, .FindARandomBattleTowerPkmn + + ld bc, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH + call CopyBytes + + ld a, [wNamedObjectIndexBuffer] + push af + push de + ld hl, - (PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH) + add hl, de + ld a, [hl] + ld [wNamedObjectIndexBuffer], a + ld bc, PARTYMON_STRUCT_LENGTH + add hl, bc + push hl + call GetPokemonName + ld h, d + ld l, e + pop de + ld bc, PKMN_NAME_LENGTH + call CopyBytes + + pop de + pop af + ld [wNamedObjectIndexBuffer], a + pop bc + dec c + jp nz, .loop + + ld a, [sBTPkmnPrevTrainer1] + ld [sBTPkmnPrevPrevTrainer1], a + ld a, [sBTPkmnPrevTrainer2] + ld [sBTPkmnPrevPrevTrainer2], a + ld a, [sBTPkmnPrevTrainer3] + ld [sBTPkmnPrevPrevTrainer3], a + ld a, [BT_OTPkmn1] + ld [sBTPkmnPrevTrainer1], a + ld a, [BT_OTPkmn2] + ld [sBTPkmnPrevTrainer2], a + ld a, [BT_OTPkmn3] + ld [sBTPkmnPrevTrainer3], a + call CloseSRAM + ret +; 1f814e + +INCLUDE "data/battle_tower.asm" diff --git a/engine/breeding/egg.asm b/engine/breeding/egg.asm index 5051083b2..b402f99f1 100755 --- a/engine/breeding/egg.asm +++ b/engine/breeding/egg.asm @@ -888,7 +888,7 @@ Special_DayCareMon1: ; 17421 call PrintText ld a, [wBreedMon1Species] call PlayCry - ld a, [wDaycareLady] + ld a, [wDayCareLady] bit 0, a jr z, DayCareMonCursor call ButtonSound @@ -901,7 +901,7 @@ Special_DayCareMon2: ; 17440 call PrintText ld a, [wBreedMon2Species] call PlayCry - ld a, [wDaycareMan] + ld a, [wDayCareMan] bit 0, a jr z, DayCareMonCursor call ButtonSound diff --git a/engine/color.asm b/engine/color.asm index 3bc431d22..add8c24ac 100644 --- a/engine/color.asm +++ b/engine/color.asm @@ -1859,7 +1859,7 @@ SGBBorderPalettes: RGB 31, 31, 25 SGBBorder: -INCBIN "gfx/misc/sgb_border.2bpp" +INCBIN "gfx/sgb/sgb_border.2bpp" Palettes_a8be: RGB 30, 26, 15 @@ -1877,7 +1877,7 @@ Palettes_a8ca: INCLUDE "gfx/pics/palette_pointers.asm" -INCLUDE "gfx/trainers/palette_pointers.asm" +INCLUDE "gfx/trainer_palettes.asm" LoadMapPals: callba LoadSpecialMapPalette @@ -1948,7 +1948,7 @@ LoadMapPals: call AddNTimes ld de, UnknOBPals ld bc, 8 palettes - ld a, $5 ; BANK(UnknOBPals) + ld a, BANK(UnknOBPals) call FarCopyWRAM ld a, [wPermission] @@ -1967,13 +1967,13 @@ LoadMapPals: add hl, de ld a, [TimeOfDayPal] and 3 - cp NITE + cp NITE_F jr c, .morn_day rept 4 inc hl endr .morn_day - ld de, UnknBGPals + 6 palettes + 2 + ld de, UnknBGPals palette PAL_BG_ROOF + 2 ld bc, 4 ld a, $5 call FarCopyWRAM @@ -1983,10 +1983,10 @@ endr dw .OutdoorColors ; unused dw .OutdoorColors ; TOWN dw .OutdoorColors ; ROUTE - dw .IndoorColors ; INDOOR + dw .IndoorColors ; INDOOR dw .DungeonColors ; CAVE - dw .Perm5Colors ; PERM_5 - dw .IndoorColors ; GATE + dw .Perm5Colors ; PERM_5 + dw .IndoorColors ; GATE dw .DungeonColors ; DUNGEON ; Valid indices: $00 - $29 @@ -2267,7 +2267,7 @@ Palettes_b789: RGB 18, 18, 18 RGB 00, 00, 00 -Palettes_b7a9: +SlotMachinePals: RGB 31, 31, 31 RGB 24, 25, 28 RGB 24, 24, 09 diff --git a/engine/decorations.asm b/engine/decorations.asm index ad82a2080..b69f4f3c3 100755 --- a/engine/decorations.asm +++ b/engine/decorations.asm @@ -541,69 +541,7 @@ GetDecorationSprite: ; 26a44 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 - +INCLUDE "data/decoration_attributes.asm" DecorationNames: ; 26b8d db "CANCEL@" diff --git a/engine/delete_save_change_clock.asm b/engine/delete_save_change_clock.asm index 7a806ad01..782b95425 100755 --- a/engine/delete_save_change_clock.asm +++ b/engine/delete_save_change_clock.asm @@ -127,7 +127,7 @@ ClockResetPassword: ; 4d41e ld e, a ld d, $0 add hl, de - ld [hl], $61 + ld [hl], "▲" ret .dpadinput ; 4d490 @@ -227,7 +227,7 @@ ClockResetPassword: ; 4d41e ld c, $2 call .ComponentFromNumber ld hl, sPlayerData + (PlayerName - wPlayerData) - ld c, $5 ; PLAYER_NAME_LENGTH_J + ld c, NAME_LENGTH_JAPANESE - 1 call .ComponentFromString ld hl, sPlayerData + (Money - wPlayerData) ld c, $3 diff --git a/engine/engine_flags.asm b/engine/engine_flags.asm index 3bca8dd87..acda9ede7 100644 --- a/engine/engine_flags.asm +++ b/engine/engine_flags.asm @@ -83,206 +83,4 @@ EngineFlagAction:: ; 80430 ; 80462 -EngineFlags: ; 80462 -; All locations are in WRAM bank 1. -engine_flag: MACRO - dwb \1, 1 << \2 -ENDM - ; location, bit - - ; pokegear - engine_flag wPokegearFlags, 1 ; radio card ; $0 - engine_flag wPokegearFlags, 0 ; map card - engine_flag wPokegearFlags, 2 ; phone card - engine_flag wPokegearFlags, 3 ; expn card - engine_flag wPokegearFlags, 7 ; on/off - - ; wDaycareMan, 7 ; daycare 1 on - engine_flag wDaycareMan, 6 ; egg is ready - ; wDaycareMan, 5 ; monster 1 and 2 are compatible - engine_flag wDaycareMan, 0 ; monster 1 in daycare - - ; wDaycareLady, 7 = daycare 2 on - engine_flag wDaycareLady, 0 ; monster 2 in daycare - - engine_flag wMomSavingMoney, 0 ; mom saving money ; $8 - engine_flag wMomSavingMoney, 7 ; dst - - engine_flag wUnusedTwoDayTimerOn, 0 ; unused, possibly related to a 2-day timer - - engine_flag StatusFlags, 0 ; pokedex - engine_flag StatusFlags, 1 ; unown dex - engine_flag StatusFlags, 3 ; pokerus - engine_flag StatusFlags, 4 ; rocket signal on ch20 - 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 ; safari zone? - 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 - engine_flag StatusFlags2, 6 ; berry -> berry juice when trading? - engine_flag StatusFlags2, 7 ; rockets in mahogany - - engine_flag BikeFlags, 0 ; strength active ; $18 - engine_flag BikeFlags, 1 ; always on bike (cant surf) - engine_flag BikeFlags, 2 ; downhill (cycling road) - - engine_flag JohtoBadges, 0 ; zephyrbadge - engine_flag JohtoBadges, 1 ; hivebadge - engine_flag JohtoBadges, 2 ; plainbadge - engine_flag JohtoBadges, 3 ; fogbadge - engine_flag JohtoBadges, 4 ; mineralbadge - engine_flag JohtoBadges, 5 ; stormbadge ; $20 - engine_flag JohtoBadges, 6 ; glacierbadge - engine_flag JohtoBadges, 7 ; risingbadge - - engine_flag KantoBadges, 0 ; boulderbadge - engine_flag KantoBadges, 1 ; cascadebadge - engine_flag KantoBadges, 2 ; thunderbadge - engine_flag KantoBadges, 3 ; rainbowbadge - engine_flag KantoBadges, 4 ; soulbadge - engine_flag KantoBadges, 5 ; marshbadge ; $28 - engine_flag KantoBadges, 6 ; volcanobadge - engine_flag KantoBadges, 7 ; earthbadge - - ; unown sets - engine_flag UnlockedUnowns, 0 ; 1 - engine_flag UnlockedUnowns, 1 ; 2 - engine_flag UnlockedUnowns, 2 ; 3 - engine_flag UnlockedUnowns, 3 ; 4 - engine_flag UnlockedUnowns, 4 ; 5 - engine_flag UnlockedUnowns, 5 ; 6 ; $30 - engine_flag UnlockedUnowns, 6 ; 7 - 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 + 1, 0 ; lavender - engine_flag VisitedSpawns + 1, 1 ; saffron - engine_flag VisitedSpawns + 1, 2 ; celadon - engine_flag VisitedSpawns + 1, 3 ; fuchsia - engine_flag VisitedSpawns + 1, 4 ; cinnabar - engine_flag VisitedSpawns + 1, 5 ; indigo plateau ; $40 - 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 - engine_flag VisitedSpawns + 2, 5 ; olivine - engine_flag VisitedSpawns + 2, 6 ; ecruteak ; $48 - engine_flag VisitedSpawns + 2, 7 ; mahogany - 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 - engine_flag StatusFlags2, 3 ; ???? - - engine_flag DailyFlags, 0 ; kurt making balls ; $50 - engine_flag DailyFlags, 1 ; ???? - engine_flag DailyFlags, 2 ; special wilddata? - engine_flag DailyFlags, 3 ; time capsule (24h wait) - engine_flag DailyFlags, 4 ; all fruit trees - engine_flag DailyFlags, 5 ; shuckle given - engine_flag DailyFlags, 6 ; goldenrod underground merchant closed - engine_flag DailyFlags, 7 ; fought in trainer hall today - - engine_flag WeeklyFlags, 0 ; mt moon square clefairy ; $58 - engine_flag WeeklyFlags, 1 ; union cave lapras - engine_flag WeeklyFlags, 2 ; goldenrod underground haircut used - engine_flag WeeklyFlags, 3 ; goldenrod mall happiness event floor05 person07 - engine_flag WeeklyFlags, 4 ; tea in blues house - engine_flag WeeklyFlags, 5 ; indigo plateau rival fight - engine_flag WeeklyFlags, 6 ; move tutor - engine_flag WeeklyFlags, 7 ; buenas password - - engine_flag SwarmFlags, 0 ; buenas password 2 - engine_flag SwarmFlags, 1 ; goldenrod dept store sale is on - - engine_flag GameTimerPause, 7 ; $62 - - engine_flag PlayerGender, 0 ; player is female - - engine_flag wCelebiEvent, 2 ; have gs ball after kurt examined it - - ; rematches - engine_flag wDailyRematchFlags, 0 ; jack - engine_flag wDailyRematchFlags, 1 ; huey - engine_flag wDailyRematchFlags, 2 ; gaven - engine_flag wDailyRematchFlags, 3 ; beth ; $68 - engine_flag wDailyRematchFlags, 4 ; jose - engine_flag wDailyRematchFlags, 5 ; reena - engine_flag wDailyRematchFlags, 6 ; joey - engine_flag wDailyRematchFlags, 7 ; wade - engine_flag wDailyRematchFlags + 1, 0 ; ralph - engine_flag wDailyRematchFlags + 1, 1 ; liz - engine_flag wDailyRematchFlags + 1, 2 ; anthony - engine_flag wDailyRematchFlags + 1, 3 ; todd ; $70 - engine_flag wDailyRematchFlags + 1, 4 ; gina - engine_flag wDailyRematchFlags + 1, 5 ; arnie - engine_flag wDailyRematchFlags + 1, 6 ; alan - engine_flag wDailyRematchFlags + 1, 7 ; dana - engine_flag wDailyRematchFlags + 2, 0 ; chad - engine_flag wDailyRematchFlags + 2, 1 ; tully - engine_flag wDailyRematchFlags + 2, 2 ; brent - engine_flag wDailyRematchFlags + 2, 3 ; tiffany ; $78 - engine_flag wDailyRematchFlags + 2, 4 ; vance - engine_flag wDailyRematchFlags + 2, 5 ; wilton - engine_flag wDailyRematchFlags + 2, 6 ; parry - engine_flag wDailyRematchFlags + 2, 7 ; erin - - engine_flag wDailyPhoneItemFlags, 0 ; beverly has nugget - engine_flag wDailyPhoneItemFlags, 1 ; jose has star piece - 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 - engine_flag wDailyPhoneItemFlags, 6 ; derek has nugget - 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 EVENT_WILTON_HAS_*** in constants/event_flags.asm) - - engine_flag wDailyPhoneTimeOfDayFlags, 0 - engine_flag wDailyPhoneTimeOfDayFlags, 1 ; $88 - engine_flag wDailyPhoneTimeOfDayFlags, 2 - engine_flag wDailyPhoneTimeOfDayFlags, 3 - engine_flag wDailyPhoneTimeOfDayFlags, 4 - engine_flag wDailyPhoneTimeOfDayFlags, 5 - engine_flag wDailyPhoneTimeOfDayFlags, 6 - engine_flag wDailyPhoneTimeOfDayFlags, 7 - - engine_flag wDailyPhoneTimeOfDayFlags + 1, 0 - engine_flag wDailyPhoneTimeOfDayFlags + 1, 1 ; $90 - engine_flag wDailyPhoneTimeOfDayFlags + 1, 2 - engine_flag wDailyPhoneTimeOfDayFlags + 1, 3 - engine_flag wDailyPhoneTimeOfDayFlags + 1, 4 - engine_flag wDailyPhoneTimeOfDayFlags + 1, 5 - engine_flag wDailyPhoneTimeOfDayFlags + 1, 6 - engine_flag wDailyPhoneTimeOfDayFlags + 1, 7 - - engine_flag wDailyPhoneTimeOfDayFlags + 2, 0 - engine_flag wDailyPhoneTimeOfDayFlags + 2, 1 ; $98 - engine_flag wDailyPhoneTimeOfDayFlags + 2, 2 - engine_flag wDailyPhoneTimeOfDayFlags + 2, 3 - engine_flag wDailyPhoneTimeOfDayFlags + 2, 4 - engine_flag wDailyPhoneTimeOfDayFlags + 2, 5 - engine_flag wDailyPhoneTimeOfDayFlags + 2, 6 - engine_flag wDailyPhoneTimeOfDayFlags + 2, 7 - - engine_flag wPlayerSpriteSetupFlags, 2 ; female player has been transformed into male - - engine_flag SwarmFlags, 2 ; dunsparce swarm ; $a0 - engine_flag SwarmFlags, 3 ; yanma swarm +INCLUDE "data/engine_flags.asm" diff --git a/engine/events.asm b/engine/events.asm index b8d57118e..b78010d1d 100644 --- a/engine/events.asm +++ b/engine/events.asm @@ -964,7 +964,7 @@ CountStep: ; 96b79 .skip_egg ; Increase the EXP of (both) DayCare Pokemon by 1. - callba DaycareStep + callba DayCareStep ; Every four steps, deal damage to all Poisoned Pokemon ld hl, PoisonStepCount diff --git a/engine/events_2.asm b/engine/events_2.asm index 285b3e05b..e141b6638 100644 --- a/engine/events_2.asm +++ b/engine/events_2.asm @@ -253,20 +253,9 @@ TryWildEncounter_BugContest: ; 97d64 ret ; 97d87 -ContestMons: ; 97d87 - ; %, species, min, max - db 20, CATERPIE, 7, 18 - db 20, WEEDLE, 7, 18 - db 10, METAPOD, 9, 18 - db 10, KAKUNA, 9, 18 - db 5, BUTTERFREE, 12, 15 - db 5, BEEDRILL, 12, 15 - db 10, VENONAT, 10, 16 - db 10, PARAS, 10, 17 - db 5, SCYTHER, 13, 14 - db 5, PINSIR, 13, 14 - db -1, VENOMOTH, 30, 40 -; 97db3 + +INCLUDE "data/wild/bug_contest_mons.asm" + DoBikeStep:: ; 97db3 nop diff --git a/engine/events_3.asm b/engine/events_3.asm index cff4eefb9..f53297d61 100755 --- a/engine/events_3.asm +++ b/engine/events_3.asm @@ -455,55 +455,7 @@ GetTreeMonSet: ; b823f ret ; b825e -TreeMonMaps: ; b825e -treemon_map: macro - map \1 - db \2 ; treemon set -endm - treemon_map ROUTE_26, 4 - treemon_map ROUTE_27, 4 - treemon_map ROUTE_28, 0 - treemon_map ROUTE_29, 3 - treemon_map ROUTE_30, 3 - treemon_map ROUTE_31, 3 - treemon_map ROUTE_32, 4 - treemon_map ROUTE_33, 2 - treemon_map ROUTE_34, 3 - treemon_map ROUTE_35, 3 - treemon_map ROUTE_36, 3 - treemon_map ROUTE_37, 3 - treemon_map ROUTE_38, 3 - treemon_map ROUTE_39, 3 - treemon_map ROUTE_40, 0 - treemon_map ROUTE_41, 0 - treemon_map ROUTE_42, 2 - treemon_map ROUTE_43, 5 - treemon_map ROUTE_44, 1 - treemon_map ROUTE_45, 1 - treemon_map ROUTE_46, 1 - treemon_map NEW_BARK_TOWN, 0 - treemon_map CHERRYGROVE_CITY, 0 - treemon_map VIOLET_CITY, 0 - treemon_map AZALEA_TOWN, 2 - treemon_map CIANWOOD_CITY, 0 - treemon_map GOLDENROD_CITY, 0 - treemon_map OLIVINE_CITY, 0 - treemon_map ECRUTEAK_CITY, 0 - treemon_map MAHOGANY_TOWN, 0 - treemon_map LAKE_OF_RAGE, 5 - treemon_map BLACKTHORN_CITY, 0 - treemon_map SILVER_CAVE_OUTSIDE, 0 - treemon_map ILEX_FOREST, 6 - db -1 -; b82c5 - -RockMonMaps: ; b82c5 - treemon_map CIANWOOD_CITY, 7 - treemon_map ROUTE_40, 7 - treemon_map DARK_CAVE_VIOLET_ENTRANCE, 7 - treemon_map SLOWPOKE_WELL_B1F, 7 - db -1 -; b82d2 +INCLUDE "data/wild/treemon_maps.asm" GetTreeMons: ; b82d2 ; Return the address of TreeMon table a in hl. @@ -533,128 +485,7 @@ GetTreeMons: ; b82d2 ret ; b82e8 -TreeMons: ; b82e8 - dw TreeMons1 - dw TreeMons1 - dw TreeMons2 - dw TreeMons3 - dw TreeMons4 - dw TreeMons5 - dw TreeMons6 - dw RockMons - dw TreeMons1 - -; Two tables each (normal, rare). -; Structure: -; db %, species, level - -TreeMons1: ; b82fa - db 50, SPEAROW, 10 - db 15, SPEAROW, 10 - db 15, SPEAROW, 10 - db 10, AIPOM, 10 - db 5, AIPOM, 10 - db 5, AIPOM, 10 - db -1 - - db 50, SPEAROW, 10 - db 15, HERACROSS, 10 - db 15, HERACROSS, 10 - db 10, AIPOM, 10 - db 5, AIPOM, 10 - db 5, AIPOM, 10 - db -1 - -TreeMons2: ; b8320 - db 50, SPEAROW, 10 - db 15, EKANS, 10 - db 15, SPEAROW, 10 - db 10, AIPOM, 10 - db 5, AIPOM, 10 - db 5, AIPOM, 10 - db -1 - - db 50, SPEAROW, 10 - db 15, HERACROSS, 10 - db 15, HERACROSS, 10 - db 10, AIPOM, 10 - db 5, AIPOM, 10 - db 5, AIPOM, 10 - db -1 - -TreeMons3: ; b8346 - db 50, HOOTHOOT, 10 - db 15, SPINARAK, 10 - db 15, LEDYBA, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - - db 50, HOOTHOOT, 10 - db 15, PINECO, 10 - db 15, PINECO, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - -TreeMons4: ; b836c - db 50, HOOTHOOT, 10 - db 15, EKANS, 10 - db 15, HOOTHOOT, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - - db 50, HOOTHOOT, 10 - db 15, PINECO, 10 - db 15, PINECO, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - -TreeMons5: ; b8392 - db 50, HOOTHOOT, 10 - db 15, VENONAT, 10 - db 15, HOOTHOOT, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - - db 50, HOOTHOOT, 10 - db 15, PINECO, 10 - db 15, PINECO, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - -TreeMons6: ; b83b8 - db 50, HOOTHOOT, 10 - db 15, PINECO, 10 - db 15, PINECO, 10 - db 10, NOCTOWL, 10 - db 5, BUTTERFREE, 10 - db 5, BEEDRILL, 10 - db -1 - - db 50, HOOTHOOT, 10 - db 15, CATERPIE, 10 - db 15, WEEDLE, 10 - db 10, HOOTHOOT, 10 - db 5, METAPOD, 10 - db 5, KAKUNA, 10 - db -1 - -RockMons: ; b83de - db 90, KRABBY, 15 - db 10, SHUCKLE, 15 - db -1 -; b83e5 +INCLUDE "data/wild/treemons.asm" GetTreeMon: ; b83e5 push hl @@ -850,9 +681,9 @@ LoadFishingGFX: ; b84b3 ; b84f2 FishingGFX: ; b84f2 -INCBIN "gfx/ow_fx/chris_fish.2bpp" +INCBIN "gfx/overworld/chris_fish.2bpp" ; b8582 KrisFishingGFX: ; b8582 -INCBIN "gfx/ow_fx/kris_fish.2bpp" +INCBIN "gfx/overworld/kris_fish.2bpp" ; b8612 diff --git a/engine/evolve.asm b/engine/evolve.asm index 3dc5d20b7..ada1e2f5f 100755 --- a/engine/evolve.asm +++ b/engine/evolve.asm @@ -133,13 +133,13 @@ EvolveAfterBattle_MasterLoop ; TR_NITE ld a, [TimeOfDay] - cp NITE + cp NITE_F jp nz, .dont_evolve_3 jr .proceed .happiness_daylight ld a, [TimeOfDay] - cp NITE + cp NITE_F jp z, .dont_evolve_3 jr .proceed diff --git a/engine/facings.asm b/engine/facings.asm deleted file mode 100644 index 4d2a55364..000000000 --- a/engine/facings.asm +++ /dev/null @@ -1,264 +0,0 @@ -Facings: ; 4049 -; entries correspond to FACING_* constants - dw FacingStepDown0 - dw FacingStepDown1 - dw FacingStepDown2 - dw FacingStepDown3 - dw FacingStepUp0 - dw FacingStepUp1 - dw FacingStepUp2 - dw FacingStepUp3 - dw FacingStepLeft0 - dw FacingStepLeft1 - dw FacingStepLeft2 - dw FacingStepLeft3 - dw FacingStepRight0 - dw FacingStepRight1 - dw FacingStepRight2 - dw FacingStepRight3 - dw FacingFishDown - dw FacingFishUp - dw FacingFishLeft - dw FacingFishRight - dw FacingEmote - dw FacingShadow - dw FacingBigDollAsymmetric - dw FacingBigDollSymmetric - dw FacingWeirdTree0 - dw FacingWeirdTree1 - dw FacingWeirdTree2 - dw FacingWeirdTree3 - dw FacingBoulderDust1 - dw FacingBoulderDust2 - dw FacingGrass1 - dw FacingGrass2 -FacingsEnd: - dw 0 - -NUM_FACINGS EQU (FacingsEnd - Facings) / 2 - - -; Tables used as a reference to transform OAM data. - -; Format: -; db y, x, attributes, tile index - -FacingStepDown0: -FacingStepDown2: -FacingWeirdTree0: -FacingWeirdTree2: ; standing down - db 4 ; # - db 0, 0, 0, $00 - db 0, 8, 0, $01 - db 8, 0, 2, $02 - db 8, 8, 2, $03 -; 409c - -FacingStepDown1: ; walking down 1 - db 4 ; # - db 0, 0, 0, $80 - db 0, 8, 0, $81 - db 8, 0, 2, $82 - db 8, 8, 2, $83 -; 40ad - -FacingStepDown3: ; walking down 2 - db 4 ; # - db 0, 8, X_FLIP, $80 - db 0, 0, X_FLIP, $81 - db 8, 8, 2 | X_FLIP, $82 - db 8, 0, 2 | X_FLIP, $83 -; 40be - -FacingStepUp0: -FacingStepUp2: ; standing up - db 4 ; # - db 0, 0, 0, $04 - db 0, 8, 0, $05 - db 8, 0, 2, $06 - db 8, 8, 2, $07 -; 40cf - -FacingStepUp1: ; walking up 1 - db 4 ; # - db 0, 0, 0, $84 - db 0, 8, 0, $85 - db 8, 0, 2, $86 - db 8, 8, 2, $87 -; 40e0 - -FacingStepUp3: ; walking up 2 - db 4 ; # - db 0, 8, X_FLIP, $84 - db 0, 0, X_FLIP, $85 - db 8, 8, 2 | X_FLIP, $86 - db 8, 0, 2 | X_FLIP, $87 -; 40f1 - -FacingStepLeft0: -FacingStepLeft2: ; standing left - db 4 ; # - db 0, 0, 0, $08 - db 0, 8, 0, $09 - db 8, 0, 2, $0a - db 8, 8, 2, $0b -; 4102 - -FacingStepRight0: -FacingStepRight2: ; standing right - db 4 ; # - db 0, 8, X_FLIP, $08 - db 0, 0, X_FLIP, $09 - db 8, 8, 2 | X_FLIP, $0a - db 8, 0, 2 | X_FLIP, $0b -; 4113 - -FacingStepLeft1: -FacingStepLeft3: ; walking left - db 4 ; # - db 0, 0, 0, $88 - db 0, 8, 0, $89 - db 8, 0, 2, $8a - db 8, 8, 2, $8b -; 4124 - -FacingStepRight1: -FacingStepRight3: ; walking right - db 4 ; # - db 0, 8, X_FLIP, $88 - db 0, 0, X_FLIP, $89 - db 8, 8, 2 | X_FLIP, $8a - db 8, 0, 2 | X_FLIP, $8b -; 4135 - -FacingFishDown: ; fishing down - db 5 ; # - db 0, 0, 0, $00 - db 0, 8, 0, $01 - db 8, 0, 2, $02 - db 8, 8, 2, $03 - db 16, 0, 4, $fc -; 414a - -FacingFishUp: ; fishing up - db 5 ; # - db 0, 0, 0, $04 - db 0, 8, 0, $05 - db 8, 0, 2, $06 - db 8, 8, 2, $07 - db -8, 0, 4, $fc -; 415f - -FacingFishLeft: ; fishing left - db 5 ; # - db 0, 0, 0, $08 - db 0, 8, 0, $09 - db 8, 0, 2, $0a - db 8, 8, 2, $0b - db 5, -8, 4 | X_FLIP, $fd -; 4174 - -FacingFishRight: ; fishing right - db 5 ; # - db 0, 8, X_FLIP, $08 - db 0, 0, X_FLIP, $09 - db 8, 8, 2 | X_FLIP, $0a - db 8, 0, 2 | X_FLIP, $0b - db 5, 16, 4, $fd -; 4189 - -FacingEmote: ; emote - db 4 ; # - db 0, 0, 4, $f8 - db 0, 8, 4, $f9 - db 8, 0, 4, $fa - db 8, 8, 4, $fb -; 419a - -FacingShadow: ; shadow - db 2 ; # - db 0, 0, 4, $fc - db 0, 8, 4 | X_FLIP, $fc -; 41a3 - -FacingBigDollSymmetric: ; big snorlax or lapras doll - db 16 ; # - db 0, 0, 0, $00 - db 0, 8, 0, $01 - db 8, 0, 0, $02 - db 8, 8, 0, $03 - db 16, 0, 0, $04 - db 16, 8, 0, $05 - db 24, 0, 0, $06 - db 24, 8, 0, $07 - db 0, 24, X_FLIP, $00 - db 0, 16, X_FLIP, $01 - db 8, 24, X_FLIP, $02 - db 8, 16, X_FLIP, $03 - db 16, 24, X_FLIP, $04 - db 16, 16, X_FLIP, $05 - db 24, 24, X_FLIP, $06 - db 24, 16, X_FLIP, $07 -; 41e4 - -FacingWeirdTree1: ; 41e4 - db 4 ; # - db 0, 0, 0, $04 - db 0, 8, 0, $05 - db 8, 0, 0, $06 - db 8, 8, 0, $07 -; 41f5 - -FacingWeirdTree3: ; 41f5 - db 4 ; # - db 0, 8, X_FLIP, $04 - db 0, 0, X_FLIP, $05 - db 8, 8, X_FLIP, $06 - db 8, 0, X_FLIP, $07 -; 4206 - -FacingBigDollAsymmetric: ; big doll other than snorlax or lapras - db 14 ; # - db 0, 0, 0, $00 - db 0, 8, 0, $01 - db 8, 0, 0, $04 - db 8, 8, 0, $05 - db 16, 8, 0, $07 - db 24, 8, 0, $0a - db 0, 24, 0, $03 - db 0, 16, 0, $02 - db 8, 24, X_FLIP, $02 - db 8, 16, 0, $06 - db 16, 24, 0, $09 - db 16, 16, 0, $08 - db 24, 24, X_FLIP, $04 - db 24, 16, 0, $0b -; 423f - -FacingBoulderDust1: ; boulder dust 1 - db 4 ; # - db 0, 0, 4, $fe - db 0, 8, 4, $fe - db 8, 0, 4, $fe - db 8, 8, 4, $fe -; 4250 - -FacingBoulderDust2: ; boulder dust 2 - db 4 ; # - db 0, 0, 4, $ff - db 0, 8, 4, $ff - db 8, 0, 4, $ff - db 8, 8, 4, $ff -; 4261 - -FacingGrass1: ; 4261 - db 2 ; # - db 8, 0, 4, $fe - db 8, 8, 4 | X_FLIP, $fe -; 426a - -FacingGrass2: ; 426a - db 2 ; # - db 9, -1, 4, $fe - db 9, 9, 4 | X_FLIP, $fe -; 4273 diff --git a/engine/fish.asm b/engine/fish.asm index 44fe57b25..c571bba56 100644 --- a/engine/fish.asm +++ b/engine/fish.asm @@ -81,7 +81,7 @@ endr ld a, [TimeOfDay] and 3 - cp NITE + cp NITE_F jr c, .time_species inc hl inc hl diff --git a/engine/fruit_trees.asm b/engine/fruit_trees.asm index 6a40fb05c..5c74b3bff 100644 --- a/engine/fruit_trees.asm +++ b/engine/fruit_trees.asm @@ -102,38 +102,9 @@ GetFruitTreeItem: ; 4408a ret ; 44097 -FruitTreeItems: ; 44097 - db BERRY - db BERRY - db BERRY - db BERRY - db PSNCUREBERRY - db PSNCUREBERRY - db BITTER_BERRY - db BITTER_BERRY - db PRZCUREBERRY - db PRZCUREBERRY - db MYSTERYBERRY - db MYSTERYBERRY - db ICE_BERRY - db ICE_BERRY - db MINT_BERRY - db BURNT_BERRY - db RED_APRICORN - db BLU_APRICORN - db BLK_APRICORN - db WHT_APRICORN - db PNK_APRICORN - db GRN_APRICORN - db YLW_APRICORN - db BERRY - db PSNCUREBERRY - db BITTER_BERRY - db PRZCUREBERRY - db ICE_BERRY - db MINT_BERRY - db BURNT_BERRY -; 440b5 + +INCLUDE "data/fruit_tree_items.asm" + FruitBearingTreeText: ; 440b5 text_jump _FruitBearingTreeText diff --git a/engine/healmachineanim.asm b/engine/healmachineanim.asm index bea580dcd..4f543c0b3 100755 --- a/engine/healmachineanim.asm +++ b/engine/healmachineanim.asm @@ -137,7 +137,7 @@ HealMachineAnim: ; 12324 ; 123fc .HealMachineGFX: ; 123fc -INCBIN "gfx/ow_fx/heal_machine.2bpp" +INCBIN "gfx/overworld/heal_machine.2bpp" ; 1241c .HOF_OAM: ; 1241c diff --git a/engine/intro_menu.asm b/engine/intro_menu.asm index 6dcda93f3..e0ecd41fe 100755 --- a/engine/intro_menu.asm +++ b/engine/intro_menu.asm @@ -199,8 +199,6 @@ _ResetWRAM: ; 5bae ld [Coins], a ld [Coins + 1], a -START_MONEY EQU 3000 - IF START_MONEY / $10000 ld a, START_MONEY / $10000 ENDC @@ -214,11 +212,11 @@ ENDC ld [wWhichMomItem], a ld hl, MomItemTriggerBalance - ld [hl], 2300 / $10000 + ld [hl], MOM_MONEY / $10000 inc hl - ld [hl], 2300 / $100 % $100 + ld [hl], MOM_MONEY / $100 % $100 inc hl - ld [hl], 2300 % $100 + ld [hl], MOM_MONEY % $100 call InitializeNPCNames diff --git a/engine/landmarks.asm b/engine/landmarks.asm index 465a70f3c..5e904eae8 100644 --- a/engine/landmarks.asm +++ b/engine/landmarks.asm @@ -47,213 +47,7 @@ GetLandmarkName:: ; 0x1ca8a5 ; 0x1ca8c3 -Landmarks: ; 0x1ca8c3 - -landmark: MACRO - db \1, \2 - dw \3 -ENDM - - landmark 0, 0, SpecialMapName - landmark 148, 116, NewBarkTownName - landmark 136, 116, Route29Name - landmark 108, 116, CherrygroveCityName - landmark 108, 96, Route30Name - landmark 104, 76, Route31Name - landmark 92, 76, VioletCityName - landmark 93, 74, SproutTowerName - landmark 92, 108, Route32Name - landmark 84, 92, RuinsOfAlphName - landmark 92, 140, UnionCaveName - landmark 90, 140, Route33Name - landmark 76, 140, AzaleaTownName - landmark 78, 138, SlowpokeWellName - landmark 60, 136, IlexForestName - landmark 60, 128, Route34Name - landmark 60, 108, GoldenrodCityName - landmark 58, 108, RadioTowerName - landmark 60, 92, Route35Name - landmark 60, 76, NationalParkName - landmark 72, 76, Route36Name - landmark 76, 68, Route37Name - landmark 76, 60, EcruteakCityName - landmark 78, 58, TinTowerName - landmark 74, 58, BurnedTowerName - landmark 60, 60, Route38Name - landmark 44, 64, Route39Name - landmark 44, 76, OlivineCityName - landmark 46, 78, LighthouseName - landmark 36, 72, BattleTowerName - landmark 36, 80, Route40Name - landmark 36, 108, WhirlIslandsName - landmark 36, 116, Route41Name - landmark 28, 116, CianwoodCityName - landmark 100, 60, Route42Name - landmark 92, 60, MtMortarName - landmark 116, 60, MahoganyTownName - landmark 116, 52, Route43Name - landmark 116, 44, LakeOfRageName - landmark 128, 60, Route44Name - landmark 138, 54, IcePathName - landmark 140, 60, BlackthornCityName - landmark 140, 52, DragonsDenName - landmark 140, 80, Route45Name - landmark 120, 88, DarkCaveName - landmark 132, 104, Route46Name - landmark 156, 84, SilverCaveName - landmark 60, 124, PalletTownName - landmark 60, 108, Route1Name - landmark 60, 92, ViridianCityName - landmark 60, 80, Route2Name - landmark 60, 68, PewterCityName - landmark 72, 68, Route3Name - landmark 84, 68, MtMoonName - landmark 96, 68, Route4Name - landmark 108, 68, CeruleanCityName - landmark 108, 60, Route24Name - landmark 116, 52, Route25Name - landmark 108, 76, Route5Name - landmark 116, 92, UndergroundName - landmark 108, 92, Route6Name - landmark 108, 100, VermilionCityName - landmark 96, 76, DiglettsCaveName - landmark 96, 84, Route7Name - landmark 124, 84, Route8Name - landmark 124, 68, Route9Name - landmark 140, 68, RockTunnelName - landmark 140, 72, Route10Name - landmark 140, 76, PowerPlantName - landmark 140, 84, LavenderTownName - landmark 148, 84, LavRadioTowerName - landmark 84, 84, CeladonCityName - landmark 108, 84, SaffronCityName - landmark 124, 100, Route11Name - landmark 140, 96, Route12Name - landmark 132, 116, Route13Name - landmark 124, 128, Route14Name - landmark 112, 132, Route15Name - landmark 76, 84, Route16Name - landmark 76, 108, Route17Name - landmark 88, 132, Route18Name - landmark 100, 132, FuchsiaCityName - landmark 100, 144, Route19Name - landmark 84, 148, Route20Name - landmark 76, 148, SeafoamIslandsName - landmark 60, 148, CinnabarIslandName - landmark 60, 136, Route21Name - landmark 44, 84, Route22Name - landmark 36, 68, VictoryRoadName - landmark 36, 60, Route23Name - landmark 36, 52, IndigoPlateauName - landmark 36, 108, Route26Name - landmark 28, 116, Route27Name - landmark 20, 116, TohjoFallsName - landmark 28, 84, Route28Name - landmark 148, 132, FastShipName - - -NewBarkTownName: db "NEW BARK¯TOWN@" -CherrygroveCityName: db "CHERRYGROVE¯CITY@" -VioletCityName: db "VIOLET CITY@" -AzaleaTownName: db "AZALEA TOWN@" -GoldenrodCityName: db "GOLDENROD¯CITY@" -EcruteakCityName: db "ECRUTEAK¯CITY@" -OlivineCityName: db "OLIVINE¯CITY@" -CianwoodCityName: db "CIANWOOD¯CITY@" -MahoganyTownName: db "MAHOGANY¯TOWN@" -BlackthornCityName: db "BLACKTHORN¯CITY@" -LakeOfRageName: db "LAKE OF¯RAGE@" -SilverCaveName: db "SILVER CAVE@" -SproutTowerName: db "SPROUT¯TOWER@" -RuinsOfAlphName: db "RUINS¯OF ALPH@" -UnionCaveName: db "UNION CAVE@" -SlowpokeWellName: db "SLOWPOKE¯WELL@" -RadioTowerName: db "RADIO TOWER@" -PowerPlantName: db "POWER PLANT@" -NationalParkName: db "NATIONAL¯PARK@" -TinTowerName: db "TIN TOWER@" -LighthouseName: db "LIGHTHOUSE@" -WhirlIslandsName: db "WHIRL¯ISLANDS@" -MtMortarName: db "MT.MORTAR@" -DragonsDenName: db "DRAGON'S¯DEN@" -IcePathName: db "ICE PATH@" -NotApplicableName: db "N/A@" -PalletTownName: db "PALLET TOWN@" -ViridianCityName: db "VIRIDIAN¯CITY@" -PewterCityName: db "PEWTER CITY@" -CeruleanCityName: db "CERULEAN¯CITY@" -LavenderTownName: db "LAVENDER¯TOWN@" -VermilionCityName: db "VERMILION¯CITY@" -CeladonCityName: db "CELADON¯CITY@" -SaffronCityName: db "SAFFRON¯CITY@" -FuchsiaCityName: db "FUCHSIA¯CITY@" -CinnabarIslandName: db "CINNABAR¯ISLAND@" -IndigoPlateauName: db "INDIGO¯PLATEAU@" -VictoryRoadName: db "VICTORY¯ROAD@" -MtMoonName: db "MT.MOON@" -RockTunnelName: db "ROCK TUNNEL@" -LavRadioTowerName: db "LAV¯RADIO TOWER@" -SilphCoName: db "SILPH CO.@" -SafariZoneName: db "SAFARI ZONE@" -SeafoamIslandsName: db "SEAFOAM¯ISLANDS@" -PokemonMansionName: db "#MON¯MANSION@" -CeruleanCaveName: db "CERULEAN¯CAVE@" -Route1Name: db "ROUTE 1@" -Route2Name: db "ROUTE 2@" -Route3Name: db "ROUTE 3@" -Route4Name: db "ROUTE 4@" -Route5Name: db "ROUTE 5@" -Route6Name: db "ROUTE 6@" -Route7Name: db "ROUTE 7@" -Route8Name: db "ROUTE 8@" -Route9Name: db "ROUTE 9@" -Route10Name: db "ROUTE 10@" -Route11Name: db "ROUTE 11@" -Route12Name: db "ROUTE 12@" -Route13Name: db "ROUTE 13@" -Route14Name: db "ROUTE 14@" -Route15Name: db "ROUTE 15@" -Route16Name: db "ROUTE 16@" -Route17Name: db "ROUTE 17@" -Route18Name: db "ROUTE 18@" -Route19Name: db "ROUTE 19@" -Route20Name: db "ROUTE 20@" -Route21Name: db "ROUTE 21@" -Route22Name: db "ROUTE 22@" -Route23Name: db "ROUTE 23@" -Route24Name: db "ROUTE 24@" -Route25Name: db "ROUTE 25@" -Route26Name: db "ROUTE 26@" -Route27Name: db "ROUTE 27@" -Route28Name: db "ROUTE 28@" -Route29Name: db "ROUTE 29@" -Route30Name: db "ROUTE 30@" -Route31Name: db "ROUTE 31@" -Route32Name: db "ROUTE 32@" -Route33Name: db "ROUTE 33@" -Route34Name: db "ROUTE 34@" -Route35Name: db "ROUTE 35@" -Route36Name: db "ROUTE 36@" -Route37Name: db "ROUTE 37@" -Route38Name: db "ROUTE 38@" -Route39Name: db "ROUTE 39@" -Route40Name: db "ROUTE 40@" -Route41Name: db "ROUTE 41@" -Route42Name: db "ROUTE 42@" -Route43Name: db "ROUTE 43@" -Route44Name: db "ROUTE 44@" -Route45Name: db "ROUTE 45@" -Route46Name: db "ROUTE 46@" -DarkCaveName: db "DARK CAVE@" -IlexForestName: db "ILEX¯FOREST@" -BurnedTowerName: db "BURNED¯TOWER@" -FastShipName: db "FAST SHIP@" -ViridianForestName: db "VIRIDIAN¯FOREST@" -DiglettsCaveName: db "DIGLETT'S¯CAVE@" -TohjoFallsName: db "TOHJO FALLS@" -UndergroundName: db "UNDERGROUND@" -BattleTowerName: db "BATTLE¯TOWER@" -SpecialMapName: db "SPECIAL@" +INCLUDE "data/landmarks.asm" RegionCheck: ; 0x1caea1 diff --git a/engine/link.asm b/engine/link.asm index ab3d38968..7bca8b891 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -737,8 +737,8 @@ Link_PrepPartyData_Gen1: ; 28499 .skip_steel push bc dec a - ld hl, BaseData + 7 ; type - ld bc, BaseData1 - BaseData0 + ld hl, BaseData + BASE_TYPES + ld bc, BASE_DATA_SIZE call AddNTimes ld bc, 2 ld a, BANK(BaseData) @@ -1112,7 +1112,7 @@ TimeCapsule_ReplaceTeruSama: ; 28771 and a ret z push hl - ld hl, .TimeCapsuleAlt + ld hl, TimeCapsule_CatchRateItems .loop ld a, [hli] and a @@ -1129,24 +1129,9 @@ TimeCapsule_ReplaceTeruSama: ; 28771 pop hl ret -.TimeCapsuleAlt: ; 28785 -; Pokémon traded from RBY do not have held items, so GSC usually interprets the -; catch rate as an item. However, if the catch rate appears in this table, the -; item associated with the table entry is used instead. - db ITEM_19, LEFTOVERS - db ITEM_2D, BITTER_BERRY - db ITEM_32, GOLD_BERRY - db ITEM_5A, BERRY - db ITEM_64, BERRY - db ITEM_78, BERRY - db ITEM_87, BERRY - db ITEM_BE, BERRY - db ITEM_C3, BERRY - db ITEM_DC, BERRY - db ITEM_FA, BERRY - db -1, BERRY - db 0 -; 2879e + +INCLUDE "data/time_capsule/catch_rate_items.asm" + Link_CopyOTData: ; 2879e .loop @@ -2594,5 +2579,5 @@ Special_CableClubCheckWhichChris: ; 29f47 GFX_29f54: ; 29f54 ; unreferenced -INCBIN "gfx/unknown/029f54.2bpp" +INCBIN "gfx/unknown/unused_border.2bpp" ; 29fe4 diff --git a/engine/map_objects.asm b/engine/map_objects.asm index 83147c168..162ea22df 100644 --- a/engine/map_objects.asm +++ b/engine/map_objects.asm @@ -1,9 +1,10 @@ -INCLUDE "engine/facings.asm" +INCLUDE "data/facings.asm" + -SpriteMovementData:: ; 4273 INCLUDE "data/map_objects.asm" + ; 4357 DeleteMapObject:: ; 4357 push bc diff --git a/engine/map_triggers.asm b/engine/map_triggers.asm deleted file mode 100644 index 2b190fa3e..000000000 --- a/engine/map_triggers.asm +++ /dev/null @@ -1,91 +0,0 @@ -MapTriggers:: ; 4d01e -; Map triggers - -trigger_def: MACRO -; db group, map -; dw address - map \1 - dw \2 -ENDM - - trigger_def POKECENTER_2F, wPokecenter2FTrigger - trigger_def TRADE_CENTER, wTradeCenterTrigger - trigger_def COLOSSEUM, wColosseumTrigger - trigger_def TIME_CAPSULE, wTimeCapsuleTrigger - trigger_def POWER_PLANT, wPowerPlantTrigger - trigger_def CERULEAN_GYM, wCeruleanGymTrigger - trigger_def ROUTE_25, wRoute25Trigger - trigger_def TRAINER_HOUSE_B1F, wTrainerHouseB1FTrigger - trigger_def VICTORY_ROAD_GATE, wVictoryRoadGateTrigger - trigger_def SAFFRON_TRAIN_STATION, wSaffronTrainStationTrigger - trigger_def ROUTE_16_GATE, wRoute16GateTrigger - trigger_def ROUTE_17_18_GATE, wRoute1718GateTrigger - trigger_def INDIGO_PLATEAU_POKECENTER_1F, wIndigoPlateauPokecenter1FTrigger - trigger_def WILLS_ROOM, wWillsRoomTrigger - trigger_def KOGAS_ROOM, wKogasRoomTrigger - trigger_def BRUNOS_ROOM, wBrunosRoomTrigger - trigger_def KARENS_ROOM, wKarensRoomTrigger - trigger_def LANCES_ROOM, wLancesRoomTrigger - trigger_def HALL_OF_FAME, wHallOfFameTrigger - trigger_def ROUTE_27, wRoute27Trigger - trigger_def NEW_BARK_TOWN, wNewBarkTownTrigger - trigger_def ELMS_LAB, wElmsLabTrigger - trigger_def KRISS_HOUSE_1F, wKrissHouse1FTrigger - trigger_def ROUTE_29, wRoute29Trigger - trigger_def CHERRYGROVE_CITY, wCherrygroveCityTrigger - trigger_def MR_POKEMONS_HOUSE, wMrPokemonsHouseTrigger - trigger_def ROUTE_32, wRoute32Trigger - trigger_def ROUTE_35_NATIONAL_PARK_GATE, wRoute35NationalParkGateTrigger - trigger_def ROUTE_36, wRoute36Trigger - trigger_def ROUTE_36_NATIONAL_PARK_GATE, wRoute36NationalParkGateTrigger - trigger_def AZALEA_TOWN, wAzaleaTownTrigger - trigger_def GOLDENROD_GYM, wGoldenrodGymTrigger - trigger_def GOLDENROD_MAGNET_TRAIN_STATION, wGoldenrodMagnetTrainStationTrigger - trigger_def GOLDENROD_POKECENTER_1F, wGoldenrodPokecenter1FTrigger - trigger_def OLIVINE_CITY, wOlivineCityTrigger - trigger_def ROUTE_34, wRoute34Trigger - trigger_def ROUTE_34_ILEX_FOREST_GATE, wRoute34IlexForestGateTrigger - trigger_def ECRUTEAK_HOUSE, wEcruteakHouseTrigger - trigger_def WISE_TRIOS_ROOM, wWiseTriosRoomTrigger - trigger_def ECRUTEAK_POKECENTER_1F, wEcruteakPokecenter1FTrigger - trigger_def ECRUTEAK_GYM, wEcruteakGymTrigger - trigger_def MAHOGANY_TOWN, wMahoganyTownTrigger - trigger_def ROUTE_42, wRoute42Trigger - trigger_def CIANWOOD_CITY, wCianwoodCityTrigger - trigger_def BATTLE_TOWER_1F, wBattleTower1FTrigger - trigger_def BATTLE_TOWER_BATTLE_ROOM, wBattleTowerBattleRoomTrigger - trigger_def BATTLE_TOWER_ELEVATOR, wBattleTowerElevatorTrigger - trigger_def BATTLE_TOWER_HALLWAY, wBattleTowerHallwayTrigger - trigger_def BATTLE_TOWER_OUTSIDE, wBattleTowerOutsideTrigger - trigger_def ROUTE_43_GATE, wRoute43GateTrigger - trigger_def MOUNT_MOON, wMountMoonTrigger - trigger_def SPROUT_TOWER_3F, wSproutTower3FTrigger - trigger_def TIN_TOWER_1F, wTinTower1FTrigger - trigger_def BURNED_TOWER_1F, wBurnedTower1FTrigger - trigger_def BURNED_TOWER_B1F, wBurnedTowerB1FTrigger - trigger_def RADIO_TOWER_5F, wRadioTower5FTrigger - trigger_def RUINS_OF_ALPH_OUTSIDE, wRuinsOfAlphOutsideTrigger - trigger_def RUINS_OF_ALPH_RESEARCH_CENTER, wRuinsOfAlphResearchCenterTrigger - trigger_def RUINS_OF_ALPH_HO_OH_CHAMBER, wRuinsOfAlphHoOhChamberTrigger - trigger_def RUINS_OF_ALPH_KABUTO_CHAMBER, wRuinsOfAlphKabutoChamberTrigger - trigger_def RUINS_OF_ALPH_OMANYTE_CHAMBER, wRuinsOfAlphOmanyteChamberTrigger - trigger_def RUINS_OF_ALPH_AERODACTYL_CHAMBER, wRuinsOfAlphAerodactylChamberTrigger - trigger_def RUINS_OF_ALPH_INNER_CHAMBER, wRuinsOfAlphInnerChamberTrigger - trigger_def MAHOGANY_MART_1F, wMahoganyMart1FTrigger - trigger_def TEAM_ROCKET_BASE_B1F, wTeamRocketBaseB1FTrigger - trigger_def TEAM_ROCKET_BASE_B2F, wTeamRocketBaseB2FTrigger - trigger_def TEAM_ROCKET_BASE_B3F, wTeamRocketBaseB3FTrigger - trigger_def UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES, wUndergroundPathSwitchRoomEntrancesTrigger - trigger_def SILVER_CAVE_ROOM_3, wSilverCaveRoom3Trigger - trigger_def VICTORY_ROAD, wVictoryRoadTrigger - trigger_def DRAGONS_DEN_B1F, wDragonsDenB1FTrigger - trigger_def DRAGON_SHRINE, wDragonShrineTrigger - trigger_def OLIVINE_PORT, wOlivinePortTrigger - trigger_def VERMILION_PORT, wVermilionPortTrigger - trigger_def FAST_SHIP_1F, wFastShip1FTrigger - trigger_def FAST_SHIP_B1F, wFastShipB1FTrigger - trigger_def MOUNT_MOON_SQUARE, wMountMoonSquareTrigger - trigger_def MOBILE_TRADE_ROOM_MOBILE, wMobileTradeRoomMobileTrigger - trigger_def MOBILE_BATTLE_ROOM, wMobileBattleRoomTrigger - db -1 -; 4d15b diff --git a/engine/mon_icons.asm b/engine/mon_icons.asm index 9c6fb1870..0aade6985 100755 --- a/engine/mon_icons.asm +++ b/engine/mon_icons.asm @@ -450,4 +450,27 @@ HoldSwitchmonIcon: ; 8ea8c jr nz, .loop ret -INCLUDE "menu/mon_icons.asm" +ReadMonMenuIcon: ; 8eab3 + cp EGG + jr z, .egg + dec a + ld hl, MonMenuIcons + ld e, a + ld d, 0 + add hl, de + ld a, [hl] + ret +.egg + ld a, ICON_EGG + ret +; 8eac4 + + +INCLUDE "data/mon_menu_icons.asm" + + +INCLUDE "gfx/icon_pointers.asm" + +Icons: +INCLUDE "gfx/icons.asm" + diff --git a/engine/move_mon.asm b/engine/move_mon.asm index 21b6994ac..2a5baac50 100755 --- a/engine/move_mon.asm +++ b/engine/move_mon.asm @@ -446,9 +446,9 @@ SentGetPkmnIntoFromBox: ; db3f ld a, [wPokemonWithdrawDepositParameter] and a jr z, .check_IfPartyIsFull - cp DAYCARE_WITHDRAW + cp DAY_CARE_WITHDRAW jr z, .check_IfPartyIsFull - cp DAYCARE_DEPOSIT + cp DAY_CARE_DEPOSIT ld hl, wBreedMon1Species jr z, .breedmon @@ -473,7 +473,7 @@ SentGetPkmnIntoFromBox: ; db3f ld b, 0 add hl, bc ld a, [wPokemonWithdrawDepositParameter] - cp DAYCARE_WITHDRAW + cp DAY_CARE_WITHDRAW ld a, [wBreedMon1Species] jr z, .okay1 ld a, [CurPartySpecies] @@ -504,7 +504,7 @@ SentGetPkmnIntoFromBox: ; db3f ld hl, sBoxMon1Species ld bc, BOXMON_STRUCT_LENGTH jr z, .okay3 - cp DAYCARE_WITHDRAW + cp DAY_CARE_WITHDRAW ld hl, wBreedMon1Species jr z, .okay4 ld hl, PartyMon1Species @@ -518,7 +518,7 @@ SentGetPkmnIntoFromBox: ; db3f ld bc, BOXMON_STRUCT_LENGTH call CopyBytes ld a, [wPokemonWithdrawDepositParameter] - cp DAYCARE_DEPOSIT + cp DAY_CARE_DEPOSIT ld de, wBreedMon1OT jr z, .okay5 dec a @@ -540,7 +540,7 @@ SentGetPkmnIntoFromBox: ; db3f and a jr z, .okay7 ld hl, wBreedMon1OT - cp DAYCARE_WITHDRAW + cp DAY_CARE_WITHDRAW jr z, .okay8 ld hl, PartyMonOT @@ -552,7 +552,7 @@ SentGetPkmnIntoFromBox: ; db3f ld bc, NAME_LENGTH call CopyBytes ld a, [wPokemonWithdrawDepositParameter] - cp DAYCARE_DEPOSIT + cp DAY_CARE_DEPOSIT ld de, wBreedMon1Nick jr z, .okay9 dec a @@ -574,7 +574,7 @@ SentGetPkmnIntoFromBox: ; db3f and a jr z, .okay11 ld hl, wBreedMon1Nick - cp DAYCARE_WITHDRAW + cp DAY_CARE_WITHDRAW jr z, .okay12 ld hl, PartyMonNicknames @@ -590,7 +590,7 @@ SentGetPkmnIntoFromBox: ; db3f ld a, [wPokemonWithdrawDepositParameter] cp PC_DEPOSIT jr z, .took_out_of_box - cp DAYCARE_DEPOSIT + cp DAY_CARE_DEPOSIT jp z, .CloseSRAM_And_ClearCarryFlag push hl @@ -732,7 +732,7 @@ RestorePPofDepositedPokemon: ; dcb6 ret ; dd21 -RetrievePokemonFromDaycareMan: ; dd21 +RetrievePokemonFromDayCareMan: ; dd21 ld a, [wBreedMon1Species] ld [CurPartySpecies], a ld de, SFX_TRANSACTION @@ -748,7 +748,7 @@ RetrievePokemonFromDaycareMan: ; dd21 jp Functiondd64 ; dd42 -RetrievePokemonFromDaycareLady: ; dd42 +RetrievePokemonFromDayCareLady: ; dd42 ld a, [wBreedMon2Species] ld [CurPartySpecies], a ld de, SFX_TRANSACTION @@ -872,7 +872,7 @@ Functionde1a: ; de1a ret ; de2a -DepositMonWithDaycareMan: ; de2a +DepositMonWithDayCareMan: ; de2a ld de, wBreedMon1Nick call DepositBreedmon xor a @@ -880,7 +880,7 @@ DepositMonWithDaycareMan: ; de2a jp RemoveMonFromPartyOrBox ; de37 -DepositMonWithDaycareLady: ; de37 +DepositMonWithDayCareLady: ; de37 ld de, wBreedMon2Nick call DepositBreedmon xor a diff --git a/engine/mysterygift.asm b/engine/mysterygift.asm index ae40d0992..8204ab332 100755 --- a/engine/mysterygift.asm +++ b/engine/mysterygift.asm @@ -1411,7 +1411,7 @@ InitMysteryGiftLayout: ; 105153 (41:5153) ret MysteryGiftGFX: ; 105258 -INCBIN "gfx/misc/mystery_gift.2bpp" +INCBIN "gfx/mystery_gift/mystery_gift.2bpp" MysteryGiftGFXEnd: Function105688: ; 105688 (41:5688) @@ -1732,4 +1732,4 @@ Function1057d7: ; 1057d7 (41:57d7) ; japanese mystery gift gfx MysteryGiftJP_GFX: ; 105930 -INCBIN "gfx/misc/mystery_gift_jp.2bpp" +INCBIN "gfx/mystery_gift/mystery_gift_jp.2bpp" diff --git a/engine/mysterygift2.asm b/engine/mysterygift2.asm index 0b8948c5b..dc0baf39c 100755 --- a/engine/mysterygift2.asm +++ b/engine/mysterygift2.asm @@ -123,7 +123,7 @@ PrepMysteryGiftDataToSend: ; 2c642 (b:4642) MysteryGiftGetItemHeldEffect: ; 2c708 (b:4708) ld a, c - cp $25 ; 37 + cp MysteryGiftItemsEnd - MysteryGiftItems jr nc, MysteryGiftFallbackItem ld hl, MysteryGiftItems ld b, 0 @@ -133,7 +133,7 @@ MysteryGiftGetItemHeldEffect: ; 2c708 (b:4708) MysteryGiftGetDecoration: ; 2c715 (b:4715) ld a, c - cp $25 ; 37 + cp MysteryGiftDecosEnd - MysteryGiftDecos jr nc, MysteryGiftFallbackItem ld hl, MysteryGiftDecos ld b, 0 @@ -146,82 +146,7 @@ MysteryGiftFallbackItem: ; 2c722 (b:4722) ret ; 2c725 (b:4725) -MysteryGiftItems: ; 2c725 - db BERRY - db PRZCUREBERRY - db MINT_BERRY - db ICE_BERRY - db BURNT_BERRY - db PSNCUREBERRY - db GUARD_SPEC - db X_DEFEND - db X_ATTACK - db BITTER_BERRY - db DIRE_HIT - db X_SPECIAL - db X_ACCURACY - db EON_MAIL - db MORPH_MAIL - db MUSIC_MAIL - db MIRACLEBERRY - db GOLD_BERRY - db REVIVE - db GREAT_BALL - db SUPER_REPEL - db MAX_REPEL - db ELIXER - db ETHER - db WATER_STONE - db FIRE_STONE - db LEAF_STONE - db THUNDERSTONE - db MAX_ETHER - db MAX_ELIXER - db MAX_REVIVE - db SCOPE_LENS - db HP_UP - db PP_UP - db RARE_CANDY - db BLUESKY_MAIL - db MIRAGE_MAIL -; 2c74a -MysteryGiftDecos: ; 2c74a - db DECOFLAG_PIKACHU_DOLL - db DECOFLAG_BULBASAUR_DOLL - db DECOFLAG_CHARMANDER_DOLL - db DECOFLAG_SQUIRTLE_DOLL - db DECOFLAG_POLIWAG_DOLL - db DECOFLAG_DIGLETT_DOLL - db DECOFLAG_STARMIE_DOLL - db DECOFLAG_MAGIKARP_DOLL - db DECOFLAG_ODDISH_DOLL - db DECOFLAG_GENGAR_DOLL - db DECOFLAG_CLEFAIRY_POSTER - db DECOFLAG_JIGGLYPUFF_POSTER - db DECOFLAG_SNES - db DECOFLAG_SHELLDER_DOLL - db DECOFLAG_VOLTORB_DOLL - db DECOFLAG_WEEDLE_DOLL - db DECOFLAG_MAGNAPLANT - db DECOFLAG_TROPICPLANT - db DECOFLAG_FAMICOM - db DECOFLAG_N64 - db DECOFLAG_SURF_PIKACHU_DOLL - db DECOFLAG_JIGGLYPUFF_DOLL - db DECOFLAG_PINK_BED - db DECOFLAG_POLKADOT_BED - db DECOFLAG_RED_CARPET - db DECOFLAG_BLUE_CARPET - db DECOFLAG_YELLOW_CARPET - db DECOFLAG_GREEN_CARPET - db DECOFLAG_JUMBOPLANT - db DECOFLAG_VIRTUAL_BOY - db DECOFLAG_MACHOP_DOLL - db DECOFLAG_PIKACHU_POSTER - db DECOFLAG_TENTACOOL_DOLL - db DECOFLAG_BIG_ONIX_DOLL - db DECOFLAG_PIKACHU_BED - db DECOFLAG_GRIMER_DOLL - db DECOFLAG_UNOWN_DOLL -; 2c76f +INCLUDE "data/mystery_gift/items.asm" + +INCLUDE "data/mystery_gift/decos.asm" diff --git a/engine/namingscreen.asm b/engine/namingscreen.asm index d4f11cb8c..0bc613709 100755 --- a/engine/namingscreen.asm +++ b/engine/namingscreen.asm @@ -953,36 +953,7 @@ NamingScreenGFX_Cursor: ; 11cc7 INCBIN "gfx/namingscreen/cursor.2bpp" ; 11ce7 -NameInputLower: - db "a b c d e f g h i" - db "j k l m n o p q r" - db "s t u v w x y z " - db "× ( ) : ; [ ] <PK> <MN>" - db "UPPER DEL END " - -BoxNameInputLower: - db "a b c d e f g h i" - db "j k l m n o p q r" - db "s t u v w x y z " - db "é 'd 'l 'm 'r 's 't 'v 0" - db "1 2 3 4 5 6 7 8 9" - db "UPPER DEL END " - -NameInputUpper: - db "A B C D E F G H I" - db "J K L M N O P Q R" - db "S T U V W X Y Z " - db "- ? ! / . , " - db "lower DEL END " - -BoxNameInputUpper: - db "A B C D E F G H I" - db "J K L M N O P Q R" - db "S T U V W X Y Z " - db "× ( ) : ; [ ] <PK> <MN>" - db "- ? ! ♂ ♀ / . , &" - db "lower DEL END " - +INCLUDE "data/name_input_chars.asm" ; 11e5d NamingScreenGFX_End: ; unused @@ -1499,22 +1470,6 @@ MailComposition_TryAddLastCharacter: ; 121ac (4:61ac) ; 121dd -MailEntry_Uppercase: ; 122dd - db "A B C D E F G H I J" - db "K L M N O P Q R S T" - db "U V W X Y Z , ? !" - db "1 2 3 4 5 6 7 8 9 0" - db "<PK> <MN> <PO> <KE> é ♂ ♀ ¥ … ×" - db "lower DEL END " - -; 1224f - -MailEntry_Lowercase: ; 1224f - db "a b c d e f g h i j" - db "k l m n o p q r s t" - db "u v w x y z . - /" - db "'d 'l 'm 'r 's 't 'v & ( )" - db "<``> <''> [ ] ' : ; " - db "UPPER DEL END " +INCLUDE "data/mail_input_chars.asm" ; 122c1 diff --git a/engine/npc_movement.asm b/engine/npc_movement.asm index bc36e3ee9..9a18cdcb1 100755 --- a/engine/npc_movement.asm +++ b/engine/npc_movement.asm @@ -118,7 +118,7 @@ Function6f3e: ; 6f3e ; 6f5b .data_6f5b - db 1 << DOWN, 1 << UP, 1 << RIGHT, 1 << LEFT + db DOWN_MASK, UP_MASK, RIGHT_MASK, LEFT_MASK ; 6f5f Function6f5f: ; 6f5f @@ -143,7 +143,7 @@ Function6f5f: ; 6f5f ; 6f7b .data_6f7b - db 1 << UP, 1 << DOWN, 1 << LEFT, 1 << RIGHT + db UP_MASK, DOWN_MASK, LEFT_MASK, RIGHT_MASK ; 6f7f Function6f7f: ; 6f7f diff --git a/engine/npctrade.asm b/engine/npctrade.asm index 01631d051..fab504ab3 100755 --- a/engine/npctrade.asm +++ b/engine/npctrade.asm @@ -1,26 +1,10 @@ - -; Trade struct -TRADE_DIALOG EQU 0 -TRADE_GIVEMON EQU 1 -TRADE_GETMON EQU 2 -TRADE_NICK EQU 3 -TRADE_DVS EQU 14 -TRADE_ITEM EQU 16 -TRADE_OT_ID EQU 17 -TRADE_OT_NAME EQU 19 -TRADE_GENDER EQU 30 -TRADE_PADDING EQU 31 - ; Trade dialogs -TRADE_INTRO EQU 0 -TRADE_CANCEL EQU 1 -TRADE_WRONG EQU 2 -TRADE_COMPLETE EQU 3 -TRADE_AFTER EQU 4 - -TRADE_EITHER_GENDER EQU 0 -TRADE_MALE_ONLY EQU 1 -TRADE_FEMALE_ONLY EQU 2 + const_def + const TRADE_INTRO + const TRADE_CANCEL + const TRADE_WRONG + const TRADE_COMPLETE + const TRADE_AFTER NPCTrade:: ; fcba8 ld a, e @@ -40,7 +24,7 @@ NPCTrade:: ; fcba8 ; Select givemon from party ld b, PARTYMENUACTION_GIVE_MON - callba SelectTradeOrDaycareMon + callba SelectTradeOrDayCareMon ld a, TRADE_CANCEL jr c, .done @@ -427,25 +411,7 @@ GetTradeMonNames: ; fce1b ; fce58 -NPCTrades: ; fce58 -npctrade: MACRO - db \1, \2, \3, \4 ; dialog set, requested mon, offered mon, nickname - db \5, \6 ; dvs - shift - db \6 ; item - dw \7 ; OT ID - db \8, \9, 0 ; OT name, gender requested -ENDM - - - npctrade 0, ABRA, MACHOP, "MUSCLE@@@@@", $37, $66, GOLD_BERRY, 37460, "MIKE@@@@@@@", TRADE_EITHER_GENDER - npctrade 0, BELLSPROUT, ONIX, "ROCKY@@@@@@", $96, $66, BITTER_BERRY, 48926, "KYLE@@@@@@@", TRADE_EITHER_GENDER - npctrade 1, KRABBY, VOLTORB, "VOLTY@@@@@@", $98, $88, PRZCUREBERRY, 29189, "TIM@@@@@@@@", TRADE_EITHER_GENDER - npctrade 3, DRAGONAIR, DODRIO, "DORIS@@@@@@", $77, $66, SMOKE_BALL, 00283, "EMY@@@@@@@@", TRADE_FEMALE_ONLY - npctrade 2, HAUNTER, XATU, "PAUL@@@@@@@", $96, $86, MYSTERYBERRY, 15616, "CHRIS@@@@@@", TRADE_EITHER_GENDER - npctrade 3, CHANSEY, AERODACTYL, "AEROY@@@@@@", $96, $66, GOLD_BERRY, 26491, "KIM@@@@@@@@", TRADE_EITHER_GENDER - npctrade 0, DUGTRIO, MAGNETON, "MAGGIE@@@@@", $96, $66, METAL_COAT, 50082, "FOREST@@@@@", TRADE_EITHER_GENDER -; fcf38 +INCLUDE "data/npc_trades.asm" PrintTradeText: ; fcf38 diff --git a/engine/odd_eggs.asm b/engine/odd_eggs.asm new file mode 100644 index 000000000..93d753dfb --- /dev/null +++ b/engine/odd_eggs.asm @@ -0,0 +1,96 @@ +GiveOddEgg: ; 1fb4b6 + ; Figure out which egg to give. + + ; Compare a random word to + ; probabilities out of 0xffff. + call Random + ld hl, OddEggProbabilities + ld c, 0 + ld b, c +.loop + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + + ; Break on $ffff. + ld a, d + cp $ffff / $100 + jr nz, .not_done + ld a, e + cp $ffff % $100 + jr z, .done +.not_done + + ; Break when [hRandom] <= de. + ld a, [hRandom + 1] + cp d + jr c, .done + jr z, .ok + jr .next +.ok + ld a, [hRandom + 0] + cp e + jr c, .done + jr z, .done +.next + inc bc + jr .loop +.done + + ld hl, OddEggs + ld a, OddEgg2 - OddEgg1 + call AddNTimes + + ld de, OddEggSpecies + ld bc, PARTYMON_STRUCT_LENGTH + 2 * PKMN_NAME_LENGTH + call CopyBytes + + ld a, EGG_TICKET + ld [CurItem], a + ld a, 1 + ld [wItemQuantityChangeBuffer], a + ld a, -1 + ld [CurItemQuantity], a + ld hl, NumItems + call TossItem + + ; load species in wcd2a + ld a, EGG + ld [wMobileMonSpeciesBuffer], a + + ; load pointer to (wMobileMonSpeciesBuffer - 1) in wMobileMonSpeciesPointerBuffer + ld a, (wMobileMonSpeciesBuffer - 1) % $100 + ld [wMobileMonSpeciesPointerBuffer], a + ld a, (wMobileMonSpeciesBuffer - 1) / $100 + ld [wMobileMonSpeciesPointerBuffer + 1], a + ; load pointer to OddEggSpecies in wMobileMonStructurePointerBuffer + ld a, OddEggSpecies % $100 + ld [wMobileMonStructurePointerBuffer], a + ld a, OddEggSpecies / $100 + ld [wMobileMonStructurePointerBuffer + 1], a + + ; load Odd Egg Name in wTempOddEggNickname + ld hl, .Odd + ld de, wTempOddEggNickname + ld bc, PKMN_NAME_LENGTH + call CopyBytes + + ; load pointer to wTempOddEggNickname in wMobileMonOTNamePointerBuffer + ld a, wTempOddEggNickname % $100 + ld [wMobileMonOTNamePointerBuffer], a + ld a, wTempOddEggNickname / $100 + ld [wMobileMonOTNamePointerBuffer + 1], a + ; load pointer to wOddEggName in wMobileMonNicknamePointerBuffer + ld a, wOddEggName % $100 + ld [wMobileMonNicknamePointerBuffer], a + ld a, wOddEggName / $100 + ld [wMobileMonNicknamePointerBuffer + 1], a + callba AddMobileMonToParty + ret +; 1fb546 + +.Odd: + db "ODD@@@@@@@@@" + +INCLUDE "data/odd_eggs.asm" diff --git a/engine/options_menu.asm b/engine/options_menu.asm index ec41288ff..4ab215282 100755 --- a/engine/options_menu.asm +++ b/engine/options_menu.asm @@ -105,6 +105,11 @@ GetOptionPointer: ; e42d6 ; e42f5 + const_def + const OPT_TEXT_SPEED_FAST ; 0 + const OPT_TEXT_SPEED_MED ; 1 + const OPT_TEXT_SPEED_SLOW ; 2 + Options_TextSpeed: ; e42f5 call GetTextSpeed ld a, [hJoyPressed] @@ -113,9 +118,9 @@ Options_TextSpeed: ; e42f5 bit D_RIGHT_F, a jr z, .NonePressed ld a, c ; right pressed - cp SLOW_TEXT + cp OPT_TEXT_SPEED_SLOW jr c, .Increase - ld c, FAST_TEXT +- 1 + ld c, OPT_TEXT_SPEED_FAST +- 1 .Increase: inc c @@ -126,7 +131,7 @@ Options_TextSpeed: ; e42f5 ld a, c and a jr nz, .Decrease - ld c, SLOW_TEXT + 1 + ld c, OPT_TEXT_SPEED_SLOW + 1 .Decrease: dec c @@ -154,38 +159,39 @@ Options_TextSpeed: ; e42f5 ; e4331 .Strings: +; entries correspond to OPT_TEXT_SPEED_* constants dw .Fast dw .Mid dw .Slow -.Fast: - db "FAST@" -.Mid: - db "MID @" -.Slow: - db "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 +; converts TEXT_DELAY_* value in a to OPT_TEXT_SPEED_* value in c, +; with previous/next TEXT_DELAY_* values in d/e + ld a, [Options] + and $7 + cp TEXT_DELAY_SLOW jr z, .slow - cp 1 ; 1 frame of delay is fast + cp TEXT_DELAY_FAST jr z, .fast - ld c, MED_TEXT ; set it to mid if not one of the above - lb de, 1, 5 + ; none of the above + ld c, OPT_TEXT_SPEED_MED + lb de, TEXT_DELAY_FAST, TEXT_DELAY_SLOW ret .slow - ld c, SLOW_TEXT - lb de, 3, 1 + ld c, OPT_TEXT_SPEED_SLOW + lb de, TEXT_DELAY_MED, TEXT_DELAY_FAST ret .fast - ld c, FAST_TEXT - lb de, 5, 3 + ld c, OPT_TEXT_SPEED_FAST + lb de, TEXT_DELAY_SLOW, TEXT_DELAY_MED ret ; e4365 @@ -227,10 +233,8 @@ Options_BattleScene: ; e4365 ret ; e4398 -.On: - db "ON @" -.Off: - db "OFF@" +.On: db "ON @" +.Off: db "OFF@" ; e43a0 @@ -270,10 +274,8 @@ Options_BattleStyle: ; e43a0 ret ; e43d1 -.Shift: - db "SHIFT@" -.Set: - db "SET @" +.Shift: db "SHIFT@" +.Set: db "SET @" ; e43dd @@ -320,13 +322,18 @@ Options_Sound: ; e43dd ret ; e4416 -.Mono: - db "MONO @" -.Stereo: - db "STEREO@" +.Mono: db "MONO @" +.Stereo: db "STEREO@" ; e4424 + const_def + const OPT_PRINT_LIGHTEST ; 0 + const OPT_PRINT_LIGHTER ; 1 + const OPT_PRINT_NORMAL ; 2 + const OPT_PRINT_DARKER ; 3 + const OPT_PRINT_DARKEST ; 4 + Options_Print: ; e4424 call GetPrinterSetting ld a, [hJoyPressed] @@ -335,9 +342,9 @@ Options_Print: ; e4424 bit D_RIGHT_F, a jr z, .NonePressed ld a, c - cp 4 + cp OPT_PRINT_DARKEST jr c, .Increase - ld c, -1 + ld c, OPT_PRINT_LIGHTEST - 1 .Increase: inc c @@ -348,7 +355,7 @@ Options_Print: ; e4424 ld a, c and a jr nz, .Decrease - ld c, 5 + ld c, OPT_PRINT_DARKEST + 1 .Decrease: dec c @@ -373,57 +380,56 @@ Options_Print: ; e4424 ; e445a .Strings: +; entries correspond to OPT_PRINT_* constants 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 @" +.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 +; converts GBPRINTER_* value in a to OPT_PRINT_* value in c, +; with previous/next GBPRINTER_* values in d/e + ld a, [GBPrinter] and a jr z, .IsLightest - cp PRINT_LIGHTER + cp GBPRINTER_LIGHTER jr z, .IsLight - cp PRINT_DARKER + cp GBPRINTER_DARKER jr z, .IsDark - cp PRINT_DARKEST + cp GBPRINTER_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 + ; none of the above + ld c, OPT_PRINT_NORMAL + lb de, GBPRINTER_LIGHTER, GBPRINTER_DARKER ret .IsLightest: - ld c, 0 - lb de, PRINT_DARKEST, PRINT_LIGHTER ; the 2 values next to this setting + ld c, OPT_PRINT_LIGHTEST + lb de, GBPRINTER_DARKEST, GBPRINTER_LIGHTER ret .IsLight: - ld c, 1 - lb de, PRINT_LIGHTEST, PRINT_NORMAL ; the 2 values next to this setting + ld c, OPT_PRINT_LIGHTER + lb de, GBPRINTER_LIGHTEST, GBPRINTER_NORMAL ret .IsDark: - ld c, 3 - lb de, PRINT_NORMAL, PRINT_DARKEST ; the 2 values next to this setting + ld c, OPT_PRINT_DARKER + lb de, GBPRINTER_NORMAL, GBPRINTER_DARKEST ret .IsDarkest: - ld c, 4 - lb de, PRINT_DARKER, PRINT_LIGHTEST ; the 2 values next to this setting + ld c, OPT_PRINT_DARKEST + lb de, GBPRINTER_DARKER, GBPRINTER_LIGHTEST ret ; e44c1 @@ -463,10 +469,8 @@ Options_MenuAccount: ; e44c1 ret ; e44f2 -.Off: - db "OFF@" -.On: - db "ON @" +.Off: db "OFF@" +.On: db "ON @" ; e44fa diff --git a/engine/overworld.asm b/engine/overworld.asm index 5bbd70a85..73115e479 100755 --- a/engine/overworld.asm +++ b/engine/overworld.asm @@ -232,9 +232,9 @@ GetMonSprite: ; 14259 cp SPRITE_POKEMON jr c, .Normal - cp SPRITE_DAYCARE_MON_1 + cp SPRITE_DAY_CARE_MON_1 jr z, .wBreedMon1 - cp SPRITE_DAYCARE_MON_2 + cp SPRITE_DAY_CARE_MON_2 jr z, .wBreedMon2 cp SPRITE_VARS jr nc, .Variable @@ -716,766 +716,11 @@ LoadEmote:: ; 1442f ret ; 1444d -emote_header: MACRO - dw \1 - db \2 tiles, BANK(\1) - dw VTiles1 tile \3 -ENDM - -EmotesPointers: ; 144d -; entries correspond to EMOTE_* constants -; graphics address, length, starting tile - 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 FishingRodGFX, 2, $7c - emote_header BoulderDustGFX, 2, $7e - emote_header GrassRustleGFX, 1, $7e -; 14495 - - -SpriteMons: ; 14495 - db UNOWN - db GEODUDE - db GROWLITHE - db WEEDLE - db SHELLDER - db ODDISH - db GENGAR - db ZUBAT - db MAGIKARP - db SQUIRTLE - db TOGEPI - db BUTTERFREE - db DIGLETT - db POLIWAG - db PIKACHU - db CLEFAIRY - db CHARMANDER - db JYNX - db STARMIE - db BULBASAUR - db JIGGLYPUFF - db GRIMER - db EKANS - db PARAS - db TENTACOOL - db TAUROS - db MACHOP - db VOLTORB - db LAPRAS - db RHYDON - db MOLTRES - db SNORLAX - db GYARADOS - db LUGIA - db HO_OH -; 144b8 - - -OutdoorSprites: ; 144b8 -; Valid sprite IDs for each map group. - - dw Group1Sprites - dw Group2Sprites - dw Group3Sprites - dw Group4Sprites - dw Group5Sprites - dw Group6Sprites - dw Group7Sprites - dw Group8Sprites - dw Group9Sprites - dw Group10Sprites - dw Group11Sprites - dw Group12Sprites - dw Group13Sprites - dw Group14Sprites - dw Group15Sprites - dw Group16Sprites - dw Group17Sprites - dw Group18Sprites - dw Group19Sprites - dw Group20Sprites - dw Group21Sprites - dw Group22Sprites - dw Group23Sprites - dw Group24Sprites - dw Group25Sprites - dw Group26Sprites -; 144ec - - -Group13Sprites: ; 144ec - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14503 - -Group23Sprites: ; 14503 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1451a - -Group14Sprites: ; 1451a - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14531 - -Group6Sprites: ; 14531 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14548 - -Group7Sprites: ; 14548 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_COOLTRAINER_M - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_POKEFAN_M - db SPRITE_ROCKET - db SPRITE_MISTY - db SPRITE_POKE_BALL - db SPRITE_SLOWPOKE -; 1455f - -Group25Sprites: ; 1455f - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_COOLTRAINER_M - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_POKEFAN_M - db SPRITE_ROCKET - db SPRITE_MISTY - db SPRITE_POKE_BALL - db SPRITE_SLOWPOKE -; 14576 - -Group21Sprites: ; 14576 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_FISHER - db SPRITE_POLIWAG - db SPRITE_TEACHER - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_BIKER - db SPRITE_SILVER - db SPRITE_BLUE - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1458d - -Group18Sprites: ; 1458d - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_MACHOP - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_BIG_SNORLAX - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 145a4 - -Group12Sprites: ; 145a4 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_MACHOP - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_BIG_SNORLAX - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 145bb - -Group17Sprites: ; 145bb - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_MACHOP - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_BIG_SNORLAX - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 145d2 - -Group16Sprites: ; 145d2 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_BUENA - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_MACHOP - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_BOULDER -; 145e9 - -Group24Sprites: ; 145e9 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SILVER - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_YOUNGSTER - db SPRITE_MONSTER - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14600 - -Group26Sprites: ; 14600 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SILVER - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_YOUNGSTER - db SPRITE_MONSTER - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14617 - -Group19Sprites: ; 14617 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SILVER - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_YOUNGSTER - db SPRITE_MONSTER - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1462e - -Group10Sprites: ; 1462e - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_FISHER - db SPRITE_LASS - db SPRITE_OFFICER - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_COOLTRAINER_M - db SPRITE_BUG_CATCHER - db SPRITE_SUPER_NERD - db SPRITE_WEIRD_TREE - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14645 - -Group4Sprites: ; 14645 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_FISHER - db SPRITE_LASS - db SPRITE_OFFICER - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_COOLTRAINER_M - db SPRITE_BUG_CATCHER - db SPRITE_SUPER_NERD - db SPRITE_WEIRD_TREE - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1465c - -Group8Sprites: ; 1465c - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_KURT_OUTSIDE - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_OFFICER - db SPRITE_POKEFAN_M - db SPRITE_BLACK_BELT - db SPRITE_TEACHER - db SPRITE_AZALEA_ROCKET - db SPRITE_LASS - db SPRITE_SILVER - db SPRITE_FRUIT_TREE - db SPRITE_SLOWPOKE -; 14673 - -Group11Sprites: ; 14673 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_POKE_BALL - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_OFFICER - db SPRITE_POKEFAN_M - db SPRITE_DAYCARE_MON_1 - db SPRITE_COOLTRAINER_F - db SPRITE_ROCKET - db SPRITE_LASS - db SPRITE_DAYCARE_MON_2 - db SPRITE_FRUIT_TREE - db SPRITE_SLOWPOKE -; 1468a - -Group22Sprites: ; 1468a - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_STANDING_YOUNGSTER - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_OLIVINE_RIVAL - db SPRITE_POKEFAN_M - db SPRITE_LASS - db SPRITE_BUENA - db SPRITE_SWIMMER_GIRL - db SPRITE_SAILOR - db SPRITE_POKEFAN_F - db SPRITE_SUPER_NERD - db SPRITE_TAUROS - db SPRITE_FRUIT_TREE - db SPRITE_ROCK -; 146a1 - -Group1Sprites: ; 146a1 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_STANDING_YOUNGSTER - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_OLIVINE_RIVAL - db SPRITE_POKEFAN_M - db SPRITE_LASS - db SPRITE_BUENA - db SPRITE_SWIMMER_GIRL - db SPRITE_SAILOR - db SPRITE_POKEFAN_F - db SPRITE_SUPER_NERD - db SPRITE_TAUROS - db SPRITE_FRUIT_TREE - db SPRITE_ROCK -; 146b8 - -Group9Sprites: ; 146b8 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_LANCE - db SPRITE_GRAMPS - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_LASS - db SPRITE_YOUNGSTER - db SPRITE_GYARADOS - db SPRITE_FRUIT_TREE - db SPRITE_POKE_BALL -; 146cf - -Group2Sprites: ; 146cf - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_M - db SPRITE_POKEFAN_M - db SPRITE_BLACK_BELT - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_FRUIT_TREE - db SPRITE_POKE_BALL -; 146e6 - -Group5Sprites: ; 146e6 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_M - db SPRITE_POKEFAN_M - db SPRITE_BLACK_BELT - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_FRUIT_TREE - db SPRITE_POKE_BALL -; 146fd - -Group3Sprites: ; 146fd - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_GAMEBOY_KID - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_LASS - db SPRITE_POKEFAN_F - db SPRITE_TEACHER - db SPRITE_YOUNGSTER - db SPRITE_GROWLITHE - db SPRITE_POKEFAN_M - db SPRITE_ROCKER - db SPRITE_FISHER - db SPRITE_SCIENTIST - db SPRITE_POKE_BALL - db SPRITE_BOULDER -; 14714 - -Group15Sprites: ; 14714 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SAILOR - db SPRITE_FISHING_GURU - db SPRITE_GENTLEMAN - db SPRITE_SUPER_NERD - db SPRITE_HO_OH - db SPRITE_TEACHER - db SPRITE_COOLTRAINER_F - db SPRITE_YOUNGSTER - db SPRITE_FAIRY - db SPRITE_POKE_BALL - db SPRITE_ROCK -; 1472b - -Group20Sprites: ; 1472b - db SPRITE_OAK - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_TWIN - db SPRITE_POKEFAN_M - db SPRITE_GRAMPS - db SPRITE_FAIRY - db SPRITE_SILVER - db SPRITE_FISHING_GURU - db SPRITE_POKE_BALL - db SPRITE_POKEDEX -; 14736 - - -SpriteHeaders: ; 14736 -INCLUDE "gfx/overworld/sprite_headers.asm" -; 1499a + +INCLUDE "data/emote_headers.asm" + +INCLUDE "data/sprite_mons.asm" + +INCLUDE "data/outdoor_sprites.asm" + +INCLUDE "gfx/sprite_headers.asm" diff --git a/engine/party_menu.asm b/engine/party_menu.asm index 266451c37..94b0bb0a2 100644 --- a/engine/party_menu.asm +++ b/engine/party_menu.asm @@ -13,7 +13,7 @@ SelectMonFromParty: ; 50000 ; 5001d -SelectTradeOrDaycareMon: ; 5001d +SelectTradeOrDayCareMon: ; 5001d ld a, b ld [PartyMenuActionText], a call DisableSpriteUpdates diff --git a/engine/phone.asm b/engine/phone.asm index 6366ea579..1a26a6f5b 100644 --- a/engine/phone.asm +++ b/engine/phone.asm @@ -165,7 +165,7 @@ CheckPhoneContactTimeOfDay: ; 900ad (24:40ad) callba CheckTime pop af - and (1 << MORN) + (1 << DAY) + (1 << NITE) + and MORN | DAY | NITE and c pop de @@ -760,89 +760,11 @@ GetCallerLocation: ; 90439 ret ; 9045f -PhoneContacts: ; 9045f -phone: MACRO - db \1, \2 ; trainer - map \3 ; map - db \4 - dba \5 ; script 1 - db \6 - dba \7 ; script 2 -ENDM -; entries correspond to PHONE_* constants - phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone TRAINER_NONE, PHONECONTACT_MOM, KRISS_HOUSE_1F, 7, MomPhoneScript, 0, UnusedPhoneScript - phone TRAINER_NONE, PHONECONTACT_BIKESHOP, OAKS_LAB, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone TRAINER_NONE, PHONECONTACT_BILL, N_A, 7, BillPhoneScript1, 0, BillPhoneScript2 - phone TRAINER_NONE, PHONECONTACT_ELM, ELMS_LAB, 7, ElmPhoneScript1, 0, ElmPhoneScript2 - phone SCHOOLBOY, JACK1, NATIONAL_PARK, 7, JackPhoneScript1, 7, JackPhoneScript2 - phone POKEFANF, BEVERLY1, NATIONAL_PARK, 7, BeverlyPhoneScript1, 7, BeverlyPhoneScript2 - phone SAILOR, HUEY1, OLIVINE_LIGHTHOUSE_2F, 7, HueyPhoneScript1, 7, HueyPhoneScript2 - phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone COOLTRAINERM, GAVEN3, ROUTE_26, 7, GavenPhoneScript1, 7, GavenPhoneScript2 - phone COOLTRAINERF, BETH1, ROUTE_26, 7, BethPhoneScript1, 7, BethPhoneScript2 - phone BIRD_KEEPER, JOSE2, ROUTE_27, 7, JosePhoneScript1, 7, JosePhoneScript2 - phone COOLTRAINERF, REENA1, ROUTE_27, 7, ReenaPhoneScript1, 7, ReenaPhoneScript2 - phone YOUNGSTER, JOEY1, ROUTE_30, 7, JoeyPhoneScript1, 7, JoeyPhoneScript2 - phone BUG_CATCHER, WADE1, ROUTE_31, 7, WadePhoneScript1, 7, WadePhoneScript2 - phone FISHER, RALPH1, ROUTE_32, 7, RalphPhoneScript1, 7, RalphPhoneScript2 - phone PICNICKER, LIZ1, ROUTE_32, 7, LizPhoneScript1, 7, LizPhoneScript2 - phone HIKER, ANTHONY2, ROUTE_33, 7, AnthonyPhoneScript1, 7, AnthonyPhoneScript2 - phone CAMPER, TODD1, ROUTE_34, 7, ToddPhoneScript1, 7, ToddPhoneScript2 - phone PICNICKER, GINA1, ROUTE_34, 7, GinaPhoneScript1, 7, GinaPhoneScript2 - phone JUGGLER, IRWIN1, ROUTE_35, 7, IrwinPhoneScript1, 7, IrwinPhoneScript2 - phone BUG_CATCHER, ARNIE1, ROUTE_35, 7, ArniePhoneScript1, 7, ArniePhoneScript2 - phone SCHOOLBOY, ALAN1, ROUTE_36, 7, AlanPhoneScript1, 7, AlanPhoneScript2 - phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone LASS, DANA1, ROUTE_38, 7, DanaPhoneScript1, 7, DanaPhoneScript2 - phone SCHOOLBOY, CHAD1, ROUTE_38, 7, ChadPhoneScript1, 7, ChadPhoneScript2 - phone POKEFANM, DEREK1, ROUTE_39, 7, DerekPhoneScript1, 7, DerekPhoneScript2 - phone FISHER, TULLY1, ROUTE_42, 7, TullyPhoneScript1, 7, TullyPhoneScript2 - phone POKEMANIAC, BRENT1, ROUTE_43, 7, BrentPhoneScript1, 7, BrentPhoneScript2 - phone PICNICKER, TIFFANY3, ROUTE_43, 7, TiffanyPhoneScript1, 7, TiffanyPhoneScript2 - phone BIRD_KEEPER, VANCE1, ROUTE_44, 7, VancePhoneScript1, 7, VancePhoneScript2 - phone FISHER, WILTON1, ROUTE_44, 7, WiltonPhoneScript1, 7, WiltonPhoneScript2 - phone BLACKBELT_T, KENJI3, ROUTE_45, 7, KenjiPhoneScript1, 7, KenjiPhoneScript2 - phone HIKER, PARRY1, ROUTE_45, 7, ParryPhoneScript1, 7, ParryPhoneScript2 - phone PICNICKER, ERIN1, ROUTE_46, 7, ErinPhoneScript1, 7, ErinPhoneScript2 - phone TRAINER_NONE, PHONECONTACT_BUENA, GOLDENROD_DEPT_STORE_ROOF, 7, BuenaPhoneScript1, 7, BuenaPhoneScript2 -; 90627 - -SpecialPhoneCallList: ; 90627 - dw SpecialCallOnlyWhenOutside - db PHONE_ELM - dba ElmPhoneScript2 - - dw SpecialCallOnlyWhenOutside - db PHONE_ELM - dba ElmPhoneScript2 - - dw SpecialCallOnlyWhenOutside - db PHONE_ELM - dba ElmPhoneScript2 - - dw SpecialCallOnlyWhenOutside - db PHONE_ELM - dba ElmPhoneScript2 - - dw SpecialCallWhereverYouAre - db PHONE_ELM - dba ElmPhoneScript2 - - dw SpecialCallWhereverYouAre - db PHONE_OAK ; ???????? - dba BikeShopPhoneScript ; bike shop - - dw SpecialCallWhereverYouAre - db PHONE_MOM - dba MomPhoneLectureScript - - dw SpecialCallOnlyWhenOutside - db PHONE_ELM - dba ElmPhoneScript2 -; 90657 + +INCLUDE "data/phone_contacts.asm" + +INCLUDE "data/phone_special.asm" + UnknownScript_0x90657: ; 0x90657 writetext UnknownText_0x9065b diff --git a/engine/player_object.asm b/engine/player_object.asm index 6b38a6328..a4796043b 100755 --- a/engine/player_object.asm +++ b/engine/player_object.asm @@ -29,14 +29,14 @@ SpawnPlayer: ; 8029 call GetMapObject ld hl, MAPOBJECT_COLOR add hl, bc - ln e, (1 << 3) | PAL_OW_RED, PERSONTYPE_SCRIPT + ln e, PAL_NPC_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, PERSONTYPE_SCRIPT + ln e, PAL_NPC_BLUE, PERSONTYPE_SCRIPT .ok ld [hl], e diff --git a/engine/pokecenter_pc.asm b/engine/pokecenter_pc.asm index f6b970ede..8203ffa19 100755 --- a/engine/pokecenter_pc.asm +++ b/engine/pokecenter_pc.asm @@ -2,9 +2,9 @@ PokemonCenterPC: ; 1559a call PC_CheckPartyForPokemon ret c call PC_PlayBootSound - ld hl, PokeCenterPCText_BootedUpPC + ld hl, PokecenterPCText_BootedUpPC call PC_DisplayText - ld hl, PokeCenterPCText_AccessWhosePC + ld hl, PokecenterPCText_AccessWhosePC call PC_DisplayTextWaitMenu ld hl, .TopMenu call LoadMenuDataHeader @@ -103,7 +103,7 @@ PC_CheckPartyForPokemon: ; 15650 BillsPC: ; 15668 call PC_PlayChoosePCSound - ld hl, PokeCenterPCText_AccessedBillsPC + ld hl, PokecenterPCText_AccessedBillsPC call PC_DisplayText callba _BillsPC and a @@ -112,7 +112,7 @@ BillsPC: ; 15668 PlayersPC: ; 15679 call PC_PlayChoosePCSound - ld hl, PokeCenterPCText_AccessedOwnPC + ld hl, PokecenterPCText_AccessedOwnPC call PC_DisplayText ld b, $0 call _PlayersPC @@ -122,7 +122,7 @@ PlayersPC: ; 15679 OaksPC: ; 15689 call PC_PlayChoosePCSound - ld hl, PokeCenterPCText_AccessedOaksPC + ld hl, PokecenterPCText_AccessedOaksPC call PC_DisplayText callba ProfOaksPC and a @@ -139,7 +139,7 @@ HallOfFamePC: ; 1569a ; 156ab TurnOffPC: ; 156ab - ld hl, PokeCenterPCText_LinkClosed + ld hl, PokecenterPCText_LinkClosed call PrintText scf ret @@ -641,37 +641,37 @@ PC_DisplayText: ; 15a20 ret ; 15a27 -PokeCenterPCText_BootedUpPC: ; 0x15a27 +PokecenterPCText_BootedUpPC: ; 0x15a27 ; turned on the PC. text_jump UnknownText_0x1c144d db "@" ; 0x15a2c -PokeCenterPCText_AccessWhosePC: ; 0x15a2c +PokecenterPCText_AccessWhosePC: ; 0x15a2c ; Access whose PC? text_jump UnknownText_0x1c1462 db "@" ; 0x15a31 -PokeCenterPCText_AccessedBillsPC: ; 0x15a31 +PokecenterPCText_AccessedBillsPC: ; 0x15a31 ; BILL's PC accessed. #MON Storage System opened. text_jump UnknownText_0x1c1474 db "@" ; 0x15a36 -PokeCenterPCText_AccessedOwnPC: ; 0x15a36 +PokecenterPCText_AccessedOwnPC: ; 0x15a36 ; Accessed own PC. Item Storage System opened. text_jump UnknownText_0x1c14a4 db "@" ; 0x15a3b -PokeCenterPCText_AccessedOaksPC: ; 0x15a3b +PokecenterPCText_AccessedOaksPC: ; 0x15a3b ; PROF.OAK's PC accessed. #DEX Rating System opened. text_jump UnknownText_0x1c14d2 db "@" ; 0x15a40 -PokeCenterPCText_LinkClosed: ; 0x15a40 +PokecenterPCText_LinkClosed: ; 0x15a40 ; … Link closed… text_jump UnknownText_0x1c1505 db "@" diff --git a/engine/pokedex.asm b/engine/pokedex.asm index 282b9ca91..c60396a40 100644 --- a/engine/pokedex.asm +++ b/engine/pokedex.asm @@ -1708,12 +1708,12 @@ Pokedex_ABCMode: ; 40c30 .doneabc ret -AlphabeticalPokedexOrder: ; 0x40c65 + INCLUDE "data/pokedex/order_alpha.asm" -NewPokedexOrder: ; 0x40d60 INCLUDE "data/pokedex/order_new.asm" + Pokedex_DisplayModeDescription: ; 40e5b xor a ld [hBGMapMode], a diff --git a/engine/pokedex_2.asm b/engine/pokedex_2.asm new file mode 100644 index 000000000..83b366017 --- /dev/null +++ b/engine/pokedex_2.asm @@ -0,0 +1,286 @@ +AnimateDexSearchSlowpoke: ; 441cf + ld hl, .FrameIDs + ld b, 25 +.loop + ld a, [hli] + + ; Wrap around + cp $fe + jr nz, .ok + ld hl, .FrameIDs + ld a, [hli] +.ok + + ld [wDexSearchSlowpokeFrame], a + ld a, [hli] + ld c, a + push bc + push hl + call DoDexSearchSlowpokeFrame + pop hl + pop bc + call DelayFrames + dec b + jr nz, .loop + xor a + ld [wDexSearchSlowpokeFrame], a + call DoDexSearchSlowpokeFrame + ld c, 32 + call DelayFrames + ret + +.FrameIDs: ; 441fc + ; frame ID, duration + db 0, 7 + db 1, 7 + db 2, 7 + db 3, 7 + db 4, 7 + db -2 + +DoDexSearchSlowpokeFrame: ; 44207 + ld a, [wDexSearchSlowpokeFrame] + ld hl, .SpriteData + ld de, Sprites +.loop + ld a, [hli] + cp -1 + ret z + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [wDexSearchSlowpokeFrame] + ld b, a + add a + add b + add [hl] + inc hl + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + jr .loop + +.SpriteData: ; 44228 + dsprite 11, 0, 9, 0, $00, $00 + dsprite 11, 0, 10, 0, $01, $00 + dsprite 11, 0, 11, 0, $02, $00 + dsprite 12, 0, 9, 0, $10, $00 + dsprite 12, 0, 10, 0, $11, $00 + dsprite 12, 0, 11, 0, $12, $00 + dsprite 13, 0, 9, 0, $20, $00 + dsprite 13, 0, 10, 0, $21, $00 + dsprite 13, 0, 11, 0, $22, $00 + db -1 + +DisplayDexEntry: ; 4424d + call GetPokemonName + hlcoord 9, 3 + call PlaceString ; mon species + ld a, [wd265] + ld b, a + call GetDexEntryPointer + ld a, b + push af + hlcoord 9, 5 + call FarString ; dex species + ld h, b + ld l, c + push de +; Print dex number + hlcoord 2, 8 + ld a, $5c ; No + ld [hli], a + ld a, $5d ; . + ld [hli], a + ld de, wd265 + lb bc, PRINTNUM_LEADINGZEROS | 1, 3 + call PrintNum +; Check to see if we caught it. Get out of here if we haven't. + ld a, [wd265] + dec a + call CheckCaughtMon + pop hl + pop bc + ret z +; Get the height of the Pokemon. + ld a, [CurPartySpecies] + ld [CurSpecies], a + inc hl + ld a, b + push af + push hl + call GetFarHalfword + ld d, l + ld e, h + pop hl + inc hl + inc hl + ld a, d + or e + jr z, .skip_height + push hl + push de + ld hl, sp+$0 + ld d, h + ld e, l + hlcoord 12, 7 + lb bc, 2, PRINTNUM_MONEY | 4 + call PrintNum + hlcoord 14, 7 + ld [hl], $5e ; ft symbol + pop af + pop hl + +.skip_height + pop af + push af + inc hl + push hl + dec hl + call GetFarHalfword + ld d, l + ld e, h + ld a, e + or d + jr z, .skip_weight + push de + ld hl, sp+$0 + ld d, h + ld e, l + hlcoord 11, 9 + lb bc, 2, PRINTNUM_RIGHTALIGN | 5 + call PrintNum + pop de + +.skip_weight +; Page 1 + lb bc, 5, SCREEN_WIDTH - 2 + hlcoord 2, 11 + call ClearBox + hlcoord 1, 10 + ld bc, SCREEN_WIDTH - 1 + ld a, $61 ; horizontal divider + call ByteFill + ; page number + hlcoord 1, 9 + ld [hl], $55 + inc hl + ld [hl], $55 + hlcoord 1, 10 + ld [hl], $56 ; P. + inc hl + ld [hl], $57 ; 1 + pop de + inc de + pop af + hlcoord 2, 11 + push af + call FarString + pop bc + ld a, [wPokedexStatus] + or a + ret z + +; Page 2 + push bc + push de + lb bc, 5, SCREEN_WIDTH - 2 + hlcoord 2, 11 + call ClearBox + hlcoord 1, 10 + ld bc, SCREEN_WIDTH - 1 + ld a, $61 + call ByteFill + ; page number + hlcoord 1, 9 + ld [hl], $55 + inc hl + ld [hl], $55 + hlcoord 1, 10 + ld [hl], $56 ; P. + inc hl + ld [hl], $58 ; 2 + pop de + inc de + pop af + hlcoord 2, 11 + call FarString + ret + +String_44331: ; 44331 + db "#@" + +GetDexEntryPointer: ; 44333 +; return dex entry pointer b:de + push hl + ld hl, PokedexDataPointerTable + ld a, b + dec a + ld d, 0 + ld e, a + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + push de + rlca + rlca + and $3 + ld hl, .PokedexEntryBanks + ld d, 0 + ld e, a + add hl, de + ld b, [hl] + pop de + pop hl + ret + +.PokedexEntryBanks: ; 44351 + +GLOBAL PokedexEntries1 +GLOBAL PokedexEntries2 +GLOBAL PokedexEntries3 +GLOBAL PokedexEntries4 + + db BANK(PokedexEntries1) + db BANK(PokedexEntries2) + db BANK(PokedexEntries3) + db BANK(PokedexEntries4) + +GetDexEntryPagePointer: ; 44355 + call GetDexEntryPointer ; b:de + push hl + ld h, d + ld l, e +; skip species name +.loop1 + ld a, b + call GetFarByte + inc hl + cp "@" + jr nz, .loop1 +; skip height and weight +rept 4 + inc hl +endr +; if c != 1: skip entry + dec c + jr z, .done +; skip entry +.loop2 + ld a, b + call GetFarByte + inc hl + cp "@" + jr nz, .loop2 + +.done + ld d, h + ld e, l + pop hl + ret diff --git a/engine/radio.asm b/engine/radio.asm index 8760956b2..feded7616 100644 --- a/engine/radio.asm +++ b/engine/radio.asm @@ -1837,7 +1837,7 @@ BuenasPassword21: BuenasPasswordCheckTime: call UpdateTime ld a, [hHours] - cp 18 ; 6 PM + cp NITE_HOUR ret BuenasPasswordChannelName: diff --git a/engine/rtc.asm b/engine/rtc.asm index 3018b5301..f69dc1f6d 100755 --- a/engine/rtc.asm +++ b/engine/rtc.asm @@ -50,12 +50,12 @@ GetTimeOfDay:: ; 14032 TimesOfDay: ; 14044 ; hours for the time of day -; 04-09 morn | 10-17 day | 18-03 nite - db 04, NITE - db 10, MORN - db 18, DAY - db 24, NITE - db -1, MORN +; 0400-0959 morn | 1000-1759 day | 1800-0359 nite + db MORN_HOUR, NITE_F + db DAY_HOUR, MORN_F + db NITE_HOUR, DAY_F + db MAX_HOUR, NITE_F + db -1, MORN_F ; 1404e Unknown_1404e: ; Unreferenced diff --git a/engine/save.asm b/engine/save.asm index de2d3bc65..74b0626c8 100644 --- a/engine/save.asm +++ b/engine/save.asm @@ -726,16 +726,9 @@ TryLoadSaveData: ; 14f1c ret ; 14f7c -DefaultOptions: ; 14f7c - db $03 ; mid text speed - db $00 ; wSaveFileExists - db $00 ; frame 0 - db $01 ; TextBoxFlags - db $40 ; gb printer: normal brightness - db $01 ; menu account on - db $00 ; ?? - db $00 ; ?? -; 14f84 + +INCLUDE "data/default_options.asm" + CheckPrimarySaveFile: ; 14f84 ld a, BANK(s1_a008) diff --git a/engine/spawn_points.asm b/engine/spawn_points.asm index 8dda255a1..5f9c07558 100644 --- a/engine/spawn_points.asm +++ b/engine/spawn_points.asm @@ -1,44 +1,5 @@ -SpawnPoints: ; 0x152ab - -spawn: MACRO -; map, y, x - map \1 - db \2, \3 -ENDM - - spawn KRISS_HOUSE_2F, 3, 3 - spawn VIRIDIAN_POKECENTER_1F, 5, 3 - - spawn PALLET_TOWN, 5, 6 - spawn VIRIDIAN_CITY, 23, 26 - spawn PEWTER_CITY, 13, 26 - spawn CERULEAN_CITY, 19, 22 - spawn ROUTE_10_NORTH, 11, 2 - spawn VERMILION_CITY, 9, 6 - spawn LAVENDER_TOWN, 5, 6 - spawn SAFFRON_CITY, 9, 30 - spawn CELADON_CITY, 29, 10 - spawn FUCHSIA_CITY, 19, 28 - spawn CINNABAR_ISLAND, 11, 12 - spawn ROUTE_23, 9, 6 - - spawn NEW_BARK_TOWN, 13, 6 - spawn CHERRYGROVE_CITY, 29, 4 - spawn VIOLET_CITY, 31, 26 - spawn ROUTE_32, 11, 74 - spawn AZALEA_TOWN, 15, 10 - spawn CIANWOOD_CITY, 23, 44 - spawn GOLDENROD_CITY, 15, 28 - spawn OLIVINE_CITY, 13, 22 - spawn ECRUTEAK_CITY, 23, 28 - spawn MAHOGANY_TOWN, 15, 14 - spawn LAKE_OF_RAGE, 21, 29 - spawn BLACKTHORN_CITY, 21, 30 - spawn SILVER_CAVE_OUTSIDE, 23, 20 - spawn FAST_SHIP_CABINS_SW_SSW_NW, 6, 2 - spawn N_A, -1, -1 - +INCLUDE "data/spawn_points.asm" LoadSpawnPoint: ; 1531f diff --git a/engine/sprites.asm b/engine/sprites.asm index ad36dfbc9..afccc114a 100755 --- a/engine/sprites.asm +++ b/engine/sprites.asm @@ -550,106 +550,30 @@ BrokenGetStdGraphics: ; 8d1ac ret ; 8d1c4 -SpriteAnimSeqData: ; 8d1c4 -; entries correspond to SPRITE_ANIM_INDEX_* constants - ; frameset sequence, tile -; SPRITE_ANIM_INDEX_PARTY_MON - db SPRITE_ANIM_FRAMESET_PARTY_MON, SPRITE_ANIM_SEQ_PARTY_MON, $00 -; SPRITE_ANIM_INDEX_01 - db SPRITE_ANIM_FRAMESET_07, SPRITE_ANIM_SEQ_04, $00 -; SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR - db SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR, SPRITE_ANIM_SEQ_NAMING_SCREEN_CURSOR, $05 -; SPRITE_ANIM_INDEX_GAMEFREAK_LOGO - db SPRITE_ANIM_FRAMESET_GAMEFREAK_LOGO, SPRITE_ANIM_SEQ_GAMEFREAK_LOGO, $00 -; SPRITE_ANIM_INDEX_GS_INTRO_STAR - db SPRITE_ANIM_FRAMESET_GS_INTRO_STAR, SPRITE_ANIM_SEQ_GS_INTRO_STAR, $06 -; SPRITE_ANIM_INDEX_GS_INTRO_SPARKLE - db SPRITE_ANIM_FRAMESET_GS_INTRO_SPARKLE, SPRITE_ANIM_SEQ_GS_INTRO_SPARKLE, $06 -; SPRITE_ANIM_INDEX_SLOTS_GOLEM - db SPRITE_ANIM_FRAMESET_SLOTS_GOLEM, SPRITE_ANIM_SEQ_SLOTS_GOLEM, $07 -; SPRITE_ANIM_INDEX_SLOTS_CHANSEY - db SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY, SPRITE_ANIM_SEQ_SLOTS_CHANSEY, $07 -; SPRITE_ANIM_INDEX_SLOTS_EGG - db SPRITE_ANIM_FRAMESET_SLOTS_EGG, SPRITE_ANIM_SEQ_SLOTS_EGG, $07 -; SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR - db SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR, SPRITE_ANIM_SEQ_MAIL_CURSOR, $05 -; SPRITE_ANIM_INDEX_RED_WALK - db SPRITE_ANIM_FRAMESET_RED_WALK, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_0B - db SPRITE_ANIM_FRAMESET_STILL_CURSOR, SPRITE_ANIM_SEQ_0D, $08 -; SPRITE_ANIM_INDEX_DUMMY_GAME - db SPRITE_ANIM_FRAMESET_STILL_CURSOR, SPRITE_ANIM_SEQ_0E, $08 -; SPRITE_ANIM_INDEX_0D - db SPRITE_ANIM_FRAMESET_STILL_CURSOR, SPRITE_ANIM_SEQ_0F, $08 -; SPRITE_ANIM_INDEX_TRADE_POKE_BALL - db SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL, SPRITE_ANIM_SEQ_TRADE_POKE_BALL, $00 -; SPRITE_ANIM_INDEX_TRADE_POOF - db SPRITE_ANIM_FRAMESET_TRADE_POOF, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_TRADE_TUBE_BULGE - db SPRITE_ANIM_FRAMESET_TRADE_TUBE_BULGE, SPRITE_ANIM_SEQ_TRADE_TUBE_BULGE, $00 -; SPRITE_ANIM_INDEX_TRADEMON_ICON - db SPRITE_ANIM_FRAMESET_TRADEMON_ICON, SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE, $00 -; SPRITE_ANIM_INDEX_TRADEMON_BUBBLE - db SPRITE_ANIM_FRAMESET_TRADEMON_BUBBLE, SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE, $00 -; SPRITE_ANIM_INDEX_EVOLUTION_BALL_OF_LIGHT - db SPRITE_ANIM_FRAMESET_EVOLUTION_BALL_OF_LIGHT, SPRITE_ANIM_SEQ_REVEAL_NEW_MON, $00 -; SPRITE_ANIM_INDEX_RADIO_TUNING_KNOB - db SPRITE_ANIM_FRAMESET_RADIO_TUNING_KNOB, SPRITE_ANIM_SEQ_RADIO_TUNING_KNOB, $00 -; SPRITE_ANIM_INDEX_MAGNET_TRAIN_RED - db SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_RED, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_LEAF - db SPRITE_ANIM_FRAMESET_LEAF, SPRITE_ANIM_SEQ_CUT_LEAVES, $00 -; SPRITE_ANIM_INDEX_CUT_TREE - db SPRITE_ANIM_FRAMESET_CUT_TREE, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_FLY_LEAF - db SPRITE_ANIM_FRAMESET_LEAF, SPRITE_ANIM_SEQ_FLY_LEAF, $00 -; SPRITE_ANIM_INDEX_EGG_CRACK - db SPRITE_ANIM_FRAMESET_EGG_CRACK, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_1A - db SPRITE_ANIM_FRAMESET_24, SPRITE_ANIM_SEQ_19, $00 -; SPRITE_ANIM_INDEX_HEADBUTT - db SPRITE_ANIM_FRAMESET_HEADBUTT, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_EGG_HATCH - db SPRITE_ANIM_FRAMESET_EGG_HATCH, SPRITE_ANIM_SEQ_REVEAL_NEW_MON, $00 -; SPRITE_ANIM_INDEX_1D - db SPRITE_ANIM_FRAMESET_26, SPRITE_ANIM_SEQ_1A, $00 -; SPRITE_ANIM_INDEX_BLUE_WALK - db SPRITE_ANIM_FRAMESET_BLUE_WALK, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_MAGNET_TRAIN_BLUE - db SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_BLUE, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_20 - db SPRITE_ANIM_FRAMESET_2F, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_21 - db SPRITE_ANIM_FRAMESET_30, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_22 - db SPRITE_ANIM_FRAMESET_31, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_23 - db SPRITE_ANIM_FRAMESET_32, SPRITE_ANIM_SEQ_1B, $00 -; SPRITE_ANIM_INDEX_24 - db SPRITE_ANIM_FRAMESET_33, SPRITE_ANIM_SEQ_1C, $00 -; SPRITE_ANIM_INDEX_25 - db SPRITE_ANIM_FRAMESET_34, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_INTRO_SUICUNE - db SPRITE_ANIM_FRAMESET_INTRO_SUICUNE, SPRITE_ANIM_SEQ_INTRO_SUICUNE, $00 -; SPRITE_ANIM_INDEX_INTRO_PICHU - db SPRITE_ANIM_FRAMESET_INTRO_PICHU, SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER, $00 -; SPRITE_ANIM_INDEX_INTRO_WOOPER - db SPRITE_ANIM_FRAMESET_INTRO_WOOPER, SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER, $00 -; SPRITE_ANIM_INDEX_INTRO_UNOWN - db SPRITE_ANIM_FRAMESET_INTRO_UNOWN_1, SPRITE_ANIM_SEQ_INTRO_UNOWN, $00 -; SPRITE_ANIM_INDEX_INTRO_UNOWN_F - db SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F, SPRITE_ANIM_SEQ_INTRO_UNOWN_F, $00 -; SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY - db SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_AWAY, SPRITE_ANIM_SEQ_INTRO_SUICUNE_AWAY, $00 -; SPRITE_ANIM_INDEX_CELEBI - db SPRITE_ANIM_FRAMESET_CELEBI_LEFT, SPRITE_ANIM_SEQ_NULL, $00 ; 2c -; 8d24b - -INCLUDE "engine/sprite_anims.asm" ; DoAnimFrame - -INCLUDE "data/sprite_engine.asm" -; SpriteAnimFrameData -; SpriteAnimOAMData + +INCLUDE "data/sprite_anim_seqs.asm" + +INCLUDE "engine/sprite_anims.asm" + +INCLUDE "data/sprite_anim_frames.asm" + +INCLUDE "data/sprite_anim_oam.asm" + + +BrokenStdGFXPointers: ; Broken 2bpp pointers + dbbw $80, $01, .deleted ; 128-tile 2bpp at 1:672a (inside Multiply) + dbbw $80, $01, .deleted + dbbw $80, $01, .deleted + dbbw $80, $01, .deleted + dbbw $10, $37, .deleted ; 16-tile 2bpp at 37:672a (within TilesetTrainStationGFX) + dbbw $10, $11, .deleted ; 16-tile 2bpp at 11:672a (empty data) + dbbw $10, $39, .deleted ; 16-tile 2bpp at 39:672a (empty data) + dbbw $10, $24, .deleted ; 16-tile 2bpp at 24:672a (inside Function926f7) + dbbw $10, $21, .deleted ; 16-tile 2bpp at 21:672a (inside Function8671c) + +.deleted +; 8e72a (23:672a) + Sprites_Cosine: ; 8e72a add $10 diff --git a/engine/std_scripts.asm b/engine/std_scripts.asm index 4b69a4de1..020875ff7 100644 --- a/engine/std_scripts.asm +++ b/engine/std_scripts.asm @@ -1,5 +1,5 @@ StdScripts:: - dba PokeCenterNurseScript + dba PokecenterNurseScript dba DifficultBookshelfScript dba PictureBookshelfScript dba MagazineBookshelfScript @@ -15,7 +15,7 @@ StdScripts:: dba TrashCanScript dba StrengthBoulderScript dba SmashRockScript - dba PokeCenterSignScript + dba PokecenterSignScript dba MartSignScript dba GoldenrodRocketsScript dba RadioTowerRocketsScript @@ -52,7 +52,7 @@ StdScripts:: dba GameCornerCoinVendorScript dba HappinessCheckScript -PokeCenterNurseScript: +PokecenterNurseScript: ; EVENT_WELCOMED_TO_POKECOM_CENTER is never set opentext @@ -236,8 +236,8 @@ StrengthBoulderScript: SmashRockScript: farjump AskRockSmashScript -PokeCenterSignScript: - farjumptext PokeCenterSignText +PokecenterSignScript: + farjumptext PokecenterSignText MartSignScript farjumptext MartSignText @@ -1786,7 +1786,7 @@ ReceiveItemScript: ; 0xbcdb9 ReceiveTogepiEggScript: ; 0xbcdc3 waitsfx farwritetext ReceivedItemText - playsound SFX_GET_EGG_FROM_DAYCARE_LADY + playsound SFX_GET_EGG_FROM_DAY_CARE_LADY waitsfx end ; 0xbcdcd diff --git a/engine/time_capsule/conversion.asm b/engine/time_capsule/conversion.asm index 561721074..eb8896355 100755 --- a/engine/time_capsule/conversion.asm +++ b/engine/time_capsule/conversion.asm @@ -144,161 +144,8 @@ PlaceTradePartnerNamesAndParty: ; fb60d jr .loop ; 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 "data/time_capsule/special_stats.asm" INCLUDE "event/name_rater.asm" @@ -426,257 +273,5 @@ ConvertMon_1to2: ; fb908 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 "data/time_capsule/mon_order.asm" diff --git a/engine/timeset.asm b/engine/timeset.asm index ca5d9b85a..2a578f998 100755 --- a/engine/timeset.asm +++ b/engine/timeset.asm @@ -44,7 +44,7 @@ InitClock: ; 90672 (24:4672) ld bc, 50 xor a call ByteFill - ld a, $a + ld a, 10 ; default hour = 10 AM ld [wInitHourBuffer], a .loop @@ -98,7 +98,7 @@ InitClock: ; 90672 (24:4672) call SetMinutes jr nc, .SetMinutesLoop - ld a, [BattleMonNick + 5] + ld a, [wInitMinuteBuffer] ld [StringBuffer2 + 2], a call .ClearScreen ld hl, Text_WhoaMins @@ -237,7 +237,7 @@ SetMinutes: ; 90810 (24:4810) ret .d_down - ld hl, BattleMonNick + 5 + ld hl, wInitMinuteBuffer ld a, [hl] and a jr nz, .decrease @@ -248,7 +248,7 @@ SetMinutes: ; 90810 (24:4810) jr .finish_dpad .d_up - ld hl, BattleMonNick + 5 + ld hl, wInitMinuteBuffer ld a, [hl] cp 59 jr c, .increase @@ -271,7 +271,7 @@ SetMinutes: ; 90810 (24:4810) ret DisplayMinutesWithMinString: ; 90859 (24:4859) - ld de, BattleMonNick + 5 + ld de, wInitMinuteBuffer call PrintTwoDigitNumberRightAlign inc hl ld de, String_min @@ -355,25 +355,25 @@ OakText_ResponseToSetTime: ; 0x908b8 call PrintHour ld [hl], ":" inc hl - ld de, BattleMonNick + 5 + ld de, wInitMinuteBuffer 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: + cp MORN_HOUR + jr c, .nite + cp DAY_HOUR + 1 + jr c, .morn + cp NITE_HOUR + jr c, .day +.nite: ld hl, .sodark ret -.MORN: +.morn: ld hl, .overslept ret -.DAY: +.day: ld hl, .yikes ret ; 908ec (24:48ec) @@ -482,7 +482,7 @@ Special_SetDayOfWeek: ; 90913 ld a, [hl] and a jr nz, .decrease - ld a, 6 + 1 + ld a, SATURDAY + 1 .decrease dec a @@ -494,7 +494,7 @@ Special_SetDayOfWeek: ; 90913 ld a, [hl] cp 6 jr c, .increase - ld a, 0 - 1 + ld a, SUNDAY - 1 .increase inc a @@ -531,6 +531,7 @@ Special_SetDayOfWeek: ; 90913 ; 909f2 .WeekdayStrings: ; 909f2 +; entries correspond to CurDay constants (see constants/wram_constants.asm) dw .Sunday dw .Monday dw .Tuesday @@ -731,26 +732,26 @@ PrintHour: ; 90b3e (24:4b3e) GetTimeOfDayString: ; 90b58 (24:4b58) ld a, c - cp 4 + cp MORN_HOUR jr c, .nite - cp 10 + cp DAY_HOUR jr c, .morn - cp 18 + cp NITE_HOUR jr c, .day .nite - ld de, .NITE + ld de, .nite_string ret .morn - ld de, .MORN + ld de, .morn_string ret .day - ld de, .DAY + ld de, .day_string ret ; 90b71 (24:4b71) -.NITE: db "NITE@" -.MORN: db "MORN@" -.DAY: db "DAY@" +.nite_string: db "NITE@" +.morn_string: db "MORN@" +.day_string: db "DAY@" ; 90b7f AdjustHourForAMorPM: @@ -758,12 +759,12 @@ AdjustHourForAMorPM: ld a, c or a jr z, .midnight - cp 12 + cp NOON_HOUR ret c ret z - sub 12 + sub NOON_HOUR ret .midnight - ld a, 12 + ld a, NOON_HOUR ret diff --git a/engine/tmhm.asm b/engine/tmhm.asm index dc5d698e1..78d3b1707 100755 --- a/engine/tmhm.asm +++ b/engine/tmhm.asm @@ -45,69 +45,5 @@ GetTMHMMove: ; 1166a ret ; 1167a -TMHMMoves: ; 1167a - db DYNAMICPUNCH - db HEADBUTT - db CURSE - db ROLLOUT - db ROAR - db TOXIC - db ZAP_CANNON - db ROCK_SMASH - db PSYCH_UP - db HIDDEN_POWER - db SUNNY_DAY - db SWEET_SCENT - db SNORE - db BLIZZARD - db HYPER_BEAM - db ICY_WIND - db PROTECT - db RAIN_DANCE - db GIGA_DRAIN - db ENDURE - db FRUSTRATION - db SOLARBEAM - db IRON_TAIL - db DRAGONBREATH - db THUNDER - db EARTHQUAKE - db RETURN - db DIG - db PSYCHIC_M - db SHADOW_BALL - db MUD_SLAP - db DOUBLE_TEAM - db ICE_PUNCH - db SWAGGER - db SLEEP_TALK - db SLUDGE_BOMB - db SANDSTORM - db FIRE_BLAST - db SWIFT - db DEFENSE_CURL - db THUNDERPUNCH - db DREAM_EATER - db DETECT - db REST - db ATTRACT - db THIEF - db STEEL_WING - db FIRE_PUNCH - db FURY_CUTTER - db NIGHTMARE - db CUT - db FLY - db SURF - db STRENGTH - db FLASH - db WHIRLPOOL - db WATERFALL -; Move tutor - db FLAMETHROWER - db THUNDERBOLT - db ICE_BEAM - - db 0 ; end -; 116b7 +INCLUDE "data/tmhm_moves.asm" diff --git a/engine/wildmons.asm b/engine/wildmons.asm index bb668f2be..1f6bb4065 100755 --- a/engine/wildmons.asm +++ b/engine/wildmons.asm @@ -271,14 +271,14 @@ ChooseWildEncounter: ; 2a14f inc hl inc hl call CheckOnWater - ld de, .WaterMonTable + ld de, WaterMonProbTable jr z, .watermon inc hl inc hl ld a, [TimeOfDay] ld bc, $e call AddNTimes - ld de, .GrassMonTable + ld de, GrassMonProbTable .watermon ; hl contains the pointer to the wild mon data, let's save that to the stack @@ -357,21 +357,7 @@ ChooseWildEncounter: ; 2a14f 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 +INCLUDE "data/wild/probabilities.asm" CheckRepelEffect:: ; 2a1df ; If there is no active Repel, there's no need to be here. @@ -798,29 +784,9 @@ _BackUpMapIndices: ; 2a3f6 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 + +INCLUDE "data/wild/roammon_maps.asm" + ValidateTempWildMonSpecies: ; 2a4a0 ; Due to a development oversight, this function is called with the wild Pokemon's level, not its species, in a. @@ -1034,20 +1000,9 @@ RandomPhoneMon: ; 2a567 ; 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" |